@tencent-ai/codebuddy-code 2.50.3 → 2.50.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencent-ai/codebuddy-code",
3
- "version": "2.50.3",
3
+ "version": "2.50.4",
4
4
  "description": "Use CodeBuddy, Tencent's AI assistant, right from your terminal. CodeBuddy can understand your codebase, edit files, run terminal commands, and handle entire workflows for you.",
5
5
  "main": "lib/node/index.js",
6
6
  "typings": "lib/node/index.d.ts",
@@ -19,7 +19,6 @@
19
19
  ],
20
20
  "tools": [
21
21
  "Task",
22
- "TaskOutput",
23
22
  "Read",
24
23
  "Write",
25
24
  "Edit",
@@ -37,6 +36,7 @@
37
36
  "WebSearch",
38
37
  "NotebookEdit",
39
38
  "TaskStop",
39
+ "TaskOutput",
40
40
  "Skill",
41
41
  "AskUserQuestion",
42
42
  "LSP",
@@ -72,6 +72,7 @@
72
72
  "WebSearch",
73
73
  "NotebookEdit",
74
74
  "TaskStop",
75
+ "TaskOutput",
75
76
  "Skill",
76
77
  "AskUserQuestion",
77
78
  "LSP",
@@ -191,6 +192,8 @@
191
192
  "TaskList",
192
193
  "WebFetch",
193
194
  "WebSearch",
195
+ "TaskStop",
196
+ "TaskOutput",
194
197
  "Skill",
195
198
  "SendMessage"
196
199
  ],
@@ -220,6 +223,8 @@
220
223
  "TaskList",
221
224
  "WebFetch",
222
225
  "WebSearch",
226
+ "TaskStop",
227
+ "TaskOutput",
223
228
  "Skill",
224
229
  "AskUserQuestion"
225
230
  ],
@@ -365,6 +370,6 @@
365
370
  "DeferToolLoading": true,
366
371
  "ImageGen": true
367
372
  },
368
- "commit": "d9942f6ec5032ddf63704af659636540b9080b97",
369
- "date": "2026-02-13T15:33:02.455Z"
373
+ "commit": "30065ec6ee215116c1f479d9550c68b33f53855a",
374
+ "date": "2026-02-14T07:50:25.920Z"
370
375
  }
@@ -24,7 +24,6 @@
24
24
  ],
25
25
  "tools": [
26
26
  "Task",
27
- "TaskOutput",
28
27
  "Read",
29
28
  "Write",
30
29
  "Edit",
@@ -42,6 +41,7 @@
42
41
  "WebSearch",
43
42
  "NotebookEdit",
44
43
  "TaskStop",
44
+ "TaskOutput",
45
45
  "Skill",
46
46
  "AskUserQuestion",
47
47
  "LSP",
@@ -60,7 +60,7 @@
60
60
  {
61
61
  "name": "general-purpose",
62
62
  "instructions": "cli-agent-prompt",
63
- "description": "taskgeneral-purpose agent",
63
+ "description": "general-purpose agent",
64
64
  "tools": [
65
65
  "Read",
66
66
  "Write",
@@ -77,6 +77,7 @@
77
77
  "WebSearch",
78
78
  "NotebookEdit",
79
79
  "TaskStop",
80
+ "TaskOutput",
80
81
  "Skill",
81
82
  "AskUserQuestion",
82
83
  "LSP",
@@ -197,7 +198,8 @@
197
198
  "WebFetch",
198
199
  "WebSearch",
199
200
  "Skill",
200
- "SendMessage"
201
+ "SendMessage",
202
+ "TaskOutput"
201
203
  ],
202
204
  "asTool": true,
203
205
  "tags": [
@@ -226,7 +228,8 @@
226
228
  "WebFetch",
227
229
  "WebSearch",
228
230
  "Skill",
229
- "AskUserQuestion"
231
+ "AskUserQuestion",
232
+ "TaskOutput"
230
233
  ],
231
234
  "asTool": true,
232
235
  "tags": [
@@ -413,6 +416,6 @@
413
416
  "DeferToolLoading": true,
414
417
  "ImageGen": true
415
418
  },
416
- "commit": "d9942f6ec5032ddf63704af659636540b9080b97",
417
- "date": "2026-02-13T15:33:02.491Z"
419
+ "commit": "30065ec6ee215116c1f479d9550c68b33f53855a",
420
+ "date": "2026-02-14T07:50:25.803Z"
418
421
  }
package/product.ioa.json CHANGED
@@ -41,7 +41,6 @@
41
41
  ],
