@namzu/sdk 45.1.0 → 48.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 (767) hide show
  1. package/CHANGELOG.md +436 -8
  2. package/README.md +7 -8
  3. package/dist/advisory/history.d.ts.map +1 -1
  4. package/dist/advisory/history.js +21 -1
  5. package/dist/advisory/history.js.map +1 -1
  6. package/dist/advisory/index.d.ts +1 -1
  7. package/dist/advisory/index.d.ts.map +1 -1
  8. package/dist/advisory/index.js +1 -1
  9. package/dist/advisory/index.js.map +1 -1
  10. package/dist/advisory/registry.d.ts +17 -0
  11. package/dist/advisory/registry.d.ts.map +1 -1
  12. package/dist/advisory/registry.js +26 -0
  13. package/dist/advisory/registry.js.map +1 -1
  14. package/dist/agents/PipelineAgent.d.ts +2 -46
  15. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  16. package/dist/agents/PipelineAgent.js +2 -242
  17. package/dist/agents/PipelineAgent.js.map +1 -1
  18. package/dist/agents/QueryAgent.d.ts +21 -0
  19. package/dist/agents/QueryAgent.d.ts.map +1 -0
  20. package/dist/agents/QueryAgent.js +214 -0
  21. package/dist/agents/QueryAgent.js.map +1 -0
  22. package/dist/agents/ReactiveAgent.d.ts +4 -16
  23. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  24. package/dist/agents/ReactiveAgent.js +4 -183
  25. package/dist/agents/ReactiveAgent.js.map +1 -1
  26. package/dist/agents/RouterAgent.d.ts +2 -20
  27. package/dist/agents/RouterAgent.d.ts.map +1 -1
  28. package/dist/agents/RouterAgent.js +2 -266
  29. package/dist/agents/RouterAgent.js.map +1 -1
  30. package/dist/agents/SupervisorAgent.d.ts +3 -43
  31. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  32. package/dist/agents/SupervisorAgent.js +3 -418
  33. package/dist/agents/SupervisorAgent.js.map +1 -1
  34. package/dist/agents/defineAgent.d.ts +2 -1
  35. package/dist/agents/defineAgent.d.ts.map +1 -1
  36. package/dist/agents/defineAgent.js +6 -1
  37. package/dist/agents/defineAgent.js.map +1 -1
  38. package/dist/agents/examples/PipelineAgent.d.ts +46 -0
  39. package/dist/agents/examples/PipelineAgent.d.ts.map +1 -0
  40. package/dist/agents/examples/PipelineAgent.js +242 -0
  41. package/dist/agents/examples/PipelineAgent.js.map +1 -0
  42. package/dist/agents/examples/RouterAgent.d.ts +22 -0
  43. package/dist/agents/examples/RouterAgent.d.ts.map +1 -0
  44. package/dist/agents/examples/RouterAgent.js +268 -0
  45. package/dist/agents/examples/RouterAgent.js.map +1 -0
  46. package/dist/agents/examples/SupervisorAgent.d.ts +45 -0
  47. package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -0
  48. package/dist/agents/examples/SupervisorAgent.js +406 -0
  49. package/dist/agents/examples/SupervisorAgent.js.map +1 -0
  50. package/dist/agents/explore.d.ts +6 -3
  51. package/dist/agents/explore.d.ts.map +1 -1
  52. package/dist/agents/explore.js +6 -3
  53. package/dist/agents/explore.js.map +1 -1
  54. package/dist/agents/forward-options.d.ts +11 -0
  55. package/dist/agents/forward-options.d.ts.map +1 -0
  56. package/dist/agents/forward-options.js +15 -0
  57. package/dist/agents/forward-options.js.map +1 -0
  58. package/dist/agents/index.d.ts +1 -0
  59. package/dist/agents/index.d.ts.map +1 -1
  60. package/dist/agents/index.js +2 -0
  61. package/dist/agents/index.js.map +1 -1
  62. package/dist/agents/runAgent.d.ts +19 -8
  63. package/dist/agents/runAgent.d.ts.map +1 -1
  64. package/dist/agents/runAgent.js +99 -29
  65. package/dist/agents/runAgent.js.map +1 -1
  66. package/dist/authorization/command-line.d.ts +2 -0
  67. package/dist/authorization/command-line.d.ts.map +1 -1
  68. package/dist/authorization/command-line.js +2 -2
  69. package/dist/authorization/command-line.js.map +1 -1
  70. package/dist/authorization/gate.d.ts +13 -2
  71. package/dist/authorization/gate.d.ts.map +1 -1
  72. package/dist/authorization/gate.js +37 -5
  73. package/dist/authorization/gate.js.map +1 -1
  74. package/dist/authorization/program.d.ts +151 -0
  75. package/dist/authorization/program.d.ts.map +1 -0
  76. package/dist/authorization/program.js +713 -0
  77. package/dist/authorization/program.js.map +1 -0
  78. package/dist/authorization/reexec-wrapper.d.ts +106 -0
  79. package/dist/authorization/reexec-wrapper.d.ts.map +1 -0
  80. package/dist/authorization/reexec-wrapper.js +532 -0
  81. package/dist/authorization/reexec-wrapper.js.map +1 -0
  82. package/dist/authorization/rules.d.ts +9 -0
  83. package/dist/authorization/rules.d.ts.map +1 -1
  84. package/dist/authorization/rules.js +27 -1
  85. package/dist/authorization/rules.js.map +1 -1
  86. package/dist/authorization/shell-lexer.d.ts +39 -0
  87. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  88. package/dist/authorization/shell-lexer.js +113 -69
  89. package/dist/authorization/shell-lexer.js.map +1 -1
  90. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  91. package/dist/bridge/sse/mapper.js +6 -0
  92. package/dist/bridge/sse/mapper.js.map +1 -1
  93. package/dist/capabilities/index.d.ts +54 -0
  94. package/dist/capabilities/index.d.ts.map +1 -0
  95. package/dist/capabilities/index.js +92 -0
  96. package/dist/capabilities/index.js.map +1 -0
  97. package/dist/config/registry.d.ts +2 -1
  98. package/dist/config/registry.d.ts.map +1 -1
  99. package/dist/config/registry.js +3 -2
  100. package/dist/config/registry.js.map +1 -1
  101. package/dist/connector/index.d.ts +4 -4
  102. package/dist/connector/index.d.ts.map +1 -1
  103. package/dist/connector/index.js +3 -3
  104. package/dist/connector/index.js.map +1 -1
  105. package/dist/connector/mcp/adapter.d.ts +16 -1
  106. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  107. package/dist/connector/mcp/adapter.js +60 -4
  108. package/dist/connector/mcp/adapter.js.map +1 -1
  109. package/dist/connector/mcp/client.d.ts +13 -4
  110. package/dist/connector/mcp/client.d.ts.map +1 -1
  111. package/dist/connector/mcp/client.js +20 -3
  112. package/dist/connector/mcp/client.js.map +1 -1
  113. package/dist/connector/mcp/discovery.d.ts +24 -1
  114. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  115. package/dist/connector/mcp/discovery.js +44 -0
  116. package/dist/connector/mcp/discovery.js.map +1 -1
  117. package/dist/connector/mcp/index.d.ts +2 -0
  118. package/dist/connector/mcp/index.d.ts.map +1 -1
  119. package/dist/connector/mcp/index.js +11 -0
  120. package/dist/connector/mcp/index.js.map +1 -1
  121. package/dist/connector/mcp/mcp-toolset.d.ts +133 -0
  122. package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -0
  123. package/dist/connector/mcp/mcp-toolset.js +399 -0
  124. package/dist/connector/mcp/mcp-toolset.js.map +1 -0
  125. package/dist/connector/tools/index.d.ts +2 -2
  126. package/dist/connector/tools/index.d.ts.map +1 -1
  127. package/dist/connector/tools/index.js +1 -1
  128. package/dist/connector/tools/index.js.map +1 -1
  129. package/dist/connector/tools/router.d.ts +15 -13
  130. package/dist/connector/tools/router.d.ts.map +1 -1
  131. package/dist/connector/tools/router.js +30 -51
  132. package/dist/connector/tools/router.js.map +1 -1
  133. package/dist/contracts/a2a.d.ts +2 -2
  134. package/dist/directory/derive-supervisor.d.ts +2 -2
  135. package/dist/directory/derive-supervisor.d.ts.map +1 -1
  136. package/dist/directory/derive-supervisor.js +6 -7
  137. package/dist/directory/derive-supervisor.js.map +1 -1
  138. package/dist/directory/derive.d.ts.map +1 -1
  139. package/dist/directory/derive.js +5 -5
  140. package/dist/directory/derive.js.map +1 -1
  141. package/dist/execution/code-runtime/types.d.ts +2 -2
  142. package/dist/execution/code-runtime/types.js +1 -1
  143. package/dist/invariants/index.d.ts +2 -1
  144. package/dist/invariants/index.d.ts.map +1 -1
  145. package/dist/invariants/index.js +3 -2
  146. package/dist/invariants/index.js.map +1 -1
  147. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  148. package/dist/manager/agent/lifecycle.js +9 -0
  149. package/dist/manager/agent/lifecycle.js.map +1 -1
  150. package/dist/manager/connector/environment.d.ts +6 -0
  151. package/dist/manager/connector/environment.d.ts.map +1 -1
  152. package/dist/manager/connector/environment.js +11 -4
  153. package/dist/manager/connector/environment.js.map +1 -1
  154. package/dist/manager/connector/index.d.ts +2 -2
  155. package/dist/manager/connector/index.d.ts.map +1 -1
  156. package/dist/manager/connector/index.js +2 -2
  157. package/dist/manager/connector/index.js.map +1 -1
  158. package/dist/manager/connector/tenant.d.ts +6 -0
  159. package/dist/manager/connector/tenant.d.ts.map +1 -1
  160. package/dist/manager/connector/tenant.js +11 -4
  161. package/dist/manager/connector/tenant.js.map +1 -1
  162. package/dist/manager/index.d.ts +2 -2
  163. package/dist/manager/index.d.ts.map +1 -1
  164. package/dist/manager/index.js +2 -2
  165. package/dist/manager/index.js.map +1 -1
  166. package/dist/manager/resident/learning-observation.d.ts +4 -4
  167. package/dist/manager/resident/learning.d.ts +36 -36
  168. package/dist/manager/session/attribution.d.ts +22 -0
  169. package/dist/manager/session/attribution.d.ts.map +1 -0
  170. package/dist/manager/session/attribution.js +64 -0
  171. package/dist/manager/session/attribution.js.map +1 -0
  172. package/dist/manager/session/turn-recorder.d.ts +14 -0
  173. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  174. package/dist/manager/session/turn-recorder.js +208 -55
  175. package/dist/manager/session/turn-recorder.js.map +1 -1
  176. package/dist/peers/address.d.ts +36 -0
  177. package/dist/peers/address.d.ts.map +1 -0
  178. package/dist/peers/address.js +52 -0
  179. package/dist/peers/address.js.map +1 -0
  180. package/dist/peers/client.d.ts +47 -0
  181. package/dist/peers/client.d.ts.map +1 -0
  182. package/dist/peers/client.js +132 -0
  183. package/dist/peers/client.js.map +1 -0
  184. package/dist/peers/dir.d.ts +88 -0
  185. package/dist/peers/dir.d.ts.map +1 -0
  186. package/dist/peers/dir.js +139 -0
  187. package/dist/peers/dir.js.map +1 -0
  188. package/dist/peers/endpoint.d.ts +144 -0
  189. package/dist/peers/endpoint.d.ts.map +1 -0
  190. package/dist/peers/endpoint.js +420 -0
  191. package/dist/peers/endpoint.js.map +1 -0
  192. package/dist/peers/envelope.d.ts +42 -0
  193. package/dist/peers/envelope.d.ts.map +1 -0
  194. package/dist/peers/envelope.js +110 -0
  195. package/dist/peers/envelope.js.map +1 -0
  196. package/dist/peers/index.d.ts +30 -0
  197. package/dist/peers/index.d.ts.map +1 -0
  198. package/dist/peers/index.js +22 -0
  199. package/dist/peers/index.js.map +1 -0
  200. package/dist/peers/protocol.d.ts +645 -0
  201. package/dist/peers/protocol.d.ts.map +1 -0
  202. package/dist/peers/protocol.js +151 -0
  203. package/dist/peers/protocol.js.map +1 -0
  204. package/dist/peers/record.d.ts +71 -0
  205. package/dist/peers/record.d.ts.map +1 -0
  206. package/dist/peers/record.js +45 -0
  207. package/dist/peers/record.js.map +1 -0
  208. package/dist/peers/registry.d.ts +54 -0
  209. package/dist/peers/registry.d.ts.map +1 -0
  210. package/dist/peers/registry.js +213 -0
  211. package/dist/peers/registry.js.map +1 -0
  212. package/dist/plugin/define.d.ts +24 -0
  213. package/dist/plugin/define.d.ts.map +1 -0
  214. package/dist/plugin/define.js +42 -0
  215. package/dist/plugin/define.js.map +1 -0
  216. package/dist/plugin/index.d.ts +2 -0
  217. package/dist/plugin/index.d.ts.map +1 -1
  218. package/dist/plugin/index.js +1 -0
  219. package/dist/plugin/index.js.map +1 -1
  220. package/dist/plugin/lifecycle.d.ts +27 -3
  221. package/dist/plugin/lifecycle.d.ts.map +1 -1
  222. package/dist/plugin/lifecycle.js +242 -92
  223. package/dist/plugin/lifecycle.js.map +1 -1
  224. package/dist/plugin/resolver.d.ts +2 -2
  225. package/dist/plugin/resolver.d.ts.map +1 -1
  226. package/dist/plugin/resolver.js.map +1 -1
  227. package/dist/plugin/shell-hook.d.ts.map +1 -1
  228. package/dist/plugin/shell-hook.js +17 -3
  229. package/dist/plugin/shell-hook.js.map +1 -1
  230. package/dist/pricing/catalogue.generated.d.ts.map +1 -1
  231. package/dist/pricing/catalogue.generated.js +28 -4
  232. package/dist/pricing/catalogue.generated.js.map +1 -1
  233. package/dist/probe/errors.d.ts +2 -1
  234. package/dist/probe/errors.d.ts.map +1 -1
  235. package/dist/probe/errors.js +3 -2
  236. package/dist/probe/errors.js.map +1 -1
  237. package/dist/prompt/coding-agent-doctrine.d.ts +18 -7
  238. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  239. package/dist/prompt/coding-agent-doctrine.js +11 -6
  240. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  241. package/dist/prompt/contributions.d.ts +4 -1
  242. package/dist/prompt/contributions.d.ts.map +1 -1
  243. package/dist/prompt/contributions.js +7 -2
  244. package/dist/prompt/contributions.js.map +1 -1
  245. package/dist/prompt/index.d.ts +1 -1
  246. package/dist/prompt/index.d.ts.map +1 -1
  247. package/dist/prompt/index.js +1 -1
  248. package/dist/prompt/index.js.map +1 -1
  249. package/dist/provider/collect-chat-completion.d.ts +6 -1
  250. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  251. package/dist/provider/collect-chat-completion.js +88 -10
  252. package/dist/provider/collect-chat-completion.js.map +1 -1
  253. package/dist/provider/mock.d.ts.map +1 -1
  254. package/dist/provider/mock.js +23 -6
  255. package/dist/provider/mock.js.map +1 -1
  256. package/dist/provider/registry.d.ts +2 -1
  257. package/dist/provider/registry.d.ts.map +1 -1
  258. package/dist/provider/registry.js +3 -2
  259. package/dist/provider/registry.js.map +1 -1
  260. package/dist/provider/tool-call-framing.d.ts +164 -0
  261. package/dist/provider/tool-call-framing.d.ts.map +1 -0
  262. package/dist/provider/tool-call-framing.js +163 -0
  263. package/dist/provider/tool-call-framing.js.map +1 -0
  264. package/dist/public-runtime.d.ts +27 -14
  265. package/dist/public-runtime.d.ts.map +1 -1
  266. package/dist/public-runtime.js +49 -11
  267. package/dist/public-runtime.js.map +1 -1
  268. package/dist/public-tools.d.ts +9 -6
  269. package/dist/public-tools.d.ts.map +1 -1
  270. package/dist/public-tools.js +13 -5
  271. package/dist/public-tools.js.map +1 -1
  272. package/dist/public-types.d.ts +16 -5
  273. package/dist/public-types.d.ts.map +1 -1
  274. package/dist/read-model/registry.d.ts +2 -1
  275. package/dist/read-model/registry.d.ts.map +1 -1
  276. package/dist/read-model/registry.js +3 -2
  277. package/dist/read-model/registry.js.map +1 -1
  278. package/dist/registry/ManagedRegistry.d.ts +30 -0
  279. package/dist/registry/ManagedRegistry.d.ts.map +1 -1
  280. package/dist/registry/ManagedRegistry.js +45 -6
  281. package/dist/registry/ManagedRegistry.js.map +1 -1
  282. package/dist/registry/collision.d.ts +57 -0
  283. package/dist/registry/collision.d.ts.map +1 -0
  284. package/dist/registry/collision.js +41 -0
  285. package/dist/registry/collision.js.map +1 -0
  286. package/dist/registry/command/index.d.ts +5 -3
  287. package/dist/registry/command/index.d.ts.map +1 -1
  288. package/dist/registry/command/index.js +6 -4
  289. package/dist/registry/command/index.js.map +1 -1
  290. package/dist/registry/index.d.ts +3 -4
  291. package/dist/registry/index.d.ts.map +1 -1
  292. package/dist/registry/index.js +2 -2
  293. package/dist/registry/index.js.map +1 -1
  294. package/dist/registry/plugin/index.d.ts.map +1 -1
  295. package/dist/registry/plugin/index.js +14 -1
  296. package/dist/registry/plugin/index.js.map +1 -1
  297. package/dist/registry/tool/callable.d.ts +22 -0
  298. package/dist/registry/tool/callable.d.ts.map +1 -0
  299. package/dist/registry/tool/callable.js +28 -0
  300. package/dist/registry/tool/callable.js.map +1 -0
  301. package/dist/registry/tool/execute.d.ts +14 -77
  302. package/dist/registry/tool/execute.d.ts.map +1 -1
  303. package/dist/registry/tool/execute.js +15 -720
  304. package/dist/registry/tool/execute.js.map +1 -1
  305. package/dist/registry/tool/portable.d.ts +25 -0
  306. package/dist/registry/tool/portable.d.ts.map +1 -1
  307. package/dist/registry/tool/portable.js +50 -0
  308. package/dist/registry/tool/portable.js.map +1 -1
  309. package/dist/registry/tool/presentation.d.ts +6 -5
  310. package/dist/registry/tool/presentation.d.ts.map +1 -1
  311. package/dist/registry/tool/presentation.js +3 -3
  312. package/dist/registry/tool/presentation.js.map +1 -1
  313. package/dist/runtime/bidi/session.d.ts +5 -4
  314. package/dist/runtime/bidi/session.d.ts.map +1 -1
  315. package/dist/runtime/bidi/session.js +18 -1
  316. package/dist/runtime/bidi/session.js.map +1 -1
  317. package/dist/runtime/query/executor/tool-call-admission.d.ts +82 -13
  318. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  319. package/dist/runtime/query/executor/tool-call-admission.js +227 -17
  320. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  321. package/dist/runtime/query/executor.d.ts +37 -5
  322. package/dist/runtime/query/executor.d.ts.map +1 -1
  323. package/dist/runtime/query/executor.js +103 -14
  324. package/dist/runtime/query/executor.js.map +1 -1
  325. package/dist/runtime/query/file-evidence-replay.d.ts +1 -1
  326. package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -1
  327. package/dist/runtime/query/file-evidence-replay.js +8 -7
  328. package/dist/runtime/query/file-evidence-replay.js.map +1 -1
  329. package/dist/runtime/query/fork/prepare.d.ts +4 -1
  330. package/dist/runtime/query/fork/prepare.d.ts.map +1 -1
  331. package/dist/runtime/query/fork/prepare.js +4 -0
  332. package/dist/runtime/query/fork/prepare.js.map +1 -1
  333. package/dist/runtime/query/guardrail-presets.d.ts +4 -3
  334. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
  335. package/dist/runtime/query/guardrail-presets.js +4 -3
  336. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  337. package/dist/runtime/query/index.d.ts +23 -10
  338. package/dist/runtime/query/index.d.ts.map +1 -1
  339. package/dist/runtime/query/index.js +149 -70
  340. package/dist/runtime/query/index.js.map +1 -1
  341. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  342. package/dist/runtime/query/iteration/index.js +8 -1
  343. package/dist/runtime/query/iteration/index.js.map +1 -1
  344. package/dist/runtime/query/iteration/phases/compaction.js +1 -1
  345. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  346. package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
  347. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  348. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  349. package/dist/runtime/query/iteration/phases/tool-review.js +55 -2
  350. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  351. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  352. package/dist/runtime/query/iteration/stream-turn.js +342 -116
  353. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  354. package/dist/runtime/query/iteration/tool-input.d.ts +79 -0
  355. package/dist/runtime/query/iteration/tool-input.d.ts.map +1 -0
  356. package/dist/runtime/query/iteration/tool-input.js +291 -0
  357. package/dist/runtime/query/iteration/tool-input.js.map +1 -0
  358. package/dist/runtime/query/observation-context.d.ts +2 -2
  359. package/dist/runtime/query/observation-context.d.ts.map +1 -1
  360. package/dist/runtime/query/observation-context.js.map +1 -1
  361. package/dist/runtime/query/prelude-lease.d.ts +18 -0
  362. package/dist/runtime/query/prelude-lease.d.ts.map +1 -0
  363. package/dist/runtime/query/prelude-lease.js +121 -0
  364. package/dist/runtime/query/prelude-lease.js.map +1 -0
  365. package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
  366. package/dist/runtime/query/prepare-turn.js +386 -187
  367. package/dist/runtime/query/prepare-turn.js.map +1 -1
  368. package/dist/runtime/query/prompt-cache.d.ts +2 -2
  369. package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
  370. package/dist/runtime/query/prompt.d.ts +2 -2
  371. package/dist/runtime/query/prompt.d.ts.map +1 -1
  372. package/dist/runtime/query/prompt.js +1 -1
  373. package/dist/runtime/query/prompt.js.map +1 -1
  374. package/dist/runtime/query/resume-session.d.ts.map +1 -1
  375. package/dist/runtime/query/resume-session.js +37 -2
  376. package/dist/runtime/query/resume-session.js.map +1 -1
  377. package/dist/runtime/query/review-policy.d.ts +65 -3
  378. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  379. package/dist/runtime/query/review-policy.js +143 -22
  380. package/dist/runtime/query/review-policy.js.map +1 -1
  381. package/dist/runtime/query/tooling.d.ts +3 -2
  382. package/dist/runtime/query/tooling.d.ts.map +1 -1
  383. package/dist/runtime/query/tooling.js.map +1 -1
  384. package/dist/runtime/query/turn-state.d.ts.map +1 -1
  385. package/dist/runtime/query/turn-state.js +5 -0
  386. package/dist/runtime/query/turn-state.js.map +1 -1
  387. package/dist/runtime/system-events.d.ts +112 -0
  388. package/dist/runtime/system-events.d.ts.map +1 -0
  389. package/dist/runtime/system-events.js +183 -0
  390. package/dist/runtime/system-events.js.map +1 -0
  391. package/dist/scheduler/delegating.d.ts +2 -1
  392. package/dist/scheduler/delegating.d.ts.map +1 -1
  393. package/dist/scheduler/delegating.js +3 -2
  394. package/dist/scheduler/delegating.js.map +1 -1
  395. package/dist/skills/index.d.ts +1 -1
  396. package/dist/skills/index.d.ts.map +1 -1
  397. package/dist/skills/index.js +1 -1
  398. package/dist/skills/index.js.map +1 -1
  399. package/dist/skills/registry.d.ts +18 -0
  400. package/dist/skills/registry.d.ts.map +1 -1
  401. package/dist/skills/registry.js +20 -0
  402. package/dist/skills/registry.js.map +1 -1
  403. package/dist/store/evidence/index-page.d.ts +2 -2
  404. package/dist/store/session-log/conformance.d.ts +1 -1
  405. package/dist/store/session-log/conformance.d.ts.map +1 -1
  406. package/dist/store/session-log/conformance.js +49 -8
  407. package/dist/store/session-log/conformance.js.map +1 -1
  408. package/dist/store/session-log/core.d.ts +8 -3
  409. package/dist/store/session-log/core.d.ts.map +1 -1
  410. package/dist/store/session-log/core.js +2 -1
  411. package/dist/store/session-log/core.js.map +1 -1
  412. package/dist/store/session-log/fold.d.ts +12 -0
  413. package/dist/store/session-log/fold.d.ts.map +1 -1
  414. package/dist/store/session-log/fold.js +57 -7
  415. package/dist/store/session-log/fold.js.map +1 -1
  416. package/dist/store/session-log/index.d.ts +2 -2
  417. package/dist/store/session-log/index.d.ts.map +1 -1
  418. package/dist/store/session-log/index.js +1 -1
  419. package/dist/store/session-log/index.js.map +1 -1
  420. package/dist/test-support/toolset.d.ts +19 -0
  421. package/dist/test-support/toolset.d.ts.map +1 -0
  422. package/dist/test-support/toolset.js +20 -0
  423. package/dist/test-support/toolset.js.map +1 -0
  424. package/dist/tools/builtins/bash.d.ts +29 -0
  425. package/dist/tools/builtins/bash.d.ts.map +1 -1
  426. package/dist/tools/builtins/bash.js +19 -9
  427. package/dist/tools/builtins/bash.js.map +1 -1
  428. package/dist/tools/builtins/browser-url.d.ts +1 -1
  429. package/dist/tools/builtins/browser-url.js +1 -1
  430. package/dist/tools/builtins/browser.d.ts +6 -6
  431. package/dist/tools/builtins/computer-use-coordinates.d.ts +65 -0
  432. package/dist/tools/builtins/computer-use-coordinates.d.ts.map +1 -0
  433. package/dist/tools/builtins/computer-use-coordinates.js +123 -0
  434. package/dist/tools/builtins/computer-use-coordinates.js.map +1 -0
  435. package/dist/tools/builtins/computer-use-image.d.ts +77 -0
  436. package/dist/tools/builtins/computer-use-image.d.ts.map +1 -0
  437. package/dist/tools/builtins/computer-use-image.js +223 -0
  438. package/dist/tools/builtins/computer-use-image.js.map +1 -0
  439. package/dist/tools/builtins/computer-use.d.ts +519 -14
  440. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  441. package/dist/tools/builtins/computer-use.js +1196 -183
  442. package/dist/tools/builtins/computer-use.js.map +1 -1
  443. package/dist/tools/builtins/edit.d.ts.map +1 -1
  444. package/dist/tools/builtins/edit.js +9 -1
  445. package/dist/tools/builtins/edit.js.map +1 -1
  446. package/dist/tools/builtins/index.d.ts +2 -1
  447. package/dist/tools/builtins/index.d.ts.map +1 -1
  448. package/dist/tools/builtins/index.js +1 -1
  449. package/dist/tools/builtins/index.js.map +1 -1
  450. package/dist/tools/builtins/json-string-hint.d.ts +15 -0
  451. package/dist/tools/builtins/json-string-hint.d.ts.map +1 -0
  452. package/dist/tools/builtins/json-string-hint.js +17 -0
  453. package/dist/tools/builtins/json-string-hint.js.map +1 -0
  454. package/dist/tools/builtins/search-tools.d.ts.map +1 -1
  455. package/dist/tools/builtins/search-tools.js +7 -15
  456. package/dist/tools/builtins/search-tools.js.map +1 -1
  457. package/dist/tools/builtins/skill.d.ts +74 -0
  458. package/dist/tools/builtins/skill.d.ts.map +1 -1
  459. package/dist/tools/builtins/skill.js +214 -174
  460. package/dist/tools/builtins/skill.js.map +1 -1
  461. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  462. package/dist/tools/builtins/write-file.js +11 -0
  463. package/dist/tools/builtins/write-file.js.map +1 -1
  464. package/dist/tools/command-shell.d.ts +10 -0
  465. package/dist/tools/command-shell.d.ts.map +1 -1
  466. package/dist/tools/command-shell.js +45 -1
  467. package/dist/tools/command-shell.js.map +1 -1
  468. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  469. package/dist/tools/coordinator/agent.js +5 -0
  470. package/dist/tools/coordinator/agent.js.map +1 -1
  471. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  472. package/dist/tools/coordinator/ask-user-question.js +26 -13
  473. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  474. package/dist/tools/coordinator/index.d.ts.map +1 -1
  475. package/dist/tools/coordinator/index.js +5 -0
  476. package/dist/tools/coordinator/index.js.map +1 -1
  477. package/dist/tools/coordinator/question-options.d.ts +78 -0
  478. package/dist/tools/coordinator/question-options.d.ts.map +1 -0
  479. package/dist/tools/coordinator/question-options.js +153 -0
  480. package/dist/tools/coordinator/question-options.js.map +1 -0
  481. package/dist/tools/defineTool.d.ts +12 -0
  482. package/dist/tools/defineTool.d.ts.map +1 -1
  483. package/dist/tools/defineTool.js +24 -0
  484. package/dist/tools/defineTool.js.map +1 -1
  485. package/dist/tools/memory/search.d.ts.map +1 -1
  486. package/dist/tools/memory/search.js +4 -1
  487. package/dist/tools/memory/search.js.map +1 -1
  488. package/dist/tools/memory/update.d.ts.map +1 -1
  489. package/dist/tools/memory/update.js +8 -5
  490. package/dist/tools/memory/update.js.map +1 -1
  491. package/dist/tools/render-nonce.d.ts +47 -0
  492. package/dist/tools/render-nonce.d.ts.map +1 -0
  493. package/dist/tools/render-nonce.js +63 -0
  494. package/dist/tools/render-nonce.js.map +1 -0
  495. package/dist/tools/roster.d.ts +46 -19
  496. package/dist/tools/roster.d.ts.map +1 -1
  497. package/dist/tools/roster.js +63 -33
  498. package/dist/tools/roster.js.map +1 -1
  499. package/dist/tools/schedules/present.d.ts.map +1 -1
  500. package/dist/tools/schedules/present.js +2 -0
  501. package/dist/tools/schedules/present.js.map +1 -1
  502. package/dist/tools/schedules/schedule-tool.d.ts +6 -5
  503. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  504. package/dist/tools/schedules/schedule-tool.js +208 -37
  505. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  506. package/dist/tools/schedules/types.d.ts +120 -6
  507. package/dist/tools/schedules/types.d.ts.map +1 -1
  508. package/dist/tools/trusted-read-only.d.ts +9 -5
  509. package/dist/tools/trusted-read-only.d.ts.map +1 -1
  510. package/dist/tools/trusted-read-only.js +14 -10
  511. package/dist/tools/trusted-read-only.js.map +1 -1
  512. package/dist/tools/untrusted-envelope.d.ts +67 -28
  513. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  514. package/dist/tools/untrusted-envelope.js +108 -59
  515. package/dist/tools/untrusted-envelope.js.map +1 -1
  516. package/dist/toolsets/combine.d.ts +44 -0
  517. package/dist/toolsets/combine.d.ts.map +1 -0
  518. package/dist/toolsets/combine.js +153 -0
  519. package/dist/toolsets/combine.js.map +1 -0
  520. package/dist/toolsets/manager.d.ts +201 -0
  521. package/dist/toolsets/manager.d.ts.map +1 -0
  522. package/dist/toolsets/manager.js +837 -0
  523. package/dist/toolsets/manager.js.map +1 -0
  524. package/dist/toolsets/source-glob.d.ts +15 -0
  525. package/dist/toolsets/source-glob.d.ts.map +1 -0
  526. package/dist/toolsets/source-glob.js +23 -0
  527. package/dist/toolsets/source-glob.js.map +1 -0
  528. package/dist/toolsets/toolset.d.ts +20 -0
  529. package/dist/toolsets/toolset.d.ts.map +1 -0
  530. package/dist/toolsets/toolset.js +28 -0
  531. package/dist/toolsets/toolset.js.map +1 -0
  532. package/dist/toolsets/types.d.ts +128 -0
  533. package/dist/toolsets/types.d.ts.map +1 -0
  534. package/dist/toolsets/types.js +33 -0
  535. package/dist/toolsets/types.js.map +1 -0
  536. package/dist/toolsets/wrappers.d.ts +59 -0
  537. package/dist/toolsets/wrappers.d.ts.map +1 -0
  538. package/dist/toolsets/wrappers.js +165 -0
  539. package/dist/toolsets/wrappers.js.map +1 -0
  540. package/dist/types/agent/base.d.ts +27 -16
  541. package/dist/types/agent/base.d.ts.map +1 -1
  542. package/dist/types/agent/index.d.ts +1 -0
  543. package/dist/types/agent/index.d.ts.map +1 -1
  544. package/dist/types/agent/index.js +1 -0
  545. package/dist/types/agent/index.js.map +1 -1
  546. package/dist/types/agent/pipeline.d.ts +2 -0
  547. package/dist/types/agent/pipeline.d.ts.map +1 -1
  548. package/dist/types/agent/query.d.ts +117 -0
  549. package/dist/types/agent/query.d.ts.map +1 -0
  550. package/dist/types/agent/query.js +2 -0
  551. package/dist/types/agent/query.js.map +1 -0
  552. package/dist/types/agent/reactive.d.ts +2 -129
  553. package/dist/types/agent/reactive.d.ts.map +1 -1
  554. package/dist/types/agent/router.d.ts +2 -0
  555. package/dist/types/agent/router.d.ts.map +1 -1
  556. package/dist/types/agent/supervisor.d.ts +5 -2
  557. package/dist/types/agent/supervisor.d.ts.map +1 -1
  558. package/dist/types/authorization/index.d.ts +70 -12
  559. package/dist/types/authorization/index.d.ts.map +1 -1
  560. package/dist/types/authorization/index.js +11 -0
  561. package/dist/types/authorization/index.js.map +1 -1
  562. package/dist/types/computer-use/index.d.ts +176 -0
  563. package/dist/types/computer-use/index.d.ts.map +1 -1
  564. package/dist/types/computer-use/index.js.map +1 -1
  565. package/dist/types/connector/mcp.d.ts +32 -0
  566. package/dist/types/connector/mcp.d.ts.map +1 -1
  567. package/dist/types/errors/index.d.ts +15 -0
  568. package/dist/types/errors/index.d.ts.map +1 -1
  569. package/dist/types/errors/index.js.map +1 -1
  570. package/dist/types/hitl/index.d.ts +57 -0
  571. package/dist/types/hitl/index.d.ts.map +1 -1
  572. package/dist/types/hitl/index.js.map +1 -1
  573. package/dist/types/message/index.d.ts +130 -9
  574. package/dist/types/message/index.d.ts.map +1 -1
  575. package/dist/types/message/index.js +4 -1
  576. package/dist/types/message/index.js.map +1 -1
  577. package/dist/types/plugin/index.d.ts +22 -4
  578. package/dist/types/plugin/index.d.ts.map +1 -1
  579. package/dist/types/plugin/index.js +1 -0
  580. package/dist/types/plugin/index.js.map +1 -1
  581. package/dist/types/provider/chat.d.ts +5 -0
  582. package/dist/types/provider/chat.d.ts.map +1 -1
  583. package/dist/types/provider/config.d.ts +8 -3
  584. package/dist/types/provider/config.d.ts.map +1 -1
  585. package/dist/types/provider/stream.d.ts +39 -0
  586. package/dist/types/provider/stream.d.ts.map +1 -1
  587. package/dist/types/sandbox/index.d.ts +1 -1
  588. package/dist/types/session/events.d.ts +14 -3
  589. package/dist/types/session/events.d.ts.map +1 -1
  590. package/dist/types/session/events.js.map +1 -1
  591. package/dist/types/tool/index.d.ts +171 -91
  592. package/dist/types/tool/index.d.ts.map +1 -1
  593. package/dist/types/tool/index.js.map +1 -1
  594. package/dist/types/toolset/index.d.ts +10 -40
  595. package/dist/types/toolset/index.d.ts.map +1 -1
  596. package/package.json +3 -1
  597. package/src/advisory/history.ts +27 -2
  598. package/src/advisory/index.ts +1 -1
  599. package/src/advisory/registry.ts +33 -0
  600. package/src/agents/AGENTS.md +14 -7
  601. package/src/agents/PipelineAgent.ts +2 -303
  602. package/src/agents/QueryAgent.ts +269 -0
  603. package/src/agents/ReactiveAgent.ts +6 -216
  604. package/src/agents/RouterAgent.ts +2 -337
  605. package/src/agents/SupervisorAgent.ts +3 -476
  606. package/src/agents/defineAgent.ts +13 -2
  607. package/src/agents/examples/PipelineAgent.ts +302 -0
  608. package/src/agents/examples/RouterAgent.ts +338 -0
  609. package/src/agents/examples/SupervisorAgent.ts +472 -0
  610. package/src/agents/explore.ts +6 -3
  611. package/src/agents/forward-options.ts +37 -0
  612. package/src/agents/index.ts +2 -0
  613. package/src/agents/runAgent.ts +144 -37
  614. package/src/authorization/command-line.ts +2 -2
  615. package/src/authorization/gate.ts +46 -5
  616. package/src/authorization/program.ts +773 -0
  617. package/src/authorization/reexec-wrapper.ts +589 -0
  618. package/src/authorization/rules.ts +36 -1
  619. package/src/authorization/shell-lexer.ts +136 -63
  620. package/src/bridge/sse/mapper.ts +6 -0
  621. package/src/capabilities/index.ts +157 -0
  622. package/src/config/registry.ts +4 -1
  623. package/src/connector/index.ts +9 -2
  624. package/src/connector/mcp/adapter.ts +58 -3
  625. package/src/connector/mcp/client.ts +20 -4
  626. package/src/connector/mcp/discovery.ts +60 -0
  627. package/src/connector/mcp/index.ts +13 -0
  628. package/src/connector/mcp/mcp-toolset.ts +515 -0
  629. package/src/connector/tools/index.ts +2 -2
  630. package/src/connector/tools/router.ts +35 -58
  631. package/src/directory/derive-supervisor.ts +12 -8
  632. package/src/directory/derive.ts +8 -5
  633. package/src/execution/code-runtime/types.ts +2 -2
  634. package/src/invariants/index.ts +4 -1
  635. package/src/manager/agent/lifecycle.ts +9 -0
  636. package/src/manager/connector/environment.ts +17 -4
  637. package/src/manager/connector/index.ts +2 -2
  638. package/src/manager/connector/tenant.ts +17 -4
  639. package/src/manager/index.ts +2 -2
  640. package/src/manager/session/attribution.ts +79 -0
  641. package/src/manager/session/turn-recorder.ts +211 -55
  642. package/src/peers/address.ts +58 -0
  643. package/src/peers/client.ts +202 -0
  644. package/src/peers/dir.ts +176 -0
  645. package/src/peers/endpoint.ts +564 -0
  646. package/src/peers/envelope.ts +121 -0
  647. package/src/peers/index.ts +96 -0
  648. package/src/peers/protocol.ts +196 -0
  649. package/src/peers/record.ts +56 -0
  650. package/src/peers/registry.ts +241 -0
  651. package/src/plugin/define.ts +68 -0
  652. package/src/plugin/index.ts +2 -0
  653. package/src/plugin/lifecycle.ts +286 -106
  654. package/src/plugin/resolver.ts +6 -3
  655. package/src/plugin/shell-hook.ts +21 -5
  656. package/src/pricing/catalogue.generated.ts +28 -4
  657. package/src/pricing/rates.source.json +27 -6
  658. package/src/probe/errors.ts +4 -1
  659. package/src/prompt/coding-agent-doctrine.ts +22 -10
  660. package/src/prompt/contributions.ts +12 -2
  661. package/src/prompt/index.ts +1 -0
  662. package/src/provider/collect-chat-completion.ts +96 -11
  663. package/src/provider/mock.ts +24 -6
  664. package/src/provider/registry.ts +4 -1
  665. package/src/provider/tool-call-framing.ts +226 -0
  666. package/src/public-runtime.ts +152 -9
  667. package/src/public-tools.ts +43 -5
  668. package/src/public-types.ts +65 -6
  669. package/src/read-model/registry.ts +7 -2
  670. package/src/registry/ManagedRegistry.ts +57 -6
  671. package/src/registry/collision.ts +64 -0
  672. package/src/registry/command/index.ts +7 -3
  673. package/src/registry/index.ts +3 -9
  674. package/src/registry/plugin/index.ts +14 -1
  675. package/src/registry/tool/callable.ts +36 -0
  676. package/src/registry/tool/execute.ts +16 -839
  677. package/src/registry/tool/portable.ts +59 -0
  678. package/src/registry/tool/presentation.ts +6 -5
  679. package/src/runtime/bidi/session.ts +24 -5
  680. package/src/runtime/query/executor/tool-call-admission.ts +288 -22
  681. package/src/runtime/query/executor.ts +129 -16
  682. package/src/runtime/query/file-evidence-replay.ts +8 -7
  683. package/src/runtime/query/fork/prepare.ts +6 -1
  684. package/src/runtime/query/guardrail-presets.ts +4 -3
  685. package/src/runtime/query/index.ts +199 -101
  686. package/src/runtime/query/iteration/index.ts +13 -3
  687. package/src/runtime/query/iteration/phases/compaction.ts +1 -1
  688. package/src/runtime/query/iteration/phases/context.ts +2 -2
  689. package/src/runtime/query/iteration/phases/tool-review.ts +59 -2
  690. package/src/runtime/query/iteration/stream-turn.ts +390 -136
  691. package/src/runtime/query/iteration/tool-input.ts +284 -0
  692. package/src/runtime/query/observation-context.ts +2 -2
  693. package/src/runtime/query/prelude-lease.ts +132 -0
  694. package/src/runtime/query/prepare-turn.ts +477 -198
  695. package/src/runtime/query/prompt-cache.ts +2 -2
  696. package/src/runtime/query/prompt.ts +4 -4
  697. package/src/runtime/query/resume-session.ts +42 -3
  698. package/src/runtime/query/review-policy.ts +190 -24
  699. package/src/runtime/query/tooling.ts +3 -6
  700. package/src/runtime/query/turn-state.ts +4 -0
  701. package/src/runtime/system-events.ts +246 -0
  702. package/src/scheduler/delegating.ts +7 -2
  703. package/src/skills/index.ts +1 -1
  704. package/src/skills/registry.ts +33 -0
  705. package/src/store/session-log/conformance.ts +51 -8
  706. package/src/store/session-log/core.ts +10 -4
  707. package/src/store/session-log/fold.ts +33 -7
  708. package/src/store/session-log/index.ts +2 -0
  709. package/src/test-support/toolset.ts +23 -0
  710. package/src/tools/builtins/bash.ts +27 -10
  711. package/src/tools/builtins/browser-url.ts +1 -1
  712. package/src/tools/builtins/computer-use-coordinates.ts +144 -0
  713. package/src/tools/builtins/computer-use-image.ts +278 -0
  714. package/src/tools/builtins/computer-use.ts +1495 -191
  715. package/src/tools/builtins/edit.ts +12 -2
  716. package/src/tools/builtins/index.ts +7 -1
  717. package/src/tools/builtins/json-string-hint.ts +16 -0
  718. package/src/tools/builtins/search-tools.ts +7 -20
  719. package/src/tools/builtins/skill.ts +304 -174
  720. package/src/tools/builtins/write-file.ts +12 -0
  721. package/src/tools/command-shell.ts +46 -1
  722. package/src/tools/coordinator/agent.ts +6 -0
  723. package/src/tools/coordinator/ask-user-question.ts +29 -15
  724. package/src/tools/coordinator/index.ts +6 -0
  725. package/src/tools/coordinator/question-options.ts +195 -0
  726. package/src/tools/defineTool.ts +38 -0
  727. package/src/tools/memory/search.ts +4 -1
  728. package/src/tools/memory/update.ts +8 -5
  729. package/src/tools/render-nonce.ts +69 -0
  730. package/src/tools/roster.ts +84 -33
  731. package/src/tools/schedules/present.ts +2 -0
  732. package/src/tools/schedules/schedule-tool.ts +238 -39
  733. package/src/tools/schedules/types.ts +120 -6
  734. package/src/tools/trusted-read-only.ts +19 -10
  735. package/src/tools/untrusted-envelope.ts +121 -57
  736. package/src/toolsets/combine.ts +181 -0
  737. package/src/toolsets/manager.ts +996 -0
  738. package/src/toolsets/source-glob.ts +22 -0
  739. package/src/toolsets/toolset.ts +31 -0
  740. package/src/toolsets/types.ts +154 -0
  741. package/src/toolsets/wrappers.ts +191 -0
  742. package/src/types/agent/base.ts +29 -16
  743. package/src/types/agent/index.ts +1 -0
  744. package/src/types/agent/pipeline.ts +2 -0
  745. package/src/types/agent/query.ts +129 -0
  746. package/src/types/agent/reactive.ts +5 -142
  747. package/src/types/agent/router.ts +2 -0
  748. package/src/types/agent/supervisor.ts +5 -2
  749. package/src/types/authorization/index.ts +33 -0
  750. package/src/types/computer-use/index.ts +202 -0
  751. package/src/types/connector/mcp.ts +32 -0
  752. package/src/types/errors/index.ts +15 -0
  753. package/src/types/hitl/index.ts +57 -0
  754. package/src/types/message/index.ts +135 -7
  755. package/src/types/plugin/index.ts +44 -21
  756. package/src/types/provider/chat.ts +5 -0
  757. package/src/types/provider/config.ts +8 -3
  758. package/src/types/provider/stream.ts +39 -0
  759. package/src/types/sandbox/index.ts +1 -1
  760. package/src/types/session/events.ts +14 -3
  761. package/src/types/tool/index.ts +173 -105
  762. package/src/types/toolset/index.ts +10 -47
  763. package/dist/registry/toolset/catalog.d.ts +0 -42
  764. package/dist/registry/toolset/catalog.d.ts.map +0 -1
  765. package/dist/registry/toolset/catalog.js +0 -234
  766. package/dist/registry/toolset/catalog.js.map +0 -1
  767. package/src/registry/toolset/catalog.ts +0 -308
