@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,104 @@
1
+ import { z } from 'zod';
2
+ import type { ResidentActivityScope, ResidentActivitySource, ResidentAdmission, ResidentSettlement } from './activity.js';
3
+ declare const receiptSchema: z.ZodEffects<z.ZodObject<{
4
+ runId: z.ZodString;
5
+ /** Own usage includes retry and side-call spend; never add cache buckets again. */
6
+ ownTokens: z.ZodNullable<z.ZodNumber>;
7
+ treeTokens: z.ZodNullable<z.ZodNumber>;
8
+ ownCostUsd: z.ZodNullable<z.ZodNumber>;
9
+ unpricedOwnTokens: z.ZodNullable<z.ZodNumber>;
10
+ usageFinal: z.ZodBoolean;
11
+ cleanup: z.ZodEnum<["confirmed", "unconfirmed", "unknown"]>;
12
+ verification: z.ZodEnum<["recorded", "unconfigured", "unconfirmed"]>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ runId: string;
15
+ verification: "unconfirmed" | "recorded" | "unconfigured";
16
+ ownTokens: number | null;
17
+ treeTokens: number | null;
18
+ ownCostUsd: number | null;
19
+ unpricedOwnTokens: number | null;
20
+ usageFinal: boolean;
21
+ cleanup: "unknown" | "confirmed" | "unconfirmed";
22
+ }, {
23
+ runId: string;
24
+ verification: "unconfirmed" | "recorded" | "unconfigured";
25
+ ownTokens: number | null;
26
+ treeTokens: number | null;
27
+ ownCostUsd: number | null;
28
+ unpricedOwnTokens: number | null;
29
+ usageFinal: boolean;
30
+ cleanup: "unknown" | "confirmed" | "unconfirmed";
31
+ }>, {
32
+ runId: string;
33
+ verification: "unconfirmed" | "recorded" | "unconfigured";
34
+ ownTokens: number | null;
35
+ treeTokens: number | null;
36
+ ownCostUsd: number | null;
37
+ unpricedOwnTokens: number | null;
38
+ usageFinal: boolean;
39
+ cleanup: "unknown" | "confirmed" | "unconfirmed";
40
+ }, {
41
+ runId: string;
42
+ verification: "unconfirmed" | "recorded" | "unconfigured";
43
+ ownTokens: number | null;
44
+ treeTokens: number | null;
45
+ ownCostUsd: number | null;
46
+ unpricedOwnTokens: number | null;
47
+ usageFinal: boolean;
48
+ cleanup: "unknown" | "confirmed" | "unconfirmed";
49
+ }>;
50
+ /** @experimental Host-authenticated cumulative root receipt. Cost covers this root only. */
51
+ export type ResidentConsumptionReceipt = z.infer<typeof receiptSchema>;
52
+ /** @experimental A host resolves only authoritative admitted claims and bounds each read. */
53
+ export interface ResidentConsumptionResolver {
54
+ /** Worst-case bytes read per resolution; reserved before calling the adapter. */
55
+ readonly maxReadBytes: number;
56
+ resolve(admission: ResidentAdmission, signal?: AbortSignal): Promise<ResidentConsumptionReceipt | null>;
57
+ }
58
+ /** @experimental Bounds the entire inspection, not just each page. No inference or writes. */
59
+ export interface ResidentConsumptionOptions {
60
+ readonly cursor?: number;
61
+ readonly maxRevisions?: number;
62
+ readonly maxHistoryBytes?: number;
63
+ readonly maxReceiptBytes?: number;
64
+ }
65
+ /** @experimental Missing and deferred receipts never establish zero usage. */
66
+ export interface ResidentConsumptionAttempt extends ResidentAdmission {
67
+ readonly settlement: ResidentSettlement | null;
68
+ readonly receipt: ResidentConsumptionReceipt | null;
69
+ readonly receiptStatus: 'available' | 'missing' | 'invalid' | 'deferred' | 'duplicate-run';
70
+ }
71
+ /** @experimental An evidence projection, not a bill or an enforced spending cap. */
72
+ export interface ResidentConsumptionReport {
73
+ readonly scope: ResidentActivityScope;
74
+ readonly fromRevision: number;
75
+ readonly throughRevision: number;
76
+ readonly nextCursor: number | null;
77
+ readonly historyComplete: boolean;
78
+ readonly unavailableRevisions: readonly number[];
79
+ readonly historyBytes: number;
80
+ readonly receiptBytesReserved: number;
81
+ readonly archivedPursuits: readonly string[];
82
+ readonly attempts: readonly ResidentConsumptionAttempt[];
83
+ readonly recorded: {
84
+ readonly ownTokens: number;
85
+ readonly treeTokens: number;
86
+ readonly ownCostUsd: number;
87
+ readonly unpricedOwnTokens: number;
88
+ };
89
+ readonly unknown: {
90
+ readonly ownUsageAttempts: number;
91
+ readonly treeUsageAttempts: number;
92
+ readonly ownPriceAttempts: number;
93
+ };
94
+ /** Requires complete history and final receipts; says nothing about external billing. */
95
+ readonly usageComplete: boolean;
96
+ }
97
+ /**
98
+ * @experimental Inspect cumulative root receipts once per admitted claim. Historical
99
+ * archive/reconcile events never erase consumption. Tree tokens are a separate total:
100
+ * adding them to own tokens would count the root twice. Descendant prices are unknown.
101
+ */
102
+ export declare function inspectResidentConsumption(source: ResidentActivitySource, resolver: ResidentConsumptionResolver, options?: ResidentConsumptionOptions, signal?: AbortSignal): Promise<ResidentConsumptionReport>;
103
+ export {};
104
+ //# sourceMappingURL=consumption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumption.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/consumption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EACX,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,eAAe,CAAA;AAkBtB,QAAA,MAAM,aAAa;;IAGjB,mFAAmF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBlF,CAAA;AAEH,4FAA4F;AAC5F,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtE,6FAA6F;AAC7F,MAAM,WAAW,2BAA2B;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,OAAO,CACN,SAAS,EAAE,iBAAiB,EAC5B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAA;CAC7C;AAED,8FAA8F;AAC9F,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,8EAA8E;AAC9E,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACpE,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,CAAA;CAC1F;AAED,oFAAoF;AACpF,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAA;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,CAAA;IACxD,QAAQ,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;KAClC,CAAA;IACD,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;QACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;QAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;KACjC,CAAA;IACD,yFAAyF;IACzF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAC/B;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC/C,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,0BAA+B,EACxC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,yBAAyB,CAAC,CAkMpC"}
@@ -0,0 +1,233 @@
1
+ import { z } from 'zod';
2
+ const count = z.number().int().nonnegative().safe();
3
+ const uuidKey = (id) => id.toLowerCase();
4
+ const admissionSchema = z.object({
5
+ revision: count.positive(),
6
+ pursuitRevision: count.positive(),
7
+ pursuitId: z.string().uuid(),
8
+ claimId: z.string().uuid(),
9
+ step: count.positive(),
10
+ objective: z.string().min(1).max(8000),
11
+ });
12
+ const settlementSchema = z.object({
13
+ revision: count.positive(),
14
+ pursuitId: z.string().uuid(),
15
+ claimId: z.string().uuid(),
16
+ outcome: z.enum(['wait', 'complete', 'blocked']),
17
+ });
18
+ const receiptSchema = z
19
+ .object({
20
+ runId: z.string().uuid(),
21
+ /** Own usage includes retry and side-call spend; never add cache buckets again. */
22
+ ownTokens: count.nullable(),
23
+ treeTokens: count.nullable(),
24
+ ownCostUsd: z.number().nonnegative().finite().nullable(),
25
+ unpricedOwnTokens: count.nullable(),
26
+ usageFinal: z.boolean(),
27
+ cleanup: z.enum(['confirmed', 'unconfirmed', 'unknown']),
28
+ verification: z.enum(['recorded', 'unconfigured', 'unconfirmed']),
29
+ })
30
+ .superRefine((receipt, ctx) => {
31
+ if (receipt.ownTokens !== null &&
32
+ receipt.treeTokens !== null &&
33
+ receipt.treeTokens < receipt.ownTokens)
34
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Tree usage is below own usage.' });
35
+ if (receipt.ownTokens !== null &&
36
+ receipt.unpricedOwnTokens !== null &&
37
+ receipt.unpricedOwnTokens > receipt.ownTokens)
38
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Unpriced usage exceeds own usage.' });
39
+ });
40
+ /**
41
+ * @experimental Inspect cumulative root receipts once per admitted claim. Historical
42
+ * archive/reconcile events never erase consumption. Tree tokens are a separate total:
43
+ * adding them to own tokens would count the root twice. Descendant prices are unknown.
44
+ */
45
+ export async function inspectResidentConsumption(source, resolver, options = {}, signal) {
46
+ const scope = z
47
+ .object({
48
+ tenantId: z.string().uuid(),
49
+ agentKey: z.string().min(1).max(200),
50
+ throughRevision: count.positive(),
51
+ })
52
+ .parse(source.scope);
53
+ const from = z
54
+ .number()
55
+ .int()
56
+ .positive()
57
+ .max(scope.throughRevision)
58
+ .parse(options.cursor ?? 1);
59
+ const maxRevisions = z
60
+ .number()
61
+ .int()
62
+ .positive()
63
+ .max(4096)
64
+ .parse(options.maxRevisions ?? 256);
65
+ const maxHistoryBytes = z
66
+ .number()
67
+ .int()
68
+ .positive()
69
+ .max(8 * 1024 * 1024)
70
+ .parse(options.maxHistoryBytes ?? 8 * 1024 * 1024);
71
+ const maxReceiptBytes = z
72
+ .number()
73
+ .int()
74
+ .nonnegative()
75
+ .max(64 * 1024 * 1024)
76
+ .parse(options.maxReceiptBytes ?? 16 * 1024 * 1024);
77
+ const resolutionBytes = z
78
+ .number()
79
+ .int()
80
+ .positive()
81
+ .max(1024 * 1024)
82
+ .parse(resolver.maxReadBytes);
83
+ const admissions = new Map();
84
+ const settlements = new Map();
85
+ const unavailable = new Set();
86
+ const archived = new Map();
87
+ let cursor = from;
88
+ let through = from - 1;
89
+ let historyBytes = 0;
90
+ while (cursor !== null && through - from + 1 < maxRevisions && historyBytes < maxHistoryBytes) {
91
+ signal?.throwIfAborted();
92
+ const page = await source.read({
93
+ cursor,
94
+ maxRevisions: Math.min(32, maxRevisions - (through - from + 1)),
95
+ maxReadBytes: maxHistoryBytes - historyBytes,
96
+ }, signal);
97
+ signal?.throwIfAborted();
98
+ if (page.scope.tenantId !== scope.tenantId ||
99
+ page.scope.agentKey !== scope.agentKey ||
100
+ page.scope.throughRevision !== scope.throughRevision ||
101
+ page.fromRevision !== cursor ||
102
+ !Number.isSafeInteger(page.throughRevision) ||
103
+ page.throughRevision < cursor - 1 ||
104
+ page.throughRevision > Math.min(scope.throughRevision, from + maxRevisions - 1) ||
105
+ !Number.isSafeInteger(page.scannedBytes) ||
106
+ page.scannedBytes < 0 ||
107
+ page.scannedBytes > maxHistoryBytes - historyBytes ||
108
+ page.nextCursor !==
109
+ (page.throughRevision === scope.throughRevision ? null : page.throughRevision + 1))
110
+ throw new Error('Invalid resident activity page.');
111
+ if (page.admissions.length > 32 ||
112
+ page.settlements.length > 32 ||
113
+ page.archivedPursuits.length > 1024)
114
+ throw new Error('Resident activity page exceeds event bounds.');
115
+ if (page.unavailableRevisions.length > 33)
116
+ throw new Error('Invalid unavailable revision list.');
117
+ for (const revision of page.unavailableRevisions) {
118
+ count.positive().parse(revision);
119
+ if (revision < Math.max(1, cursor - 1) || revision > page.throughRevision)
120
+ throw new Error('Unavailable revision is outside the page.');
121
+ unavailable.add(revision);
122
+ }
123
+ for (const raw of page.admissions) {
124
+ const admission = Object.freeze(admissionSchema.parse(raw));
125
+ if (admission.revision < cursor || admission.revision > page.throughRevision)
126
+ throw new Error('Resident admission is outside its history page.');
127
+ if (admissions.has(uuidKey(admission.claimId)))
128
+ throw new Error('Duplicate resident admission.');
129
+ admissions.set(uuidKey(admission.claimId), admission);
130
+ }
131
+ for (const raw of page.settlements) {
132
+ const settlement = Object.freeze(settlementSchema.parse(raw));
133
+ if (settlement.revision < cursor || settlement.revision > page.throughRevision)
134
+ throw new Error('Resident settlement is outside its history page.');
135
+ if (settlements.has(uuidKey(settlement.claimId)))
136
+ throw new Error('Duplicate resident settlement.');
137
+ settlements.set(uuidKey(settlement.claimId), settlement);
138
+ }
139
+ for (const id of page.archivedPursuits)
140
+ archived.set(uuidKey(z.string().uuid().parse(id)), id);
141
+ historyBytes += page.scannedBytes;
142
+ through = page.throughRevision;
143
+ if (page.nextCursor === cursor)
144
+ break;
145
+ cursor = page.nextCursor;
146
+ }
147
+ const attempts = [];
148
+ let receiptBytesReserved = 0;
149
+ for (const admission of admissions.values()) {
150
+ signal?.throwIfAborted();
151
+ const settlement = settlements.get(uuidKey(admission.claimId));
152
+ if (settlement &&
153
+ (uuidKey(settlement.pursuitId) !== uuidKey(admission.pursuitId) ||
154
+ settlement.revision <= admission.revision))
155
+ throw new Error('Resident settlement does not follow its admitted claim.');
156
+ let receipt = null;
157
+ let receiptStatus = 'deferred';
158
+ if (receiptBytesReserved + resolutionBytes <= maxReceiptBytes) {
159
+ receiptBytesReserved += resolutionBytes;
160
+ try {
161
+ const value = await resolver.resolve(admission, signal);
162
+ signal?.throwIfAborted();
163
+ receipt = value === null ? null : receiptSchema.parse(value);
164
+ receiptStatus = receipt ? 'available' : 'missing';
165
+ }
166
+ catch {
167
+ signal?.throwIfAborted();
168
+ receiptStatus = 'invalid';
169
+ }
170
+ }
171
+ attempts.push({
172
+ ...admission,
173
+ settlement: settlements.get(uuidKey(admission.claimId)) ?? null,
174
+ receipt,
175
+ receiptStatus,
176
+ });
177
+ }
178
+ // A copied root receipt must not authenticate two claims. Exclude BOTH records.
179
+ const runCounts = new Map();
180
+ for (const { receipt } of attempts)
181
+ if (receipt)
182
+ runCounts.set(uuidKey(receipt.runId), (runCounts.get(uuidKey(receipt.runId)) ?? 0) + 1);
183
+ const checked = attempts.map((attempt) => attempt.receipt && (runCounts.get(uuidKey(attempt.receipt.runId)) ?? 0) > 1
184
+ ? { ...attempt, receipt: null, receiptStatus: 'duplicate-run' }
185
+ : attempt);
186
+ const recorded = { ownTokens: 0, treeTokens: 0, ownCostUsd: 0, unpricedOwnTokens: 0 };
187
+ const unknown = { ownUsageAttempts: 0, treeUsageAttempts: 0, ownPriceAttempts: 0 };
188
+ const add = (a, b) => {
189
+ const result = a + b;
190
+ if (!Number.isSafeInteger(result))
191
+ throw new Error('Resident consumption exceeds the safe integer range.');
192
+ return result;
193
+ };
194
+ let priceCorrection = 0;
195
+ for (const { receipt } of checked) {
196
+ if (!receipt?.usageFinal || receipt.ownTokens === null)
197
+ unknown.ownUsageAttempts++;
198
+ if (!receipt?.usageFinal || receipt.treeTokens === null)
199
+ unknown.treeUsageAttempts++;
200
+ if (!receipt?.usageFinal ||
201
+ receipt.ownCostUsd === null ||
202
+ receipt.unpricedOwnTokens === null ||
203
+ receipt.unpricedOwnTokens > 0)
204
+ unknown.ownPriceAttempts++;
205
+ recorded.ownTokens = add(recorded.ownTokens, receipt?.ownTokens ?? 0);
206
+ recorded.treeTokens = add(recorded.treeTokens, receipt?.treeTokens ?? 0);
207
+ recorded.unpricedOwnTokens = add(recorded.unpricedOwnTokens, receipt?.unpricedOwnTokens ?? 0);
208
+ // Compensated addition limits drift; provider prices are still estimates, not a bill.
209
+ const y = (receipt?.ownCostUsd ?? 0) - priceCorrection;
210
+ const next = recorded.ownCostUsd + y;
211
+ priceCorrection = next - recorded.ownCostUsd - y;
212
+ if (!Number.isFinite(next))
213
+ throw new Error('Resident cost exceeds the supported range.');
214
+ recorded.ownCostUsd = next;
215
+ }
216
+ const historyComplete = from === 1 && cursor === null && unavailable.size === 0;
217
+ return {
218
+ scope,
219
+ fromRevision: from,
220
+ throughRevision: through,
221
+ nextCursor: cursor,
222
+ historyComplete,
223
+ unavailableRevisions: [...unavailable],
224
+ historyBytes,
225
+ receiptBytesReserved,
226
+ archivedPursuits: [...archived.values()],
227
+ attempts: checked,
228
+ recorded,
229
+ unknown,
230
+ usageComplete: historyComplete && unknown.ownUsageAttempts === 0 && unknown.treeUsageAttempts === 0,
231
+ };
232
+ }
233
+ //# sourceMappingURL=consumption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumption.js","sourceRoot":"","sources":["../../../src/manager/resident/consumption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ResidentDeliveryGate } from './outbox.js';
2
+ /** @experimental A daily allowed delivery window in an explicit named time zone. */
3
+ export interface ResidentDeliveryWindowConfig {
4
+ readonly timeZone: string;
5
+ /** Inclusive local minute of the day, from 0 through 1439. */
6
+ readonly startMinute: number;
7
+ /** Exclusive local minute of the day; less than startMinute means overnight. */
8
+ readonly endMinute: number;
9
+ }
10
+ /**
11
+ * @experimental Admit delivery within a daily local-time window, without model
12
+ * calls. The start is inclusive and the end exclusive; equal boundaries are
13
+ * rejected. Omit this gate when no time restriction is wanted.
14
+ *
15
+ * Future admission searches actual UTC minute boundaries, so nonexistent local
16
+ * times are skipped and repeated times can open the window twice. The search
17
+ * is bounded to 72 hours and the Date range; no opening returns nextCheckAt:null.
18
+ * Historic time zones with second-based offsets may defer up to one extra minute.
19
+ * This gate does not schedule a timer, authorize a destination or send a message.
20
+ */
21
+ export declare function createResidentDeliveryWindow(config: ResidentDeliveryWindowConfig): ResidentDeliveryGate;
22
+ //# sourceMappingURL=delivery-window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-window.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/delivery-window.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,oFAAoF;AACpF,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,4BAA4B,GAClC,oBAAoB,CAiEtB"}
@@ -0,0 +1,78 @@
1
+ const minuteMs = 60_000;
2
+ const searchMinutes = 72 * 60;
3
+ /**
4
+ * @experimental Admit delivery within a daily local-time window, without model
5
+ * calls. The start is inclusive and the end exclusive; equal boundaries are
6
+ * rejected. Omit this gate when no time restriction is wanted.
7
+ *
8
+ * Future admission searches actual UTC minute boundaries, so nonexistent local
9
+ * times are skipped and repeated times can open the window twice. The search
10
+ * is bounded to 72 hours and the Date range; no opening returns nextCheckAt:null.
11
+ * Historic time zones with second-based offsets may defer up to one extra minute.
12
+ * This gate does not schedule a timer, authorize a destination or send a message.
13
+ */
14
+ export function createResidentDeliveryWindow(config) {
15
+ if (!config ||
16
+ typeof config.timeZone !== 'string' ||
17
+ config.timeZone.length === 0 ||
18
+ config.timeZone !== config.timeZone.trim() ||
19
+ /^[+-]/.test(config.timeZone) ||
20
+ !Number.isInteger(config.startMinute) ||
21
+ config.startMinute < 0 ||
22
+ config.startMinute > 1439 ||
23
+ !Number.isInteger(config.endMinute) ||
24
+ config.endMinute < 0 ||
25
+ config.endMinute > 1439 ||
26
+ config.startMinute === config.endMinute) {
27
+ throw new TypeError('Delivery window requires a named time zone and distinct minutes 0–1439.');
28
+ }
29
+ let formatter;
30
+ try {
31
+ formatter = new Intl.DateTimeFormat('en-US', {
32
+ timeZone: config.timeZone,
33
+ hour: '2-digit',
34
+ minute: '2-digit',
35
+ hourCycle: 'h23',
36
+ });
37
+ }
38
+ catch {
39
+ throw new TypeError('Delivery window requires a valid named time zone.');
40
+ }
41
+ const { startMinute, endMinute } = config;
42
+ const timeZone = formatter.resolvedOptions().timeZone;
43
+ const allowed = (at) => {
44
+ const parts = formatter.formatToParts(at);
45
+ const hour = Number(parts.find((part) => part.type === 'hour')?.value);
46
+ const minute = Number(parts.find((part) => part.type === 'minute')?.value);
47
+ const localMinute = hour * 60 + minute;
48
+ return startMinute < endMinute
49
+ ? localMinute >= startMinute && localMinute < endMinute
50
+ : localMinute >= startMinute || localMinute < endMinute;
51
+ };
52
+ return (_message, now) => {
53
+ if (!Number.isFinite(now) || !Number.isFinite(new Date(now).getTime())) {
54
+ throw new TypeError('Delivery window requires a finite timestamp within the Date range.');
55
+ }
56
+ if (allowed(now))
57
+ return { allow: true };
58
+ const firstMinute = (Math.floor(now / minuteMs) + 1) * minuteMs;
59
+ for (let offset = 0; offset < searchMinutes; offset++) {
60
+ const candidate = firstMinute + offset * minuteMs;
61
+ if (!Number.isFinite(new Date(candidate).getTime()))
62
+ break;
63
+ if (allowed(candidate)) {
64
+ return {
65
+ allow: false,
66
+ nextCheckAt: candidate,
67
+ reason: `Outside the allowed daily delivery window in ${timeZone}.`,
68
+ };
69
+ }
70
+ }
71
+ return {
72
+ allow: false,
73
+ nextCheckAt: null,
74
+ reason: `No allowed delivery minute found within the next 72 hours and Date range in ${timeZone}.`,
75
+ };
76
+ };
77
+ }
78
+ //# sourceMappingURL=delivery-window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-window.js","sourceRoot":"","sources":["../../../src/manager/resident/delivery-window.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { RunEvidenceScope } from '../../store/evidence/types.js';
2
+ import type { PrepareStep } from '../../types/run/prepare-step.js';
3
+ import { type ResidentState } from './store.js';
4
+ import type { ResidentToolEvidenceSource } from './tool-evidence.js';
5
+ /** @experimental Automatic original-tool recall for exactly one admitted resident run. */
6
+ export interface ResidentEvidenceRecallOptions {
7
+ readonly source: ResidentToolEvidenceSource;
8
+ /** Already admitted state; summaries supply search words, never new observations. */
9
+ readonly state: ResidentState;
10
+ /** The current executor, distinct from historical Session/run addresses. */
11
+ readonly scope: RunEvidenceScope;
12
+ readonly maxChars?: number;
13
+ readonly maxPassages?: number;
14
+ readonly timeoutMs?: number;
15
+ /** Host tool names whose successful archival copies should not occupy result slots. */
16
+ readonly excludeSuccessfulTools?: readonly string[];
17
+ }
18
+ /**
19
+ * Reuses the shared bounded ranking/rendering engine while retaining the
20
+ * pursuit's settlement authority. No arbitrary Session discovery, saved fact
21
+ * cache, inference, workspace reread or action replay is performed here.
22
+ */
23
+ export declare function createResidentEvidenceRecallStep(options: ResidentEvidenceRecallOptions): PrepareStep;
24
+ //# sourceMappingURL=evidence-recall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-recall.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/evidence-recall.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAEpE,0FAA0F;AAC1F,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAA;IAC3C,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,uFAAuF;IACvF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACnD;AA6CD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,6BAA6B,GACpC,WAAW,CA2Rb"}