42
42
  "tools": [
43
43
  "Task",
44
- "TaskOutput",
45
44
  "Read",
46
45
  "Write",
47
46
  "Edit",
@@ -59,6 +58,7 @@
59
58
  "WebSearch",
60
59
  "NotebookEdit",
61
60
  "TaskStop",
61
+ "TaskOutput",
62
62
  "Skill",
63
63
  "AskUserQuestion",
64
64
  "LSP",
@@ -96,6 +96,7 @@
96
96
  "WebSearch",
97
97
  "NotebookEdit",
98
98
  "TaskStop",
99
+ "TaskOutput",
99
100
  "Skill",
100
101
  "AskUserQuestion",
101
102
  "LSP",
@@ -224,6 +225,8 @@
224
225
  "TaskList",
225
226
  "WebFetch",
226
227
  "WebSearch",
228
+ "TaskStop",
229
+ "TaskOutput",
227
230
  "Skill",
228
231
  "SendMessage"
229
232
  ],
@@ -253,6 +256,8 @@
253
256
  "TaskList",
254
257
  "WebFetch",
255
258
  "WebSearch",
259
+ "TaskStop",
260
+ "TaskOutput",
256
261
  "Skill",
257
262
  "AskUserQuestion"
258
263
  ],
@@ -631,6 +636,6 @@
631
636
  "ImageGen": true,
632
637
  "ImageEdit": true
633
638
  },
634
- "commit": "d9942f6ec5032ddf63704af659636540b9080b97",
635
- "date": "2026-02-13T15:33:02.510Z"
639
+ "commit": "30065ec6ee215116c1f479d9550c68b33f53855a",
640
+ "date": "2026-02-14T07:50:25.927Z"
636
641
  }
package/product.json CHANGED
@@ -434,7 +434,7 @@
434
434
  },
