@namzu/sdk 38.2.1 → 40.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/CHANGELOG.md +851 -0
  2. package/dist/advisory/executor.d.ts +10 -1
  3. package/dist/advisory/executor.d.ts.map +1 -1
  4. package/dist/advisory/executor.js +5 -26
  5. package/dist/advisory/executor.js.map +1 -1
  6. package/dist/advisory/history.d.ts +9 -0
  7. package/dist/advisory/history.d.ts.map +1 -0
  8. package/dist/advisory/history.js +120 -0
  9. package/dist/advisory/history.js.map +1 -0
  10. package/dist/advisory/index.d.ts +1 -1
  11. package/dist/advisory/index.d.ts.map +1 -1
  12. package/dist/advisory/index.js.map +1 -1
  13. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  14. package/dist/agents/ReactiveAgent.js +3 -0
  15. package/dist/agents/ReactiveAgent.js.map +1 -1
  16. package/dist/agents/runAgent.d.ts +10 -0
  17. package/dist/agents/runAgent.d.ts.map +1 -1
  18. package/dist/agents/runAgent.js +3 -0
  19. package/dist/agents/runAgent.js.map +1 -1
  20. package/dist/compaction/manual.d.ts +6 -0
  21. package/dist/compaction/manual.d.ts.map +1 -1
  22. package/dist/compaction/manual.js +21 -2
  23. package/dist/compaction/manual.js.map +1 -1
  24. package/dist/compaction/summary.d.ts.map +1 -1
  25. package/dist/compaction/summary.js +4 -1
  26. package/dist/compaction/summary.js.map +1 -1
  27. package/dist/config/runtime.js +2 -2
  28. package/dist/config/runtime.js.map +1 -1
  29. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  30. package/dist/connector/mcp/adapter.js +20 -6
  31. package/dist/connector/mcp/adapter.js.map +1 -1
  32. package/dist/contracts/schemas.js +1 -1
  33. package/dist/contracts/schemas.js.map +1 -1
  34. package/dist/eval/harness-protection.d.ts +18 -0
  35. package/dist/eval/harness-protection.d.ts.map +1 -0
  36. package/dist/eval/harness-protection.js +58 -0
  37. package/dist/eval/harness-protection.js.map +1 -0
  38. package/dist/eval/harness-verification.d.ts +6 -1
  39. package/dist/eval/harness-verification.d.ts.map +1 -1
  40. package/dist/eval/harness-verification.js +19 -2
  41. package/dist/eval/harness-verification.js.map +1 -1
  42. package/dist/eval/index.d.ts +1 -0
  43. package/dist/eval/index.d.ts.map +1 -1
  44. package/dist/eval/index.js.map +1 -1
  45. package/dist/manager/resident/activity.d.ts +50 -0
  46. package/dist/manager/resident/activity.d.ts.map +1 -0
  47. package/dist/manager/resident/activity.js +125 -0
  48. package/dist/manager/resident/activity.js.map +1 -0
  49. package/dist/manager/resident/agenda.d.ts +13 -1
  50. package/dist/manager/resident/agenda.d.ts.map +1 -1
  51. package/dist/manager/resident/agenda.js +40 -5
  52. package/dist/manager/resident/agenda.js.map +1 -1
  53. package/dist/manager/resident/consumption.d.ts +104 -0
  54. package/dist/manager/resident/consumption.d.ts.map +1 -0
  55. package/dist/manager/resident/consumption.js +233 -0
  56. package/dist/manager/resident/consumption.js.map +1 -0
  57. package/dist/manager/resident/evidence-recall.d.ts +24 -0
  58. package/dist/manager/resident/evidence-recall.d.ts.map +1 -0
  59. package/dist/manager/resident/evidence-recall.js +295 -0
  60. package/dist/manager/resident/evidence-recall.js.map +1 -0
  61. package/dist/manager/resident/history-disk.d.ts +10 -0
  62. package/dist/manager/resident/history-disk.d.ts.map +1 -0
  63. package/dist/manager/resident/history-disk.js +50 -0
  64. package/dist/manager/resident/history-disk.js.map +1 -0
  65. package/dist/manager/resident/history.d.ts +79 -0
  66. package/dist/manager/resident/history.d.ts.map +1 -0
  67. package/dist/manager/resident/history.js +203 -0
  68. package/dist/manager/resident/history.js.map +1 -0
  69. package/dist/manager/resident/initiative.d.ts.map +1 -1
  70. package/dist/manager/resident/initiative.js +11 -3
  71. package/dist/manager/resident/initiative.js.map +1 -1
  72. package/dist/manager/resident/learning-cycle.d.ts +131 -0
  73. package/dist/manager/resident/learning-cycle.d.ts.map +1 -0
  74. package/dist/manager/resident/learning-cycle.js +306 -0
  75. package/dist/manager/resident/learning-cycle.js.map +1 -0
  76. package/dist/manager/resident/learning-observation.d.ts +80 -0
  77. package/dist/manager/resident/learning-observation.d.ts.map +1 -0
  78. package/dist/manager/resident/learning-observation.js +22 -0
  79. package/dist/manager/resident/learning-observation.js.map +1 -0
  80. package/dist/manager/resident/learning-store.d.ts +106 -0
  81. package/dist/manager/resident/learning-store.d.ts.map +1 -0
  82. package/dist/manager/resident/learning-store.js +598 -0
  83. package/dist/manager/resident/learning-store.js.map +1 -0
  84. package/dist/manager/resident/learning.d.ts +246 -3
  85. package/dist/manager/resident/learning.d.ts.map +1 -1
  86. package/dist/manager/resident/learning.js +96 -6
  87. package/dist/manager/resident/learning.js.map +1 -1
  88. package/dist/manager/resident/outbox.d.ts +4 -4
  89. package/dist/manager/resident/store.d.ts +37 -4
  90. package/dist/manager/resident/store.d.ts.map +1 -1
  91. package/dist/manager/resident/store.js +27 -3
  92. package/dist/manager/resident/store.js.map +1 -1
  93. package/dist/manager/resident/tool-evidence.d.ts +71 -0
  94. package/dist/manager/resident/tool-evidence.d.ts.map +1 -0
  95. package/dist/manager/resident/tool-evidence.js +285 -0
  96. package/dist/manager/resident/tool-evidence.js.map +1 -0
  97. package/dist/manager/run/persistence.d.ts +8 -0
  98. package/dist/manager/run/persistence.d.ts.map +1 -1
  99. package/dist/manager/run/persistence.js +18 -0
  100. package/dist/manager/run/persistence.js.map +1 -1
  101. package/dist/plugin/loader.d.ts.map +1 -1
  102. package/dist/plugin/loader.js +5 -3
  103. package/dist/plugin/loader.js.map +1 -1
  104. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  105. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  106. package/dist/prompt/coding-agent-doctrine.js +2 -0
  107. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  108. package/dist/prompt/index.d.ts +2 -0
  109. package/dist/prompt/index.d.ts.map +1 -1
  110. package/dist/prompt/index.js +1 -0
  111. package/dist/prompt/index.js.map +1 -1
  112. package/dist/prompt/resident-learning.d.ts +19 -0
  113. package/dist/prompt/resident-learning.d.ts.map +1 -0
  114. package/dist/prompt/resident-learning.js +125 -0
  115. package/dist/prompt/resident-learning.js.map +1 -0
  116. package/dist/prompt/resident-step.d.ts +8 -1
  117. package/dist/prompt/resident-step.d.ts.map +1 -1
  118. package/dist/prompt/resident-step.js +65 -4
  119. package/dist/prompt/resident-step.js.map +1 -1
  120. package/dist/provider/collect-chat-completion.d.ts +2 -1
  121. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  122. package/dist/provider/collect-chat-completion.js +7 -6
  123. package/dist/provider/collect-chat-completion.js.map +1 -1
  124. package/dist/provider/fallback.d.ts.map +1 -1
  125. package/dist/provider/fallback.js +2 -1
  126. package/dist/provider/fallback.js.map +1 -1
  127. package/dist/provider/stream-text.d.ts +16 -0
  128. package/dist/provider/stream-text.d.ts.map +1 -0
  129. package/dist/provider/stream-text.js +51 -0
  130. package/dist/provider/stream-text.js.map +1 -0
  131. package/dist/public-runtime.d.ts +16 -4
  132. package/dist/public-runtime.d.ts.map +1 -1
  133. package/dist/public-runtime.js +17 -4
  134. package/dist/public-runtime.js.map +1 -1
  135. package/dist/public-tools.d.ts +13 -0
  136. package/dist/public-tools.d.ts.map +1 -1
  137. package/dist/public-tools.js +16 -0
  138. package/dist/public-tools.js.map +1 -1
  139. package/dist/public-types.d.ts +15 -3
  140. package/dist/public-types.d.ts.map +1 -1
  141. package/dist/registry/tool/execute.d.ts.map +1 -1
  142. package/dist/registry/tool/execute.js +2 -3
  143. package/dist/registry/tool/execute.js.map +1 -1
  144. package/dist/registry/tool/portable.d.ts +65 -0
  145. package/dist/registry/tool/portable.d.ts.map +1 -0
  146. package/dist/registry/tool/portable.js +244 -0
  147. package/dist/registry/tool/portable.js.map +1 -0
  148. package/dist/registry/tool/schema.d.ts +32 -5
  149. package/dist/registry/tool/schema.d.ts.map +1 -1
  150. package/dist/registry/tool/schema.js +35 -9
  151. package/dist/registry/tool/schema.js.map +1 -1
  152. package/dist/registry/toolset/catalog.js +8 -8
  153. package/dist/registry/toolset/catalog.js.map +1 -1
  154. package/dist/run/LimitChecker.js +3 -3
  155. package/dist/run/LimitChecker.js.map +1 -1
  156. package/dist/run/evidence-query.d.ts +41 -0
  157. package/dist/run/evidence-query.d.ts.map +1 -0
  158. package/dist/run/evidence-query.js +270 -0
  159. package/dist/run/evidence-query.js.map +1 -0
  160. package/dist/run/evidence-recall.d.ts +99 -0
  161. package/dist/run/evidence-recall.d.ts.map +1 -0
  162. package/dist/run/evidence-recall.js +633 -0
  163. package/dist/run/evidence-recall.js.map +1 -0
  164. package/dist/run/index.d.ts +2 -0
  165. package/dist/run/index.d.ts.map +1 -1
  166. package/dist/run/index.js +1 -0
  167. package/dist/run/index.js.map +1 -1
  168. package/dist/run/json-claim-verifier.d.ts +83 -0
  169. package/dist/run/json-claim-verifier.d.ts.map +1 -0
  170. package/dist/run/json-claim-verifier.js +200 -0
  171. package/dist/run/json-claim-verifier.js.map +1 -0
  172. package/dist/run/preparation-context-error.d.ts +10 -0
  173. package/dist/run/preparation-context-error.d.ts.map +1 -0
  174. package/dist/run/preparation-context-error.js +15 -0
  175. package/dist/run/preparation-context-error.js.map +1 -0
  176. package/dist/run-query/index.d.ts +3 -1
  177. package/dist/run-query/index.d.ts.map +1 -1
  178. package/dist/runtime/jobs/awaited-jobs.d.ts +215 -0
  179. package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -0
  180. package/dist/runtime/jobs/awaited-jobs.js +259 -0
  181. package/dist/runtime/jobs/awaited-jobs.js.map +1 -0
  182. package/dist/runtime/jobs/registry.d.ts +33 -2
  183. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  184. package/dist/runtime/jobs/registry.js +37 -0
  185. package/dist/runtime/jobs/registry.js.map +1 -1
  186. package/dist/runtime/query/callback-inference.d.ts +8 -0
  187. package/dist/runtime/query/callback-inference.d.ts.map +1 -0
  188. package/dist/runtime/query/callback-inference.js +89 -0
  189. package/dist/runtime/query/callback-inference.js.map +1 -0
  190. package/dist/runtime/query/checkpoint.d.ts +4 -0
  191. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  192. package/dist/runtime/query/checkpoint.js +13 -0
  193. package/dist/runtime/query/checkpoint.js.map +1 -1
  194. package/dist/runtime/query/events.d.ts +1 -0
  195. package/dist/runtime/query/events.d.ts.map +1 -1
  196. package/dist/runtime/query/events.js +18 -0
  197. package/dist/runtime/query/events.js.map +1 -1
  198. package/dist/runtime/query/executor.d.ts +35 -1
  199. package/dist/runtime/query/executor.d.ts.map +1 -1
  200. package/dist/runtime/query/executor.js +77 -8
  201. package/dist/runtime/query/executor.js.map +1 -1
  202. package/dist/runtime/query/file-evidence-context.d.ts +5 -0
  203. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -0
  204. package/dist/runtime/query/file-evidence-context.js +180 -0
  205. package/dist/runtime/query/file-evidence-context.js.map +1 -0
  206. package/dist/runtime/query/file-evidence-replay.d.ts +260 -0
  207. package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -0
  208. package/dist/runtime/query/file-evidence-replay.js +647 -0
  209. package/dist/runtime/query/file-evidence-replay.js.map +1 -0
  210. package/dist/runtime/query/file-evidence-seed.d.ts +50 -0
  211. package/dist/runtime/query/file-evidence-seed.d.ts.map +1 -0
  212. package/dist/runtime/query/file-evidence-seed.js +100 -0
  213. package/dist/runtime/query/file-evidence-seed.js.map +1 -0
  214. package/dist/runtime/query/guard.d.ts.map +1 -1
  215. package/dist/runtime/query/guard.js +4 -0
  216. package/dist/runtime/query/guard.js.map +1 -1
  217. package/dist/runtime/query/index.d.ts +10 -1
  218. package/dist/runtime/query/index.d.ts.map +1 -1
  219. package/dist/runtime/query/index.js +133 -26
  220. package/dist/runtime/query/index.js.map +1 -1
  221. package/dist/runtime/query/iteration/index.d.ts +92 -36
  222. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  223. package/dist/runtime/query/iteration/index.js +420 -117
  224. package/dist/runtime/query/iteration/index.js.map +1 -1
  225. package/dist/runtime/query/iteration/phases/advisory.d.ts +2 -1
  226. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  227. package/dist/runtime/query/iteration/phases/advisory.js +2 -1
  228. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  229. package/dist/runtime/query/iteration/phases/context.d.ts +12 -1
  230. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  231. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  232. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  233. package/dist/runtime/query/iteration/phases/tool-review.js +8 -1
  234. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  235. package/dist/runtime/query/iteration/provider-rejected-image.d.ts +2 -1
  236. package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
  237. package/dist/runtime/query/iteration/provider-rejected-image.js +5 -2
  238. package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
  239. package/dist/runtime/query/iteration/stream-turn.d.ts +4 -1
  240. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  241. package/dist/runtime/query/iteration/stream-turn.js +22 -8
  242. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  243. package/dist/runtime/query/plugin-hooks.d.ts +14 -0
  244. package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
  245. package/dist/runtime/query/plugin-hooks.js +18 -0
  246. package/dist/runtime/query/plugin-hooks.js.map +1 -1
  247. package/dist/runtime/query/repeat-call.d.ts +17 -4
  248. package/dist/runtime/query/repeat-call.d.ts.map +1 -1
  249. package/dist/runtime/query/repeat-call.js +26 -19
  250. package/dist/runtime/query/repeat-call.js.map +1 -1
  251. package/dist/runtime/query/resume-pending.d.ts +18 -33
  252. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  253. package/dist/runtime/query/resume-pending.js +59 -42
  254. package/dist/runtime/query/resume-pending.js.map +1 -1
  255. package/dist/runtime/query/review-policy.d.ts +4 -4
  256. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  257. package/dist/runtime/query/review-policy.js +10 -9
  258. package/dist/runtime/query/review-policy.js.map +1 -1
  259. package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
  260. package/dist/runtime/query/sandbox-lifecycle.js +4 -0
  261. package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
  262. package/dist/runtime/query/steering.d.ts +11 -1
  263. package/dist/runtime/query/steering.d.ts.map +1 -1
  264. package/dist/runtime/query/steering.js +12 -1
  265. package/dist/runtime/query/steering.js.map +1 -1
  266. package/dist/runtime/query/tool-output-budget.d.ts +10 -6
  267. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  268. package/dist/runtime/query/tool-output-budget.js +54 -12
  269. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  270. package/dist/runtime/query/tooling.d.ts +5 -1
  271. package/dist/runtime/query/tooling.d.ts.map +1 -1
  272. package/dist/runtime/query/tooling.js +5 -0
  273. package/dist/runtime/query/tooling.js.map +1 -1
  274. package/dist/scheduler/completion-inbox.d.ts +49 -0
  275. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  276. package/dist/scheduler/completion-inbox.js +122 -2
  277. package/dist/scheduler/completion-inbox.js.map +1 -1
  278. package/dist/store/evidence/compaction-archive.d.ts +109 -0
  279. package/dist/store/evidence/compaction-archive.d.ts.map +1 -0
  280. package/dist/store/evidence/compaction-archive.js +125 -0
  281. package/dist/store/evidence/compaction-archive.js.map +1 -0
  282. package/dist/store/evidence/compaction-provenance.d.ts +7 -0
  283. package/dist/store/evidence/compaction-provenance.d.ts.map +1 -0
  284. package/dist/store/evidence/compaction-provenance.js +49 -0
  285. package/dist/store/evidence/compaction-provenance.js.map +1 -0
  286. package/dist/store/evidence/compaction-text.d.ts +16 -0
  287. package/dist/store/evidence/compaction-text.d.ts.map +1 -0
  288. package/dist/store/evidence/compaction-text.js +51 -0
  289. package/dist/store/evidence/compaction-text.js.map +1 -0
  290. package/dist/store/evidence/disk.d.ts +11 -0
  291. package/dist/store/evidence/disk.d.ts.map +1 -0
  292. package/dist/store/evidence/disk.js +367 -0
  293. package/dist/store/evidence/disk.js.map +1 -0
  294. package/dist/store/evidence/format.d.ts +25 -0
  295. package/dist/store/evidence/format.d.ts.map +1 -0
  296. package/dist/store/evidence/format.js +115 -0
  297. package/dist/store/evidence/format.js.map +1 -0
  298. package/dist/store/evidence/index-page.d.ts +208 -0
  299. package/dist/store/evidence/index-page.d.ts.map +1 -0
  300. package/dist/store/evidence/index-page.js +262 -0
  301. package/dist/store/evidence/index-page.js.map +1 -0
  302. package/dist/store/evidence/io.d.ts +24 -0
  303. package/dist/store/evidence/io.d.ts.map +1 -0
  304. package/dist/store/evidence/io.js +69 -0
  305. package/dist/store/evidence/io.js.map +1 -0
  306. package/dist/store/evidence/linked.d.ts +9 -0
  307. package/dist/store/evidence/linked.d.ts.map +1 -0
  308. package/dist/store/evidence/linked.js +314 -0
  309. package/dist/store/evidence/linked.js.map +1 -0
  310. package/dist/store/evidence/passages.d.ts +15 -0
  311. package/dist/store/evidence/passages.d.ts.map +1 -0
  312. package/dist/store/evidence/passages.js +72 -0
  313. package/dist/store/evidence/passages.js.map +1 -0
  314. package/dist/store/evidence/record-chain.d.ts +42 -0
  315. package/dist/store/evidence/record-chain.d.ts.map +1 -0
  316. package/dist/store/evidence/record-chain.js +111 -0
  317. package/dist/store/evidence/record-chain.js.map +1 -0
  318. package/dist/store/evidence/search-input.d.ts +21 -0
  319. package/dist/store/evidence/search-input.d.ts.map +1 -0
  320. package/dist/store/evidence/search-input.js +44 -0
  321. package/dist/store/evidence/search-input.js.map +1 -0
  322. package/dist/store/evidence/selection.d.ts +9 -0
  323. package/dist/store/evidence/selection.d.ts.map +1 -0
  324. package/dist/store/evidence/selection.js +17 -0
  325. package/dist/store/evidence/selection.js.map +1 -0
  326. package/dist/store/evidence/source-kind.d.ts +11 -0
  327. package/dist/store/evidence/source-kind.d.ts.map +1 -0
  328. package/dist/store/evidence/source-kind.js +26 -0
  329. package/dist/store/evidence/source-kind.js.map +1 -0
  330. package/dist/store/evidence/source-text.d.ts +51 -0
  331. package/dist/store/evidence/source-text.d.ts.map +1 -0
  332. package/dist/store/evidence/source-text.js +213 -0
  333. package/dist/store/evidence/source-text.js.map +1 -0
  334. package/dist/store/evidence/types.d.ts +162 -0
  335. package/dist/store/evidence/types.d.ts.map +1 -0
  336. package/dist/store/evidence/types.js +2 -0
  337. package/dist/store/evidence/types.js.map +1 -0
  338. package/dist/store/memory/disk.d.ts +2 -0
  339. package/dist/store/memory/disk.d.ts.map +1 -1
  340. package/dist/store/memory/disk.js +2 -1
  341. package/dist/store/memory/disk.js.map +1 -1
  342. package/dist/store/run/disk.d.ts +10 -0
  343. package/dist/store/run/disk.d.ts.map +1 -1
  344. package/dist/store/run/disk.js +87 -7
  345. package/dist/store/run/disk.js.map +1 -1
  346. package/dist/store/run/memory.d.ts +1 -0
  347. package/dist/store/run/memory.d.ts.map +1 -1
  348. package/dist/store/run/memory.js +10 -0
  349. package/dist/store/run/memory.js.map +1 -1
  350. package/dist/store/run/tool-executions.d.ts +13 -0
  351. package/dist/store/run/tool-executions.d.ts.map +1 -0
  352. package/dist/store/run/tool-executions.js +99 -0
  353. package/dist/store/run/tool-executions.js.map +1 -0
  354. package/dist/store/session/index.d.ts +2 -0
  355. package/dist/store/session/index.d.ts.map +1 -1
  356. package/dist/store/session/index.js +1 -0
  357. package/dist/store/session/index.js.map +1 -1
  358. package/dist/store/session/sqlite.d.ts +57 -0
  359. package/dist/store/session/sqlite.d.ts.map +1 -0
  360. package/dist/store/session/sqlite.js +430 -0
  361. package/dist/store/session/sqlite.js.map +1 -0
  362. package/dist/tools/builtins/bash.d.ts.map +1 -1
  363. package/dist/tools/builtins/bash.js +4 -10
  364. package/dist/tools/builtins/bash.js.map +1 -1
  365. package/dist/tools/builtins/edit-apply.d.ts +126 -0
  366. package/dist/tools/builtins/edit-apply.d.ts.map +1 -0
  367. package/dist/tools/builtins/edit-apply.js +360 -0
  368. package/dist/tools/builtins/edit-apply.js.map +1 -0
  369. package/dist/tools/builtins/edit.d.ts +143 -1
  370. package/dist/tools/builtins/edit.d.ts.map +1 -1
  371. package/dist/tools/builtins/edit.js +37 -219
  372. package/dist/tools/builtins/edit.js.map +1 -1
  373. package/dist/tools/builtins/index.d.ts +1 -0
  374. package/dist/tools/builtins/index.d.ts.map +1 -1
  375. package/dist/tools/builtins/index.js +9 -3
  376. package/dist/tools/builtins/index.js.map +1 -1
  377. package/dist/tools/builtins/job.d.ts.map +1 -1
  378. package/dist/tools/builtins/job.js +5 -6
  379. package/dist/tools/builtins/job.js.map +1 -1
  380. package/dist/tools/builtins/read-file.d.ts +2 -2
  381. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  382. package/dist/tools/builtins/read-file.js +50 -65
  383. package/dist/tools/builtins/read-file.js.map +1 -1
  384. package/dist/tools/builtins/read-render.d.ts +56 -0
  385. package/dist/tools/builtins/read-render.d.ts.map +1 -0
  386. package/dist/tools/builtins/read-render.js +73 -0
  387. package/dist/tools/builtins/read-render.js.map +1 -0
  388. package/dist/tools/builtins/wait-for-job-bounds.d.ts +67 -0
  389. package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -0
  390. package/dist/tools/builtins/wait-for-job-bounds.js +108 -0
  391. package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -0
  392. package/dist/tools/builtins/wait-for-job.d.ts +6 -0
  393. package/dist/tools/builtins/wait-for-job.d.ts.map +1 -0
  394. package/dist/tools/builtins/wait-for-job.js +162 -0
  395. package/dist/tools/builtins/wait-for-job.js.map +1 -0
  396. package/dist/tools/builtins/write-file.js +7 -2
  397. package/dist/tools/builtins/write-file.js.map +1 -1
  398. package/dist/tools/coordinator/index.d.ts.map +1 -1
  399. package/dist/tools/coordinator/index.js +1 -7
  400. package/dist/tools/coordinator/index.js.map +1 -1
  401. package/dist/tools/defineTool.d.ts +2 -1
  402. package/dist/tools/defineTool.d.ts.map +1 -1
  403. package/dist/tools/defineTool.js +1 -1
  404. package/dist/tools/defineTool.js.map +1 -1
  405. package/dist/tools/file-read-tracker.d.ts.map +1 -1
  406. package/dist/tools/file-read-tracker.js +90 -3
  407. package/dist/tools/file-read-tracker.js.map +1 -1
  408. package/dist/tools/resident-history.d.ts +10 -0
  409. package/dist/tools/resident-history.d.ts.map +1 -0
  410. package/dist/tools/resident-history.js +80 -0
  411. package/dist/tools/resident-history.js.map +1 -0
  412. package/dist/tools/resident-tool-evidence.d.ts +5 -0
  413. package/dist/tools/resident-tool-evidence.d.ts.map +1 -0
  414. package/dist/tools/resident-tool-evidence.js +57 -0
  415. package/dist/tools/resident-tool-evidence.js.map +1 -0
  416. package/dist/types/advisory/config.d.ts +7 -0
  417. package/dist/types/advisory/config.d.ts.map +1 -1
  418. package/dist/types/agent/reactive.d.ts +1 -0
  419. package/dist/types/agent/reactive.d.ts.map +1 -1
  420. package/dist/types/authorization/index.d.ts +9 -9
  421. package/dist/types/authorization/index.d.ts.map +1 -1
  422. package/dist/types/authorization/index.js +1 -1
  423. package/dist/types/authorization/index.js.map +1 -1
  424. package/dist/types/hitl/index.d.ts +4 -0
  425. package/dist/types/hitl/index.d.ts.map +1 -1
  426. package/dist/types/hitl/index.js.map +1 -1
  427. package/dist/types/message/index.d.ts +16 -2
  428. package/dist/types/message/index.d.ts.map +1 -1
  429. package/dist/types/message/index.js +10 -1
  430. package/dist/types/message/index.js.map +1 -1
  431. package/dist/types/provider/chat.d.ts +2 -0
  432. package/dist/types/provider/chat.d.ts.map +1 -1
  433. package/dist/types/provider/stream.d.ts +4 -0
  434. package/dist/types/provider/stream.d.ts.map +1 -1
  435. package/dist/types/run/answer-review.d.ts +34 -3
  436. package/dist/types/run/answer-review.d.ts.map +1 -1
  437. package/dist/types/run/config.d.ts +3 -0
  438. package/dist/types/run/config.d.ts.map +1 -1
  439. package/dist/types/run/entity.d.ts +20 -0
  440. package/dist/types/run/entity.d.ts.map +1 -1
  441. package/dist/types/run/events.d.ts +31 -8
  442. package/dist/types/run/events.d.ts.map +1 -1
  443. package/dist/types/run/events.js.map +1 -1
  444. package/dist/types/run/prepare-step.d.ts +53 -8
  445. package/dist/types/run/prepare-step.d.ts.map +1 -1
  446. package/dist/types/run/store.d.ts +29 -4
  447. package/dist/types/run/store.d.ts.map +1 -1
  448. package/dist/types/run/store.js +0 -28
  449. package/dist/types/run/store.js.map +1 -1
  450. package/dist/types/sandbox/index.d.ts +15 -14
  451. package/dist/types/sandbox/index.d.ts.map +1 -1
  452. package/dist/types/sandbox/index.js.map +1 -1
  453. package/dist/types/tool/index.d.ts +124 -1
  454. package/dist/types/tool/index.d.ts.map +1 -1
  455. package/dist/types/tool/index.js.map +1 -1
  456. package/dist/utils/await-with-abort.d.ts +8 -0
  457. package/dist/utils/await-with-abort.d.ts.map +1 -0
  458. package/dist/utils/await-with-abort.js +28 -0
  459. package/dist/utils/await-with-abort.js.map +1 -0
  460. package/dist/utils/env.d.ts +19 -0
  461. package/dist/utils/env.d.ts.map +1 -0
  462. package/dist/utils/env.js +25 -0
  463. package/dist/utils/env.js.map +1 -0
  464. package/dist/utils/evidence-time.d.ts +3 -0
  465. package/dist/utils/evidence-time.d.ts.map +1 -0
  466. package/dist/utils/evidence-time.js +10 -0
  467. package/dist/utils/evidence-time.js.map +1 -0
  468. package/dist/utils/evidence-tokens.d.ts +13 -0
  469. package/dist/utils/evidence-tokens.d.ts.map +1 -0
  470. package/dist/utils/evidence-tokens.js +29 -0
  471. package/dist/utils/evidence-tokens.js.map +1 -0
  472. package/package.json +1 -1
  473. package/src/advisory/executor.ts +15 -30
  474. package/src/advisory/history.ts +126 -0
  475. package/src/advisory/index.ts +5 -1
  476. package/src/agents/ReactiveAgent.ts +3 -0
  477. package/src/agents/runAgent.ts +14 -1
  478. package/src/compaction/manual.ts +30 -2
  479. package/src/compaction/summary.ts +4 -1
  480. package/src/config/runtime.ts +2 -2
  481. package/src/connector/mcp/adapter.ts +20 -6
  482. package/src/contracts/schemas.ts +1 -1
  483. package/src/eval/harness-protection.ts +79 -0
  484. package/src/eval/harness-verification.ts +31 -1
  485. package/src/eval/index.ts +1 -0
  486. package/src/manager/resident/activity.ts +187 -0
  487. package/src/manager/resident/agenda.ts +59 -5
  488. package/src/manager/resident/consumption.ts +311 -0
  489. package/src/manager/resident/evidence-recall.ts +363 -0
  490. package/src/manager/resident/history-disk.ts +63 -0
  491. package/src/manager/resident/history.ts +312 -0
  492. package/src/manager/resident/initiative.ts +13 -3
  493. package/src/manager/resident/learning-cycle.ts +499 -0
  494. package/src/manager/resident/learning-observation.ts +39 -0
  495. package/src/manager/resident/learning-store.ts +813 -0
  496. package/src/manager/resident/learning.ts +132 -8
  497. package/src/manager/resident/store.ts +31 -3
  498. package/src/manager/resident/tool-evidence.ts +412 -0
  499. package/src/manager/run/persistence.ts +18 -0
  500. package/src/plugin/loader.ts +8 -3
  501. package/src/prompt/coding-agent-doctrine.ts +2 -0
  502. package/src/prompt/index.ts +2 -0
  503. package/src/prompt/resident-learning.ts +143 -0
  504. package/src/prompt/resident-step.ts +83 -3
  505. package/src/provider/collect-chat-completion.ts +7 -6
  506. package/src/provider/fallback.ts +2 -1
  507. package/src/provider/stream-text.ts +56 -0
  508. package/src/public-runtime.ts +39 -1
  509. package/src/public-tools.ts +21 -0
  510. package/src/public-types.ts +98 -0
  511. package/src/registry/tool/execute.ts +2 -4
  512. package/src/registry/tool/portable.ts +264 -0
  513. package/src/registry/tool/schema.ts +38 -8
  514. package/src/registry/toolset/catalog.ts +8 -9
  515. package/src/run/LimitChecker.ts +3 -3
  516. package/src/run/evidence-query.ts +333 -0
  517. package/src/run/evidence-recall.ts +854 -0
  518. package/src/run/index.ts +11 -0
  519. package/src/run/json-claim-verifier.ts +298 -0
  520. package/src/run/preparation-context-error.ts +16 -0
  521. package/src/run-query/index.ts +1 -1
  522. package/src/runtime/jobs/awaited-jobs.ts +271 -0
  523. package/src/runtime/jobs/registry.ts +50 -0
  524. package/src/runtime/query/callback-inference.ts +94 -0
  525. package/src/runtime/query/checkpoint.ts +14 -0
  526. package/src/runtime/query/events.ts +22 -0
  527. package/src/runtime/query/executor.ts +100 -10
  528. package/src/runtime/query/file-evidence-context.ts +209 -0
  529. package/src/runtime/query/file-evidence-replay.ts +776 -0
  530. package/src/runtime/query/file-evidence-seed.ts +126 -0
  531. package/src/runtime/query/guard.ts +2 -0
  532. package/src/runtime/query/index.ts +153 -27
  533. package/src/runtime/query/iteration/index.ts +467 -110
  534. package/src/runtime/query/iteration/phases/advisory.ts +3 -0
  535. package/src/runtime/query/iteration/phases/context.ts +12 -0
  536. package/src/runtime/query/iteration/phases/tool-review.ts +7 -0
  537. package/src/runtime/query/iteration/provider-rejected-image.ts +6 -1
  538. package/src/runtime/query/iteration/stream-turn.ts +35 -8
  539. package/src/runtime/query/plugin-hooks.ts +20 -0
  540. package/src/runtime/query/repeat-call.ts +28 -18
  541. package/src/runtime/query/resume-pending.ts +65 -40
  542. package/src/runtime/query/review-policy.ts +13 -9
  543. package/src/runtime/query/sandbox-lifecycle.ts +3 -0
  544. package/src/runtime/query/steering.ts +11 -0
  545. package/src/runtime/query/tool-output-budget.ts +65 -13
  546. package/src/runtime/query/tooling.ts +10 -1
  547. package/src/scheduler/completion-inbox.ts +124 -2
  548. package/src/store/evidence/compaction-archive.ts +139 -0
  549. package/src/store/evidence/compaction-provenance.ts +52 -0
  550. package/src/store/evidence/compaction-text.ts +61 -0
  551. package/src/store/evidence/disk.ts +461 -0
  552. package/src/store/evidence/format.ts +126 -0
  553. package/src/store/evidence/index-page.ts +292 -0
  554. package/src/store/evidence/io.ts +95 -0
  555. package/src/store/evidence/linked.ts +365 -0
  556. package/src/store/evidence/passages.ts +88 -0
  557. package/src/store/evidence/record-chain.ts +108 -0
  558. package/src/store/evidence/search-input.ts +62 -0
  559. package/src/store/evidence/selection.ts +25 -0
  560. package/src/store/evidence/source-kind.ts +36 -0
  561. package/src/store/evidence/source-text.ts +285 -0
  562. package/src/store/evidence/types.ts +177 -0
  563. package/src/store/memory/disk.ts +4 -1
  564. package/src/store/run/disk.ts +110 -8
  565. package/src/store/run/memory.ts +10 -0
  566. package/src/store/run/tool-executions.ts +112 -0
  567. package/src/store/session/index.ts +2 -0
  568. package/src/store/session/sqlite.ts +584 -0
  569. package/src/tools/builtins/bash.ts +4 -10
  570. package/src/tools/builtins/edit-apply.ts +456 -0
  571. package/src/tools/builtins/edit.ts +39 -270
  572. package/src/tools/builtins/index.ts +9 -3
  573. package/src/tools/builtins/job.ts +5 -6
  574. package/src/tools/builtins/read-file.ts +56 -77
  575. package/src/tools/builtins/read-render.ts +104 -0
  576. package/src/tools/builtins/wait-for-job-bounds.ts +179 -0
  577. package/src/tools/builtins/wait-for-job.ts +184 -0
  578. package/src/tools/builtins/write-file.ts +7 -2
  579. package/src/tools/coordinator/index.ts +1 -7
  580. package/src/tools/defineTool.ts +4 -2
  581. package/src/tools/file-read-tracker.ts +86 -2
  582. package/src/tools/resident-history.ts +86 -0
  583. package/src/tools/resident-tool-evidence.ts +68 -0
  584. package/src/types/advisory/config.ts +7 -0
  585. package/src/types/agent/reactive.ts +1 -0
  586. package/src/types/authorization/index.ts +2 -2
  587. package/src/types/hitl/index.ts +4 -0
  588. package/src/types/message/index.ts +22 -0
  589. package/src/types/provider/chat.ts +2 -0
  590. package/src/types/provider/stream.ts +4 -0
  591. package/src/types/run/answer-review.ts +34 -3
  592. package/src/types/run/config.ts +3 -0
  593. package/src/types/run/entity.ts +21 -0
  594. package/src/types/run/events.ts +31 -8
  595. package/src/types/run/prepare-step.ts +59 -8
  596. package/src/types/run/store.ts +35 -4
  597. package/src/types/sandbox/index.ts +15 -14
  598. package/src/types/tool/index.ts +123 -1
  599. package/src/utils/await-with-abort.ts +26 -0
  600. package/src/utils/env.ts +23 -0
  601. package/src/utils/evidence-time.ts +9 -0
  602. package/src/utils/evidence-tokens.ts +32 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-evidence-replay.js","sourceRoot":"","sources":["../../../src/runtime/query/file-evidence-replay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { Message } from '../../types/message/index.js';
