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