@namzu/sdk 27.0.0 → 28.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 (1439) hide show
  1. package/CHANGELOG.md +1714 -0
  2. package/README.md +45 -42
  3. package/dist/advisory/executor.d.ts.map +1 -1
  4. package/dist/advisory/executor.js +14 -12
  5. package/dist/advisory/executor.js.map +1 -1
  6. package/dist/advisory/registry.d.ts +2 -2
  7. package/dist/advisory/registry.d.ts.map +1 -1
  8. package/dist/advisory/registry.js +2 -2
  9. package/dist/advisory/registry.js.map +1 -1
  10. package/dist/agents/AbstractAgent.d.ts +44 -2
  11. package/dist/agents/AbstractAgent.d.ts.map +1 -1
  12. package/dist/agents/AbstractAgent.js +62 -13
  13. package/dist/agents/AbstractAgent.js.map +1 -1
  14. package/dist/agents/PipelineAgent.d.ts +29 -1
  15. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  16. package/dist/agents/PipelineAgent.js +33 -4
  17. package/dist/agents/PipelineAgent.js.map +1 -1
  18. package/dist/agents/ReactiveAgent.d.ts +2 -1
  19. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  20. package/dist/agents/ReactiveAgent.js +15 -5
  21. package/dist/agents/ReactiveAgent.js.map +1 -1
  22. package/dist/agents/RouterAgent.d.ts +2 -1
  23. package/dist/agents/RouterAgent.d.ts.map +1 -1
  24. package/dist/agents/RouterAgent.js +21 -13
  25. package/dist/agents/RouterAgent.js.map +1 -1
  26. package/dist/agents/SupervisorAgent.d.ts +3 -2
  27. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  28. package/dist/agents/SupervisorAgent.js +29 -14
  29. package/dist/agents/SupervisorAgent.js.map +1 -1
  30. package/dist/agents/handle.d.ts +85 -0
  31. package/dist/agents/handle.d.ts.map +1 -0
  32. package/dist/agents/handle.js +79 -0
  33. package/dist/agents/handle.js.map +1 -0
  34. package/dist/agents/runAgent.d.ts +10 -5
  35. package/dist/agents/runAgent.d.ts.map +1 -1
  36. package/dist/agents/runAgent.js +3 -2
  37. package/dist/agents/runAgent.js.map +1 -1
  38. package/dist/{verification → authorization}/gate.d.ts +4 -4
  39. package/dist/authorization/gate.d.ts.map +1 -0
  40. package/dist/{verification → authorization}/gate.js +31 -24
  41. package/dist/authorization/gate.js.map +1 -0
  42. package/dist/authorization/index.d.ts +6 -0
  43. package/dist/authorization/index.d.ts.map +1 -0
  44. package/dist/authorization/index.js +14 -0
  45. package/dist/authorization/index.js.map +1 -0
  46. package/dist/authorization/permission-presets.d.ts +119 -0
  47. package/dist/authorization/permission-presets.d.ts.map +1 -0
  48. package/dist/authorization/permission-presets.js +137 -0
  49. package/dist/authorization/permission-presets.js.map +1 -0
  50. package/dist/{verification → authorization}/presets.d.ts +3 -3
  51. package/dist/authorization/presets.d.ts.map +1 -0
  52. package/dist/{verification → authorization}/presets.js +12 -0
  53. package/dist/authorization/presets.js.map +1 -0
  54. package/dist/authorization/rules.d.ts +4 -0
  55. package/dist/authorization/rules.d.ts.map +1 -0
  56. package/dist/{verification → authorization}/rules.js +14 -1
  57. package/dist/authorization/rules.js.map +1 -0
  58. package/dist/bridge/a2a/client.d.ts +107 -0
  59. package/dist/bridge/a2a/client.d.ts.map +1 -0
  60. package/dist/bridge/a2a/client.js +275 -0
  61. package/dist/bridge/a2a/client.js.map +1 -0
  62. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  63. package/dist/bridge/a2a/mapper.js +16 -0
  64. package/dist/bridge/a2a/mapper.js.map +1 -1
  65. package/dist/bridge/acp/filesystem.d.ts +33 -0
  66. package/dist/bridge/acp/filesystem.d.ts.map +1 -0
  67. package/dist/bridge/acp/filesystem.js +30 -0
  68. package/dist/bridge/acp/filesystem.js.map +1 -0
  69. package/dist/bridge/acp/index.d.ts +8 -0
  70. package/dist/bridge/acp/index.d.ts.map +1 -0
  71. package/dist/bridge/acp/index.js +5 -0
  72. package/dist/bridge/acp/index.js.map +1 -0
  73. package/dist/bridge/acp/permission.d.ts +51 -0
  74. package/dist/bridge/acp/permission.d.ts.map +1 -0
  75. package/dist/bridge/acp/permission.js +37 -0
  76. package/dist/bridge/acp/permission.js.map +1 -0
  77. package/dist/bridge/acp/server.d.ts +163 -0
  78. package/dist/bridge/acp/server.d.ts.map +1 -0
  79. package/dist/bridge/acp/server.js +312 -0
  80. package/dist/bridge/acp/server.js.map +1 -0
  81. package/dist/bridge/acp/update.d.ts +13 -0
  82. package/dist/bridge/acp/update.d.ts.map +1 -0
  83. package/dist/bridge/acp/update.js +94 -0
  84. package/dist/bridge/acp/update.js.map +1 -0
  85. package/dist/bridge/mcp/connector/adapter.d.ts +2 -0
  86. package/dist/bridge/mcp/connector/adapter.d.ts.map +1 -1
  87. package/dist/bridge/mcp/connector/adapter.js +7 -3
  88. package/dist/bridge/mcp/connector/adapter.js.map +1 -1
  89. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  90. package/dist/bridge/sse/mapper.js +27 -0
  91. package/dist/bridge/sse/mapper.js.map +1 -1
  92. package/dist/bus/breaker.d.ts.map +1 -1
  93. package/dist/bus/breaker.js +15 -10
  94. package/dist/bus/breaker.js.map +1 -1
  95. package/dist/bus/index.d.ts.map +1 -1
  96. package/dist/bus/index.js +10 -8
  97. package/dist/bus/index.js.map +1 -1
  98. package/dist/bus/lock.d.ts.map +1 -1
  99. package/dist/bus/lock.js +36 -19
  100. package/dist/bus/lock.js.map +1 -1
  101. package/dist/bus/ownership.d.ts.map +1 -1
  102. package/dist/bus/ownership.js +17 -9
  103. package/dist/bus/ownership.js.map +1 -1
  104. package/dist/compaction/context-window.d.ts +18 -2
  105. package/dist/compaction/context-window.d.ts.map +1 -1
  106. package/dist/compaction/context-window.js +15 -1
  107. package/dist/compaction/context-window.js.map +1 -1
  108. package/dist/compaction/index.d.ts +3 -0
  109. package/dist/compaction/index.d.ts.map +1 -1
  110. package/dist/compaction/index.js +4 -0
  111. package/dist/compaction/index.js.map +1 -1
  112. package/dist/compaction/manual.d.ts +58 -0
  113. package/dist/compaction/manual.d.ts.map +1 -0
  114. package/dist/compaction/manual.js +104 -0
  115. package/dist/compaction/manual.js.map +1 -0
  116. package/dist/compaction/plan.d.ts +92 -0
  117. package/dist/compaction/plan.d.ts.map +1 -0
  118. package/dist/compaction/plan.js +149 -0
  119. package/dist/compaction/plan.js.map +1 -0
  120. package/dist/compaction/summary.d.ts +23 -0
  121. package/dist/compaction/summary.d.ts.map +1 -0
  122. package/dist/compaction/summary.js +27 -0
  123. package/dist/compaction/summary.js.map +1 -0
  124. package/dist/compaction/verifier.js +2 -2
  125. package/dist/compaction/verifier.js.map +1 -1
  126. package/dist/config/registry.d.ts +104 -0
  127. package/dist/config/registry.d.ts.map +1 -0
  128. package/dist/config/registry.js +105 -0
  129. package/dist/config/registry.js.map +1 -0
  130. package/dist/config/runtime.d.ts +99 -28
  131. package/dist/config/runtime.d.ts.map +1 -1
  132. package/dist/config/runtime.js +27 -0
  133. package/dist/config/runtime.js.map +1 -1
  134. package/dist/connector/BaseConnector.d.ts +1 -1
  135. package/dist/connector/BaseConnector.d.ts.map +1 -1
  136. package/dist/connector/BaseConnector.js +8 -3
  137. package/dist/connector/BaseConnector.js.map +1 -1
  138. package/dist/connector/builtins/http.d.ts +1 -1
  139. package/dist/connector/builtins/http.d.ts.map +1 -1
  140. package/dist/connector/builtins/http.js +11 -2
  141. package/dist/connector/builtins/http.js.map +1 -1
  142. package/dist/connector/builtins/webhook.d.ts +1 -1
  143. package/dist/connector/builtins/webhook.d.ts.map +1 -1
  144. package/dist/connector/builtins/webhook.js +5 -2
  145. package/dist/connector/builtins/webhook.js.map +1 -1
  146. package/dist/connector/index.d.ts +4 -15
  147. package/dist/connector/index.d.ts.map +1 -1
  148. package/dist/connector/index.js +12 -12
  149. package/dist/connector/index.js.map +1 -1
  150. package/dist/connector/mcp/adapter.d.ts +30 -0
  151. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  152. package/dist/connector/mcp/adapter.js +43 -1
  153. package/dist/connector/mcp/adapter.js.map +1 -1
  154. package/dist/connector/mcp/client.d.ts.map +1 -1
  155. package/dist/connector/mcp/client.js +31 -20
  156. package/dist/connector/mcp/client.js.map +1 -1
  157. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  158. package/dist/connector/mcp/discovery.js +31 -20
  159. package/dist/connector/mcp/discovery.js.map +1 -1
  160. package/dist/connector/mcp/http-sse.d.ts +2 -1
  161. package/dist/connector/mcp/http-sse.d.ts.map +1 -1
  162. package/dist/connector/mcp/http-sse.js +9 -6
  163. package/dist/connector/mcp/http-sse.js.map +1 -1
  164. package/dist/connector/mcp/index.d.ts +2 -3
  165. package/dist/connector/mcp/index.d.ts.map +1 -1
  166. package/dist/connector/mcp/index.js +5 -4
  167. package/dist/connector/mcp/index.js.map +1 -1
  168. package/dist/connector/mcp/reconnect.d.ts +123 -0
  169. package/dist/connector/mcp/reconnect.d.ts.map +1 -0
  170. package/dist/connector/mcp/reconnect.js +121 -0
  171. package/dist/connector/mcp/reconnect.js.map +1 -0
  172. package/dist/connector/mcp/server/index.d.ts +28 -0
  173. package/dist/connector/mcp/server/index.d.ts.map +1 -0
  174. package/dist/connector/mcp/server/index.js +27 -0
  175. package/dist/connector/mcp/server/index.js.map +1 -0
  176. package/dist/connector/mcp/{server-stdio.d.ts → server/server-stdio.d.ts} +3 -2
  177. package/dist/connector/mcp/server/server-stdio.d.ts.map +1 -0
  178. package/dist/connector/mcp/{server-stdio.js → server/server-stdio.js} +4 -3
  179. package/dist/connector/mcp/server/server-stdio.js.map +1 -0
  180. package/dist/connector/mcp/{server.d.ts → server/server.d.ts} +5 -4
  181. package/dist/connector/mcp/server/server.d.ts.map +1 -0
  182. package/dist/connector/mcp/{server.js → server/server.js} +14 -9
  183. package/dist/connector/mcp/server/server.js.map +1 -0
  184. package/dist/connector/mcp/stdio.d.ts +2 -1
  185. package/dist/connector/mcp/stdio.d.ts.map +1 -1
  186. package/dist/connector/mcp/stdio.js +15 -7
  187. package/dist/connector/mcp/stdio.js.map +1 -1
  188. package/dist/connector/mcp/streamable-http.d.ts +2 -1
  189. package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
  190. package/dist/connector/mcp/streamable-http.js +5 -4
  191. package/dist/connector/mcp/streamable-http.js.map +1 -1
  192. package/dist/{bridge/tools/connector → connector/tools}/adapter.d.ts +4 -4
  193. package/dist/connector/tools/adapter.d.ts.map +1 -0
  194. package/dist/{bridge/tools/connector → connector/tools}/adapter.js +1 -1
  195. package/dist/connector/tools/adapter.js.map +1 -0
  196. package/dist/{bridge/tools/connector → connector/tools}/definitions.d.ts +2 -2
  197. package/dist/connector/tools/definitions.d.ts.map +1 -0
  198. package/dist/{bridge/tools/connector → connector/tools}/definitions.js +2 -2
  199. package/dist/connector/tools/definitions.js.map +1 -0
  200. package/dist/connector/tools/index.d.ts.map +1 -0
  201. package/dist/connector/tools/index.js.map +1 -0
  202. package/dist/{bridge/tools/connector → connector/tools}/router.d.ts +4 -2
  203. package/dist/connector/tools/router.d.ts.map +1 -0
  204. package/dist/{bridge/tools/connector → connector/tools}/router.js +14 -7
  205. package/dist/connector/tools/router.js.map +1 -0
  206. package/dist/connector/web/guarded-fetch.d.ts +60 -0
  207. package/dist/connector/web/guarded-fetch.d.ts.map +1 -0
  208. package/dist/connector/web/guarded-fetch.js +233 -0
  209. package/dist/connector/web/guarded-fetch.js.map +1 -0
  210. package/dist/connector/web/index.d.ts +5 -0
  211. package/dist/connector/web/index.d.ts.map +1 -0
  212. package/dist/connector/web/index.js +7 -0
  213. package/dist/connector/web/index.js.map +1 -0
  214. package/dist/connector/web/types.d.ts +87 -0
  215. package/dist/connector/web/types.d.ts.map +1 -0
  216. package/dist/connector/web/types.js +25 -0
  217. package/dist/connector/web/types.js.map +1 -0
  218. package/dist/constants/acp/index.d.ts +97 -0
  219. package/dist/constants/acp/index.d.ts.map +1 -0
  220. package/dist/constants/acp/index.js +96 -0
  221. package/dist/constants/acp/index.js.map +1 -0
  222. package/dist/constants/authorization/index.d.ts.map +1 -0
  223. package/dist/constants/authorization/index.js.map +1 -0
  224. package/dist/constants/credential-env-keys.d.ts +36 -0
  225. package/dist/constants/credential-env-keys.d.ts.map +1 -0
  226. package/dist/constants/credential-env-keys.js +62 -0
  227. package/dist/constants/credential-env-keys.js.map +1 -0
  228. package/dist/constants/index.d.ts +3 -1
  229. package/dist/constants/index.d.ts.map +1 -1
  230. package/dist/constants/index.js +3 -1
  231. package/dist/constants/index.js.map +1 -1
  232. package/dist/constants/secret-patterns.d.ts +78 -0
  233. package/dist/constants/secret-patterns.d.ts.map +1 -0
  234. package/dist/constants/secret-patterns.js +99 -0
  235. package/dist/constants/secret-patterns.js.map +1 -0
  236. package/dist/constants/telemetry/index.d.ts +42 -0
  237. package/dist/constants/telemetry/index.d.ts.map +1 -1
  238. package/dist/constants/telemetry/index.js +87 -0
  239. package/dist/constants/telemetry/index.js.map +1 -1
  240. package/dist/contracts/a2a.d.ts +54 -54
  241. package/dist/contracts/api.d.ts +12 -1
  242. package/dist/contracts/api.d.ts.map +1 -1
  243. package/dist/contracts/schemas.d.ts +12 -12
  244. package/dist/deprecated-aliases.d.ts +80 -0
  245. package/dist/deprecated-aliases.d.ts.map +1 -0
  246. package/dist/deprecated-aliases.js +60 -0
  247. package/dist/deprecated-aliases.js.map +1 -0
  248. package/dist/eval/judge.js +2 -2
  249. package/dist/eval/judge.js.map +1 -1
  250. package/dist/execution/base.d.ts +1 -1
  251. package/dist/execution/base.d.ts.map +1 -1
  252. package/dist/execution/base.js +18 -7
  253. package/dist/execution/base.js.map +1 -1
  254. package/dist/execution/code-runtime/types.d.ts +114 -0
  255. package/dist/execution/code-runtime/types.d.ts.map +1 -0
  256. package/dist/execution/code-runtime/types.js +40 -0
  257. package/dist/execution/code-runtime/types.js.map +1 -0
  258. package/dist/execution/code-runtime/worker.d.ts +6 -0
  259. package/dist/execution/code-runtime/worker.d.ts.map +1 -0
  260. package/dist/execution/code-runtime/worker.js +248 -0
  261. package/dist/execution/code-runtime/worker.js.map +1 -0
  262. package/dist/{connector/execution → execution}/factory.d.ts +3 -3
  263. package/dist/execution/factory.d.ts.map +1 -0
  264. package/dist/{connector/execution → execution}/factory.js +1 -1
  265. package/dist/execution/factory.js.map +1 -0
  266. package/dist/{connector/execution → execution}/hybrid.d.ts +5 -3
  267. package/dist/execution/hybrid.d.ts.map +1 -0
  268. package/dist/{connector/execution → execution}/hybrid.js +10 -4
  269. package/dist/execution/hybrid.js.map +1 -0
  270. package/dist/execution/index.d.ts +23 -0
  271. package/dist/execution/index.d.ts.map +1 -1
  272. package/dist/execution/index.js +21 -0
  273. package/dist/execution/index.js.map +1 -1
  274. package/dist/execution/local.d.ts +2 -0
  275. package/dist/execution/local.d.ts.map +1 -1
  276. package/dist/execution/local.js +2 -2
  277. package/dist/execution/local.js.map +1 -1
  278. package/dist/{connector/execution → execution}/remote.d.ts +4 -2
  279. package/dist/execution/remote.d.ts.map +1 -0
  280. package/dist/{connector/execution → execution}/remote.js +12 -5
  281. package/dist/execution/remote.js.map +1 -0
  282. package/dist/index.d.ts +2 -0
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +4 -0
  285. package/dist/index.js.map +1 -1
  286. package/dist/invariants/index.d.ts +111 -0
  287. package/dist/invariants/index.d.ts.map +1 -0
  288. package/dist/invariants/index.js +138 -0
  289. package/dist/invariants/index.js.map +1 -0
  290. package/dist/manager/agent/lifecycle.d.ts +29 -7
  291. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  292. package/dist/manager/agent/lifecycle.js +140 -50
  293. package/dist/manager/agent/lifecycle.js.map +1 -1
  294. package/dist/manager/connector/environment.d.ts +2 -0
  295. package/dist/manager/connector/environment.d.ts.map +1 -1
  296. package/dist/manager/connector/environment.js +20 -9
  297. package/dist/manager/connector/environment.js.map +1 -1
  298. package/dist/manager/connector/lifecycle.d.ts +10 -0
  299. package/dist/manager/connector/lifecycle.d.ts.map +1 -1
  300. package/dist/manager/connector/lifecycle.js +21 -11
  301. package/dist/manager/connector/lifecycle.js.map +1 -1
  302. package/dist/manager/connector/tenant.d.ts +9 -0
  303. package/dist/manager/connector/tenant.d.ts.map +1 -1
  304. package/dist/manager/connector/tenant.js +24 -10
  305. package/dist/manager/connector/tenant.js.map +1 -1
  306. package/dist/manager/index.d.ts +6 -2
  307. package/dist/manager/index.d.ts.map +1 -1
  308. package/dist/manager/index.js +7 -1
  309. package/dist/manager/index.js.map +1 -1
  310. package/dist/manager/project/lifecycle.d.ts +1 -1
  311. package/dist/manager/project/lifecycle.js +1 -1
  312. package/dist/manager/run/emergency.d.ts.map +1 -1
  313. package/dist/manager/run/emergency.js +9 -7
  314. package/dist/manager/run/emergency.js.map +1 -1
  315. package/dist/manager/run/persistence.d.ts +46 -4
  316. package/dist/manager/run/persistence.d.ts.map +1 -1
  317. package/dist/manager/run/persistence.js +102 -7
  318. package/dist/manager/run/persistence.js.map +1 -1
  319. package/dist/manager/topic/lifecycle.d.ts +123 -0
  320. package/dist/manager/topic/lifecycle.d.ts.map +1 -0
  321. package/dist/manager/{thread → topic}/lifecycle.js +79 -61
  322. package/dist/manager/topic/lifecycle.js.map +1 -0
  323. package/dist/manager/topic/objective.d.ts +77 -0
  324. package/dist/manager/topic/objective.d.ts.map +1 -0
  325. package/dist/manager/topic/objective.js +133 -0
  326. package/dist/manager/topic/objective.js.map +1 -0
  327. package/dist/model-router/task-router.d.ts.map +1 -0
  328. package/dist/model-router/task-router.js.map +1 -0
  329. package/dist/persona/assembler.d.ts +1 -1
  330. package/dist/persona/assembler.d.ts.map +1 -1
  331. package/dist/persona/assembler.js +14 -2
  332. package/dist/persona/assembler.js.map +1 -1
  333. package/dist/plugin/lifecycle.d.ts +24 -0
  334. package/dist/plugin/lifecycle.d.ts.map +1 -1
  335. package/dist/plugin/lifecycle.js +112 -20
  336. package/dist/plugin/lifecycle.js.map +1 -1
  337. package/dist/plugin/loader.d.ts +17 -2
  338. package/dist/plugin/loader.d.ts.map +1 -1
  339. package/dist/plugin/loader.js +46 -26
  340. package/dist/plugin/loader.js.map +1 -1
  341. package/dist/probe/index.d.ts +1 -0
  342. package/dist/probe/index.d.ts.map +1 -1
  343. package/dist/probe/registry.d.ts +34 -1
  344. package/dist/probe/registry.d.ts.map +1 -1
  345. package/dist/probe/registry.js +5 -4
  346. package/dist/probe/registry.js.map +1 -1
  347. package/dist/process/kill-tree.d.ts +40 -0
  348. package/dist/process/kill-tree.d.ts.map +1 -0
  349. package/dist/process/kill-tree.js +54 -0
  350. package/dist/process/kill-tree.js.map +1 -0
  351. package/dist/prompt/contributions.d.ts +138 -0
  352. package/dist/prompt/contributions.d.ts.map +1 -0
  353. package/dist/prompt/contributions.js +78 -0
  354. package/dist/prompt/contributions.js.map +1 -0
  355. package/dist/prompt/index.d.ts +3 -0
  356. package/dist/prompt/index.d.ts.map +1 -0
  357. package/dist/prompt/index.js +6 -0
  358. package/dist/prompt/index.js.map +1 -0
  359. package/dist/provider/attribution.d.ts +45 -0
  360. package/dist/provider/attribution.d.ts.map +1 -0
  361. package/dist/provider/attribution.js +23 -0
  362. package/dist/provider/attribution.js.map +1 -0
  363. package/dist/provider/{collect.d.ts → collect-chat-completion.d.ts} +3 -3
  364. package/dist/provider/collect-chat-completion.d.ts.map +1 -0
  365. package/dist/provider/{collect.js → collect-chat-completion.js} +3 -3
  366. package/dist/provider/collect-chat-completion.js.map +1 -0
  367. package/dist/provider/conformance.d.ts +93 -0
  368. package/dist/provider/conformance.d.ts.map +1 -0
  369. package/dist/provider/conformance.js +124 -0
  370. package/dist/provider/conformance.js.map +1 -0
  371. package/dist/provider/errors.d.ts +29 -0
  372. package/dist/provider/errors.d.ts.map +1 -1
  373. package/dist/provider/errors.js +27 -10
  374. package/dist/provider/errors.js.map +1 -1
  375. package/dist/provider/fallback.d.ts +1 -1
  376. package/dist/provider/fallback.d.ts.map +1 -1
  377. package/dist/provider/fallback.js +27 -9
  378. package/dist/provider/fallback.js.map +1 -1
  379. package/dist/provider/idle-timeout.d.ts +47 -0
  380. package/dist/provider/idle-timeout.d.ts.map +1 -0
  381. package/dist/provider/idle-timeout.js +61 -0
  382. package/dist/provider/idle-timeout.js.map +1 -0
  383. package/dist/provider/instrumentation.d.ts +3 -2
  384. package/dist/provider/instrumentation.d.ts.map +1 -1
  385. package/dist/provider/instrumentation.js.map +1 -1
  386. package/dist/provider/retry.d.ts.map +1 -1
  387. package/dist/provider/retry.js +58 -21
  388. package/dist/provider/retry.js.map +1 -1
  389. package/dist/public-runtime.d.ts +79 -15
  390. package/dist/public-runtime.d.ts.map +1 -1
  391. package/dist/public-runtime.js +173 -17
  392. package/dist/public-runtime.js.map +1 -1
  393. package/dist/public-tools.d.ts +8 -1
  394. package/dist/public-tools.d.ts.map +1 -1
  395. package/dist/public-tools.js +29 -1
  396. package/dist/public-tools.js.map +1 -1
  397. package/dist/public-types.d.ts +21 -4
  398. package/dist/public-types.d.ts.map +1 -1
  399. package/dist/rag/rag-tool.d.ts.map +1 -1
  400. package/dist/rag/rag-tool.js +4 -1
  401. package/dist/rag/rag-tool.js.map +1 -1
  402. package/dist/read-model/index.d.ts +5 -0
  403. package/dist/read-model/index.d.ts.map +1 -0
  404. package/dist/read-model/index.js +7 -0
  405. package/dist/read-model/index.js.map +1 -0
  406. package/dist/read-model/registry.d.ts +112 -0
  407. package/dist/read-model/registry.d.ts.map +1 -0
  408. package/dist/read-model/registry.js +105 -0
  409. package/dist/read-model/registry.js.map +1 -0
  410. package/dist/read-model/run-status.d.ts +43 -0
  411. package/dist/read-model/run-status.d.ts.map +1 -0
  412. package/dist/read-model/run-status.js +89 -0
  413. package/dist/read-model/run-status.js.map +1 -0
  414. package/dist/registry/{Registry.d.ts → BaseRegistry.d.ts} +2 -2
  415. package/dist/registry/BaseRegistry.d.ts.map +1 -0
  416. package/dist/registry/{Registry.js → BaseRegistry.js} +2 -2
  417. package/dist/registry/BaseRegistry.js.map +1 -0
  418. package/dist/registry/ManagedRegistry.d.ts +2 -2
  419. package/dist/registry/ManagedRegistry.d.ts.map +1 -1
  420. package/dist/registry/ManagedRegistry.js +26 -9
  421. package/dist/registry/ManagedRegistry.js.map +1 -1
  422. package/dist/registry/command/index-exports.d.ts +3 -0
  423. package/dist/registry/command/index-exports.d.ts.map +1 -0
  424. package/dist/registry/command/index-exports.js +5 -0
  425. package/dist/registry/command/index-exports.js.map +1 -0
  426. package/dist/registry/command/index.d.ts +53 -0
  427. package/dist/registry/command/index.d.ts.map +1 -0
  428. package/dist/registry/command/index.js +87 -0
  429. package/dist/registry/command/index.js.map +1 -0
  430. package/dist/registry/command/kernel-commands.d.ts +32 -0
  431. package/dist/registry/command/kernel-commands.d.ts.map +1 -0
  432. package/dist/registry/command/kernel-commands.js +78 -0
  433. package/dist/registry/command/kernel-commands.js.map +1 -0
  434. package/dist/registry/connector/scoped.d.ts +2 -1
  435. package/dist/registry/connector/scoped.d.ts.map +1 -1
  436. package/dist/registry/connector/scoped.js +6 -5
  437. package/dist/registry/connector/scoped.js.map +1 -1
  438. package/dist/registry/index.d.ts +4 -1
  439. package/dist/registry/index.d.ts.map +1 -1
  440. package/dist/registry/index.js +5 -1
  441. package/dist/registry/index.js.map +1 -1
  442. package/dist/registry/tool/execute.d.ts +1 -0
  443. package/dist/registry/tool/execute.d.ts.map +1 -1
  444. package/dist/registry/tool/execute.js +46 -13
  445. package/dist/registry/tool/execute.js.map +1 -1
  446. package/dist/registry/tool/presentation.d.ts +32 -0
  447. package/dist/registry/tool/presentation.d.ts.map +1 -0
  448. package/dist/registry/tool/presentation.js +92 -0
  449. package/dist/registry/tool/presentation.js.map +1 -0
  450. package/dist/registry/tool/screen.d.ts +33 -0
  451. package/dist/registry/tool/screen.d.ts.map +1 -0
  452. package/dist/registry/tool/screen.js +103 -0
  453. package/dist/registry/tool/screen.js.map +1 -0
  454. package/dist/run/drain.d.ts +13 -3
  455. package/dist/run/drain.d.ts.map +1 -1
  456. package/dist/run/drain.js +10 -0
  457. package/dist/run/drain.js.map +1 -1
  458. package/dist/run/reporter.d.ts.map +1 -1
  459. package/dist/run/reporter.js +203 -149
  460. package/dist/run/reporter.js.map +1 -1
  461. package/dist/run-query/index.d.ts +74 -0
  462. package/dist/run-query/index.d.ts.map +1 -0
  463. package/dist/run-query/index.js +73 -0
  464. package/dist/run-query/index.js.map +1 -0
  465. package/dist/runtime/bidi/session.d.ts.map +1 -1
  466. package/dist/runtime/bidi/session.js +7 -2
  467. package/dist/runtime/bidi/session.js.map +1 -1
  468. package/dist/runtime/decision/fallback.d.ts.map +1 -1
  469. package/dist/runtime/decision/fallback.js +6 -3
  470. package/dist/runtime/decision/fallback.js.map +1 -1
  471. package/dist/runtime/decision/parser.d.ts.map +1 -1
  472. package/dist/runtime/decision/parser.js +10 -9
  473. package/dist/runtime/decision/parser.js.map +1 -1
  474. package/dist/runtime/jobs/registry.d.ts +147 -0
  475. package/dist/runtime/jobs/registry.d.ts.map +1 -0
  476. package/dist/runtime/jobs/registry.js +242 -0
  477. package/dist/runtime/jobs/registry.js.map +1 -0
  478. package/dist/runtime/query/approval-policy.d.ts +22 -0
  479. package/dist/runtime/query/approval-policy.d.ts.map +1 -0
  480. package/dist/runtime/query/approval-policy.js +61 -0
  481. package/dist/runtime/query/approval-policy.js.map +1 -0
  482. package/dist/runtime/query/checkpoint.d.ts +3 -3
  483. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  484. package/dist/runtime/query/checkpoint.js +2 -2
  485. package/dist/runtime/query/checkpoint.js.map +1 -1
  486. package/dist/runtime/query/context.d.ts +85 -15
  487. package/dist/runtime/query/context.d.ts.map +1 -1
  488. package/dist/runtime/query/context.js +57 -14
  489. package/dist/runtime/query/context.js.map +1 -1
  490. package/dist/runtime/query/events.d.ts +5 -4
  491. package/dist/runtime/query/events.d.ts.map +1 -1
  492. package/dist/runtime/query/events.js +9 -6
  493. package/dist/runtime/query/events.js.map +1 -1
  494. package/dist/runtime/query/executor.d.ts +113 -4
  495. package/dist/runtime/query/executor.d.ts.map +1 -1
  496. package/dist/runtime/query/executor.js +228 -62
  497. package/dist/runtime/query/executor.js.map +1 -1
  498. package/dist/runtime/query/guardrail-presets.d.ts +30 -1
  499. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
  500. package/dist/runtime/query/guardrail-presets.js +59 -14
  501. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  502. package/dist/runtime/query/guardrails.d.ts.map +1 -1
  503. package/dist/runtime/query/guardrails.js +16 -12
  504. package/dist/runtime/query/guardrails.js.map +1 -1
  505. package/dist/runtime/query/index.d.ts +140 -16
  506. package/dist/runtime/query/index.d.ts.map +1 -1
  507. package/dist/runtime/query/index.js +379 -76
  508. package/dist/runtime/query/index.js.map +1 -1
  509. package/dist/runtime/query/iteration/index.d.ts +32 -0
  510. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  511. package/dist/runtime/query/iteration/index.js +256 -88
  512. package/dist/runtime/query/iteration/index.js.map +1 -1
  513. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  514. package/dist/runtime/query/iteration/phases/advisory.js +17 -16
  515. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  516. package/dist/runtime/query/iteration/phases/compaction.d.ts +1 -8
  517. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  518. package/dist/runtime/query/iteration/phases/compaction.js +202 -178
  519. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  520. package/dist/runtime/query/iteration/phases/context.d.ts +52 -6
  521. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  522. package/dist/runtime/query/iteration/phases/context.js +26 -17
  523. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  524. package/dist/runtime/query/iteration/phases/tool-review.d.ts +2 -2
  525. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  526. package/dist/runtime/query/iteration/phases/tool-review.js +27 -7
  527. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  528. package/dist/runtime/query/iteration/phases/working-memory.d.ts.map +1 -1
  529. package/dist/runtime/query/iteration/phases/working-memory.js +3 -2
  530. package/dist/runtime/query/iteration/phases/working-memory.js.map +1 -1
  531. package/dist/runtime/query/iteration/stream-turn.js +14 -14
  532. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  533. package/dist/runtime/query/{context-cache.d.ts → prompt-cache.d.ts} +6 -4
  534. package/dist/runtime/query/prompt-cache.d.ts.map +1 -0
  535. package/dist/runtime/query/{context-cache.js → prompt-cache.js} +20 -2
  536. package/dist/runtime/query/prompt-cache.js.map +1 -0
  537. package/dist/runtime/query/prompt.d.ts +50 -0
  538. package/dist/runtime/query/prompt.d.ts.map +1 -1
  539. package/dist/runtime/query/prompt.js +83 -4
  540. package/dist/runtime/query/prompt.js.map +1 -1
  541. package/dist/runtime/query/repeat-call.d.ts +42 -0
  542. package/dist/runtime/query/repeat-call.d.ts.map +1 -0
  543. package/dist/runtime/query/repeat-call.js +107 -0
  544. package/dist/runtime/query/repeat-call.js.map +1 -0
  545. package/dist/runtime/query/replay/mutate.js +8 -1
  546. package/dist/runtime/query/replay/mutate.js.map +1 -1
  547. package/dist/runtime/query/result.d.ts +7 -0
  548. package/dist/runtime/query/result.d.ts.map +1 -1
  549. package/dist/runtime/query/result.js +38 -10
  550. package/dist/runtime/query/result.js.map +1 -1
  551. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  552. package/dist/runtime/query/resume-pending.js +19 -17
  553. package/dist/runtime/query/resume-pending.js.map +1 -1
  554. package/dist/runtime/query/resume-run.d.ts +2 -2
  555. package/dist/runtime/query/resume-run.d.ts.map +1 -1
  556. package/dist/runtime/query/run-state.d.ts +3 -3
  557. package/dist/runtime/query/run-state.d.ts.map +1 -1
  558. package/dist/runtime/query/run-state.js +2 -2
  559. package/dist/runtime/query/run-state.js.map +1 -1
  560. package/dist/runtime/query/tool-grants.d.ts +7 -0
  561. package/dist/runtime/query/tool-grants.d.ts.map +1 -1
  562. package/dist/runtime/query/tool-grants.js +1 -1
  563. package/dist/runtime/query/tool-grants.js.map +1 -1
  564. package/dist/runtime/query/tool-output-budget.js +34 -3
  565. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  566. package/dist/runtime/query/tool-pause.d.ts.map +1 -1
  567. package/dist/runtime/query/tool-pause.js +2 -1
  568. package/dist/runtime/query/tool-pause.js.map +1 -1
  569. package/dist/runtime/query/tooling.d.ts +10 -2
  570. package/dist/runtime/query/tooling.d.ts.map +1 -1
  571. package/dist/runtime/query/tooling.js +3 -0
  572. package/dist/runtime/query/tooling.js.map +1 -1
  573. package/dist/sandbox/provider/local.d.ts +10 -0
  574. package/dist/sandbox/provider/local.d.ts.map +1 -1
  575. package/dist/sandbox/provider/local.js +77 -23
  576. package/dist/sandbox/provider/local.js.map +1 -1
  577. package/dist/sandbox/terminal.d.ts +130 -0
  578. package/dist/sandbox/terminal.d.ts.map +1 -0
  579. package/dist/sandbox/terminal.js +119 -0
  580. package/dist/sandbox/terminal.js.map +1 -0
  581. package/dist/{gateway → scheduler}/completion-inbox.d.ts +12 -5
  582. package/dist/scheduler/completion-inbox.d.ts.map +1 -0
  583. package/dist/{gateway → scheduler}/completion-inbox.js +19 -7
  584. package/dist/scheduler/completion-inbox.js.map +1 -0
  585. package/dist/scheduler/delegating.d.ts +90 -0
  586. package/dist/scheduler/delegating.d.ts.map +1 -0
  587. package/dist/scheduler/delegating.js +230 -0
  588. package/dist/scheduler/delegating.js.map +1 -0
  589. package/dist/{gateway → scheduler}/local.d.ts +10 -2
  590. package/dist/scheduler/local.d.ts.map +1 -0
  591. package/dist/{gateway → scheduler}/local.js +20 -11
  592. package/dist/scheduler/local.js.map +1 -0
  593. package/dist/session/actor-scope.d.ts +52 -0
  594. package/dist/session/actor-scope.d.ts.map +1 -0
  595. package/dist/session/actor-scope.js +112 -0
  596. package/dist/session/actor-scope.js.map +1 -0
  597. package/dist/session/errors.d.ts +31 -8
  598. package/dist/session/errors.d.ts.map +1 -1
  599. package/dist/session/errors.js +21 -1
  600. package/dist/session/errors.js.map +1 -1
  601. package/dist/session/handoff/assignment.d.ts +5 -5
  602. package/dist/session/handoff/assignment.d.ts.map +1 -1
  603. package/dist/session/handoff/broadcast.d.ts +2 -2
  604. package/dist/session/handoff/broadcast.d.ts.map +1 -1
  605. package/dist/session/handoff/broadcast.js +7 -7
  606. package/dist/session/handoff/broadcast.js.map +1 -1
  607. package/dist/session/handoff/single.d.ts +4 -4
  608. package/dist/session/handoff/single.d.ts.map +1 -1
  609. package/dist/session/handoff/single.js +4 -4
  610. package/dist/session/handoff/single.js.map +1 -1
  611. package/dist/session/migration/filesystem.d.ts +28 -0
  612. package/dist/session/migration/filesystem.d.ts.map +1 -1
  613. package/dist/session/migration/filesystem.js +44 -2
  614. package/dist/session/migration/filesystem.js.map +1 -1
  615. package/dist/session/migration/id-prefix.d.ts +50 -19
  616. package/dist/session/migration/id-prefix.d.ts.map +1 -1
  617. package/dist/session/migration/id-prefix.js +54 -22
  618. package/dist/session/migration/id-prefix.js.map +1 -1
  619. package/dist/session/migration/index.d.ts +6 -2
  620. package/dist/session/migration/index.d.ts.map +1 -1
  621. package/dist/session/migration/index.js +6 -2
  622. package/dist/session/migration/index.js.map +1 -1
  623. package/dist/session/migration/marker.d.ts.map +1 -1
  624. package/dist/session/migration/marker.js +21 -4
  625. package/dist/session/migration/marker.js.map +1 -1
  626. package/dist/session/retention/archive.d.ts.map +1 -1
  627. package/dist/session/retention/archive.js +25 -11
  628. package/dist/session/retention/archive.js.map +1 -1
  629. package/dist/session/workspace/git-worktree.d.ts.map +1 -1
  630. package/dist/session/workspace/git-worktree.js +17 -8
  631. package/dist/session/workspace/git-worktree.js.map +1 -1
  632. package/dist/skills/loader.d.ts +4 -2
  633. package/dist/skills/loader.d.ts.map +1 -1
  634. package/dist/skills/loader.js +36 -9
  635. package/dist/skills/loader.js.map +1 -1
  636. package/dist/skills/registry.d.ts +59 -1
  637. package/dist/skills/registry.d.ts.map +1 -1
  638. package/dist/skills/registry.js +154 -20
  639. package/dist/skills/registry.js.map +1 -1
  640. package/dist/store/attachment/index.d.ts +111 -0
  641. package/dist/store/attachment/index.d.ts.map +1 -0
  642. package/dist/store/attachment/index.js +94 -0
  643. package/dist/store/attachment/index.js.map +1 -0
  644. package/dist/store/config/index.d.ts +43 -0
  645. package/dist/store/config/index.d.ts.map +1 -0
  646. package/dist/store/config/index.js +51 -0
  647. package/dist/store/config/index.js.map +1 -0
  648. package/dist/store/feedback/conformance.d.ts +44 -0
  649. package/dist/store/feedback/conformance.d.ts.map +1 -0
  650. package/dist/store/feedback/conformance.js +127 -0
  651. package/dist/store/feedback/conformance.js.map +1 -0
  652. package/dist/store/feedback/disk.d.ts +46 -0
  653. package/dist/store/feedback/disk.d.ts.map +1 -0
  654. package/dist/store/feedback/disk.js +141 -0
  655. package/dist/store/feedback/disk.js.map +1 -0
  656. package/dist/store/feedback/index.d.ts +9 -0
  657. package/dist/store/feedback/index.d.ts.map +1 -0
  658. package/dist/store/feedback/index.js +5 -0
  659. package/dist/store/feedback/index.js.map +1 -0
  660. package/dist/store/feedback/memory.d.ts +33 -0
  661. package/dist/store/feedback/memory.d.ts.map +1 -0
  662. package/dist/store/feedback/memory.js +0 -0
  663. package/dist/store/feedback/memory.js.map +1 -0
  664. package/dist/store/feedback/types.d.ts +95 -0
  665. package/dist/store/feedback/types.d.ts.map +1 -0
  666. package/dist/store/feedback/types.js +27 -0
  667. package/dist/store/feedback/types.js.map +1 -0
  668. package/dist/store/index.d.ts +1 -0
  669. package/dist/store/index.d.ts.map +1 -1
  670. package/dist/store/index.js +4 -0
  671. package/dist/store/index.js.map +1 -1
  672. package/dist/store/kv/record-store.d.ts +54 -0
  673. package/dist/store/kv/record-store.d.ts.map +1 -0
  674. package/dist/store/kv/record-store.js +94 -0
  675. package/dist/store/kv/record-store.js.map +1 -0
  676. package/dist/store/memory/disk.d.ts +2 -0
  677. package/dist/store/memory/disk.d.ts.map +1 -1
  678. package/dist/store/memory/disk.js +36 -30
  679. package/dist/store/memory/disk.js.map +1 -1
  680. package/dist/store/run/checkpoint-disk.d.ts +4 -4
  681. package/dist/store/run/checkpoint-disk.d.ts.map +1 -1
  682. package/dist/store/run/checkpoint-disk.js +22 -1
  683. package/dist/store/run/checkpoint-disk.js.map +1 -1
  684. package/dist/store/run/checkpoint-memory.d.ts +4 -4
  685. package/dist/store/run/checkpoint-memory.d.ts.map +1 -1
  686. package/dist/store/run/checkpoint-memory.js.map +1 -1
  687. package/dist/store/run/claim-disk.d.ts +5 -5
  688. package/dist/store/run/claim-disk.d.ts.map +1 -1
  689. package/dist/store/run/claim-disk.js +20 -0
  690. package/dist/store/run/claim-disk.js.map +1 -1
  691. package/dist/store/run/conformance.d.ts.map +1 -1
  692. package/dist/store/run/conformance.js +10 -9
  693. package/dist/store/run/conformance.js.map +1 -1
  694. package/dist/store/run/disk.d.ts +3 -1
  695. package/dist/store/run/disk.d.ts.map +1 -1
  696. package/dist/store/run/disk.js +73 -4
  697. package/dist/store/run/disk.js.map +1 -1
  698. package/dist/store/run/listing.d.ts +4 -4
  699. package/dist/store/run/listing.d.ts.map +1 -1
  700. package/dist/store/run/listing.js.map +1 -1
  701. package/dist/store/run/memory.d.ts +5 -0
  702. package/dist/store/run/memory.d.ts.map +1 -1
  703. package/dist/store/run/memory.js +20 -1
  704. package/dist/store/run/memory.js.map +1 -1
  705. package/dist/store/session/canonical-path.d.ts +32 -0
  706. package/dist/store/session/canonical-path.d.ts.map +1 -0
  707. package/dist/store/session/canonical-path.js +46 -0
  708. package/dist/store/session/canonical-path.js.map +1 -0
  709. package/dist/store/session/disk.d.ts +46 -2
  710. package/dist/store/session/disk.d.ts.map +1 -1
  711. package/dist/store/session/disk.js +191 -205
  712. package/dist/store/session/disk.js.map +1 -1
  713. package/dist/store/session/memory.d.ts +10 -2
  714. package/dist/store/session/memory.d.ts.map +1 -1
  715. package/dist/store/session/memory.js +36 -4
  716. package/dist/store/session/memory.js.map +1 -1
  717. package/dist/store/task/disk.d.ts.map +1 -1
  718. package/dist/store/task/disk.js +76 -68
  719. package/dist/store/task/disk.js.map +1 -1
  720. package/dist/store/topic/index.d.ts +6 -0
  721. package/dist/store/topic/index.d.ts.map +1 -0
  722. package/dist/store/topic/index.js +20 -0
  723. package/dist/store/topic/index.js.map +1 -0
  724. package/dist/store/topic/memory.d.ts +30 -0
  725. package/dist/store/topic/memory.d.ts.map +1 -0
  726. package/dist/store/topic/memory.js +97 -0
  727. package/dist/store/topic/memory.js.map +1 -0
  728. package/dist/store/topic/objective.d.ts +104 -0
  729. package/dist/store/topic/objective.d.ts.map +1 -0
  730. package/dist/store/topic/objective.js +195 -0
  731. package/dist/store/topic/objective.js.map +1 -0
  732. package/dist/store/topic/state.d.ts +60 -0
  733. package/dist/store/topic/state.d.ts.map +1 -0
  734. package/dist/store/topic/state.js +128 -0
  735. package/dist/store/topic/state.js.map +1 -0
  736. package/dist/streaming/coalesce.d.ts +19 -6
  737. package/dist/streaming/coalesce.d.ts.map +1 -1
  738. package/dist/streaming/coalesce.js +13 -4
  739. package/dist/streaming/coalesce.js.map +1 -1
  740. package/dist/telemetry/runtime-accessors.d.ts +27 -1
  741. package/dist/telemetry/runtime-accessors.d.ts.map +1 -1
  742. package/dist/telemetry/runtime-accessors.js +45 -1
  743. package/dist/telemetry/runtime-accessors.js.map +1 -1
  744. package/dist/test-support/ids.d.ts +68 -0
  745. package/dist/test-support/ids.d.ts.map +1 -0
  746. package/dist/test-support/ids.js +70 -0
  747. package/dist/test-support/ids.js.map +1 -0
  748. package/dist/testing.d.ts +24 -0
  749. package/dist/testing.d.ts.map +1 -0
  750. package/dist/testing.js +22 -0
  751. package/dist/testing.js.map +1 -0
  752. package/dist/tools/builtins/bash.d.ts +1 -0
  753. package/dist/tools/builtins/bash.d.ts.map +1 -1
  754. package/dist/tools/builtins/bash.js +77 -3
  755. package/dist/tools/builtins/bash.js.map +1 -1
  756. package/dist/tools/builtins/computer-use.d.ts +8 -8
  757. package/dist/tools/builtins/edit.d.ts +1 -1
  758. package/dist/tools/builtins/edit.d.ts.map +1 -1
  759. package/dist/tools/builtins/edit.js +34 -0
  760. package/dist/tools/builtins/edit.js.map +1 -1
  761. package/dist/tools/builtins/index.d.ts +6 -0
  762. package/dist/tools/builtins/index.d.ts.map +1 -1
  763. package/dist/tools/builtins/index.js +24 -1
  764. package/dist/tools/builtins/index.js.map +1 -1
  765. package/dist/tools/builtins/job.d.ts +6 -0
  766. package/dist/tools/builtins/job.d.ts.map +1 -0
  767. package/dist/tools/builtins/job.js +114 -0
  768. package/dist/tools/builtins/job.js.map +1 -0
  769. package/dist/tools/builtins/lsp.d.ts +21 -0
  770. package/dist/tools/builtins/lsp.d.ts.map +1 -0
  771. package/dist/tools/builtins/lsp.js +186 -0
  772. package/dist/tools/builtins/lsp.js.map +1 -0
  773. package/dist/tools/builtins/run-code.d.ts +13 -0
  774. package/dist/tools/builtins/run-code.d.ts.map +1 -0
  775. package/dist/tools/builtins/run-code.js +126 -0
  776. package/dist/tools/builtins/run-code.js.map +1 -0
  777. package/dist/tools/builtins/skill.d.ts +14 -0
  778. package/dist/tools/builtins/skill.d.ts.map +1 -0
  779. package/dist/tools/builtins/skill.js +120 -0
  780. package/dist/tools/builtins/skill.js.map +1 -0
  781. package/dist/tools/builtins/web-guidance.d.ts +31 -0
  782. package/dist/tools/builtins/web-guidance.d.ts.map +1 -0
  783. package/dist/tools/builtins/web-guidance.js +42 -0
  784. package/dist/tools/builtins/web-guidance.js.map +1 -0
  785. package/dist/tools/builtins/web.d.ts +10 -0
  786. package/dist/tools/builtins/web.d.ts.map +1 -0
  787. package/dist/tools/builtins/web.js +137 -0
  788. package/dist/tools/builtins/web.js.map +1 -0
  789. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  790. package/dist/tools/builtins/write-file.js +35 -0
  791. package/dist/tools/builtins/write-file.js.map +1 -1
  792. package/dist/tools/coordinator/agent.d.ts +2 -2
  793. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  794. package/dist/tools/coordinator/index.d.ts +13 -4
  795. package/dist/tools/coordinator/index.d.ts.map +1 -1
  796. package/dist/tools/coordinator/index.js +125 -38
  797. package/dist/tools/coordinator/index.js.map +1 -1
  798. package/dist/tools/coordinator/outcome.d.ts +2 -2
  799. package/dist/tools/coordinator/outcome.d.ts.map +1 -1
  800. package/dist/tools/coordinator/outcome.js +1 -1
  801. package/dist/tools/coordinator/wait-with-idle-bound.d.ts +3 -3
  802. package/dist/tools/coordinator/wait-with-idle-bound.d.ts.map +1 -1
  803. package/dist/tools/coordinator/wait-with-idle-bound.js.map +1 -1
  804. package/dist/tools/defineTool.d.ts +12 -0
  805. package/dist/tools/defineTool.d.ts.map +1 -1
  806. package/dist/tools/defineTool.js +2 -0
  807. package/dist/tools/defineTool.js.map +1 -1
  808. package/dist/tools/env-scrub.d.ts +66 -0
  809. package/dist/tools/env-scrub.d.ts.map +1 -0
  810. package/dist/tools/env-scrub.js +68 -0
  811. package/dist/tools/env-scrub.js.map +1 -0
  812. package/dist/tools/memory/read.d.ts.map +1 -1
  813. package/dist/tools/memory/read.js +5 -1
  814. package/dist/tools/memory/read.js.map +1 -1
  815. package/dist/tools/task/create.d.ts.map +1 -1
  816. package/dist/tools/task/create.js +2 -1
  817. package/dist/tools/task/create.js.map +1 -1
  818. package/dist/tools/task/update.d.ts.map +1 -1
  819. package/dist/tools/task/update.js +7 -3
  820. package/dist/tools/task/update.js.map +1 -1
  821. package/dist/types/acp/index.d.ts +161 -0
  822. package/dist/types/acp/index.d.ts.map +1 -0
  823. package/dist/types/acp/index.js +2 -0
  824. package/dist/types/acp/index.js.map +1 -0
  825. package/dist/types/agent/base.d.ts +62 -5
  826. package/dist/types/agent/base.d.ts.map +1 -1
  827. package/dist/types/agent/delegate.d.ts +102 -0
  828. package/dist/types/agent/delegate.d.ts.map +1 -0
  829. package/dist/types/agent/delegate.js +2 -0
  830. package/dist/types/agent/delegate.js.map +1 -0
  831. package/dist/types/agent/index.d.ts +1 -1
  832. package/dist/types/agent/index.d.ts.map +1 -1
  833. package/dist/types/agent/index.js +1 -1
  834. package/dist/types/agent/index.js.map +1 -1
  835. package/dist/types/agent/manager.d.ts +7 -1
  836. package/dist/types/agent/manager.d.ts.map +1 -1
  837. package/dist/types/agent/reactive.d.ts +24 -3
  838. package/dist/types/agent/reactive.d.ts.map +1 -1
  839. package/dist/types/agent/{gateway.d.ts → scheduler.d.ts} +41 -5
  840. package/dist/types/agent/scheduler.d.ts.map +1 -0
  841. package/dist/types/agent/scheduler.js +2 -0
  842. package/dist/types/agent/scheduler.js.map +1 -0
  843. package/dist/types/agent/supervisor.d.ts +23 -5
  844. package/dist/types/agent/supervisor.d.ts.map +1 -1
  845. package/dist/types/agent/task.d.ts +31 -9
  846. package/dist/types/agent/task.d.ts.map +1 -1
  847. package/dist/types/agent/working-memory.d.ts +1 -1
  848. package/dist/types/authorization/index.d.ts +634 -0
  849. package/dist/types/authorization/index.d.ts.map +1 -0
  850. package/dist/types/authorization/index.js +103 -0
  851. package/dist/types/authorization/index.js.map +1 -0
  852. package/dist/types/bus/index.d.ts +24 -1
  853. package/dist/types/bus/index.d.ts.map +1 -1
  854. package/dist/types/code-navigation/index.d.ts +112 -0
  855. package/dist/types/code-navigation/index.d.ts.map +1 -0
  856. package/dist/types/code-navigation/index.js +17 -0
  857. package/dist/types/code-navigation/index.js.map +1 -0
  858. package/dist/types/command/index.d.ts +74 -0
  859. package/dist/types/command/index.d.ts.map +1 -0
  860. package/dist/types/command/index.js +18 -0
  861. package/dist/types/command/index.js.map +1 -0
  862. package/dist/types/common/index.d.ts +19 -2
  863. package/dist/types/common/index.d.ts.map +1 -1
  864. package/dist/types/common/index.js.map +1 -1
  865. package/dist/types/connector/mcp.d.ts +8 -0
  866. package/dist/types/connector/mcp.d.ts.map +1 -1
  867. package/dist/types/guardrail/index.d.ts +74 -1
  868. package/dist/types/guardrail/index.d.ts.map +1 -1
  869. package/dist/types/hitl/policy.d.ts +79 -0
  870. package/dist/types/hitl/policy.d.ts.map +1 -0
  871. package/dist/types/hitl/policy.js +2 -0
  872. package/dist/types/hitl/policy.js.map +1 -0
  873. package/dist/types/ids/brand.d.ts +55 -0
  874. package/dist/types/ids/brand.d.ts.map +1 -0
  875. package/dist/types/ids/brand.js +45 -0
  876. package/dist/types/ids/brand.js.map +1 -0
  877. package/dist/types/ids/index.d.ts +98 -39
  878. package/dist/types/ids/index.d.ts.map +1 -1
  879. package/dist/types/ids/index.js +5 -1
  880. package/dist/types/ids/index.js.map +1 -1
  881. package/dist/types/message/index.d.ts +24 -1
  882. package/dist/types/message/index.d.ts.map +1 -1
  883. package/dist/types/message/index.js.map +1 -1
  884. package/dist/types/plugin/index.d.ts +2 -2
  885. package/dist/types/project/entity.d.ts +22 -2
  886. package/dist/types/project/entity.d.ts.map +1 -1
  887. package/dist/types/provider/interface.d.ts +43 -2
  888. package/dist/types/provider/interface.d.ts.map +1 -1
  889. package/dist/types/provider/model.d.ts +16 -2
  890. package/dist/types/provider/model.d.ts.map +1 -1
  891. package/dist/types/run/audit.d.ts +150 -0
  892. package/dist/types/run/audit.d.ts.map +1 -0
  893. package/dist/types/run/audit.js +39 -0
  894. package/dist/types/run/audit.js.map +1 -0
  895. package/dist/types/run/cancel-cause.d.ts +49 -0
  896. package/dist/types/run/cancel-cause.d.ts.map +1 -0
  897. package/dist/types/run/cancel-cause.js +39 -0
  898. package/dist/types/run/cancel-cause.js.map +1 -0
  899. package/dist/types/run/checkpoint-store.d.ts +29 -11
  900. package/dist/types/run/checkpoint-store.d.ts.map +1 -1
  901. package/dist/types/run/config.d.ts +24 -4
  902. package/dist/types/run/config.d.ts.map +1 -1
  903. package/dist/types/run/derive-status.d.ts +3 -3
  904. package/dist/types/run/derive-status.d.ts.map +1 -1
  905. package/dist/types/run/derive-status.js +1 -1
  906. package/dist/types/run/entity.d.ts +2 -3
  907. package/dist/types/run/entity.d.ts.map +1 -1
  908. package/dist/types/run/event-cursor.d.ts +3 -3
  909. package/dist/types/run/event-cursor.d.ts.map +1 -1
  910. package/dist/types/run/events.d.ts +159 -4
  911. package/dist/types/run/events.d.ts.map +1 -1
  912. package/dist/types/run/events.js.map +1 -1
  913. package/dist/types/run/index.d.ts +2 -0
  914. package/dist/types/run/index.d.ts.map +1 -1
  915. package/dist/types/run/index.js +2 -0
  916. package/dist/types/run/index.js.map +1 -1
  917. package/dist/types/run/metadata.d.ts +2 -2
  918. package/dist/types/run/metadata.d.ts.map +1 -1
  919. package/dist/types/run/prepare-step.d.ts +29 -0
  920. package/dist/types/run/prepare-step.d.ts.map +1 -1
  921. package/dist/types/run/state.d.ts +33 -10
  922. package/dist/types/run/state.d.ts.map +1 -1
  923. package/dist/types/run/state.js +60 -3
  924. package/dist/types/run/state.js.map +1 -1
  925. package/dist/types/run/stop-reason.d.ts +9 -0
  926. package/dist/types/run/stop-reason.d.ts.map +1 -1
  927. package/dist/types/run/store.d.ts +38 -0
  928. package/dist/types/run/store.d.ts.map +1 -1
  929. package/dist/types/sandbox/index.d.ts +38 -0
  930. package/dist/types/sandbox/index.d.ts.map +1 -1
  931. package/dist/types/sandbox/index.js +21 -0
  932. package/dist/types/sandbox/index.js.map +1 -1
  933. package/dist/types/session/actor.d.ts +2 -2
  934. package/dist/types/session/actor.d.ts.map +1 -1
  935. package/dist/types/session/entity.d.ts +9 -7
  936. package/dist/types/session/entity.d.ts.map +1 -1
  937. package/dist/types/session/ids.d.ts +3 -1
  938. package/dist/types/session/ids.d.ts.map +1 -1
  939. package/dist/types/session/index.d.ts +4 -2
  940. package/dist/types/session/index.d.ts.map +1 -1
  941. package/dist/types/session/store.d.ts +51 -22
  942. package/dist/types/session/store.d.ts.map +1 -1
  943. package/dist/types/session/sub-session.d.ts +55 -5
  944. package/dist/types/session/sub-session.d.ts.map +1 -1
  945. package/dist/types/skills/index.d.ts +41 -0
  946. package/dist/types/skills/index.d.ts.map +1 -1
  947. package/dist/types/skills/index.js +17 -1
  948. package/dist/types/skills/index.js.map +1 -1
  949. package/dist/types/tool/index.d.ts +186 -1
  950. package/dist/types/tool/index.d.ts.map +1 -1
  951. package/dist/types/tool/index.js.map +1 -1
  952. package/dist/types/tool/presentation.d.ts +53 -0
  953. package/dist/types/tool/presentation.d.ts.map +1 -0
  954. package/dist/types/tool/presentation.js +2 -0
  955. package/dist/types/tool/presentation.js.map +1 -0
  956. package/dist/types/{thread → topic}/entity.d.ts +34 -26
  957. package/dist/types/topic/entity.d.ts.map +1 -0
  958. package/dist/types/{thread → topic}/entity.js.map +1 -1
  959. package/dist/types/topic/index.d.ts +5 -0
  960. package/dist/types/topic/index.d.ts.map +1 -0
  961. package/dist/types/topic/index.js +11 -0
  962. package/dist/types/topic/index.js.map +1 -0
  963. package/dist/types/topic/objective.d.ts +86 -0
  964. package/dist/types/topic/objective.d.ts.map +1 -0
  965. package/dist/types/topic/objective.js +10 -0
  966. package/dist/types/topic/objective.js.map +1 -0
  967. package/dist/types/topic/state.d.ts +56 -0
  968. package/dist/types/topic/state.d.ts.map +1 -0
  969. package/dist/types/topic/state.js +10 -0
  970. package/dist/types/topic/state.js.map +1 -0
  971. package/dist/types/topic/store.d.ts +95 -0
  972. package/dist/types/topic/store.d.ts.map +1 -0
  973. package/dist/types/topic/store.js +29 -0
  974. package/dist/types/topic/store.js.map +1 -0
  975. package/dist/types/workspace/ref.d.ts +7 -0
  976. package/dist/types/workspace/ref.d.ts.map +1 -1
  977. package/dist/utils/abort.d.ts.map +1 -1
  978. package/dist/utils/abort.js +13 -1
  979. package/dist/utils/abort.js.map +1 -1
  980. package/dist/utils/hash.d.ts +10 -0
  981. package/dist/utils/hash.d.ts.map +1 -1
  982. package/dist/utils/hash.js +15 -0
  983. package/dist/utils/hash.js.map +1 -1
  984. package/dist/utils/id.d.ts +90 -2
  985. package/dist/utils/id.d.ts.map +1 -1
  986. package/dist/utils/id.js +113 -5
  987. package/dist/utils/id.js.map +1 -1
  988. package/dist/utils/log/attributes.d.ts +17 -0
  989. package/dist/utils/log/attributes.d.ts.map +1 -0
  990. package/dist/utils/log/attributes.js +2 -0
  991. package/dist/utils/log/attributes.js.map +1 -0
  992. package/dist/utils/log/caps.d.ts +27 -0
  993. package/dist/utils/log/caps.d.ts.map +1 -0
  994. package/dist/utils/log/caps.js +107 -0
  995. package/dist/utils/log/caps.js.map +1 -0
  996. package/dist/utils/log/create-logger.d.ts +28 -0
  997. package/dist/utils/log/create-logger.d.ts.map +1 -0
  998. package/dist/utils/log/create-logger.js +168 -0
  999. package/dist/utils/log/create-logger.js.map +1 -0
  1000. package/dist/utils/log/exception.d.ts +11 -0
  1001. package/dist/utils/log/exception.d.ts.map +1 -0
  1002. package/dist/utils/log/exception.js +108 -0
  1003. package/dist/utils/log/exception.js.map +1 -0
  1004. package/dist/utils/log/index.d.ts +7 -0
  1005. package/dist/utils/log/index.d.ts.map +1 -0
  1006. package/dist/utils/log/index.js +15 -0
  1007. package/dist/utils/log/index.js.map +1 -0
  1008. package/dist/utils/log/process-sink.d.ts +28 -0
  1009. package/dist/utils/log/process-sink.d.ts.map +1 -0
  1010. package/dist/utils/log/process-sink.js +56 -0
  1011. package/dist/utils/log/process-sink.js.map +1 -0
  1012. package/dist/utils/log/redact.d.ts +3 -0
  1013. package/dist/utils/log/redact.d.ts.map +1 -0
  1014. package/dist/utils/log/redact.js +71 -0
  1015. package/dist/utils/log/redact.js.map +1 -0
  1016. package/dist/utils/log/sinks.d.ts +43 -0
  1017. package/dist/utils/log/sinks.d.ts.map +1 -0
  1018. package/dist/utils/log/sinks.js +184 -0
  1019. package/dist/utils/log/sinks.js.map +1 -0
  1020. package/dist/utils/log/templates.d.ts +63 -0
  1021. package/dist/utils/log/templates.d.ts.map +1 -0
  1022. package/dist/utils/log/templates.js +119 -0
  1023. package/dist/utils/log/templates.js.map +1 -0
  1024. package/dist/utils/log/types.d.ts +183 -0
  1025. package/dist/utils/log/types.d.ts.map +1 -0
  1026. package/dist/utils/log/types.js +55 -0
  1027. package/dist/utils/log/types.js.map +1 -0
  1028. package/dist/utils/logger.d.ts +44 -0
  1029. package/dist/utils/logger.d.ts.map +1 -1
  1030. package/dist/utils/logger.js +102 -2
  1031. package/dist/utils/logger.js.map +1 -1
  1032. package/dist/utils/renamed-field.d.ts +19 -0
  1033. package/dist/utils/renamed-field.d.ts.map +1 -0
  1034. package/dist/utils/renamed-field.js +29 -0
  1035. package/dist/utils/renamed-field.js.map +1 -0
  1036. package/dist/vault/CredentialProvider.d.ts +89 -0
  1037. package/dist/vault/CredentialProvider.d.ts.map +1 -0
  1038. package/dist/vault/CredentialProvider.js +64 -0
  1039. package/dist/vault/CredentialProvider.js.map +1 -0
  1040. package/dist/vault/InMemoryCredentialVault.d.ts +2 -1
  1041. package/dist/vault/InMemoryCredentialVault.d.ts.map +1 -1
  1042. package/dist/vault/InMemoryCredentialVault.js +15 -5
  1043. package/dist/vault/InMemoryCredentialVault.js.map +1 -1
  1044. package/dist/vault/index.d.ts +3 -0
  1045. package/dist/vault/index.d.ts.map +1 -1
  1046. package/dist/vault/index.js +5 -0
  1047. package/dist/vault/index.js.map +1 -1
  1048. package/dist/vault/instrumentation.d.ts +18 -2
  1049. package/dist/vault/instrumentation.d.ts.map +1 -1
  1050. package/dist/vault/instrumentation.js +47 -0
  1051. package/dist/vault/instrumentation.js.map +1 -1
  1052. package/package.json +4 -4
  1053. package/src/advisory/executor.ts +14 -12
  1054. package/src/advisory/registry.ts +2 -2
  1055. package/src/agents/AGENTS.md +91 -0
  1056. package/src/agents/AbstractAgent.ts +67 -14
  1057. package/src/agents/PipelineAgent.ts +46 -12
  1058. package/src/agents/ReactiveAgent.ts +27 -13
  1059. package/src/agents/RouterAgent.ts +33 -21
  1060. package/src/agents/SupervisorAgent.ts +51 -26
  1061. package/src/agents/handle.ts +149 -0
  1062. package/src/agents/runAgent.ts +14 -7
  1063. package/src/{verification → authorization}/gate.ts +39 -32
  1064. package/src/authorization/index.ts +26 -0
  1065. package/src/authorization/permission-presets.ts +215 -0
  1066. package/src/{verification → authorization}/presets.ts +15 -3
  1067. package/src/{verification → authorization}/rules.ts +16 -3
  1068. package/src/bridge/a2a/client.ts +369 -0
  1069. package/src/bridge/a2a/mapper.ts +17 -0
  1070. package/src/bridge/acp/filesystem.ts +63 -0
  1071. package/src/bridge/acp/index.ts +11 -0
  1072. package/src/bridge/acp/permission.ts +71 -0
  1073. package/src/bridge/acp/server.ts +500 -0
  1074. package/src/bridge/acp/update.ts +109 -0
  1075. package/src/bridge/mcp/connector/adapter.ts +8 -4
  1076. package/src/bridge/sse/mapper.ts +30 -0
  1077. package/src/bus/breaker.ts +15 -10
  1078. package/src/bus/index.ts +10 -8
  1079. package/src/bus/lock.ts +36 -19
  1080. package/src/bus/ownership.ts +17 -9
  1081. package/src/compaction/context-window.ts +23 -1
  1082. package/src/compaction/index.ts +6 -0
  1083. package/src/compaction/manual.ts +177 -0
  1084. package/src/compaction/plan.ts +226 -0
  1085. package/src/compaction/summary.ts +31 -0
  1086. package/src/compaction/verifier.ts +2 -2
  1087. package/src/config/registry.ts +208 -0
  1088. package/src/config/runtime.ts +27 -0
  1089. package/src/connector/BaseConnector.ts +8 -3
  1090. package/src/connector/builtins/http.ts +12 -2
  1091. package/src/connector/builtins/webhook.ts +6 -2
  1092. package/src/connector/index.ts +45 -29
  1093. package/src/connector/mcp/adapter.ts +51 -1
  1094. package/src/connector/mcp/client.ts +32 -20
  1095. package/src/connector/mcp/discovery.ts +31 -20
  1096. package/src/connector/mcp/http-sse.ts +12 -6
  1097. package/src/connector/mcp/index.ts +8 -7
  1098. package/src/connector/mcp/reconnect.ts +194 -0
  1099. package/src/connector/mcp/server/index.ts +32 -0
  1100. package/src/connector/mcp/{server-stdio.ts → server/server-stdio.ts} +5 -4
  1101. package/src/connector/mcp/{server.ts → server/server.ts} +17 -11
  1102. package/src/connector/mcp/stdio.ts +18 -9
  1103. package/src/connector/mcp/streamable-http.ts +8 -4
  1104. package/src/{bridge/tools/connector → connector/tools}/adapter.ts +5 -5
  1105. package/src/{bridge/tools/connector → connector/tools}/definitions.ts +4 -4
  1106. package/src/{bridge/tools/connector → connector/tools}/router.ts +17 -9
  1107. package/src/connector/web/guarded-fetch.ts +288 -0
  1108. package/src/connector/web/index.ts +17 -0
  1109. package/src/connector/web/types.ts +99 -0
  1110. package/src/constants/acp/index.ts +104 -0
  1111. package/src/constants/credential-env-keys.ts +63 -0
  1112. package/src/constants/index.ts +3 -1
  1113. package/src/constants/secret-patterns.ts +102 -0
  1114. package/src/constants/telemetry/index.ts +98 -0
  1115. package/src/contracts/api.ts +11 -0
  1116. package/src/deprecated-aliases.ts +86 -0
  1117. package/src/eval/judge.ts +2 -2
  1118. package/src/execution/base.ts +18 -7
  1119. package/src/execution/code-runtime/types.ts +116 -0
  1120. package/src/execution/code-runtime/worker.ts +266 -0
  1121. package/src/{connector/execution → execution}/factory.ts +3 -3
  1122. package/src/{connector/execution → execution}/hybrid.ts +13 -7
  1123. package/src/execution/index.ts +24 -0
  1124. package/src/execution/local.ts +4 -2
  1125. package/src/{connector/execution → execution}/remote.ts +15 -8
  1126. package/src/index.ts +17 -0
  1127. package/src/invariants/index.ts +201 -0
  1128. package/src/manager/agent/lifecycle.ts +172 -58
  1129. package/src/manager/connector/environment.ts +22 -11
  1130. package/src/manager/connector/lifecycle.ts +30 -11
  1131. package/src/manager/connector/tenant.ts +33 -14
  1132. package/src/manager/index.ts +16 -2
  1133. package/src/manager/project/lifecycle.ts +1 -1
  1134. package/src/manager/run/emergency.ts +9 -7
  1135. package/src/manager/run/persistence.ts +110 -8
  1136. package/src/manager/topic/lifecycle.ts +235 -0
  1137. package/src/manager/topic/objective.ts +203 -0
  1138. package/src/persona/assembler.ts +14 -3
  1139. package/src/plugin/lifecycle.ts +156 -20
  1140. package/src/plugin/loader.ts +67 -16
  1141. package/src/probe/index.ts +1 -0
  1142. package/src/probe/registry.ts +41 -5
  1143. package/src/process/kill-tree.ts +52 -0
  1144. package/src/prompt/contributions.ts +173 -0
  1145. package/src/prompt/index.ts +15 -0
  1146. package/src/provider/attribution.ts +57 -0
  1147. package/src/provider/{collect.ts → collect-chat-completion.ts} +4 -2
  1148. package/src/provider/conformance.ts +189 -0
  1149. package/src/provider/errors.ts +27 -12
  1150. package/src/provider/fallback.ts +32 -10
  1151. package/src/provider/idle-timeout.ts +112 -0
  1152. package/src/provider/instrumentation.ts +4 -2
  1153. package/src/provider/retry.ts +63 -21
  1154. package/src/public-runtime.ts +378 -14
  1155. package/src/public-tools.ts +41 -1
  1156. package/src/public-types.ts +101 -4
  1157. package/src/rag/rag-tool.ts +4 -2
  1158. package/src/read-model/index.ts +14 -0
  1159. package/src/read-model/registry.ts +152 -0
  1160. package/src/read-model/run-status.ts +127 -0
  1161. package/src/registry/{Registry.ts → BaseRegistry.ts} +1 -1
  1162. package/src/registry/ManagedRegistry.ts +26 -9
  1163. package/src/registry/command/index-exports.ts +4 -0
  1164. package/src/registry/command/index.ts +105 -0
  1165. package/src/registry/command/kernel-commands.ts +110 -0
  1166. package/src/registry/connector/scoped.ts +6 -5
  1167. package/src/registry/index.ts +7 -1
  1168. package/src/registry/tool/execute.ts +52 -13
  1169. package/src/registry/tool/presentation.ts +116 -0
  1170. package/src/registry/tool/screen.ts +132 -0
  1171. package/src/run/drain.ts +13 -3
  1172. package/src/run/reporter.ts +208 -153
  1173. package/src/run-query/index.ts +108 -0
  1174. package/src/runtime/bidi/session.ts +7 -2
  1175. package/src/runtime/decision/fallback.ts +6 -3
  1176. package/src/runtime/decision/parser.ts +10 -9
  1177. package/src/runtime/jobs/registry.ts +346 -0
  1178. package/src/runtime/query/approval-policy.ts +78 -0
  1179. package/src/runtime/query/checkpoint.ts +6 -6
  1180. package/src/runtime/query/context.ts +120 -30
  1181. package/src/runtime/query/events.ts +19 -11
  1182. package/src/runtime/query/executor.ts +287 -66
  1183. package/src/runtime/query/guardrail-presets.ts +61 -14
  1184. package/src/runtime/query/guardrails.ts +16 -12
  1185. package/src/runtime/query/index.ts +579 -96
  1186. package/src/runtime/query/iteration/index.ts +269 -87
  1187. package/src/runtime/query/iteration/phases/advisory.ts +17 -16
  1188. package/src/runtime/query/iteration/phases/compaction.ts +235 -187
  1189. package/src/runtime/query/iteration/phases/context.ts +82 -21
  1190. package/src/runtime/query/iteration/phases/tool-review.ts +28 -9
  1191. package/src/runtime/query/iteration/phases/working-memory.ts +3 -2
  1192. package/src/runtime/query/iteration/stream-turn.ts +14 -14
  1193. package/src/runtime/query/{context-cache.ts → prompt-cache.ts} +23 -3
  1194. package/src/runtime/query/prompt.ts +104 -4
  1195. package/src/runtime/query/repeat-call.ts +130 -0
  1196. package/src/runtime/query/replay/mutate.ts +6 -0
  1197. package/src/runtime/query/result.ts +47 -10
  1198. package/src/runtime/query/resume-pending.ts +19 -17
  1199. package/src/runtime/query/resume-run.ts +2 -2
  1200. package/src/runtime/query/run-state.ts +5 -5
  1201. package/src/runtime/query/tool-grants.ts +1 -1
  1202. package/src/runtime/query/tool-output-budget.ts +36 -3
  1203. package/src/runtime/query/tool-pause.ts +2 -1
  1204. package/src/runtime/query/tooling.ts +17 -2
  1205. package/src/sandbox/provider/local.ts +94 -21
  1206. package/src/sandbox/terminal.ts +197 -0
  1207. package/src/{gateway → scheduler}/completion-inbox.ts +20 -10
  1208. package/src/scheduler/delegating.ts +297 -0
  1209. package/src/{gateway → scheduler}/local.ts +24 -15
  1210. package/src/session/actor-scope.ts +121 -0
  1211. package/src/session/errors.ts +30 -8
  1212. package/src/session/handoff/assignment.ts +5 -5
  1213. package/src/session/handoff/broadcast.ts +9 -9
  1214. package/src/session/handoff/single.ts +8 -8
  1215. package/src/session/migration/filesystem.ts +46 -2
  1216. package/src/session/migration/id-prefix.ts +60 -22
  1217. package/src/session/migration/index.ts +5 -0
  1218. package/src/session/migration/marker.ts +19 -4
  1219. package/src/session/retention/archive.ts +32 -12
  1220. package/src/session/workspace/git-worktree.ts +17 -8
  1221. package/src/skills/loader.ts +39 -9
  1222. package/src/skills/registry.ts +177 -20
  1223. package/src/store/attachment/index.ts +182 -0
  1224. package/src/store/config/index.ts +74 -0
  1225. package/src/store/feedback/conformance.ts +193 -0
  1226. package/src/store/feedback/disk.ts +184 -0
  1227. package/src/store/feedback/index.ts +13 -0
  1228. package/src/store/feedback/memory.ts +0 -0
  1229. package/src/store/feedback/types.ts +107 -0
  1230. package/src/store/index.ts +5 -0
  1231. package/src/store/kv/record-store.ts +91 -0
  1232. package/src/store/memory/disk.ts +35 -32
  1233. package/src/store/run/checkpoint-disk.ts +27 -6
  1234. package/src/store/run/checkpoint-memory.ts +8 -8
  1235. package/src/store/run/claim-disk.ts +58 -13
  1236. package/src/store/run/conformance.ts +11 -10
  1237. package/src/store/run/disk.ts +77 -5
  1238. package/src/store/run/listing.ts +6 -6
  1239. package/src/store/run/memory.ts +24 -1
  1240. package/src/store/session/canonical-path.ts +45 -0
  1241. package/src/store/session/disk.ts +216 -191
  1242. package/src/store/session/memory.ts +43 -5
  1243. package/src/store/task/disk.ts +77 -67
  1244. package/src/store/topic/index.ts +33 -0
  1245. package/src/store/topic/memory.ts +111 -0
  1246. package/src/store/topic/objective.ts +290 -0
  1247. package/src/store/topic/state.ts +204 -0
  1248. package/src/streaming/coalesce.ts +19 -5
  1249. package/src/telemetry/runtime-accessors.ts +45 -1
  1250. package/src/test-support/ids.ts +117 -0
  1251. package/src/testing.ts +40 -0
  1252. package/src/tools/builtins/bash.ts +82 -3
  1253. package/src/tools/builtins/edit.ts +36 -0
  1254. package/src/tools/builtins/index.ts +29 -1
  1255. package/src/tools/builtins/job.ts +133 -0
  1256. package/src/tools/builtins/lsp.ts +214 -0
  1257. package/src/tools/builtins/run-code.ts +154 -0
  1258. package/src/tools/builtins/skill.ts +134 -0
  1259. package/src/tools/builtins/web-guidance.ts +46 -0
  1260. package/src/tools/builtins/web.ts +156 -0
  1261. package/src/tools/builtins/write-file.ts +37 -1
  1262. package/src/tools/coordinator/agent.ts +2 -2
  1263. package/src/tools/coordinator/index.ts +144 -40
  1264. package/src/tools/coordinator/outcome.ts +2 -2
  1265. package/src/tools/coordinator/wait-with-idle-bound.ts +3 -3
  1266. package/src/tools/defineTool.ts +14 -0
  1267. package/src/tools/env-scrub.ts +91 -0
  1268. package/src/tools/memory/read.ts +5 -2
  1269. package/src/tools/task/create.ts +2 -1
  1270. package/src/tools/task/update.ts +7 -4
  1271. package/src/types/acp/index.ts +163 -0
  1272. package/src/types/agent/base.ts +67 -5
  1273. package/src/types/agent/delegate.ts +110 -0
  1274. package/src/types/agent/index.ts +1 -1
  1275. package/src/types/agent/manager.ts +7 -1
  1276. package/src/types/agent/reactive.ts +27 -3
  1277. package/src/types/agent/{gateway.ts → scheduler.ts} +41 -4
  1278. package/src/types/agent/supervisor.ts +26 -5
  1279. package/src/types/agent/task.ts +31 -9
  1280. package/src/types/agent/working-memory.ts +1 -1
  1281. package/src/types/{verification → authorization}/index.ts +79 -10
  1282. package/src/types/bus/index.ts +30 -1
  1283. package/src/types/code-navigation/index.ts +99 -0
  1284. package/src/types/command/index.ts +68 -0
  1285. package/src/types/common/index.ts +26 -2
  1286. package/src/types/connector/mcp.ts +8 -0
  1287. package/src/types/guardrail/index.ts +72 -1
  1288. package/src/types/hitl/policy.ts +83 -0
  1289. package/src/types/ids/brand.ts +58 -0
  1290. package/src/types/ids/index.ts +109 -42
  1291. package/src/types/message/index.ts +25 -1
  1292. package/src/types/project/entity.ts +22 -2
  1293. package/src/types/provider/interface.ts +45 -2
  1294. package/src/types/provider/model.ts +16 -2
  1295. package/src/types/run/audit.ts +164 -0
  1296. package/src/types/run/cancel-cause.ts +60 -0
  1297. package/src/types/run/checkpoint-store.ts +31 -11
  1298. package/src/types/run/config.ts +25 -4
  1299. package/src/types/run/derive-status.ts +3 -3
  1300. package/src/types/run/entity.ts +2 -4
  1301. package/src/types/run/event-cursor.ts +3 -3
  1302. package/src/types/run/events.ts +165 -6
  1303. package/src/types/run/index.ts +2 -0
  1304. package/src/types/run/metadata.ts +2 -2
  1305. package/src/types/run/prepare-step.ts +33 -0
  1306. package/src/types/run/state.ts +78 -11
  1307. package/src/types/run/stop-reason.ts +9 -0
  1308. package/src/types/run/store.ts +40 -0
  1309. package/src/types/sandbox/index.ts +37 -0
  1310. package/src/types/session/actor.ts +10 -2
  1311. package/src/types/session/entity.ts +9 -7
  1312. package/src/types/session/ids.ts +2 -0
  1313. package/src/types/session/index.ts +2 -0
  1314. package/src/types/session/store.ts +53 -22
  1315. package/src/types/session/sub-session.ts +50 -9
  1316. package/src/types/skills/index.ts +50 -0
  1317. package/src/types/tool/index.ts +171 -1
  1318. package/src/types/tool/presentation.ts +48 -0
  1319. package/src/types/{thread → topic}/entity.ts +34 -26
  1320. package/src/types/topic/index.ts +23 -0
  1321. package/src/types/topic/objective.ts +93 -0
  1322. package/src/types/topic/state.ts +60 -0
  1323. package/src/types/topic/store.ts +101 -0
  1324. package/src/types/workspace/ref.ts +7 -0
  1325. package/src/utils/abort.ts +16 -1
  1326. package/src/utils/hash.ts +16 -0
  1327. package/src/utils/id.ts +172 -12
  1328. package/src/utils/log/attributes.ts +47 -0
  1329. package/src/utils/log/caps.ts +118 -0
  1330. package/src/utils/log/create-logger.ts +198 -0
  1331. package/src/utils/log/exception.ts +124 -0
  1332. package/src/utils/log/index.ts +24 -0
  1333. package/src/utils/log/process-sink.ts +76 -0
  1334. package/src/utils/log/redact.ts +77 -0
  1335. package/src/utils/log/sinks.ts +205 -0
  1336. package/src/utils/log/templates.ts +161 -0
  1337. package/src/utils/log/types.ts +195 -0
  1338. package/src/utils/logger.ts +121 -2
  1339. package/src/utils/renamed-field.ts +35 -0
  1340. package/src/vault/CredentialProvider.ts +147 -0
  1341. package/src/vault/InMemoryCredentialVault.ts +16 -5
  1342. package/src/vault/index.ts +16 -0
  1343. package/src/vault/instrumentation.ts +63 -2
  1344. package/dist/bridge/tools/connector/adapter.d.ts.map +0 -1
  1345. package/dist/bridge/tools/connector/adapter.js.map +0 -1
  1346. package/dist/bridge/tools/connector/definitions.d.ts.map +0 -1
  1347. package/dist/bridge/tools/connector/definitions.js.map +0 -1
  1348. package/dist/bridge/tools/connector/index.d.ts.map +0 -1
  1349. package/dist/bridge/tools/connector/index.js.map +0 -1
  1350. package/dist/bridge/tools/connector/router.d.ts.map +0 -1
  1351. package/dist/bridge/tools/connector/router.js.map +0 -1
  1352. package/dist/connector/execution/factory.d.ts.map +0 -1
  1353. package/dist/connector/execution/factory.js.map +0 -1
  1354. package/dist/connector/execution/hybrid.d.ts.map +0 -1
  1355. package/dist/connector/execution/hybrid.js.map +0 -1
  1356. package/dist/connector/execution/index.d.ts +0 -6
  1357. package/dist/connector/execution/index.d.ts.map +0 -1
  1358. package/dist/connector/execution/index.js +0 -4
  1359. package/dist/connector/execution/index.js.map +0 -1
  1360. package/dist/connector/execution/remote.d.ts.map +0 -1
  1361. package/dist/connector/execution/remote.js.map +0 -1
  1362. package/dist/connector/mcp/server-stdio.d.ts.map +0 -1
  1363. package/dist/connector/mcp/server-stdio.js.map +0 -1
  1364. package/dist/connector/mcp/server.d.ts.map +0 -1
  1365. package/dist/connector/mcp/server.js.map +0 -1
  1366. package/dist/constants/verification/index.d.ts.map +0 -1
  1367. package/dist/constants/verification/index.js.map +0 -1
  1368. package/dist/gateway/completion-inbox.d.ts.map +0 -1
  1369. package/dist/gateway/completion-inbox.js.map +0 -1
  1370. package/dist/gateway/local.d.ts.map +0 -1
  1371. package/dist/gateway/local.js.map +0 -1
  1372. package/dist/manager/thread/lifecycle.d.ts +0 -105
  1373. package/dist/manager/thread/lifecycle.d.ts.map +0 -1
  1374. package/dist/manager/thread/lifecycle.js.map +0 -1
  1375. package/dist/provider/collect.d.ts.map +0 -1
  1376. package/dist/provider/collect.js.map +0 -1
  1377. package/dist/registry/Registry.d.ts.map +0 -1
  1378. package/dist/registry/Registry.js.map +0 -1
  1379. package/dist/router/task-router.d.ts.map +0 -1
  1380. package/dist/router/task-router.js.map +0 -1
  1381. package/dist/runtime/query/context-cache.d.ts.map +0 -1
  1382. package/dist/runtime/query/context-cache.js.map +0 -1
  1383. package/dist/store/thread/disk.d.ts +0 -41
  1384. package/dist/store/thread/disk.d.ts.map +0 -1
  1385. package/dist/store/thread/disk.js +0 -238
  1386. package/dist/store/thread/disk.js.map +0 -1
  1387. package/dist/store/thread/index.d.ts +0 -4
  1388. package/dist/store/thread/index.d.ts.map +0 -1
  1389. package/dist/store/thread/index.js +0 -6
  1390. package/dist/store/thread/index.js.map +0 -1
  1391. package/dist/store/thread/memory.d.ts +0 -23
  1392. package/dist/store/thread/memory.d.ts.map +0 -1
  1393. package/dist/store/thread/memory.js +0 -90
  1394. package/dist/store/thread/memory.js.map +0 -1
  1395. package/dist/types/agent/gateway.d.ts.map +0 -1
  1396. package/dist/types/agent/gateway.js +0 -2
  1397. package/dist/types/agent/gateway.js.map +0 -1
  1398. package/dist/types/thread/entity.d.ts.map +0 -1
  1399. package/dist/types/thread/index.d.ts +0 -3
  1400. package/dist/types/thread/index.d.ts.map +0 -1
  1401. package/dist/types/thread/index.js +0 -5
  1402. package/dist/types/thread/index.js.map +0 -1
  1403. package/dist/types/thread/store.d.ts +0 -86
  1404. package/dist/types/thread/store.d.ts.map +0 -1
  1405. package/dist/types/thread/store.js +0 -22
  1406. package/dist/types/thread/store.js.map +0 -1
  1407. package/dist/types/verification/index.d.ts +0 -317
  1408. package/dist/types/verification/index.d.ts.map +0 -1
  1409. package/dist/types/verification/index.js +0 -53
  1410. package/dist/types/verification/index.js.map +0 -1
  1411. package/dist/verification/gate.d.ts.map +0 -1
  1412. package/dist/verification/gate.js.map +0 -1
  1413. package/dist/verification/index.d.ts +0 -4
  1414. package/dist/verification/index.d.ts.map +0 -1
  1415. package/dist/verification/index.js +0 -4
  1416. package/dist/verification/index.js.map +0 -1
  1417. package/dist/verification/presets.d.ts.map +0 -1
  1418. package/dist/verification/presets.js.map +0 -1
  1419. package/dist/verification/rules.d.ts +0 -4
  1420. package/dist/verification/rules.d.ts.map +0 -1
  1421. package/dist/verification/rules.js.map +0 -1
  1422. package/src/connector/execution/index.ts +0 -5
  1423. package/src/manager/thread/lifecycle.ts +0 -217
  1424. package/src/store/thread/disk.ts +0 -272
  1425. package/src/store/thread/index.ts +0 -7
  1426. package/src/store/thread/memory.ts +0 -104
  1427. package/src/types/thread/index.ts +0 -6
  1428. package/src/types/thread/store.ts +0 -92
  1429. package/src/verification/index.ts +0 -3
  1430. /package/dist/{bridge/tools/connector → connector/tools}/index.d.ts +0 -0
  1431. /package/dist/{bridge/tools/connector → connector/tools}/index.js +0 -0
  1432. /package/dist/constants/{verification → authorization}/index.d.ts +0 -0
  1433. /package/dist/constants/{verification → authorization}/index.js +0 -0
  1434. /package/dist/{router → model-router}/task-router.d.ts +0 -0
  1435. /package/dist/{router → model-router}/task-router.js +0 -0
  1436. /package/dist/types/{thread → topic}/entity.js +0 -0
  1437. /package/src/{bridge/tools/connector → connector/tools}/index.ts +0 -0
  1438. /package/src/constants/{verification → authorization}/index.ts +0 -0
  1439. /package/src/{router → model-router}/task-router.ts +0 -0