2
+ import type { FileReadTracker } from '../../types/tool/index.js';
3
+ import { type LedgerReplayReport } from './file-evidence-replay.js';
4
+ /**
5
+ * Distinct paths one seeding will canonicalize before it replays anything.
6
+ *
7
+ * A ceiling rather than a budget because the work is uniform: each path is a
8
+ * handful of `realpath` calls, once per conversation. Counted on distinct
9
+ * SPELLINGS, the ones only `read` names included — a read has to be keyed too
10
+ * or it cannot contradict a claim — so two spellings of one file count twice.
11
+ * A history naming more paths than this is not a conversation whose ledger is
12
+ * worth guessing at, and it seeds nothing rather than resolving a prefix and
13
+ * abandoning the rest — a partially keyed walk is a walk that cannot say what
14
+ * a mutation replaced. That is a total loss for the conversation, not a partial
15
+ * one: it starts from the empty ledger a resume has always started from, and
16
+ * its first mutation of each path re-establishes it.
17
+ */
18
+ export declare const MAX_RESOLVED_PATHS = 1024;
19
+ /** What a caller needs to key a path the way its tools will. */
20
+ export interface ObservationSeedContext {
21
+ readonly workingDirectory: string;
22
+ /** See `ToolContext.additionalDirectories`; part of the tools' resolution. */
23
+ readonly additionalDirectories?: readonly string[];
24
+ /** True when this run's tools address a sandbox, whose keys are paths as written. */
25
+ readonly sandboxed?: boolean;
26
+ }
27
+ /**
28
+ * Rebuild `tracker` from a conversation's own `messages`.
29
+ *
30
+ * For a host that keeps one tracker per conversation and has just restored one:
31
+ * the ledger is process memory, so a resumed conversation starts with nothing
32
+ * in it and re-reads files whose whole body is already in the transcript. Call
33
+ * it once, before the conversation's first request. Reading files is confined
34
+ * to canonicalizing the paths in the history; no file's CONTENT is read, and
35
+ * every body restored is one the visible calls reconstruct exactly.
36
+ *
37
+ * Content-backed observations, and only those. A path the walk cannot rebuild
38
+ * is left out of the ledger rather than entered without a fingerprint, so
39
+ * `write`'s read-before-overwrite refusal stands over it exactly as it does
40
+ * against the empty ledger a resume gets today. Three things seed nothing at
41
+ * all, and the report says so: a history naming more than
42
+ * {@link MAX_RESOLVED_PATHS} distinct path spellings, one whose ids are
43
+ * ambiguous, and one holding a mutation no path can be recovered from —
44
+ * whatever the transcript says came back to that mutation, since a key is what
45
+ * withdrawing one path rather than the whole pass takes. A call whose arguments
46
+ * are too long to read as JSON at all is one of that last kind; the replay
47
+ * states the ceiling.
48
+ */
49
+ export declare function seedObservationLedger(messages: readonly Message[], tracker: FileReadTracker, context: ObservationSeedContext): Promise<LedgerReplayReport>;
50
+ //# sourceMappingURL=file-evidence-seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-evidence-seed.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/file-evidence-seed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAEN,KAAK,kBAAkB,EAKvB,MAAM,2BAA2B,CAAA;AAsBlC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClD,qFAAqF;IACrF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAS7B"}
@@ -0,0 +1,100 @@
1
+ import { resolveWithinAnyReal, toolRoots } from '../../tools/paths.js';
2
+ import { collectObservedPaths, createPathAttributions, replayObservationLedger, } from './file-evidence-replay.js';
3
+ /**
4
+ * Seeding an observation ledger from history, in the key space the tools use.
5
+ *
6
+ * The replay itself is pure and stays that way. What lives here is the one
7
+ * thing it cannot do for itself: work out which ledger key each path in the
8
+ * history belongs to. On a host that is not `resolve(cwd, path)` — `write`,
9
+ * `edit` and `read` all key on `resolveWithinAnyReal`, which canonicalizes
10
+ * every symlink on the way, because a ledger entry has to identify a FILE and
11
+ * two spellings of one file must not become two entries.
12
+ *
13
+ * Seeding lexically instead is worse than useless. The projection looks up
14
+ * lexically too, so it would match a fingerprint the seed had just written into
15
+ * a key space nothing else touches — while every drift refusal, made by a tool,
16
+ * lands on the canonical key and never withdraws it. The runtime would go on
17
+ * telling the model a body it can no longer vouch for, with no mechanism left
18
+ * to take it back. So the resolution happens here, with the tools' own
19
+ * function, and a path that will not resolve gets no key at all.
20
+ */
21
+ const NOTHING = { pathsWitnessed: 0, pathsSeen: 0, unitsReplayed: 0 };
22
+ /**
23
+ * Distinct paths one seeding will canonicalize before it replays anything.
24
+ *
25
+ * A ceiling rather than a budget because the work is uniform: each path is a
26
+ * handful of `realpath` calls, once per conversation. Counted on distinct
27
+ * SPELLINGS, the ones only `read` names included — a read has to be keyed too
28
+ * or it cannot contradict a claim — so two spellings of one file count twice.
29
+ * A history naming more paths than this is not a conversation whose ledger is
30
+ * worth guessing at, and it seeds nothing rather than resolving a prefix and
31
+ * abandoning the rest — a partially keyed walk is a walk that cannot say what
32
+ * a mutation replaced. That is a total loss for the conversation, not a partial
33
+ * one: it starts from the empty ledger a resume has always started from, and
34
+ * its first mutation of each path re-establishes it.
35
+ */
36
+ export const MAX_RESOLVED_PATHS = 1024;
37
+ /**
38
+ * Rebuild `tracker` from a conversation's own `messages`.
39
+ *
40
+ * For a host that keeps one tracker per conversation and has just restored one:
41
+ * the ledger is process memory, so a resumed conversation starts with nothing
42
+ * in it and re-reads files whose whole body is already in the transcript. Call
43
+ * it once, before the conversation's first request. Reading files is confined
44
+ * to canonicalizing the paths in the history; no file's CONTENT is read, and
45
+ * every body restored is one the visible calls reconstruct exactly.
46
+ *
47
+ * Content-backed observations, and only those. A path the walk cannot rebuild
48
+ * is left out of the ledger rather than entered without a fingerprint, so
49
+ * `write`'s read-before-overwrite refusal stands over it exactly as it does
50
+ * against the empty ledger a resume gets today. Three things seed nothing at
51
+ * all, and the report says so: a history naming more than
52
+ * {@link MAX_RESOLVED_PATHS} distinct path spellings, one whose ids are
53
+ * ambiguous, and one holding a mutation no path can be recovered from —
54
+ * whatever the transcript says came back to that mutation, since a key is what
55
+ * withdrawing one path rather than the whole pass takes. A call whose arguments
56
+ * are too long to read as JSON at all is one of that last kind; the replay
57
+ * states the ceiling.
58
+ */
59
+ export async function seedObservationLedger(messages, tracker, context) {
60
+ // One attribution cache across both halves. The path collection and the
61
+ // walk ask the same question of the same calls — which file did this touch
62
+ // — and answering it means reading a string that, for a `write`, is a whole
63
+ // file body. Asking once per seeding rather than once per half is why the
64
+ // replay's own ceiling on that read can be as generous as it is.
65
+ const attributions = createPathAttributions();
66
+ const keyOf = await resolveObservedFileKeys(messages, context, attributions);
67
+ return keyOf ? replayObservationLedger(messages, tracker, keyOf, attributions) : NOTHING;
68
+ }
69
+ /**
70
+ * The tools' key for every path this history names, or `undefined` when the
71
+ * pass should not run at all.
72
+ *
73
+ * `undefined` for a history with nothing to reconstruct and for one past the
74
+ * ceiling. A path the resolver refuses — it escapes the roots this run may
75
+ * reach, or the working directory itself is gone — is simply left unkeyed;
76
+ * the replay then treats the mutation that named it as unattributable, which
77
+ * is the fail-closed answer and the same one it gives a call it cannot parse.
78
+ */
79
+ async function resolveObservedFileKeys(messages, context, attributions) {
80
+ const paths = collectObservedPaths(messages, attributions);
81
+ if (paths.length === 0 || paths.length > MAX_RESOLVED_PATHS)
82
+ return undefined;
83
+ // A sandbox has its own root and its own resolver, and the tools key on the
84
+ // path as written there. Canonicalizing it against the host filesystem would
85
+ // ask about the wrong machine.
86
+ if (context.sandboxed)
87
+ return (path) => path;
88
+ const roots = toolRoots(context);
89
+ const keys = new Map();
90
+ for (const path of paths) {
91
+ try {
92
+ keys.set(path, await resolveWithinAnyReal(roots, path));
93
+ }
94
+ catch {
95
+ // Left unkeyed on purpose; see above.
96
+ }
97
+ }
98
+ return (path) => keys.get(path);
99
+ }
100
+ //# sourceMappingURL=file-evidence-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-evidence-seed.js","sourceRoot":"","sources":["../../../src/runtime/query/file-evidence-seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGtE,OAAO,EAIN,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,2BAA2B,CAAA;AAElC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,GAAuB,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAA;AAEzF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAWtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAA4B,EAC5B,OAAwB,EACxB,OAA+B;IAE/B,wEAAwE;IACxE,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IAC5E,OAAO,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AACzF,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,uBAAuB,CACrC,QAA4B,EAC5B,OAA+B,EAC/B,YAA8B;IAE9B,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB;QAAE,OAAO,SAAS,CAAA;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,+BAA+B;IAC/B,IAAI,OAAO,CAAC,SAAS;QAAE,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAA;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,sCAAsC;QACvC,CAAC;IACF,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE9E,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;CACpB;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,WAAW;IAc/B;;;;;;;OAOG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,yBAAyB,IAAI,MAAM;IAKnC;;;;;;;OAOG;IACH,uBAAuB,IAAI,MAAM;IAIjC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;CA4CnF"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE9E,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;CACpB;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,WAAW;IAc/B;;;;;;;OAOG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,yBAAyB,IAAI,MAAM;IAMnC;;;;;;;OAOG;IACH,uBAAuB,IAAI,MAAM;IAKjC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;CA4CnF"}
@@ -49,6 +49,8 @@ export class GuardCoordinator {
49
49
  * on the RUN rather than on the process now hosting it.
50
50
  */
51
51
  remainingBeforeFinalizeMs() {
52
+ if (this.limitConfig.timeoutMs === 0)
53
+ return Number.POSITIVE_INFINITY;
52
54
  const finalizeAt = this.limitConfig.timeoutMs * this.limitConfig.budgetWarningThreshold;
53
55
  return Math.max(0, finalizeAt - (Date.now() - this.startTime));
54
56
  }
@@ -61,6 +63,8 @@ export class GuardCoordinator {
61
63
  * deadline around such work instead of inventing a second clock.
62
64
  */
63
65
  remainingUntilTimeoutMs() {
66
+ if (this.limitConfig.timeoutMs === 0)
67
+ return Number.POSITIVE_INFINITY;
64
68
  return Math.max(0, this.limitConfig.timeoutMs - (Date.now() - this.startTime));
65
69
  }
66
70
  beforeIteration(runMgr, abortSignal) {
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/runtime/query/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/runtime/query/guard.ts"],"names":[],"mappings":"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"}
@@ -232,6 +232,14 @@ export interface QueryParams {
232
232
  * agent decides the rest is worth re-reading. Set `0` to disable.
233
233
  */
234
234
  maxToolOutputChars?: number;
235
+ /**
236
+ * Smaller preview for text that exceeded maxToolOutputChars, after its full
237
+ * host output and integrity manifest have been saved. Unset/0 keeps the old
238
+ * preview size. Does not change the spill threshold, rich blocks or ordinary
239
+ * results. A failed spill/manifest or a cap too small for its recovery path
240
+ * retains the ordinary output budget. Re-supply on resume.
241
+ */
242
+ retainedToolPreviewChars?: number;
235
243
  /**
236
244
  * Cap on the RICH channel of a single tool result, in base64 characters.
237
245
  * `0` or absent disables it. Separate from {@link maxToolOutputChars}:
@@ -277,6 +285,7 @@ export interface QueryParams {
277
285
  *
278
286
  * Bounded by {@link maxAnswerReviews}. Never called on the forced-final
279
287
  * turn, which exists to extract a closing summary under pressure.
288
+ * Exceptions or malformed verdicts fail the run; cancellation stops waiting.
280
289
  */
281
290
  reviewAnswer?: ReviewAnswer;
282
291
  /**
@@ -286,7 +295,7 @@ export interface QueryParams {
286
295
  * run behaves exactly as it did.
287
296
  */
288
297
  promoteMemory?: PromoteMemory;
289
- /** Rejections allowed before the run stops. Default 3. */
298
+ /** Corrections allowed before the run stops. Nonnegative safe integer; default 3. Consumed rejections survive checkpoints. */
290
299
  maxAnswerReviews?: number;
291
300
  /** Called with each completed step, as it completes. */
292
301
  onStepFinish?: (step: StepResult) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/index.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ import { memoryCandidateFor } from '../../types/run/memory-promotion.js';
36
36
  import { toErrorMessage } from '../../utils/error.js';
37
37
  import { generateCheckpointId, generateRunId } from '../../utils/id.js';
38
38
  import { errorAttributes } from '../../utils/log/exception.js';
39
+ import { AwaitedJobs } from '../jobs/awaited-jobs.js';
39
40
  import { AUTO_APPROVE_POLICY_NAME, createRunApprovalPolicy } from './approval-policy.js';
40
41
  import { CheckpointManager } from './checkpoint.js';
41
42
  import { RunContextFactory } from './context.js';
@@ -52,7 +53,7 @@ import { PendingAnswers, QuestionParkBinding } from './question-park.js';
52
53
  import { RepeatCallTracker } from './repeat-call.js';
53
54
  import { resolveMaxRequestRichContentBytes } from './request-rich-content.js';
54
55
  import { ResultAssembler } from './result.js';
55
- import { applyPendingResume, planCrashResume, planPendingResume, recoverCompletedCalls, unansweredToolCalls, } from './resume-pending.js';
56
+ import { applyPendingResume, interruptedToolCalls, planCrashResume, planPendingResume, recoverCompletedCalls, } from './resume-pending.js';
56
57
  import { acquireSandbox, resolveSandboxTeardownTimeoutMs, teardownSandbox, } from './sandbox-lifecycle.js';
57
58
  import { SteeringBinding, isOperatorUserMessage } from './steering.js';
58
59
  import { resolveQueryBudget } from './token-budget.js';
@@ -169,11 +170,10 @@ async function resolveProviderContextWindow(provider, model, signal, timeoutMs,
169
170
  onAbort = () => resolve(interrupted);
170
171
  resolverSignal.addEventListener('abort', onAbort, { once: true });
171
172
  });
172
- // Wire and directory config validation already limit this field to one
173
- // hour. The clamp also keeps a direct QueryParams caller from triggering
174
- // Node's >2^31-1 one-millisecond timer coercion and turning a huge run
175
- // budget into an immediate metadata fallback.
176
- const deadlineMs = Math.min(Math.max(0, timeoutMs), 2_147_483_647);
173
+ // Direct QueryParams callers can supply a large run deadline. The clamp
174
+ // avoids Node's >2^31-1 one-millisecond timer coercion during metadata lookup.
175
+ // Metadata discovery remains optional and bounded even without a run deadline.
176
+ const deadlineMs = timeoutMs === 0 ? 5_000 : Math.min(Math.max(0, timeoutMs), 2_147_483_647);
177
177
  const timer = setTimeout(() => {
178
178
  deadline.abort(new Error(`Provider context-window lookup exceeded ${deadlineMs}ms`));
179
179
  }, deadlineMs);
@@ -250,6 +250,50 @@ function withoutOwnedResumeTurn(messages, assistant) {
250
250
  return messages.filter((message, index) => index !== ownerIndex &&
251
251
  !(index > ownerIndex && message.role === 'tool' && ownedIds.has(message.toolCallId)));
252
252
  }
253
+ /**
254
+ * The history plus the part of the owned resume turn that already RAN, for the
255
+ * observation ledger to be seeded from.
256
+ *
257
+ * `withoutOwnedResumeTurn` takes that turn out so generic repair cannot answer
258
+ * it, and the plan re-appends it much later — after the sandbox exists, after
259
+ * the input guardrails, immediately before the loop. Seeding from the list the
260
+ * model finally sees would therefore have to happen after `applyPendingResume`,
261
+ * and that is the wrong seam for a reason that is not about ordering: the plan
262
+ * does not merely re-append the turn, it EXECUTES the calls in it that never
263
+ * started. Those tools read the ledger this seeding builds, so a seed placed
264
+ * after them would refuse the very write the resume exists to carry out — no
265
+ * `hasRead` for a file the conversation had read three turns earlier.
266
+ *
267
+ * So the turn is folded in here instead, and only as far as it actually got.
268
+ * A call `recoverCompletedCalls` found an outcome for is one that ran: its
269
+ * receipt goes in beside it, and the walk reads it exactly as it reads any
270
+ * other — a completed `write` restores the body it put there, and the
271
+ * unknown-outcome result the recovery writes for an interrupted one withdraws
272
+ * the path instead. A call ABSENT from that map is absent because a complete
273
+ * scan proved it has no recorded start, so the file it names is untouched and
274
+ * the claim history established for it still stands; leaving it out is what
275
+ * lets it execute in a moment. Without any of this the seed never saw the
276
+ * turn at all, and an executed write inside it left the pre-write body standing
277
+ * as a claim until the next mutation's drift check happened to catch it.
278
+ */
279
+ function withOwnedResumeOutcomes(messages, assistant, recovered) {
280
+ const ran = (assistant.toolCalls ?? []).flatMap((call) => {
281
+ const outcome = recovered.get(call.id);
282
+ return outcome ? [{ call, outcome }] : [];
283
+ });
284
+ if (ran.length === 0)
285
+ return [...messages];
286
+ return [
287
+ ...messages,
288
+ { ...assistant, toolCalls: ran.map(({ call }) => call) },
289
+ ...ran.map(({ call, outcome }) => ({
290
+ role: 'tool',
291
+ toolCallId: call.id,
292
+ content: outcome.result,
293
+ isError: outcome.isError,
294
+ })),
295
+ ];
296
+ }
253
297
  export async function* query(params) {
254
298
  assertMaxToolCalls(params.maxToolCalls);
255
299
  // Required types do not protect JavaScript callers. Reject missing scope
@@ -864,10 +908,40 @@ export async function* query(params) {
864
908
  const verificationGate = gateConfig?.enabled
865
909
  ? new AuthorizationGate(gateConfig, ctx.log)
866
910
  : undefined;
867
- // is null only when the run has no disk layout (tests,
868
- // in-memory hosts); the budget then degrades to middle-elision.
869
- const runDirForTools = ctx.runMgr.getRunDir();
870
- const toolOutputDir = runDirForTools ? join(runDirForTools, TOOL_OUTPUT_DIR_NAME) : undefined;
911
+ // The store is initialized when the async query starts, after tooling is
912
+ // composed. Resolve lazily at execution time: capturing getRunDir() here
913
+ // permanently disabled retention for fresh disk-backed invocations.
914
+ const toolOutputDir = () => {
915
+ const runDir = ctx.runMgr.getRunDir();
916
+ return runDir ? join(runDir, TOOL_OUTPUT_DIR_NAME) : undefined;
917
+ };
918
+ // The same invocation-owned capability serves tools and optional preparation.
919
+ // Local cancellation cannot override the run's cancellation or settled state.
920
+ const captureRunEvidence = async (maxReadBytes, signal) => {
921
+ const combined = signal
922
+ ? AbortSignal.any([ctx.abortController.signal, signal])
923
+ : ctx.abortController.signal;
924
+ combined.throwIfAborted();
925
+ const source = await eventTranslator.captureRunEvidence(maxReadBytes, combined);
926
+ combined.throwIfAborted();
927
+ return source;
928
+ };
929
+ // Whose jobs this run speaks for: its own by default, the session's when
930
+ // the host said so. Resolved before the tools are built, because the
931
+ // wait-intent recorder below is bound into them.
932
+ const jobOwner = params.backgroundJobOwner ?? ctx.runId;
933
+ // What the model reads when a job ends. Built up here, ahead of the
934
+ // subscription that fills it below, because the wait-intent recorder needs
935
+ // to ask whether its text has been read yet.
936
+ const jobNotices = params.backgroundJobs ? new SteeringBinding() : undefined;
937
+ // Jobs the model told `wait_for_job` it is waiting on, which is the only
938
+ // thing that can hold this run open for a job. Built only where there is a
939
+ // registry, so a host with no background mode carries no recorder and the
940
+ // bound ref has no `markAwaited` to offer.
941
+ const awaitedJobs = params.backgroundJobs
942
+ ? new AwaitedJobs(params.backgroundJobs, jobOwner, () => jobNotices?.pending ?? false)
943
+ : undefined;
944
+ awaitedJobs?.attach();
871
945
  const toolExecutor = ToolingBootstrap.init({
872
946
  tools: params.tools,
873
947
  runId: ctx.runId,
@@ -883,6 +957,7 @@ export async function* query(params) {
883
957
  pluginManager: params.pluginManager,
884
958
  ...(params.backgroundJobs ? { backgroundJobs: params.backgroundJobs } : {}),
885
959
  ...(params.backgroundJobOwner ? { backgroundJobOwner: params.backgroundJobOwner } : {}),
960
+ ...(awaitedJobs ? { onJobAwaited: (id) => awaitedJobs.expect(id) } : {}),
886
961
  // The `skill` tool's registry. Threaded from the run rather than
887
962
  // held by the tool, because a tool that reached for a module-level
888
963
  // registry would answer about whatever the last run configured.
@@ -905,13 +980,17 @@ export async function* query(params) {
905
980
  ...(params.maxToolOutputChars !== undefined
906
981
  ? { maxToolOutputChars: params.maxToolOutputChars }
907
982
  : {}),
983
+ ...(params.retainedToolPreviewChars !== undefined
984
+ ? { retainedToolPreviewChars: params.retainedToolPreviewChars }
985
+ : {}),
908
986
  ...(params.maxToolContentBytes !== undefined
909
987
  ? { maxToolContentBytes: params.maxToolContentBytes }
910
988
  : {}),
911
989
  // Overflow lands beside the run's other artifacts, so it is
912
990
  // cleaned up with the run and reachable by the model's own
913
991
  // `read`/`grep` without a new affordance.
914
- ...(toolOutputDir ? { toolOutputDir } : {}),
992
+ toolOutputDir,
993
+ captureRunEvidence,
915
994
  ...(params.repairToolCall ? { repairToolCall: params.repairToolCall } : {}),
916
995
  ...(verificationGate ? { authorizationGate: verificationGate } : {}),
917
996
  recordAudit: (input) => ctx.runMgr.recordAudit(input),
@@ -932,8 +1011,6 @@ export async function* query(params) {
932
1011
  // result, and the host as an event — without either polling. Subscribed
933
1012
  // for the owner the run's jobs are bound to, so a session-owned job that
934
1013
  // ends during this run is reported here too.
935
- const jobOwner = params.backgroundJobOwner ?? ctx.runId;
936
- const jobNotices = params.backgroundJobs ? new SteeringBinding() : undefined;
937
1014
  const unsubscribeJobExits = params.backgroundJobs?.onExit((job) => {
938
1015
  if (job.owner !== jobOwner)
939
1016
  return;
@@ -1050,6 +1127,7 @@ export async function* query(params) {
1050
1127
  : undefined;
1051
1128
  return {
1052
1129
  messages: ctx.runMgr.messages,
1130
+ turn: iterationOrchestrator.getAdvisoryTurnContext(),
1053
1131
  ...(summary !== undefined ? { workingStateSummary: summary } : {}),
1054
1132
  ...(advisoryConfig.includeToolCatalog
1055
1133
  ? { toolCatalog: params.tools.toLLMTools(effectiveAllowedTools) }
@@ -1069,6 +1147,7 @@ export async function* query(params) {
1069
1147
  }
1070
1148
  }
1071
1149
  const iterationOrchestrator = new IterationOrchestrator({
1150
+ captureRunEvidence,
1072
1151
  provider: resilientProvider,
1073
1152
  providerCapabilities: capabilities,
1074
1153
  strictCapabilities: params.strictCapabilities === true,
@@ -1101,6 +1180,7 @@ export async function* query(params) {
1101
1180
  promptContributions,
1102
1181
  ...(params.steering ? { steering: params.steering } : {}),
1103
1182
  ...(jobNotices ? { jobNotices } : {}),
1183
+ ...(awaitedJobs ? { awaitedJobs } : {}),
1104
1184
  checkpointMgr,
1105
1185
  planManager: ctx.planManager,
1106
1186
  taskGateway: taskScheduler,
@@ -1368,22 +1448,18 @@ export async function* query(params) {
1368
1448
  params.pendingDecision && projectedCheckpoint.pending
1369
1449
  ? planPendingResume(projectedCheckpoint, params.pendingDecision, ctx.log)
1370
1450
  : null;
1371
- // Results of tools that finished before the process died. The
1372
- // executor already emits one `tool_completed` per tool inline
1373
- // and the transcript already persists it, so the record was
1374
- // durable all along — it was simply never read back, and the
1375
- // resumed run re-ran calls that had already charged a card or
1376
- // sent an email.
1377
- const unanswered = unansweredToolCalls(projectedCheckpoint.messages);
1451
+ // Recover completed observations and explicitly unknown outcomes.
1452
+ // A recorded start is not proof that its external effect failed.
1453
+ const unanswered = interruptedToolCalls(projectedCheckpoint.messages);
1378
1454
  recoveredResults =
1379
1455
  unanswered.length > 0
1380
- ? await recoverCompletedCalls(ctx.runMgr, unanswered, ctx.log)
1456
+ ? await recoverCompletedCalls(ctx.runMgr, unanswered, ctx.log, {
1457
+ answers: pendingResume?.answers,
1458
+ signal: ctx.abortController.signal,
1459
+ })
1381
1460
  : new Map();
1382
- // A batch caught MID-execution is a resume, not a fresh
1383
- // decision: stripping the turn and letting the model re-decide
1384
- // would re-run everything that already ran. Only taken when
1385
- // the transcript proves execution had begun — a tool-review
1386
- // park has no completions and keeps the cheap repair below.
1461
+ // Preserve both known and unknown outcomes before continuing calls
1462
+ // whose absence of a start was established by a complete scan.
1387
1463
  if (!pendingResume && recoveredResults.size > 0) {
1388
1464
  pendingResume = planCrashResume(projectedCheckpoint, recoveredResults, ctx.log);
1389
1465
  }
@@ -1412,6 +1488,34 @@ export async function* query(params) {
1412
1488
  'namzu.history.synthetic_tool_results_inserted': checkpointRepair.report.syntheticToolResultsInserted,
1413
1489
  });
1414
1490
  }
1491
+ // The ledger is process state and a resumed run starts with an empty
1492
+ // one, so until something reads a file again this run knows nothing
1493
+ // about files the conversation already wrote in full — and re-reads
1494
+ // them. Rebuilt from the REPAIRED history, which is what the model
1495
+ // is about to be shown, rather than from the checkpoint's own
1496
+ // messages — plus whatever of the owned resume turn actually ran,
1497
+ // which the repaired list does not carry; see
1498
+ // `withOwnedResumeOutcomes`. Reads no file's content: every
1499
+ // fingerprint recovered here is still checked against the real one
1500
+ // at mutation time.
1501
+ try {
1502
+ await toolExecutor.seedFileObservations(pendingResume
1503
+ ? withOwnedResumeOutcomes(restoredMessages, pendingResume.assistant, recoveredResults)
1504
+ : restoredMessages, params.sandboxProvider !== undefined);
1505
+ }
1506
+ catch (err) {
1507
+ // A ledger that could not be rebuilt is the empty one every resume
1508
+ // used to get, so the run continues without its witnesses and the
1509
+ // model reads what it needs. Failing the resume over it would trade
1510
+ // a conversation that works for one that does not, to protect an
1511
+ // optimisation. Said out loud all the same, because a seeding that
1512
+ // failed and one that found nothing are otherwise the same silence.
1513
+ ctx.log.debug('Could not rebuild the file observation ledger on resume', {
1514
+ [NAMZU.RUN_ID]: ctx.runMgr.id,
1515
+ 'namzu.checkpoint.id': checkpoint.id,
1516
+ 'exception.message': err instanceof Error ? err.message : String(err),
1517
+ });
1518
+ }
1415
1519
  for (const msg of restoredMessages) {
1416
1520
  if (msg.role === 'system') {
1417
1521
  // Re-push the FRESH static/dynamic floor (done above) but PRESERVE
@@ -1877,6 +1981,9 @@ export async function* query(params) {
1877
1981
  // Awaited, and its failure swallowed. A job that would not die is
1878
1982
  // worth a log line, and is not worth retracting a run's answer.
1879
1983
  unsubscribeJobExits?.();
1984
+ // The wait-intent recorder listens on the same shared registry and
1985
+ // leaks the same way if it is left attached.
1986
+ awaitedJobs?.close();
1880
1987
  // Only jobs bound to this run. Jobs a host bound to its session are
1881
1988
  // the host's to stop, when the session ends.
1882
1989
  if (params.backgroundJobs && (params.backgroundJobOwner ?? ctx.runId) === ctx.runId) {