@namzu/sdk 34.2.0 → 35.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 (637) hide show
  1. package/CHANGELOG.md +133 -0
  2. package/README.md +2 -6
  3. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  4. package/dist/agents/PipelineAgent.js +118 -100
  5. package/dist/agents/PipelineAgent.js.map +1 -1
  6. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  7. package/dist/agents/ReactiveAgent.js +2 -0
  8. package/dist/agents/ReactiveAgent.js.map +1 -1
  9. package/dist/agents/RouterAgent.d.ts.map +1 -1
  10. package/dist/agents/RouterAgent.js +105 -61
  11. package/dist/agents/RouterAgent.js.map +1 -1
  12. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  13. package/dist/agents/SupervisorAgent.js +8 -4
  14. package/dist/agents/SupervisorAgent.js.map +1 -1
  15. package/dist/agents/budget.d.ts +6 -0
  16. package/dist/agents/budget.d.ts.map +1 -0
  17. package/dist/agents/budget.js +33 -0
  18. package/dist/agents/budget.js.map +1 -0
  19. package/dist/agents/explore.d.ts +20 -0
  20. package/dist/agents/explore.d.ts.map +1 -0
  21. package/dist/agents/explore.js +26 -0
  22. package/dist/agents/explore.js.map +1 -0
  23. package/dist/agents/file-definitions.d.ts +80 -0
  24. package/dist/agents/file-definitions.d.ts.map +1 -0
  25. package/dist/agents/file-definitions.js +179 -0
  26. package/dist/agents/file-definitions.js.map +1 -0
  27. package/dist/agents/index.d.ts +3 -0
  28. package/dist/agents/index.d.ts.map +1 -1
  29. package/dist/agents/index.js +2 -0
  30. package/dist/agents/index.js.map +1 -1
  31. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  32. package/dist/bridge/a2a/mapper.js +6 -0
  33. package/dist/bridge/a2a/mapper.js.map +1 -1
  34. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  35. package/dist/bridge/sse/mapper.js +22 -0
  36. package/dist/bridge/sse/mapper.js.map +1 -1
  37. package/dist/bus/lock.d.ts.map +1 -1
  38. package/dist/bus/lock.js +1 -10
  39. package/dist/bus/lock.js.map +1 -1
  40. package/dist/compaction/consolidation.d.ts +31 -0
  41. package/dist/compaction/consolidation.d.ts.map +1 -0
  42. package/dist/compaction/consolidation.js +63 -0
  43. package/dist/compaction/consolidation.js.map +1 -0
  44. package/dist/compaction/factory.d.ts.map +1 -1
  45. package/dist/compaction/factory.js +3 -0
  46. package/dist/compaction/factory.js.map +1 -1
  47. package/dist/compaction/index.d.ts +6 -1
  48. package/dist/compaction/index.d.ts.map +1 -1
  49. package/dist/compaction/index.js +6 -0
  50. package/dist/compaction/index.js.map +1 -1
  51. package/dist/compaction/manager.d.ts +7 -0
  52. package/dist/compaction/manager.d.ts.map +1 -1
  53. package/dist/compaction/manager.js +31 -0
  54. package/dist/compaction/manager.js.map +1 -1
  55. package/dist/compaction/plan.d.ts +23 -0
  56. package/dist/compaction/plan.d.ts.map +1 -1
  57. package/dist/compaction/plan.js +41 -24
  58. package/dist/compaction/plan.js.map +1 -1
  59. package/dist/compaction/salience/bm25.d.ts +26 -0
  60. package/dist/compaction/salience/bm25.d.ts.map +1 -0
  61. package/dist/compaction/salience/bm25.js +56 -0
  62. package/dist/compaction/salience/bm25.js.map +1 -0
  63. package/dist/compaction/salience/goal.d.ts +21 -0
  64. package/dist/compaction/salience/goal.d.ts.map +1 -0
  65. package/dist/compaction/salience/goal.js +32 -0
  66. package/dist/compaction/salience/goal.js.map +1 -0
  67. package/dist/compaction/salience/index.d.ts +4 -0
  68. package/dist/compaction/salience/index.d.ts.map +1 -0
  69. package/dist/compaction/salience/index.js +4 -0
  70. package/dist/compaction/salience/index.js.map +1 -0
  71. package/dist/compaction/salience/minhash.d.ts +17 -0
  72. package/dist/compaction/salience/minhash.d.ts.map +1 -0
  73. package/dist/compaction/salience/minhash.js +54 -0
  74. package/dist/compaction/salience/minhash.js.map +1 -0
  75. package/dist/compaction/salience/score.d.ts +64 -0
  76. package/dist/compaction/salience/score.d.ts.map +1 -0
  77. package/dist/compaction/salience/score.js +256 -0
  78. package/dist/compaction/salience/score.js.map +1 -0
  79. package/dist/compaction/salience/tokenize.d.ts +20 -0
  80. package/dist/compaction/salience/tokenize.d.ts.map +1 -0
  81. package/dist/compaction/salience/tokenize.js +92 -0
  82. package/dist/compaction/salience/tokenize.js.map +1 -0
  83. package/dist/compaction/salience/working-set.d.ts +59 -0
  84. package/dist/compaction/salience/working-set.d.ts.map +1 -0
  85. package/dist/compaction/salience/working-set.js +137 -0
  86. package/dist/compaction/salience/working-set.js.map +1 -0
  87. package/dist/compaction/serializer.d.ts +2 -0
  88. package/dist/compaction/serializer.d.ts.map +1 -1
  89. package/dist/compaction/serializer.js +15 -0
  90. package/dist/compaction/serializer.js.map +1 -1
  91. package/dist/compaction/token-estimate.d.ts +13 -0
  92. package/dist/compaction/token-estimate.d.ts.map +1 -0
  93. package/dist/compaction/token-estimate.js +58 -0
  94. package/dist/compaction/token-estimate.js.map +1 -0
  95. package/dist/compaction/tool-result-editing.d.ts +10 -2
  96. package/dist/compaction/tool-result-editing.d.ts.map +1 -1
  97. package/dist/compaction/tool-result-editing.js +22 -24
  98. package/dist/compaction/tool-result-editing.js.map +1 -1
  99. package/dist/compaction/types.d.ts +22 -1
  100. package/dist/compaction/types.d.ts.map +1 -1
  101. package/dist/compaction/wire.d.ts +3 -1
  102. package/dist/compaction/wire.d.ts.map +1 -1
  103. package/dist/compaction/wire.js +2 -0
  104. package/dist/compaction/wire.js.map +1 -1
  105. package/dist/config/runtime.d.ts +58 -28
  106. package/dist/config/runtime.d.ts.map +1 -1
  107. package/dist/config/runtime.js +13 -1
  108. package/dist/config/runtime.js.map +1 -1
  109. package/dist/connector/builtins/http.d.ts.map +1 -1
  110. package/dist/connector/builtins/http.js +2 -8
  111. package/dist/connector/builtins/http.js.map +1 -1
  112. package/dist/connector/builtins/webhook.js +2 -2
  113. package/dist/connector/builtins/webhook.js.map +1 -1
  114. package/dist/connector/mcp/adapter.d.ts +2 -0
  115. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  116. package/dist/connector/mcp/adapter.js +30 -0
  117. package/dist/connector/mcp/adapter.js.map +1 -1
  118. package/dist/connector/tools/adapter.js +2 -2
  119. package/dist/connector/tools/adapter.js.map +1 -1
  120. package/dist/connector/tools/definitions.js +2 -2
  121. package/dist/connector/tools/definitions.js.map +1 -1
  122. package/dist/constants/compaction/index.d.ts +1 -0
  123. package/dist/constants/compaction/index.d.ts.map +1 -1
  124. package/dist/constants/compaction/index.js +1 -0
  125. package/dist/constants/compaction/index.js.map +1 -1
  126. package/dist/constants/telemetry/index.d.ts +0 -1
  127. package/dist/constants/telemetry/index.d.ts.map +1 -1
  128. package/dist/constants/telemetry/index.js +0 -1
  129. package/dist/constants/telemetry/index.js.map +1 -1
  130. package/dist/contracts/a2a.d.ts +5 -5
  131. package/dist/contracts/api.d.ts +4 -2
  132. package/dist/contracts/api.d.ts.map +1 -1
  133. package/dist/contracts/schemas.d.ts +1 -15
  134. package/dist/contracts/schemas.d.ts.map +1 -1
  135. package/dist/contracts/schemas.js +5 -20
  136. package/dist/contracts/schemas.js.map +1 -1
  137. package/dist/invariants/index.d.ts +1 -1
  138. package/dist/manager/agent/lifecycle.d.ts +2 -18
  139. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  140. package/dist/manager/agent/lifecycle.js +373 -340
  141. package/dist/manager/agent/lifecycle.js.map +1 -1
  142. package/dist/manager/run/persistence.d.ts +3 -0
  143. package/dist/manager/run/persistence.d.ts.map +1 -1
  144. package/dist/manager/run/persistence.js +35 -5
  145. package/dist/manager/run/persistence.js.map +1 -1
  146. package/dist/plugin/index.d.ts +2 -0
  147. package/dist/plugin/index.d.ts.map +1 -1
  148. package/dist/plugin/index.js +1 -0
  149. package/dist/plugin/index.js.map +1 -1
  150. package/dist/plugin/shell-hook.d.ts +128 -0
  151. package/dist/plugin/shell-hook.d.ts.map +1 -0
  152. package/dist/plugin/shell-hook.js +299 -0
  153. package/dist/plugin/shell-hook.js.map +1 -0
  154. package/dist/prompt/coding-agent-doctrine.d.ts +63 -0
  155. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -0
  156. package/dist/prompt/coding-agent-doctrine.js +100 -0
  157. package/dist/prompt/coding-agent-doctrine.js.map +1 -0
  158. package/dist/prompt/index.d.ts +2 -0
  159. package/dist/prompt/index.d.ts.map +1 -1
  160. package/dist/prompt/index.js +1 -0
  161. package/dist/prompt/index.js.map +1 -1
  162. package/dist/provider/errors.d.ts +1 -1
  163. package/dist/provider/errors.js +1 -1
  164. package/dist/provider/fallback.d.ts +2 -0
  165. package/dist/provider/fallback.d.ts.map +1 -1
  166. package/dist/provider/fallback.js +3 -1
  167. package/dist/provider/fallback.js.map +1 -1
  168. package/dist/provider/retry.d.ts +2 -0
  169. package/dist/provider/retry.d.ts.map +1 -1
  170. package/dist/provider/retry.js +3 -1
  171. package/dist/provider/retry.js.map +1 -1
  172. package/dist/provider/token-budget.d.ts +13 -0
  173. package/dist/provider/token-budget.d.ts.map +1 -0
  174. package/dist/provider/token-budget.js +102 -0
  175. package/dist/provider/token-budget.js.map +1 -0
  176. package/dist/public-runtime.d.ts +12 -12
  177. package/dist/public-runtime.d.ts.map +1 -1
  178. package/dist/public-runtime.js +14 -9
  179. package/dist/public-runtime.js.map +1 -1
  180. package/dist/public-tools.d.ts +2 -0
  181. package/dist/public-tools.d.ts.map +1 -1
  182. package/dist/public-tools.js +2 -0
  183. package/dist/public-tools.js.map +1 -1
  184. package/dist/public-types.d.ts +12 -2
  185. package/dist/public-types.d.ts.map +1 -1
  186. package/dist/registry/command/kernel-commands.d.ts.map +1 -1
  187. package/dist/registry/command/kernel-commands.js +18 -6
  188. package/dist/registry/command/kernel-commands.js.map +1 -1
  189. package/dist/registry/tool/execute.d.ts.map +1 -1
  190. package/dist/registry/tool/execute.js +4 -1
  191. package/dist/registry/tool/execute.js.map +1 -1
  192. package/dist/run/LimitChecker.js +1 -1
  193. package/dist/run/LimitChecker.js.map +1 -1
  194. package/dist/run/drain.js +1 -1
  195. package/dist/run/reporter.d.ts.map +1 -1
  196. package/dist/run/reporter.js +15 -0
  197. package/dist/run/reporter.js.map +1 -1
  198. package/dist/run/token-budget.d.ts +108 -0
  199. package/dist/run/token-budget.d.ts.map +1 -0
  200. package/dist/run/token-budget.js +591 -0
  201. package/dist/run/token-budget.js.map +1 -0
  202. package/dist/runtime/jobs/registry.d.ts +29 -0
  203. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  204. package/dist/runtime/jobs/registry.js +98 -18
  205. package/dist/runtime/jobs/registry.js.map +1 -1
  206. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  207. package/dist/runtime/query/checkpoint.js +10 -3
  208. package/dist/runtime/query/checkpoint.js.map +1 -1
  209. package/dist/runtime/query/context.d.ts +2 -26
  210. package/dist/runtime/query/context.d.ts.map +1 -1
  211. package/dist/runtime/query/context.js +1 -29
  212. package/dist/runtime/query/context.js.map +1 -1
  213. package/dist/runtime/query/executor.d.ts +12 -9
  214. package/dist/runtime/query/executor.d.ts.map +1 -1
  215. package/dist/runtime/query/executor.js +95 -46
  216. package/dist/runtime/query/executor.js.map +1 -1
  217. package/dist/runtime/query/guard.d.ts.map +1 -1
  218. package/dist/runtime/query/guard.js +8 -0
  219. package/dist/runtime/query/guard.js.map +1 -1
  220. package/dist/runtime/query/index.d.ts +35 -4
  221. package/dist/runtime/query/index.d.ts.map +1 -1
  222. package/dist/runtime/query/index.js +152 -52
  223. package/dist/runtime/query/index.js.map +1 -1
  224. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  225. package/dist/runtime/query/iteration/index.js +16 -5
  226. package/dist/runtime/query/iteration/index.js.map +1 -1
  227. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  228. package/dist/runtime/query/iteration/phases/compaction.js +98 -30
  229. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  230. package/dist/runtime/query/iteration/phases/context.d.ts +2 -0
  231. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  232. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  233. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  234. package/dist/runtime/query/iteration/phases/tool-review.js +29 -7
  235. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  236. package/dist/runtime/query/iteration/phases/working-memory.d.ts.map +1 -1
  237. package/dist/runtime/query/iteration/phases/working-memory.js +25 -15
  238. package/dist/runtime/query/iteration/phases/working-memory.js.map +1 -1
  239. package/dist/runtime/query/plugin-hooks.d.ts +1 -1
  240. package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
  241. package/dist/runtime/query/plugin-hooks.js +20 -1
  242. package/dist/runtime/query/plugin-hooks.js.map +1 -1
  243. package/dist/runtime/query/repeat-call.d.ts +20 -2
  244. package/dist/runtime/query/repeat-call.d.ts.map +1 -1
  245. package/dist/runtime/query/repeat-call.js +35 -7
  246. package/dist/runtime/query/repeat-call.js.map +1 -1
  247. package/dist/runtime/query/result.d.ts.map +1 -1
  248. package/dist/runtime/query/result.js +9 -0
  249. package/dist/runtime/query/result.js.map +1 -1
  250. package/dist/runtime/query/review-policy.d.ts +142 -0
  251. package/dist/runtime/query/review-policy.d.ts.map +1 -0
  252. package/dist/runtime/query/review-policy.js +144 -0
  253. package/dist/runtime/query/review-policy.js.map +1 -0
  254. package/dist/runtime/query/run-state.d.ts.map +1 -1
  255. package/dist/runtime/query/run-state.js +4 -0
  256. package/dist/runtime/query/run-state.js.map +1 -1
  257. package/dist/runtime/query/steering.d.ts +4 -0
  258. package/dist/runtime/query/steering.d.ts.map +1 -1
  259. package/dist/runtime/query/steering.js +29 -0
  260. package/dist/runtime/query/steering.js.map +1 -1
  261. package/dist/runtime/query/token-budget.d.ts +7 -0
  262. package/dist/runtime/query/token-budget.d.ts.map +1 -0
  263. package/dist/runtime/query/token-budget.js +101 -0
  264. package/dist/runtime/query/token-budget.js.map +1 -0
  265. package/dist/runtime/query/tool-output-budget.d.ts +2 -0
  266. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  267. package/dist/runtime/query/tool-output-budget.js +29 -11
  268. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  269. package/dist/runtime/query/tool-pause.d.ts.map +1 -1
  270. package/dist/runtime/query/tool-pause.js +4 -2
  271. package/dist/runtime/query/tool-pause.js.map +1 -1
  272. package/dist/runtime/query/tooling.d.ts +4 -0
  273. package/dist/runtime/query/tooling.d.ts.map +1 -1
  274. package/dist/runtime/query/tooling.js +4 -0
  275. package/dist/runtime/query/tooling.js.map +1 -1
  276. package/dist/sandbox/provider/local.d.ts +3 -1
  277. package/dist/sandbox/provider/local.d.ts.map +1 -1
  278. package/dist/sandbox/provider/local.js +112 -12
  279. package/dist/sandbox/provider/local.js.map +1 -1
  280. package/dist/scheduler/delegating.d.ts +1 -0
  281. package/dist/scheduler/delegating.d.ts.map +1 -1
  282. package/dist/scheduler/delegating.js +29 -12
  283. package/dist/scheduler/delegating.js.map +1 -1
  284. package/dist/scheduler/local.d.ts +1 -0
  285. package/dist/scheduler/local.d.ts.map +1 -1
  286. package/dist/scheduler/local.js +4 -7
  287. package/dist/scheduler/local.js.map +1 -1
  288. package/dist/session/index.d.ts +0 -1
  289. package/dist/session/index.d.ts.map +1 -1
  290. package/dist/session/index.js +0 -1
  291. package/dist/session/index.js.map +1 -1
  292. package/dist/session/workspace/path-builder.d.ts.map +1 -1
  293. package/dist/session/workspace/path-builder.js +5 -4
  294. package/dist/session/workspace/path-builder.js.map +1 -1
  295. package/dist/store/feedback/disk.d.ts.map +1 -1
  296. package/dist/store/feedback/disk.js +4 -6
  297. package/dist/store/feedback/disk.js.map +1 -1
  298. package/dist/store/index.d.ts +2 -0
  299. package/dist/store/index.d.ts.map +1 -1
  300. package/dist/store/index.js +1 -0
  301. package/dist/store/index.js.map +1 -1
  302. package/dist/store/memory/disk.d.ts.map +1 -1
  303. package/dist/store/memory/disk.js +3 -12
  304. package/dist/store/memory/disk.js.map +1 -1
  305. package/dist/store/run/checkpoint-disk.d.ts +3 -3
  306. package/dist/store/run/checkpoint-disk.d.ts.map +1 -1
  307. package/dist/store/run/checkpoint-disk.js +14 -26
  308. package/dist/store/run/checkpoint-disk.js.map +1 -1
  309. package/dist/store/run/claim-disk.js +1 -1
  310. package/dist/store/run/conformance.d.ts +1 -1
  311. package/dist/store/run/conformance.d.ts.map +1 -1
  312. package/dist/store/run/conformance.js +41 -33
  313. package/dist/store/run/conformance.js.map +1 -1
  314. package/dist/store/run/disk.d.ts.map +1 -1
  315. package/dist/store/run/disk.js +20 -4
  316. package/dist/store/run/disk.js.map +1 -1
  317. package/dist/store/run/token-budget-disk.d.ts +37 -0
  318. package/dist/store/run/token-budget-disk.d.ts.map +1 -0
  319. package/dist/store/run/token-budget-disk.js +208 -0
  320. package/dist/store/run/token-budget-disk.js.map +1 -0
  321. package/dist/store/session/disk.d.ts +4 -13
  322. package/dist/store/session/disk.d.ts.map +1 -1
  323. package/dist/store/session/disk.js +34 -31
  324. package/dist/store/session/disk.js.map +1 -1
  325. package/dist/store/session/memory.d.ts +2 -0
  326. package/dist/store/session/memory.d.ts.map +1 -1
  327. package/dist/store/session/memory.js +41 -2
  328. package/dist/store/session/memory.js.map +1 -1
  329. package/dist/store/task/disk.d.ts.map +1 -1
  330. package/dist/store/task/disk.js +7 -8
  331. package/dist/store/task/disk.js.map +1 -1
  332. package/dist/store/topic/memory.d.ts +2 -0
  333. package/dist/store/topic/memory.d.ts.map +1 -1
  334. package/dist/store/topic/memory.js +13 -1
  335. package/dist/store/topic/memory.js.map +1 -1
  336. package/dist/test-support/ids.d.ts +4 -19
  337. package/dist/test-support/ids.d.ts.map +1 -1
  338. package/dist/test-support/ids.js +51 -59
  339. package/dist/test-support/ids.js.map +1 -1
  340. package/dist/tools/advisory/index.d.ts.map +1 -1
  341. package/dist/tools/advisory/index.js +3 -1
  342. package/dist/tools/advisory/index.js.map +1 -1
  343. package/dist/tools/builtins/bash.d.ts +2 -0
  344. package/dist/tools/builtins/bash.d.ts.map +1 -1
  345. package/dist/tools/builtins/bash.js +9 -11
  346. package/dist/tools/builtins/bash.js.map +1 -1
  347. package/dist/tools/builtins/computer-use.d.ts +2 -2
  348. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  349. package/dist/tools/builtins/computer-use.js +4 -2
  350. package/dist/tools/builtins/computer-use.js.map +1 -1
  351. package/dist/tools/builtins/edit.js +2 -2
  352. package/dist/tools/builtins/edit.js.map +1 -1
  353. package/dist/tools/builtins/glob.js +3 -3
  354. package/dist/tools/builtins/glob.js.map +1 -1
  355. package/dist/tools/builtins/grep.js +2 -2
  356. package/dist/tools/builtins/grep.js.map +1 -1
  357. package/dist/tools/builtins/ls.js +2 -2
  358. package/dist/tools/builtins/ls.js.map +1 -1
  359. package/dist/tools/builtins/lsp.js +2 -2
  360. package/dist/tools/builtins/lsp.js.map +1 -1
  361. package/dist/tools/builtins/read-file.js +2 -2
  362. package/dist/tools/builtins/read-file.js.map +1 -1
  363. package/dist/tools/builtins/write-file.js +2 -2
  364. package/dist/tools/builtins/write-file.js.map +1 -1
  365. package/dist/tools/coordinator/ask-user-question.d.ts +33 -0
  366. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -0
  367. package/dist/tools/coordinator/ask-user-question.js +237 -0
  368. package/dist/tools/coordinator/ask-user-question.js.map +1 -0
  369. package/dist/tools/coordinator/index.d.ts +1 -2
  370. package/dist/tools/coordinator/index.d.ts.map +1 -1
  371. package/dist/tools/coordinator/index.js +4 -220
  372. package/dist/tools/coordinator/index.js.map +1 -1
  373. package/dist/tools/memory/read.d.ts.map +1 -1
  374. package/dist/tools/memory/read.js +2 -4
  375. package/dist/tools/memory/read.js.map +1 -1
  376. package/dist/tools/paths.d.ts +13 -0
  377. package/dist/tools/paths.d.ts.map +1 -1
  378. package/dist/tools/paths.js +53 -0
  379. package/dist/tools/paths.js.map +1 -1
  380. package/dist/tools/roster.d.ts +27 -0
  381. package/dist/tools/roster.d.ts.map +1 -0
  382. package/dist/tools/roster.js +42 -0
  383. package/dist/tools/roster.js.map +1 -0
  384. package/dist/types/agent/base.d.ts +5 -0
  385. package/dist/types/agent/base.d.ts.map +1 -1
  386. package/dist/types/agent/pipeline.d.ts +3 -0
  387. package/dist/types/agent/pipeline.d.ts.map +1 -1
  388. package/dist/types/agent/router.d.ts +2 -3
  389. package/dist/types/agent/router.d.ts.map +1 -1
  390. package/dist/types/agent/scheduler.d.ts +3 -0
  391. package/dist/types/agent/scheduler.d.ts.map +1 -1
  392. package/dist/types/agent/task.d.ts +5 -16
  393. package/dist/types/agent/task.d.ts.map +1 -1
  394. package/dist/types/agent/task.js.map +1 -1
  395. package/dist/types/common/index.d.ts.map +1 -1
  396. package/dist/types/common/index.js +3 -0
  397. package/dist/types/common/index.js.map +1 -1
  398. package/dist/types/computer-use/index.d.ts +8 -0
  399. package/dist/types/computer-use/index.d.ts.map +1 -1
  400. package/dist/types/computer-use/index.js.map +1 -1
  401. package/dist/types/hitl/index.d.ts +5 -0
  402. package/dist/types/hitl/index.d.ts.map +1 -1
  403. package/dist/types/hitl/index.js.map +1 -1
  404. package/dist/types/ids/brand.d.ts +5 -47
  405. package/dist/types/ids/brand.d.ts.map +1 -1
  406. package/dist/types/ids/brand.js +2 -39
  407. package/dist/types/ids/brand.js.map +1 -1
  408. package/dist/types/ids/index.d.ts +59 -69
  409. package/dist/types/ids/index.d.ts.map +1 -1
  410. package/dist/types/ids/index.js +12 -10
  411. package/dist/types/ids/index.js.map +1 -1
  412. package/dist/types/permission/index.d.ts +9 -0
  413. package/dist/types/permission/index.d.ts.map +1 -1
  414. package/dist/types/permission/index.js +9 -1
  415. package/dist/types/permission/index.js.map +1 -1
  416. package/dist/types/plugin/index.d.ts +45 -4
  417. package/dist/types/plugin/index.d.ts.map +1 -1
  418. package/dist/types/plugin/index.js +7 -0
  419. package/dist/types/plugin/index.js.map +1 -1
  420. package/dist/types/run/config.d.ts +3 -0
  421. package/dist/types/run/config.d.ts.map +1 -1
  422. package/dist/types/run/emergency.d.ts +5 -0
  423. package/dist/types/run/emergency.d.ts.map +1 -1
  424. package/dist/types/run/emergency.js.map +1 -1
  425. package/dist/types/run/entity.d.ts +6 -2
  426. package/dist/types/run/entity.d.ts.map +1 -1
  427. package/dist/types/run/events.d.ts +35 -0
  428. package/dist/types/run/events.d.ts.map +1 -1
  429. package/dist/types/run/events.js.map +1 -1
  430. package/dist/types/run/index.d.ts +1 -0
  431. package/dist/types/run/index.d.ts.map +1 -1
  432. package/dist/types/run/index.js +1 -0
  433. package/dist/types/run/index.js.map +1 -1
  434. package/dist/types/run/state.d.ts +16 -15
  435. package/dist/types/run/state.d.ts.map +1 -1
  436. package/dist/types/run/state.js +41 -22
  437. package/dist/types/run/state.js.map +1 -1
  438. package/dist/types/run/stop-reason.d.ts +3 -14
  439. package/dist/types/run/stop-reason.d.ts.map +1 -1
  440. package/dist/types/run/token-budget-store.d.ts +29 -0
  441. package/dist/types/run/token-budget-store.d.ts.map +1 -0
  442. package/dist/types/run/token-budget-store.js +25 -0
  443. package/dist/types/run/token-budget-store.js.map +1 -0
  444. package/dist/types/sandbox/index.d.ts +27 -2
  445. package/dist/types/sandbox/index.d.ts.map +1 -1
  446. package/dist/types/sandbox/index.js.map +1 -1
  447. package/dist/types/session/store.d.ts +8 -0
  448. package/dist/types/session/store.d.ts.map +1 -1
  449. package/dist/types/tool/index.d.ts +15 -0
  450. package/dist/types/tool/index.d.ts.map +1 -1
  451. package/dist/types/tool/index.js.map +1 -1
  452. package/dist/utils/frontmatter.d.ts +1 -1
  453. package/dist/utils/frontmatter.js +1 -1
  454. package/dist/utils/id-format.d.ts +3 -0
  455. package/dist/utils/id-format.d.ts.map +1 -0
  456. package/dist/utils/id-format.js +9 -0
  457. package/dist/utils/id-format.js.map +1 -0
  458. package/dist/utils/id.d.ts +65 -32
  459. package/dist/utils/id.d.ts.map +1 -1
  460. package/dist/utils/id.js +168 -148
  461. package/dist/utils/id.js.map +1 -1
  462. package/dist/utils/log/exception.js +1 -1
  463. package/dist/utils/log/exception.js.map +1 -1
  464. package/dist/utils/log/index.d.ts.map +1 -1
  465. package/dist/utils/log/index.js +1 -2
  466. package/dist/utils/log/index.js.map +1 -1
  467. package/dist/utils/log/templates.d.ts.map +1 -1
  468. package/dist/utils/log/templates.js +0 -1
  469. package/dist/utils/log/templates.js.map +1 -1
  470. package/package.json +1 -1
  471. package/src/agents/AGENTS.md +1 -1
  472. package/src/agents/PipelineAgent.ts +129 -109
  473. package/src/agents/ReactiveAgent.ts +2 -0
  474. package/src/agents/RouterAgent.ts +120 -73
  475. package/src/agents/SupervisorAgent.ts +12 -4
  476. package/src/agents/budget.ts +42 -0
  477. package/src/agents/explore.ts +29 -0
  478. package/src/agents/file-definitions.ts +237 -0
  479. package/src/agents/index.ts +15 -0
  480. package/src/bridge/a2a/mapper.ts +6 -0
  481. package/src/bridge/sse/mapper.ts +22 -0
  482. package/src/bus/lock.ts +1 -10
  483. package/src/compaction/consolidation.ts +79 -0
  484. package/src/compaction/factory.ts +3 -0
  485. package/src/compaction/index.ts +34 -4
  486. package/src/compaction/manager.ts +39 -1
  487. package/src/compaction/plan.ts +52 -21
  488. package/src/compaction/salience/bm25.ts +72 -0
  489. package/src/compaction/salience/goal.ts +44 -0
  490. package/src/compaction/salience/index.ts +19 -0
  491. package/src/compaction/salience/minhash.ts +53 -0
  492. package/src/compaction/salience/score.ts +305 -0
  493. package/src/compaction/salience/tokenize.ts +89 -0
  494. package/src/compaction/salience/working-set.ts +187 -0
  495. package/src/compaction/serializer.ts +16 -0
  496. package/src/compaction/token-estimate.ts +57 -0
  497. package/src/compaction/tool-result-editing.ts +28 -26
  498. package/src/compaction/types.ts +24 -1
  499. package/src/compaction/wire.ts +5 -1
  500. package/src/config/runtime.ts +13 -1
  501. package/src/connector/builtins/http.ts +2 -8
  502. package/src/connector/builtins/webhook.ts +2 -2
  503. package/src/connector/mcp/adapter.ts +32 -0
  504. package/src/connector/tools/adapter.ts +2 -2
  505. package/src/connector/tools/definitions.ts +2 -2
  506. package/src/constants/compaction/index.ts +1 -0
  507. package/src/constants/telemetry/index.ts +0 -1
  508. package/src/contracts/api.ts +5 -1
  509. package/src/contracts/schemas.ts +6 -20
  510. package/src/invariants/index.ts +1 -1
  511. package/src/manager/agent/lifecycle.ts +380 -352
  512. package/src/manager/run/persistence.ts +35 -5
  513. package/src/plugin/index.ts +19 -0
  514. package/src/plugin/shell-hook.ts +403 -0
  515. package/src/prompt/coding-agent-doctrine.ts +118 -0
  516. package/src/prompt/index.ts +8 -0
  517. package/src/provider/errors.ts +1 -1
  518. package/src/provider/fallback.ts +4 -1
  519. package/src/provider/retry.ts +4 -1
  520. package/src/provider/token-budget.ts +114 -0
  521. package/src/public-runtime.ts +54 -27
  522. package/src/public-tools.ts +5 -0
  523. package/src/public-types.ts +65 -0
  524. package/src/registry/command/kernel-commands.ts +16 -6
  525. package/src/registry/tool/execute.ts +4 -1
  526. package/src/run/LimitChecker.ts +1 -1
  527. package/src/run/drain.ts +1 -1
  528. package/src/run/reporter.ts +15 -0
  529. package/src/run/token-budget.ts +692 -0
  530. package/src/runtime/jobs/registry.ts +123 -17
  531. package/src/runtime/query/checkpoint.ts +10 -3
  532. package/src/runtime/query/context.ts +3 -57
  533. package/src/runtime/query/executor.ts +128 -58
  534. package/src/runtime/query/guard.ts +8 -0
  535. package/src/runtime/query/index.ts +201 -62
  536. package/src/runtime/query/iteration/index.ts +24 -6
  537. package/src/runtime/query/iteration/phases/compaction.ts +130 -31
  538. package/src/runtime/query/iteration/phases/context.ts +2 -0
  539. package/src/runtime/query/iteration/phases/tool-review.ts +39 -7
  540. package/src/runtime/query/iteration/phases/working-memory.ts +23 -14
  541. package/src/runtime/query/plugin-hooks.ts +24 -2
  542. package/src/runtime/query/repeat-call.ts +42 -7
  543. package/src/runtime/query/result.ts +9 -0
  544. package/src/runtime/query/review-policy.ts +231 -0
  545. package/src/runtime/query/run-state.ts +4 -0
  546. package/src/runtime/query/steering.ts +32 -0
  547. package/src/runtime/query/token-budget.ts +127 -0
  548. package/src/runtime/query/tool-output-budget.ts +33 -10
  549. package/src/runtime/query/tool-pause.ts +4 -2
  550. package/src/runtime/query/tooling.ts +8 -0
  551. package/src/sandbox/provider/local.ts +123 -13
  552. package/src/scheduler/delegating.ts +35 -13
  553. package/src/scheduler/local.ts +5 -7
  554. package/src/session/index.ts +0 -1
  555. package/src/session/workspace/path-builder.ts +5 -4
  556. package/src/store/feedback/disk.ts +4 -6
  557. package/src/store/index.ts +2 -0
  558. package/src/store/memory/disk.ts +3 -11
  559. package/src/store/run/checkpoint-disk.ts +14 -27
  560. package/src/store/run/claim-disk.ts +1 -1
  561. package/src/store/run/conformance.ts +55 -39
  562. package/src/store/run/disk.ts +19 -4
  563. package/src/store/run/token-budget-disk.ts +247 -0
  564. package/src/store/session/disk.ts +36 -29
  565. package/src/store/session/memory.ts +38 -1
  566. package/src/store/task/disk.ts +7 -8
  567. package/src/store/topic/memory.ts +13 -1
  568. package/src/test-support/ids.ts +62 -59
  569. package/src/tools/advisory/index.ts +3 -1
  570. package/src/tools/builtins/bash.ts +11 -12
  571. package/src/tools/builtins/computer-use.ts +6 -2
  572. package/src/tools/builtins/edit.ts +2 -2
  573. package/src/tools/builtins/glob.ts +3 -3
  574. package/src/tools/builtins/grep.ts +2 -2
  575. package/src/tools/builtins/ls.ts +2 -2
  576. package/src/tools/builtins/lsp.ts +2 -2
  577. package/src/tools/builtins/read-file.ts +2 -2
  578. package/src/tools/builtins/write-file.ts +2 -2
  579. package/src/tools/coordinator/ask-user-question.ts +284 -0
  580. package/src/tools/coordinator/index.ts +5 -248
  581. package/src/tools/memory/read.ts +2 -4
  582. package/src/tools/paths.ts +64 -0
  583. package/src/tools/roster.ts +46 -0
  584. package/src/types/agent/base.ts +6 -0
  585. package/src/types/agent/pipeline.ts +3 -0
  586. package/src/types/agent/router.ts +2 -3
  587. package/src/types/agent/scheduler.ts +4 -0
  588. package/src/types/agent/task.ts +5 -18
  589. package/src/types/common/index.ts +3 -0
  590. package/src/types/computer-use/index.ts +8 -0
  591. package/src/types/hitl/index.ts +5 -0
  592. package/src/types/ids/brand.ts +5 -48
  593. package/src/types/ids/index.ts +66 -75
  594. package/src/types/permission/index.ts +11 -0
  595. package/src/types/plugin/index.ts +49 -1
  596. package/src/types/run/config.ts +3 -0
  597. package/src/types/run/emergency.ts +5 -0
  598. package/src/types/run/entity.ts +6 -2
  599. package/src/types/run/events.ts +37 -0
  600. package/src/types/run/index.ts +1 -0
  601. package/src/types/run/state.ts +58 -30
  602. package/src/types/run/stop-reason.ts +3 -14
  603. package/src/types/run/token-budget-store.ts +54 -0
  604. package/src/types/sandbox/index.ts +32 -0
  605. package/src/types/session/store.ts +8 -0
  606. package/src/types/tool/index.ts +15 -0
  607. package/src/utils/frontmatter.ts +1 -1
  608. package/src/utils/id-format.ts +9 -0
  609. package/src/utils/id.ts +222 -181
  610. package/src/utils/log/exception.ts +1 -1
  611. package/src/utils/log/index.ts +1 -2
  612. package/src/utils/log/templates.ts +0 -1
  613. package/dist/session/migration/errors.d.ts +0 -26
  614. package/dist/session/migration/errors.d.ts.map +0 -1
  615. package/dist/session/migration/errors.js +0 -22
  616. package/dist/session/migration/errors.js.map +0 -1
  617. package/dist/session/migration/filesystem.d.ts +0 -122
  618. package/dist/session/migration/filesystem.d.ts.map +0 -1
  619. package/dist/session/migration/filesystem.js +0 -379
  620. package/dist/session/migration/filesystem.js.map +0 -1
  621. package/dist/session/migration/id-prefix.d.ts +0 -113
  622. package/dist/session/migration/id-prefix.d.ts.map +0 -1
  623. package/dist/session/migration/id-prefix.js +0 -132
  624. package/dist/session/migration/id-prefix.js.map +0 -1
  625. package/dist/session/migration/index.d.ts +0 -12
  626. package/dist/session/migration/index.d.ts.map +0 -1
  627. package/dist/session/migration/index.js +0 -12
  628. package/dist/session/migration/index.js.map +0 -1
  629. package/dist/session/migration/marker.d.ts +0 -57
  630. package/dist/session/migration/marker.d.ts.map +0 -1
  631. package/dist/session/migration/marker.js +0 -123
  632. package/dist/session/migration/marker.js.map +0 -1
  633. package/src/session/migration/errors.ts +0 -23
  634. package/src/session/migration/filesystem.ts +0 -468
  635. package/src/session/migration/id-prefix.ts +0 -166
  636. package/src/session/migration/index.ts +0 -41
  637. package/src/session/migration/marker.ts +0 -142
