@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,44 @@
1
+ import { RegistryCollisionError } from '../registry/collision.js';
2
+ import type { ToolSource, Toolset } from './types.js';
3
+ /**
4
+ * Two toolsets (or one toolset, twice) contributed a tool with the same
5
+ * name, and `combineToolsets` cannot decide which one wins.
6
+ *
7
+ * Named, and carrying both sources, for the reason `ToolNameCollisionError`
8
+ * (`registry/tool/execute.ts`) is: a caller that wants to handle this —
9
+ * rename one side, refuse the whole config — has to be able to catch it
10
+ * narrowly and read who collided, not match on message text. Extends
11
+ * `RegistryCollisionError` (`registry/collision.ts`) like every other
12
+ * `*CollisionError`, with `combineToolsets` as the "registry" name and the
13
+ * tool name as the colliding id; `firstSource`/`secondSource` are this
14
+ * class's own addition, since a plain `RegistryCollisionError` has nowhere
15
+ * to carry two whole sources.
16
+ */
17
+ export declare class ToolsetConflictError extends RegistryCollisionError {
18
+ readonly toolName: string;
19
+ readonly firstSource: ToolSource;
20
+ readonly secondSource: ToolSource;
21
+ constructor(toolName: string, firstSource: ToolSource, secondSource: ToolSource);
22
+ }
23
+ /**
24
+ * Merge toolsets into one, under a new umbrella `source`.
25
+ *
26
+ * Atomic: `tools()` either returns the full merged list or throws
27
+ * {@link ToolsetConflictError} — never a partial list. Every call
28
+ * recomputes from the inner toolsets' current `tools()`, so this composes
29
+ * with live sources: a name that only collides after an inner toolset's
30
+ * `onChange` fires is caught the next time `tools()` is called, exactly
31
+ * like any other change.
32
+ *
33
+ * Order is deterministic: toolset order (as given), then each toolset's own
34
+ * tool order — the same rule `ToolManager` uses.
35
+ *
36
+ * `onChange`/`close` are defined only if at least one inner toolset defines
37
+ * them — this never fabricates a live capability none of its inputs have.
38
+ * `onChange`'s listener is handed straight to every inner toolset that has
39
+ * one; the returned unsubscribe tears down every one of those
40
+ * subscriptions, so a change three layers down still reaches it and
41
+ * unsubscribing here cleans up all of them.
42
+ */
43
+ export declare function combineToolsets(source: ToolSource | string, toolsets: readonly Toolset[]): Toolset;
44
+ //# sourceMappingURL=combine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../src/toolsets/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,YAAY,CAAA;AAE1E;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;gBAErB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU;CAe/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,UAAU,GAAG,MAAM,EAC3B,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAgET"}
@@ -0,0 +1,153 @@
1
+ import { RegistryCollisionError } from '../registry/collision.js';
2
+ /**
3
+ * Two toolsets (or one toolset, twice) contributed a tool with the same
4
+ * name, and `combineToolsets` cannot decide which one wins.
5
+ *
6
+ * Named, and carrying both sources, for the reason `ToolNameCollisionError`
7
+ * (`registry/tool/execute.ts`) is: a caller that wants to handle this —
8
+ * rename one side, refuse the whole config — has to be able to catch it
9
+ * narrowly and read who collided, not match on message text. Extends
10
+ * `RegistryCollisionError` (`registry/collision.ts`) like every other
11
+ * `*CollisionError`, with `combineToolsets` as the "registry" name and the
12
+ * tool name as the colliding id; `firstSource`/`secondSource` are this
13
+ * class's own addition, since a plain `RegistryCollisionError` has nowhere
14
+ * to carry two whole sources.
15
+ */
16
+ export class ToolsetConflictError extends RegistryCollisionError {
17
+ toolName;
18
+ firstSource;
19
+ secondSource;
20
+ constructor(toolName, firstSource, secondSource) {
21
+ const detail = firstSource.id === secondSource.id
22
+ ? `toolset "${firstSource.id}" contributes it more than once`
23
+ : `it is contributed by both "${firstSource.id}" and "${secondSource.id}"`;
24
+ super('combineToolsets', toolName, `combineToolsets: tool name "${toolName}" is not unique — ${detail}. Wrap one contributor with prefixed(toolset, prefix) (or renamed(toolset, { ${toolName}: "..." })) before combining.`);
25
+ this.name = 'ToolsetConflictError';
26
+ this.toolName = toolName;
27
+ this.firstSource = firstSource;
28
+ this.secondSource = secondSource;
29
+ }
30
+ }
31
+ /**
32
+ * Merge toolsets into one, under a new umbrella `source`.
33
+ *
34
+ * Atomic: `tools()` either returns the full merged list or throws
35
+ * {@link ToolsetConflictError} — never a partial list. Every call
36
+ * recomputes from the inner toolsets' current `tools()`, so this composes
37
+ * with live sources: a name that only collides after an inner toolset's
38
+ * `onChange` fires is caught the next time `tools()` is called, exactly
39
+ * like any other change.
40
+ *
41
+ * Order is deterministic: toolset order (as given), then each toolset's own
42
+ * tool order — the same rule `ToolManager` uses.
43
+ *
44
+ * `onChange`/`close` are defined only if at least one inner toolset defines
45
+ * them — this never fabricates a live capability none of its inputs have.
46
+ * `onChange`'s listener is handed straight to every inner toolset that has
47
+ * one; the returned unsubscribe tears down every one of those
48
+ * subscriptions, so a change three layers down still reaches it and
49
+ * unsubscribing here cleans up all of them.
50
+ */
51
+ export function combineToolsets(source, toolsets) {
52
+ const resolvedSource = typeof source === 'string' ? { id: source, kind: 'host_tool', name: source } : source;
53
+ // Omitted rather than set to `'active'`: absent already means `'active'`
54
+ // (`Toolset.availability`'s own doc comment), so this only adds the field
55
+ // for the one case worth stating explicitly — every input agreeing on
56
+ // `'deferred'`.
57
+ const availability = uniformAvailability(resolvedSource.id, toolsets);
58
+ const combined = {
59
+ source: resolvedSource,
60
+ tools: () => mergeTools(toolsets),
61
+ ...(availability === 'deferred' ? { availability } : {}),
62
+ ...(toolsets.some((inner) => inner.isReady)
63
+ ? { isReady: () => toolsets.every((inner) => inner.isReady?.() ?? true) }
64
+ : {}),
65
+ };
66
+ const liveOnChange = toolsets.filter((inner) => inner.onChange !== undefined);
67
+ if (liveOnChange.length > 0) {
68
+ combined.onChange = (listener) => {
69
+ const unsubscribes = [];
70
+ const unsubscribeAll = () => {
71
+ const errors = [];
72
+ for (const unsubscribe of unsubscribes.splice(0).reverse()) {
73
+ try {
74
+ unsubscribe();
75
+ }
76
+ catch (error) {
77
+ errors.push(error);
78
+ }
79
+ }
80
+ if (errors.length === 1)
81
+ throw errors[0];
82
+ if (errors.length > 1)
83
+ throw new AggregateError(errors, 'Toolset listener cleanup failed.');
84
+ };
85
+ try {
86
+ for (const inner of liveOnChange)
87
+ unsubscribes.push(inner.onChange(listener));
88
+ }
89
+ catch (error) {
90
+ try {
91
+ unsubscribeAll();
92
+ }
93
+ catch (cleanupError) {
94
+ throw new AggregateError([error, cleanupError], 'Toolset subscription and cleanup failed.');
95
+ }
96
+ throw error;
97
+ }
98
+ return unsubscribeAll;
99
+ };
100
+ }
101
+ const closeFns = toolsets
102
+ .map((inner) => inner.close)
103
+ .filter((close) => close !== undefined);
104
+ if (closeFns.length > 0) {
105
+ combined.close = async () => {
106
+ await Promise.all(closeFns.map((close) => close()));
107
+ };
108
+ }
109
+ return combined;
110
+ }
111
+ /**
112
+ * The one `availability` a merged toolset may report, or `undefined` when
113
+ * there is nothing to report (no inputs).
114
+ *
115
+ * A `Toolset` has exactly one `availability` for every tool it contributes —
116
+ * there is no per-tool field, and `ToolManager` derives a name's default
117
+ * from whichever ARRAY ENTRY owns it (`manager.ts`'s `availability`; the
118
+ * same rule `runtime/query/index.ts` documents at its own two-entry
119
+ * `runtime:active`/`runtime:deferred` split, which it keeps unmerged for
120
+ * exactly this reason). Silently defaulting a mixed merge to `'active'`
121
+ * would misreport every `deferred` input's tools as always active, with
122
+ * nothing in the returned `Toolset` to say so. So a mix throws here,
123
+ * naming the two sources that disagree, rather than combining them.
124
+ */
125
+ function uniformAvailability(combinedId, toolsets) {
126
+ let agreed;
127
+ for (const inner of toolsets) {
128
+ const availability = inner.availability ?? 'active';
129
+ if (!agreed) {
130
+ agreed = { availability, source: inner.source };
131
+ continue;
132
+ }
133
+ if (agreed.availability !== availability) {
134
+ throw new Error(`combineToolsets("${combinedId}"): "${agreed.source.id}" is ${agreed.availability} and "${inner.source.id}" is ${availability}. combineToolsets reports one availability for the whole merged toolset, so combining toolsets that disagree would silently report the deferred side's tools as active. Combine toolsets that share an availability, or keep the eager and deferred halves as separate entries in the caller's own toolsets array instead of merging them.`);
135
+ }
136
+ }
137
+ return agreed?.availability;
138
+ }
139
+ function mergeTools(toolsets) {
140
+ const ownerByToolName = new Map();
141
+ const merged = [];
142
+ for (const inner of toolsets) {
143
+ for (const tool of inner.tools()) {
144
+ const owner = ownerByToolName.get(tool.name);
145
+ if (owner)
146
+ throw new ToolsetConflictError(tool.name, owner, inner.source);
147
+ ownerByToolName.set(tool.name, inner.source);
148
+ merged.push(tool);
149
+ }
150
+ }
151
+ return merged;
152
+ }
153
+ //# sourceMappingURL=combine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../src/toolsets/combine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ import type { ToolResultGuardrailSpec } from '../types/guardrail/index.js';
2
+ import type { Message, ToolRevealReceipt } from '../types/message/index.js';
3
+ import type { LLMToolSchema, PreparedToolExecution, ToolAvailability, ToolContext, ToolDefinition, ToolExecutionResult, ToolPreparationResult, ToolTierConfig, ToolsView } from '../types/tool/index.js';
4
+ import type { ToolSourceRef, Toolset } from './types.js';
5
+ export type { ToolExecutionResult };
6
+ /**
7
+ * What `refresh()` reports after re-resolving a live toolset's change.
8
+ *
9
+ * `refused` is a newly-contributed name that would have collided with a name
10
+ * already served by another toolset — the incumbent keeps serving and the
11
+ * newcomer never reaches the manager, unlike a construction-time collision,
12
+ * which throws instead (nothing was serving anyone yet, so there is nothing
13
+ * to protect by continuing).
14
+ */
15
+ export interface ToolsetChangeReport {
16
+ /** Names a toolset started contributing that nobody else already served. */
17
+ readonly added: readonly string[];
18
+ /** Names whose owning toolset stopped contributing them, with no other toolset picking them up. */
19
+ readonly removed: readonly string[];
20
+ /**
21
+ * Names whose OWNING toolset now returns a different `ToolDefinition`
22
+ * object under the same name. The previously admitted definition keeps
23
+ * serving — see the class doc on why identity, not content, is what
24
+ * `toLLMTools`'s prompt-cache stability depends on.
25
+ */
26
+ readonly drifted: readonly string[];
27
+ /** A new contributor for a name some other toolset already serves. Refused, not applied. */
28
+ readonly refused: readonly {
29
+ readonly name: string;
30
+ readonly reason: string;
31
+ }[];
32
+ }
33
+ export interface ToolManagerConfig {
34
+ readonly toolsets: readonly Toolset[];
35
+ /**
36
+ * Screens run against every tool result before anything downstream reads
37
+ * it. Wins over whatever the turn's own `ToolContext.toolResultGuardrails`
38
+ * supplies when this is present — including `[]`, which means none —
39
+ * because a manager built with an explicit policy has stated it. See
40
+ * `executeRetained` below.
41
+ */
42
+ readonly resultGuardrails?: readonly ToolResultGuardrailSpec[];
43
+ readonly tierConfig?: ToolTierConfig;
44
+ /**
45
+ * The turn's own message history, read fresh on every `availability`
46
+ * call rather than captured once — see {@link ToolManager.availability}.
47
+ */
48
+ readonly messages: () => readonly Message[];
49
+ }
50
+ /**
51
+ * The runtime-owned resolver of {@link Toolset}s.
52
+ *
53
+ * It is built once from a fixed list of toolsets and never mutates its own
54
+ * membership: a toolset changing live (`onChange`) is only adopted when the caller calls
55
+ * {@link refresh}, at an iteration boundary the caller chooses — never
56
+ * mid-call. This is what keeps `toLLMTools`'s wire rendering byte-stable
57
+ * between refreshes: `toolWireSchema` (`registry/tool/schema.ts`) memoizes a
58
+ * tool's rendered schema by the object identity of `ToolDefinition.inputSchema`,
59
+ * not by anything owned by whichever object resolved the tool, so returning
60
+ * the SAME `ToolDefinition` object for the same name across calls — which a
61
+ * fixed, never-mutated resolution trivially does — is what keeps the cache
62
+ * hit.
63
+ *
64
+ * Availability has no stored, mutable map (unlike `ToolRegistry.availability`).
65
+ * It is DERIVED: an unready source is suspended; otherwise a tool is
66
+ * deferred iff its owner declared `deferred()` and no source-bound receipt
67
+ * in the turn's post-compaction history has loaded its schema. See
68
+ * {@link ToolManager.availability}.
69
+ *
70
+ * The execution pipeline below (`prepareExecution`/`executePrepared`/
71
+ * `execute`/`executeRetained`) is copied from `ToolRegistry`'s, per plan.md
72
+ * §2: "Diff it line by line; the only permitted changes are where it read
73
+ * `this.availability`, `tool.provenance` or registry identity." Those three
74
+ * substitutions are exactly: `this.availability(name)` (derived, above) for
75
+ * `this.getAvailability(name)`; `this.sourceOf(name)` for `tool.provenance`;
76
+ * and `this.toolsByName` for `this.items`. Every check, in the same order,
77
+ * with the same messages, is unchanged.
78
+ */
79
+ export declare class ToolManager {
80
+ private readonly toolsets;
81
+ private readonly resultGuardrails?;
82
+ private readonly tierConfig?;
83
+ private readonly messagesAccessor;
84
+ private readonly log;
85
+ private toolsByName;
86
+ private ownerToolsetByName;
87
+ private defaultAvailabilityByName;
88
+ /**
89
+ * The object each name's owning toolset returned the LAST time `refresh()`
90
+ * (or construction) observed it — distinct from `toolsByName`, which holds
91
+ * whatever was first admitted under that name and never changes on drift.
92
+ * `refresh()` diffs against this map, not `toolsByName`, so a name that
93
+ * drifted once and has been stable ever since is not reported as drifted
94
+ * again just because some unrelated toolset's change forced a re-walk.
95
+ */
96
+ private lastObservedByName;
97
+ private dirty;
98
+ private readonly unsubscribeToolsetChanges;
99
+ private disposed;
100
+ private readonly preparations;
101
+ constructor(config: ToolManagerConfig);
102
+ /** Stop observing live toolsets when this manager's owner finishes; the host owns their connections. */
103
+ dispose(): void;
104
+ /**
105
+ * First resolution, at construction. Toolset order, then tool order,
106
+ * matching `combineToolsets` (`./combine.ts`) — a name contributed by two
107
+ * sources throws {@link ToolsetConflictError} naming both, because
108
+ * nothing has served anyone yet: unlike {@link refresh}, there is no
109
+ * incumbent to protect by refusing the newcomer instead.
110
+ */
111
+ /**
112
+ * The checks `ToolRegistry.registerOne` used to run before admitting a
113
+ * tool, copied verbatim: a legal name; `enforceModelInput` requires a
114
+ * `modelInputSchema` (nothing to constrain generation against
115
+ * otherwise) and that schema must itself fit the strict-decoding subset
116
+ * `assertStrictSchema` checks (existing is not enough — it also has to
117
+ * be sendable); a declared `tier` must be one `this.tierConfig` lists.
118
+ */
119
+ private assertAdmissible;
120
+ private resolveInitial;
121
+ /**
122
+ * Re-resolve iff a toolset signalled change (`onChange`) since
123
+ * construction or the last `refresh()` — otherwise returns `undefined`
124
+ * without re-walking anything, so a caller that refreshes every
125
+ * iteration boundary pays nothing on the common case where nothing
126
+ * changed.
127
+ *
128
+ * Three outcomes per name, matching plan.md §2:
129
+ * - A name only ONE current toolset contributes, that nobody served
130
+ * before: `added`.
131
+ * - A name a toolset served before and stopped, with no other toolset
132
+ * now contributing it: `removed`.
133
+ * - A name still contributed by its ORIGINAL owning toolset, under a
134
+ * `ToolDefinition` object different from the one that toolset returned
135
+ * the LAST time it was observed (construction, or the previous
136
+ * `refresh()`): `drifted` — the previously admitted definition keeps
137
+ * serving; the new object is held, not adopted, so `toolWireSchema`'s
138
+ * identity-keyed cache (see the class doc) survives a live toolset's
139
+ * own internal change. Comparing against the last OBSERVATION, not
140
+ * the served object, means a name that drifted once and has been
141
+ * stable since is reported only on the refresh where it actually
142
+ * changed, not again on every later refresh some unrelated toolset's
143
+ * change happens to trigger.
144
+ * - A name some OTHER toolset starts contributing while its incumbent
145
+ * owner still serves it: `refused` — the incumbent wins regardless of
146
+ * toolset order; the newcomer is reported, never applied.
147
+ */
148
+ refresh(): ToolsetChangeReport | undefined;
149
+ has(name: string): boolean;
150
+ get(name: string): ToolDefinition | undefined;
151
+ listNames(): string[];
152
+ /** Where `name` came from. Throws for an unknown name, like {@link getOrThrow}. */
153
+ sourceOf(name: string): ToolSourceRef;
154
+ private getOrThrow;
155
+ /**
156
+ * `'suspended'` when the owning toolset is unready; otherwise `'deferred'`
157
+ * when it declared deferred and no matching receipt exists in the
158
+ * post-compaction history; otherwise `'active'`.
159
+ *
160
+ * Nothing here is stored: this is a pure read of the toolset's own
161
+ * declaration plus a scan of `messages()`, recomputed on every call — the
162
+ * same "safe to call repeatedly, byte-identical between calls" property
163
+ * `toLLMTools` already has. The scan is bounded to the window AFTER the
164
+ * last compaction summary (`compaction/summary.ts`'s
165
+ * `isCompactionMessage` — the one marker a compacted history carries, a
166
+ * system message whose content starts with `COMPACTION_HEADER`):
167
+ * compaction is the one deliberate "forget" boundary a derivation like
168
+ * this one needs, the same way it is the one boundary namzu's own
169
+ * summarisation treats as a reset. A tool message's own `revealedTools`
170
+ * (`types/message/index.ts`) is written by the executor from
171
+ * `ToolResult.reveals`, persisted like any other message field — there is
172
+ * no separate store to keep in sync, restore on resume, or lose across a
173
+ * fork.
174
+ */
175
+ availability(name: string): ToolAvailability;
176
+ private wasRevealed;
177
+ /** Bind a reveal to the source currently serving the named tool. */
178
+ revealReceipt(name: string): ToolRevealReceipt;
179
+ private getByAvailability;
180
+ /**
181
+ * Ranked lexical search over deferred tools — same scoring
182
+ * `ToolRegistry.searchDeferred` used (exact name 12 / name-substring 8 /
183
+ * description 5 / argument-name 3, generic tokens stopped), extended
184
+ * with an optional cap so a caller does not have to slice the result
185
+ * itself.
186
+ */
187
+ searchDeferred(query: string, limit?: number): readonly ToolDefinition[];
188
+ private searchByAvailability;
189
+ toLLMTools(names?: readonly string[]): LLMToolSchema[];
190
+ toPromptSection(names?: readonly string[]): string;
191
+ toTierGuidance(): string | null;
192
+ /** What `ToolContext` gives a running tool: read-only, no mutation. */
193
+ view(): ToolsView;
194
+ prepareExecution(toolName: string, rawInput: unknown): ToolPreparationResult;
195
+ executePrepared(prepared: PreparedToolExecution, context: ToolContext): Promise<ToolExecutionResult>;
196
+ execute(toolName: string, rawInput: unknown, context: ToolContext): Promise<ToolExecutionResult>;
197
+ private rejectPreparationWithClosedSpan;
198
+ private executeRetained;
199
+ private validationFailure;
200
+ }
201
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/toolsets/manager.ts"],"names":[],"mappings":"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"}