@namzu/sdk 38.2.1 → 39.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/CHANGELOG.md +700 -0
  2. package/dist/advisory/executor.d.ts +10 -1
  3. package/dist/advisory/executor.d.ts.map +1 -1
  4. package/dist/advisory/executor.js +5 -26
  5. package/dist/advisory/executor.js.map +1 -1
  6. package/dist/advisory/history.d.ts +9 -0
  7. package/dist/advisory/history.d.ts.map +1 -0
  8. package/dist/advisory/history.js +120 -0
  9. package/dist/advisory/history.js.map +1 -0
  10. package/dist/advisory/index.d.ts +1 -1
  11. package/dist/advisory/index.d.ts.map +1 -1
  12. package/dist/advisory/index.js.map +1 -1
  13. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  14. package/dist/agents/ReactiveAgent.js +3 -0
  15. package/dist/agents/ReactiveAgent.js.map +1 -1
  16. package/dist/agents/runAgent.d.ts +10 -0
  17. package/dist/agents/runAgent.d.ts.map +1 -1
  18. package/dist/agents/runAgent.js +3 -0
  19. package/dist/agents/runAgent.js.map +1 -1
  20. package/dist/compaction/manual.d.ts +6 -0
  21. package/dist/compaction/manual.d.ts.map +1 -1
  22. package/dist/compaction/manual.js +21 -2
  23. package/dist/compaction/manual.js.map +1 -1
  24. package/dist/compaction/summary.d.ts.map +1 -1
  25. package/dist/compaction/summary.js +4 -1
  26. package/dist/compaction/summary.js.map +1 -1
  27. package/dist/config/runtime.js +2 -2
  28. package/dist/config/runtime.js.map +1 -1
  29. package/dist/contracts/schemas.js +1 -1
  30. package/dist/contracts/schemas.js.map +1 -1
  31. package/dist/eval/harness-protection.d.ts +18 -0
  32. package/dist/eval/harness-protection.d.ts.map +1 -0
  33. package/dist/eval/harness-protection.js +58 -0
  34. package/dist/eval/harness-protection.js.map +1 -0
  35. package/dist/eval/harness-verification.d.ts +6 -1
  36. package/dist/eval/harness-verification.d.ts.map +1 -1
  37. package/dist/eval/harness-verification.js +19 -2
  38. package/dist/eval/harness-verification.js.map +1 -1
  39. package/dist/eval/index.d.ts +1 -0
  40. package/dist/eval/index.d.ts.map +1 -1
  41. package/dist/eval/index.js.map +1 -1
  42. package/dist/manager/resident/activity.d.ts +50 -0
  43. package/dist/manager/resident/activity.d.ts.map +1 -0
  44. package/dist/manager/resident/activity.js +125 -0
  45. package/dist/manager/resident/activity.js.map +1 -0
  46. package/dist/manager/resident/agenda.d.ts +13 -1
  47. package/dist/manager/resident/agenda.d.ts.map +1 -1
  48. package/dist/manager/resident/agenda.js +40 -5
  49. package/dist/manager/resident/agenda.js.map +1 -1
  50. package/dist/manager/resident/consumption.d.ts +104 -0
  51. package/dist/manager/resident/consumption.d.ts.map +1 -0
  52. package/dist/manager/resident/consumption.js +233 -0
  53. package/dist/manager/resident/consumption.js.map +1 -0
  54. package/dist/manager/resident/evidence-recall.d.ts +24 -0
  55. package/dist/manager/resident/evidence-recall.d.ts.map +1 -0
  56. package/dist/manager/resident/evidence-recall.js +295 -0
  57. package/dist/manager/resident/evidence-recall.js.map +1 -0
  58. package/dist/manager/resident/history-disk.d.ts +10 -0
  59. package/dist/manager/resident/history-disk.d.ts.map +1 -0
  60. package/dist/manager/resident/history-disk.js +50 -0
  61. package/dist/manager/resident/history-disk.js.map +1 -0
  62. package/dist/manager/resident/history.d.ts +79 -0
  63. package/dist/manager/resident/history.d.ts.map +1 -0
  64. package/dist/manager/resident/history.js +203 -0
  65. package/dist/manager/resident/history.js.map +1 -0
  66. package/dist/manager/resident/initiative.d.ts.map +1 -1
  67. package/dist/manager/resident/initiative.js +11 -3
  68. package/dist/manager/resident/initiative.js.map +1 -1
  69. package/dist/manager/resident/learning-cycle.d.ts +131 -0
  70. package/dist/manager/resident/learning-cycle.d.ts.map +1 -0
  71. package/dist/manager/resident/learning-cycle.js +306 -0
  72. package/dist/manager/resident/learning-cycle.js.map +1 -0
  73. package/dist/manager/resident/learning-observation.d.ts +80 -0
  74. package/dist/manager/resident/learning-observation.d.ts.map +1 -0
  75. package/dist/manager/resident/learning-observation.js +22 -0
  76. package/dist/manager/resident/learning-observation.js.map +1 -0
  77. package/dist/manager/resident/learning-store.d.ts +106 -0
  78. package/dist/manager/resident/learning-store.d.ts.map +1 -0
  79. package/dist/manager/resident/learning-store.js +598 -0
  80. package/dist/manager/resident/learning-store.js.map +1 -0
  81. package/dist/manager/resident/learning.d.ts +246 -3
  82. package/dist/manager/resident/learning.d.ts.map +1 -1
  83. package/dist/manager/resident/learning.js +96 -6
  84. package/dist/manager/resident/learning.js.map +1 -1
  85. package/dist/manager/resident/outbox.d.ts +4 -4
  86. package/dist/manager/resident/store.d.ts +37 -4
  87. package/dist/manager/resident/store.d.ts.map +1 -1
  88. package/dist/manager/resident/store.js +27 -3
  89. package/dist/manager/resident/store.js.map +1 -1
  90. package/dist/manager/resident/tool-evidence.d.ts +71 -0
  91. package/dist/manager/resident/tool-evidence.d.ts.map +1 -0
  92. package/dist/manager/resident/tool-evidence.js +285 -0
  93. package/dist/manager/resident/tool-evidence.js.map +1 -0
  94. package/dist/manager/run/persistence.d.ts.map +1 -1
  95. package/dist/manager/run/persistence.js +6 -0
  96. package/dist/manager/run/persistence.js.map +1 -1
  97. package/dist/plugin/loader.d.ts.map +1 -1
  98. package/dist/plugin/loader.js +5 -3
  99. package/dist/plugin/loader.js.map +1 -1
  100. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  101. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  102. package/dist/prompt/coding-agent-doctrine.js +2 -0
  103. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  104. package/dist/prompt/index.d.ts +2 -0
  105. package/dist/prompt/index.d.ts.map +1 -1
  106. package/dist/prompt/index.js +1 -0
  107. package/dist/prompt/index.js.map +1 -1
  108. package/dist/prompt/resident-learning.d.ts +19 -0
  109. package/dist/prompt/resident-learning.d.ts.map +1 -0
  110. package/dist/prompt/resident-learning.js +125 -0
  111. package/dist/prompt/resident-learning.js.map +1 -0
  112. package/dist/prompt/resident-step.d.ts +8 -1
  113. package/dist/prompt/resident-step.d.ts.map +1 -1
  114. package/dist/prompt/resident-step.js +65 -4
  115. package/dist/prompt/resident-step.js.map +1 -1
  116. package/dist/provider/collect-chat-completion.d.ts +2 -1
  117. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  118. package/dist/provider/collect-chat-completion.js +7 -6
  119. package/dist/provider/collect-chat-completion.js.map +1 -1
  120. package/dist/provider/fallback.d.ts.map +1 -1
  121. package/dist/provider/fallback.js +2 -1
  122. package/dist/provider/fallback.js.map +1 -1
  123. package/dist/provider/stream-text.d.ts +16 -0
  124. package/dist/provider/stream-text.d.ts.map +1 -0
  125. package/dist/provider/stream-text.js +51 -0
  126. package/dist/provider/stream-text.js.map +1 -0
  127. package/dist/public-runtime.d.ts +13 -3
  128. package/dist/public-runtime.d.ts.map +1 -1
  129. package/dist/public-runtime.js +12 -3
  130. package/dist/public-runtime.js.map +1 -1
  131. package/dist/public-tools.d.ts +2 -0
  132. package/dist/public-tools.d.ts.map +1 -1
  133. package/dist/public-tools.js +2 -0
  134. package/dist/public-tools.js.map +1 -1
  135. package/dist/public-types.d.ts +15 -3
  136. package/dist/public-types.d.ts.map +1 -1
  137. package/dist/run/LimitChecker.js +3 -3
  138. package/dist/run/LimitChecker.js.map +1 -1
  139. package/dist/run/evidence-query.d.ts +41 -0
  140. package/dist/run/evidence-query.d.ts.map +1 -0
  141. package/dist/run/evidence-query.js +270 -0
  142. package/dist/run/evidence-query.js.map +1 -0
  143. package/dist/run/evidence-recall.d.ts +99 -0
  144. package/dist/run/evidence-recall.d.ts.map +1 -0
  145. package/dist/run/evidence-recall.js +633 -0
  146. package/dist/run/evidence-recall.js.map +1 -0
  147. package/dist/run/index.d.ts +2 -0
  148. package/dist/run/index.d.ts.map +1 -1
  149. package/dist/run/index.js +1 -0
  150. package/dist/run/index.js.map +1 -1
  151. package/dist/run/json-claim-verifier.d.ts +83 -0
  152. package/dist/run/json-claim-verifier.d.ts.map +1 -0
  153. package/dist/run/json-claim-verifier.js +200 -0
  154. package/dist/run/json-claim-verifier.js.map +1 -0
  155. package/dist/run/preparation-context-error.d.ts +10 -0
  156. package/dist/run/preparation-context-error.d.ts.map +1 -0
  157. package/dist/run/preparation-context-error.js +15 -0
  158. package/dist/run/preparation-context-error.js.map +1 -0
  159. package/dist/run-query/index.d.ts +3 -1
  160. package/dist/run-query/index.d.ts.map +1 -1
  161. package/dist/runtime/query/callback-inference.d.ts +8 -0
  162. package/dist/runtime/query/callback-inference.d.ts.map +1 -0
  163. package/dist/runtime/query/callback-inference.js +89 -0
  164. package/dist/runtime/query/callback-inference.js.map +1 -0
  165. package/dist/runtime/query/checkpoint.d.ts +4 -0
  166. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  167. package/dist/runtime/query/checkpoint.js +13 -0
  168. package/dist/runtime/query/checkpoint.js.map +1 -1
  169. package/dist/runtime/query/events.d.ts +1 -0
  170. package/dist/runtime/query/events.d.ts.map +1 -1
  171. package/dist/runtime/query/events.js +18 -0
  172. package/dist/runtime/query/events.js.map +1 -1
  173. package/dist/runtime/query/executor.d.ts +7 -1
  174. package/dist/runtime/query/executor.d.ts.map +1 -1
  175. package/dist/runtime/query/executor.js +38 -7
  176. package/dist/runtime/query/executor.js.map +1 -1
  177. package/dist/runtime/query/file-evidence-context.d.ts +5 -0
  178. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -0
  179. package/dist/runtime/query/file-evidence-context.js +64 -0
  180. package/dist/runtime/query/file-evidence-context.js.map +1 -0
  181. package/dist/runtime/query/guard.d.ts.map +1 -1
  182. package/dist/runtime/query/guard.js +4 -0
  183. package/dist/runtime/query/guard.js.map +1 -1
  184. package/dist/runtime/query/index.d.ts +10 -1
  185. package/dist/runtime/query/index.d.ts.map +1 -1
  186. package/dist/runtime/query/index.js +39 -24
  187. package/dist/runtime/query/index.js.map +1 -1
  188. package/dist/runtime/query/iteration/index.d.ts +9 -31
  189. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  190. package/dist/runtime/query/iteration/index.js +231 -93
  191. package/dist/runtime/query/iteration/index.js.map +1 -1
  192. package/dist/runtime/query/iteration/phases/advisory.d.ts +2 -1
  193. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  194. package/dist/runtime/query/iteration/phases/advisory.js +2 -1
  195. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  196. package/dist/runtime/query/iteration/phases/context.d.ts +2 -1
  197. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  198. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  199. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  200. package/dist/runtime/query/iteration/phases/tool-review.js +3 -0
  201. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  202. package/dist/runtime/query/iteration/provider-rejected-image.d.ts +2 -1
  203. package/dist/runtime/query/iteration/provider-rejected-image.d.ts.map +1 -1
  204. package/dist/runtime/query/iteration/provider-rejected-image.js +5 -2
  205. package/dist/runtime/query/iteration/provider-rejected-image.js.map +1 -1
  206. package/dist/runtime/query/iteration/stream-turn.d.ts +4 -1
  207. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  208. package/dist/runtime/query/iteration/stream-turn.js +22 -8
  209. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  210. package/dist/runtime/query/resume-pending.d.ts +18 -33
  211. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  212. package/dist/runtime/query/resume-pending.js +59 -42
  213. package/dist/runtime/query/resume-pending.js.map +1 -1
  214. package/dist/runtime/query/review-policy.d.ts +4 -4
  215. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  216. package/dist/runtime/query/review-policy.js +10 -9
  217. package/dist/runtime/query/review-policy.js.map +1 -1
  218. package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -1
  219. package/dist/runtime/query/sandbox-lifecycle.js +4 -0
  220. package/dist/runtime/query/sandbox-lifecycle.js.map +1 -1
  221. package/dist/runtime/query/tool-output-budget.d.ts +10 -6
  222. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  223. package/dist/runtime/query/tool-output-budget.js +54 -12
  224. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  225. package/dist/runtime/query/tooling.d.ts +3 -1
  226. package/dist/runtime/query/tooling.d.ts.map +1 -1
  227. package/dist/runtime/query/tooling.js +4 -0
  228. package/dist/runtime/query/tooling.js.map +1 -1
  229. package/dist/scheduler/completion-inbox.d.ts +3 -0
  230. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  231. package/dist/scheduler/completion-inbox.js +28 -0
  232. package/dist/scheduler/completion-inbox.js.map +1 -1
  233. package/dist/store/evidence/compaction-archive.d.ts +109 -0
  234. package/dist/store/evidence/compaction-archive.d.ts.map +1 -0
  235. package/dist/store/evidence/compaction-archive.js +125 -0
  236. package/dist/store/evidence/compaction-archive.js.map +1 -0
  237. package/dist/store/evidence/compaction-provenance.d.ts +7 -0
  238. package/dist/store/evidence/compaction-provenance.d.ts.map +1 -0
  239. package/dist/store/evidence/compaction-provenance.js +49 -0
  240. package/dist/store/evidence/compaction-provenance.js.map +1 -0
  241. package/dist/store/evidence/compaction-text.d.ts +16 -0
  242. package/dist/store/evidence/compaction-text.d.ts.map +1 -0
  243. package/dist/store/evidence/compaction-text.js +51 -0
  244. package/dist/store/evidence/compaction-text.js.map +1 -0
  245. package/dist/store/evidence/disk.d.ts +11 -0
  246. package/dist/store/evidence/disk.d.ts.map +1 -0
  247. package/dist/store/evidence/disk.js +367 -0
  248. package/dist/store/evidence/disk.js.map +1 -0
  249. package/dist/store/evidence/format.d.ts +25 -0
  250. package/dist/store/evidence/format.d.ts.map +1 -0
  251. package/dist/store/evidence/format.js +115 -0
  252. package/dist/store/evidence/format.js.map +1 -0
  253. package/dist/store/evidence/index-page.d.ts +208 -0
  254. package/dist/store/evidence/index-page.d.ts.map +1 -0
  255. package/dist/store/evidence/index-page.js +262 -0
  256. package/dist/store/evidence/index-page.js.map +1 -0
  257. package/dist/store/evidence/io.d.ts +24 -0
  258. package/dist/store/evidence/io.d.ts.map +1 -0
  259. package/dist/store/evidence/io.js +69 -0
  260. package/dist/store/evidence/io.js.map +1 -0
  261. package/dist/store/evidence/linked.d.ts +9 -0
  262. package/dist/store/evidence/linked.d.ts.map +1 -0
  263. package/dist/store/evidence/linked.js +314 -0
  264. package/dist/store/evidence/linked.js.map +1 -0
  265. package/dist/store/evidence/passages.d.ts +15 -0
  266. package/dist/store/evidence/passages.d.ts.map +1 -0
  267. package/dist/store/evidence/passages.js +72 -0
  268. package/dist/store/evidence/passages.js.map +1 -0
  269. package/dist/store/evidence/record-chain.d.ts +42 -0
  270. package/dist/store/evidence/record-chain.d.ts.map +1 -0
  271. package/dist/store/evidence/record-chain.js +111 -0
  272. package/dist/store/evidence/record-chain.js.map +1 -0
  273. package/dist/store/evidence/search-input.d.ts +21 -0
  274. package/dist/store/evidence/search-input.d.ts.map +1 -0
  275. package/dist/store/evidence/search-input.js +44 -0
  276. package/dist/store/evidence/search-input.js.map +1 -0
  277. package/dist/store/evidence/selection.d.ts +9 -0
  278. package/dist/store/evidence/selection.d.ts.map +1 -0
  279. package/dist/store/evidence/selection.js +17 -0
  280. package/dist/store/evidence/selection.js.map +1 -0
  281. package/dist/store/evidence/source-kind.d.ts +11 -0
  282. package/dist/store/evidence/source-kind.d.ts.map +1 -0
  283. package/dist/store/evidence/source-kind.js +26 -0
  284. package/dist/store/evidence/source-kind.js.map +1 -0
  285. package/dist/store/evidence/source-text.d.ts +51 -0
  286. package/dist/store/evidence/source-text.d.ts.map +1 -0
  287. package/dist/store/evidence/source-text.js +213 -0
  288. package/dist/store/evidence/source-text.js.map +1 -0
  289. package/dist/store/evidence/types.d.ts +162 -0
  290. package/dist/store/evidence/types.d.ts.map +1 -0
  291. package/dist/store/evidence/types.js +2 -0
  292. package/dist/store/evidence/types.js.map +1 -0
  293. package/dist/store/memory/disk.d.ts +2 -0
  294. package/dist/store/memory/disk.d.ts.map +1 -1
  295. package/dist/store/memory/disk.js +2 -1
  296. package/dist/store/memory/disk.js.map +1 -1
  297. package/dist/store/run/disk.d.ts +10 -0
  298. package/dist/store/run/disk.d.ts.map +1 -1
  299. package/dist/store/run/disk.js +87 -7
  300. package/dist/store/run/disk.js.map +1 -1
  301. package/dist/store/run/memory.d.ts +1 -0
  302. package/dist/store/run/memory.d.ts.map +1 -1
  303. package/dist/store/run/memory.js +10 -0
  304. package/dist/store/run/memory.js.map +1 -1
  305. package/dist/store/run/tool-executions.d.ts +13 -0
  306. package/dist/store/run/tool-executions.d.ts.map +1 -0
  307. package/dist/store/run/tool-executions.js +99 -0
  308. package/dist/store/run/tool-executions.js.map +1 -0
  309. package/dist/store/session/index.d.ts +2 -0
  310. package/dist/store/session/index.d.ts.map +1 -1
  311. package/dist/store/session/index.js +1 -0
  312. package/dist/store/session/index.js.map +1 -1
  313. package/dist/store/session/sqlite.d.ts +57 -0
  314. package/dist/store/session/sqlite.d.ts.map +1 -0
  315. package/dist/store/session/sqlite.js +430 -0
  316. package/dist/store/session/sqlite.js.map +1 -0
  317. package/dist/tools/builtins/job.d.ts.map +1 -1
  318. package/dist/tools/builtins/job.js +4 -5
  319. package/dist/tools/builtins/job.js.map +1 -1
  320. package/dist/tools/builtins/write-file.js +2 -2
  321. package/dist/tools/builtins/write-file.js.map +1 -1
  322. package/dist/tools/defineTool.d.ts +2 -1
  323. package/dist/tools/defineTool.d.ts.map +1 -1
  324. package/dist/tools/defineTool.js +1 -1
  325. package/dist/tools/defineTool.js.map +1 -1
  326. package/dist/tools/file-read-tracker.d.ts.map +1 -1
  327. package/dist/tools/file-read-tracker.js +12 -3
  328. package/dist/tools/file-read-tracker.js.map +1 -1
  329. package/dist/tools/resident-history.d.ts +10 -0
  330. package/dist/tools/resident-history.d.ts.map +1 -0
  331. package/dist/tools/resident-history.js +80 -0
  332. package/dist/tools/resident-history.js.map +1 -0
  333. package/dist/tools/resident-tool-evidence.d.ts +5 -0
  334. package/dist/tools/resident-tool-evidence.d.ts.map +1 -0
  335. package/dist/tools/resident-tool-evidence.js +57 -0
  336. package/dist/tools/resident-tool-evidence.js.map +1 -0
  337. package/dist/types/advisory/config.d.ts +7 -0
  338. package/dist/types/advisory/config.d.ts.map +1 -1
  339. package/dist/types/agent/reactive.d.ts +1 -0
  340. package/dist/types/agent/reactive.d.ts.map +1 -1
  341. package/dist/types/authorization/index.d.ts +9 -9
  342. package/dist/types/authorization/index.d.ts.map +1 -1
  343. package/dist/types/authorization/index.js +1 -1
  344. package/dist/types/authorization/index.js.map +1 -1
  345. package/dist/types/hitl/index.d.ts +4 -0
  346. package/dist/types/hitl/index.d.ts.map +1 -1
  347. package/dist/types/hitl/index.js.map +1 -1
  348. package/dist/types/message/index.d.ts +16 -2
  349. package/dist/types/message/index.d.ts.map +1 -1
  350. package/dist/types/message/index.js +8 -1
  351. package/dist/types/message/index.js.map +1 -1
  352. package/dist/types/provider/chat.d.ts +2 -0
  353. package/dist/types/provider/chat.d.ts.map +1 -1
  354. package/dist/types/provider/stream.d.ts +4 -0
  355. package/dist/types/provider/stream.d.ts.map +1 -1
  356. package/dist/types/run/answer-review.d.ts +34 -3
  357. package/dist/types/run/answer-review.d.ts.map +1 -1
  358. package/dist/types/run/config.d.ts +3 -0
  359. package/dist/types/run/config.d.ts.map +1 -1
  360. package/dist/types/run/entity.d.ts +7 -0
  361. package/dist/types/run/entity.d.ts.map +1 -1
  362. package/dist/types/run/events.d.ts +31 -8
  363. package/dist/types/run/events.d.ts.map +1 -1
  364. package/dist/types/run/events.js.map +1 -1
  365. package/dist/types/run/prepare-step.d.ts +53 -8
  366. package/dist/types/run/prepare-step.d.ts.map +1 -1
  367. package/dist/types/run/store.d.ts +29 -4
  368. package/dist/types/run/store.d.ts.map +1 -1
  369. package/dist/types/run/store.js +0 -28
  370. package/dist/types/run/store.js.map +1 -1
  371. package/dist/types/tool/index.d.ts +15 -1
  372. package/dist/types/tool/index.d.ts.map +1 -1
  373. package/dist/types/tool/index.js.map +1 -1
  374. package/dist/utils/await-with-abort.d.ts +8 -0
  375. package/dist/utils/await-with-abort.d.ts.map +1 -0
  376. package/dist/utils/await-with-abort.js +28 -0
  377. package/dist/utils/await-with-abort.js.map +1 -0
  378. package/dist/utils/evidence-time.d.ts +3 -0
  379. package/dist/utils/evidence-time.d.ts.map +1 -0
  380. package/dist/utils/evidence-time.js +10 -0
  381. package/dist/utils/evidence-time.js.map +1 -0
  382. package/dist/utils/evidence-tokens.d.ts +13 -0
  383. package/dist/utils/evidence-tokens.d.ts.map +1 -0
  384. package/dist/utils/evidence-tokens.js +29 -0
  385. package/dist/utils/evidence-tokens.js.map +1 -0
  386. package/package.json +1 -1
  387. package/src/advisory/executor.ts +15 -30
  388. package/src/advisory/history.ts +126 -0
  389. package/src/advisory/index.ts +5 -1
  390. package/src/agents/ReactiveAgent.ts +3 -0
  391. package/src/agents/runAgent.ts +14 -1
  392. package/src/compaction/manual.ts +30 -2
  393. package/src/compaction/summary.ts +4 -1
  394. package/src/config/runtime.ts +2 -2
  395. package/src/contracts/schemas.ts +1 -1
  396. package/src/eval/harness-protection.ts +79 -0
  397. package/src/eval/harness-verification.ts +31 -1
  398. package/src/eval/index.ts +1 -0
  399. package/src/manager/resident/activity.ts +187 -0
  400. package/src/manager/resident/agenda.ts +59 -5
  401. package/src/manager/resident/consumption.ts +311 -0
  402. package/src/manager/resident/evidence-recall.ts +363 -0
  403. package/src/manager/resident/history-disk.ts +63 -0
  404. package/src/manager/resident/history.ts +312 -0
  405. package/src/manager/resident/initiative.ts +13 -3
  406. package/src/manager/resident/learning-cycle.ts +499 -0
  407. package/src/manager/resident/learning-observation.ts +39 -0
  408. package/src/manager/resident/learning-store.ts +813 -0
  409. package/src/manager/resident/learning.ts +132 -8
  410. package/src/manager/resident/store.ts +31 -3
  411. package/src/manager/resident/tool-evidence.ts +412 -0
  412. package/src/manager/run/persistence.ts +6 -0
  413. package/src/plugin/loader.ts +8 -3
  414. package/src/prompt/coding-agent-doctrine.ts +2 -0
  415. package/src/prompt/index.ts +2 -0
  416. package/src/prompt/resident-learning.ts +143 -0
  417. package/src/prompt/resident-step.ts +83 -3
  418. package/src/provider/collect-chat-completion.ts +7 -6
  419. package/src/provider/fallback.ts +2 -1
  420. package/src/provider/stream-text.ts +56 -0
  421. package/src/public-runtime.ts +30 -0
  422. package/src/public-tools.ts +3 -0
  423. package/src/public-types.ts +98 -0
  424. package/src/run/LimitChecker.ts +3 -3
  425. package/src/run/evidence-query.ts +333 -0
  426. package/src/run/evidence-recall.ts +854 -0
  427. package/src/run/index.ts +11 -0
  428. package/src/run/json-claim-verifier.ts +298 -0
  429. package/src/run/preparation-context-error.ts +16 -0
  430. package/src/run-query/index.ts +1 -1
  431. package/src/runtime/query/callback-inference.ts +94 -0
  432. package/src/runtime/query/checkpoint.ts +14 -0
  433. package/src/runtime/query/events.ts +22 -0
  434. package/src/runtime/query/executor.ts +51 -9
  435. package/src/runtime/query/file-evidence-context.ts +65 -0
  436. package/src/runtime/query/guard.ts +2 -0
  437. package/src/runtime/query/index.ts +49 -25
  438. package/src/runtime/query/iteration/index.ts +269 -86
  439. package/src/runtime/query/iteration/phases/advisory.ts +3 -0
  440. package/src/runtime/query/iteration/phases/context.ts +2 -0
  441. package/src/runtime/query/iteration/phases/tool-review.ts +3 -0
  442. package/src/runtime/query/iteration/provider-rejected-image.ts +6 -1
  443. package/src/runtime/query/iteration/stream-turn.ts +35 -8
  444. package/src/runtime/query/resume-pending.ts +65 -40
  445. package/src/runtime/query/review-policy.ts +13 -9
  446. package/src/runtime/query/sandbox-lifecycle.ts +3 -0
  447. package/src/runtime/query/tool-output-budget.ts +65 -13
  448. package/src/runtime/query/tooling.ts +7 -1
  449. package/src/scheduler/completion-inbox.ts +26 -0
  450. package/src/store/evidence/compaction-archive.ts +139 -0
  451. package/src/store/evidence/compaction-provenance.ts +52 -0
  452. package/src/store/evidence/compaction-text.ts +61 -0
  453. package/src/store/evidence/disk.ts +461 -0
  454. package/src/store/evidence/format.ts +126 -0
  455. package/src/store/evidence/index-page.ts +292 -0
  456. package/src/store/evidence/io.ts +95 -0
  457. package/src/store/evidence/linked.ts +365 -0
  458. package/src/store/evidence/passages.ts +88 -0
  459. package/src/store/evidence/record-chain.ts +108 -0
  460. package/src/store/evidence/search-input.ts +62 -0
  461. package/src/store/evidence/selection.ts +25 -0
  462. package/src/store/evidence/source-kind.ts +36 -0
  463. package/src/store/evidence/source-text.ts +285 -0
  464. package/src/store/evidence/types.ts +177 -0
  465. package/src/store/memory/disk.ts +4 -1
  466. package/src/store/run/disk.ts +110 -8
  467. package/src/store/run/memory.ts +10 -0
  468. package/src/store/run/tool-executions.ts +112 -0
  469. package/src/store/session/index.ts +2 -0
  470. package/src/store/session/sqlite.ts +584 -0
  471. package/src/tools/builtins/job.ts +4 -5
  472. package/src/tools/builtins/write-file.ts +2 -2
  473. package/src/tools/defineTool.ts +4 -2
  474. package/src/tools/file-read-tracker.ts +8 -2
  475. package/src/tools/resident-history.ts +86 -0
  476. package/src/tools/resident-tool-evidence.ts +68 -0
  477. package/src/types/advisory/config.ts +7 -0
  478. package/src/types/agent/reactive.ts +1 -0
  479. package/src/types/authorization/index.ts +2 -2
  480. package/src/types/hitl/index.ts +4 -0
  481. package/src/types/message/index.ts +20 -0
  482. package/src/types/provider/chat.ts +2 -0
  483. package/src/types/provider/stream.ts +4 -0
  484. package/src/types/run/answer-review.ts +34 -3
  485. package/src/types/run/config.ts +3 -0
  486. package/src/types/run/entity.ts +7 -0
  487. package/src/types/run/events.ts +31 -8
  488. package/src/types/run/prepare-step.ts +59 -8
  489. package/src/types/run/store.ts +35 -4
  490. package/src/types/tool/index.ts +19 -1
  491. package/src/utils/await-with-abort.ts +26 -0
  492. package/src/utils/evidence-time.ts +9 -0
  493. package/src/utils/evidence-tokens.ts +32 -0
