@namzu/sdk 38.2.1 → 39.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/CHANGELOG.md +700 -0
  2. package/dist/advisory/executor.d.ts +10 -1
  3. package/dist/advisory/executor.d.ts.map +1 -1
  4. package/dist/advisory/executor.js +5 -26
  5. package/dist/advisory/executor.js.map +1 -1
  6. package/dist/advisory/history.d.ts +9 -0
  7. package/dist/advisory/history.d.ts.map +1 -0
  8. package/dist/advisory/history.js +120 -0
  9. package/dist/advisory/history.js.map +1 -0
  10. package/dist/advisory/index.d.ts +1 -1
  11. package/dist/advisory/index.d.ts.map +1 -1
  12. package/dist/advisory/index.js.map +1 -1
  13. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  14. package/dist/agents/ReactiveAgent.js +3 -0
  15. package/dist/agents/ReactiveAgent.js.map +1 -1
  16. package/dist/agents/runAgent.d.ts +10 -0
  17. package/dist/agents/runAgent.d.ts.map +1 -1
  18. package/dist/agents/runAgent.js +3 -0
  19. package/dist/agents/runAgent.js.map +1 -1
  20. package/dist/compaction/manual.d.ts +6 -0
  21. package/dist/compaction/manual.d.ts.map +1 -1
  22. package/dist/compaction/manual.js +21 -2
  23. package/dist/compaction/manual.js.map +1 -1
  24. package/dist/compaction/summary.d.ts.map +1 -1
  25. package/dist/compaction/summary.js +4 -1
  26. package/dist/compaction/summary.js.map +1 -1
  27. package/dist/config/runtime.js +2 -2
  28. package/dist/config/runtime.js.map +1 -1
  29. package/dist/contracts/schemas.js +1 -1
  30. package/dist/contracts/schemas.js.map +1 -1
  31. package/dist/eval/harness-protection.d.ts +18 -0
  32. package/dist/eval/harness-protection.d.ts.map +1 -0
  33. package/dist/eval/harness-protection.js +58 -0
  34. package/dist/eval/harness-protection.js.map +1 -0
  35. package/dist/eval/harness-verification.d.ts +6 -1
  36. package/dist/eval/harness-verification.d.ts.map +1 -1
  37. package/dist/eval/harness-verification.js +19 -2
  38. package/dist/eval/harness-verification.js.map +1 -1
  39. package/dist/eval/index.d.ts +1 -0
  40. package/dist/eval/index.d.ts.map +1 -1
  41. package/dist/eval/index.js.map +1 -1
  42. package/dist/manager/resident/activity.d.ts +50 -0
  43. package/dist/manager/resident/activity.d.ts.map +1 -0
  44. package/dist/manager/resident/activity.js +125 -0
  45. package/dist/manager/resident/activity.js.map +1 -0
  46. package/dist/manager/resident/agenda.d.ts +13 -1
  47. package/dist/manager/resident/agenda.d.ts.map +1 -1
  48. package/dist/manager/resident/agenda.js +40 -5
  49. package/dist/manager/resident/agenda.js.map +1 -1
  50. package/dist/manager/resident/consumption.d.ts +104 -0
  51. package/dist/manager/resident/consumption.d.ts.map +1 -0
  52. package/dist/manager/resident/consumption.js +233 -0
  53. package/dist/manager/resident/consumption.js.map +1 -0
  54. package/dist/manager/resident/evidence-recall.d.ts +24 -0
  55. package/dist/manager/resident/evidence-recall.d.ts.map +1 -0
  56. package/dist/manager/resident/evidence-recall.js +295 -0
  57. package/dist/manager/resident/evidence-recall.js.map +1 -0
  58. package/dist/manager/resident/history-disk.d.ts +10 -0
  59. package/dist/manager/resident/history-disk.d.ts.map +1 -0
  60. package/dist/manager/resident/history-disk.js +50 -0
  61. package/dist/manager/resident/history-disk.js.map +1 -0
  62. package/dist/manager/resident/history.d.ts +79 -0
  63. package/dist/manager/resident/history.d.ts.map +1 -0
  64. package/dist/manager/resident/history.js +203 -0
  65. package/dist/manager/resident/history.js.map +1 -0
  66. package/dist/manager/resident/initiative.d.ts.map +1 -1
  67. package/dist/manager/resident/initiative.js +11 -3
  68. package/dist/manager/resident/initiative.js.map +1 -1
  69. package/dist/manager/resident/learning-cycle.d.ts +131 -0
  70. package/dist/manager/resident/learning-cycle.d.ts.map +1 -0
  71. package/dist/manager/resident/learning-cycle.js +306 -0
  72. package/dist/manager/resident/learning-cycle.js.map +1 -0
  73. package/dist/manager/resident/learning-observation.d.ts +80 -0
  74. package/dist/manager/resident/learning-observation.d.ts.map +1 -0
  75. package/dist/manager/resident/learning-observation.js +22 -0
  76. package/dist/manager/resident/learning-observation.js.map +1 -0
  77. package/dist/manager/resident/learning-store.d.ts +106 -0
  78. package/dist/manager/resident/learning-store.d.ts.map +1 -0
  79. package/dist/manager/resident/learning-store.js +598 -0
  80. package/dist/manager/resident/learning-store.js.map +1 -0
  81. package/dist/manager/resident/learning.d.ts +246 -3
  82. package/dist/manager/resident/learning.d.ts.map +1 -1
  83. package/dist/manager/resident/learning.js +96 -6
  84. package/dist/manager/resident/learning.js.map +1 -1
  85. package/dist/manager/resident/outbox.d.ts +4 -4
  86. package/dist/manager/resident/store.d.ts +37 -4
  87. package/dist/manager/resident/store.d.ts.map +1 -1
  88. package/dist/manager/resident/store.js +27 -3
  89. package/dist/manager/resident/store.js.map +1 -1
  90. package/dist/manager/resident/tool-evidence.d.ts +71 -0
  91. package/dist/manager/resident/tool-evidence.d.ts.map +1 -0
  92. package/dist/manager/resident/tool-evidence.js +285 -0
  93. package/dist/manager/resident/tool-evidence.js.map +1 -0
  94. package/dist/manager/run/persistence.d.ts.map +1 -1
  95. package/dist/manager/run/persistence.js +6 -0
  96. package/dist/manager/run/persistence.js.map +1 -1
  97. package/dist/plugin/loader.d.ts.map +1 -1
  98. package/dist/plugin/loader.js +5 -3
  99. package/dist/plugin/loader.js.map +1 -1
  100. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  101. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  102. package/dist/prompt/coding-agent-doctrine.js +2 -0
  103. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  104. package/dist/prompt/index.d.ts +2 -0
  105. package/dist/prompt/index.d.ts.map +1 -1
  106. package/dist/prompt/index.js +1 -0
  107. package/dist/prompt/index.js.map +1 -1
  108. package/dist/prompt/resident-learning.d.ts +19 -0
  109. package/dist/prompt/resident-learning.d.ts.map +1 -0
  110. package/dist/prompt/resident-learning.js +125 -0
  111. package/dist/prompt/resident-learning.js.map +1 -0
  112. package/dist/prompt/resident-step.d.ts +8 -1
  113. package/dist/prompt/resident-step.d.ts.map +1 -1
  114. package/dist/prompt/resident-step.js +65 -4
  115. package/dist/prompt/resident-step.js.map +1 -1
  116. package/dist/provider/collect-chat-completion.d.ts +2 -1
  117. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  118. package/dist/provider/collect-chat-completion.js +7 -6
  119. package/dist/provider/collect-chat-completion.js.map +1 -1
  120. package/dist/provider/fallback.d.ts.map +1 -1
  121. package/dist/provider/fallback.js +2 -1
  122. package/dist/provider/fallback.js.map +1 -1
  123. package/dist/provider/stream-text.d.ts +16 -0
  124. package/dist/provider/stream-text.d.ts.map +1 -0
  125. package/dist/provider/stream-text.js +51 -0
  126. package/dist/provider/stream-text.js.map +1 -0
  127. package/dist/public-runtime.d.ts +13 -3
  128. package/dist/public-runtime.d.ts.map +1 -1
  129. package/dist/public-runtime.js +12 -3
  130. package/dist/public-runtime.js.map +1 -1
  131. package/dist/public-tools.d.ts +2 -0
  132. package/dist/public-tools.d.ts.map +1 -1
  133. package/dist/public-tools.js +2 -0
  134. package/dist/public-tools.js.map +1 -1
  135. package/dist/public-types.d.ts +15 -3
  136. package/dist/public-types.d.ts.map +1 -1
  137. package/dist/run/LimitChecker.js +3 -3
  138. package/dist/run/LimitChecker.js.map +1 -1
  139. package/dist/run/evidence-query.d.ts +41 -0
  140. package/dist/run/evidence-query.d.ts.map +1 -0
  141. package/dist/run/evidence-query.js +270 -0
  142. package/dist/run/evidence-query.js.map +1 -0
  143. package/dist/run/evidence-recall.d.ts +99 -0
  144. package/dist/run/evidence-recall.d.ts.map +1 -0
  145. package/dist/run/evidence-recall.js +633 -0
  146. package/dist/run/evidence-recall.js.map +1 -0
  147. package/dist/run/index.d.ts +2 -0
  148. package/dist/run/index.d.ts.map +1 -1
  149. package/dist/run/index.js +1 -0
  150. package/dist/run/index.js.map +1 -1
  151. package/dist/run/json-claim-verifier.d.ts +83 -0
  152. package/dist/run/json-claim-verifier.d.ts.map +1 -0
  153. package/dist/run/json-claim-verifier.js +200 -0
  154. package/dist/run/json-claim-verifier.js.map +1 -0
  155. package/dist/run/preparation-context-error.d.ts +10 -0
  156. package/dist/run/preparation-context-error.d.ts.map +1 -0
  157. package/dist/run/preparation-context-error.js +15 -0
  158. package/dist/run/preparation-context-error.js.map +1 -0
  159. package/dist/run-query/index.d.ts +3 -1
  160. package/dist/run-query/index.d.ts.map +1 -1
  161. package/dist/runtime/query/callback-inference.d.ts +8 -0
  162. package/dist/runtime/query/callback-inference.d.ts.map +1 -0
  163. package/dist/runtime/query/callback-inference.js +89 -0
  164. package/dist/runtime/query/callback-inference.js.map +1 -0
  165. package/dist/runtime/query/checkpoint.d.ts +4 -0
  166. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  167. package/dist/runtime/query/checkpoint.js +13 -0
  168. package/dist/runtime/query/checkpoint.js.map +1 -1
  169. package/dist/runtime/query/events.d.ts +1 -0
  170. package/dist/runtime/query/events.d.ts.map +1 -1
  171. package/dist/runtime/query/events.js +18 -0
  172. package/dist/runtime/query/events.js.map +1 -1
  173. package/dist/runtime/query/executor.d.ts +7 -1
  174. package/dist/runtime/query/executor.d.ts.map +1 -1
  175. package/dist/runtime/query/executor.js +38 -7
  176. package/dist/runtime/query/executor.js.map +1 -1
  177. package/dist/runtime/query/file-evidence-context.d.ts +5 -0
  178. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -0
  179. package/dist/runtime/query/file-evidence-context.js +64 -0
  180. package/dist/runtime/query/file-evidence-context.js.map +1 -0
  181. package/dist/runtime/query/guard.d.ts.map +1 -1
  182. package/dist/runtime/query/guard.js +4 -0
  183. package/dist/runtime/query/guard.js.map +1 -1
  184. package/dist/runtime/query/index.d.ts +10 -1
  185. package/dist/runtime/query/index.d.ts.map +1 -1
  186. package/dist/runtime/query/index.js +39 -24
  187. package/dist/runtime/query/index.js.map +1 -1
  188. package/dist/runtime/query/iteration/index.d.ts +9 -31
  189. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  190. package/dist/runtime/query/iteration/index.js +231 -93
  191. package/dist/runtime/query/iteration/index.js.map +1 -1
  192. package/dist/runtime/query/iteration/phases/advisory.d.ts +2 -1
  193. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  194. package/dist/runtime/query/iteration/phases/advisory.js +2 -1
  195. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  196. package/dist/runtime/query/iteration/phases/context.d.ts +2 -1
  197. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  198. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  199. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  200. package/dist/runtime/query/iteration/phases/tool-review.js +3 -0
  201. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  202. package/dist/runtime/query/iteration/provider-rejected-image.d.ts +2 -1
  203. package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
  204. package/dist/runtime/query/iteration/provider-rejected-image.js +5 -2
  205. package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
  206. package/dist/runtime/query/iteration/stream-turn.d.ts +4 -1
  207. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  208. package/dist/runtime/query/iteration/stream-turn.js +22 -8
  209. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  210. package/dist/runtime/query/resume-pending.d.ts +18 -33
  211. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  212. package/dist/runtime/query/resume-pending.js +59 -42
  213. package/dist/runtime/query/resume-pending.js.map +1 -1
  214. package/dist/runtime/query/review-policy.d.ts +4 -4
  215. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  216. package/dist/runtime/query/review-policy.js +10 -9
  217. package/dist/runtime/query/review-policy.js.map +1 -1
  218. package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
  219. package/dist/runtime/query/sandbox-lifecycle.js +4 -0
  220. package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
  221. package/dist/runtime/query/tool-output-budget.d.ts +10 -6
  222. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  223. package/dist/runtime/query/tool-output-budget.js +54 -12
  224. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  225. package/dist/runtime/query/tooling.d.ts +3 -1
  226. package/dist/runtime/query/tooling.d.ts.map +1 -1
  227. package/dist/runtime/query/tooling.js +4 -0
  228. package/dist/runtime/query/tooling.js.map +1 -1
  229. package/dist/scheduler/completion-inbox.d.ts +3 -0
  230. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  231. package/dist/scheduler/completion-inbox.js +28 -0
  232. package/dist/scheduler/completion-inbox.js.map +1 -1
  233. package/dist/store/evidence/compaction-archive.d.ts +109 -0
  234. package/dist/store/evidence/compaction-archive.d.ts.map +1 -0
  235. package/dist/store/evidence/compaction-archive.js +125 -0
  236. package/dist/store/evidence/compaction-archive.js.map +1 -0
  237. package/dist/store/evidence/compaction-provenance.d.ts +7 -0
  238. package/dist/store/evidence/compaction-provenance.d.ts.map +1 -0
  239. package/dist/store/evidence/compaction-provenance.js +49 -0
  240. package/dist/store/evidence/compaction-provenance.js.map +1 -0
  241. package/dist/store/evidence/compaction-text.d.ts +16 -0
  242. package/dist/store/evidence/compaction-text.d.ts.map +1 -0
  243. package/dist/store/evidence/compaction-text.js +51 -0
  244. package/dist/store/evidence/compaction-text.js.map +1 -0
  245. package/dist/store/evidence/disk.d.ts +11 -0
  246. package/dist/store/evidence/disk.d.ts.map +1 -0
  247. package/dist/store/evidence/disk.js +367 -0
  248. package/dist/store/evidence/disk.js.map +1 -0
  249. package/dist/store/evidence/format.d.ts +25 -0
  250. package/dist/store/evidence/format.d.ts.map +1 -0
  251. package/dist/store/evidence/format.js +115 -0
  252. package/dist/store/evidence/format.js.map +1 -0
  253. package/dist/store/evidence/index-page.d.ts +208 -0
  254. package/dist/store/evidence/index-page.d.ts.map +1 -0
  255. package/dist/store/evidence/index-page.js +262 -0
  256. package/dist/store/evidence/index-page.js.map +1 -0
  257. package/dist/store/evidence/io.d.ts +24 -0
  258. package/dist/store/evidence/io.d.ts.map +1 -0
  259. package/dist/store/evidence/io.js +69 -0
  260. package/dist/store/evidence/io.js.map +1 -0
  261. package/dist/store/evidence/linked.d.ts +9 -0
  262. package/dist/store/evidence/linked.d.ts.map +1 -0
  263. package/dist/store/evidence/linked.js +314 -0
  264. package/dist/store/evidence/linked.js.map +1 -0
  265. package/dist/store/evidence/passages.d.ts +15 -0
  266. package/dist/store/evidence/passages.d.ts.map +1 -0
  267. package/dist/store/evidence/passages.js +72 -0
  268. package/dist/store/evidence/passages.js.map +1 -0
  269. package/dist/store/evidence/record-chain.d.ts +42 -0
  270. package/dist/store/evidence/record-chain.d.ts.map +1 -0
  271. package/dist/store/evidence/record-chain.js +111 -0
  272. package/dist/store/evidence/record-chain.js.map +1 -0
  273. package/dist/store/evidence/search-input.d.ts +21 -0
  274. package/dist/store/evidence/search-input.d.ts.map +1 -0
  275. package/dist/store/evidence/search-input.js +44 -0
  276. package/dist/store/evidence/search-input.js.map +1 -0
  277. package/dist/store/evidence/selection.d.ts +9 -0
  278. package/dist/store/evidence/selection.d.ts.map +1 -0
  279. package/dist/store/evidence/selection.js +17 -0
  280. package/dist/store/evidence/selection.js.map +1 -0
  281. package/dist/store/evidence/source-kind.d.ts +11 -0
  282. package/dist/store/evidence/source-kind.d.ts.map +1 -0
  283. package/dist/store/evidence/source-kind.js +26 -0
  284. package/dist/store/evidence/source-kind.js.map +1 -0
  285. package/dist/store/evidence/source-text.d.ts +51 -0
  286. package/dist/store/evidence/source-text.d.ts.map +1 -0
  287. package/dist/store/evidence/source-text.js +213 -0
  288. package/dist/store/evidence/source-text.js.map +1 -0
  289. package/dist/store/evidence/types.d.ts +162 -0
  290. package/dist/store/evidence/types.d.ts.map +1 -0
  291. package/dist/store/evidence/types.js +2 -0
  292. package/dist/store/evidence/types.js.map +1 -0
  293. package/dist/store/memory/disk.d.ts +2 -0
  294. package/dist/store/memory/disk.d.ts.map +1 -1
  295. package/dist/store/memory/disk.js +2 -1
  296. package/dist/store/memory/disk.js.map +1 -1
  297. package/dist/store/run/disk.d.ts +10 -0
  298. package/dist/store/run/disk.d.ts.map +1 -1
  299. package/dist/store/run/disk.js +87 -7
  300. package/dist/store/run/disk.js.map +1 -1
  301. package/dist/store/run/memory.d.ts +1 -0
  302. package/dist/store/run/memory.d.ts.map +1 -1
  303. package/dist/store/run/memory.js +10 -0
  304. package/dist/store/run/memory.js.map +1 -1
  305. package/dist/store/run/tool-executions.d.ts +13 -0
  306. package/dist/store/run/tool-executions.d.ts.map +1 -0
  307. package/dist/store/run/tool-executions.js +99 -0
  308. package/dist/store/run/tool-executions.js.map +1 -0
  309. package/dist/store/session/index.d.ts +2 -0
  310. package/dist/store/session/index.d.ts.map +1 -1
  311. package/dist/store/session/index.js +1 -0
  312. package/dist/store/session/index.js.map +1 -1
  313. package/dist/store/session/sqlite.d.ts +57 -0
  314. package/dist/store/session/sqlite.d.ts.map +1 -0
  315. package/dist/store/session/sqlite.js +430 -0
  316. package/dist/store/session/sqlite.js.map +1 -0
  317. package/dist/tools/builtins/job.d.ts.map +1 -1
  318. package/dist/tools/builtins/job.js +4 -5
  319. package/dist/tools/builtins/job.js.map +1 -1
  320. package/dist/tools/builtins/write-file.js +2 -2
  321. package/dist/tools/builtins/write-file.js.map +1 -1
  322. package/dist/tools/defineTool.d.ts +2 -1
  323. package/dist/tools/defineTool.d.ts.map +1 -1
  324. package/dist/tools/defineTool.js +1 -1
  325. package/dist/tools/defineTool.js.map +1 -1
  326. package/dist/tools/file-read-tracker.d.ts.map +1 -1
  327. package/dist/tools/file-read-tracker.js +12 -3
  328. package/dist/tools/file-read-tracker.js.map +1 -1
  329. package/dist/tools/resident-history.d.ts +10 -0
  330. package/dist/tools/resident-history.d.ts.map +1 -0
  331. package/dist/tools/resident-history.js +80 -0
  332. package/dist/tools/resident-history.js.map +1 -0
  333. package/dist/tools/resident-tool-evidence.d.ts +5 -0
  334. package/dist/tools/resident-tool-evidence.d.ts.map +1 -0
  335. package/dist/tools/resident-tool-evidence.js +57 -0
  336. package/dist/tools/resident-tool-evidence.js.map +1 -0
  337. package/dist/types/advisory/config.d.ts +7 -0
  338. package/dist/types/advisory/config.d.ts.map +1 -1
  339. package/dist/types/agent/reactive.d.ts +1 -0
  340. package/dist/types/agent/reactive.d.ts.map +1 -1
  341. package/dist/types/authorization/index.d.ts +9 -9
  342. package/dist/types/authorization/index.d.ts.map +1 -1
  343. package/dist/types/authorization/index.js +1 -1
  344. package/dist/types/authorization/index.js.map +1 -1
  345. package/dist/types/hitl/index.d.ts +4 -0
  346. package/dist/types/hitl/index.d.ts.map +1 -1
  347. package/dist/types/hitl/index.js.map +1 -1
  348. package/dist/types/message/index.d.ts +16 -2
  349. package/dist/types/message/index.d.ts.map +1 -1
  350. package/dist/types/message/index.js +8 -1
  351. package/dist/types/message/index.js.map +1 -1
  352. package/dist/types/provider/chat.d.ts +2 -0
  353. package/dist/types/provider/chat.d.ts.map +1 -1
  354. package/dist/types/provider/stream.d.ts +4 -0
  355. package/dist/types/provider/stream.d.ts.map +1 -1
  356. package/dist/types/run/answer-review.d.ts +34 -3
  357. package/dist/types/run/answer-review.d.ts.map +1 -1
  358. package/dist/types/run/config.d.ts +3 -0
  359. package/dist/types/run/config.d.ts.map +1 -1
  360. package/dist/types/run/entity.d.ts +7 -0
  361. package/dist/types/run/entity.d.ts.map +1 -1
  362. package/dist/types/run/events.d.ts +31 -8
  363. package/dist/types/run/events.d.ts.map +1 -1
  364. package/dist/types/run/events.js.map +1 -1
  365. package/dist/types/run/prepare-step.d.ts +53 -8
  366. package/dist/types/run/prepare-step.d.ts.map +1 -1
  367. package/dist/types/run/store.d.ts +29 -4
  368. package/dist/types/run/store.d.ts.map +1 -1
  369. package/dist/types/run/store.js +0 -28
  370. package/dist/types/run/store.js.map +1 -1
  371. package/dist/types/tool/index.d.ts +15 -1
  372. package/dist/types/tool/index.d.ts.map +1 -1
  373. package/dist/types/tool/index.js.map +1 -1
  374. package/dist/utils/await-with-abort.d.ts +8 -0
  375. package/dist/utils/await-with-abort.d.ts.map +1 -0
  376. package/dist/utils/await-with-abort.js +28 -0
  377. package/dist/utils/await-with-abort.js.map +1 -0
  378. package/dist/utils/evidence-time.d.ts +3 -0
  379. package/dist/utils/evidence-time.d.ts.map +1 -0
  380. package/dist/utils/evidence-time.js +10 -0
  381. package/dist/utils/evidence-time.js.map +1 -0
  382. package/dist/utils/evidence-tokens.d.ts +13 -0
  383. package/dist/utils/evidence-tokens.d.ts.map +1 -0
  384. package/dist/utils/evidence-tokens.js +29 -0
  385. package/dist/utils/evidence-tokens.js.map +1 -0
  386. package/package.json +1 -1
  387. package/src/advisory/executor.ts +15 -30
  388. package/src/advisory/history.ts +126 -0
  389. package/src/advisory/index.ts +5 -1
  390. package/src/agents/ReactiveAgent.ts +3 -0
  391. package/src/agents/runAgent.ts +14 -1
  392. package/src/compaction/manual.ts +30 -2
  393. package/src/compaction/summary.ts +4 -1
  394. package/src/config/runtime.ts +2 -2
  395. package/src/contracts/schemas.ts +1 -1
  396. package/src/eval/harness-protection.ts +79 -0
  397. package/src/eval/harness-verification.ts +31 -1
  398. package/src/eval/index.ts +1 -0
  399. package/src/manager/resident/activity.ts +187 -0
  400. package/src/manager/resident/agenda.ts +59 -5
  401. package/src/manager/resident/consumption.ts +311 -0
  402. package/src/manager/resident/evidence-recall.ts +363 -0
  403. package/src/manager/resident/history-disk.ts +63 -0
  404. package/src/manager/resident/history.ts +312 -0
  405. package/src/manager/resident/initiative.ts +13 -3
  406. package/src/manager/resident/learning-cycle.ts +499 -0
  407. package/src/manager/resident/learning-observation.ts +39 -0
  408. package/src/manager/resident/learning-store.ts +813 -0
  409. package/src/manager/resident/learning.ts +132 -8
  410. package/src/manager/resident/store.ts +31 -3
  411. package/src/manager/resident/tool-evidence.ts +412 -0
  412. package/src/manager/run/persistence.ts +6 -0
  413. package/src/plugin/loader.ts +8 -3
  414. package/src/prompt/coding-agent-doctrine.ts +2 -0
  415. package/src/prompt/index.ts +2 -0
  416. package/src/prompt/resident-learning.ts +143 -0
  417. package/src/prompt/resident-step.ts +83 -3
  418. package/src/provider/collect-chat-completion.ts +7 -6
  419. package/src/provider/fallback.ts +2 -1
  420. package/src/provider/stream-text.ts +56 -0
  421. package/src/public-runtime.ts +30 -0
  422. package/src/public-tools.ts +3 -0
  423. package/src/public-types.ts +98 -0
  424. package/src/run/LimitChecker.ts +3 -3
  425. package/src/run/evidence-query.ts +333 -0
  426. package/src/run/evidence-recall.ts +854 -0
  427. package/src/run/index.ts +11 -0
  428. package/src/run/json-claim-verifier.ts +298 -0
  429. package/src/run/preparation-context-error.ts +16 -0
  430. package/src/run-query/index.ts +1 -1
  431. package/src/runtime/query/callback-inference.ts +94 -0
  432. package/src/runtime/query/checkpoint.ts +14 -0
  433. package/src/runtime/query/events.ts +22 -0
  434. package/src/runtime/query/executor.ts +51 -9
  435. package/src/runtime/query/file-evidence-context.ts +65 -0
  436. package/src/runtime/query/guard.ts +2 -0
  437. package/src/runtime/query/index.ts +49 -25
  438. package/src/runtime/query/iteration/index.ts +269 -86
  439. package/src/runtime/query/iteration/phases/advisory.ts +3 -0
  440. package/src/runtime/query/iteration/phases/context.ts +2 -0
  441. package/src/runtime/query/iteration/phases/tool-review.ts +3 -0
  442. package/src/runtime/query/iteration/provider-rejected-image.ts +6 -1
  443. package/src/runtime/query/iteration/stream-turn.ts +35 -8
  444. package/src/runtime/query/resume-pending.ts +65 -40
  445. package/src/runtime/query/review-policy.ts +13 -9
  446. package/src/runtime/query/sandbox-lifecycle.ts +3 -0
  447. package/src/runtime/query/tool-output-budget.ts +65 -13
  448. package/src/runtime/query/tooling.ts +7 -1
  449. package/src/scheduler/completion-inbox.ts +26 -0
  450. package/src/store/evidence/compaction-archive.ts +139 -0
  451. package/src/store/evidence/compaction-provenance.ts +52 -0
  452. package/src/store/evidence/compaction-text.ts +61 -0
  453. package/src/store/evidence/disk.ts +461 -0
  454. package/src/store/evidence/format.ts +126 -0
  455. package/src/store/evidence/index-page.ts +292 -0
  456. package/src/store/evidence/io.ts +95 -0
  457. package/src/store/evidence/linked.ts +365 -0
  458. package/src/store/evidence/passages.ts +88 -0
  459. package/src/store/evidence/record-chain.ts +108 -0
  460. package/src/store/evidence/search-input.ts +62 -0
  461. package/src/store/evidence/selection.ts +25 -0
  462. package/src/store/evidence/source-kind.ts +36 -0
  463. package/src/store/evidence/source-text.ts +285 -0
  464. package/src/store/evidence/types.ts +177 -0
  465. package/src/store/memory/disk.ts +4 -1
  466. package/src/store/run/disk.ts +110 -8
  467. package/src/store/run/memory.ts +10 -0
  468. package/src/store/run/tool-executions.ts +112 -0
  469. package/src/store/session/index.ts +2 -0
  470. package/src/store/session/sqlite.ts +584 -0
  471. package/src/tools/builtins/job.ts +4 -5
  472. package/src/tools/builtins/write-file.ts +2 -2
  473. package/src/tools/defineTool.ts +4 -2
  474. package/src/tools/file-read-tracker.ts +8 -2
  475. package/src/tools/resident-history.ts +86 -0
  476. package/src/tools/resident-tool-evidence.ts +68 -0
  477. package/src/types/advisory/config.ts +7 -0
  478. package/src/types/agent/reactive.ts +1 -0
  479. package/src/types/authorization/index.ts +2 -2
  480. package/src/types/hitl/index.ts +4 -0
  481. package/src/types/message/index.ts +20 -0
  482. package/src/types/provider/chat.ts +2 -0
  483. package/src/types/provider/stream.ts +4 -0
  484. package/src/types/run/answer-review.ts +34 -3
  485. package/src/types/run/config.ts +3 -0
  486. package/src/types/run/entity.ts +7 -0
  487. package/src/types/run/events.ts +31 -8
  488. package/src/types/run/prepare-step.ts +59 -8
  489. package/src/types/run/store.ts +35 -4
  490. package/src/types/tool/index.ts +19 -1
  491. package/src/utils/await-with-abort.ts +26 -0
  492. package/src/utils/evidence-time.ts +9 -0
  493. package/src/utils/evidence-tokens.ts +32 -0
