@namzu/sdk 45.1.0 → 48.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. package/CHANGELOG.md +436 -8
  2. package/README.md +7 -8
  3. package/dist/advisory/history.d.ts.map +1 -1
  4. package/dist/advisory/history.js +21 -1
  5. package/dist/advisory/history.js.map +1 -1
  6. package/dist/advisory/index.d.ts +1 -1
  7. package/dist/advisory/index.d.ts.map +1 -1
  8. package/dist/advisory/index.js +1 -1
  9. package/dist/advisory/index.js.map +1 -1
  10. package/dist/advisory/registry.d.ts +17 -0
  11. package/dist/advisory/registry.d.ts.map +1 -1
  12. package/dist/advisory/registry.js +26 -0
  13. package/dist/advisory/registry.js.map +1 -1
  14. package/dist/agents/PipelineAgent.d.ts +2 -46
  15. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  16. package/dist/agents/PipelineAgent.js +2 -242
  17. package/dist/agents/PipelineAgent.js.map +1 -1
  18. package/dist/agents/QueryAgent.d.ts +21 -0
  19. package/dist/agents/QueryAgent.d.ts.map +1 -0
  20. package/dist/agents/QueryAgent.js +214 -0
  21. package/dist/agents/QueryAgent.js.map +1 -0
  22. package/dist/agents/ReactiveAgent.d.ts +4 -16
  23. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  24. package/dist/agents/ReactiveAgent.js +4 -183
  25. package/dist/agents/ReactiveAgent.js.map +1 -1
  26. package/dist/agents/RouterAgent.d.ts +2 -20
  27. package/dist/agents/RouterAgent.d.ts.map +1 -1
  28. package/dist/agents/RouterAgent.js +2 -266
  29. package/dist/agents/RouterAgent.js.map +1 -1
  30. package/dist/agents/SupervisorAgent.d.ts +3 -43
  31. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  32. package/dist/agents/SupervisorAgent.js +3 -418
  33. package/dist/agents/SupervisorAgent.js.map +1 -1
  34. package/dist/agents/defineAgent.d.ts +2 -1
  35. package/dist/agents/defineAgent.d.ts.map +1 -1
  36. package/dist/agents/defineAgent.js +6 -1
  37. package/dist/agents/defineAgent.js.map +1 -1
  38. package/dist/agents/examples/PipelineAgent.d.ts +46 -0
  39. package/dist/agents/examples/PipelineAgent.d.ts.map +1 -0
  40. package/dist/agents/examples/PipelineAgent.js +242 -0
  41. package/dist/agents/examples/PipelineAgent.js.map +1 -0
  42. package/dist/agents/examples/RouterAgent.d.ts +22 -0
  43. package/dist/agents/examples/RouterAgent.d.ts.map +1 -0
  44. package/dist/agents/examples/RouterAgent.js +268 -0
  45. package/dist/agents/examples/RouterAgent.js.map +1 -0
  46. package/dist/agents/examples/SupervisorAgent.d.ts +45 -0
  47. package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -0
  48. package/dist/agents/examples/SupervisorAgent.js +406 -0
  49. package/dist/agents/examples/SupervisorAgent.js.map +1 -0
  50. package/dist/agents/explore.d.ts +6 -3
  51. package/dist/agents/explore.d.ts.map +1 -1
  52. package/dist/agents/explore.js +6 -3
  53. package/dist/agents/explore.js.map +1 -1
  54. package/dist/agents/forward-options.d.ts +11 -0
  55. package/dist/agents/forward-options.d.ts.map +1 -0
  56. package/dist/agents/forward-options.js +15 -0
  57. package/dist/agents/forward-options.js.map +1 -0
  58. package/dist/agents/index.d.ts +1 -0
  59. package/dist/agents/index.d.ts.map +1 -1
  60. package/dist/agents/index.js +2 -0
  61. package/dist/agents/index.js.map +1 -1
  62. package/dist/agents/runAgent.d.ts +19 -8
  63. package/dist/agents/runAgent.d.ts.map +1 -1
  64. package/dist/agents/runAgent.js +99 -29
  65. package/dist/agents/runAgent.js.map +1 -1
  66. package/dist/authorization/command-line.d.ts +2 -0
  67. package/dist/authorization/command-line.d.ts.map +1 -1
  68. package/dist/authorization/command-line.js +2 -2
  69. package/dist/authorization/command-line.js.map +1 -1
  70. package/dist/authorization/gate.d.ts +13 -2
  71. package/dist/authorization/gate.d.ts.map +1 -1
  72. package/dist/authorization/gate.js +37 -5
  73. package/dist/authorization/gate.js.map +1 -1
  74. package/dist/authorization/program.d.ts +151 -0
  75. package/dist/authorization/program.d.ts.map +1 -0
  76. package/dist/authorization/program.js +713 -0
  77. package/dist/authorization/program.js.map +1 -0
  78. package/dist/authorization/reexec-wrapper.d.ts +106 -0
  79. package/dist/authorization/reexec-wrapper.d.ts.map +1 -0
  80. package/dist/authorization/reexec-wrapper.js +532 -0
  81. package/dist/authorization/reexec-wrapper.js.map +1 -0
  82. package/dist/authorization/rules.d.ts +9 -0
  83. package/dist/authorization/rules.d.ts.map +1 -1
  84. package/dist/authorization/rules.js +27 -1
  85. package/dist/authorization/rules.js.map +1 -1
  86. package/dist/authorization/shell-lexer.d.ts +39 -0
  87. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  88. package/dist/authorization/shell-lexer.js +113 -69
  89. package/dist/authorization/shell-lexer.js.map +1 -1
  90. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  91. package/dist/bridge/sse/mapper.js +6 -0
  92. package/dist/bridge/sse/mapper.js.map +1 -1
  93. package/dist/capabilities/index.d.ts +54 -0
  94. package/dist/capabilities/index.d.ts.map +1 -0
  95. package/dist/capabilities/index.js +92 -0
  96. package/dist/capabilities/index.js.map +1 -0
  97. package/dist/config/registry.d.ts +2 -1
  98. package/dist/config/registry.d.ts.map +1 -1
  99. package/dist/config/registry.js +3 -2
  100. package/dist/config/registry.js.map +1 -1
  101. package/dist/connector/index.d.ts +4 -4
  102. package/dist/connector/index.d.ts.map +1 -1
  103. package/dist/connector/index.js +3 -3
  104. package/dist/connector/index.js.map +1 -1
  105. package/dist/connector/mcp/adapter.d.ts +16 -1
  106. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  107. package/dist/connector/mcp/adapter.js +60 -4
  108. package/dist/connector/mcp/adapter.js.map +1 -1
  109. package/dist/connector/mcp/client.d.ts +13 -4
  110. package/dist/connector/mcp/client.d.ts.map +1 -1
  111. package/dist/connector/mcp/client.js +20 -3
  112. package/dist/connector/mcp/client.js.map +1 -1
  113. package/dist/connector/mcp/discovery.d.ts +24 -1
  114. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  115. package/dist/connector/mcp/discovery.js +44 -0
  116. package/dist/connector/mcp/discovery.js.map +1 -1
  117. package/dist/connector/mcp/index.d.ts +2 -0
  118. package/dist/connector/mcp/index.d.ts.map +1 -1
  119. package/dist/connector/mcp/index.js +11 -0
  120. package/dist/connector/mcp/index.js.map +1 -1
  121. package/dist/connector/mcp/mcp-toolset.d.ts +133 -0
  122. package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -0
  123. package/dist/connector/mcp/mcp-toolset.js +399 -0
  124. package/dist/connector/mcp/mcp-toolset.js.map +1 -0
  125. package/dist/connector/tools/index.d.ts +2 -2
  126. package/dist/connector/tools/index.d.ts.map +1 -1
  127. package/dist/connector/tools/index.js +1 -1
  128. package/dist/connector/tools/index.js.map +1 -1
  129. package/dist/connector/tools/router.d.ts +15 -13
  130. package/dist/connector/tools/router.d.ts.map +1 -1
  131. package/dist/connector/tools/router.js +30 -51
  132. package/dist/connector/tools/router.js.map +1 -1
  133. package/dist/contracts/a2a.d.ts +2 -2
  134. package/dist/directory/derive-supervisor.d.ts +2 -2
  135. package/dist/directory/derive-supervisor.d.ts.map +1 -1
  136. package/dist/directory/derive-supervisor.js +6 -7
  137. package/dist/directory/derive-supervisor.js.map +1 -1
  138. package/dist/directory/derive.d.ts.map +1 -1
  139. package/dist/directory/derive.js +5 -5
  140. package/dist/directory/derive.js.map +1 -1
  141. package/dist/execution/code-runtime/types.d.ts +2 -2
  142. package/dist/execution/code-runtime/types.js +1 -1
  143. package/dist/invariants/index.d.ts +2 -1
  144. package/dist/invariants/index.d.ts.map +1 -1
  145. package/dist/invariants/index.js +3 -2
  146. package/dist/invariants/index.js.map +1 -1
  147. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  148. package/dist/manager/agent/lifecycle.js +9 -0
  149. package/dist/manager/agent/lifecycle.js.map +1 -1
  150. package/dist/manager/connector/environment.d.ts +6 -0
  151. package/dist/manager/connector/environment.d.ts.map +1 -1
  152. package/dist/manager/connector/environment.js +11 -4
  153. package/dist/manager/connector/environment.js.map +1 -1
  154. package/dist/manager/connector/index.d.ts +2 -2
  155. package/dist/manager/connector/index.d.ts.map +1 -1
  156. package/dist/manager/connector/index.js +2 -2
  157. package/dist/manager/connector/index.js.map +1 -1
  158. package/dist/manager/connector/tenant.d.ts +6 -0
  159. package/dist/manager/connector/tenant.d.ts.map +1 -1
  160. package/dist/manager/connector/tenant.js +11 -4
  161. package/dist/manager/connector/tenant.js.map +1 -1
  162. package/dist/manager/index.d.ts +2 -2
  163. package/dist/manager/index.d.ts.map +1 -1
  164. package/dist/manager/index.js +2 -2
  165. package/dist/manager/index.js.map +1 -1
  166. package/dist/manager/resident/learning-observation.d.ts +4 -4
  167. package/dist/manager/resident/learning.d.ts +36 -36
  168. package/dist/manager/session/attribution.d.ts +22 -0
  169. package/dist/manager/session/attribution.d.ts.map +1 -0
  170. package/dist/manager/session/attribution.js +64 -0
  171. package/dist/manager/session/attribution.js.map +1 -0
  172. package/dist/manager/session/turn-recorder.d.ts +14 -0
  173. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  174. package/dist/manager/session/turn-recorder.js +208 -55
  175. package/dist/manager/session/turn-recorder.js.map +1 -1
  176. package/dist/peers/address.d.ts +36 -0
  177. package/dist/peers/address.d.ts.map +1 -0
  178. package/dist/peers/address.js +52 -0
  179. package/dist/peers/address.js.map +1 -0
  180. package/dist/peers/client.d.ts +47 -0
  181. package/dist/peers/client.d.ts.map +1 -0
  182. package/dist/peers/client.js +132 -0
  183. package/dist/peers/client.js.map +1 -0
  184. package/dist/peers/dir.d.ts +88 -0
  185. package/dist/peers/dir.d.ts.map +1 -0
  186. package/dist/peers/dir.js +139 -0
  187. package/dist/peers/dir.js.map +1 -0
  188. package/dist/peers/endpoint.d.ts +144 -0
  189. package/dist/peers/endpoint.d.ts.map +1 -0
  190. package/dist/peers/endpoint.js +420 -0
  191. package/dist/peers/endpoint.js.map +1 -0
  192. package/dist/peers/envelope.d.ts +42 -0
  193. package/dist/peers/envelope.d.ts.map +1 -0
  194. package/dist/peers/envelope.js +110 -0
  195. package/dist/peers/envelope.js.map +1 -0
  196. package/dist/peers/index.d.ts +30 -0
  197. package/dist/peers/index.d.ts.map +1 -0
  198. package/dist/peers/index.js +22 -0
  199. package/dist/peers/index.js.map +1 -0
  200. package/dist/peers/protocol.d.ts +645 -0
  201. package/dist/peers/protocol.d.ts.map +1 -0
  202. package/dist/peers/protocol.js +151 -0
  203. package/dist/peers/protocol.js.map +1 -0
  204. package/dist/peers/record.d.ts +71 -0
  205. package/dist/peers/record.d.ts.map +1 -0
  206. package/dist/peers/record.js +45 -0
  207. package/dist/peers/record.js.map +1 -0
  208. package/dist/peers/registry.d.ts +54 -0
  209. package/dist/peers/registry.d.ts.map +1 -0
  210. package/dist/peers/registry.js +213 -0
  211. package/dist/peers/registry.js.map +1 -0
  212. package/dist/plugin/define.d.ts +24 -0
  213. package/dist/plugin/define.d.ts.map +1 -0
  214. package/dist/plugin/define.js +42 -0
  215. package/dist/plugin/define.js.map +1 -0
  216. package/dist/plugin/index.d.ts +2 -0
  217. package/dist/plugin/index.d.ts.map +1 -1
  218. package/dist/plugin/index.js +1 -0
  219. package/dist/plugin/index.js.map +1 -1
  220. package/dist/plugin/lifecycle.d.ts +27 -3
  221. package/dist/plugin/lifecycle.d.ts.map +1 -1
  222. package/dist/plugin/lifecycle.js +242 -92
  223. package/dist/plugin/lifecycle.js.map +1 -1
  224. package/dist/plugin/resolver.d.ts +2 -2
  225. package/dist/plugin/resolver.d.ts.map +1 -1
  226. package/dist/plugin/resolver.js.map +1 -1
  227. package/dist/plugin/shell-hook.d.ts.map +1 -1
  228. package/dist/plugin/shell-hook.js +17 -3
  229. package/dist/plugin/shell-hook.js.map +1 -1
  230. package/dist/pricing/catalogue.generated.d.ts.map +1 -1
  231. package/dist/pricing/catalogue.generated.js +28 -4
  232. package/dist/pricing/catalogue.generated.js.map +1 -1
  233. package/dist/probe/errors.d.ts +2 -1
  234. package/dist/probe/errors.d.ts.map +1 -1
  235. package/dist/probe/errors.js +3 -2
  236. package/dist/probe/errors.js.map +1 -1
  237. package/dist/prompt/coding-agent-doctrine.d.ts +18 -7
  238. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  239. package/dist/prompt/coding-agent-doctrine.js +11 -6
  240. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  241. package/dist/prompt/contributions.d.ts +4 -1
  242. package/dist/prompt/contributions.d.ts.map +1 -1
  243. package/dist/prompt/contributions.js +7 -2
  244. package/dist/prompt/contributions.js.map +1 -1
  245. package/dist/prompt/index.d.ts +1 -1
  246. package/dist/prompt/index.d.ts.map +1 -1
  247. package/dist/prompt/index.js +1 -1
  248. package/dist/prompt/index.js.map +1 -1
  249. package/dist/provider/collect-chat-completion.d.ts +6 -1
  250. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  251. package/dist/provider/collect-chat-completion.js +88 -10
  252. package/dist/provider/collect-chat-completion.js.map +1 -1
  253. package/dist/provider/mock.d.ts.map +1 -1
  254. package/dist/provider/mock.js +23 -6
  255. package/dist/provider/mock.js.map +1 -1
  256. package/dist/provider/registry.d.ts +2 -1
  257. package/dist/provider/registry.d.ts.map +1 -1
  258. package/dist/provider/registry.js +3 -2
  259. package/dist/provider/registry.js.map +1 -1
  260. package/dist/provider/tool-call-framing.d.ts +164 -0
  261. package/dist/provider/tool-call-framing.d.ts.map +1 -0
  262. package/dist/provider/tool-call-framing.js +163 -0
  263. package/dist/provider/tool-call-framing.js.map +1 -0
  264. package/dist/public-runtime.d.ts +27 -14
  265. package/dist/public-runtime.d.ts.map +1 -1
  266. package/dist/public-runtime.js +49 -11
  267. package/dist/public-runtime.js.map +1 -1
  268. package/dist/public-tools.d.ts +9 -6
  269. package/dist/public-tools.d.ts.map +1 -1
  270. package/dist/public-tools.js +13 -5
  271. package/dist/public-tools.js.map +1 -1
  272. package/dist/public-types.d.ts +16 -5
  273. package/dist/public-types.d.ts.map +1 -1
  274. package/dist/read-model/registry.d.ts +2 -1
  275. package/dist/read-model/registry.d.ts.map +1 -1
  276. package/dist/read-model/registry.js +3 -2
  277. package/dist/read-model/registry.js.map +1 -1
  278. package/dist/registry/ManagedRegistry.d.ts +30 -0
  279. package/dist/registry/ManagedRegistry.d.ts.map +1 -1
  280. package/dist/registry/ManagedRegistry.js +45 -6
  281. package/dist/registry/ManagedRegistry.js.map +1 -1
  282. package/dist/registry/collision.d.ts +57 -0
  283. package/dist/registry/collision.d.ts.map +1 -0
  284. package/dist/registry/collision.js +41 -0
  285. package/dist/registry/collision.js.map +1 -0
  286. package/dist/registry/command/index.d.ts +5 -3
  287. package/dist/registry/command/index.d.ts.map +1 -1
  288. package/dist/registry/command/index.js +6 -4
  289. package/dist/registry/command/index.js.map +1 -1
  290. package/dist/registry/index.d.ts +3 -4
  291. package/dist/registry/index.d.ts.map +1 -1
  292. package/dist/registry/index.js +2 -2
  293. package/dist/registry/index.js.map +1 -1
  294. package/dist/registry/plugin/index.d.ts.map +1 -1
  295. package/dist/registry/plugin/index.js +14 -1
  296. package/dist/registry/plugin/index.js.map +1 -1
  297. package/dist/registry/tool/callable.d.ts +22 -0
  298. package/dist/registry/tool/callable.d.ts.map +1 -0
  299. package/dist/registry/tool/callable.js +28 -0
  300. package/dist/registry/tool/callable.js.map +1 -0
  301. package/dist/registry/tool/execute.d.ts +14 -77
  302. package/dist/registry/tool/execute.d.ts.map +1 -1
  303. package/dist/registry/tool/execute.js +15 -720
  304. package/dist/registry/tool/execute.js.map +1 -1
  305. package/dist/registry/tool/portable.d.ts +25 -0
  306. package/dist/registry/tool/portable.d.ts.map +1 -1
  307. package/dist/registry/tool/portable.js +50 -0
  308. package/dist/registry/tool/portable.js.map +1 -1
  309. package/dist/registry/tool/presentation.d.ts +6 -5
  310. package/dist/registry/tool/presentation.d.ts.map +1 -1
  311. package/dist/registry/tool/presentation.js +3 -3
  312. package/dist/registry/tool/presentation.js.map +1 -1
  313. package/dist/runtime/bidi/session.d.ts +5 -4
  314. package/dist/runtime/bidi/session.d.ts.map +1 -1
  315. package/dist/runtime/bidi/session.js +18 -1
  316. package/dist/runtime/bidi/session.js.map +1 -1
  317. package/dist/runtime/query/executor/tool-call-admission.d.ts +82 -13
  318. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  319. package/dist/runtime/query/executor/tool-call-admission.js +227 -17
  320. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  321. package/dist/runtime/query/executor.d.ts +37 -5
  322. package/dist/runtime/query/executor.d.ts.map +1 -1
  323. package/dist/runtime/query/executor.js +103 -14
  324. package/dist/runtime/query/executor.js.map +1 -1
  325. package/dist/runtime/query/file-evidence-replay.d.ts +1 -1
  326. package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -1
  327. package/dist/runtime/query/file-evidence-replay.js +8 -7
  328. package/dist/runtime/query/file-evidence-replay.js.map +1 -1
  329. package/dist/runtime/query/fork/prepare.d.ts +4 -1
  330. package/dist/runtime/query/fork/prepare.d.ts.map +1 -1
  331. package/dist/runtime/query/fork/prepare.js +4 -0
  332. package/dist/runtime/query/fork/prepare.js.map +1 -1
  333. package/dist/runtime/query/guardrail-presets.d.ts +4 -3
  334. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
  335. package/dist/runtime/query/guardrail-presets.js +4 -3
  336. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  337. package/dist/runtime/query/index.d.ts +23 -10
  338. package/dist/runtime/query/index.d.ts.map +1 -1
  339. package/dist/runtime/query/index.js +149 -70
  340. package/dist/runtime/query/index.js.map +1 -1
  341. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  342. package/dist/runtime/query/iteration/index.js +8 -1
  343. package/dist/runtime/query/iteration/index.js.map +1 -1
  344. package/dist/runtime/query/iteration/phases/compaction.js +1 -1
  345. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  346. package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
  347. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  348. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  349. package/dist/runtime/query/iteration/phases/tool-review.js +55 -2
  350. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  351. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  352. package/dist/runtime/query/iteration/stream-turn.js +342 -116
  353. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  354. package/dist/runtime/query/iteration/tool-input.d.ts +79 -0
  355. package/dist/runtime/query/iteration/tool-input.d.ts.map +1 -0
  356. package/dist/runtime/query/iteration/tool-input.js +291 -0
  357. package/dist/runtime/query/iteration/tool-input.js.map +1 -0
  358. package/dist/runtime/query/observation-context.d.ts +2 -2
  359. package/dist/runtime/query/observation-context.d.ts.map +1 -1
  360. package/dist/runtime/query/observation-context.js.map +1 -1
  361. package/dist/runtime/query/prelude-lease.d.ts +18 -0
  362. package/dist/runtime/query/prelude-lease.d.ts.map +1 -0
  363. package/dist/runtime/query/prelude-lease.js +121 -0
  364. package/dist/runtime/query/prelude-lease.js.map +1 -0
  365. package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
  366. package/dist/runtime/query/prepare-turn.js +386 -187
  367. package/dist/runtime/query/prepare-turn.js.map +1 -1
  368. package/dist/runtime/query/prompt-cache.d.ts +2 -2
  369. package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
  370. package/dist/runtime/query/prompt.d.ts +2 -2
  371. package/dist/runtime/query/prompt.d.ts.map +1 -1
  372. package/dist/runtime/query/prompt.js +1 -1
  373. package/dist/runtime/query/prompt.js.map +1 -1
  374. package/dist/runtime/query/resume-session.d.ts.map +1 -1
  375. package/dist/runtime/query/resume-session.js +37 -2
  376. package/dist/runtime/query/resume-session.js.map +1 -1
  377. package/dist/runtime/query/review-policy.d.ts +65 -3
  378. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  379. package/dist/runtime/query/review-policy.js +143 -22
  380. package/dist/runtime/query/review-policy.js.map +1 -1
  381. package/dist/runtime/query/tooling.d.ts +3 -2
  382. package/dist/runtime/query/tooling.d.ts.map +1 -1
  383. package/dist/runtime/query/tooling.js.map +1 -1
  384. package/dist/runtime/query/turn-state.d.ts.map +1 -1
  385. package/dist/runtime/query/turn-state.js +5 -0
  386. package/dist/runtime/query/turn-state.js.map +1 -1
  387. package/dist/runtime/system-events.d.ts +112 -0
  388. package/dist/runtime/system-events.d.ts.map +1 -0
  389. package/dist/runtime/system-events.js +183 -0
  390. package/dist/runtime/system-events.js.map +1 -0
  391. package/dist/scheduler/delegating.d.ts +2 -1
  392. package/dist/scheduler/delegating.d.ts.map +1 -1
  393. package/dist/scheduler/delegating.js +3 -2
  394. package/dist/scheduler/delegating.js.map +1 -1
  395. package/dist/skills/index.d.ts +1 -1
  396. package/dist/skills/index.d.ts.map +1 -1
  397. package/dist/skills/index.js +1 -1
  398. package/dist/skills/index.js.map +1 -1
  399. package/dist/skills/registry.d.ts +18 -0
  400. package/dist/skills/registry.d.ts.map +1 -1
  401. package/dist/skills/registry.js +20 -0
  402. package/dist/skills/registry.js.map +1 -1
  403. package/dist/store/evidence/index-page.d.ts +2 -2
  404. package/dist/store/session-log/conformance.d.ts +1 -1
  405. package/dist/store/session-log/conformance.d.ts.map +1 -1
  406. package/dist/store/session-log/conformance.js +49 -8
  407. package/dist/store/session-log/conformance.js.map +1 -1
  408. package/dist/store/session-log/core.d.ts +8 -3
  409. package/dist/store/session-log/core.d.ts.map +1 -1
  410. package/dist/store/session-log/core.js +2 -1
  411. package/dist/store/session-log/core.js.map +1 -1
  412. package/dist/store/session-log/fold.d.ts +12 -0
  413. package/dist/store/session-log/fold.d.ts.map +1 -1
  414. package/dist/store/session-log/fold.js +57 -7
  415. package/dist/store/session-log/fold.js.map +1 -1
  416. package/dist/store/session-log/index.d.ts +2 -2
  417. package/dist/store/session-log/index.d.ts.map +1 -1
  418. package/dist/store/session-log/index.js +1 -1
  419. package/dist/store/session-log/index.js.map +1 -1
  420. package/dist/test-support/toolset.d.ts +19 -0
  421. package/dist/test-support/toolset.d.ts.map +1 -0
  422. package/dist/test-support/toolset.js +20 -0
  423. package/dist/test-support/toolset.js.map +1 -0
  424. package/dist/tools/builtins/bash.d.ts +29 -0
  425. package/dist/tools/builtins/bash.d.ts.map +1 -1
  426. package/dist/tools/builtins/bash.js +19 -9
  427. package/dist/tools/builtins/bash.js.map +1 -1
  428. package/dist/tools/builtins/browser-url.d.ts +1 -1
  429. package/dist/tools/builtins/browser-url.js +1 -1
  430. package/dist/tools/builtins/browser.d.ts +6 -6
  431. package/dist/tools/builtins/computer-use-coordinates.d.ts +65 -0
  432. package/dist/tools/builtins/computer-use-coordinates.d.ts.map +1 -0
  433. package/dist/tools/builtins/computer-use-coordinates.js +123 -0
  434. package/dist/tools/builtins/computer-use-coordinates.js.map +1 -0
  435. package/dist/tools/builtins/computer-use-image.d.ts +77 -0
  436. package/dist/tools/builtins/computer-use-image.d.ts.map +1 -0
  437. package/dist/tools/builtins/computer-use-image.js +223 -0
  438. package/dist/tools/builtins/computer-use-image.js.map +1 -0
  439. package/dist/tools/builtins/computer-use.d.ts +519 -14
  440. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  441. package/dist/tools/builtins/computer-use.js +1196 -183
  442. package/dist/tools/builtins/computer-use.js.map +1 -1
  443. package/dist/tools/builtins/edit.d.ts.map +1 -1
  444. package/dist/tools/builtins/edit.js +9 -1
  445. package/dist/tools/builtins/edit.js.map +1 -1
  446. package/dist/tools/builtins/index.d.ts +2 -1
  447. package/dist/tools/builtins/index.d.ts.map +1 -1
  448. package/dist/tools/builtins/index.js +1 -1
  449. package/dist/tools/builtins/index.js.map +1 -1
  450. package/dist/tools/builtins/json-string-hint.d.ts +15 -0
  451. package/dist/tools/builtins/json-string-hint.d.ts.map +1 -0
  452. package/dist/tools/builtins/json-string-hint.js +17 -0
  453. package/dist/tools/builtins/json-string-hint.js.map +1 -0
  454. package/dist/tools/builtins/search-tools.d.ts.map +1 -1
  455. package/dist/tools/builtins/search-tools.js +7 -15
  456. package/dist/tools/builtins/search-tools.js.map +1 -1
  457. package/dist/tools/builtins/skill.d.ts +74 -0
  458. package/dist/tools/builtins/skill.d.ts.map +1 -1
  459. package/dist/tools/builtins/skill.js +214 -174
  460. package/dist/tools/builtins/skill.js.map +1 -1
  461. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  462. package/dist/tools/builtins/write-file.js +11 -0
  463. package/dist/tools/builtins/write-file.js.map +1 -1
  464. package/dist/tools/command-shell.d.ts +10 -0
  465. package/dist/tools/command-shell.d.ts.map +1 -1
  466. package/dist/tools/command-shell.js +45 -1
  467. package/dist/tools/command-shell.js.map +1 -1
  468. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  469. package/dist/tools/coordinator/agent.js +5 -0
  470. package/dist/tools/coordinator/agent.js.map +1 -1
  471. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  472. package/dist/tools/coordinator/ask-user-question.js +26 -13
  473. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  474. package/dist/tools/coordinator/index.d.ts.map +1 -1
  475. package/dist/tools/coordinator/index.js +5 -0
  476. package/dist/tools/coordinator/index.js.map +1 -1
  477. package/dist/tools/coordinator/question-options.d.ts +78 -0
  478. package/dist/tools/coordinator/question-options.d.ts.map +1 -0
  479. package/dist/tools/coordinator/question-options.js +153 -0
  480. package/dist/tools/coordinator/question-options.js.map +1 -0
  481. package/dist/tools/defineTool.d.ts +12 -0
  482. package/dist/tools/defineTool.d.ts.map +1 -1
  483. package/dist/tools/defineTool.js +24 -0
  484. package/dist/tools/defineTool.js.map +1 -1
  485. package/dist/tools/memory/search.d.ts.map +1 -1
  486. package/dist/tools/memory/search.js +4 -1
  487. package/dist/tools/memory/search.js.map +1 -1
  488. package/dist/tools/memory/update.d.ts.map +1 -1
  489. package/dist/tools/memory/update.js +8 -5
  490. package/dist/tools/memory/update.js.map +1 -1
  491. package/dist/tools/render-nonce.d.ts +47 -0
  492. package/dist/tools/render-nonce.d.ts.map +1 -0
  493. package/dist/tools/render-nonce.js +63 -0
  494. package/dist/tools/render-nonce.js.map +1 -0
  495. package/dist/tools/roster.d.ts +46 -19
  496. package/dist/tools/roster.d.ts.map +1 -1
  497. package/dist/tools/roster.js +63 -33
  498. package/dist/tools/roster.js.map +1 -1
  499. package/dist/tools/schedules/present.d.ts.map +1 -1
  500. package/dist/tools/schedules/present.js +2 -0
  501. package/dist/tools/schedules/present.js.map +1 -1
  502. package/dist/tools/schedules/schedule-tool.d.ts +6 -5
  503. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  504. package/dist/tools/schedules/schedule-tool.js +208 -37
  505. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  506. package/dist/tools/schedules/types.d.ts +120 -6
  507. package/dist/tools/schedules/types.d.ts.map +1 -1
  508. package/dist/tools/trusted-read-only.d.ts +9 -5
  509. package/dist/tools/trusted-read-only.d.ts.map +1 -1
  510. package/dist/tools/trusted-read-only.js +14 -10
  511. package/dist/tools/trusted-read-only.js.map +1 -1
  512. package/dist/tools/untrusted-envelope.d.ts +67 -28
  513. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  514. package/dist/tools/untrusted-envelope.js +108 -59
  515. package/dist/tools/untrusted-envelope.js.map +1 -1
  516. package/dist/toolsets/combine.d.ts +44 -0
  517. package/dist/toolsets/combine.d.ts.map +1 -0
  518. package/dist/toolsets/combine.js +153 -0
  519. package/dist/toolsets/combine.js.map +1 -0
  520. package/dist/toolsets/manager.d.ts +201 -0
  521. package/dist/toolsets/manager.d.ts.map +1 -0
  522. package/dist/toolsets/manager.js +837 -0
  523. package/dist/toolsets/manager.js.map +1 -0
  524. package/dist/toolsets/source-glob.d.ts +15 -0
  525. package/dist/toolsets/source-glob.d.ts.map +1 -0
  526. package/dist/toolsets/source-glob.js +23 -0
  527. package/dist/toolsets/source-glob.js.map +1 -0
  528. package/dist/toolsets/toolset.d.ts +20 -0
  529. package/dist/toolsets/toolset.d.ts.map +1 -0
  530. package/dist/toolsets/toolset.js +28 -0
  531. package/dist/toolsets/toolset.js.map +1 -0
  532. package/dist/toolsets/types.d.ts +128 -0
  533. package/dist/toolsets/types.d.ts.map +1 -0
  534. package/dist/toolsets/types.js +33 -0
  535. package/dist/toolsets/types.js.map +1 -0
  536. package/dist/toolsets/wrappers.d.ts +59 -0
  537. package/dist/toolsets/wrappers.d.ts.map +1 -0
  538. package/dist/toolsets/wrappers.js +165 -0
  539. package/dist/toolsets/wrappers.js.map +1 -0
  540. package/dist/types/agent/base.d.ts +27 -16
  541. package/dist/types/agent/base.d.ts.map +1 -1
  542. package/dist/types/agent/index.d.ts +1 -0
  543. package/dist/types/agent/index.d.ts.map +1 -1
  544. package/dist/types/agent/index.js +1 -0
  545. package/dist/types/agent/index.js.map +1 -1
  546. package/dist/types/agent/pipeline.d.ts +2 -0
  547. package/dist/types/agent/pipeline.d.ts.map +1 -1
  548. package/dist/types/agent/query.d.ts +117 -0
  549. package/dist/types/agent/query.d.ts.map +1 -0
  550. package/dist/types/agent/query.js +2 -0
  551. package/dist/types/agent/query.js.map +1 -0
  552. package/dist/types/agent/reactive.d.ts +2 -129
  553. package/dist/types/agent/reactive.d.ts.map +1 -1
  554. package/dist/types/agent/router.d.ts +2 -0
  555. package/dist/types/agent/router.d.ts.map +1 -1
  556. package/dist/types/agent/supervisor.d.ts +5 -2
  557. package/dist/types/agent/supervisor.d.ts.map +1 -1
  558. package/dist/types/authorization/index.d.ts +70 -12
  559. package/dist/types/authorization/index.d.ts.map +1 -1
  560. package/dist/types/authorization/index.js +11 -0
  561. package/dist/types/authorization/index.js.map +1 -1
  562. package/dist/types/computer-use/index.d.ts +176 -0
  563. package/dist/types/computer-use/index.d.ts.map +1 -1
  564. package/dist/types/computer-use/index.js.map +1 -1
  565. package/dist/types/connector/mcp.d.ts +32 -0
  566. package/dist/types/connector/mcp.d.ts.map +1 -1
  567. package/dist/types/errors/index.d.ts +15 -0
  568. package/dist/types/errors/index.d.ts.map +1 -1
  569. package/dist/types/errors/index.js.map +1 -1
  570. package/dist/types/hitl/index.d.ts +57 -0
  571. package/dist/types/hitl/index.d.ts.map +1 -1
  572. package/dist/types/hitl/index.js.map +1 -1
  573. package/dist/types/message/index.d.ts +130 -9
  574. package/dist/types/message/index.d.ts.map +1 -1
  575. package/dist/types/message/index.js +4 -1
  576. package/dist/types/message/index.js.map +1 -1
  577. package/dist/types/plugin/index.d.ts +22 -4
  578. package/dist/types/plugin/index.d.ts.map +1 -1
  579. package/dist/types/plugin/index.js +1 -0
  580. package/dist/types/plugin/index.js.map +1 -1
  581. package/dist/types/provider/chat.d.ts +5 -0
  582. package/dist/types/provider/chat.d.ts.map +1 -1
  583. package/dist/types/provider/config.d.ts +8 -3
  584. package/dist/types/provider/config.d.ts.map +1 -1
  585. package/dist/types/provider/stream.d.ts +39 -0
  586. package/dist/types/provider/stream.d.ts.map +1 -1
  587. package/dist/types/sandbox/index.d.ts +1 -1
  588. package/dist/types/session/events.d.ts +14 -3
  589. package/dist/types/session/events.d.ts.map +1 -1
  590. package/dist/types/session/events.js.map +1 -1
  591. package/dist/types/tool/index.d.ts +171 -91
  592. package/dist/types/tool/index.d.ts.map +1 -1
  593. package/dist/types/tool/index.js.map +1 -1
  594. package/dist/types/toolset/index.d.ts +10 -40
  595. package/dist/types/toolset/index.d.ts.map +1 -1
  596. package/package.json +3 -1
  597. package/src/advisory/history.ts +27 -2
  598. package/src/advisory/index.ts +1 -1
  599. package/src/advisory/registry.ts +33 -0
  600. package/src/agents/AGENTS.md +14 -7
  601. package/src/agents/PipelineAgent.ts +2 -303
  602. package/src/agents/QueryAgent.ts +269 -0
  603. package/src/agents/ReactiveAgent.ts +6 -216
  604. package/src/agents/RouterAgent.ts +2 -337
  605. package/src/agents/SupervisorAgent.ts +3 -476
  606. package/src/agents/defineAgent.ts +13 -2
  607. package/src/agents/examples/PipelineAgent.ts +302 -0
  608. package/src/agents/examples/RouterAgent.ts +338 -0
  609. package/src/agents/examples/SupervisorAgent.ts +472 -0
  610. package/src/agents/explore.ts +6 -3
  611. package/src/agents/forward-options.ts +37 -0
  612. package/src/agents/index.ts +2 -0
  613. package/src/agents/runAgent.ts +144 -37
  614. package/src/authorization/command-line.ts +2 -2
  615. package/src/authorization/gate.ts +46 -5
  616. package/src/authorization/program.ts +773 -0
  617. package/src/authorization/reexec-wrapper.ts +589 -0
  618. package/src/authorization/rules.ts +36 -1
  619. package/src/authorization/shell-lexer.ts +136 -63
  620. package/src/bridge/sse/mapper.ts +6 -0
  621. package/src/capabilities/index.ts +157 -0
  622. package/src/config/registry.ts +4 -1
  623. package/src/connector/index.ts +9 -2
  624. package/src/connector/mcp/adapter.ts +58 -3
  625. package/src/connector/mcp/client.ts +20 -4
  626. package/src/connector/mcp/discovery.ts +60 -0
  627. package/src/connector/mcp/index.ts +13 -0
  628. package/src/connector/mcp/mcp-toolset.ts +515 -0
  629. package/src/connector/tools/index.ts +2 -2
  630. package/src/connector/tools/router.ts +35 -58
  631. package/src/directory/derive-supervisor.ts +12 -8
  632. package/src/directory/derive.ts +8 -5
  633. package/src/execution/code-runtime/types.ts +2 -2
  634. package/src/invariants/index.ts +4 -1
  635. package/src/manager/agent/lifecycle.ts +9 -0
  636. package/src/manager/connector/environment.ts +17 -4
  637. package/src/manager/connector/index.ts +2 -2
  638. package/src/manager/connector/tenant.ts +17 -4
  639. package/src/manager/index.ts +2 -2
  640. package/src/manager/session/attribution.ts +79 -0
  641. package/src/manager/session/turn-recorder.ts +211 -55
  642. package/src/peers/address.ts +58 -0
  643. package/src/peers/client.ts +202 -0
  644. package/src/peers/dir.ts +176 -0
  645. package/src/peers/endpoint.ts +564 -0
  646. package/src/peers/envelope.ts +121 -0
  647. package/src/peers/index.ts +96 -0
  648. package/src/peers/protocol.ts +196 -0
  649. package/src/peers/record.ts +56 -0
  650. package/src/peers/registry.ts +241 -0
  651. package/src/plugin/define.ts +68 -0
  652. package/src/plugin/index.ts +2 -0
  653. package/src/plugin/lifecycle.ts +286 -106
  654. package/src/plugin/resolver.ts +6 -3
  655. package/src/plugin/shell-hook.ts +21 -5
  656. package/src/pricing/catalogue.generated.ts +28 -4
  657. package/src/pricing/rates.source.json +27 -6
  658. package/src/probe/errors.ts +4 -1
  659. package/src/prompt/coding-agent-doctrine.ts +22 -10
  660. package/src/prompt/contributions.ts +12 -2
  661. package/src/prompt/index.ts +1 -0
  662. package/src/provider/collect-chat-completion.ts +96 -11
  663. package/src/provider/mock.ts +24 -6
  664. package/src/provider/registry.ts +4 -1
  665. package/src/provider/tool-call-framing.ts +226 -0
  666. package/src/public-runtime.ts +152 -9
  667. package/src/public-tools.ts +43 -5
  668. package/src/public-types.ts +65 -6
  669. package/src/read-model/registry.ts +7 -2
  670. package/src/registry/ManagedRegistry.ts +57 -6
  671. package/src/registry/collision.ts +64 -0
  672. package/src/registry/command/index.ts +7 -3
  673. package/src/registry/index.ts +3 -9
  674. package/src/registry/plugin/index.ts +14 -1
  675. package/src/registry/tool/callable.ts +36 -0
  676. package/src/registry/tool/execute.ts +16 -839
  677. package/src/registry/tool/portable.ts +59 -0
  678. package/src/registry/tool/presentation.ts +6 -5
  679. package/src/runtime/bidi/session.ts +24 -5
  680. package/src/runtime/query/executor/tool-call-admission.ts +288 -22
  681. package/src/runtime/query/executor.ts +129 -16
  682. package/src/runtime/query/file-evidence-replay.ts +8 -7
  683. package/src/runtime/query/fork/prepare.ts +6 -1
  684. package/src/runtime/query/guardrail-presets.ts +4 -3
  685. package/src/runtime/query/index.ts +199 -101
  686. package/src/runtime/query/iteration/index.ts +13 -3
  687. package/src/runtime/query/iteration/phases/compaction.ts +1 -1
  688. package/src/runtime/query/iteration/phases/context.ts +2 -2
  689. package/src/runtime/query/iteration/phases/tool-review.ts +59 -2
  690. package/src/runtime/query/iteration/stream-turn.ts +390 -136
  691. package/src/runtime/query/iteration/tool-input.ts +284 -0
  692. package/src/runtime/query/observation-context.ts +2 -2
  693. package/src/runtime/query/prelude-lease.ts +132 -0
  694. package/src/runtime/query/prepare-turn.ts +477 -198
  695. package/src/runtime/query/prompt-cache.ts +2 -2
  696. package/src/runtime/query/prompt.ts +4 -4
  697. package/src/runtime/query/resume-session.ts +42 -3
  698. package/src/runtime/query/review-policy.ts +190 -24
  699. package/src/runtime/query/tooling.ts +3 -6
  700. package/src/runtime/query/turn-state.ts +4 -0
  701. package/src/runtime/system-events.ts +246 -0
  702. package/src/scheduler/delegating.ts +7 -2
  703. package/src/skills/index.ts +1 -1
  704. package/src/skills/registry.ts +33 -0
  705. package/src/store/session-log/conformance.ts +51 -8
  706. package/src/store/session-log/core.ts +10 -4
  707. package/src/store/session-log/fold.ts +33 -7
  708. package/src/store/session-log/index.ts +2 -0
  709. package/src/test-support/toolset.ts +23 -0
  710. package/src/tools/builtins/bash.ts +27 -10
  711. package/src/tools/builtins/browser-url.ts +1 -1
  712. package/src/tools/builtins/computer-use-coordinates.ts +144 -0
  713. package/src/tools/builtins/computer-use-image.ts +278 -0
  714. package/src/tools/builtins/computer-use.ts +1495 -191
  715. package/src/tools/builtins/edit.ts +12 -2
  716. package/src/tools/builtins/index.ts +7 -1
  717. package/src/tools/builtins/json-string-hint.ts +16 -0
  718. package/src/tools/builtins/search-tools.ts +7 -20
  719. package/src/tools/builtins/skill.ts +304 -174
  720. package/src/tools/builtins/write-file.ts +12 -0
  721. package/src/tools/command-shell.ts +46 -1
  722. package/src/tools/coordinator/agent.ts +6 -0
  723. package/src/tools/coordinator/ask-user-question.ts +29 -15
  724. package/src/tools/coordinator/index.ts +6 -0
  725. package/src/tools/coordinator/question-options.ts +195 -0
  726. package/src/tools/defineTool.ts +38 -0
  727. package/src/tools/memory/search.ts +4 -1
  728. package/src/tools/memory/update.ts +8 -5
  729. package/src/tools/render-nonce.ts +69 -0
  730. package/src/tools/roster.ts +84 -33
  731. package/src/tools/schedules/present.ts +2 -0
  732. package/src/tools/schedules/schedule-tool.ts +238 -39
  733. package/src/tools/schedules/types.ts +120 -6
  734. package/src/tools/trusted-read-only.ts +19 -10
  735. package/src/tools/untrusted-envelope.ts +121 -57
  736. package/src/toolsets/combine.ts +181 -0
  737. package/src/toolsets/manager.ts +996 -0
  738. package/src/toolsets/source-glob.ts +22 -0
  739. package/src/toolsets/toolset.ts +31 -0
  740. package/src/toolsets/types.ts +154 -0
  741. package/src/toolsets/wrappers.ts +191 -0
  742. package/src/types/agent/base.ts +29 -16
  743. package/src/types/agent/index.ts +1 -0
  744. package/src/types/agent/pipeline.ts +2 -0
  745. package/src/types/agent/query.ts +129 -0
  746. package/src/types/agent/reactive.ts +5 -142
  747. package/src/types/agent/router.ts +2 -0
  748. package/src/types/agent/supervisor.ts +5 -2
  749. package/src/types/authorization/index.ts +33 -0
  750. package/src/types/computer-use/index.ts +202 -0
  751. package/src/types/connector/mcp.ts +32 -0
  752. package/src/types/errors/index.ts +15 -0
  753. package/src/types/hitl/index.ts +57 -0
  754. package/src/types/message/index.ts +135 -7
  755. package/src/types/plugin/index.ts +44 -21
  756. package/src/types/provider/chat.ts +5 -0
  757. package/src/types/provider/config.ts +8 -3
  758. package/src/types/provider/stream.ts +39 -0
  759. package/src/types/sandbox/index.ts +1 -1
  760. package/src/types/session/events.ts +14 -3
  761. package/src/types/tool/index.ts +173 -105
  762. package/src/types/toolset/index.ts +10 -47
  763. package/dist/registry/toolset/catalog.d.ts +0 -42
  764. package/dist/registry/toolset/catalog.d.ts.map +0 -1
  765. package/dist/registry/toolset/catalog.js +0 -234
  766. package/dist/registry/toolset/catalog.js.map +0 -1
  767. package/src/registry/toolset/catalog.ts +0 -308
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Match a hierarchical source id against a glob pattern.
3
+ *
4
+ * Source ids are strings like `mcp:github`, `plugin:acme`,
5
+ * `plugin:acme/mcp:db` (plan.md §1) — no filesystem semantics, so this is
6
+ * not a path glob: `*` matches any run of characters, including `/` and
7
+ * `:`, so `plugin:acme/*` matches `plugin:acme/mcp:db` in one step. There
8
+ * is no `**`, `?` or character class — the id space does not need them, and
9
+ * a smaller matcher is one with no surprising cases to test.
10
+ *
11
+ * A pattern with no `*` is an exact match, so callers never have to special
12
+ * case "no wildcard" themselves.
13
+ */
14
+ export function matchesSourceIdGlob(id: string, pattern: string): boolean {
15
+ if (!pattern.includes('*')) return id === pattern
16
+ const escaped = pattern.split('*').map(escapeRegExpLiteral).join('.*')
17
+ return new RegExp(`^${escaped}$`).test(id)
18
+ }
19
+
20
+ function escapeRegExpLiteral(literal: string): string {
21
+ return literal.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
22
+ }
@@ -0,0 +1,31 @@
1
+ import type { ToolDefinition } from '../types/tool/index.js'
2
+ import type { ToolSource, Toolset } from './types.js'
3
+
4
+ /**
5
+ * The plain, static `Toolset`: a fixed list of tools from one source.
6
+ *
7
+ * A bare string source is shorthand for a `host_tool` source with that
8
+ * string as both `id` and `name` — the common case for a small, in-process
9
+ * bundle of tools ("builtin", "memory") that has no separate discovery
10
+ * metadata worth writing out. Anything that needs a real `kind`
11
+ * (`mcp_server`, `plugin`, …) passes a full {@link ToolSource}; string
12
+ * shorthand never guesses a kind from the text of the id.
13
+ *
14
+ * The tools array is snapshotted once, at construction, so a caller that
15
+ * mutates the array it passed in afterward cannot change what this toolset
16
+ * reports. There is no `onChange`: a plain toolset never changes on its
17
+ * own — wrap it with a live source (a future MCP toolset) or rebuild it
18
+ * with a new snapshot instead.
19
+ */
20
+ export function toolset(source: ToolSource | string, tools: readonly ToolDefinition[]): Toolset {
21
+ const resolvedSource = typeof source === 'string' ? hostToolSource(source) : source
22
+ const snapshot = tools.slice()
23
+ return {
24
+ source: resolvedSource,
25
+ tools: () => snapshot,
26
+ }
27
+ }
28
+
29
+ function hostToolSource(id: string): ToolSource {
30
+ return { id, kind: 'host_tool', name: id }
31
+ }
@@ -0,0 +1,154 @@
1
+ import type { ToolDefinition } from '../types/tool/index.js'
2
+ import type { ToolSource, ToolSourceKind } from '../types/toolset/index.js'
3
+
4
+ // Re-exported so the rest of `toolsets/` can `import type { ToolSource }
5
+ // from './types.js'` and never reach past this module's own boundary.
6
+ // `public-types.ts` already exports these from `types/toolset/index.js`
7
+ // directly, and lists this module's OWN new names explicitly (not `export
8
+ // type *`), so this re-export does not create a duplicate public export.
9
+ export type { ToolSource, ToolSourceKind }
10
+
11
+ /**
12
+ * A toolset's own default for the tools it contributes.
13
+ *
14
+ * Deliberately narrower than {@link ToolAvailability} (`'active' |
15
+ * 'deferred' | 'suspended'`): `'suspended'` is derived from a host readiness
16
+ * check, not a static declaration. Absent means `'active'`.
17
+ */
18
+ export type ToolsetAvailability = 'active' | 'deferred'
19
+
20
+ /**
21
+ * The unit every tool comes from.
22
+ *
23
+ * A `Toolset` is a value, not a registration: `toolset()`, every wrapper
24
+ * below, and `combineToolsets` all return one without touching any shared
25
+ * state. The runtime resolves it through a `ToolManager` when a turn starts.
26
+ */
27
+ export interface Toolset {
28
+ /** Where these tools come from. Ownership and trust stay with this. */
29
+ readonly source: ToolSource
30
+ /**
31
+ * The current snapshot, in a deterministic order.
32
+ *
33
+ * Called fresh whenever a caller wants the current tools — a wrapper
34
+ * re-derives its mapping/filtering on every call rather than caching,
35
+ * so a live inner toolset's change is visible the moment `tools()` is
36
+ * called again, with no separate invalidation step.
37
+ */
38
+ tools(): readonly ToolDefinition[]
39
+ /**
40
+ * This toolset's default for tools it contributes. Absent means
41
+ * `'active'`. A wrapper composes this along with everything else: see
42
+ * {@link deferred}.
43
+ */
44
+ readonly availability?: ToolsetAvailability
45
+ /**
46
+ * Host-owned readiness, independent of whether the model has loaded a
47
+ * deferred schema. A false (or throwing) check keeps every tool in this
48
+ * source out of discovery, prompts and execution. Read fresh on each use.
49
+ */
50
+ readonly isReady?: () => boolean
51
+ /**
52
+ * Subscribe to "the next `tools()` call may return something different"
53
+ * — an MCP server's `list_changed`, for instance. Returns the
54
+ * unsubscribe function. Absent means this toolset never changes on its
55
+ * own (a plain {@link toolset} never does).
56
+ *
57
+ * A wrapper or {@link combineToolsets} that wraps a live toolset forwards
58
+ * this by calling the inner `onChange` with the same listener, so a
59
+ * change three layers down reaches a listener on the outermost toolset,
60
+ * and unsubscribing at the outer layer unsubscribes at every inner one.
61
+ */
62
+ onChange?(listener: () => void): () => void
63
+ /** Release whatever this toolset holds open (a connection, a watcher). */
64
+ close?(): Promise<void>
65
+ }
66
+
67
+ /** A broken readiness check must never expose the tools it guards. */
68
+ export function toolsetIsReady(ts: Toolset): boolean {
69
+ try {
70
+ return ts.isReady?.() ?? true
71
+ } catch {
72
+ return false
73
+ }
74
+ }
75
+
76
+ /**
77
+ * A lean reference to the toolset that contributed a tool.
78
+ * `ToolManager.sourceOf(name)` derives it from the owning toolset; no source
79
+ * pointer is stored on the `ToolDefinition` itself.
80
+ */
81
+ export interface ToolSourceRef {
82
+ readonly id: string
83
+ readonly kind: ToolSourceKind
84
+ /** Only set when `kind` is `'mcp_server'`: the connected server's configured name. */
85
+ readonly server?: string
86
+ /**
87
+ * Only set when `kind` is `'mcp_server'`. See `ToolProvenance.readOnlyHintTrusted`
88
+ * (`types/tool/index.ts`) — same meaning, carried on the source instead of
89
+ * duplicated onto every tool the source contributes.
90
+ */
91
+ readonly readOnlyHintTrusted?: boolean
92
+ }
93
+
94
+ /**
95
+ * Project a `ToolSource` down to the lean reference returned by
96
+ * `ToolManager.sourceOf(name)`. Pure; reads nothing but its arguments.
97
+ *
98
+ * `readOnlyHintTrusted` defaults to `source.mcpServer?.readOnlyHintTrusted`
99
+ * — the operator's per-server trust decision, wired by whatever built this
100
+ * `ToolSource` (`mcpToolset`, plan.md §4). The `mcp` parameter overrides that
101
+ * default rather than being the only channel for it: a caller that already
102
+ * has the decision in hand some other way (a test, a wrapper) may still pass
103
+ * it explicitly, but `sourceOf` (`toolsets/manager.ts`) relies on the
104
+ * default so a trusted server's tools resolve as trusted with no extra
105
+ * wiring at the call site.
106
+ */
107
+ export function toToolSourceRef(
108
+ source: ToolSource,
109
+ mcp?: { readonly readOnlyHintTrusted: boolean },
110
+ ): ToolSourceRef {
111
+ if (source.kind !== 'mcp_server') return { id: source.id, kind: source.kind }
112
+ return {
113
+ id: source.id,
114
+ kind: source.kind,
115
+ server: source.mcpServer?.name ?? source.name,
116
+ readOnlyHintTrusted: mcp?.readOnlyHintTrusted ?? source.mcpServer?.readOnlyHintTrusted ?? false,
117
+ }
118
+ }
119
+
120
+ /**
121
+ * A synchronous test over one tool, for {@link filtered} and
122
+ * {@link requireApproval}.
123
+ *
124
+ * `source` is the CONTRIBUTING TOOLSET's own source (`ts.source` projected
125
+ * through {@link toToolSourceRef}) — not a source declared by a tool
126
+ * definition (see {@link ToolFilterSelector}'s note on `sourceIdGlob`). A
127
+ * predicate that
128
+ * needs to tell a trusted MCP server's tool from an untrusted one's (the
129
+ * `isTrustedReadOnly` recipe in `tools/roster.ts`) reads this — which is
130
+ * correct for a plain, single-source toolset, and why that recipe must run
131
+ * on each contributing toolset before {@link combineToolsets} merges them:
132
+ * applied to an already-combined multi-source toolset, `source` is the
133
+ * COMBINED umbrella source, not any one contributor's, and a predicate that
134
+ * trusts it that far trusts every contributor equally.
135
+ */
136
+ export type ToolPredicate = (tool: ToolDefinition, source: ToolSourceRef) => boolean
137
+
138
+ /**
139
+ * What `filtered` (and `requireApproval`'s optional selector) may match on.
140
+ *
141
+ * `sourceIdGlob` matches the WHOLE toolset's own {@link ToolSource.id}
142
+ * (glob syntax: {@link matchesSourceIdGlob}) — not a per-tool source.
143
+ * A toolset is one source, so this keeps every tool the toolset contributes
144
+ * when the glob matches, and none when it does not.
145
+ *
146
+ * `metadata` is a deep-match against `ToolDefinition.metadata`: every key in
147
+ * the pattern must be present and equal (or, for a nested plain object,
148
+ * recursively matched) on the tool's own metadata. A tool with no metadata
149
+ * never matches a metadata selector.
150
+ */
151
+ export type ToolFilterSelector =
152
+ | readonly string[]
153
+ | { readonly metadata: Readonly<Record<string, unknown>> }
154
+ | { readonly sourceIdGlob: string }
@@ -0,0 +1,191 @@
1
+ import { matchesToolSelector } from '../tools/roster.js'
2
+ import type { ToolDefinition } from '../types/tool/index.js'
3
+ import { matchesSourceIdGlob } from './source-glob.js'
4
+ import {
5
+ type ToolFilterSelector,
6
+ type ToolPredicate,
7
+ type Toolset,
8
+ type ToolsetAvailability,
9
+ toToolSourceRef,
10
+ } from './types.js'
11
+
12
+ /**
13
+ * Build a derived `Toolset` that keeps the inner toolset's `source`,
14
+ * `availability` (unless overridden) and live-update wiring (`onChange`,
15
+ * `close`), forwarded rather than re-implemented.
16
+ *
17
+ * Every wrapper in this file goes through this one function, so "keep the
18
+ * inner source", "forward `onChange` through every layer" and "clean up
19
+ * `close`" are each written exactly once.
20
+ */
21
+ function deriveToolset(
22
+ ts: Toolset,
23
+ overrides: {
24
+ tools?: () => readonly ToolDefinition[]
25
+ availability?: ToolsetAvailability
26
+ isReady?: () => boolean
27
+ },
28
+ ): Toolset {
29
+ const derived: Toolset = {
30
+ source: ts.source,
31
+ tools: overrides.tools ?? (() => ts.tools()),
32
+ availability: overrides.availability ?? ts.availability,
33
+ isReady: overrides.isReady ?? ts.isReady,
34
+ }
35
+ if (ts.onChange) {
36
+ // A direct forward: calling the derived toolset's `onChange` subscribes
37
+ // the inner one with the same listener and hands back ITS unsubscribe,
38
+ // so a change three layers down reaches the outermost listener, and
39
+ // unsubscribing at any layer tears down exactly that subscription.
40
+ const innerOnChange = ts.onChange
41
+ derived.onChange = (listener) => innerOnChange(listener)
42
+ }
43
+ if (ts.close) {
44
+ const innerClose = ts.close
45
+ derived.close = () => innerClose()
46
+ }
47
+ return derived
48
+ }
49
+
50
+ /**
51
+ * Apply `fn` to every tool this toolset contributes, recomputed on every
52
+ * `tools()` call (no caching) so a live inner toolset's change is visible
53
+ * immediately. Every other wrapper below is written in terms of this one.
54
+ */
55
+ export function mapTools(ts: Toolset, fn: (tool: ToolDefinition) => ToolDefinition): Toolset {
56
+ return deriveToolset(ts, { tools: () => ts.tools().map(fn) })
57
+ }
58
+
59
+ /** Prepend `prefix` to every tool's name. `execute` and every other field are untouched. */
60
+ export function prefixed(ts: Toolset, prefix: string): Toolset {
61
+ const cache = new WeakMap<ToolDefinition, ToolDefinition>()
62
+ return deriveToolset(ts, {
63
+ tools: () =>
64
+ ts.tools().map((tool) => {
65
+ let renamed = cache.get(tool)
66
+ if (!renamed) {
67
+ renamed = { ...tool, name: `${prefix}${tool.name}` }
68
+ cache.set(tool, renamed)
69
+ }
70
+ return renamed
71
+ }),
72
+ })
73
+ }
74
+
75
+ /**
76
+ * Rename the tools named as keys in `names` to their mapped value. A tool
77
+ * whose name is not a key keeps its name. `execute` and every other field
78
+ * are untouched — only `name` changes.
79
+ */
80
+ export function renamed(ts: Toolset, names: Readonly<Record<string, string>>): Toolset {
81
+ return mapTools(ts, (tool) => {
82
+ const next = names[tool.name]
83
+ return next === undefined ? tool : { ...tool, name: next }
84
+ })
85
+ }
86
+
87
+ /**
88
+ * Keep only the tools `selector` (or `predicate`) admits.
89
+ *
90
+ * See {@link ToolFilterSelector} for what a non-function selector can match
91
+ * on. A `sourceIdGlob` selector is all-or-nothing per toolset — it tests
92
+ * this toolset's own `source.id`, not a per-tool source. A function
93
+ * `predicate` is handed `ts.source` (projected through
94
+ * {@link toToolSourceRef}) as its second argument for the same reason —
95
+ * see {@link ToolPredicate}'s note on what that source means, and does not
96
+ * mean, once toolsets have been combined.
97
+ */
98
+ export function filtered(ts: Toolset, selector: ToolFilterSelector | ToolPredicate): Toolset {
99
+ const predicate = toPredicate(ts, selector)
100
+ const source = toToolSourceRef(ts.source)
101
+ return deriveToolset(ts, {
102
+ tools: () => ts.tools().filter((tool) => predicate(tool, source)),
103
+ })
104
+ }
105
+
106
+ function toPredicate(ts: Toolset, selector: ToolFilterSelector | ToolPredicate): ToolPredicate {
107
+ if (typeof selector === 'function') return selector
108
+ if (Array.isArray(selector)) {
109
+ const names = new Set<string>(selector as readonly string[])
110
+ return (tool) => names.has(tool.name)
111
+ }
112
+ // `Array.isArray`'s built-in guard narrows against a MUTABLE `any[]`, so
113
+ // TypeScript cannot use the negative case above to drop `readonly
114
+ // string[]` from the union — the cast is just naming what the runtime
115
+ // check already proved.
116
+ const objectSelector = selector as Exclude<ToolFilterSelector, readonly string[]>
117
+ if ('sourceIdGlob' in objectSelector) {
118
+ const keepEverything = matchesSourceIdGlob(ts.source.id, objectSelector.sourceIdGlob)
119
+ return () => keepEverything
120
+ }
121
+ // The deep-match itself (nested plain objects recursed, arrays compared
122
+ // elementwise) is `matchesToolSelector`'s (`tools/roster.ts`) — the same
123
+ // rule a permission `by_source`/metadata rule matches by, so a metadata
124
+ // selector means the same thing wherever it is written.
125
+ const pattern = objectSelector.metadata
126
+ return (tool) => matchesToolSelector(pattern, tool)
127
+ }
128
+
129
+ /**
130
+ * This toolset's tools default to `'deferred'` instead of `'active'` — the
131
+ * model has to ask for them by name (or a `search_tools`/reveal path) rather
132
+ * than seeing them offered up front.
133
+ */
134
+ export function deferred(ts: Toolset): Toolset {
135
+ return deriveToolset(ts, { availability: 'deferred' })
136
+ }
137
+
138
+ /**
139
+ * Keep tools unavailable until the host confirms their prerequisite is ready.
140
+ * This guard is independent of `deferred`: search cannot grant readiness.
141
+ * The callback must read current host state and return synchronously.
142
+ */
143
+ export function readyWhen(ts: Toolset, isReady: () => boolean): Toolset {
144
+ return deriveToolset(ts, {
145
+ isReady: () => (ts.isReady?.() ?? true) && isReady(),
146
+ })
147
+ }
148
+
149
+ /**
150
+ * Mark the tools `selector` admits (every tool, when omitted) as needing
151
+ * approval every time they are called.
152
+ *
153
+ * Sets `ToolDefinition.requiresApproval` to a predicate that always answers
154
+ * `true`, and nothing else — this wrapper does not enforce approval itself;
155
+ * that is `runtime/query/review-policy.ts`'s job, which reads the field this
156
+ * writes. `requiresApproval` is declared as `(input: TInput) => boolean`
157
+ * (method-shorthand, like `isReadOnly`), not a plain boolean, so every tool
158
+ * this wrapper marks gets the same always-true predicate rather than a
159
+ * second field shape to check for.
160
+ */
161
+ export function requireApproval(
162
+ ts: Toolset,
163
+ selector?: ToolFilterSelector | ToolPredicate,
164
+ ): Toolset {
165
+ const predicate = selector ? toPredicate(ts, selector) : () => true
166
+ const source = toToolSourceRef(ts.source)
167
+ const mapped = new WeakMap<ToolDefinition, ToolDefinition>()
168
+ return deriveToolset(ts, {
169
+ tools: () =>
170
+ ts.tools().map((tool) => {
171
+ if (!predicate(tool, source)) return tool
172
+ let approved = mapped.get(tool)
173
+ if (!approved) {
174
+ approved = { ...tool, requiresApproval: () => true }
175
+ mapped.set(tool, approved)
176
+ }
177
+ return approved
178
+ }),
179
+ })
180
+ }
181
+
182
+ /**
183
+ * Merge `metadata` onto every tool this toolset contributes, keeping
184
+ * whatever metadata a tool already carries (last write wins per key).
185
+ */
186
+ export function withMetadata(ts: Toolset, metadata: Readonly<Record<string, unknown>>): Toolset {
187
+ return mapTools(ts, (tool) => ({
188
+ ...tool,
189
+ metadata: { ...tool.metadata, ...metadata },
190
+ }))
191
+ }
@@ -16,7 +16,8 @@ import type { TurnExecutionStatus } from '../session/turn.js'
16
16
  import type { TaskStore } from '../task/index.js'
