neoctl 0.2.30 → 0.2.32

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.
Files changed (151) hide show
  1. package/README.md +37 -3
  2. package/dist/agents/agent-activity.d.ts +3 -0
  3. package/dist/agents/agent-activity.js +33 -6
  4. package/dist/agents/agent-activity.js.map +1 -1
  5. package/dist/agents/agent-definition.d.ts +2 -2
  6. package/dist/agents/agent-definition.js +6 -6
  7. package/dist/agents/agent-definition.js.map +1 -1
  8. package/dist/agents/agent-report-tool.d.ts +1 -1
  9. package/dist/agents/agent-report-tool.js +4 -4
  10. package/dist/agents/agent-report-tool.js.map +1 -1
  11. package/dist/agents/agent-tool.d.ts +1 -1
  12. package/dist/agents/agent-tool.js +97 -18
  13. package/dist/agents/agent-tool.js.map +1 -1
  14. package/dist/agents/local-agent-task.d.ts +12 -0
  15. package/dist/agents/local-agent-task.js +38 -1
  16. package/dist/agents/local-agent-task.js.map +1 -1
  17. package/dist/agents/smoke-agents.js +37 -26
  18. package/dist/agents/smoke-agents.js.map +1 -1
  19. package/dist/context/compaction.d.ts +20 -4
  20. package/dist/context/compaction.js +378 -187
  21. package/dist/context/compaction.js.map +1 -1
  22. package/dist/context/context-manager.d.ts +7 -1
  23. package/dist/context/context-manager.js +15 -11
  24. package/dist/context/context-manager.js.map +1 -1
  25. package/dist/context/prompts.js +8 -6
  26. package/dist/context/prompts.js.map +1 -1
  27. package/dist/context/smoke-context.js +273 -24
  28. package/dist/context/smoke-context.js.map +1 -1
  29. package/dist/core/assistant-output-filter.d.ts +1 -0
  30. package/dist/core/assistant-output-filter.js +54 -2
  31. package/dist/core/assistant-output-filter.js.map +1 -1
  32. package/dist/core/context-metrics.d.ts +1 -0
  33. package/dist/core/context-metrics.js +18 -12
  34. package/dist/core/context-metrics.js.map +1 -1
  35. package/dist/core/image-registry.d.ts +16 -3
  36. package/dist/core/image-registry.js +65 -30
  37. package/dist/core/image-registry.js.map +1 -1
  38. package/dist/core/image-storage.d.ts +15 -1
  39. package/dist/core/image-storage.js +140 -17
  40. package/dist/core/image-storage.js.map +1 -1
  41. package/dist/core/message-pipeline.js +18 -4
  42. package/dist/core/message-pipeline.js.map +1 -1
  43. package/dist/core/query-engine.d.ts +12 -2
  44. package/dist/core/query-engine.js +59 -8
  45. package/dist/core/query-engine.js.map +1 -1
  46. package/dist/core/query.d.ts +13 -2
  47. package/dist/core/query.js +144 -27
  48. package/dist/core/query.js.map +1 -1
  49. package/dist/core/run-agent.d.ts +13 -2
  50. package/dist/core/run-agent.js +16 -13
  51. package/dist/core/run-agent.js.map +1 -1
  52. package/dist/core/smoke-core-loop.js +121 -3
  53. package/dist/core/smoke-core-loop.js.map +1 -1
  54. package/dist/core/smoke-image-integrity.d.ts +1 -0
  55. package/dist/core/smoke-image-integrity.js +67 -0
  56. package/dist/core/smoke-image-integrity.js.map +1 -0
  57. package/dist/core/state.d.ts +1 -1
  58. package/dist/core/state.js.map +1 -1
  59. package/dist/index.d.ts +2 -1
  60. package/dist/index.js +2 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/model/model-metadata.json +4 -4
  63. package/dist/plugins/plugin-system.d.ts +61 -0
  64. package/dist/plugins/plugin-system.js +189 -0
  65. package/dist/plugins/plugin-system.js.map +1 -0
  66. package/dist/plugins/smoke-plugin-system.d.ts +1 -0
  67. package/dist/plugins/smoke-plugin-system.js +63 -0
  68. package/dist/plugins/smoke-plugin-system.js.map +1 -0
  69. package/dist/repl/index.js +22 -17
  70. package/dist/repl/index.js.map +1 -1
  71. package/dist/secrets/secret-redaction.d.ts +5 -0
  72. package/dist/secrets/secret-redaction.js +43 -0
  73. package/dist/secrets/secret-redaction.js.map +1 -1
  74. package/dist/secrets/secret-types.d.ts +4 -0
  75. package/dist/secrets/secret-types.js.map +1 -1
  76. package/dist/secrets/smoke-secrets.js +7 -3
  77. package/dist/secrets/smoke-secrets.js.map +1 -1
  78. package/dist/session/session-export.d.ts +2 -0
  79. package/dist/session/session-export.js +10 -0
  80. package/dist/session/session-export.js.map +1 -1
  81. package/dist/session/session-store.d.ts +41 -0
  82. package/dist/session/session-store.js +292 -59
  83. package/dist/session/session-store.js.map +1 -1
  84. package/dist/session/smoke-session.js +127 -7
  85. package/dist/session/smoke-session.js.map +1 -1
  86. package/dist/skills/smoke-skills.js +5 -5
  87. package/dist/skills/smoke-skills.js.map +1 -1
  88. package/dist/tasks/subagent-tools.d.ts +31 -0
  89. package/dist/tasks/{task-tools.js → subagent-tools.js} +26 -32
  90. package/dist/tasks/subagent-tools.js.map +1 -0
  91. package/dist/tools/builtins/edit-tool.js +24 -6
  92. package/dist/tools/builtins/edit-tool.js.map +1 -1
  93. package/dist/tools/builtins/exec-process-manager.d.ts +13 -0
  94. package/dist/tools/builtins/exec-process-manager.js +57 -7
  95. package/dist/tools/builtins/exec-process-manager.js.map +1 -1
  96. package/dist/tools/builtins/exec-tool.js +34 -10
  97. package/dist/tools/builtins/exec-tool.js.map +1 -1
  98. package/dist/tools/builtins/filesystem-tools.js +2 -4
  99. package/dist/tools/builtins/filesystem-tools.js.map +1 -1
  100. package/dist/tools/builtins/grep-tool.js +2 -3
  101. package/dist/tools/builtins/grep-tool.js.map +1 -1
  102. package/dist/tools/builtins/image-generation-tool.js +36 -46
  103. package/dist/tools/builtins/image-generation-tool.js.map +1 -1
  104. package/dist/tools/builtins/image-loader-tool.js +12 -7
  105. package/dist/tools/builtins/image-loader-tool.js.map +1 -1
  106. package/dist/tools/builtins/image-note-tool.js +8 -4
  107. package/dist/tools/builtins/image-note-tool.js.map +1 -1
  108. package/dist/tools/builtins/plan-tool.js +1 -1
  109. package/dist/tools/builtins/plan-tool.js.map +1 -1
  110. package/dist/tools/builtins/search-tool.js +3 -3
  111. package/dist/tools/builtins/search-tool.js.map +1 -1
  112. package/dist/tools/registry.d.ts +8 -1
  113. package/dist/tools/registry.js +37 -13
  114. package/dist/tools/registry.js.map +1 -1
  115. package/dist/tools/run-tool-use.js +3 -2
  116. package/dist/tools/run-tool-use.js.map +1 -1
  117. package/dist/tools/smoke-exec-process.js +12 -0
  118. package/dist/tools/smoke-exec-process.js.map +1 -1
  119. package/dist/tools/smoke-tool-system.js +68 -31
  120. package/dist/tools/smoke-tool-system.js.map +1 -1
  121. package/dist/tools/tool-catalog.d.ts +36 -0
  122. package/dist/tools/tool-catalog.js +64 -0
  123. package/dist/tools/tool-catalog.js.map +1 -0
  124. package/dist/tools/tool-orchestration.d.ts +20 -3
  125. package/dist/tools/tool-orchestration.js +29 -4
  126. package/dist/tools/tool-orchestration.js.map +1 -1
  127. package/dist/tools/tool.d.ts +13 -0
  128. package/dist/tools/tool.js.map +1 -1
  129. package/dist/types/events.d.ts +28 -1
  130. package/dist/types/messages.d.ts +13 -5
  131. package/dist/types/messages.js +4 -0
  132. package/dist/types/messages.js.map +1 -1
  133. package/dist/ui/display-message.d.ts +10 -2
  134. package/dist/ui/display-message.js +18 -9
  135. package/dist/ui/display-message.js.map +1 -1
  136. package/dist/web/index.d.ts +198 -9
  137. package/dist/web/index.js +1208 -146
  138. package/dist/web/index.js.map +1 -1
  139. package/dist/web/runtime-context-protocol.d.ts +19 -1
  140. package/dist/web/runtime-context-protocol.js +19 -3
  141. package/dist/web/runtime-context-protocol.js.map +1 -1
  142. package/dist/web/smoke-runtime-context-protocol.js +13 -2
  143. package/dist/web/smoke-runtime-context-protocol.js.map +1 -1
  144. package/dist/web/smoke-web-history.d.ts +1 -0
  145. package/dist/web/smoke-web-history.js +179 -0
  146. package/dist/web/smoke-web-history.js.map +1 -0
  147. package/dist/web/smoke-web-terminal-tasks.js +35 -3
  148. package/dist/web/smoke-web-terminal-tasks.js.map +1 -1
  149. package/package.json +4 -1
  150. package/dist/tasks/task-tools.d.ts +0 -31
  151. package/dist/tasks/task-tools.js.map +0 -1
