@@ -30,6 +30,69 @@ async def list_tools() -> list[Tool]:
3030 "required" : [],
3131 },
3232 ),
33+ # Vision/Sketch tools
34+ Tool (
35+ name = "update_vision" ,
36+ description = TOOL_DESCRIPTIONS ["update_vision" ],
37+ inputSchema = {
38+ "type" : "object" ,
39+ "properties" : {
40+ "vision" : {"type" : "string" , "description" : "Project vision statement" },
41+ },
42+ "required" : ["vision" ],
43+ },
44+ ),
45+ Tool (
46+ name = "update_sketch" ,
47+ description = TOOL_DESCRIPTIONS ["update_sketch" ],
48+ inputSchema = {
49+ "type" : "object" ,
50+ "properties" : {
51+ "sketch" : {"type" : "string" , "description" : "Execution blueprint (markdown)" },
52+ },
53+ "required" : ["sketch" ],
54+ },
55+ ),
56+ # Presence tools
57+ Tool (
58+ name = "get_presence" ,
59+ description = TOOL_DESCRIPTIONS ["get_presence" ],
60+ inputSchema = {
61+ "type" : "object" ,
62+ "properties" : {},
63+ "required" : [],
64+ },
65+ ),
66+ Tool (
67+ name = "update_my_status" ,
68+ description = TOOL_DESCRIPTIONS ["update_my_status" ],
69+ inputSchema = {
70+ "type" : "object" ,
71+ "properties" : {
72+ "agent_id" : {"type" : "string" , "description" : "Your agent ID (e.g., peer-a)" },
73+ "status" : {
74+ "type" : "string" ,
75+ "enum" : ["active" , "idle" , "offline" ],
76+ "description" : "Your current status" ,
77+ },
78+ "task" : {"type" : "string" , "description" : "Current task ID (e.g., T003)" },
79+ "step" : {"type" : "string" , "description" : "Current step ID (e.g., S2)" },
80+ "message" : {"type" : "string" , "description" : "Status message" },
81+ },
82+ "required" : ["agent_id" , "status" ],
83+ },
84+ ),
85+ Tool (
86+ name = "set_idle" ,
87+ description = TOOL_DESCRIPTIONS ["set_idle" ],
88+ inputSchema = {
89+ "type" : "object" ,
90+ "properties" : {
91+ "agent_id" : {"type" : "string" , "description" : "Your agent ID (e.g., peer-a)" },
92+ },
93+ "required" : ["agent_id" ],
94+ },
95+ ),
3396 # Milestone tools
3497 Tool (
3598 name = "create_milestone" ,
@@ -283,6 +346,26 @@ async def call_tool(name: str, arguments: dict[str, Any]) -> list[TextContent]:
283346 if name == "get_context" :
284347 result = tools .get_context ()
285348
349+ # Vision/Sketch tools
350+ elif name == "update_vision" :
351+ result = tools .update_vision (vision = arguments ["vision" ])
352+ elif name == "update_sketch" :
353+ result = tools .update_sketch (sketch = arguments ["sketch" ])
354+
355+ # Presence tools
356+ elif name == "get_presence" :
357+ result = tools .get_presence ()
358+ elif name == "update_my_status" :
359+ result = tools .update_my_status (
360+ agent_id = arguments ["agent_id" ],
361+ status = arguments ["status" ],
362+ task = arguments .get ("task" ),
363+ step = arguments .get ("step" ),
364+ message = arguments .get ("message" ),
365+ )
366+ elif name == "set_idle" :
367+ result = tools .set_idle (agent_id = arguments ["agent_id" ])
368+
286369 # Milestone tools
287370 elif name == "create_milestone" :
288371 result = tools .create_milestone (
0 commit comments