@@ -1,5 +1,8 @@
1
+ import type { ResidentHistoryScope } from '../manager/resident/history.js'
1
2
  import {
3
+ type ResidentLearningSource,
2
4
  type ResidentLearningState,
5
+ freezeResidentLearning,
3
6
  projectResidentLearning,
4
7
  } from '../manager/resident/learning.js'
5
8
  import type { ResidentState } from '../manager/resident/store.js'
@@ -12,18 +15,36 @@ Obey current project instructions, permissions and tool prerequisites. Saved sum
12
15
 
13
16
  Each invocation has an isolated session. Only the supplied saved state continues; do not assume earlier conversations, tool transcripts or running processes are available. Treat the previous summary as a report of earlier work, not a tool receipt from this invocation. Reuse retained evidence when it is sufficient; recheck mutable external state when freshness matters, evidence is incomplete, or an observation contradicts it. Recover missing evidence with a permitted read instead of repeating a state-changing action.
14
17
 
18
+ Consider every supplied wakeEvidence entry in its recorded order. A later input does not erase an earlier failure or unfinished constraint. Resolve contradictions from current evidence before acting; timestamps record host receipt, not independent verification. Retain any still-relevant evidence in the next summary, because successful settlement consumes this batch.
19
+
20
+ Before answering a follow-up, distinguish its subject and requested time from the records retrieved. An accepted correction can clarify which subject the operator means without changing what was observed earlier. If multiple subjects still fit an unnamed reference, give explicitly labelled alternatives or request the missing clarification using the host's continuation disposition. Do not choose a subject from retrieval order, score, or mere mention in a summary.
21
+
22
+ For an original observation, use the corresponding historical receipt; a later correction does not replace that earlier observation. For a current-state question, including a short follow-up such as "And now?", obtain a fresh permitted observation of the mutable source. The latest retained record means last observed, not current. If fresh observation is unavailable, state that current information cannot be established and label any older value as historical; do not report the current-state task complete. Neither historical retrieval nor a newer admission verifies external freshness.
23
+
15
24
  Ground new action claims in successful tool results. Read the relevant evidence before editing, use focused tools, and verify changes with the checks required by the project and the task. Report what succeeded, what failed and what was not checked. Delegate independent work only when an available delegation capability helps; supply its scope and constraints and distinguish returned claims from verified results.