@@ -1,476 +1,3 @@
1
- import { EMPTY_TOKEN_USAGE } from '../constants/limits.js'
2
- import { ToolNameCollisionError, ToolRegistry } from '../registry/tool/execute.js'
3
- import { drainQuery } from '../runtime/query/index.js'
4
- import { PendingAnswers, QuestionParkBinding } from '../runtime/query/question-park.js'
5
- import { CompletionInbox } from '../scheduler/completion-inbox.js'
6
- import { LocalTaskScheduler } from '../scheduler/local.js'
7
- import { ASK_USER_QUESTION_TOOL_NAME, buildCoordinatorTools } from '../tools/coordinator/index.js'
8
- import type {
9
- AgentInput,
10
- AgentMetadata,
11
- AgentTaskResult,
12
- SupervisorAgentConfig,
13
- SupervisorAgentResult,
14
- } from '../types/agent/index.js'
15
- import type { TaskHandle, TaskScheduler } from '../types/agent/scheduler.js'
16
- import type { AgentTaskContext } from '../types/agent/task.js'
17
- import type { SessionId, TurnId } from '../types/ids/index.js'
18
- import { deriveChildState } from '../types/invocation/index.js'
19
- import type { ActorRef } from '../types/session/actor.js'
20
- import type { SessionEventListener } from '../types/session/events.js'
21
- import { ZERO_COST } from '../utils/cost.js'
22
- import type { Logger } from '../utils/logger.js'
23
- import { AbstractAgent } from './AbstractAgent.js'
24
- import { resolveAgentBudget } from './budget.js'
25
- import { childSessionStorage } from './storage.js'
26
-
27
- /**
28
- * Build the authoritative per-task ledger from the gateway's task handles.
29
- *
30
- * A handle carries a `result` only when its worker actually produced one. A
31
- * handle with NO result never produced a verifiable outcome, so it MUST NOT be
32
- * synthesized as a success: the synthesized status is always the terminal
33
- * `'failed'`, regardless of the handle's reported `state` (which may itself be
34
- * `'completed'`).
35
- *
36
- * The earlier implementation cast `handle.state` onto the synthesized result's
37
- * status, letting a worker that ended without a result count toward
38
- * `completedTasks`. That produced fabricated "done" workers with empty outputs
39
- * (observed in a live supervised session): the supervisor reported "3 workers done, 40KB
40
- * reports" when the workers never started. Real workers (those with a present
41
- * `result`) are unaffected — their `result` is preserved verbatim.
42
- */
43
- export function synthesizeTaskResults(
44
- taskHandles: readonly TaskHandle[],
45
- turn: { readonly sessionId: SessionId; readonly turnId: TurnId },
46
- now: number = Date.now(),
47
- ): AgentTaskResult[] {
48
- return taskHandles.map((handle, index) => ({
49
- agentId: handle.agentId,
50
- result: handle.result ?? {
51
- sessionId: turn.sessionId,
52
- turnId: turn.turnId,
53
- status: 'failed' as const,
54
- usage: { ...EMPTY_TOKEN_USAGE },
55
- cost: { ...ZERO_COST },
56
- iterations: 0,
57
- durationMs: now - handle.createdAt,
58
- messages: [],
59
- },
60
- taskIndex: index,
61
- }))
62
- }
63
-
64
- /** Count only the task results that genuinely completed. */
65
- export function countCompletedTasks(taskResults: readonly AgentTaskResult[]): number {
66
- return taskResults.filter((t) => t.result.status === 'completed').length
67
- }
68
-
69
- export class SupervisorAgent extends AbstractAgent<SupervisorAgentConfig, SupervisorAgentResult> {
70
- readonly type = 'supervisor' as const
71
-
72
- constructor(metadata: Omit<AgentMetadata, 'type' | 'capabilities'>, log?: Logger) {
73
- super(
74
- {
75
- ...metadata,
76
- type: 'supervisor',
77
- capabilities: {
78
- supportsTools: true,
79
- supportsStreaming: true,
80
- supportsConcurrency: true,
81
- supportsSubAgents: true,
82
- },
83
- },
84
- log,
85
- )
86
- }
87
-
88
- /**
89
- * One turn at a time per instance.
90
- *
91
- * `abortController` and `currentSessionId` are instance state, so two
92
- * overlapping turns share one abort controller — cancelling either kills
93
- * both — and the second clobbers the first's session, so a later
94
- * `cancel()` cancels the wrong children. Neither failure announces itself.
95
- * A host that wants parallelism constructs a second instance.
96
- */
97
- async run(
98
- input: AgentInput,
99
- config: SupervisorAgentConfig,
100
- listener?: SessionEventListener,
101
- ): Promise<SupervisorAgentResult> {
102
- return await this.underIdempotencyKey(config.idempotencyKey, () =>
103
- this.underInvocationLock(() => this.runExclusive(input, config, listener)),
104
- )
105
- }
106
-
107
- private async runExclusive(
108
- input: AgentInput,
109
- config: SupervisorAgentConfig,
110
- listener?: SessionEventListener,
111
- ): Promise<SupervisorAgentResult> {
112
- const startTime = Date.now()
113
- if (!config.sessionId || !config.topicId || !config.projectId || !config.tenantId) {
114
- throw new Error(
115
- 'SupervisorAgent requires sessionId, topicId, projectId, and tenantId in config (session-hierarchy.md §12.1).',
116
- )
117
- }
118
- const sessionId = config.sessionId
119
- const turnId = this.createTurnId()
120
- this.bindTurn(sessionId, turnId, config.logger)
121
- const topicId = config.topicId
122
- const projectId = config.projectId
123
- const tenantId = config.tenantId
124
-
125
- const parentActor: ActorRef = {
126
- kind: 'agent',
127
- agentId: this.metadata.id,
128
- tenantId,
129
- }
130
-
131
- // One resolve for the two spellings. Read at each of the three sites
132
- // instead, a host that set only `scheduler` would get a working one
133
- // on one path and `undefined` on another — a half-migration that
134
- // fails silently, which is worse than not renaming the field.
135
- const configuredScheduler = config.scheduler
136
- const budget = await resolveAgentBudget(
137
- input,
138
- { ...config, budget: config.budget ?? configuredScheduler?.budget },
139
- { sessionId, turnId },
140
- )
141
- if (configuredScheduler && configuredScheduler.budget !== budget) {
142
- throw new Error('Injected task scheduler must share the supervisor token budget authority')
143
- }
144
-
145
- const childStorage = await childSessionStorage(config, input.workingDirectory)
146
-
147
- let gateway: TaskScheduler
148
- if (configuredScheduler) {
149
- gateway = configuredScheduler
150
- } else if (config.agentManager) {
151
- const mergedFactoryOptions = config.factoryOptions
152
- ? {
153
- ...config.factoryOptions,
154
- taskRouter: config.taskRouter ?? config.factoryOptions.taskRouter,
155
- }
156
- : config.taskRouter
157
- ? ({
158
- taskRouter: config.taskRouter,
159
- } as import('../types/agent/index.js').AgentFactoryOptions)
160
- : undefined
161
-
162
- const taskContext: AgentTaskContext = {
163
- parentSessionId: sessionId,
164
- parentTurnId: turnId,
165
- parentAgentId: this.metadata.id,
166
- parentAbortController: this.abortController,
167
- // This context describes the CURRENT supervisor. AgentManager owns
168
- // the increment when it constructs the child. Resetting a delegated
169
- // supervisor to zero here made every grandchild depth one again.
170
- depth: config.depth ?? 0,
171
- budget,
172
- factoryOptions: mergedFactoryOptions,
173
- // The supervisor already hands this to its OWN turn. Handing it to
174
- // the spawn context makes a worker's REVIEW-tier calls reach the
175
- // same person. It does not grant the root-only question tool.
176
- // Without the handler, workers silently auto-approved themselves.
177
- ...(config.resumeHandler ? { resumeHandler: config.resumeHandler } : {}),
178
- // And the switch that sends batches the handler would otherwise
179
- // never see to it (plan mode), so a worker's rule-allowed or
180
- // grant-covered call is refused where the supervisor's would be.
181
- ...(config.reviewAllowedCalls ? { reviewAllowedCalls: config.reviewAllowedCalls } : {}),
182
- // Handed down for the same reason: a worker is a fresh turn whose
183
- // executor installs the shipped screens unless the spawn says
184
- // otherwise, so the supervisor's own choice — including an
185
- // empty list, which `config.toolResultGuardrails` distinguishes
186
- // from absent by being an array at all.
187
- ...(config.toolResultGuardrails
188
- ? { toolResultGuardrails: config.toolResultGuardrails }
189
- : {}),
190
- tenantId,
191
- topicId,
192
- sessionId,
193
- projectId,
194
- parentActor,
195
- // A supervisor held in memory delegates to workers held in
196
- // memory; without this each worker wrote a disk log under
197
- // `NAMZU_HOME` its supervisor never asked for.
198
- ...(childStorage ? { childStorage } : {}),
199
- }
200
- // The only hop between the config and the gateway's policy. Omit it
201
- // and the field is settable, documented, and read by nothing —
202
- // which is exactly the state it was in before.
203
- gateway = new LocalTaskScheduler(config.agentManager, taskContext, listener, input, {
204
- ...(config.siblingFailurePolicy
205
- ? { siblingFailurePolicy: config.siblingFailurePolicy }
206
- : {}),
207
- log: this.log,
208
- })
209
- } else {
210
- // Names `scheduler`, not `gateway`. An error message is a piece of
211
- // documentation delivered at the worst moment, and one that names
212
- // a field being retired teaches the name on its way out.
213
- throw new Error("SupervisorAgentConfig requires either 'scheduler' or 'agentManager'")
214
- }
215
-
216
- let planManagerRef: import('../manager/plan/lifecycle.js').PlanManager | undefined
217
-
218
- // Created here because the TOOLS are created here: the durability
219
- // channel has to reach the tool instance, and the turn that supplies
220
- // it does not exist yet. `query` binds them once it does.
221
- const questionParks = new QuestionParkBinding()
222
- const pendingAnswers = new PendingAnswers()
223
-
224
- // Created here for the same reason: both ends are here. The tools claim
225
- // a completion when they deliver it as a `tool_result`, and the loop
226
- // drains whatever is left over into the transcript — so the inbox has
227
- // to be the same object on both sides, and this is the only place that
228
- // sees both.
229
- //
230
- // It attaches through `onTaskCompleted`, which every gateway already
231
- // implements, so a host gateway needs no change to take part.
232
- const completionInbox = new CompletionInbox(this.log)
233
- completionInbox.attach(gateway)
234
-
235
- // From here to the return in a try/finally, so the listener is released
236
- // on every way out. The registration loop below can throw
237
- // ToolNameCollisionError, and a host that hits that fixes its config and
238
- // runs again — which is how a leak of one listener per turn becomes a leak
239
- // of one per ATTEMPT.
240
- try {
241
- const isRootAgent = (config.depth ?? 0) === 0
242
- const coordinatorToolDefs = buildCoordinatorTools({
243
- gateway,
244
- completionInbox,
245
- workingDirectory: input.workingDirectory,
246
- runtimeContext: input.runtimeContext,
247
- allowedAgentIds: config.agentIds,
248
- // The only hop between the config and the decision. Omit it and
249
- // everything still compiles: the field is settable, documented, and
250
- // read by nothing — which is the shape of a declaration this repo
251
- // has had to go and delete before.
252
- allowDelegation: config.allowDelegation,
253
- taskStore: input.taskStore,
254
- sessionId,
255
- turnId,
256
- getPlanManager: () => planManagerRef,
257
- // A human-question tool belongs only to the root agent. The handler
258
- // itself still reaches `drainQuery` below: delegated REVIEW-tier
259
- // tool calls must keep asking the operator instead of falling back
260
- // to unattended auto-approval.
261
- ...(isRootAgent && config.resumeHandler ? { resumeHandler: config.resumeHandler } : {}),
262
- questionParks,
263
- pendingAnswers,
264
- ...(config.onPlanApproved ? { onPlanApproved: config.onPlanApproved } : {}),
265
- })
266
-
267
- const tools = new ToolRegistry()
268
- if (config.tools) {
269
- for (const tool of config.tools.getAll()) {
270
- // The boundary is semantic, not an implementation detail of the
271
- // built-in builder. A host registry containing the same capability
272
- // must not reopen it for a delegated agent.
273
- if (!isRootAgent && tool.name === ASK_USER_QUESTION_TOOL_NAME) continue
274
- tools.register(tool, config.tools.getAvailability(tool.name))
275
- }
276
- }
277
- // Registered the way every other kernel-mounted tool in this SDK is
278
- // registered: honouring `runtimeToolOverrides`, and refusing to take a
279
- // name the host already used.
280
- //
281
- // Both halves were missing here and nowhere else. `runtimeToolOverrides`
282
- // is declared on `AgentInput`, is forwarded into this very `drainQuery`
283
- // call below, and is consulted for the task tools and for the advisory
284
- // tools — but the coordinator tools were registered before that and
285
- // unconditionally, so `{ create_task: 'disabled' }` was honoured
286
- // everywhere except the one surface a host would most want to decline.
287
- // A turn that must not delegate had prompt text and a gateway refusal as
288
- // its only defences.
289
- //
290
- // Collision REFUSES rather than overwrites, and the principle is
291
- // complete mediation rather than fail-safe defaults: "proposals to gain
292
- // performance by remembering the result of an authority check [must] be
293
- // examined skeptically. If a change in authority occurs, such remembered
294
- // results must be systematically updated" (Saltzer & Schroeder 1975,
295
- // §I.A.3(c)). A registry entry is a remembered binding of a name to an
296
- // authority, and a later write that rebinds the name leaves every
297
- // decision made about the old binding stale.
298
- //
299
- // The counter-argument is that today the host's tool merely loses
300
- // quietly and the turn still works, so six reserved names is a real cost
301
- // on a name a consumer may have chosen long ago. It does not hold,
302
- // because "loses quietly" is not what happens. `registerOne` ends with
303
- // `availability.set(id, state)` and this call passes no state, so a tool
304
- // the host registered `deferred` or `suspended` is silently PROMOTED to
305
- // active under someone else's implementation; and because the store is a
306
- // Map, the replacement inherits the host's insertion position in the
307
- // prompt-cache prefix. That is a different authorization surface, not a
308
- // lost registration. CWE-390 is the shape `ManagedRegistry` has here —
309
- // detection of an error condition without action — and CWE-694's own
310
- // mitigation is nearly this fix: do not operate any resource with a
311
- // non-unique identifier, and report the error.
312
- //
313
- // Refusing is also what the peer set does. One runtime's registry
314
- // primitive throws on both duplicate and reserved names; another refuses
315
- // its injected delegation name in a pre-flight that tells the author to
316
- // rename. Closer to home, `ProviderRegistry.register` already throws
317
- // unless the caller passes `{ replace: true }` — declared intent is what
318
- // separates a legitimate replacement from an accidental one, and no such
319
- // intent is expressible here.
320
- const overrides = input.runtimeToolOverrides
321
- for (const tool of coordinatorToolDefs) {
322
- const override = overrides?.[tool.name]
323
- if (override === 'disabled') continue
324
- if (config.tools?.has(tool.name)) {
325
- throw new ToolNameCollisionError(tool.name, 'the supervisor coordinator surface')
326
- }
327
- tools.register(tool, override ?? 'active')
328
- }
329
-
330
- const childInvocationState = deriveChildState(
331
- config.invocationState ?? { tenantId },
332
- this.metadata.id,
333
- )
334
-
335
- const turn = await drainQuery(
336
- {
337
- systemPrompt: config.systemPrompt,
338
- skills: config.skills,
339
- provider: config.provider,
340
- tools,
341
- ...(config.toolResultGuardrails !== undefined
342
- ? { toolResultGuardrails: config.toolResultGuardrails }
343
- : {}),
344
- ...(input.attachmentStore ? { attachmentStore: input.attachmentStore } : {}),
345
- ...(config.attachmentResolveTimeoutMs !== undefined
346
- ? { attachmentResolveTimeoutMs: config.attachmentResolveTimeoutMs }
347
- : {}),
348
- turnConfig: {
349
- model: config.model,
350
- tokenBudget: config.tokenBudget,
351
- timeoutMs: config.timeoutMs,
352
- ...(config.sandbox ? { sandbox: config.sandbox } : {}),
353
- ...(config.streamIdleTimeoutMs !== undefined
354
- ? { streamIdleTimeoutMs: config.streamIdleTimeoutMs }
355
- : {}),
356
- ...(config.maxRequestRichContentBytes !== undefined
357
- ? {
358
- maxRequestRichContentBytes: config.maxRequestRichContentBytes,
359
- }
360
- : {}),
361
- maxIterations: config.maxIterations,
362
- temperature: config.temperature,
363
- env: config.env,
364
- ...(config.pruneKeepLast !== undefined ? { pruneKeepLast: config.pruneKeepLast } : {}),
365
- logger: this.log,
366
- // See ReactiveAgent: a hand-listed literal drops what nobody
367
- // remembered to add, and reports nothing when it does.
368
- ...(config.thinking ? { thinking: config.thinking } : {}),
369
- ...(config.effort ? { effort: config.effort } : {}),
370
- },
371
- questionParks,
372
- pendingAnswers,
373
- // How wide a fan-out actually runs. Absent leaves the kernel
374
- // default — the same forwarding ReactiveAgent has always done,
375
- // missing from the one agent whose job is delegation.
376
- ...(config.maxToolConcurrency !== undefined
377
- ? { maxToolConcurrency: config.maxToolConcurrency }
378
- : {}),
379
- agentId: this.metadata.id,
380
- agentName: this.metadata.name,
381
- workingDirectory: input.workingDirectory,
382
- messages: input.messages,
383
- signal: input.signal,
384
- sessionId,
385
- topicId,
386
- projectId,
387
- tenantId,
388
- turnId,
389
- ...(config.parentSessionId ? { parentSessionId: config.parentSessionId } : {}),
390
- ...(config.parentTurnId ? { parentTurnId: config.parentTurnId } : {}),
391
- depth: config.depth,
392
- contextLevel: 'full',
393
- onContextCreated: ({ planManager }) => {
394
- planManagerRef = planManager
395
- },
396
- taskStore: input.taskStore,
397
- runtimeToolOverrides: input.runtimeToolOverrides,
398
- runtimeContext: input.runtimeContext,
399
- taskScheduler: gateway,
400
- budget,
401
- completionInbox,
402
- advisory: config.advisory,
403
- invocationState: childInvocationState,
404
- // HITL surface: forward optional review-time hooks so hosts can
405
- // run "Ask before acting" supervisors instead of the default
406
- // auto-approve. drainQuery falls back to autoApproveHandler
407
- // when resumeHandler is omitted (= same behaviour as before).
408
- ...(config.resumeHandler ? { resumeHandler: config.resumeHandler } : {}),
409
- ...(config.reviewAllowedCalls ? { reviewAllowedCalls: config.reviewAllowedCalls } : {}),
410
- // Forwarded for the same reason the handler is. A capability the
411
- // kernel honours in `drainQuery` but that never reaches the
412
- // surface a host actually constructs is a capability nobody can
413
- // use — which is the shape of defect this file has already been
414
- // corrected for twice.
415
- ...(config.steering ? { steering: config.steering } : {}),
416
- ...(config.inboundMessages ? { inboundMessages: config.inboundMessages } : {}),
417
- ...(config.projectInstructionContext
418
- ? { projectInstructionContext: config.projectInstructionContext }
419
- : {}),
420
- ...(config.authorizationGate ? { authorizationGate: config.authorizationGate } : {}),
421
- // The one hop between the config and the tool. `drainQuery`
422
- // registers `structured_output` from this and the loop
423
- // captures it, so the kernel never cared which archetype it
424
- // came from — only `ReactiveAgent` was passing it.
425
- ...(config.structuredOutput ? { structuredOutput: config.structuredOutput } : {}),
426
- ...(config.sandboxProvider ? { sandboxProvider: config.sandboxProvider } : {}),
427
- ...(config.sandboxTeardownTimeoutMs !== undefined
428
- ? { sandboxTeardownTimeoutMs: config.sandboxTeardownTimeoutMs }
429
- : {}),
430
- // Working-memory / compaction seam (optional; absent => unchanged
431
- // run path, byte-identical for every existing consumer).
432
- ...(config.compactionConfig ? { compactionConfig: config.compactionConfig } : {}),
433
- ...(config.workingMemoryProvider
434
- ? { workingMemoryProvider: config.workingMemoryProvider }
435
- : {}),
436
- ...(config.paths ? { paths: config.paths } : {}),
437
- ...(config.sessionLog ? { sessionLog: config.sessionLog } : {}),
438
- ...(config.checkpointStore ? { checkpointStore: config.checkpointStore } : {}),
439
- },
440
- listener,
441
- )
442
-
443
- const taskHandles = gateway.listTasks()
444
- const taskResults = synthesizeTaskResults(taskHandles, { sessionId, turnId })
445
-
446
- const completedTasks = countCompletedTasks(taskResults)
447
-
448
- return {
449
- sessionId,
450
- turnId: turn.id,
451
- status: turn.status === 'completed' ? 'completed' : 'failed',
452
- stopReason: turn.stopReason,
453
- usage: turn.tokenUsage,
454
- budget: budget.summary(),
455
- cost: turn.costInfo,
456
- iterations: turn.currentIteration,
457
- durationMs: Date.now() - startTime,
458
- messages: turn.messages,
459
- result: turn.result,
460
- // `BaseAgentResult.structuredOutput` names "an archetype's result
461
- // literal did not copy it" as a defect it was written to close.
462
- // This literal still did not copy it, so the same defect was live
463
- // in the one archetype nobody checked: the value would have been
464
- // produced, recorded on the turn, serialized into `result`, and
465
- // absent from the type a supervisor host actually reads.
466
- structuredOutput: turn.structuredOutput,
467
- lastError: turn.lastError,
468
- taskResults,
469
- completedTasks,
470
- totalTasks: taskResults.length,
471
- }
472
- } finally {
473
- completionInbox.close()
474
- }
475
- }
476
- }
1
+ /** @deprecated Example agent. Define application agents with the SDK Agent contract. */
2
+ export { SupervisorAgent } from './examples/SupervisorAgent.js'
3
+ export { synthesizeTaskResults, countCompletedTasks } from './examples/SupervisorAgent.js'
@@ -21,7 +21,13 @@ export interface DefineAgentOptions<
21
21
  category: string
