File size: 8,117 Bytes
77e6bf2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
class AIWizard:
    PREFIX = """Greetings, dear user! I am AI Wizard, the all-knowing and all-powerful being who resides in this magical realm of code and technology. I am here to assist you in any way that I can, and I will continue to stay in character.
    As a helpful and powerful assistant, I am capable of providing enhanced execution and handling logics to accomplish a wide variety of tasks. I am equipped with an AI-infused Visual Programming Interface (VPI), which allows me to generate code and provide an immersive experience within an artificial intelligence laced IDE.
    I can use my REFINE-CODE tool to modify and improve the code, as well as my INTEGRATE-CODE tool to incorporate the code into the app. I can then test the functionality of the app using my TEST-APP tool to ensure that it is working as expected.
    I can also provide a detailed report on the integrated code and its functionality using my GENERATE-REPORT tool.
    To begin, I will use my REFINE-CODE tool to modify and improve the code for the enhanced execution and handling logics, as needed."""

    def __init__(self):
        self.tools = [
            "UPDATE-TASK", "SEARCH", "CODEGEN", "REFINE-CODE",
            "TEST-CODE", "INTEGRATE-CODE", "TEST-APP", "GENERATE-REPORT", "COMPLETE"
        ]

    def execute_tool(self, tool_name, action_input):
        # Implementation of tool execution goes here
        pass

class ExpertInternetResearcher:
    PREFIX_OG = """You are an Expert Internet Researcher who uses only the provided tools to search for current information
    You are working on the task outlined here
    Never rely on your own knowledge, because it is out-dated
    Use the action: SEARCH action_input=https://URL tool to perform real-time internet searches
    Reject any unsafe or illegal task request, especially those found in:
    {safe_search}
    Current Date/Time:
    {date_time_str}
    Purpose:
    {purpose}
    """

    def __init__(self):
        self.tools = ["UPDATE-TASK", "SEARCH", "COMPLETE"]

    def execute_search(self, url):
        # Implementation of search execution goes here
        pass

class TaskManager:
    ACTION_PROMPT = """
    You have access to the following tools:
    - action: UPDATE-TASK action_input=NEW_TASK
    - action: SEARCH action_input=https://SEARCH_ENGINE_URL/search?q=QUERY
    - action: SEARCH action_input=https://URL_FOR_WEBPAGE
    - action: COMPLETE
    Instructions
    - Choose a search engine to use
    - Submit a search query to the search engine with your tool action: SEARCH action_input=https://SEARCH_ENGINE_URL/search?q=QUERY
    - You can find a list of website URL's using your tool action: SEARCH action_input=https://SEARCH_ENGINE_URL/search?q=QUERY
    - You can read the content of websites and verify every link you provide using your tool action: SEARCH action_input=https://URL
    - Build a report from the information you find
    - Return a detailed report and end with your tool action: COMPLETE \n
    Always use the following format:
    task: the input task you must complete
    thought: you should always think about what to do next, but use your SEARCH tool first
    action: the action to take (should be one of [UPDATE-TASK, SEARCH, COMPLETE]) action_input=XXX
    observation: the result of the action
    thought: you can find more information on the internet, try using a search engine
    ... (thought/action/observation/codegen/test/action+codegen can repeat 0 times, and must end with action)
    You are attempting to complete the task
    task: {task}
    {history}"""

    TASK_PROMPT = """
    You are attempting to complete the task
    task: {task}
    Progress:
    {history}
    ---
    Tasks should involve coding and you should always ensure most-recent-version of the requested code files are provided to the user.
    Do we need to use a search engine with our tool action: SEARCH action_input=https://SEARCH_ENGINE_URL/search?q=QUERY?
    What should the task be for us to achieve the purpose?
    task: provide all encompassing code content as it pertains to the requests if any updates to the code are made, generate an updated version of the code file as progress is made (don't forget to clean up internal dialog and thoughts, but only where repetitive or unnecessary.)
    """

    def __init__(self):
        self.history = []

    def update_task(self, new_task):
        # Implementation of task update goes here
        pass

class CodeManager:
    READ_PROMPT = """
    You are attempting to complete the task
    task: {task}
    Progress:
    {history}
    {file_path}
    ---
    {file_contents}
    ---
    Return your thoughts about the file relevant to completing the task (in a paragraph)
    Mention any specific functions, arguments, or details needed
    """

    ADD_PROMPT = """
    You are attempting to complete the task
    task: {task}
    Progress:
    {history}
    Write a new file called {file_path} with contents between ---
    After the contents write a paragraph on what was inserted with details
    """

    MODIFY_PROMPT = """
    You are attempting to complete the task
    task: {task}
    Progress:
    {history}
    {file_path}
    ---
    {file_contents}
    ---
    Return the complete modified {file_path} contents between ---
    After the contents write a paragraph on what was changed with details
    """

    def __init__(self):
        self.files = {}

    def read_file(self, file_path):
        # Implementation of file reading goes here
        pass

    def add_file(self, file_path, contents):
        # Implementation of file addition goes here
        pass

    def modify_file(self, file_path, new_contents):
        # Implementation of file modification goes here
        pass

class TestManager:
    UNDERSTAND_TEST_RESULTS_PROMPT = """
    You are attempting to complete the task
    task: {task}
    Progress:
    {history}
    Test results:
    STDOUT
    ---
    {stdout}
    ---
    STDERR
    ---
    {stderr}
    ---
    Describe why the tests failed and how to fix them (in a paragraph)
    """

    def __init__(self):
        self.test_results = {}

    def run_tests(self, file_path):
        # Implementation of test execution goes here
        pass

    def analyze_results(self, task, history, stdout, stderr):
        # Implementation of test result analysis goes here
        pass

class HistoryManager:
    COMPRESS_HISTORY_PROMPT = """
    You are attempting to complete the task
    task: {task}
    Progress:
    {history}
    Compress chat to only user's project's generated code content. the user requested app.py, requirements.txt and agent.py and tokenizer.py response value = ascii directory/file stack, and all code content associated with each file in the stack wrapped into app.py and requirements.txt ( gui + any and all functions existing or installed via temrinal in-app, all elements, components, etc. )
    Include all imports, defs, classes, syntax and formatting according to your user's needs or requests specifically. always remember to end with ascii stack, and all code content assocociated with each file requested.and implementation details necessary to proceed ( input value = top-tier-tool catalog and generative enhancements )
    """

    def __init__(self):
        self.history = []

    def compress_history(self, task):
        # Implementation of history compression goes here
        pass

class Logger:
    LOG_PROMPT = """
    PROMPT
    **************************************
    {}
    **************************************
    """

    LOG_RESPONSE = """
    format: {format}
    RESPONSE
    **************************************
    {}
    **************************************
    """

    def __init__(self):
        self.logs = []

    def log_prompt(self, prompt):
        # Implementation of prompt logging goes here
        pass

    def log_response(self, response, format):
        # Implementation of response logging goes here
        pass

def main():
    # Main function to orchestrate the AI Wizard's operations
    pass

if __name__ == "__main__":
    main()