17
17
  import type { ToolAvailability } from '../tool/index.js'
18
18
 
19
- export type AgentType = 'reactive' | 'pipeline' | 'router' | 'supervisor'
19
+ /** Application-owned agent kind; the SDK does not prescribe an agent taxonomy. */
20
+ export type AgentType = string
20
21
 
21
22
  export type AgentContextLevel = 'full' | 'standard' | 'minimal'
22
23
 
@@ -225,30 +226,23 @@ export interface BaseAgentConfig {
225
226
  idempotencyKey?: string
226
227
 
227
228
  /**
228
- * Long-lived goal scope for the turn. Required at runtime — agents reject
229
- * configs missing this (`'X requires sessionId, projectId, and tenantId
230
- * in config'`).
231
- *
232
- * Kept optional at the TYPE level because {@link AgentManager} stamps
233
- * this field AFTER `configBuilder` returns (manager/agent/lifecycle.ts).
234
- * Tightening to required is a separate task alongside
235
- * `AgentFactoryOptions` carrying the triple.
229
+ * Project scope for a store-backed turn. Optional on the general Agent
230
+ * contract: {@link AgentManager} supplies the real project to delegated
231
+ * agents after `configBuilder` returns. A standalone application agent need
232
+ * not take its identity from a project store.
236
233
  */
237
234
  projectId?: ProjectId
238
235
 
239
236
  /**
240
- * Topic the turn belongs to. Optional at the TYPE level for the same
241
- * reason as `projectId` — {@link AgentManager} stamps this field after
242
- * `configBuilder` returns so `configBuilder` implementations do not
243
- * need to be updated before this tightens. Tightening to required
244
- * lands with the `AgentFactoryOptions` triple refactor.
237
+ * Optional topic scope. A host with topics supplies it for its own session
238
+ * and delegation records; it is not intrinsic to an Agent implementation.
245
239
  */
246
240
  topicId?: TopicId
247
241
 
248
- /** Session under which the turn executes. See `projectId` for the tightening plan. */
242
+ /** Session correlation for a persisted turn; a host may resolve it at invocation. */
249
243
  sessionId?: SessionId
250
244
 
251
- /** Isolation boundary (Convention #17). See `projectId` for the tightening plan. */
245
+ /** Host tenancy scope; store-backed delegation needs a real tenant owner. */
252
246
  tenantId?: TenantId
253
247
 
254
248
  /** Present on a child session: the session that delegated it. */
@@ -338,6 +332,15 @@ export interface AgentRuntimeContext {
338
332
  notes?: readonly string[]
339
333
  }
340
334
 
335
+ /** Host-owned scope for a managed invocation, separate from agent configuration. */
336
+ export interface AgentInvocationScope {
337
+ readonly kind: 'managed'
338
+ readonly sessionId: SessionId
339
+ readonly topicId: TopicId
340
+ readonly projectId: ProjectId
341
+ readonly tenantId: TenantId
342
+ }
343
+
341
344
  export interface AgentInput {
342
345
  messages: Message[]
343
346
  workingDirectory: string
@@ -352,6 +355,15 @@ export interface AgentInput {
352
355
  runtimeContext?: AgentRuntimeContext
353
356
  }
354
357
 
358
+ /** Input for an adapter that runs a managed session through the query kernel. */
359
+ export type ManagedAgentInput = AgentInput & {
360
+ /**
361
+ * Host-owned session attribution. `AgentManager` sets this from the admitted
362
+ * child session, so the reusable agent config need not own its identity.
363
+ */
364
+ readonly managedScope?: AgentInvocationScope
365
+ }
366
+
355
367
  export interface BaseAgentResult {
356
368
  /** Aggregate tree accounting, separate from this invocation's own usage. */
357
369
  budget?: ReturnType<SessionTokenBudget['summary']>
@@ -389,6 +401,7 @@ export interface BaseAgentResult {
389
401
  lastError?: string
390
402
  }
391
403
 
404
+ /** Descriptive metadata. Access and concurrency are enforced by the host and runtime seams. */
392
405
  export interface AgentCapabilities {
393
406
  supportsTools: boolean
394
407
  supportsStreaming: boolean
@@ -1,5 +1,6 @@
1
1
  export * from './base.js'
2
2
  export * from './core.js'
3
+ export * from './query.js'
3
4
  export * from './reactive.js'
4
5
  export * from './pipeline.js'
5
6
  export * from './router.js'
@@ -24,6 +24,7 @@ export interface PipelineStep<TInput = unknown, TOutput = unknown> {
24
24
  validate?(input: TInput): boolean
25
25
  }
26
26
 
27
+ /** @deprecated Configuration for the pipeline example; define application orchestration as needed. */
27
28
  export interface PipelineAgentConfig extends BaseAgentConfig {
28
29
  steps: PipelineStep[]
29
30
  provider?: LLMProvider
@@ -38,6 +39,7 @@ export interface PipelineStepResult {
38
39
  durationMs: number
39
40
  }
40
41
 
42
+ /** @deprecated Result of the pipeline example. */
41
43
  export interface PipelineAgentResult extends BaseAgentResult {
42
44
  stepResults: PipelineStepResult[]
43
45
  completedSteps: number
@@ -0,0 +1,129 @@
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 { Toolset } from '../../toolsets/types.js'
5
+ import type { AdvisoryConfig } from '../advisory/index.js'
6
+ import type { AuthorizationGateConfig } from '../authorization/index.js'
7
+ import type { InputGuardrailSpec, OutputGuardrailSpec } from '../guardrail/index.js'
8
+ import type { ResumeHandler } from '../hitl/index.js'
9
+ import type { AgentPersona } from '../persona/index.js'
10
+ import type { LLMProvider } from '../provider/index.js'
11
+ import type { SandboxProvider } from '../sandbox/index.js'
12
+ import type { BeforeStep, PrepareStepChain, StepResult, StopCondition } from '../session/index.js'
13
+ import type { Skill } from '../skills/index.js'
14
+ import type { StructuredOutputConfig } from '../structured-output/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 QueryAgentConfig 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
+ * Forwarded into `drainQuery` so a host using this adapter can steer the
30
+ * same turn it could steer through a direct `query()` call.
31
+ */
32
+ steering?: SteeringChannel
33
+
34
+ skills?: Skill[]
35
+
36
+ basePrompt?: string
37
+ provider: LLMProvider
38
+ /** Every tool this turn may see comes from one of these — see `toolsets/types.ts`. */
39
+ toolsets: readonly Toolset[]
40
+
41
+ advisory?: AdvisoryConfig
42
+
43
+ /**
44
+ * Optional capability-aware deny/allow gate for tool calls.
45
+ * When omitted,
46
+ * `drainQuery` falls back to its `autoApproveHandler` default
47
+ * (every tool call auto-approves, no policy applied). Hosts that
48
+ * trust their sandbox should still pass at least
49
+ * `{ enabled: true, denyDangerousPatterns: true, ... }` so the
50
+ * canonical brick patterns hard-deny instead of executing
51
+ * silently.
52
+ */
53
+
54
+ authorizationGate?: AuthorizationGateConfig
55
+
56
+ /**
57
+ * Optional ephemeral sandbox provider. When set, drainQuery creates
58
+ * a sandbox via `provider.create()` before the iteration loop and
59
+ * routes filesystem / shell tool calls through it; on turn end the
60
+ * SDK calls `sandbox.destroy()`. Hosts that want related turns to share
61
+ * one container pass the same caching provider instance to those turns.
62
+ */
63
+ sandboxProvider?: SandboxProvider
64
+ /** See {@link QueryParams.sandboxTeardownTimeoutMs}. */
65
+ sandboxTeardownTimeoutMs?: number
66
+ /** See {@link QueryParams.outsideRootAccess}. Default `'refuse'`. */
67
+ outsideRootAccess?: 'refuse' | 'review'
68
+ /** See {@link QueryParams.sandboxEscape}. Default `'refuse'`. */
69
+ sandboxEscape?: 'refuse' | 'review'
70
+
71
+ /**
72
+ * Optional structured-compaction config. Omitted ⇒ byte-identical run path
73
+ * (no `WorkingStateManager`, compaction early-returns).
74
+ */
75
+ compactionConfig?: CompactionConfig
76
+
77
+ /**
78
+ * Optional neutral working-memory seam. Absent ⇒ no block injected.
79
+ * Related turns can share one provider when the host wants shared memory.
80
+ */
81
+ workingMemoryProvider?: WorkingMemoryProvider
82
+
83
+ /**
84
+ * Loop-control and resilience seams, forwarded verbatim to `query()`.
85
+ *
86
+ * The optional `QueryAgent` adapter forwards these settings for hosts that
87
+ * need an `AgentManager` shell. Hosts using `query()` configure them there.
88
+ *
89
+ * Every field is optional and absent means exactly what it meant
90
+ * before, so no existing agent changes behavior.
91
+ */
92
+ resumeHandler?: ResumeHandler
93
+ retry?: QueryParams['retry']
94
+ toolTimeoutMs?: number
95
+ toolRetryBackoff?: QueryParams['toolRetryBackoff']
96
+ maxToolConcurrency?: number
97
+ maxToolOutputChars?: number
98
+ retainedToolPreviewChars?: QueryParams['retainedToolPreviewChars']
99
+ /**
100
+ * Cap on the RICH channel of a single tool result, in base64 characters.
101
+ * `0` or absent disables it. Separate from {@link maxToolOutputChars}:
102
+ * that one bounds characters the model reads, this one bounds the image
103
+ * payload beside them, which no text budget ever touched.
104
+ */
105
+ maxToolContentBytes?: number
106
+ repairToolCall?: RepairToolCall
107
+ stopWhen?: StopCondition
108
+ onStepFinish?: (step: StepResult) => void
109
+ prepareStep?: PrepareStepChain
110
+ /**
111
+ * Refuse the next model call before it is made. See {@link BeforeStep}.
112
+ * A throw fails CLOSED, opposite to `prepareStep` beside it.
113
+ */
114
+ beforeStep?: BeforeStep
115
+
116
+ structuredOutput?: StructuredOutputConfig
117
+ inputGuardrails?: readonly InputGuardrailSpec[]
118
+ outputGuardrails?: readonly OutputGuardrailSpec[]
119
+
120
+ /**
121
+ * Span this turn should hang off, when it is a delegated one. Absent for
122
+ * a top-level turn, which correctly starts its own root trace.
123
+ */
124
+ parentSpan?: import('@opentelemetry/api').Span
125
+ }
126
+
127
+ export interface QueryAgentResult extends BaseAgentResult {
128
+ toolCallCount: number
129
+ }