@namzu/sdk 45.1.0 → 48.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. package/CHANGELOG.md +436 -8
  2. package/README.md +7 -8
  3. package/dist/advisory/history.d.ts.map +1 -1
  4. package/dist/advisory/history.js +21 -1
  5. package/dist/advisory/history.js.map +1 -1
  6. package/dist/advisory/index.d.ts +1 -1
  7. package/dist/advisory/index.d.ts.map +1 -1
  8. package/dist/advisory/index.js +1 -1
  9. package/dist/advisory/index.js.map +1 -1
  10. package/dist/advisory/registry.d.ts +17 -0
  11. package/dist/advisory/registry.d.ts.map +1 -1
  12. package/dist/advisory/registry.js +26 -0
  13. package/dist/advisory/registry.js.map +1 -1
  14. package/dist/agents/PipelineAgent.d.ts +2 -46
  15. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  16. package/dist/agents/PipelineAgent.js +2 -242
  17. package/dist/agents/PipelineAgent.js.map +1 -1
  18. package/dist/agents/QueryAgent.d.ts +21 -0
  19. package/dist/agents/QueryAgent.d.ts.map +1 -0
  20. package/dist/agents/QueryAgent.js +214 -0
  21. package/dist/agents/QueryAgent.js.map +1 -0
  22. package/dist/agents/ReactiveAgent.d.ts +4 -16
  23. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  24. package/dist/agents/ReactiveAgent.js +4 -183
  25. package/dist/agents/ReactiveAgent.js.map +1 -1
  26. package/dist/agents/RouterAgent.d.ts +2 -20
  27. package/dist/agents/RouterAgent.d.ts.map +1 -1
  28. package/dist/agents/RouterAgent.js +2 -266
  29. package/dist/agents/RouterAgent.js.map +1 -1
  30. package/dist/agents/SupervisorAgent.d.ts +3 -43
  31. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  32. package/dist/agents/SupervisorAgent.js +3 -418
  33. package/dist/agents/SupervisorAgent.js.map +1 -1
  34. package/dist/agents/defineAgent.d.ts +2 -1
  35. package/dist/agents/defineAgent.d.ts.map +1 -1
  36. package/dist/agents/defineAgent.js +6 -1
  37. package/dist/agents/defineAgent.js.map +1 -1
  38. package/dist/agents/examples/PipelineAgent.d.ts +46 -0
  39. package/dist/agents/examples/PipelineAgent.d.ts.map +1 -0
  40. package/dist/agents/examples/PipelineAgent.js +242 -0
  41. package/dist/agents/examples/PipelineAgent.js.map +1 -0
  42. package/dist/agents/examples/RouterAgent.d.ts +22 -0
  43. package/dist/agents/examples/RouterAgent.d.ts.map +1 -0
  44. package/dist/agents/examples/RouterAgent.js +268 -0
  45. package/dist/agents/examples/RouterAgent.js.map +1 -0
  46. package/dist/agents/examples/SupervisorAgent.d.ts +45 -0
  47. package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -0
  48. package/dist/agents/examples/SupervisorAgent.js +406 -0
  49. package/dist/agents/examples/SupervisorAgent.js.map +1 -0
  50. package/dist/agents/explore.d.ts +6 -3
  51. package/dist/agents/explore.d.ts.map +1 -1
  52. package/dist/agents/explore.js +6 -3
  53. package/dist/agents/explore.js.map +1 -1
  54. package/dist/agents/forward-options.d.ts +11 -0
  55. package/dist/agents/forward-options.d.ts.map +1 -0
  56. package/dist/agents/forward-options.js +15 -0
  57. package/dist/agents/forward-options.js.map +1 -0
  58. package/dist/agents/index.d.ts +1 -0
  59. package/dist/agents/index.d.ts.map +1 -1
  60. package/dist/agents/index.js +2 -0
  61. package/dist/agents/index.js.map +1 -1
  62. package/dist/agents/runAgent.d.ts +19 -8
  63. package/dist/agents/runAgent.d.ts.map +1 -1
  64. package/dist/agents/runAgent.js +99 -29
  65. package/dist/agents/runAgent.js.map +1 -1
  66. package/dist/authorization/command-line.d.ts +2 -0
  67. package/dist/authorization/command-line.d.ts.map +1 -1
  68. package/dist/authorization/command-line.js +2 -2
  69. package/dist/authorization/command-line.js.map +1 -1
  70. package/dist/authorization/gate.d.ts +13 -2
  71. package/dist/authorization/gate.d.ts.map +1 -1
  72. package/dist/authorization/gate.js +37 -5
  73. package/dist/authorization/gate.js.map +1 -1
  74. package/dist/authorization/program.d.ts +151 -0
  75. package/dist/authorization/program.d.ts.map +1 -0
  76. package/dist/authorization/program.js +713 -0
  77. package/dist/authorization/program.js.map +1 -0
  78. package/dist/authorization/reexec-wrapper.d.ts +106 -0
  79. package/dist/authorization/reexec-wrapper.d.ts.map +1 -0
  80. package/dist/authorization/reexec-wrapper.js +532 -0
  81. package/dist/authorization/reexec-wrapper.js.map +1 -0
  82. package/dist/authorization/rules.d.ts +9 -0
  83. package/dist/authorization/rules.d.ts.map +1 -1
  84. package/dist/authorization/rules.js +27 -1
  85. package/dist/authorization/rules.js.map +1 -1
  86. package/dist/authorization/shell-lexer.d.ts +39 -0
  87. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  88. package/dist/authorization/shell-lexer.js +113 -69
  89. package/dist/authorization/shell-lexer.js.map +1 -1
  90. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  91. package/dist/bridge/sse/mapper.js +6 -0
  92. package/dist/bridge/sse/mapper.js.map +1 -1
  93. package/dist/capabilities/index.d.ts +54 -0
  94. package/dist/capabilities/index.d.ts.map +1 -0
  95. package/dist/capabilities/index.js +92 -0
  96. package/dist/capabilities/index.js.map +1 -0
  97. package/dist/config/registry.d.ts +2 -1
  98. package/dist/config/registry.d.ts.map +1 -1
  99. package/dist/config/registry.js +3 -2
  100. package/dist/config/registry.js.map +1 -1
  101. package/dist/connector/index.d.ts +4 -4
  102. package/dist/connector/index.d.ts.map +1 -1
  103. package/dist/connector/index.js +3 -3
  104. package/dist/connector/index.js.map +1 -1
  105. package/dist/connector/mcp/adapter.d.ts +16 -1
  106. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  107. package/dist/connector/mcp/adapter.js +60 -4
  108. package/dist/connector/mcp/adapter.js.map +1 -1
  109. package/dist/connector/mcp/client.d.ts +13 -4
  110. package/dist/connector/mcp/client.d.ts.map +1 -1
  111. package/dist/connector/mcp/client.js +20 -3
  112. package/dist/connector/mcp/client.js.map +1 -1
  113. package/dist/connector/mcp/discovery.d.ts +24 -1
  114. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  115. package/dist/connector/mcp/discovery.js +44 -0
  116. package/dist/connector/mcp/discovery.js.map +1 -1
  117. package/dist/connector/mcp/index.d.ts +2 -0
  118. package/dist/connector/mcp/index.d.ts.map +1 -1
  119. package/dist/connector/mcp/index.js +11 -0
  120. package/dist/connector/mcp/index.js.map +1 -1
  121. package/dist/connector/mcp/mcp-toolset.d.ts +133 -0
  122. package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -0
  123. package/dist/connector/mcp/mcp-toolset.js +399 -0
  124. package/dist/connector/mcp/mcp-toolset.js.map +1 -0
  125. package/dist/connector/tools/index.d.ts +2 -2
  126. package/dist/connector/tools/index.d.ts.map +1 -1
  127. package/dist/connector/tools/index.js +1 -1
  128. package/dist/connector/tools/index.js.map +1 -1
  129. package/dist/connector/tools/router.d.ts +15 -13
  130. package/dist/connector/tools/router.d.ts.map +1 -1
  131. package/dist/connector/tools/router.js +30 -51
  132. package/dist/connector/tools/router.js.map +1 -1
  133. package/dist/contracts/a2a.d.ts +2 -2
  134. package/dist/directory/derive-supervisor.d.ts +2 -2
  135. package/dist/directory/derive-supervisor.d.ts.map +1 -1
  136. package/dist/directory/derive-supervisor.js +6 -7
  137. package/dist/directory/derive-supervisor.js.map +1 -1
  138. package/dist/directory/derive.d.ts.map +1 -1
  139. package/dist/directory/derive.js +5 -5
  140. package/dist/directory/derive.js.map +1 -1
  141. package/dist/execution/code-runtime/types.d.ts +2 -2
  142. package/dist/execution/code-runtime/types.js +1 -1
  143. package/dist/invariants/index.d.ts +2 -1
  144. package/dist/invariants/index.d.ts.map +1 -1
  145. package/dist/invariants/index.js +3 -2
  146. package/dist/invariants/index.js.map +1 -1
  147. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  148. package/dist/manager/agent/lifecycle.js +9 -0
  149. package/dist/manager/agent/lifecycle.js.map +1 -1
  150. package/dist/manager/connector/environment.d.ts +6 -0
  151. package/dist/manager/connector/environment.d.ts.map +1 -1
  152. package/dist/manager/connector/environment.js +11 -4
  153. package/dist/manager/connector/environment.js.map +1 -1
  154. package/dist/manager/connector/index.d.ts +2 -2
  155. package/dist/manager/connector/index.d.ts.map +1 -1
  156. package/dist/manager/connector/index.js +2 -2
  157. package/dist/manager/connector/index.js.map +1 -1
  158. package/dist/manager/connector/tenant.d.ts +6 -0
  159. package/dist/manager/connector/tenant.d.ts.map +1 -1
  160. package/dist/manager/connector/tenant.js +11 -4
  161. package/dist/manager/connector/tenant.js.map +1 -1
  162. package/dist/manager/index.d.ts +2 -2
  163. package/dist/manager/index.d.ts.map +1 -1
  164. package/dist/manager/index.js +2 -2
  165. package/dist/manager/index.js.map +1 -1
  166. package/dist/manager/resident/learning-observation.d.ts +4 -4
  167. package/dist/manager/resident/learning.d.ts +36 -36
  168. package/dist/manager/session/attribution.d.ts +22 -0
  169. package/dist/manager/session/attribution.d.ts.map +1 -0
  170. package/dist/manager/session/attribution.js +64 -0
  171. package/dist/manager/session/attribution.js.map +1 -0
  172. package/dist/manager/session/turn-recorder.d.ts +14 -0
  173. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  174. package/dist/manager/session/turn-recorder.js +208 -55
  175. package/dist/manager/session/turn-recorder.js.map +1 -1
  176. package/dist/peers/address.d.ts +36 -0
  177. package/dist/peers/address.d.ts.map +1 -0
  178. package/dist/peers/address.js +52 -0
  179. package/dist/peers/address.js.map +1 -0
  180. package/dist/peers/client.d.ts +47 -0
  181. package/dist/peers/client.d.ts.map +1 -0
  182. package/dist/peers/client.js +132 -0
  183. package/dist/peers/client.js.map +1 -0
  184. package/dist/peers/dir.d.ts +88 -0
  185. package/dist/peers/dir.d.ts.map +1 -0
  186. package/dist/peers/dir.js +139 -0
  187. package/dist/peers/dir.js.map +1 -0
  188. package/dist/peers/endpoint.d.ts +144 -0
  189. package/dist/peers/endpoint.d.ts.map +1 -0
  190. package/dist/peers/endpoint.js +420 -0
  191. package/dist/peers/endpoint.js.map +1 -0
  192. package/dist/peers/envelope.d.ts +42 -0
  193. package/dist/peers/envelope.d.ts.map +1 -0
  194. package/dist/peers/envelope.js +110 -0
  195. package/dist/peers/envelope.js.map +1 -0
  196. package/dist/peers/index.d.ts +30 -0
  197. package/dist/peers/index.d.ts.map +1 -0
  198. package/dist/peers/index.js +22 -0
  199. package/dist/peers/index.js.map +1 -0
  200. package/dist/peers/protocol.d.ts +645 -0
  201. package/dist/peers/protocol.d.ts.map +1 -0
  202. package/dist/peers/protocol.js +151 -0
  203. package/dist/peers/protocol.js.map +1 -0
  204. package/dist/peers/record.d.ts +71 -0
  205. package/dist/peers/record.d.ts.map +1 -0
  206. package/dist/peers/record.js +45 -0
  207. package/dist/peers/record.js.map +1 -0
  208. package/dist/peers/registry.d.ts +54 -0
  209. package/dist/peers/registry.d.ts.map +1 -0
  210. package/dist/peers/registry.js +213 -0
  211. package/dist/peers/registry.js.map +1 -0
  212. package/dist/plugin/define.d.ts +24 -0
  213. package/dist/plugin/define.d.ts.map +1 -0
  214. package/dist/plugin/define.js +42 -0
  215. package/dist/plugin/define.js.map +1 -0
  216. package/dist/plugin/index.d.ts +2 -0
  217. package/dist/plugin/index.d.ts.map +1 -1
  218. package/dist/plugin/index.js +1 -0
  219. package/dist/plugin/index.js.map +1 -1
  220. package/dist/plugin/lifecycle.d.ts +27 -3
  221. package/dist/plugin/lifecycle.d.ts.map +1 -1
  222. package/dist/plugin/lifecycle.js +242 -92
  223. package/dist/plugin/lifecycle.js.map +1 -1
  224. package/dist/plugin/resolver.d.ts +2 -2
  225. package/dist/plugin/resolver.d.ts.map +1 -1
  226. package/dist/plugin/resolver.js.map +1 -1
  227. package/dist/plugin/shell-hook.d.ts.map +1 -1
  228. package/dist/plugin/shell-hook.js +17 -3
  229. package/dist/plugin/shell-hook.js.map +1 -1
  230. package/dist/pricing/catalogue.generated.d.ts.map +1 -1
  231. package/dist/pricing/catalogue.generated.js +28 -4
  232. package/dist/pricing/catalogue.generated.js.map +1 -1
  233. package/dist/probe/errors.d.ts +2 -1
  234. package/dist/probe/errors.d.ts.map +1 -1
  235. package/dist/probe/errors.js +3 -2
  236. package/dist/probe/errors.js.map +1 -1
  237. package/dist/prompt/coding-agent-doctrine.d.ts +18 -7
  238. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  239. package/dist/prompt/coding-agent-doctrine.js +11 -6
  240. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  241. package/dist/prompt/contributions.d.ts +4 -1
  242. package/dist/prompt/contributions.d.ts.map +1 -1
  243. package/dist/prompt/contributions.js +7 -2
  244. package/dist/prompt/contributions.js.map +1 -1
  245. package/dist/prompt/index.d.ts +1 -1
  246. package/dist/prompt/index.d.ts.map +1 -1
  247. package/dist/prompt/index.js +1 -1
  248. package/dist/prompt/index.js.map +1 -1
  249. package/dist/provider/collect-chat-completion.d.ts +6 -1
  250. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  251. package/dist/provider/collect-chat-completion.js +88 -10
  252. package/dist/provider/collect-chat-completion.js.map +1 -1
  253. package/dist/provider/mock.d.ts.map +1 -1
  254. package/dist/provider/mock.js +23 -6
  255. package/dist/provider/mock.js.map +1 -1
  256. package/dist/provider/registry.d.ts +2 -1
  257. package/dist/provider/registry.d.ts.map +1 -1
  258. package/dist/provider/registry.js +3 -2
  259. package/dist/provider/registry.js.map +1 -1
  260. package/dist/provider/tool-call-framing.d.ts +164 -0
  261. package/dist/provider/tool-call-framing.d.ts.map +1 -0
  262. package/dist/provider/tool-call-framing.js +163 -0
  263. package/dist/provider/tool-call-framing.js.map +1 -0
  264. package/dist/public-runtime.d.ts +27 -14
  265. package/dist/public-runtime.d.ts.map +1 -1
  266. package/dist/public-runtime.js +49 -11
  267. package/dist/public-runtime.js.map +1 -1
  268. package/dist/public-tools.d.ts +9 -6
  269. package/dist/public-tools.d.ts.map +1 -1
  270. package/dist/public-tools.js +13 -5
  271. package/dist/public-tools.js.map +1 -1
  272. package/dist/public-types.d.ts +16 -5
  273. package/dist/public-types.d.ts.map +1 -1
  274. package/dist/read-model/registry.d.ts +2 -1
  275. package/dist/read-model/registry.d.ts.map +1 -1
  276. package/dist/read-model/registry.js +3 -2
  277. package/dist/read-model/registry.js.map +1 -1
  278. package/dist/registry/ManagedRegistry.d.ts +30 -0
  279. package/dist/registry/ManagedRegistry.d.ts.map +1 -1
  280. package/dist/registry/ManagedRegistry.js +45 -6
  281. package/dist/registry/ManagedRegistry.js.map +1 -1
  282. package/dist/registry/collision.d.ts +57 -0
  283. package/dist/registry/collision.d.ts.map +1 -0
  284. package/dist/registry/collision.js +41 -0
  285. package/dist/registry/collision.js.map +1 -0
  286. package/dist/registry/command/index.d.ts +5 -3
  287. package/dist/registry/command/index.d.ts.map +1 -1
  288. package/dist/registry/command/index.js +6 -4
  289. package/dist/registry/command/index.js.map +1 -1
  290. package/dist/registry/index.d.ts +3 -4
  291. package/dist/registry/index.d.ts.map +1 -1
  292. package/dist/registry/index.js +2 -2
  293. package/dist/registry/index.js.map +1 -1
  294. package/dist/registry/plugin/index.d.ts.map +1 -1
  295. package/dist/registry/plugin/index.js +14 -1
  296. package/dist/registry/plugin/index.js.map +1 -1
  297. package/dist/registry/tool/callable.d.ts +22 -0
  298. package/dist/registry/tool/callable.d.ts.map +1 -0
  299. package/dist/registry/tool/callable.js +28 -0
  300. package/dist/registry/tool/callable.js.map +1 -0
  301. package/dist/registry/tool/execute.d.ts +14 -77
  302. package/dist/registry/tool/execute.d.ts.map +1 -1
  303. package/dist/registry/tool/execute.js +15 -720
  304. package/dist/registry/tool/execute.js.map +1 -1
  305. package/dist/registry/tool/portable.d.ts +25 -0
  306. package/dist/registry/tool/portable.d.ts.map +1 -1
  307. package/dist/registry/tool/portable.js +50 -0
  308. package/dist/registry/tool/portable.js.map +1 -1
  309. package/dist/registry/tool/presentation.d.ts +6 -5
  310. package/dist/registry/tool/presentation.d.ts.map +1 -1
  311. package/dist/registry/tool/presentation.js +3 -3
  312. package/dist/registry/tool/presentation.js.map +1 -1
  313. package/dist/runtime/bidi/session.d.ts +5 -4
  314. package/dist/runtime/bidi/session.d.ts.map +1 -1
  315. package/dist/runtime/bidi/session.js +18 -1
  316. package/dist/runtime/bidi/session.js.map +1 -1
  317. package/dist/runtime/query/executor/tool-call-admission.d.ts +82 -13
  318. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  319. package/dist/runtime/query/executor/tool-call-admission.js +227 -17
  320. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  321. package/dist/runtime/query/executor.d.ts +37 -5
  322. package/dist/runtime/query/executor.d.ts.map +1 -1
  323. package/dist/runtime/query/executor.js +103 -14
  324. package/dist/runtime/query/executor.js.map +1 -1
  325. package/dist/runtime/query/file-evidence-replay.d.ts +1 -1
  326. package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -1
  327. package/dist/runtime/query/file-evidence-replay.js +8 -7
  328. package/dist/runtime/query/file-evidence-replay.js.map +1 -1
  329. package/dist/runtime/query/fork/prepare.d.ts +4 -1
  330. package/dist/runtime/query/fork/prepare.d.ts.map +1 -1
  331. package/dist/runtime/query/fork/prepare.js +4 -0
  332. package/dist/runtime/query/fork/prepare.js.map +1 -1
  333. package/dist/runtime/query/guardrail-presets.d.ts +4 -3
  334. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
  335. package/dist/runtime/query/guardrail-presets.js +4 -3
  336. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  337. package/dist/runtime/query/index.d.ts +23 -10
  338. package/dist/runtime/query/index.d.ts.map +1 -1
  339. package/dist/runtime/query/index.js +149 -70
  340. package/dist/runtime/query/index.js.map +1 -1
  341. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  342. package/dist/runtime/query/iteration/index.js +8 -1
  343. package/dist/runtime/query/iteration/index.js.map +1 -1
  344. package/dist/runtime/query/iteration/phases/compaction.js +1 -1
  345. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  346. package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
  347. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  348. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  349. package/dist/runtime/query/iteration/phases/tool-review.js +55 -2
  350. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  351. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  352. package/dist/runtime/query/iteration/stream-turn.js +342 -116
  353. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  354. package/dist/runtime/query/iteration/tool-input.d.ts +79 -0
  355. package/dist/runtime/query/iteration/tool-input.d.ts.map +1 -0
  356. package/dist/runtime/query/iteration/tool-input.js +291 -0
  357. package/dist/runtime/query/iteration/tool-input.js.map +1 -0
  358. package/dist/runtime/query/observation-context.d.ts +2 -2
  359. package/dist/runtime/query/observation-context.d.ts.map +1 -1
  360. package/dist/runtime/query/observation-context.js.map +1 -1
  361. package/dist/runtime/query/prelude-lease.d.ts +18 -0
  362. package/dist/runtime/query/prelude-lease.d.ts.map +1 -0
  363. package/dist/runtime/query/prelude-lease.js +121 -0
  364. package/dist/runtime/query/prelude-lease.js.map +1 -0
  365. package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
  366. package/dist/runtime/query/prepare-turn.js +386 -187
  367. package/dist/runtime/query/prepare-turn.js.map +1 -1
  368. package/dist/runtime/query/prompt-cache.d.ts +2 -2
  369. package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
  370. package/dist/runtime/query/prompt.d.ts +2 -2
  371. package/dist/runtime/query/prompt.d.ts.map +1 -1
  372. package/dist/runtime/query/prompt.js +1 -1
  373. package/dist/runtime/query/prompt.js.map +1 -1
  374. package/dist/runtime/query/resume-session.d.ts.map +1 -1
  375. package/dist/runtime/query/resume-session.js +37 -2
  376. package/dist/runtime/query/resume-session.js.map +1 -1
  377. package/dist/runtime/query/review-policy.d.ts +65 -3
  378. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  379. package/dist/runtime/query/review-policy.js +143 -22
  380. package/dist/runtime/query/review-policy.js.map +1 -1
  381. package/dist/runtime/query/tooling.d.ts +3 -2
  382. package/dist/runtime/query/tooling.d.ts.map +1 -1
  383. package/dist/runtime/query/tooling.js.map +1 -1
  384. package/dist/runtime/query/turn-state.d.ts.map +1 -1
  385. package/dist/runtime/query/turn-state.js +5 -0
  386. package/dist/runtime/query/turn-state.js.map +1 -1
  387. package/dist/runtime/system-events.d.ts +112 -0
  388. package/dist/runtime/system-events.d.ts.map +1 -0
  389. package/dist/runtime/system-events.js +183 -0
  390. package/dist/runtime/system-events.js.map +1 -0
  391. package/dist/scheduler/delegating.d.ts +2 -1
  392. package/dist/scheduler/delegating.d.ts.map +1 -1
  393. package/dist/scheduler/delegating.js +3 -2
  394. package/dist/scheduler/delegating.js.map +1 -1
  395. package/dist/skills/index.d.ts +1 -1
  396. package/dist/skills/index.d.ts.map +1 -1
  397. package/dist/skills/index.js +1 -1
  398. package/dist/skills/index.js.map +1 -1
  399. package/dist/skills/registry.d.ts +18 -0
  400. package/dist/skills/registry.d.ts.map +1 -1
  401. package/dist/skills/registry.js +20 -0
  402. package/dist/skills/registry.js.map +1 -1
  403. package/dist/store/evidence/index-page.d.ts +2 -2
  404. package/dist/store/session-log/conformance.d.ts +1 -1
  405. package/dist/store/session-log/conformance.d.ts.map +1 -1
  406. package/dist/store/session-log/conformance.js +49 -8
  407. package/dist/store/session-log/conformance.js.map +1 -1
  408. package/dist/store/session-log/core.d.ts +8 -3
  409. package/dist/store/session-log/core.d.ts.map +1 -1
  410. package/dist/store/session-log/core.js +2 -1
  411. package/dist/store/session-log/core.js.map +1 -1
  412. package/dist/store/session-log/fold.d.ts +12 -0
  413. package/dist/store/session-log/fold.d.ts.map +1 -1
  414. package/dist/store/session-log/fold.js +57 -7
  415. package/dist/store/session-log/fold.js.map +1 -1
  416. package/dist/store/session-log/index.d.ts +2 -2
  417. package/dist/store/session-log/index.d.ts.map +1 -1
  418. package/dist/store/session-log/index.js +1 -1
  419. package/dist/store/session-log/index.js.map +1 -1
  420. package/dist/test-support/toolset.d.ts +19 -0
  421. package/dist/test-support/toolset.d.ts.map +1 -0
  422. package/dist/test-support/toolset.js +20 -0
  423. package/dist/test-support/toolset.js.map +1 -0
  424. package/dist/tools/builtins/bash.d.ts +29 -0
  425. package/dist/tools/builtins/bash.d.ts.map +1 -1
  426. package/dist/tools/builtins/bash.js +19 -9
  427. package/dist/tools/builtins/bash.js.map +1 -1
  428. package/dist/tools/builtins/browser-url.d.ts +1 -1
  429. package/dist/tools/builtins/browser-url.js +1 -1
  430. package/dist/tools/builtins/browser.d.ts +6 -6
  431. package/dist/tools/builtins/computer-use-coordinates.d.ts +65 -0
  432. package/dist/tools/builtins/computer-use-coordinates.d.ts.map +1 -0
  433. package/dist/tools/builtins/computer-use-coordinates.js +123 -0
  434. package/dist/tools/builtins/computer-use-coordinates.js.map +1 -0
  435. package/dist/tools/builtins/computer-use-image.d.ts +77 -0
  436. package/dist/tools/builtins/computer-use-image.d.ts.map +1 -0
  437. package/dist/tools/builtins/computer-use-image.js +223 -0
  438. package/dist/tools/builtins/computer-use-image.js.map +1 -0
  439. package/dist/tools/builtins/computer-use.d.ts +519 -14
  440. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  441. package/dist/tools/builtins/computer-use.js +1196 -183
  442. package/dist/tools/builtins/computer-use.js.map +1 -1
  443. package/dist/tools/builtins/edit.d.ts.map +1 -1
  444. package/dist/tools/builtins/edit.js +9 -1
  445. package/dist/tools/builtins/edit.js.map +1 -1
  446. package/dist/tools/builtins/index.d.ts +2 -1
  447. package/dist/tools/builtins/index.d.ts.map +1 -1
  448. package/dist/tools/builtins/index.js +1 -1
  449. package/dist/tools/builtins/index.js.map +1 -1
  450. package/dist/tools/builtins/json-string-hint.d.ts +15 -0
  451. package/dist/tools/builtins/json-string-hint.d.ts.map +1 -0
  452. package/dist/tools/builtins/json-string-hint.js +17 -0
  453. package/dist/tools/builtins/json-string-hint.js.map +1 -0
  454. package/dist/tools/builtins/search-tools.d.ts.map +1 -1
  455. package/dist/tools/builtins/search-tools.js +7 -15
  456. package/dist/tools/builtins/search-tools.js.map +1 -1
  457. package/dist/tools/builtins/skill.d.ts +74 -0
  458. package/dist/tools/builtins/skill.d.ts.map +1 -1
  459. package/dist/tools/builtins/skill.js +214 -174
  460. package/dist/tools/builtins/skill.js.map +1 -1
  461. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  462. package/dist/tools/builtins/write-file.js +11 -0
  463. package/dist/tools/builtins/write-file.js.map +1 -1
  464. package/dist/tools/command-shell.d.ts +10 -0
  465. package/dist/tools/command-shell.d.ts.map +1 -1
  466. package/dist/tools/command-shell.js +45 -1
  467. package/dist/tools/command-shell.js.map +1 -1
  468. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  469. package/dist/tools/coordinator/agent.js +5 -0
  470. package/dist/tools/coordinator/agent.js.map +1 -1
  471. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  472. package/dist/tools/coordinator/ask-user-question.js +26 -13
  473. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  474. package/dist/tools/coordinator/index.d.ts.map +1 -1
  475. package/dist/tools/coordinator/index.js +5 -0
  476. package/dist/tools/coordinator/index.js.map +1 -1
  477. package/dist/tools/coordinator/question-options.d.ts +78 -0
  478. package/dist/tools/coordinator/question-options.d.ts.map +1 -0
  479. package/dist/tools/coordinator/question-options.js +153 -0
  480. package/dist/tools/coordinator/question-options.js.map +1 -0
  481. package/dist/tools/defineTool.d.ts +12 -0
  482. package/dist/tools/defineTool.d.ts.map +1 -1
  483. package/dist/tools/defineTool.js +24 -0
  484. package/dist/tools/defineTool.js.map +1 -1
  485. package/dist/tools/memory/search.d.ts.map +1 -1
  486. package/dist/tools/memory/search.js +4 -1
  487. package/dist/tools/memory/search.js.map +1 -1
  488. package/dist/tools/memory/update.d.ts.map +1 -1
  489. package/dist/tools/memory/update.js +8 -5
  490. package/dist/tools/memory/update.js.map +1 -1
  491. package/dist/tools/render-nonce.d.ts +47 -0
  492. package/dist/tools/render-nonce.d.ts.map +1 -0
  493. package/dist/tools/render-nonce.js +63 -0
  494. package/dist/tools/render-nonce.js.map +1 -0
  495. package/dist/tools/roster.d.ts +46 -19
  496. package/dist/tools/roster.d.ts.map +1 -1
  497. package/dist/tools/roster.js +63 -33
  498. package/dist/tools/roster.js.map +1 -1
  499. package/dist/tools/schedules/present.d.ts.map +1 -1
  500. package/dist/tools/schedules/present.js +2 -0
  501. package/dist/tools/schedules/present.js.map +1 -1
  502. package/dist/tools/schedules/schedule-tool.d.ts +6 -5
  503. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  504. package/dist/tools/schedules/schedule-tool.js +208 -37
  505. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  506. package/dist/tools/schedules/types.d.ts +120 -6
  507. package/dist/tools/schedules/types.d.ts.map +1 -1
  508. package/dist/tools/trusted-read-only.d.ts +9 -5
  509. package/dist/tools/trusted-read-only.d.ts.map +1 -1
  510. package/dist/tools/trusted-read-only.js +14 -10
  511. package/dist/tools/trusted-read-only.js.map +1 -1
  512. package/dist/tools/untrusted-envelope.d.ts +67 -28
  513. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  514. package/dist/tools/untrusted-envelope.js +108 -59
  515. package/dist/tools/untrusted-envelope.js.map +1 -1
  516. package/dist/toolsets/combine.d.ts +44 -0
  517. package/dist/toolsets/combine.d.ts.map +1 -0
  518. package/dist/toolsets/combine.js +153 -0
  519. package/dist/toolsets/combine.js.map +1 -0
  520. package/dist/toolsets/manager.d.ts +201 -0
  521. package/dist/toolsets/manager.d.ts.map +1 -0
  522. package/dist/toolsets/manager.js +837 -0
  523. package/dist/toolsets/manager.js.map +1 -0
  524. package/dist/toolsets/source-glob.d.ts +15 -0
  525. package/dist/toolsets/source-glob.d.ts.map +1 -0
  526. package/dist/toolsets/source-glob.js +23 -0
  527. package/dist/toolsets/source-glob.js.map +1 -0
  528. package/dist/toolsets/toolset.d.ts +20 -0
  529. package/dist/toolsets/toolset.d.ts.map +1 -0
  530. package/dist/toolsets/toolset.js +28 -0
  531. package/dist/toolsets/toolset.js.map +1 -0
  532. package/dist/toolsets/types.d.ts +128 -0
  533. package/dist/toolsets/types.d.ts.map +1 -0
  534. package/dist/toolsets/types.js +33 -0
  535. package/dist/toolsets/types.js.map +1 -0
  536. package/dist/toolsets/wrappers.d.ts +59 -0
  537. package/dist/toolsets/wrappers.d.ts.map +1 -0
  538. package/dist/toolsets/wrappers.js +165 -0
  539. package/dist/toolsets/wrappers.js.map +1 -0
  540. package/dist/types/agent/base.d.ts +27 -16
  541. package/dist/types/agent/base.d.ts.map +1 -1
  542. package/dist/types/agent/index.d.ts +1 -0
  543. package/dist/types/agent/index.d.ts.map +1 -1
  544. package/dist/types/agent/index.js +1 -0
  545. package/dist/types/agent/index.js.map +1 -1
  546. package/dist/types/agent/pipeline.d.ts +2 -0
  547. package/dist/types/agent/pipeline.d.ts.map +1 -1
  548. package/dist/types/agent/query.d.ts +117 -0
  549. package/dist/types/agent/query.d.ts.map +1 -0
  550. package/dist/types/agent/query.js +2 -0
  551. package/dist/types/agent/query.js.map +1 -0
  552. package/dist/types/agent/reactive.d.ts +2 -129
  553. package/dist/types/agent/reactive.d.ts.map +1 -1
  554. package/dist/types/agent/router.d.ts +2 -0
  555. package/dist/types/agent/router.d.ts.map +1 -1
  556. package/dist/types/agent/supervisor.d.ts +5 -2
  557. package/dist/types/agent/supervisor.d.ts.map +1 -1
  558. package/dist/types/authorization/index.d.ts +70 -12
  559. package/dist/types/authorization/index.d.ts.map +1 -1
  560. package/dist/types/authorization/index.js +11 -0
  561. package/dist/types/authorization/index.js.map +1 -1
  562. package/dist/types/computer-use/index.d.ts +176 -0
  563. package/dist/types/computer-use/index.d.ts.map +1 -1
  564. package/dist/types/computer-use/index.js.map +1 -1
  565. package/dist/types/connector/mcp.d.ts +32 -0
  566. package/dist/types/connector/mcp.d.ts.map +1 -1
  567. package/dist/types/errors/index.d.ts +15 -0
  568. package/dist/types/errors/index.d.ts.map +1 -1
  569. package/dist/types/errors/index.js.map +1 -1
  570. package/dist/types/hitl/index.d.ts +57 -0
  571. package/dist/types/hitl/index.d.ts.map +1 -1
  572. package/dist/types/hitl/index.js.map +1 -1
  573. package/dist/types/message/index.d.ts +130 -9
  574. package/dist/types/message/index.d.ts.map +1 -1
  575. package/dist/types/message/index.js +4 -1
  576. package/dist/types/message/index.js.map +1 -1
  577. package/dist/types/plugin/index.d.ts +22 -4
  578. package/dist/types/plugin/index.d.ts.map +1 -1
  579. package/dist/types/plugin/index.js +1 -0
  580. package/dist/types/plugin/index.js.map +1 -1
  581. package/dist/types/provider/chat.d.ts +5 -0
  582. package/dist/types/provider/chat.d.ts.map +1 -1
  583. package/dist/types/provider/config.d.ts +8 -3
  584. package/dist/types/provider/config.d.ts.map +1 -1
  585. package/dist/types/provider/stream.d.ts +39 -0
  586. package/dist/types/provider/stream.d.ts.map +1 -1
  587. package/dist/types/sandbox/index.d.ts +1 -1
  588. package/dist/types/session/events.d.ts +14 -3
  589. package/dist/types/session/events.d.ts.map +1 -1
  590. package/dist/types/session/events.js.map +1 -1
  591. package/dist/types/tool/index.d.ts +171 -91
  592. package/dist/types/tool/index.d.ts.map +1 -1
  593. package/dist/types/tool/index.js.map +1 -1
  594. package/dist/types/toolset/index.d.ts +10 -40
  595. package/dist/types/toolset/index.d.ts.map +1 -1
  596. package/package.json +3 -1
  597. package/src/advisory/history.ts +27 -2
  598. package/src/advisory/index.ts +1 -1
  599. package/src/advisory/registry.ts +33 -0
  600. package/src/agents/AGENTS.md +14 -7
  601. package/src/agents/PipelineAgent.ts +2 -303
  602. package/src/agents/QueryAgent.ts +269 -0
  603. package/src/agents/ReactiveAgent.ts +6 -216
  604. package/src/agents/RouterAgent.ts +2 -337
  605. package/src/agents/SupervisorAgent.ts +3 -476
  606. package/src/agents/defineAgent.ts +13 -2
  607. package/src/agents/examples/PipelineAgent.ts +302 -0
  608. package/src/agents/examples/RouterAgent.ts +338 -0
  609. package/src/agents/examples/SupervisorAgent.ts +472 -0
  610. package/src/agents/explore.ts +6 -3
  611. package/src/agents/forward-options.ts +37 -0
  612. package/src/agents/index.ts +2 -0
  613. package/src/agents/runAgent.ts +144 -37
  614. package/src/authorization/command-line.ts +2 -2
  615. package/src/authorization/gate.ts +46 -5
  616. package/src/authorization/program.ts +773 -0
  617. package/src/authorization/reexec-wrapper.ts +589 -0
  618. package/src/authorization/rules.ts +36 -1
  619. package/src/authorization/shell-lexer.ts +136 -63
  620. package/src/bridge/sse/mapper.ts +6 -0
  621. package/src/capabilities/index.ts +157 -0
  622. package/src/config/registry.ts +4 -1
  623. package/src/connector/index.ts +9 -2
  624. package/src/connector/mcp/adapter.ts +58 -3
  625. package/src/connector/mcp/client.ts +20 -4
  626. package/src/connector/mcp/discovery.ts +60 -0
  627. package/src/connector/mcp/index.ts +13 -0
  628. package/src/connector/mcp/mcp-toolset.ts +515 -0
  629. package/src/connector/tools/index.ts +2 -2
  630. package/src/connector/tools/router.ts +35 -58
  631. package/src/directory/derive-supervisor.ts +12 -8
  632. package/src/directory/derive.ts +8 -5
  633. package/src/execution/code-runtime/types.ts +2 -2
  634. package/src/invariants/index.ts +4 -1
  635. package/src/manager/agent/lifecycle.ts +9 -0
  636. package/src/manager/connector/environment.ts +17 -4
  637. package/src/manager/connector/index.ts +2 -2
  638. package/src/manager/connector/tenant.ts +17 -4
  639. package/src/manager/index.ts +2 -2
  640. package/src/manager/session/attribution.ts +79 -0
  641. package/src/manager/session/turn-recorder.ts +211 -55
  642. package/src/peers/address.ts +58 -0
  643. package/src/peers/client.ts +202 -0
  644. package/src/peers/dir.ts +176 -0
  645. package/src/peers/endpoint.ts +564 -0
  646. package/src/peers/envelope.ts +121 -0
  647. package/src/peers/index.ts +96 -0
  648. package/src/peers/protocol.ts +196 -0
  649. package/src/peers/record.ts +56 -0
  650. package/src/peers/registry.ts +241 -0
  651. package/src/plugin/define.ts +68 -0
  652. package/src/plugin/index.ts +2 -0
  653. package/src/plugin/lifecycle.ts +286 -106
  654. package/src/plugin/resolver.ts +6 -3
  655. package/src/plugin/shell-hook.ts +21 -5
  656. package/src/pricing/catalogue.generated.ts +28 -4
  657. package/src/pricing/rates.source.json +27 -6
  658. package/src/probe/errors.ts +4 -1
  659. package/src/prompt/coding-agent-doctrine.ts +22 -10
  660. package/src/prompt/contributions.ts +12 -2
  661. package/src/prompt/index.ts +1 -0
  662. package/src/provider/collect-chat-completion.ts +96 -11
  663. package/src/provider/mock.ts +24 -6
  664. package/src/provider/registry.ts +4 -1
  665. package/src/provider/tool-call-framing.ts +226 -0
  666. package/src/public-runtime.ts +152 -9
  667. package/src/public-tools.ts +43 -5
  668. package/src/public-types.ts +65 -6
  669. package/src/read-model/registry.ts +7 -2
  670. package/src/registry/ManagedRegistry.ts +57 -6
  671. package/src/registry/collision.ts +64 -0
  672. package/src/registry/command/index.ts +7 -3
  673. package/src/registry/index.ts +3 -9
  674. package/src/registry/plugin/index.ts +14 -1
  675. package/src/registry/tool/callable.ts +36 -0
  676. package/src/registry/tool/execute.ts +16 -839
  677. package/src/registry/tool/portable.ts +59 -0
  678. package/src/registry/tool/presentation.ts +6 -5
  679. package/src/runtime/bidi/session.ts +24 -5
  680. package/src/runtime/query/executor/tool-call-admission.ts +288 -22
  681. package/src/runtime/query/executor.ts +129 -16
  682. package/src/runtime/query/file-evidence-replay.ts +8 -7
  683. package/src/runtime/query/fork/prepare.ts +6 -1
  684. package/src/runtime/query/guardrail-presets.ts +4 -3
  685. package/src/runtime/query/index.ts +199 -101
  686. package/src/runtime/query/iteration/index.ts +13 -3
  687. package/src/runtime/query/iteration/phases/compaction.ts +1 -1
  688. package/src/runtime/query/iteration/phases/context.ts +2 -2
  689. package/src/runtime/query/iteration/phases/tool-review.ts +59 -2
  690. package/src/runtime/query/iteration/stream-turn.ts +390 -136
  691. package/src/runtime/query/iteration/tool-input.ts +284 -0
  692. package/src/runtime/query/observation-context.ts +2 -2
  693. package/src/runtime/query/prelude-lease.ts +132 -0
  694. package/src/runtime/query/prepare-turn.ts +477 -198
  695. package/src/runtime/query/prompt-cache.ts +2 -2
  696. package/src/runtime/query/prompt.ts +4 -4
  697. package/src/runtime/query/resume-session.ts +42 -3
  698. package/src/runtime/query/review-policy.ts +190 -24
  699. package/src/runtime/query/tooling.ts +3 -6
  700. package/src/runtime/query/turn-state.ts +4 -0
  701. package/src/runtime/system-events.ts +246 -0
  702. package/src/scheduler/delegating.ts +7 -2
  703. package/src/skills/index.ts +1 -1
  704. package/src/skills/registry.ts +33 -0
  705. package/src/store/session-log/conformance.ts +51 -8
  706. package/src/store/session-log/core.ts +10 -4
  707. package/src/store/session-log/fold.ts +33 -7
  708. package/src/store/session-log/index.ts +2 -0
  709. package/src/test-support/toolset.ts +23 -0
  710. package/src/tools/builtins/bash.ts +27 -10
  711. package/src/tools/builtins/browser-url.ts +1 -1
  712. package/src/tools/builtins/computer-use-coordinates.ts +144 -0
  713. package/src/tools/builtins/computer-use-image.ts +278 -0
  714. package/src/tools/builtins/computer-use.ts +1495 -191
  715. package/src/tools/builtins/edit.ts +12 -2
  716. package/src/tools/builtins/index.ts +7 -1
  717. package/src/tools/builtins/json-string-hint.ts +16 -0
  718. package/src/tools/builtins/search-tools.ts +7 -20
  719. package/src/tools/builtins/skill.ts +304 -174
  720. package/src/tools/builtins/write-file.ts +12 -0
  721. package/src/tools/command-shell.ts +46 -1
  722. package/src/tools/coordinator/agent.ts +6 -0
  723. package/src/tools/coordinator/ask-user-question.ts +29 -15
  724. package/src/tools/coordinator/index.ts +6 -0
  725. package/src/tools/coordinator/question-options.ts +195 -0
  726. package/src/tools/defineTool.ts +38 -0
  727. package/src/tools/memory/search.ts +4 -1
  728. package/src/tools/memory/update.ts +8 -5
  729. package/src/tools/render-nonce.ts +69 -0
  730. package/src/tools/roster.ts +84 -33
  731. package/src/tools/schedules/present.ts +2 -0
  732. package/src/tools/schedules/schedule-tool.ts +238 -39
  733. package/src/tools/schedules/types.ts +120 -6
  734. package/src/tools/trusted-read-only.ts +19 -10
  735. package/src/tools/untrusted-envelope.ts +121 -57
  736. package/src/toolsets/combine.ts +181 -0
  737. package/src/toolsets/manager.ts +996 -0
  738. package/src/toolsets/source-glob.ts +22 -0
  739. package/src/toolsets/toolset.ts +31 -0
  740. package/src/toolsets/types.ts +154 -0
  741. package/src/toolsets/wrappers.ts +191 -0
  742. package/src/types/agent/base.ts +29 -16
  743. package/src/types/agent/index.ts +1 -0
  744. package/src/types/agent/pipeline.ts +2 -0
  745. package/src/types/agent/query.ts +129 -0
  746. package/src/types/agent/reactive.ts +5 -142
  747. package/src/types/agent/router.ts +2 -0
  748. package/src/types/agent/supervisor.ts +5 -2
  749. package/src/types/authorization/index.ts +33 -0
  750. package/src/types/computer-use/index.ts +202 -0
  751. package/src/types/connector/mcp.ts +32 -0
  752. package/src/types/errors/index.ts +15 -0
  753. package/src/types/hitl/index.ts +57 -0
  754. package/src/types/message/index.ts +135 -7
  755. package/src/types/plugin/index.ts +44 -21
  756. package/src/types/provider/chat.ts +5 -0
  757. package/src/types/provider/config.ts +8 -3
  758. package/src/types/provider/stream.ts +39 -0
  759. package/src/types/sandbox/index.ts +1 -1
  760. package/src/types/session/events.ts +14 -3
  761. package/src/types/tool/index.ts +173 -105
  762. package/src/types/toolset/index.ts +10 -47
  763. package/dist/registry/toolset/catalog.d.ts +0 -42
  764. package/dist/registry/toolset/catalog.d.ts.map +0 -1
  765. package/dist/registry/toolset/catalog.js +0 -234
  766. package/dist/registry/toolset/catalog.js.map +0 -1
  767. package/src/registry/toolset/catalog.ts +0 -308
