Merge with dev

This commit is contained in:
martin legrand
2025-03-11 13:56:44 +01:00
79 changed files with 2151 additions and 52 deletions
+3 -1
View File
@@ -3,10 +3,13 @@ from typing import Tuple, Callable
from abc import abstractmethod
import os
import random
import time
from sources.memory import Memory
from sources.utility import pretty_print
random.seed(time.time())
class executorResult:
"""
A class to store the result of a tool execution.
@@ -106,7 +109,6 @@ class Agent():
if speech_module is None:
return
messages = ["Please be patient sir, I am working on it.",
"At it, sir. In the meantime, how about a joke?",
"Computing... I recommand you have a coffee while I work.",
"Hold on, Im crunching numbers.",
"Working on it sir, please let me think."]
+5 -4
View File
@@ -18,22 +18,23 @@ class CasualAgent(Agent):
"file_finder": FileFinder(),
"bash": BashInterpreter()
}
self.role = "talking, advices and philosophical"
self.role = "talking, advices, events and philosophical"
def process(self, prompt, speech_module) -> str:
complete = False
exec_success = False
self.memory.push('user', prompt)
self.wait_message(speech_module)
while not complete:
if exec_success:
complete = True
animate_thinking("Thinking...", color="status")
answer, reasoning = self.llm_request()
exec_success, _ = self.execute_modules(answer)
answer = self.remove_blocks(answer)
self.last_answer = answer
complete = True
for tool in self.tools.values():
if tool.found_executable_blocks():
complete = False # AI read results and continue the conversation
return answer, reasoning
if __name__ == "__main__":
+1
View File
@@ -32,6 +32,7 @@ class CoderAgent(Agent):
animate_thinking("Thinking...", color="status")
self.wait_message(speech_module)
answer, reasoning = self.llm_request()
animate_thinking("Executing code...", color="status")
exec_success, _ = self.execute_modules(answer)
answer = self.remove_blocks(answer)
self.last_answer = answer
+4
View File
@@ -30,6 +30,10 @@ class FileAgent(Agent):
exec_success, _ = self.execute_modules(answer)
answer = self.remove_blocks(answer)
self.last_answer = answer
complete = True
for name, tool in self.tools.items():
if tool.found_executable_blocks():
complete = False # AI read results and continue the conversation
return answer, reasoning
if __name__ == "__main__":
+3
View File
@@ -81,6 +81,9 @@ class PlannerAgent(Agent):
speech_module.speak(f"I will {task_name}. I assigned the {task['agent']} agent to the task.")
try:
self.agents[task['agent'].lower()].process(agent_prompt, None)
pretty_print(f"-- Agent answer ---\n\n", color="output")
self.agents[task['agent'].lower()].show_answer()
pretty_print(f"\n\n", color="output")
except Exception as e:
pretty_print(f"Error: {e}", color="failure")
speech_module.speak(f"I encountered an error: {e}")