@namzu/sdk 38.2.1 → 39.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 (493) hide show
  1. package/CHANGELOG.md +700 -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/contracts/schemas.js +1 -1
  30. package/dist/contracts/schemas.js.map +1 -1
  31. package/dist/eval/harness-protection.d.ts +18 -0
  32. package/dist/eval/harness-protection.d.ts.map +1 -0
  33. package/dist/eval/harness-protection.js +58 -0
  34. package/dist/eval/harness-protection.js.map +1 -0
  35. package/dist/eval/harness-verification.d.ts +6 -1
  36. package/dist/eval/harness-verification.d.ts.map +1 -1
  37. package/dist/eval/harness-verification.js +19 -2
  38. package/dist/eval/harness-verification.js.map +1 -1
  39. package/dist/eval/index.d.ts +1 -0
  40. package/dist/eval/index.d.ts.map +1 -1
  41. package/dist/eval/index.js.map +1 -1
  42. package/dist/manager/resident/activity.d.ts +50 -0
  43. package/dist/manager/resident/activity.d.ts.map +1 -0
  44. package/dist/manager/resident/activity.js +125 -0
  45. package/dist/manager/resident/activity.js.map +1 -0
  46. package/dist/manager/resident/agenda.d.ts +13 -1
  47. package/dist/manager/resident/agenda.d.ts.map +1 -1
  48. package/dist/manager/resident/agenda.js +40 -5
  49. package/dist/manager/resident/agenda.js.map +1 -1
  50. package/dist/manager/resident/consumption.d.ts +104 -0
  51. package/dist/manager/resident/consumption.d.ts.map +1 -0
  52. package/dist/manager/resident/consumption.js +233 -0
  53. package/dist/manager/resident/consumption.js.map +1 -0
  54. package/dist/manager/resident/evidence-recall.d.ts +24 -0
  55. package/dist/manager/resident/evidence-recall.d.ts.map +1 -0
  56. package/dist/manager/resident/evidence-recall.js +295 -0
  57. package/dist/manager/resident/evidence-recall.js.map +1 -0
  58. package/dist/manager/resident/history-disk.d.ts +10 -0
  59. package/dist/manager/resident/history-disk.d.ts.map +1 -0
  60. package/dist/manager/resident/history-disk.js +50 -0
  61. package/dist/manager/resident/history-disk.js.map +1 -0
  62. package/dist/manager/resident/history.d.ts +79 -0
  63. package/dist/manager/resident/history.d.ts.map +1 -0
  64. package/dist/manager/resident/history.js +203 -0
  65. package/dist/manager/resident/history.js.map +1 -0
  66. package/dist/manager/resident/initiative.d.ts.map +1 -1
  67. package/dist/manager/resident/initiative.js +11 -3
  68. package/dist/manager/resident/initiative.js.map +1 -1
  69. package/dist/manager/resident/learning-cycle.d.ts +131 -0
  70. package/dist/manager/resident/learning-cycle.d.ts.map +1 -0
  71. package/dist/manager/resident/learning-cycle.js +306 -0
  72. package/dist/manager/resident/learning-cycle.js.map +1 -0
  73. package/dist/manager/resident/learning-observation.d.ts +80 -0
  74. package/dist/manager/resident/learning-observation.d.ts.map +1 -0
  75. package/dist/manager/resident/learning-observation.js +22 -0
  76. package/dist/manager/resident/learning-observation.js.map +1 -0
  77. package/dist/manager/resident/learning-store.d.ts +106 -0
  78. package/dist/manager/resident/learning-store.d.ts.map +1 -0
  79. package/dist/manager/resident/learning-store.js +598 -0
  80. package/dist/manager/resident/learning-store.js.map +1 -0
  81. package/dist/manager/resident/learning.d.ts +246 -3
  82. package/dist/manager/resident/learning.d.ts.map +1 -1
  83. package/dist/manager/resident/learning.js +96 -6
  84. package/dist/manager/resident/learning.js.map +1 -1
  85. package/dist/manager/resident/outbox.d.ts +4 -4
  86. package/dist/manager/resident/store.d.ts +37 -4
  87. package/dist/manager/resident/store.d.ts.map +1 -1
  88. package/dist/manager/resident/store.js +27 -3
  89. package/dist/manager/resident/store.js.map +1 -1
  90. package/dist/manager/resident/tool-evidence.d.ts +71 -0
  91. package/dist/manager/resident/tool-evidence.d.ts.map +1 -0
  92. package/dist/manager/resident/tool-evidence.js +285 -0
  93. package/dist/manager/resident/tool-evidence.js.map +1 -0
  94. package/dist/manager/run/persistence.d.ts.map +1 -1
  95. package/dist/manager/run/persistence.js +6 -0
  96. package/dist/manager/run/persistence.js.map +1 -1
  97. package/dist/plugin/loader.d.ts.map +1 -1
  98. package/dist/plugin/loader.js +5 -3
  99. package/dist/plugin/loader.js.map +1 -1
  100. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  101. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  102. package/dist/prompt/coding-agent-doctrine.js +2 -0
  103. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  104. package/dist/prompt/index.d.ts +2 -0
  105. package/dist/prompt/index.d.ts.map +1 -1
  106. package/dist/prompt/index.js +1 -0
  107. package/dist/prompt/index.js.map +1 -1
  108. package/dist/prompt/resident-learning.d.ts +19 -0
  109. package/dist/prompt/resident-learning.d.ts.map +1 -0
  110. package/dist/prompt/resident-learning.js +125 -0
  111. package/dist/prompt/resident-learning.js.map +1 -0
  112. package/dist/prompt/resident-step.d.ts +8 -1
  113. package/dist/prompt/resident-step.d.ts.map +1 -1
  114. package/dist/prompt/resident-step.js +65 -4
  115. package/dist/prompt/resident-step.js.map +1 -1
  116. package/dist/provider/collect-chat-completion.d.ts +2 -1
  117. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  118. package/dist/provider/collect-chat-completion.js +7 -6
  119. package/dist/provider/collect-chat-completion.js.map +1 -1
  120. package/dist/provider/fallback.d.ts.map +1 -1
  121. package/dist/provider/fallback.js +2 -1
  122. package/dist/provider/fallback.js.map +1 -1
  123. package/dist/provider/stream-text.d.ts +16 -0
  124. package/dist/provider/stream-text.d.ts.map +1 -0
  125. package/dist/provider/stream-text.js +51 -0
  126. package/dist/provider/stream-text.js.map +1 -0
  127. package/dist/public-runtime.d.ts +13 -3
  128. package/dist/public-runtime.d.ts.map +1 -1
  129. package/dist/public-runtime.js +12 -3
  130. package/dist/public-runtime.js.map +1 -1
  131. package/dist/public-tools.d.ts +2 -0
  132. package/dist/public-tools.d.ts.map +1 -1
  133. package/dist/public-tools.js +2 -0
  134. package/dist/public-tools.js.map +1 -1
  135. package/dist/public-types.d.ts +15 -3
  136. package/dist/public-types.d.ts.map +1 -1
  137. package/dist/run/LimitChecker.js +3 -3
  138. package/dist/run/LimitChecker.js.map +1 -1
  139. package/dist/run/evidence-query.d.ts +41 -0
  140. package/dist/run/evidence-query.d.ts.map +1 -0
  141. package/dist/run/evidence-query.js +270 -0
  142. package/dist/run/evidence-query.js.map +1 -0
  143. package/dist/run/evidence-recall.d.ts +99 -0
  144. package/dist/run/evidence-recall.d.ts.map +1 -0
  145. package/dist/run/evidence-recall.js +633 -0
  146. package/dist/run/evidence-recall.js.map +1 -0
  147. package/dist/run/index.d.ts +2 -0
  148. package/dist/run/index.d.ts.map +1 -1
  149. package/dist/run/index.js +1 -0
  150. package/dist/run/index.js.map +1 -1
  151. package/dist/run/json-claim-verifier.d.ts +83 -0
  152. package/dist/run/json-claim-verifier.d.ts.map +1 -0
  153. package/dist/run/json-claim-verifier.js +200 -0
  154. package/dist/run/json-claim-verifier.js.map +1 -0
  155. package/dist/run/preparation-context-error.d.ts +10 -0
  156. package/dist/run/preparation-context-error.d.ts.map +1 -0
  157. package/dist/run/preparation-context-error.js +15 -0
  158. package/dist/run/preparation-context-error.js.map +1 -0
  159. package/dist/run-query/index.d.ts +3 -1
  160. package/dist/run-query/index.d.ts.map +1 -1
  161. package/dist/runtime/query/callback-inference.d.ts +8 -0
  162. package/dist/runtime/query/callback-inference.d.ts.map +1 -0
  163. package/dist/runtime/query/callback-inference.js +89 -0
  164. package/dist/runtime/query/callback-inference.js.map +1 -0
  165. package/dist/runtime/query/checkpoint.d.ts +4 -0
  166. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  167. package/dist/runtime/query/checkpoint.js +13 -0
  168. package/dist/runtime/query/checkpoint.js.map +1 -1
  169. package/dist/runtime/query/events.d.ts +1 -0
  170. package/dist/runtime/query/events.d.ts.map +1 -1
  171. package/dist/runtime/query/events.js +18 -0
  172. package/dist/runtime/query/events.js.map +1 -1
  173. package/dist/runtime/query/executor.d.ts +7 -1
  174. package/dist/runtime/query/executor.d.ts.map +1 -1
  175. package/dist/runtime/query/executor.js +38 -7
  176. package/dist/runtime/query/executor.js.map +1 -1
  177. package/dist/runtime/query/file-evidence-context.d.ts +5 -0
  178. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -0
  179. package/dist/runtime/query/file-evidence-context.js +64 -0
  180. package/dist/runtime/query/file-evidence-context.js.map +1 -0
  181. package/dist/runtime/query/guard.d.ts.map +1 -1
  182. package/dist/runtime/query/guard.js +4 -0
  183. package/dist/runtime/query/guard.js.map +1 -1
  184. package/dist/runtime/query/index.d.ts +10 -1
  185. package/dist/runtime/query/index.d.ts.map +1 -1
  186. package/dist/runtime/query/index.js +39 -24
  187. package/dist/runtime/query/index.js.map +1 -1
  188. package/dist/runtime/query/iteration/index.d.ts +9 -31
  189. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  190. package/dist/runtime/query/iteration/index.js +231 -93
  191. package/dist/runtime/query/iteration/index.js.map +1 -1
  192. package/dist/runtime/query/iteration/phases/advisory.d.ts +2 -1
  193. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  194. package/dist/runtime/query/iteration/phases/advisory.js +2 -1
  195. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  196. package/dist/runtime/query/iteration/phases/context.d.ts +2 -1
  197. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  198. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  199. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  200. package/dist/runtime/query/iteration/phases/tool-review.js +3 -0
  201. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  202. package/dist/runtime/query/iteration/provider-rejected-image.d.ts +2 -1
  203. package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
  204. package/dist/runtime/query/iteration/provider-rejected-image.js +5 -2
  205. package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
  206. package/dist/runtime/query/iteration/stream-turn.d.ts +4 -1
  207. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  208. package/dist/runtime/query/iteration/stream-turn.js +22 -8
  209. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  210. package/dist/runtime/query/resume-pending.d.ts +18 -33
  211. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  212. package/dist/runtime/query/resume-pending.js +59 -42
  213. package/dist/runtime/query/resume-pending.js.map +1 -1
  214. package/dist/runtime/query/review-policy.d.ts +4 -4
  215. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  216. package/dist/runtime/query/review-policy.js +10 -9
  217. package/dist/runtime/query/review-policy.js.map +1 -1
  218. package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
  219. package/dist/runtime/query/sandbox-lifecycle.js +4 -0
  220. package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
  221. package/dist/runtime/query/tool-output-budget.d.ts +10 -6
  222. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  223. package/dist/runtime/query/tool-output-budget.js +54 -12
  224. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  225. package/dist/runtime/query/tooling.d.ts +3 -1
  226. package/dist/runtime/query/tooling.d.ts.map +1 -1
  227. package/dist/runtime/query/tooling.js +4 -0
  228. package/dist/runtime/query/tooling.js.map +1 -1
  229. package/dist/scheduler/completion-inbox.d.ts +3 -0
  230. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  231. package/dist/scheduler/completion-inbox.js +28 -0
  232. package/dist/scheduler/completion-inbox.js.map +1 -1
  233. package/dist/store/evidence/compaction-archive.d.ts +109 -0
  234. package/dist/store/evidence/compaction-archive.d.ts.map +1 -0
  235. package/dist/store/evidence/compaction-archive.js +125 -0
  236. package/dist/store/evidence/compaction-archive.js.map +1 -0
  237. package/dist/store/evidence/compaction-provenance.d.ts +7 -0
  238. package/dist/store/evidence/compaction-provenance.d.ts.map +1 -0
  239. package/dist/store/evidence/compaction-provenance.js +49 -0
  240. package/dist/store/evidence/compaction-provenance.js.map +1 -0
  241. package/dist/store/evidence/compaction-text.d.ts +16 -0
  242. package/dist/store/evidence/compaction-text.d.ts.map +1 -0
  243. package/dist/store/evidence/compaction-text.js +51 -0
  244. package/dist/store/evidence/compaction-text.js.map +1 -0
  245. package/dist/store/evidence/disk.d.ts +11 -0
  246. package/dist/store/evidence/disk.d.ts.map +1 -0
  247. package/dist/store/evidence/disk.js +367 -0
  248. package/dist/store/evidence/disk.js.map +1 -0
  249. package/dist/store/evidence/format.d.ts +25 -0
  250. package/dist/store/evidence/format.d.ts.map +1 -0
  251. package/dist/store/evidence/format.js +115 -0
  252. package/dist/store/evidence/format.js.map +1 -0
  253. package/dist/store/evidence/index-page.d.ts +208 -0
  254. package/dist/store/evidence/index-page.d.ts.map +1 -0
  255. package/dist/store/evidence/index-page.js +262 -0
  256. package/dist/store/evidence/index-page.js.map +1 -0
  257. package/dist/store/evidence/io.d.ts +24 -0
  258. package/dist/store/evidence/io.d.ts.map +1 -0
  259. package/dist/store/evidence/io.js +69 -0
  260. package/dist/store/evidence/io.js.map +1 -0
  261. package/dist/store/evidence/linked.d.ts +9 -0
  262. package/dist/store/evidence/linked.d.ts.map +1 -0
  263. package/dist/store/evidence/linked.js +314 -0
  264. package/dist/store/evidence/linked.js.map +1 -0
  265. package/dist/store/evidence/passages.d.ts +15 -0
  266. package/dist/store/evidence/passages.d.ts.map +1 -0
  267. package/dist/store/evidence/passages.js +72 -0
  268. package/dist/store/evidence/passages.js.map +1 -0
  269. package/dist/store/evidence/record-chain.d.ts +42 -0
  270. package/dist/store/evidence/record-chain.d.ts.map +1 -0
  271. package/dist/store/evidence/record-chain.js +111 -0
  272. package/dist/store/evidence/record-chain.js.map +1 -0
  273. package/dist/store/evidence/search-input.d.ts +21 -0
  274. package/dist/store/evidence/search-input.d.ts.map +1 -0
  275. package/dist/store/evidence/search-input.js +44 -0
  276. package/dist/store/evidence/search-input.js.map +1 -0
  277. package/dist/store/evidence/selection.d.ts +9 -0
  278. package/dist/store/evidence/selection.d.ts.map +1 -0
  279. package/dist/store/evidence/selection.js +17 -0
  280. package/dist/store/evidence/selection.js.map +1 -0
  281. package/dist/store/evidence/source-kind.d.ts +11 -0
  282. package/dist/store/evidence/source-kind.d.ts.map +1 -0
  283. package/dist/store/evidence/source-kind.js +26 -0
  284. package/dist/store/evidence/source-kind.js.map +1 -0
  285. package/dist/store/evidence/source-text.d.ts +51 -0
  286. package/dist/store/evidence/source-text.d.ts.map +1 -0
  287. package/dist/store/evidence/source-text.js +213 -0
  288. package/dist/store/evidence/source-text.js.map +1 -0
  289. package/dist/store/evidence/types.d.ts +162 -0
  290. package/dist/store/evidence/types.d.ts.map +1 -0
  291. package/dist/store/evidence/types.js +2 -0
  292. package/dist/store/evidence/types.js.map +1 -0
  293. package/dist/store/memory/disk.d.ts +2 -0
  294. package/dist/store/memory/disk.d.ts.map +1 -1
  295. package/dist/store/memory/disk.js +2 -1
  296. package/dist/store/memory/disk.js.map +1 -1
  297. package/dist/store/run/disk.d.ts +10 -0
  298. package/dist/store/run/disk.d.ts.map +1 -1
  299. package/dist/store/run/disk.js +87 -7
  300. package/dist/store/run/disk.js.map +1 -1
  301. package/dist/store/run/memory.d.ts +1 -0
  302. package/dist/store/run/memory.d.ts.map +1 -1
  303. package/dist/store/run/memory.js +10 -0
  304. package/dist/store/run/memory.js.map +1 -1
  305. package/dist/store/run/tool-executions.d.ts +13 -0
  306. package/dist/store/run/tool-executions.d.ts.map +1 -0
  307. package/dist/store/run/tool-executions.js +99 -0
  308. package/dist/store/run/tool-executions.js.map +1 -0
  309. package/dist/store/session/index.d.ts +2 -0
  310. package/dist/store/session/index.d.ts.map +1 -1
  311. package/dist/store/session/index.js +1 -0
  312. package/dist/store/session/index.js.map +1 -1
  313. package/dist/store/session/sqlite.d.ts +57 -0
  314. package/dist/store/session/sqlite.d.ts.map +1 -0
  315. package/dist/store/session/sqlite.js +430 -0
  316. package/dist/store/session/sqlite.js.map +1 -0
  317. package/dist/tools/builtins/job.d.ts.map +1 -1
  318. package/dist/tools/builtins/job.js +4 -5
  319. package/dist/tools/builtins/job.js.map +1 -1
  320. package/dist/tools/builtins/write-file.js +2 -2
  321. package/dist/tools/builtins/write-file.js.map +1 -1
  322. package/dist/tools/defineTool.d.ts +2 -1
  323. package/dist/tools/defineTool.d.ts.map +1 -1
  324. package/dist/tools/defineTool.js +1 -1
  325. package/dist/tools/defineTool.js.map +1 -1
  326. package/dist/tools/file-read-tracker.d.ts.map +1 -1
  327. package/dist/tools/file-read-tracker.js +12 -3
  328. package/dist/tools/file-read-tracker.js.map +1 -1
  329. package/dist/tools/resident-history.d.ts +10 -0
  330. package/dist/tools/resident-history.d.ts.map +1 -0
  331. package/dist/tools/resident-history.js +80 -0
  332. package/dist/tools/resident-history.js.map +1 -0
  333. package/dist/tools/resident-tool-evidence.d.ts +5 -0
  334. package/dist/tools/resident-tool-evidence.d.ts.map +1 -0
  335. package/dist/tools/resident-tool-evidence.js +57 -0
  336. package/dist/tools/resident-tool-evidence.js.map +1 -0
  337. package/dist/types/advisory/config.d.ts +7 -0
  338. package/dist/types/advisory/config.d.ts.map +1 -1
  339. package/dist/types/agent/reactive.d.ts +1 -0
  340. package/dist/types/agent/reactive.d.ts.map +1 -1
  341. package/dist/types/authorization/index.d.ts +9 -9
  342. package/dist/types/authorization/index.d.ts.map +1 -1
  343. package/dist/types/authorization/index.js +1 -1
  344. package/dist/types/authorization/index.js.map +1 -1
  345. package/dist/types/hitl/index.d.ts +4 -0
  346. package/dist/types/hitl/index.d.ts.map +1 -1
  347. package/dist/types/hitl/index.js.map +1 -1
  348. package/dist/types/message/index.d.ts +16 -2
  349. package/dist/types/message/index.d.ts.map +1 -1
  350. package/dist/types/message/index.js +8 -1
  351. package/dist/types/message/index.js.map +1 -1
  352. package/dist/types/provider/chat.d.ts +2 -0
  353. package/dist/types/provider/chat.d.ts.map +1 -1
  354. package/dist/types/provider/stream.d.ts +4 -0
  355. package/dist/types/provider/stream.d.ts.map +1 -1
  356. package/dist/types/run/answer-review.d.ts +34 -3
  357. package/dist/types/run/answer-review.d.ts.map +1 -1
  358. package/dist/types/run/config.d.ts +3 -0
  359. package/dist/types/run/config.d.ts.map +1 -1
  360. package/dist/types/run/entity.d.ts +7 -0
  361. package/dist/types/run/entity.d.ts.map +1 -1
  362. package/dist/types/run/events.d.ts +31 -8
  363. package/dist/types/run/events.d.ts.map +1 -1
  364. package/dist/types/run/events.js.map +1 -1
  365. package/dist/types/run/prepare-step.d.ts +53 -8
  366. package/dist/types/run/prepare-step.d.ts.map +1 -1
  367. package/dist/types/run/store.d.ts +29 -4
  368. package/dist/types/run/store.d.ts.map +1 -1
  369. package/dist/types/run/store.js +0 -28
  370. package/dist/types/run/store.js.map +1 -1
  371. package/dist/types/tool/index.d.ts +15 -1
  372. package/dist/types/tool/index.d.ts.map +1 -1
  373. package/dist/types/tool/index.js.map +1 -1
  374. package/dist/utils/await-with-abort.d.ts +8 -0
  375. package/dist/utils/await-with-abort.d.ts.map +1 -0
  376. package/dist/utils/await-with-abort.js +28 -0
  377. package/dist/utils/await-with-abort.js.map +1 -0
  378. package/dist/utils/evidence-time.d.ts +3 -0
  379. package/dist/utils/evidence-time.d.ts.map +1 -0
  380. package/dist/utils/evidence-time.js +10 -0
  381. package/dist/utils/evidence-time.js.map +1 -0
  382. package/dist/utils/evidence-tokens.d.ts +13 -0
  383. package/dist/utils/evidence-tokens.d.ts.map +1 -0
  384. package/dist/utils/evidence-tokens.js +29 -0
  385. package/dist/utils/evidence-tokens.js.map +1 -0
  386. package/package.json +1 -1
  387. package/src/advisory/executor.ts +15 -30
  388. package/src/advisory/history.ts +126 -0
  389. package/src/advisory/index.ts +5 -1
  390. package/src/agents/ReactiveAgent.ts +3 -0
  391. package/src/agents/runAgent.ts +14 -1
  392. package/src/compaction/manual.ts +30 -2
  393. package/src/compaction/summary.ts +4 -1
  394. package/src/config/runtime.ts +2 -2
  395. package/src/contracts/schemas.ts +1 -1
  396. package/src/eval/harness-protection.ts +79 -0
  397. package/src/eval/harness-verification.ts +31 -1
  398. package/src/eval/index.ts +1 -0
  399. package/src/manager/resident/activity.ts +187 -0
  400. package/src/manager/resident/agenda.ts +59 -5
  401. package/src/manager/resident/consumption.ts +311 -0
  402. package/src/manager/resident/evidence-recall.ts +363 -0
  403. package/src/manager/resident/history-disk.ts +63 -0
  404. package/src/manager/resident/history.ts +312 -0
  405. package/src/manager/resident/initiative.ts +13 -3
  406. package/src/manager/resident/learning-cycle.ts +499 -0
  407. package/src/manager/resident/learning-observation.ts +39 -0
  408. package/src/manager/resident/learning-store.ts +813 -0
  409. package/src/manager/resident/learning.ts +132 -8
  410. package/src/manager/resident/store.ts +31 -3
  411. package/src/manager/resident/tool-evidence.ts +412 -0
  412. package/src/manager/run/persistence.ts +6 -0
  413. package/src/plugin/loader.ts +8 -3
  414. package/src/prompt/coding-agent-doctrine.ts +2 -0
  415. package/src/prompt/index.ts +2 -0
  416. package/src/prompt/resident-learning.ts +143 -0
  417. package/src/prompt/resident-step.ts +83 -3
  418. package/src/provider/collect-chat-completion.ts +7 -6
  419. package/src/provider/fallback.ts +2 -1
  420. package/src/provider/stream-text.ts +56 -0
  421. package/src/public-runtime.ts +30 -0
  422. package/src/public-tools.ts +3 -0
  423. package/src/public-types.ts +98 -0
  424. package/src/run/LimitChecker.ts +3 -3
  425. package/src/run/evidence-query.ts +333 -0
  426. package/src/run/evidence-recall.ts +854 -0
  427. package/src/run/index.ts +11 -0
  428. package/src/run/json-claim-verifier.ts +298 -0
  429. package/src/run/preparation-context-error.ts +16 -0
  430. package/src/run-query/index.ts +1 -1
  431. package/src/runtime/query/callback-inference.ts +94 -0
  432. package/src/runtime/query/checkpoint.ts +14 -0
  433. package/src/runtime/query/events.ts +22 -0
  434. package/src/runtime/query/executor.ts +51 -9
  435. package/src/runtime/query/file-evidence-context.ts +65 -0
  436. package/src/runtime/query/guard.ts +2 -0
  437. package/src/runtime/query/index.ts +49 -25
  438. package/src/runtime/query/iteration/index.ts +269 -86
  439. package/src/runtime/query/iteration/phases/advisory.ts +3 -0
  440. package/src/runtime/query/iteration/phases/context.ts +2 -0
  441. package/src/runtime/query/iteration/phases/tool-review.ts +3 -0
  442. package/src/runtime/query/iteration/provider-rejected-image.ts +6 -1
  443. package/src/runtime/query/iteration/stream-turn.ts +35 -8
  444. package/src/runtime/query/resume-pending.ts +65 -40
  445. package/src/runtime/query/review-policy.ts +13 -9
  446. package/src/runtime/query/sandbox-lifecycle.ts +3 -0
  447. package/src/runtime/query/tool-output-budget.ts +65 -13
  448. package/src/runtime/query/tooling.ts +7 -1
  449. package/src/scheduler/completion-inbox.ts +26 -0
  450. package/src/store/evidence/compaction-archive.ts +139 -0
  451. package/src/store/evidence/compaction-provenance.ts +52 -0
  452. package/src/store/evidence/compaction-text.ts +61 -0
  453. package/src/store/evidence/disk.ts +461 -0
  454. package/src/store/evidence/format.ts +126 -0
  455. package/src/store/evidence/index-page.ts +292 -0
  456. package/src/store/evidence/io.ts +95 -0
  457. package/src/store/evidence/linked.ts +365 -0
  458. package/src/store/evidence/passages.ts +88 -0
  459. package/src/store/evidence/record-chain.ts +108 -0
  460. package/src/store/evidence/search-input.ts +62 -0
  461. package/src/store/evidence/selection.ts +25 -0
  462. package/src/store/evidence/source-kind.ts +36 -0
  463. package/src/store/evidence/source-text.ts +285 -0
  464. package/src/store/evidence/types.ts +177 -0
  465. package/src/store/memory/disk.ts +4 -1
  466. package/src/store/run/disk.ts +110 -8
  467. package/src/store/run/memory.ts +10 -0
  468. package/src/store/run/tool-executions.ts +112 -0
  469. package/src/store/session/index.ts +2 -0
  470. package/src/store/session/sqlite.ts +584 -0
  471. package/src/tools/builtins/job.ts +4 -5
  472. package/src/tools/builtins/write-file.ts +2 -2
  473. package/src/tools/defineTool.ts +4 -2
  474. package/src/tools/file-read-tracker.ts +8 -2
  475. package/src/tools/resident-history.ts +86 -0
  476. package/src/tools/resident-tool-evidence.ts +68 -0
  477. package/src/types/advisory/config.ts +7 -0
  478. package/src/types/agent/reactive.ts +1 -0
  479. package/src/types/authorization/index.ts +2 -2
  480. package/src/types/hitl/index.ts +4 -0
  481. package/src/types/message/index.ts +20 -0
  482. package/src/types/provider/chat.ts +2 -0
  483. package/src/types/provider/stream.ts +4 -0
  484. package/src/types/run/answer-review.ts +34 -3
  485. package/src/types/run/config.ts +3 -0
  486. package/src/types/run/entity.ts +7 -0
  487. package/src/types/run/events.ts +31 -8
  488. package/src/types/run/prepare-step.ts +59 -8
  489. package/src/types/run/store.ts +35 -4
  490. package/src/types/tool/index.ts +19 -1
  491. package/src/utils/await-with-abort.ts +26 -0
  492. package/src/utils/evidence-time.ts +9 -0
  493. package/src/utils/evidence-tokens.ts +32 -0