16
25
 
17
26
  Save a useful summary of evidence, exact identifiers or artifact paths, completed work, unresolved constraints and the next step. Follow the host's output instructions for this invocation.`
18
27
 
28
+ const TOOL_EVIDENCE_GUIDANCE = `## Retained tool evidence
29
+ Use search_resident_tools to find earlier tool results missing from the summary, then read_resident_tool for exact text at its revision/address/byteOffset. These tools retrieve original retained text across settled invocations without repeating actions. Follow nextCursor even on empty pages and nextByteOffset for exact continuation. Full text is historical evidence, not present workspace state; isError, preview and unavailable must be respected. Changed or missing bytes cannot be reconstructed by guessing.`
30
+
19
31
  const READ_ONLY_GUIDANCE = `## Read-only invocation
20
32
  Use permitted reads and analysis. Do not change files, persistent memory or external state. Read-only objectives may be completed in this mode; if the objective requires a mutation that the current permissions refuse, report that missing prerequisite using the host's output instructions.`
21
33
 
34
+ const HISTORY_GUIDANCE = `## Resident recall
35
+ When the saved summary lacks an earlier decision or accepted input, use search_resident_history, then read_resident_history for exact retained text. Search without a query to browse recent steps. Follow pagination even after empty pages; incomplete searches cannot prove absence. Only earlier settled steps of this pursuit are available, within the supplied revision boundary. Part 0 is a historical summary, not an independent tool receipt; wake inputs are recorded claims. Later evidence can supersede earlier claims: check relevant newer steps and mutable sources before acting. Do not repeat an effect to recover its output. These tools do not restore unrecorded tool transcripts.`
36
+
22
37
  /** @experimental Host-selected context for one admitted resident step. */