@@ -1,16 +1,21 @@
1
1
  import { join } from 'node:path';
2
2
  import { AdvisorRegistry, AdvisoryContext, AdvisoryExecutor, TriggerEvaluator, assertBudgetEnforceable, } from '../../advisory/index.js';
3
+ import { drainQueuedMessages } from '../../agents/handle.js';
4
+ import { AuthorizationGate } from '../../authorization/gate.js';
3
5
  import { findDanglingMessages, removeDanglingMessages } from '../../compaction/dangling.js';
4
6
  import { extractFromUserMessage } from '../../compaction/extractor.js';
5
7
  import { WorkingStateManager } from '../../compaction/manager.js';
6
8
  import { serializeState as serializeWorkingState } from '../../compaction/serializer.js';
7
9
  import { restoreWorkingState, snapshotWorkingState } from '../../compaction/wire.js';
10
+ import { BOOT_EVENT_NAMES } from '../../constants/telemetry/index.js';
8
11
  import { TOOL_OUTPUT_DIR_NAME } from '../../constants/tools/index.js';
9
12
  import { EmergencySaveManager } from '../../manager/run/emergency.js';
10
13
  import { resolveModelPricing } from '../../pricing/index.js';
11
14
  import { resolveProviderCapabilities } from '../../provider/capabilities.js';