@@ -67,6 +67,8 @@ export interface ServingMember {
67
67
  }
68
68
 
69
69
  export interface WithProviderFallbackOptions {
70
+ /** Additional live admission policy before selecting another provider. */
71
+ readonly canFallback?: () => boolean
70
72
  readonly log?: Logger
71
73
  /**
72
74
  * Called once per swap, with the member that serves from here on.
@@ -157,7 +159,7 @@ export interface WithProviderFallbackOptions {
157
159
  * classifier maps a `content_policy_violation` structural code onto it, and
158
160
  * `ProviderError` is a public type a third-party driver constructs directly.
159
161
  * Named rather than omitted for that reason; see
160
- * `docs/conventions/a-check-that-cannot-fail.md` for why an unnameable one
162
+ * "a check that cannot fail" for why an unnameable one
161
163
  * would have been left out.
162
164
  */
163
165
  const REQUEST_FAULT_CODES: ReadonlySet<string> = new Set([
@@ -409,6 +411,7 @@ export function withProviderFallback(
409
411
  // time, instead of settling as `cancelled`. The retry decorator
410
412
  // guards the same way and for the same reason.
411
413
  if (isAbortError(err) || params.signal?.aborted) throw err
414
+ if (options.canFallback?.() === false) throw err
412
415
 
413
416
  const next = cursor + 1
414
417
  const to = members[next]
@@ -41,6 +41,8 @@ export const DEFAULT_PROVIDER_RETRY: ProviderRetryConfig = {
41
41
  }
42
42
 
43
43
  export interface WithProviderRetryOptions {
44
+ /** Additional live admission policy, checked before scheduling a retry. */
45
+ readonly canRetry?: () => boolean
44
46
  readonly config?: Partial<ProviderRetryConfig>
45
47
  readonly log?: Logger
46
48
  /** Seam for deterministic tests. */
@@ -113,6 +115,7 @@ export function withProviderRetry(
113
115
  return
114
116
  } catch (err) {
115
117
  if (isAbortError(err) || params.signal?.aborted) throw err
118
+ if (options.canRetry?.() === false) throw err
116
119
  // A driver that already classified its own failure keeps that
117
120
  // classification — `classifyProviderError` reads its `kind`
118
121
  // first and does not re-guess.
@@ -162,7 +165,7 @@ export function withProviderRetry(
162
165
  //
163
166
  // It used to fall through to the jittered backoff instead, and that
164
167
  // is degrading where the contract says refuse
165
- // (`docs/conventions/refuse-do-not-degrade.md`). The ceiling was
168
+ // ("refuse do not degrade"). The ceiling was
166
169
  // read as "how long may I sleep", so a provider asking for fifteen
167
170
  // minutes was re-asked in half a second: the one instruction the
168
171
  // server gave was the one thing discarded, and the retries that
@@ -0,0 +1,114 @@
1
+ import { EMPTY_TOKEN_USAGE } from '../constants/limits.js'
2
+ import type { TokenBudget } from '../run/token-budget.js'
3
+ import { type TokenUsage, mergeTokenUsage } from '../types/common/index.js'
4
+ import { ProviderError, classifyProviderError } from '../types/provider/errors.js'
5
+ import type { LLMProvider, StreamChunk } from '../types/provider/index.js'
6
+ import { isProviderRequestError } from './errors.js'
7
+
8
+ export class TokenBudgetAdmissionError extends ProviderError {
9
+ constructor() {
10
+ super({
11
+ code: 'invalid_request',
12
+ message: 'The shared token budget has no available allowance for another model request.',
13
+ retryable: false,
14
+ })
15
+ this.name = 'TokenBudgetAdmissionError'
16
+ }
17
+ }
18
+
19
+ function rejectedBeforeGeneration(error: unknown): boolean {
20
+ if (isProviderRequestError(error)) {
21
+ return ['auth', 'throttle', 'context_overflow', 'bad_request'].includes(error.kind)
22
+ }
23
+ const classified = classifyProviderError(error)
24
+ const explicitRejection =
25
+ error instanceof ProviderError ||
26
+ (classified.status !== undefined &&
27
+ [400, 401, 403, 404, 413, 422, 429].includes(classified.status))
28
+ return (
29
+ explicitRejection &&
30
+ ['auth', 'rate_limit', 'context_length_exceeded', 'invalid_request', 'not_found'].includes(
31
+ classified.code,
32
+ )
33
+ )
34
+ }
35
+
36
+ /** Account for the observed response once, including advisory/compaction calls.
37
+ * The marker is durable before contacting the provider. A broken or abandoned
38
+ * stream retains its marker: an absent receipt cannot establish zero spend.
39
+ * Driver-internal retries remain one request whose billing the driver reports.
40
+ */
41
+ export function withTokenBudget(provider: LLMProvider, budget: TokenBudget): LLMProvider {
42
+ async function* chatStream(
43
+ params: Parameters<LLMProvider['chatStream']>[0],
44
+ ): AsyncIterable<StreamChunk> {
45
+ params.signal?.throwIfAborted()
46
+ if (budget.remaining <= 0) throw new TokenBudgetAdmissionError()
47
+ const requestId = await budget.beginRequest()
48
+ let usage: TokenUsage | undefined
49
+ let completed = false
50
+ let outputObserved = false
51
+ let uncertainRetry = false
52
+ try {
53
+ for await (const chunk of provider.chatStream(params)) {
54
+ const recovery = chunk.retry ?? chunk.fallback
55
+ if (
56
+ recovery &&
57
+ ![
58
+ 'auth',
59
+ 'rate_limit',
60
+ 'context_length_exceeded',
61
+ 'invalid_request',
62
+ 'not_found',
63
+ ].includes(recovery.code)
64
+ ) {
65
+ uncertainRetry = true
66
+ throw new ProviderError({
67
+ code: 'invalid_request',
68
+ retryable: false,
69
+ message:
70
+ 'A prior provider attempt has unresolved token usage; another attempt cannot be admitted.',
71
+ })
72
+ }
73
+ if (Object.keys(chunk.delta).length > 0) outputObserved = true
74
+ if (chunk.usage) {
75
+ usage = usage ? mergeTokenUsage(usage, chunk.usage) : { ...chunk.usage }
76
+ }
77
+ if (chunk.error) throw new Error(chunk.error)
78
+ yield chunk
79
+ }
80
+ if (usage === undefined) {
81
+ throw new Error(
82
+ 'Provider ended without token usage; the budget reservation remains unresolved.',
83
+ )
84
+ }
85
+ await budget.finishRequest(requestId, usage)
86
+ completed = true
87
+ } catch (error) {
88
+ // A typed rejection before any generation differs from a lost reply.
89
+ // In particular a context-overflow retry must not reset or poison spend.
90
+ if (
91
+ !outputObserved &&
92
+ usage === undefined &&
93
+ !uncertainRetry &&
94
+ rejectedBeforeGeneration(error)
95
+ ) {
96
+ await budget.finishRequest(requestId, { ...EMPTY_TOKEN_USAGE })
97
+ completed = true
98
+ }
99
+ throw error
100
+ } finally {
101
+ if (!completed) await budget.failRequest(requestId, usage)
102
+ }
103
+ }
104
+
105
+ // Bind optional driver methods to the driver, including methods added later.
106
+ // Object spread loses prototype methods and inherited capability accessors.
107
+ return new Proxy(provider, {
108
+ get(target, property) {
109
+ if (property === 'chatStream') return chatStream
110
+ const value: unknown = Reflect.get(target, property, target)
111
+ return typeof value === 'function' ? value.bind(target) : value
112
+ },
113
+ })
114
+ }
@@ -441,6 +441,14 @@ export {
441
441
  DEFAULT_TIMEOUT_MS,
442
442
  DEFAULT_TOKEN_BUDGET,
443
443
  SupervisorAgent,
444
+ DEFAULT_RESERVED_AGENT_NAMES,
445
+ discoverAgentDefinitions,
446
+ EXPLORE_AGENT_DESCRIPTION,
447
+ EXPLORE_AGENT_ID,
448
+ EXPLORE_AGENT_PROMPT,
449
+ MAX_AGENT_FILE_CHARS,
450
+ parseAgentFile,
451
+ parseAgentMarkdown,
444
452
  } from './agents/index.js'
445
453
 
446
454
  // ─── registries, stores, managers, plugin, gateway ───────────────────────
@@ -529,11 +537,20 @@ export {
529
537
  } from './registry/index.js'
530
538
 
531
539
  export {
540
+ attachShellHooks,
541
+ createShellHook,
542
+ DEFAULT_SHELL_HOOK_TIMEOUT_MS,
532
543
  discoverAllPluginDirs,
533
544
  discoverPlugins,
534
545
  loadPluginManifest,
546
+ MAX_SHELL_HOOK_TIMEOUT_MS,
535
547
  PluginLifecycleManager,
536
548
  PluginResolver,
549
+ runShellHook,
550
+ SHELL_HOOK_EVENTS,
551
+ SHELL_HOOKS_PLUGIN_ID,
552
+ shellHookMatches,
553
+ shellHookVerdict,
537
554
  } from './plugin/index.js'
538
555
 
539
556
  export {
@@ -919,29 +936,6 @@ export {
919
936
  validatePrevArtifactChain,
920
937
  } from './session/intervention/index.js'
921
938
 
922
- export {
923
- acceptLegacyContainerId,
924
- /** @deprecated Use {@link acceptLegacyContainerId}. Removal is NZ-TOPIC-05. */
925
- acquireMigrationLock,
926
- DefaultFilesystemMigrator,
927
- FilesystemMigrationError,
928
- LEGACY_DEFAULT_PROJECT_PREFIX,
929
- LEGACY_DEFAULT_SESSION_ID,
930
- LOCK_REL_PATH,
931
- loggingMigrationSink,
932
- MARKER_REL_PATH,
933
- MIGRATION_VERSION,
934
- NOOP_FILESYSTEM_MIGRATION_SINK,
935
- NOOP_MIGRATION_WARNING_SINK,
936
- readMarker,
937
- rejectLegacyContainerPrefix,
938
- /** @deprecated Use {@link rejectLegacyContainerPrefix}. Removal is NZ-TOPIC-05. */
939
- releaseMigrationLock,
940
- StalePrefixError,
941
- WINDOW_OPEN,
942
- writeMarker,
943
- } from './session/migration/index.js'
944
-
945
939
  export {
946
940
  ArchivalManager,
947
941
  ArchiveNotConfiguredError,
@@ -1001,7 +995,6 @@ export { isConnectorActive } from './types/connector/core.js'
1001
995
  export { CONNECTOR_SCOPE_ORDER } from './types/connector/scope.js'
1002
996
  export { RoutingResponseSchema } from './types/decision/index.js'
1003
997
  export { autoApproveHandler } from './types/hitl/index.js'
1004
- export { UNKNOWN_TENANT_ID } from './types/ids/index.js'
1005
998
  export { deriveChildState } from './types/invocation/index.js'
1006
999
  export { assertMemoryStatus } from './types/memory/index.js'
1007
1000
  export {
@@ -1062,6 +1055,17 @@ export { compactNow, compactRegion } from './compaction/manual.js'
1062
1055
  // resume. Export the identity predicate rather than making every host copy the
1063
1056
  // marker string and eventually disagree with the writer.
1064
1057
  export { isCompactionMessage } from './compaction/summary.js'
1058
+ export {
1059
+ DEFAULT_SALIENCE_CONFIG,
1060
+ DEFAULT_SALIENCE_WEIGHTS,
1061
+ buildGoal,
1062
+ isStubbedNarration,
1063
+ messageText,
1064
+ planWorkingSet,
1065
+ scoreMessages,
1066
+ } from './compaction/salience/index.js'
1067
+ export { DEFAULT_SOFT_TARGET, planSalienceWorkingSet } from './compaction/plan.js'
1068
+ export { CONSOLIDATION_TAG, consolidationEntry } from './compaction/consolidation.js'
1065
1069
  // The sibling state-bearing system message. A host that carries a Run's
1066
1070
  // conversation into a fresh query must distinguish this ledger from the fresh
1067
1071
  // identity/environment prompt floor without copying its private header string.
@@ -1181,13 +1185,33 @@ export type {
1181
1185
  // policy emits a durable event and only the run holds the emitter. The name
1182
1186
  // constant is exported so a host can recognise the unattended default.
1183
1187
  export { AUTO_APPROVE_POLICY_NAME } from './runtime/query/approval-policy.js'
1188
+ // The modes a host resolves the undecided under — prompt, auto,
1189
+ // accept-edits, plan, strict — as an `ApprovalPolicy`. See
1190
+ // `runtime/query/review-policy.ts`.
1191
+ export {
1192
+ ACCEPT_EDITS_TOOLS,
1193
+ PLAN_MODE_REFUSAL,
1194
+ REVIEW_EXEMPT_WRITES,
1195
+ REVIEW_MODES,
1196
+ STRICT_MODE_REFUSAL,
1197
+ batchNeedsReview,
1198
+ createReviewHandler,
1199
+ createReviewPolicy,
1200
+ isReviewExempt,
1201
+ isReviewMode,
1202
+ } from './runtime/query/review-policy.js'
1184
1203
 
1185
1204
  // The system prompt is open: a contribution registry the assembler
1186
1205
  // consumes, with skills as its first contributor. See `prompt/contributions.ts`.
1187
1206
  export {
1207
+ CODING_AGENT_DELEGATION_DOCTRINE,
1208
+ CODING_AGENT_DOCTRINE_CONTRIBUTION_ID,
1209
+ CODING_AGENT_WORKING_DOCTRINE,
1210
+ PLAN_MODE_DOCTRINE,
1188
1211
  PromptContributionCollisionError,
1189
1212
  PromptContributionRegistry,
1190
1213
  SKILLS_CONTRIBUTION_ID,
1214
+ codingAgentDoctrineContribution,
1191
1215
  skillsContribution,
1192
1216
  } from './prompt/index.js'
1193
1217
 
@@ -1297,9 +1321,6 @@ export type {
1297
1321
  export type { BroadcastHandoffDeps } from './session/handoff/broadcast.js'
1298
1322
  export type { SingleHandoffDeps } from './session/handoff/single.js'
1299
1323
  export type { InterventionChainLoader } from './session/intervention/prev-artifact.js'
1300
- export type { FilesystemMigrationSink } from './session/migration/filesystem.js'
1301
- export type { MigrationWarningSink } from './session/migration/id-prefix.js'
1302
- export type { MigrationMarker } from './session/migration/marker.js'
1303
1324
  export type { ActionInput } from './tools/builtins/computer-use.js'
1304
1325
  export type { Project } from './types/project/entity.js'
1305
1326
  export type { CreatedLogger } from './utils/log/create-logger.js'
@@ -1307,3 +1328,9 @@ export type {
1307
1328
  LoggerOptions,
1308
1329
  MutableLogSinkCounters,
1309
1330
  } from './utils/log/types.js'
1331
+ export type { JobProcess } from './runtime/jobs/registry.js'
1332
+ export { WORKING_STATE_MIME } from './connector/mcp/adapter.js'
1333
+
1334
+ export { TokenBudget, validateTokenBudgetSnapshot } from './run/token-budget.js'
1335
+ export { DiskTokenBudgetStore, openTokenBudget } from './store/run/token-budget-disk.js'
1336
+ export { validateTokenBudgetBinding } from './types/run/token-budget-store.js'
@@ -19,6 +19,7 @@ export { isWithin, resolveWithin, resolveWithinReal } from './tools/paths.js'
19
19
  // A host that surfaces its own untrusted content to a model needs the same
20
20
  // framing the kernel applies to connector prompts and delegated results.
21
21
  export { neutralizeEnvelopeDelimiter, wrapUntrusted } from './tools/untrusted-envelope.js'
22
+ export { filterReadOnlyTools, filterToolsNamed } from './tools/roster.js'
22
23
  export type { UntrustedEnvelope } from './tools/untrusted-envelope.js'
23
24
 
24
25
  // ─── Built-in tools ──────────────────────────────────────────────────────
@@ -98,6 +99,10 @@ export {
98
99
  export { buildAdvisoryTools } from './tools/advisory/index.js'
99
100
  export { buildMemoryTools } from './tools/memory/index.js'
100
101
  export { buildCoordinatorTools } from './tools/coordinator/index.js'
102
+ export {
103
+ buildAskUserQuestionTool,
104
+ type AskUserQuestionToolOptions,
105
+ } from './tools/coordinator/ask-user-question.js'
101
106
  export { buildAgentTool, type AgentToolOptions } from './tools/coordinator/agent.js'
102
107
 
103
108
  // ─── RAG tool builder ────────────────────────────────────────────────────
@@ -175,6 +175,21 @@ export type {
175
175
  } from './registry/index.js'
176
176
 
177
177
  export type { PluginLifecycleManagerConfig } from './plugin/lifecycle.js'
178
+ export type {
179
+ AgentDefinitionRoot,
180
+ AgentFileDefinition,
181
+ DiscoverAgentDefinitionsOptions,
182
+ DiscoveredAgentDefinitions,
183
+ SkippedAgentFile,
184
+ } from './agents/file-definitions.js'
185
+ export type {
186
+ ShellHookEntry,
187
+ ShellHookEvent,
188
+ ShellHookInput,
189
+ ShellHookOptions,
190
+ ShellHookOutcome,
191
+ ShellHooksConfig,
192
+ } from './plugin/shell-hook.js'
178
193
 
179
194
  export type {
180
195
  PlanApprovalHandler,
@@ -263,6 +278,8 @@ export type {
263
278
  PlanSlot,
264
279
  ToolResultSlot,
265
280
  WorkingState,
281
+ PinSlot,
282
+ WorkingStatePin,
266
283
  } from './compaction/index.js'
267
284
  export type * from './eval/index.js'
268
285
  export type * from './types/guardrail/index.js'
@@ -328,6 +345,34 @@ export type {
328
345
  } from './types/hitl/policy.js'
329
346
 
330
347
  export type {
348
+ GoalSources,
349
+ ProtectedReason,
350
+ SalienceConfig,
351
+ SalienceWeights,
352
+ ScoreOptions,
353
+ ScoredMessage,
354
+ WorkingSetAction,
355
+ WorkingSetOptions,
356
+ WorkingSetPlan,
357
+ } from './compaction/salience/index.js'
358
+ export type { ConsolidationMeta } from './compaction/consolidation.js'
359
+ export type {
360
+ CompactionPlan,
361
+ CompactionPlanInput,
362
+ CompactionSkipReason,
363
+ } from './compaction/plan.js'
364
+
365
+ export type {
366
+ ReviewExemption,
367
+ ReviewMode,
368
+ ReviewPolicyOptions,
369
+ ToolReviewAnswer,
370
+ ToolReviewPrompt,
371
+ ToolReviewRequest,
372
+ } from './runtime/query/review-policy.js'
373
+
374
+ export type {
375
+ CodingAgentDoctrineOptions,
331
376
  PromptContribution,
332
377
  PromptContributionContext,
333
378
  PromptPlacement,
@@ -373,3 +418,23 @@ export type {
373
418
  TerminalSession,
374
419
  TerminalSize,
375
420
  } from './sandbox/terminal.js'
421
+
422
+ // Existing Topic snapshots can initialize an in-memory delegation store.
423
+ export type { Topic, TopicStatus } from './types/topic/entity.js'
424
+
425
+ export type {
426
+ TokenBudgetAccountSnapshot,
427
+ TokenBudgetRequestSnapshot,
428
+ TokenBudgetSnapshot,
429
+ TokenBudgetSummary,
430
+ TokenBudgetPersistence,
431
+ } from './run/token-budget.js'
432
+ export type {
433
+ TokenBudgetStore,
434
+ TokenBudgetScope,
435
+ TokenBudgetBinding,
436
+ } from './types/run/token-budget-store.js'
437
+ export type {
438
+ DiskTokenBudgetStoreConfig,
439
+ OpenTokenBudgetOptions,
440
+ } from './store/run/token-budget-disk.js'
@@ -53,11 +53,13 @@ export interface GoalCommandScope {
53
53
  readonly activation?: SessionGoalActivation
54
54
  }
55
55
 
56
- const GOAL_USAGE = 'Usage: /goal [<objective>|clear|edit <objective>|pause|resume]'
56
+ const GOAL_ARGUMENTS = '[status|set <objective>|<objective>|edit <objective>|pause|resume|clear]'
57
+ const GOAL_USAGE = `Usage: /goal ${GOAL_ARGUMENTS}`
57
58
 
58
59
  type ParsedGoalCommand =
59
60
  | { readonly kind: 'show' }
60
61
  | { readonly kind: 'create'; readonly objective: string }
62
+ | { readonly kind: 'invalid-create' }
61
63
  | { readonly kind: 'edit'; readonly objective: string }
62
64
  | { readonly kind: 'invalid-edit' }
63
65
  | { readonly kind: 'pause' }
@@ -68,6 +70,9 @@ function parseGoalCommand(args: readonly string[]): ParsedGoalCommand {
68
70
  const input = args.join(' ').trim()
69
71
  if (input.length === 0) return { kind: 'show' }
70
72
  const control = input.toLowerCase()
73
+ if (control === 'status') return { kind: 'show' }
74
+ if (control === 'set') return { kind: 'invalid-create' }
75
+ if (/^set(?=\s)/iu.test(input)) return { kind: 'create', objective: input.slice(3).trim() }
71
76
  if (control === 'clear') return { kind: 'clear' }
72
77
  if (control === 'pause') return { kind: 'pause' }
73
78
  if (control === 'resume') return { kind: 'resume' }
@@ -87,15 +92,15 @@ function goalCommands(goal: SessionGoal, armed: boolean): string {
87
92
  if (goal.phase === 'paused' || goal.phase === 'blocked') {
88
93
  return '/goal edit <objective>, /goal resume, /goal clear'
89
94
  }
90
- return '/goal <objective>, /goal clear'
95
+ return '/goal set <objective>, /goal clear'
91
96
  }
92
97
 
93
98
  function renderGoal(title: string, goal: SessionGoal, armed: boolean): string {
94
99
  return [
95
100
  title,
96
101
  `Status: ${goal.phase}`,
97
- `Automatic continuation: ${armed ? 'armed' : 'disarmed'}`,
98
- `Rounds admitted: ${goal.roundsAdmitted} / ${goal.maxGoalRounds}`,
102
+ `Automatic continuation: ${armed ? 'enabled' : 'paused'}`,
103
+ `Automatic turns: ${goal.roundsAdmitted} / ${goal.maxGoalRounds}`,
99
104
  ...(goal.blockedReason
100
105
  ? [`Blocker: ${goal.blockedReason.code}: ${goal.blockedReason.message}`]
101
106
  : []),
@@ -134,6 +139,11 @@ async function runGoalCommand(scope: GoalCommandScope | undefined, args: readonl
134
139
  kind: 'ack' as const,
135
140
  message: `No goal is currently set.\n${GOAL_USAGE}`,
136
141
  }
142
+ case 'invalid-create':
143
+ return {
144
+ kind: 'refused' as const,
145
+ reason: `Setting a goal requires an objective.\n${GOAL_USAGE}`,
146
+ }
137
147
  case 'invalid-edit':
138
148
  return {
139
149
  kind: 'refused' as const,
@@ -201,7 +211,7 @@ async function runGoalCommand(scope: GoalCommandScope | undefined, args: readonl
201
211
  scope.activation?.arm(current)
202
212
  return {
203
213
  kind: 'ack' as const,
204
- message: renderScopedGoal('Goal armed', current, scope),
214
+ message: renderScopedGoal('Goal resumed', current, scope),
205
215
  }
206
216
  }
207
217
  const resumed = await scope.store.resumeGoal(
@@ -250,7 +260,7 @@ export function kernelHostCommands(options: KernelCommandOptions): HostCommandDe
250
260
  {
251
261
  name: 'goal',
252
262
  description: 'Persist or inspect a completion goal for this conversation.',
253
- hint: '[<objective>|clear|edit <objective>|pause|resume]',
263
+ hint: GOAL_ARGUMENTS,
254
264
  handler: async ({ args }) => await runGoalCommand(options.goal, args),
255
265
  },
256
266
  {
@@ -5,6 +5,7 @@ import { recordToolCall } from '../../telemetry/metrics.js'
5
5
  import { getTracer } from '../../telemetry/runtime-accessors.js'
6
6
  import { isTrustedReadOnly } from '../../tools/trusted-read-only.js'
7
7
  import type { ToolResultGuardrailSpec } from '../../types/guardrail/index.js'
8
+ import { PLAN_MODE_REFUSAL } from '../../types/permission/index.js'
8
9
  import type {
9
10
  LLMToolSchema,
10
11
  PreparedToolExecution,
@@ -674,7 +675,9 @@ Executable tool names, descriptions, and JSON input schemas are attached through
674
675
  if (mode === 'plan') {
675
676
  const isReadOnly = isTrustedReadOnly(tool, finalInput)
676
677
  if (!isReadOnly) {
677
- const msg = `plan mode: non-read-only tool "${toolName}" blocked`
678
+ // The same words the review-time policy uses, so the model gets one
679
+ // instruction whichever door refused it.
680
+ const msg = `plan mode: non-read-only tool "${toolName}" blocked. ${PLAN_MODE_REFUSAL}`
678
681
  span.setAttributes({
679
682
  [NAMZU.TOOL_SUCCESS]: false,
680
683
  [NAMZU.TOOL_ERROR]: msg,
@@ -49,7 +49,7 @@ export function checkLimitsDetailed(
49
49
  // bound. Continuing here would be the check answering "the budget is
50
50
  // satisfied" to the question "can the budget be evaluated?", which is
51
51
  // the strongest available wrong answer — see
52
- // docs/conventions/an-optional-dependency-may-not-degrade-a-check.md.
52
+ // "an optional dependency may not degrade a check".
53
53
  if (state.unpricedTokens > 0) {
54
54
  return { type: 'hard_stop', reason: 'cost_unmeasurable' }
55
55
  }
package/src/run/drain.ts CHANGED
@@ -334,7 +334,7 @@ export async function drainRuns(params: DrainRunsParams): Promise<DrainRunsResul
334
334
  * the check in the loop, which runs first. A branch nothing can reach is
335
335
  * a declaration nothing drives, so it is gone rather than covered by a
336
336
  * test that would have proved nothing
337
- * (`docs/conventions/declared-but-undriven.md`).
337
+ * ("declared but undriven").
338
338
  */
339
339
  const handle = async (entry: DurableRunEntry): Promise<void> => {
340
340
  const claim = await claimRun(store, entry, {
@@ -302,6 +302,21 @@ export function createRunReporter(parentLogger?: Logger): RunReporter {
302
302
  })
303
303
  break
304
304
 
305
+ case 'background_job_exited':
306
+ log.info('Background job ended', {
307
+ 'namzu.jobs.id': event.jobId,
308
+ 'namzu.jobs.status': event.status,
309
+ ...(event.exitCode !== undefined ? { 'namzu.jobs.exit_code': event.exitCode } : {}),
310
+ })
311
+ break
312
+ case 'memory_consolidated':
313
+ log.info('Run learnings consolidated into the memory store', {
314
+ 'namzu.memory.id': event.memoryId,
315
+ 'namzu.memory.decisions': event.decisions,
316
+ 'namzu.memory.discoveries': event.discoveries,
317
+ 'namzu.memory.failures': event.failures,
318
+ })
319
+ break
305
320
  case 'compaction_tool_results_cleared':
306
321
  // `info` on both branches. The relieved case is the run
307
322
  // avoiding a summarization, which is good news worth stating;