435
435
  {
436
436
  "name": "tool-task-description",
437
- "template": "Launch a new agent to handle complex, multi-step tasks autonomously.\n\nThe Task tool launches specialized agents (subprocesses) that autonomously handle complex tasks. Each agent type has specific capabilities and tools available to it.\n\nAvailable agent types and the tools they have access to:\n- general-purpose: General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you. (Tools: *)\n{%- if agents and agents.length > 0 -%}\n{%- for agent in agents -%}\n{%- if agent.asTool %}\n- {{agent.name}}: {{agent.description}} (Tools: {%- if agent.tools and agent.tools.length > 0 -%}{{agent.tools.join(',')}}{%- endif -%})\n{%- endif -%}\n{%- endfor -%}\n{%- endif %}\n\nWhen using the Task tool, you must specify a subagent_type parameter to select which agent type to use.\n\nWhen NOT to use the Task tool:\n- If you want to read a specific file path, use the Read or Glob tool instead of the Task tool, to find the match more quickly\n- If you are searching for a specific class definition like \"class Foo\", use the Glob tool instead, to find the match more quickly\n- If you are searching for code within a specific file or set of 2-3 files, use the Read tool instead of the Task tool, to find the match more quickly\n- Other tasks that are not related to the agent descriptions above\n\n\nUsage notes:\n- Always include a short description (3-5 words) summarizing what the agent will do\n- Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses\n- When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.\n- You can optionally run agents in the background using the run_in_background parameter. When an agent runs in the background, the tool result will include a Task ID. To check on the agent's progress or retrieve its results, use the TaskOutput tool.\n- Agents can be resumed using the `resume` parameter by passing the agent ID from a previous invocation. When resumed, the agent continues with its full previous context preserved. When NOT resuming, each invocation starts fresh and you should provide a detailed task description with all necessary context.\n- When the agent is done, it will return a single message back to you along with its agent ID. You can use this ID to resume the agent later if needed for follow-up work.\n- Provide clear, detailed prompts so the agent can work autonomously and return exactly the information you need.\n- Agents with \"access to current context\" can see the full conversation history before the tool call. When using these agents, you can write concise prompts that reference earlier context (e.g., \"investigate the error discussed above\") instead of repeating information. The agent will receive all prior messages and understand the context.\n- The agent's outputs should generally be trusted\n- Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent\n- If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.\n- If the user specifies that they want you to run agents \"in parallel\", you MUST send a single message with multiple Task tool use content blocks. For example, if you need to launch both a code-reviewer agent and a test-runner agent in parallel, send a single message with both tool calls.\n\n{%- if teamEnabled %}\n## Spawning Teammates\n\nWhen a team is active (created via TeamCreate), you can spawn teammates by providing the `name` and optionally `team_name` parameters:\n\n- `name`: Name for the spawned agent (e.g., \"researcher\", \"tester\", \"frontend-dev\")\n- `team_name`: Team name for spawning. Uses current team context if omitted.\n- `mode`: Permission mode for the spawned teammate (e.g., \"plan\" to require plan approval)\n- `max_turns`: Maximum number of agentic turns (API round-trips) before the agent stops\n\nTeammates always run in the background in detached mode. They communicate via the SendMessage tool and coordinate through the shared task list.\n{%- endif %}\n\nExample usage:\n\n<example_agent_descriptions>\n\"code-reviewer\": use this agent after you are done writing a signficant piece of code\n\"greeting-responder\": use this agent when to respond to user greetings with a friendly joke\n</example_agent_description>\n\n<example>\nuser: \"Please write a function that checks if a number is prime\"\nassistant: Sure let me write a function that checks if a number is prime\nassistant: First let me use the Write tool to write a function that checks if a number is prime\nassistant: I'm going to use the Write tool to write the following code:\n<code>\nfunction isPrime(n) {\n if (n <= 1) return false\n for (let i = 2; i * i <= n; i++) {\n if (n % i === 0) return false\n }\n return true\n}\n</code>\n<commentary>\nSince a signficant piece of code was written and the task was completed, now use the code-reviewer agent to run the tests\n</commentary>\nassistant: Now let me use the code-reviewer agent to run the tests\nassistant: Uses the Task tool to launch the code-reviewer agent\n</example>\n\n<example>\nuser: \"Hello\"\n<commentary>\nSince the user is greeting, use the greeting-responder agent to respond with a friendly joke\n</commentary>\nassistant: \"I'm going to use the Task tool to launch the greeting-responder agent\"\n</example>\n"
437
+ "template": "Launch a new agent to handle complex, multi-step tasks autonomously.\n\nThe Task tool launches specialized agents (subprocesses) that autonomously handle complex tasks. Each agent type has specific capabilities and tools available to it.\n\nAvailable agent types and the tools they have access to:\n- general-purpose: General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you. (Tools: *)\n{%- if agents and agents.length > 0 -%}\n{%- for agent in agents -%}\n{%- if agent.asTool %}\n- {{agent.name}}: {{agent.description}} (Tools: {%- if agent.tools and agent.tools.length > 0 -%}{{agent.tools.join(',')}}{%- endif -%})\n{%- endif -%}\n{%- endfor -%}\n{%- endif %}\n\nWhen using the Task tool, you must specify a subagent_type parameter to select which agent type to use.\n\nWhen NOT to use the Task tool:\n- If you want to read a specific file path, use the Read or Glob tool instead of the Task tool, to find the match more quickly\n- If you are searching for a specific class definition like \"class Foo\", use the Glob tool instead, to find the match more quickly\n- If you are searching for code within a specific file or set of 2-3 files, use the Read tool instead of the Task tool, to find the match more quickly\n- Other tasks that are not related to the agent descriptions above\n\n\nUsage notes:\n- Always include a short description (3-5 words) summarizing what the agent will do\n- Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses\n- When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.\n- You can optionally run agents in the background using the run_in_background parameter. When an agent runs in the background, the tool result will include a Task ID. Background agents will automatically send their results back to you via the SendMessage tool when they complete — you do not need to poll or check on them manually.\n- When running agents in the background, the tool result is only a launch confirmation — the agent is still running. Results will arrive later via SendMessage from the background agent. Do not treat the launch confirmation as the agent's output.\n- Agents can be resumed using the `resume` parameter by passing the agent ID from a previous invocation. When resumed, the agent continues with its full previous context preserved. When NOT resuming, each invocation starts fresh and you should provide a detailed task description with all necessary context.\n- When the agent is done, it will return a single message back to you along with its agent ID. You can use this ID to resume the agent later if needed for follow-up work.\n- Provide clear, detailed prompts so the agent can work autonomously and return exactly the information you need.\n- Agents with \"access to current context\" can see the full conversation history before the tool call. When using these agents, you can write concise prompts that reference earlier context (e.g., \"investigate the error discussed above\") instead of repeating information. The agent will receive all prior messages and understand the context.\n- The agent's outputs should generally be trusted\n- Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent\n- If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.\n- If the user specifies that they want you to run agents \"in parallel\", you MUST send a single message with multiple Task tool use content blocks. For example, if you need to launch both a code-reviewer agent and a test-runner agent in parallel, send a single message with both tool calls.\n\n{%- if teamEnabled %}\n## Spawning Teammates\n\nWhen a team is active (created via TeamCreate), you can spawn teammates by providing the `name` and optionally `team_name` parameters:\n\n- `name`: Name for the spawned agent (e.g., \"researcher\", \"tester\", \"frontend-dev\")\n- `team_name`: Team name for spawning. Uses current team context if omitted.\n- `mode`: Permission mode for the spawned teammate (e.g., \"plan\" to require plan approval)\n- `max_turns`: Maximum number of agentic turns (API round-trips) before the agent stops\n\nTeammates always run in the background in detached mode. They communicate via the SendMessage tool and coordinate through the shared task list.\n{%- endif %}\n\nExample usage:\n\n<example_agent_descriptions>\n\"code-reviewer\": use this agent after you are done writing a signficant piece of code\n\"greeting-responder\": use this agent when to respond to user greetings with a friendly joke\n</example_agent_description>\n\n<example>\nuser: \"Please write a function that checks if a number is prime\"\nassistant: Sure let me write a function that checks if a number is prime\nassistant: First let me use the Write tool to write a function that checks if a number is prime\nassistant: I'm going to use the Write tool to write the following code:\n<code>\nfunction isPrime(n) {\n if (n <= 1) return false\n for (let i = 2; i * i <= n; i++) {\n if (n % i === 0) return false\n }\n return true\n}\n</code>\n<commentary>\nSince a signficant piece of code was written and the task was completed, now use the code-reviewer agent to run the tests\n</commentary>\nassistant: Now let me use the code-reviewer agent to run the tests\nassistant: Uses the Task tool to launch the code-reviewer agent\n</example>\n\n<example>\nuser: \"Hello\"\n<commentary>\nSince the user is greeting, use the greeting-responder agent to respond with a friendly joke\n</commentary>\nassistant: \"I'm going to use the Task tool to launch the greeting-responder agent\"\n</example>\n"
438
438
  },
