diff --git a/frontend/src/components/TreeOfThoughtVisual.js b/frontend/src/components/TreeOfThoughtVisual.js index 120ea3b..ca1a9e6 100644 --- a/frontend/src/components/TreeOfThoughtVisual.js +++ b/frontend/src/components/TreeOfThoughtVisual.js @@ -11,8 +11,8 @@ const TreeOfThoughtVisual = ({ data }) => { const svg = d3.select(svgRef.current); svg.selectAll("*").remove(); - const width = 800; - const height = 600; + const width = 1920; + const height = 1080; const margin = { top: 20, right: 90, bottom: 30, left: 90 }; const treeLayout = d3.tree().size([height - margin.top - margin.bottom, width - margin.left - margin.right]); diff --git a/src/main/java/com/ioa/IoASystem.java b/src/main/java/com/ioa/IoASystem.java index 6b0a4c1..1468a21 100644 --- a/src/main/java/com/ioa/IoASystem.java +++ b/src/main/java/com/ioa/IoASystem.java @@ -70,7 +70,11 @@ public class IoASystem { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(IoASystem.class, args); + IoASystem system = context.getBean(IoASystem.class); + system.processTasksAndAgents(context); + } + public void processTasksAndAgents(ConfigurableApplicationContext context) { AgentRegistry agentRegistry = context.getBean(AgentRegistry.class); TeamFormation teamFormation = context.getBean(TeamFormation.class); TaskManager taskManager = context.getBean(TaskManager.class); diff --git a/src/main/java/com/ioa/service/WebSocketService.java b/src/main/java/com/ioa/service/WebSocketService.java index 0591f69..a4ee469 100644 --- a/src/main/java/com/ioa/service/WebSocketService.java +++ b/src/main/java/com/ioa/service/WebSocketService.java @@ -5,7 +5,6 @@ import org.springframework.stereotype.Service; @Service public class WebSocketService { - private final SimpMessagingTemplate messagingTemplate; public WebSocketService(SimpMessagingTemplate messagingTemplate) { @@ -13,6 +12,10 @@ public class WebSocketService { } public void sendUpdate(String topic, Object payload) { - messagingTemplate.convertAndSend("/topic/" + topic, payload); + if (payload != null) { + messagingTemplate.convertAndSend("/topic/" + topic, payload); + } else { + System.out.println("Warning: Attempted to send null payload to topic: " + topic); + } } } \ No newline at end of file diff --git a/src/main/java/com/ioa/team/TeamFormation.java b/src/main/java/com/ioa/team/TeamFormation.java index 10d2913..99f73a4 100644 --- a/src/main/java/com/ioa/team/TeamFormation.java +++ b/src/main/java/com/ioa/team/TeamFormation.java @@ -2,12 +2,9 @@ package com.ioa.team; import com.ioa.agent.AgentInfo; import com.ioa.agent.AgentRegistry; -import com.ioa.model.BedrockLanguageModel; import com.ioa.task.Task; import com.ioa.util.TreeOfThought; - import com.ioa.service.WebSocketService; - import org.springframework.stereotype.Component; import java.util.*; @@ -40,17 +37,22 @@ public class TeamFormation { String reasoning = treeOfThought.reason(teamFormationTask, 3, 2); // Send update about the reasoning process - webSocketService.sendUpdate("team_formation_reasoning", reasoning); + if (reasoning != null && !reasoning.isEmpty()) { + webSocketService.sendUpdate("team_formation_reasoning", reasoning); + } List team = parseTeamComposition(reasoning, potentialAgents); // Send update about the formed team - webSocketService.sendUpdate("team_formed", team); + if (team != null && !team.isEmpty()) { + webSocketService.sendUpdate("team_formed", team); + } return team; } + private String formatAgentTools(List agents) { return agents.stream() .map(agent -> agent.getId() + " (capabilities: " + agent.getCapabilities() + ", tools: " + agent.getTools() + ")") diff --git a/src/main/java/com/ioa/util/TreeOfThought.java b/src/main/java/com/ioa/util/TreeOfThought.java index f9dc6d7..def7618 100644 --- a/src/main/java/com/ioa/util/TreeOfThought.java +++ b/src/main/java/com/ioa/util/TreeOfThought.java @@ -4,10 +4,7 @@ import com.ioa.model.BedrockLanguageModel; import com.ioa.service.WebSocketService; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Component public class TreeOfThought { @@ -22,7 +19,7 @@ public class TreeOfThought { public String reason(String task, int depth, int branches) { Map treeData = exploreThought(task, depth, branches, "Root"); webSocketService.sendUpdate("tree_of_thought", treeData); - return (String) treeData.get("selection"); + return (String) treeData.getOrDefault("selection", "No selection made"); } private Map exploreThought(String task, int depth, int branches, String nodeName) { diff --git a/target/classes/com/ioa/IoASystem.class b/target/classes/com/ioa/IoASystem.class index ab713d3..25e6b9f 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/service/WebSocketService.class b/target/classes/com/ioa/service/WebSocketService.class index 8e1d367..cbdc7d7 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/team/TeamFormation.class b/target/classes/com/ioa/team/TeamFormation.class index 1325d7d..dd08096 100644 Binary files a/target/classes/com/ioa/team/TeamFormation.class and b/target/classes/com/ioa/team/TeamFormation.class differ diff --git a/target/classes/com/ioa/util/TreeOfThought.class b/target/classes/com/ioa/util/TreeOfThought.class index 6050784..df979f7 100644 Binary files a/target/classes/com/ioa/util/TreeOfThought.class and b/target/classes/com/ioa/util/TreeOfThought.class differ diff --git a/target/classes/static/asset-manifest.json b/target/classes/static/asset-manifest.json index b063092..a351196 100644 --- a/target/classes/static/asset-manifest.json +++ b/target/classes/static/asset-manifest.json @@ -1,15 +1,15 @@ { "files": { "main.css": "/static/css/main.e6c13ad2.css", - "main.js": "/static/js/main.1af137e7.js", + "main.js": "/static/js/main.03144112.js", "static/js/453.d855a71b.chunk.js": "/static/js/453.d855a71b.chunk.js", "index.html": "/index.html", "main.e6c13ad2.css.map": "/static/css/main.e6c13ad2.css.map", - "main.1af137e7.js.map": "/static/js/main.1af137e7.js.map", + "main.03144112.js.map": "/static/js/main.03144112.js.map", "453.d855a71b.chunk.js.map": "/static/js/453.d855a71b.chunk.js.map" }, "entrypoints": [ "static/css/main.e6c13ad2.css", - "static/js/main.1af137e7.js" + "static/js/main.03144112.js" ] } \ No newline at end of file diff --git a/target/classes/static/index.html b/target/classes/static/index.html index 93de982..3530511 100644 --- a/target/classes/static/index.html +++ b/target/classes/static/index.html @@ -1 +1 @@ -React App
\ No newline at end of file +React App
\ No newline at end of file diff --git a/target/classes/static/static/js/main.03144112.js b/target/classes/static/static/js/main.03144112.js new file mode 100644 index 0000000..2a105d2 --- /dev/null +++ b/target/classes/static/static/js/main.03144112.js @@ -0,0 +1,3 @@ +/*! For license information please see main.03144112.js.LICENSE.txt */ +(()=>{var e={446:e=>{var t=function(){if("object"===typeof self&&self)return self;if("object"===typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};e.exports=function(){if(this)return this;if("object"===typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(e){return t()}try{return __global__||t()}finally{delete Object.prototype.__global__}}()},6329:e=>{"function"===typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},5663:(e,t,n)=>{var r=n(5663);for(k in r)n.g[k]=r[k]},7237:(e,t)=>{"use strict";var n=Object.prototype.hasOwnProperty;function r(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return null}}function o(e){try{return encodeURIComponent(e)}catch(t){return null}}t.stringify=function(e,t){t=t||"";var r,i,a=[];for(i in"string"!==typeof t&&(t="?"),e)if(n.call(e,i)){if((r=e[i])||null!==r&&undefined!==r&&!isNaN(r)||(r=""),i=o(i),r=o(r),null===i||null===r)continue;a.push(i+"="+r)}return a.length?t+a.join("&"):""},t.parse=function(e){for(var t,n=/([^=?#&]+)=?([^&]*)/g,o={};t=n.exec(e);){var i=r(t[1]),a=r(t[2]);null===i||null===a||i in o||(o[i]=a)}return o}},2730:(e,t,n)=>{"use strict";var r=n(5043),o=n(8853);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n