@namzu/sdk 0.5.0 → 1.0.0

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 (302) hide show
  1. package/CHANGELOG.md +393 -0
  2. package/dist/advisory/executor.d.ts.map +1 -1
  3. package/dist/advisory/executor.js +9 -2
  4. package/dist/advisory/executor.js.map +1 -1
  5. package/dist/advisory/executor.test.d.ts +2 -1
  6. package/dist/advisory/executor.test.d.ts.map +1 -1
  7. package/dist/advisory/executor.test.js +7 -4
  8. package/dist/advisory/executor.test.js.map +1 -1
  9. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  10. package/dist/agents/ReactiveAgent.js +2 -0
  11. package/dist/agents/ReactiveAgent.js.map +1 -1
  12. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  13. package/dist/agents/SupervisorAgent.js +13 -0
  14. package/dist/agents/SupervisorAgent.js.map +1 -1
  15. package/dist/bridge/sse/mapper.test.js +2 -2
  16. package/dist/constants/compaction/index.d.ts.map +1 -1
  17. package/dist/constants/compaction/index.js +8 -3
  18. package/dist/constants/compaction/index.js.map +1 -1
  19. package/dist/constants/sandbox/index.d.ts +21 -0
  20. package/dist/constants/sandbox/index.d.ts.map +1 -1
  21. package/dist/constants/sandbox/index.js +30 -0
  22. package/dist/constants/sandbox/index.js.map +1 -1
  23. package/dist/constants/tools/index.d.ts.map +1 -1
  24. package/dist/constants/tools/index.js +33 -2
  25. package/dist/constants/tools/index.js.map +1 -1
  26. package/dist/manager/run/persistence.d.ts.map +1 -1
  27. package/dist/manager/run/persistence.js +35 -5
  28. package/dist/manager/run/persistence.js.map +1 -1
  29. package/dist/persona/assembler.d.ts +1 -0
  30. package/dist/persona/assembler.d.ts.map +1 -1
  31. package/dist/persona/assembler.js +28 -6
  32. package/dist/persona/assembler.js.map +1 -1
  33. package/dist/provider/collect.test.js +2 -2
  34. package/dist/public-runtime.d.ts +5 -4
  35. package/dist/public-runtime.d.ts.map +1 -1
  36. package/dist/public-runtime.js +5 -4
  37. package/dist/public-runtime.js.map +1 -1
  38. package/dist/public-tools.d.ts +2 -0
  39. package/dist/public-tools.d.ts.map +1 -1
  40. package/dist/public-tools.js +2 -0
  41. package/dist/public-tools.js.map +1 -1
  42. package/dist/public-types.d.ts +3 -0
  43. package/dist/public-types.d.ts.map +1 -1
  44. package/dist/registry/index.d.ts +2 -0
  45. package/dist/registry/index.d.ts.map +1 -1
  46. package/dist/registry/index.js +1 -0
  47. package/dist/registry/index.js.map +1 -1
  48. package/dist/registry/tool/execute.d.ts.map +1 -1
  49. package/dist/registry/tool/execute.js +87 -5
  50. package/dist/registry/tool/execute.js.map +1 -1
  51. package/dist/registry/tool/execute.test.d.ts +4 -2
  52. package/dist/registry/tool/execute.test.d.ts.map +1 -1
  53. package/dist/registry/tool/execute.test.js +112 -3
  54. package/dist/registry/tool/execute.test.js.map +1 -1
  55. package/dist/registry/toolset/catalog.d.ts +42 -0
  56. package/dist/registry/toolset/catalog.d.ts.map +1 -0
  57. package/dist/registry/toolset/catalog.js +217 -0
  58. package/dist/registry/toolset/catalog.js.map +1 -0
  59. package/dist/registry/toolset/catalog.test.d.ts +2 -0
  60. package/dist/registry/toolset/catalog.test.d.ts.map +1 -0
  61. package/dist/registry/toolset/catalog.test.js +85 -0
  62. package/dist/registry/toolset/catalog.test.js.map +1 -0
  63. package/dist/runtime/query/__tests__/deferred-tools.test.d.ts +2 -0
  64. package/dist/runtime/query/__tests__/deferred-tools.test.d.ts.map +1 -0
  65. package/dist/runtime/query/__tests__/deferred-tools.test.js +147 -0
  66. package/dist/runtime/query/__tests__/deferred-tools.test.js.map +1 -0
  67. package/dist/runtime/query/__tests__/executor-concurrency.test.d.ts +2 -0
  68. package/dist/runtime/query/__tests__/executor-concurrency.test.d.ts.map +1 -0
  69. package/dist/runtime/query/__tests__/executor-concurrency.test.js +98 -0
  70. package/dist/runtime/query/__tests__/executor-concurrency.test.js.map +1 -0
  71. package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js +38 -3
  72. package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js.map +1 -1
  73. package/dist/runtime/query/__tests__/prompt.test.js +47 -2
  74. package/dist/runtime/query/__tests__/prompt.test.js.map +1 -1
  75. package/dist/runtime/query/__tests__/stream-recovery.test.d.ts +2 -0
  76. package/dist/runtime/query/__tests__/stream-recovery.test.d.ts.map +1 -0
  77. package/dist/runtime/query/__tests__/stream-recovery.test.js +126 -0
  78. package/dist/runtime/query/__tests__/stream-recovery.test.js.map +1 -0
  79. package/dist/runtime/query/continuation.d.ts +16 -0
  80. package/dist/runtime/query/continuation.d.ts.map +1 -0
  81. package/dist/runtime/query/continuation.js +16 -0
  82. package/dist/runtime/query/continuation.js.map +1 -0
  83. package/dist/runtime/query/executor.d.ts +3 -0
  84. package/dist/runtime/query/executor.d.ts.map +1 -1
  85. package/dist/runtime/query/executor.js +71 -3
  86. package/dist/runtime/query/executor.js.map +1 -1
  87. package/dist/runtime/query/index.d.ts.map +1 -1
  88. package/dist/runtime/query/index.js +19 -3
  89. package/dist/runtime/query/index.js.map +1 -1
  90. package/dist/runtime/query/iteration/index.d.ts +22 -0
  91. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  92. package/dist/runtime/query/iteration/index.js +227 -60
  93. package/dist/runtime/query/iteration/index.js.map +1 -1
  94. package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
  95. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  96. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  97. package/dist/runtime/query/prompt.d.ts.map +1 -1
  98. package/dist/runtime/query/prompt.js +21 -1
  99. package/dist/runtime/query/prompt.js.map +1 -1
  100. package/dist/runtime/query/tooling.d.ts +1 -0
  101. package/dist/runtime/query/tooling.d.ts.map +1 -1
  102. package/dist/runtime/query/tooling.js +1 -0
  103. package/dist/runtime/query/tooling.js.map +1 -1
  104. package/dist/sandbox/provider/local.d.ts.map +1 -1
  105. package/dist/sandbox/provider/local.js +32 -1
  106. package/dist/sandbox/provider/local.js.map +1 -1
  107. package/dist/session/workspace/__tests__/shared-run.test.d.ts +2 -0
  108. package/dist/session/workspace/__tests__/shared-run.test.d.ts.map +1 -0
  109. package/dist/session/workspace/__tests__/shared-run.test.js +147 -0
  110. package/dist/session/workspace/__tests__/shared-run.test.js.map +1 -0
  111. package/dist/session/workspace/index.d.ts +2 -0
  112. package/dist/session/workspace/index.d.ts.map +1 -1
  113. package/dist/session/workspace/index.js +1 -0
  114. package/dist/session/workspace/index.js.map +1 -1
  115. package/dist/session/workspace/shared-run.d.ts +81 -0
  116. package/dist/session/workspace/shared-run.d.ts.map +1 -0
  117. package/dist/session/workspace/shared-run.js +251 -0
  118. package/dist/session/workspace/shared-run.js.map +1 -0
  119. package/dist/skills/loader.d.ts.map +1 -1
  120. package/dist/skills/loader.js +36 -6
  121. package/dist/skills/loader.js.map +1 -1
  122. package/dist/skills/loader.test.d.ts +2 -0
  123. package/dist/skills/loader.test.d.ts.map +1 -0
  124. package/dist/skills/loader.test.js +65 -0
  125. package/dist/skills/loader.test.js.map +1 -0
  126. package/dist/streaming/coalesce.test.js +1 -1
  127. package/dist/tools/builtins/__tests__/edit.test.d.ts +2 -0
  128. package/dist/tools/builtins/__tests__/edit.test.d.ts.map +1 -0
  129. package/dist/tools/builtins/__tests__/edit.test.js +38 -0
  130. package/dist/tools/builtins/__tests__/edit.test.js.map +1 -0
  131. package/dist/tools/builtins/__tests__/payload-budget.test.d.ts +2 -0
  132. package/dist/tools/builtins/__tests__/payload-budget.test.d.ts.map +1 -0
  133. package/dist/tools/builtins/__tests__/payload-budget.test.js +22 -0
  134. package/dist/tools/builtins/__tests__/payload-budget.test.js.map +1 -0
  135. package/dist/tools/builtins/__tests__/read-file.test.d.ts +2 -0
  136. package/dist/tools/builtins/__tests__/read-file.test.d.ts.map +1 -0
  137. package/dist/tools/builtins/__tests__/read-file.test.js +24 -0
  138. package/dist/tools/builtins/__tests__/read-file.test.js.map +1 -0
  139. package/dist/tools/builtins/__tests__/verify-outputs.test.d.ts +2 -0
  140. package/dist/tools/builtins/__tests__/verify-outputs.test.d.ts.map +1 -0
  141. package/dist/tools/builtins/__tests__/verify-outputs.test.js +52 -0
  142. package/dist/tools/builtins/__tests__/verify-outputs.test.js.map +1 -0
  143. package/dist/tools/builtins/__tests__/write-file.test.d.ts +2 -0
  144. package/dist/tools/builtins/__tests__/write-file.test.d.ts.map +1 -0
  145. package/dist/tools/builtins/__tests__/write-file.test.js +74 -0
  146. package/dist/tools/builtins/__tests__/write-file.test.js.map +1 -0
  147. package/dist/tools/builtins/bash.d.ts.map +1 -1
  148. package/dist/tools/builtins/bash.js +40 -7
  149. package/dist/tools/builtins/bash.js.map +1 -1
  150. package/dist/tools/builtins/edit.d.ts +5 -2
  151. package/dist/tools/builtins/edit.d.ts.map +1 -1
  152. package/dist/tools/builtins/edit.js +114 -18
  153. package/dist/tools/builtins/edit.js.map +1 -1
  154. package/dist/tools/builtins/index.d.ts +1 -0
  155. package/dist/tools/builtins/index.d.ts.map +1 -1
  156. package/dist/tools/builtins/index.js +13 -13
  157. package/dist/tools/builtins/index.js.map +1 -1
  158. package/dist/tools/builtins/read-file.d.ts +1 -0
  159. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  160. package/dist/tools/builtins/read-file.js +23 -8
  161. package/dist/tools/builtins/read-file.js.map +1 -1
  162. package/dist/tools/builtins/search-tools.d.ts.map +1 -1
  163. package/dist/tools/builtins/search-tools.js +4 -1
  164. package/dist/tools/builtins/search-tools.js.map +1 -1
  165. package/dist/tools/builtins/verify-outputs.d.ts +5 -0
  166. package/dist/tools/builtins/verify-outputs.d.ts.map +1 -0
  167. package/dist/tools/builtins/verify-outputs.js +103 -0
  168. package/dist/tools/builtins/verify-outputs.js.map +1 -0
  169. package/dist/tools/builtins/write-file.d.ts +3 -2
  170. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  171. package/dist/tools/builtins/write-file.js +72 -12
  172. package/dist/tools/builtins/write-file.js.map +1 -1
  173. package/dist/tools/coordinator/__tests__/agent.test.d.ts +15 -0
  174. package/dist/tools/coordinator/__tests__/agent.test.d.ts.map +1 -0
  175. package/dist/tools/coordinator/__tests__/agent.test.js +142 -0
  176. package/dist/tools/coordinator/__tests__/agent.test.js.map +1 -0
  177. package/dist/tools/coordinator/__tests__/task-list.test.d.ts +13 -0
  178. package/dist/tools/coordinator/__tests__/task-list.test.d.ts.map +1 -0
  179. package/dist/tools/coordinator/__tests__/task-list.test.js +162 -0
  180. package/dist/tools/coordinator/__tests__/task-list.test.js.map +1 -0
  181. package/dist/tools/coordinator/agent.d.ts +34 -0
  182. package/dist/tools/coordinator/agent.d.ts.map +1 -0
  183. package/dist/tools/coordinator/agent.js +107 -0
  184. package/dist/tools/coordinator/agent.js.map +1 -0
  185. package/dist/tools/coordinator/index.d.ts +7 -0
  186. package/dist/tools/coordinator/index.d.ts.map +1 -1
  187. package/dist/tools/coordinator/index.js +111 -21
  188. package/dist/tools/coordinator/index.js.map +1 -1
  189. package/dist/types/agent/base.d.ts +8 -0
  190. package/dist/types/agent/base.d.ts.map +1 -1
  191. package/dist/types/agent/reactive.d.ts +23 -0
  192. package/dist/types/agent/reactive.d.ts.map +1 -1
  193. package/dist/types/agent/supervisor.d.ts +41 -0
  194. package/dist/types/agent/supervisor.d.ts.map +1 -1
  195. package/dist/types/message/index.d.ts +22 -1
  196. package/dist/types/message/index.d.ts.map +1 -1
  197. package/dist/types/message/index.js +7 -2
  198. package/dist/types/message/index.js.map +1 -1
  199. package/dist/types/provider/chat.d.ts +2 -9
  200. package/dist/types/provider/chat.d.ts.map +1 -1
  201. package/dist/types/run/events.d.ts +6 -0
  202. package/dist/types/run/events.d.ts.map +1 -1
  203. package/dist/types/run/events.js.map +1 -1
  204. package/dist/types/sandbox/index.d.ts +193 -0
  205. package/dist/types/sandbox/index.d.ts.map +1 -1
  206. package/dist/types/sandbox/index.js.map +1 -1
  207. package/dist/types/skills/index.d.ts +2 -0
  208. package/dist/types/skills/index.d.ts.map +1 -1
  209. package/dist/types/tool/index.d.ts +22 -0
  210. package/dist/types/tool/index.d.ts.map +1 -1
  211. package/dist/types/toolset/index.d.ts +71 -0
  212. package/dist/types/toolset/index.d.ts.map +1 -0
  213. package/dist/types/toolset/index.js +2 -0
  214. package/dist/types/toolset/index.js.map +1 -0
  215. package/dist/types/workspace/index.d.ts +1 -0
  216. package/dist/types/workspace/index.d.ts.map +1 -1
  217. package/dist/types/workspace/shared-run.d.ts +61 -0
  218. package/dist/types/workspace/shared-run.d.ts.map +1 -0
  219. package/dist/types/workspace/shared-run.js +2 -0
  220. package/dist/types/workspace/shared-run.js.map +1 -0
  221. package/dist/verification/index.d.ts +1 -0
  222. package/dist/verification/index.d.ts.map +1 -1
  223. package/dist/verification/index.js +1 -0
  224. package/dist/verification/index.js.map +1 -1
  225. package/dist/verification/presets.d.ts +53 -0
  226. package/dist/verification/presets.d.ts.map +1 -0
  227. package/dist/verification/presets.js +70 -0
  228. package/dist/verification/presets.js.map +1 -0
  229. package/dist/verification/presets.test.d.ts +16 -0
  230. package/dist/verification/presets.test.d.ts.map +1 -0
  231. package/dist/verification/presets.test.js +79 -0
  232. package/dist/verification/presets.test.js.map +1 -0
  233. package/package.json +3 -2
  234. package/src/advisory/executor.test.ts +7 -4
  235. package/src/advisory/executor.ts +11 -2
  236. package/src/agents/ReactiveAgent.ts +2 -0
  237. package/src/agents/SupervisorAgent.ts +13 -0
  238. package/src/bridge/sse/mapper.test.ts +2 -2
  239. package/src/constants/compaction/index.ts +8 -3
  240. package/src/constants/sandbox/index.ts +37 -0
  241. package/src/constants/tools/index.ts +33 -2
  242. package/src/manager/run/persistence.ts +34 -6
  243. package/src/persona/assembler.ts +31 -8
  244. package/src/provider/collect.test.ts +2 -2
  245. package/src/public-runtime.ts +14 -1
  246. package/src/public-tools.ts +2 -0
  247. package/src/public-types.ts +7 -0
  248. package/src/registry/index.ts +7 -0
  249. package/src/registry/tool/execute.test.ts +132 -3
  250. package/src/registry/tool/execute.ts +94 -9
  251. package/src/registry/toolset/catalog.test.ts +97 -0
  252. package/src/registry/toolset/catalog.ts +283 -0
  253. package/src/runtime/query/__tests__/deferred-tools.test.ts +183 -0
  254. package/src/runtime/query/__tests__/executor-concurrency.test.ts +122 -0
  255. package/src/runtime/query/__tests__/executor-plugin-hooks.test.ts +48 -3
  256. package/src/runtime/query/__tests__/prompt.test.ts +51 -2
  257. package/src/runtime/query/__tests__/stream-recovery.test.ts +156 -0
  258. package/src/runtime/query/continuation.ts +16 -0
  259. package/src/runtime/query/executor.ts +82 -13
  260. package/src/runtime/query/index.ts +24 -3
  261. package/src/runtime/query/iteration/index.ts +263 -68
  262. package/src/runtime/query/iteration/phases/context.ts +10 -0
  263. package/src/runtime/query/prompt.ts +17 -1
  264. package/src/runtime/query/tooling.ts +2 -0
  265. package/src/sandbox/provider/local.ts +33 -0
  266. package/src/session/workspace/__tests__/shared-run.test.ts +181 -0
  267. package/src/session/workspace/index.ts +6 -0
  268. package/src/session/workspace/shared-run.ts +316 -0
  269. package/src/skills/loader.test.ts +89 -0
  270. package/src/skills/loader.ts +37 -6
  271. package/src/streaming/coalesce.test.ts +1 -1
  272. package/src/tools/builtins/__tests__/edit.test.ts +57 -0
  273. package/src/tools/builtins/__tests__/payload-budget.test.ts +29 -0
  274. package/src/tools/builtins/__tests__/read-file.test.ts +31 -0
  275. package/src/tools/builtins/__tests__/verify-outputs.test.ts +71 -0
  276. package/src/tools/builtins/__tests__/write-file.test.ts +97 -0
  277. package/src/tools/builtins/bash.ts +48 -7
  278. package/src/tools/builtins/edit.ts +162 -27
  279. package/src/tools/builtins/index.ts +13 -13
  280. package/src/tools/builtins/read-file.ts +31 -8
  281. package/src/tools/builtins/search-tools.ts +5 -1
  282. package/src/tools/builtins/verify-outputs.ts +126 -0
  283. package/src/tools/builtins/write-file.ts +83 -14
  284. package/src/tools/coordinator/__tests__/agent.test.ts +172 -0
  285. package/src/tools/coordinator/__tests__/task-list.test.ts +182 -0
  286. package/src/tools/coordinator/agent.ts +157 -0
  287. package/src/tools/coordinator/index.ts +128 -22
  288. package/src/types/agent/base.ts +8 -0
  289. package/src/types/agent/reactive.ts +25 -0
  290. package/src/types/agent/supervisor.ts +45 -0
  291. package/src/types/message/index.ts +32 -2
  292. package/src/types/provider/chat.ts +2 -9
  293. package/src/types/run/events.ts +6 -0
  294. package/src/types/sandbox/index.ts +219 -0
  295. package/src/types/skills/index.ts +4 -0
  296. package/src/types/tool/index.ts +24 -0
  297. package/src/types/toolset/index.ts +86 -0
  298. package/src/types/workspace/index.ts +9 -0
  299. package/src/types/workspace/shared-run.ts +65 -0
  300. package/src/verification/index.ts +1 -0
  301. package/src/verification/presets.test.ts +112 -0
  302. package/src/verification/presets.ts +72 -0
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Behavioural contract for the `agent_task_list` coordinator tool:
3
+ *
4
+ * - Returns every task the gateway knows about, with state + timing.
5
+ * - Filters by state when the input narrows it.
6
+ * - Emits a per-state summary in the data payload — what the supervisor
7
+ * reads to decide "done vs not done" before calling verify_outputs.
8
+ * - Distinct from the plan-task store's `task_list` (subject/blockedBy);
9
+ * listing them under different names avoids ToolRegistry collisions when
10
+ * both surfaces are wired into the same agent.
11
+ */
12
+ import { describe, expect, it } from 'vitest';
13
+ import { buildCoordinatorTools } from '../index.js';
14
+ function makeContext() {
15
+ return {
16
+ runId: 'run_test',
17
+ workingDirectory: '/tmp/test',
18
+ abortSignal: new AbortController().signal,
19
+ env: {},
20
+ log: () => { },
21
+ };
22
+ }
23
+ function gatewayWith(handles) {
24
+ return {
25
+ async createTask() {
26
+ throw new Error('not used');
27
+ },
28
+ async waitForTask() {
29
+ throw new Error('not used');
30
+ },
31
+ async continueTask() { },
32
+ cancelTask() { },
33
+ getTask(id) {
34
+ return handles.find((h) => h.taskId === id);
35
+ },
36
+ listTasks() {
37
+ return handles;
38
+ },
39
+ onTaskCompleted() {
40
+ return () => { };
41
+ },
42
+ };
43
+ }
44
+ function handle(input) {
45
+ return {
46
+ taskId: input.id,
47
+ agentId: input.agentId,
48
+ state: input.state,
49
+ createdAt: input.createdAt,
50
+ completedAt: input.completedAt,
51
+ result: input.lastError
52
+ ? {
53
+ runId: 'run_x',
54
+ status: input.state === 'failed' ? 'failed' : 'completed',
55
+ usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
56
+ cost: { inputCostUsd: 0, outputCostUsd: 0, totalCostUsd: 0 },
57
+ iterations: 1,
58
+ durationMs: 0,
59
+ messages: [],
60
+ result: '',
61
+ lastError: input.lastError,
62
+ }
63
+ : undefined,
64
+ };
65
+ }
66
+ function findAgentTaskList(gateway) {
67
+ const tools = buildCoordinatorTools({
68
+ gateway,
69
+ workingDirectory: '/tmp/test',
70
+ allowedAgentIds: ['solution-architecture', 'enterprise-architecture'],
71
+ });
72
+ const t = tools.find((tool) => tool.name === 'agent_task_list');
73
+ if (!t)
74
+ throw new Error('agent_task_list tool missing from coordinator builder');
75
+ return t;
76
+ }
77
+ describe('coordinator agent_task_list tool', () => {
78
+ it('lists every task with state, agent, and timing', async () => {
79
+ const gateway = gatewayWith([
80
+ handle({
81
+ id: 'task_a',
82
+ agentId: 'solution-architecture',
83
+ state: 'completed',
84
+ createdAt: 0,
85
+ completedAt: 5000,
86
+ }),
87
+ handle({
88
+ id: 'task_b',
89
+ agentId: 'enterprise-architecture',
90
+ state: 'running',
91
+ createdAt: 1000,
92
+ }),
93
+ handle({
94
+ id: 'task_c',
95
+ agentId: 'solution-architecture',
96
+ state: 'failed',
97
+ createdAt: 2000,
98
+ completedAt: 4000,
99
+ lastError: 'bash exit 1',
100
+ }),
101
+ ]);
102
+ const tool = findAgentTaskList(gateway);
103
+ const result = await tool.execute({}, makeContext());
104
+ expect(result.success).toBe(true);
105
+ expect(result.output).toMatch(/Tasks: 3 total/);
106
+ expect(result.output).toMatch(/1 running/);
107
+ expect(result.output).toMatch(/1 completed/);
108
+ expect(result.output).toMatch(/1 failed/);
109
+ expect(result.output).toMatch(/task_a → solution-architecture \[completed\]/);
110
+ expect(result.output).toMatch(/task_c .* error: bash exit 1/);
111
+ const data = result.data;
112
+ expect(data.summary.total).toBe(3);
113
+ expect(data.items).toHaveLength(3);
114
+ });
115
+ it('filters by state', async () => {
116
+ const gateway = gatewayWith([
117
+ handle({
118
+ id: 'task_a',
119
+ agentId: 'solution-architecture',
120
+ state: 'completed',
121
+ createdAt: 0,
122
+ completedAt: 5000,
123
+ }),
124
+ handle({
125
+ id: 'task_b',
126
+ agentId: 'enterprise-architecture',
127
+ state: 'running',
128
+ createdAt: 1000,
129
+ }),
130
+ ]);
131
+ const tool = findAgentTaskList(gateway);
132
+ const result = await tool.execute({ state: 'running' }, makeContext());
133
+ expect(result.success).toBe(true);
134
+ const data = result.data;
135
+ expect(data.items).toHaveLength(1);
136
+ expect(data.items[0]?.task_id).toBe('task_b');
137
+ expect(result.output).not.toMatch(/task_a/);
138
+ });
139
+ it('handles an empty gateway', async () => {
140
+ const tool = findAgentTaskList(gatewayWith([]));
141
+ const result = await tool.execute({}, makeContext());
142
+ expect(result.success).toBe(true);
143
+ expect(result.output).toMatch(/Tasks: 0 total/);
144
+ expect(result.output).toMatch(/no tasks launched yet/);
145
+ });
146
+ it('does not collide with the plan-task store `task_list` tool name', async () => {
147
+ // Regression: an earlier cut registered the agent-task gateway
148
+ // inspector under the same `task_list` name as the plan-task store
149
+ // list tool, which would shadow one of them in any agent that wired
150
+ // both surfaces together. The agent inspector now lives under
151
+ // `agent_task_list`; this test guards the rename.
152
+ const coordinatorTools = buildCoordinatorTools({
153
+ gateway: gatewayWith([]),
154
+ workingDirectory: '/tmp/test',
155
+ allowedAgentIds: ['solution-architecture'],
156
+ });
157
+ const names = coordinatorTools.map((t) => t.name);
158
+ expect(names).toContain('agent_task_list');
159
+ expect(names).not.toContain('task_list');
160
+ });
161
+ });
162
+ //# sourceMappingURL=task-list.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-list.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/task-list.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { AgentRuntimeContext } from '../../types/agent/base.js';
2
+ import type { TaskGateway } from '../../types/agent/gateway.js';
3
+ import type { ToolDefinition } from '../../types/tool/index.js';
4
+ import type { TaskLaunchedCallback } from './index.js';
5
+ /**
6
+ * Build the canonical Claude Code `Agent` tool — synchronous subagent
7
+ * delegation that mirrors what Claude is trained against in
8
+ * `code.claude.com/docs/en/sub-agents`.
9
+ *
10
+ * Semantics: parent calls `Agent({ description, prompt, subagent_type })`,
11
+ * the runtime spawns the chosen subagent with its own context window,
12
+ * the parent's tool call BLOCKS until the subagent finishes, and the
13
+ * subagent's final text comes back as the tool result. Intermediate
14
+ * subagent tool calls are isolated — only the summary surfaces to
15
+ * the parent.
16
+ *
17
+ * This is **NOT** the same shape as the legacy `create_task` /
18
+ * `continue_task` / `cancel_task` trio that this package ships
19
+ * alongside it: those are non-blocking and use a `<task-notification>`
20
+ * callback model. The async pattern is useful for hosts that want a
21
+ * work-queue surface, but it is not what Claude Code trained against.
22
+ * For free agentic alignment, prefer the canonical `Agent` tool; keep
23
+ * the legacy coordinator tools only when you genuinely need
24
+ * fire-and-forget multi-task fan-out.
25
+ */
26
+ export interface AgentToolOptions {
27
+ gateway: TaskGateway;
28
+ workingDirectory: string;
29
+ runtimeContext?: AgentRuntimeContext;
30
+ allowedAgentIds: string[];
31
+ onTaskLaunched?: TaskLaunchedCallback;
32
+ }
33
+ export declare function buildAgentTool(opts: AgentToolOptions): ToolDefinition;
34
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;IAEzB,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACrC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAqHrE"}
@@ -0,0 +1,107 @@
1
+ import { z } from 'zod';
2
+ import { defineTool } from '../defineTool.js';
3
+ export function buildAgentTool(opts) {
4
+ const { gateway, allowedAgentIds: agentIds, onTaskLaunched } = opts;
5
+ const cwd = opts.workingDirectory;
6
+ const subagentTypeEnum = agentIds.length > 0 ? z.enum(agentIds) : z.string();
7
+ return defineTool({
8
+ name: 'Agent',
9
+ description: `Delegate a task to a specialized subagent. BLOCKING: returns when the subagent has finished, with the subagent's final text as the tool result. The subagent runs in its own context window and cannot see your conversation — include all necessary context in the prompt. Available subagents: ${agentIds.join(', ')}. To run multiple subagents in parallel, call this tool multiple times in a single response.`,
10
+ inputSchema: z.object({
11
+ description: z.string().describe('Short label for tracking (shown to the user)'),
12
+ prompt: z
13
+ .string()
14
+ .describe('Self-contained task description with all context the subagent needs'),
15
+ subagent_type: agentIds.length === 1
16
+ ? subagentTypeEnum
17
+ .optional()
18
+ .describe(`Which subagent to run (defaults to the only one: ${agentIds[0]})`)
19
+ : subagentTypeEnum.describe('Which subagent to run'),
20
+ }),
21
+ category: 'custom',
22
+ permissions: [],
23
+ readOnly: false,
24
+ destructive: false,
25
+ concurrencySafe: true,
26
+ async execute({ description, prompt, subagent_type }, context) {
27
+ // With a single registered subagent the type is optional — default to
28
+ // it so the model can't trip the "subagent_type required" validation.
29
+ const agentId = subagent_type ?? (agentIds.length === 1 ? agentIds[0] : undefined);
30
+ if (!agentId) {
31
+ return {
32
+ success: false,
33
+ output: '',
34
+ error: `subagent_type is required — choose one of: ${agentIds.join(', ')}`,
35
+ };
36
+ }
37
+ const handle = await gateway.createTask({
38
+ agentId,
39
+ prompt,
40
+ workingDirectory: cwd,
41
+ runtimeContext: opts.runtimeContext,
42
+ });
43
+ onTaskLaunched?.(handle.taskId, {
44
+ agentId,
45
+ description,
46
+ // Same canonical-envelope plumbing as coordinator/index.ts
47
+ // (ses_009-task-notification-envelope). For Agent-tool path
48
+ // the subagent run is awaited synchronously below, so this
49
+ // id is only used if a probe / hook unexpectedly forks the
50
+ // completion to the background notification channel.
51
+ originalToolUseId: context.toolUseId,
52
+ });
53
+ const completed = await gateway.waitForTask(handle.taskId);
54
+ // Two layers can disagree on whether the subagent succeeded:
55
+ //
56
+ // 1. `TaskHandle.state` — the gateway's terminal task state.
57
+ // Some gateways (e.g. vandal's) explicitly map
58
+ // `result.status !== 'completed'` to `state = 'failed'`,
59
+ // others (e.g. SDK's `LocalTaskGateway`) just forward
60
+ // whatever the AgentManager set, which does not always
61
+ // reflect run-level failure.
62
+ // 2. `BaseAgentResult.status` — the run's own status. The
63
+ // canonical source of truth for whether the agent actually
64
+ // finished its work; `lastError` carries the failure
65
+ // message when set.
66
+ //
67
+ // Treat the subagent as successful only when BOTH agree.
68
+ // Reporting a failed subagent as successful would silently
69
+ // hand the parent garbage output and make debugging
70
+ // impossible, which is what Codex flagged on the first cut.
71
+ const runStatus = completed.result?.status;
72
+ const succeeded = completed.state === 'completed' && (runStatus === undefined || runStatus === 'completed');
73
+ const resultText = typeof completed.result?.result === 'string'
74
+ ? completed.result.result
75
+ : completed.result?.result !== undefined
76
+ ? JSON.stringify(completed.result.result)
77
+ : '';
78
+ if (!succeeded) {
79
+ const failureLabel = completed.state !== 'completed' ? completed.state : (runStatus ?? 'failed');
80
+ const detail = completed.result?.lastError ?? resultText ?? '(subagent provided no failure detail)';
81
+ return {
82
+ success: false,
83
+ output: '',
84
+ error: `Subagent ${agentId} ${failureLabel}: ${detail}`,
85
+ data: {
86
+ task_id: handle.taskId,
87
+ subagent_type: agentId,
88
+ state: completed.state,
89
+ status: runStatus,
90
+ lastError: completed.result?.lastError,
91
+ },
92
+ };
93
+ }
94
+ return {
95
+ success: true,
96
+ output: resultText || '(subagent returned no text)',
97
+ data: {
98
+ task_id: handle.taskId,
99
+ subagent_type: agentId,
100
+ state: completed.state,
101
+ status: runStatus,
102
+ },
103
+ };
104
+ },
105
+ });
106
+ }
107
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/tools/coordinator/agent.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,13 @@ export type TaskLaunchedCallback = (agentTaskId: TaskId, meta: {
8
8
  agentId: string;
9
9
  description: string;
10
10
  planTaskId?: string;
11
+ /**
12
+ * The assistant `tool_use_id` that dispatched this task.
13
+ * Threaded from `ToolContext.toolUseId` so the runtime can
14
+ * later emit a canonical `tool_result` content block bound
15
+ * to the same id when the background task completes.
16
+ */
17
+ originalToolUseId?: string;
11
18
  }) => void;