@@ -0,0 +1,306 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { z } from 'zod';
3
+ import { normalizeHarnessProtection, } from '../../eval/harness-protection.js';
4
+ import { reviewHarnessCandidate, } from '../../eval/harness-verification.js';
5
+ import { hashResidentSkill, normalizeResidentSkill, promoteResidentSkill, residentLearningEvidenceSchema, } from './learning.js';
6
+ import { ResidentConflictError } from './store.js';
7
+ const receiptSchema = z.object({
8
+ runId: z.string().uuid(),
9
+ tokens: z.number().int().nonnegative().safe().nullable(),
10
+ costUsd: z.number().nonnegative().finite().nullable(),
11
+ });
12
+ /**
13
+ * @experimental Generate one candidate, independently verify and confirm it, then
14
+ * activate through the existing exact-revision transaction. No internal inference
15
+ * loop, retry or model-generated success claim replaces the host's evaluator.
16
+ */
17
+ export async function runResidentLearningCycle(options) {
18
+ const protection = normalizeHarnessProtection(options.protection);
19
+ const purpose = z.enum(['task', 'exploration']).parse(options.purpose ?? 'task');
20
+ const purposeContext = options.purpose === undefined ? {} : { purpose };
21
+ const skillName = z
22
+ .string()
23
+ .regex(/^[a-z0-9][a-z0-9_-]{0,63}$/)
24
+ .parse(options.skillName);
25
+ const failure = Object.freeze({
26
+ evidence: Object.freeze(residentLearningEvidenceSchema.parse(options.failure.evidence)),
27
+ trace: z.string().trim().min(1).max(32_000).parse(options.failure.trace),
28
+ });
29
+ const resources = z
30
+ .object({ unit: z.enum(['tokens', 'usd']), maxUnits: z.number().positive().finite() })
31
+ .parse(options.resources);
32
+ const parentCycleId = options.parentCycleId === undefined ? undefined : z.string().uuid().parse(options.parentCycleId);
33
+ const cycleId = randomUUID();
34
+ const receipts = new Map();
35
+ let sequence = 0;
36
+ let pending = Promise.resolve();
37
+ let auditComplete = true;
38
+ let unfinishedStages = 0;
39
+ let candidate;
40
+ let candidateRevision;
41
+ let baselineRevision;
42
+ let review;
43
+ let activatedRevision;
44
+ let activationRequested = false;
45
+ const usage = () => ({
46
+ tokens: [...receipts.values()].reduce((n, r) => n + (r.tokens ?? 0), 0),
47
+ costUsd: [...receipts.values()].reduce((n, r) => n + (r.costUsd ?? 0), 0),
48
+ receipts: receipts.size,
49
+ unknownTokens: [...receipts.values()].filter((r) => r.tokens === null).length,
50
+ unknownCosts: [...receipts.values()].filter((r) => r.costUsd === null).length,
51
+ unfinishedStages,
52
+ });
53
+ const append = (kind, data, stage) => {
54
+ const event = Object.freeze({
55
+ cycleId,
56
+ sequence: ++sequence,
57
+ kind,
58
+ ...(stage ? { stage } : {}),
59
+ data: structuredClone(data),
60
+ });
61
+ pending = pending
62
+ .then(() => options.record(event))
63
+ .catch((error) => {
64
+ auditComplete = false;
65
+ throw error;
66
+ });
67
+ return pending;
68
+ };
69
+ const result = (status, reason) => ({
70
+ cycleId,
71
+ status,
72
+ reason,
73
+ ...(candidate ? { candidate, candidateRevision } : {}),
74
+ ...(baselineRevision ? { baselineRevision } : {}),
75
+ ...(review ? { review } : {}),
76
+ ...(activatedRevision !== undefined ? { agendaRevision: activatedRevision } : {}),
77
+ consumption: usage(),
78
+ auditComplete,
79
+ });
80
+ const resourceProblem = (needsWork = false) => {
81
+ const measured = usage();
82
+ if (unfinishedStages ||
83
+ (resources.unit === 'tokens' ? measured.unknownTokens : measured.unknownCosts))
84
+ return `Incomplete ${resources.unit} evidence prevents further learning stages or activation.`;
85
+ if ((resources.unit === 'tokens' ? measured.tokens : measured.costUsd) > resources.maxUnits)
86
+ return 'Recorded experiment consumption exceeds the declared resource allowance.';
87
+ if (needsWork &&
88
+ (resources.unit === 'tokens' ? measured.tokens : measured.costUsd) === resources.maxUnits)
89
+ return 'The recorded resource allowance is exhausted before the next stage.';
90
+ return null;
91
+ };
92
+ const execute = async () => {
93
+ options.signal.throwIfAborted();
94
+ const snapshot = structuredClone(await options.agenda.read());
95
+ if (!snapshot)
96
+ throw new Error('No resident agenda exists for this learning cycle.');
97
+ if (snapshot.paused || snapshot.pursuits.some((p) => p.state.phase === 'running'))
98
+ throw new Error('Resident learning requires an unpaused agenda without running pursuits.');
99
+ const current = snapshot.learning?.skills.find((s) => s.name === skillName);
100
+ if (current && (current.purpose ?? 'task') !== purpose)
101
+ throw new Error('The active skill has a different learning purpose; use a distinct skill name.');
102
+ const baseline = current ? normalizeResidentSkill(current) : null;
103
+ baselineRevision = baseline ? hashResidentSkill(baseline) : 'none';
104
+ await append('started', {
105
+ tenantId: snapshot.tenantId,
106
+ agentKey: snapshot.agentKey,
107
+ agendaRevision: snapshot.revision,
108
+ baselineRevision,
109
+ skillName,
110
+ ...purposeContext,
111
+ failure,
112
+ resources,
113
+ protection,
114
+ ...(options.explore ? { explorationEnabled: true } : {}),
115
+ ...(parentCycleId ? { parentCycleId } : {}),
116
+ });
117
+ const check = async () => {
118
+ options.signal.throwIfAborted();
119
+ const latest = await options.agenda.read();
120
+ options.signal.throwIfAborted();
121
+ if (!latest ||
122
+ latest.tenantId !== snapshot.tenantId ||
123
+ latest.agentKey !== snapshot.agentKey ||
124
+ latest.revision !== snapshot.revision)
125
+ throw new ResidentConflictError();
126
+ };
127
+ const stage = async (name, callback) => {
128
+ await check();
129
+ await append('stage-started', {}, name);
130
+ await check();
131
+ unfinishedStages++;
132
+ let open = true;
133
+ let receiptFailure;
134
+ const before = receipts.size;
135
+ try {
136
+ const measured = usage();
137
+ const context = Object.freeze({
138
+ cycleId,
139
+ stage: name,
140
+ signal: options.signal,
141
+ remainingUnits: Math.max(0, resources.maxUnits - (resources.unit === 'tokens' ? measured.tokens : measured.costUsd)),
142
+ recordUsage: async (input) => {
143
+ try {
144
+ if (!open)
145
+ throw new Error('A closed learning stage cannot record new usage.');
146
+ const receipt = Object.freeze(receiptSchema.parse(input));
147
+ const id = receipt.runId.toLowerCase();
148
+ if (receipts.has(id))
149
+ throw new Error('Duplicate learning execution receipt.');
150
+ if (receipts.size >= 1024)
151
+ throw new Error('Learning cycle receipt bound exceeded.');
152
+ const totals = usage();
153
+ if (!Number.isSafeInteger(totals.tokens + (receipt.tokens ?? 0)) ||
154
+ !Number.isFinite(totals.costUsd + (receipt.costUsd ?? 0)))
155
+ throw new Error('Learning cycle consumption overflow.');
156
+ receipts.set(id, receipt);
157
+ await append('usage', { receipt }, name);
158
+ }
159
+ catch (error) {
160
+ receiptFailure = error;
161
+ throw error;
162
+ }
163
+ },
164
+ });
165
+ const value = await callback(context);
166
+ open = false;
167
+ await pending;
168
+ if (receiptFailure)
169
+ throw receiptFailure;
170
+ options.signal.throwIfAborted();
171
+ if (value.usageComplete === true && receipts.size > before)
172
+ unfinishedStages--;
173
+ await append('stage-finished', {
174
+ usageComplete: value.usageComplete === true && receipts.size > before,
175
+ consumption: usage(),
176
+ }, name);
177
+ return value;
178
+ }
179
+ finally {
180
+ open = false;
181
+ }
182
+ };
183
+ let exploration;
184
+ if (options.explore) {
185
+ const explore = options.explore;
186
+ const observed = await stage('explore', (context) => explore(Object.freeze({ ...context, skillName, ...purposeContext, failure, baseline })));
187
+ exploration = Object.freeze({
188
+ evidence: Object.freeze(residentLearningEvidenceSchema.parse(observed.observations.evidence)),
189
+ trace: z.string().trim().min(1).max(32_000).parse(observed.observations.trace),
190
+ });
191
+ await append('exploration', {
192
+ observations: exploration,
193
+ digest: createHash('sha256').update(JSON.stringify(exploration)).digest('hex'),
194
+ }, 'explore');
195
+ const problem = resourceProblem(true);
196
+ if (problem)
197
+ return result('inconclusive', problem);
198
+ }
199
+ const generated = await stage('generate', (context) => options.generate(Object.freeze({
200
+ ...context,
201
+ skillName,
202
+ ...purposeContext,
203
+ failure,
204
+ baseline,
205
+ ...(exploration ? { exploration } : {}),
206
+ })));
207
+ candidateRevision = hashResidentSkill(generated.candidate);
208
+ candidate = normalizeResidentSkill(generated.candidate);
209
+ if ((candidate.purpose ?? 'task') !== purpose)
210
+ throw new Error('Generated skill purpose does not match the host-admitted learning purpose.');
211
+ if (candidate.name !== skillName)
212
+ throw new Error('Generated guidance must retain the requested skill name.');
213
+ await append('candidate', { candidate, candidateRevision, baselineRevision });
214
+ if (candidateRevision === baselineRevision)
215
+ return result('rejected', 'Generated guidance is identical to the active baseline.');
216
+ let problem = resourceProblem(true);
217
+ if (problem)
218
+ return result('inconclusive', problem);
219
+ const evaluate = async (name) => {
220
+ const measured = await stage(name, (context) => options.evaluate(Object.freeze({
221
+ ...context,
222
+ baseline,
223
+ candidate: candidate,
224
+ baselineRevision: baselineRevision,
225
+ candidateRevision: candidateRevision,
226
+ })));
227
+ const batch = structuredClone(measured.batch);
228
+ if (batch.baselineRevision !== baselineRevision ||
229
+ batch.candidateRevision !== candidateRevision)
230
+ throw new Error('Evaluation does not identify the admitted baseline and candidate.');
231
+ if (batch.baseline.length > 128 ||
232
+ batch.candidate.length > 128 ||
233
+ batch.attributions.length > 128)
234
+ throw new Error('A learning evaluation is bounded to 64 paired tasks.');
235
+ await append('evaluation', {
236
+ baselineRevision,
237
+ candidateRevision,
238
+ digest: createHash('sha256').update(JSON.stringify(batch)).digest('hex'),
239
+ baselineTrajectories: batch.baseline.map((t) => t.trajectoryId),
240
+ candidateTrajectories: batch.candidate.map((t) => t.trajectoryId),
241
+ }, name);
242
+ return batch;
243
+ };
244
+ const verification = await evaluate('verification');
245
+ review = reviewHarnessCandidate(verification, undefined, protection);
246
+ problem = resourceProblem(true);
247
+ if (problem)
248
+ return result('inconclusive', problem);
249
+ if (review.decision === 'reject')
250
+ return result('rejected', review.reason);
251
+ if (review.protection?.verification.status !== 'passed' ||
252
+ review.verification.unresolved.length ||
253
+ review.verification.tasks.length < 5 ||
254
+ review.verification.tasks.some((t) => t.trials !== 2))
255
+ return result('inconclusive', review.reason);
256
+ const confirmation = await evaluate('confirmation');
257
+ review = reviewHarnessCandidate(verification, confirmation, protection);
258
+ problem = resourceProblem();
259
+ if (problem)
260
+ return result('inconclusive', problem);
261
+ if (review.decision !== 'accept')
262
+ return result(review.decision === 'reject' ? 'rejected' : 'inconclusive', review.reason);
263
+ await check();
264
+ const evidence = {
265
+ key: cycleId,
266
+ source: `resident-learning-cycle:${cycleId}`,
267
+ reason: `Paired verification and fresh confirmation of guidance derived from evidence ${failure.evidence.key}.`,
268
+ };
269
+ // Validate all existing activation contracts before entering the ambiguous
270
+ // commit interval. The store repeats this against its atomic snapshot.
271
+ promoteResidentSkill(snapshot.learning, candidate, { verification, confirmation, protection }, evidence);
272
+ await append('activation-requested', {
273
+ baselineRevision,
274
+ candidateRevision,
275
+ agendaRevision: snapshot.revision,
276
+ });
277
+ options.signal.throwIfAborted();
278
+ activationRequested = true;
279
+ const updated = await options.agenda.promoteSkill(snapshot, candidate, { verification, confirmation, protection }, evidence);
280
+ activatedRevision = updated.revision;
281
+ return result('activated', 'Evaluated guidance was committed for subsequent admissions.');
282
+ };
283
+ let outcome;
284
+ try {
285
+ outcome = await execute();
286
+ }
287
+ catch (error) {
288
+ outcome = result(error instanceof ResidentConflictError
289
+ ? 'conflict'
290
+ : activationRequested
291
+ ? 'activation-unknown'
292
+ : options.signal.aborted
293
+ ? 'cancelled'
294
+ : 'failed', error instanceof Error ? error.message : String(error));
295
+ }
296
+ if (auditComplete) {
297
+ try {
298
+ await append('finished', { result: outcome });
299
+ }
300
+ catch {
301
+ /* A committed activation is not undone by a journal failure. */
302
+ }
303
+ }
304
+ return { ...outcome, auditComplete };
305
+ }
306
+ //# sourceMappingURL=learning-cycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-cycle.js","sourceRoot":"","sources":["../../../src/manager/resident/learning-cycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { z } from 'zod';
2
+ export declare const learningTargetSchema: z.ZodObject<{
3
+ skillName: z.ZodString;
4
+ evaluatorRevision: z.ZodString;
5
+ baselineRevision: z.ZodUnion<[z.ZodLiteral<"none">, z.ZodString]>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ baselineRevision: string;
8
+ skillName: string;
9
+ evaluatorRevision: string;
10
+ }, {
11
+ baselineRevision: string;
12
+ skillName: string;
13
+ evaluatorRevision: string;
14
+ }>;
15
+ export declare const learningObservationSchema: z.ZodObject<{
16
+ skillName: z.ZodString;
17
+ evaluatorRevision: z.ZodString;
18
+ baselineRevision: z.ZodUnion<[z.ZodLiteral<"none">, z.ZodString]>;
19
+ } & {
20
+ runId: z.ZodEffects<z.ZodString, string, string>;
21
+ /** Stable task identity, including input/source revision; retries keep the same key. */
22
+ taskKey: z.ZodString;
23
+ outcome: z.ZodEnum<["passed", "failed", "execution-error", "unresolved"]>;
24
+ /** Host verified all execution receipts have settled. This is not a model assertion. */
25
+ usageComplete: z.ZodBoolean;
26
+ evidence: z.ZodObject<{
27
+ key: z.ZodString;
28
+ source: z.ZodString;
29
+ reason: z.ZodString;
30
+ }, "strip", z.ZodTypeAny, {
31
+ source: string;
32
+ key: string;
33
+ reason: string;
34
+ }, {
35
+ source: string;
36
+ key: string;
37
+ reason: string;
38
+ }>;
39
+ trace: z.ZodString;
40
+ }, "strip", z.ZodTypeAny, {
41
+ runId: string;
42
+ outcome: "failed" | "unresolved" | "passed" | "execution-error";
43
+ baselineRevision: string;
44
+ evidence: {
45
+ source: string;
46
+ key: string;
47
+ reason: string;
48
+ };
49
+ usageComplete: boolean;
50
+ trace: string;
51
+ skillName: string;
52
+ evaluatorRevision: string;
53
+ taskKey: string;
54
+ }, {
55
+ runId: string;
56
+ outcome: "failed" | "unresolved" | "passed" | "execution-error";
57
+ baselineRevision: string;
58
+ evidence: {
59
+ source: string;
60
+ key: string;
61
+ reason: string;
62
+ };
63
+ usageComplete: boolean;
64
+ trace: string;
65
+ skillName: string;
66
+ evaluatorRevision: string;
67
+ taskKey: string;
68
+ }>;
69
+ /** @experimental Host-scored observation; failures need retained traces and a versioned evaluator. */
70
+ export type ResidentLearningObservation = Readonly<Omit<z.infer<typeof learningObservationSchema>, 'evidence'>> & {
71
+ readonly evidence: Readonly<z.infer<typeof learningObservationSchema>['evidence']>;
72
+ };
73
+ /** @experimental Current evaluator and installed skill revision authorized for one experiment. */
74
+ export type ResidentLearningTarget = Readonly<z.infer<typeof learningTargetSchema>>;
75
+ /** @experimental Stable insertion order; a claimed cycle may have no live executor. */
76
+ export interface ResidentLearningObservationRecord extends ResidentLearningObservation {
77
+ readonly ordinal: number;
78
+ readonly attemptedCycleId: string | null;
79
+ }
80
+ //# sourceMappingURL=learning-observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-observation.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/learning-observation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;IAKrC,wFAAwF;;;IAGxF,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIvF,CAAA;AAEF,sGAAsG;AACtG,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CACjD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAAE,UAAU,CAAC,CAC3D,GAAG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;CAClF,CAAA;AAED,kGAAkG;AAClG,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAA;AAEnF,uFAAuF;AACvF,MAAM,WAAW,iCAAkC,SAAQ,2BAA2B;IACrF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CACxC"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { residentLearningEvidenceSchema } from './learning.js';
3
+ const label = z.string().trim().min(1).max(256);
4
+ export const learningTargetSchema = z.object({
5
+ skillName: z.string().regex(/^[a-z0-9][a-z0-9_-]{0,63}$/),
6
+ evaluatorRevision: label,
7
+ baselineRevision: z.union([z.literal('none'), z.string().regex(/^[a-f0-9]{64}$/)]),
8
+ });
9
+ export const learningObservationSchema = learningTargetSchema.extend({
10
+ runId: z
11
+ .string()
12
+ .uuid()
13
+ .transform((id) => id.toLowerCase()),
14
+ /** Stable task identity, including input/source revision; retries keep the same key. */
15
+ taskKey: label,
16
+ outcome: z.enum(['passed', 'failed', 'execution-error', 'unresolved']),
17
+ /** Host verified all execution receipts have settled. This is not a model assertion. */
18
+ usageComplete: z.boolean(),
19
+ evidence: residentLearningEvidenceSchema,
20
+ trace: z.string().trim().min(1).max(32_000),
21
+ });
22
+ //# sourceMappingURL=learning-observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-observation.js","sourceRoot":"","sources":["../../../src/manager/resident/learning-observation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA;AAE9D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC;IACzD,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;CAClF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACpE,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,IAAI,EAAE;SACN,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,wFAAwF;IACxF,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;IACtE,wFAAwF;IACxF,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B,QAAQ,EAAE,8BAA8B;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;CAC3C,CAAC,CAAA"}
@@ -0,0 +1,106 @@
1
+ import type { ProjectId, TenantId } from '../../types/ids/index.js';
2
+ import { type ResidentLearningCycleEvent, type ResidentLearningCycleOptions, type ResidentLearningCycleResult } from './learning-cycle.js';
3
+ import { type ResidentLearningObservation, type ResidentLearningObservationRecord, type ResidentLearningTarget } from './learning-observation.js';
4
+ /** @experimental Private parent directories and backup policy remain host responsibilities. */
5
+ export interface SqliteResidentLearningStoreOptions {
6
+ readonly databasePath: string;
7
+ readonly artifactsPath: string;
8
+ readonly scope: {
9
+ readonly tenantId: TenantId;
10
+ readonly projectId: ProjectId;
11
+ readonly agentKey: string;
12
+ };
13
+ readonly readOnly?: boolean;
14
+ }
15
+ /** @experimental A content-addressed immutable JSON artifact, scoped through its owning cycle. */
16
+ export interface ResidentLearningArtifact {
17
+ readonly name: string;
18
+ readonly hash: string;
19
+ readonly bytes: number;
20
+ }
21
+ /** @experimental Recorded lower bounds; absence of a final result means completeness is unknown. */
22
+ export interface ResidentLearningRecordedUsage {
23
+ readonly tokens: number;
24
+ readonly costUsd: number;
25
+ readonly receipts: number;
26
+ readonly unknownTokens: number;
27
+ readonly unknownCosts: number;
28
+ }
29
+ /** @experimental Running/pending records require inspection; neither implies a live executor. */
30
+ export interface ResidentLearningCycleSummary {
31
+ readonly cycleId: string;
32
+ readonly ordinal: number;
33
+ readonly parentCycleId: string | null;
34
+ readonly skillName: string | null;
35
+ readonly status: ResidentLearningCycleResult['status'] | 'running' | 'activation-pending';
36
+ readonly sequence: number;
37
+ readonly startedAt: number;
38
+ readonly updatedAt: number;
39
+ readonly candidateRevision: string | null;
40
+ readonly result: ResidentLearningCycleResult | null;
41
+ readonly recordedUsage: ResidentLearningRecordedUsage;
42
+ }
43
+ /**
44
+ * @experimental Authoritative experiment journal and query index in one transaction.
45
+ * Large JSON artifacts are published completely before their SQLite references.
46
+ * No database transaction spans an await, model request or artifact write. JSONL
47
+ * exports are observations, never a second writable authority or a replay queue.
48
+ */
49
+ export declare class SqliteResidentLearningStore {
50
+ readonly databasePath: string;
51
+ readonly artifactsPath: string;
52
+ private readonly scope;
53
+ private readonly readOnly;
54
+ constructor(options: SqliteResidentLearningStoreOptions);
55
+ private use;
56
+ private owned;
57
+ /** Immutable, idempotent observations. Regrading requires a different evaluator revision. */
58
+ observe(input: ResidentLearningObservation): Promise<void>;
59
+ private observationsQuery;
60
+ private observationRecord;
61
+ /** Ordered inspection; summaries are host observations, not inferred task completion. */
62
+ observations(options?: {
63
+ readonly after?: number;
64
+ readonly limit?: number;
65
+ }): Promise<readonly ResidentLearningObservationRecord[]>;
66
+ /** Oldest eligible unattempted task across current targets; no model call or claim is made. */
67
+ selectObservation(input: readonly ResidentLearningTarget[]): Promise<ResidentLearningObservationRecord | null>;
68
+ private claimObservation;
69
+ /** Identical event retries are idempotent. Different content at the same sequence is refused. */
70
+ append(input: ResidentLearningCycleEvent): Promise<void>;
71
+ get(cycleId: string): Promise<ResidentLearningCycleSummary | null>;
72
+ list(options?: {
73
+ readonly before?: number;
74
+ readonly limit?: number;
75
+ }): Promise<readonly ResidentLearningCycleSummary[]>;
76
+ events(cycleId: string, options?: {
77
+ readonly after?: number;
78
+ readonly limit?: number;
79
+ }): Promise<readonly ResidentLearningCycleEvent[]>;
80
+ artifacts(cycleId: string): Promise<readonly ResidentLearningArtifact[]>;
81
+ /** Complete immutable bytes precede the reference; an interrupted publication may leave an unreferenced blob. */
82
+ putArtifact(cycleId: string, name: string, value: unknown): Promise<ResidentLearningArtifact>;
83
+ readArtifact(cycleId: string, name: string): Promise<unknown>;
84
+ }
85
+ /** @experimental Supply normal host callbacks; the store retains journal events and full paired batches. */
86
+ export declare function runStoredResidentLearningCycle(store: SqliteResidentLearningStore, options: Omit<ResidentLearningCycleOptions, 'record'>): Promise<ResidentLearningCycleResult>;
87
+ /** @experimental Host authorizes evaluators; the SDK selects a retained failure against the active skill. */
88
+ export interface ResidentLearningDiscoveryOptions extends Omit<ResidentLearningCycleOptions, 'record' | 'failure' | 'skillName'> {
89
+ readonly evaluators: readonly {
90
+ readonly skillName: string;
91
+ readonly evaluatorRevision: string;
92
+ }[];
93
+ }
94
+ /** @experimental Null cycle means no eligible work. A failed claimed cycle is never silently replayed. */
95
+ export interface ResidentLearningDiscoveryResult {
96
+ readonly observation: ResidentLearningObservationRecord | null;
97
+ readonly cycle: ResidentLearningCycleResult | null;
98
+ }
99
+ /**
100
+ * @experimental Admit at most one experiment from host-scored observations.
101
+ * Selection is local FIFO fairness, not an estimated probability of improvement.
102
+ * Claim and start are one SQLite transaction; concurrent selectors cannot run
103
+ * the same task/evaluator/baseline twice, even after a crash or reopened process.
104
+ */
105
+ export declare function runStoredResidentLearningFromObservations(store: SqliteResidentLearningStore, options: ResidentLearningDiscoveryOptions): Promise<ResidentLearningDiscoveryResult>;
106
+ //# sourceMappingURL=learning-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-store.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/learning-store.ts"],"names":[],"mappings":"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"}