diff --git a/src/main/java/com/ioa/IoASystem.java b/src/main/java/com/ioa/IoASystem.java index febcebe..beefa21 100644 --- a/src/main/java/com/ioa/IoASystem.java +++ b/src/main/java/com/ioa/IoASystem.java @@ -52,7 +52,7 @@ public class IoASystem { } @Bean - public ConversationManager conversationManager(BedrockLanguageModel model, @Lazy WebSocketService webSocketService) { + public ConversationManager conversationManager(BedrockLanguageModel model, WebSocketService webSocketService) { return new ConversationManager(model, webSocketService); } @@ -122,36 +122,38 @@ public class IoASystem { WebSocketService webSocketService = context.getBean(WebSocketService.class); ToolRegistry toolRegistry = context.getBean(ToolRegistry.class); ConversationManager conversationManager = context.getBean(ConversationManager.class); + BedrockLanguageModel model = context.getBean(BedrockLanguageModel.class); + // Register all agents agentRegistry.registerAgent("agent1", new AgentInfo("agent1", "General Assistant", Arrays.asList("general", "search"), Arrays.asList("webSearch", "getWeather", "setReminder"), - treeOfThought, webSocketService, toolRegistry, conversationManager)); + treeOfThought, webSocketService, toolRegistry, model)); agentRegistry.registerAgent("agent2", new AgentInfo("agent2", "Travel Expert", Arrays.asList("travel", "booking"), Arrays.asList("bookTravel", "calculateDistance", "findRestaurants"), - treeOfThought, webSocketService, toolRegistry, conversationManager)); + treeOfThought, webSocketService, toolRegistry, model)); agentRegistry.registerAgent("agent3", new AgentInfo("agent3", "Event Planner Extraordinaire", Arrays.asList("event planning", "team management", "booking"), Arrays.asList("findRestaurants", "bookTravel", "scheduleAppointment", "getWeather"), - treeOfThought, webSocketService, toolRegistry, conversationManager)); + treeOfThought, webSocketService, toolRegistry, model)); agentRegistry.registerAgent("agent4", new AgentInfo("agent4", "Fitness Guru", Arrays.asList("health", "nutrition", "motivation"), Arrays.asList("findFitnessClasses", "getRecipe", "setReminder", "getWeather"), - treeOfThought, webSocketService, toolRegistry, conversationManager)); + treeOfThought, webSocketService, toolRegistry, model)); agentRegistry.registerAgent("agent5", new AgentInfo("agent5", "Research Specialist", Arrays.asList("research", "writing", "analysis"), Arrays.asList("webSearch", "getNewsUpdates", "translate", "compareProductPrices"), - treeOfThought, webSocketService, toolRegistry, conversationManager)); + treeOfThought, webSocketService, toolRegistry, model)); agentRegistry.registerAgent("agent6", new AgentInfo("agent6", "Digital Marketing Expert", Arrays.asList("marketing", "social media", "content creation"), Arrays.asList("webSearch", "getNewsUpdates", "scheduleAppointment", "getMovieRecommendations"), - treeOfThought, webSocketService, toolRegistry, conversationManager)); + treeOfThought, webSocketService, toolRegistry, model)); agentRegistry.registerAgent("agent7", new AgentInfo("agent7", "Family Travel Coordinator", Arrays.asList("travel", "family planning", "budgeting"), Arrays.asList("bookTravel", "calculateDistance", "getWeather", "findRestaurants", "getFinancialAdvice"), - treeOfThought, webSocketService, toolRegistry, conversationManager)); + treeOfThought, webSocketService, toolRegistry, model)); // Create all tasks List tasks = Arrays.asList( @@ -196,66 +198,18 @@ public class IoASystem { ); - // Create a thread pool - ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); - for (Task task : tasks) { + taskManager.addTask(task); // Add each task to the TaskManager System.out.println("\nProcessing task: " + task.getDescription()); List team = teamFormation.formTeam(task); System.out.println("Formed team: " + team); if (!team.isEmpty()) { - // Create a conversation for the team - String conversationId = conversationManager.createConversation(); - - // Add team members to the conversation - for (AgentInfo agent : team) { - conversationManager.addParticipant(conversationId, agent); - } - - // Create a CountDownLatch to wait for all agents to complete their tasks - CountDownLatch latch = new CountDownLatch(team.size()); - - // Assign the task to all team members and execute in parallel - for (AgentInfo agent : team) { - executorService.submit(() -> { - try { - Task agentTask = new Task(task.getId() + "_" + agent.getId(), task.getDescription(), task.getRequiredCapabilities(), task.getRequiredTools()); - agentTask.setAssignedAgent(agent); - taskManager.addTask(agentTask); - taskManager.executeTask(agentTask.getId(), conversationId); - } finally { - latch.countDown(); - } - }); - } - - // Start the conversation - conversationManager.startConversation(conversationId, "Let's work on the task: " + task.getDescription()); - - // Wait for all agents to complete their tasks - try { - latch.await(40, TimeUnit.MINUTES); // Wait for up to 5 minutes - } catch (InterruptedException e) { - e.printStackTrace(); - } - - // Get the result - String result = conversationManager.getConversationResult(conversationId); - System.out.println("Task result: " + result); + taskManager.executeTask(task.getId(), team); + System.out.println("Task result: " + task.getResult()); } else { System.out.println("No suitable agents found for this task. Consider updating the agent pool or revising the task requirements."); } } - - // Shutdown the executor service - executorService.shutdown(); - try { - if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) { - executorService.shutdownNow(); - } - } catch (InterruptedException e) { - executorService.shutdownNow(); - } } } diff --git a/src/main/java/com/ioa/agent/AgentInfo.java b/src/main/java/com/ioa/agent/AgentInfo.java index 86f1b50..472635c 100644 --- a/src/main/java/com/ioa/agent/AgentInfo.java +++ b/src/main/java/com/ioa/agent/AgentInfo.java @@ -1,13 +1,12 @@ package com.ioa.agent; +import com.ioa.conversation.ConversationFSM; import com.ioa.conversation.Message; -import com.ioa.util.TreeOfThought; +import com.ioa.model.BedrockLanguageModel; import com.ioa.service.WebSocketService; import com.ioa.tool.ToolRegistry; -import com.ioa.conversation.ConversationFSM; -import com.ioa.conversation.ConversationManager; +import com.ioa.util.TreeOfThought; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -19,11 +18,11 @@ public class AgentInfo { private TreeOfThought treeOfThought; private WebSocketService webSocketService; private ToolRegistry toolRegistry; - private final ConversationManager conversationManager; + private BedrockLanguageModel model; public AgentInfo(String id, String name, List capabilities, List tools, - TreeOfThought treeOfThought, WebSocketService webSocketService, - ToolRegistry toolRegistry, ConversationManager conversationManager) { + TreeOfThought treeOfThought, WebSocketService webSocketService, + ToolRegistry toolRegistry, BedrockLanguageModel model) { this.id = id; this.name = name; this.capabilities = capabilities; @@ -31,95 +30,29 @@ public class AgentInfo { this.treeOfThought = treeOfThought; this.webSocketService = webSocketService; this.toolRegistry = toolRegistry; - this.conversationManager = conversationManager; - } - - public void sendMessage(String conversationId, String content) { - conversationManager.postMessage(conversationId, this.id, content); + this.model = model; } public void receiveMessage(Message message) { // Process the received message - Map reasoningResult = treeOfThought.reason("Respond to message: " + message.getContent(), 2, 2); - String response = (String) reasoningResult.get("response"); // Assuming the response is stored under the key "response" - // Send the response back to the conversation - sendMessage(message.getConversationId(), response); + String prompt = "You are " + name + " with capabilities: " + capabilities + + "\nYou received a message: " + message.getContent() + + "\nHow would you respond or what actions would you take based on this message?"; + String response = model.generate(prompt, null); + System.out.println("DEBUG: " + name + " processed message: " + message.getContent()); + System.out.println("DEBUG: " + name + " response: " + response); } - public List getCapabilities() { - return this.capabilities; + public void notifyTurn(ConversationFSM conversation) { + String prompt = "You are " + name + " with capabilities: " + capabilities + + "\nIt's your turn to speak in the conversation. What would you like to say or do?"; + String response = model.generate(prompt, null); + conversation.postMessage(new Message(conversation.getConversationId(), id, response)); } - public String getId() { - return this.id; - } - - public List getTools() { - return this.tools; - } - - @Override - public String toString() { - return "AgentInfo{id='" + id + "', name='" + name + "'}"; - } - - public String executeTask(String taskDescription) { - System.out.println("DEBUG: Agent " + id + " executing task: " + taskDescription); - webSocketService.sendUpdate("agent_task", Map.of("agentId", id, "task", taskDescription)); - - // Use Tree of Thought to decide on tools and actions - Map reasoning = treeOfThought.reason("Select tools and actions for task: " + taskDescription + - "\nAvailable tools: " + tools, 2, 2); - String reasoningString = formatReasoning(reasoning); - System.out.println("DEBUG: Agent " + id + " reasoning:\n" + reasoningString); - webSocketService.sendUpdate("agent_reasoning", Map.of("agentId", id, "reasoning", reasoningString)); - - // Extract tool selection from reasoning - List selectedTools = extractToolSelection(reasoningString); - System.out.println("DEBUG: Agent " + id + " selected tools: " + selectedTools); - webSocketService.sendUpdate("agent_tools_selected", Map.of("agentId", id, "tools", selectedTools)); - - // Execute actions using selected tools - StringBuilder result = new StringBuilder(); - for (String tool : selectedTools) { - String actionResult = executeTool(tool, taskDescription); - result.append(actionResult).append("\n"); - } - - String finalResult = result.toString().trim(); - System.out.println("DEBUG: Agent " + id + " task result: " + finalResult); - webSocketService.sendUpdate("agent_task_result", Map.of("agentId", id, "result", finalResult)); - - return finalResult; - } - - private String formatReasoning(Map reasoning) { - // Implement a method to format the reasoning tree into a string - // This is a placeholder implementation - return reasoning.toString(); - } - - private List extractToolSelection(String reasoning) { - // Implement a method to extract tool selection from reasoning - // This is a placeholder implementation - return new ArrayList<>(tools); - } - - private String executeTool(String tool, String context) { - System.out.println("DEBUG: Agent " + id + " executing tool: " + tool); - webSocketService.sendUpdate("agent_tool_execution", Map.of("agentId", id, "tool", tool)); - - // Placeholder for tool execution - // In a real implementation, you would call the actual tool method from the ToolRegistry - String result = "Simulated result of using " + tool + " for context: " + context; - - System.out.println("DEBUG: Agent " + id + " tool result: " + result); - webSocketService.sendUpdate("agent_tool_result", Map.of("agentId", id, "tool", tool, "result", result)); - - return result; - } - - public void voteToFinish(String conversationId) { - conversationManager.postMessage(conversationId, this.id, "/vote"); - } + // Getters and setters + public String getId() { return id; } + public String getName() { return name; } + public List getCapabilities() { return capabilities; } + public List getTools() { return tools; } } \ No newline at end of file diff --git a/src/main/java/com/ioa/conversation/ConversationFSM.java b/src/main/java/com/ioa/conversation/ConversationFSM.java index 1547e48..e118dae 100644 --- a/src/main/java/com/ioa/conversation/ConversationFSM.java +++ b/src/main/java/com/ioa/conversation/ConversationFSM.java @@ -1,6 +1,5 @@ package com.ioa.conversation; -import java.util.stream.Collectors; import com.ioa.agent.AgentInfo; import com.ioa.model.BedrockLanguageModel; import com.ioa.service.WebSocketService; @@ -8,9 +7,8 @@ import org.springframework.stereotype.Component; import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.stream.Collectors; @Component public class ConversationFSM { @@ -19,31 +17,42 @@ public class ConversationFSM { private final WebSocketService webSocketService; private final Queue messageQueue; private final List participants; + private final Queue speakingQueue; private final Map votes; private final AtomicBoolean finished; private String result; - private final ScheduledExecutorService executorService; + private String conversationId; public ConversationFSM(BedrockLanguageModel model, WebSocketService webSocketService) { - this.executorService = Executors.newScheduledThreadPool(1); this.currentState = ConversationState.DISCUSSION; this.model = model; this.webSocketService = webSocketService; this.messageQueue = new ConcurrentLinkedQueue<>(); this.participants = new ArrayList<>(); + this.speakingQueue = new ConcurrentLinkedQueue<>(); this.votes = new HashMap<>(); this.finished = new AtomicBoolean(false); this.result = ""; } + public void initialize(String conversationId) { + this.conversationId = conversationId; + } + + public String getConversationId() { + return conversationId; + } + public void addParticipant(AgentInfo agent) { participants.add(agent); + speakingQueue.offer(agent); votes.put(agent.getId(), false); webSocketService.sendUpdate("conversation_participants", participants); } public void removeParticipant(AgentInfo agent) { participants.remove(agent); + speakingQueue.remove(agent); votes.remove(agent.getId()); webSocketService.sendUpdate("conversation_participants", participants); } @@ -61,64 +70,53 @@ public class ConversationFSM { } private void handleMessage(Message message) { - if (message == null) { - System.out.println("DEBUG: Received null message"); - return; - } - - String content = message.getContent(); - if (content == null) { - System.out.println("DEBUG: Message content is null"); - return; - } - - System.out.println("DEBUG: Received message: " + content); - - if (content.startsWith("/vote")) { + if (message.getContent().startsWith("/vote")) { handleVote(message.getSender()); } else { - String stateTransitionTask = "Decide the next conversation state based on this message: " + content + - "\nCurrent state: " + currentState + - "\nParticipants: " + participants + - "\nPossible states: " + Arrays.toString(ConversationState.values()); - - String reasoning = model.generate(stateTransitionTask, null); - - String decisionPrompt = "Based on this reasoning:\n" + reasoning + - "\nProvide the next conversation state. Choose from: " + - Arrays.toString(ConversationState.values()) + - "\nResponse format: STATE: "; - String response = model.generate(decisionPrompt, null); - - ConversationState newState = parseStateFromResponse(response); - transitionTo(newState); - - // Broadcast the message to all participants - for (AgentInfo agent : participants) { - if (!agent.getId().equals(message.getSender())) { - agent.receiveMessage(message); - } - } - - webSocketService.sendUpdate("conversation_message", message); + broadcastMessage(message); + updateState(message); + notifyNextSpeaker(); } } - private ConversationState parseStateFromResponse(String response) { - String[] parts = response.split(":"); - if (parts.length > 1) { - String stateName = parts[1].trim().toUpperCase(); - try { - return ConversationState.valueOf(stateName); - } catch (IllegalArgumentException e) { - System.out.println("Invalid state name: " + stateName + ". Defaulting to DISCUSSION."); - return ConversationState.DISCUSSION; + private void broadcastMessage(Message message) { + for (AgentInfo agent : participants) { + if (!agent.getId().equals(message.getSender())) { + agent.receiveMessage(message); } } - System.out.println("Could not parse state from response: " + response + ". Defaulting to DISCUSSION."); - return ConversationState.DISCUSSION; + webSocketService.sendUpdate("conversation_message", message); } - + + private void updateState(Message message) { + String stateTransitionTask = "Decide the next conversation state based on this message: " + message.getContent() + + "\nCurrent state: " + currentState + + "\nParticipants: " + participants; + + String reasoning = model.generate(stateTransitionTask, null); + + String decisionPrompt = "Based on this reasoning:\n" + reasoning + + "\nProvide the next conversation state (DISCUSSION,\n" + // + " TASK_GATHERING_INFO,\n" + // + " TASK,\n" + // + " TASK_PLANNING,\n" + // + " TASK_ASSIGNMENT,\n" + // + " EXECUTION,\n" + // + " CONCLUSION). Only give the single word answer in all caps only from the given options."; + String response = model.generate(decisionPrompt, null); + + ConversationState newState = ConversationState.valueOf(response.trim()); + transitionTo(newState); + } + + private void notifyNextSpeaker() { + AgentInfo nextSpeaker = speakingQueue.poll(); + if (nextSpeaker != null) { + nextSpeaker.notifyTurn(this); + speakingQueue.offer(nextSpeaker); + } + } + private void handleVote(String agentId) { votes.put(agentId, true); checkVotes(); @@ -152,8 +150,7 @@ public class ConversationFSM { } private List getPossibleTransitions() { - // This is a simplified version. You might want to implement more complex logic. - return Arrays.asList(ConversationState.values()).stream() + return Arrays.stream(ConversationState.values()) .map(Enum::name) .collect(Collectors.toList()); } diff --git a/src/main/java/com/ioa/conversation/ConversationManager.java b/src/main/java/com/ioa/conversation/ConversationManager.java index e2782ff..81a2079 100644 --- a/src/main/java/com/ioa/conversation/ConversationManager.java +++ b/src/main/java/com/ioa/conversation/ConversationManager.java @@ -25,10 +25,15 @@ public class ConversationManager { public String createConversation() { String conversationId = UUID.randomUUID().toString(); ConversationFSM conversation = new ConversationFSM(model, webSocketService); + conversation.initialize(conversationId); conversations.put(conversationId, conversation); return conversationId; } + public ConversationFSM getConversation(String conversationId) { + return conversations.get(conversationId); + } + public void addParticipant(String conversationId, AgentInfo agent) { ConversationFSM conversation = conversations.get(conversationId); if (conversation != null) { @@ -48,6 +53,7 @@ public class ConversationManager { ConversationFSM conversation = conversations.get(conversationId); if (conversation != null) { if (content == null) { + Arrays.toString(Thread.currentThread().getStackTrace()).replace( ',', '\n' ); System.out.println("WARNING: Attempting to post null content message"); return; } diff --git a/src/main/java/com/ioa/conversation/ConversationState.java b/src/main/java/com/ioa/conversation/ConversationState.java index 470d24d..37fc097 100644 --- a/src/main/java/com/ioa/conversation/ConversationState.java +++ b/src/main/java/com/ioa/conversation/ConversationState.java @@ -3,6 +3,8 @@ package com.ioa.conversation; public enum ConversationState { DISCUSSION, TASK_GATHERING_INFO, + TASK, + TASK_PLANNING, TASK_ASSIGNMENT, EXECUTION, CONCLUSION diff --git a/src/main/java/com/ioa/service/WebSocketService.java b/src/main/java/com/ioa/service/WebSocketService.java index a593391..38ce9c8 100644 --- a/src/main/java/com/ioa/service/WebSocketService.java +++ b/src/main/java/com/ioa/service/WebSocketService.java @@ -52,6 +52,7 @@ public class WebSocketService { // Create a new Message object Message parsedMessage = new Message(conversationId, sender, content); + System.out.println("DEBUG: WebSocket message: " + payload); // Process the message conversationManager.postMessage(conversationId, sender, content); } catch (Exception e) { diff --git a/src/main/java/com/ioa/task/TaskManager.java b/src/main/java/com/ioa/task/TaskManager.java index 8f8fd64..979026f 100644 --- a/src/main/java/com/ioa/task/TaskManager.java +++ b/src/main/java/com/ioa/task/TaskManager.java @@ -2,15 +2,19 @@ package com.ioa.task; import com.ioa.agent.AgentInfo; import com.ioa.agent.AgentRegistry; +import com.ioa.conversation.ConversationFSM; +import com.ioa.conversation.ConversationManager; import com.ioa.model.BedrockLanguageModel; import com.ioa.service.WebSocketService; import com.ioa.tool.ToolRegistry; import com.ioa.util.TreeOfThought; -import com.ioa.conversation.ConversationManager; +import com.ioa.conversation.Message; import org.springframework.stereotype.Component; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; @Component public class TaskManager { @@ -21,7 +25,8 @@ public class TaskManager { private TreeOfThought treeOfThought; private ConversationManager conversationManager; - public TaskManager(AgentRegistry agentRegistry, BedrockLanguageModel model, ToolRegistry toolRegistry, TreeOfThought treeOfThought, ConversationManager conversationManager) { + public TaskManager(AgentRegistry agentRegistry, BedrockLanguageModel model, ToolRegistry toolRegistry, + TreeOfThought treeOfThought, ConversationManager conversationManager) { this.agentRegistry = agentRegistry; this.model = model; this.toolRegistry = toolRegistry; @@ -33,61 +38,43 @@ public class TaskManager { tasks.put(task.getId(), task); } - public void executeTask(String taskId, String conversationId) { + public void executeTask(String taskId, List team) { Task task = tasks.get(taskId); - AgentInfo agent = task.getAssignedAgent(); - - System.out.println("DEBUG: Executing task: " + taskId + " for agent: " + agent.getId()); - - conversationManager.postMessage(conversationId, agent.getId(), "Starting task: " + task.getDescription()); - - String executionPlanningTask = "Plan the execution of this task: " + task.getDescription() + - "\nAssigned agent capabilities: " + agent.getCapabilities() + - "\nAvailable tools: " + agent.getTools(); - - System.out.println("DEBUG: Generating execution plan for task: " + taskId); - Map reasoningResult = treeOfThought.reason(executionPlanningTask, 3, 2); - String reasoning = (String) reasoningResult.get("reasoning"); - - System.out.println("DEBUG: Execution plan generated: " + reasoning); - - if (reasoning == null || reasoning.isEmpty()) { - System.out.println("WARNING: Empty execution plan generated for task: " + taskId); - reasoning = "No execution plan generated. Proceeding with a general approach to organize execution plan."; + if (task == null) { + System.out.println("ERROR: Task with ID " + taskId + " not found."); + return; } - - conversationManager.postMessage(conversationId, agent.getId(), "Task execution plan:\n" + reasoning); - - String executionPrompt = "Based on this execution plan:\n" + reasoning + - "\nExecute the task using the available tools and provide the result."; - Map executionResult = treeOfThought.reason(executionPrompt, 1, 1); - String response = (String) executionResult.get("reasoning"); - - if (response == null || response.isEmpty()) { - System.out.println("WARNING: Empty response generated for task execution: " + taskId); - response = "Unable to execute the task due to technical difficulties. Please try again or seek assistance."; + + String conversationId = conversationManager.createConversation(); + ConversationFSM conversation = conversationManager.getConversation(conversationId); + + for (AgentInfo agent : team) { + conversation.addParticipant(agent); } - - String result = executeToolsFromResponse(response, agent); - - if (result == null || result.isEmpty()) { - result = "No specific actions were taken based on the execution plan. Please review the plan and provide more detailed instructions if necessary."; - } - - task.setResult(result); - - conversationManager.postMessage(conversationId, agent.getId(), "Task result: " + result); - } - - private String executeToolsFromResponse(String response, AgentInfo agent) { - StringBuilder result = new StringBuilder(); - for (String tool : agent.getTools()) { - if (response.contains(tool)) { - Object toolInstance = toolRegistry.getTool(tool); - // Execute the tool (this is a simplified representation) - result.append(tool).append(" result: ").append(toolInstance.toString()).append("\n"); + + conversation.postMessage(new Message(conversationId, "SYSTEM", "Let's work on the task: " + task.getDescription())); + + // Allow agents to interact for a maximum of 10 minutes + long startTime = System.currentTimeMillis(); + //while (!conversation.isFinished() && (System.currentTimeMillis() - startTime) < TimeUnit.MINUTES.toMillis(10)) { + while (!conversation.isFinished() && (System.currentTimeMillis() - startTime) < TimeUnit.MINUTES.toMillis(40)) { + try { + Thread.sleep(1000); // Check every second + } catch (InterruptedException e) { + e.printStackTrace(); } } - return result.toString(); + + if (!conversation.isFinished()) { + conversation.finish("Time limit reached"); + } + + String result = conversation.getResult(); + task.setResult(result); + System.out.println("Task completed. Result: " + result); + } + + public Task getTask(String taskId) { + return tasks.get(taskId); } } \ No newline at end of file diff --git a/target/classes/com/ioa/IoASystem.class b/target/classes/com/ioa/IoASystem.class index 93d8cbc..7271020 100644 Binary files a/target/classes/com/ioa/IoASystem.class and b/target/classes/com/ioa/IoASystem.class differ diff --git a/target/classes/com/ioa/agent/AgentInfo.class b/target/classes/com/ioa/agent/AgentInfo.class index d55c746..0fc80f6 100644 Binary files a/target/classes/com/ioa/agent/AgentInfo.class and b/target/classes/com/ioa/agent/AgentInfo.class differ diff --git a/target/classes/com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class b/target/classes/com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class index 2c2c017..ee81057 100644 Binary files a/target/classes/com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class and b/target/classes/com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class differ diff --git a/target/classes/com/ioa/conversation/ConversationFSM.class b/target/classes/com/ioa/conversation/ConversationFSM.class index da0dd84..734d2c7 100644 Binary files a/target/classes/com/ioa/conversation/ConversationFSM.class and b/target/classes/com/ioa/conversation/ConversationFSM.class differ diff --git a/target/classes/com/ioa/conversation/ConversationManager.class b/target/classes/com/ioa/conversation/ConversationManager.class index 07f856f..26669a3 100644 Binary files a/target/classes/com/ioa/conversation/ConversationManager.class and b/target/classes/com/ioa/conversation/ConversationManager.class differ diff --git a/target/classes/com/ioa/conversation/ConversationState.class b/target/classes/com/ioa/conversation/ConversationState.class index ce8022f..4396d11 100644 Binary files a/target/classes/com/ioa/conversation/ConversationState.class and b/target/classes/com/ioa/conversation/ConversationState.class differ diff --git a/target/classes/com/ioa/service/WebSocketService.class b/target/classes/com/ioa/service/WebSocketService.class index 8918a6b..a8718c2 100644 Binary files a/target/classes/com/ioa/service/WebSocketService.class and b/target/classes/com/ioa/service/WebSocketService.class differ diff --git a/target/classes/com/ioa/task/TaskManager.class b/target/classes/com/ioa/task/TaskManager.class index 0ec154f..d00726a 100644 Binary files a/target/classes/com/ioa/task/TaskManager.class and b/target/classes/com/ioa/task/TaskManager.class differ diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index c90997c..fa4e022 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,13 +1,26 @@ +com/ioa/tool/common/TranslationTool.class +com/ioa/tool/common/PriceComparisonTool.class com/ioa/service/WebSocketService.class com/ioa/tool/common/WebSearchTool.class com/ioa/conversation/ConversationFSM.class com/ioa/conversation/Message.class com/ioa/util/TreeOfThought.class com/ioa/tool/common/NewsUpdateTool.class +com/ioa/tool/common/RestaurantFinderTool.class com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class +com/ioa/IoASystem.class +com/ioa/tool/ToolRegistry.class +com/ioa/conversation/ConversationState.class com/ioa/tool/common/FinancialAdviceTool.class +com/ioa/agent/AgentRegistry.class com/ioa/team/TeamFormation.class +com/ioa/task/TaskManager.class +com/ioa/model/BedrockLanguageModel.class +com/ioa/tool/common/DistanceCalculatorTool.class com/ioa/tool/common/MovieRecommendationTool.class +com/ioa/tool/common/AppointmentSchedulerTool.class +com/ioa/agent/AgentInfo.class +com/ioa/task/Task.class com/ioa/config/WebSocketConfig.class com/ioa/conversation/ConversationManager.class com/ioa/tool/common/WeatherTool.class @@ -15,17 +28,4 @@ com/ioa/tool/common/TravelBookingTool.class com/ioa/tool/common/FitnessClassFinderTool.class com/ioa/tool/Tool.class com/ioa/tool/common/ReminderTool.class -com/ioa/tool/common/TranslationTool.class -com/ioa/tool/common/PriceComparisonTool.class -com/ioa/tool/common/RestaurantFinderTool.class -com/ioa/IoASystem.class -com/ioa/tool/ToolRegistry.class -com/ioa/conversation/ConversationState.class -com/ioa/agent/AgentRegistry.class -com/ioa/task/TaskManager.class -com/ioa/model/BedrockLanguageModel.class -com/ioa/tool/common/DistanceCalculatorTool.class -com/ioa/tool/common/AppointmentSchedulerTool.class -com/ioa/agent/AgentInfo.class -com/ioa/task/Task.class com/ioa/tool/common/RecipeTool.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index ae3efcc..b18eba9 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,16 +1,30 @@ /Users/emkay/Projects/totioa/src/main/java/com/ioa/util/TreeOfThought.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/WeatherTool.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/conversation/ConversationFSM.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/model/BedrockLanguageModel.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/conversation/ConversationState.java -/Users/emkay/Projects/totioa/src/main/java/com/ioa/task/Task.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/FinancialAdviceTool.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/conversation/Message.java -/Users/emkay/Projects/totioa/src/main/java/com/ioa/service/WebSocketService.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/TravelBookingTool.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/agent/AgentInfo.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/DistanceCalculatorTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/TranslationTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/AppointmentSchedulerTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/agent/AgentRegistry.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/task/Task.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/MovieRecommendationTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/RestaurantFinderTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/conversation/ConversationManager.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/RecipeTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/service/WebSocketService.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/PriceComparisonTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/FitnessClassFinderTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/ReminderTool.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/Tool.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/team/TeamFormation.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/ToolRegistry.java -/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/CommonTools.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/task/TaskManager.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/IoASystem.java -/Users/emkay/Projects/totioa/src/main/java/com/ioa/agent/AgentRegistry.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/NewsUpdateTool.java +/Users/emkay/Projects/totioa/src/main/java/com/ioa/tool/common/WebSearchTool.java /Users/emkay/Projects/totioa/src/main/java/com/ioa/config/WebSocketConfig.java