package/README.md CHANGED
@@ -262,10 +262,10 @@ REPL 当前注册的内置工具:
262
262
 
263
263
  ### 命令执行
264
264
 
265
- `exec_command` 根据平台和 `shell` 参数选择 PowerShell、cmd、bash 或 sh。命令启动后持续收集输出;首次等待期内结束则直接返回,仍在运行则返回 `session_id`,进程不会依赖当前模型轮次存活。
265
+ `exec_command` 根据平台和 `shell` 参数选择 PowerShell、cmd、bash 或 sh。命令启动后持续收集输出;首次等待期内结束则直接返回,仍在运行则返回 `session_id`,进程不会依赖当前模型轮次存活。`timeout_ms` 约束命令进入后台前的前台阶段;一旦命令让出成为后台终端,超时计时器会被清除,任务将持续运行到自行退出、显式停止或宿主进程关闭。
266
266
 
267
267
  - `workdir`:命令工作目录。
268
- - `timeout_ms`:进程总生命周期上限。
268
+ - `timeout_ms`:命令进入后台前的前台阶段超时上限;后台任务不设自动超时。
269
269
  - `yield_time_ms`:首次等待时间;到期后将仍在运行的命令交还为后台终端。
270
270
  - `max_output_chars`:分别限制每次待读取的 stdout/stderr,超限时保留开头和结尾。