12
19
  export interface CoordinatorToolsOptions {
13
20
  gateway: TaskGateway;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,MAAM,MAAM,oBAAoB,GAAG,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACL,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB,KACG,IAAI,CAAA;AAET,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;IAEzB,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAE9C,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACrC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,cAAc,EAAE,CAoNrF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,MAAM,MAAM,oBAAoB,GAAG,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACL,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B,KACG,IAAI,CAAA;AAET,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;IAEzB,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAE9C,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACrC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,cAAc,EAAE,CAuTrF"}
@@ -1,18 +1,26 @@
1
1
  import { z } from 'zod';
2
2
  import { defineTool } from '../defineTool.js';
3
3
  export function buildCoordinatorTools(opts) {
4
- const { gateway, allowedAgentIds: agentIds, taskStore, runId, getPlanManager, onTaskLaunched, } = opts;
4
+ const { gateway, allowedAgentIds: agentIds, taskStore, runId, getPlanManager,
5
+ // `onTaskLaunched` was the entry point for the old
6
+ // non-blocking + envelope-injection flow. create_task is now
7
+ // blocking, so the callback is no longer wired here.
8
+ // Intentionally not destructured to keep the unused-binding
9
+ // lint clean; callers can still pass it for backwards
10
+ // compatibility (Agent tool consumes it from its own path).
11
+ } = opts;
5
12
  const cwd = opts.workingDirectory;
13
+ void opts.onTaskLaunched;
6
14
  const agentIdEnum = agentIds.length > 0 ? z.enum(agentIds) : z.string();
7
15
  const createTask = defineTool({
8
16
  name: 'create_task',
9
- description: `Launch a task on a specialized agent. NON-BLOCKING: returns immediately. You will receive a <task-notification> message when the agent finishes. Available agents: ${agentIds.join(', ')}. The agent cannot see your conversation include ALL necessary context in the prompt. To launch multiple tasks in parallel, call this tool multiple times in a single response. After launching, briefly tell the user what you launched and end your turn do NOT predict or fabricate results.`,
17
+ description: `Launch a task on a specialized agent and await its result. BLOCKING: returns the agent's final output as this call's tool_result. Available agents: ${agentIds.join(', ')}. Prefer compact assignments; for large context, write/read shared workspace files and pass filenames or references. To launch multiple tasks in parallel, call this tool multiple times in a single assistant turn the runtime executes every tool_use block from one response concurrently and delivers all tool_results together, so 'fan out 8 specialists' is one assistant message with 8 create_task blocks.`,
10
18
  inputSchema: z.object({
11
19
  agent_id: agentIdEnum.describe('Which agent to run'),
12
20
  prompt: z
13
21
  .string()
14
- .describe('Self-contained task description with all context the agent needs'),
15
- description: z.string().describe('Short summary for tracking (shown to user)'),
22
+ .describe('Self-contained assignment for the agent. For large generated content, prefer workspace file references so provider output-token limits do not cut off the tool call.'),
23
+ description: z.string().describe('Short summary for tracking, shown to the user.'),
16
24
  plan_task_id: z
17
25
  .string()
18
26
  .optional()
@@ -23,7 +31,7 @@ export function buildCoordinatorTools(opts) {
23
31
  readOnly: false,
24
32
  destructive: false,
25
33
  concurrencySafe: true,
26
- async execute({ agent_id, prompt, description, plan_task_id }) {
34
+ async execute({ agent_id, prompt, description, plan_task_id }, _context) {
27
35
  let resolvedPlanTaskId = plan_task_id;
28
36
  if (taskStore) {
29
37
  if (resolvedPlanTaskId) {
@@ -49,21 +57,33 @@ export function buildCoordinatorTools(opts) {
49
57
  workingDirectory: cwd,
50
58
  runtimeContext: opts.runtimeContext,
51
59
  });
52
- if (onTaskLaunched) {
53
- onTaskLaunched(handle.taskId, {
54
- agentId: agent_id,
55
- description,
56
- planTaskId: resolvedPlanTaskId,
60
+ // Industrial-standard Anthropic tool pattern: tool returns
61
+ // its real result as the tool_result for the dispatching
62
+ // tool_use. Parallel fan-out happens at the executor layer
63
+ // — when the supervisor emits N create_task blocks in one
64
+ // assistant turn, the runtime runs them with Promise.all
65
+ // and delivers all N tool_results together. No async
66
+ // envelope injection, no second tool_result for the same
67
+ // tool_use_id (which Anthropic rejects with 400).
68
+ const completed = await gateway.waitForTask(handle.taskId);
69
+ const success = completed.state === 'completed';
70
+ const resultText = completed.result?.result ??
71
+ completed.result?.lastError ??
72
+ `Task finished with state: ${completed.state}`;
73
+ if (resolvedPlanTaskId && taskStore) {
74
+ await taskStore.update(resolvedPlanTaskId, {
75
+ status: 'completed',
76
+ description: success ? undefined : `Failed: ${resultText.substring(0, 200)}`,
57
77
  });
58
78
  }
59
79
  return {
60
- success: true,
61
- output: `Task launched: ${handle.taskId} → ${agent_id} ("${description}"). You will receive a task-notification when it completes.`,
80
+ success,
81
+ output: resultText,
62
82
  data: {
63
83
  task_id: handle.taskId,
64
84
  agent_id,
65
85
  description,
66
- state: 'running',
86
+ state: completed.state,
67
87
  plan_task_id: resolvedPlanTaskId,
68
88
  },
69
89
  };
@@ -71,11 +91,9 @@ export function buildCoordinatorTools(opts) {
71
91
  });
72
92
  const continueTask = defineTool({
73
93
  name: 'continue_task',
74
- description: 'Send a follow-up message to a previously completed task. NON-BLOCKING: the agent resumes in the background with full prior context. You will receive a task-notification when it finishes. Only use this with a task_id from a previous create_task or task-notification.',
94
+ description: "Send a follow-up message to a previously completed task and await the agent's next reply. BLOCKING: returns the agent's new output as this call's tool_result, the same shape as create_task. Only use this with a task_id from a previous create_task. To run multiple follow-ups in parallel, call this tool multiple times in a single assistant turn.",
75
95
  inputSchema: z.object({
76
- task_id: z
77
- .string()
78
- .describe('Agent task ID from a previous create_task or task-notification'),
96
+ task_id: z.string().describe('Agent task ID from a previous create_task'),
79
97
  message: z.string().describe('Follow-up instruction for the agent'),
80
98
  }),
81
99
  category: 'custom',
@@ -85,10 +103,21 @@ export function buildCoordinatorTools(opts) {
85
103
  concurrencySafe: true,
86
104
  async execute({ task_id, message }) {
87
105
  await gateway.continueTask(task_id, message);
106
+ // Mirror create_task's blocking pattern: await the new
107
+ // completion and return the agent's output inline. The
108
+ // previous non-blocking shape ('You will receive a
109
+ // task-notification…') relied on a global
110
+ // onTaskCompleted listener that the iteration loop
111
+ // no longer registers (envelope path is dead).
112
+ const completed = await gateway.waitForTask(task_id);
113
+ const success = completed.state === 'completed';
114
+ const resultText = completed.result?.result ??
115
+ completed.result?.lastError ??
116
+ `Task finished with state: ${completed.state}`;
88
117
  return {
89
- success: true,
90
- output: `Follow-up sent to ${task_id}. You will receive a task-notification when it finishes.`,
91
- data: { task_id, state: 'running' },
118
+ success,
119
+ output: resultText,
120
+ data: { task_id, state: completed.state },
92
121
  };
93
122
  },
94
123
  });
@@ -112,7 +141,68 @@ export function buildCoordinatorTools(opts) {
112
141
  };
113
142
  },
114
143
  });
115
- const tools = [createTask, continueTask, cancelTask];
144
+ const agentTaskList = defineTool({
145
+ name: 'agent_task_list',
146
+ description: "Inspect the live state of every agent task launched on this gateway via create_task: returns each task's id, agent, state (pending/running/completed/failed/canceled), and timing. Distinct from the plan-task store's `task_list` (which lists planning tasks): this tool lists running/completed worker invocations. Use it BEFORE declaring multi-worker work done — confirm every launched task reached `completed`, none still `running` or `failed`. Read-only and safe to call repeatedly.",
147
+ inputSchema: z.object({
148
+ state: z
149
+ .enum(['pending', 'running', 'completed', 'failed', 'canceled'])
150
+ .optional()
151
+ .describe('Filter by terminal/non-terminal state. Omit to list every task.'),
152
+ }),
153
+ category: 'custom',
154
+ permissions: [],
155
+ readOnly: true,
156
+ destructive: false,
157
+ concurrencySafe: true,
158
+ async execute({ state }) {
159
+ const handles = gateway.listTasks();
160
+ const filtered = state ? handles.filter((h) => h.state === state) : handles;
161
+ const items = filtered.map((h) => {
162
+ const runStatus = h.result?.status;
163
+ const lastError = h.result?.lastError ?? undefined;
164
+ return {
165
+ task_id: h.taskId,
166
+ agent_id: h.agentId,
167
+ state: h.state,
168
+ run_status: runStatus,
169
+ created_at: new Date(h.createdAt).toISOString(),
170
+ completed_at: h.completedAt ? new Date(h.completedAt).toISOString() : null,
171
+ duration_ms: h.completedAt ? h.completedAt - h.createdAt : null,
172
+ last_error: lastError,
173
+ };
174
+ });
175
+ const summary = {
176
+ total: handles.length,
177
+ running: handles.filter((h) => h.state === 'running').length,
178
+ completed: handles.filter((h) => h.state === 'completed').length,
179
+ failed: handles.filter((h) => h.state === 'failed').length,
180
+ canceled: handles.filter((h) => h.state === 'canceled').length,
181
+ };
182
+ const lines = items.length
183
+ ? items.map((i) => `- ${i.task_id} → ${i.agent_id} [${i.state}${i.run_status && i.run_status !== i.state ? ` / ${i.run_status}` : ''}]${i.duration_ms !== null ? ` (${Math.round(i.duration_ms / 1000)}s)` : ''}${i.last_error ? ` — error: ${i.last_error.slice(0, 200)}` : ''}`)
184
+ : ['(no tasks launched yet)'];
185
+ const header = `Tasks: ${summary.total} total — ${summary.running} running, ${summary.completed} completed, ${summary.failed} failed, ${summary.canceled} canceled`;
186
+ return {
187
+ success: true,
188
+ output: [header, '', ...lines].join('\n'),
189
+ data: { items, summary },
190
+ };
191
+ },
192
+ });
193
+ // `continue_task` was a follow-up channel for a still-alive worker
194
+ // task. With `create_task` now blocking + tool_result returning
195
+ // the worker's final output, every worker reaches a terminal
196
+ // state by the time the supervisor wants to follow up — and the
197
+ // agent manager rejects `continue` on terminal tasks. The
198
+ // industrial pattern is to issue a fresh `create_task` that
199
+ // references the prior worker's output path, so we drop
200
+ // `continue_task` from the registered surface entirely. The
201
+ // definition stays in this file for now in case a future
202
+ // non-default gateway (one that keeps the worker process alive
203
+ // for follow-ups) wants to re-register it.
204
+ void continueTask;
205
+ const tools = [createTask, cancelTask, agentTaskList];
116
206
  if (getPlanManager) {
117
207
  const approvePlan = defineTool({
118
208
  name: 'approve_plan',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,14 @@ export type RuntimeToolOverrides = Record<string, ToolAvailability | 'disabled'>
52
52
  export interface AgentRuntimeContext {
53
53
  label?: string;
54
54
  outputDirectory?: string;
55
+ /**
56
+ * Optional working/scratch directory the runtime exposes to the
57
+ * agent — sibling to `outputDirectory`, invisible to the
58
+ * output collector. Mirrors the Anthropic Cowork pattern
59
+ * where `/home/claude` is scratch and `/mnt/user-data/outputs` is
60
+ * user-visible.
61
+ */
62
+ scratchDirectory?: string;
55
63
  outputFileMarker?: string;
56
64
  notes?: readonly string[];
57
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/agent/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/agent/base.ts"],"names":[],"mappings":"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"}