@namzu/sdk 38.1.0 → 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 (534) hide show
  1. package/CHANGELOG.md +758 -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 +137 -0
  47. package/dist/manager/resident/agenda.d.ts.map +1 -0
  48. package/dist/manager/resident/agenda.js +586 -0
  49. package/dist/manager/resident/agenda.js.map +1 -0
  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/delivery-window.d.ts +22 -0
  55. package/dist/manager/resident/delivery-window.d.ts.map +1 -0
  56. package/dist/manager/resident/delivery-window.js +78 -0
  57. package/dist/manager/resident/delivery-window.js.map +1 -0
  58. package/dist/manager/resident/evidence-recall.d.ts +24 -0
  59. package/dist/manager/resident/evidence-recall.d.ts.map +1 -0
  60. package/dist/manager/resident/evidence-recall.js +295 -0
  61. package/dist/manager/resident/evidence-recall.js.map +1 -0
  62. package/dist/manager/resident/history-disk.d.ts +10 -0
  63. package/dist/manager/resident/history-disk.d.ts.map +1 -0
  64. package/dist/manager/resident/history-disk.js +50 -0
  65. package/dist/manager/resident/history-disk.js.map +1 -0
  66. package/dist/manager/resident/history.d.ts +79 -0
  67. package/dist/manager/resident/history.d.ts.map +1 -0
  68. package/dist/manager/resident/history.js +203 -0
  69. package/dist/manager/resident/history.js.map +1 -0
  70. package/dist/manager/resident/host.d.ts +78 -0
  71. package/dist/manager/resident/host.d.ts.map +1 -0
  72. package/dist/manager/resident/host.js +252 -0
  73. package/dist/manager/resident/host.js.map +1 -0
  74. package/dist/manager/resident/initiative.d.ts +111 -0
  75. package/dist/manager/resident/initiative.d.ts.map +1 -0
  76. package/dist/manager/resident/initiative.js +129 -0
  77. package/dist/manager/resident/initiative.js.map +1 -0
  78. package/dist/manager/resident/learning-cycle.d.ts +131 -0
  79. package/dist/manager/resident/learning-cycle.d.ts.map +1 -0
  80. package/dist/manager/resident/learning-cycle.js +306 -0
  81. package/dist/manager/resident/learning-cycle.js.map +1 -0
  82. package/dist/manager/resident/learning-observation.d.ts +80 -0
  83. package/dist/manager/resident/learning-observation.d.ts.map +1 -0
  84. package/dist/manager/resident/learning-observation.js +22 -0
  85. package/dist/manager/resident/learning-observation.js.map +1 -0
  86. package/dist/manager/resident/learning-store.d.ts +106 -0
  87. package/dist/manager/resident/learning-store.d.ts.map +1 -0
  88. package/dist/manager/resident/learning-store.js +598 -0
  89. package/dist/manager/resident/learning-store.js.map +1 -0
  90. package/dist/manager/resident/learning.d.ts +726 -0
  91. package/dist/manager/resident/learning.d.ts.map +1 -0
  92. package/dist/manager/resident/learning.js +353 -0
  93. package/dist/manager/resident/learning.js.map +1 -0
  94. package/dist/manager/resident/loop.d.ts +31 -0
  95. package/dist/manager/resident/loop.d.ts.map +1 -0
  96. package/dist/manager/resident/loop.js +69 -0
  97. package/dist/manager/resident/loop.js.map +1 -0
  98. package/dist/manager/resident/outbox.d.ts +180 -0
  99. package/dist/manager/resident/outbox.d.ts.map +1 -0
  100. package/dist/manager/resident/outbox.js +214 -0
  101. package/dist/manager/resident/outbox.js.map +1 -0
  102. package/dist/manager/resident/proposal.d.ts +91 -0
  103. package/dist/manager/resident/proposal.d.ts.map +1 -0
  104. package/dist/manager/resident/proposal.js +75 -0
  105. package/dist/manager/resident/proposal.js.map +1 -0
  106. package/dist/manager/resident/store.d.ts +182 -0
  107. package/dist/manager/resident/store.d.ts.map +1 -0
  108. package/dist/manager/resident/store.js +199 -0
  109. package/dist/manager/resident/store.js.map +1 -0
  110. package/dist/manager/resident/tool-evidence.d.ts +71 -0
  111. package/dist/manager/resident/tool-evidence.d.ts.map +1 -0
  112. package/dist/manager/resident/tool-evidence.js +285 -0
  113. package/dist/manager/resident/tool-evidence.js.map +1 -0
  114. package/dist/manager/run/persistence.d.ts.map +1 -1
  115. package/dist/manager/run/persistence.js +6 -0
  116. package/dist/manager/run/persistence.js.map +1 -1
  117. package/dist/plugin/loader.d.ts.map +1 -1
  118. package/dist/plugin/loader.js +5 -3
  119. package/dist/plugin/loader.js.map +1 -1
  120. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  121. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  122. package/dist/prompt/coding-agent-doctrine.js +2 -0
  123. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  124. package/dist/prompt/contributions.d.ts +5 -2
  125. package/dist/prompt/contributions.d.ts.map +1 -1
  126. package/dist/prompt/contributions.js.map +1 -1
  127. package/dist/prompt/index.d.ts +4 -0
  128. package/dist/prompt/index.d.ts.map +1 -1
  129. package/dist/prompt/index.js +2 -0
  130. package/dist/prompt/index.js.map +1 -1
  131. package/dist/prompt/resident-learning.d.ts +19 -0
  132. package/dist/prompt/resident-learning.d.ts.map +1 -0
  133. package/dist/prompt/resident-learning.js +125 -0
  134. package/dist/prompt/resident-learning.js.map +1 -0
  135. package/dist/prompt/resident-step.d.ts +36 -0
  136. package/dist/prompt/resident-step.d.ts.map +1 -0
  137. package/dist/prompt/resident-step.js +135 -0
  138. package/dist/prompt/resident-step.js.map +1 -0
  139. package/dist/provider/collect-chat-completion.d.ts +2 -1
  140. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  141. package/dist/provider/collect-chat-completion.js +7 -6
  142. package/dist/provider/collect-chat-completion.js.map +1 -1
  143. package/dist/provider/fallback.d.ts.map +1 -1
  144. package/dist/provider/fallback.js +2 -1
  145. package/dist/provider/fallback.js.map +1 -1
  146. package/dist/provider/stream-text.d.ts +16 -0
  147. package/dist/provider/stream-text.d.ts.map +1 -0
  148. package/dist/provider/stream-text.js +51 -0
  149. package/dist/provider/stream-text.js.map +1 -0
  150. package/dist/public-runtime.d.ts +22 -3
  151. package/dist/public-runtime.d.ts.map +1 -1
  152. package/dist/public-runtime.js +21 -3
  153. package/dist/public-runtime.js.map +1 -1
  154. package/dist/public-tools.d.ts +2 -0
  155. package/dist/public-tools.d.ts.map +1 -1
  156. package/dist/public-tools.js +2 -0
  157. package/dist/public-tools.js.map +1 -1
  158. package/dist/public-types.d.ts +29 -3
  159. package/dist/public-types.d.ts.map +1 -1
  160. package/dist/registry/index.d.ts +1 -1
  161. package/dist/registry/index.d.ts.map +1 -1
  162. package/dist/registry/tool/execute.d.ts +18 -0
  163. package/dist/registry/tool/execute.d.ts.map +1 -1
  164. package/dist/registry/tool/execute.js +43 -6
  165. package/dist/registry/tool/execute.js.map +1 -1
  166. package/dist/run/LimitChecker.js +3 -3
  167. package/dist/run/LimitChecker.js.map +1 -1
  168. package/dist/run/evidence-query.d.ts +41 -0
  169. package/dist/run/evidence-query.d.ts.map +1 -0
  170. package/dist/run/evidence-query.js +270 -0
  171. package/dist/run/evidence-query.js.map +1 -0
  172. package/dist/run/evidence-recall.d.ts +99 -0
  173. package/dist/run/evidence-recall.d.ts.map +1 -0
  174. package/dist/run/evidence-recall.js +633 -0
  175. package/dist/run/evidence-recall.js.map +1 -0
  176. package/dist/run/index.d.ts +2 -0
  177. package/dist/run/index.d.ts.map +1 -1
  178. package/dist/run/index.js +1 -0
  179. package/dist/run/index.js.map +1 -1
  180. package/dist/run/json-claim-verifier.d.ts +83 -0
  181. package/dist/run/json-claim-verifier.d.ts.map +1 -0
  182. package/dist/run/json-claim-verifier.js +200 -0
  183. package/dist/run/json-claim-verifier.js.map +1 -0
  184. package/dist/run/preparation-context-error.d.ts +10 -0
  185. package/dist/run/preparation-context-error.d.ts.map +1 -0
  186. package/dist/run/preparation-context-error.js +15 -0
  187. package/dist/run/preparation-context-error.js.map +1 -0
  188. package/dist/run-query/index.d.ts +3 -1
  189. package/dist/run-query/index.d.ts.map +1 -1
  190. package/dist/runtime/query/callback-inference.d.ts +8 -0
  191. package/dist/runtime/query/callback-inference.d.ts.map +1 -0
  192. package/dist/runtime/query/callback-inference.js +89 -0
  193. package/dist/runtime/query/callback-inference.js.map +1 -0
  194. package/dist/runtime/query/checkpoint.d.ts +4 -0
  195. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  196. package/dist/runtime/query/checkpoint.js +13 -0
  197. package/dist/runtime/query/checkpoint.js.map +1 -1
  198. package/dist/runtime/query/events.d.ts +7 -1
  199. package/dist/runtime/query/events.d.ts.map +1 -1
  200. package/dist/runtime/query/events.js +39 -12
  201. package/dist/runtime/query/events.js.map +1 -1
  202. package/dist/runtime/query/executor.d.ts +7 -1
  203. package/dist/runtime/query/executor.d.ts.map +1 -1
  204. package/dist/runtime/query/executor.js +38 -7
  205. package/dist/runtime/query/executor.js.map +1 -1
  206. package/dist/runtime/query/file-evidence-context.d.ts +5 -0
  207. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -0
  208. package/dist/runtime/query/file-evidence-context.js +64 -0
  209. package/dist/runtime/query/file-evidence-context.js.map +1 -0
  210. package/dist/runtime/query/guard.d.ts.map +1 -1
  211. package/dist/runtime/query/guard.js +4 -0
  212. package/dist/runtime/query/guard.js.map +1 -1
  213. package/dist/runtime/query/index.d.ts +10 -1
  214. package/dist/runtime/query/index.d.ts.map +1 -1
  215. package/dist/runtime/query/index.js +40 -25
  216. package/dist/runtime/query/index.js.map +1 -1
  217. package/dist/runtime/query/iteration/index.d.ts +9 -31
  218. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  219. package/dist/runtime/query/iteration/index.js +231 -93
  220. package/dist/runtime/query/iteration/index.js.map +1 -1
  221. package/dist/runtime/query/iteration/phases/advisory.d.ts +2 -1
  222. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  223. package/dist/runtime/query/iteration/phases/advisory.js +2 -1
  224. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  225. package/dist/runtime/query/iteration/phases/context.d.ts +2 -1
  226. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  227. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  228. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  229. package/dist/runtime/query/iteration/phases/tool-review.js +3 -0
  230. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  231. package/dist/runtime/query/iteration/provider-rejected-image.d.ts +2 -1
  232. package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
  233. package/dist/runtime/query/iteration/provider-rejected-image.js +5 -2
  234. package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
  235. package/dist/runtime/query/iteration/stream-turn.d.ts +4 -1
  236. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  237. package/dist/runtime/query/iteration/stream-turn.js +22 -8
  238. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  239. package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
  240. package/dist/runtime/query/prompt-cache.js +21 -42
  241. package/dist/runtime/query/prompt-cache.js.map +1 -1
  242. package/dist/runtime/query/resume-pending.d.ts +18 -33
  243. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  244. package/dist/runtime/query/resume-pending.js +59 -42
  245. package/dist/runtime/query/resume-pending.js.map +1 -1
  246. package/dist/runtime/query/review-policy.d.ts +4 -4
  247. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  248. package/dist/runtime/query/review-policy.js +10 -9
  249. package/dist/runtime/query/review-policy.js.map +1 -1
  250. package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
  251. package/dist/runtime/query/sandbox-lifecycle.js +4 -0
  252. package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
  253. package/dist/runtime/query/tool-output-budget.d.ts +10 -6
  254. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  255. package/dist/runtime/query/tool-output-budget.js +54 -12
  256. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  257. package/dist/runtime/query/tooling.d.ts +3 -1
  258. package/dist/runtime/query/tooling.d.ts.map +1 -1
  259. package/dist/runtime/query/tooling.js +4 -0
  260. package/dist/runtime/query/tooling.js.map +1 -1
  261. package/dist/scheduler/completion-inbox.d.ts +3 -0
  262. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  263. package/dist/scheduler/completion-inbox.js +28 -0
  264. package/dist/scheduler/completion-inbox.js.map +1 -1
  265. package/dist/store/evidence/compaction-archive.d.ts +109 -0
  266. package/dist/store/evidence/compaction-archive.d.ts.map +1 -0
  267. package/dist/store/evidence/compaction-archive.js +125 -0
  268. package/dist/store/evidence/compaction-archive.js.map +1 -0
  269. package/dist/store/evidence/compaction-provenance.d.ts +7 -0
  270. package/dist/store/evidence/compaction-provenance.d.ts.map +1 -0
  271. package/dist/store/evidence/compaction-provenance.js +49 -0
  272. package/dist/store/evidence/compaction-provenance.js.map +1 -0
  273. package/dist/store/evidence/compaction-text.d.ts +16 -0
  274. package/dist/store/evidence/compaction-text.d.ts.map +1 -0
  275. package/dist/store/evidence/compaction-text.js +51 -0
  276. package/dist/store/evidence/compaction-text.js.map +1 -0
  277. package/dist/store/evidence/disk.d.ts +11 -0
  278. package/dist/store/evidence/disk.d.ts.map +1 -0
  279. package/dist/store/evidence/disk.js +367 -0
  280. package/dist/store/evidence/disk.js.map +1 -0
  281. package/dist/store/evidence/format.d.ts +25 -0
  282. package/dist/store/evidence/format.d.ts.map +1 -0
  283. package/dist/store/evidence/format.js +115 -0
  284. package/dist/store/evidence/format.js.map +1 -0
  285. package/dist/store/evidence/index-page.d.ts +208 -0
  286. package/dist/store/evidence/index-page.d.ts.map +1 -0
  287. package/dist/store/evidence/index-page.js +262 -0
  288. package/dist/store/evidence/index-page.js.map +1 -0
  289. package/dist/store/evidence/io.d.ts +24 -0
  290. package/dist/store/evidence/io.d.ts.map +1 -0
  291. package/dist/store/evidence/io.js +69 -0
  292. package/dist/store/evidence/io.js.map +1 -0
  293. package/dist/store/evidence/linked.d.ts +9 -0
  294. package/dist/store/evidence/linked.d.ts.map +1 -0
  295. package/dist/store/evidence/linked.js +314 -0
  296. package/dist/store/evidence/linked.js.map +1 -0
  297. package/dist/store/evidence/passages.d.ts +15 -0
  298. package/dist/store/evidence/passages.d.ts.map +1 -0
  299. package/dist/store/evidence/passages.js +72 -0
  300. package/dist/store/evidence/passages.js.map +1 -0
  301. package/dist/store/evidence/record-chain.d.ts +42 -0
  302. package/dist/store/evidence/record-chain.d.ts.map +1 -0
  303. package/dist/store/evidence/record-chain.js +111 -0
  304. package/dist/store/evidence/record-chain.js.map +1 -0
  305. package/dist/store/evidence/search-input.d.ts +21 -0
  306. package/dist/store/evidence/search-input.d.ts.map +1 -0
  307. package/dist/store/evidence/search-input.js +44 -0
  308. package/dist/store/evidence/search-input.js.map +1 -0
  309. package/dist/store/evidence/selection.d.ts +9 -0
  310. package/dist/store/evidence/selection.d.ts.map +1 -0
  311. package/dist/store/evidence/selection.js +17 -0
  312. package/dist/store/evidence/selection.js.map +1 -0
  313. package/dist/store/evidence/source-kind.d.ts +11 -0
  314. package/dist/store/evidence/source-kind.d.ts.map +1 -0
  315. package/dist/store/evidence/source-kind.js +26 -0
  316. package/dist/store/evidence/source-kind.js.map +1 -0
  317. package/dist/store/evidence/source-text.d.ts +51 -0
  318. package/dist/store/evidence/source-text.d.ts.map +1 -0
  319. package/dist/store/evidence/source-text.js +213 -0
  320. package/dist/store/evidence/source-text.js.map +1 -0
  321. package/dist/store/evidence/types.d.ts +162 -0
  322. package/dist/store/evidence/types.d.ts.map +1 -0
  323. package/dist/store/evidence/types.js +2 -0
  324. package/dist/store/evidence/types.js.map +1 -0
  325. package/dist/store/memory/disk.d.ts +2 -0
  326. package/dist/store/memory/disk.d.ts.map +1 -1
  327. package/dist/store/memory/disk.js +2 -1
  328. package/dist/store/memory/disk.js.map +1 -1
  329. package/dist/store/run/disk.d.ts +10 -0
  330. package/dist/store/run/disk.d.ts.map +1 -1
  331. package/dist/store/run/disk.js +87 -7
  332. package/dist/store/run/disk.js.map +1 -1
  333. package/dist/store/run/memory.d.ts +1 -0
  334. package/dist/store/run/memory.d.ts.map +1 -1
  335. package/dist/store/run/memory.js +10 -0
  336. package/dist/store/run/memory.js.map +1 -1
  337. package/dist/store/run/tool-executions.d.ts +13 -0
  338. package/dist/store/run/tool-executions.d.ts.map +1 -0
  339. package/dist/store/run/tool-executions.js +99 -0
  340. package/dist/store/run/tool-executions.js.map +1 -0
  341. package/dist/store/session/index.d.ts +2 -0
  342. package/dist/store/session/index.d.ts.map +1 -1
  343. package/dist/store/session/index.js +1 -0
  344. package/dist/store/session/index.js.map +1 -1
  345. package/dist/store/session/sqlite.d.ts +57 -0
  346. package/dist/store/session/sqlite.d.ts.map +1 -0
  347. package/dist/store/session/sqlite.js +430 -0
  348. package/dist/store/session/sqlite.js.map +1 -0
  349. package/dist/tools/builtins/job.d.ts.map +1 -1
  350. package/dist/tools/builtins/job.js +4 -5
  351. package/dist/tools/builtins/job.js.map +1 -1
  352. package/dist/tools/builtins/write-file.js +2 -2
  353. package/dist/tools/builtins/write-file.js.map +1 -1
  354. package/dist/tools/defineTool.d.ts +2 -1
  355. package/dist/tools/defineTool.d.ts.map +1 -1
  356. package/dist/tools/defineTool.js +1 -1
  357. package/dist/tools/defineTool.js.map +1 -1
  358. package/dist/tools/file-read-tracker.d.ts.map +1 -1
  359. package/dist/tools/file-read-tracker.js +12 -3
  360. package/dist/tools/file-read-tracker.js.map +1 -1
  361. package/dist/tools/resident-history.d.ts +10 -0
  362. package/dist/tools/resident-history.d.ts.map +1 -0
  363. package/dist/tools/resident-history.js +80 -0
  364. package/dist/tools/resident-history.js.map +1 -0
  365. package/dist/tools/resident-tool-evidence.d.ts +5 -0
  366. package/dist/tools/resident-tool-evidence.d.ts.map +1 -0
  367. package/dist/tools/resident-tool-evidence.js +57 -0
  368. package/dist/tools/resident-tool-evidence.js.map +1 -0
  369. package/dist/types/advisory/config.d.ts +7 -0
  370. package/dist/types/advisory/config.d.ts.map +1 -1
  371. package/dist/types/agent/reactive.d.ts +1 -0
  372. package/dist/types/agent/reactive.d.ts.map +1 -1
  373. package/dist/types/authorization/index.d.ts +9 -9
  374. package/dist/types/authorization/index.d.ts.map +1 -1
  375. package/dist/types/authorization/index.js +1 -1
  376. package/dist/types/authorization/index.js.map +1 -1
  377. package/dist/types/hitl/index.d.ts +4 -0
  378. package/dist/types/hitl/index.d.ts.map +1 -1
  379. package/dist/types/hitl/index.js.map +1 -1
  380. package/dist/types/message/index.d.ts +16 -2
  381. package/dist/types/message/index.d.ts.map +1 -1
  382. package/dist/types/message/index.js +8 -1
  383. package/dist/types/message/index.js.map +1 -1
  384. package/dist/types/provider/chat.d.ts +2 -0
  385. package/dist/types/provider/chat.d.ts.map +1 -1
  386. package/dist/types/provider/stream.d.ts +4 -0
  387. package/dist/types/provider/stream.d.ts.map +1 -1
  388. package/dist/types/run/answer-review.d.ts +34 -3
  389. package/dist/types/run/answer-review.d.ts.map +1 -1
  390. package/dist/types/run/config.d.ts +3 -0
  391. package/dist/types/run/config.d.ts.map +1 -1
  392. package/dist/types/run/entity.d.ts +7 -0
  393. package/dist/types/run/entity.d.ts.map +1 -1
  394. package/dist/types/run/events.d.ts +31 -8
  395. package/dist/types/run/events.d.ts.map +1 -1
  396. package/dist/types/run/events.js.map +1 -1
  397. package/dist/types/run/prepare-step.d.ts +53 -8
  398. package/dist/types/run/prepare-step.d.ts.map +1 -1
  399. package/dist/types/run/store.d.ts +29 -4
  400. package/dist/types/run/store.d.ts.map +1 -1
  401. package/dist/types/run/store.js +0 -28
  402. package/dist/types/run/store.js.map +1 -1
  403. package/dist/types/tool/index.d.ts +15 -1
  404. package/dist/types/tool/index.d.ts.map +1 -1
  405. package/dist/types/tool/index.js.map +1 -1
  406. package/dist/utils/await-with-abort.d.ts +8 -0
  407. package/dist/utils/await-with-abort.d.ts.map +1 -0
  408. package/dist/utils/await-with-abort.js +28 -0
  409. package/dist/utils/await-with-abort.js.map +1 -0
  410. package/dist/utils/evidence-time.d.ts +3 -0
  411. package/dist/utils/evidence-time.d.ts.map +1 -0
  412. package/dist/utils/evidence-time.js +10 -0
  413. package/dist/utils/evidence-time.js.map +1 -0
  414. package/dist/utils/evidence-tokens.d.ts +13 -0
  415. package/dist/utils/evidence-tokens.d.ts.map +1 -0
  416. package/dist/utils/evidence-tokens.js +29 -0
  417. package/dist/utils/evidence-tokens.js.map +1 -0
  418. package/package.json +1 -1
  419. package/src/advisory/executor.ts +15 -30
  420. package/src/advisory/history.ts +126 -0
  421. package/src/advisory/index.ts +5 -1
  422. package/src/agents/ReactiveAgent.ts +3 -0
  423. package/src/agents/runAgent.ts +14 -1
  424. package/src/compaction/manual.ts +30 -2
  425. package/src/compaction/summary.ts +4 -1
  426. package/src/config/runtime.ts +2 -2
  427. package/src/contracts/schemas.ts +1 -1
  428. package/src/eval/harness-protection.ts +79 -0
  429. package/src/eval/harness-verification.ts +31 -1
  430. package/src/eval/index.ts +1 -0
  431. package/src/manager/resident/activity.ts +187 -0
  432. package/src/manager/resident/agenda.ts +907 -0
  433. package/src/manager/resident/consumption.ts +311 -0
  434. package/src/manager/resident/delivery-window.ts +93 -0
  435. package/src/manager/resident/evidence-recall.ts +363 -0
  436. package/src/manager/resident/history-disk.ts +63 -0
  437. package/src/manager/resident/history.ts +312 -0
  438. package/src/manager/resident/host.ts +356 -0
  439. package/src/manager/resident/initiative.ts +205 -0
  440. package/src/manager/resident/learning-cycle.ts +499 -0
  441. package/src/manager/resident/learning-observation.ts +39 -0
  442. package/src/manager/resident/learning-store.ts +813 -0
  443. package/src/manager/resident/learning.ts +493 -0
  444. package/src/manager/resident/loop.ts +101 -0
  445. package/src/manager/resident/outbox.ts +307 -0
  446. package/src/manager/resident/proposal.ts +105 -0
  447. package/src/manager/resident/store.ts +257 -0
  448. package/src/manager/resident/tool-evidence.ts +412 -0
  449. package/src/manager/run/persistence.ts +6 -0
  450. package/src/plugin/loader.ts +8 -3
  451. package/src/prompt/coding-agent-doctrine.ts +2 -0
  452. package/src/prompt/contributions.ts +5 -2
  453. package/src/prompt/index.ts +4 -0
  454. package/src/prompt/resident-learning.ts +143 -0
  455. package/src/prompt/resident-step.ts +176 -0
  456. package/src/provider/collect-chat-completion.ts +7 -6
  457. package/src/provider/fallback.ts +2 -1
  458. package/src/provider/stream-text.ts +56 -0
  459. package/src/public-runtime.ts +44 -0
  460. package/src/public-tools.ts +3 -0
  461. package/src/public-types.ts +165 -0
  462. package/src/registry/index.ts +1 -1
  463. package/src/registry/tool/execute.ts +56 -9
  464. package/src/run/LimitChecker.ts +3 -3
  465. package/src/run/evidence-query.ts +333 -0
  466. package/src/run/evidence-recall.ts +854 -0
  467. package/src/run/index.ts +11 -0
  468. package/src/run/json-claim-verifier.ts +298 -0
  469. package/src/run/preparation-context-error.ts +16 -0
  470. package/src/run-query/index.ts +1 -1
  471. package/src/runtime/query/callback-inference.ts +94 -0
  472. package/src/runtime/query/checkpoint.ts +14 -0
  473. package/src/runtime/query/events.ts +46 -14
  474. package/src/runtime/query/executor.ts +51 -9
  475. package/src/runtime/query/file-evidence-context.ts +65 -0
  476. package/src/runtime/query/guard.ts +2 -0
  477. package/src/runtime/query/index.ts +50 -27
  478. package/src/runtime/query/iteration/index.ts +269 -86
  479. package/src/runtime/query/iteration/phases/advisory.ts +3 -0
  480. package/src/runtime/query/iteration/phases/context.ts +2 -0
  481. package/src/runtime/query/iteration/phases/tool-review.ts +3 -0
  482. package/src/runtime/query/iteration/provider-rejected-image.ts +6 -1
  483. package/src/runtime/query/iteration/stream-turn.ts +35 -8
  484. package/src/runtime/query/prompt-cache.ts +24 -47
  485. package/src/runtime/query/resume-pending.ts +65 -40
  486. package/src/runtime/query/review-policy.ts +13 -9
  487. package/src/runtime/query/sandbox-lifecycle.ts +3 -0
  488. package/src/runtime/query/tool-output-budget.ts +65 -13
  489. package/src/runtime/query/tooling.ts +7 -1
  490. package/src/scheduler/completion-inbox.ts +26 -0
  491. package/src/store/evidence/compaction-archive.ts +139 -0
  492. package/src/store/evidence/compaction-provenance.ts +52 -0
  493. package/src/store/evidence/compaction-text.ts +61 -0
  494. package/src/store/evidence/disk.ts +461 -0
  495. package/src/store/evidence/format.ts +126 -0
  496. package/src/store/evidence/index-page.ts +292 -0
  497. package/src/store/evidence/io.ts +95 -0
  498. package/src/store/evidence/linked.ts +365 -0
  499. package/src/store/evidence/passages.ts +88 -0
  500. package/src/store/evidence/record-chain.ts +108 -0
  501. package/src/store/evidence/search-input.ts +62 -0
  502. package/src/store/evidence/selection.ts +25 -0
  503. package/src/store/evidence/source-kind.ts +36 -0
  504. package/src/store/evidence/source-text.ts +285 -0
  505. package/src/store/evidence/types.ts +177 -0
  506. package/src/store/memory/disk.ts +4 -1
  507. package/src/store/run/disk.ts +110 -8
  508. package/src/store/run/memory.ts +10 -0
  509. package/src/store/run/tool-executions.ts +112 -0
  510. package/src/store/session/index.ts +2 -0
  511. package/src/store/session/sqlite.ts +584 -0
  512. package/src/tools/builtins/job.ts +4 -5
  513. package/src/tools/builtins/write-file.ts +2 -2
  514. package/src/tools/defineTool.ts +4 -2
  515. package/src/tools/file-read-tracker.ts +8 -2
  516. package/src/tools/resident-history.ts +86 -0
  517. package/src/tools/resident-tool-evidence.ts +68 -0
  518. package/src/types/advisory/config.ts +7 -0
  519. package/src/types/agent/reactive.ts +1 -0
  520. package/src/types/authorization/index.ts +2 -2
  521. package/src/types/hitl/index.ts +4 -0
  522. package/src/types/message/index.ts +20 -0
  523. package/src/types/provider/chat.ts +2 -0
  524. package/src/types/provider/stream.ts +4 -0
  525. package/src/types/run/answer-review.ts +34 -3
  526. package/src/types/run/config.ts +3 -0
  527. package/src/types/run/entity.ts +7 -0
  528. package/src/types/run/events.ts +31 -8
  529. package/src/types/run/prepare-step.ts +59 -8
  530. package/src/types/run/store.ts +35 -4
  531. package/src/types/tool/index.ts +19 -1
  532. package/src/utils/await-with-abort.ts +26 -0
  533. package/src/utils/evidence-time.ts +9 -0
  534. package/src/utils/evidence-tokens.ts +32 -0
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { evidenceTokenKey, isEvidenceToken } from '../../utils/evidence-tokens.js';
3
+ import { digest } from './format.js';
4
+ export const evidenceTermsSchema = z
5
+ .array(z
6
+ .string()
7
+ .min(1)
8
+ .max(256)
9
+ .refine((text) => text.trim().length > 0))
10
+ .min(1)
11
+ .max(16)
12
+ .optional();
13
+ /** Canonical membership binds continuations without putting long term lists in cursors. */
14
+ export function evidenceSearchInput(input) {
15
+ if (input.terms && input.query !== undefined)
16
+ throw new Error('Supply either a literal query or literal terms, not both.');
17
+ const terms = input.terms
18
+ ? [...new Set(input.terms)].sort((a, b) => b.length - a.length || (a < b ? -1 : a > b ? 1 : 0))
19
+ : undefined;
20
+ if (input.matchMode === 'token' && !(terms ?? [input.query ?? '']).every(isEvidenceToken))
21
+ throw new Error('Token search requires nonempty letter/number/underscore tokens.');
22
+ return {
23
+ query: input.query ?? '',
24
+ terms,
25
+ termsKey: terms ? digest(JSON.stringify(terms)) : undefined,
26
+ browse: !terms && !input.query,
27
+ };
28
+ }
29
+ /** Refinement only narrows matching; it never resets scope, filters or position. */
30
+ export function evidenceTermRefinement(input, refined) {
31
+ const terms = evidenceTermsSchema.parse(refined);
32
+ if (!input.cursor ||
33
+ input.matchMode !== 'token' ||
34
+ !input.terms ||
35
+ !terms?.every(isEvidenceToken))
36
+ throw new Error('Term refinement requires a token cursor and its original terms.');
37
+ const key = (term) => evidenceTokenKey(term, input.caseSensitive ?? true);
38
+ const original = new Set(input.terms.map(key));
39
+ const subset = new Set(terms.map(key));
40
+ if (subset.size >= original.size || [...subset].some((term) => !original.has(term)))
41
+ throw new Error('Term refinement must be a strict nonempty subset of the original terms.');
42
+ return terms;
43
+ }
44
+ //# sourceMappingURL=search-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-input.js","sourceRoot":"","sources":["../../../src/store/evidence/search-input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ /** Host-selected search exclusion, never an authorization rule or inferred provenance. */
3
+ export declare const evidenceExclusionsSchema: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodString, "many">>, string[], string[] | undefined>;
4
+ export declare function evidenceExclusionsKey(names: readonly string[], excludeDerivedSummaries?: boolean): string | undefined;
5
+ export declare function excludesSuccessfulTool(entry: {
6
+ toolName?: string;
7
+ isError?: boolean;
8
+ }, names: readonly string[]): boolean;
9
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/store/evidence/selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,6FAIa,CAAA;AAElD,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,uBAAuB,UAAQ,GAC7B,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,sBAAsB,CACrC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC/C,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,OAAO,CAET"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { digest } from './format.js';
3
+ /** Host-selected search exclusion, never an authorization rule or inferred provenance. */
4
+ export const evidenceExclusionsSchema = z
5
+ .array(z.string().min(1).max(256))
6
+ .max(16)
7
+ .default([])
8
+ .transform((names) => [...new Set(names)].sort());
9
+ export function evidenceExclusionsKey(names, excludeDerivedSummaries = false) {
10
+ if (excludeDerivedSummaries)
11
+ return digest(JSON.stringify({ tools: names, derivedSummaries: true }));
12
+ return names.length ? digest(JSON.stringify(names)) : undefined;
13
+ }
14
+ export function excludesSuccessfulTool(entry, names) {
15
+ return entry.isError === false && entry.toolName !== undefined && names.includes(entry.toolName);
16
+ }
17
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/store/evidence/selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACvC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACjC,GAAG,CAAC,EAAE,CAAC;KACP,OAAO,CAAC,EAAE,CAAC;KACX,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAElD,MAAM,UAAU,qBAAqB,CACpC,KAAwB,EACxB,uBAAuB,GAAG,KAAK;IAE/B,IAAI,uBAAuB;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,KAA+C,EAC/C,KAAwB;IAExB,OAAO,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AACjG,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** Producer category derived from an evidence source tag, never from its prose. */
2
+ export type EvidenceRecordKind = 'assistant_message' | 'tool_result' | 'user_message' | 'derived_summary' | 'system_message' | 'unknown';
3
+ /**
4
+ * Classify an already authenticated host source tag. This function performs no
5
+ * authentication and grants no authority, freshness or factual correctness.
6
+ * Custom labels stay unknown; do not pass labels parsed from quoted content.
7
+ */
8
+ export declare function classifyEvidenceSource(source: string): EvidenceRecordKind;
9
+ /** Shared model-facing interpretation for hosts projecting recorded evidence. */
10
+ export declare const EVIDENCE_RECORD_GUIDANCE = "Producer kinds do not establish truth or independence. assistant_message is a prior model claim, not proof of observed state or successful action. Attribute it as a claim unless supported by the original observation; tool results may themselves quote claims.";
11
+ //# sourceMappingURL=source-kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-kind.d.ts","sourceRoot":"","sources":["../../../src/store/evidence/source-kind.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAC3B,mBAAmB,GACnB,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,CAAA;AAEZ;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAiBzE;AAED,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,uQACgO,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Classify an already authenticated host source tag. This function performs no
3
+ * authentication and grants no authority, freshness or factual correctness.
4
+ * Custom labels stay unknown; do not pass labels parsed from quoted content.
5
+ */
6
+ export function classifyEvidenceSource(source) {
7
+ switch (source) {
8
+ case 'message_completed':
9
+ case 'compaction_shed:assistant':
10
+ return 'assistant_message';
11
+ case 'tool_completed':
12
+ case 'compaction_shed:tool':
13
+ return 'tool_result';
14
+ case 'compaction_shed:user':
15
+ return 'user_message';
16
+ case 'compaction_shed:summary':
17
+ return 'derived_summary';
18
+ case 'compaction_shed:system':
19
+ return 'system_message';
20
+ default:
21
+ return 'unknown';
22
+ }
23
+ }
24
+ /** Shared model-facing interpretation for hosts projecting recorded evidence. */
25
+ export const EVIDENCE_RECORD_GUIDANCE = 'Producer kinds do not establish truth or independence. assistant_message is a prior model claim, not proof of observed state or successful action. Attribute it as a claim unless supported by the original observation; tool results may themselves quote claims.';
26
+ //# sourceMappingURL=source-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-kind.js","sourceRoot":"","sources":["../../../src/store/evidence/source-kind.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACpD,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,mBAAmB,CAAC;QACzB,KAAK,2BAA2B;YAC/B,OAAO,mBAAmB,CAAA;QAC3B,KAAK,gBAAgB,CAAC;QACtB,KAAK,sBAAsB;YAC1B,OAAO,aAAa,CAAA;QACrB,KAAK,sBAAsB;YAC1B,OAAO,cAAc,CAAA;QACtB,KAAK,yBAAyB;YAC7B,OAAO,iBAAiB,CAAA;QACzB,KAAK,wBAAwB;YAC5B,OAAO,gBAAgB,CAAA;QACxB;YACC,OAAO,SAAS,CAAA;IAClB,CAAC;AACF,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GACpC,oQAAoQ,CAAA"}
@@ -0,0 +1,51 @@
1
+ import type { FileHandle } from 'node:fs/promises';
2
+ import { z } from 'zod';
3
+ import { type IndexEntry } from './index-page.js';
4
+ import { type EvidenceBudget } from './io.js';
5
+ import type { RunEvidenceScope, RunTextEvidenceReadResult } from './types.js';
6
+ export declare const textPointerSchema: z.ZodObject<Pick<{
7
+ offset: z.ZodNumber;
8
+ length: z.ZodNumber;
9
+ sha256: z.ZodString;
10
+ seq: z.ZodNumber;
11
+ source: z.ZodEnum<["tool_completed", "message_completed", "compaction_shed:system", "compaction_shed:summary", "compaction_shed:user", "compaction_shed:assistant", "compaction_shed:tool"]>;
12
+ part: z.ZodDefault<z.ZodNumber>;
13
+ toolName: z.ZodOptional<z.ZodString>;
14
+ toolUseId: z.ZodOptional<z.ZodString>;
15
+ isError: z.ZodOptional<z.ZodBoolean>;
16
+ truncated: z.ZodBoolean;
17
+ spill: z.ZodOptional<z.ZodString>;
18
+ filter: z.ZodString;
19
+ tokenFilter: z.ZodOptional<z.ZodString>;
20
+ }, "length" | "seq" | "part" | "sha256" | "offset">, "strip", z.ZodTypeAny, {
21
+ length: number;
22
+ seq: number;
23
+ part: number;
24
+ sha256: string;
25
+ offset: number;
26
+ }, {
27
+ length: number;
28
+ seq: number;
29
+ sha256: string;
30
+ offset: number;
31
+ part?: number | undefined;
32
+ }>;
33
+ export interface TextSource {
34
+ entry: IndexEntry;
35
+ recordedAt?: number;
36
+ bytes: number;
37
+ chars?: number;
38
+ retained: 'full' | 'preview';
39
+ chunks: number;
40
+ mayMatch(chunk: number, query: string, matchMode?: 'literal' | 'token', caseSensitive?: boolean): boolean;
41
+ window(chunk: number, preceding?: boolean): Promise<{
42
+ bytes: Buffer;
43
+ offset: number;
44
+ characterOffset?: number;
45
+ searchFrom?: number;
46
+ }>;
47
+ }
48
+ /** One authenticated record per operation, never shared between calls or sources. */
49
+ export declare function createTextSourceReader(handle: FileHandle, runDir: string, runId: string, budget: EvidenceBudget): (pointer: z.infer<typeof textPointerSchema>, verifiedRecord?: Buffer) => Promise<TextSource>;
50
+ export declare function readTextPage(source: TextSource, scope: RunEvidenceScope, offset: number, budget: EvidenceBudget): Promise<RunTextEvidenceReadResult>;
51
+ //# sourceMappingURL=source-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-text.d.ts","sourceRoot":"","sources":["../../../src/store/evidence/source-text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,OAAO,EAAE,KAAK,UAAU,EAA2B,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EACN,KAAK,cAAc,EAOnB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAG7E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;EAM5B,CAAA;AAkBF,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,UAAU,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CACP,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,EAC/B,aAAa,CAAC,EAAE,OAAO,GACrB,OAAO,CAAA;IACV,MAAM,CACL,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5F;AAYD,qFAAqF;AACrF,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,GACpB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CA+B9F;AA8HD,wBAAsB,YAAY,CACjC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,GACpB,OAAO,CAAC,yBAAyB,CAAC,CAqCpC"}
@@ -0,0 +1,213 @@
1
+ import { lstat } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { z } from 'zod';
4
+ import { evidenceRecordedAt } from '../../utils/evidence-time.js';
5
+ import { compactionArchiveSchema, compactionPartPath } from './compaction-archive.js';
6
+ import { EVIDENCE_CHUNK_BYTES, SEARCH_OVERLAP_BYTES, digest, mayContain, mayContainToken, } from './format.js';
7
+ import { entrySchema, eventTexts } from './index-page.js';
8
+ import { decode, openEvidence, readBytes, readSmall, stamp, utf8Page, } from './io.js';
9
+ const integer = z.number().int().nonnegative().safe();
10
+ export const textPointerSchema = entrySchema.pick({
11
+ offset: true,
12
+ length: true,
13
+ sha256: true,
14
+ seq: true,
15
+ part: true,
16
+ });
17
+ const manifestSchema = z.object({
18
+ version: z.literal(1),
19
+ bytes: integer,
20
+ chars: integer.optional(),
21
+ chunkBytes: z.literal(EVIDENCE_CHUNK_BYTES),
22
+ chunks: z
23
+ .array(z.object({
24
+ sha256: z.string().regex(/^[a-f0-9]{64}$/),
25
+ filter: z.string().max(1400),
26
+ tokenFilter: z.string().max(1400).optional(),
27
+ characterOffset: integer.optional(),
28
+ }))
29
+ .max(4096),
30
+ });
31
+ /** One authenticated record per operation, never shared between calls or sources. */
32
+ export function createTextSourceReader(handle, runDir, runId, budget) {
33
+ let saved;
34
+ return async (pointer, verifiedRecord) => {
35
+ budget.signal?.throwIfAborted();
36
+ if (!saved ||
37
+ saved.offset !== pointer.offset ||
38
+ saved.length !== pointer.length ||
39
+ saved.sha256 !== pointer.sha256 ||
40
+ saved.seq !== pointer.seq) {
41
+ const raw = verifiedRecord ?? (await readBytes(handle, pointer.offset, pointer.length, budget));
42
+ if (raw.length !== pointer.length || digest(raw) !== pointer.sha256)
43
+ throw new Error('Recorded tool evidence changed.');
44
+ const event = JSON.parse(decode(raw));
45
+ if (event.runId !== runId || event.seq !== pointer.seq)
46
+ throw new Error('Recorded text identity changed.');
47
+ saved = {
48
+ offset: pointer.offset,
49
+ length: pointer.length,
50
+ sha256: pointer.sha256,
51
+ seq: pointer.seq,
52
+ event,
53
+ parts: eventTexts(event),
54
+ archive: event.type === 'compaction_archive' ? compactionArchiveSchema.parse(event) : undefined,
55
+ };
56
+ }
57
+ return sourceText(pointer, runDir, budget, saved);
58
+ };
59
+ }
60
+ async function sourceText(pointer, runDir, budget, { event, parts, archive }) {
61
+ const part = parts[pointer.part];
62
+ if (!part)
63
+ throw new Error('Recorded text part is unavailable.');
64
+ const tool = event.type === 'tool_completed';
65
+ const archivedPart = archive?.archive.parts[pointer.part];
66
+ if (archive && !archivedPart)
67
+ throw new Error('Missing archived text part.');
68
+ const entry = entrySchema.parse({
69
+ ...pointer,
70
+ source: part.source,
71
+ ...(tool
72
+ ? {
73
+ toolName: z.string().parse(event.toolName),
74
+ toolUseId: z.string().parse(event.toolUseId),
75
+ isError: z.boolean().parse(event.isError),
76
+ spill: event.outputSpillIntegrity,
77
+ }
78
+ : { toolName: part.toolName, isError: part.isError }),
79
+ truncated: tool && event.outputTruncated === true,
80
+ ...(archivedPart ? { spill: archivedPart.manifest } : {}),
81
+ filter: '',
82
+ });
83
+ if (!entry.spill) {
84
+ const bytes = Buffer.from(part.text, 'utf8');
85
+ return {
86
+ entry,
87
+ recordedAt: evidenceRecordedAt(event.timestamp),
88
+ bytes: bytes.length,
89
+ chars: part.text.length,
90
+ retained: entry.truncated ? 'preview' : 'full',
91
+ chunks: 1,
92
+ mayMatch: () => true,
93
+ window: async () => ({ bytes, offset: 0, characterOffset: 0 }),
94
+ };
95
+ }
96
+ // Never follow a model/provider-controlled spill path from the event.
97
+ let path;
98
+ if (archive)
99
+ path = compactionPartPath(runDir, archive.archive.id, pointer.part);
100
+ else {
101
+ if (!entry.toolUseId)
102
+ throw new Error('Retained output has no tool identity.');
103
+ path = join(runDir, 'tool-output', `${digest(entry.toolUseId)}.txt`);
104
+ }
105
+ const rawManifest = await readSmall(`${path}.manifest.json`, budget);
106
+ if (digest(rawManifest) !== entry.spill)
107
+ throw new Error('Retained output manifest changed.');
108
+ const manifest = manifestSchema.parse(JSON.parse(decode(rawManifest)));
109
+ if (manifest.chunks.length !== Math.ceil(manifest.bytes / EVIDENCE_CHUNK_BYTES))
110
+ throw new Error('Incomplete retained output manifest.');
111
+ return {
112
+ entry,
113
+ recordedAt: evidenceRecordedAt(event.timestamp),
114
+ bytes: manifest.bytes,
115
+ chars: manifest.chars,
116
+ retained: 'full',
117
+ chunks: Math.max(1, manifest.chunks.length),
118
+ mayMatch: (chunk, query, matchMode = 'literal', caseSensitive = true) => {
119
+ const part = manifest.chunks[chunk];
120
+ if (!part)
121
+ return query === '';
122
+ if (matchMode === 'token')
123
+ return (mayContainToken(part.tokenFilter, query) &&
124
+ (!caseSensitive || mayContain(part.filter, query)));
125
+ return !caseSensitive || mayContain(part.filter, query);
126
+ },
127
+ async window(chunk, preceding = false) {
128
+ const file = await openEvidence(path);
129
+ try {
130
+ const before = await file.stat();
131
+ if (before.size !== manifest.bytes)
132
+ throw new Error('Retained output size changed.');
133
+ const pieces = [];
134
+ // A token boundary needs the previous code point. Authenticate its
135
+ // entire chunk and charge that read; never trust an unverified byte.
136
+ const first = preceding && chunk > 0 ? chunk - 1 : chunk;
137
+ for (let index = first; index < Math.min(chunk + 2, manifest.chunks.length); index++) {
138
+ const bytes = await readBytes(file, index * EVIDENCE_CHUNK_BYTES, Math.min(EVIDENCE_CHUNK_BYTES, manifest.bytes - index * EVIDENCE_CHUNK_BYTES), budget);
139
+ if (digest(bytes) !== manifest.chunks[index]?.sha256)
140
+ throw new Error('Retained output bytes changed.');
141
+ pieces.push(bytes);
142
+ }
143
+ if (stamp(before) !== stamp(await file.stat()) ||
144
+ stamp(before) !== stamp(await lstat(path)))
145
+ throw new Error('Retained output changed during read.');
146
+ const all = Buffer.concat(pieces);
147
+ const ownedStart = (chunk - first) * EVIDENCE_CHUNK_BYTES;
148
+ let contentStart = ownedStart;
149
+ while (contentStart < all.length && ((all[contentStart] ?? 0) & 0xc0) === 0x80)
150
+ contentStart++;
151
+ let start = contentStart;
152
+ if (preceding && chunk > 0) {
153
+ start--;
154
+ while (start > 0 && ((all[start] ?? 0) & 0xc0) === 0x80)
155
+ start--;
156
+ }
157
+ const prefixChars = decode(all.subarray(start, contentStart)).length;
158
+ const characterOffset = manifest.chunks[chunk]?.characterOffset ?? (chunk === 0 ? 0 : undefined);
159
+ return {
160
+ bytes: utf8Page(all.subarray(start), ownedStart + EVIDENCE_CHUNK_BYTES + SEARCH_OVERLAP_BYTES - start),
161
+ offset: first * EVIDENCE_CHUNK_BYTES + start,
162
+ characterOffset: characterOffset === undefined ? undefined : characterOffset - prefixChars,
163
+ searchFrom: prefixChars,
164
+ };
165
+ }
166
+ finally {
167
+ await file.close();
168
+ }
169
+ },
170
+ };
171
+ }
172
+ export async function readTextPage(source, scope, offset, budget) {
173
+ const entry = source.entry;
174
+ if (offset > source.bytes)
175
+ throw new Error('Offset exceeds retained text.');
176
+ const chunk = entry.spill
177
+ ? Math.min(Math.floor(offset / EVIDENCE_CHUNK_BYTES), source.chunks - 1)
178
+ : 0;
179
+ const window = await source.window(chunk);
180
+ if (offset < window.offset)
181
+ throw new Error('Offset splits a UTF-8 character.');
182
+ const bytes = window.bytes.subarray(offset - window.offset);
183
+ let text = decode(utf8Page(bytes, 24_000));
184
+ if (text.length > 6000) {
185
+ let end = 6000;
186
+ if (/[\uDC00-\uDFFF]/.test(text[end] ?? ''))
187
+ end--;
188
+ text = text.slice(0, end);
189
+ }
190
+ const next = offset + Buffer.byteLength(text);
191
+ if (next === offset && offset < source.bytes)
192
+ throw new Error('Text page did not advance.');
193
+ return {
194
+ scope,
195
+ recordedAt: source.recordedAt,
196
+ seq: entry.seq,
197
+ source: entry.source,
198
+ part: entry.part,
199
+ characterOffset: window.characterOffset === undefined
200
+ ? undefined
201
+ : window.characterOffset + decode(window.bytes.subarray(0, offset - window.offset)).length,
202
+ totalChars: source.chars,
203
+ toolName: entry.toolName,
204
+ isError: entry.isError,
205
+ retained: source.retained,
206
+ text,
207
+ byteOffset: offset,
208
+ nextByteOffset: next < source.bytes ? next : null,
209
+ totalBytes: source.bytes,
210
+ scannedBytes: budget.bytes,
211
+ };
212
+ }
213
+ //# sourceMappingURL=source-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-text.js","sourceRoot":"","sources":["../../../src/store/evidence/source-text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ /** @experimental An explicitly authorized invocation. No directory discovery. */
2
+ export interface RunEvidenceScope {
3
+ readonly tenantId: string;
4
+ readonly projectId: string;
5
+ readonly sessionId: string;
6
+ readonly runId: string;
7
+ }
8
+ /** @experimental Cache and run directories must be private and host-owned. */
9
+ export interface DiskRunEvidenceOptions {
10
+ readonly scope: RunEvidenceScope;
11
+ readonly runDir: string;
12
+ readonly indexDir: string;
13
+ /** Optional smaller I/O ceiling per operation, in bytes (1–8 MiB). */
14
+ readonly maxReadBytes?: number;
15
+ /**
16
+ * Disk readers default to closed runs. Snapshot mode also reads explicitly
17
+ * scoped nonterminal runs, checking file/metadata stamps before and after
18
+ * every operation. It neither claims a writer is dead nor resumes it.
19
+ * Appends or metadata changes invalidate continuations and addresses.
20
+ * Nonterminal search results remain incomplete even at the snapshot end.
21
+ * An incomplete final JSONL fragment is excluded without changing the file;
22
+ * the backward boundary scan is capped at one record (4 MiB) and billed.
23
+ */
24
+ readonly consistency?: 'closed' | 'snapshot';
25
+ }
26
+ /** @experimental Literal search; empty query browses tool records. */
27
+ export interface RunEvidenceSearchOptions {
28
+ /** Optional per-call ceiling, 1–8 MiB. Cannot raise the source's own ceiling.
29
+ * Not part of search identity; a continuation may use a different allowance.
30
+ */
31
+ readonly maxReadBytes?: number;
32
+ readonly query?: string;
33
+ /**
34
+ * Find passages matching any of 1–16 nonblank literal terms (up to 256 UTF-16
35
+ * units each) in the same bounded scan. Mutually exclusive with query, even
36
+ * an empty query. Exact duplicate terms and their order do not matter.
37
+ * This is candidate discovery, not relevance ranking or natural-language parsing.
38
+ */
39
+ readonly terms?: readonly string[];
40
+ /** With a cursor and its original token terms, continue at that position using
41
+ * a strict nonempty subset. Requires supportsTermRefinement. The returned
42
+ * cursor is bound to the subset; the original cursor remains usable.
43
+ */
44
+ readonly refineTerms?: readonly string[];
45
+ /**
46
+ * Defaults to literal substring matching. Token mode accepts only single
47
+ * Unicode letter/number/underscore tokens and matches complete tokens.
48
+ * Case-insensitive tokens use toLowerCase(), as bounded evidence ranking does.
49
+ * Empty-query browsing and phrases require literal mode. Bound into cursors.
50
+ */
51
+ readonly matchMode?: 'literal' | 'token';
52
+ /** Defaults to true. False uses the selected mode's case rules (see matchMode). */
53
+ readonly caseSensitive?: boolean;
54
+ /**
55
+ * Omit successful results from these exact tool names during search. At most
56
+ * 16 names, each 1–256 UTF-16 units. Errors and unknown provenance remain.
57
+ * Bound into cursors; exact reads are unchanged. Default: exclude nothing.
58
+ */
59
+ readonly excludeSuccessfulTools?: readonly string[];
60
+ readonly cursor?: string;
61
+ }
62
+ /** @experimental Opaque addresses remain usable after restart while the source is unchanged. */
63
+ export interface RunEvidenceMatch {
64
+ readonly address: string;
65
+ readonly seq: number;
66
+ /** Stored event wall-clock Unix milliseconds; absent/invalid/zero stamps remain unknown.
67
+ * This dates archive recording, not the facts in its text. Clocks can differ or move backwards.
68
+ */
69
+ readonly recordedAt?: number;
70
+ readonly toolName: string;
71
+ readonly isError: boolean;
72
+ readonly retained: 'full' | 'preview';
73
+ readonly excerpt: string;
74
+ /** True only when the excerpt contains the whole full-retained text part.
75
+ * False includes partial text and retained previews; absent is unknown.
76
+ * This says nothing about other parts, scan completeness or source truth.
77
+ */
78
+ readonly excerptComplete?: boolean;
79
+ readonly byteOffset: number;
80
+ }
81
+ /** @experimental An empty bounded page does not imply absence. Follow nextCursor. */
82
+ export interface RunEvidenceSearchResult {
83
+ readonly scope: RunEvidenceScope;
84
+ readonly matches: readonly RunEvidenceMatch[];
85
+ readonly nextCursor: string | null;
86
+ readonly scannedBytes: number;
87
+ readonly indexedRecords: number;
88
+ readonly cacheHit: boolean;
89
+ readonly incomplete: boolean;
90
+ readonly unavailable: readonly string[];
91
+ /** Successful tool-result visits omitted by this page's filter; not unique facts. */
92
+ readonly excludedToolResults?: number;
93
+ }
94
+ /** @experimental Byte offsets refer to UTF-8 retained text, not the current workspace file. */
95
+ export interface RunEvidenceReadOptions {
96
+ readonly address: string;
97
+ readonly byteOffset?: number;
98
+ /** Optional per-call ceiling, 1–8 MiB, capped by the source's own ceiling. */
99
+ readonly maxReadBytes?: number;
100
+ }
101
+ /** @experimental Full means retained text, not binary blocks or proof an action succeeded. */
102
+ export interface RunEvidenceReadResult {
103
+ readonly scope: RunEvidenceScope;
104
+ readonly seq: number;
105
+ /** Same stored-event wall-clock semantics as RunEvidenceMatch.recordedAt. */
106
+ readonly recordedAt?: number;
107
+ readonly toolName: string;
108
+ readonly isError: boolean;
109
+ readonly retained: 'full' | 'preview';
110
+ readonly text: string;
111
+ readonly byteOffset: number;
112
+ readonly nextByteOffset: number | null;
113
+ readonly totalBytes: number;
114
+ readonly scannedBytes: number;
115
+ }
116
+ /** @experimental Retrieval only: never re-executes a tool or resumes a run. */
117
+ export interface RunEvidenceSource {
118
+ readonly scope: RunEvidenceScope;
119
+ readonly supportsTermRefinement?: boolean;
120
+ search(options?: RunEvidenceSearchOptions, signal?: AbortSignal): Promise<RunEvidenceSearchResult>;
121
+ read(options: RunEvidenceReadOptions, signal?: AbortSignal): Promise<RunEvidenceReadResult>;
122
+ }
123
+ /** @experimental Textual event parts, including assistant output and shed conversation messages. */
124
+ export interface RunTextEvidenceSearchOptions extends RunEvidenceSearchOptions {
125
+ /** Omit explicitly marked derived summaries. Default false; bound into cursors. Exact reads remain available. */
126
+ readonly excludeDerivedSummaries?: boolean;
127
+ readonly seq?: number;
128
+ readonly part?: number;
129
+ readonly limit?: number;
130
+ }
131
+ /** @experimental Event identity is durable; byteOffset starts a bounded excerpt in the retained text. */
132
+ export interface RunTextEvidenceMatch extends Omit<RunEvidenceMatch, 'toolName' | 'isError'> {
133
+ readonly source: string;
134
+ readonly part: number;
135
+ readonly toolName?: string;
136
+ readonly isError?: boolean;
137
+ /** UTF-16 position, when the authenticated source includes a character index. */
138
+ readonly characterOffset?: number;
139
+ }
140
+ /** @experimental Search includes messages and tool text, never binary or private reasoning blocks. */
141
+ export interface RunTextEvidenceSearchResult extends Omit<RunEvidenceSearchResult, 'matches'> {
142
+ readonly matches: readonly RunTextEvidenceMatch[];
143
+ /** Derived-summary part visits deliberately skipped, not unique facts or matched passages. */
144
+ readonly excludedSummaries?: number;
145
+ }
146
+ /** @experimental Character counts are UTF-16 units; absent counts must not be inferred from bytes. */
147
+ export interface RunTextEvidenceReadResult extends Omit<RunEvidenceReadResult, 'toolName' | 'isError'> {
148
+ readonly source: string;
149
+ readonly part: number;
150
+ readonly toolName?: string;
151
+ readonly isError?: boolean;
152
+ readonly characterOffset?: number;
153
+ readonly totalChars?: number;
154
+ }
155
+ /** @experimental Scope-bound, bounded text retrieval across an invocation's event stream. */
156
+ export interface RunTextEvidenceSource {
157
+ readonly scope: RunEvidenceScope;
158
+ readonly supportsTermRefinement?: boolean;
159
+ search(options?: RunTextEvidenceSearchOptions, signal?: AbortSignal): Promise<RunTextEvidenceSearchResult>;
160
+ read(options: RunEvidenceReadOptions, signal?: AbortSignal): Promise<RunTextEvidenceReadResult>;
161
+ }
162
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/store/evidence/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/store/evidence/types.ts"],"names":[],"mappings":""}
@@ -4,6 +4,8 @@ import { type Logger } from '../../utils/logger.js';
4
4
  import { InMemoryMemoryIndex } from './index.js';