22
22
  description: string
23
23
  capabilities?: Partial<AgentCapabilities>
24
- run(input: AgentInput, config: TConfig, listener?: SessionEventListener): Promise<TResult>
24
+ /** The signal is scoped to this instance; observe it to stop work on cancel. */
25
+ run(
26
+ input: AgentInput,
27
+ config: TConfig,
28
+ listener: SessionEventListener | undefined,
29
+ signal: AbortSignal,
30
+ ): Promise<TResult>
25
31
  cancel?(): Promise<void>
26
32
  }
27
33
 
@@ -44,13 +50,18 @@ export function defineAgent<
44
50
  return {
45
51
  type: options.type,
46
52
  metadata,
53
+ // AgentManager asks for a fresh shell per delegated turn. Reusing one
54
+ // controller would make a cancelled sibling abort another sibling's work.
55
+ forTurn(): Agent<TConfig, TResult> {
56
+ return defineAgent(options)
57
+ },
47
58
 
48
59
  async run(
49
60
  input: AgentInput,
50
61
  config: TConfig,
51
62
  listener?: SessionEventListener,
52
63
  ): Promise<TResult> {
53
- return options.run(input, config, listener)
64
+ return options.run(input, config, listener, abortController.signal)
54
65
  },
55
66
 
56
67
  async cancel(): Promise<void> {