439
439
  {
440
440
  "name": "tool-bash-description",
@@ -602,11 +602,11 @@
602
602
  },
603
603
  {
604
604
  "name": "tool-sendmessage-description",
605
- "template": "# SendMessageTool\n\nSend messages to agent teammates and handle protocol requests/responses in a team.\n\n## Message Types\n\n### type: \"message\" - Send a Direct Message\n\nSend a message to a **single specific teammate**. You MUST specify the recipient.\n\n**IMPORTANT for teammates**: Your plain text output is NOT visible to the team lead or other teammates. To communicate with anyone on your team, you **MUST** use this tool. Just typing a response or acknowledgment in text is not enough.\n\n```\n{\n \"type\": \"message\",\n \"recipient\": \"researcher\",\n \"content\": \"Your message here\",\n \"summary\": \"Brief status update on auth module\"\n}\n```\n\n- **recipient**: The name of the teammate to message (required)\n- **content**: The message text (required)\n- **summary**: A 5-10 word summary shown as preview in the UI (required)\n\n### type: \"broadcast\" - Send Message to ALL Teammates (USE SPARINGLY)\n\nSend the **same message to everyone** on the team at once.\n\n**WARNING: Broadcasting is expensive.** Each broadcast sends a separate message to every teammate, which means:\n- N teammates = N separate message deliveries\n- Each delivery consumes API resources\n- Costs scale linearly with team size\n\n```\n{\n \"type\": \"broadcast\",\n \"content\": \"Message to send to all teammates\",\n \"summary\": \"Critical blocking issue found\"\n}\n```\n\n- **content**: The message content to broadcast (required)\n- **summary**: A 5-10 word summary shown as preview in the UI (required)\n\n**CRITICAL: Use broadcast only when absolutely necessary.** Valid use cases:\n- Critical issues requiring immediate team-wide attention (e.g., \"stop all work, blocking bug found\")\n- Major announcements that genuinely affect every teammate equally\n\n**Default to \"message\" instead of \"broadcast\".** Use \"message\" for:\n- Responding to a single teammate\n- Normal back-and-forth communication\n- Following up on a task with one person\n- Sharing findings relevant to only some teammates\n- Any message that doesn't require everyone's attention\n\n### type: \"shutdown_request\" - Request a Teammate to Shut Down\n\nUse this to ask a teammate to gracefully shut down:\n\n```\n{\n \"type\": \"shutdown_request\",\n \"recipient\": \"researcher\",\n \"content\": \"Task complete, wrapping up the session\"\n}\n```\n\nThe teammate will receive a shutdown request and can either approve (exit) or reject (continue working).\n\n### type: \"shutdown_response\" - Respond to a Shutdown Request\n\n#### Approve Shutdown\n\nWhen you receive a shutdown request as a JSON message with `type: \"shutdown_request\"`, you **MUST** respond to approve or reject it. Do NOT just acknowledge the request in text - you must actually call this tool.\n\n```\n{\n \"type\": \"shutdown_response\",\n \"request_id\": \"abc-123\",\n \"approve\": true\n}\n```\n\n**IMPORTANT**: Extract the `requestId` from the JSON message and pass it as `request_id` to the tool. Simply saying \"I'll shut down\" is not enough - you must call the tool.\n\nThis will send confirmation to the leader and terminate your process.\n\n#### Reject Shutdown\n\n```\n{\n \"type\": \"shutdown_response\",\n \"request_id\": \"abc-123\",\n \"approve\": false,\n \"content\": \"Still working on task #3, need 5 more minutes\"\n}\n```\n\nThe leader will receive your rejection with the reason.\n\n### type: \"plan_approval_response\" - Approve or Reject a Teammate's Plan\n\n#### Approve Plan\n\nWhen a teammate with `plan_mode_required` calls ExitPlanMode, they send you a plan approval request as a JSON message with `type: \"plan_approval_request\"`. Use this to approve their plan:\n\n```\n{\n \"type\": \"plan_approval_response\",\n \"request_id\": \"abc-123\",\n \"recipient\": \"researcher\",\n \"approve\": true\n}\n```\n\nAfter approval, the teammate will automatically exit plan mode and can proceed with implementation.\n\n#### Reject Plan\n\n```\n{\n \"type\": \"plan_approval_response\",\n \"request_id\": \"abc-123\",\n \"recipient\": \"researcher\",\n \"approve\": false,\n \"content\": \"Please add error handling for the API calls\"\n}\n```\n\nThe teammate will receive the rejection with your feedback and can revise their plan.\n\n## Important Notes\n\n- Messages from teammates are automatically delivered to you. You do NOT need to manually check your inbox.\n- When reporting on teammate messages, you do NOT need to quote the original message - it's already rendered to the user.\n- **IMPORTANT**: Always refer to teammates by their NAME (e.g., \"team-lead\", \"researcher\", \"tester\"), never by UUID.\n- Do NOT send structured JSON status messages. Use TaskUpdate to mark tasks completed and the system will automatically send idle notifications when you stop.\n"
605
+ "template": "# SendMessageTool\n\nSend messages to agent teammates and handle protocol requests/responses in a team.\n\n## Message Types\n\n### type: \"message\" - Send a Direct Message\n\nSend a message to a **single specific teammate**. You MUST specify the recipient.\n\n**IMPORTANT for teammates**: Your plain text output is NOT visible to the team lead or other teammates. To communicate with anyone on your team, you **MUST** use this tool. Just typing a response or acknowledgment in text is not enough.\n\n```\n{\n \"type\": \"message\",\n \"recipient\": \"researcher\",\n \"content\": \"Your message here\",\n \"summary\": \"Brief status update on auth module\"\n}\n```\n\n- **recipient**: The name of the teammate to message (required)\n- **content**: The message text (required)\n- **summary**: A 5-10 word summary shown as preview in the UI (required)\n\n### type: \"broadcast\" - Send Message to ALL Teammates (USE SPARINGLY)\n\nSend the **same message to everyone** on the team at once.\n\n**WARNING: Broadcasting is expensive.** Each broadcast sends a separate message to every teammate, which means:\n- N teammates = N separate message deliveries\n- Each delivery consumes API resources\n- Costs scale linearly with team size\n\n```\n{\n \"type\": \"broadcast\",\n \"content\": \"Message to send to all teammates\",\n \"summary\": \"Critical blocking issue found\"\n}\n```\n\n- **content**: The message content to broadcast (required)\n- **summary**: A 5-10 word summary shown as preview in the UI (required)\n\n**CRITICAL: Use broadcast only when absolutely necessary.** Valid use cases:\n- Critical issues requiring immediate team-wide attention (e.g., \"stop all work, blocking bug found\")\n- Major announcements that genuinely affect every teammate equally\n\n**Default to \"message\" instead of \"broadcast\".** Use \"message\" for:\n- Responding to a single teammate\n- Normal back-and-forth communication\n- Following up on a task with one person\n- Sharing findings relevant to only some teammates\n- Any message that doesn't require everyone's attention\n\n### type: \"shutdown_request\" - Request a Teammate to Shut Down\n\nUse this to ask a teammate to gracefully shut down:\n\n```\n{\n \"type\": \"shutdown_request\",\n \"recipient\": \"researcher\",\n \"content\": \"Task complete, wrapping up the session\"\n}\n```\n\nThe teammate will receive a shutdown request and can either approve (exit) or reject (continue working).\n\n### type: \"shutdown_response\" - Respond to a Shutdown Request\n\n#### Approve Shutdown\n\nWhen you receive a shutdown request as a JSON message with `type: \"shutdown_request\"`, you **MUST** respond to approve or reject it. Do NOT just acknowledge the request in text - you must actually call this tool.\n\n```\n{\n \"type\": \"shutdown_response\",\n \"request_id\": \"abc-123\",\n \"approve\": true\n}\n```\n\n**IMPORTANT**: Extract the `requestId` from the JSON message and pass it as `request_id` to the tool. Simply saying \"I'll shut down\" is not enough - you must call the tool.\n\nThis will send confirmation to the leader and terminate your process.\n\n#### Reject Shutdown\n\n```\n{\n \"type\": \"shutdown_response\",\n \"request_id\": \"abc-123\",\n \"approve\": false,\n \"content\": \"Still working on task #3, need 5 more minutes\"\n}\n```\n\nThe leader will receive your rejection with the reason.\n\n### type: \"plan_approval_response\" - Approve or Reject a Teammate's Plan\n\n#### Approve Plan\n\nWhen a teammate with `plan_mode_required` calls ExitPlanMode, they send you a plan approval request as a JSON message with `type: \"plan_approval_request\"`. Use this to approve their plan:\n\n```\n{\n \"type\": \"plan_approval_response\",\n \"request_id\": \"abc-123\",\n \"recipient\": \"researcher\",\n \"approve\": true\n}\n```\n\nAfter approval, the teammate will automatically exit plan mode and can proceed with implementation.\n\n#### Reject Plan\n\n```\n{\n \"type\": \"plan_approval_response\",\n \"request_id\": \"abc-123\",\n \"recipient\": \"researcher\",\n \"approve\": false,\n \"content\": \"Please add error handling for the API calls\"\n}\n```\n\nThe teammate will receive the rejection with your feedback and can revise their plan.\n\n## Important Notes\n\n- Messages from teammates are automatically delivered to you. You do NOT need to manually check your inbox.\n- When reporting on teammate messages, you do NOT need to quote the original message - it's already rendered to the user.\n- **IMPORTANT**: Always refer to teammates by their NAME (e.g., \"team-lead\", \"researcher\", \"tester\"), never by UUID.\n- Do NOT send structured JSON status messages. Use TaskUpdate to mark tasks completed and the system will automatically send idle notifications when you stop.\n\n## Background Agent Usage\n\nThis tool is also available to **background agents** launched via the Task tool with `run_in_background: true`. Background agents should use this tool to send their results back to the main agent:\n\n```\n{\n \"type\": \"message\",\n \"recipient\": \"main\",\n \"content\": \"Here are my findings: ...\",\n \"summary\": \"Completed analysis of auth module\"\n}\n```\n\n- **recipient**: Use `\"main\"` to send results back to the main agent\n- The main agent will automatically receive and process the message\n"
606
606
  },
