@namzu/sdk 43.0.0 → 44.1.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 (2112) hide show
  1. package/CHANGELOG.md +520 -0
  2. package/README.md +41 -34
  3. package/dist/advisory/budget.js +3 -3
  4. package/dist/advisory/budget.js.map +1 -1
  5. package/dist/advisory/context.d.ts +5 -5
  6. package/dist/advisory/context.d.ts.map +1 -1
  7. package/dist/advisory/context.js +6 -6
  8. package/dist/advisory/context.js.map +1 -1
  9. package/dist/advisory/evaluator.js +2 -2
  10. package/dist/advisory/evaluator.js.map +1 -1
  11. package/dist/advisory/parse.d.ts +1 -1
  12. package/dist/advisory/parse.js +1 -1
  13. package/dist/agents/AbstractAgent.d.ts +47 -40
  14. package/dist/agents/AbstractAgent.d.ts.map +1 -1
  15. package/dist/agents/AbstractAgent.js +60 -46
  16. package/dist/agents/AbstractAgent.js.map +1 -1
  17. package/dist/agents/PipelineAgent.d.ts +7 -7
  18. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  19. package/dist/agents/PipelineAgent.js +75 -23
  20. package/dist/agents/PipelineAgent.js.map +1 -1
  21. package/dist/agents/ReactiveAgent.d.ts +7 -7
  22. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  23. package/dist/agents/ReactiveAgent.js +32 -25
  24. package/dist/agents/ReactiveAgent.js.map +1 -1
  25. package/dist/agents/RouterAgent.d.ts +7 -7
  26. package/dist/agents/RouterAgent.d.ts.map +1 -1
  27. package/dist/agents/RouterAgent.js +29 -32
  28. package/dist/agents/RouterAgent.js.map +1 -1
  29. package/dist/agents/SupervisorAgent.d.ts +13 -10
  30. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  31. package/dist/agents/SupervisorAgent.js +50 -36
  32. package/dist/agents/SupervisorAgent.js.map +1 -1
  33. package/dist/agents/budget.d.ts +17 -4
  34. package/dist/agents/budget.d.ts.map +1 -1
  35. package/dist/agents/budget.js +55 -14
  36. package/dist/agents/budget.js.map +1 -1
  37. package/dist/agents/defineAgent.d.ts +2 -2
  38. package/dist/agents/defineAgent.d.ts.map +1 -1
  39. package/dist/agents/defineAgent.js.map +1 -1
  40. package/dist/agents/handle.d.ts +12 -14
  41. package/dist/agents/handle.d.ts.map +1 -1
  42. package/dist/agents/handle.js +6 -6
  43. package/dist/agents/handle.js.map +1 -1
  44. package/dist/agents/lock.js +4 -4
  45. package/dist/agents/lock.js.map +1 -1
  46. package/dist/agents/runAgent.d.ts +42 -29
  47. package/dist/agents/runAgent.d.ts.map +1 -1
  48. package/dist/agents/runAgent.js +53 -14
  49. package/dist/agents/runAgent.js.map +1 -1
  50. package/dist/agents/storage.d.ts +21 -0
  51. package/dist/agents/storage.d.ts.map +1 -0
  52. package/dist/agents/storage.js +33 -0
  53. package/dist/agents/storage.js.map +1 -0
  54. package/dist/authorization/command-line.d.ts +1 -1
  55. package/dist/authorization/command-line.js +1 -1
  56. package/dist/authorization/gate.js +1 -1
  57. package/dist/authorization/gate.js.map +1 -1
  58. package/dist/authorization/permission-presets.d.ts +4 -4
  59. package/dist/authorization/permission-presets.d.ts.map +1 -1
  60. package/dist/authorization/permission-presets.js +2 -2
  61. package/dist/bridge/a2a/client.d.ts +1 -1
  62. package/dist/bridge/a2a/client.js +2 -2
  63. package/dist/bridge/a2a/client.js.map +1 -1
  64. package/dist/bridge/a2a/context.d.ts +26 -0
  65. package/dist/bridge/a2a/context.d.ts.map +1 -0
  66. package/dist/bridge/a2a/context.js +20 -0
  67. package/dist/bridge/a2a/context.js.map +1 -0
  68. package/dist/bridge/a2a/index.d.ts +4 -2
  69. package/dist/bridge/a2a/index.d.ts.map +1 -1
  70. package/dist/bridge/a2a/index.js +6 -2
  71. package/dist/bridge/a2a/index.js.map +1 -1
  72. package/dist/bridge/a2a/mapper.d.ts +12 -4
  73. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  74. package/dist/bridge/a2a/mapper.js +38 -31
  75. package/dist/bridge/a2a/mapper.js.map +1 -1
  76. package/dist/bridge/a2a/task.d.ts +39 -7
  77. package/dist/bridge/a2a/task.d.ts.map +1 -1
  78. package/dist/bridge/a2a/task.js +52 -31
  79. package/dist/bridge/a2a/task.js.map +1 -1
  80. package/dist/bridge/acp/permission.d.ts +2 -2
  81. package/dist/bridge/acp/server.d.ts +22 -8
  82. package/dist/bridge/acp/server.d.ts.map +1 -1
  83. package/dist/bridge/acp/server.js +18 -5
  84. package/dist/bridge/acp/server.js.map +1 -1
  85. package/dist/bridge/acp/update.d.ts +4 -4
  86. package/dist/bridge/acp/update.d.ts.map +1 -1
  87. package/dist/bridge/acp/update.js +6 -6
  88. package/dist/bridge/acp/update.js.map +1 -1
  89. package/dist/bridge/external-session.d.ts +43 -0
  90. package/dist/bridge/external-session.d.ts.map +1 -0
  91. package/dist/bridge/external-session.js +28 -0
  92. package/dist/bridge/external-session.js.map +1 -0
  93. package/dist/bridge/sse/index.d.ts +1 -1
  94. package/dist/bridge/sse/index.d.ts.map +1 -1
  95. package/dist/bridge/sse/index.js +1 -1
  96. package/dist/bridge/sse/index.js.map +1 -1
  97. package/dist/bridge/sse/mapper.d.ts +21 -13
  98. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  99. package/dist/bridge/sse/mapper.js +100 -129
  100. package/dist/bridge/sse/mapper.js.map +1 -1
  101. package/dist/bus/breaker.d.ts +6 -6
  102. package/dist/bus/breaker.d.ts.map +1 -1
  103. package/dist/bus/breaker.js +28 -27
  104. package/dist/bus/breaker.js.map +1 -1
  105. package/dist/bus/index.d.ts +2 -2
  106. package/dist/bus/index.d.ts.map +1 -1
  107. package/dist/bus/index.js +6 -6
  108. package/dist/bus/index.js.map +1 -1
  109. package/dist/bus/lock.d.ts +5 -5
  110. package/dist/bus/lock.d.ts.map +1 -1
  111. package/dist/bus/lock.js.map +1 -1
  112. package/dist/bus/ownership.d.ts +8 -8
  113. package/dist/bus/ownership.d.ts.map +1 -1
  114. package/dist/bus/ownership.js.map +1 -1
  115. package/dist/compaction/consolidation.d.ts +23 -11
  116. package/dist/compaction/consolidation.d.ts.map +1 -1
  117. package/dist/compaction/consolidation.js +43 -13
  118. package/dist/compaction/consolidation.js.map +1 -1
  119. package/dist/compaction/context-window.d.ts +4 -4
  120. package/dist/compaction/context-window.js +4 -4
  121. package/dist/compaction/index.d.ts +1 -1
  122. package/dist/compaction/index.d.ts.map +1 -1
  123. package/dist/compaction/index.js +2 -2
  124. package/dist/compaction/index.js.map +1 -1
  125. package/dist/compaction/manager.d.ts +4 -4
  126. package/dist/compaction/manager.js +4 -4
  127. package/dist/compaction/manual.d.ts +2 -2
  128. package/dist/compaction/manual.js +3 -3
  129. package/dist/compaction/manual.js.map +1 -1
  130. package/dist/compaction/plan.d.ts +5 -5
  131. package/dist/compaction/plan.js +4 -4
  132. package/dist/compaction/plan.js.map +1 -1
  133. package/dist/compaction/reducer.d.ts +8 -8
  134. package/dist/compaction/reducer.d.ts.map +1 -1
  135. package/dist/compaction/retention.js +2 -2
  136. package/dist/compaction/salience/bm25.d.ts +2 -2
  137. package/dist/compaction/salience/bm25.js +2 -2
  138. package/dist/compaction/salience/goal.d.ts +3 -3
  139. package/dist/compaction/salience/goal.js +3 -3
  140. package/dist/compaction/salience/minhash.d.ts +1 -1
  141. package/dist/compaction/salience/minhash.js +1 -1
  142. package/dist/compaction/salience/score.d.ts +2 -2
  143. package/dist/compaction/salience/score.js +3 -3
  144. package/dist/compaction/salience/score.js.map +1 -1
  145. package/dist/compaction/salience/tokenize.d.ts +1 -1
  146. package/dist/compaction/salience/tokenize.js +1 -1
  147. package/dist/compaction/verifier.d.ts +6 -6
  148. package/dist/compaction/verifier.js +5 -5
  149. package/dist/compaction/verifier.js.map +1 -1
  150. package/dist/compaction/wire.d.ts +1 -1
  151. package/dist/config/registry.d.ts +4 -4
  152. package/dist/config/registry.js +2 -2
  153. package/dist/config/runtime.d.ts +24 -24
  154. package/dist/config/runtime.js +3 -3
  155. package/dist/connector/http-operation.d.ts +1 -1
  156. package/dist/connector/http-operation.js +1 -1
  157. package/dist/connector/mcp/adapter.js +1 -1
  158. package/dist/connector/mcp/client.d.ts +1 -1
  159. package/dist/connector/mcp/client.js +1 -1
  160. package/dist/connector/mcp/discovery.d.ts +1 -1
  161. package/dist/connector/mcp/discovery.js +1 -1
  162. package/dist/connector/mcp/discovery.js.map +1 -1
  163. package/dist/connector/mcp/policy.d.ts +1 -1
  164. package/dist/connector/mcp/prompt-adapter.d.ts +1 -1
  165. package/dist/connector/mcp/prompt-adapter.js +3 -3
  166. package/dist/connector/mcp/prompt-adapter.js.map +1 -1
  167. package/dist/constants/a2a/index.d.ts +8 -2
  168. package/dist/constants/a2a/index.d.ts.map +1 -1
  169. package/dist/constants/a2a/index.js +9 -2
  170. package/dist/constants/a2a/index.js.map +1 -1
  171. package/dist/constants/continuation.d.ts +1 -1
  172. package/dist/constants/continuation.js +1 -1
  173. package/dist/constants/index.d.ts +0 -1
  174. package/dist/constants/index.d.ts.map +1 -1
  175. package/dist/constants/index.js +0 -1
  176. package/dist/constants/index.js.map +1 -1
  177. package/dist/constants/limits.d.ts +2 -2
  178. package/dist/constants/limits.js +2 -2
  179. package/dist/constants/telemetry/index.d.ts +9 -3
  180. package/dist/constants/telemetry/index.d.ts.map +1 -1
  181. package/dist/constants/telemetry/index.js +14 -12
  182. package/dist/constants/telemetry/index.js.map +1 -1
  183. package/dist/constants/tools/index.d.ts +2 -2
  184. package/dist/constants/tools/index.js +2 -2
  185. package/dist/contracts/a2a.d.ts +2 -2
  186. package/dist/contracts/api.d.ts +11 -126
  187. package/dist/contracts/api.d.ts.map +1 -1
  188. package/dist/contracts/index.d.ts +3 -2
  189. package/dist/contracts/index.d.ts.map +1 -1
  190. package/dist/contracts/index.js +7 -2
  191. package/dist/contracts/index.js.map +1 -1
  192. package/dist/contracts/schemas.d.ts +6 -165
  193. package/dist/contracts/schemas.d.ts.map +1 -1
  194. package/dist/contracts/schemas.js +6 -36
  195. package/dist/contracts/schemas.js.map +1 -1
  196. package/dist/contracts/session/api.d.ts +94 -0
  197. package/dist/contracts/session/api.d.ts.map +1 -0
  198. package/dist/contracts/session/api.js +10 -0
  199. package/dist/contracts/session/api.js.map +1 -0
  200. package/dist/contracts/session/index.d.ts +7 -0
  201. package/dist/contracts/session/index.d.ts.map +1 -0
  202. package/dist/contracts/session/index.js +7 -0
  203. package/dist/contracts/session/index.js.map +1 -0
  204. package/dist/contracts/session/schemas.d.ts +173 -0
  205. package/dist/contracts/session/schemas.d.ts.map +1 -0
  206. package/dist/contracts/session/schemas.js +52 -0
  207. package/dist/contracts/session/schemas.js.map +1 -0
  208. package/dist/contracts/session/turn-status.d.ts +45 -0
  209. package/dist/contracts/session/turn-status.d.ts.map +1 -0
  210. package/dist/contracts/session/turn-status.js +46 -0
  211. package/dist/contracts/session/turn-status.js.map +1 -0
  212. package/dist/contracts/session/turn.d.ts +64 -0
  213. package/dist/contracts/session/turn.d.ts.map +1 -0
  214. package/dist/contracts/session/turn.js +2 -0
  215. package/dist/contracts/session/turn.js.map +1 -0
  216. package/dist/directory/derive-supervisor.d.ts +1 -1
  217. package/dist/directory/derive-supervisor.js +2 -2
  218. package/dist/directory/derive-supervisor.js.map +1 -1
  219. package/dist/directory/derive.d.ts +2 -2
  220. package/dist/directory/derive.d.ts.map +1 -1
  221. package/dist/directory/derive.js +2 -2
  222. package/dist/directory/derive.js.map +1 -1
  223. package/dist/directory/index.d.ts +2 -2
  224. package/dist/directory/index.d.ts.map +1 -1
  225. package/dist/directory/index.js +1 -1
  226. package/dist/directory/index.js.map +1 -1
  227. package/dist/directory/load.js +2 -2
  228. package/dist/directory/load.js.map +1 -1
  229. package/dist/directory/types.d.ts +2 -2
  230. package/dist/directory/types.d.ts.map +1 -1
  231. package/dist/eval/experiment.d.ts +5 -5
  232. package/dist/eval/experiment.d.ts.map +1 -1
  233. package/dist/eval/experiment.js +18 -18
  234. package/dist/eval/experiment.js.map +1 -1
  235. package/dist/eval/from-turn.d.ts +30 -0
  236. package/dist/eval/from-turn.d.ts.map +1 -0
  237. package/dist/eval/from-turn.js +46 -0
  238. package/dist/eval/from-turn.js.map +1 -0
  239. package/dist/eval/harness-verification.js +7 -7
  240. package/dist/eval/harness-verification.js.map +1 -1
  241. package/dist/eval/index.d.ts +2 -2
  242. package/dist/eval/index.d.ts.map +1 -1
  243. package/dist/eval/index.js +1 -1
  244. package/dist/eval/index.js.map +1 -1
  245. package/dist/eval/judge.d.ts +3 -3
  246. package/dist/eval/judge.d.ts.map +1 -1
  247. package/dist/eval/judge.js +6 -6
  248. package/dist/eval/judge.js.map +1 -1
  249. package/dist/eval/scorers.d.ts +8 -8
  250. package/dist/eval/scorers.d.ts.map +1 -1
  251. package/dist/eval/scorers.js +21 -21
  252. package/dist/eval/scorers.js.map +1 -1
  253. package/dist/eval/types.d.ts +12 -12
  254. package/dist/eval/types.d.ts.map +1 -1
  255. package/dist/eval/uncertainty.d.ts +2 -2
  256. package/dist/eval/uncertainty.js +2 -2
  257. package/dist/execution/code-runtime/types.d.ts +4 -4
  258. package/dist/execution/code-runtime/types.js +2 -2
  259. package/dist/execution/code-runtime/worker.d.ts +1 -1
  260. package/dist/execution/code-runtime/worker.js +1 -1
  261. package/dist/invariants/index.d.ts +1 -1
  262. package/dist/manager/agent/child-session.d.ts +49 -0
  263. package/dist/manager/agent/child-session.d.ts.map +1 -0
  264. package/dist/manager/agent/child-session.js +94 -0
  265. package/dist/manager/agent/child-session.js.map +1 -0
  266. package/dist/manager/agent/lifecycle.d.ts +90 -13
  267. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  268. package/dist/manager/agent/lifecycle.js +332 -88
  269. package/dist/manager/agent/lifecycle.js.map +1 -1
  270. package/dist/manager/index.d.ts +1 -2
  271. package/dist/manager/index.d.ts.map +1 -1
  272. package/dist/manager/index.js +1 -2
  273. package/dist/manager/index.js.map +1 -1
  274. package/dist/manager/plan/lifecycle.d.ts +11 -7
  275. package/dist/manager/plan/lifecycle.d.ts.map +1 -1
  276. package/dist/manager/plan/lifecycle.js +12 -9
  277. package/dist/manager/plan/lifecycle.js.map +1 -1
  278. package/dist/manager/resident/consumption.d.ts +12 -6
  279. package/dist/manager/resident/consumption.d.ts.map +1 -1
  280. package/dist/manager/resident/consumption.js +7 -5
  281. package/dist/manager/resident/consumption.js.map +1 -1
  282. package/dist/manager/resident/evidence-recall.d.ts +5 -5
  283. package/dist/manager/resident/evidence-recall.d.ts.map +1 -1
  284. package/dist/manager/resident/evidence-recall.js +9 -9
  285. package/dist/manager/resident/evidence-recall.js.map +1 -1
  286. package/dist/manager/resident/host.d.ts +2 -2
  287. package/dist/manager/resident/host.d.ts.map +1 -1
  288. package/dist/manager/resident/host.js +1 -1
  289. package/dist/manager/resident/learning-cycle.d.ts +8 -4
  290. package/dist/manager/resident/learning-cycle.d.ts.map +1 -1
  291. package/dist/manager/resident/learning-cycle.js +4 -2
  292. package/dist/manager/resident/learning-cycle.js.map +1 -1
  293. package/dist/manager/resident/learning-observation.d.ts +12 -7
  294. package/dist/manager/resident/learning-observation.d.ts.map +1 -1
  295. package/dist/manager/resident/learning-observation.js +8 -4
  296. package/dist/manager/resident/learning-observation.js.map +1 -1
  297. package/dist/manager/resident/learning-store.d.ts +13 -0
  298. package/dist/manager/resident/learning-store.d.ts.map +1 -1
  299. package/dist/manager/resident/learning-store.js +35 -16
  300. package/dist/manager/resident/learning-store.js.map +1 -1
  301. package/dist/manager/resident/learning.d.ts +14 -14
  302. package/dist/manager/resident/outbox.d.ts +4 -4
  303. package/dist/manager/resident/store.d.ts +8 -8
  304. package/dist/manager/resident/tool-evidence.d.ts +15 -10
  305. package/dist/manager/resident/tool-evidence.d.ts.map +1 -1
  306. package/dist/manager/resident/tool-evidence.js +14 -14
  307. package/dist/manager/resident/tool-evidence.js.map +1 -1
  308. package/dist/manager/session/turn-recorder.d.ts +261 -0
  309. package/dist/manager/session/turn-recorder.d.ts.map +1 -0
  310. package/dist/manager/session/turn-recorder.js +1115 -0
  311. package/dist/manager/session/turn-recorder.js.map +1 -0
  312. package/dist/plugin/lifecycle.d.ts +4 -4
  313. package/dist/plugin/lifecycle.d.ts.map +1 -1
  314. package/dist/plugin/lifecycle.js +17 -10
  315. package/dist/plugin/lifecycle.js.map +1 -1
  316. package/dist/plugin/shell-hook.d.ts +35 -12
  317. package/dist/plugin/shell-hook.d.ts.map +1 -1
  318. package/dist/plugin/shell-hook.js +52 -20
  319. package/dist/plugin/shell-hook.js.map +1 -1
  320. package/dist/pricing/index.d.ts +4 -4
  321. package/dist/pricing/index.js +5 -5
  322. package/dist/pricing/index.js.map +1 -1
  323. package/dist/probe/context.d.ts +3 -2
  324. package/dist/probe/context.d.ts.map +1 -1
  325. package/dist/probe/context.js +2 -1
  326. package/dist/probe/context.js.map +1 -1
  327. package/dist/probe/registry.js +1 -1
  328. package/dist/probe/registry.js.map +1 -1
  329. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  330. package/dist/prompt/coding-agent-doctrine.js +1 -1
  331. package/dist/prompt/contributions.d.ts +27 -6
  332. package/dist/prompt/contributions.d.ts.map +1 -1
  333. package/dist/prompt/contributions.js +1 -1
  334. package/dist/prompt/contributions.js.map +1 -1
  335. package/dist/prompt/resident-learning.js +2 -2
  336. package/dist/prompt/resident-learning.js.map +1 -1
  337. package/dist/provider/collect-chat-completion.d.ts +2 -2
  338. package/dist/provider/collect-chat-completion.js +3 -3
  339. package/dist/provider/collect-chat-completion.js.map +1 -1
  340. package/dist/provider/conformance.d.ts +8 -1
  341. package/dist/provider/conformance.d.ts.map +1 -1
  342. package/dist/provider/conformance.js.map +1 -1
  343. package/dist/provider/errors.d.ts +1 -1
  344. package/dist/provider/errors.js +2 -2
  345. package/dist/provider/fallback.d.ts +4 -4
  346. package/dist/provider/fallback.js +6 -6
  347. package/dist/provider/fallback.js.map +1 -1
  348. package/dist/provider/idle-timeout.d.ts +2 -2
  349. package/dist/provider/idle-timeout.d.ts.map +1 -1
  350. package/dist/provider/idle-timeout.js +3 -3
  351. package/dist/provider/idle-timeout.js.map +1 -1
  352. package/dist/provider/instrumentation.d.ts +5 -2
  353. package/dist/provider/instrumentation.d.ts.map +1 -1
  354. package/dist/provider/instrumentation.js +9 -5
  355. package/dist/provider/instrumentation.js.map +1 -1
  356. package/dist/provider/mock.d.ts +1 -1
  357. package/dist/provider/mock.js +1 -1
  358. package/dist/provider/retry.d.ts +2 -2
  359. package/dist/provider/retry.js +6 -6
  360. package/dist/provider/retry.js.map +1 -1
  361. package/dist/provider/stream-text.d.ts +1 -1
  362. package/dist/provider/stream-text.d.ts.map +1 -1
  363. package/dist/provider/stream-text.js +1 -1
  364. package/dist/provider/stream-text.js.map +1 -1
  365. package/dist/provider/thinking-support.js +2 -2
  366. package/dist/provider/thinking-support.js.map +1 -1
  367. package/dist/provider/token-budget.d.ts +2 -2
  368. package/dist/provider/token-budget.d.ts.map +1 -1
  369. package/dist/provider/token-budget.js.map +1 -1
  370. package/dist/public-runtime.d.ts +69 -55
  371. package/dist/public-runtime.d.ts.map +1 -1
  372. package/dist/public-runtime.js +104 -99
  373. package/dist/public-runtime.js.map +1 -1
  374. package/dist/public-tools.d.ts +2 -2
  375. package/dist/public-tools.d.ts.map +1 -1
  376. package/dist/public-tools.js +7 -7
  377. package/dist/public-tools.js.map +1 -1
  378. package/dist/public-types.d.ts +18 -16
  379. package/dist/public-types.d.ts.map +1 -1
  380. package/dist/rag/embedding.js +1 -1
  381. package/dist/rag/embedding.js.map +1 -1
  382. package/dist/read-model/index.d.ts +2 -2
  383. package/dist/read-model/index.d.ts.map +1 -1
  384. package/dist/read-model/index.js +1 -1
  385. package/dist/read-model/index.js.map +1 -1
  386. package/dist/read-model/registry.d.ts +11 -11
  387. package/dist/read-model/registry.d.ts.map +1 -1
  388. package/dist/read-model/registry.js +2 -2
  389. package/dist/read-model/registry.js.map +1 -1
  390. package/dist/read-model/session-status.d.ts +34 -0
  391. package/dist/read-model/session-status.d.ts.map +1 -0
  392. package/dist/read-model/session-status.js +58 -0
  393. package/dist/read-model/session-status.js.map +1 -0
  394. package/dist/registry/command/kernel-commands.d.ts +4 -4
  395. package/dist/registry/command/kernel-commands.d.ts.map +1 -1
  396. package/dist/registry/command/kernel-commands.js +6 -6
  397. package/dist/registry/command/kernel-commands.js.map +1 -1
  398. package/dist/registry/tool/dialect.js +1 -1
  399. package/dist/registry/tool/execute.d.ts +2 -2
  400. package/dist/registry/tool/execute.d.ts.map +1 -1
  401. package/dist/registry/tool/execute.js +19 -7
  402. package/dist/registry/tool/execute.js.map +1 -1
  403. package/dist/registry/tool/portable.d.ts +1 -1
  404. package/dist/registry/tool/portable.js +1 -1
  405. package/dist/registry/tool/presentation.d.ts +1 -1
  406. package/dist/registry/tool/presentation.js +1 -1
  407. package/dist/registry/tool/schema.js +1 -1
  408. package/dist/registry/tool/screen.js +3 -3
  409. package/dist/registry/tool/screen.js.map +1 -1
  410. package/dist/runtime/bidi/index.d.ts +2 -2
  411. package/dist/runtime/bidi/index.d.ts.map +1 -1
  412. package/dist/runtime/bidi/index.js +1 -1
  413. package/dist/runtime/bidi/index.js.map +1 -1
  414. package/dist/runtime/bidi/session.d.ts +14 -11
  415. package/dist/runtime/bidi/session.d.ts.map +1 -1
  416. package/dist/runtime/bidi/session.js +27 -21
  417. package/dist/runtime/bidi/session.js.map +1 -1
  418. package/dist/runtime/jobs/awaited-jobs.d.ts +15 -15
  419. package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -1
  420. package/dist/runtime/jobs/awaited-jobs.js +13 -13
  421. package/dist/runtime/jobs/awaited-jobs.js.map +1 -1
  422. package/dist/runtime/jobs/registry.d.ts +10 -10
  423. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  424. package/dist/runtime/jobs/registry.js +5 -5
  425. package/dist/runtime/jobs/registry.js.map +1 -1
  426. package/dist/runtime/query/abandon-turn.d.ts +35 -0
  427. package/dist/runtime/query/abandon-turn.d.ts.map +1 -0
  428. package/dist/runtime/query/abandon-turn.js +81 -0
  429. package/dist/runtime/query/abandon-turn.js.map +1 -0
  430. package/dist/runtime/query/approval-policy.d.ts +10 -10
  431. package/dist/runtime/query/approval-policy.d.ts.map +1 -1
  432. package/dist/runtime/query/approval-policy.js +5 -5
  433. package/dist/runtime/query/approval-policy.js.map +1 -1
  434. package/dist/runtime/query/callback-inference.d.ts +1 -1
  435. package/dist/runtime/query/callback-inference.d.ts.map +1 -1
  436. package/dist/runtime/query/callback-inference.js +4 -4
  437. package/dist/runtime/query/callback-inference.js.map +1 -1
  438. package/dist/runtime/query/cancelled-before-start.d.ts +20 -20
  439. package/dist/runtime/query/cancelled-before-start.d.ts.map +1 -1
  440. package/dist/runtime/query/cancelled-before-start.js +72 -55
  441. package/dist/runtime/query/cancelled-before-start.js.map +1 -1
  442. package/dist/runtime/query/checkpoint.d.ts +153 -220
  443. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  444. package/dist/runtime/query/checkpoint.js +399 -370
  445. package/dist/runtime/query/checkpoint.js.map +1 -1
  446. package/dist/runtime/query/compact-session.d.ts +20 -0
  447. package/dist/runtime/query/compact-session.d.ts.map +1 -0
  448. package/dist/runtime/query/compact-session.js +81 -0
  449. package/dist/runtime/query/compact-session.js.map +1 -0
  450. package/dist/runtime/query/context.d.ts +42 -85
  451. package/dist/runtime/query/context.d.ts.map +1 -1
  452. package/dist/runtime/query/context.js +36 -75
  453. package/dist/runtime/query/context.js.map +1 -1
  454. package/dist/runtime/query/events.d.ts +54 -26
  455. package/dist/runtime/query/events.d.ts.map +1 -1
  456. package/dist/runtime/query/events.js +122 -114
  457. package/dist/runtime/query/events.js.map +1 -1
  458. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  459. package/dist/runtime/query/executor/tool-call-admission.js +6 -5
  460. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  461. package/dist/runtime/query/executor.d.ts +56 -34
  462. package/dist/runtime/query/executor.d.ts.map +1 -1
  463. package/dist/runtime/query/executor.js +165 -85
  464. package/dist/runtime/query/executor.js.map +1 -1
  465. package/dist/runtime/query/file-evidence-seed.d.ts +1 -1
  466. package/dist/runtime/query/file-evidence-seed.d.ts.map +1 -1
  467. package/dist/runtime/query/file-evidence-seed.js +1 -1
  468. package/dist/runtime/query/finalize-turn.d.ts +55 -0
  469. package/dist/runtime/query/finalize-turn.d.ts.map +1 -0
  470. package/dist/runtime/query/finalize-turn.js +129 -0
  471. package/dist/runtime/query/finalize-turn.js.map +1 -0
  472. package/dist/runtime/query/fork/list.d.ts +15 -0
  473. package/dist/runtime/query/fork/list.d.ts.map +1 -0
  474. package/dist/runtime/query/fork/list.js +11 -0
  475. package/dist/runtime/query/fork/list.js.map +1 -0
  476. package/dist/runtime/query/fork/mutate.d.ts +17 -0
  477. package/dist/runtime/query/fork/mutate.d.ts.map +1 -0
  478. package/dist/runtime/query/fork/mutate.js +69 -0
  479. package/dist/runtime/query/fork/mutate.js.map +1 -0
  480. package/dist/runtime/query/fork/prepare.d.ts +52 -0
  481. package/dist/runtime/query/fork/prepare.d.ts.map +1 -0
  482. package/dist/runtime/query/fork/prepare.js +43 -0
  483. package/dist/runtime/query/fork/prepare.js.map +1 -0
  484. package/dist/runtime/query/guard.d.ts +16 -16
  485. package/dist/runtime/query/guard.d.ts.map +1 -1
  486. package/dist/runtime/query/guard.js +16 -16
  487. package/dist/runtime/query/guard.js.map +1 -1
  488. package/dist/runtime/query/guardrail-presets.d.ts +10 -10
  489. package/dist/runtime/query/guardrail-presets.js +12 -12
  490. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  491. package/dist/runtime/query/guardrails.d.ts +4 -4
  492. package/dist/runtime/query/guardrails.js +11 -11
  493. package/dist/runtime/query/guardrails.js.map +1 -1
  494. package/dist/runtime/query/index.d.ts +193 -155
  495. package/dist/runtime/query/index.d.ts.map +1 -1
  496. package/dist/runtime/query/index.js +1295 -1260
  497. package/dist/runtime/query/index.js.map +1 -1
  498. package/dist/runtime/query/iteration/index.d.ts +16 -16
  499. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  500. package/dist/runtime/query/iteration/index.js +285 -243
  501. package/dist/runtime/query/iteration/index.js.map +1 -1
  502. package/dist/runtime/query/iteration/outstanding-work.d.ts +22 -22
  503. package/dist/runtime/query/iteration/outstanding-work.d.ts.map +1 -1
  504. package/dist/runtime/query/iteration/outstanding-work.js +63 -63
  505. package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
  506. package/dist/runtime/query/iteration/phases/advisory.js +16 -16
  507. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  508. package/dist/runtime/query/iteration/phases/checkpoint.d.ts +2 -2
  509. package/dist/runtime/query/iteration/phases/checkpoint.d.ts.map +1 -1
  510. package/dist/runtime/query/iteration/phases/checkpoint.js +25 -8
  511. package/dist/runtime/query/iteration/phases/checkpoint.js.map +1 -1
  512. package/dist/runtime/query/iteration/phases/compaction.d.ts +2 -2
  513. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  514. package/dist/runtime/query/iteration/phases/compaction.js +74 -72
  515. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  516. package/dist/runtime/query/iteration/phases/context.d.ts +34 -29
  517. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  518. package/dist/runtime/query/iteration/phases/context.js +29 -29
  519. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  520. package/dist/runtime/query/iteration/phases/plan.d.ts +2 -2
  521. package/dist/runtime/query/iteration/phases/plan.d.ts.map +1 -1
  522. package/dist/runtime/query/iteration/phases/plan.js +5 -4
  523. package/dist/runtime/query/iteration/phases/plan.js.map +1 -1
  524. package/dist/runtime/query/iteration/phases/tool-review.d.ts +2 -2
  525. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  526. package/dist/runtime/query/iteration/phases/tool-review.js +140 -25
  527. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  528. package/dist/runtime/query/iteration/phases/working-memory.d.ts +27 -3
  529. package/dist/runtime/query/iteration/phases/working-memory.d.ts.map +1 -1
  530. package/dist/runtime/query/iteration/phases/working-memory.js +54 -20
  531. package/dist/runtime/query/iteration/phases/working-memory.js.map +1 -1
  532. package/dist/runtime/query/iteration/step-context.d.ts +11 -0
  533. package/dist/runtime/query/iteration/step-context.d.ts.map +1 -0
  534. package/dist/runtime/query/iteration/step-context.js +14 -0
  535. package/dist/runtime/query/iteration/step-context.js.map +1 -0
  536. package/dist/runtime/query/iteration/step-shaping.d.ts +4 -3
  537. package/dist/runtime/query/iteration/step-shaping.d.ts.map +1 -1
  538. package/dist/runtime/query/iteration/step-shaping.js +20 -19
  539. package/dist/runtime/query/iteration/step-shaping.js.map +1 -1
  540. package/dist/runtime/query/iteration/stream-turn.d.ts +5 -3
  541. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  542. package/dist/runtime/query/iteration/stream-turn.js +32 -28
  543. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  544. package/dist/runtime/query/plugin-hooks.js +1 -1
  545. package/dist/runtime/query/plugin-hooks.js.map +1 -1
  546. package/dist/runtime/query/prepare-turn.d.ts +105 -0
  547. package/dist/runtime/query/prepare-turn.d.ts.map +1 -0
  548. package/dist/runtime/query/prepare-turn.js +779 -0
  549. package/dist/runtime/query/prepare-turn.js.map +1 -0
  550. package/dist/runtime/query/project-instructions.d.ts +5 -4
  551. package/dist/runtime/query/project-instructions.d.ts.map +1 -1
  552. package/dist/runtime/query/project-instructions.js.map +1 -1
  553. package/dist/runtime/query/prompt-cache.js +1 -1
  554. package/dist/runtime/query/prompt-cache.js.map +1 -1
  555. package/dist/runtime/query/prompt.d.ts +3 -3
  556. package/dist/runtime/query/prompt.d.ts.map +1 -1
  557. package/dist/runtime/query/prompt.js +3 -3
  558. package/dist/runtime/query/prompt.js.map +1 -1
  559. package/dist/runtime/query/question-park.d.ts +7 -7
  560. package/dist/runtime/query/question-park.d.ts.map +1 -1
  561. package/dist/runtime/query/question-park.js +5 -5
  562. package/dist/runtime/query/question-park.js.map +1 -1
  563. package/dist/runtime/query/release-turn.d.ts +53 -0
  564. package/dist/runtime/query/release-turn.d.ts.map +1 -0
  565. package/dist/runtime/query/release-turn.js +95 -0
  566. package/dist/runtime/query/release-turn.js.map +1 -0
  567. package/dist/runtime/query/repeat-call.d.ts +2 -2
  568. package/dist/runtime/query/repeat-call.js +7 -7
  569. package/dist/runtime/query/repeat-call.js.map +1 -1
  570. package/dist/runtime/query/result.d.ts +25 -17
  571. package/dist/runtime/query/result.d.ts.map +1 -1
  572. package/dist/runtime/query/result.js +110 -115
  573. package/dist/runtime/query/result.js.map +1 -1
  574. package/dist/runtime/query/resume-pending.d.ts +34 -17
  575. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  576. package/dist/runtime/query/resume-pending.js +70 -30
  577. package/dist/runtime/query/resume-pending.js.map +1 -1
  578. package/dist/runtime/query/resume-session.d.ts +65 -0
  579. package/dist/runtime/query/resume-session.d.ts.map +1 -0
  580. package/dist/runtime/query/resume-session.js +88 -0
  581. package/dist/runtime/query/resume-session.js.map +1 -0
  582. package/dist/runtime/query/review-policy.d.ts +57 -16
  583. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  584. package/dist/runtime/query/review-policy.js +115 -11
  585. package/dist/runtime/query/review-policy.js.map +1 -1
  586. package/dist/runtime/query/sandbox-lifecycle.d.ts +5 -5
  587. package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
  588. package/dist/runtime/query/sandbox-lifecycle.js +4 -4
  589. package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
  590. package/dist/runtime/query/session-storage.d.ts +75 -0
  591. package/dist/runtime/query/session-storage.d.ts.map +1 -0
  592. package/dist/runtime/query/session-storage.js +236 -0
  593. package/dist/runtime/query/session-storage.js.map +1 -0
  594. package/dist/runtime/query/steering.d.ts +9 -3
  595. package/dist/runtime/query/steering.d.ts.map +1 -1
  596. package/dist/runtime/query/steering.js +12 -2
  597. package/dist/runtime/query/steering.js.map +1 -1
  598. package/dist/runtime/query/token-budget.d.ts +19 -5
  599. package/dist/runtime/query/token-budget.d.ts.map +1 -1
  600. package/dist/runtime/query/token-budget.js +43 -74
  601. package/dist/runtime/query/token-budget.js.map +1 -1
  602. package/dist/runtime/query/tool-call-budget.d.ts +6 -5
  603. package/dist/runtime/query/tool-call-budget.d.ts.map +1 -1
  604. package/dist/runtime/query/tool-call-budget.js +10 -12
  605. package/dist/runtime/query/tool-call-budget.js.map +1 -1
  606. package/dist/runtime/query/tool-executions.d.ts +26 -0
  607. package/dist/runtime/query/tool-executions.d.ts.map +1 -0
  608. package/dist/runtime/query/tool-executions.js +66 -0
  609. package/dist/runtime/query/tool-executions.js.map +1 -0
  610. package/dist/runtime/query/tool-grants.d.ts +3 -3
  611. package/dist/runtime/query/tool-grants.js +3 -3
  612. package/dist/runtime/query/tool-output-budget.d.ts +2 -2
  613. package/dist/runtime/query/tool-output-budget.js +4 -4
  614. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  615. package/dist/runtime/query/tool-pause.d.ts +4 -3
  616. package/dist/runtime/query/tool-pause.d.ts.map +1 -1
  617. package/dist/runtime/query/tool-pause.js +5 -4
  618. package/dist/runtime/query/tool-pause.js.map +1 -1
  619. package/dist/runtime/query/tooling.d.ts +15 -10
  620. package/dist/runtime/query/tooling.d.ts.map +1 -1
  621. package/dist/runtime/query/tooling.js +7 -4
  622. package/dist/runtime/query/tooling.js.map +1 -1
  623. package/dist/runtime/query/turn-state.d.ts +56 -0
  624. package/dist/runtime/query/turn-state.d.ts.map +1 -0
  625. package/dist/runtime/query/turn-state.js +99 -0
  626. package/dist/runtime/query/turn-state.js.map +1 -0
  627. package/dist/sandbox/isolation.d.ts +1 -1
  628. package/dist/sandbox/isolation.js +2 -2
  629. package/dist/sandbox/isolation.js.map +1 -1
  630. package/dist/sandbox/provider/local.d.ts +2 -2
  631. package/dist/sandbox/provider/local.js +7 -7
  632. package/dist/sandbox/provider/local.js.map +1 -1
  633. package/dist/scheduler/completion-inbox.d.ts +21 -21
  634. package/dist/scheduler/completion-inbox.js +36 -36
  635. package/dist/scheduler/completion-inbox.js.map +1 -1
  636. package/dist/scheduler/delegating.d.ts +6 -3
  637. package/dist/scheduler/delegating.d.ts.map +1 -1
  638. package/dist/scheduler/delegating.js +15 -8
  639. package/dist/scheduler/delegating.js.map +1 -1
  640. package/dist/scheduler/local.d.ts +10 -8
  641. package/dist/scheduler/local.d.ts.map +1 -1
  642. package/dist/scheduler/local.js +37 -11
  643. package/dist/scheduler/local.js.map +1 -1
  644. package/dist/session/events/index.d.ts +3 -3
  645. package/dist/session/events/index.d.ts.map +1 -1
  646. package/dist/session/events/index.js +4 -8
  647. package/dist/session/events/index.js.map +1 -1
  648. package/dist/session/handoff/broadcast.d.ts +3 -3
  649. package/dist/session/handoff/broadcast.d.ts.map +1 -1
  650. package/dist/session/handoff/broadcast.js +4 -4
  651. package/dist/session/handoff/broadcast.js.map +1 -1
  652. package/dist/session/handoff/events.d.ts +1 -1
  653. package/dist/session/handoff/events.js +1 -1
  654. package/dist/session/handoff/index.d.ts +1 -1
  655. package/dist/session/handoff/index.d.ts.map +1 -1
  656. package/dist/session/handoff/single.d.ts +12 -12
  657. package/dist/session/handoff/single.d.ts.map +1 -1
  658. package/dist/session/handoff/single.js +9 -9
  659. package/dist/session/handoff/single.js.map +1 -1
  660. package/dist/session/handoff/version.d.ts +7 -7
  661. package/dist/session/handoff/version.d.ts.map +1 -1
  662. package/dist/session/handoff/version.js +2 -2
  663. package/dist/session/handoff/version.js.map +1 -1
  664. package/dist/session/home.d.ts +23 -0
  665. package/dist/session/home.d.ts.map +1 -0
  666. package/dist/session/home.js +45 -0
  667. package/dist/session/home.js.map +1 -0
  668. package/dist/session/index.d.ts +1 -0
  669. package/dist/session/index.d.ts.map +1 -1
  670. package/dist/session/index.js +1 -0
  671. package/dist/session/index.js.map +1 -1
  672. package/dist/session/log-hash.d.ts +25 -0
  673. package/dist/session/log-hash.d.ts.map +1 -0
  674. package/dist/session/log-hash.js +82 -0
  675. package/dist/session/log-hash.js.map +1 -0
  676. package/dist/session/messages.d.ts +11 -0
  677. package/dist/session/messages.d.ts.map +1 -0
  678. package/dist/session/messages.js +32 -0
  679. package/dist/session/messages.js.map +1 -0
  680. package/dist/session/paths.d.ts +168 -0
  681. package/dist/session/paths.d.ts.map +1 -0
  682. package/dist/session/paths.js +338 -0
  683. package/dist/session/paths.js.map +1 -0
  684. package/dist/session/retention/archive.d.ts +8 -1
  685. package/dist/session/retention/archive.d.ts.map +1 -1
  686. package/dist/session/retention/archive.js +3 -5
  687. package/dist/session/retention/archive.js.map +1 -1
  688. package/dist/session/status/derive.d.ts +13 -13
  689. package/dist/session/status/derive.d.ts.map +1 -1
  690. package/dist/session/status/derive.js +20 -20
  691. package/dist/session/status/derive.js.map +1 -1
  692. package/dist/session/workspace/git-worktree.d.ts +8 -1
  693. package/dist/session/workspace/git-worktree.d.ts.map +1 -1
  694. package/dist/session/workspace/git-worktree.js +29 -1
  695. package/dist/session/workspace/git-worktree.js.map +1 -1
  696. package/dist/session/workspace/index.d.ts +2 -4
  697. package/dist/session/workspace/index.d.ts.map +1 -1
  698. package/dist/session/workspace/index.js +2 -3
  699. package/dist/session/workspace/index.js.map +1 -1
  700. package/dist/session/workspace/shared-session.d.ts +112 -0
  701. package/dist/session/workspace/shared-session.d.ts.map +1 -0
  702. package/dist/session/workspace/shared-session.js +290 -0
  703. package/dist/session/workspace/shared-session.js.map +1 -0
  704. package/dist/session-query/index.d.ts +67 -0
  705. package/dist/session-query/index.d.ts.map +1 -0
  706. package/dist/session-query/index.js +100 -0
  707. package/dist/session-query/index.js.map +1 -0
  708. package/dist/skills/registry.d.ts +1 -1
  709. package/dist/skills/registry.js +1 -1
  710. package/dist/store/activity/memory.d.ts +3 -3
  711. package/dist/store/activity/memory.d.ts.map +1 -1
  712. package/dist/store/activity/memory.js +4 -4
  713. package/dist/store/activity/memory.js.map +1 -1
  714. package/dist/store/attachment/index.d.ts +4 -4
  715. package/dist/store/attachment/index.d.ts.map +1 -1
  716. package/dist/store/attachment/index.js +3 -3
  717. package/dist/store/attachment/index.js.map +1 -1
  718. package/dist/store/budget/disk.d.ts +59 -0
  719. package/dist/store/budget/disk.d.ts.map +1 -0
  720. package/dist/store/budget/disk.js +179 -0
  721. package/dist/store/budget/disk.js.map +1 -0
  722. package/dist/store/budget/index.d.ts +6 -0
  723. package/dist/store/budget/index.d.ts.map +1 -0
  724. package/dist/store/budget/index.js +6 -0
  725. package/dist/store/budget/index.js.map +1 -0
  726. package/dist/store/budget/ledger.d.ts +156 -0
  727. package/dist/store/budget/ledger.d.ts.map +1 -0
  728. package/dist/store/budget/ledger.js +683 -0
  729. package/dist/store/budget/ledger.js.map +1 -0
  730. package/dist/store/budget/memory.d.ts +18 -0
  731. package/dist/store/budget/memory.d.ts.map +1 -0
  732. package/dist/store/budget/memory.js +31 -0
  733. package/dist/store/budget/memory.js.map +1 -0
  734. package/dist/store/checkpoint/contract.d.ts +140 -0
  735. package/dist/store/checkpoint/contract.d.ts.map +1 -0
  736. package/dist/store/checkpoint/contract.js +91 -0
  737. package/dist/store/checkpoint/contract.js.map +1 -0
  738. package/dist/store/checkpoint/disk.d.ts +44 -0
  739. package/dist/store/checkpoint/disk.d.ts.map +1 -0
  740. package/dist/store/checkpoint/disk.js +168 -0
  741. package/dist/store/checkpoint/disk.js.map +1 -0
  742. package/dist/store/checkpoint/index.d.ts +9 -0
  743. package/dist/store/checkpoint/index.d.ts.map +1 -0
  744. package/dist/store/checkpoint/index.js +7 -0
  745. package/dist/store/checkpoint/index.js.map +1 -0
  746. package/dist/store/checkpoint/memory.d.ts +27 -0
  747. package/dist/store/checkpoint/memory.d.ts.map +1 -0
  748. package/dist/store/checkpoint/memory.js +80 -0
  749. package/dist/store/checkpoint/memory.js.map +1 -0
  750. package/dist/store/checkpoint/prune.d.ts +45 -0
  751. package/dist/store/checkpoint/prune.d.ts.map +1 -0
  752. package/dist/store/checkpoint/prune.js +71 -0
  753. package/dist/store/checkpoint/prune.js.map +1 -0
  754. package/dist/store/config/index.d.ts +1 -1
  755. package/dist/store/config/index.js +1 -1
  756. package/dist/store/evidence/disk.d.ts +25 -8
  757. package/dist/store/evidence/disk.d.ts.map +1 -1
  758. package/dist/store/evidence/disk.js +148 -47
  759. package/dist/store/evidence/disk.js.map +1 -1
  760. package/dist/store/evidence/index-page.d.ts +31 -140
  761. package/dist/store/evidence/index-page.d.ts.map +1 -1
  762. package/dist/store/evidence/index-page.js +59 -129
  763. package/dist/store/evidence/index-page.js.map +1 -1
  764. package/dist/store/evidence/source-text.d.ts +7 -6
  765. package/dist/store/evidence/source-text.d.ts.map +1 -1
  766. package/dist/store/evidence/source-text.js +16 -23
  767. package/dist/store/evidence/source-text.js.map +1 -1
  768. package/dist/store/evidence/types.d.ts +38 -39
  769. package/dist/store/evidence/types.d.ts.map +1 -1
  770. package/dist/store/feedback/conformance.d.ts +6 -6
  771. package/dist/store/feedback/conformance.d.ts.map +1 -1
  772. package/dist/store/feedback/conformance.js +30 -29
  773. package/dist/store/feedback/conformance.js.map +1 -1
  774. package/dist/store/feedback/disk.d.ts +20 -19
  775. package/dist/store/feedback/disk.d.ts.map +1 -1
  776. package/dist/store/feedback/disk.js +53 -53
  777. package/dist/store/feedback/disk.js.map +1 -1
  778. package/dist/store/feedback/index.d.ts +1 -1
  779. package/dist/store/feedback/index.d.ts.map +1 -1
  780. package/dist/store/feedback/index.js +1 -1
  781. package/dist/store/feedback/index.js.map +1 -1
  782. package/dist/store/feedback/memory.d.ts +8 -5
  783. package/dist/store/feedback/memory.d.ts.map +1 -1
  784. package/dist/store/feedback/memory.js +0 -0
  785. package/dist/store/feedback/memory.js.map +1 -1
  786. package/dist/store/feedback/types.d.ts +12 -11
  787. package/dist/store/feedback/types.d.ts.map +1 -1
  788. package/dist/store/feedback/types.js +3 -3
  789. package/dist/store/feedback/types.js.map +1 -1
  790. package/dist/store/index.d.ts +7 -8
  791. package/dist/store/index.d.ts.map +1 -1
  792. package/dist/store/index.js +4 -16
  793. package/dist/store/index.js.map +1 -1
  794. package/dist/store/memory/digest.d.ts +15 -0
  795. package/dist/store/memory/digest.d.ts.map +1 -0
  796. package/dist/store/memory/digest.js +27 -0
  797. package/dist/store/memory/digest.js.map +1 -0
  798. package/dist/store/memory/disk.d.ts.map +1 -1
  799. package/dist/store/memory/disk.js +42 -7
  800. package/dist/store/memory/disk.js.map +1 -1
  801. package/dist/store/memory/index-file.d.ts +56 -0
  802. package/dist/store/memory/index-file.d.ts.map +1 -0
  803. package/dist/store/memory/index-file.js +92 -0
  804. package/dist/store/memory/index-file.js.map +1 -0
  805. package/dist/store/memory/index.d.ts.map +1 -1
  806. package/dist/store/memory/index.js +4 -2
  807. package/dist/store/memory/index.js.map +1 -1
  808. package/dist/store/memory/links.d.ts +15 -0
  809. package/dist/store/memory/links.d.ts.map +1 -0
  810. package/dist/store/memory/links.js +35 -0
  811. package/dist/store/memory/links.js.map +1 -0
  812. package/dist/store/memory/markdown-format.d.ts +88 -0
  813. package/dist/store/memory/markdown-format.d.ts.map +1 -0
  814. package/dist/store/memory/markdown-format.js +222 -0
  815. package/dist/store/memory/markdown-format.js.map +1 -0
  816. package/dist/store/memory/markdown.d.ts +109 -0
  817. package/dist/store/memory/markdown.d.ts.map +1 -0
  818. package/dist/store/memory/markdown.js +606 -0
  819. package/dist/store/memory/markdown.js.map +1 -0
  820. package/dist/store/memory/memory.d.ts.map +1 -1
  821. package/dist/store/memory/memory.js +17 -4
  822. package/dist/store/memory/memory.js.map +1 -1
  823. package/dist/store/memory/naming.d.ts +66 -0
  824. package/dist/store/memory/naming.d.ts.map +1 -0
  825. package/dist/store/memory/naming.js +162 -0
  826. package/dist/store/memory/naming.js.map +1 -0
  827. package/dist/store/memory/origin.d.ts +25 -0
  828. package/dist/store/memory/origin.d.ts.map +1 -0
  829. package/dist/store/memory/origin.js +26 -0
  830. package/dist/store/memory/origin.js.map +1 -0
  831. package/dist/store/session/disk.d.ts +21 -24
  832. package/dist/store/session/disk.d.ts.map +1 -1
  833. package/dist/store/session/disk.js +27 -132
  834. package/dist/store/session/disk.js.map +1 -1
  835. package/dist/store/session/index.d.ts +0 -3
  836. package/dist/store/session/index.d.ts.map +1 -1
  837. package/dist/store/session/index.js +5 -7
  838. package/dist/store/session/index.js.map +1 -1
  839. package/dist/store/session/memory.d.ts +1 -8
  840. package/dist/store/session/memory.d.ts.map +1 -1
  841. package/dist/store/session/memory.js +1 -58
  842. package/dist/store/session/memory.js.map +1 -1
  843. package/dist/store/session-claim.d.ts +30 -0
  844. package/dist/store/session-claim.d.ts.map +1 -0
  845. package/dist/store/session-claim.js +71 -0
  846. package/dist/store/session-claim.js.map +1 -0
  847. package/dist/store/session-index/fts.d.ts +60 -0
  848. package/dist/store/session-index/fts.d.ts.map +1 -0
  849. package/dist/store/session-index/fts.js +160 -0
  850. package/dist/store/session-index/fts.js.map +1 -0
  851. package/dist/store/session-index/index.d.ts +206 -0
  852. package/dist/store/session-index/index.d.ts.map +1 -0
  853. package/dist/store/session-index/index.js +22 -0
  854. package/dist/store/session-index/index.js.map +1 -0
  855. package/dist/store/session-index/rebuild.d.ts +180 -0
  856. package/dist/store/session-index/rebuild.d.ts.map +1 -0
  857. package/dist/store/session-index/rebuild.js +669 -0
  858. package/dist/store/session-index/rebuild.js.map +1 -0
  859. package/dist/store/session-index/refs.d.ts +66 -0
  860. package/dist/store/session-index/refs.d.ts.map +1 -0
  861. package/dist/store/session-index/refs.js +107 -0
  862. package/dist/store/session-index/refs.js.map +1 -0
  863. package/dist/store/session-index/scan.d.ts +42 -0
  864. package/dist/store/session-index/scan.d.ts.map +1 -0
  865. package/dist/store/session-index/scan.js +188 -0
  866. package/dist/store/session-index/scan.js.map +1 -0
  867. package/dist/store/session-index/sqlite.d.ts +76 -0
  868. package/dist/store/session-index/sqlite.d.ts.map +1 -0
  869. package/dist/store/session-index/sqlite.js +547 -0
  870. package/dist/store/session-index/sqlite.js.map +1 -0
  871. package/dist/store/session-log/chain.d.ts +111 -0
  872. package/dist/store/session-log/chain.d.ts.map +1 -0
  873. package/dist/store/session-log/chain.js +212 -0
  874. package/dist/store/session-log/chain.js.map +1 -0
  875. package/dist/store/session-log/conformance.d.ts +61 -0
  876. package/dist/store/session-log/conformance.d.ts.map +1 -0
  877. package/dist/store/session-log/conformance.js +392 -0
  878. package/dist/store/session-log/conformance.js.map +1 -0
  879. package/dist/store/session-log/core.d.ts +203 -0
  880. package/dist/store/session-log/core.d.ts.map +1 -0
  881. package/dist/store/session-log/core.js +516 -0
  882. package/dist/store/session-log/core.js.map +1 -0
  883. package/dist/store/session-log/disk.d.ts +56 -0
  884. package/dist/store/session-log/disk.d.ts.map +1 -0
  885. package/dist/store/session-log/disk.js +169 -0
  886. package/dist/store/session-log/disk.js.map +1 -0
  887. package/dist/store/session-log/fold.d.ts +115 -0
  888. package/dist/store/session-log/fold.d.ts.map +1 -0
  889. package/dist/store/session-log/fold.js +265 -0
  890. package/dist/store/session-log/fold.js.map +1 -0
  891. package/dist/store/session-log/heal.d.ts +34 -0
  892. package/dist/store/session-log/heal.d.ts.map +1 -0
  893. package/dist/store/session-log/heal.js +12 -0
  894. package/dist/store/session-log/heal.js.map +1 -0
  895. package/dist/store/session-log/held-leases.d.ts +56 -0
  896. package/dist/store/session-log/held-leases.d.ts.map +1 -0
  897. package/dist/store/session-log/held-leases.js +67 -0
  898. package/dist/store/session-log/held-leases.js.map +1 -0
  899. package/dist/store/session-log/index.d.ts +10 -0
  900. package/dist/store/session-log/index.d.ts.map +1 -0
  901. package/dist/store/session-log/index.js +16 -0
  902. package/dist/store/session-log/index.js.map +1 -0
  903. package/dist/store/session-log/lease.d.ts +126 -0
  904. package/dist/store/session-log/lease.d.ts.map +1 -0
  905. package/dist/store/session-log/lease.js +226 -0
  906. package/dist/store/session-log/lease.js.map +1 -0
  907. package/dist/store/session-log/memory.d.ts +43 -0
  908. package/dist/store/session-log/memory.d.ts.map +1 -0
  909. package/dist/store/session-log/memory.js +78 -0
  910. package/dist/store/session-log/memory.js.map +1 -0
  911. package/dist/store/session-log/spill.d.ts +109 -0
  912. package/dist/store/session-log/spill.d.ts.map +1 -0
  913. package/dist/store/session-log/spill.js +223 -0
  914. package/dist/store/session-log/spill.js.map +1 -0
  915. package/dist/store/task/context.d.ts +25 -0
  916. package/dist/store/task/context.d.ts.map +1 -0
  917. package/dist/store/task/context.js +18 -0
  918. package/dist/store/task/context.js.map +1 -0
  919. package/dist/store/task/disk.d.ts +29 -26
  920. package/dist/store/task/disk.d.ts.map +1 -1
  921. package/dist/store/task/disk.js +102 -137
  922. package/dist/store/task/disk.js.map +1 -1
  923. package/dist/store/task/memory.d.ts +2 -2
  924. package/dist/store/task/memory.d.ts.map +1 -1
  925. package/dist/store/task/memory.js +10 -6
  926. package/dist/store/task/memory.js.map +1 -1
  927. package/dist/store/topic/index.js +2 -2
  928. package/dist/store/topic/index.js.map +1 -1
  929. package/dist/store/topic/objective.d.ts.map +1 -1
  930. package/dist/store/topic/objective.js +10 -3
  931. package/dist/store/topic/objective.js.map +1 -1
  932. package/dist/store/topic/state.js +1 -1
  933. package/dist/streaming/coalesce.d.ts +3 -3
  934. package/dist/streaming/coalesce.d.ts.map +1 -1
  935. package/dist/streaming/coalesce.js +1 -1
  936. package/dist/streaming/coalesce.js.map +1 -1
  937. package/dist/telemetry/attributes.d.ts +9 -8
  938. package/dist/telemetry/attributes.d.ts.map +1 -1
  939. package/dist/telemetry/attributes.js +6 -5
  940. package/dist/telemetry/attributes.js.map +1 -1
  941. package/dist/telemetry/metrics.d.ts +2 -2
  942. package/dist/telemetry/metrics.d.ts.map +1 -1
  943. package/dist/telemetry/metrics.js +5 -5
  944. package/dist/telemetry/metrics.js.map +1 -1
  945. package/dist/telemetry/runtime-accessors.js +1 -1
  946. package/dist/telemetry/runtime-accessors.js.map +1 -1
  947. package/dist/test-support/ids.d.ts +4 -4
  948. package/dist/test-support/ids.d.ts.map +1 -1
  949. package/dist/test-support/ids.js +3 -3
  950. package/dist/test-support/ids.js.map +1 -1
  951. package/dist/testing.d.ts +4 -6
  952. package/dist/testing.d.ts.map +1 -1
  953. package/dist/testing.js +3 -5
  954. package/dist/testing.js.map +1 -1
  955. package/dist/tools/advisory/index.js +1 -1
  956. package/dist/tools/advisory/index.js.map +1 -1
  957. package/dist/tools/builtins/bash.d.ts +6 -0
  958. package/dist/tools/builtins/bash.d.ts.map +1 -1
  959. package/dist/tools/builtins/bash.js +37 -5
  960. package/dist/tools/builtins/bash.js.map +1 -1
  961. package/dist/tools/builtins/content-fingerprint.d.ts +2 -2
  962. package/dist/tools/builtins/content-fingerprint.js +2 -2
  963. package/dist/tools/builtins/edit-apply.js +1 -1
  964. package/dist/tools/builtins/edit-apply.js.map +1 -1
  965. package/dist/tools/builtins/edit.d.ts.map +1 -1
  966. package/dist/tools/builtins/edit.js +3 -0
  967. package/dist/tools/builtins/edit.js.map +1 -1
  968. package/dist/tools/builtins/glob.d.ts.map +1 -1
  969. package/dist/tools/builtins/glob.js +3 -0
  970. package/dist/tools/builtins/glob.js.map +1 -1
  971. package/dist/tools/builtins/grep.d.ts.map +1 -1
  972. package/dist/tools/builtins/grep.js +3 -0
  973. package/dist/tools/builtins/grep.js.map +1 -1
  974. package/dist/tools/builtins/job.js +5 -5
  975. package/dist/tools/builtins/job.js.map +1 -1
  976. package/dist/tools/builtins/ls.d.ts +1 -1
  977. package/dist/tools/builtins/ls.d.ts.map +1 -1
  978. package/dist/tools/builtins/ls.js +3 -0
  979. package/dist/tools/builtins/ls.js.map +1 -1
  980. package/dist/tools/builtins/lsp.d.ts +1 -1
  981. package/dist/tools/builtins/lsp.d.ts.map +1 -1
  982. package/dist/tools/builtins/lsp.js +5 -2
  983. package/dist/tools/builtins/lsp.js.map +1 -1
  984. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  985. package/dist/tools/builtins/read-file.js +3 -0
  986. package/dist/tools/builtins/read-file.js.map +1 -1
  987. package/dist/tools/builtins/run-code.js +9 -9
  988. package/dist/tools/builtins/run-code.js.map +1 -1
  989. package/dist/tools/builtins/skill.js +3 -3
  990. package/dist/tools/builtins/skill.js.map +1 -1
  991. package/dist/tools/builtins/wait-for-job-bounds.d.ts +4 -4
  992. package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -1
  993. package/dist/tools/builtins/wait-for-job-bounds.js +2 -2
  994. package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -1
  995. package/dist/tools/builtins/wait-for-job.js +3 -3
  996. package/dist/tools/builtins/wait-for-job.js.map +1 -1
  997. package/dist/tools/builtins/web-guidance.d.ts +2 -2
  998. package/dist/tools/builtins/web-guidance.js +2 -2
  999. package/dist/tools/builtins/web.js +3 -3
  1000. package/dist/tools/builtins/web.js.map +1 -1
  1001. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  1002. package/dist/tools/builtins/write-file.js +3 -0
  1003. package/dist/tools/builtins/write-file.js.map +1 -1
  1004. package/dist/tools/coordinator/agent.d.ts +1 -1
  1005. package/dist/tools/coordinator/agent.js +7 -7
  1006. package/dist/tools/coordinator/agent.js.map +1 -1
  1007. package/dist/tools/coordinator/ask-user-question.d.ts +10 -9
  1008. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  1009. package/dist/tools/coordinator/ask-user-question.js +9 -8
  1010. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  1011. package/dist/tools/coordinator/index.d.ts +17 -11
  1012. package/dist/tools/coordinator/index.d.ts.map +1 -1
  1013. package/dist/tools/coordinator/index.js +45 -44
  1014. package/dist/tools/coordinator/index.js.map +1 -1
  1015. package/dist/tools/coordinator/outcome.d.ts +5 -5
  1016. package/dist/tools/coordinator/outcome.js +7 -7
  1017. package/dist/tools/coordinator/outcome.js.map +1 -1
  1018. package/dist/tools/coordinator/plan-dependencies.js +1 -1
  1019. package/dist/tools/coordinator/plan-dependencies.js.map +1 -1
  1020. package/dist/tools/coordinator/wait-with-idle-bound.d.ts +4 -4
  1021. package/dist/tools/coordinator/wait-with-idle-bound.d.ts.map +1 -1
  1022. package/dist/tools/coordinator/wait-with-idle-bound.js +2 -2
  1023. package/dist/tools/coordinator/wait-with-idle-bound.js.map +1 -1
  1024. package/dist/tools/defineTool.d.ts +5 -1
  1025. package/dist/tools/defineTool.d.ts.map +1 -1
  1026. package/dist/tools/defineTool.js +4 -0
  1027. package/dist/tools/defineTool.js.map +1 -1
  1028. package/dist/tools/env-scrub.d.ts +1 -1
  1029. package/dist/tools/env-scrub.js +1 -1
  1030. package/dist/tools/goal/index.d.ts +10 -6
  1031. package/dist/tools/goal/index.d.ts.map +1 -1
  1032. package/dist/tools/goal/index.js +9 -9
  1033. package/dist/tools/goal/index.js.map +1 -1
  1034. package/dist/tools/memory/fields.d.ts +8 -0
  1035. package/dist/tools/memory/fields.d.ts.map +1 -0
  1036. package/dist/tools/memory/fields.js +22 -0
  1037. package/dist/tools/memory/fields.js.map +1 -0
  1038. package/dist/tools/memory/read.d.ts.map +1 -1
  1039. package/dist/tools/memory/read.js +60 -7
  1040. package/dist/tools/memory/read.js.map +1 -1
  1041. package/dist/tools/memory/resolve.d.ts +21 -0
  1042. package/dist/tools/memory/resolve.d.ts.map +1 -0
  1043. package/dist/tools/memory/resolve.js +23 -0
  1044. package/dist/tools/memory/resolve.js.map +1 -0
  1045. package/dist/tools/memory/save.d.ts.map +1 -1
  1046. package/dist/tools/memory/save.js +57 -18
  1047. package/dist/tools/memory/save.js.map +1 -1
  1048. package/dist/tools/memory/search.d.ts.map +1 -1
  1049. package/dist/tools/memory/search.js +9 -2
  1050. package/dist/tools/memory/search.js.map +1 -1
  1051. package/dist/tools/memory/update.d.ts.map +1 -1
  1052. package/dist/tools/memory/update.js +45 -7
  1053. package/dist/tools/memory/update.js.map +1 -1
  1054. package/dist/tools/paths.d.ts +29 -3
  1055. package/dist/tools/paths.d.ts.map +1 -1
  1056. package/dist/tools/paths.js +81 -23
  1057. package/dist/tools/paths.js.map +1 -1
  1058. package/dist/tools/posix-path.js +1 -1
  1059. package/dist/tools/posix-path.js.map +1 -1
  1060. package/dist/tools/resident-history.d.ts +1 -1
  1061. package/dist/tools/resident-history.js +1 -1
  1062. package/dist/tools/resident-tool-evidence.d.ts +1 -1
  1063. package/dist/tools/resident-tool-evidence.d.ts.map +1 -1
  1064. package/dist/tools/resident-tool-evidence.js +1 -1
  1065. package/dist/tools/resident-tool-evidence.js.map +1 -1
  1066. package/dist/tools/task/create.d.ts +2 -2
  1067. package/dist/tools/task/create.d.ts.map +1 -1
  1068. package/dist/tools/task/create.js +7 -3
  1069. package/dist/tools/task/create.js.map +1 -1
  1070. package/dist/tools/task/index.d.ts +16 -2
  1071. package/dist/tools/task/index.d.ts.map +1 -1
  1072. package/dist/tools/task/index.js +4 -3
  1073. package/dist/tools/task/index.js.map +1 -1
  1074. package/dist/tools/task/list.d.ts +4 -2
  1075. package/dist/tools/task/list.d.ts.map +1 -1
  1076. package/dist/tools/task/list.js +12 -5
  1077. package/dist/tools/task/list.js.map +1 -1
  1078. package/dist/tools/task/present.d.ts +18 -0
  1079. package/dist/tools/task/present.d.ts.map +1 -0
  1080. package/dist/tools/task/present.js +88 -0
  1081. package/dist/tools/task/present.js.map +1 -0
  1082. package/dist/tools/task/update.d.ts.map +1 -1
  1083. package/dist/tools/task/update.js +9 -1
  1084. package/dist/tools/task/update.js.map +1 -1
  1085. package/dist/turn/LimitChecker.d.ts +30 -0
  1086. package/dist/turn/LimitChecker.d.ts.map +1 -0
  1087. package/dist/turn/LimitChecker.js +57 -0
  1088. package/dist/turn/LimitChecker.js.map +1 -0
  1089. package/dist/turn/command-gate.d.ts +107 -0
  1090. package/dist/turn/command-gate.d.ts.map +1 -0
  1091. package/dist/turn/command-gate.js +221 -0
  1092. package/dist/turn/command-gate.js.map +1 -0
  1093. package/dist/turn/drain.d.ts +138 -0
  1094. package/dist/turn/drain.d.ts.map +1 -0
  1095. package/dist/turn/drain.js +209 -0
  1096. package/dist/turn/drain.js.map +1 -0
  1097. package/dist/turn/evidence-query.d.ts +41 -0
  1098. package/dist/turn/evidence-query.d.ts.map +1 -0
  1099. package/dist/turn/evidence-query.js +270 -0
  1100. package/dist/turn/evidence-query.js.map +1 -0
  1101. package/dist/turn/evidence-recall.d.ts +102 -0
  1102. package/dist/turn/evidence-recall.d.ts.map +1 -0
  1103. package/dist/turn/evidence-recall.js +635 -0
  1104. package/dist/turn/evidence-recall.js.map +1 -0
  1105. package/dist/turn/index.d.ts +17 -0
  1106. package/dist/turn/index.d.ts.map +1 -0
  1107. package/dist/turn/index.js +9 -0
  1108. package/dist/turn/index.js.map +1 -0
  1109. package/dist/turn/json-claim-verifier.d.ts +83 -0
  1110. package/dist/turn/json-claim-verifier.d.ts.map +1 -0
  1111. package/dist/turn/json-claim-verifier.js +200 -0
  1112. package/dist/turn/json-claim-verifier.js.map +1 -0
  1113. package/dist/turn/memory-promoter.d.ts +43 -0
  1114. package/dist/turn/memory-promoter.d.ts.map +1 -0
  1115. package/dist/turn/memory-promoter.js +111 -0
  1116. package/dist/turn/memory-promoter.js.map +1 -0
  1117. package/dist/turn/memory-recall.d.ts +33 -0
  1118. package/dist/turn/memory-recall.d.ts.map +1 -0
  1119. package/dist/turn/memory-recall.js +248 -0
  1120. package/dist/turn/memory-recall.js.map +1 -0
  1121. package/dist/turn/preparation-context-error.d.ts.map +1 -0
  1122. package/dist/turn/preparation-context-error.js.map +1 -0
  1123. package/dist/turn/reporter.d.ts +8 -0
  1124. package/dist/turn/reporter.d.ts.map +1 -0
  1125. package/dist/turn/reporter.js +420 -0
  1126. package/dist/turn/reporter.js.map +1 -0
  1127. package/dist/turn/workspace-fingerprint.d.ts.map +1 -0
  1128. package/dist/turn/workspace-fingerprint.js.map +1 -0
  1129. package/dist/types/activity/index.d.ts +2 -2
  1130. package/dist/types/activity/index.d.ts.map +1 -1
  1131. package/dist/types/advisory/config.d.ts +7 -7
  1132. package/dist/types/advisory/config.d.ts.map +1 -1
  1133. package/dist/types/agent/base.d.ts +71 -44
  1134. package/dist/types/agent/base.d.ts.map +1 -1
  1135. package/dist/types/agent/core.d.ts +10 -10
  1136. package/dist/types/agent/core.d.ts.map +1 -1
  1137. package/dist/types/agent/delegate.d.ts +2 -2
  1138. package/dist/types/agent/factory.d.ts +6 -4
  1139. package/dist/types/agent/factory.d.ts.map +1 -1
  1140. package/dist/types/agent/manager.d.ts +6 -6
  1141. package/dist/types/agent/manager.d.ts.map +1 -1
  1142. package/dist/types/agent/pipeline.d.ts +5 -4
  1143. package/dist/types/agent/pipeline.d.ts.map +1 -1
  1144. package/dist/types/agent/reactive.d.ts +11 -10
  1145. package/dist/types/agent/reactive.d.ts.map +1 -1
  1146. package/dist/types/agent/router.d.ts +1 -1
  1147. package/dist/types/agent/scheduler.d.ts +27 -11
  1148. package/dist/types/agent/scheduler.d.ts.map +1 -1
  1149. package/dist/types/agent/supervisor.d.ts +13 -13
  1150. package/dist/types/agent/task.d.ts +48 -12
  1151. package/dist/types/agent/task.d.ts.map +1 -1
  1152. package/dist/types/agent/working-memory.d.ts +5 -4
  1153. package/dist/types/agent/working-memory.d.ts.map +1 -1
  1154. package/dist/types/authorization/index.d.ts +6 -6
  1155. package/dist/types/bidi/index.d.ts +21 -12
  1156. package/dist/types/bidi/index.d.ts.map +1 -1
  1157. package/dist/types/bus/index.d.ts +34 -28
  1158. package/dist/types/bus/index.d.ts.map +1 -1
  1159. package/dist/types/code-navigation/index.d.ts +1 -1
  1160. package/dist/types/common/index.d.ts +10 -18
  1161. package/dist/types/common/index.d.ts.map +1 -1
  1162. package/dist/types/common/index.js +3 -2
  1163. package/dist/types/common/index.js.map +1 -1
  1164. package/dist/types/connector/core.d.ts +2 -2
  1165. package/dist/types/connector/definition.d.ts +1 -1
  1166. package/dist/types/connector/mcp.d.ts +1 -1
  1167. package/dist/types/errors/catalog.js +4 -4
  1168. package/dist/types/errors/catalog.js.map +1 -1
  1169. package/dist/types/errors/index.d.ts +5 -5
  1170. package/dist/types/errors/index.d.ts.map +1 -1
  1171. package/dist/types/guardrail/index.d.ts +12 -10
  1172. package/dist/types/guardrail/index.d.ts.map +1 -1
  1173. package/dist/types/hitl/index.d.ts +60 -117
  1174. package/dist/types/hitl/index.d.ts.map +1 -1
  1175. package/dist/types/hitl/index.js +1 -1
  1176. package/dist/types/hitl/index.js.map +1 -1
  1177. package/dist/types/hitl/policy.d.ts +8 -6
  1178. package/dist/types/hitl/policy.d.ts.map +1 -1
  1179. package/dist/types/ids/brand.d.ts +10 -3
  1180. package/dist/types/ids/brand.d.ts.map +1 -1
  1181. package/dist/types/ids/brand.js.map +1 -1
  1182. package/dist/types/ids/index.d.ts +10 -4
  1183. package/dist/types/ids/index.d.ts.map +1 -1
  1184. package/dist/types/ids/index.js.map +1 -1
  1185. package/dist/types/memory/index.d.ts +35 -0
  1186. package/dist/types/memory/index.d.ts.map +1 -1
  1187. package/dist/types/memory/index.js +17 -0
  1188. package/dist/types/memory/index.js.map +1 -1
  1189. package/dist/types/message/index.d.ts +4 -4
  1190. package/dist/types/plan/index.d.ts +5 -3
  1191. package/dist/types/plan/index.d.ts.map +1 -1
  1192. package/dist/types/plugin/index.d.ts +27 -19
  1193. package/dist/types/plugin/index.d.ts.map +1 -1
  1194. package/dist/types/plugin/index.js +16 -3
  1195. package/dist/types/plugin/index.js.map +1 -1
  1196. package/dist/types/probe/event-kind.d.ts +3 -3
  1197. package/dist/types/probe/event-kind.d.ts.map +1 -1
  1198. package/dist/types/probe/registry.d.ts +3 -2
  1199. package/dist/types/probe/registry.d.ts.map +1 -1
  1200. package/dist/types/project/entity.d.ts +3 -3
  1201. package/dist/types/provider/config.d.ts +3 -3
  1202. package/dist/types/provider/error.d.ts +1 -1
  1203. package/dist/types/provider/errors.d.ts +2 -2
  1204. package/dist/types/provider/errors.js +2 -2
  1205. package/dist/types/provider/errors.js.map +1 -1
  1206. package/dist/types/provider/interface.d.ts +5 -5
  1207. package/dist/types/router/task-router.d.ts +1 -1
  1208. package/dist/types/sandbox/index.d.ts +14 -14
  1209. package/dist/types/sandbox/index.d.ts.map +1 -1
  1210. package/dist/types/sandbox/index.js +4 -4
  1211. package/dist/types/session/answer-review.d.ts +80 -0
  1212. package/dist/types/session/answer-review.d.ts.map +1 -0
  1213. package/dist/types/session/answer-review.js.map +1 -0
  1214. package/dist/types/session/audit.d.ts +153 -0
  1215. package/dist/types/session/audit.d.ts.map +1 -0
  1216. package/dist/types/session/audit.js +35 -0
  1217. package/dist/types/session/audit.js.map +1 -0
  1218. package/dist/types/session/cancel-cause.d.ts +49 -0
  1219. package/dist/types/session/cancel-cause.d.ts.map +1 -0
  1220. package/dist/types/session/cancel-cause.js +39 -0
  1221. package/dist/types/session/cancel-cause.js.map +1 -0
  1222. package/dist/types/session/checkpoint.d.ts +325 -0
  1223. package/dist/types/session/checkpoint.d.ts.map +1 -0
  1224. package/dist/types/session/checkpoint.js +100 -0
  1225. package/dist/types/session/checkpoint.js.map +1 -0
  1226. package/dist/types/session/config.d.ts +199 -0
  1227. package/dist/types/session/config.d.ts.map +1 -0
  1228. package/dist/types/session/config.js.map +1 -0
  1229. package/dist/types/session/derive-status.d.ts +28 -0
  1230. package/dist/types/session/derive-status.d.ts.map +1 -0
  1231. package/dist/types/session/derive-status.js +49 -0
  1232. package/dist/types/session/derive-status.js.map +1 -0
  1233. package/dist/types/session/durable.d.ts +142 -0
  1234. package/dist/types/session/durable.d.ts.map +1 -0
  1235. package/dist/types/session/durable.js +11 -0
  1236. package/dist/types/session/durable.js.map +1 -0
  1237. package/dist/types/session/entity.d.ts +1 -1
  1238. package/dist/types/session/events.d.ts +1147 -0
  1239. package/dist/types/session/events.d.ts.map +1 -0
  1240. package/dist/types/session/events.js +15 -0
  1241. package/dist/types/session/events.js.map +1 -0
  1242. package/dist/types/session/fork.d.ts +45 -0
  1243. package/dist/types/session/fork.d.ts.map +1 -0
  1244. package/dist/types/session/fork.js +15 -0
  1245. package/dist/types/session/fork.js.map +1 -0
  1246. package/dist/types/session/ids.d.ts +1 -1
  1247. package/dist/types/session/ids.d.ts.map +1 -1
  1248. package/dist/types/session/index.d.ts +20 -1
  1249. package/dist/types/session/index.d.ts.map +1 -1
  1250. package/dist/types/session/index.js +22 -4
  1251. package/dist/types/session/index.js.map +1 -1
  1252. package/dist/types/session/lineage.d.ts +15 -0
  1253. package/dist/types/session/lineage.d.ts.map +1 -0
  1254. package/dist/types/session/lineage.js.map +1 -0
  1255. package/dist/types/session/log-cursor.d.ts +57 -0
  1256. package/dist/types/session/log-cursor.d.ts.map +1 -0
  1257. package/dist/types/session/log-cursor.js +34 -0
  1258. package/dist/types/session/log-cursor.js.map +1 -0
  1259. package/dist/types/session/memory-promotion.d.ts +91 -0
  1260. package/dist/types/session/memory-promotion.d.ts.map +1 -0
  1261. package/dist/types/session/memory-promotion.js +39 -0
  1262. package/dist/types/session/memory-promotion.js.map +1 -0
  1263. package/dist/types/session/messages.d.ts +1 -1
  1264. package/dist/types/session/messages.js +1 -1
  1265. package/dist/types/session/prepare-step.d.ts +278 -0
  1266. package/dist/types/session/prepare-step.d.ts.map +1 -0
  1267. package/dist/types/session/prepare-step.js.map +1 -0
  1268. package/dist/types/session/records.d.ts +5597 -0
  1269. package/dist/types/session/records.d.ts.map +1 -0
  1270. package/dist/types/session/records.js +721 -0
  1271. package/dist/types/session/records.js.map +1 -0
  1272. package/dist/types/session/step.d.ts +195 -0
  1273. package/dist/types/session/step.d.ts.map +1 -0
  1274. package/dist/types/session/step.js +26 -0
  1275. package/dist/types/session/step.js.map +1 -0
  1276. package/dist/types/session/stop-reason.d.ts +67 -0
  1277. package/dist/types/session/stop-reason.d.ts.map +1 -0
  1278. package/dist/types/session/stop-reason.js.map +1 -0
  1279. package/dist/types/session/store.d.ts +2 -43
  1280. package/dist/types/session/store.d.ts.map +1 -1
  1281. package/dist/types/session/tool-execution.d.ts +34 -0
  1282. package/dist/types/session/tool-execution.d.ts.map +1 -0
  1283. package/dist/types/session/tool-execution.js +11 -0
  1284. package/dist/types/session/tool-execution.js.map +1 -0
  1285. package/dist/types/session/turn-state.d.ts +74 -0
  1286. package/dist/types/session/turn-state.d.ts.map +1 -0
  1287. package/dist/types/session/turn-state.js +59 -0
  1288. package/dist/types/session/turn-state.js.map +1 -0
  1289. package/dist/types/session/turn.d.ts +215 -0
  1290. package/dist/types/session/turn.d.ts.map +1 -0
  1291. package/dist/types/session/turn.js +44 -0
  1292. package/dist/types/session/turn.js.map +1 -0
  1293. package/dist/types/structured-output/index.d.ts +2 -2
  1294. package/dist/types/structured-output/index.d.ts.map +1 -1
  1295. package/dist/types/summary/deliverable.d.ts +4 -4
  1296. package/dist/types/summary/deliverable.d.ts.map +1 -1
  1297. package/dist/types/task/index.d.ts +8 -4
  1298. package/dist/types/task/index.d.ts.map +1 -1
  1299. package/dist/types/tool/index.d.ts +73 -26
  1300. package/dist/types/tool/index.d.ts.map +1 -1
  1301. package/dist/types/tool/index.js.map +1 -1
  1302. package/dist/types/topic/entity.d.ts +6 -6
  1303. package/dist/types/topic/objective.d.ts +10 -5
  1304. package/dist/types/topic/objective.d.ts.map +1 -1
  1305. package/dist/types/topic/objective.js.map +1 -1
  1306. package/dist/types/topic/state.d.ts +4 -4
  1307. package/dist/types/topic/store.d.ts +1 -1
  1308. package/dist/types/topic/store.js +1 -1
  1309. package/dist/types/workspace/index.d.ts +1 -1
  1310. package/dist/types/workspace/index.d.ts.map +1 -1
  1311. package/dist/types/workspace/index.js +1 -1
  1312. package/dist/types/workspace/index.js.map +1 -1
  1313. package/dist/types/workspace/ref.d.ts +3 -3
  1314. package/dist/types/workspace/shared-session.d.ts +61 -0
  1315. package/dist/types/workspace/shared-session.d.ts.map +1 -0
  1316. package/dist/types/workspace/shared-session.js +2 -0
  1317. package/dist/types/workspace/shared-session.js.map +1 -0
  1318. package/dist/utils/abort.js +4 -4
  1319. package/dist/utils/abort.js.map +1 -1
  1320. package/dist/utils/atomic-write.d.ts +29 -1
  1321. package/dist/utils/atomic-write.d.ts.map +1 -1
  1322. package/dist/utils/atomic-write.js +60 -4
  1323. package/dist/utils/atomic-write.js.map +1 -1
  1324. package/dist/utils/cost.d.ts +3 -3
  1325. package/dist/utils/cost.d.ts.map +1 -1
  1326. package/dist/utils/cost.js +11 -12
  1327. package/dist/utils/cost.js.map +1 -1
  1328. package/dist/utils/env.d.ts +1 -1
  1329. package/dist/utils/env.js +1 -1
  1330. package/dist/utils/id.d.ts +9 -8
  1331. package/dist/utils/id.d.ts.map +1 -1
  1332. package/dist/utils/id.js +20 -13
  1333. package/dist/utils/id.js.map +1 -1
  1334. package/dist/utils/log/create-logger.js +1 -1
  1335. package/dist/utils/log/create-logger.js.map +1 -1
  1336. package/dist/utils/log/redact.js +1 -1
  1337. package/dist/utils/log/redact.js.map +1 -1
  1338. package/dist/utils/log/sinks.d.ts +1 -1
  1339. package/dist/utils/log/sinks.js +2 -2
  1340. package/dist/utils/log/sinks.js.map +1 -1
  1341. package/dist/utils/log/types.js +1 -1
  1342. package/dist/utils/log/types.js.map +1 -1
  1343. package/dist/utils/shell-compress.js +2 -2
  1344. package/dist/utils/shell-compress.js.map +1 -1
  1345. package/dist/utils/uuidv7.d.ts +33 -0
  1346. package/dist/utils/uuidv7.d.ts.map +1 -0
  1347. package/dist/utils/uuidv7.js +70 -0
  1348. package/dist/utils/uuidv7.js.map +1 -0
  1349. package/dist/vault/instrumentation.d.ts +5 -2
  1350. package/dist/vault/instrumentation.d.ts.map +1 -1
  1351. package/dist/vault/instrumentation.js +12 -6
  1352. package/dist/vault/instrumentation.js.map +1 -1
  1353. package/package.json +1 -1
  1354. package/src/advisory/budget.ts +3 -3
  1355. package/src/advisory/context.ts +9 -9
  1356. package/src/advisory/evaluator.ts +2 -2
  1357. package/src/advisory/parse.ts +1 -1
  1358. package/src/agents/AbstractAgent.ts +74 -50
  1359. package/src/agents/PipelineAgent.ts +91 -26
  1360. package/src/agents/ReactiveAgent.ts +35 -29
  1361. package/src/agents/RouterAgent.ts +32 -44
  1362. package/src/agents/SupervisorAgent.ts +55 -41
  1363. package/src/agents/budget.ts +73 -16
  1364. package/src/agents/defineAgent.ts +7 -3
  1365. package/src/agents/handle.ts +17 -19
  1366. package/src/agents/lock.ts +4 -4
  1367. package/src/agents/runAgent.ts +96 -38
  1368. package/src/agents/storage.ts +36 -0
  1369. package/src/authorization/command-line.ts +1 -1
  1370. package/src/authorization/gate.ts +1 -1
  1371. package/src/authorization/permission-presets.ts +4 -4
  1372. package/src/bridge/a2a/client.ts +2 -2
  1373. package/src/bridge/a2a/context.ts +46 -0
  1374. package/src/bridge/a2a/index.ts +12 -5
  1375. package/src/bridge/a2a/mapper.ts +48 -38
  1376. package/src/bridge/a2a/task.ts +91 -37
  1377. package/src/bridge/acp/permission.ts +2 -2
  1378. package/src/bridge/acp/server.ts +45 -11
  1379. package/src/bridge/acp/update.ts +9 -9
  1380. package/src/bridge/external-session.ts +82 -0
  1381. package/src/bridge/sse/index.ts +1 -1
  1382. package/src/bridge/sse/mapper.ts +117 -145
  1383. package/src/bus/breaker.ts +30 -29
  1384. package/src/bus/index.ts +7 -7
  1385. package/src/bus/lock.ts +7 -7
  1386. package/src/bus/ownership.ts +8 -8
  1387. package/src/compaction/consolidation.ts +61 -15
  1388. package/src/compaction/context-window.ts +4 -4
  1389. package/src/compaction/index.ts +2 -2
  1390. package/src/compaction/manager.ts +4 -4
  1391. package/src/compaction/manual.ts +5 -5
  1392. package/src/compaction/plan.ts +8 -8
  1393. package/src/compaction/reducer.ts +8 -8
  1394. package/src/compaction/retention.ts +2 -2
  1395. package/src/compaction/salience/bm25.ts +2 -2
  1396. package/src/compaction/salience/goal.ts +3 -3
  1397. package/src/compaction/salience/minhash.ts +1 -1
  1398. package/src/compaction/salience/score.ts +3 -3
  1399. package/src/compaction/salience/tokenize.ts +1 -1
  1400. package/src/compaction/verifier.ts +7 -7
  1401. package/src/compaction/wire.ts +1 -1
  1402. package/src/config/registry.ts +4 -4
  1403. package/src/config/runtime.ts +3 -3
  1404. package/src/connector/http-operation.ts +1 -1
  1405. package/src/connector/mcp/adapter.ts +1 -1
  1406. package/src/connector/mcp/client.ts +1 -1
  1407. package/src/connector/mcp/discovery.ts +2 -2
  1408. package/src/connector/mcp/policy.ts +1 -1
  1409. package/src/connector/mcp/prompt-adapter.ts +3 -3
  1410. package/src/constants/a2a/index.ts +10 -3
  1411. package/src/constants/continuation.ts +1 -1
  1412. package/src/constants/index.ts +0 -1
  1413. package/src/constants/limits.ts +2 -2
  1414. package/src/constants/telemetry/index.ts +15 -12
  1415. package/src/constants/tools/index.ts +2 -2
  1416. package/src/contracts/api.ts +11 -202
  1417. package/src/contracts/index.ts +8 -15
  1418. package/src/contracts/schemas.ts +6 -39
  1419. package/src/contracts/session/api.ts +150 -0
  1420. package/src/contracts/session/index.ts +29 -0
  1421. package/src/contracts/session/schemas.ts +60 -0
  1422. package/src/contracts/session/turn-status.ts +83 -0
  1423. package/src/contracts/session/turn.ts +67 -0
  1424. package/src/directory/derive-supervisor.ts +2 -2
  1425. package/src/directory/derive.ts +4 -4
  1426. package/src/directory/index.ts +2 -2
  1427. package/src/directory/load.ts +2 -2
  1428. package/src/directory/types.ts +2 -2
  1429. package/src/eval/experiment.ts +23 -23
  1430. package/src/eval/from-turn.ts +50 -0
  1431. package/src/eval/harness-verification.ts +7 -7
  1432. package/src/eval/index.ts +2 -2
  1433. package/src/eval/judge.ts +10 -10
  1434. package/src/eval/scorers.ts +23 -23
  1435. package/src/eval/types.ts +12 -12
  1436. package/src/eval/uncertainty.ts +2 -2
  1437. package/src/execution/code-runtime/types.ts +4 -4
  1438. package/src/execution/code-runtime/worker.ts +1 -1
  1439. package/src/invariants/index.ts +2 -2
  1440. package/src/manager/agent/child-session.ts +120 -0
  1441. package/src/manager/agent/lifecycle.ts +422 -102
  1442. package/src/manager/index.ts +1 -2
  1443. package/src/manager/plan/lifecycle.ts +16 -10
  1444. package/src/manager/resident/consumption.ts +8 -6
  1445. package/src/manager/resident/evidence-recall.ts +14 -14
  1446. package/src/manager/resident/host.ts +2 -2
  1447. package/src/manager/resident/learning-cycle.ts +5 -3
  1448. package/src/manager/resident/learning-observation.ts +9 -4
  1449. package/src/manager/resident/learning-store.ts +46 -16
  1450. package/src/manager/resident/tool-evidence.ts +38 -31
  1451. package/src/manager/session/turn-recorder.ts +1291 -0
  1452. package/src/plugin/lifecycle.ts +20 -13
  1453. package/src/plugin/shell-hook.ts +64 -25
  1454. package/src/pricing/index.ts +5 -5
  1455. package/src/pricing/rates.source.json +5 -5
  1456. package/src/probe/context.ts +5 -3
  1457. package/src/probe/registry.ts +1 -1
  1458. package/src/prompt/coding-agent-doctrine.ts +1 -1
  1459. package/src/prompt/contributions.ts +28 -6
  1460. package/src/prompt/resident-learning.ts +2 -2
  1461. package/src/provider/collect-chat-completion.ts +3 -3
  1462. package/src/provider/conformance.ts +8 -5
  1463. package/src/provider/errors.ts +2 -2
  1464. package/src/provider/fallback.ts +8 -8
  1465. package/src/provider/idle-timeout.ts +4 -4
  1466. package/src/provider/instrumentation.ts +14 -7
  1467. package/src/provider/mock.ts +1 -1
  1468. package/src/provider/retry.ts +7 -7
  1469. package/src/provider/stream-text.ts +1 -1
  1470. package/src/provider/thinking-support.ts +2 -2
  1471. package/src/provider/token-budget.ts +2 -2
  1472. package/src/public-runtime.ts +213 -141
  1473. package/src/public-tools.ts +14 -7
  1474. package/src/public-types.ts +71 -59
  1475. package/src/rag/embedding.ts +1 -1
  1476. package/src/read-model/index.ts +2 -2
  1477. package/src/read-model/registry.ts +11 -11
  1478. package/src/read-model/session-status.ts +87 -0
  1479. package/src/registry/command/kernel-commands.ts +10 -10
  1480. package/src/registry/tool/dialect.ts +1 -1
  1481. package/src/registry/tool/execute.ts +20 -7
  1482. package/src/registry/tool/portable.ts +1 -1
  1483. package/src/registry/tool/presentation.ts +1 -1
  1484. package/src/registry/tool/schema.ts +1 -1
  1485. package/src/registry/tool/screen.ts +3 -3
  1486. package/src/runtime/bidi/index.ts +2 -2
  1487. package/src/runtime/bidi/session.ts +45 -34
  1488. package/src/runtime/jobs/awaited-jobs.ts +13 -13
  1489. package/src/runtime/jobs/registry.ts +11 -11
  1490. package/src/runtime/query/abandon-turn.ts +110 -0
  1491. package/src/runtime/query/approval-policy.ts +13 -13
  1492. package/src/runtime/query/callback-inference.ts +8 -5
  1493. package/src/runtime/query/cancelled-before-start.ts +96 -79
  1494. package/src/runtime/query/checkpoint.ts +519 -420
  1495. package/src/runtime/query/compact-session.ts +92 -0
  1496. package/src/runtime/query/context.ts +80 -136
  1497. package/src/runtime/query/events.ts +160 -126
  1498. package/src/runtime/query/executor/tool-call-admission.ts +6 -5
  1499. package/src/runtime/query/executor.ts +206 -111
  1500. package/src/runtime/query/file-evidence-seed.ts +2 -2
  1501. package/src/runtime/query/finalize-turn.ts +209 -0
  1502. package/src/runtime/query/fork/list.ts +20 -0
  1503. package/src/runtime/query/fork/mutate.ts +82 -0
  1504. package/src/runtime/query/fork/prepare.ts +92 -0
  1505. package/src/runtime/query/guard.ts +22 -22
  1506. package/src/runtime/query/guardrail-presets.ts +12 -12
  1507. package/src/runtime/query/guardrails.ts +11 -11
  1508. package/src/runtime/query/index.ts +1624 -1533
  1509. package/src/runtime/query/iteration/index.ts +304 -253
  1510. package/src/runtime/query/iteration/outstanding-work.ts +65 -65
  1511. package/src/runtime/query/iteration/phases/advisory.ts +16 -16
  1512. package/src/runtime/query/iteration/phases/checkpoint.ts +26 -10
  1513. package/src/runtime/query/iteration/phases/compaction.ts +74 -72
  1514. package/src/runtime/query/iteration/phases/context.ts +59 -60
  1515. package/src/runtime/query/iteration/phases/plan.ts +9 -6
  1516. package/src/runtime/query/iteration/phases/tool-review.ts +153 -28
  1517. package/src/runtime/query/iteration/phases/working-memory.ts +57 -22
  1518. package/src/runtime/query/iteration/step-context.ts +17 -0
  1519. package/src/runtime/query/iteration/step-shaping.ts +21 -24
  1520. package/src/runtime/query/iteration/stream-turn.ts +36 -32
  1521. package/src/runtime/query/plugin-hooks.ts +1 -1
  1522. package/src/runtime/query/prepare-turn.ts +932 -0
  1523. package/src/runtime/query/project-instructions.ts +5 -4
  1524. package/src/runtime/query/prompt-cache.ts +1 -1
  1525. package/src/runtime/query/prompt.ts +5 -5
  1526. package/src/runtime/query/question-park.ts +7 -7
  1527. package/src/runtime/query/release-turn.ts +157 -0
  1528. package/src/runtime/query/repeat-call.ts +7 -7
  1529. package/src/runtime/query/result.ts +123 -131
  1530. package/src/runtime/query/resume-pending.ts +101 -44
  1531. package/src/runtime/query/resume-session.ts +153 -0
  1532. package/src/runtime/query/review-policy.ts +147 -19
  1533. package/src/runtime/query/sandbox-lifecycle.ts +5 -5
  1534. package/src/runtime/query/session-storage.ts +302 -0
  1535. package/src/runtime/query/steering.ts +17 -4
  1536. package/src/runtime/query/token-budget.ts +59 -93
  1537. package/src/runtime/query/tool-call-budget.ts +14 -14
  1538. package/src/runtime/query/tool-executions.ts +77 -0
  1539. package/src/runtime/query/tool-grants.ts +3 -3
  1540. package/src/runtime/query/tool-output-budget.ts +4 -4
  1541. package/src/runtime/query/tool-pause.ts +8 -6
  1542. package/src/runtime/query/tooling.ts +22 -14
  1543. package/src/runtime/query/turn-state.ts +153 -0
  1544. package/src/sandbox/isolation.ts +2 -2
  1545. package/src/sandbox/provider/local.ts +8 -8
  1546. package/src/scheduler/completion-inbox.ts +36 -36
  1547. package/src/scheduler/delegating.ts +27 -13
  1548. package/src/scheduler/local.ts +49 -21
  1549. package/src/session/events/index.ts +10 -14
  1550. package/src/session/handoff/broadcast.ts +7 -7
  1551. package/src/session/handoff/events.ts +1 -1
  1552. package/src/session/handoff/index.ts +1 -1
  1553. package/src/session/handoff/single.ts +21 -21
  1554. package/src/session/handoff/version.ts +11 -7
  1555. package/src/session/home.ts +66 -0
  1556. package/src/session/index.ts +1 -0
  1557. package/src/session/log-hash.ts +115 -0
  1558. package/src/session/messages.ts +39 -0
  1559. package/src/session/paths.ts +449 -0
  1560. package/src/session/retention/archive.ts +13 -5
  1561. package/src/session/status/derive.ts +21 -21
  1562. package/src/session/workspace/git-worktree.ts +31 -2
  1563. package/src/session/workspace/index.ts +5 -8
  1564. package/src/session/workspace/shared-session.ts +354 -0
  1565. package/src/session-query/index.ts +152 -0
  1566. package/src/skills/registry.ts +1 -1
  1567. package/src/store/activity/memory.ts +5 -5
  1568. package/src/store/attachment/index.ts +5 -5
  1569. package/src/store/budget/disk.ts +243 -0
  1570. package/src/store/budget/index.ts +24 -0
  1571. package/src/store/budget/ledger.ts +836 -0
  1572. package/src/store/budget/memory.ts +39 -0
  1573. package/src/store/checkpoint/contract.ts +225 -0
  1574. package/src/store/checkpoint/disk.ts +209 -0
  1575. package/src/store/checkpoint/index.ts +22 -0
  1576. package/src/store/checkpoint/memory.ts +112 -0
  1577. package/src/store/checkpoint/prune.ts +93 -0
  1578. package/src/store/config/index.ts +1 -1
  1579. package/src/store/evidence/disk.ts +185 -81
  1580. package/src/store/evidence/index-page.ts +67 -140
  1581. package/src/store/evidence/source-text.ts +23 -28
  1582. package/src/store/evidence/types.ts +51 -41
  1583. package/src/store/feedback/conformance.ts +37 -35
  1584. package/src/store/feedback/disk.ts +61 -63
  1585. package/src/store/feedback/index.ts +1 -1
  1586. package/src/store/feedback/memory.ts +0 -0
  1587. package/src/store/feedback/types.ts +14 -13
  1588. package/src/store/index.ts +24 -28
  1589. package/src/store/memory/digest.ts +35 -0
  1590. package/src/store/memory/disk.ts +66 -20
  1591. package/src/store/memory/index-file.ts +121 -0
  1592. package/src/store/memory/index.ts +4 -2
  1593. package/src/store/memory/links.ts +37 -0
  1594. package/src/store/memory/markdown-format.ts +276 -0
  1595. package/src/store/memory/markdown.ts +741 -0
  1596. package/src/store/memory/memory.ts +39 -17
  1597. package/src/store/memory/naming.ts +195 -0
  1598. package/src/store/memory/origin.ts +35 -0
  1599. package/src/store/session/disk.ts +27 -200
  1600. package/src/store/session/index.ts +5 -9
  1601. package/src/store/session/memory.ts +1 -78
  1602. package/src/store/session-claim.ts +101 -0
  1603. package/src/store/session-index/fts.ts +215 -0
  1604. package/src/store/session-index/index.ts +253 -0
  1605. package/src/store/session-index/rebuild.ts +869 -0
  1606. package/src/store/session-index/refs.ts +164 -0
  1607. package/src/store/session-index/scan.ts +273 -0
  1608. package/src/store/session-index/sqlite.ts +772 -0
  1609. package/src/store/session-log/chain.ts +314 -0
  1610. package/src/store/session-log/conformance.ts +487 -0
  1611. package/src/store/session-log/core.ts +809 -0
  1612. package/src/store/session-log/disk.ts +217 -0
  1613. package/src/store/session-log/fold.ts +368 -0
  1614. package/src/store/session-log/heal.ts +44 -0
  1615. package/src/store/session-log/held-leases.ts +103 -0
  1616. package/src/store/session-log/index.ts +87 -0
  1617. package/src/store/session-log/lease.ts +354 -0
  1618. package/src/store/session-log/memory.ts +111 -0
  1619. package/src/store/session-log/spill.ts +311 -0
  1620. package/src/store/task/context.ts +33 -0
  1621. package/src/store/task/disk.ts +122 -141
  1622. package/src/store/task/memory.ts +14 -8
  1623. package/src/store/topic/index.ts +2 -2
  1624. package/src/store/topic/objective.ts +12 -3
  1625. package/src/store/topic/state.ts +1 -1
  1626. package/src/streaming/coalesce.ts +8 -7
  1627. package/src/telemetry/attributes.ts +10 -9
  1628. package/src/telemetry/metrics.ts +6 -6
  1629. package/src/telemetry/runtime-accessors.ts +1 -1
  1630. package/src/test-support/ids.ts +5 -6
  1631. package/src/testing.ts +11 -16
  1632. package/src/tools/advisory/index.ts +1 -1
  1633. package/src/tools/builtins/bash.ts +43 -5
  1634. package/src/tools/builtins/content-fingerprint.ts +2 -2
  1635. package/src/tools/builtins/edit-apply.ts +1 -1
  1636. package/src/tools/builtins/edit.ts +3 -0
  1637. package/src/tools/builtins/glob.ts +3 -0
  1638. package/src/tools/builtins/grep.ts +3 -0
  1639. package/src/tools/builtins/job.ts +5 -5
  1640. package/src/tools/builtins/ls.ts +3 -0
  1641. package/src/tools/builtins/lsp.ts +5 -2
  1642. package/src/tools/builtins/read-file.ts +3 -0
  1643. package/src/tools/builtins/run-code.ts +11 -11
  1644. package/src/tools/builtins/skill.ts +3 -3
  1645. package/src/tools/builtins/wait-for-job-bounds.ts +6 -6
  1646. package/src/tools/builtins/wait-for-job.ts +3 -3
  1647. package/src/tools/builtins/web-guidance.ts +2 -2
  1648. package/src/tools/builtins/web.ts +3 -3
  1649. package/src/tools/builtins/write-file.ts +3 -0
  1650. package/src/tools/coordinator/agent.ts +8 -8
  1651. package/src/tools/coordinator/ask-user-question.ts +16 -14
  1652. package/src/tools/coordinator/index.ts +64 -54
  1653. package/src/tools/coordinator/outcome.ts +7 -7
  1654. package/src/tools/coordinator/plan-dependencies.ts +1 -1
  1655. package/src/tools/coordinator/wait-with-idle-bound.ts +6 -6
  1656. package/src/tools/defineTool.ts +9 -1
  1657. package/src/tools/env-scrub.ts +1 -1
  1658. package/src/tools/goal/index.ts +16 -12
  1659. package/src/tools/memory/fields.ts +26 -0
  1660. package/src/tools/memory/read.ts +75 -8
  1661. package/src/tools/memory/resolve.ts +37 -0
  1662. package/src/tools/memory/save.ts +54 -18
  1663. package/src/tools/memory/search.ts +9 -5
  1664. package/src/tools/memory/update.ts +43 -7
  1665. package/src/tools/paths.ts +87 -27
  1666. package/src/tools/posix-path.ts +1 -1
  1667. package/src/tools/resident-history.ts +1 -1
  1668. package/src/tools/resident-tool-evidence.ts +1 -1
  1669. package/src/tools/task/create.ts +11 -4
  1670. package/src/tools/task/index.ts +20 -4
  1671. package/src/tools/task/list.ts +16 -7
  1672. package/src/tools/task/present.ts +102 -0
  1673. package/src/tools/task/update.ts +9 -1
  1674. package/src/turn/LimitChecker.ts +99 -0
  1675. package/src/turn/command-gate.ts +294 -0
  1676. package/src/turn/drain.ts +324 -0
  1677. package/src/turn/evidence-query.ts +333 -0
  1678. package/src/turn/evidence-recall.ts +860 -0
  1679. package/src/turn/index.ts +38 -0
  1680. package/src/turn/json-claim-verifier.ts +298 -0
  1681. package/src/turn/memory-promoter.ts +160 -0
  1682. package/src/turn/memory-recall.ts +285 -0
  1683. package/src/turn/reporter.ts +469 -0
  1684. package/src/types/activity/index.ts +2 -2
  1685. package/src/types/advisory/config.ts +7 -7
  1686. package/src/types/agent/base.ts +74 -44
  1687. package/src/types/agent/core.ts +10 -10
  1688. package/src/types/agent/delegate.ts +2 -2
  1689. package/src/types/agent/factory.ts +8 -4
  1690. package/src/types/agent/manager.ts +6 -6
  1691. package/src/types/agent/pipeline.ts +5 -4
  1692. package/src/types/agent/reactive.ts +11 -10
  1693. package/src/types/agent/router.ts +1 -1
  1694. package/src/types/agent/scheduler.ts +28 -11
  1695. package/src/types/agent/supervisor.ts +13 -13
  1696. package/src/types/agent/task.ts +53 -12
  1697. package/src/types/agent/working-memory.ts +6 -4
  1698. package/src/types/bidi/index.ts +31 -12
  1699. package/src/types/bus/index.ts +32 -26
  1700. package/src/types/code-navigation/index.ts +1 -1
  1701. package/src/types/common/index.ts +12 -26
  1702. package/src/types/connector/core.ts +2 -2
  1703. package/src/types/connector/definition.ts +1 -1
  1704. package/src/types/connector/mcp.ts +1 -1
  1705. package/src/types/errors/catalog.ts +4 -4
  1706. package/src/types/errors/index.ts +5 -5
  1707. package/src/types/guardrail/index.ts +12 -10
  1708. package/src/types/hitl/index.ts +81 -125
  1709. package/src/types/hitl/policy.ts +8 -6
  1710. package/src/types/ids/brand.ts +10 -2
  1711. package/src/types/ids/index.ts +10 -4
  1712. package/src/types/memory/index.ts +53 -0
  1713. package/src/types/message/index.ts +4 -4
  1714. package/src/types/plan/index.ts +5 -3
  1715. package/src/types/plugin/index.ts +41 -24
  1716. package/src/types/probe/event-kind.ts +3 -3
  1717. package/src/types/probe/registry.ts +3 -2
  1718. package/src/types/project/entity.ts +3 -3
  1719. package/src/types/provider/config.ts +3 -3
  1720. package/src/types/provider/error.ts +1 -1
  1721. package/src/types/provider/errors.ts +3 -3
  1722. package/src/types/provider/interface.ts +5 -5
  1723. package/src/types/router/task-router.ts +1 -1
  1724. package/src/types/sandbox/index.ts +12 -12
  1725. package/src/types/session/answer-review.ts +85 -0
  1726. package/src/types/session/audit.ts +167 -0
  1727. package/src/types/session/cancel-cause.ts +60 -0
  1728. package/src/types/session/checkpoint.ts +167 -0
  1729. package/src/types/session/config.ts +212 -0
  1730. package/src/types/session/derive-status.ts +61 -0
  1731. package/src/types/session/durable.ts +150 -0
  1732. package/src/types/session/entity.ts +1 -1
  1733. package/src/types/session/events.ts +1195 -0
  1734. package/src/types/session/fork.ts +52 -0
  1735. package/src/types/session/ids.ts +1 -1
  1736. package/src/types/session/index.ts +24 -4
  1737. package/src/types/session/lineage.ts +15 -0
  1738. package/src/types/session/log-cursor.ts +69 -0
  1739. package/src/types/session/memory-promotion.ts +116 -0
  1740. package/src/types/session/messages.ts +1 -1
  1741. package/src/types/session/prepare-step.ts +299 -0
  1742. package/src/types/session/records.ts +931 -0
  1743. package/src/types/session/step.ts +214 -0
  1744. package/src/types/session/stop-reason.ts +83 -0
  1745. package/src/types/session/store.ts +5 -52
  1746. package/src/types/session/tool-execution.ts +32 -0
  1747. package/src/types/session/turn-state.ts +136 -0
  1748. package/src/types/session/turn.ts +289 -0
  1749. package/src/types/structured-output/index.ts +4 -4
  1750. package/src/types/summary/deliverable.ts +4 -4
  1751. package/src/types/task/index.ts +8 -4
  1752. package/src/types/tool/index.ts +74 -27
  1753. package/src/types/topic/entity.ts +6 -6
  1754. package/src/types/topic/objective.ts +7 -5
  1755. package/src/types/topic/state.ts +4 -4
  1756. package/src/types/topic/store.ts +1 -1
  1757. package/src/types/workspace/index.ts +8 -8
  1758. package/src/types/workspace/ref.ts +3 -3
  1759. package/src/types/workspace/shared-session.ts +65 -0
  1760. package/src/utils/abort.ts +4 -4
  1761. package/src/utils/atomic-write.ts +67 -4
  1762. package/src/utils/cost.ts +11 -12
  1763. package/src/utils/env.ts +1 -1
  1764. package/src/utils/id.ts +25 -18
  1765. package/src/utils/log/attributes.ts +2 -2
  1766. package/src/utils/log/create-logger.ts +1 -1
  1767. package/src/utils/log/redact.ts +1 -1
  1768. package/src/utils/log/sinks.ts +2 -2
  1769. package/src/utils/log/types.ts +1 -1
  1770. package/src/utils/shell-compress.ts +2 -2
  1771. package/src/utils/uuidv7.ts +107 -0
  1772. package/src/vault/instrumentation.ts +21 -8
  1773. package/dist/constants/emergency.d.ts +0 -4
  1774. package/dist/constants/emergency.d.ts.map +0 -1
  1775. package/dist/constants/emergency.js +0 -4
  1776. package/dist/constants/emergency.js.map +0 -1
  1777. package/dist/contracts/run-status.d.ts +0 -17
  1778. package/dist/contracts/run-status.d.ts.map +0 -1
  1779. package/dist/contracts/run-status.js +0 -41
  1780. package/dist/contracts/run-status.js.map +0 -1
  1781. package/dist/eval/from-run.d.ts +0 -30
  1782. package/dist/eval/from-run.d.ts.map +0 -1
  1783. package/dist/eval/from-run.js +0 -46
  1784. package/dist/eval/from-run.js.map +0 -1
  1785. package/dist/manager/run/emergency.d.ts +0 -19
  1786. package/dist/manager/run/emergency.d.ts.map +0 -1
  1787. package/dist/manager/run/emergency.js +0 -122
  1788. package/dist/manager/run/emergency.js.map +0 -1
  1789. package/dist/manager/run/persistence.d.ts +0 -312
  1790. package/dist/manager/run/persistence.d.ts.map +0 -1
  1791. package/dist/manager/run/persistence.js +0 -656
  1792. package/dist/manager/run/persistence.js.map +0 -1
  1793. package/dist/read-model/run-status.d.ts +0 -43
  1794. package/dist/read-model/run-status.d.ts.map +0 -1
  1795. package/dist/read-model/run-status.js +0 -89
  1796. package/dist/read-model/run-status.js.map +0 -1
  1797. package/dist/run/LimitChecker.d.ts +0 -30
  1798. package/dist/run/LimitChecker.d.ts.map +0 -1
  1799. package/dist/run/LimitChecker.js +0 -57
  1800. package/dist/run/LimitChecker.js.map +0 -1
  1801. package/dist/run/command-gate.d.ts +0 -107
  1802. package/dist/run/command-gate.d.ts.map +0 -1
  1803. package/dist/run/command-gate.js +0 -221
  1804. package/dist/run/command-gate.js.map +0 -1
  1805. package/dist/run/drain.d.ts +0 -204
  1806. package/dist/run/drain.d.ts.map +0 -1
  1807. package/dist/run/drain.js +0 -238
  1808. package/dist/run/drain.js.map +0 -1
  1809. package/dist/run/evidence-query.d.ts +0 -41
  1810. package/dist/run/evidence-query.d.ts.map +0 -1
  1811. package/dist/run/evidence-query.js +0 -270
  1812. package/dist/run/evidence-query.js.map +0 -1
  1813. package/dist/run/evidence-recall.d.ts +0 -99
  1814. package/dist/run/evidence-recall.d.ts.map +0 -1
  1815. package/dist/run/evidence-recall.js +0 -633
  1816. package/dist/run/evidence-recall.js.map +0 -1
  1817. package/dist/run/index.d.ts +0 -19
  1818. package/dist/run/index.d.ts.map +0 -1
  1819. package/dist/run/index.js +0 -11
  1820. package/dist/run/index.js.map +0 -1
  1821. package/dist/run/json-claim-verifier.d.ts +0 -83
  1822. package/dist/run/json-claim-verifier.d.ts.map +0 -1
  1823. package/dist/run/json-claim-verifier.js +0 -200
  1824. package/dist/run/json-claim-verifier.js.map +0 -1
  1825. package/dist/run/memory-promoter.d.ts +0 -38
  1826. package/dist/run/memory-promoter.d.ts.map +0 -1
  1827. package/dist/run/memory-promoter.js +0 -109
  1828. package/dist/run/memory-promoter.js.map +0 -1
  1829. package/dist/run/memory-recall.d.ts +0 -25
  1830. package/dist/run/memory-recall.d.ts.map +0 -1
  1831. package/dist/run/memory-recall.js +0 -228
  1832. package/dist/run/memory-recall.js.map +0 -1
  1833. package/dist/run/preparation-context-error.d.ts.map +0 -1
  1834. package/dist/run/preparation-context-error.js.map +0 -1
  1835. package/dist/run/reporter.d.ts +0 -8
  1836. package/dist/run/reporter.d.ts.map +0 -1
  1837. package/dist/run/reporter.js +0 -420
  1838. package/dist/run/reporter.js.map +0 -1
  1839. package/dist/run/token-budget.d.ts +0 -116
  1840. package/dist/run/token-budget.d.ts.map +0 -1
  1841. package/dist/run/token-budget.js +0 -626
  1842. package/dist/run/token-budget.js.map +0 -1
  1843. package/dist/run/workspace-fingerprint.d.ts.map +0 -1
  1844. package/dist/run/workspace-fingerprint.js.map +0 -1
  1845. package/dist/run-query/index.d.ts +0 -90
  1846. package/dist/run-query/index.d.ts.map +0 -1
  1847. package/dist/run-query/index.js +0 -127
  1848. package/dist/run-query/index.js.map +0 -1
  1849. package/dist/runtime/query/finalize-run.d.ts +0 -55
  1850. package/dist/runtime/query/finalize-run.d.ts.map +0 -1
  1851. package/dist/runtime/query/finalize-run.js +0 -113
  1852. package/dist/runtime/query/finalize-run.js.map +0 -1
  1853. package/dist/runtime/query/prepare-run.d.ts +0 -94
  1854. package/dist/runtime/query/prepare-run.d.ts.map +0 -1
  1855. package/dist/runtime/query/prepare-run.js +0 -589
  1856. package/dist/runtime/query/prepare-run.js.map +0 -1
  1857. package/dist/runtime/query/release-run.d.ts +0 -56
  1858. package/dist/runtime/query/release-run.d.ts.map +0 -1
  1859. package/dist/runtime/query/release-run.js +0 -101
  1860. package/dist/runtime/query/release-run.js.map +0 -1
  1861. package/dist/runtime/query/replay/list.d.ts +0 -40
  1862. package/dist/runtime/query/replay/list.d.ts.map +0 -1
  1863. package/dist/runtime/query/replay/list.js +0 -38
  1864. package/dist/runtime/query/replay/list.js.map +0 -1
  1865. package/dist/runtime/query/replay/mutate.d.ts +0 -17
  1866. package/dist/runtime/query/replay/mutate.d.ts.map +0 -1
  1867. package/dist/runtime/query/replay/mutate.js +0 -69
  1868. package/dist/runtime/query/replay/mutate.js.map +0 -1
  1869. package/dist/runtime/query/replay/prepare.d.ts +0 -66
  1870. package/dist/runtime/query/replay/prepare.d.ts.map +0 -1
  1871. package/dist/runtime/query/replay/prepare.js +0 -81
  1872. package/dist/runtime/query/replay/prepare.js.map +0 -1
  1873. package/dist/runtime/query/resume-run.d.ts +0 -103
  1874. package/dist/runtime/query/resume-run.d.ts.map +0 -1
  1875. package/dist/runtime/query/resume-run.js +0 -105
  1876. package/dist/runtime/query/resume-run.js.map +0 -1
  1877. package/dist/runtime/query/run-state.d.ts +0 -57
  1878. package/dist/runtime/query/run-state.d.ts.map +0 -1
  1879. package/dist/runtime/query/run-state.js +0 -96
  1880. package/dist/runtime/query/run-state.js.map +0 -1
  1881. package/dist/session/workspace/path-builder.d.ts +0 -50
  1882. package/dist/session/workspace/path-builder.d.ts.map +0 -1
  1883. package/dist/session/workspace/path-builder.js +0 -51
  1884. package/dist/session/workspace/path-builder.js.map +0 -1
  1885. package/dist/session/workspace/shared-run.d.ts +0 -112
  1886. package/dist/session/workspace/shared-run.d.ts.map +0 -1
  1887. package/dist/session/workspace/shared-run.js +0 -290
  1888. package/dist/session/workspace/shared-run.js.map +0 -1
  1889. package/dist/store/evidence/compaction-archive.d.ts +0 -109
  1890. package/dist/store/evidence/compaction-archive.d.ts.map +0 -1
  1891. package/dist/store/evidence/compaction-archive.js +0 -125
  1892. package/dist/store/evidence/compaction-archive.js.map +0 -1
  1893. package/dist/store/evidence/linked.d.ts +0 -9
  1894. package/dist/store/evidence/linked.d.ts.map +0 -1
  1895. package/dist/store/evidence/linked.js +0 -314
  1896. package/dist/store/evidence/linked.js.map +0 -1
  1897. package/dist/store/evidence/record-chain.d.ts +0 -42
  1898. package/dist/store/evidence/record-chain.d.ts.map +0 -1
  1899. package/dist/store/evidence/record-chain.js +0 -111
  1900. package/dist/store/evidence/record-chain.js.map +0 -1
  1901. package/dist/store/run/checkpoint-disk.d.ts +0 -98
  1902. package/dist/store/run/checkpoint-disk.d.ts.map +0 -1
  1903. package/dist/store/run/checkpoint-disk.js +0 -190
  1904. package/dist/store/run/checkpoint-disk.js.map +0 -1
  1905. package/dist/store/run/checkpoint-memory.d.ts +0 -51
  1906. package/dist/store/run/checkpoint-memory.d.ts.map +0 -1
  1907. package/dist/store/run/checkpoint-memory.js +0 -178
  1908. package/dist/store/run/checkpoint-memory.js.map +0 -1
  1909. package/dist/store/run/claim-disk.d.ts +0 -130
  1910. package/dist/store/run/claim-disk.d.ts.map +0 -1
  1911. package/dist/store/run/claim-disk.js +0 -570
  1912. package/dist/store/run/claim-disk.js.map +0 -1
  1913. package/dist/store/run/conformance.d.ts +0 -159
  1914. package/dist/store/run/conformance.d.ts.map +0 -1
  1915. package/dist/store/run/conformance.js +0 -466
  1916. package/dist/store/run/conformance.js.map +0 -1
  1917. package/dist/store/run/disk.d.ts +0 -189
  1918. package/dist/store/run/disk.d.ts.map +0 -1
  1919. package/dist/store/run/disk.js +0 -804
  1920. package/dist/store/run/disk.js.map +0 -1
  1921. package/dist/store/run/listing.d.ts +0 -118
  1922. package/dist/store/run/listing.d.ts.map +0 -1
  1923. package/dist/store/run/listing.js +0 -333
  1924. package/dist/store/run/listing.js.map +0 -1
  1925. package/dist/store/run/memory.d.ts +0 -55
  1926. package/dist/store/run/memory.d.ts.map +0 -1
  1927. package/dist/store/run/memory.js +0 -176
  1928. package/dist/store/run/memory.js.map +0 -1
  1929. package/dist/store/run/token-budget-disk.d.ts +0 -37
  1930. package/dist/store/run/token-budget-disk.d.ts.map +0 -1
  1931. package/dist/store/run/token-budget-disk.js +0 -211
  1932. package/dist/store/run/token-budget-disk.js.map +0 -1
  1933. package/dist/store/run/tool-executions.d.ts +0 -13
  1934. package/dist/store/run/tool-executions.d.ts.map +0 -1
  1935. package/dist/store/run/tool-executions.js +0 -99
  1936. package/dist/store/run/tool-executions.js.map +0 -1
  1937. package/dist/store/session/sqlite.d.ts +0 -57
  1938. package/dist/store/session/sqlite.d.ts.map +0 -1
  1939. package/dist/store/session/sqlite.js +0 -430
  1940. package/dist/store/session/sqlite.js.map +0 -1
  1941. package/dist/types/run/answer-review.d.ts +0 -79
  1942. package/dist/types/run/answer-review.d.ts.map +0 -1
  1943. package/dist/types/run/answer-review.js.map +0 -1
  1944. package/dist/types/run/audit.d.ts +0 -150
  1945. package/dist/types/run/audit.d.ts.map +0 -1
  1946. package/dist/types/run/audit.js +0 -39
  1947. package/dist/types/run/audit.js.map +0 -1
  1948. package/dist/types/run/cancel-cause.d.ts +0 -49
  1949. package/dist/types/run/cancel-cause.d.ts.map +0 -1
  1950. package/dist/types/run/cancel-cause.js +0 -39
  1951. package/dist/types/run/cancel-cause.js.map +0 -1
  1952. package/dist/types/run/checkpoint-store.d.ts +0 -511
  1953. package/dist/types/run/checkpoint-store.d.ts.map +0 -1
  1954. package/dist/types/run/checkpoint-store.js +0 -12
  1955. package/dist/types/run/checkpoint-store.js.map +0 -1
  1956. package/dist/types/run/config.d.ts +0 -207
  1957. package/dist/types/run/config.d.ts.map +0 -1
  1958. package/dist/types/run/config.js.map +0 -1
  1959. package/dist/types/run/derive-status.d.ts +0 -29
  1960. package/dist/types/run/derive-status.d.ts.map +0 -1
  1961. package/dist/types/run/derive-status.js +0 -49
  1962. package/dist/types/run/derive-status.js.map +0 -1
  1963. package/dist/types/run/emergency.d.ts +0 -32
  1964. package/dist/types/run/emergency.d.ts.map +0 -1
  1965. package/dist/types/run/emergency.js +0 -6
  1966. package/dist/types/run/emergency.js.map +0 -1
  1967. package/dist/types/run/entity.d.ts +0 -151
  1968. package/dist/types/run/entity.d.ts.map +0 -1
  1969. package/dist/types/run/entity.js +0 -2
  1970. package/dist/types/run/entity.js.map +0 -1
  1971. package/dist/types/run/event-cursor.d.ts +0 -90
  1972. package/dist/types/run/event-cursor.d.ts.map +0 -1
  1973. package/dist/types/run/event-cursor.js +0 -47
  1974. package/dist/types/run/event-cursor.js.map +0 -1
  1975. package/dist/types/run/events.d.ts +0 -1064
  1976. package/dist/types/run/events.d.ts.map +0 -1
  1977. package/dist/types/run/events.js +0 -31
  1978. package/dist/types/run/events.js.map +0 -1
  1979. package/dist/types/run/index.d.ts +0 -24
  1980. package/dist/types/run/index.d.ts.map +0 -1
  1981. package/dist/types/run/index.js +0 -23
  1982. package/dist/types/run/index.js.map +0 -1
  1983. package/dist/types/run/lineage.d.ts +0 -15
  1984. package/dist/types/run/lineage.d.ts.map +0 -1
  1985. package/dist/types/run/lineage.js.map +0 -1
  1986. package/dist/types/run/memory-promotion.d.ts +0 -90
  1987. package/dist/types/run/memory-promotion.d.ts.map +0 -1
  1988. package/dist/types/run/memory-promotion.js +0 -38
  1989. package/dist/types/run/memory-promotion.js.map +0 -1
  1990. package/dist/types/run/metadata.d.ts +0 -47
  1991. package/dist/types/run/metadata.d.ts.map +0 -1
  1992. package/dist/types/run/metadata.js +0 -2
  1993. package/dist/types/run/metadata.js.map +0 -1
  1994. package/dist/types/run/prepare-step.d.ts +0 -271
  1995. package/dist/types/run/prepare-step.d.ts.map +0 -1
  1996. package/dist/types/run/prepare-step.js.map +0 -1
  1997. package/dist/types/run/replay.d.ts +0 -53
  1998. package/dist/types/run/replay.d.ts.map +0 -1
  1999. package/dist/types/run/replay.js +0 -15
  2000. package/dist/types/run/replay.js.map +0 -1
  2001. package/dist/types/run/schema-version.d.ts +0 -19
  2002. package/dist/types/run/schema-version.d.ts.map +0 -1
  2003. package/dist/types/run/schema-version.js +0 -18
  2004. package/dist/types/run/schema-version.js.map +0 -1
  2005. package/dist/types/run/state.d.ts +0 -109
  2006. package/dist/types/run/state.d.ts.map +0 -1
  2007. package/dist/types/run/state.js +0 -109
  2008. package/dist/types/run/state.js.map +0 -1
  2009. package/dist/types/run/status.d.ts +0 -26
  2010. package/dist/types/run/status.d.ts.map +0 -1
  2011. package/dist/types/run/status.js +0 -2
  2012. package/dist/types/run/status.js.map +0 -1
  2013. package/dist/types/run/step.d.ts +0 -198
  2014. package/dist/types/run/step.d.ts.map +0 -1
  2015. package/dist/types/run/step.js +0 -26
  2016. package/dist/types/run/step.js.map +0 -1
  2017. package/dist/types/run/stop-reason.d.ts +0 -67
  2018. package/dist/types/run/stop-reason.d.ts.map +0 -1
  2019. package/dist/types/run/stop-reason.js.map +0 -1
  2020. package/dist/types/run/store.d.ts +0 -300
  2021. package/dist/types/run/store.d.ts.map +0 -1
  2022. package/dist/types/run/store.js +0 -2
  2023. package/dist/types/run/store.js.map +0 -1
  2024. package/dist/types/run/subsession-events.d.ts +0 -64
  2025. package/dist/types/run/subsession-events.d.ts.map +0 -1
  2026. package/dist/types/run/subsession-events.js +0 -2
  2027. package/dist/types/run/subsession-events.js.map +0 -1
  2028. package/dist/types/run/token-budget-store.d.ts +0 -29
  2029. package/dist/types/run/token-budget-store.d.ts.map +0 -1
  2030. package/dist/types/run/token-budget-store.js +0 -25
  2031. package/dist/types/run/token-budget-store.js.map +0 -1
  2032. package/dist/types/workspace/shared-run.d.ts +0 -61
  2033. package/dist/types/workspace/shared-run.d.ts.map +0 -1
  2034. package/dist/types/workspace/shared-run.js +0 -2
  2035. package/dist/types/workspace/shared-run.js.map +0 -1
  2036. package/src/constants/emergency.ts +0 -3
  2037. package/src/contracts/run-status.ts +0 -43
  2038. package/src/eval/from-run.ts +0 -48
  2039. package/src/manager/run/emergency.ts +0 -148
  2040. package/src/manager/run/persistence.ts +0 -746
  2041. package/src/read-model/run-status.ts +0 -127
  2042. package/src/run/LimitChecker.ts +0 -99
  2043. package/src/run/command-gate.ts +0 -294
  2044. package/src/run/drain.ts +0 -403
  2045. package/src/run/evidence-query.ts +0 -333
  2046. package/src/run/evidence-recall.ts +0 -854
  2047. package/src/run/index.ts +0 -42
  2048. package/src/run/json-claim-verifier.ts +0 -298
  2049. package/src/run/memory-promoter.ts +0 -147
  2050. package/src/run/memory-recall.ts +0 -254
  2051. package/src/run/reporter.ts +0 -469
  2052. package/src/run/token-budget.ts +0 -733
  2053. package/src/run-query/index.ts +0 -177
  2054. package/src/runtime/query/finalize-run.ts +0 -192
  2055. package/src/runtime/query/prepare-run.ts +0 -718
  2056. package/src/runtime/query/release-run.ts +0 -168
  2057. package/src/runtime/query/replay/list.ts +0 -66
  2058. package/src/runtime/query/replay/mutate.ts +0 -82
  2059. package/src/runtime/query/replay/prepare.ts +0 -147
  2060. package/src/runtime/query/resume-run.ts +0 -202
  2061. package/src/runtime/query/run-state.ts +0 -138
  2062. package/src/session/workspace/path-builder.ts +0 -72
  2063. package/src/session/workspace/shared-run.ts +0 -354
  2064. package/src/store/evidence/compaction-archive.ts +0 -139
  2065. package/src/store/evidence/linked.ts +0 -365
  2066. package/src/store/evidence/record-chain.ts +0 -108
  2067. package/src/store/run/checkpoint-disk.ts +0 -264
  2068. package/src/store/run/checkpoint-memory.ts +0 -216
  2069. package/src/store/run/claim-disk.ts +0 -638
  2070. package/src/store/run/conformance.ts +0 -728
  2071. package/src/store/run/disk.ts +0 -911
  2072. package/src/store/run/listing.ts +0 -422
  2073. package/src/store/run/memory.ts +0 -204
  2074. package/src/store/run/token-budget-disk.ts +0 -250
  2075. package/src/store/run/tool-executions.ts +0 -112
  2076. package/src/store/session/sqlite.ts +0 -584
  2077. package/src/types/run/answer-review.ts +0 -84
  2078. package/src/types/run/audit.ts +0 -164
  2079. package/src/types/run/cancel-cause.ts +0 -60
  2080. package/src/types/run/checkpoint-store.ts +0 -545
  2081. package/src/types/run/config.ts +0 -221
  2082. package/src/types/run/derive-status.ts +0 -62
  2083. package/src/types/run/emergency.ts +0 -28
  2084. package/src/types/run/entity.ts +0 -161
  2085. package/src/types/run/event-cursor.ts +0 -118
  2086. package/src/types/run/events.ts +0 -1146
  2087. package/src/types/run/index.ts +0 -32
  2088. package/src/types/run/lineage.ts +0 -15
  2089. package/src/types/run/memory-promotion.ts +0 -112
  2090. package/src/types/run/metadata.ts +0 -51
  2091. package/src/types/run/prepare-step.ts +0 -292
  2092. package/src/types/run/replay.ts +0 -61
  2093. package/src/types/run/schema-version.ts +0 -19
  2094. package/src/types/run/state.ts +0 -206
  2095. package/src/types/run/status.ts +0 -33
  2096. package/src/types/run/step.ts +0 -217
  2097. package/src/types/run/stop-reason.ts +0 -83
  2098. package/src/types/run/store.ts +0 -325
  2099. package/src/types/run/subsession-events.ts +0 -71
  2100. package/src/types/run/token-budget-store.ts +0 -54
  2101. package/src/types/workspace/shared-run.ts +0 -65
  2102. /package/dist/{run → turn}/preparation-context-error.d.ts +0 -0
  2103. /package/dist/{run → turn}/preparation-context-error.js +0 -0
  2104. /package/dist/{run → turn}/workspace-fingerprint.d.ts +0 -0
  2105. /package/dist/{run → turn}/workspace-fingerprint.js +0 -0
  2106. /package/dist/types/{run → session}/answer-review.js +0 -0
  2107. /package/dist/types/{run → session}/config.js +0 -0
  2108. /package/dist/types/{run → session}/lineage.js +0 -0
  2109. /package/dist/types/{run → session}/prepare-step.js +0 -0
  2110. /package/dist/types/{run → session}/stop-reason.js +0 -0
  2111. /package/src/{run → turn}/preparation-context-error.ts +0 -0
  2112. /package/src/{run → turn}/workspace-fingerprint.ts +0 -0