@@ -0,0 +1,295 @@
1
+ import { z } from 'zod';
2
+ import { createScopedEvidenceRecallStep, evidenceRecallQueryTokens, refineEvidenceRecallTerms, } from '../../run/evidence-recall.js';
3
+ import { evidenceTokenKey } from '../../utils/evidence-tokens.js';
4
+ import { residentStateSchema } from './store.js';
5
+ const ownerSchema = z.object({
6
+ tenantId: z.string().uuid(),
7
+ projectId: z.string().uuid(),
8
+ sessionId: z.string().uuid(),
9
+ runId: z.string().uuid(),
10
+ });
11
+ const historicalScopeSchema = ownerSchema.omit({ sessionId: true, runId: true }).extend({
12
+ agentKey: z.string().min(1).max(200),
13
+ pursuitId: z.string().uuid(),
14
+ throughRevision: z.number().int().positive().safe(),
15
+ });
16
+ // Sample both ends without merging or manufacturing a word at the cut. The
17
+ // field still contributes at most 4000 characters; its omitted middle is not
18
+ // inspected. Alternating ends also gives late corrections a term slot.
19
+ function residentQueryWords(text) {
20
+ const words = text.length <= 4000
21
+ ? evidenceRecallQueryTokens(text)
22
+ : [
23
+ ...evidenceRecallQueryTokens(text
24
+ .slice(0, 2000)
25
+ .replace(/[\uD800-\uDBFF]$/u, '')
26
+ .replace(/[\p{L}\p{N}_]+$/u, '')),
27
+ ...evidenceRecallQueryTokens(text
28
+ .slice(-2000)
29
+ .replace(/^[\uDC00-\uDFFF]/u, '')
30
+ .replace(/^[\p{L}\p{N}_]+/u, '')),
31
+ ];
32
+ const result = [];
33
+ for (let left = 0, right = words.length - 1; left <= right; left++, right--) {
34
+ const first = words[left];
35
+ const last = words[right];
36
+ if (first)
37
+ result.push(first);
38
+ if (left !== right && last)
39
+ result.push(last);
40
+ }
41
+ return result;
42
+ }
43
+ /**
44
+ * Reuses the shared bounded ranking/rendering engine while retaining the
45
+ * pursuit's settlement authority. No arbitrary Session discovery, saved fact
46
+ * cache, inference, workspace reread or action replay is performed here.
47
+ */
48
+ export function createResidentEvidenceRecallStep(options) {
49
+ const state = residentStateSchema.parse(options.state);
50
+ const owner = Object.freeze(ownerSchema.parse(options.scope));
51
+ const source = options.source;
52
+ const historicalScope = Object.freeze(historicalScopeSchema.parse(source.scope));
53
+ if (state.phase !== 'running' ||
54
+ !state.claimId ||
55
+ state.tenantId !== owner.tenantId ||
56
+ state.tenantId !== historicalScope.tenantId ||
57
+ owner.projectId !== historicalScope.projectId ||
58
+ state.agentKey !== historicalScope.agentKey ||
59
+ state.pursuitId !== historicalScope.pursuitId)
60
+ throw new Error('Resident recall requires one admitted pursuit and its authorized source.');
61
+ const exclusions = options.excludeSuccessfulTools
62
+ ? [...new Set(options.excludeSuccessfulTools)].sort()
63
+ : undefined;
64
+ if (exclusions &&
65
+ (exclusions.length > 16 ||
66
+ exclusions.some((name) => typeof name !== 'string' || !name.length || name.length > 256)))
67
+ throw new Error('Resident recall exclusions are invalid.');
68
+ if (Buffer.byteLength(JSON.stringify({
69
+ terms: ['x'],
70
+ ...(exclusions?.length ? { excludeSuccessfulTools: exclusions } : {}),
71
+ })) > 512)
72
+ throw new Error('Resident recall exclusions leave no bounded search room.');
73
+ const snapshot = JSON.stringify(historicalScope);
74
+ function assertSource() {
75
+ if (JSON.stringify(historicalScopeSchema.parse(source.scope)) !== snapshot)
76
+ throw new Error('Resident recall source changed ownership or admission boundary.');
77
+ }
78
+ // Round-robin categories keep a long objective or derived summary from
79
+ // monopolizing all search terms. Within wakes, newer accepted inputs start
80
+ // first; their original committed index is retained in query metadata.
81
+ const wakes = (state.wakeEvidence ?? [])
82
+ .map((wake, index) => ({
83
+ kind: 'accepted_wake',
84
+ index,
85
+ words: residentQueryWords(wake.reason),
86
+ }))
87
+ .reverse();
88
+ const wakeWords = [];
89
+ for (let word = 0; word < 256; word++)
90
+ for (const wake of wakes) {
91
+ const term = wake.words[word];
92
+ if (term)
93
+ wakeWords.push({ term, source: wake.kind, wakeIndex: wake.index });
94
+ }
95
+ const groups = [
96
+ wakeWords,
97
+ residentQueryWords(state.objective).map((term) => ({ term, source: 'objective' })),
98
+ residentQueryWords(state.summary ?? '').map((term) => ({
99
+ term,
100
+ source: 'derived_summary',
101
+ })),
102
+ ];
103
+ const selected = [];
104
+ const seen = new Set();
105
+ const offsets = [0, 0, 0];
106
+ for (let round = 0; round < 16; round++) {
107
+ for (const [i, group] of groups.entries()) {
108
+ while ((offsets[i] ?? 0) < group.length && selected.length < 16) {
109
+ const entry = group[offsets[i] ?? 0];
110
+ offsets[i] = (offsets[i] ?? 0) + 1;
111
+ if (!entry || seen.has(evidenceTokenKey(entry.term)))
112
+ continue;
113
+ const terms = [...selected.map((item) => item.term), entry.term];
114
+ if (Buffer.byteLength(JSON.stringify({
115
+ terms,
116
+ ...(exclusions?.length ? { excludeSuccessfulTools: exclusions } : {}),
117
+ })) > 512)
118
+ continue;
119
+ selected.push(entry);
120
+ seen.add(evidenceTokenKey(entry.term));
121
+ break;
122
+ }
123
+ }
124
+ }
125
+ const query = {
126
+ terms: selected.map(({ term }) => term),
127
+ metadata: {
128
+ kind: 'literal_resident_state',
129
+ terms: selected,
130
+ throughRevision: historicalScope.throughRevision,
131
+ guidance: 'Words select historical tool records only. Objective/wakes are accepted inputs; derived_summary is a prior claim, not a new observation. Selection may omit relevant words. Fields over 4000 characters contribute their first/last 2000 characters; terms alternate ends. Query/ranking do not resolve ambiguous references or establish truth, freshness or completeness. Use read_resident_tool with revision/address/byteOffset for exact retained text.',
132
+ },
133
+ };
134
+ const addresses = new WeakMap();
135
+ const search = source.search.bind(source);
136
+ const retrieve = async (request) => {
137
+ if (request.runId !== owner.runId)
138
+ throw new Error('Resident recall called from a different run.');
139
+ assertSource();
140
+ const candidates = [];
141
+ let scannedBytes = 0;
142
+ let incomplete = false;
143
+ const scans = [{ terms: request.terms, started: false }];
144
+ let excludedToolResults = 0;
145
+ for (let pageNumber = 0; pageNumber < 4; pageNumber++) {
146
+ const scan = [...scans].reverse().find((entry) => !entry.started || entry.cursor);
147
+ if (!scan)
148
+ break;
149
+ request.signal.throwIfAborted();
150
+ const allowance = request.maxReadBytes - scannedBytes;
151
+ if (allowance <= 1024 * 1024 || candidates.length >= request.maxCandidates)
152
+ break;
153
+ const page = await search({
154
+ ...(scan.cursor
155
+ ? {
156
+ cursor: scan.cursor,
157
+ ...(scan.refineTerms ? { refineTerms: scan.refineTerms } : {}),
158
+ }
159
+ : {
160
+ terms: [...scan.terms],
161
+ ...(exclusions?.length ? { excludeSuccessfulTools: exclusions } : {}),
162
+ }),
163
+ maxReadBytes: allowance,
164
+ }, request.signal);
165
+ request.signal.throwIfAborted();
166
+ assertSource();
167
+ if (JSON.stringify(historicalScopeSchema.parse(page.scope)) !== snapshot ||
168
+ !Number.isSafeInteger(page.chargedBytes) ||
169
+ (page.chargedBytes ?? -1) < 0 ||
170
+ (page.chargedBytes ?? Number.POSITIVE_INFINITY) > allowance ||
171
+ typeof page.incomplete !== 'boolean' ||
172
+ !Array.isArray(page.unavailableRevisions) ||
173
+ page.unavailableRevisions.some((revision) => !Number.isSafeInteger(revision) ||
174
+ revision < 1 ||
175
+ revision > historicalScope.throughRevision) ||
176
+ (page.nextCursor !== null &&
177
+ (typeof page.nextCursor !== 'string' ||
178
+ !page.nextCursor.length ||
179
+ page.nextCursor.length > 8192)))
180
+ throw new Error('Resident recall received an invalid bounded page.');
181
+ scannedBytes += page.chargedBytes ?? 0;
182
+ // A page with a continuation is locally incomplete even when all
183
+ // records visited so far are valid. Clearing traversal later is safe;
184
+ // unavailable evidence stays incomplete for this entire pass.
185
+ incomplete ||=
186
+ (page.incomplete && !page.nextCursor) ||
187
+ page.unavailableRevisions.length > 0 ||
188
+ !!page.evidence?.incomplete;
189
+ const evidence = page.evidence;
190
+ if (evidence) {
191
+ const original = ownerSchema.parse(evidence.scope);
192
+ if (original.tenantId !== owner.tenantId ||
193
+ original.projectId !== owner.projectId ||
194
+ original.runId === owner.runId ||
195
+ !Number.isSafeInteger(page.revision) ||
196
+ (page.revision ?? 0) < 1 ||
197
+ (page.revision ?? Number.POSITIVE_INFINITY) > historicalScope.throughRevision ||
198
+ !z.string().uuid().safeParse(page.claimId).success ||
199
+ page.claimId === state.claimId ||
200
+ !Array.isArray(evidence.matches) ||
201
+ evidence.matches.length > 24)
202
+ throw new Error('Resident recall returned an unauthorized invocation.');
203
+ if (evidence.excludedToolResults !== undefined &&
204
+ (!Number.isSafeInteger(evidence.excludedToolResults) || evidence.excludedToolResults < 0))
205
+ throw new Error('Resident recall returned an invalid exclusion count.');
206
+ excludedToolResults += evidence.excludedToolResults ?? 0;
207
+ for (const match of evidence.matches) {
208
+ if (typeof match.address !== 'string' ||
209
+ !match.address.length ||
210
+ match.address.length > 8192)
211
+ throw new Error('Resident recall returned an invalid archive address.');
212
+ const candidate = {
213
+ scope: original,
214
+ seq: match.seq,
215
+ recordedAt: match.recordedAt,
216
+ source: 'tool_completed',
217
+ toolName: match.toolName,
218
+ isError: match.isError,
219
+ retained: match.retained,
220
+ excerpt: match.excerpt,
221
+ excerptComplete: match.excerptComplete,
222
+ byteOffset: match.byteOffset,
223
+ };
224
+ addresses.set(candidate, {
225
+ sessionId: original.sessionId,
226
+ runId: original.runId,
227
+ seq: match.seq,
228
+ pursuitId: historicalScope.pursuitId,
229
+ revision: page.revision,
230
+ claimId: page.claimId,
231
+ address: match.address,
232
+ byteOffset: match.byteOffset,
233
+ });
234
+ candidates.push(candidate);
235
+ }
236
+ }
237
+ scan.started = true;
238
+ scan.cursor = page.nextCursor ?? undefined;
239
+ scan.refineTerms = undefined;
240
+ // One strict-subset scan spends the SAME page/byte allowance. Keep
241
+ // the broad cursor: finishing a subset never exhausts the full query.
242
+ if (scans.length === 1 &&
243
+ scan.cursor &&
244
+ pageNumber < 3 &&
245
+ (evidence?.matches.length ?? 0) >= 4) {
246
+ const focused = refineEvidenceRecallTerms(scan.terms, candidates.map((candidate) => candidate.excerpt));
247
+ if (focused)
248
+ scans.push({
249
+ terms: focused,
250
+ started: false,
251
+ ...(source.supportsTermRefinement === true
252
+ ? { cursor: scan.cursor, refineTerms: focused }
253
+ : {}),
254
+ });
255
+ }
256
+ }
257
+ const continuations = scans.flatMap((scan) => scan.started && scan.cursor
258
+ ? [{ toolName: 'search_resident_tools', input: { cursor: scan.cursor } }]
259
+ : []);
260
+ return {
261
+ candidates,
262
+ scannedBytes,
263
+ incomplete: incomplete || scans.some((scan) => !scan.started || !!scan.cursor),
264
+ excludedToolResults,
265
+ continuations,
266
+ };
267
+ };
268
+ const step = createScopedEvidenceRecallStep({
269
+ retrieve,
270
+ maxChars: options.maxChars,
271
+ maxPassages: options.maxPassages,
272
+ timeoutMs: options.timeoutMs,
273
+ }, {
274
+ kind: 'resident',
275
+ selectQuery: () => query,
276
+ validate(candidate) {
277
+ assertSource();
278
+ if (!addresses.has(candidate))
279
+ throw new Error('Unowned resident evidence candidate.');
280
+ },
281
+ address(candidate) {
282
+ const address = addresses.get(candidate);
283
+ if (!address)
284
+ throw new Error('Missing resident evidence address.');
285
+ return address;
286
+ },
287
+ });
288
+ return async (context) => {
289
+ if (context.runId !== owner.runId)
290
+ throw new Error('Resident recall called from a different run.');
291
+ assertSource();
292
+ return step(context);
293
+ };
294
+ }
295
+ //# sourceMappingURL=evidence-recall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-recall.js","sourceRoot":"","sources":["../../../src/manager/resident/evidence-recall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface ResidentHistoryReadBudget {
2
+ remaining: number;
3
+ bytesRead: number;
4
+ signal?: AbortSignal;
5
+ }
6
+ export declare class ResidentHistoryPageLimit extends Error {
7
+ }
8
+ /** Bounded read of an immutable record in a private host-owned hierarchy. */
9
+ export declare function readResidentHistoryRecord(root: string, path: string, budget: ResidentHistoryReadBudget): Promise<unknown>;
10
+ //# sourceMappingURL=history-disk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-disk.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/history-disk.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,yBAAyB;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,qBAAa,wBAAyB,SAAQ,KAAK;CAAG;AAEtD,6EAA6E;AAC7E,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,yBAAyB,GAC/B,OAAO,CAAC,OAAO,CAAC,CA2ClB"}
@@ -0,0 +1,50 @@
1
+ import { constants } from 'node:fs';
2
+ import { lstat, open } from 'node:fs/promises';
3
+ import { join, relative, resolve, sep } from 'node:path';
4
+ const RECORD_BYTES = 4 * 1024 * 1024;
5
+ export class ResidentHistoryPageLimit extends Error {
6
+ }
7
+ /** Bounded read of an immutable record in a private host-owned hierarchy. */
8
+ export async function readResidentHistoryRecord(root, path, budget) {
9
+ budget.signal?.throwIfAborted();
10
+ const base = resolve(root);
11
+ const suffix = relative(base, resolve(path));
12
+ if (suffix === '..' || suffix.startsWith(`..${sep}`))
13
+ throw new Error('Invalid history path.');
14
+ let current = base;
15
+ for (const part of ['', ...suffix.split(sep).filter(Boolean)]) {
16
+ current = join(current, part);
17
+ if ((await lstat(current)).isSymbolicLink())
18
+ throw new Error('History symlinks are refused.');
19
+ }
20
+ const handle = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
21
+ try {
22
+ const before = await handle.stat();
23
+ if (!before.isFile() || before.size > RECORD_BYTES)
24
+ throw new Error('History record is not a bounded regular file.');
25
+ if (before.size > budget.remaining)
26
+ throw new ResidentHistoryPageLimit();
27
+ const bytes = Buffer.alloc(before.size);
28
+ let offset = 0;
29
+ while (offset < bytes.length) {
30
+ budget.signal?.throwIfAborted();
31
+ const { bytesRead } = await handle.read(bytes, offset, Math.min(64 * 1024, bytes.length - offset), offset);
32
+ budget.remaining -= bytesRead;
33
+ budget.bytesRead += bytesRead;
34
+ if (!bytesRead)
35
+ throw new Error('History record shortened during read.');
36
+ offset += bytesRead;
37
+ }
38
+ budget.signal?.throwIfAborted();
39
+ const after = await handle.stat();
40
+ if (after.size !== before.size ||
41
+ after.mtimeMs !== before.mtimeMs ||
42
+ after.ctimeMs !== before.ctimeMs)
43
+ throw new Error('History record changed during read.');
44
+ return JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes));
45
+ }
46
+ finally {
47
+ await handle.close();
48
+ }
49
+ }
50
+ //# sourceMappingURL=history-disk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-disk.js","sourceRoot":"","sources":["../../../src/manager/resident/history-disk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { ResidentAgendaState } from './agenda.js';
2
+ import { type ResidentHistoryReadBudget } from './history-disk.js';
3
+ /** @experimental Host-bound historical scope; the upper revision never advances implicitly. */
4
+ export interface ResidentHistoryScope {
5
+ readonly tenantId: string;
6
+ readonly agentKey: string;
7
+ readonly pursuitId: string;
8
+ readonly throughRevision: number;
9
+ }
10
+ /** @experimental Revision plus part identifies retained text within one pursuit. */
11
+ export interface ResidentHistoryAddress {
12
+ readonly revision: number;
13
+ readonly part: number;
14
+ }
15
+ /** @experimental Summary or accepted wake input from a settled historical step. */
16
+ export interface ResidentHistoryMatch extends ResidentHistoryAddress {
17
+ readonly step: number;
18
+ readonly claimId: string;
19
+ readonly kind: 'wait' | 'complete' | 'blocked';
20
+ readonly source: 'summary' | 'wake';
21
+ readonly excerpt: string;
22
+ readonly matchingParts: readonly number[];
23
+ }
24
+ /** @experimental Empty query browses recent steps; cursor is the next inclusive revision. */
25
+ export interface ResidentHistorySearchOptions {
26
+ /** Optional per-call ceiling, 1 byte–8 MiB. Defaults to 8 MiB. */
27
+ readonly maxReadBytes?: number;
28
+ readonly query?: string;
29
+ readonly cursor?: number;
30
+ readonly limit?: number;
31
+ }
32
+ /** @experimental Counts describe this page, not the whole history. */
33
+ export interface ResidentHistorySearchResult {
34
+ readonly matches: readonly ResidentHistoryMatch[];
35
+ readonly nextCursor: number | null;
36
+ readonly scannedRevisions: number;
37
+ readonly scannedBytes: number;
38
+ readonly unavailableRevisions: readonly number[];
39
+ readonly incomplete: boolean;
40
+ }
41
+ /** @experimental Use the returned nextOffset to continue exact Unicode-safe text. */
42
+ export interface ResidentHistoryReadOptions extends ResidentHistoryAddress {
43
+ readonly offset?: number;
44
+ /** Optional per-call ceiling, 1 byte–8 MiB. Defaults to 8 MiB. */
45
+ readonly maxReadBytes?: number;
46
+ }
47
+ /** @experimental A recorded claim remains historical evidence, not proof of current validity. */
48
+ export interface ResidentHistoryText extends ResidentHistoryAddress {
49
+ readonly step: number;
50
+ readonly claimId: string;
51
+ readonly kind: 'wait' | 'complete' | 'blocked';
52
+ readonly source: 'summary' | 'wake';
53
+ readonly receivedAt?: number;
54
+ readonly text: string;
55
+ readonly offset: number;
56
+ readonly totalChars: number;
57
+ readonly nextOffset: number | null;
58
+ }
59
+ /** @experimental Null with unavailable revisions means unreadable evidence, not proven absence. */
60
+ export interface ResidentHistoryReadResult {
61
+ readonly entry: ResidentHistoryText | null;
62
+ readonly scannedRevisions: number;
63
+ readonly scannedBytes: number;
64
+ readonly unavailableRevisions: readonly number[];
65
+ }
66
+ /** @experimental A backend must enforce its bound scope and bounded reads. */
67
+ export interface ResidentHistorySource {
68
+ readonly scope: ResidentHistoryScope;
69
+ search(options?: ResidentHistorySearchOptions, signal?: AbortSignal): Promise<ResidentHistorySearchResult>;
70
+ read(options: ResidentHistoryReadOptions, signal?: AbortSignal): Promise<ResidentHistoryReadResult>;
71
+ }
72
+ type LoadRevision = (revision: number, budget: ResidentHistoryReadBudget) => Promise<ResidentAgendaState>;
73
+ /** Internal disk adapter. Other backends may implement ResidentHistorySource directly. */
74
+ export declare function createResidentHistorySource(scopeInput: ResidentHistoryScope, identity: {
75
+ identity: string;
76
+ objective: string;
77
+ }, load: LoadRevision): ResidentHistorySource;
78
+ export {};
79
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/history.ts"],"names":[],"mappings":"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"}