MCPcopy
hub / github.com/stitionai/devika / make_decision

Method make_decision

src/agents/agent.py:128–177  ·  view source on GitHub ↗
(self, prompt: str, project_name: str)

Source from the content-addressed store, hash-verified

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 """

Callers

nothing calls this directly

Calls 8

search_queriesMethod · 0.95
PDFClass · 0.90
start_interactionFunction · 0.90
markdown_to_pdfMethod · 0.80
parse_responseMethod · 0.80
executeMethod · 0.45
save_code_to_projectMethod · 0.45

Tested by

no test coverage detected