@@ -0,0 +1,932 @@
1
+ import { drainQueuedMessages } from '../../agents/handle.js'
2
+ import {
3
+ type ToolHistoryRepairReport,
4
+ repairToolMessageHistory,
5
+ toolHistoryRepairChanged,
6
+ } from '../../compaction/dangling.js'
7
+ import { type RecordedMessage, readFoldedHistory } from '../../manager/session/turn-recorder.js'
8
+ import { resolveModelPricing } from '../../pricing/index.js'
9
+ import { isCallerAbortError } from '../../provider/errors.js'
10
+ import {
11
+ type ProviderChainMember,
12
+ type ServingMember,
13
+ withProviderFallback,
14
+ } from '../../provider/fallback.js'
15
+ import { resolveStreamIdleTimeoutMs, withStreamIdleTimeout } from '../../provider/idle-timeout.js'
16
+ import { withProviderRetry } from '../../provider/retry.js'
17
+ import { withTokenBudget } from '../../provider/token-budget.js'
18
+ import { resolveAttachments } from '../../store/attachment/index.js'
19
+ import type { SessionTokenBudget } from '../../store/budget/index.js'
20
+ import { NAMZU } from '../../telemetry/attributes.js'
21
+ import type { SerializedSpanContext } from '../../telemetry/attributes.js'
22
+ import type { TaskScheduler } from '../../types/agent/scheduler.js'
23
+ import { NamzuError } from '../../types/errors/index.js'
24
+ import { autoApproveHandler } from '../../types/hitl/index.js'
25
+ import type { SessionApprovalPolicy } from '../../types/hitl/policy.js'
26
+ import type { CheckpointId, MessageId, PlanId, TurnId } from '../../types/ids/index.js'
27
+ import type { Message, UserMessage } from '../../types/message/index.js'
28
+ import type { LLMProvider } from '../../types/provider/index.js'
29
+ import { cancelCauseOf } from '../../types/session/cancel-cause.js'
30
+ import type { TurnConfig } from '../../types/session/index.js'
31
+ import type { TurnState } from '../../types/session/turn-state.js'
32
+ import { TurnInProgressError } from '../../types/session/turn.js'
33
+ import type { ModelPricing } from '../../utils/cost.js'
34
+ import { toErrorMessage } from '../../utils/error.js'
35
+ import { generateCheckpointId, generateTurnId } from '../../utils/id.js'
36
+ import { errorAttributes } from '../../utils/log/exception.js'
37
+ import type { Logger } from '../../utils/logger.js'
38
+ import { AUTO_APPROVE_POLICY_NAME, createSessionApprovalPolicy } from './approval-policy.js'
39
+ import { type TurnContext, TurnContextFactory } from './context.js'
40
+ import { EventTranslator } from './events.js'
41
+ import type { QueryParams } from './index.js'
42
+ import { isCompactionMessage } from './iteration/phases/compaction.js'
43
+ import { isWorkingMemoryMessage } from './iteration/phases/working-memory.js'
44
+ import {
45
+ awaitProjectInstructionCallback,
46
+ collapseProjectInstructionSnapshots,
47
+ replaceProjectInstructionSnapshot,
48
+ } from './project-instructions.js'
49
+ import type { PromptCache } from './prompt-cache.js'
50
+ import { resolveMaxRequestRichContentBytes } from './request-rich-content.js'
51
+ import { resolveSandboxTeardownTimeoutMs } from './sandbox-lifecycle.js'
52
+ import { type SessionStorage, resolveSessionStorage } from './session-storage.js'
53
+ import { type SavedBudgetReference, resolveQueryBudget } from './token-budget.js'
54
+ import { assertMaxToolCalls } from './tool-call-budget.js'
55
+
56
+ /**
57
+ * Everything `query()` needs from its prelude, handed over as one value.
58
+ *
59
+ * The prelude is where the turn is DECIDED — what it refuses, which provider
60
+ * chain serves it, which history it starts from — and it is deliberately
61
+ * separated from the turn that then executes, because the two answer different
62
+ * questions and only the second one streams. Nothing here is a bag of mutable
63
+ * state passed back in: each field is a value the prelude produced and the
64
+ * body reads afterwards.
65
+ */
66
+ export interface PreparedTurn {
67
+ readonly turnConfig: TurnConfig
68
+ readonly budget: SessionTokenBudget
69
+ /** Where the session's log, checkpoints and ledger live. */
70
+ readonly storage: SessionStorage
71
+ readonly log: Logger
72
+ readonly ctx: TurnContext
73
+ readonly resilientProvider: LLMProvider
74
+ readonly serving: { current: ServingMember }
75
+ readonly providerContextWindow: number | undefined
76
+ readonly modelContextWindows: Map<string, number | undefined>
77
+ readonly approvalPolicy: SessionApprovalPolicy
78
+ readonly eventTranslator: EventTranslator
79
+ readonly executeUserInterruptHooks: (terminalError: unknown) => Promise<void>
80
+ /**
81
+ * Repair reports this turn owes its log.
82
+ *
83
+ * Created here and KEPT: the turn's resume path pushes one more as it
84
+ * restores a checkpoint, and the turn emits the whole list once it is
85
+ * writable. The array identity is part of the contract, not an accident of
86
+ * the return value being an object.
87
+ */
88
+ readonly pendingHistoryRepairs: PendingHistoryRepairEvent[]
89
+ readonly initialMessages: Message[]
90
+ /**
91
+ * The ids of the messages in {@link initialMessages} that the session log
92
+ * already holds (its folded history); every other initial message is new
93
+ * and is recorded when the turn begins.
94
+ */
95
+ readonly historyIds: ReadonlyMap<Message, MessageId>
96
+ readonly queuedForThisRun: readonly Message[]
97
+ readonly selectedResumeState: SelectedResumeState | undefined
98
+ readonly attachmentResolutionCancelled: boolean
99
+ readonly streamIdleTimeoutMs: number
100
+ readonly sandboxTeardownTimeoutMs: number
101
+ readonly promptCache: PromptCache | undefined
102
+ readonly taskScheduler: TaskScheduler | undefined
103
+ }
104
+
105
+ export type SelectedResumeState = TurnState & {
106
+ readonly checkpointId: CheckpointId
107
+ readonly traceContext?: SerializedSpanContext
108
+ /** Record ids of `messages` (the fold through the checkpoint), by message. */
109
+ readonly messageIds?: ReadonlyMap<Message, MessageId>
110
+ }
111
+ export const selectedResumeStates = new WeakMap<QueryParams, SelectedResumeState>()
112
+
113
+ /**
114
+ * Refuse to price a turn whose tokens two differently-priced members may produce.
115
+ *
116
+ * `TurnRecorder` holds ONE {@link ModelPricing} table and applies it to every
117
+ * accumulation regardless of which model produced the tokens. Across a swap that
118
+ * makes `costInfo.totalCost` wrong by an unbounded margin, and silently — the
119
+ * number keeps the shape of an answer. `CostInfo` cannot express the truth
120
+ * either: it carries `inputCostPer1M` / `outputCostPer1M`, and there is no
121
+ * honest value for those once a total spans two rate cards.
122
+ *
123
+ * So the total is refused rather than blended. Naming what that costs is part
124
+ * of the refusal, because the caller loses `costLimitUsd` with it: the guard
125
+ * enforces that limit from this same accumulated total, and a limit enforced
126
+ * with the wrong rate card stops a turn early or late by the same unbounded
127
+ * margin. A budget that is quietly wrong is worse than a budget that is
128
+ * declined.
129
+ *
130
+ * Reachable, not decorative: a host that passes `pricing` and declares a chain
131
+ * hits it on the first call. It costs `@namzu/cli` nothing, which passes no
132
+ * pricing at all — its `/cost` already reports that the provider gave no price.
133
+ *
134
+ * The way out is per-member pricing, which needs a `CostInfo` that can sum over
135
+ * heterogeneous rates. That is a public-type change and it is not this one.
136
+ */
137
+ function assertCostIsAttributable(
138
+ chain: readonly ProviderChainMember[],
139
+ pricing: ModelPricing | undefined,
140
+ ): void {
141
+ if (pricing === undefined || chain.length < 2) return
142
+ throw new NamzuError({
143
+ code: 'invalid_config',
144
+ message:
145
+ `A provider chain of ${chain.length} members was declared together with a single pricing table. ` +
146
+ 'One table cannot price two members, so the turn would report a total that is wrong by an unbounded ' +
147
+ 'margin — and `turnConfig.costLimitUsd` would be enforced against that same wrong total. ' +
148
+ 'Either drop `pricing` (usage is still reported per model in the turn) or declare one member.',
149
+ details: { chainLength: chain.length },
150
+ })
151
+ }
152
+
153
+ /**
154
+ * Refuse a budget that cannot be measured.
155
+ *
156
+ * `turnConfig.costLimitUsd` is enforced against `costInfo.totalCost`, and that
157
+ * total only moves for tokens something has a rate for. A model no rate card
158
+ * covers therefore produced a limit that could never trip — a host that set a
159
+ * cost cap had no cost cap, and nothing said so. That was every turn before the
160
+ * price catalogue existed, which is how it went unnoticed.
161
+ *
162
+ * Refusing at the front is the cheap half of the answer: it costs the caller
163
+ * nothing, fires before any spend, and names both ways out. The other half is
164
+ * the `cost_unmeasurable` stop, for the models this cannot see — a step naming
165
+ * its own, or a chain member declaring one.
166
+ *
167
+ * This is the same shape `advisory/budget.ts` already applies to
168
+ * `AdvisoryBudget.maxCostPerTurn`, one layer down, and for the same reason. The
169
+ * run path simply never had it.
170
+ */
171
+ function assertBudgetIsMeasurable(params: QueryParams): void {
172
+ const limit = params.turnConfig.costLimitUsd
173
+ if (limit === undefined || limit <= 0) return
174
+ // A host-supplied table prices whatever it is pointed at, so a caller who
175
+ // brought one has answered the question themselves.
176
+ if (params.pricing !== undefined) return
177
+ const model = params.turnConfig.model
178
+ if (resolveModelPricing(params.provider.id, model) !== undefined) return
179
+
180
+ throw new NamzuError({
181
+ code: 'invalid_config',
182
+ message:
183
+ `turnConfig.costLimitUsd is set to ${limit}, but no rate is known for model "${model}" on ` +
184
+ `provider "${params.provider.id}". The limit is enforced against the turn's accumulated ` +
185
+ 'cost, and tokens with no rate never reach that total — so the budget would read as ' +
186
+ 'satisfied for the whole turn and stop nothing. Either pass `pricing` to declare the rate ' +
187
+ 'yourself, add the model to packages/sdk/src/pricing/rates.source.json, or drop ' +
188
+ '`costLimitUsd` and bound the turn with `tokenBudget`, which is measurable here.',
189
+ details: { model, providerId: params.provider.id, costLimitUsd: limit },
190
+ })
191
+ }
192
+
193
+ /**
194
+ * Ask the driver what this model's window is, and never let the answer
195
+ * cost the turn.
196
+ *
197
+ * Three outcomes collapse to two here on purpose. No member and a resolved
198
+ * `undefined` both mean "no answer" — the distinction matters to a driver
199
+ * author, not to a caller about to fall through to the table. A rejection
200
+ * is the third, and it is logged rather than propagated: a turn that would
201
+ * have worked on the table must not fail because a listing endpoint was
202
+ * down.
203
+ */
204
+ export async function resolveProviderContextWindow(
205
+ provider: LLMProvider,
206
+ model: string | undefined,
207
+ signal: AbortSignal | undefined,
208
+ timeoutMs: number,
209
+ log: Logger,
210
+ ): Promise<number | undefined> {
211
+ if (!provider.resolveContextWindow || !model) return undefined
212
+ if (signal?.aborted) return undefined
213
+
214
+ // The resolver is an optional optimisation that runs before TurnContext
215
+ // owns its child controller. Give it a private deadline signal and fuse
216
+ // caller cancellation into that transport in the safe direction: neither
217
+ // outcome aborts the caller's controller. Passing a signal is necessary
218
+ // but not sufficient, because a third-party driver can accept it and still
219
+ // leave its promise pending; the race below makes fallback independent of
220
+ // driver cooperation. Promise.race keeps the losing provider promise
221
+ // observed, so a later rejection cannot become unhandled.
222
+ const deadline = new AbortController()
223
+ const resolverSignal = signal ? AbortSignal.any([signal, deadline.signal]) : deadline.signal
224
+ const interrupted = Symbol('provider-context-window-interrupted')
225
+ let onAbort: (() => void) | undefined
226
+ const interruption = new Promise<typeof interrupted>((resolve) => {
227
+ onAbort = () => resolve(interrupted)
228
+ resolverSignal.addEventListener('abort', onAbort, { once: true })
229
+ })
230
+ // Direct QueryParams callers can supply a large turn deadline. The clamp
231
+ // avoids Node's >2^31-1 one-millisecond timer coercion during metadata lookup.
232
+ // Metadata discovery remains optional and bounded even without a turn deadline.
233
+ const deadlineMs = timeoutMs === 0 ? 5_000 : Math.min(Math.max(0, timeoutMs), 2_147_483_647)
234
+ const timer = setTimeout(() => {
235
+ deadline.abort(new Error(`Provider context-window lookup exceeded ${deadlineMs}ms`))
236
+ }, deadlineMs)
237
+
238
+ try {
239
+ const resolution = provider.resolveContextWindow(model, resolverSignal)
240
+ const reported = await Promise.race([resolution, interruption])
241
+ if (reported === interrupted) {
242
+ if (deadline.signal.aborted) {
243
+ log.debug('Provider context-window lookup timed out; using the table', {
244
+ 'namzu.model.id': model,
245
+ 'namzu.runtime.timeout_ms': deadlineMs,
246
+ })
247
+ }
248
+ return undefined
249
+ }
250
+ return typeof reported === 'number' && reported > 0 ? reported : undefined
251
+ } catch (err) {
252
+ log.debug('Provider could not report a context window; using the table', {
253
+ 'namzu.model.id': model,
254
+ 'namzu.error.message': toErrorMessage(err),
255
+ })
256
+ return undefined
257
+ } finally {
258
+ clearTimeout(timer)
259
+ if (onAbort) resolverSignal.removeEventListener('abort', onAbort)
260
+ }
261
+ }
262
+
263
+ export interface PendingHistoryRepairEvent {
264
+ readonly source: 'fresh-history' | 'abandoned-checkpoint'
265
+ readonly report: ToolHistoryRepairReport
266
+ }
267
+
268
+ /**
269
+ * Project historical system messages exactly as a new turn will persist them.
270
+ *
271
+ * Arbitrary historical prompt floors are rebuilt for this turn and therefore
272
+ * never reach its provider-bound conversation. Repair must happen AFTER that
273
+ * removal: treating a soon-to-be-dropped system message as a tool-result
274
+ * boundary can replace an exact real result with an invented unknown outcome.
275
+ * The two state-bearing system forms survive; fresh inherited compaction is
276
+ * pinned until this turn can prove it reconstructed equivalent state.
277
+ */
278
+ export function projectStateBearingHistory(
279
+ messages: readonly Message[],
280
+ options: { readonly pinCompaction: boolean },
281
+ ): Message[] {
282
+ const projected: Message[] = []
283
+ for (const message of messages) {
284
+ if (message.role !== 'system') {
285
+ projected.push(message)
286
+ continue
287
+ }
288
+ if (isCompactionMessage(message.content)) {
289
+ projected.push(options.pinCompaction ? { ...message, retain: true } : message)
290
+ } else if (isWorkingMemoryMessage(message.content)) {
291
+ projected.push(message)
292
+ }
293
+ }
294
+ return collapseProjectInstructionSnapshots(projected)
295
+ }
296
+
297
+ export async function prepareTurn(params: QueryParams): Promise<PreparedTurn> {
298
+ assertMaxToolCalls(params.maxToolCalls)
299
+ // Required types do not protect JavaScript callers. Reject missing scope
300
+ // before opening a budget or persisting a turn without its owning identity.
301
+ const missingFields = (['sessionId', 'topicId', 'projectId', 'tenantId'] as const).filter(
302
+ (field) => !params[field],
303
+ )
304
+ if (missingFields.length > 0) {
305
+ throw new NamzuError({
306
+ code: 'invalid_config',
307
+ message: `query requires sessionId, topicId, projectId, and tenantId; missing: ${missingFields.join(', ')}.`,
308
+ details: { missingFields },
309
+ })
310
+ }
311
+ const selectedResumeState = selectedResumeStates.get(params)
312
+ selectedResumeStates.delete(params)
313
+ // Resolved at the DOOR, before a turn id exists or a logger is built.
314
+ // A caller who set both spellings of a renamed field has a config bug,
315
+ // and refusing it here costs them nothing; refusing it at the read site
316
+ // deep in the loop turns the same bug into a mid-run failure, after a
317
+ // provider call has been paid for and a partial transcript written.
318
+ const promptCache = params.promptCache
319
+ const taskScheduler = params.taskScheduler
320
+ const streamIdleTimeoutMs = resolveStreamIdleTimeoutMs(params.turnConfig.streamIdleTimeoutMs)
321
+ const maxRequestRichContentBytes = resolveMaxRequestRichContentBytes(
322
+ params.turnConfig.maxRequestRichContentBytes,
323
+ )
324
+ const sandboxTeardownTimeoutMs = resolveSandboxTeardownTimeoutMs(params.sandboxTeardownTimeoutMs)
325
+ // Persist the EFFECTIVE value, not only an override. A turn replayed after a
326
+ // later release must be able to explain which liveness policy settled it;
327
+ // an absent field whose meaning follows the currently-installed default
328
+ // would rewrite that evidence at read time.
329
+ const turnConfig: TurnConfig = {
330
+ ...params.turnConfig,
331
+ streamIdleTimeoutMs,
332
+ maxRequestRichContentBytes,
333
+ }
334
+
335
+ // The turn's one correlated logger, built before anything below needs
336
+ // one — the migration check, the retry/fallback wrappers and `ctx`
337
+ // itself all read this SAME object, so a retry warning and the turn
338
+ // record it retried for carry the identical `namzu.turn.id` instead of
339
+ // three separate `getRootLogger()` reads that happened to agree by
340
+ // accident. `turnId` is resolved here, once, rather than left to
341
+ // `build`'s own `config.turnId ?? generateTurnId()` fallback —
342
+ // generating it twice would silently hand the log and the turn two
343
+ // different ids.
344
+ const turnId = params.turnId ?? generateTurnId()
345
+ if (params.resumeFromCheckpoint && !params.turnId) {
346
+ throw new NamzuError({
347
+ code: 'invalid_config',
348
+ message:
349
+ 'resumeFromCheckpoint continues an existing turn and needs its turnId; a new turn cannot start from a checkpoint (fork a new session instead).',
350
+ details: { resumeFromCheckpoint: params.resumeFromCheckpoint },
351
+ })
352
+ }
353
+ const storage = await resolveSessionStorage({
354
+ sessionId: params.sessionId,
355
+ ...(params.parentSessionId ? { parentSessionId: params.parentSessionId } : {}),
356
+ ...(params.sessionLog ? { sessionLog: params.sessionLog } : {}),
357
+ ...(params.paths ? { paths: params.paths } : {}),
358
+ ...(params.checkpointStore ? { checkpointStore: params.checkpointStore } : {}),
359
+ ...(params.tokenBudgetStore ? { tokenBudgetStore: params.tokenBudgetStore } : {}),
360
+ ...(params.workingDirectory ? { workingDirectory: params.workingDirectory } : {}),
361
+ })
362
+ const savedBudget = await savedBudgetReference(params, turnId, storage, selectedResumeState)
363
+ const budget = await resolveQueryBudget(params, turnId, storage.tokenBudget, savedBudget)
364
+ const log = TurnContextFactory.buildLogger({
365
+ agentName: params.agentName,
366
+ turnConfig,
367
+ turnId,
368
+ ...(params.parentSessionId ? { parentSessionId: params.parentSessionId } : {}),
369
+ sessionId: params.sessionId,
370
+ topicId: params.topicId,
371
+ projectId: params.projectId,
372
+ tenantId: params.tenantId,
373
+ })
374
+
375
+ // Every model call in the turn — the loop's turns, the forced-final
376
+ // summary, advisory and compaction side calls — goes through this one
377
+ // wrapped provider, so the retry policy cannot be bypassed by a code
378
+ // path that happens to hold the raw driver.
379
+ // The logger is passed on purpose: `withProviderRetry` guards every one
380
+ // of its warns behind `options.log`, and this is its only production
381
+ // call site — so without it the "failed, retrying" and "failed, giving
382
+ // up" lines were dead code and a backoff left no trace anywhere.
383
+ //
384
+ // With a chain declared, the same sentence holds two levels out. The idle
385
+ // watchdog is applied to each raw member, retry wraps that, and fallback
386
+ // wraps the members: `fallback(retry(idle(m0)), retry(idle(m1)), …)`. The
387
+ // idle layer cannot sit outside retry, because its timer would then count a
388
+ // legitimate backoff as provider silence. This order is not a
389
+ // preference. Assembled the other way round — which is what a host gets if
390
+ // it wraps its own chain and hands the result in, because this function
391
+ // would then wrap THAT in retry — an exhausted chain gets restarted from
392
+ // the head by the outer loop and a throttle on the last member is counted
393
+ // by two budgets. Building it here is what makes the order unspellable
394
+ // wrong.
395
+ const chain: readonly ProviderChainMember[] = [
396
+ { provider: params.provider },
397
+ ...(params.fallbackProviders ?? []),
398
+ ]
399
+ assertCostIsAttributable(chain, params.pricing)
400
+ assertBudgetIsMeasurable(params)
401
+ const withRecovery = (provider: LLMProvider): LLMProvider => {
402
+ const withIdleBound = withStreamIdleTimeout(provider, {
403
+ idleTimeoutMs: streamIdleTimeoutMs,
404
+ log,
405
+ })
406
+ const metered = withTokenBudget(withIdleBound, budget)
407
+ return params.retry === false
408
+ ? metered
409
+ : withProviderRetry(metered, {
410
+ config: params.retry,
411
+ log,
412
+ canRetry: () => budget.remaining > 0,
413
+ })
414
+ }
415
+ // Who is serving right now, for the turn RECORD rather than for the request.
416
+ //
417
+ // It starts at the head and moves only when the chain does, which is the
418
+ // whole of the truth because the cursor never rewinds. The turn cannot read
419
+ // this off `resilientProvider`: that wrapper reports the head's `id` on
420
+ // purpose, so asking it produces the declaration back — the defect this
421
+ // record exists to fix.
422
+ const serving: { current: ServingMember } = {
423
+ current: { index: 0, providerId: params.provider.id },
424
+ }
425
+ const resilientProvider = withProviderFallback(
426
+ chain.map((member) => ({
427
+ ...member,
428
+ provider: withRecovery(member.provider),
429
+ })),
430
+ {
431
+ log,
432
+ canFallback: () => budget.remaining > 0,
433
+ onSwap: (to) => {
434
+ serving.current = to
435
+ // `ctx` is declared below and is initialized before anything can
436
+ // call the provider: this fires from inside a `chatStream`, and
437
+ // the first one is issued by the loop that `ctx` is built for.
438
+ ctx.recorder.setServingProvider(to.providerId)
439
+ },
440
+ },
441
+ )
442
+
443
+ // Asked ONCE, here, before the loop exists. Both readers are synchronous
444
+ // and hot, so this can never move inside the iteration — and a driver
445
+ // that rejects, or one that hangs until the turn is cancelled, must not
446
+ // take down a run the table could have served perfectly well. That is
447
+ // why the failure path is a swallow with a log rather than a throw: the
448
+ // window is an optimisation over a working default, not a prerequisite.
449
+ const providerContextWindow = await resolveProviderContextWindow(
450
+ resilientProvider,
451
+ turnConfig.model,
452
+ params.signal,
453
+ turnConfig.timeoutMs,
454
+ log,
455
+ )
456
+ const modelContextWindows = new Map<string, number | undefined>()
457
+ if (turnConfig.model) modelContextWindows.set(turnConfig.model, providerContextWindow)
458
+
459
+ // The mode this conversation was left in, when the turn config names none.
460
+ // Read once, before the loop exists, for the same reason the context
461
+ // window is: the executor's resolver is synchronous and hot.
462
+ //
463
+ // A store that throws is not a turn failure — the turn falls back to the
464
+ // config's answer, which is exactly what it did before this existed.
465
+ const topicState = params.topicStateStore
466
+ ? await params.topicStateStore
467
+ .getState(params.topicId, params.tenantId)
468
+ .catch((err: unknown) => {
469
+ log.debug('Could not read the topic state; using the turn config', {
470
+ 'namzu.topic.id': params.topicId,
471
+ 'namzu.error.message': toErrorMessage(err),
472
+ })
473
+ return null
474
+ })
475
+ : null
476
+
477
+ // Whatever a host left for "the next turn", taken and cleared in one
478
+ // compare-and-set write. Prepended to the messages this turn starts from,
479
+ // so it is in the FIRST request rather than arriving a turn late.
480
+ //
481
+ // Cleared as it is read: a queue read and cleared separately re-delivers
482
+ // on a crash between the two, and "start with this" arriving twice is a
483
+ // different instruction from the one that was left.
484
+ const queuedForThisRun: readonly Message[] = params.topicStateStore
485
+ ? await drainQueuedMessages(params.topicStateStore, params.topicId, params.tenantId).catch(
486
+ (err: unknown) => {
487
+ log.debug('Could not drain the topic queue; starting without it', {
488
+ 'namzu.topic.id': params.topicId,
489
+ 'namzu.error.message': toErrorMessage(err),
490
+ })
491
+ return []
492
+ },
493
+ )
494
+ : []
495
+
496
+ // One effective list, used everywhere the turn is seeded from. Three
497
+ // branches below push from it, and computing it at each would be three
498
+ // places to forget the queue.
499
+ //
500
+ // Stored attachments are resolved HERE, once, before the messages reach
501
+ // the turn record. Resolving later — at the provider boundary — would put
502
+ // refs in the durable transcript and in every checkpoint, and a turn
503
+ // resumed against a store that had since forgotten a ref would fail
504
+ // replaying its own history rather than at the moment somebody asked for
505
+ // the bytes. Every failure refuses: a message that silently lost its
506
+ // image is a model answering about a picture it never saw.
507
+ const ctx = TurnContextFactory.build({
508
+ budget,
509
+ ...(topicState ? { topicPermissionMode: topicState.permissionMode } : {}),
510
+ ...(params.permissionModeRef ? { permissionModeRef: params.permissionModeRef } : {}),
511
+ agentId: params.agentId,
512
+ agentName: params.agentName,
513
+ turnConfig,
514
+ provider: resilientProvider,
515
+ workingDirectory: params.workingDirectory,
516
+ pricing: params.pricing,
517
+ enableActivityTracking: params.enableActivityTracking,
518
+ signal: params.signal,
519
+ sessionId: params.sessionId,
520
+ topicId: params.topicId,
521
+ projectId: params.projectId,
522
+ tenantId: params.tenantId,
523
+ storage,
524
+ turnId,
525
+ ...(params.parentSessionId ? { parentSessionId: params.parentSessionId } : {}),
526
+ ...(params.parentTurnId ? { parentTurnId: params.parentTurnId } : {}),
527
+ ...(params.depth !== undefined ? { depth: params.depth } : {}),
528
+ log,
529
+ })
530
+
531
+ // The writer lease, and `session_started` on an empty log. Everything
532
+ // from here to the end of the turn holds the lease, so a failure before
533
+ // the turn body owns it releases it.
534
+ await ctx.recorder.open({
535
+ ...(params.lease ? { lease: params.lease } : {}),
536
+ session: {
537
+ cwd: ctx.cwd,
538
+ ...(params.origin ? { origin: params.origin } : {}),
539
+ ...(params.forkedFrom ? { forkedFrom: params.forkedFrom } : {}),
540
+ },
541
+ })
542
+ try {
543
+ await assertTurnMayStart(params, turnId, storage, ctx)
544
+ // The session log is the conversation's source of truth. A new turn starts
545
+ // from its folded history, and `params.messages` is what this turn adds.
546
+ // A host that still passes the whole conversation is tolerated: the part
547
+ // of it the log already holds is not added a second time.
548
+ const history: RecordedMessage[] = params.resumeFromCheckpoint
549
+ ? []
550
+ : await readFoldedHistory(storage.log)
551
+ const input = withoutRecordedPrefix(params.messages, history)
552
+ const seeded: Message[] = queuedForThisRun.length > 0 ? [...queuedForThisRun, ...input] : input
553
+ let resolvedInitialMessages: Message[]
554
+ let attachmentResolutionCancelled = false
555
+ try {
556
+ resolvedInitialMessages = [
557
+ ...(await resolveAttachments(seeded, params.attachmentStore, {
558
+ signal: params.signal,
559
+ timeoutMs: params.attachmentResolveTimeoutMs,
560
+ })),
561
+ ]
562
+ params.signal?.throwIfAborted()
563
+ } catch (error) {
564
+ // Attachment materialization precedes TurnContext construction so stored
565
+ // bytes never enter a live turn's checkpoints. Cancellation still belongs
566
+ // to that turn: preserve the exact input refs, build the context below, and
567
+ // let its normal terminal path classify/persist a cancelled turn. Every
568
+ // other store failure remains a pre-turn refusal.
569
+ if (!params.signal?.aborted || error !== params.signal.reason) throw error
570
+ resolvedInitialMessages = [...seeded]
571
+ attachmentResolutionCancelled = true
572
+ }
573
+ if (
574
+ !attachmentResolutionCancelled &&
575
+ params.projectInstructionContext?.prepareInitialSnapshot
576
+ ) {
577
+ const preparationSignal = params.signal ?? new AbortController().signal
578
+ let snapshot: UserMessage | null | undefined
579
+ try {
580
+ const prepared = await awaitProjectInstructionCallback(preparationSignal, () =>
581
+ params.projectInstructionContext?.prepareInitialSnapshot?.({
582
+ messages: [...resolvedInitialMessages],
583
+ signal: preparationSignal,
584
+ }),
585
+ )
586
+ // The callback promise can settle, remove its listener, and queue this
587
+ // continuation immediately before a queued abort. Publication is a
588
+ // separate authority boundary, so fence it too.
589
+ preparationSignal.throwIfAborted()
590
+ snapshot = prepared
591
+ } catch (error) {
592
+ // This callback runs before TurnContext owns its child controller. A
593
+ // caller cancellation here still belongs to the turn: publish no late
594
+ // snapshot and let the context below settle the normal cancelled turn.
595
+ // Compare the exact reason: a callback failure that won first must not
596
+ // be erased merely because cancellation arrived before this catch ran.
597
+ if (!preparationSignal.aborted || error !== preparationSignal.reason) throw error
598
+ }
599
+ if (snapshot !== undefined) {
600
+ resolvedInitialMessages = replaceProjectInstructionSnapshot(
601
+ resolvedInitialMessages,
602
+ snapshot,
603
+ 'before-latest-user',
604
+ )
605
+ }
606
+ }
607
+ const pendingHistoryRepairs: PendingHistoryRepairEvent[] = []
608
+ const historyIds = new Map<Message, MessageId>()
609
+ const projectedHistory = params.continuationMode
610
+ ? history.map((entry) => {
611
+ if (entry.messageId) historyIds.set(entry.message, entry.messageId)
612
+ return entry.message
613
+ })
614
+ : projectRecordedHistory(history, historyIds)
615
+ const projectedInitialMessages = collapseProjectInstructionSnapshots([
616
+ ...projectedHistory,
617
+ ...(params.resumeFromCheckpoint || params.continuationMode
618
+ ? resolvedInitialMessages
619
+ : projectStateBearingHistory(resolvedInitialMessages, {
620
+ pinCompaction: true,
621
+ })),
622
+ ])
623
+ const initialRepair = params.resumeFromCheckpoint
624
+ ? { messages: projectedInitialMessages, report: undefined }
625
+ : repairToolMessageHistory(projectedInitialMessages)
626
+ const initialMessages = initialRepair.messages
627
+ if (initialRepair.report && toolHistoryRepairChanged(initialRepair.report)) {
628
+ pendingHistoryRepairs.push({
629
+ source: 'fresh-history',
630
+ report: initialRepair.report,
631
+ })
632
+ log.warn('Repaired provider-invalid tool history before starting the turn', {
633
+ [NAMZU.TURN_ID]: turnId,
634
+ 'namzu.history.source': 'fresh-history',
635
+ 'namzu.history.duplicate_tool_results_removed':
636
+ initialRepair.report.duplicateToolResultsRemoved,
637
+ 'namzu.history.orphaned_tool_results_removed':
638
+ initialRepair.report.orphanedToolResultsRemoved,
639
+ 'namzu.history.synthetic_tool_results_inserted':
640
+ initialRepair.report.syntheticToolResultsInserted,
641
+ })
642
+ }
643
+
644
+ // Built here because the plan-approval closure below captures it, and
645
+ // its `emit` resolves `eventTranslator` at CALL time — the translator is
646
+ // a `const` some lines further down.
647
+ //
648
+ // The HANDOUT is therefore deliberately NOT here. A host given the box
649
+ // at this point can call `set` synchronously, `emit` reaches
650
+ // `eventTranslator` inside its temporal dead zone, and the turn dies
651
+ // before it starts. That is not hypothetical: it is what the first
652
+ // version of this did, and the test that hands out the box and
653
+ // immediately swaps the policy is the one that found it.
654
+ const approvalPolicy = createSessionApprovalPolicy({
655
+ turnId: ctx.turnId,
656
+ initial: {
657
+ // By identity against the default, not by presence. `resumeHandler`
658
+ // is REQUIRED on `QueryParams` — `drainQuery` substitutes
659
+ // `autoApproveHandler` before calling here — so "is it set" is
660
+ // always yes and would name every turn `host`, including the ones
661
+ // approving everything unattended. Identity is what actually
662
+ // separates the two.
663
+ name:
664
+ params.approvalPolicyName ??
665
+ (params.resumeHandler === autoApproveHandler ? AUTO_APPROVE_POLICY_NAME : 'host'),
666
+ handler: params.resumeHandler,
667
+ },
668
+ emit: (event) => eventTranslator.emitEvent(event),
669
+ })
670
+
671
+ const planApprovalIds = new Map<PlanId, CheckpointId>()
672
+ ctx.planManager.setApprovalHandler(async (request) => {
673
+ let checkpointId = planApprovalIds.get(request.planId)
674
+ if (!checkpointId) {
675
+ checkpointId = generateCheckpointId()
676
+ planApprovalIds.set(request.planId, checkpointId)
677
+ }
678
+ // `.current.handler`, never a captured `params.resumeHandler`. That
679
+ // capture is what made changing the policy mean ending the turn.
680
+ const decision = await approvalPolicy.current.handler({
681
+ type: 'plan_approval',
682
+ sessionId: ctx.sessionId,
683
+ turnId: ctx.turnId,
684
+ checkpointId,
685
+ plan: {
686
+ planId: request.planId,
687
+ title: request.title,
688
+ steps: request.steps.map((s, i) => ({
689
+ id: s.id,
690
+ description: s.description,
691
+ toolName: s.toolName,
692
+ agentId: s.agentId,
693
+ dependsOn: s.dependsOn,
694
+ order: s.order ?? i + 1,
695
+ })),
696
+ summary: request.summary,
697
+ },
698
+ })
699
+
700
+ if (decision.action === 'approve_plan') {
701
+ // Optional approve-with-edits channel: the host may attach
702
+ // feedback to an approval. `PlanApprovalResponse.feedback`
703
+ // already exists on the type; threading it through lets the
704
+ // coordinator's approve_plan tool surface the user's edits in
705
+ // the same tool_result that unblocks the park. Bare approvals
706
+ // stay byte-identical (`{ approved: true }`).
707
+ return decision.feedback
708
+ ? { approved: true, feedback: decision.feedback }
709
+ : { approved: true }
710
+ }
711
+ if (decision.action === 'reject_plan') {
712
+ return { approved: false, feedback: decision.feedback }
713
+ }
714
+
715
+ return { approved: false, feedback: `Action: ${decision.action}` }
716
+ })
717
+
718
+ const eventTranslator = new EventTranslator(ctx.recorder, undefined, ctx.log)
719
+ eventTranslator.wireActivityStore(ctx.activityStore)
720
+ eventTranslator.wirePlanManager(ctx.planManager)
721
+ let interruptHooksStarted = false
722
+ const executeUserInterruptHooks = async (terminalError: unknown): Promise<void> => {
723
+ if (
724
+ interruptHooksStarted ||
725
+ !params.pluginManager ||
726
+ !isCallerAbortError(terminalError, ctx.abortController.signal) ||
727
+ params.parentSessionId !== undefined ||
728
+ (params.depth ?? 0) !== 0 ||
729
+ cancelCauseOf(ctx.abortController.signal.reason) !== 'user'
730
+ ) {
731
+ return
732
+ }
733
+
734
+ interruptHooksStarted = true
735
+ try {
736
+ // Deliberately omit the already-aborted run signal. The lifecycle
737
+ // manager still supplies each handler its own deadline signal, while
738
+ // `run_interrupt`'s observational fan-out prevents one result from
739
+ // suppressing the cleanup hooks that follow it.
740
+ await params.pluginManager.executeHooks(
741
+ 'turn_interrupt',
742
+ { sessionId: ctx.sessionId, turnId: ctx.turnId, cancelCause: 'user' },
743
+ eventTranslator.emitEvent,
744
+ )
745
+ } catch (error) {
746
+ // Cancellation is the terminal authority. A hook event sink or an
747
+ // unexpected manager failure is reported, but cannot turn Stop into a
748
+ // failed turn or prevent the durable cancellation verdict.
749
+ ctx.log.error('Turn interrupt hooks did not settle cleanly', {
750
+ [NAMZU.TURN_ID]: ctx.turnId,
751
+ ...errorAttributes(error),
752
+ })
753
+ }
754
+ }
755
+
756
+ return {
757
+ turnConfig,
758
+ budget,
759
+ storage,
760
+ log,
761
+ ctx,
762
+ resilientProvider,
763
+ serving,
764
+ providerContextWindow,
765
+ modelContextWindows,
766
+ approvalPolicy,
767
+ eventTranslator,
768
+ executeUserInterruptHooks,
769
+ pendingHistoryRepairs,
770
+ initialMessages,
771
+ historyIds,
772
+ queuedForThisRun,
773
+ selectedResumeState,
774
+ attachmentResolutionCancelled,
775
+ streamIdleTimeoutMs,
776
+ sandboxTeardownTimeoutMs,
777
+ promptCache,
778
+ taskScheduler,
779
+ }
780
+ } catch (error) {
781
+ await ctx.recorder.release()
782
+ throw error
783
+ }
784
+ }
785
+
786
+ /**
787
+ * The ledger reference a resumed turn continues: the selected resume state's
788
+ * binding, or the one its checkpoint document carries.
789
+ */
790
+ async function savedBudgetReference(
791
+ params: QueryParams,
792
+ turnId: TurnId,
793
+ storage: SessionStorage,
794
+ selected: SelectedResumeState | undefined,
795
+ ): Promise<SavedBudgetReference | undefined> {
796
+ if (selected?.budgetBinding) {
797
+ return { binding: selected.budgetBinding, accountId: selected.budgetBinding.accountId }
798
+ }
799
+ // A selected state carries only a durable binding. An account held in
800
+ // memory is named by the checkpoint document alone, and a resume must
801
+ // still see it, so the host is asked for that authority rather than
802
+ // handed a fresh ledger.
803
+ if (!params.resumeFromCheckpoint) return undefined
804
+ const checkpoint = await storage.checkpoints.read(
805
+ {
806
+ tenantId: params.tenantId,
807
+ projectId: params.projectId,
808
+ sessionId: params.sessionId,
809
+ turnId,
810
+ },
811
+ params.resumeFromCheckpoint,
812
+ )
813
+ if (!checkpoint) throw new Error('Cannot restore a token budget from a missing checkpoint.')
814
+ return checkpoint.budget
815
+ ? {
816
+ ...(checkpoint.budget.binding ? { binding: checkpoint.budget.binding } : {}),
817
+ accountId: checkpoint.budget.accountId,
818
+ }
819
+ : undefined
820
+ }
821
+
822
+ /**
823
+ * The folded history a new turn starts from, projected the way a fresh turn
824
+ * treats historical system messages: the prompt floor is rebuilt for this
825
+ * turn, so only the two state-bearing system forms survive, and an inherited
826
+ * compaction summary is pinned. `ids` receives the record id of every
827
+ * message that survives.
828
+ */
829
+ function projectRecordedHistory(
830
+ history: readonly RecordedMessage[],
831
+ ids: Map<Message, MessageId>,
832
+ ): Message[] {
833
+ const projected: Message[] = []
834
+ for (const { message, messageId } of history) {
835
+ let kept: Message | undefined
836
+ if (message.role !== 'system') kept = message
837
+ else if (isCompactionMessage(message.content)) kept = { ...message, retain: true }
838
+ else if (isWorkingMemoryMessage(message.content)) kept = message
839
+ if (!kept) continue
840
+ if (messageId) ids.set(kept, messageId)
841
+ projected.push(kept)
842
+ }
843
+ return projected
844
+ }
845
+
846
+ /**
847
+ * `messages` without the leading run of messages the session log already
848
+ * holds, compared by value. A host that passes only the new input is
849
+ * unaffected; one that passes the whole conversation adds only its tail.
850
+ */
851
+ function withoutRecordedPrefix(
852
+ messages: readonly Message[],
853
+ history: readonly RecordedMessage[],
854
+ ): Message[] {
855
+ const recorded = history.filter((entry) => entry.message.role !== 'system')
856
+ let matched = 0
857
+ let r = 0
858
+ for (const message of messages) {
859
+ if (message.role === 'system') {
860
+ matched++
861
+ continue
862
+ }
863
+ const next = recorded[r]
864
+ if (!next || JSON.stringify(next.message) !== JSON.stringify(message)) break
865
+ r++
866
+ matched++
867
+ }
868
+ if (r === 0) return [...messages]
869
+ return messages.slice(matched)
870
+ }
871
+
872
+ /**
873
+ * A new turn named by the host must not reuse the id of a turn the session
874
+ * already holds: two `turn_started` records under one id would be one turn
875
+ * to every reader. Only checked when the host names the id; a generated one
876
+ * is new by construction.
877
+ */
878
+ async function assertTurnIdIsNew(
879
+ params: QueryParams,
880
+ turnId: TurnId,
881
+ storage: SessionStorage,
882
+ ): Promise<void> {
883
+ if (params.turnId === undefined) return
884
+ for await (const { record } of storage.log.read({ mode: 'tolerant' })) {
885
+ if (record.type === 'turn_started' && record.turnId === turnId) {
886
+ throw new NamzuError({
887
+ code: 'invalid_config',
888
+ message: `Turn ${turnId} already exists in session ${params.sessionId}. A new turn needs a new id; to continue that turn, pass resumeFromCheckpoint.`,
889
+ details: { sessionId: params.sessionId, turnId },
890
+ })
891
+ }
892
+ }
893
+ }
894
+
895
+ /**
896
+ * One active turn per session (spec §4.5). A new turn is refused while
897
+ * another is running, paused or interrupted — unless it is interrupted and
898
+ * the caller opted into closing it. A resume must name the active turn.
899
+ */
900
+ async function assertTurnMayStart(
901
+ params: QueryParams,
902
+ turnId: TurnId,
903
+ storage: SessionStorage,
904
+ ctx: TurnContext,
905
+ ): Promise<void> {
906
+ const lease = ctx.recorder.lease
907
+ const active = await storage.log.activeTurn(lease ? { lease } : {})
908
+ if (params.resumeFromCheckpoint) {
909
+ if (active?.turnId === turnId) return
910
+ if (active) {
911
+ throw new TurnInProgressError({
912
+ sessionId: params.sessionId,
913
+ activeTurnId: active.turnId,
914
+ state: active.state,
915
+ })
916
+ }
917
+ throw new NamzuError({
918
+ code: 'invalid_config',
919
+ message: `Turn ${turnId} is not the active turn of session ${params.sessionId}; a settled turn cannot be resumed.`,
920
+ details: { sessionId: params.sessionId, turnId },
921
+ })
922
+ }
923
+ if (!active) return assertTurnIdIsNew(params, turnId, storage)
924
+ if (active.state === 'interrupted' && params.abandonInterrupted) {
925
+ return assertTurnIdIsNew(params, turnId, storage)
926
+ }
927
+ throw new TurnInProgressError({
928
+ sessionId: params.sessionId,
929
+ activeTurnId: active.turnId,
930
+ state: active.state,
931
+ })
932
+ }