5
5
  export interface DiskMemoryStoreConfig {
6
6
  baseDir: string;
7
+ /** Exact memory directory; defaults to `baseDir/memory`. Hosts can partition by workspace. */
8
+ directory?: string;
7
9
  logger?: Logger;
8
10
  /** Maximum wait for another process's operation; default 10 seconds. Never breaks stale locks. */
9
11
  lockTimeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"disk.d.ts","sourceRoot":"","sources":["../../../src/store/memory/disk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,KAAK,EACX,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,MAAM,6BAA6B,CAAA;AAIpC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAGlE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,YAAY,CAAA;AAiIrE,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kGAAkG;IAClG,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,eAAgB,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAKlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;gBAExD,MAAM,EAAE,qBAAqB;IAOzC,OAAO,KAAK,UAAU,GAErB;YAEa,eAAe;IAkB7B,OAAO,CAAC,WAAW;YASL,WAAW;YAkBX,sBAAsB;YAgBtB,WAAW;YAOX,UAAU;IAOlB,MAAM,CACX,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAAC;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IA0CzD,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAQrD,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAS1D,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAuCxF,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBtC,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBpE,QAAQ,IAAI,mBAAmB;CAG/B"}
1
+ {"version":3,"file":"disk.d.ts","sourceRoot":"","sources":["../../../src/store/memory/disk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,KAAK,EACX,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,MAAM,6BAA6B,CAAA;AAIpC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAGlE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,YAAY,CAAA;AAiIrE,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kGAAkG;IAClG,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,eAAgB,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAKlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;gBAExD,MAAM,EAAE,qBAAqB;IAQzC,OAAO,KAAK,UAAU,GAErB;YAEa,eAAe;IAkB7B,OAAO,CAAC,WAAW;YASL,WAAW;YAkBX,sBAAsB;YAgBtB,WAAW;YAOX,UAAU;IAOlB,MAAM,CACX,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAAC;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IA0CzD,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAQrD,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAS1D,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAuCxF,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBtC,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoBpE,QAAQ,IAAI,mBAAmB;CAG/B"}
@@ -119,7 +119,8 @@ export class DiskMemoryStore {
119
119
  records = new DiskRecordStore(SCHEMA);
120
120
  indexRecords = new DiskRecordStore(SCHEMA);
121
121
  constructor(config) {
122
- this.baseDir = join(config.baseDir, 'memory');
122
+ this.baseDir =
123
+ config.directory === undefined ? join(config.baseDir, 'memory') : resolve(config.directory);
123
124
  this.log = resolveLogger(config.logger).child({ [SCOPE_ATTRIBUTE]: 'store/memory/disk' });
124
125
  this.lockTimeoutMs = config.lockTimeoutMs ?? DEFAULT_MEMORY_LOCK_TIMEOUT_MS;
125
126
  validateMemoryLockTimeout(this.lockTimeoutMs);