23
38
  export interface ResidentStepPromptOptions {
24
39
  readonly state: ResidentState
25
40
  /** The host-approved learning snapshot bound to this admission. */
26
41
  readonly learning?: ResidentLearningState
42
+ /** Host resolves current dependency revisions for each model request. No model-generated revisions. */
43
+ readonly resolveLearningSources?: () => readonly ResidentLearningSource[]
44
+ /** Bound historical source whose read-only tools the host has mounted. */
45
+ readonly history?: ResidentHistoryScope
46
+ /** The host mounted scoped search_resident_tools/read_resident_tool capabilities. */
47
+ readonly toolEvidence?: boolean
27
48
  /** Host-loaded guidance for this invocation; this factory performs no I/O. */
28
49
  readonly skillsContext?: string
29
50
  /** Describe an existing read-only boundary; this does not enforce permissions. */
@@ -48,15 +69,32 @@ export function createResidentStepContributions(
48
69
  options: ResidentStepPromptOptions,
49
70
  ): readonly PromptContribution[] {
50
71
  const { state } = options
51
- const learning = projectResidentLearning(options.learning, {
72
+ if (
73
+ options.history &&
74
+ (options.history.tenantId !== state.tenantId ||
75
+ options.history.agentKey !== state.agentKey ||
76
+ options.history.pursuitId !== state.pursuitId)
77
+ )
78
+ throw new Error('Resident history context belongs to a different pursuit.')
79
+ const admittedLearning = options.learning ? freezeResidentLearning(options.learning) : undefined
80
+ const boundNames =
81
+ admittedLearning?.skills.filter((skill) => skill.sources?.length).map((skill) => skill.name) ??
82
+ []
83
+ const learning = projectResidentLearning(admittedLearning, {
52
84
  maxChars: 12_000,
53
- skillNames: options.learning?.skills.map((skill) => skill.name) ?? [],
85
+ skillNames:
86
+ admittedLearning?.skills
87
+ .filter((skill) => !skill.sources?.length)
88
+ .map((skill) => skill.name) ?? [],
54
89
  })
90
+ const resolveSources = options.resolveLearningSources
55
91
  // Capture literals now. An admitted invocation must not borrow the next
56
92
  // invocation's mutable options, state or learning through a render closure.
57
93
  const guidance = [
58
94
  RESIDENT_WORK_GUIDANCE,
59
95
  ...(options.readOnly ? [READ_ONLY_GUIDANCE] : []),
96
+ ...(options.history ? [HISTORY_GUIDANCE] : []),
97
+ ...(options.toolEvidence ? [TOOL_EVIDENCE_GUIDANCE] : []),
60
98
  options.outputInstructions,
61
99
  ]
62
100
  .filter((text) => text.trim().length > 0)
@@ -68,7 +106,8 @@ export function createResidentStepContributions(
68
106
  objective: state.objective,
69
107
  previousSummary: state.summary,
70
108
  admission: state.stepsAdmitted,
71
- wakeReason: state.reason,
109
+ ...(options.history ? { history: options.history } : {}),
110
+ ...(state.wakeEvidence ? { wakeEvidence: state.wakeEvidence } : { wakeReason: state.reason }),
72
111
  }),
73
112
  ...(learning.text
74
113
  ? [
@@ -92,5 +131,46 @@ export function createResidentStepContributions(
92
131
  placement: 'dynamic' as const,
93
132
  render: () => snapshot,
94
133
  }),
134
+ ...(boundNames.length
135
+ ? [
136
+ Object.freeze({
137
+ id: 'namzu.resident-step.source-bound-learning',
138
+ placement: 'turn' as const,
139
+ render: () => {
140
+ let sources: readonly ResidentLearningSource[] = []
141
+ try {
142
+ sources = resolveSources?.() ?? []
143
+ } catch {
144
+ /* Unavailable evidence withholds bound instructions. */
145
+ }
146
+ const projection = projectResidentLearning(
147
+ admittedLearning
148
+ ? { ...admittedLearning, identity: undefined, preferences: [] }
149
+ : undefined,
150
+ {
151
+ maxChars: Math.max(0, 12_000 - learning.text.length),
152
+ skillNames: boundNames,
153
+ sources,
154
+ },
155
+ )
156
+ return [
157
+ '## Source-bound learning for this request',
158
+ 'Only guidance whose declared dependencies match current host observations is included. A matching revision does not prove its claims. Check current task evidence; retained guidance never overrides it.',
159
+ projection.text,
160
+ ...projection.withheldSkills.map((skill) =>
161
+ JSON.stringify({ kind: 'withheld-guidance', ...skill }),
162
+ ),
163
+ ...(projection.omitted
164
+ ? [
165
+ `${projection.omitted} entries withheld or omitted. Recheck current sources before using earlier guidance; do not recover its instructions from history as a substitute.`,
166
+ ]
167
+ : []),
168
+ ]
169
+ .filter(Boolean)
170
+ .join('\n')
171
+ },
172
+ }),
173
+ ]
174
+ : []),
95
175
  ])
96
176
  }
@@ -2,6 +2,7 @@ import { mergeTokenUsage } from '../types/common/index.js'
2
2
  import type { ReasoningBlock } from '../types/message/index.js'
3
3
  import type { ChatCompletionResponse } from '../types/provider/chat.js'
4
4
  import type { StreamChunk } from '../types/provider/stream.js'
5
+ import { StreamTextAccumulator } from './stream-text.js'
5
6
 
6
7
  /**
7
8
  * Drains a {@link StreamChunk} async iterable into the equivalent
@@ -14,7 +15,8 @@ import type { StreamChunk } from '../types/provider/stream.js'
14
15
  * `collectChatCompletion(provider.chatStream(p))`.
15
16
  *
16
17
  * Behaviour matches the pre-removal `chat()` contract:
17
- * - text content is concatenated in delta order;
18
+ * - ordinary text is concatenated in delta order; identified public text
19
+ * items are preserved and explicit final-answer items select the settled text;
18
20
  * - tool calls are bucketed by `index` into the existing
19
21
  * `Array<{ id, function: { name, arguments } }>` shape;
20
22
  * - reasoning blocks are bucketed by `index` the same way, because the
@@ -36,7 +38,7 @@ export async function collectChatCompletion(
36
38
  ): Promise<ChatCompletionResponse> {
37
39
  let id = ''
38
40
  const model = ''
39
- let content = ''
41
+ const text = new StreamTextAccumulator()
40
42
  let replayState: unknown
41
43
  let finishReason: ChatCompletionResponse['finishReason'] = 'stop'
42
44
  let usage: ChatCompletionResponse['usage'] = {
@@ -63,9 +65,7 @@ export async function collectChatCompletion(
63
65
  if (!id && chunk.id) id = chunk.id
64
66
  if (chunk.replayState !== undefined) replayState = chunk.replayState
65
67
 
66
- if (chunk.delta.content) {
67
- content += chunk.delta.content
68
- }
68
+ text.push(chunk)
69
69
 
70
70
  const reasoning = chunk.delta.reasoning
71
71
  if (reasoning) {
@@ -115,7 +115,8 @@ export async function collectChatCompletion(
115
115
  model,
116
116
  message: {
117
117
  role: 'assistant',
118
- content: content.length > 0 ? content : null,
118
+ content: text.text || null,
119
+ ...(text.textParts ? { textParts: text.textParts } : {}),
119
120
  toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
120
121
  ...(reasoningBlocks.length > 0 ? { reasoning: reasoningBlocks } : {}),
121
122
  ...(replayState !== undefined ? { replayState } : {}),
@@ -220,7 +220,8 @@ function isOutputChunk(chunk: StreamChunk): boolean {
220
220
  toolCallEnd ||
221
221
  reasoning !== undefined ||
222
222
  citation !== undefined ||
223
- hostedTool !== undefined,
223
+ hostedTool !== undefined ||
224
+ chunk.textParts !== undefined,
224
225
  )
225
226
  }
226
227
 
@@ -0,0 +1,56 @@
1
+ import { type AssistantTextPart, selectAssistantText } from '../types/message/index.js'
2
+ import type { StreamChunk } from '../types/provider/stream.js'
3
+
4
+ /** Shared aggregation for the run loop, collected calls and bounded auxiliary inference. */
5
+ export class StreamTextAccumulator {
6
+ private raw = ''
7
+ private receivedCharacters = 0
8
+ private parts: AssistantTextPart[] = []
9
+ private identified = false
10
+ private snapshot = false
11
+
12
+ push(chunk: StreamChunk): void {
13
+ if (chunk.textParts !== undefined) {
14
+ this.parts = chunk.textParts.map((part) => ({ ...part }))
15
+ this.identified = true
16
+ this.snapshot = true
17
+ this.raw = ''
18
+ }
19
+ const text = chunk.delta.content
20
+ if (!text) return
21
+ if (this.snapshot) throw new Error('Content arrived after the completed text snapshot.')
22
+ this.receivedCharacters += text.length
23
+ const part = chunk.delta.textPart
24
+ if (!this.identified && !part) {
25
+ this.raw += text
26
+ return
27
+ }
28
+ if (!this.identified) {
29
+ if (this.raw) this.parts.push({ id: '', text: this.raw })
30
+ this.raw = ''
31
+ this.identified = true
32
+ }
33
+ const previous = this.parts.at(-1)
34
+ if (previous && previous.id === (part?.id ?? '') && previous.phase === part?.phase)
35
+ this.parts[this.parts.length - 1] = { ...previous, text: previous.text + text }
36
+ else
37
+ this.parts.push({ id: part?.id ?? '', ...(part?.phase ? { phase: part.phase } : {}), text })
38
+ }
39
+
40
+ get text(): string {
41
+ return this.identified ? selectAssistantText(this.parts) : this.raw
42
+ }
43
+
44
+ /** Include commentary in auxiliary output limits even when only the final answer is selected. */
45
+ get characters(): number {
46
+ return Math.max(
47
+ this.receivedCharacters,
48
+ this.parts.reduce((sum, part) => sum + part.text.length, 0) +
49
+ Math.max(0, this.parts.length - 1) * 2,
50
+ )
51
+ }
52
+
53
+ get textParts(): readonly AssistantTextPart[] | undefined {
54
+ return this.identified ? this.parts.map((part) => ({ ...part })) : undefined
55
+ }
56
+ }
@@ -363,6 +363,7 @@ export {
363
363
  FINGERPRINT_TIMEOUT_MS,
364
364
  clipOutput,
365
365
  createCommandGate,
366
+ createJsonClaimVerifier,
366
367
  fingerprintWorkspace,
367
368
  } from './run/index.js'
368
369
  export type {
@@ -382,6 +383,14 @@ export { RUN_MEMORY_TAG, createMemoryPromoter } from './run/index.js'
382
383
  export type { MemoryPromoterOptions } from './run/index.js'
383
384
  export { createMemoryRecallStep } from './run/memory-recall.js'
384
385
  export type { MemoryRecallOptions } from './run/memory-recall.js'
386
+ export { createEvidenceRecallStep, refineEvidenceRecallTerms } from './run/evidence-recall.js'
387
+ export type {
388
+ EvidenceRecallOptions,
389
+ EvidenceRecallRequest,
390
+ EvidenceRecallBatch,
391
+ EvidenceRecallCandidate,
392
+ EvidenceRecallContinuation,
393
+ } from './run/evidence-recall.js'
385
394
 
386
395
  // ─── personas, skills, advisory ──────────────────────────────────────────
387
396
 
@@ -1002,6 +1011,7 @@ export { deriveChildState } from './types/invocation/index.js'
1002
1011
  export { assertMemoryStatus } from './types/memory/index.js'
1003
1012
  export {
1004
1013
  createAssistantMessage,
1014
+ selectAssistantText,
1005
1015
  createProjectInstructionMessage,
1006
1016
  createRuntimeContextMessage,
1007
1017
  createSystemMessage,
@@ -1218,6 +1228,7 @@ export {
1218
1228
  SKILLS_CONTRIBUTION_ID,
1219
1229
  codingAgentDoctrineContribution,
1220
1230
  createResidentStepContributions,
1231
+ createResidentStepContext,
1221
1232
  skillsContribution,
1222
1233
  } from './prompt/index.js'
1223
1234
 
@@ -1346,6 +1357,7 @@ export { snapshotRequestContext, diffRequestContext } from './runtime/query/requ
1346
1357
  export { DiskResidentStore, ResidentConflictError } from './manager/resident/store.js'
1347
1358
  export { runResident, stepResident } from './manager/resident/loop.js'
1348
1359
  export { DiskResidentAgenda } from './manager/resident/agenda.js'
1360
+ export { inspectResidentConsumption } from './manager/resident/consumption.js'
1349
1361
  export { ResidentHost } from './manager/resident/host.js'
1350
1362
 
1351
1363
  export { createResidentSelector } from './manager/resident/initiative.js'
@@ -1355,3 +1367,21 @@ export { deliverResidentMessage } from './manager/resident/outbox.js'
1355
1367
  export { createResidentDeliveryWindow } from './manager/resident/delivery-window.js'
1356
1368
 
1357
1369
  export { hashResidentSkill, projectResidentLearning } from './manager/resident/learning.js'
1370
+ export { runResidentLearningCycle } from './manager/resident/learning-cycle.js'
1371
+
1372
+ export { SqliteSessionStore } from './store/session/sqlite.js'
1373
+
1374
+ export {
1375
+ createDiskRunEvidenceSource,
1376
+ createDiskRunTextEvidenceSource,
1377
+ } from './store/evidence/disk.js'
1378
+ export { classifyEvidenceSource, EVIDENCE_RECORD_GUIDANCE } from './store/evidence/source-kind.js'
1379
+ export { createResidentToolEvidenceSource } from './manager/resident/tool-evidence.js'
1380
+
1381
+ export { createResidentEvidenceRecallStep } from './manager/resident/evidence-recall.js'
1382
+
1383
+ export {
1384
+ SqliteResidentLearningStore,
1385
+ runStoredResidentLearningCycle,
1386
+ runStoredResidentLearningFromObservations,
1387
+ } from './manager/resident/learning-store.js'
@@ -25,6 +25,7 @@ export type { UntrustedEnvelope } from './tools/untrusted-envelope.js'
25
25
  // ─── Built-in tools ──────────────────────────────────────────────────────
26
26
 
27
27
  export { getBuiltinTools } from './tools/builtins/index.js'
28
+ export { buildResidentHistoryTools } from './tools/resident-history.js'
28
29
  // A host compiling operator permissions has a tool name and needs an argument
29
30
  // to attach a pattern to. Without one it can only match against the serialised
30
31
  // input, which is how an `allow` for `git status*` came to approve
@@ -127,3 +128,5 @@ export {
127
128
  } from './connector/tools/index.js'
128
129
 
129
130
  export { createFileReadTracker } from './tools/file-read-tracker.js'
131
+
132
+ export { buildResidentToolEvidenceTools } from './tools/resident-tool-evidence.js'
@@ -111,6 +111,7 @@ export type {
111
111
 
112
112
  export type {
113
113
  AdvisoryCallContext,
114
+ AdvisoryTurnContext,
114
115
  AdvisoryExecutionResult,
115
116
  } from './advisory/index.js'
116
117
 
@@ -379,6 +380,8 @@ export type {
379
380
  PromptContributionContext,
380
381
  PromptPlacement,
381
382
  ResidentStepPromptOptions,
383
+ ResidentStepContextOptions,
384
+ ResidentStepContextBundle,
382
385
  } from './prompt/index.js'
383
386
 
384
387
  export type {
@@ -449,6 +452,32 @@ export type {
449
452
  } from './runtime/query/request-context.js'
450
453
 
451
454
  export type { ResidentDecision, ResidentState, ResidentStore } from './manager/resident/store.js'
455
+ export type {
456
+ ResidentActivityScope,
457
+ ResidentAdmission,
458
+ ResidentSettlement,
459
+ ResidentActivityOptions,
460
+ ResidentActivityPage,
461
+ ResidentActivitySource,
462
+ } from './manager/resident/activity.js'
463
+ export type {
464
+ ResidentConsumptionReceipt,
465
+ ResidentConsumptionResolver,
466
+ ResidentConsumptionOptions,
467
+ ResidentConsumptionAttempt,
468
+ ResidentConsumptionReport,
469
+ } from './manager/resident/consumption.js'
470
+ export type {
471
+ ResidentHistoryScope,
472
+ ResidentHistoryAddress,
473
+ ResidentHistoryMatch,
474
+ ResidentHistorySearchOptions,
475
+ ResidentHistorySearchResult,
476
+ ResidentHistoryReadOptions,
477
+ ResidentHistoryText,
478
+ ResidentHistoryReadResult,
479
+ ResidentHistorySource,
480
+ } from './manager/resident/history.js'
452
481
  export type {
453
482
  ResidentStep,
454
483
  ResidentStepResult,
@@ -503,8 +532,22 @@ export type {
503
532
  ResidentProfileUpdate,
504
533
  ResidentSkillEvaluation,
505
534
  ResidentLearningProjectionOptions,
535
+ ResidentLearningSource,
506
536
  ResidentLearningProjection,
507
537
  } from './manager/resident/learning.js'
538
+ export type {
539
+ ResidentLearningStage,
540
+ ResidentLearningReceipt,
541
+ ResidentLearningConsumption,
542
+ ResidentLearningCycleEvent,
543
+ ResidentLearningCycleContext,
544
+ ResidentLearningGenerationContext,
545
+ ResidentLearningExplorationContext,
546
+ ResidentLearningExploration,
547
+ ResidentLearningEvaluationContext,
548
+ ResidentLearningCycleOptions,
549
+ ResidentLearningCycleResult,
550
+ } from './manager/resident/learning-cycle.js'
508
551
 
509
552
  export type {
510
553
  ResidentArchiveRequest,
@@ -512,3 +555,58 @@ export type {
512
555
  ResidentArchivePage,
513
556
  ResidentArchiveListOptions,
514
557
  } from './manager/resident/agenda.js'
558
+
559
+ export type { SqliteSessionStoreConfig } from './store/session/sqlite.js'
560
+
561
+ export type {
562
+ RunEvidenceScope,
563
+ DiskRunEvidenceOptions,
564
+ RunEvidenceSearchOptions,
565
+ RunEvidenceMatch,
566
+ RunEvidenceSearchResult,
567
+ RunEvidenceReadOptions,
568
+ RunEvidenceReadResult,
569
+ RunEvidenceSource,
570
+ RunTextEvidenceSearchOptions,
571
+ RunTextEvidenceMatch,
572
+ RunTextEvidenceSearchResult,
573
+ RunTextEvidenceReadResult,
574
+ RunTextEvidenceSource,
575
+ } from './store/evidence/types.js'
576
+ export type { EvidenceRecordKind } from './store/evidence/source-kind.js'
577
+ export type {
578
+ ResidentToolEvidenceScope,
579
+ ResidentSettledInvocation,
580
+ ResidentToolEvidenceOptions,
581
+ ResidentToolEvidenceSearchOptions,
582
+ ResidentToolEvidenceSearchResult,
583
+ ResidentToolEvidenceReadOptions,
584
+ ResidentToolEvidenceReadResult,
585
+ ResidentToolEvidenceSource,
586
+ } from './manager/resident/tool-evidence.js'
587
+
588
+ export type { ResidentEvidenceRecallOptions } from './manager/resident/evidence-recall.js'
589
+ export type {
590
+ JsonClaimValue,
591
+ JsonClaimRequirement,
592
+ JsonClaimReadRequest,
593
+ JsonClaimObservation,
594
+ JsonClaimReceipt,
595
+ JsonClaimVerdict,
596
+ JsonClaimVerifierOptions,
597
+ JsonClaimVerifier,
598
+ } from './run/json-claim-verifier.js'
599
+
600
+ export type {
601
+ SqliteResidentLearningStoreOptions,
602
+ ResidentLearningArtifact,
603
+ ResidentLearningRecordedUsage,
604
+ ResidentLearningCycleSummary,
605
+ ResidentLearningDiscoveryOptions,
606
+ ResidentLearningDiscoveryResult,
607
+ } from './manager/resident/learning-store.js'
608
+ export type {
609
+ ResidentLearningObservation,
610
+ ResidentLearningObservationRecord,
611
+ ResidentLearningTarget,
612
+ } from './manager/resident/learning-observation.js'
@@ -31,7 +31,7 @@ export function checkLimitsDetailed(
31
31
  return { type: 'hard_stop', reason: 'cancelled' }
32
32
  }
33
33
 
34
- if (Date.now() - state.startTime > config.timeoutMs) {
34
+ if (config.timeoutMs !== 0 && Date.now() - state.startTime > config.timeoutMs) {
35
35
  return { type: 'hard_stop', reason: 'timeout' }
36
36
  }
37
37
 
@@ -55,7 +55,7 @@ export function checkLimitsDetailed(
55
55
  }
56
56
  }
57
57
 
58
- if (state.currentIteration >= config.maxIterations) {
58
+ if (config.maxIterations !== 0 && state.currentIteration >= config.maxIterations) {
59
59
  return { type: 'hard_stop', reason: 'max_iterations' }
60
60
  }
61
61
 
@@ -75,7 +75,7 @@ export function checkLimitsDetailed(
75
75
 
76
76
  const timeElapsed = Date.now() - state.startTime
77
77
  const timeRatio = timeElapsed / config.timeoutMs
78
- if (timeRatio >= config.budgetWarningThreshold) {
78
+ if (config.timeoutMs > 0 && timeRatio >= config.budgetWarningThreshold) {
79
79
  return { type: 'warning', reason: 'timeout' }
80
80
  }
81
81