@namzu/sdk 46.0.0 → 48.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/CHANGELOG.md +325 -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 +60 -4
  108. package/dist/connector/mcp/adapter.js.map +1 -1
  109. package/dist/connector/mcp/client.d.ts +13 -4
  110. package/dist/connector/mcp/client.d.ts.map +1 -1
  111. package/dist/connector/mcp/client.js +20 -3
  112. package/dist/connector/mcp/client.js.map +1 -1
  113. package/dist/connector/mcp/discovery.d.ts +24 -1
  114. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  115. package/dist/connector/mcp/discovery.js +44 -0
  116. package/dist/connector/mcp/discovery.js.map +1 -1
  117. package/dist/connector/mcp/index.d.ts +2 -0
  118. package/dist/connector/mcp/index.d.ts.map +1 -1
  119. package/dist/connector/mcp/index.js +11 -0
  120. package/dist/connector/mcp/index.js.map +1 -1
  121. package/dist/connector/mcp/mcp-toolset.d.ts +133 -0
  122. package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -0
  123. package/dist/connector/mcp/mcp-toolset.js +399 -0
  124. package/dist/connector/mcp/mcp-toolset.js.map +1 -0
  125. package/dist/connector/tools/index.d.ts +2 -2
  126. package/dist/connector/tools/index.d.ts.map +1 -1
  127. package/dist/connector/tools/index.js +1 -1
  128. package/dist/connector/tools/index.js.map +1 -1
  129. package/dist/connector/tools/router.d.ts +15 -13
  130. package/dist/connector/tools/router.d.ts.map +1 -1
  131. package/dist/connector/tools/router.js +30 -51
  132. package/dist/connector/tools/router.js.map +1 -1
  133. package/dist/contracts/a2a.d.ts +2 -2
  134. package/dist/directory/derive-supervisor.d.ts +2 -2
  135. package/dist/directory/derive-supervisor.d.ts.map +1 -1
  136. package/dist/directory/derive-supervisor.js +6 -7
  137. package/dist/directory/derive-supervisor.js.map +1 -1
  138. package/dist/directory/derive.d.ts.map +1 -1
  139. package/dist/directory/derive.js +5 -5
  140. package/dist/directory/derive.js.map +1 -1
  141. package/dist/execution/code-runtime/types.d.ts +2 -2
  142. package/dist/execution/code-runtime/types.js +1 -1
  143. package/dist/invariants/index.d.ts +2 -1
  144. package/dist/invariants/index.d.ts.map +1 -1
  145. package/dist/invariants/index.js +3 -2
  146. package/dist/invariants/index.js.map +1 -1
  147. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  148. package/dist/manager/agent/lifecycle.js +9 -0
  149. package/dist/manager/agent/lifecycle.js.map +1 -1
  150. package/dist/manager/connector/environment.d.ts +6 -0
  151. package/dist/manager/connector/environment.d.ts.map +1 -1
  152. package/dist/manager/connector/environment.js +11 -4
  153. package/dist/manager/connector/environment.js.map +1 -1
  154. package/dist/manager/connector/index.d.ts +2 -2
  155. package/dist/manager/connector/index.d.ts.map +1 -1
  156. package/dist/manager/connector/index.js +2 -2
  157. package/dist/manager/connector/index.js.map +1 -1
  158. package/dist/manager/connector/tenant.d.ts +6 -0
  159. package/dist/manager/connector/tenant.d.ts.map +1 -1
  160. package/dist/manager/connector/tenant.js +11 -4
  161. package/dist/manager/connector/tenant.js.map +1 -1
  162. package/dist/manager/index.d.ts +2 -2
  163. package/dist/manager/index.d.ts.map +1 -1
  164. package/dist/manager/index.js +2 -2
  165. package/dist/manager/index.js.map +1 -1
  166. package/dist/manager/resident/learning-observation.d.ts +4 -4
  167. package/dist/manager/resident/learning.d.ts +36 -36
  168. package/dist/manager/session/attribution.d.ts +22 -0
  169. package/dist/manager/session/attribution.d.ts.map +1 -0
  170. package/dist/manager/session/attribution.js +64 -0
  171. package/dist/manager/session/attribution.js.map +1 -0
  172. package/dist/manager/session/turn-recorder.d.ts +14 -0
  173. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  174. package/dist/manager/session/turn-recorder.js +208 -55
  175. package/dist/manager/session/turn-recorder.js.map +1 -1
  176. package/dist/peers/address.d.ts +36 -0
  177. package/dist/peers/address.d.ts.map +1 -0
  178. package/dist/peers/address.js +52 -0
  179. package/dist/peers/address.js.map +1 -0
  180. package/dist/peers/client.d.ts +47 -0
  181. package/dist/peers/client.d.ts.map +1 -0
  182. package/dist/peers/client.js +132 -0
  183. package/dist/peers/client.js.map +1 -0
  184. package/dist/peers/dir.d.ts +88 -0
  185. package/dist/peers/dir.d.ts.map +1 -0
  186. package/dist/peers/dir.js +139 -0
  187. package/dist/peers/dir.js.map +1 -0
  188. package/dist/peers/endpoint.d.ts +144 -0
  189. package/dist/peers/endpoint.d.ts.map +1 -0
  190. package/dist/peers/endpoint.js +420 -0
  191. package/dist/peers/endpoint.js.map +1 -0
  192. package/dist/peers/envelope.d.ts +42 -0
  193. package/dist/peers/envelope.d.ts.map +1 -0
  194. package/dist/peers/envelope.js +110 -0
  195. package/dist/peers/envelope.js.map +1 -0
  196. package/dist/peers/index.d.ts +30 -0
  197. package/dist/peers/index.d.ts.map +1 -0
  198. package/dist/peers/index.js +22 -0
  199. package/dist/peers/index.js.map +1 -0
  200. package/dist/peers/protocol.d.ts +645 -0
  201. package/dist/peers/protocol.d.ts.map +1 -0
  202. package/dist/peers/protocol.js +151 -0
  203. package/dist/peers/protocol.js.map +1 -0
  204. package/dist/peers/record.d.ts +71 -0
  205. package/dist/peers/record.d.ts.map +1 -0
  206. package/dist/peers/record.js +45 -0
  207. package/dist/peers/record.js.map +1 -0
  208. package/dist/peers/registry.d.ts +54 -0
  209. package/dist/peers/registry.d.ts.map +1 -0
  210. package/dist/peers/registry.js +213 -0
  211. package/dist/peers/registry.js.map +1 -0
  212. package/dist/plugin/define.d.ts +24 -0
  213. package/dist/plugin/define.d.ts.map +1 -0
  214. package/dist/plugin/define.js +42 -0
  215. package/dist/plugin/define.js.map +1 -0
  216. package/dist/plugin/index.d.ts +2 -0
  217. package/dist/plugin/index.d.ts.map +1 -1
  218. package/dist/plugin/index.js +1 -0
  219. package/dist/plugin/index.js.map +1 -1
  220. package/dist/plugin/lifecycle.d.ts +27 -3
  221. package/dist/plugin/lifecycle.d.ts.map +1 -1
  222. package/dist/plugin/lifecycle.js +242 -92
  223. package/dist/plugin/lifecycle.js.map +1 -1
  224. package/dist/plugin/resolver.d.ts +2 -2
  225. package/dist/plugin/resolver.d.ts.map +1 -1
  226. package/dist/plugin/resolver.js.map +1 -1
  227. package/dist/plugin/shell-hook.d.ts.map +1 -1
  228. package/dist/plugin/shell-hook.js +17 -3
  229. package/dist/plugin/shell-hook.js.map +1 -1
  230. package/dist/probe/errors.d.ts +2 -1
  231. package/dist/probe/errors.d.ts.map +1 -1
  232. package/dist/probe/errors.js +3 -2
  233. package/dist/probe/errors.js.map +1 -1
  234. package/dist/prompt/coding-agent-doctrine.d.ts +18 -7
  235. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  236. package/dist/prompt/coding-agent-doctrine.js +11 -6
  237. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  238. package/dist/prompt/contributions.d.ts +4 -1
  239. package/dist/prompt/contributions.d.ts.map +1 -1
  240. package/dist/prompt/contributions.js +7 -2
  241. package/dist/prompt/contributions.js.map +1 -1
  242. package/dist/prompt/index.d.ts +1 -1
  243. package/dist/prompt/index.d.ts.map +1 -1
  244. package/dist/prompt/index.js +1 -1
  245. package/dist/prompt/index.js.map +1 -1
  246. package/dist/provider/collect-chat-completion.d.ts +6 -1
  247. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  248. package/dist/provider/collect-chat-completion.js +88 -10
  249. package/dist/provider/collect-chat-completion.js.map +1 -1
  250. package/dist/provider/mock.d.ts.map +1 -1
  251. package/dist/provider/mock.js +23 -6
  252. package/dist/provider/mock.js.map +1 -1
  253. package/dist/provider/registry.d.ts +2 -1
  254. package/dist/provider/registry.d.ts.map +1 -1
  255. package/dist/provider/registry.js +3 -2
  256. package/dist/provider/registry.js.map +1 -1
  257. package/dist/provider/tool-call-framing.d.ts +164 -0
  258. package/dist/provider/tool-call-framing.d.ts.map +1 -0
  259. package/dist/provider/tool-call-framing.js +163 -0
  260. package/dist/provider/tool-call-framing.js.map +1 -0
  261. package/dist/public-runtime.d.ts +24 -11
  262. package/dist/public-runtime.d.ts.map +1 -1
  263. package/dist/public-runtime.js +45 -9
  264. package/dist/public-runtime.js.map +1 -1
  265. package/dist/public-tools.d.ts +6 -4
  266. package/dist/public-tools.d.ts.map +1 -1
  267. package/dist/public-tools.js +8 -3
  268. package/dist/public-tools.js.map +1 -1
  269. package/dist/public-types.d.ts +13 -2
  270. package/dist/public-types.d.ts.map +1 -1
  271. package/dist/read-model/registry.d.ts +2 -1
  272. package/dist/read-model/registry.d.ts.map +1 -1
  273. package/dist/read-model/registry.js +3 -2
  274. package/dist/read-model/registry.js.map +1 -1
  275. package/dist/registry/ManagedRegistry.d.ts +30 -0
  276. package/dist/registry/ManagedRegistry.d.ts.map +1 -1
  277. package/dist/registry/ManagedRegistry.js +45 -6
  278. package/dist/registry/ManagedRegistry.js.map +1 -1
  279. package/dist/registry/collision.d.ts +57 -0
  280. package/dist/registry/collision.d.ts.map +1 -0
  281. package/dist/registry/collision.js +41 -0
  282. package/dist/registry/collision.js.map +1 -0
  283. package/dist/registry/command/index.d.ts +5 -3
  284. package/dist/registry/command/index.d.ts.map +1 -1
  285. package/dist/registry/command/index.js +6 -4
  286. package/dist/registry/command/index.js.map +1 -1
  287. package/dist/registry/index.d.ts +3 -4
  288. package/dist/registry/index.d.ts.map +1 -1
  289. package/dist/registry/index.js +2 -2
  290. package/dist/registry/index.js.map +1 -1
  291. package/dist/registry/plugin/index.d.ts.map +1 -1
  292. package/dist/registry/plugin/index.js +14 -1
  293. package/dist/registry/plugin/index.js.map +1 -1
  294. package/dist/registry/tool/callable.d.ts +7 -7
  295. package/dist/registry/tool/callable.d.ts.map +1 -1
  296. package/dist/registry/tool/callable.js +6 -7
  297. package/dist/registry/tool/callable.js.map +1 -1
  298. package/dist/registry/tool/execute.d.ts +14 -77
  299. package/dist/registry/tool/execute.d.ts.map +1 -1
  300. package/dist/registry/tool/execute.js +15 -727
  301. package/dist/registry/tool/execute.js.map +1 -1
  302. package/dist/registry/tool/portable.d.ts +25 -0
  303. package/dist/registry/tool/portable.d.ts.map +1 -1
  304. package/dist/registry/tool/portable.js +50 -0
  305. package/dist/registry/tool/portable.js.map +1 -1
  306. package/dist/registry/tool/presentation.d.ts +6 -5
  307. package/dist/registry/tool/presentation.d.ts.map +1 -1
  308. package/dist/registry/tool/presentation.js +3 -3
  309. package/dist/registry/tool/presentation.js.map +1 -1
  310. package/dist/runtime/bidi/session.d.ts +5 -4
  311. package/dist/runtime/bidi/session.d.ts.map +1 -1
  312. package/dist/runtime/bidi/session.js +18 -1
  313. package/dist/runtime/bidi/session.js.map +1 -1
  314. package/dist/runtime/query/executor/tool-call-admission.d.ts +45 -2
  315. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  316. package/dist/runtime/query/executor/tool-call-admission.js +189 -5
  317. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  318. package/dist/runtime/query/executor.d.ts +33 -3
  319. package/dist/runtime/query/executor.d.ts.map +1 -1
  320. package/dist/runtime/query/executor.js +86 -10
  321. package/dist/runtime/query/executor.js.map +1 -1
  322. package/dist/runtime/query/file-evidence-replay.d.ts +1 -1
  323. package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -1
  324. package/dist/runtime/query/file-evidence-replay.js +8 -7
  325. package/dist/runtime/query/file-evidence-replay.js.map +1 -1
  326. package/dist/runtime/query/fork/prepare.d.ts +4 -1
  327. package/dist/runtime/query/fork/prepare.d.ts.map +1 -1
  328. package/dist/runtime/query/fork/prepare.js +4 -0
  329. package/dist/runtime/query/fork/prepare.js.map +1 -1
  330. package/dist/runtime/query/guardrail-presets.d.ts +4 -3
  331. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
  332. package/dist/runtime/query/guardrail-presets.js +4 -3
  333. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  334. package/dist/runtime/query/index.d.ts +23 -10
  335. package/dist/runtime/query/index.d.ts.map +1 -1
  336. package/dist/runtime/query/index.js +149 -70
  337. package/dist/runtime/query/index.js.map +1 -1
  338. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  339. package/dist/runtime/query/iteration/index.js +8 -1
  340. package/dist/runtime/query/iteration/index.js.map +1 -1
  341. package/dist/runtime/query/iteration/phases/compaction.js +1 -1
  342. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  343. package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
  344. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  345. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  346. package/dist/runtime/query/iteration/phases/tool-review.js +55 -2
  347. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  348. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  349. package/dist/runtime/query/iteration/stream-turn.js +342 -116
  350. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  351. package/dist/runtime/query/iteration/tool-input.d.ts +79 -0
  352. package/dist/runtime/query/iteration/tool-input.d.ts.map +1 -0
  353. package/dist/runtime/query/iteration/tool-input.js +291 -0
  354. package/dist/runtime/query/iteration/tool-input.js.map +1 -0
  355. package/dist/runtime/query/observation-context.d.ts +2 -2
  356. package/dist/runtime/query/observation-context.d.ts.map +1 -1
  357. package/dist/runtime/query/observation-context.js.map +1 -1
  358. package/dist/runtime/query/prelude-lease.d.ts +18 -0
  359. package/dist/runtime/query/prelude-lease.d.ts.map +1 -0
  360. package/dist/runtime/query/prelude-lease.js +121 -0
  361. package/dist/runtime/query/prelude-lease.js.map +1 -0
  362. package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
  363. package/dist/runtime/query/prepare-turn.js +386 -187
  364. package/dist/runtime/query/prepare-turn.js.map +1 -1
  365. package/dist/runtime/query/prompt-cache.d.ts +2 -2
  366. package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
  367. package/dist/runtime/query/prompt.d.ts +2 -2
  368. package/dist/runtime/query/prompt.d.ts.map +1 -1
  369. package/dist/runtime/query/prompt.js +1 -1
  370. package/dist/runtime/query/prompt.js.map +1 -1
  371. package/dist/runtime/query/resume-session.d.ts.map +1 -1
  372. package/dist/runtime/query/resume-session.js +37 -2
  373. package/dist/runtime/query/resume-session.js.map +1 -1
  374. package/dist/runtime/query/review-policy.d.ts +22 -3
  375. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  376. package/dist/runtime/query/review-policy.js +84 -6
  377. package/dist/runtime/query/review-policy.js.map +1 -1
  378. package/dist/runtime/query/tooling.d.ts +3 -2
  379. package/dist/runtime/query/tooling.d.ts.map +1 -1
  380. package/dist/runtime/query/tooling.js.map +1 -1
  381. package/dist/runtime/query/turn-state.d.ts.map +1 -1
  382. package/dist/runtime/query/turn-state.js +5 -0
  383. package/dist/runtime/query/turn-state.js.map +1 -1
  384. package/dist/runtime/system-events.d.ts +112 -0
  385. package/dist/runtime/system-events.d.ts.map +1 -0
  386. package/dist/runtime/system-events.js +183 -0
  387. package/dist/runtime/system-events.js.map +1 -0
  388. package/dist/scheduler/delegating.d.ts +2 -1
  389. package/dist/scheduler/delegating.d.ts.map +1 -1
  390. package/dist/scheduler/delegating.js +3 -2
  391. package/dist/scheduler/delegating.js.map +1 -1
  392. package/dist/skills/index.d.ts +1 -1
  393. package/dist/skills/index.d.ts.map +1 -1
  394. package/dist/skills/index.js +1 -1
  395. package/dist/skills/index.js.map +1 -1
  396. package/dist/skills/registry.d.ts +12 -0
  397. package/dist/skills/registry.d.ts.map +1 -1
  398. package/dist/skills/registry.js +19 -0
  399. package/dist/skills/registry.js.map +1 -1
  400. package/dist/store/evidence/index-page.d.ts +2 -2
  401. package/dist/store/session-log/conformance.d.ts +1 -1
  402. package/dist/store/session-log/conformance.d.ts.map +1 -1
  403. package/dist/store/session-log/conformance.js +49 -8
  404. package/dist/store/session-log/conformance.js.map +1 -1
  405. package/dist/store/session-log/core.d.ts +8 -3
  406. package/dist/store/session-log/core.d.ts.map +1 -1
  407. package/dist/store/session-log/core.js +2 -1
  408. package/dist/store/session-log/core.js.map +1 -1
  409. package/dist/store/session-log/fold.d.ts +12 -0
  410. package/dist/store/session-log/fold.d.ts.map +1 -1
  411. package/dist/store/session-log/fold.js +57 -7
  412. package/dist/store/session-log/fold.js.map +1 -1
  413. package/dist/store/session-log/index.d.ts +2 -2
  414. package/dist/store/session-log/index.d.ts.map +1 -1
  415. package/dist/store/session-log/index.js +1 -1
  416. package/dist/store/session-log/index.js.map +1 -1
  417. package/dist/test-support/toolset.d.ts +19 -0
  418. package/dist/test-support/toolset.d.ts.map +1 -0
  419. package/dist/test-support/toolset.js +20 -0
  420. package/dist/test-support/toolset.js.map +1 -0
  421. package/dist/tools/builtins/bash.d.ts +29 -0
  422. package/dist/tools/builtins/bash.d.ts.map +1 -1
  423. package/dist/tools/builtins/bash.js +19 -9
  424. package/dist/tools/builtins/bash.js.map +1 -1
  425. package/dist/tools/builtins/browser-url.d.ts +1 -1
  426. package/dist/tools/builtins/browser-url.js +1 -1
  427. package/dist/tools/builtins/browser.d.ts +6 -6
  428. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  429. package/dist/tools/builtins/computer-use.js +19 -11
  430. package/dist/tools/builtins/computer-use.js.map +1 -1
  431. package/dist/tools/builtins/edit.d.ts.map +1 -1
  432. package/dist/tools/builtins/edit.js +9 -1
  433. package/dist/tools/builtins/edit.js.map +1 -1
  434. package/dist/tools/builtins/json-string-hint.d.ts +15 -0
  435. package/dist/tools/builtins/json-string-hint.d.ts.map +1 -0
  436. package/dist/tools/builtins/json-string-hint.js +17 -0
  437. package/dist/tools/builtins/json-string-hint.js.map +1 -0
  438. package/dist/tools/builtins/search-tools.d.ts.map +1 -1
  439. package/dist/tools/builtins/search-tools.js +7 -15
  440. package/dist/tools/builtins/search-tools.js.map +1 -1
  441. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  442. package/dist/tools/builtins/write-file.js +11 -0
  443. package/dist/tools/builtins/write-file.js.map +1 -1
  444. package/dist/tools/command-shell.d.ts +10 -0
  445. package/dist/tools/command-shell.d.ts.map +1 -1
  446. package/dist/tools/command-shell.js +45 -1
  447. package/dist/tools/command-shell.js.map +1 -1
  448. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  449. package/dist/tools/coordinator/agent.js +5 -0
  450. package/dist/tools/coordinator/agent.js.map +1 -1
  451. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  452. package/dist/tools/coordinator/ask-user-question.js +26 -13
  453. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  454. package/dist/tools/coordinator/index.d.ts.map +1 -1
  455. package/dist/tools/coordinator/index.js +5 -0
  456. package/dist/tools/coordinator/index.js.map +1 -1
  457. package/dist/tools/coordinator/question-options.d.ts +78 -0
  458. package/dist/tools/coordinator/question-options.d.ts.map +1 -0
  459. package/dist/tools/coordinator/question-options.js +153 -0
  460. package/dist/tools/coordinator/question-options.js.map +1 -0
  461. package/dist/tools/defineTool.d.ts +10 -0
  462. package/dist/tools/defineTool.d.ts.map +1 -1
  463. package/dist/tools/defineTool.js +17 -0
  464. package/dist/tools/defineTool.js.map +1 -1
  465. package/dist/tools/memory/search.d.ts.map +1 -1
  466. package/dist/tools/memory/search.js +4 -1
  467. package/dist/tools/memory/search.js.map +1 -1
  468. package/dist/tools/memory/update.d.ts.map +1 -1
  469. package/dist/tools/memory/update.js +8 -5
  470. package/dist/tools/memory/update.js.map +1 -1
  471. package/dist/tools/render-nonce.d.ts +47 -0
  472. package/dist/tools/render-nonce.d.ts.map +1 -0
  473. package/dist/tools/render-nonce.js +63 -0
  474. package/dist/tools/render-nonce.js.map +1 -0
  475. package/dist/tools/roster.d.ts +46 -19
  476. package/dist/tools/roster.d.ts.map +1 -1
  477. package/dist/tools/roster.js +63 -33
  478. package/dist/tools/roster.js.map +1 -1
  479. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  480. package/dist/tools/schedules/schedule-tool.js +94 -14
  481. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  482. package/dist/tools/schedules/types.d.ts +52 -6
  483. package/dist/tools/schedules/types.d.ts.map +1 -1
  484. package/dist/tools/trusted-read-only.d.ts +9 -5
  485. package/dist/tools/trusted-read-only.d.ts.map +1 -1
  486. package/dist/tools/trusted-read-only.js +14 -10
  487. package/dist/tools/trusted-read-only.js.map +1 -1
  488. package/dist/tools/untrusted-envelope.d.ts +67 -28
  489. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  490. package/dist/tools/untrusted-envelope.js +108 -59
  491. package/dist/tools/untrusted-envelope.js.map +1 -1
  492. package/dist/toolsets/combine.d.ts +44 -0
  493. package/dist/toolsets/combine.d.ts.map +1 -0
  494. package/dist/toolsets/combine.js +153 -0
  495. package/dist/toolsets/combine.js.map +1 -0
  496. package/dist/toolsets/manager.d.ts +201 -0
  497. package/dist/toolsets/manager.d.ts.map +1 -0
  498. package/dist/toolsets/manager.js +837 -0
  499. package/dist/toolsets/manager.js.map +1 -0
  500. package/dist/toolsets/source-glob.d.ts +15 -0
  501. package/dist/toolsets/source-glob.d.ts.map +1 -0
  502. package/dist/toolsets/source-glob.js +23 -0
  503. package/dist/toolsets/source-glob.js.map +1 -0
  504. package/dist/toolsets/toolset.d.ts +20 -0
  505. package/dist/toolsets/toolset.d.ts.map +1 -0
  506. package/dist/toolsets/toolset.js +28 -0
  507. package/dist/toolsets/toolset.js.map +1 -0
  508. package/dist/toolsets/types.d.ts +128 -0
  509. package/dist/toolsets/types.d.ts.map +1 -0
  510. package/dist/toolsets/types.js +33 -0
  511. package/dist/toolsets/types.js.map +1 -0
  512. package/dist/toolsets/wrappers.d.ts +59 -0
  513. package/dist/toolsets/wrappers.d.ts.map +1 -0
  514. package/dist/toolsets/wrappers.js +165 -0
  515. package/dist/toolsets/wrappers.js.map +1 -0
  516. package/dist/types/agent/base.d.ts +27 -16
  517. package/dist/types/agent/base.d.ts.map +1 -1
  518. package/dist/types/agent/index.d.ts +1 -0
  519. package/dist/types/agent/index.d.ts.map +1 -1
  520. package/dist/types/agent/index.js +1 -0
  521. package/dist/types/agent/index.js.map +1 -1
  522. package/dist/types/agent/pipeline.d.ts +2 -0
  523. package/dist/types/agent/pipeline.d.ts.map +1 -1
  524. package/dist/types/agent/query.d.ts +117 -0
  525. package/dist/types/agent/query.d.ts.map +1 -0
  526. package/dist/types/agent/query.js +2 -0
  527. package/dist/types/agent/query.js.map +1 -0
  528. package/dist/types/agent/reactive.d.ts +2 -129
  529. package/dist/types/agent/reactive.d.ts.map +1 -1
  530. package/dist/types/agent/router.d.ts +2 -0
  531. package/dist/types/agent/router.d.ts.map +1 -1
  532. package/dist/types/agent/supervisor.d.ts +5 -2
  533. package/dist/types/agent/supervisor.d.ts.map +1 -1
  534. package/dist/types/authorization/index.d.ts +49 -12
  535. package/dist/types/authorization/index.d.ts.map +1 -1
  536. package/dist/types/authorization/index.js +6 -0
  537. package/dist/types/authorization/index.js.map +1 -1
  538. package/dist/types/connector/mcp.d.ts +32 -0
  539. package/dist/types/connector/mcp.d.ts.map +1 -1
  540. package/dist/types/errors/index.d.ts +15 -0
  541. package/dist/types/errors/index.d.ts.map +1 -1
  542. package/dist/types/errors/index.js.map +1 -1
  543. package/dist/types/hitl/index.d.ts +57 -0
  544. package/dist/types/hitl/index.d.ts.map +1 -1
  545. package/dist/types/hitl/index.js.map +1 -1
  546. package/dist/types/message/index.d.ts +130 -9
  547. package/dist/types/message/index.d.ts.map +1 -1
  548. package/dist/types/message/index.js +4 -1
  549. package/dist/types/message/index.js.map +1 -1
  550. package/dist/types/plugin/index.d.ts +22 -4
  551. package/dist/types/plugin/index.d.ts.map +1 -1
  552. package/dist/types/plugin/index.js +1 -0
  553. package/dist/types/plugin/index.js.map +1 -1
  554. package/dist/types/provider/chat.d.ts +5 -0
  555. package/dist/types/provider/chat.d.ts.map +1 -1
  556. package/dist/types/provider/config.d.ts +8 -3
  557. package/dist/types/provider/config.d.ts.map +1 -1
  558. package/dist/types/provider/stream.d.ts +39 -0
  559. package/dist/types/provider/stream.d.ts.map +1 -1
  560. package/dist/types/sandbox/index.d.ts +1 -1
  561. package/dist/types/session/events.d.ts +14 -3
  562. package/dist/types/session/events.d.ts.map +1 -1
  563. package/dist/types/session/events.js.map +1 -1
  564. package/dist/types/tool/index.d.ts +152 -91
  565. package/dist/types/tool/index.d.ts.map +1 -1
  566. package/dist/types/tool/index.js.map +1 -1
  567. package/dist/types/toolset/index.d.ts +10 -40
  568. package/dist/types/toolset/index.d.ts.map +1 -1
  569. package/package.json +1 -1
  570. package/src/advisory/history.ts +27 -2
  571. package/src/advisory/index.ts +1 -1
  572. package/src/advisory/registry.ts +33 -0
  573. package/src/agents/AGENTS.md +14 -7
  574. package/src/agents/PipelineAgent.ts +2 -303
  575. package/src/agents/QueryAgent.ts +269 -0
  576. package/src/agents/ReactiveAgent.ts +6 -216
  577. package/src/agents/RouterAgent.ts +2 -337
  578. package/src/agents/SupervisorAgent.ts +3 -476
  579. package/src/agents/defineAgent.ts +13 -2
  580. package/src/agents/examples/PipelineAgent.ts +302 -0
  581. package/src/agents/examples/RouterAgent.ts +338 -0
  582. package/src/agents/examples/SupervisorAgent.ts +472 -0
  583. package/src/agents/explore.ts +6 -3
  584. package/src/agents/forward-options.ts +37 -0
  585. package/src/agents/index.ts +2 -0
  586. package/src/agents/runAgent.ts +144 -37
  587. package/src/authorization/command-line.ts +2 -2
  588. package/src/authorization/gate.ts +21 -1
  589. package/src/authorization/program.ts +773 -0
  590. package/src/authorization/reexec-wrapper.ts +589 -0
  591. package/src/authorization/rules.ts +18 -1
  592. package/src/authorization/shell-lexer.ts +104 -59
  593. package/src/bridge/sse/mapper.ts +6 -0
  594. package/src/capabilities/index.ts +157 -0
  595. package/src/config/registry.ts +4 -1
  596. package/src/connector/index.ts +9 -2
  597. package/src/connector/mcp/adapter.ts +58 -3
  598. package/src/connector/mcp/client.ts +20 -4
  599. package/src/connector/mcp/discovery.ts +60 -0
  600. package/src/connector/mcp/index.ts +13 -0
  601. package/src/connector/mcp/mcp-toolset.ts +515 -0
  602. package/src/connector/tools/index.ts +2 -2
  603. package/src/connector/tools/router.ts +35 -58
  604. package/src/directory/derive-supervisor.ts +12 -8
  605. package/src/directory/derive.ts +8 -5
  606. package/src/execution/code-runtime/types.ts +2 -2
  607. package/src/invariants/index.ts +4 -1
  608. package/src/manager/agent/lifecycle.ts +9 -0
  609. package/src/manager/connector/environment.ts +17 -4
  610. package/src/manager/connector/index.ts +2 -2
  611. package/src/manager/connector/tenant.ts +17 -4
  612. package/src/manager/index.ts +2 -2
  613. package/src/manager/session/attribution.ts +79 -0
  614. package/src/manager/session/turn-recorder.ts +211 -55
  615. package/src/peers/address.ts +58 -0
  616. package/src/peers/client.ts +202 -0
  617. package/src/peers/dir.ts +176 -0
  618. package/src/peers/endpoint.ts +564 -0
  619. package/src/peers/envelope.ts +121 -0
  620. package/src/peers/index.ts +96 -0
  621. package/src/peers/protocol.ts +196 -0
  622. package/src/peers/record.ts +56 -0
  623. package/src/peers/registry.ts +241 -0
  624. package/src/plugin/define.ts +68 -0
  625. package/src/plugin/index.ts +2 -0
  626. package/src/plugin/lifecycle.ts +286 -106
  627. package/src/plugin/resolver.ts +6 -3
  628. package/src/plugin/shell-hook.ts +21 -5
  629. package/src/probe/errors.ts +4 -1
  630. package/src/prompt/coding-agent-doctrine.ts +22 -10
  631. package/src/prompt/contributions.ts +12 -2
  632. package/src/prompt/index.ts +1 -0
  633. package/src/provider/collect-chat-completion.ts +96 -11
  634. package/src/provider/mock.ts +24 -6
  635. package/src/provider/registry.ts +4 -1
  636. package/src/provider/tool-call-framing.ts +226 -0
  637. package/src/public-runtime.ts +136 -7
  638. package/src/public-tools.ts +24 -4
  639. package/src/public-types.ts +60 -6
  640. package/src/read-model/registry.ts +7 -2
  641. package/src/registry/ManagedRegistry.ts +57 -6
  642. package/src/registry/collision.ts +64 -0
  643. package/src/registry/command/index.ts +7 -3
  644. package/src/registry/index.ts +3 -9
  645. package/src/registry/plugin/index.ts +14 -1
  646. package/src/registry/tool/callable.ts +8 -9
  647. package/src/registry/tool/execute.ts +16 -846
  648. package/src/registry/tool/portable.ts +59 -0
  649. package/src/registry/tool/presentation.ts +6 -5
  650. package/src/runtime/bidi/session.ts +24 -5
  651. package/src/runtime/query/executor/tool-call-admission.ts +228 -6
  652. package/src/runtime/query/executor.ts +110 -12
  653. package/src/runtime/query/file-evidence-replay.ts +8 -7
  654. package/src/runtime/query/fork/prepare.ts +6 -1
  655. package/src/runtime/query/guardrail-presets.ts +4 -3
  656. package/src/runtime/query/index.ts +199 -101
  657. package/src/runtime/query/iteration/index.ts +13 -3
  658. package/src/runtime/query/iteration/phases/compaction.ts +1 -1
  659. package/src/runtime/query/iteration/phases/context.ts +2 -2
  660. package/src/runtime/query/iteration/phases/tool-review.ts +59 -2
  661. package/src/runtime/query/iteration/stream-turn.ts +390 -136
  662. package/src/runtime/query/iteration/tool-input.ts +284 -0
  663. package/src/runtime/query/observation-context.ts +2 -2
  664. package/src/runtime/query/prelude-lease.ts +132 -0
  665. package/src/runtime/query/prepare-turn.ts +477 -198
  666. package/src/runtime/query/prompt-cache.ts +2 -2
  667. package/src/runtime/query/prompt.ts +4 -4
  668. package/src/runtime/query/resume-session.ts +42 -3
  669. package/src/runtime/query/review-policy.ts +87 -9
  670. package/src/runtime/query/tooling.ts +3 -6
  671. package/src/runtime/query/turn-state.ts +4 -0
  672. package/src/runtime/system-events.ts +246 -0
  673. package/src/scheduler/delegating.ts +7 -2
  674. package/src/skills/index.ts +1 -1
  675. package/src/skills/registry.ts +25 -0
  676. package/src/store/session-log/conformance.ts +51 -8
  677. package/src/store/session-log/core.ts +10 -4
  678. package/src/store/session-log/fold.ts +33 -7
  679. package/src/store/session-log/index.ts +2 -0
  680. package/src/test-support/toolset.ts +23 -0
  681. package/src/tools/builtins/bash.ts +27 -10
  682. package/src/tools/builtins/browser-url.ts +1 -1
  683. package/src/tools/builtins/computer-use.ts +21 -11
  684. package/src/tools/builtins/edit.ts +12 -2
  685. package/src/tools/builtins/json-string-hint.ts +16 -0
  686. package/src/tools/builtins/search-tools.ts +7 -20
  687. package/src/tools/builtins/write-file.ts +12 -0
  688. package/src/tools/command-shell.ts +46 -1
  689. package/src/tools/coordinator/agent.ts +6 -0
  690. package/src/tools/coordinator/ask-user-question.ts +29 -15
  691. package/src/tools/coordinator/index.ts +6 -0
  692. package/src/tools/coordinator/question-options.ts +195 -0
  693. package/src/tools/defineTool.ts +28 -0
  694. package/src/tools/memory/search.ts +4 -1
  695. package/src/tools/memory/update.ts +8 -5
  696. package/src/tools/render-nonce.ts +69 -0
  697. package/src/tools/roster.ts +84 -33
  698. package/src/tools/schedules/schedule-tool.ts +107 -14
  699. package/src/tools/schedules/types.ts +52 -6
  700. package/src/tools/trusted-read-only.ts +19 -10
  701. package/src/tools/untrusted-envelope.ts +121 -57
  702. package/src/toolsets/combine.ts +181 -0
  703. package/src/toolsets/manager.ts +996 -0
  704. package/src/toolsets/source-glob.ts +22 -0
  705. package/src/toolsets/toolset.ts +31 -0
  706. package/src/toolsets/types.ts +154 -0
  707. package/src/toolsets/wrappers.ts +191 -0
  708. package/src/types/agent/base.ts +29 -16
  709. package/src/types/agent/index.ts +1 -0
  710. package/src/types/agent/pipeline.ts +2 -0
  711. package/src/types/agent/query.ts +129 -0
  712. package/src/types/agent/reactive.ts +5 -142
  713. package/src/types/agent/router.ts +2 -0
  714. package/src/types/agent/supervisor.ts +5 -2
  715. package/src/types/authorization/index.ts +12 -0
  716. package/src/types/connector/mcp.ts +32 -0
  717. package/src/types/errors/index.ts +15 -0
  718. package/src/types/hitl/index.ts +57 -0
  719. package/src/types/message/index.ts +135 -7
  720. package/src/types/plugin/index.ts +44 -21
  721. package/src/types/provider/chat.ts +5 -0
  722. package/src/types/provider/config.ts +8 -3
  723. package/src/types/provider/stream.ts +39 -0
  724. package/src/types/sandbox/index.ts +1 -1
  725. package/src/types/session/events.ts +14 -3
  726. package/src/types/tool/index.ts +154 -105
  727. package/src/types/toolset/index.ts +10 -47
  728. package/dist/registry/toolset/catalog.d.ts +0 -42
  729. package/dist/registry/toolset/catalog.d.ts.map +0 -1
  730. package/dist/registry/toolset/catalog.js +0 -234
  731. package/dist/registry/toolset/catalog.js.map +0 -1
  732. package/src/registry/toolset/catalog.ts +0 -308