@@ -1,42 +1,72 @@
1
1
  /**
2
- * Narrower rosters from a wider one.
2
+ * Selecting a narrower roster of tools from a wider one.
3
3
  *
4
- * A delegate that can only look, or a file-defined agent with an allowlist,
5
- * needs a registry that is the parent's minus something — and every host
6
- * that builds delegates wrote the same two loops. They live here so the
7
- * predicate for "read-only" is the one the authorization gate and the
8
- * prompt exemption already use (`isTrustedReadOnly`), not a third reading
9
- * of the same flag.
4
+ * `filterReadOnlyTools`/`filterToolsNamed` (a registry-shaped "copy the
5
+ * matching subset into a new one") are gone (plan.md v3 §8, a break): a
6
+ * toolset's own `filtered(ts, selector)` (`toolsets/wrappers.ts`) replaces
7
+ * both — `filtered(ts, (tool, source) => isTrustedReadOnly(tool, undefined, source))`
8
+ * for the read-only case, `filtered(ts, names)` for the name-list case —
9
+ * and, unlike the old registry-level copy, it keeps the inner toolset's
10
+ * `availability` and stays live over a live source instead of freezing a
11
+ * snapshot at filter time.
10
12
  *
11
- * Both filters INTERSECT: a name in an allowlist that the source does not
12
- * carry is simply not there. A filter can never widen.
13
- */
14
- import { ToolRegistry } from '../registry/tool/execute.js';
15
- import { isTrustedReadOnly } from './trusted-read-only.js';
16
- /**
17
- * The tools that declare themselves read-only and are trusted to say so.
13
+ * **Filter each contributing toolset, then combine — never the reverse.**
14
+ * `filtered`'s predicate reads `source` from the ONE toolset it is called
15
+ * on (`ToolPredicate`, `toolsets/types.ts`). Call it on a wide toolset
16
+ * `combineToolsets` already merged from several sources and `source` is
17
+ * the merge's own umbrella source, not any one contributor's — so a
18
+ * predicate built to keep only trusted-read-only tools would keep an
19
+ * untrusted MCP server's tool too, because it never sees that server's
20
+ * source. Filter each source's toolset on its own, THEN combine the
21
+ * filtered results:
18
22
  *
19
- * Decided by `isTrustedReadOnly` with no input, which is each tool's own
20
- * declaration: a new read-only builtin joins the roster without this file
21
- * learning its name, and a connected server's tool that merely CLAIMS to be
22
- * read-only stays out unless its provenance is trusted.
23
+ * const readOnlyOnly = parentToolsets.map((ts) =>
24
+ * filtered(ts, (tool, source) => isTrustedReadOnly(tool, undefined, source)),
25
+ * )
26
+ * // readOnlyOnly: readonly Toolset[], hand it to a child ToolManager
27
+ * // directly, or combineToolsets(...) it if the caller needs one Toolset.
23
28
  */