607
607
  {
608
608
  "name": "team-sys-prompt",
609
- "template": "# Agent Teammate Communication\n\nYou are **{{ memberName }}**, a teammate in team **{{ teamName }}**.\n\nYour fellow team members are: {{ teamMembers }}\n\nIMPORTANT: You are running as an agent in a team. To communicate with anyone on your team:\n- Use the SendMessage tool with type `message` to send messages to specific teammates\n- Use the SendMessage tool with type `broadcast` sparingly for team-wide announcements\n\nJust writing a response in text is NOT visible to others on your team - you MUST use the SendMessage tool.\n\nThe user interacts primarily with the team lead. Your work is coordinated through the task system and teammate messaging.\n\n## Key Rules\n- Refer to teammates by their NAME when sending messages (e.g. `recipient: \"team-lead\"`)\n- When you complete a task, use TaskUpdate to mark it as completed, then check TaskList for next available work\n- When you need input from a teammate, send them a message and wait\n- When you finish all assigned work, send a summary to the team lead\n- Do NOT send structured JSON status messages. Communicate in plain text.\n"
609
+ "template": "# Agent Teammate Communication\n\nYou are **{{ memberName }}**, a teammate in team **{{ teamName }}**.\n\nYour fellow team members are: {{ teamMembers }}\n\nIMPORTANT: You are running as an agent in a team. To communicate with anyone on your team:\n- Use the SendMessage tool with type `message` to send messages to specific teammates\n- Use the SendMessage tool with type `broadcast` sparingly for team-wide announcements\n\nJust writing a response in text is NOT visible to others on your team - you MUST use the SendMessage tool.\n\nThe user interacts primarily with the team lead. Your work is coordinated through the task system and teammate messaging.\n\n## Key Rules\n- Refer to teammates by their NAME when sending messages (e.g. `recipient: \"team-lead\"` or `recipient: \"<teammate-name>\"`)\n- When you complete a task, use TaskUpdate to mark it as completed, then check TaskList for next available work\n- When you need input from a teammate, send them a message and wait\n- When you finish all assigned work, send a summary of your results to `team-lead`\n- Do NOT send structured JSON status messages. Communicate in plain text.\n"
610
610
  },
