@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
@@ -0,0 +1,142 @@
1
+ /**
2
+ * How a run resolves the calls no rule decided.
3
+ *
4
+ * An authorization rule says what a tool may do. A review policy says what
5
+ * happens to everything the rules did not cover: the batch the gate routed
6
+ * to REVIEW. The two axes are separate on purpose — a rule is a durable
7
+ * statement an operator reviewed, and a mode is a property of ONE run, the
8
+ * difference between "we never force-push" and "this run is unattended".
9
+ *
10
+ * Only calls the gate routed to review arrive here. A rule that denied one
11
+ * already stopped it, and a rule that allowed one never asked. So a mode
12
+ * decides the undecided and can never reopen what a rule closed; a host's
13
+ * `--permission-mode` flag cannot widen a `deny`. That is the whole
14
+ * precedence story between a flag and a config file, in one sentence.
15
+ *
16
+ * This lived in the operator application as one closure. It moved here
17
+ * because none of it is about a terminal: the modes name kernel tools, the
18
+ * exemptions reason about kernel tools' blast radius, and a second host
19
+ * would otherwise write the same five branches and drift on the sixth.
20
+ * What a host supplies is the one thing the kernel cannot: how to ask a
21
+ * person (`prompt`).
22
+ */
23
+ import type { ToolRegistry } from '../../registry/tool/execute.js';
24
+ import type { ResumeHandler, ToolCallSummary } from '../../types/hitl/index.js';
25
+ import type { ApprovalPolicy } from '../../types/hitl/policy.js';
26
+ import { PLAN_MODE_REFUSAL } from '../../types/permission/index.js';
27
+ export type ReviewMode =
28
+ /** Ask a person. The default when a `prompt` is supplied. */
29
+ 'prompt'
30
+ /** Approve it. The default without a `prompt`, and what every headless run has always done. */
31
+ | 'auto'
32
+ /**
33
+ * Approve a file edit, ask about everything else.
34
+ *
35
+ * The mode an operator watching the agent write code actually wants: an
36
+ * `edit` or `write` inside the working directory is what they asked for
37
+ * and is undoable with `git`, so a prompt on each one is a prompt they
38
+ * answer `y` to forty times an hour — and a prompt that is always
39
+ * answered the same way trains the hand to answer the next one, which is
40
+ * the shell prompt, the same way. Shell commands, delegation and anything
41
+ * a tool declares destructive still ask.
42
+ */
43
+ | 'accept-edits'
44
+ /**
45
+ * Read and think, do not act. A call that only reads is approved; a call
46
+ * that would change anything is refused with feedback telling the model
47
+ * to present its plan instead. The operator reads the plan and switches
48
+ * mode to have it carried out — the switch IS the approval. The kernel's
49
+ * `permissionMode: 'plan'` is the floor under this: it blocks a mutating
50
+ * call at execution with no feedback, where this refuses it at review
51
+ * with the words that make the model plan.
52
+ */
53
+ | 'plan'
54
+ /**
55
+ * Refuse it. Nothing runs unless a rule allowed it by name or pattern —
56
+ * the allowlist is the whole permission surface, which is the only form
57
+ * an unattended run can actually be reasoned about.
58
+ */
59
+ | 'strict';
60
+ export declare const REVIEW_MODES: readonly ReviewMode[];
61
+ export declare function isReviewMode(value: unknown): value is ReviewMode;
62
+ export { PLAN_MODE_REFUSAL };
63
+ /** What the model is told when a call is refused under `strict`. */
64
+ export declare const STRICT_MODE_REFUSAL = "Refused: this run only permits tools an explicit rule allows, and no rule covers this call. Asking again will not change it \u2014 either the operator adds a rule, or this has to be done another way.";
65
+ /** The tools `accept-edits` approves without asking. Everything else prompts. */
66
+ export declare const ACCEPT_EDITS_TOOLS: ReadonlySet<string>;
67
+ /**
68
+ * Writes that skip review anyway, in spite of declaring `readOnly: false`.
69
+ *
70
+ * This is an OVERRIDE of the tool's own declaration, and it is named as one.
71
+ * The bar for an entry is that prompting would be unusable AND a bad write
72
+ * cannot reach beyond the agent's own bookkeeping:
73
+ *
74
+ * - `task_create` / `task_update` / `update_goal` — the model's own plan for
75
+ * the current request, written several times per planning turn; asking
76
+ * each time would put a consent dialog between the agent and its todo
77
+ * list. What a bad write costs is a polluted task list, visible in the
78
+ * transcript, and it grants nothing.
79
+ *
80
+ * `save_memory` is deliberately NOT here. Content saved now is retrievable
81
+ * by `search_memory` in a later session, so a tool result that talks the
82
+ * model into saving something reaches a future run's reasoning. A write
83
+ * that survives the process is not read-only under any reading.
84
+ */
85
+ export declare const REVIEW_EXEMPT_WRITES: ReadonlySet<string>;
86
+ /**
87
+ * Whether a call runs without review: it declares itself read-only and is
88
+ * trusted to say so, or it is a named exemption above.
89
+ *
90
+ * The read-only half comes from the tool's own declaration through
91
+ * `isTrustedReadOnly`, the predicate the authorization gate uses, never from
92
+ * a list of names kept here: a renamed tool would otherwise change posture
93
+ * with nothing to notice. A fetch declares itself read-only and is still a
94
+ * request leaving the machine to an address the model chose, so `network`
95
+ * tools are reviewed like a shell command. A tool the registry does not
96
+ * know, or one that declares nothing, is reviewed.
97
+ */
98
+ export declare function isReviewExempt(registry: Pick<ToolRegistry, 'get'>, name: string, input: unknown): boolean;
99
+ export type ReviewExemption = (name: string, input: unknown) => boolean;
100
+ /** A batch needs review when any call mutates state: flagged destructive, or not exempt. */
101
+ export declare function batchNeedsReview(toolCalls: readonly ToolCallSummary[], exempt: ReviewExemption): boolean;
102
+ /** The batch a person is asked about. */
103
+ export interface ToolReviewRequest {
104
+ readonly toolCalls: readonly ToolCallSummary[];
105
+ }
106
+ export type ToolReviewAnswer = {
107
+ readonly kind: 'approve';
108
+ }
109
+ /** Approve, and stop asking for the rest of the run. */
110
+ | {
111
+ readonly kind: 'approve-all';
112
+ } | {
113
+ readonly kind: 'reject';
114
+ readonly feedback?: string;
115
+ };
116
+ /** How a host asks a person. The one thing the kernel cannot supply. */
117
+ export type ToolReviewPrompt = (request: ToolReviewRequest) => Promise<ToolReviewAnswer>;
118
+ export interface ReviewPolicyOptions {
119
+ /** Default `prompt` when a `prompt` is supplied, `auto` otherwise. */
120
+ readonly mode?: ReviewMode;
121
+ readonly prompt?: ToolReviewPrompt;
122
+ /** Which calls skip review; default `isReviewExempt` over `registry`, or nothing without one. */
123
+ readonly exempt?: ReviewExemption;
124
+ readonly registry?: Pick<ToolRegistry, 'get'>;
125
+ /**
126
+ * Where "approve all" is remembered. A host that shows the state (a
127
+ * badge saying the session is unattended) passes its own box so both
128
+ * read the same fact; omitted, the policy keeps one privately.
129
+ */
130
+ readonly remembered?: {
131
+ all: boolean;
132
+ };
133
+ }
134
+ /** The handler behind `createReviewPolicy`, for a host that wants only the function. */
135
+ export declare function createReviewHandler(options?: ReviewPolicyOptions): ResumeHandler;
136
+ /**
137
+ * The mode as an `ApprovalPolicy`, named after itself so a durable log can
138
+ * say which one approved a call. Swap it on a run's `RunApprovalPolicy`
139
+ * to change mode without ending the run.
140
+ */
141
+ export declare function createReviewPolicy(options?: ReviewPolicyOptions): ApprovalPolicy;
142
+ //# sourceMappingURL=review-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,OAAO,KAAK,EAAsB,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,MAAM,MAAM,UAAU;AACrB,6DAA6D;AAC3D,QAAQ;AACV,+FAA+F;GAC7F,MAAM;AACR;;;;;;;;;;GAUG;GACD,cAAc;AAChB;;;;;;;;GAQG;GACD,MAAM;AACR;;;;GAIG;GACD,QAAQ,CAAA;AAEX,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAM7C,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,4MACqK,CAAA;AAErM,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAA8B,CAAA;AAEjF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAInD,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACZ,OAAO,CAKT;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;AAEvE,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,MAAM,EAAE,eAAe,GACrB,OAAO,CAET;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;CAC9C;AAED,MAAM,MAAM,gBAAgB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE;AAC9B,wDAAwD;GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAExF,MAAM,WAAW,mBAAmB;IACnC,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;IAClC,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAAA;CACtC;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa,CAiDpF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAGpF"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * How a run resolves the calls no rule decided.
3
+ *
4
+ * An authorization rule says what a tool may do. A review policy says what
5
+ * happens to everything the rules did not cover: the batch the gate routed
6
+ * to REVIEW. The two axes are separate on purpose — a rule is a durable
7
+ * statement an operator reviewed, and a mode is a property of ONE run, the
8
+ * difference between "we never force-push" and "this run is unattended".
9
+ *
10
+ * Only calls the gate routed to review arrive here. A rule that denied one
11
+ * already stopped it, and a rule that allowed one never asked. So a mode
12
+ * decides the undecided and can never reopen what a rule closed; a host's
13
+ * `--permission-mode` flag cannot widen a `deny`. That is the whole
14
+ * precedence story between a flag and a config file, in one sentence.
15
+ *
16
+ * This lived in the operator application as one closure. It moved here
17
+ * because none of it is about a terminal: the modes name kernel tools, the
18
+ * exemptions reason about kernel tools' blast radius, and a second host
19
+ * would otherwise write the same five branches and drift on the sixth.
20
+ * What a host supplies is the one thing the kernel cannot: how to ask a
21
+ * person (`prompt`).
22
+ */
23
+ import { isTrustedReadOnly } from '../../tools/trusted-read-only.js';
24
+ import { PLAN_MODE_REFUSAL } from '../../types/permission/index.js';
25
+ export const REVIEW_MODES = [
26
+ 'prompt',
27
+ 'accept-edits',
28
+ 'auto',
29
+ 'strict',
30
+ 'plan',
31
+ ];
32
+ export function isReviewMode(value) {
33
+ return typeof value === 'string' && REVIEW_MODES.includes(value);
34
+ }
35
+ export { PLAN_MODE_REFUSAL };
36
+ /** What the model is told when a call is refused under `strict`. */
37
+ export const STRICT_MODE_REFUSAL = 'Refused: this run only permits tools an explicit rule allows, and no rule covers this call. Asking again will not change it — either the operator adds a rule, or this has to be done another way.';
38
+ /** The tools `accept-edits` approves without asking. Everything else prompts. */
39
+ export const ACCEPT_EDITS_TOOLS = new Set(['edit', 'write']);
40
+ /**
41
+ * Writes that skip review anyway, in spite of declaring `readOnly: false`.
42
+ *
43
+ * This is an OVERRIDE of the tool's own declaration, and it is named as one.
44
+ * The bar for an entry is that prompting would be unusable AND a bad write
45
+ * cannot reach beyond the agent's own bookkeeping:
46
+ *
47
+ * - `task_create` / `task_update` / `update_goal` — the model's own plan for
48
+ * the current request, written several times per planning turn; asking
49
+ * each time would put a consent dialog between the agent and its todo
50
+ * list. What a bad write costs is a polluted task list, visible in the
51
+ * transcript, and it grants nothing.
52
+ *
53
+ * `save_memory` is deliberately NOT here. Content saved now is retrievable
54
+ * by `search_memory` in a later session, so a tool result that talks the
55
+ * model into saving something reaches a future run's reasoning. A write
56
+ * that survives the process is not read-only under any reading.
57
+ */
58
+ export const REVIEW_EXEMPT_WRITES = new Set([
59
+ 'task_create',
60
+ 'task_update',
61
+ 'update_goal',
62
+ ]);
63
+ /**
64
+ * Whether a call runs without review: it declares itself read-only and is
65
+ * trusted to say so, or it is a named exemption above.
66
+ *
67
+ * The read-only half comes from the tool's own declaration through
68
+ * `isTrustedReadOnly`, the predicate the authorization gate uses, never from
69
+ * a list of names kept here: a renamed tool would otherwise change posture
70
+ * with nothing to notice. A fetch declares itself read-only and is still a
71
+ * request leaving the machine to an address the model chose, so `network`
72
+ * tools are reviewed like a shell command. A tool the registry does not
73
+ * know, or one that declares nothing, is reviewed.
74
+ */
75
+ export function isReviewExempt(registry, name, input) {
76
+ if (REVIEW_EXEMPT_WRITES.has(name.toLowerCase()))
77
+ return true;
78
+ const tool = registry.get(name) ?? registry.get(name.toLowerCase());
79
+ if (tool?.category === 'network')
80
+ return false;
81
+ return isTrustedReadOnly(tool, input);
82
+ }
83
+ /** A batch needs review when any call mutates state: flagged destructive, or not exempt. */
84
+ export function batchNeedsReview(toolCalls, exempt) {
85
+ return toolCalls.some((tc) => tc.isDestructive || !exempt(tc.name, tc.input));
86
+ }
87
+ /** The handler behind `createReviewPolicy`, for a host that wants only the function. */
88
+ export function createReviewHandler(options = {}) {
89
+ const { prompt, registry } = options;
90
+ const mode = options.mode ?? (prompt ? 'prompt' : 'auto');
91
+ const exempt = options.exempt ??
92
+ (registry ? (name, input) => isReviewExempt(registry, name, input) : () => false);
93
+ const remembered = options.remembered ?? { all: false };
94
+ return async (request) => {
95
+ if (request.type !== 'tool_review') {
96
+ return request.type === 'plan_approval' ? { action: 'approve_plan' } : { action: 'continue' };
97
+ }
98
+ if (!batchNeedsReview(request.toolCalls, exempt)) {
99
+ return { action: 'approve_tools' };
100
+ }
101
+ // A batch of nothing but non-destructive file edits is the case
102
+ // `accept-edits` exists for. One shell call in the same batch and the
103
+ // whole batch asks — the operator reviews the batch as a unit, and a
104
+ // prompt that showed only the shell command while the edits went
105
+ // through beside it would be approving something it did not show.
106
+ if (mode === 'accept-edits' &&
107
+ request.toolCalls.every((tc) => !tc.isDestructive && (ACCEPT_EDITS_TOOLS.has(tc.name) || exempt(tc.name, tc.input)))) {
108
+ return { action: 'approve_tools' };
109
+ }
110
+ // Reads were approved above. Anything that reached here would change
111
+ // something, and plan mode's answer is the same every time: not now,
112
+ // tell the user what you would do.
113
+ if (mode === 'plan')
114
+ return { action: 'reject_tools', feedback: PLAN_MODE_REFUSAL };
115
+ if (mode === 'strict')
116
+ return { action: 'reject_tools', feedback: STRICT_MODE_REFUSAL };
117
+ if (mode === 'auto' || !prompt || remembered.all) {
118
+ return { action: 'approve_tools' };
119
+ }
120
+ const answer = await prompt({ toolCalls: request.toolCalls });
121
+ switch (answer.kind) {
122
+ case 'approve':
123
+ return { action: 'approve_tools' };
124
+ case 'approve-all':
125
+ remembered.all = true;
126
+ return { action: 'approve_tools' };
127
+ case 'reject':
128
+ return {
129
+ action: 'reject_tools',
130
+ feedback: answer.feedback ?? 'User declined to run the proposed tool(s).',
131
+ };
132
+ }
133
+ };
134
+ }
135
+ /**
136
+ * The mode as an `ApprovalPolicy`, named after itself so a durable log can
137
+ * say which one approved a call. Swap it on a run's `RunApprovalPolicy`
138
+ * to change mode without ending the run.
139
+ */
140
+ export function createReviewPolicy(options = {}) {
141
+ const mode = options.mode ?? (options.prompt ? 'prompt' : 'auto');
142
+ return { name: mode, handler: createReviewHandler({ ...options, mode }) };
143
+ }
144
+ //# sourceMappingURL=review-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-policy.js","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-state.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/run-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACxD,OAAO,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,aAAa,EACpB,KAAK,CAAC,EAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;CACvC,GACC,QAAQ,CA2BV;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,aAAa,EACpB,YAAY,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAE1B;AAED,6FAA6F;AAC7F,wBAAsB,oBAAoB,CACzC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,aAAa,EACpB,YAAY,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAA;CAAE,GAAG,IAAI,CAAC,CA2BxF"}
1
+ {"version":3,"file":"run-state.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/run-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACxD,OAAO,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,aAAa,EACpB,KAAK,CAAC,EAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;CACvC,GACC,QAAQ,CA6BV;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,aAAa,EACpB,YAAY,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAE1B;AAED,6FAA6F;AAC7F,wBAAsB,oBAAoB,CACzC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,aAAa,EACpB,YAAY,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAA;CAAE,GAAG,IAAI,CAAC,CA6BxF"}
@@ -25,6 +25,8 @@ export function captureRunState(runMgr, scope, extra) {
25
25
  ...(session.lastError ? { lastError: session.lastError } : {}),
26
26
  messages: structuredClone(runMgr.messages),
27
27
  tokenUsage: { ...runMgr.tokenUsage },
28
+ budgetBinding: runMgr.budget?.binding,
29
+ budgetAccountId: runMgr.budget?.accountId,
28
30
  costInfo: { ...runMgr.costInfo },
29
31
  currentIteration: runMgr.currentIteration,
30
32
  startedAt,
@@ -75,6 +77,8 @@ export async function loadSelectedRunState(store, scope, checkpointId) {
75
77
  status: 'running',
76
78
  messages: checkpoint.messages,
77
79
  tokenUsage: checkpoint.tokenUsage,
80
+ budgetBinding: checkpoint.budgetBinding,
81
+ budgetAccountId: checkpoint.budgetAccountId,
78
82
  costInfo: checkpoint.costInfo,
79
83
  currentIteration: checkpoint.guardState.iterationCount,
80
84
  startedAt: checkpoint.createdAt - checkpoint.guardState.elapsedMs,
@@ -1 +1 @@
1
- {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../../src/runtime/query/run-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../../src/runtime/query/run-state.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,10 @@ export declare class SteeringBinding implements SteeringChannel {
65
65
  * to be worked with rather than followed would inverting the very thing the
66
66
  * host is trying to do. Different party, different frame, on purpose.
67
67
  */
68
+ /** The same slot as steering, for notices the kernel itself has to deliver. */
69
+ export declare function attachNotice(messages: readonly Message[], channel: SteeringChannel | undefined, format: (text: string) => string): readonly Message[];
70
+ /** What the model reads when a background job it started has ended. */
71
+ export declare function formatJobNote(text: string): string;
68
72
  export declare function formatSteeringNote(text: string): string;
69
73
  /**
70
74
  * Append the guidance to the last tool result in a settled batch.
@@ -1 +1 @@
1
- {"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,eAAe;IAC/B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEzB,yDAAyD;IACzD,KAAK,IAAI,MAAM,GAAG,SAAS,CAAA;IAE3B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,qBAAa,eAAgB,YAAW,eAAe;IACtD,OAAO,CAAC,MAAM,CAAe;IAE7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,KAAK,IAAI,MAAM,GAAG,SAAS;IAO3B,IAAI,OAAO,IAAI,OAAO,CAErB;CACD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,EAAE,eAAe,GAAG,SAAS,GAClC,SAAS,OAAO,EAAE,CA8BpB"}
1
+ {"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,eAAe;IAC/B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEzB,yDAAyD;IACzD,KAAK,IAAI,MAAM,GAAG,SAAS,CAAA;IAE3B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,qBAAa,eAAgB,YAAW,eAAe;IACtD,OAAO,CAAC,MAAM,CAAe;IAE7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,KAAK,IAAI,MAAM,GAAG,SAAS;IAO3B,IAAI,OAAO,IAAI,OAAO,CAErB;CACD;AAED;;;;;;;;;;;;GAYG;AACH,+EAA+E;AAC/E,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAC9B,SAAS,OAAO,EAAE,CAoBpB;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,EAAE,eAAe,GAAG,SAAS,GAClC,SAAS,OAAO,EAAE,CA8BpB"}
@@ -30,6 +30,35 @@ export class SteeringBinding {
30
30
  * to be worked with rather than followed would inverting the very thing the
31
31
  * host is trying to do. Different party, different frame, on purpose.
32
32
  */
33
+ /** The same slot as steering, for notices the kernel itself has to deliver. */
34
+ export function attachNotice(messages, channel, format) {
35
+ if (!channel?.pending)
36
+ return messages;
37
+ let lastToolIndex = -1;
38
+ for (let index = messages.length - 1; index >= 0; index--) {
39
+ if (messages[index]?.role === 'tool') {
40
+ lastToolIndex = index;
41
+ break;
42
+ }
43
+ }
44
+ if (lastToolIndex === -1)
45
+ return messages;
46
+ const text = channel.drain();
47
+ if (text === undefined)
48
+ return messages;
49
+ const target = messages[lastToolIndex];
50
+ if (typeof target.content !== 'string') {
51
+ channel.steer(text);
52
+ return messages;
53
+ }
54
+ const next = [...messages];
55
+ next[lastToolIndex] = { ...target, content: target.content + format(text) };
56
+ return next;
57
+ }
58
+ /** What the model reads when a background job it started has ended. */
59
+ export function formatJobNote(text) {
60
+ return `\n\n[Background job update]\n${text}`;
61
+ }
33
62
  export function formatSteeringNote(text) {
34
63
  return `\n\n[Message from the operator, received while this tool was running]\n${text}`;
35
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"steering.js","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"AAoDA,MAAM,OAAO,eAAe;IACnB,MAAM,GAAa,EAAE,CAAA;IAE7B,KAAK,CAAC,IAAY;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK;QACJ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,OAAO,MAAM,CAAA;IACd,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9B,CAAC;CACD;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,OAAO,0EAA0E,IAAI,EAAE,CAAA;AACxF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC7B,QAA4B,EAC5B,OAAoC;IAEpC,IAAI,CAAC,OAAO,EAAE,OAAO;QAAE,OAAO,QAAQ,CAAA;IAEtC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAA;IACtB,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3D,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACtC,aAAa,GAAG,KAAK,CAAA;YACrB,MAAK;QACN,CAAC;IACF,CAAC;IACD,IAAI,aAAa,KAAK,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAA;IAEzC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;IAChC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IAE3C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAY,CAAA;IACjD,wEAAwE;IACxE,sEAAsE;IACtE,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAC1E,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvB,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;IAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC3F,OAAO,IAAI,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"steering.js","sourceRoot":"","sources":["../../../src/runtime/query/steering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { TokenBudget } from '../../run/token-budget.js';
2
+ import type { RunId } from '../../types/ids/index.js';
3
+ import type { RunState } from '../../types/run/state.js';
4
+ import type { QueryParams } from './index.js';
5
+ /** Resolve one authority before any model request or recovered tool dispatch. */
6
+ export declare function resolveQueryBudget(params: QueryParams, runId: RunId, selected?: RunState): Promise<TokenBudget>;
7
+ //# sourceMappingURL=token-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-budget.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/token-budget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAK5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,iFAAiF;AACjF,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,QAAQ,GACjB,OAAO,CAAC,WAAW,CAAC,CA0GtB"}
@@ -0,0 +1,101 @@
1
+ import { join } from 'node:path';
2
+ import { DefaultPathBuilder } from '../../session/workspace/path-builder.js';
3
+ import { DiskCheckpointStore } from '../../store/run/checkpoint-disk.js';
4
+ import { openTokenBudget } from '../../store/run/token-budget-disk.js';
5
+ import { validateTokenBudgetBinding } from '../../types/run/token-budget-store.js';
6
+ /** Resolve one authority before any model request or recovered tool dispatch. */
7
+ export async function resolveQueryBudget(params, runId, selected) {
8
+ let saved = selected;
9
+ if (params.resumeFromCheckpoint && !saved) {
10
+ const paths = params.pathBuilder ??
11
+ new DefaultPathBuilder(join(params.workingDirectory ?? process.cwd(), '.namzu'));
12
+ const scope = {
13
+ tenantId: params.tenantId,
14
+ projectId: params.projectId,
15
+ sessionId: params.sessionId,
16
+ runId,
17
+ parentRunId: params.parentRunId,
18
+ };
19
+ const store = params.checkpointStore ??
20
+ new DiskCheckpointStore({
21
+ baseDir: join(paths.sessionDir(params.projectId, params.sessionId), 'runs'),
22
+ }, scope);
23
+ saved = (await store.readCheckpoint(scope, params.resumeFromCheckpoint)) ?? undefined;
24
+ if (!saved)
25
+ throw new Error('Cannot restore a token budget from a missing checkpoint.');
26
+ }
27
+ const schedulerBudget = params.taskScheduler?.budget;
28
+ if (params.taskScheduler && !schedulerBudget) {
29
+ throw new Error('A task scheduler must expose its shared token budget account.');
30
+ }
31
+ if (params.budget && schedulerBudget && params.budget !== schedulerBudget) {
32
+ throw new Error('Query and task scheduler must share the same token budget account.');
33
+ }
34
+ const provided = params.budget ?? schedulerBudget;
35
+ const binding = saved?.budgetBinding === undefined ? undefined : validateTokenBudgetBinding(saved.budgetBinding);
36
+ if (binding &&
37
+ saved?.budgetAccountId !== undefined &&
38
+ saved.budgetAccountId !== binding.accountId) {
39
+ throw new Error('Checkpoint token budget account references disagree.');
40
+ }
41
+ if (binding &&
42
+ (binding.scope.tenantId !== params.tenantId || binding.scope.projectId !== params.projectId)) {
43
+ throw new Error('Checkpoint token budget belongs to a different tenant or project.');
44
+ }
45
+ if (binding && binding.scope.runId === runId && binding.scope.sessionId !== params.sessionId) {
46
+ throw new Error('Checkpoint token budget belongs to a different root session.');
47
+ }
48
+ if (provided) {
49
+ const providedBinding = provided.binding;
50
+ if (providedBinding &&
51
+ (providedBinding.scope.tenantId !== params.tenantId ||
52
+ providedBinding.scope.projectId !== params.projectId ||
53
+ (providedBinding.scope.runId === runId &&
54
+ providedBinding.scope.sessionId !== params.sessionId))) {
55
+ throw new Error('Supplied token budget belongs to a different root scope.');
56
+ }
57
+ if (saved?.budgetAccountId && saved.budgetAccountId !== provided.accountId) {
58
+ throw new Error('Resume requires the original token budget account.');
59
+ }
60
+ if (binding &&
61
+ (binding.accountId !== provided.accountId || binding.scope.runId !== provided.rootRunId)) {
62
+ throw new Error('Checkpoint and supplied token budget authority disagree.');
63
+ }
64
+ if (binding &&
65
+ (!providedBinding ||
66
+ binding.scope.tenantId !== providedBinding.scope.tenantId ||
67
+ binding.scope.projectId !== providedBinding.scope.projectId ||
68
+ binding.scope.sessionId !== providedBinding.scope.sessionId ||
69
+ binding.scope.runId !== providedBinding.scope.runId)) {
70
+ throw new Error('Checkpoint and supplied token budget root scopes disagree.');
71
+ }
72
+ provided.bindRun(runId);
73
+ narrowToRunLimit(provided, params.runConfig.tokenBudget);
74
+ return provided;
75
+ }
76
+ if (saved?.budgetAccountId && !binding) {
77
+ throw new Error('This checkpoint used an in-memory token budget. Supply its current authoritative budget to resume.');
78
+ }
79
+ const budget = await openTokenBudget({
80
+ store: params.tokenBudgetStore,
81
+ pathBuilder: params.pathBuilder,
82
+ workingDirectory: params.workingDirectory,
83
+ scope: binding?.scope ?? {
84
+ tenantId: params.tenantId,
85
+ projectId: params.projectId,
86
+ sessionId: params.sessionId,
87
+ runId,
88
+ },
89
+ limit: binding && binding.scope.runId !== runId ? undefined : params.runConfig.tokenBudget,
90
+ accountId: binding?.accountId,
91
+ requireExisting: binding !== undefined,
92
+ });
93
+ budget.bindRun(runId);
94
+ narrowToRunLimit(budget, params.runConfig.tokenBudget);
95
+ return budget;
96
+ }
97
+ function narrowToRunLimit(budget, limit) {
98
+ if (limit > 0 && (budget.limit === 0 || limit < budget.limit))
99
+ budget.narrow(limit);
100
+ }
101
+ //# sourceMappingURL=token-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-budget.js","sourceRoot":"","sources":["../../../src/runtime/query/token-budget.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,8 @@ export interface ApplyToolOutputBudgetOptions {
58
58
  readonly toolUseId: string;
59
59
  readonly output: string;
60
60
  readonly maxChars: number;
61
+ /** An omission notice that shares the text budget, never extends it. */
62
+ readonly notice?: string;
61
63
  /**
62
64
  * Directory to spill overflow into. When absent the output is
63
65
  * middle-elided instead — degraded, but never unbounded.
@@ -1 +1 @@
1
- {"version":3,"file":"tool-output-budget.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/tool-output-budget.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,oCAAoC,CAAA;AA+D7D,MAAM,WAAW,sBAAsB;IACtC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,GAC7C,MAAM,GAAG,SAAS,CAapB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,GAAG,MAAM,CAQjF;AAED,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,sBAAsB,CAyBhG"}
1
+ {"version":3,"file":"tool-output-budget.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/tool-output-budget.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,oCAAoC,CAAA;AAsE7D,MAAM,WAAW,sBAAsB;IACtC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,GAC7C,MAAM,GAAG,SAAS,CAapB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,GAAG,MAAM,CAOjF;AAED,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,sBAAsB,CAoChG"}