@@ -1,142 +1,5 @@
1
- import type { CompactionConfig } from '../../config/runtime.js'
2
- import type { QueryParams } from '../../runtime/query/index.js'
3
- import type { SteeringChannel } from '../../runtime/query/steering.js'
4
- import type { AdvisoryConfig } from '../advisory/index.js'
5
- import type { AuthorizationGateConfig } from '../authorization/index.js'
6
- import type { InputGuardrailSpec, OutputGuardrailSpec } from '../guardrail/index.js'
7
- import type { ResumeHandler } from '../hitl/index.js'
8
- import type { AgentPersona } from '../persona/index.js'
9
- import type { LLMProvider } from '../provider/index.js'
10
- import type { SandboxProvider } from '../sandbox/index.js'
11
- import type { BeforeStep, PrepareStepChain, StepResult, StopCondition } from '../session/index.js'
12
- import type { Skill } from '../skills/index.js'
13
- import type { StructuredOutputConfig } from '../structured-output/index.js'
14
- import type { ToolRegistryContract } from '../tool/index.js'
15
- import type { RepairToolCall } from '../tool/repair.js'
16
- import type { BaseAgentConfig, BaseAgentResult } from './base.js'
17
- import type { WorkingMemoryProvider } from './working-memory.js'
18
-
19
- export interface ReactiveAgentConfig extends BaseAgentConfig {
20
- systemPrompt?: string
21
- /** Provider-hosted search for this turn; the selected driver must support it. */
22
- webSearch?: { mode: 'live' | 'cached' }
23
-
24
- persona?: AgentPersona
25
-
26
- /**
27
- * Channel a host uses to hand guidance to this turn's current turn.
28
- *
29
- * Present here for the same reason it is on `SupervisorAgentConfig`, and
30
- * the reason that file gives twice already: a capability the kernel
31
- * honours in `drainQuery` and not on the surface hosts actually
32
- * construct is a capability nobody can reach. This is the archetype most
33
- * hosts run, and it was the one that could not be steered at all.
34
- */
35
- steering?: SteeringChannel
36
-
37
- skills?: Skill[]
38
-
39
- basePrompt?: string
40
- provider: LLMProvider
41
- tools: ToolRegistryContract
42
-
43
- advisory?: AdvisoryConfig
44
-
45
- /**
46
- * Optional capability-aware deny/allow gate for child tool calls.
47
- * Mirrors the same field on `SupervisorAgentConfig`; when omitted,
48
- * `drainQuery` falls back to its `autoApproveHandler` default
49
- * (every tool call auto-approves, no policy applied). Hosts that
50
- * trust their sandbox should still pass at least
51
- * `{ enabled: true, denyDangerousPatterns: true, ... }` so the
52
- * canonical brick patterns hard-deny instead of executing
53
- * silently.
54
- */
55
-
56
- authorizationGate?: AuthorizationGateConfig
57
-
58
- /**
59
- * Optional ephemeral sandbox provider. When set, drainQuery creates
60
- * a sandbox via `provider.create()` before the iteration loop and
61
- * routes filesystem / shell tool calls through it; on turn end the
62
- * SDK calls `sandbox.destroy()`. Hosts that want a per-task
63
- * container shared across supervisor + every child specialist run
64
- * pass the SAME provider instance to all of them — caching layered
65
- * on top of the provider keeps the underlying container alive.
66
- */
67
- sandboxProvider?: SandboxProvider
68
- /** See {@link QueryParams.sandboxTeardownTimeoutMs}. */
69
- sandboxTeardownTimeoutMs?: number
70
- /** See {@link QueryParams.outsideRootAccess}. Default `'refuse'`. */
71
- outsideRootAccess?: 'refuse' | 'review'
72
- /** See {@link QueryParams.sandboxEscape}. Default `'refuse'`. */
73
- sandboxEscape?: 'refuse' | 'review'
74
-
75
- /**
76
- * Optional structured-compaction config. Omitted ⇒ byte-identical run path
77
- * (no `WorkingStateManager`, compaction early-returns). Mirrors the field
78
- * on `SupervisorAgentConfig` so a child specialist can share the
79
- * supervisor's compaction settings.
80
- */
81
- compactionConfig?: CompactionConfig
82
-
83
- /**
84
- * Optional neutral working-memory seam — same contract as the field on
85
- * `SupervisorAgentConfig`. Absent ⇒ no block injected. A child specialist
86
- * sharing the supervisor's output dir passes the same provider.
87
- */
88
- workingMemoryProvider?: WorkingMemoryProvider
89
-
90
- /**
91
- * Loop-control and resilience seams, forwarded verbatim to `query()`.
92
- *
93
- * These existed on `QueryParams` and stopped there. `ReactiveAgent` is
94
- * the entry point most consumers actually use — it is what
95
- * `AgentManager` spawns and what the estate's own applications call —
96
- * and it forwarded none of them. So a per-tool deadline, a provider
97
- * retry policy, a guardrail, a stop condition: all of it was reachable
98
- * only by dropping down to `query()` and rebuilding the turn wiring by
99
- * hand. Features that a consumer cannot reach are features that do not
100
- * exist for them.
101
- *
102
- * Every field is optional and absent means exactly what it meant
103
- * before, so no existing agent changes behavior.
104
- */
105
- resumeHandler?: ResumeHandler
106
- retry?: QueryParams['retry']
107
- toolTimeoutMs?: number
108
- toolRetryBackoff?: QueryParams['toolRetryBackoff']
109
- maxToolConcurrency?: number
110
- maxToolOutputChars?: number
111
- retainedToolPreviewChars?: QueryParams['retainedToolPreviewChars']
112
- /**
113
- * Cap on the RICH channel of a single tool result, in base64 characters.
114
- * `0` or absent disables it. Separate from {@link maxToolOutputChars}:
115
- * that one bounds characters the model reads, this one bounds the image
116
- * payload beside them, which no text budget ever touched.
117
- */
118
- maxToolContentBytes?: number
119
- repairToolCall?: RepairToolCall
120
- stopWhen?: StopCondition
121
- onStepFinish?: (step: StepResult) => void
122
- prepareStep?: PrepareStepChain
123
- /**
124
- * Refuse the next model call before it is made. See {@link BeforeStep}.
125
- * A throw fails CLOSED, opposite to `prepareStep` beside it.
126
- */
127
- beforeStep?: BeforeStep
128
-
129
- structuredOutput?: StructuredOutputConfig
130
- inputGuardrails?: readonly InputGuardrailSpec[]
131
- outputGuardrails?: readonly OutputGuardrailSpec[]
132
-
133
- /**
134
- * Span this turn should hang off, when it is a delegated one. Absent for
135
- * a top-level turn, which correctly starts its own root trace.
136
- */
137
- parentSpan?: import('@opentelemetry/api').Span
138
- }
139
-
140
- export interface ReactiveAgentResult extends BaseAgentResult {
141
- toolCallCount: number
142
- }
1
+ /** @deprecated Use QueryAgentConfig and QueryAgentResult for the generic query shell. */
2
+ export type {
3
+ QueryAgentConfig as ReactiveAgentConfig,
4
+ QueryAgentResult as ReactiveAgentResult,
5
+ } from './query.js'
@@ -28,6 +28,7 @@ export interface RouteDefinition {
28
28
  matchPatterns?: string[]
29
29
  }