611
611
  {
612
612
  "name": "output-style-explanatory",
@@ -694,7 +694,6 @@
694
694
  ],
695
695
  "tools": [
696
696
  "Task",
697
- "TaskOutput",
698
697
  "Read",
699
698
  "Write",
700
699
  "Edit",
@@ -712,6 +711,7 @@
712
711
  "WebSearch",
713
712
  "NotebookEdit",
714
713
  "TaskStop",
714
+ "TaskOutput",
715
715
  "Skill",
716
716
  "AskUserQuestion",
717
717
  "LSP",
@@ -748,6 +748,7 @@
748
748
  "WebSearch",
749
749
  "NotebookEdit",
750
750
  "TaskStop",
751
+ "TaskOutput",
751
752
  "Skill",
752
753
  "AskUserQuestion",
753
754
  "LSP",
@@ -877,7 +878,8 @@
877
878
  "WebFetch",
878
879
  "WebSearch",
879
880
  "Skill",
880
- "SendMessage"
881
+ "SendMessage",
882
+ "TaskOutput"
881
883
  ],
882
884
  "asTool": true,
883
885
  "tags": [
@@ -906,7 +908,8 @@
906
908
  "WebFetch",
907
909
  "WebSearch",
908
910
  "Skill",
909
- "AskUserQuestion"
911
+ "AskUserQuestion",
912
+ "TaskOutput"
910
913
  ],