24
- export function filterReadOnlyTools(source) {
25
- const filtered = new ToolRegistry();
26
- for (const tool of source.getAll()) {
27
- if (isTrustedReadOnly(tool, undefined))
28
- filtered.register(tool);
29
- }
30
- return filtered;
29
+ function isPlainObject(value) {
30
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
31
31
  }
32
- /** The tools whose names are listed. Names the source does not carry are ignored. */
33
- export function filterToolsNamed(source, names) {
34
- const allowed = new Set(names);
35
- const filtered = new ToolRegistry();
36
- for (const tool of source.getAll()) {
37
- if (allowed.has(tool.name))
38
- filtered.register(tool);
32
+ function deepEqual(a, b) {
33
+ if (Object.is(a, b))
34
+ return true;
35
+ if (Array.isArray(a) && Array.isArray(b)) {
36
+ return a.length === b.length && a.every((v, i) => deepEqual(v, b[i]));
37
+ }
38
+ if (isPlainObject(a) && isPlainObject(b)) {
39
+ const keysA = Object.keys(a);
40
+ const keysB = Object.keys(b);
41
+ return keysA.length === keysB.length && keysA.every((key) => deepEqual(a[key], b[key]));
39
42
  }
40
- return filtered;
43
+ return false;
44
+ }
45
+ /** Every key `expected` names is present in `actual` with a deep-equal value. */
46
+ function metadataIncludes(actual, expected) {
47
+ const keys = Object.keys(expected);
48
+ if (keys.length === 0)
49
+ return true;
50
+ if (!actual)
51
+ return false;
52
+ return keys.every((key) => {
53
+ const expectedValue = expected[key];
54
+ const actualValue = actual[key];
55
+ return isPlainObject(expectedValue) && isPlainObject(actualValue)
56
+ ? metadataIncludes(actualValue, expectedValue)
57
+ : deepEqual(actualValue, expectedValue);
58
+ });
59
+ }
60
+ /**
61
+ * Whether `tool` matches `selector`: a name list, a metadata deep-match, or a
62
+ * predicate — see {@link ToolSelector}. Never reads anything but `tool.name`
63
+ * and `tool.metadata`, so it never sees a tool's schema or execution.
64
+ */
65
+ export function matchesToolSelector(selector, tool) {
66
+ if (typeof selector === 'function')
67
+ return selector(tool);
68
+ if (Array.isArray(selector))
69
+ return selector.includes(tool.name);
70
+ return metadataIncludes(tool.metadata, selector);
41
71
  }
42
72
  //# sourceMappingURL=roster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"roster.js","sourceRoot":"","sources":["../../src/tools/roster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC/D,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC;YAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAC/B,MAA4B,EAC5B,KAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"roster.js","sourceRoot":"","sources":["../../src/tools/roster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA0BH,SAAS,aAAa,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC5E,CAAC;AAED,SAAS,SAAS,CAAC,CAAU,EAAE,CAAU;IACxC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED,iFAAiF;AACjF,SAAS,gBAAgB,CACxB,MAAqD,EACrD,QAA2C;IAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,aAAa,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC;YAChE,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAsB,EAAE,IAAoB;IAC/E,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChE,OAAO,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAA6C,CAAC,CAAA;AACtF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"present.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/present.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAoBpF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,YAAY,CAkBf;AAQD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,CAWxF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,YAAY,CAWf;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,CAGrF"}
1
+ {"version":3,"file":"present.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/present.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAoBpF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,YAAY,CAoBf;AAQD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,CAWxF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,YAAY,CAWf;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,CAGrF"}
@@ -21,6 +21,8 @@ export function presentScheduleCall(input) {
21
21
  }
22
22
  case 'list':
23
23
  return activity('List scheduled jobs');
24
+ case 'update':
25
+ return activity(`Change scheduled job · ${oneLine(input.job)}`);
24
26
  case 'pause':
25
27
  return activity(`Pause scheduled job · ${oneLine(input.job)}`);
26
28
  case 'resume':
@@ -1 +1 @@
1
- {"version":3,"file":"present.js","sourceRoot":"","sources":["../../../src/tools/schedules/present.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"present.js","sourceRoot":"","sources":["../../../src/tools/schedules/present.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,13 @@ import type { ToolDefinition } from '../../types/tool/index.js';
2
2
  import type { ScheduleToolHost } from './types.js';
3
3
  export declare const SCHEDULE_TOOL_NAME = "schedule";
4
4
  /**
5
- * The `schedule` tool: create, list, pause, resume and delete the operator's
6
- * scheduled jobs from a conversation.
5
+ * The `schedule` tool: create, list, update, pause, resume and delete the
6
+ * operator's scheduled jobs from a conversation.
7
7
  *
8
- * Creation, resuming and deleting are confirmed by a person through the host
9
- * (`ScheduleToolHost.confirm`), on a screen the host draws from its own
10
- * computation. The model cannot propose that uncovered calls run without
8
+ * Creation, updating, resuming and deleting are confirmed by a person
9
+ * through the host (`ScheduleToolHost.confirm`, `confirmUpdate`), on a
10
+ * screen the host draws from its own computation. An update changes the
11
+ * job in place, so it keeps its id and its history. The model cannot propose that uncovered calls run without
11
12
  * asking, nor web access beside a host shell. Register it only where a person
12
13
  * is present to confirm: never in a headless run, a scheduled run or a
13
14
  * sub-agent.
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/schedule-tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAc,MAAM,2BAA2B,CAAA;AAKxF,OAAO,KAAK,EAIX,gBAAgB,EAChB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,kBAAkB,aAAa,CAAA;AA+T5C;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAgC3E"}
1
+ {"version":3,"file":"schedule-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/schedules/schedule-tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAc,MAAM,2BAA2B,CAAA;AAKxF,OAAO,KAAK,EAOX,gBAAgB,EAChB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAggB5C;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAkC3E"}
@@ -6,7 +6,8 @@ import { scanSchedulePrompt } from './prompt-scan.js';
6
6
  export const SCHEDULE_TOOL_NAME = 'schedule';
7
7
  /**
8
8
  * A person reads the whole proposal — the prompt, the rules, the schedule,
9
- * the credential source — before answering `create`, `resume` or `delete`.
9
+ * the credential source — before answering `create`, `update`, `resume` or
10
+ * `delete`.
10
11
  * The executor's `DEFAULT_TOOL_TIMEOUT_MS` (two minutes) is sized for a tool
11
12
  * call, not a person on the other end of a screen, and would abandon the
12
13
  * call out from under them mid-read. `save_skill`
@@ -19,18 +20,35 @@ const NETWORK_TOOLS = ['web_fetch', 'web_search'];
19
20
  const BROWSER_PROFILE = /^[a-z0-9][a-z0-9-]{0,62}$/;
20
21
  const inputSchema = z.object({
21
22
  action: z
22
- .enum(['create', 'list', 'pause', 'resume', 'delete'])
23
- .describe('What to do. create, resume and delete ask the operator first.'),
23
+ .enum(['create', 'list', 'update', 'pause', 'resume', 'delete'])
24
+ .describe('What to do. create, update, resume and delete ask the operator first. To change a job, update it: deleting and creating it again loses its history.'),
24
25
  name: z
25
26
  .string()
26
27
  .regex(/^[a-z0-9][a-z0-9-]{0,62}$/)
27
28
  .optional()
28
29
  .describe('create: job name, lowercase letters, digits and dashes'),
29
- prompt: z.string().min(1).max(20_000).optional().describe('create: what the run is asked to do'),
30
+ kind: z
31
+ .enum(['agent', 'script', 'script+agent'])
32
+ .optional()
33
+ .describe('create: what the run does. agent (default): the model runs prompt. script: a fixed shell script runs unattended, no model call, no prompt. script+agent: a cheap gate script decides whether to wake the model; wake:false costs nothing. Prefer script/script+agent for a fixed, deterministic check that would otherwise cost tokens for no reason.'),
34
+ script: z
35
+ .object({
36
+ body: z.string().min(1).describe('The exact script text, run verbatim once confirmed'),
37
+ shell: z.enum(['bash', 'sh']).describe('Which shell reads it; no default'),
38
+ timeoutMs: z.number().int().positive().optional().describe('The script’s own wall clock'),
39
+ })
40
+ .optional()
41
+ .describe('create: required when kind is script or script+agent. For script+agent this is the wake-gate: its stdout must be exactly one JSON line, {"wake": boolean, "context": string}.'),
42
+ prompt: z
43
+ .string()
44
+ .min(1)
45
+ .max(20_000)
46
+ .optional()
47
+ .describe('create, update: what the model run is asked to do. Required for agent and script+agent; refused for a pure script. For script+agent this is handed to the model only when the wake-gate says wake: true.'),
30
48
  when: z
31
49
  .string()
32
50
  .optional()
33
- .describe('create: "every 30m", "0 9 * * 1-5" (cron), "at 2026-09-24 09:00", "in 2h"'),
51
+ .describe('create, update: "every 30m", "0 9 * * 1-5" (cron), "at 2026-09-24 09:00", "in 2h"'),
34
52
  folder: z
35
53
  .string()
36
54
  .optional()
@@ -71,7 +89,7 @@ const inputSchema = z.object({
71
89
  .describe('Browser access; omit for none'),
72
90
  })
73
91
  .optional()
74
- .describe('create: REQUIRED explicit permission set; there is no default'),
92
+ .describe('create: REQUIRED explicit permission set; there is no default. A pure script cannot use a browser grant. update: the whole new set, only when the permissions change'),
75
93
  budget: z
76
94
  .object({
77
95
  maxIterations: z
@@ -91,11 +109,11 @@ const inputSchema = z.object({
91
109
  .int()
92
110
  .positive()
93
111
  .optional()
94
- .describe('Wall clock of one run, in milliseconds'),
112
+ .describe('Wall clock of one agent phase, in milliseconds'),
95
113
  })
96
114
  .optional()
97
- .describe('Limits of ONE run; omit to use the defaults'),
98
- job: z.string().optional().describe('pause/resume/delete: job name'),
115
+ .describe('Agent-phase limits; omit to use the defaults. Refused for a pure script; use script.timeoutMs instead.'),
116
+ job: z.string().optional().describe('update/pause/resume/delete: job name'),
99
117
  allFolders: z.boolean().optional().describe('list: include jobs of other folders (names only)'),
100
118
  });
101
119
  function refuse(error) {
@@ -112,6 +130,14 @@ function effectsOf(rule) {
112
130
  * Refuse a network tool beside a shell that runs on the host: a scheduled run
113
131
  * that can both read the machine and reach the internet, unattended, is the
114
132
  * exfiltration shape, and only the operator can choose it.
133
+ *
134
+ * For `runKind: 'script'`/`'script+agent'` the "shell" isn't a rule the model
135
+ * could reach at some later live call — it's the confirmed script's own
136
+ * body, which unconditionally runs shell commands whenever it runs at all.
137
+ * The `bash` rule heuristic below answers a question ("could a live call
138
+ * reach bash") that isn't the one being asked here, so a script/script+agent
139
+ * job on the host is treated as reaching a shell outright, whatever its
140
+ * rules say about `bash`.
115
141
  */
116
142
  function networkWithHostShell(draft) {
117
143
  const rules = draft.permissions.rules ?? {};
@@ -119,13 +145,16 @@ function networkWithHostShell(draft) {
119
145
  NETWORK_TOOLS.some((t) => effectsOf(rules[t]).some((e) => e === 'allow' || e === 'ask'));
120
146
  if (!network)
121
147
  return false;
148
+ const onHost = (draft.permissions.execution ?? 'host') === 'host';
149
+ if ((draft.runKind ?? 'agent') !== 'agent')
150
+ return onHost;
122
151
  const bashEffects = effectsOf(rules.bash);
123
152
  // The read-only preset denies bash; its rules are expanded by the host,
124
153
  // so the draft carries only its name.
125
154
  const shellPossible = bashEffects.length > 0
126
155
  ? bashEffects.some((e) => e !== 'deny')
127
156
  : draft.permissions.preset !== 'read-only' && draft.permissions.unmatched !== 'deny';
128
- return shellPossible && (draft.permissions.execution ?? 'host') === 'host';
157
+ return shellPossible && onHost;
129
158
  }
130
159
  /**
131
160
  * The browser grant with its site keys canonicalised, or why it is refused.
@@ -174,34 +203,59 @@ function browserGrant(host, proposed) {
174
203
  },
175
204
  };
176
205
  }
206
+ /** A proposed permission set as a draft carries it, or why it is refused. */
207
+ function checkPermissions(host, proposed) {
208
+ if (!proposed.preset && !proposed.rules && !proposed.browser) {
209
+ return {
210
+ ok: false,
211
+ error: 'permissions needs a preset, rules or a browser grant; an empty permission set is not a choice.',
212
+ };
213
+ }
214
+ if (!proposed.browser)
215
+ return { ok: true, permissions: proposed };
216
+ const grant = browserGrant(host, proposed.browser);
217
+ if (!grant.ok)
218
+ return grant;
219
+ return { ok: true, permissions: { ...proposed, browser: grant.grant } };
220
+ }
221
+ const NETWORK_WITH_HOST_SHELL = 'A scheduled job proposed here cannot combine web or browser access with a shell on the host. Deny bash, use execution "sandbox", or ask the operator to create it with `namzu schedule add`.';
177
222
  async function create(host, input, signal) {
178
- const missing = ['name', 'prompt', 'when', 'permissions'].filter((k) => input[k] === undefined);
179
- if (missing.length > 0) {
180
- return refuse(`create needs ${missing.join(', ')}. permissions is required: propose an explicit set (a preset and/or rules, plus unmatched).`);
223
+ const runKind = input.kind ?? 'agent';
224
+ const required = ['name', 'when', 'permissions'].filter((k) => input[k] === undefined);
225
+ if (runKind !== 'script' && input.prompt === undefined)
226
+ required.push('prompt');
227
+ if (runKind !== 'agent' && input.script === undefined)
228
+ required.push('script');
229
+ if (required.length > 0) {
230
+ return refuse(`create needs ${required.join(', ')}. permissions is required: propose an explicit set (a preset and/or rules, plus unmatched).`);
181
231
  }
182
- const proposed = input.permissions;
183
- if (!proposed.preset && !proposed.rules && !proposed.browser) {
184
- return refuse('permissions needs a preset, rules or a browser grant; an empty permission set is not a choice.');
232
+ if (runKind === 'agent' && input.script !== undefined) {
233
+ return refuse('an agent job has no script; omit kind (or set it to agent) to use one');
185
234
  }
186
- let permissions = proposed;
187
- if (proposed.browser) {
188
- const grant = browserGrant(host, proposed.browser);
189
- if (!grant.ok)
190
- return refuse(grant.error);
191
- permissions = { ...proposed, browser: grant.grant };
235
+ if (runKind === 'script' && input.prompt !== undefined)
236
+ return refuse('a pure script job has no prompt; remove prompt');
237
+ if (runKind === 'script' && input.budget !== undefined) {
238
+ return refuse('a pure script job has no agent budget; remove budget and use script.timeoutMs for its timeout');
192
239
  }
240
+ if (runKind === 'script' && input.permissions?.browser !== undefined)
241
+ return refuse('a pure script job cannot use a browser grant; remove permissions.browser');
242
+ const checked = checkPermissions(host, input.permissions);
243
+ if (!checked.ok)
244
+ return refuse(checked.error);
245
+ const permissions = checked.permissions;
193
246
  const draft = {
194
247
  name: input.name,
195
- prompt: input.prompt,
196
248
  when: input.when,
249
+ ...(runKind !== 'agent' ? { runKind } : {}),
250
+ ...(input.script ? { script: input.script } : {}),
251
+ ...(input.prompt !== undefined ? { prompt: input.prompt } : {}),
197
252
  ...(input.folder !== undefined ? { folder: input.folder } : {}),
198
253
  ...(input.tz !== undefined ? { tz: input.tz } : {}),
199
254
  permissions,
200
255
  ...(input.budget ? { budget: input.budget } : {}),
201
256
  };
202
- if (networkWithHostShell(draft)) {
203
- return refuse('A scheduled job proposed here cannot combine web or browser access with a shell on the host. Deny bash, use execution "sandbox", or ask the operator to create it with `namzu schedule add`.');
204
- }
257
+ if (networkWithHostShell(draft))
258
+ return refuse(NETWORK_WITH_HOST_SHELL);
205
259
  let preview;
206
260
  try {
207
261
  preview = await host.preview(draft);
@@ -236,7 +290,9 @@ async function create(host, input, signal) {
236
290
  const created = await host.create(draft, preview, { paused: answer === 'create-paused' });
237
291
  const said = answer === 'create-paused'
238
292
  ? `Job "${created.name}" was created paused. The operator can resume it with /schedule.`
239
- : `Job "${created.name}" was created. It runs ${preview.schedule}, with nobody watching; results arrive as a notification and a session.`;
293
+ : runKind === 'script'
294
+ ? `Job "${created.name}" was created. It runs ${preview.schedule}, with nobody watching; results are recorded in its history and may arrive as a notification. It creates no session.`
295
+ : `Job "${created.name}" was created. It runs ${preview.schedule}, with nobody watching; results arrive as a notification and a session.`;
240
296
  return {
241
297
  success: true,
242
298
  output: created.note ? `${said} ${created.note}` : said,
@@ -244,12 +300,124 @@ async function create(host, input, signal) {
244
300
  };
245
301
  }
246
302
  async function list(host, input) {
247
- const jobs = await host.list({ allFolders: input.allFolders === true });
303
+ let jobs;
304
+ try {
305
+ jobs = await host.list({ allFolders: input.allFolders === true });
306
+ }
307
+ catch (error) {
308
+ return refuse(error instanceof Error ? error.message : String(error));
309
+ }
248
310
  if (jobs.length === 0)
249
311
  return { success: true, output: 'No scheduled jobs.', data: { jobs: [] } };
250
- const lines = jobs.map((j) => `${j.name} · ${j.state} · ${j.schedule}${j.nextFireAt ? ` · next ${j.nextFireAt}` : ''}${j.lastStatus ? ` · last ${j.lastStatus}` : ''} · ${j.folder}`);
312
+ const lines = jobs.map((j) => `${j.name} · ${j.state} · ${j.schedule}${j.nextFireAt ? ` · next ${j.nextFireAt}` : ''}${j.lastStatus ? ` · last ${j.lastStatus}` : ''} · ${j.folder}${j.inSessionFolder ? ' (this folder)' : ''}`);
251
313
  return { success: true, output: lines.join('\n'), data: { jobs } };
252
314
  }
315
+ /** The fields `update` may change, as the model set them. */
316
+ const CHANGEABLE = [
317
+ 'prompt',
318
+ 'when',
319
+ 'folder',
320
+ 'tz',
321
+ 'permissions',
322
+ 'budget',
323
+ 'kind',
324
+ 'script',
325
+ ];
326
+ async function update(host, input, signal) {
327
+ if (!host.previewUpdate || !host.confirmUpdate || !host.update) {
328
+ return refuse('This host cannot change a scheduled job. Ask the operator to change it themselves; do not delete and create it again, which loses its history.');
329
+ }
330
+ if (!input.job)
331
+ return refuse("update needs job (the job's name) and the fields to change.");
332
+ if (input.name !== undefined) {
333
+ return refuse('update cannot rename a job: name the job to change with job, and leave name out.');
334
+ }
335
+ const given = CHANGEABLE.filter((k) => input[k] !== undefined);
336
+ if (given.length === 0) {
337
+ return refuse(`update needs at least one of ${CHANGEABLE.join(', ')} to change.`);
338
+ }
339
+ if (input.kind === 'agent' && input.script !== undefined) {
340
+ return refuse('update cannot set kind to agent while also giving a script; drop script to make it an agent job, or leave kind unset (or as script/script+agent) to keep one.');
341
+ }
342
+ let permissions;
343
+ if (input.permissions) {
344
+ const checked = checkPermissions(host, input.permissions);
345
+ if (!checked.ok)
346
+ return refuse(checked.error);
347
+ permissions = checked.permissions;
348
+ // The same guard `create` applies, against whatever THIS call
349
+ // changes: a kind given here is read too, since a script/script+agent
350
+ // job is refused this combination even where an agent job is not (no
351
+ // live turn reviews a script's calls one at a time). A kind changed
352
+ // with the existing permissions is checked on the effective preview
353
+ // after the host has applied all changes below.
354
+ if (networkWithHostShell({
355
+ name: '',
356
+ prompt: '',
357
+ when: '',
358
+ ...(input.kind !== undefined ? { runKind: input.kind } : {}),
359
+ permissions,
360
+ }))
361
+ return refuse(NETWORK_WITH_HOST_SHELL);
362
+ }
363
+ const changes = {
364
+ ...(input.prompt !== undefined ? { prompt: input.prompt } : {}),
365
+ ...(input.when !== undefined ? { when: input.when } : {}),
366
+ ...(input.folder !== undefined ? { folder: input.folder } : {}),
367
+ ...(input.tz !== undefined ? { tz: input.tz } : {}),
368
+ ...(permissions ? { permissions } : {}),
369
+ ...(input.budget ? { budget: input.budget } : {}),
370
+ ...(input.kind !== undefined ? { runKind: input.kind } : {}),
371
+ ...(input.script !== undefined ? { script: input.script } : {}),
372
+ };
373
+ let proposal;
374
+ try {
375
+ proposal = await host.previewUpdate(input.job, changes);
376
+ }
377
+ catch (error) {
378
+ return refuse(error instanceof Error ? error.message : String(error));
379
+ }
380
+ const effectiveKind = input.kind ?? proposal.preview.runKind ?? 'agent';
381
+ if ((effectiveKind === 'script' || effectiveKind === 'script+agent') &&
382
+ proposal.preview.execution === 'host' &&
383
+ (proposal.preview.networkGrantAccess ?? proposal.preview.networkAccess)) {
384
+ return refuse(NETWORK_WITH_HOST_SHELL);
385
+ }
386
+ let confirmed = false;
387
+ try {
388
+ confirmed = await host.confirmUpdate({
389
+ ...proposal,
390
+ promptFindings: scanSchedulePrompt(proposal.preview.prompt),
391
+ proposedBy: 'model',
392
+ }, signal);
393
+ }
394
+ catch {
395
+ confirmed = false;
396
+ }
397
+ // As for `create`: never save on an answer that came after the
398
+ // operator was no longer being asked.
399
+ if (signal?.aborted)
400
+ confirmed = false;
401
+ if (!confirmed) {
402
+ return {
403
+ ...refuse(`The operator did not confirm the change; "${proposal.preview.name}" was not changed.`),
404
+ data: { cancelled: true },
405
+ };
406
+ }
407
+ let saved;
408
+ try {
409
+ saved = await host.update(proposal.preview);
410
+ }
411
+ catch (error) {
412
+ return refuse(error instanceof Error ? error.message : String(error));
413
+ }
414
+ const said = `Job "${saved.name}" was updated in place and keeps its history. It runs ${proposal.preview.schedule}.`;
415
+ return {
416
+ success: true,
417
+ output: saved.note ? `${said} ${saved.note}` : said,
418
+ data: { name: saved.name, updated: true, changes: proposal.changes },
419
+ };
420
+ }
253
421
  async function lifecycle(host, input, action, signal) {
254
422
  if (!input.job)
255
423
  return refuse(`${action} needs job (the job's name).`);
@@ -282,12 +450,13 @@ async function lifecycle(host, input, action, signal) {
282
450
  return { success: true, output: `Job "${job.name}" ${verb}.`, data: { name: job.name, action } };
283
451
  }
284
452
  /**
285
- * The `schedule` tool: create, list, pause, resume and delete the operator's
286
- * scheduled jobs from a conversation.
453
+ * The `schedule` tool: create, list, update, pause, resume and delete the
454
+ * operator's scheduled jobs from a conversation.
287
455
  *
288
- * Creation, resuming and deleting are confirmed by a person through the host
289
- * (`ScheduleToolHost.confirm`), on a screen the host draws from its own
290
- * computation. The model cannot propose that uncovered calls run without
456
+ * Creation, updating, resuming and deleting are confirmed by a person
457
+ * through the host (`ScheduleToolHost.confirm`, `confirmUpdate`), on a
458
+ * screen the host draws from its own computation. An update changes the
459
+ * job in place, so it keeps its id and its history. The model cannot propose that uncovered calls run without
291
460
  * asking, nor web access beside a host shell. Register it only where a person
292
461
  * is present to confirm: never in a headless run, a scheduled run or a
293
462
  * sub-agent.
@@ -296,7 +465,7 @@ export function buildScheduleTools(host) {
296
465
  return [
297
466
  defineTool({
298
467
  name: SCHEDULE_TOOL_NAME,
299
- description: "Manage the operator's scheduled jobs: prompts that run later in a folder, with nobody watching, under an explicit permission set. Use it only when the user asks for something to happen on a schedule. create, resume and delete are confirmed by the operator; pause is not. A job needs name, prompt, when and permissions (unmatched: park or deny, plus a preset, rules or a browser grant). Leave every other field (folder, tz, execution, budget, headed) unset unless the user asked for it: the defaults are the operator's, and the confirmation marks each value you chose. Scheduled runs cannot ask questions.",
468
+ description: "Manage the operator's scheduled jobs: model prompts or fixed scripts that run later in a folder, with nobody watching, under an explicit permission set. Use it only when the user asks for something to happen on a schedule. create, update, resume and delete are confirmed by the operator; pause is not. A job needs name, when and permissions (unmatched: park or deny, plus a preset, rules or a browser grant). agent and script+agent also need prompt; script and script+agent also need script. A pure script has no prompt, model, agent budget, browser grant or session; set script.timeoutMs to limit it. To change a job, update it with job and only the fields that change; do not delete and recreate it. Leave every other field (folder, tz, execution, budget, headed) unset unless the user asked for it: the defaults are the operator's, and the confirmation marks each value you chose. Scheduled runs cannot ask questions.",
300
469
  inputSchema,
301
470
  category: 'custom',
302
471
  permissions: [],
@@ -308,8 +477,8 @@ export function buildScheduleTools(host) {
308
477
  concurrencySafe: false,
309
478
  presentCall: presentScheduleCall,
310
479
  presentResult: presentScheduleResult,
311
- // A person, not a tool, answers `create`/`resume`/`delete`; see
312
- // `OPERATOR_CONFIRM_TIMEOUT_MS`.
480
+ // A person, not a tool, answers `create`/`update`/`resume`/`delete`;
481
+ // see `OPERATOR_CONFIRM_TIMEOUT_MS`.
313
482
  timeoutMs: OPERATOR_CONFIRM_TIMEOUT_MS,
314
483
  async execute(input, context) {
315
484
  switch (input.action) {
@@ -317,6 +486,8 @@ export function buildScheduleTools(host) {
317
486
  return create(host, input, context.abortSignal);
318
487
  case 'list':
319
488
  return list(host, input);
489
+ case 'update':
490
+ return update(host, input, context.abortSignal);
320
491
  default:
321
492
  return lifecycle(host, input, input.action, context.abortSignal);
322
493
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-tool.js","sourceRoot":"","sources":["../../../src/tools/schedules/schedule-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-tool.js","sourceRoot":"","sources":["../../../src/tools/schedules/schedule-tool.ts"],"names":[],"mappings":"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"}