12
15
  import { withProviderFallback, } from '../../provider/fallback.js';
13
16
  import { withProviderRetry } from '../../provider/retry.js';
17
+ import { DefaultFilesystemMigrator, loggingMigrationSink } from '../../session/migration/index.js';
18
+ import { resolveAttachments } from '../../store/attachment/index.js';
14
19
  import { GENAI, NAMZU, agentRunSpanName, parentContext, serializeSpan, } from '../../telemetry/attributes.js';
15
20
  import { recordRunDuration } from '../../telemetry/metrics.js';
16
21
  import { getTracer } from '../../telemetry/runtime-accessors.js';
@@ -23,8 +28,12 @@ import { autoApproveHandler, } from '../../types/hitl/index.js';
23
28
  import { createSystemMessage } from '../../types/message/index.js';
24
29
  import { resolveRunEventReplay } from '../../types/run/event-cursor.js';
25
30
  import { memoryCandidateFor } from '../../types/run/memory-promotion.js';
26
- import { getRootLogger } from '../../utils/logger.js';
27
- import { VerificationGate } from '../../verification/gate.js';
31
+ import { toErrorMessage } from '../../utils/error.js';
32
+ import { generateRunId } from '../../utils/id.js';
33
+ import { errorAttributes } from '../../utils/log/exception.js';
34
+ import { EVENT_NAME_ATTRIBUTE } from '../../utils/log/types.js';
35
+ import { pickRenamed } from '../../utils/renamed-field.js';
36
+ import { AUTO_APPROVE_POLICY_NAME, createRunApprovalPolicy } from './approval-policy.js';
28
37
  import { CheckpointManager } from './checkpoint.js';