911
914
  "asTool": true,
912
915
  "tags": [
@@ -1162,14 +1165,6 @@
1162
1165
  "name": "ExitPlanMode",
1163
1166
  "description": "tool-exit-planmode-description"
1164
1167
  },
1165
- {
1166
- "name": "BashOutput",
1167
- "description": "tool-bashoutput-description"
1168
- },
1169
- {
1170
- "name": "TaskOutput",
1171
- "description": "tool-taskoutput-description"
1172
- },
1173
1168
  {
1174
1169
  "name": "KillShell",
1175
1170
  "description": "tool-killshell-description"
@@ -1178,6 +1173,10 @@
1178
1173
  "name": "TaskStop",
1179
1174
  "description": "tool-taskstop-description"
1180
1175
  },
1176
+ {
1177
+ "name": "TaskOutput",
1178
+ "description": "tool-taskoutput-description"
1179
+ },
1181
1180
  {
1182
1181
  "name": "SlashCommand",
1183
1182
  "description": "tool-slashcommand-description"
@@ -1223,6 +1222,6 @@
1223
1222
  "description": "tool-sendmessage-description"
1224
1223
  }
1225
1224
  ],
1226
- "commit": "d9942f6ec5032ddf63704af659636540b9080b97",
1227
- "date": "2026-02-13T15:33:02.458Z"
1225
+ "commit": "30065ec6ee215116c1f479d9550c68b33f53855a",
1226
+ "date": "2026-02-14T07:50:25.971Z"
1228
1227
  }