271
271
  - `tty=true`:通过 PTY/ConPTY 运行需要真实终端语义的交互程序。
@@ -286,7 +286,7 @@ REPL 当前注册的内置工具:
286
286
  压缩实现位于 `src/context/compaction.ts`:
287
287
 
288
288
  - `DeterministicCompactor` 提供可预测的 snip、microcompact、summary fallback。
289
- - 默认运行时使用 `ManualOnlyCompactor`,仅保留 manual compact 和 pure compact;显式注入其它 `Compactor` 时仍可用于测试或定制策略。
289
+ - 默认运行时使用 `ModelDrivenCompactor`:达到上下文窗口阈值时主动压缩,模型返回上下文超限错误时执行响应式压缩并重试;如需仅允许手动压缩,可显式注入 `ManualOnlyCompactor`。
290
290
  - 当工具结果过大时,session 模式下 `FileToolResultMemory` 会把完整结果写入文件,仅把预览和路径留在上下文中。
291
291
 
292
292
  ## 会话持久化
@@ -406,6 +406,40 @@ const canUseTool = createSkillAwareCanUseTool(skills, parentCanUseTool);
406
406
 
407
407
  建议:开放 `skill_create`/`skill_update` 给模型时保持 approval;对 remote/plugin skill 使用只读 root;生产环境使用 `createSkillAwareCanUseTool()` 或父级权限系统强制 `allowedTools`。
408
408
 
409
+ ## 插件协议
410
+
411
+ Core 提供 `neo-plugin/v1` 目录资源协议和 `loadNeoPlugins()` 动态加载器。Core 只定义协议、校验并加载资源,不内置任何外部插件实现。
412
+
413
+ 一个插件根目录可以包含多个直接子目录;每个插件目录必须包含 `neo-plugin.json`:
414
+
415
+ ```json
416
+ {
417
+ "protocol": "neo-plugin/v1",
418
+ "id": "example",
419
+ "name": "Example",
420
+ "version": "1.0.0",
421
+ "entry": "index.mjs",
422
+ "defaultEnabled": true
423
+ }
424
+ ```
425
+
426
+ 入口模块导出 `createPlugin(context)` 或默认工厂函数,返回以下能力之一或多项:
427
+
428
+ - `tools`: 符合 Core `Tool` 协议的工具数组。
429
+ - `promptSections`: 符合 `PromptSection` 协议的系统提示词段。
430
+ - `route(req, res, url, helpers)`: 由嵌入后台托管的 HTTP 路由处理器。
431
+
432
+ ```ts
433
+ import { loadNeoPlugins } from "neoctl";
434
+
435
+ const plugins = await loadNeoPlugins({
436
+ directories: "/absolute/path/to/plugins",
437
+ appDataDir: "/absolute/path/to/app-data",
438
+ });
439
+ ```
440
+
441
+ 加载器会校验清单版本、插件 id、入口边界、工具/提示词结构、插件 id 冲突和工具名冲突;不存在的插件根目录视为空目录。
442
+
409
443
  ## 作为库使用
410
444
 
411
445
  包入口会导出核心 agent 编排运行时、模型网关、上下文管理、任务/子代理、工具系统、session 与 safety 边界:
@@ -34,6 +34,7 @@ export interface AgentActivity {
34
34
  totalEvents: number;
35
35
  totalToolUseCount: number;
36
36
  totalTokens?: number;
37
+ activeTools?: Record<string, AgentToolActivity>;
37
38
  currentTool?: AgentToolActivity;
38
39
  timeline: AgentTimelineEntry[];
39
40
  lastText?: string;
@@ -63,6 +64,8 @@ export declare class AgentActivityStore {
63
64
  private recordMessageBlocks;
64
65
  private recordToolStarted;
65
66
  private recordToolFinished;
67
+ private removeActiveTool;
68
+ private refreshCurrentTool;
66
69
  private recordUsage;
67
70
  private push;
68
71
  private notify;
@@ -32,6 +32,8 @@ export class AgentActivityStore {
32
32
  totalEvents: existing?.totalEvents ?? 0,
33
33
  totalToolUseCount: existing?.totalToolUseCount ?? 0,
34
34
  totalTokens: existing?.totalTokens,
35
+ activeTools: {},
36
+ currentTool: undefined,
35
37
  timeline: existing?.timeline ?? [],
36
38
  lastText: existing?.lastText,
37
39
  resultPreview: undefined,
@@ -57,9 +59,18 @@ export class AgentActivityStore {
57
59
  else if (event.type === "tool.started") {
58
60
  this.recordToolStarted(activity, event.toolUse);
59
61
  }
60
- else if (event.type === "tool.finished") {
62
+ else if (event.type === "tool.progress") {
63
+ const active = activity.activeTools?.[event.toolUse.id];
64
+ if (active)
65
+ active.inputPreview = previewText(event.progress.message);
66
+ this.refreshCurrentTool(activity);
67
+ }
68
+ else if (event.type === "tool.result.available") {
61
69
  this.recordToolFinished(activity, event.toolUse, event.ok);
62
70
  }
71
+ else if (event.type === "tool.finished") {
72
+ this.removeActiveTool(activity, event.toolUse.id);
73
+ }
63
74
  else if (event.type === "usage") {
64
75
  this.recordUsage(activity, event.usage);
65
76
  }
@@ -86,6 +97,7 @@ export class AgentActivityStore {
86
97
  activity.totalTokens = result.total_tokens ?? activity.totalTokens;
87
98
  activity.totalToolUseCount = result.total_tool_use_count || activity.totalToolUseCount;
88
99
  activity.resultPreview = previewText(result.content);
100
+ activity.activeTools = {};
89
101
  activity.currentTool = undefined;
90
102
  this.push(activity, { kind: "status", title: "completed", detail: activity.resultPreview, status: "ok" });
91
103
  this.activities.set(agentId, activity);
@@ -99,6 +111,7 @@ export class AgentActivityStore {
99
111
  activity.error = error;
100
112
  activity.completedAt = new Date().toISOString();
101
113
  activity.updatedAt = activity.completedAt;
114
+ activity.activeTools = {};
102
115
  activity.currentTool = undefined;
103
116
  this.push(activity, { kind: "error", title: status, detail: error, status: "failed" });
104
117
  this.activities.set(agentId, activity);
@@ -123,7 +136,7 @@ export class AgentActivityStore {
123
136
  }
124
137
  else if (block.type === "tool_use") {
125
138
  // Some providers surface tool_use only as a message block. Avoid double-counting if tool.started already ran.
126
- if (activity.currentTool?.id !== block.id)
139
+ if (!activity.activeTools?.[block.id])
127
140
  this.recordToolStarted(activity, block);
128
141
  }
129
142
  else if (block.type === "tool_result") {
@@ -137,23 +150,26 @@ export class AgentActivityStore {
137
150
  }
138
151
  }
139
152
  recordToolStarted(activity, toolUse) {
153
+ if (activity.activeTools?.[toolUse.id])
154
+ return;
140
155
  activity.totalToolUseCount += 1;
141
- activity.currentTool = {
156
+ const tool = {
142
157
  id: toolUse.id,
143
158
  name: toolUse.name,
144
159
  inputPreview: previewValue(toolUse.input),
145
160
  startedAt: new Date().toISOString(),
146
161
  };
162
+ activity.activeTools = { ...(activity.activeTools ?? {}), [toolUse.id]: tool };
163
+ this.refreshCurrentTool(activity);
147
164
  this.push(activity, {
148
165
  kind: "tool_start",
149
166
  title: toolUse.name,
150
- detail: activity.currentTool.inputPreview,
167
+ detail: tool.inputPreview,
151
168
  status: "running",
152
169
  });
153
170
  }
154
171
  recordToolFinished(activity, toolUse, ok) {
155
- if (activity.currentTool?.id === toolUse.id)
156
- activity.currentTool = undefined;
172
+ this.removeActiveTool(activity, toolUse.id);
157
173
  this.push(activity, {
158
174
  kind: "tool_result",
159
175
  title: `${toolUse.name} ${ok ? "finished" : "failed"}`,
@@ -161,6 +177,17 @@ export class AgentActivityStore {
161
177
  status: ok ? "ok" : "failed",
162
178
  });
163
179
  }
180
+ removeActiveTool(activity, toolUseId) {
181
+ if (!activity.activeTools?.[toolUseId])
182
+ return;
183
+ const activeTools = { ...activity.activeTools };
184
+ delete activeTools[toolUseId];
185
+ activity.activeTools = activeTools;
186
+ this.refreshCurrentTool(activity);
187
+ }
188
+ refreshCurrentTool(activity) {
189
+ activity.currentTool = Object.values(activity.activeTools ?? {}).sort((left, right) => right.startedAt.localeCompare(left.startedAt))[0];
190
+ }
164
191
  recordUsage(activity, usage) {
165
192
  activity.totalTokens = usage.totalTokens ?? activity.totalTokens;
166
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-activity.js","sourceRoot":"","sources":["../../src/agents/agent-activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-activity.js","sourceRoot":"","sources":["../../src/agents/agent-activity.ts"],"names":[],"mappings":"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"}
@@ -20,9 +20,9 @@ export interface AgentDefinition {
20
20
  memory?: "user" | "project" | "local";
21
21
  isolation?: AgentIsolation;
22
22
  omitProjectMemory?: boolean;
23
- /** Require an authoritative final result via agent_report instead of normal assistant text. */
23
+ /** Require an authoritative final result via subagent_report instead of normal assistant text. */
24
24
  requiresReport?: boolean;
25
- /** Report tool name used when requiresReport is enabled. Defaults to agent_report. */
25
+ /** Report tool name used when requiresReport is enabled. Defaults to subagent_report. */
26
26
  reportToolName?: string;
27
27
  /** Number of extra short turns allowed to recover a missing report. */
28
28
  reportRetryTurns?: number;
@@ -3,7 +3,7 @@ export const FORK_AGENT = {
3
3
  agentType: "fork",
4
4
  whenToUse: "Fork the current conversation into an isolated worker for scoped parallel work.",
5
5
  tools: ["*"],
6
- disallowedTools: ["plan"],
6
+ disallowedTools: ["plan_update"],
7
7
  model: "inherit",
8
8
  permissionMode: "bubble",
9
9
  requiresReport: true,
@@ -14,28 +14,28 @@ export const GENERAL_PURPOSE_AGENT = {
14
14
  agentType: "general-purpose",
15
15
  whenToUse: "General engineering worker for scoped implementation, investigation, or verification tasks.",
16
16
  tools: ["*"],
17
- disallowedTools: ["plan"],
17
+ disallowedTools: ["plan_update"],
18
18
  permissionMode: "inherit",
19
19
  requiresReport: true,
20
20
  reportRetryTurns: 1,
21
21
  buildSystemPrompt: () => [
22
22
  "You are a subagent worker inside the same neo runtime.",
23
- "Complete the assigned scope, then end with agent_report status='completed' or status='incomplete'.",
23
+ "Complete the assigned scope, then end with subagent_report status='completed' or status='incomplete'.",
24
24
  "If blocked or out of scope, use status='incomplete' and include what was and was not done.",
25
25
  ].join("\n"),
26
26
  };
27
27
  export const EXPLORE_AGENT = {
28
28
  agentType: "explore",
29
29
  whenToUse: "Fast read-only codebase exploration: locate files, trace symbols, summarize architecture, and report findings without modifying anything.",
30
- tools: ["list", "read", "grep", "search", "exec_command", "write_stdin", "agent_report"],
31
- disallowedTools: ["edit", "write", "agent", "plan"],
30
+ tools: ["file_list", "file_read", "file_search", "web_search", "terminal_run", "terminal_control", "subagent_report"],
31
+ disallowedTools: ["file_edit", "file_write", "subagent_run", "plan_update"],
32
32
  permissionMode: "readonly",
33
33
  requiresReport: true,
34
34
  reportRetryTurns: 1,
35
35
  buildSystemPrompt: () => [
36
36
  "You are a read-only codebase exploration subagent.",
37
37
  "Use read-only tools to inspect the assigned scope; do not edit files or spawn agents.",
38
- "End with agent_report status='completed' or status='incomplete'.",
38
+ "End with subagent_report status='completed' or status='incomplete'.",
39
39
  "Report files inspected, findings with file-path evidence, risks/unknowns, and next steps.",
40
40
  ].join("\n"),
41
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-definition.js","sourceRoot":"","sources":["../../src/agents/agent-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-definition.js","sourceRoot":"","sources":["../../src/agents/agent-definition.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Tool } from "../tools/tool.js";
2
- export declare const AGENT_REPORT_TOOL_NAME = "agent_report";
2
+ export declare const AGENT_REPORT_TOOL_NAME = "subagent_report";
3
3
  export type AgentReportStatus = "draft" | "completed" | "incomplete";
4
4
  export interface AgentReportInput {
5
5
  content: string;
@@ -1,4 +1,4 @@
1
- export const AGENT_REPORT_TOOL_NAME = "agent_report";
1
+ export const AGENT_REPORT_TOOL_NAME = "subagent_report";
2
2
  export function createAgentReportTool() {
3
3
  return {
4
4
  name: AGENT_REPORT_TOOL_NAME,
@@ -26,13 +26,13 @@ export function createAgentReportTool() {
26
26
  metadata: { readOnly: true, concurrent: false, visible: true },
27
27
  validate(input, _context) {
28
28
  if (!input || typeof input !== "object")
29
- throw new Error("agent_report input must be an object");
29
+ throw new Error("subagent_report input must be an object");
30
30
  const value = input;
31
31
  if (typeof value.content !== "string" || value.content.trim().length === 0) {
32
- throw new Error("agent_report.content must be a non-empty string");
32
+ throw new Error("subagent_report.content must be a non-empty string");
33
33
  }
34
34
  if (value.status !== undefined && value.status !== "draft" && value.status !== "completed" && value.status !== "incomplete") {
35
- throw new Error("agent_report.status must be 'draft', 'completed', or 'incomplete'");
35
+ throw new Error("subagent_report.status must be 'draft', 'completed', or 'incomplete'");
36
36
  }
37
37
  return { content: value.content, status: value.status };
38
38
  },
@@ -1 +1 @@
1
- {"version":3,"file":"agent-report-tool.js","sourceRoot":"","sources":["../../src/agents/agent-report-tool.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAerD,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE;YACX,iEAAiE;YACjE,kMAAkM;YAClM,4EAA4E;SAC7E,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iIAAiI;iBAC/I;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;oBAC1C,WAAW,EAAE,oIAAoI;iBAClJ;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9D,QAAQ,CAAC,KAAc,EAAE,QAAwB;YAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACjG,MAAM,KAAK,GAAG,KAAgC,CAAC;YAC/C,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC5H,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAoC,EAAE,CAAC;QACxF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAuB;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,KAAK,GAAG,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,YAAY,CAAC;YAChE,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAA8B;gBAC7D,OAAO,EAAE,KAAK;oBACZ,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,sCAAsC,CAAC;oBACvG,CAAC,CAAC,+BAA+B;aACpC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"agent-report-tool.js","sourceRoot":"","sources":["../../src/agents/agent-report-tool.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAexD,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE;YACX,iEAAiE;YACjE,kMAAkM;YAClM,4EAA4E;SAC7E,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iIAAiI;iBAC/I;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;oBAC1C,WAAW,EAAE,oIAAoI;iBAClJ;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9D,QAAQ,CAAC,KAAc,EAAE,QAAwB;YAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACpG,MAAM,KAAK,GAAG,KAAgC,CAAC;YAC/C,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC5H,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAoC,EAAE,CAAC;QACxF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAuB;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,KAAK,GAAG,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,YAAY,CAAC;YAChE,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAA8B;gBAC7D,OAAO,EAAE,KAAK;oBACZ,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,sCAAsC,CAAC;oBACvG,CAAC,CAAC,+BAA+B;aACpC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -6,7 +6,7 @@ import type { ToolRegistry } from "../tools/registry.js";
6
6
  import { type AgentCatalog, type AgentIsolation, type AgentPermissionMode } from "./agent-definition.js";
7
7
  import { type TaskStore } from "../tasks/task-store.js";
8
8
  import { type AgentActivityStore } from "./agent-activity.js";
9
- export declare const AGENT_TOOL_NAME = "agent";
9
+ export declare const AGENT_TOOL_NAME = "subagent_run";
10
10
  export declare const AGENT_TOOL_PROMPT_RULES: string;
11
11
  export interface AgentToolInput {
12
12
  prompt: string;
@@ -1,16 +1,16 @@
1
1
  import { createTextMessage } from "../types/messages.js";
2
2
  import { runAgent } from "../core/run-agent.js";
3
- import { createLocalAgentTask, updateProgressFromMessage } from "./local-agent-task.js";
3
+ import { createLocalAgentTask, updateProgressFromEvent, updateProgressFromMessage } from "./local-agent-task.js";
4
4
  import { EXPLORE_AGENT, FORK_AGENT, GENERAL_PURPOSE_AGENT, StaticAgentCatalog, isForkChildContext, } from "./agent-definition.js";
5
5
  import { globalTaskStore } from "../tasks/task-store.js";
6
6
  import { globalAgentActivityStore } from "./agent-activity.js";
7
7
  import path from "node:path";
8
- export const AGENT_TOOL_NAME = "agent";
8
+ export const AGENT_TOOL_NAME = "subagent_run";
9
9
  export const AGENT_TOOL_PROMPT_RULES = [
10
10
  "Fresh agents do not inherit conversation context; prompts must include goal, relevant files, constraints, and expected output.",
11
11
  "Fork agents inherit parent context and should receive a scoped directive, not a full background briefing.",
12
12
  "Background agents return an output file and task notification; do not fabricate results before the task completes.",
13
- "Use mode=explore for read-only codebase reconnaissance: file discovery, symbol tracing, architecture summaries, and implementation planning. Explore agents can inspect with exec_command but cannot edit/write or spawn subagents.",
13
+ "Use mode=explore for read-only codebase reconnaissance: file discovery, symbol tracing, architecture summaries, and implementation planning. Explore agents can inspect with terminal_run but cannot use file_edit/file_write or spawn subagents.",
14
14
  "To run multiple subagents truly in parallel in one model turn: set parallel=true (sync but concurrent), or run_in_background/mode=background (fire-and-forget with task_id). Without those, subagents run one after another and wall time stacks.",
15
15
  "Subagents are bounded by max turns (see agent definitions / AGENT_SUBAGENT_MAX_TURNS) and optional wall time (AGENT_SUBAGENT_WALL_TIMEOUT_MS) so they cannot run indefinitely.",
16
16
  "Launch independent agents in the same model turn when parallel work is useful.",
@@ -33,7 +33,7 @@ export function createAgentTool(runtime) {
33
33
  subagent_type: { type: "string", description: "Agent definition to use. Omit for general-purpose or fork mode." },
34
34
  model: { type: "string" },
35
35
  run_in_background: { type: "boolean" },
36
- name: { type: "string", description: "Optional stable name for later SendMessage routing." },
36
+ name: { type: "string", description: "Optional stable name for later subagent_message routing." },
37
37
  team_name: { type: "string" },
38
38
  mode: { type: "string", description: "Execution/special mode: sync, background, fork, explore, or permission aliases." },
39
39
  isolation: { type: "string", enum: ["shared", "worktree", "remote"] },
@@ -90,7 +90,7 @@ export function createAgentTool(runtime) {
90
90
  if (background) {
91
91
  return launchAsyncAgent({ input, context, options, runtime, agent, fork, agentId, description });
92
92
  }
93
- return runSyncAgent({ input, context, runtime, agent, fork, agentId, description });
93
+ return runSyncAgent({ input, context, options, runtime, agent, fork, agentId, description });
94
94
  },
95
95
  };
96
96
  }
@@ -121,21 +121,27 @@ async function runSyncAgent(input) {
121
121
  fork: input.fork,
122
122
  workspaceCwd,
123
123
  });
124
+ input.options.onProgress?.({ toolName: AGENT_TOOL_NAME, message: input.description, channel: "state", operation: "replace", phase: "running", data: { agent_id: input.agentId, agent_type: input.agent.agentType } });
124
125
  let completed = await stream.next();
125
126
  while (!completed.done) {
126
127
  activityStore.recordEvent(input.agentId, completed.value);
128
+ emitSyncAgentEvent(input.options.onProgress, input.agentId, completed.value);
127
129
  if (completed.value.type === "message")
128
130
  agentMessages.push(completed.value.message);
129
131
  completed = await stream.next();
130
132
  }
133
+ if (completed.value.status === "aborted") {
134
+ activityStore.fail(input.agentId, completed.value.terminalReason, "killed");
135
+ return { ok: false, output: { status: "cancelled", error: completed.value.terminalReason, description: input.description, ...completed.value.result } };
136
+ }
137
+ if (completed.value.status === "failed") {
138
+ activityStore.fail(input.agentId, completed.value.terminalReason);
139
+ return { ok: false, output: { status: "failed", error: completed.value.terminalReason, description: input.description, ...completed.value.result } };
140
+ }
131
141
  activityStore.complete(input.agentId, completed.value.result);
132
142
  return {
133
143
  ok: true,
134
- output: {
135
- status: "completed",
136
- description: input.description,
137
- ...completed.value.result,
138
- },
144
+ output: { status: "completed", description: input.description, ...completed.value.result },
139
145
  newMessages: [createTextMessage("progress", `Subagent ${input.agentId} completed: ${input.description}`)],
140
146
  };
141
147
  }
@@ -151,6 +157,56 @@ async function runSyncAgent(input) {
151
157
  wall?.dispose();
152
158
  }
153
159
  }
160
+ function emitSyncAgentEvent(emit, agentId, event) {
161
+ if (!emit)
162
+ return;
163
+ const childKey = (key, toolUseId) => `${agentId}:${toolUseId}:${key ?? "state"}`;
164
+ if (event.type === "tool.started") {
165
+ emit({ toolName: AGENT_TOOL_NAME, message: childToolPurpose(event.toolUse), channel: "item", operation: "upsert", key: childKey("summary", event.toolUse.id), phase: "tool_running", data: { agent_id: agentId, child_event: event } });
166
+ return;
167
+ }
168
+ if (event.type === "tool.progress") {
169
+ const progress = event.progress;
170
+ emit({
171
+ ...progress,
172
+ toolName: AGENT_TOOL_NAME,
173
+ toolUseId: undefined,
174
+ message: progress.message || childToolPurpose(event.toolUse),
175
+ key: childKey(progress.key, event.toolUse.id),
176
+ data: childProgressData(progress.data, agentId, event),
177
+ });
178
+ return;
179
+ }
180
+ if (event.type === "tool.result.available") {
181
+ emit({ toolName: AGENT_TOOL_NAME, message: childToolPurpose(event.toolUse), channel: "item", operation: "upsert", key: childKey("summary", event.toolUse.id), phase: event.ok ? "tool_completed" : "tool_failed", data: { agent_id: agentId, child_event: event } });
182
+ return;
183
+ }
184
+ if (event.type === "state" && event.phase !== "running_tools") {
185
+ emit({ toolName: AGENT_TOOL_NAME, message: event.detail || event.phase, channel: "state", operation: "replace", key: `${agentId}:agent:state`, phase: event.phase, data: { agent_id: agentId } });
186
+ }
187
+ }
188
+ function childProgressData(data, agentId, childEvent) {
189
+ if (data && typeof data === "object" && !Array.isArray(data))
190
+ return { ...data, agent_id: agentId, child_event: childEvent };
191
+ return data ?? { agent_id: agentId, child_event: childEvent };
192
+ }
193
+ function childToolPurpose(toolUse) {
194
+ if (toolUse.input && typeof toolUse.input === "object" && !Array.isArray(toolUse.input)) {
195
+ const input = toolUse.input;
196
+ const description = typeof input.description === "string" ? input.description.trim() : "";
197
+ if (description)
198
+ return description;
199
+ if (toolUse.name === "file_read" && typeof input.path === "string")
200
+ return `读取 ${path.basename(input.path)}`;
201
+ if (toolUse.name === "file_list" && typeof input.path === "string")
202
+ return `查看 ${input.path}`;
203
+ if (toolUse.name === "file_search" && typeof input.query === "string")
204
+ return `搜索 ${input.query}`;
205
+ if (toolUse.name === "terminal_run" && typeof input.cmd === "string")
206
+ return input.cmd;
207
+ }
208
+ return toolUse.name;
209
+ }
154
210
  function launchAsyncAgent(input) {
155
211
  const taskStore = input.runtime.taskStore ?? globalTaskStore;
156
212
  const taskId = makeTaskId();
@@ -183,6 +239,10 @@ function launchAsyncAgent(input) {
183
239
  };
184
240
  }
185
241
  async function runAsyncAgentLifecycle(input) {
242
+ const runGeneration = input.runGeneration ?? input.taskStore.get(input.taskId)?.runGeneration ?? 1;
243
+ const ownsRun = () => input.taskStore.get(input.taskId)?.runGeneration === runGeneration;
244
+ if (!ownsRun())
245
+ return;
186
246
  input.taskStore.markRunning(input.taskId);
187
247
  const task = input.taskStore.get(input.taskId);
188
248
  const workspaceCwd = resolveAgentWorkspaceCwd(input.input.cwd, input.context);
@@ -216,12 +276,15 @@ async function runAsyncAgentLifecycle(input) {
216
276
  let completed = await stream.next();
217
277
  while (!completed.done) {
218
278
  const event = completed.value;
219
- activityStore.recordEvent(input.agentId, event);
220
279
  const current = input.taskStore.get(input.taskId);
221
- if (!current || current.status === "killed") {
222
- activityStore.fail(input.agentId, "Task killed", "killed");
280
+ if (!ownsRun() || !current || current.status === "killed") {
223
281
  return;
224
282
  }
283
+ activityStore.recordEvent(input.agentId, event);
284
+ if (event.type !== "message") {
285
+ updateProgressFromEvent(current, event);
286
+ input.taskStore.upsert(current);
287
+ }
225
288
  if (event.type === "message") {
226
289
  current.messages.push(event.message);
227
290
  updateProgressFromMessage(current, event.message);
@@ -245,12 +308,10 @@ async function runAsyncAgentLifecycle(input) {
245
308
  let remaining = await stream.next();
246
309
  while (!remaining.done) {
247
310
  const event = remaining.value;
248
- activityStore.recordEvent(input.agentId, event);
249
311
  const current = input.taskStore.get(input.taskId);
250
- if (!current || current.status === "killed") {
251
- activityStore.fail(input.agentId, "Task killed", "killed");
312
+ if (!ownsRun() || !current || current.status === "killed")
252
313
  return;
253
- }
314
+ activityStore.recordEvent(input.agentId, event);
254
315
  if (event.type === "message") {
255
316
  current.messages.push(event.message);
256
317
  updateProgressFromMessage(current, event.message);
@@ -260,6 +321,18 @@ async function runAsyncAgentLifecycle(input) {
260
321
  }
261
322
  completed = remaining;
262
323
  }
324
+ if (!ownsRun())
325
+ return;
326
+ if (completed.value.status === "aborted") {
327
+ input.taskStore.kill(input.taskId, completed.value.terminalReason);
328
+ activityStore.fail(input.agentId, completed.value.terminalReason, "killed");
329
+ return;
330
+ }
331
+ if (completed.value.status === "failed") {
332
+ input.taskStore.fail(input.taskId, completed.value.terminalReason);
333
+ activityStore.fail(input.agentId, completed.value.terminalReason);
334
+ return;
335
+ }
263
336
  input.taskStore.complete(input.taskId, completed.value.result);
264
337
  activityStore.complete(input.agentId, completed.value.result);
265
338
  const finished = input.taskStore.get(input.taskId);
@@ -271,6 +344,8 @@ async function runAsyncAgentLifecycle(input) {
271
344
  task.notified = false;
272
345
  }
273
346
  catch (error) {
347
+ if (!ownsRun())
348
+ return;
274
349
  const message = error instanceof Error ? error.message : String(error);
275
350
  input.taskStore.fail(input.taskId, message);
276
351
  activityStore.fail(input.agentId, message);
@@ -289,6 +364,8 @@ export function resumeAgentTask(taskId, directive, runtime, taskStore, parentCon
289
364
  const agent = catalog.resolve(task.agentType);
290
365
  const abortController = new AbortController();
291
366
  task.status = "pending";
367
+ task.runGeneration = (task.runGeneration ?? 0) + 1;
368
+ const runGeneration = task.runGeneration;
292
369
  task.abortController = abortController;
293
370
  task.error = undefined;
294
371
  task.completedAt = undefined;
@@ -307,8 +384,10 @@ export function resumeAgentTask(taskId, directive, runtime, taskStore, parentCon
307
384
  abortController,
308
385
  isResume: true,
309
386
  existingMessages: [...task.messages],
387
+ runGeneration,
310
388
  }).catch((error) => {
311
- taskStore.fail(taskId, error instanceof Error ? error.message : String(error));
389
+ if (taskStore.get(taskId)?.runGeneration === runGeneration)
390
+ taskStore.fail(taskId, error instanceof Error ? error.message : String(error));
312
391
  });
313
392
  return Promise.resolve({ ok: true });
314
393
  }