(self, prompt: str, project_name: str)
| 126 | return self.collected_context_keywords |
| 127 | |
| 128 | def make_decision(self, prompt: str, project_name: str) -> str: |
| 129 | decision = self.decision.execute(prompt, project_name) |
| 130 | |
| 131 | for item in decision: |
| 132 | function = item["function"] |
| 133 | args = item["args"] |
| 134 | reply = item["reply"] |
| 135 | |
| 136 | self.project_manager.add_message_from_devika(project_name, reply) |
| 137 | |
| 138 | if function == "git_clone": |
| 139 | url = args["url"] |
| 140 | # Implement git clone functionality here |
| 141 | |
| 142 | elif function == "generate_pdf_document": |
| 143 | user_prompt = args["user_prompt"] |
| 144 | # Call the reporter agent to generate the PDF document |
| 145 | markdown = self.reporter.execute([user_prompt], "", project_name) |
| 146 | _out_pdf_file = PDF().markdown_to_pdf(markdown, project_name) |
| 147 | |
| 148 | project_name_space_url = project_name.replace(" ", "%20") |
| 149 | pdf_download_url = "http://127.0.0.1:1337/api/download-project-pdf?project_name={}".format( |
| 150 | project_name_space_url) |
| 151 | response = f"I have generated the PDF document. You can download it from here: {pdf_download_url}" |
| 152 | |
| 153 | #asyncio.run(self.open_page(project_name, pdf_download_url)) |
| 154 | |
| 155 | self.project_manager.add_message_from_devika(project_name, response) |
| 156 | |
| 157 | elif function == "browser_interaction": |
| 158 | user_prompt = args["user_prompt"] |
| 159 | # Call the interaction agent to interact with the browser |
| 160 | start_interaction(self.base_model, user_prompt, project_name) |
| 161 | |
| 162 | elif function == "coding_project": |
| 163 | user_prompt = args["user_prompt"] |
| 164 | # Call the planner, researcher, coder agents in sequence |
| 165 | plan = self.planner.execute(user_prompt, project_name) |
| 166 | planner_response = self.planner.parse_response(plan) |
| 167 | |
| 168 | research = self.researcher.execute(plan, self.collected_context_keywords, project_name) |
| 169 | search_results = self.search_queries(research["queries"], project_name) |
| 170 | |
| 171 | code = self.coder.execute( |
| 172 | step_by_step_plan=plan, |
| 173 | user_context=research["ask_user"], |
| 174 | search_results=search_results, |
| 175 | project_name=project_name |
| 176 | ) |
| 177 | self.coder.save_code_to_project(code, project_name) |
| 178 | |
| 179 | def subsequent_execute(self, prompt: str, project_name: str): |
| 180 | """ |
nothing calls this directly
no test coverage detected