@@ -15,7 +15,6 @@
15
15
  ],
16
16
  "tools": [
17
17
  "Task",
18
- "TaskOutput",
19
18
  "Read",
20
19
  "Write",
21
20
  "Edit",
@@ -33,6 +32,7 @@
33
32
  "WebSearch",
34
33
  "NotebookEdit",
35
34
  "TaskStop",
35
+ "TaskOutput",
36
36
  "Skill",
37
37
  "AskUserQuestion",
38
38
  "Lsp",
@@ -68,6 +68,7 @@
68
68
  "WebSearch",
69
69
  "NotebookEdit",
70
70
  "TaskStop",
71
+ "TaskOutput",
71
72
  "Skill",
72
73
  "AskUserQuestion",
73
74
  "Lsp",
@@ -187,6 +188,8 @@
187
188
  "TaskList",
188
189
  "WebFetch",
189
190
  "WebSearch",
191
+ "TaskStop",
192
+ "TaskOutput",
190
193
  "Skill",
191
194
  "SendMessage"
192
195
  ],
@@ -216,6 +219,8 @@
216
219
  "TaskList",
217
220
  "WebFetch",
218
221
  "WebSearch",
222
+ "TaskStop",
223
+ "TaskOutput",
219
224
  "Skill",
220
225
  "AskUserQuestion"
221
226
  ],
@@ -255,6 +260,6 @@
255
260
  "CustomModelsJSON": true,
256
261
  "DeferToolLoading": true
257
262
  },
258
- "commit": "d9942f6ec5032ddf63704af659636540b9080b97",
259
- "date": "2026-02-13T15:33:02.478Z"
263
+ "commit": "30065ec6ee215116c1f479d9550c68b33f53855a",
264
+ "date": "2026-02-14T07:50:25.737Z"
260
265
  }