29
38
  import { RunContextFactory } from './context.js';
30
39
  import { EventTranslator } from './events.js';
@@ -36,6 +45,7 @@ import { isWorkingMemoryMessage } from './iteration/phases/working-memory.js';
36
45
  import { applyLifecycleHookResults } from './plugin-hooks.js';
37
46
  import { PromptBuilder } from './prompt.js';
38
47
  import { PendingAnswers, QuestionParkBinding } from './question-park.js';
48
+ import { RepeatCallTracker } from './repeat-call.js';
39
49
  import { ResultAssembler } from './result.js';
40
50
  import { applyPendingResume, planCrashResume, planPendingResume, recoverCompletedCalls, unansweredToolCalls, } from './resume-pending.js';
41
51
  import { ToolGrantSet } from './tool-grants.js';
@@ -117,14 +127,93 @@ function assertBudgetIsMeasurable(params) {
117
127
  details: { model, providerId: params.provider.id, costLimitUsd: limit },
118
128
  });
119
129
  }
130
+ /**
131
+ * Ask the driver what this model's window is, and never let the answer
132
+ * cost the run.
133
+ *
134
+ * Three outcomes collapse to two here on purpose. No member and a resolved
135
+ * `undefined` both mean "no answer" — the distinction matters to a driver
136
+ * author, not to a caller about to fall through to the table. A rejection
137
+ * is the third, and it is logged rather than propagated: a run that would
138
+ * have worked on the table must not fail because a listing endpoint was
139
+ * down.
140
+ */
141
+ async function resolveProviderContextWindow(provider, model, signal, log) {
142
+ if (!provider.resolveContextWindow || !model)
143
+ return undefined;
144
+ try {
145
+ const reported = await provider.resolveContextWindow(model, signal);
146
+ return typeof reported === 'number' && reported > 0 ? reported : undefined;
147
+ }
148
+ catch (err) {
149
+ log.debug('Provider could not report a context window; using the table', {
150
+ 'namzu.model.id': model,
151
+ 'namzu.error.message': toErrorMessage(err),
152
+ });
153
+ return undefined;
154
+ }
155
+ }
120
156
  export async function* query(params) {
157
+ // Resolved at the DOOR, before a run id exists or a logger is built.
158
+ // A caller who set both spellings of a renamed field has a config bug,
159
+ // and refusing it here costs them nothing; refusing it at the read site
160
+ // deep in the loop turns the same bug into a mid-run failure, after a
161
+ // provider call has been paid for and a partial transcript written.
162
+ const promptCache = pickRenamed('contextCache', params.contextCache, 'promptCache', params.promptCache);
163
+ const taskScheduler = pickRenamed('taskGateway', params.taskGateway, 'taskScheduler', params.taskScheduler);
164
+ // The run's one correlated logger, built before anything below needs
165
+ // one — the migration check, the retry/fallback wrappers and `ctx`
166
+ // itself all read this SAME object, so a retry warning and the run
167
+ // record it retried for carry the identical `namzu.run.id` instead of
168
+ // three separate `getRootLogger()` reads that happened to agree by
169
+ // accident. `runId` is resolved here, once, rather than left to
170
+ // `build`'s own `config.runId ?? generateRunId()` fallback —
171
+ // generating it twice would silently hand the log and the run two
172
+ // different ids.
173
+ const runId = params.runId ?? generateRunId();
174
+ const log = RunContextFactory.buildLogger({
175
+ agentName: params.agentName,
176
+ runConfig: params.runConfig,
177
+ runId,
178
+ parentRunId: params.parentRunId,
179
+ sessionId: params.sessionId,
180
+ topicId: params.topicId,
181
+ projectId: params.projectId,
182
+ tenantId: params.tenantId,
183
+ });
121
184
  // Boot-time filesystem migration (session-hierarchy.md §13.4.1). First
122
185
  // call per process per root actually runs; subsequent calls short-circuit
123
186
  // via the in-memory guard in `context.ts`. Kept here rather than inside
124
187
  // the synchronous `RunContextFactory.build` so the factory signature stays
125
188
  // sync for tests / non-async call sites.
189
+ //
190
+ // The migrator built here — not `ensureMigrated`'s own default — is what
191
+ // turns the migration facts `DefaultFilesystemMigrator` already computes
192
+ // into a `namzu.migration.completed` record instead of discarding them.
193
+ // `ensureMigrated`'s default parameter stays
194
+ // `NOOP_FILESYSTEM_MIGRATION_SINK` (see `context.ts`), so any other path
195
+ // that reaches `ensureMigrated` keeps today's silent behaviour.
126
196
  const cwdForMigration = params.workingDirectory ?? process.cwd();
127
- await RunContextFactory.ensureMigrated(`${cwdForMigration}/.namzu`);
197
+ const migrationResult = await RunContextFactory.ensureMigrated(`${cwdForMigration}/.namzu`, new DefaultFilesystemMigrator(loggingMigrationSink(log)));
198
+ // `loggingMigrationSink` only ever hears about `kind: 'migrated'` — the
199
+ // only outcome `DefaultFilesystemMigrator` ever hands its sink (see the
200
+ // module doc on `FilesystemMigrationSink`). The other two are logged
201
+ // here, straight off the resolved result, rather than by widening
202
+ // `FilesystemMigrationEvent` to carry them: a wider union would need a
203
+ // new arm in every exhaustive switch already written over it — a major —
204
+ // for two outcomes `migrationResult.kind` already fully describes.
205
+ if (migrationResult.kind !== 'migrated') {
206
+ log.debug('filesystem migration: nothing to do', {
207
+ [EVENT_NAME_ATTRIBUTE]: BOOT_EVENT_NAMES.MIGRATION_COMPLETED,
208
+ // `namzu.migration.*`, matching `loggingMigrationSink` — the OTHER
209
+ // emitter of this same event name. Two emitters of one event writing
210
+ // two namespaces for the same fact is precisely the collision the
211
+ // namespaced-key rule exists to stop, and a per-module derivation is
212
+ // how it would be reintroduced.
213
+ 'namzu.migration.kind': migrationResult.kind,
214
+ 'namzu.migration.marker_path': migrationResult.markerPath,
215
+ });
216
+ }
128
217
  // Every model call in the run — the loop's turns, the forced-final
129
218
  // summary, advisory and compaction side calls — goes through this one
130
219
  // wrapped provider, so the retry policy cannot be bypassed by a code
@@ -149,9 +238,7 @@ export async function* query(params) {
149
238
  ];
150
239
  assertCostIsAttributable(chain, params.pricing);
151
240
  assertBudgetIsMeasurable(params);
152
- const withRetry = (provider) => params.retry === false
153
- ? provider
154
- : withProviderRetry(provider, { config: params.retry, log: getRootLogger() });
241
+ const withRetry = (provider) => params.retry === false ? provider : withProviderRetry(provider, { config: params.retry, log });
155
242
  // Who is serving right now, for the run RECORD rather than for the request.
156
243
  //
157
244
  // It starts at the head and moves only when the chain does, which is the
@@ -163,7 +250,7 @@ export async function* query(params) {
163
250
  current: { index: 0, providerId: params.provider.id },
164
251
  };
165
252
  const resilientProvider = withProviderFallback(chain.map((member) => ({ ...member, provider: withRetry(member.provider) })), {
166
- log: getRootLogger(),
253
+ log,
167
254
  onSwap: (to) => {
168
255
  serving.current = to;
169
256
  // `ctx` is declared below and is initialized before anything can
@@ -172,7 +259,62 @@ export async function* query(params) {
172
259
  ctx.runMgr.setServingProvider(to.providerId);
173
260
  },
174
261
  });
262
+ // Asked ONCE, here, before the loop exists. Both readers are synchronous
263
+ // and hot, so this can never move inside the iteration — and a driver
264
+ // that rejects, or one that hangs until the run is cancelled, must not
265
+ // take down a run the table could have served perfectly well. That is
266
+ // why the failure path is a swallow with a log rather than a throw: the
267
+ // window is an optimisation over a working default, not a prerequisite.
268
+ const providerContextWindow = await resolveProviderContextWindow(resilientProvider, params.runConfig.model, params.signal, log);
269
+ // The mode this conversation was left in, when the run config names none.
270
+ // Read once, before the loop exists, for the same reason the context
271
+ // window is: the executor's resolver is synchronous and hot.
272
+ //
273
+ // A store that throws is not a run failure — the run falls back to the
274
+ // config's answer, which is exactly what it did before this existed.
275
+ const topicState = params.topicStateStore
276
+ ? await params.topicStateStore
277
+ .getState(params.topicId, params.tenantId)
278
+ .catch((err) => {
279
+ log.debug('Could not read the topic state; using the run config', {
280
+ 'namzu.topic.id': params.topicId,
281
+ 'namzu.error.message': toErrorMessage(err),
282
+ });
283
+ return null;
284
+ })
285
+ : null;
286
+ // Whatever a host left for "the next run", taken and cleared in one
287
+ // compare-and-set write. Prepended to the messages this run starts from,
288
+ // so it is in the FIRST request rather than arriving a turn late.
289
+ //
290
+ // Cleared as it is read: a queue read and cleared separately re-delivers
291
+ // on a crash between the two, and "start with this" arriving twice is a
292
+ // different instruction from the one that was left.
293
+ const queuedForThisRun = params.topicStateStore
294
+ ? await drainQueuedMessages(params.topicStateStore, params.topicId, params.tenantId).catch((err) => {
295
+ log.debug('Could not drain the topic queue; starting without it', {
296
+ 'namzu.topic.id': params.topicId,
297
+ 'namzu.error.message': toErrorMessage(err),
298
+ });
299
+ return [];
300
+ })
301
+ : [];
302
+ // One effective list, used everywhere the run is seeded from. Three
303
+ // branches below push from it, and computing it at each would be three
304
+ // places to forget the queue.
305
+ //
306
+ // Stored attachments are resolved HERE, once, before the messages reach
307
+ // the run record. Resolving later — at the provider boundary — would put
308
+ // refs in the durable transcript and in every checkpoint, and a run
309
+ // resumed against a store that had since forgotten a ref would fail
310
+ // replaying its own history rather than at the moment somebody asked for
311
+ // the bytes. Every failure refuses: a message that silently lost its
312
+ // image is a model answering about a picture it never saw.
313
+ const seeded = queuedForThisRun.length > 0 ? [...queuedForThisRun, ...params.messages] : params.messages;
314
+ const initialMessages = [...(await resolveAttachments(seeded, params.attachmentStore))];
175
315
  const ctx = RunContextFactory.build({
316
+ ...(topicState ? { topicPermissionMode: topicState.permissionMode } : {}),
317
+ ...(params.permissionModeRef ? { permissionModeRef: params.permissionModeRef } : {}),
176
318
  agentId: params.agentId,
177
319
  agentName: params.agentName,
178
320
  runConfig: params.runConfig,
@@ -180,21 +322,49 @@ export async function* query(params) {
180
322
  workingDirectory: params.workingDirectory,
181
323
  pricing: params.pricing,
182
324
  enableActivityTracking: params.enableActivityTracking,
183
- messages: params.messages,
325
+ messages: initialMessages,
184
326
  signal: params.signal,
185
327
  sessionId: params.sessionId,
186
- threadId: params.threadId,
328
+ topicId: params.topicId,
187
329
  projectId: params.projectId,
188
330
  tenantId: params.tenantId,
189
331
  pathBuilder: params.pathBuilder,
190
332
  checkpointStore: params.checkpointStore,
191
333
  runStore: params.runStore,
192
- runId: params.runId,
334
+ runId,
193
335
  parentRunId: params.parentRunId,
194
336
  depth: params.depth,
337
+ log,
338
+ });
339
+ // Built here because the plan-approval closure below captures it, and
340
+ // its `emit` resolves `eventTranslator` at CALL time — the translator is
341
+ // a `const` some lines further down.
342
+ //
343
+ // The HANDOUT is therefore deliberately NOT here. A host given the box
344
+ // at this point can call `set` synchronously, `emit` reaches
345
+ // `eventTranslator` inside its temporal dead zone, and the run dies
346
+ // before it starts. That is not hypothetical: it is what the first
347
+ // version of this did, and the test that hands out the box and
348
+ // immediately swaps the policy is the one that found it.
349
+ const approvalPolicy = createRunApprovalPolicy({
350
+ runId: ctx.runId,
351
+ initial: {
352
+ // By identity against the default, not by presence. `resumeHandler`
353
+ // is REQUIRED on `QueryParams` — `drainQuery` substitutes
354
+ // `autoApproveHandler` before calling here — so "is it set" is
355
+ // always yes and would name every run `host`, including the ones
356
+ // approving everything unattended. Identity is what actually
357
+ // separates the two.
358
+ name: params.approvalPolicyName ??
359
+ (params.resumeHandler === autoApproveHandler ? AUTO_APPROVE_POLICY_NAME : 'host'),
360
+ handler: params.resumeHandler,
361
+ },
362
+ emit: (event) => eventTranslator.emitEvent(event),
195
363
  });
196
364
  ctx.planManager.setApprovalHandler(async (request) => {
197
- const decision = await params.resumeHandler({
365
+ // `.current.handler`, never a captured `params.resumeHandler`. That
366
+ // capture is what made changing the policy mean ending the run.
367
+ const decision = await approvalPolicy.current.handler({
198
368
  type: 'plan_approval',
199
369
  runId: ctx.runId,
200
370
  checkpointId: `cp_plan_${request.planId}`,
@@ -228,7 +398,7 @@ export async function* query(params) {
228
398
  }
229
399
  return { approved: false, feedback: `Action: ${decision.action}` };
230
400
  });
231
- const eventTranslator = new EventTranslator(ctx.runMgr);
401
+ const eventTranslator = new EventTranslator(ctx.runMgr, undefined, ctx.log);
232
402
  eventTranslator.wireActivityStore(ctx.activityStore, ctx.runId);
233
403
  eventTranslator.wirePlanManager(ctx.planManager, ctx.runId);
234
404
  const unsubscribeTaskStore = params.taskStore
@@ -287,9 +457,10 @@ export async function* query(params) {
287
457
  details: { providerId: params.provider.id, capability: 'tools', registeredToolCount },
288
458
  });
289
459
  }
290
- ctx.log.warn(`CAPABILITY MISMATCH: ${message}`, {
291
- providerId: params.provider.id,
292
- registeredToolCount,
460
+ ctx.log.warn('Capability mismatch: the provider declares no tool support', {
461
+ 'namzu.capability.detail': message,
462
+ [GENAI.SYSTEM]: params.provider.id,
463
+ 'namzu.runtime.registered_tool_count': registeredToolCount,
293
464
  });
294
465
  }
295
466
  if (attachmentMessageCount > 0) {
@@ -301,9 +472,10 @@ export async function* query(params) {
301
472
  details: { providerId: params.provider.id, capability: 'vision', attachmentMessageCount },
302
473
  });
303
474
  }
304
- ctx.log.warn(`CAPABILITY MISMATCH: ${message}`, {
305
- providerId: params.provider.id,
306
- attachmentMessageCount,
475
+ ctx.log.warn('Capability mismatch: the provider declares no vision support', {
476
+ 'namzu.capability.detail': message,
477
+ [GENAI.SYSTEM]: params.provider.id,
478
+ 'namzu.runtime.attachment_message_count': attachmentMessageCount,
307
479
  });
308
480
  }
309
481
  if (documentMessageCount > 0) {
@@ -315,14 +487,30 @@ export async function* query(params) {
315
487
  details: { providerId: params.provider.id, capability: 'documents', documentMessageCount },
316
488
  });
317
489
  }
318
- ctx.log.warn(`CAPABILITY MISMATCH: ${message}`, {
319
- providerId: params.provider.id,
320
- documentMessageCount,
490
+ ctx.log.warn('Capability mismatch: the provider declares no document support', {
491
+ 'namzu.capability.detail': message,
492
+ [GENAI.SYSTEM]: params.provider.id,
493
+ 'namzu.runtime.document_message_count': documentMessageCount,
321
494
  });
322
495
  }
323
- const effectiveAllowedTools = stripToolSurfaces
496
+ // Denied names are subtracted LAST, after the allow-list is resolved
497
+ // against the registry — so a deny reaches a run that named no
498
+ // allow-list at all, which is the ordinary case for a delegated child.
499
+ // Applied to `effectiveAllowedTools`, which `query()` binds to both the
500
+ // request tool list AND the `ToolExecutor`: narrowing only the request
501
+ // shows the model fewer tools and lets it call any of them by name.
502
+ const allowedBeforeDenial = stripToolSurfaces
324
503
  ? []
325
504
  : withDeferredDiscoveryTool(params.tools, params.allowedTools);
505
+ const denied = new Set(params.deniedTools ?? []);
506
+ const effectiveAllowedTools = denied.size === 0
507
+ ? allowedBeforeDenial
508
+ : // An absent allow-list means "every registered tool", so a deny
509
+ // with no allow-list has to be resolved against the registry
510
+ // here — otherwise the subtraction would be from an empty list
511
+ // and would deny nothing, which is the shape a delegated child
512
+ // arrives in.
513
+ [...(allowedBeforeDenial ?? params.tools.listNames())].filter((name) => !denied.has(name));
326
514
  // The two halves of a durable pause, owned by the RUN when the host
327
515
  // does not own them.
328
516
  //
@@ -349,12 +537,18 @@ export async function* query(params) {
349
537
  tools: params.tools,
350
538
  runId: ctx.runId,
351
539
  workingDirectory: ctx.cwd,
352
- permissionMode: ctx.permissionMode,
540
+ permissionMode: () => ctx.permissionMode.current,
353
541
  env: params.runConfig.env ?? {},
354
542
  abortSignal: ctx.abortController.signal,
355
543
  allowedTools: effectiveAllowedTools,
356
544
  invocationState: params.invocationState,
357
545
  pluginManager: params.pluginManager,
546
+ ...(params.backgroundJobs ? { backgroundJobs: params.backgroundJobs } : {}),
547
+ // The `skill` tool's registry. Threaded from the run rather than
548
+ // held by the tool, because a tool that reached for a module-level
549
+ // registry would answer about whatever the last run configured.
550
+ ...(params.skillRegistry ? { skills: params.skillRegistry } : {}),
551
+ ...(params.web ? { web: params.web } : {}),
358
552
  ...(params.toolTimeoutMs !== undefined ? { toolTimeoutMs: params.toolTimeoutMs } : {}),
359
553
  ...(params.toolRetryBackoff !== undefined
360
554
  ? { toolRetryBackoff: params.toolRetryBackoff }
@@ -381,7 +575,7 @@ export async function* query(params) {
381
575
  toolPause: (toolUseId) => createToolPause({
382
576
  runId: ctx.runId,
383
577
  toolUseId,
384
- parkHandler: params.resumeHandler,
578
+ parkHandler: (request) => approvalPolicy.current.handler(request),
385
579
  recorder: questionParks,
386
580
  pendingAnswers,
387
581
  }),
@@ -399,6 +593,7 @@ export async function* query(params) {
399
593
  tools: params.tools,
400
594
  allowedTools: effectiveAllowedTools,
401
595
  runtimeContext: params.runtimeContext,
596
+ ...(params.promptContributions ? { contributions: params.promptContributions } : {}),
402
597
  });
403
598
  const guard = new GuardCoordinator({
404
599
  tokenBudget: params.runConfig.tokenBudget,
@@ -426,6 +621,10 @@ export async function* query(params) {
426
621
  // Read at settle time, not now: checkpoints are written per
427
622
  // iteration, so the answer changes as the run proceeds.
428
623
  resumeCheckpointId: () => checkpointMgr.lastCheckpointId,
624
+ // Read only to recover WHY a cancellation happened. The run loop
625
+ // already knows THAT it was cancelled; the origin lives on the abort
626
+ // reason and nothing else carries it this far.
627
+ signal: ctx.abortController.signal,
429
628
  });
430
629
  let advisoryCtx;
431
630
  if (params.advisory && params.advisory.advisors.length > 0) {
@@ -470,8 +669,15 @@ export async function* query(params) {
470
669
  }
471
670
  }
472
671
  }
473
- const verificationGate = params.verificationGate?.enabled
474
- ? new VerificationGate(params.verificationGate, ctx.log)
672
+ // One resolve, one construction. Four sites read this field, and had
673
+ // each read `params.verificationGate` directly a host that set only the
674
+ // new name would get a gate on one path and none on another — which for
675
+ // an AUTHORIZATION gate means a tool call permitted somewhere it should
676
+ // have been refused. That is the failure this field's window has to not
677
+ // have.
678
+ const gateConfig = pickRenamed('verificationGate', params.verificationGate, 'authorizationGate', params.authorizationGate);
679
+ const verificationGate = gateConfig?.enabled
680
+ ? new AuthorizationGate(gateConfig, ctx.log)
475
681
  : undefined;
476
682
  const iterationOrchestrator = new IterationOrchestrator({
477
683
  provider: resilientProvider,
@@ -479,6 +685,7 @@ export async function* query(params) {
479
685
  runConfig: params.runConfig,
480
686
  ...(params.stopWhen ? { stopWhen: params.stopWhen } : {}),
481
687
  ...(params.prepareStep ? { prepareStep: params.prepareStep } : {}),
688
+ ...(params.beforeStep ? { beforeStep: params.beforeStep } : {}),
482
689
  ...(params.onStepFinish ? { onStepFinish: params.onStepFinish } : {}),
483
690
  ...(params.reviewAnswer ? { reviewAnswer: params.reviewAnswer } : {}),
484
691
  ...(params.maxAnswerReviews !== undefined ? { maxAnswerReviews: params.maxAnswerReviews } : {}),
@@ -496,17 +703,27 @@ export async function* query(params) {
496
703
  drainPending: () => eventTranslator.drainPending(),
497
704
  abortController: ctx.abortController,
498
705
  log: ctx.log,
499
- resumeHandler: params.resumeHandler,
706
+ // Read through the box on every call, so a swap lands on the next
707
+ // question rather than the next run.
708
+ resumeHandler: (request) => approvalPolicy.current.handler(request),
709
+ takeApprovalPolicyChange: () => approvalPolicy.takeUnannouncedChange(),
710
+ ...(params.promptContributions ? { promptContributions: params.promptContributions } : {}),
500
711
  ...(params.steering ? { steering: params.steering } : {}),
501
712
  checkpointMgr,
502
713
  planManager: ctx.planManager,
503
- taskGateway: params.taskGateway,
714
+ taskGateway: taskScheduler,
504
715
  completionInbox: params.completionInbox,
505
716
  taskStore: params.taskStore,
506
717
  // Run-scoped. An approval is a statement about this run's work;
507
718
  // carrying one into a later run would be reuse nobody agreed to.
508
719
  toolGrants: new ToolGrantSet(),
720
+ // Run-scoped for the same reason. A repeat count carried into a later
721
+ // run is a claim about work nobody repeated, and a module-level map
722
+ // would leak exactly that way.
723
+ ...(params.repeatCallAdvisory === false ? {} : { repeatCalls: new RepeatCallTracker() }),
509
724
  compactionConfig: params.compactionConfig,
725
+ ...(params.inboundMessages ? { inboundMessages: params.inboundMessages } : {}),
726
+ ...(providerContextWindow !== undefined ? { providerContextWindow } : {}),
510
727
  workingStateManager,
511
728
  taskRouter: params.taskRouter,
512
729
  contextReducer: params.contextReducer,
@@ -585,9 +802,9 @@ export async function* query(params) {
585
802
  // because a host building an approval queue from durable
586
803
  // state will not see this question.
587
804
  ctx.log.error('Failed to record a question park — it is not resumable', {
588
- runId: ctx.runMgr.id,
589
- questionId: question.questionId,
590
- error: err instanceof Error ? err.message : String(err),
805
+ [NAMZU.RUN_ID]: ctx.runMgr.id,
806
+ 'namzu.runtime.question_id': question.questionId,
807
+ 'exception.message': err instanceof Error ? err.message : String(err),
591
808
  });
592
809
  return null;
593
810
  }
@@ -595,9 +812,9 @@ export async function* query(params) {
595
812
  resolve: async (checkpointId, decision) => {
596
813
  await checkpointMgr.unpark(checkpointId, decision).catch((err) => {
597
814
  ctx.log.error('Failed to clear a recorded question park', {
598
- runId: ctx.runMgr.id,
599
- checkpointId,
600
- error: err instanceof Error ? err.message : String(err),
815
+ [NAMZU.RUN_ID]: ctx.runMgr.id,
816
+ 'namzu.checkpoint.id': checkpointId,
817
+ 'exception.message': err instanceof Error ? err.message : String(err),
601
818
  });
602
819
  return null;
603
820
  });
@@ -651,13 +868,13 @@ export async function* query(params) {
651
868
  // callback actually makes.
652
869
  params.onContextCreated?.({ planManager: ctx.planManager });
653
870
  ctx.log.info('Starting query', {
654
- runId: ctx.runMgr.id,
655
- agent: params.agentName,
656
- model: params.runConfig.model,
657
- tokenBudget: params.runConfig.tokenBudget,
658
- activityTracking: ctx.activityStore.enabled,
659
- permissionMode: ctx.permissionMode,
660
- resumeFromCheckpoint: params.resumeFromCheckpoint ?? null,
871
+ [NAMZU.RUN_ID]: ctx.runMgr.id,
872
+ 'namzu.runtime.agent': params.agentName,
873
+ [GENAI.REQUEST_MODEL]: params.runConfig.model,
874
+ 'namzu.runtime.token_budget': params.runConfig.tokenBudget,
875
+ 'namzu.runtime.activity_tracking': ctx.activityStore.enabled,
876
+ 'namzu.runtime.permission_mode': ctx.permissionMode.current,
877
+ 'namzu.runtime.resume_from_checkpoint': params.resumeFromCheckpoint ?? null,
661
878
  });
662
879
  const contextLevel = params.contextLevel ?? 'full';
663
880
  const cacheInput = {
@@ -668,13 +885,14 @@ export async function* query(params) {
668
885
  tools: params.tools,
669
886
  allowedTools: effectiveAllowedTools,
670
887
  runtimeContext: params.runtimeContext,
888
+ ...(params.promptContributions ? { contributions: params.promptContributions } : {}),
671
889
  };
672
- const segments = params.contextCache
673
- ? params.contextCache.getSystemPromptSegmented(cacheInput, contextLevel, params.workingDirectory)
890
+ const segments = promptCache
891
+ ? promptCache.getSystemPromptSegmented(cacheInput, contextLevel, params.workingDirectory)
674
892
  : promptBuilder.buildSegmented(contextLevel, params.workingDirectory);
675
893
  ctx.log.info('Prompt segments assembled', {
676
- staticLength: segments.static.length,
677
- dynamicLength: segments.dynamic.length,
894
+ 'namzu.runtime.static_length': segments.static.length,
895
+ 'namzu.runtime.dynamic_length': segments.dynamic.length,
678
896
  });
679
897
  const pushSystemMessages = () => {
680
898
  ctx.runMgr.pushMessage(createSystemMessage(segments.static, 'cache'));
@@ -709,18 +927,18 @@ export async function* query(params) {
709
927
  const revived = restoreWorkingState(checkpoint.workingState, params.compactionConfig);
710
928
  workingStateManager.replaceState(revived.getState());
711
929
  ctx.log.info('Restored compaction working state from checkpoint', {
712
- runId: ctx.runMgr.id,
713
- checkpointId: checkpoint.id,
714
- slots: workingStateManager.slotCount(),
930
+ [NAMZU.RUN_ID]: ctx.runMgr.id,
931
+ 'namzu.checkpoint.id': checkpoint.id,
932
+ 'namzu.runtime.slots': workingStateManager.slotCount(),
715
933
  });
716
934
  }
717
935
  ctx.log.info('Restored budgets from checkpoint', {
718
- runId: ctx.runMgr.id,
719
- checkpointId: checkpoint.id,
720
- totalTokens: checkpoint.tokenUsage.totalTokens,
721
- totalCost: checkpoint.costInfo.totalCost,
722
- iteration: checkpoint.guardState.iterationCount,
723
- elapsedMs: checkpoint.guardState.elapsedMs,
936
+ [NAMZU.RUN_ID]: ctx.runMgr.id,
937
+ 'namzu.checkpoint.id': checkpoint.id,
938
+ 'namzu.usage.total_tokens': checkpoint.tokenUsage.totalTokens,
939
+ 'namzu.runtime.total_cost': checkpoint.costInfo.totalCost,
940
+ [NAMZU.ITERATION]: checkpoint.guardState.iterationCount,
941
+ 'namzu.runtime.elapsed_ms': checkpoint.guardState.elapsedMs,
724
942
  });
725
943
  pushSystemMessages();
726
944
  // A human answered the park in a different process; apply that
@@ -768,11 +986,11 @@ export async function* query(params) {
768
986
  : removeDanglingMessages(checkpoint.messages);
769
987
  if (!dangling.isValid && !pendingResume) {
770
988
  ctx.log.warn('Checkpoint contained unanswered tool calls — repaired on restore', {
771
- runId: ctx.runMgr.id,
772
- checkpointId: checkpoint.id,
773
- unansweredAssistantTurns: dangling.assistantsWithUnmatchedCalls.length,
774
- orphanedToolMessages: dangling.orphanedToolMessages.length,
775
- removed: checkpoint.messages.length - restoredMessages.length,
989
+ [NAMZU.RUN_ID]: ctx.runMgr.id,
990
+ 'namzu.checkpoint.id': checkpoint.id,
991
+ 'namzu.runtime.unanswered_assistant_turns': dangling.assistantsWithUnmatchedCalls.length,
992
+ 'namzu.runtime.orphaned_tool_messages': dangling.orphanedToolMessages.length,
993
+ 'namzu.runtime.removed': checkpoint.messages.length - restoredMessages.length,
776
994
  });
777
995
  }
778
996
  for (const msg of restoredMessages) {
@@ -790,16 +1008,26 @@ export async function* query(params) {
790
1008
  }
791
1009
  ctx.runMgr.pushMessage(msg);
792
1010
  }
1011
+ // The queue, on the resume path too. It is drained
1012
+ // unconditionally above, so leaving this out would take a
1013
+ // host's "start with this" off the record and deliver it
1014
+ // nowhere — the one outcome a durable queue must not have.
1015
+ //
1016
+ // AFTER the restored history rather than before it: on a
1017
+ // resume the conversation already exists, and a message left
1018
+ // for "the next run" is the newest thing said, not the oldest.
1019
+ for (const queued of queuedForThisRun)
1020
+ ctx.runMgr.pushMessage(queued);
793
1021
  }
794
1022
  else if (params.continuationMode) {
795
- for (const msg of params.messages) {
1023
+ for (const msg of initialMessages) {
796
1024
  ctx.runMgr.pushMessage(msg);
797
1025
  }
798
1026
  }
799
1027
  else {
800
1028
  pushSystemMessages();
801
1029
  let isFirstUserMessage = true;
802
- for (const msg of params.messages) {
1030
+ for (const msg of initialMessages) {
803
1031
  if (msg.role === 'system')
804
1032
  continue;
805
1033
  ctx.runMgr.pushMessage(msg);
@@ -819,6 +1047,22 @@ export async function* query(params) {
819
1047
  systemPrompt: assembledPrompt,
820
1048
  });
821
1049
  yield* eventTranslator.drainPending();
1050
+ // The box is handed out HERE, after `run_started`, and the position
1051
+ // is load-bearing rather than tidy. It moved twice:
1052
+ //
1053
+ // 1. Beside the box's construction — a host that called `set`
1054
+ // synchronously reached `eventTranslator` inside its temporal
1055
+ // dead zone and killed the run before it started.
1056
+ // 2. Beside the translator's construction — the translator existed,
1057
+ // but the run directory did not, so the durable append hit
1058
+ // ENOENT on `transcript.jsonl`.
1059
+ //
1060
+ // Both were found by the test that takes the box and immediately
1061
+ // swaps the policy, which is not an exotic host: it is the shape of
1062
+ // "start unattended" wiring. A policy change is durably recorded
1063
+ // before it takes effect, so the handout cannot precede the run
1064
+ // being writable.
1065
+ params.onApprovalPolicy?.(approvalPolicy);
822
1066
  // Surface capability degradation to the host as run events —
823
1067
  // explicit, not silent (the log.warn above fires at setup time;
824
1068
  // this is the machine-readable channel).
@@ -849,7 +1093,26 @@ export async function* query(params) {
849
1093
  }
850
1094
  // --- Sandbox lifecycle: create before iteration loop ---
851
1095
  if (params.sandboxProvider) {
1096
+ const rootAtCwd = params.runConfig.sandbox?.workspace === 'working-directory';
1097
+ // Checked against what the CALLER passed, not against `ctx.cwd`.
1098
+ // `ctx.cwd` falls back to `process.cwd()`, so reading it here
1099
+ // would silently root the sandbox at whatever directory the
1100
+ // host process happens to be in — which is not the directory
1101
+ // anybody asked to confine, and is worse than the temp dir the
1102
+ // caller declined. Refused before the sandbox exists, and not
1103
+ // downgraded to ephemeral: a caller who asked for confinement
1104
+ // of a specific tree and quietly got an empty one has been
1105
+ // told their files are protected by something that is not
1106
+ // looking at them.
1107
+ if (rootAtCwd && params.workingDirectory === undefined) {
1108
+ throw new NamzuError({
1109
+ code: 'invalid_config',
1110
+ message: "sandbox.workspace is 'working-directory' but this run has no workingDirectory. Pass one, or use the default 'ephemeral' — the kernel will not fall back to a temp directory, because that would confine a directory you did not name.",
1111
+ details: { workspace: 'working-directory' },
1112
+ });
1113
+ }
852
1114
  sandbox = await params.sandboxProvider.create({
1115
+ ...(rootAtCwd ? { workingDirectory: ctx.cwd } : {}),
853
1116
  timeoutMs: params.runConfig.sandbox?.timeoutMs,
854
1117
  memoryLimitMb: params.runConfig.sandbox?.memoryLimitMb,
855
1118
  maxProcesses: params.runConfig.sandbox?.maxProcesses,
@@ -863,9 +1126,9 @@ export async function* query(params) {
863
1126
  });
864
1127
  yield* eventTranslator.drainPending();
865
1128
  ctx.log.info('Sandbox created for run', {
866
- sandboxId: sandbox.id,
867
- environment: sandbox.environment,
868
- rootDir: sandbox.rootDir,
1129
+ 'namzu.sandbox.id': sandbox.id,
1130
+ 'namzu.execution.environment': sandbox.environment,
1131
+ 'namzu.runtime.root_dir': sandbox.rootDir,
869
1132
  });
870
1133
  }
871
1134
  // Crash-save handlers live for exactly the run's lifetime, and are
@@ -877,7 +1140,7 @@ export async function* query(params) {
877
1140
  emergencyManager.attach(ctx.runMgr, runDir, ctx.log);
878
1141
  }
879
1142
  else {
880
- ctx.log.warn('emergencySave requested but the run has no output directory — crash dumps disabled', { runId: ctx.runId });
1143
+ ctx.log.warn('emergencySave requested but the run has no output directory — crash dumps disabled', { [NAMZU.RUN_ID]: ctx.runId });
881
1144
  }
882
1145
  }
883
1146
  // Before the first model call: the cheapest place to refuse, since
@@ -899,6 +1162,15 @@ export async function* query(params) {
899
1162
  ...(inputVerdict.reason ? { reason: inputVerdict.reason } : {}),
900
1163
  });
901
1164
  yield* eventTranslator.drainPending();
1165
+ // A guardrail block is a refusal — first-class in the audit trail
1166
+ // (LOG-14, design §5), not merely a RunEvent a host happens to be
1167
+ // subscribed to when it fires.
1168
+ await ctx.runMgr.recordAudit({
1169
+ what: { action: 'guardrail:input', resource: inputVerdict.name },
1170
+ outcome: 'refused',
1171
+ reason: inputVerdict.reason ?? 'blocked by an input guardrail',
1172
+ ...(params.persona?.identity.role ? { persona: params.persona.identity.role } : {}),
1173
+ });
902
1174
  ctx.runMgr.setStopReason('input_guardrail');
903
1175
  ctx.runMgr.setLastError(inputVerdict.reason ?? 'blocked by an input guardrail');
904
1176
  yield* resultAssembler.completeRun(rootSpan);
@@ -909,9 +1181,9 @@ export async function* query(params) {
909
1181
  // tool that needs one gets it.
910
1182
  if (pendingResume) {
911
1183
  ctx.log.info('Applying a pending HITL decision to the checkpointed tool calls', {
912
- runId: ctx.runId,
913
- tools: pendingResume.response.message.toolCalls?.map((tc) => tc.function.name),
914
- denied: pendingResume.denials.size,
1184
+ [NAMZU.RUN_ID]: ctx.runId,
1185
+ 'namzu.tool.names': pendingResume.response.message.toolCalls?.map((tc) => tc.function.name),
1186
+ 'namzu.runtime.denied': pendingResume.denials.size,
915
1187
  });
916
1188
  // Hand the recorded answer to the already-built tool. The tool
917
1189
  // closed over its registry when the agent was constructed,
@@ -935,9 +1207,9 @@ export async function* query(params) {
935
1207
  .unpark(resolvedCheckpointId, params.pendingDecision)
936
1208
  .catch((err) => {
937
1209
  ctx.log.error('Applied a pending decision but failed to clear the park', {
938
- runId: ctx.runId,
939
- checkpointId: resolvedCheckpointId,
940
- error: err instanceof Error ? err.message : String(err),
1210
+ [NAMZU.RUN_ID]: ctx.runId,
1211
+ 'namzu.checkpoint.id': resolvedCheckpointId,
1212
+ 'exception.message': err instanceof Error ? err.message : String(err),
941
1213
  });
942
1214
  return null;
943
1215
  });
@@ -975,6 +1247,13 @@ export async function* query(params) {
975
1247
  ...(outputVerdict.reason ? { reason: outputVerdict.reason } : {}),
976
1248
  });
977
1249
  yield* eventTranslator.drainPending();
1250
+ // Same reasoning as the input-guardrail branch above.
1251
+ await ctx.runMgr.recordAudit({
1252
+ what: { action: 'guardrail:output', resource: outputVerdict.name },
1253
+ outcome: 'refused',
1254
+ reason: outputVerdict.reason ?? 'blocked by an output guardrail',
1255
+ ...(params.persona?.identity.role ? { persona: params.persona.identity.role } : {}),
1256
+ });
978
1257
  ctx.runMgr.setStopReason('output_guardrail');
979
1258
  ctx.runMgr.setLastError(outputVerdict.reason ?? 'blocked by an output guardrail');
980
1259
  ctx.runMgr.setResult('');
@@ -1005,6 +1284,30 @@ export async function* query(params) {
1005
1284
  // WeakRef'd, settled run as the crash target for the rest of the
1006
1285
  // process's life.
1007
1286
  emergencyManager?.detach();
1287
+ // A background job outlives the tool call that started it — that
1288
+ // is what it is for — so nothing but this stops it outliving the
1289
+ // RUN. Scoped to this run's id: a shared registry serving several
1290
+ // runs must not have one of them tear down another's work.
1291
+ //
1292
+ // Awaited, and its failure swallowed. A job that would not die is
1293
+ // worth a log line, and is not worth retracting a run's answer.
1294
+ if (params.backgroundJobs) {
1295
+ try {
1296
+ const stopped = await params.backgroundJobs.killOwner(ctx.runId);
1297
+ if (stopped.length > 0) {
1298
+ ctx.log.info('Background jobs stopped with the run', {
1299
+ [NAMZU.RUN_ID]: ctx.runId,
1300
+ 'namzu.jobs.stopped': stopped.length,
1301
+ });
1302
+ }
1303
+ }
1304
+ catch (jobErr) {
1305
+ ctx.log.error('A background job did not stop cleanly', {
1306
+ [NAMZU.RUN_ID]: ctx.runId,
1307
+ ...errorAttributes(jobErr),
1308
+ });
1309
+ }
1310
+ }
1008
1311
  // Same reasoning for the question channel: the tools outlive the
1009
1312
  // run that bound them, so leaving it attached would have a later
1010
1313
  // run's question written into this run's checkpoint store.
@@ -1022,8 +1325,8 @@ export async function* query(params) {
1022
1325
  }
1023
1326
  catch (promoteErr) {
1024
1327
  ctx.log.error('Memory promotion threw — the run is unaffected', {
1025
- runId: ctx.runId,
1026
- error: promoteErr instanceof Error ? promoteErr.message : String(promoteErr),
1328
+ [NAMZU.RUN_ID]: ctx.runId,
1329
+ 'exception.message': promoteErr instanceof Error ? promoteErr.message : String(promoteErr),
1027
1330
  });
1028
1331
  }
1029
1332
  }
@@ -1037,12 +1340,12 @@ export async function* query(params) {
1037
1340
  runId: ctx.runId,
1038
1341
  sandboxId,
1039
1342
  });
1040
- ctx.log.info('Sandbox destroyed', { sandboxId });
1343
+ ctx.log.info('Sandbox destroyed', { 'namzu.sandbox.id': sandboxId });
1041
1344
  }
1042
1345
  catch (destroyErr) {
1043
1346
  ctx.log.error('Sandbox destroy failed', {
1044
- sandboxId,
1045
- error: destroyErr instanceof Error ? destroyErr.message : String(destroyErr),
1347
+ 'namzu.sandbox.id': sandboxId,
1348
+ 'exception.message': destroyErr instanceof Error ? destroyErr.message : String(destroyErr),
1046
1349
  });
1047
1350
  }
1048
1351
  }