30
30
 
31
+ /** @deprecated Configuration for the router example; define application routing as needed. */
31
32
  export interface RouterAgentConfig extends BaseAgentConfig {
32
33
  routes: RouteDefinition[]
33
34
  provider: LLMProvider
@@ -37,6 +38,7 @@ export interface RouterAgentConfig extends BaseAgentConfig {
37
38
  maxRoutingRetries?: number
38
39
  }
39
40
 
41
+ /** @deprecated Result of the router example. */
40
42
  export interface RouterAgentResult extends BaseAgentResult {
41
43
  selectedRoute: string
42
44
  routingDecision: RoutingDecision
@@ -1,5 +1,6 @@
1
1
  import type { CompactionConfig } from '../../config/runtime.js'
2
2
  import type { SteeringChannel } from '../../runtime/query/steering.js'
3
+ import type { Toolset } from '../../toolsets/types.js'
3
4
  import type { AdvisoryConfig } from '../advisory/index.js'
4
5
  import type { AuthorizationGateConfig } from '../authorization/index.js'
5
6
  import type { ResumeHandler } from '../hitl/index.js'
@@ -8,13 +9,13 @@ import type { TaskRouterConfig } from '../router/index.js'
8
9
  import type { SandboxProvider } from '../sandbox/index.js'
9
10
  import type { Skill } from '../skills/index.js'
10
11
  import type { StructuredOutputConfig } from '../structured-output/index.js'
11
- import type { ToolRegistryContract } from '../tool/index.js'
12
12
  import type { BaseAgentConfig, BaseAgentResult } from './base.js'
13
13
  import type { AgentFactoryOptions } from './factory.js'
14
14
  import type { AgentManagerContract } from './manager.js'
15
15
  import type { SiblingFailurePolicy, TaskScheduler } from './scheduler.js'
16
16
  import type { WorkingMemoryProvider } from './working-memory.js'
17
17
 
18
+ /** @deprecated Configuration for the supervisor example; hosts own their orchestration. */
18
19
  export interface SupervisorAgentConfig extends BaseAgentConfig {
19
20
  provider: LLMProvider
20
21
 
@@ -59,7 +60,8 @@ export interface SupervisorAgentConfig extends BaseAgentConfig {
59
60
  */
60
61
  onPlanApproved?: () => Promise<void> | void
61
62
  agentManager?: AgentManagerContract
62
- tools?: ToolRegistryContract
63
+ /** Every tool this turn may see comes from one of these — see `toolsets/types.ts`. */
64
+ toolsets?: readonly Toolset[]
63
65
 
64
66
  systemPrompt: string
65
67
 
@@ -234,6 +236,7 @@ export interface AgentTaskResult {
234
236
  taskIndex: number
235
237
  }
236
238
 
239
+ /** @deprecated Result of the supervisor example. */
237
240
  export interface SupervisorAgentResult extends BaseAgentResult {
238
241
  taskResults: AgentTaskResult[]
239
242
  completedTasks: number
@@ -27,6 +27,12 @@ export type AuthorizationRule =
27
27
  | { type: 'allow_by_category'; categories: string[] }
28
28
  | { type: 'allow_by_name'; toolNames: string[] }
29
29
  | { type: 'deny_by_name'; toolNames: string[] }
30
+ | {
31
+ /** Match the owning toolset's host-assigned source id, never tool input or MCP metadata. */
32
+ type: 'by_source'
33
+ sources: string[]
34
+ decision: GateDecision
35
+ }
30
36
  | {
31
37
  /**
32
38
  * Match a regular expression against the tool's NAME, the
@@ -169,6 +175,11 @@ const DenyByNameSchema = z.object({
169
175
  type: z.literal('deny_by_name'),
170
176
  toolNames: z.array(z.string()),
171
177
  })
178
+ const BySourceSchema = z.object({
179
+ type: z.literal('by_source'),
180
+ sources: z.array(z.string().min(1)).min(1),
181
+ decision: z.enum(['allow', 'deny', 'review']),
182
+ })
172
183
  const CustomPatternSchema = z.object({
173
184
  type: z.literal('custom_pattern'),
174
185
  pattern: z.string().max(MAX_CUSTOM_PATTERN_LENGTH),
@@ -212,6 +223,7 @@ export const AuthorizationRuleSchema = z.discriminatedUnion('type', [
212
223
  AllowByCategorySchema,
213
224
  AllowByNameSchema,
214
225
  DenyByNameSchema,
226
+ BySourceSchema,
215
227
  CustomPatternSchema,
216
228
  ArgumentPatternSchema,
217
229
  AllowByTierSchema,
@@ -276,6 +276,14 @@ export interface MCPToolDefinition {
276
276
  */
277
277
  outputSchema?: MCPValueJsonSchema
278
278
  annotations?: MCPToolAnnotations
279
+ /**
280
+ * Server-defined data on the tool's own listing entry, carried opaquely:
281
+ * this client acts on none of it. `mcpToolToToolDefinition` lands it in
282
+ * `ToolDefinition.metadata` alongside the annotations that have no other
283
+ * typed home, so a host reading either does not have to reach past this
284
+ * client's own parsed shape back to the raw listing.
285
+ */
286
+ _meta?: Record<string, unknown>
279
287
  }
280
288
 
281
289
  /**
@@ -409,6 +417,24 @@ export interface MCPInitializeResult {
409
417
  protocolVersion: string
410
418
  capabilities: MCPServerCapabilities
411
419
  serverInfo: { name: string; version?: string }
420
+ /**
421
+ * The server's own account of how to use it, read off the `initialize`
422
+ * response verbatim. Only a legacy handshake carries one — the modern
423
+ * era has no `initialize` round trip, so a modern connection's result
424
+ * never populates this field (see `completeModernConnection` in
425
+ * `client.ts`, which synthesises the rest of this shape from a discover
426
+ * result that has no `instructions` concept at all).
427
+ *
428
+ * This is observability data, not steering: nothing in the SDK folds it
429
+ * into an agent's instruction set automatically. It is server-authored,
430
+ * remote-party text, and namzu already keeps that class of text out of
431
+ * instruction/system position (see `connector/mcp/prompt-adapter.ts`
432
+ * and `frameServerResult` in `connector/mcp/adapter.ts`, which frame
433
+ * server-supplied prompts and tool results as untrusted data rather
434
+ * than instructions). A host may display or log this field; it should
435
+ * not read it into a prompt without the same untrusted framing.
436
+ */
437
+ instructions?: string
412
438
  }
413
439
 
414
440
  export type MCPConnectionStatus = 'disconnected' | 'connecting' | 'connected' | 'error'
@@ -461,6 +487,12 @@ export interface MCPClientState {
461
487
  status: MCPConnectionStatus
462
488
  serverInfo?: { name: string; version?: string }
463
489
  serverCapabilities?: MCPServerCapabilities
490
+ /**
491
+ * The server's `initialize` instructions, captured verbatim. See
492
+ * {@link MCPInitializeResult.instructions} — legacy handshakes only,
493
+ * observability only, never auto-folded into an agent's instructions.
494
+ */
495
+ serverInstructions?: string
464
496
  connectedAt?: number
465
497
  error?: string
466
498
  }
@@ -20,6 +20,21 @@ import { ProviderError, classifyProviderError } from '../provider/errors.js'
20
20
  export type NamzuErrorCode =
21
21
  /** The turn was set up wrong — missing model, contradictory options. Retrying cannot help. */
22
22
  | 'invalid_config'
23
+ /**
24
+ * A caller's cached prior messages disagree with this session's log. A
25
+ * message carrying an id disagrees when the log recorded it under that id
26
+ * with different content (`'edited'`) or never recorded that id at all
27
+ * (`'foreign'`); `details.messageId` names it. A message with no id
28
+ * disagrees when the caller's whole no-id cache does not align as a
29
+ * contiguous run ending the log's own fold — the shape a host's cache
30
+ * always has when it is exactly the fold plus new messages appended after
31
+ * it — yet some of it still matches the fold by value out of place
32
+ * (`'unaligned'`; no `messageId`, since none of it carries one). Retrying
33
+ * with the same messages cannot help; the host must pass only its new
34
+ * messages, or re-read history from the session instead of reusing a
35
+ * cached copy.
36
+ */
37
+ | 'stale_cached_history'
23
38
  /** The upstream model call failed. `details.providerCode` narrows it. */
24
39
  | 'provider_error'
25
40
  /** A tool could not be executed or resolved. */
@@ -135,6 +135,19 @@ export interface ToolCallSummary {
135
135
  * approve it on their own. A `deny` rule still refuses it outright.
136
136
  */
137
137
  escalation?: ToolCallEscalation
138
+ /**
139
+ * The tool itself declared that this exact call always needs a person's
140
+ * approval (`ToolDefinition.requiresApproval`), regardless of the host's
141
+ * rules or the turn's mode.
142
+ *
143
+ * Computed once, when the batch is prepared for review, the same way
144
+ * {@link isDestructive} is — so it survives a gate `allow` rule (the
145
+ * decision is forced back to `review` before the rule can settle
146
+ * anything) and is asked about, or refused unattended, in every mode,
147
+ * like {@link escalation}. No grant, skill grant or `accept-edits`
148
+ * exemption covers it, and a `deny` rule still wins.
149
+ */
150
+ requiresApproval?: true
138
151
  /**
139
152
  * Present when a skill loaded earlier in this turn pre-approved this call
140
153
  * through its `allowed-tools`, and nothing stronger stands in the way.
@@ -165,6 +178,30 @@ export interface ToolCallEscalation {
165
178
  * `confirmedEscalations`.
166
179
  */
167
180
  sandboxEscape?: true
181
+ /**
182
+ * Why a command's own program name — where `programPositions` (the SDK's
183
+ * shared resolver for where a command line actually execs a program;
184
+ * `packages/sdk/src/authorization/program.ts`) says one is actually
185
+ * exec'd, after unwrapping any `sudo`/`env`/`nice`/`timeout`/…
186
+ * re-exec chain, and independently for each `find -exec` clause — is not
187
+ * knowable ahead of running it: the word itself is decided at runtime
188
+ * (`$(echo rm) -rf x`, `env $(echo git) push`, `"$HOME"/bin/tool`), an
189
+ * option on a wrapper this does not recognise stood in the way, the
190
+ * position is inherently unreadable (`eval`/`source`/`.`, an `xargs`
191
+ * program that is a shell or a `{}` placeholder), or an earlier command
192
+ * set `PATH`, `LD_PRELOAD`, `LD_LIBRARY_PATH`, `BASH_ENV`, `ENV` or `IFS`
193
+ * so even a literal name here cannot be trusted to resolve to what its
194
+ * text says.
195
+ *
196
+ * No rule can be trusted to have matched a program whose name never
197
+ * appears as such anywhere in the call's own text: `git push.*` does not
198
+ * see `$(echo git) push`, and neither `env $(echo git) push` nor
199
+ * `timeout 5 $(echo git) push` puts the program right after the wrapper's
200
+ * own name. Present only for a tool that declares `commandArgument`.
201
+ * Argument-level expansion alone does not set this — only a position
202
+ * where a program name is actually decided.
203
+ */
204
+ unknownProgram?: string
168
205
  }
169
206
 
170
207
  export interface ToolModification {
@@ -175,8 +212,28 @@ export interface ToolModification {
175
212
 
176
213
  export interface UserQuestionOption {
177
214
  id: string
215
+ /**
216
+ * The label as shown and as the answer quotes it. `ask_user_question`
217
+ * takes out of it a recommendation marker the model wrote out of habit:
218
+ * "(Recommended)" on any option, and "(Önerilen)", "(Empfohlen)", … on
219
+ * a recommended option, when every option whose label ends in a
220
+ * parenthesised group is recommended, did not end in "(Recommended)", and
221
+ * ends in that same one. A group that differs between options, or is left
222
+ * before "(Recommended)" ("Cloud (AWS) (Recommended)" → "Cloud (AWS)"),
223
+ * is kept. The recommendation is `recommended`, so a host never has to
224
+ * parse a label to find it. Apart from surrounding spaces and
225
+ * "(Recommended)", an option that is not recommended keeps its label as
226
+ * written.
227
+ */
178
228
  label: string
179
229
  description?: string
230
+ /**
231
+ * The model recommends this option: it set `recommended: true` on it, or
232
+ * left the flag out and ended the label in "(Recommended)". A host marks
233
+ * it (a badge, an emphasis) rather than relying on the label to say so.
234
+ * Absent, not `false`, on every other option.
235
+ */
236
+ recommended?: boolean
180
237
  }
181
238
 
182
239
  /**
@@ -1,4 +1,4 @@
1
- import type { GoalId } from '../ids/index.js'
1
+ import type { GoalId, MessageId } from '../ids/index.js'
2
2
 
3
3
  export type MessageRole = 'system' | 'user' | 'assistant' | 'tool'
4
4
 
@@ -105,7 +105,7 @@ export interface Citation {
105
105
  * An attachment whose bytes are held by a store, not by the message.
106
106
  *
107
107
  * Structural rather than an import from `store/attachment`, so this types
108
- * module keeps depending on nothing — the same reasoning `ToolRegistryRef`
108
+ * module keeps depending on nothing — the same reasoning `ToolsView`
109
109
  * gives. `store/attachment` owns the resolution and its refusals; this is
110
110
  * the shape a message may carry.
111
111
  *
@@ -144,18 +144,106 @@ export interface ToolCall {
144
144
  * JSON payload, while provider/runtime recovery state lives here.
145
145
  */
146
146
  metadata?: {
147
+ /**
148
+ * The streamed arguments could not be read, and `function.arguments`
149
+ * was normalized to `"{}"`. Set for every unreadable call, cut off or
150
+ * malformed alike: the name predates that distinction, and
151
+ * {@link inputError} is what says which it was.
152
+ */
147
153
  inputTruncated?: boolean
148
154
  /**
149
- * The partial argument buffer as it arrived, when the stream cut off
150
- * mid-JSON. `function.arguments` is normalized to `"{}"` in that
151
- * case so tool args stay clean, which leaves this as the only record
152
- * of what the model was actually saying — and a `repairToolCall`
153
- * hook has nothing to repair without it.
155
+ * The argument buffer as it arrived, when it could not be read.
156
+ * `function.arguments` is normalized to `"{}"` in that case so tool
157
+ * args stay clean, which leaves this as the only record of what the
158
+ * model was actually saying — and a `repairToolCall` hook has nothing
159
+ * to repair without it.
154
160
  */
155
161
  partialArguments?: string
162
+ /**
163
+ * Why the arguments could not be read. Present with
164
+ * {@link inputTruncated} on every call the runtime marked; absent on a
165
+ * call marked by an older runtime, which recorded only the flag.
166
+ */
167
+ inputError?: ToolInputError
156
168
  }
157
169
  }
158
170
 
171
+ /**
172
+ * Why a streamed tool call's arguments could not be read. See
173
+ * {@link ToolInputError}.
174
+ */
175
+ export type ToolInputErrorReason = 'truncated' | 'malformed'
176
+
177
+ /**
178
+ * A tool call whose streamed arguments did not parse as JSON, and why.
179
+ *
180
+ * An output limit, a content filter or a dropped stream stops a response
181
+ * wherever it is, so only the call the response was streaming at that moment
182
+ * can have been cut off: the last one, with nothing the model streamed after
183
+ * it. For that call the finish reason decides, never the text:
184
+ *
185
+ * - `truncated` — the response stopped before the model closed the
186
+ * arguments. It reached its output limit (`finishReason: 'length'`), a
187
+ * content filter stopped it (`'content_filter'`), or the stream ended
188
+ * without reporting a finish reason at all.
189
+ * - `malformed` — the response finished normally (`'stop'` or
190
+ * `'tool_calls'`) and the arguments still were not valid JSON.
191
+ *
192
+ * Every other unreadable call is `malformed`, whatever the finish reason:
193
+ * the model moved on to more text, reasoning or another call, so it had
194
+ * finished writing this one.
195
+ */
196
+ export interface ToolInputError {
197
+ readonly reason: ToolInputErrorReason
198
+ /** How the response ended, as the provider reported it. Absent when the stream reported nothing. */
199
+ readonly finishReason?: 'stop' | 'tool_calls' | 'length' | 'content_filter'
200
+ /**
201
+ * `'context_window'` when a `'length'` finish was the model's context
202
+ * window rather than its output token limit (`StreamChunk.finishDetail`).
203
+ */
204
+ readonly finishDetail?: 'context_window'
205
+ /** The JSON parser's own message. */
206
+ readonly parseError: string
207
+ /**
208
+ * Zero-based character offset in the arguments where parsing failed: the
209
+ * first character that cannot continue valid JSON, or their length when
210
+ * the text simply ended. Found by scanning the arguments, so it is there
211
+ * when {@link parseError} names no position, as for a bare `True` or
212
+ * `None`.
213
+ */
214
+ readonly offset?: number
215
+ /** How many characters of arguments arrived. */
216
+ readonly length: number
217
+ /**
218
+ * How many characters the response streamed before this call began: its
219
+ * text, its visible reasoning and the arguments of earlier tool calls.
220
+ * Text a driver adds of its own is not counted. For a `truncated` call,
221
+ * which nothing followed, this plus {@link length} is everything the
222
+ * response streamed as text. It is not everything the response spent:
223
+ * reasoning a provider does not stream (encrypted, summarised, or only
224
+ * counted) uses the output limit too, and {@link outputTokens} and
225
+ * {@link reasoningTokens} are what show it.
226
+ */
227
+ readonly precedingLength: number
228
+ /**
229
+ * The output tokens the whole response used, reasoning included, as the
230
+ * provider reported them when it ended. Present on a `truncated` call when
231
+ * the provider reported any.
232
+ *
233
+ * After an output limit it says whether the visible text accounts for the
234
+ * limit: when most of the output went to reasoning, or to anything else
235
+ * the stream did not carry, the call is not what filled the response, and
236
+ * the model is told so rather than told to shrink the call.
237
+ */
238
+ readonly outputTokens?: number
239
+ /**
240
+ * Of {@link outputTokens}, the tokens the provider says went to reasoning.
241
+ * Present only when the provider reports that split; absent means unknown,
242
+ * not zero.
243
+ */
244
+ readonly reasoningTokens?: number
245
+ }
246
+
159
247
  export interface BaseMessage {
160
248
  /**
161
249
  * Widened from `string | null` so `ToolMessage` can carry content
@@ -167,6 +255,22 @@ export interface BaseMessage {
167
255
  content: string | null | readonly ToolResultBlock[]
168
256
  timestamp?: number
169
257
  cacheHint?: CacheHint
258
+ /**
259
+ * The id of the durable `message` record this message was written as, or
260
+ * a `message_replaced` record's `targetMessageId` when a guardrail,
261
+ * review or structured-output override replaced its content in place.
262
+ * Absent means the kernel has not recorded this exact message: a host
263
+ * just constructed it, or it is a compaction's own summary (a bulk
264
+ * spilled or inline array, which carries no per-message id — see
265
+ * `docs/sdk/session-log.md`).
266
+ *
267
+ * Set by the kernel alone, never by a caller: `query()` stamps every
268
+ * message it folds from the session log or records fresh, on `Turn.messages`,
269
+ * on the messages `onConversationMessages` reports, and on a checkpoint's
270
+ * restored messages. A caller that mints its own id here gets `conflict`
271
+ * on the next turn — this log never recorded it under that name.
272
+ */
273
+ readonly id?: MessageId
170
274
  /**
171
275
  * Exempt this message from compaction and from tool-result clearing.
172
276
  *
@@ -248,6 +352,8 @@ export const RUNTIME_CONTEXT_MESSAGE_KINDS = [
248
352
  'auto-continuation',
249
353
  'job-exit',
250
354
  'limit-finalization',
355
+ 'peer-message',
356
+ 'peer-notice',
251
357
  'repeat-call',
252
358
  'steering',
253
359
  'step-context',
@@ -445,6 +551,13 @@ export type ToolResultBlock =
445
551
  */
446
552
  export type ToolResultContent = string | readonly ToolResultBlock[]
447
553
 
554
+ /** A schema reveal bound to the source that contributed that exact tool. */
555
+ export interface ToolRevealReceipt {
556
+ readonly name: string
557
+ readonly sourceId: string
558
+ readonly sourceKind: import('../toolset/index.js').ToolSourceKind
559
+ }
560
+
448
561
  export interface ToolMessage extends BaseMessage {
449
562
  role: 'tool'
450
563
  content: ToolResultContent
@@ -460,6 +573,19 @@ export interface ToolMessage extends BaseMessage {
460
573
  * fired and namzu relied on prose formatting to convey failure.
461
574
  */
462
575
  isError?: boolean
576
+ /**
577
+ * Source-bound receipts for deferred schemas loaded by a successful
578
+ * {@link ToolResult.reveals} (`types/tool/index.ts`). The executor writes
579
+ * these onto the message it built from that result.
580
+ *
581
+ * This is what `ToolManager.availability` (`toolsets/manager.ts`) scans
582
+ * the post-compaction history for, instead of a mutable activation map:
583
+ * a deferred tool is active once a matching receipt appears after the
584
+ * last compaction summary and the host still reports it ready. Persisted
585
+ * like any other message field — a session log or checkpoint already
586
+ * carries this too, with nothing extra to serialize.
587
+ */
588
+ revealedTools?: readonly ToolRevealReceipt[]
463
589
  }
464
590
 
465
591
  export type Message = SystemMessage | UserMessage | AssistantMessage | ToolMessage
@@ -539,12 +665,14 @@ export function createToolMessage(
539
665
  content: ToolResultContent,
540
666
  toolCallId: string,
541
667
  isError?: boolean,
668
+ revealedTools?: readonly ToolRevealReceipt[],
542
669
  ): ToolMessage {
543
670
  return {
544
671
  role: 'tool',
545
672
  content,
546
673
  toolCallId,
547
674
  ...(isError !== undefined ? { isError } : {}),
675
+ ...(revealedTools && revealedTools.length > 0 ? { revealedTools } : {}),
548
676
  timestamp: Date.now(),
549
677
  }
550
678
  }