hippo-memory 2.0.0 → 2.1.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 (965) hide show
  1. package/dist/agent-memories/apply.d.ts +7 -5
  2. package/dist/agent-memories/apply.js +66 -39
  3. package/dist/agent-memories/claude-code.d.ts +8 -2
  4. package/dist/agent-memories/claude-code.js +26 -7
  5. package/dist/agent-memories/copilot.js +2 -1
  6. package/dist/agent-memories/files.js +2 -1
  7. package/dist/agent-memories/legacy.d.ts +6 -3
  8. package/dist/agent-memories/legacy.js +35 -14
  9. package/dist/agent-memories/markdown.d.ts +3 -1
  10. package/dist/agent-memories/markdown.js +3 -1
  11. package/dist/agent-memories/openclaw.js +5 -2
  12. package/dist/agent-memories/plan.js +11 -1
  13. package/dist/agent-memories/project-folds.js +2 -1
  14. package/dist/agent-memories/report.d.ts +4 -1
  15. package/dist/agent-memories/report.js +43 -9
  16. package/dist/agent-memories/source.d.ts +8 -2
  17. package/dist/agent-memories/source.js +11 -3
  18. package/dist/agent-memories/sync.d.ts +7 -2
  19. package/dist/agent-memories/sync.js +141 -101
  20. package/dist/api/assemble.d.ts +6 -4
  21. package/dist/api/assemble.js +11 -6
  22. package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
  23. package/dist/api/{audit.js → auth/audit.js} +11 -11
  24. package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -15
  25. package/dist/api/{auth.js → auth/auth.js} +46 -29
  26. package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
  27. package/dist/api/{quarantine.js → auth/quarantine.js} +8 -8
  28. package/dist/api/auth/session-owners.d.ts +10 -0
  29. package/dist/api/auth/session-owners.js +35 -0
  30. package/dist/api/availability.d.ts +3 -1
  31. package/dist/api/availability.js +3 -1
  32. package/dist/api/busy.d.ts +2 -0
  33. package/dist/api/busy.js +2 -0
  34. package/dist/api/cli-surface.d.ts +6 -0
  35. package/dist/api/cli-surface.js +6 -0
  36. package/dist/api/config-of.d.ts +5 -0
  37. package/dist/api/config-of.js +6 -0
  38. package/dist/api/context-auto.d.ts +4 -1
  39. package/dist/api/context-auto.js +10 -2
  40. package/dist/api/context-render.js +14 -7
  41. package/dist/api/context-select.d.ts +4 -1
  42. package/dist/api/context-select.js +23 -14
  43. package/dist/api/context-types.d.ts +38 -12
  44. package/dist/api/context.d.ts +8 -5
  45. package/dist/api/context.js +112 -57
  46. package/dist/api/continuity.d.ts +24 -21
  47. package/dist/api/continuity.js +18 -20
  48. package/dist/api/correction-latency.d.ts +3 -1
  49. package/dist/api/correction-latency.js +3 -1
  50. package/dist/api/error-reply.d.ts +4 -1
  51. package/dist/api/error-reply.js +12 -3
  52. package/dist/api/index.d.ts +39 -23
  53. package/dist/api/index.js +21 -23
  54. package/dist/api/instruction-detect.d.ts +4 -1
  55. package/dist/api/instruction-detect.js +75 -20
  56. package/dist/api/ledger-db.d.ts +15 -11
  57. package/dist/api/ledger-db.js +21 -23
  58. package/dist/api/memories/conflicts.d.ts +33 -0
  59. package/dist/api/memories/conflicts.js +67 -0
  60. package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
  61. package/dist/api/{forget.js → memories/forget.js} +22 -15
  62. package/dist/api/memories/memories.d.ts +27 -0
  63. package/dist/api/{memories.js → memories/memories.js} +16 -21
  64. package/dist/api/memories/outcome.d.ts +22 -0
  65. package/dist/api/{outcome.js → memories/outcome.js} +14 -8
  66. package/dist/api/memories/promote.d.ts +40 -0
  67. package/dist/api/{promote.js → memories/promote.js} +35 -22
  68. package/dist/api/memories/refine.d.ts +10 -0
  69. package/dist/api/memories/refine.js +12 -0
  70. package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +16 -11
  71. package/dist/api/{remember-local.js → memories/remember-local.js} +34 -20
  72. package/dist/api/{remember.d.ts → memories/remember.d.ts} +19 -13
  73. package/dist/api/{remember.js → memories/remember.js} +42 -26
  74. package/dist/api/objects/cards.d.ts +39 -0
  75. package/dist/api/{cards.js → objects/cards.js} +12 -14
  76. package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
  77. package/dist/api/{drill-down.js → objects/drill-down.js} +7 -8
  78. package/dist/api/objects/goals.d.ts +18 -0
  79. package/dist/api/{goals.js → objects/goals.js} +12 -12
  80. package/dist/api/objects/graph.d.ts +11 -0
  81. package/dist/api/objects/graph.js +16 -0
  82. package/dist/api/objects/objects.d.ts +9 -0
  83. package/dist/api/{objects.js → objects/objects.js} +2 -4
  84. package/dist/api/objects/predictions.d.ts +11 -0
  85. package/dist/api/{predictions.js → objects/predictions.js} +7 -6
  86. package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
  87. package/dist/api/{projects.js → objects/projects.js} +8 -4
  88. package/dist/api/pilot-arm.d.ts +8 -4
  89. package/dist/api/pilot-arm.js +5 -4
  90. package/dist/api/prompt-hook.d.ts +32 -19
  91. package/dist/api/prompt-hook.js +65 -44
  92. package/dist/api/provenance-coverage.d.ts +3 -1
  93. package/dist/api/provenance-coverage.js +3 -1
  94. package/dist/api/recall/finish.d.ts +185 -0
  95. package/dist/api/recall/finish.js +301 -0
  96. package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
  97. package/dist/api/{recall-pipeline.js → recall/pipeline.js} +176 -92
  98. package/dist/api/recall/recall.d.ts +6 -0
  99. package/dist/api/{recall.js → recall/recall.js} +101 -60
  100. package/dist/api/recall/render.d.ts +39 -0
  101. package/dist/api/recall/render.js +60 -0
  102. package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
  103. package/dist/api/recall/request.js +261 -0
  104. package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
  105. package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
  106. package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -70
  107. package/dist/api/{recall-types.js → recall/types.js} +1 -1
  108. package/dist/api/session-end.d.ts +16 -12
  109. package/dist/api/session-end.js +46 -30
  110. package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
  111. package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
  112. package/dist/api/sleep/dormant.d.ts +25 -0
  113. package/dist/api/sleep/dormant.js +64 -0
  114. package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
  115. package/dist/api/sleep/learn.js +138 -0
  116. package/dist/api/sleep/sleep-run.d.ts +38 -0
  117. package/dist/api/{sleep-run.js → sleep/sleep-run.js} +51 -43
  118. package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
  119. package/dist/api/sleep/sleep.js +9 -0
  120. package/dist/api/status.d.ts +3 -1
  121. package/dist/api/status.js +3 -1
  122. package/dist/api/store-init.d.ts +4 -1
  123. package/dist/api/store-init.js +4 -1
  124. package/dist/api/tokens.d.ts +10 -9
  125. package/dist/api/tokens.js +9 -10
  126. package/dist/api/types.d.ts +28 -7
  127. package/dist/api/types.js +13 -4
  128. package/dist/capture/caller-session.d.ts +8 -2
  129. package/dist/capture/caller-session.js +16 -6
  130. package/dist/capture/capture-error.d.ts +3 -1
  131. package/dist/capture/capture-error.js +3 -1
  132. package/dist/capture/codex-patch.js +7 -2
  133. package/dist/capture/command.d.ts +4 -2
  134. package/dist/capture/command.js +33 -14
  135. package/dist/capture/compact-resume-caller.js +15 -8
  136. package/dist/capture/compact.d.ts +8 -5
  137. package/dist/capture/compact.js +34 -23
  138. package/dist/capture/compaction-items-caller.js +9 -3
  139. package/dist/capture/compaction-record.d.ts +4 -3
  140. package/dist/capture/compaction-record.js +20 -12
  141. package/dist/capture/compaction-spool.d.ts +15 -4
  142. package/dist/capture/compaction-spool.js +64 -17
  143. package/dist/capture/copilot-transcript.d.ts +11 -3
  144. package/dist/capture/copilot-transcript.js +16 -6
  145. package/dist/capture/extract.js +20 -8
  146. package/dist/capture/failure-caller.js +23 -12
  147. package/dist/capture/failure-reading.d.ts +10 -3
  148. package/dist/capture/failure-reading.js +24 -7
  149. package/dist/capture/pre-compact-caller.js +11 -4
  150. package/dist/capture/session-digest.d.ts +15 -4
  151. package/dist/capture/session-digest.js +39 -13
  152. package/dist/capture/session-end-caller.d.ts +4 -1
  153. package/dist/capture/session-end-caller.js +20 -8
  154. package/dist/capture/session-texts.d.ts +6 -2
  155. package/dist/capture/session-texts.js +22 -7
  156. package/dist/capture/session-worker.d.ts +4 -2
  157. package/dist/capture/session-worker.js +45 -17
  158. package/dist/capture/transcript.d.ts +13 -4
  159. package/dist/capture/transcript.js +32 -10
  160. package/dist/capture/working-state.d.ts +13 -4
  161. package/dist/capture/working-state.js +50 -56
  162. package/dist/cli/api-context.d.ts +14 -2
  163. package/dist/cli/api-context.js +45 -2
  164. package/dist/cli/audit.js +23 -23
  165. package/dist/cli/auth.js +19 -27
  166. package/dist/cli/briefs.d.ts +1 -1
  167. package/dist/cli/briefs.js +20 -15
  168. package/dist/cli/card.d.ts +1 -1
  169. package/dist/cli/card.js +56 -73
  170. package/dist/cli/client.d.ts +12 -4
  171. package/dist/cli/client.js +43 -13
  172. package/dist/cli/compact-resume-payload.d.ts +4 -1
  173. package/dist/cli/compact-resume-payload.js +12 -5
  174. package/dist/cli/context.js +42 -17
  175. package/dist/cli/continuity.d.ts +5 -5
  176. package/dist/cli/continuity.js +90 -107
  177. package/dist/cli/curate.d.ts +4 -3
  178. package/dist/cli/curate.js +46 -68
  179. package/dist/cli/dag.d.ts +1 -1
  180. package/dist/cli/dag.js +14 -17
  181. package/dist/cli/decisions.js +27 -26
  182. package/dist/cli/eval.js +16 -21
  183. package/dist/cli/exit.d.ts +4 -1
  184. package/dist/cli/exit.js +10 -2
  185. package/dist/cli/explain.js +12 -11
  186. package/dist/cli/flag-values.d.ts +1 -1
  187. package/dist/cli/flag-values.js +9 -18
  188. package/dist/cli/github.d.ts +6 -0
  189. package/dist/cli/github.js +25 -13
  190. package/dist/cli/goals.d.ts +1 -1
  191. package/dist/cli/goals.js +39 -56
  192. package/dist/cli/graph.d.ts +1 -1
  193. package/dist/cli/graph.js +15 -11
  194. package/dist/cli/hook-runtime.d.ts +31 -9
  195. package/dist/cli/hook-runtime.js +40 -15
  196. package/dist/cli/incidents.d.ts +1 -1
  197. package/dist/cli/incidents.js +25 -25
  198. package/dist/cli/init.js +26 -11
  199. package/dist/cli/install-steps.d.ts +12 -3
  200. package/dist/cli/install-steps.js +42 -18
  201. package/dist/cli/last-sleep.d.ts +4 -1
  202. package/dist/cli/last-sleep.js +9 -4
  203. package/dist/cli/maintenance.d.ts +1 -1
  204. package/dist/cli/maintenance.js +11 -12
  205. package/dist/cli/notes.d.ts +1 -1
  206. package/dist/cli/notes.js +8 -5
  207. package/dist/cli/object-verbs.d.ts +4 -4
  208. package/dist/cli/object-verbs.js +10 -13
  209. package/dist/cli/open-browser.js +11 -2
  210. package/dist/cli/playbooks.d.ts +3 -3
  211. package/dist/cli/playbooks.js +40 -32
  212. package/dist/cli/predictions.js +15 -19
  213. package/dist/cli/print.js +4 -2
  214. package/dist/cli/projects.js +21 -11
  215. package/dist/cli/quality-repair-once.js +5 -4
  216. package/dist/cli/recall.js +129 -93
  217. package/dist/cli/refine-llm.d.ts +15 -4
  218. package/dist/cli/refine-llm.js +16 -7
  219. package/dist/cli/remember.js +46 -50
  220. package/dist/cli/scheduler.d.ts +4 -1
  221. package/dist/cli/scheduler.js +9 -5
  222. package/dist/cli/serve.js +22 -17
  223. package/dist/cli/session-hooks.d.ts +2 -2
  224. package/dist/cli/session-hooks.js +87 -50
  225. package/dist/cli/setup.js +54 -32
  226. package/dist/cli/shared.d.ts +3 -1
  227. package/dist/cli/shared.js +24 -9
  228. package/dist/cli/slack.js +15 -24
  229. package/dist/cli/sleep-render.d.ts +3 -1
  230. package/dist/cli/sleep-render.js +8 -5
  231. package/dist/cli/sleep.js +14 -6
  232. package/dist/cli/status.d.ts +4 -4
  233. package/dist/cli/status.js +32 -27
  234. package/dist/cli/stdin.d.ts +10 -3
  235. package/dist/cli/stdin.js +10 -3
  236. package/dist/cli/transfer.d.ts +1 -1
  237. package/dist/cli/transfer.js +71 -75
  238. package/dist/cli/verbs/memory.js +8 -6
  239. package/dist/cli/verbs/objects.js +10 -4
  240. package/dist/cli/versioned-verbs.d.ts +8 -7
  241. package/dist/cli/versioned-verbs.js +31 -21
  242. package/dist/cli.js +13 -16
  243. package/dist/connectors/dlq.d.ts +6 -6
  244. package/dist/connectors/dlq.js +12 -8
  245. package/dist/connectors/github/backfill.d.ts +4 -4
  246. package/dist/connectors/github/backfill.js +6 -4
  247. package/dist/connectors/github/deletion.d.ts +6 -4
  248. package/dist/connectors/github/deletion.js +5 -5
  249. package/dist/connectors/github/dlq.d.ts +8 -6
  250. package/dist/connectors/github/dlq.js +11 -5
  251. package/dist/connectors/github/ingest.d.ts +2 -2
  252. package/dist/connectors/github/ingest.js +9 -6
  253. package/dist/connectors/github/octokit-client.d.ts +3 -1
  254. package/dist/connectors/github/octokit-client.js +7 -2
  255. package/dist/connectors/github/ratelimit.d.ts +6 -2
  256. package/dist/connectors/github/ratelimit.js +6 -2
  257. package/dist/connectors/github/signature.d.ts +14 -3
  258. package/dist/connectors/github/signature.js +17 -3
  259. package/dist/connectors/github/tenant-routing.d.ts +6 -4
  260. package/dist/connectors/github/tenant-routing.js +6 -6
  261. package/dist/connectors/github/transform.js +50 -67
  262. package/dist/connectors/github/types.d.ts +10 -3
  263. package/dist/connectors/github/types.js +6 -2
  264. package/dist/connectors/github/webhook.d.ts +5 -5
  265. package/dist/connectors/github/webhook.js +34 -23
  266. package/dist/connectors/ingest.d.ts +5 -3
  267. package/dist/connectors/ingest.js +3 -4
  268. package/dist/connectors/slack/backfill.d.ts +5 -5
  269. package/dist/connectors/slack/backfill.js +3 -3
  270. package/dist/connectors/slack/deletion.d.ts +4 -4
  271. package/dist/connectors/slack/deletion.js +6 -6
  272. package/dist/connectors/slack/dlq.d.ts +4 -4
  273. package/dist/connectors/slack/dlq.js +6 -6
  274. package/dist/connectors/slack/ingest.d.ts +6 -4
  275. package/dist/connectors/slack/ingest.js +5 -5
  276. package/dist/connectors/slack/signature.d.ts +4 -1
  277. package/dist/connectors/slack/tenant-routing.d.ts +6 -4
  278. package/dist/connectors/slack/tenant-routing.js +6 -6
  279. package/dist/connectors/slack/transform.d.ts +6 -2
  280. package/dist/connectors/slack/transform.js +6 -2
  281. package/dist/connectors/slack/types.d.ts +3 -1
  282. package/dist/connectors/slack/web-client.js +8 -3
  283. package/dist/connectors/slack/webhook.d.ts +5 -5
  284. package/dist/connectors/slack/webhook.js +19 -11
  285. package/dist/connectors/slack/workspaces.d.ts +7 -3
  286. package/dist/connectors/slack/workspaces.js +7 -3
  287. package/dist/connectors/store.d.ts +8 -0
  288. package/dist/connectors/store.js +2 -0
  289. package/dist/consolidate/conflicts.js +23 -9
  290. package/dist/consolidate/dag-summary.js +2 -1
  291. package/dist/consolidate/dag.d.ts +10 -5
  292. package/dist/consolidate/dag.js +37 -36
  293. package/dist/consolidate/decay.js +19 -6
  294. package/dist/consolidate/dedupe.d.ts +14 -5
  295. package/dist/consolidate/dedupe.js +27 -16
  296. package/dist/consolidate/flush-units.d.ts +4 -1
  297. package/dist/consolidate/flush-units.js +4 -1
  298. package/dist/consolidate/half-life-migration.d.ts +18 -8
  299. package/dist/consolidate/half-life-migration.js +48 -18
  300. package/dist/consolidate/llm-passes.js +27 -11
  301. package/dist/consolidate/memory-value-weights.d.ts +6 -2
  302. package/dist/consolidate/memory-value-weights.js +6 -2
  303. package/dist/consolidate/memory-value.d.ts +30 -10
  304. package/dist/consolidate/memory-value.js +36 -13
  305. package/dist/consolidate/merge.d.ts +4 -1
  306. package/dist/consolidate/merge.js +42 -32
  307. package/dist/consolidate/overlap-index.d.ts +8 -2
  308. package/dist/consolidate/overlap-index.js +11 -4
  309. package/dist/consolidate/physics-pass.d.ts +3 -1
  310. package/dist/consolidate/physics-pass.js +10 -7
  311. package/dist/consolidate/replay.d.ts +11 -4
  312. package/dist/consolidate/replay.js +19 -7
  313. package/dist/consolidate/run.d.ts +13 -5
  314. package/dist/consolidate/run.js +4 -4
  315. package/dist/consolidate/sleep.d.ts +14 -6
  316. package/dist/consolidate/sleep.js +41 -38
  317. package/dist/consolidate/trace.d.ts +7 -2
  318. package/dist/consolidate/trace.js +7 -2
  319. package/dist/consolidate/traces.js +26 -29
  320. package/dist/core/ablation.d.ts +9 -3
  321. package/dist/core/ablation.js +14 -4
  322. package/dist/core/active-scope.d.ts +3 -1
  323. package/dist/core/active-scope.js +3 -1
  324. package/dist/core/agent-memory-tools.d.ts +2 -0
  325. package/dist/core/agent-memory-tools.js +2 -0
  326. package/dist/core/ambient.d.ts +4 -3
  327. package/dist/core/ambient.js +8 -6
  328. package/dist/core/api-errors.d.ts +9 -3
  329. package/dist/core/api-errors.js +9 -3
  330. package/dist/core/capture-contract.d.ts +4 -1
  331. package/dist/core/capture-contract.js +27 -8
  332. package/dist/core/compare.d.ts +24 -8
  333. package/dist/core/compare.js +24 -8
  334. package/dist/core/config.d.ts +18 -9
  335. package/dist/core/config.js +24 -14
  336. package/dist/core/cosine.d.ts +4 -1
  337. package/dist/core/cosine.js +4 -1
  338. package/dist/core/handoff.d.ts +7 -2
  339. package/dist/core/handoff.js +4 -1
  340. package/dist/core/markdown.js +21 -16
  341. package/dist/core/memory-audit.js +14 -3
  342. package/dist/core/memory-quality.d.ts +12 -3
  343. package/dist/core/memory-quality.js +57 -21
  344. package/dist/core/memory.d.ts +84 -27
  345. package/dist/core/memory.js +73 -29
  346. package/dist/core/merged-row.d.ts +8 -2
  347. package/dist/core/merged-row.js +10 -3
  348. package/dist/core/package-root.d.ts +3 -1
  349. package/dist/core/package-root.js +3 -1
  350. package/dist/core/particle-refresh.d.ts +8 -0
  351. package/dist/core/particle-refresh.js +22 -0
  352. package/dist/core/physics-config.d.ts +4 -1
  353. package/dist/core/physics-config.js +6 -2
  354. package/dist/core/physics.d.ts +37 -11
  355. package/dist/core/physics.js +55 -20
  356. package/dist/core/project-identity.d.ts +34 -17
  357. package/dist/core/project-identity.js +33 -17
  358. package/dist/core/project-remote.d.ts +8 -4
  359. package/dist/core/project-remote.js +31 -14
  360. package/dist/core/recall-scope.d.ts +33 -11
  361. package/dist/core/recall-scope.js +42 -15
  362. package/dist/core/rejection-digest.d.ts +7 -0
  363. package/dist/core/rejection-digest.js +13 -0
  364. package/dist/core/salience.d.ts +3 -1
  365. package/dist/core/salience.js +10 -4
  366. package/dist/core/search-types.d.ts +15 -2
  367. package/dist/core/search-types.js +11 -0
  368. package/dist/dashboard/dashboard-actions.js +13 -2
  369. package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
  370. package/dist/dashboard/dashboard-snapshot.js +4 -4
  371. package/dist/dashboard/dashboard.js +6 -3
  372. package/dist/db/backup.js +2 -2
  373. package/dist/db/busy.d.ts +10 -3
  374. package/dist/db/busy.js +27 -5
  375. package/dist/db/connect.d.ts +10 -3
  376. package/dist/db/connect.js +8 -3
  377. package/dist/db/continuity.d.ts +1 -1
  378. package/dist/db/continuity.js +27 -11
  379. package/dist/db/meta.d.ts +4 -1
  380. package/dist/db/meta.js +4 -1
  381. package/dist/db/migrate.d.ts +10 -5
  382. package/dist/db/migrate.js +26 -13
  383. package/dist/db/migrations/index.d.ts +1 -1
  384. package/dist/db/migrations/index.js +3 -1
  385. package/dist/db/migrations/types.d.ts +2 -1
  386. package/dist/db/migrations/v12.js +2 -1
  387. package/dist/db/migrations/v14.js +2 -1
  388. package/dist/db/migrations/v15.js +4 -2
  389. package/dist/db/migrations/v16.js +6 -3
  390. package/dist/db/migrations/v17.js +2 -1
  391. package/dist/db/migrations/v19.js +4 -2
  392. package/dist/db/migrations/v20.js +2 -1
  393. package/dist/db/migrations/v22.js +12 -6
  394. package/dist/db/migrations/v23.js +6 -3
  395. package/dist/db/migrations/v24.js +6 -3
  396. package/dist/db/migrations/v25.js +4 -2
  397. package/dist/db/migrations/v26.js +4 -2
  398. package/dist/db/migrations/v27.js +6 -3
  399. package/dist/db/migrations/v28.js +4 -2
  400. package/dist/db/migrations/v29.js +4 -2
  401. package/dist/db/migrations/v30.js +6 -3
  402. package/dist/db/migrations/v31.js +4 -2
  403. package/dist/db/migrations/v32.js +6 -3
  404. package/dist/db/migrations/v33.js +4 -2
  405. package/dist/db/migrations/v34.js +2 -1
  406. package/dist/db/migrations/v35.js +2 -1
  407. package/dist/db/migrations/v36.js +2 -1
  408. package/dist/db/migrations/v37.js +10 -5
  409. package/dist/db/migrations/v38.js +10 -5
  410. package/dist/db/migrations/v39.js +14 -6
  411. package/dist/db/migrations/v40.js +4 -2
  412. package/dist/db/migrations/v41.js +4 -2
  413. package/dist/db/migrations/v42.js +2 -1
  414. package/dist/db/migrations/v44.js +4 -2
  415. package/dist/db/migrations/v45.js +4 -2
  416. package/dist/db/migrations/v49.js +2 -1
  417. package/dist/db/migrations/v50.js +4 -2
  418. package/dist/db/migrations/v51.js +4 -2
  419. package/dist/db/migrations/v52.js +2 -1
  420. package/dist/db/migrations/v53.js +8 -4
  421. package/dist/db/migrations/v54.js +2 -1
  422. package/dist/db/migrations/v55.js +4 -2
  423. package/dist/db/migrations/v56.d.ts +3 -0
  424. package/dist/db/migrations/v56.js +28 -0
  425. package/dist/db/open.d.ts +24 -12
  426. package/dist/db/open.js +25 -13
  427. package/dist/db/physics-state.d.ts +8 -4
  428. package/dist/db/physics-state.js +13 -20
  429. package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
  430. package/dist/db/raw-archive-mirror-cleanup.js +6 -4
  431. package/dist/db/request-stores.d.ts +19 -5
  432. package/dist/db/request-stores.js +14 -5
  433. package/dist/db/tables.d.ts +2 -1
  434. package/dist/db/tables.js +12 -4
  435. package/dist/db/vector-store.d.ts +13 -4
  436. package/dist/db/vector-store.js +34 -14
  437. package/dist/db/wal-checkpointer.d.ts +2 -1
  438. package/dist/db/wal-checkpointer.js +19 -7
  439. package/dist/doctor.d.ts +4 -1
  440. package/dist/doctor.js +121 -39
  441. package/dist/embeddings/local.d.ts +8 -4
  442. package/dist/embeddings/local.js +9 -5
  443. package/dist/embeddings/provider.d.ts +19 -10
  444. package/dist/embeddings/provider.js +31 -17
  445. package/dist/embeddings/transformers.d.ts +16 -4
  446. package/dist/embeddings/transformers.js +32 -15
  447. package/dist/entry/json-hooks.d.ts +1 -1
  448. package/dist/entry/json-hooks.js +1 -1
  449. package/dist/entry/project-identity.js +2 -1
  450. package/dist/entry/session-text.d.ts +1 -1
  451. package/dist/entry/session-text.js +1 -1
  452. package/dist/entry/sqlite-handles.d.ts +10 -0
  453. package/dist/entry/sqlite-handles.js +9 -0
  454. package/dist/entry/store-kit.d.ts +19 -6
  455. package/dist/entry/store-kit.js +6 -4
  456. package/dist/eval/eval-stats.d.ts +27 -8
  457. package/dist/eval/eval-stats.js +17 -5
  458. package/dist/eval/eval-suite.d.ts +3 -1
  459. package/dist/eval/eval-suite.js +409 -187
  460. package/dist/eval/eval.d.ts +8 -2
  461. package/dist/eval/eval.js +8 -2
  462. package/dist/eval/judgment.js +16 -6
  463. package/dist/graph/delta.d.ts +9 -42
  464. package/dist/graph/delta.js +17 -11
  465. package/dist/graph/extract.d.ts +10 -7
  466. package/dist/graph/extract.js +57 -25
  467. package/dist/graph/recall.d.ts +12 -4
  468. package/dist/graph/recall.js +30 -13
  469. package/dist/graph/stream.d.ts +18 -6
  470. package/dist/graph/stream.js +32 -10
  471. package/dist/graph/view.d.ts +19 -6
  472. package/dist/graph/view.js +42 -17
  473. package/dist/hooks/codex-session.js +2 -2
  474. package/dist/hooks/codex-wrapper.d.ts +3 -1
  475. package/dist/hooks/codex-wrapper.js +9 -4
  476. package/dist/hooks/copilot.d.ts +19 -5
  477. package/dist/hooks/copilot.js +54 -15
  478. package/dist/hooks/hook-blocks.d.ts +4 -1
  479. package/dist/hooks/hook-blocks.js +8 -3
  480. package/dist/hooks/json-hooks.d.ts +9 -5
  481. package/dist/hooks/json-hooks.js +69 -34
  482. package/dist/hooks/opencode.js +15 -5
  483. package/dist/hooks/shared.d.ts +27 -8
  484. package/dist/hooks/shared.js +57 -16
  485. package/dist/importers/core.d.ts +12 -4
  486. package/dist/importers/core.js +8 -7
  487. package/dist/importers/markdown-parse.d.ts +15 -5
  488. package/dist/importers/markdown-parse.js +16 -7
  489. package/dist/importers/markdown.js +6 -9
  490. package/dist/importers/sources.js +10 -23
  491. package/dist/importers/vault.d.ts +2 -2
  492. package/dist/importers/vault.js +43 -27
  493. package/dist/index.d.ts +32 -6
  494. package/dist/index.js +25 -7
  495. package/dist/learn/autolearn.d.ts +17 -6
  496. package/dist/learn/autolearn.js +53 -24
  497. package/dist/learn/churn-git.d.ts +4 -1
  498. package/dist/learn/churn-git.js +29 -5
  499. package/dist/learn/extract.d.ts +4 -1
  500. package/dist/learn/extract.js +16 -9
  501. package/dist/learn/forward-claim-detector.d.ts +17 -5
  502. package/dist/learn/forward-claim-detector.js +34 -15
  503. package/dist/learn/invalidation.d.ts +12 -7
  504. package/dist/learn/invalidation.js +56 -27
  505. package/dist/learn/roots.d.ts +3 -0
  506. package/dist/learn/roots.js +5 -0
  507. package/dist/mcp/admin-tools.d.ts +5 -5
  508. package/dist/mcp/admin-tools.js +28 -23
  509. package/dist/mcp/format.d.ts +1 -1
  510. package/dist/mcp/format.js +4 -2
  511. package/dist/mcp/framing.d.ts +3 -1
  512. package/dist/mcp/framing.js +20 -8
  513. package/dist/mcp/memory-tools.d.ts +3 -3
  514. package/dist/mcp/memory-tools.js +18 -14
  515. package/dist/mcp/protocol.d.ts +32 -16
  516. package/dist/mcp/protocol.js +12 -9
  517. package/dist/mcp/recall-tools.d.ts +3 -3
  518. package/dist/mcp/recall-tools.js +62 -74
  519. package/dist/mcp/request.d.ts +7 -5
  520. package/dist/mcp/request.js +57 -74
  521. package/dist/mcp/server.d.ts +3 -1
  522. package/dist/mcp/server.js +8 -3
  523. package/dist/mcp/session-state.d.ts +1 -1
  524. package/dist/mcp/session-state.js +4 -3
  525. package/dist/mcp/shared-gate.d.ts +3 -2
  526. package/dist/mcp/shared-gate.js +3 -2
  527. package/dist/mcp/stdio.d.ts +6 -3
  528. package/dist/mcp/stdio.js +52 -21
  529. package/dist/mcp/tool-args.d.ts +4 -1
  530. package/dist/mcp/tool-args.js +8 -3
  531. package/dist/mcp/tools.js +76 -32
  532. package/dist/objects/customer-notes.d.ts +12 -10
  533. package/dist/objects/customer-notes.js +21 -15
  534. package/dist/objects/decisions.d.ts +18 -10
  535. package/dist/objects/decisions.js +23 -17
  536. package/dist/objects/descriptor.js +2 -1
  537. package/dist/objects/fields.d.ts +4 -1
  538. package/dist/objects/fields.js +6 -2
  539. package/dist/objects/incidents.d.ts +14 -16
  540. package/dist/objects/incidents.js +29 -30
  541. package/dist/objects/lifecycle.d.ts +0 -4
  542. package/dist/objects/lifecycle.js +21 -24
  543. package/dist/objects/policies.d.ts +12 -16
  544. package/dist/objects/policies.js +17 -21
  545. package/dist/objects/processes.d.ts +16 -10
  546. package/dist/objects/processes.js +20 -15
  547. package/dist/objects/project-briefs.d.ts +13 -14
  548. package/dist/objects/project-briefs.js +33 -39
  549. package/dist/objects/skills.d.ts +10 -12
  550. package/dist/objects/skills.js +17 -22
  551. package/dist/postinstall.js +15 -7
  552. package/dist/predictions/planning-fallacy.d.ts +19 -6
  553. package/dist/predictions/planning-fallacy.js +4 -2
  554. package/dist/rerankers/clef.d.ts +8 -2
  555. package/dist/rerankers/clef.js +14 -9
  556. package/dist/rerankers/cross-encoder.d.ts +2 -1
  557. package/dist/rerankers/cross-encoder.js +9 -6
  558. package/dist/rerankers/index.js +2 -1
  559. package/dist/rerankers/jev.js +2 -1
  560. package/dist/rerankers/llm.d.ts +6 -2
  561. package/dist/rerankers/llm.js +8 -3
  562. package/dist/rerankers/remote.d.ts +3 -1
  563. package/dist/rerankers/remote.js +5 -2
  564. package/dist/rerankers/types.d.ts +6 -2
  565. package/dist/search/bm25-search.d.ts +3 -1
  566. package/dist/search/bm25-search.js +15 -2
  567. package/dist/search/boosts.js +4 -3
  568. package/dist/search/embed-memories.d.ts +10 -5
  569. package/dist/search/embed-memories.js +62 -36
  570. package/dist/search/engine.d.ts +4 -1
  571. package/dist/search/engine.js +6 -2
  572. package/dist/search/goal-boost.d.ts +10 -3
  573. package/dist/search/goal-boost.js +13 -6
  574. package/dist/search/hybrid-score.d.ts +4 -1
  575. package/dist/search/hybrid-score.js +4 -1
  576. package/dist/search/hybrid.d.ts +23 -8
  577. package/dist/search/hybrid.js +12 -7
  578. package/dist/search/multihop.js +14 -13
  579. package/dist/search/path-context.d.ts +10 -3
  580. package/dist/search/path-context.js +10 -3
  581. package/dist/search/physics-search.d.ts +9 -4
  582. package/dist/search/physics-search.js +38 -14
  583. package/dist/search/rerank.d.ts +2 -1
  584. package/dist/search/rerank.js +2 -1
  585. package/dist/search/rrf.d.ts +14 -5
  586. package/dist/search/rrf.js +11 -4
  587. package/dist/search/vector.d.ts +8 -2
  588. package/dist/search/vector.js +9 -3
  589. package/dist/server/auth.d.ts +18 -14
  590. package/dist/server/auth.js +69 -38
  591. package/dist/server/boot.d.ts +3 -1
  592. package/dist/server/boot.js +95 -56
  593. package/dist/server/client-ip.d.ts +11 -4
  594. package/dist/server/client-ip.js +27 -10
  595. package/dist/server/cursor.d.ts +10 -3
  596. package/dist/server/cursor.js +10 -3
  597. package/dist/server/deadline.d.ts +5 -2
  598. package/dist/server/deadline.js +10 -3
  599. package/dist/server/key-check-bounds.js +12 -4
  600. package/dist/server/lifecycle.d.ts +4 -1
  601. package/dist/server/lifecycle.js +10 -4
  602. package/dist/server/mcp-http.d.ts +2 -1
  603. package/dist/server/mcp-http.js +37 -22
  604. package/dist/server/rate-limit.d.ts +17 -5
  605. package/dist/server/rate-limit.js +55 -26
  606. package/dist/server/ready.js +7 -4
  607. package/dist/server/request.d.ts +15 -4
  608. package/dist/server/request.js +42 -15
  609. package/dist/server/route-checks.d.ts +4 -1
  610. package/dist/server/route-checks.js +8 -3
  611. package/dist/server/route-table.d.ts +8 -6
  612. package/dist/server/route-table.js +547 -93
  613. package/dist/server/routes/admin.d.ts +7 -7
  614. package/dist/server/routes/admin.js +36 -15
  615. package/dist/server/routes/customer-notes.d.ts +5 -5
  616. package/dist/server/routes/customer-notes.js +5 -4
  617. package/dist/server/routes/decisions.d.ts +5 -5
  618. package/dist/server/routes/decisions.js +12 -6
  619. package/dist/server/routes/incidents.d.ts +5 -5
  620. package/dist/server/routes/incidents.js +10 -4
  621. package/dist/server/routes/memories.d.ts +8 -8
  622. package/dist/server/routes/memories.js +12 -19
  623. package/dist/server/routes/object-routes.d.ts +8 -5
  624. package/dist/server/routes/object-routes.js +4 -2
  625. package/dist/server/routes/policies.d.ts +6 -6
  626. package/dist/server/routes/policies.js +11 -4
  627. package/dist/server/routes/predictions.d.ts +5 -5
  628. package/dist/server/routes/predictions.js +9 -4
  629. package/dist/server/routes/processes.d.ts +5 -5
  630. package/dist/server/routes/processes.js +15 -6
  631. package/dist/server/routes/project-briefs.d.ts +6 -6
  632. package/dist/server/routes/project-briefs.js +3 -2
  633. package/dist/server/routes/recall.d.ts +3 -3
  634. package/dist/server/routes/recall.js +21 -10
  635. package/dist/server/routes/skills.d.ts +6 -6
  636. package/dist/server/routes/skills.js +12 -4
  637. package/dist/server/server-detect.d.ts +24 -8
  638. package/dist/server/server-detect.js +57 -22
  639. package/dist/server/sleep-child.js +16 -10
  640. package/dist/server/sleep-offload.d.ts +8 -5
  641. package/dist/server/sleep-offload.js +41 -19
  642. package/dist/server/tls.d.ts +4 -1
  643. package/dist/server/tls.js +13 -5
  644. package/dist/server/types.d.ts +38 -26
  645. package/dist/server/validation.d.ts +4 -1
  646. package/dist/server/validation.js +22 -9
  647. package/dist/server.d.ts +15 -10
  648. package/dist/server.js +32 -12
  649. package/dist/sharing/global-store.d.ts +5 -10
  650. package/dist/sharing/global-store.js +8 -43
  651. package/dist/sharing/global-sync.d.ts +3 -1
  652. package/dist/sharing/global-sync.js +16 -6
  653. package/dist/sharing/project-merge.d.ts +25 -7
  654. package/dist/sharing/project-merge.js +49 -17
  655. package/dist/sharing/search-both.d.ts +8 -4
  656. package/dist/sharing/search-both.js +19 -12
  657. package/dist/sharing/share.d.ts +8 -4
  658. package/dist/sharing/share.js +39 -15
  659. package/dist/store/ambient.js +9 -5
  660. package/dist/store/audit-event.d.ts +2 -2
  661. package/dist/store/audit-event.js +8 -3
  662. package/dist/store/audit.d.ts +6 -3
  663. package/dist/store/audit.js +16 -6
  664. package/dist/store/auth.d.ts +4 -2
  665. package/dist/store/auth.js +63 -20
  666. package/dist/store/busy.d.ts +9 -0
  667. package/dist/store/busy.js +16 -0
  668. package/dist/store/candidates.d.ts +12 -5
  669. package/dist/store/candidates.js +75 -36
  670. package/dist/store/capture-write.d.ts +2 -1
  671. package/dist/store/capture-write.js +2 -1
  672. package/dist/store/card-detail.d.ts +4 -4
  673. package/dist/store/card-detail.js +15 -8
  674. package/dist/store/cards.d.ts +24 -10
  675. package/dist/store/cards.js +93 -60
  676. package/dist/store/compaction-caller.d.ts +2 -1
  677. package/dist/store/compaction-caller.js +2 -1
  678. package/dist/store/compactions-record.d.ts +14 -8
  679. package/dist/store/compactions-record.js +95 -32
  680. package/dist/store/compactions.js +35 -15
  681. package/dist/store/conflicts.d.ts +9 -4
  682. package/dist/store/conflicts.js +100 -45
  683. package/dist/store/connectors/dlq.d.ts +17 -5
  684. package/dist/store/connectors/dlq.js +56 -5
  685. package/dist/store/connectors/event-log.d.ts +111 -2
  686. package/dist/store/connectors/event-log.js +2 -1
  687. package/dist/store/connectors/github.d.ts +6 -3
  688. package/dist/store/connectors/github.js +24 -40
  689. package/dist/store/connectors/slack.d.ts +2 -1
  690. package/dist/store/connectors/slack.js +25 -37
  691. package/dist/store/dashboard-reads.d.ts +7 -3
  692. package/dist/store/dashboard-reads.js +32 -11
  693. package/dist/store/delete-and-batch.d.ts +17 -11
  694. package/dist/store/delete-and-batch.js +67 -26
  695. package/dist/store/delivery-recorder.d.ts +8 -5
  696. package/dist/store/delivery-recorder.js +70 -32
  697. package/dist/store/descendant-page.d.ts +2 -1
  698. package/dist/store/descendant-page.js +24 -9
  699. package/dist/store/diagnostics.d.ts +2 -1
  700. package/dist/store/diagnostics.js +2 -1
  701. package/dist/store/doctor-reads.d.ts +2 -1
  702. package/dist/store/doctor-reads.js +13 -5
  703. package/dist/store/dormant.d.ts +19 -11
  704. package/dist/store/dormant.js +40 -18
  705. package/dist/store/embeddings/index.d.ts +13 -9
  706. package/dist/store/embeddings/index.js +19 -12
  707. package/dist/store/entry-reads.d.ts +49 -20
  708. package/dist/store/entry-reads.js +181 -66
  709. package/dist/store/entry-row.d.ts +10 -6
  710. package/dist/store/entry-row.js +17 -12
  711. package/dist/store/entry-writes.d.ts +22 -10
  712. package/dist/store/entry-writes.js +41 -14
  713. package/dist/store/failure-log-at.js +1 -1
  714. package/dist/store/failure-log.d.ts +4 -2
  715. package/dist/store/failure-log.js +13 -6
  716. package/dist/store/gated-write.d.ts +3 -3
  717. package/dist/store/gated-write.js +3 -3
  718. package/dist/store/goals.d.ts +5 -4
  719. package/dist/store/goals.js +8 -10
  720. package/dist/store/graph-apply.d.ts +21 -0
  721. package/dist/{graph/write.js → store/graph-apply.js} +31 -11
  722. package/dist/store/graph-queue.d.ts +9 -6
  723. package/dist/store/graph-queue.js +15 -10
  724. package/dist/store/graph-reads.d.ts +16 -11
  725. package/dist/store/graph-reads.js +24 -15
  726. package/dist/store/graph-rows.d.ts +41 -3
  727. package/dist/store/graph-rows.js +10 -7
  728. package/dist/store/graph-view-rows.js +14 -7
  729. package/dist/store/graph-writes.d.ts +16 -10
  730. package/dist/store/graph-writes.js +59 -36
  731. package/dist/store/handoffs.d.ts +4 -4
  732. package/dist/store/handoffs.js +40 -19
  733. package/dist/store/index-and-stats.d.ts +2 -2
  734. package/dist/store/index-and-stats.js +6 -5
  735. package/dist/store/index.d.ts +3 -1
  736. package/dist/store/index.js +1 -0
  737. package/dist/store/key-audit.d.ts +2 -1
  738. package/dist/store/key-audit.js +2 -1
  739. package/dist/store/key-writes.d.ts +2 -1
  740. package/dist/store/key-writes.js +9 -2
  741. package/dist/store/ledger-turn.d.ts +4 -1
  742. package/dist/store/ledger-turn.js +7 -2
  743. package/dist/store/mirrors.d.ts +11 -4
  744. package/dist/store/mirrors.js +88 -16
  745. package/dist/store/narrow.d.ts +6 -0
  746. package/dist/store/narrow.js +11 -0
  747. package/dist/store/open.d.ts +4 -2
  748. package/dist/store/open.js +18 -9
  749. package/dist/store/pilot-arm.d.ts +2 -1
  750. package/dist/store/pilot-arm.js +18 -6
  751. package/dist/store/planning-fallacy-evidence.d.ts +2 -2
  752. package/dist/store/planning-fallacy-evidence.js +8 -5
  753. package/dist/store/port/agent-import.d.ts +62 -0
  754. package/dist/store/port/agent-import.js +2 -0
  755. package/dist/store/port/consolidation.d.ts +129 -0
  756. package/dist/store/port/consolidation.js +2 -0
  757. package/dist/store/port/learning.d.ts +19 -0
  758. package/dist/store/port/learning.js +2 -0
  759. package/dist/store/port/local-files.d.ts +18 -0
  760. package/dist/store/port/local-files.js +2 -0
  761. package/dist/store/port/promotion.d.ts +20 -0
  762. package/dist/store/port/promotion.js +3 -0
  763. package/dist/store/port-groups.d.ts +160 -0
  764. package/dist/store/port-groups.js +2 -0
  765. package/dist/store/port.d.ts +215 -229
  766. package/dist/store/port.js +3 -9
  767. package/dist/store/predictions.d.ts +14 -10
  768. package/dist/store/predictions.js +37 -17
  769. package/dist/store/project-tags.d.ts +4 -1
  770. package/dist/store/project-tags.js +16 -5
  771. package/dist/store/quality-repair.d.ts +8 -4
  772. package/dist/store/quality-repair.js +53 -20
  773. package/dist/store/quarantine.d.ts +1 -0
  774. package/dist/store/quarantine.js +23 -9
  775. package/dist/store/raw-archive.d.ts +5 -4
  776. package/dist/store/raw-archive.js +11 -10
  777. package/dist/store/recall-trace.d.ts +22 -17
  778. package/dist/store/recall-trace.js +126 -63
  779. package/dist/store/rejected-values.d.ts +15 -10
  780. package/dist/store/rejected-values.js +33 -12
  781. package/dist/store/rejection.d.ts +12 -11
  782. package/dist/store/rejection.js +18 -19
  783. package/dist/store/report-reads.d.ts +2 -1
  784. package/dist/store/report-reads.js +2 -1
  785. package/dist/store/rows.d.ts +7 -5
  786. package/dist/store/rows.js +18 -11
  787. package/dist/store/rule-sql.d.ts +6 -4
  788. package/dist/store/rule-sql.js +16 -9
  789. package/dist/store/search-rows.d.ts +14 -9
  790. package/dist/store/search-rows.js +48 -23
  791. package/dist/store/sessions.d.ts +12 -10
  792. package/dist/store/sessions.js +40 -21
  793. package/dist/store/set-aside.d.ts +2 -2
  794. package/dist/store/set-aside.js +18 -5
  795. package/dist/store/sqlite/agent-import.d.ts +3 -0
  796. package/dist/store/sqlite/agent-import.js +77 -0
  797. package/dist/store/sqlite/cards-group.d.ts +6 -0
  798. package/dist/store/sqlite/cards-group.js +37 -0
  799. package/dist/store/sqlite/conflicts-group.d.ts +6 -0
  800. package/dist/store/sqlite/conflicts-group.js +18 -0
  801. package/dist/store/sqlite/connector-events-group.d.ts +2 -1
  802. package/dist/store/sqlite/connector-events-group.js +17 -6
  803. package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
  804. package/dist/store/sqlite/connector-writes-group.js +9 -4
  805. package/dist/store/sqlite/consolidation-group.d.ts +4 -0
  806. package/dist/store/sqlite/consolidation-group.js +64 -0
  807. package/dist/store/sqlite/dag-reads-group.js +1 -1
  808. package/dist/store/sqlite/dormant-group.d.ts +6 -0
  809. package/dist/store/sqlite/dormant-group.js +29 -0
  810. package/dist/store/sqlite/entry-writes-group.d.ts +6 -3
  811. package/dist/store/sqlite/entry-writes-group.js +37 -14
  812. package/dist/store/sqlite/error-codec.d.ts +4 -2
  813. package/dist/store/sqlite/error-codec.js +32 -10
  814. package/dist/store/sqlite/executor-counts.js +2 -1
  815. package/dist/store/sqlite/executor.d.ts +8 -3
  816. package/dist/store/sqlite/executor.js +56 -18
  817. package/dist/store/sqlite/global-promote.d.ts +5 -0
  818. package/dist/store/sqlite/global-promote.js +48 -0
  819. package/dist/store/sqlite/goals-group.d.ts +6 -0
  820. package/dist/store/sqlite/goals-group.js +23 -0
  821. package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
  822. package/dist/store/sqlite/graph-reads-group.js +2 -1
  823. package/dist/store/sqlite/held-connection.d.ts +7 -1
  824. package/dist/store/sqlite/held-connection.js +34 -7
  825. package/dist/store/sqlite/last-recall-group.d.ts +4 -2
  826. package/dist/store/sqlite/last-recall-group.js +9 -4
  827. package/dist/store/sqlite/learning-group.d.ts +4 -0
  828. package/dist/store/sqlite/learning-group.js +17 -0
  829. package/dist/store/sqlite/maintenance-groups.js +2 -1
  830. package/dist/store/sqlite/object-rows.d.ts +6 -3
  831. package/dist/store/sqlite/object-rows.js +34 -5
  832. package/dist/store/sqlite/objects-group.d.ts +5 -4
  833. package/dist/store/sqlite/objects-group.js +84 -33
  834. package/dist/store/sqlite/predictions-group.d.ts +2 -1
  835. package/dist/store/sqlite/predictions-group.js +4 -2
  836. package/dist/store/sqlite/promotion-group.d.ts +3 -0
  837. package/dist/store/sqlite/promotion-group.js +10 -0
  838. package/dist/store/sqlite/quarantine-group.d.ts +2 -1
  839. package/dist/store/sqlite/quarantine-group.js +4 -2
  840. package/dist/store/sqlite/reports-group.d.ts +6 -0
  841. package/dist/store/sqlite/reports-group.js +33 -0
  842. package/dist/store/sqlite/request-scope.d.ts +6 -0
  843. package/dist/store/sqlite/request-scope.js +18 -0
  844. package/dist/store/sqlite/sessions-group.d.ts +6 -0
  845. package/dist/store/sqlite/sessions-group.js +46 -0
  846. package/dist/store/sqlite/store.d.ts +22 -11
  847. package/dist/store/sqlite/store.js +84 -11
  848. package/dist/store/sqlite/vector-pack.js +2 -1
  849. package/dist/store/sqlite/vector-reads-group.js +2 -1
  850. package/dist/store/sqlite/worker-jobs.d.ts +2 -1
  851. package/dist/store/sqlite/worker-jobs.js +19 -7
  852. package/dist/store/sqlite/worker-ops.d.ts +10 -5
  853. package/dist/store/sqlite/worker-ops.js +6 -3
  854. package/dist/store/sqlite/worker-store.d.ts +4 -3
  855. package/dist/store/sqlite/worker-store.js +24 -14
  856. package/dist/store/summaries.d.ts +19 -12
  857. package/dist/store/summaries.js +36 -21
  858. package/dist/store/summary-dirty.d.ts +2 -1
  859. package/dist/store/summary-dirty.js +2 -1
  860. package/dist/store/tenant.d.ts +3 -2
  861. package/dist/store/tenant.js +5 -4
  862. package/dist/store/token-ledger-rows.js +6 -3
  863. package/dist/store/token-ledger.d.ts +19 -13
  864. package/dist/store/token-ledger.js +27 -14
  865. package/dist/store/tombstone-checks.d.ts +4 -1
  866. package/dist/store/tombstone-checks.js +10 -1
  867. package/dist/store/usage-reports.js +2 -1
  868. package/dist/store/vector-index.d.ts +8 -5
  869. package/dist/store/vector-index.js +24 -10
  870. package/dist/store/working-memory.d.ts +6 -4
  871. package/dist/store/working-memory.js +14 -9
  872. package/dist/support-bundle.js +10 -5
  873. package/dist/trust/quarantine.d.ts +1 -2
  874. package/dist/trust/quarantine.js +1 -5
  875. package/dist/trust/reject-flow.d.ts +12 -3
  876. package/dist/trust/reject-flow.js +12 -4
  877. package/dist/util/anthropic-messages.d.ts +4 -1
  878. package/dist/util/anthropic-messages.js +14 -5
  879. package/dist/util/atomic-write.d.ts +4 -2
  880. package/dist/util/atomic-write.js +25 -14
  881. package/dist/util/compaction-items.d.ts +4 -1
  882. package/dist/util/compaction-items.js +8 -2
  883. package/dist/util/crash-handlers.d.ts +7 -2
  884. package/dist/util/crash-handlers.js +13 -4
  885. package/dist/util/env.d.ts +16 -4
  886. package/dist/util/env.js +78 -25
  887. package/dist/util/home-path.js +12 -6
  888. package/dist/util/hook-payload.d.ts +3 -1
  889. package/dist/util/hook-payload.js +3 -1
  890. package/dist/util/http-retry.d.ts +12 -6
  891. package/dist/util/http-retry.js +16 -6
  892. package/dist/util/http-util.d.ts +20 -5
  893. package/dist/util/http-util.js +28 -9
  894. package/dist/util/json.d.ts +4 -1
  895. package/dist/util/json.js +4 -1
  896. package/dist/util/keyset.js +2 -1
  897. package/dist/util/limits.js +4 -2
  898. package/dist/util/log.d.ts +13 -5
  899. package/dist/util/log.js +29 -6
  900. package/dist/util/net.d.ts +5 -0
  901. package/dist/util/net.js +19 -0
  902. package/dist/util/real-path.d.ts +2 -1
  903. package/dist/util/real-path.js +4 -3
  904. package/dist/util/request-scope.d.ts +11 -3
  905. package/dist/util/request-scope.js +13 -4
  906. package/dist/util/same-text.d.ts +10 -3
  907. package/dist/util/same-text.js +10 -3
  908. package/dist/util/secret-detect.d.ts +24 -7
  909. package/dist/util/secret-detect.js +49 -14
  910. package/dist/util/spawn-argv.d.ts +3 -1
  911. package/dist/util/spawn-argv.js +13 -4
  912. package/dist/util/sqlite-blocked.d.ts +15 -4
  913. package/dist/util/sqlite-blocked.js +19 -6
  914. package/dist/util/stored-json.d.ts +4 -1
  915. package/dist/util/stored-json.js +6 -2
  916. package/dist/util/stream-tee.d.ts +2 -1
  917. package/dist/util/stream-tee.js +8 -5
  918. package/dist/util/transcript-tail.d.ts +4 -1
  919. package/dist/util/transcript-tail.js +4 -1
  920. package/dist/util/version.d.ts +8 -3
  921. package/dist/util/version.js +8 -3
  922. package/dist/util/write-budget.d.ts +7 -2
  923. package/dist/util/write-budget.js +5 -2
  924. package/dist/util/yaml.d.ts +4 -1
  925. package/dist/util/yaml.js +4 -1
  926. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  927. package/extensions/openclaw-plugin/package.json +1 -1
  928. package/openclaw.plugin.json +1 -1
  929. package/package.json +2 -1
  930. package/scripts/postinstall.cjs +3 -1
  931. package/dist/api/cards.d.ts +0 -42
  932. package/dist/api/conflicts.d.ts +0 -28
  933. package/dist/api/conflicts.js +0 -61
  934. package/dist/api/dormant.d.ts +0 -14
  935. package/dist/api/dormant.js +0 -58
  936. package/dist/api/goals.d.ts +0 -18
  937. package/dist/api/graph.d.ts +0 -8
  938. package/dist/api/graph.js +0 -8
  939. package/dist/api/learn.js +0 -125
  940. package/dist/api/memories.d.ts +0 -25
  941. package/dist/api/objects.d.ts +0 -9
  942. package/dist/api/outcome.d.ts +0 -19
  943. package/dist/api/predictions.d.ts +0 -11
  944. package/dist/api/promote.d.ts +0 -36
  945. package/dist/api/recall-core.d.ts +0 -4
  946. package/dist/api/recall-core.js +0 -125
  947. package/dist/api/recall-finish.d.ts +0 -53
  948. package/dist/api/recall-finish.js +0 -30
  949. package/dist/api/recall-history.d.ts +0 -64
  950. package/dist/api/recall-history.js +0 -159
  951. package/dist/api/recall-record.d.ts +0 -43
  952. package/dist/api/recall-record.js +0 -78
  953. package/dist/api/recall-request.js +0 -121
  954. package/dist/api/recall.d.ts +0 -6
  955. package/dist/api/refine.d.ts +0 -7
  956. package/dist/api/refine.js +0 -10
  957. package/dist/api/session-owners.d.ts +0 -4
  958. package/dist/api/session-owners.js +0 -17
  959. package/dist/api/sleep-run.d.ts +0 -26
  960. package/dist/api/sleep.js +0 -11
  961. package/dist/graph/write.d.ts +0 -14
  962. package/dist/store/sqlite/busy.d.ts +0 -3
  963. package/dist/store/sqlite/busy.js +0 -8
  964. package/dist/store/sqlite/local.d.ts +0 -4
  965. package/dist/store/sqlite/local.js +0 -8
@@ -1,21 +1,24 @@
1
- // The local remember pipeline for a caller in this process (`hippo remember`, `hippo watch`): schema fit, the salience gate, the
2
- // write, the read-back, the `remembered` counter and the embedding kick-off, in that order. Fact extraction is a second step,
3
- // which the caller runs after it has reported the write. Nothing here prints; the caller reports from what comes back.
4
- import { loadConfig } from '../core/config.js';
5
- import { computeSalience } from '../core/salience.js';
6
- import { loadNewestEntries, schemaFitInStore } from '../store/candidates.js';
7
- import { embedMemory } from '../search/embed-memories.js';
8
- import { loadAllEntries, readEntry } from '../store/entry-reads.js';
9
- import { updateStats } from '../store/index-and-stats.js';
10
- import { errorMessage, log } from '../util/log.js';
1
+ // The local remember pipeline for a caller in this process (`hippo remember`, `hippo watch`): schema fit, the salience
2
+ // gate, the write, the read-back, the `remembered` counter and the embedding kick-off, in that order. Fact extraction
3
+ // is a second step, which the caller runs after it has reported the write. Nothing here prints; the caller reports from
4
+ // what comes back.
5
+ import { configOf } from '../config-of.js';
6
+ import { computeSalience } from '../../core/salience.js';
7
+ import { loadNewestEntries, schemaFitInStore } from '../../store/candidates.js';
8
+ import { embedMemory } from '../../search/embed-memories.js';
9
+ import { loadAllEntries, readEntry } from '../../store/entry-reads.js';
10
+ import { updateStats } from '../../store/index-and-stats.js';
11
+ import { errorMessage, log } from '../../util/log.js';
11
12
  import { remember } from './remember.js';
12
13
  const WEAK_HALF_LIFE_FACTOR = 0.5;
13
- /** The gate's verdict on one write, or null where it does not judge: the store has it off, or the write is pinned or forced. */
14
+ /** The gate's verdict on one write, or null where it does not
15
+ * judge: the store has it off, or the write is pinned or forced. */
14
16
  function salienceVerdict(ctx, input) {
15
- const { salience } = loadConfig(ctx.hippoRoot);
17
+ const { salience } = configOf(ctx);
16
18
  if (!salience.enabled || input.pinned || input.force)
17
19
  return null;
18
- // computeSalience compares against the last `recentWindow` rows only; below 1 its slice takes every row, so that case still loads them all.
20
+ // computeSalience compares against the last `recentWindow` rows only; below 1 its slice takes every row, so that case
21
+ // still loads them all.
19
22
  const window = Math.trunc(salience.recentWindow);
20
23
  const recent = Number.isSafeInteger(window) && window >= 1
21
24
  ? loadNewestEntries(ctx.hippoRoot, ctx.tenantId, window)
@@ -27,14 +30,16 @@ function salienceVerdict(ctx, input) {
27
30
  maxRepeatErrors: salience.maxRepeatErrors,
28
31
  });
29
32
  }
30
- /** The row `remember` just wrote, as the store holds it: the report, the embedding and the extraction all work on that. */
33
+ /** The row `remember` just wrote, as the store holds it: the
34
+ * report, the embedding and the extraction all work on that. */
31
35
  function storedEntry(ctx, id) {
32
36
  const entry = readEntry(ctx.hippoRoot, id, ctx.tenantId);
33
37
  if (!entry)
34
38
  throw new Error(`memory ${id} was written but cannot be read back`);
35
39
  return entry;
36
40
  }
37
- /** Best-effort and slow (a model load or a network call), so the caller is not held for it; a row left out of the index is logged. */
41
+ /** Best-effort and slow (a model load or a network call), so the
42
+ * caller is not held for it; a row left out of the index is logged. */
38
43
  function indexInBackground(hippoRoot, entry) {
39
44
  return embedMemory(hippoRoot, entry).then((outcome) => {
40
45
  if (outcome === 'failed') {
@@ -43,7 +48,8 @@ function indexInBackground(hippoRoot, entry) {
43
48
  return outcome;
44
49
  });
45
50
  }
46
- /** One local write on hippo.db: gate, write, read-back, counter, then the embedding, started and never awaited. A refused value throws as `remember` does. */
51
+ /** One local write on hippo.db: gate, write, read-back, counter, then the embedding, started and never awaited. A
52
+ * refused value throws as `remember` does. */
47
53
  export async function rememberLocally(ctx, input) {
48
54
  const schemaFit = schemaFitInStore(ctx.hippoRoot, ctx.tenantId, input.content, input.fitTags ?? input.tags);
49
55
  const verdict = salienceVerdict(ctx, input);
@@ -71,9 +77,10 @@ export async function rememberLocally(ctx, input) {
71
77
  const embedding = indexInBackground(ctx.hippoRoot, entry);
72
78
  return startedWeak ? { status: 'stored', entry, embedding, startedWeak } : { status: 'stored', entry, embedding };
73
79
  }
74
- /** Extracts facts from a row just stored and stores them beside it. Best-effort: a failure is named in the result, never thrown. */
80
+ /** Extracts facts from a row just stored and stores them beside it.
81
+ * Best-effort: a failure is named in the result, never thrown. */
75
82
  export async function extractRememberedFacts(ctx, entry, request) {
76
- const { extraction } = loadConfig(ctx.hippoRoot);
83
+ const { extraction } = configOf(ctx);
77
84
  if (!request.requested && extraction.enabled !== true)
78
85
  return { status: 'off' };
79
86
  const { apiKey, fetcher } = request;
@@ -83,8 +90,15 @@ export async function extractRememberedFacts(ctx, entry, request) {
83
90
  let facts = 0;
84
91
  try {
85
92
  // Loaded on demand, so a write that extracts nothing does not pay for the module.
86
- const { extractFacts, storeExtractedFacts } = await import('../learn/extract.js');
87
- const found = await extractFacts(entry.content, { apiKey, model: extraction.model, fetcher, onError: (msg) => { failures.push(msg); } });
93
+ const { extractFacts, storeExtractedFacts } = await import('../../learn/extract.js');
94
+ const found = await extractFacts(entry.content, {
95
+ apiKey,
96
+ model: extraction.model,
97
+ fetcher,
98
+ onError: (msg) => {
99
+ failures.push(msg);
100
+ },
101
+ });
88
102
  if (found.length > 0) {
89
103
  storeExtractedFacts(ctx.hippoRoot, entry, found);
90
104
  facts = found.length;
@@ -1,6 +1,6 @@
1
- import type { ConnectorEvent } from '../store/port.js';
2
- import { type ConfidenceLevel, type Layer, type MemoryKind, type TraceOutcome } from '../core/memory.js';
3
- import type { Context } from './types.js';
1
+ import type { ConnectorEvent } from '../../store/port.js';
2
+ import { type ConfidenceLevel, type Layer, type MemoryKind, type TraceOutcome } from '../../core/memory.js';
3
+ import type { ContextWith } from '../types.js';
4
4
  /** Row fields the caller's own process decides, as the CLI does from its flags and its salience gate. */
5
5
  export interface RememberLocal {
6
6
  layer?: Layer;
@@ -10,7 +10,8 @@ export interface RememberLocal {
10
10
  schemaFit?: number;
11
11
  traceOutcome?: TraceOutcome;
12
12
  sourceSessionId?: string | null;
13
- /** A salience gate's start-weak verdict: the row starts at `strength`, and its half-life is multiplied by `halfLifeFactor`, never below one day. */
13
+ /** A salience gate's start-weak verdict: the row starts at `strength`, and its half-life is multiplied by
14
+ * `halfLifeFactor`, never below one day. */
14
15
  weaken?: {
15
16
  readonly strength: number;
16
17
  readonly halfLifeFactor: number;
@@ -23,19 +24,22 @@ export interface RememberOpts {
23
24
  owner?: string;
24
25
  artifactRef?: string;
25
26
  tags?: string[];
26
- /** The connector event this write answers. The store logs it in the memory's own transaction; an event logged before stores nothing and
27
- * answers `duplicate`. */
27
+ /** The connector event this write answers. The store logs it in the memory's own transaction; an event logged before
28
+ * stores nothing and answers `duplicate`. */
28
29
  event?: ConnectorEvent;
29
30
  /** Connector-ingested content an agent doesn't control; gates detectInstruction. CLI/HTTP/MCP never set this. */
30
31
  untrusted?: boolean;
31
- /** The caller's project: its name becomes the row's origin. Without it the store's fallback applies (NULL on a shared store). */
32
+ /** The caller's project: its name becomes the row's origin. Without
33
+ * it the store's fallback applies (NULL on a shared store). */
32
34
  project?: {
33
35
  readonly name: string;
34
36
  readonly aliases?: readonly string[];
35
37
  };
36
- /** Store it in the caller's own personal scope, readable by its owner alone in every project; needs an owner on the actor and no `scope`. */
38
+ /** Store it in the caller's own personal scope, readable by its owner alone in every project; needs an owner on the
39
+ * actor and no `scope`. */
37
40
  personal?: boolean;
38
- /** Never set from a request body: a route or tool that copied it would let a client pin a row or pick its layer and source. */
41
+ /** Never set from a request body: a route or tool that copied it
42
+ * would let a client pin a row or pick its layer and source. */
39
43
  local?: RememberLocal;
40
44
  }
41
45
  export interface RememberResult {
@@ -51,12 +55,14 @@ export interface RememberResult {
51
55
  };
52
56
  /** Set only when the content held secret material: untrusted text had it redacted, typed text was stored as sent. */
53
57
  warnings?: string[];
54
- /** Set only when the write's event was logged before: nothing was stored, so `id` names no row; `memoryId` is the id the first write logged. */
58
+ /** Set only when the write's event was logged before: nothing was stored, so `id` names no row; `memoryId` is the id
59
+ * the first write logged. */
55
60
  duplicate?: {
56
61
  memoryId: string | null;
57
62
  };
58
63
  }
59
- /** Store one memory: the store's entryWrites group writes the row and its one remember audit row, under the caller's subject.
60
- * A write that carries a connector event or untrusted content goes through connectorWrites, which commits its companion rows with it. */
61
- export declare function remember(ctx: Context, opts: RememberOpts): Promise<RememberResult>;
64
+ /** Store one memory: the store's entryWrites group writes the row and its one remember audit row, under the caller's
65
+ * subject. A write that carries a connector event or untrusted content goes through connectorWrites, which commits its
66
+ * companion rows with it. */
67
+ export declare function remember(ctx: ContextWith<'entryWrites'>, opts: RememberOpts): Promise<RememberResult>;
62
68
  //# sourceMappingURL=remember.d.ts.map
@@ -1,16 +1,16 @@
1
1
  // Write path: remember stores one memory after secret vetting and, for untrusted content, the instruction check.
2
- import { stampOriginProject } from '../store/entry-row.js';
3
- import { detectInstruction } from './instruction-detect.js';
4
- import { quarantineScopeFor } from '../trust/quarantine.js';
5
- import { createMemory } from '../core/memory.js';
6
- import { loadConfig } from '../core/config.js';
7
- import { vetSecrets } from '../util/secret-detect.js';
8
- import { assertCallerProject } from '../core/project-identity.js';
9
- import { BadRequestError } from '../core/api-errors.js';
10
- import { assertClientScope, personalScopeOf } from '../core/recall-scope.js';
11
- import { requireGroup } from '../store/index.js';
12
- import { storeFor } from '../store/sqlite/store.js';
13
- /** The scope a write lands in: the caller's own personal scope when asked for, else the client's, which may not be a personal one. */
2
+ import { stampOriginProject } from '../../store/entry-row.js';
3
+ import { detectInstruction } from '../instruction-detect.js';
4
+ import { quarantineScopeFor } from '../../trust/quarantine.js';
5
+ import { createMemory, } from '../../core/memory.js';
6
+ import { configOf } from '../config-of.js';
7
+ import { vetSecrets } from '../../util/secret-detect.js';
8
+ import { assertCallerProject } from '../../core/project-identity.js';
9
+ import { BadRequestError } from '../../core/api-errors.js';
10
+ import { assertClientScope, personalScopeOf } from '../../core/recall-scope.js';
11
+ import { narrowStore } from '../../store/index.js';
12
+ /** The scope a write lands in: the caller's own personal scope when
13
+ * asked for, else the client's, which may not be a personal one. */
14
14
  function rememberScope(ctx, opts) {
15
15
  if (!opts.personal) {
16
16
  assertClientScope(opts.scope);
@@ -39,29 +39,40 @@ function prepareRemember(ctx, opts) {
39
39
  pinned: local.pinned,
40
40
  confidence: local.confidence,
41
41
  source: local.source,
42
- schema_fit: local.schemaFit,
43
- trace_outcome: local.traceOutcome,
44
- source_session_id: local.sourceSessionId,
42
+ schemaFit: local.schemaFit,
43
+ traceOutcome: local.traceOutcome,
44
+ sourceSessionId: local.sourceSessionId,
45
45
  kind: opts.kind ?? 'distilled',
46
46
  scope: detection.flagged ? quarantineScopeFor(requestedScope) : requestedScope,
47
47
  owner: opts.owner ?? null,
48
- artifact_ref: opts.artifactRef ?? null,
48
+ artifactRef: opts.artifactRef ?? null,
49
49
  tags: opts.tags,
50
50
  tenantId: ctx.tenantId,
51
- baseHalfLifeDays: loadConfig(ctx.hippoRoot).defaultHalfLifeDays,
51
+ baseHalfLifeDays: configOf(ctx).defaultHalfLifeDays,
52
52
  });
53
53
  const entry = local.weaken ? weakened(created, local.weaken) : created;
54
- // Aliases only widen what a reader matches; a row has one origin. A personal row's '' follows its owner into every project.
54
+ // Aliases only widen what a reader matches; a row has one origin.
55
+ // A personal row's '' follows its owner into every project.
55
56
  const origin = opts.personal ? '' : opts.project?.name;
56
57
  const stamped = origin !== undefined ? { ...entry, origin_project: origin } : entry;
57
58
  return { entry: stamped, requestedScope, detection, warnings: vetted.warnings };
58
59
  }
59
60
  function weakened(entry, weaken) {
60
- return { ...entry, strength: weaken.strength, half_life_days: Math.max(1, entry.half_life_days * weaken.halfLifeFactor) };
61
+ return {
62
+ ...entry,
63
+ strength: weaken.strength,
64
+ half_life_days: Math.max(1, entry.half_life_days * weaken.halfLifeFactor),
65
+ };
61
66
  }
62
67
  function rememberResult(ctx, prepared, written) {
63
68
  const { entry, detection, warnings } = prepared;
64
- const result = { id: entry.id, kind: entry.kind, tenantId: ctx.tenantId, halfLifeDays: entry.half_life_days, tags: [...entry.tags] };
69
+ const result = {
70
+ id: entry.id,
71
+ kind: entry.kind,
72
+ tenantId: ctx.tenantId,
73
+ halfLifeDays: entry.half_life_days,
74
+ tags: [...entry.tags],
75
+ };
65
76
  if (detection.flagged)
66
77
  result.quarantined = { reason: detection.reason ?? 'unknown' };
67
78
  if (warnings.length > 0)
@@ -74,11 +85,12 @@ function rememberResult(ctx, prepared, written) {
74
85
  function quarantineOf({ requestedScope, detection }) {
75
86
  return detection.flagged ? { originalScope: requestedScope, reason: detection.reason ?? 'unknown' } : undefined;
76
87
  }
77
- /** Store one memory: the store's entryWrites group writes the row and its one remember audit row, under the caller's subject.
78
- * A write that carries a connector event or untrusted content goes through connectorWrites, which commits its companion rows with it. */
88
+ /** Store one memory: the store's entryWrites group writes the row and its one remember audit row, under the caller's
89
+ * subject. A write that carries a connector event or untrusted content goes through connectorWrites, which commits its
90
+ * companion rows with it. */
79
91
  export async function remember(ctx, opts) {
80
- const store = storeFor(ctx);
81
- const entryWrites = requireGroup(store, 'entryWrites');
92
+ const store = ctx.store;
93
+ const entryWrites = store.entryWrites;
82
94
  const prepared = prepareRemember(ctx, opts);
83
95
  // A store writes origin_project as given, so the served folder's fallback is stamped here.
84
96
  const write = { entry: stampOriginProject(ctx.hippoRoot, prepared.entry), actor: ctx.actor.subject };
@@ -86,8 +98,12 @@ export async function remember(ctx, opts) {
86
98
  await entryWrites.writeEntry(write);
87
99
  return rememberResult(ctx, prepared);
88
100
  }
89
- const connectorWrites = requireGroup(store, 'connectorWrites');
90
- const written = await connectorWrites.writeConnectorEntry({ ...write, event: opts.event, quarantine: quarantineOf(prepared) });
101
+ const connectorWrites = narrowStore(store, 'connectorWrites').connectorWrites;
102
+ const written = await connectorWrites.writeConnectorEntry({
103
+ ...write,
104
+ event: opts.event,
105
+ quarantine: quarantineOf(prepared),
106
+ });
91
107
  return rememberResult(ctx, prepared, written);
92
108
  }
93
109
  //# sourceMappingURL=remember.js.map
@@ -0,0 +1,39 @@
1
+ import type { Card, CardComment, CardRun, CardStatus } from '../../core/card.js';
2
+ import type { HandoffOutcome } from '../../core/handoff.js';
3
+ import type { CardDetail } from '../../store/card-detail.js';
4
+ import type { CardCreate } from '../../store/index.js';
5
+ import type { ContextWith } from '../types.js';
6
+ type Ctx = ContextWith<'cards'>;
7
+ /** Create a card in the caller's tenant. Throws on an empty title or an unknown dependency. */
8
+ export declare function cardCreate(ctx: Ctx, input: CardCreate): Promise<Card>;
9
+ /** One card by id, or null when the caller's tenant has none. */
10
+ export declare function cardLoad(ctx: Ctx, id: string): Promise<Card | null>;
11
+ /** The card with its dependencies, runs, comments and latest handoff, or null when unknown. */
12
+ export declare function cardDetail(ctx: Ctx, id: string): Promise<CardDetail | null>;
13
+ /** The caller's cards, newest-updated first, optionally filtered to one status. */
14
+ export declare function cardList(ctx: Ctx, opts?: {
15
+ status?: CardStatus;
16
+ }): Promise<Card[]>;
17
+ /** Every run of a card, newest first. */
18
+ export declare function cardRuns(ctx: Ctx, id: string): Promise<CardRun[]>;
19
+ /** Claim a ready or blocked card for a runtime; null when it cannot be claimed. */
20
+ export declare function cardClaim(ctx: Ctx, id: string, runtime: string, sessionId?: string): Promise<(Card & {
21
+ runId: number;
22
+ }) | null>;
23
+ /** Extend a live run's lease; null when the run is not live. */
24
+ export declare function cardHeartbeat(ctx: Ctx, id: string, runId: number): Promise<Card | null>;
25
+ /** Block a running card with a reason; null when it is not running. */
26
+ export declare function cardBlock(ctx: Ctx, id: string, reason: string, runId?: number): Promise<Card | null>;
27
+ /** Move a running card to review; null when it is not running. */
28
+ export declare function cardReview(ctx: Ctx, id: string, runId?: number): Promise<Card | null>;
29
+ /** Complete a card in review and promote the children it unblocks; null when not in review. */
30
+ export declare function cardComplete(ctx: Ctx, id: string, outcome: HandoffOutcome, runId?: number): Promise<{
31
+ card: Card;
32
+ promotedChildren: string[];
33
+ } | null>;
34
+ /** Return every card with an expired lease to ready; yields the reclaimed ids. */
35
+ export declare function cardReclaimExpired(ctx: Ctx): Promise<string[]>;
36
+ /** Add a comment to a card. Throws on an empty body. */
37
+ export declare function cardComment(ctx: Ctx, cardId: string, author: string, body: string): Promise<CardComment>;
38
+ export {};
39
+ //# sourceMappingURL=cards.d.ts.map
@@ -1,52 +1,50 @@
1
1
  // The agent work board: create, claim, review and complete cards, scoped to the caller's tenant.
2
- import { addCardComment, blockCard, claimCard, completeCard, createCard, heartbeatCard, listCards, loadCard, loadCardRuns, reclaimExpiredCards, reviewCard, } from '../store/cards.js';
3
- import { loadCardDetail } from '../store/card-detail.js';
4
2
  /** Create a card in the caller's tenant. Throws on an empty title or an unknown dependency. */
5
3
  export function cardCreate(ctx, input) {
6
- return createCard(ctx.hippoRoot, ctx.tenantId, input);
4
+ return ctx.store.cards.create(ctx.tenantId, input);
7
5
  }
8
6
  /** One card by id, or null when the caller's tenant has none. */
9
7
  export function cardLoad(ctx, id) {
10
- return loadCard(ctx.hippoRoot, ctx.tenantId, id);
8
+ return ctx.store.cards.load(ctx.tenantId, id);
11
9
  }
12
10
  /** The card with its dependencies, runs, comments and latest handoff, or null when unknown. */
13
11
  export function cardDetail(ctx, id) {
14
- return loadCardDetail(ctx.hippoRoot, ctx.tenantId, id);
12
+ return ctx.store.cards.detail(ctx.tenantId, id);
15
13
  }
16
14
  /** The caller's cards, newest-updated first, optionally filtered to one status. */
17
15
  export function cardList(ctx, opts = {}) {
18
- return listCards(ctx.hippoRoot, ctx.tenantId, opts);
16
+ return ctx.store.cards.list(ctx.tenantId, opts);
19
17
  }
20
18
  /** Every run of a card, newest first. */
21
19
  export function cardRuns(ctx, id) {
22
- return loadCardRuns(ctx.hippoRoot, ctx.tenantId, id);
20
+ return ctx.store.cards.runs(ctx.tenantId, id);
23
21
  }
24
22
  /** Claim a ready or blocked card for a runtime; null when it cannot be claimed. */
25
23
  export function cardClaim(ctx, id, runtime, sessionId) {
26
- return claimCard(ctx.hippoRoot, ctx.tenantId, id, runtime, sessionId);
24
+ return ctx.store.cards.claim(ctx.tenantId, id, runtime, sessionId);
27
25
  }
28
26
  /** Extend a live run's lease; null when the run is not live. */
29
27
  export function cardHeartbeat(ctx, id, runId) {
30
- return heartbeatCard(ctx.hippoRoot, ctx.tenantId, id, runId);
28
+ return ctx.store.cards.heartbeat(ctx.tenantId, id, runId);
31
29
  }
32
30
  /** Block a running card with a reason; null when it is not running. */
33
31
  export function cardBlock(ctx, id, reason, runId) {
34
- return blockCard(ctx.hippoRoot, ctx.tenantId, id, reason, runId);
32
+ return ctx.store.cards.block(ctx.tenantId, id, reason, runId);
35
33
  }
36
34
  /** Move a running card to review; null when it is not running. */
37
35
  export function cardReview(ctx, id, runId) {
38
- return reviewCard(ctx.hippoRoot, ctx.tenantId, id, runId);
36
+ return ctx.store.cards.review(ctx.tenantId, id, runId);
39
37
  }
40
38
  /** Complete a card in review and promote the children it unblocks; null when not in review. */
41
39
  export function cardComplete(ctx, id, outcome, runId) {
42
- return completeCard(ctx.hippoRoot, ctx.tenantId, id, outcome, runId);
40
+ return ctx.store.cards.complete(ctx.tenantId, id, outcome, runId);
43
41
  }
44
42
  /** Return every card with an expired lease to ready; yields the reclaimed ids. */
45
43
  export function cardReclaimExpired(ctx) {
46
- return reclaimExpiredCards(ctx.hippoRoot, ctx.tenantId);
44
+ return ctx.store.cards.reclaimExpired(ctx.tenantId);
47
45
  }
48
46
  /** Add a comment to a card. Throws on an empty body. */
49
47
  export function cardComment(ctx, cardId, author, body) {
50
- return addCardComment(ctx.hippoRoot, ctx.tenantId, cardId, author, body);
48
+ return ctx.store.cards.comment(ctx.tenantId, cardId, author, body);
51
49
  }
52
50
  //# sourceMappingURL=cards.js.map
@@ -1,12 +1,13 @@
1
- import type { CallerProject } from './prompt-hook.js';
2
- import type { Context } from './types.js';
1
+ import type { CallerProject } from '../prompt-hook.js';
2
+ import type { ContextWith } from '../types.js';
3
3
  export interface DrillDownOpts {
4
4
  /** Cap on number of children returned. Default 50. */
5
5
  limit?: number;
6
- /** Token budget: children append in created order until the next would exceed it (cost: printed line under `cost`, else ceil(content.length / 4)).
7
- * For depth > 1 the budget is global and cumulative, not per level. */
6
+ /** Token budget: children append in created order until the next would exceed it (cost: printed line under `cost`,
7
+ * else ceil(content.length / 4)). For depth > 1 the budget is global and cumulative, not per level. */
8
8
  budget?: number;
9
- /** Levels to walk down (default 1 = direct children); capped at 10 internally. BFS dedups with a visited Set, defensive against shared-child anomalies. */
9
+ /** Levels to walk down (default 1 = direct children); capped at 10 internally. BFS dedups with a visited Set,
10
+ * defensive against shared-child anomalies. */
10
11
  depth?: number;
11
12
  cost?: DrillDownCost;
12
13
  project?: CallerProject;
@@ -35,13 +36,14 @@ export interface DrillDownResult {
35
36
  totalChildren: number;
36
37
  truncated: boolean;
37
38
  }
38
- /** `not_found` covers missing, wrong-tenant AND scope-blocked, because distinguishing scope_blocked leaked private-row existence to no-scope callers.
39
- * `not_drillable`: the id is a leaf row (level 0/1), which the caller can act on. */
39
+ /** `not_found` covers missing, wrong-tenant AND scope-blocked, because distinguishing scope_blocked leaked private-row
40
+ * existence to no-scope callers. `not_drillable`: the id is a leaf row (level 0/1), which the caller can act on. */
40
41
  export interface DrillDownFailure {
41
42
  failure: 'not_found' | 'not_drillable';
42
43
  }
43
44
  export type DrillDownOutcome = DrillDownResult | DrillDownFailure;
44
- /** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(... summarizeOverflow: true)` substitutions). Only
45
- * `ctx.tenantId` summaries are reachable; children get recall's scope filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
46
- export declare function drillDown(ctx: Context, summaryId: string, opts?: DrillDownOpts): Promise<DrillDownOutcome>;
45
+ /** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(...
46
+ * summarizeOverflow: true)` substitutions). Only `ctx.tenantId` summaries are reachable; children get recall's scope
47
+ * filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
48
+ export declare function drillDown(ctx: ContextWith<'dagReads'>, summaryId: string, opts?: DrillDownOpts): Promise<DrillDownOutcome>;
47
49
  //# sourceMappingURL=drill-down.d.ts.map
@@ -1,12 +1,11 @@
1
1
  // DAG drill-down from a summary to its children.
2
- import { requireGroup } from '../store/index.js';
3
- import { storeFor } from '../store/sqlite/store.js';
4
- import { estimateTokens } from '../util/token-text.js';
5
- import { passesScopeFilterForRecall, personalScopeOf } from '../core/recall-scope.js';
6
- import { classifyOriginProject } from '../core/project-identity.js';
2
+ import { estimateTokens } from '../../util/token-text.js';
3
+ import { passesScopeFilterForRecall, personalScopeOf } from '../../core/recall-scope.js';
4
+ import { classifyOriginProject } from '../../core/project-identity.js';
7
5
  const DEFAULT_DRILL_DOWN_LIMIT = 50;
8
- /** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(... summarizeOverflow: true)` substitutions). Only
9
- * `ctx.tenantId` summaries are reachable; children get recall's scope filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
6
+ /** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(...
7
+ * summarizeOverflow: true)` substitutions). Only `ctx.tenantId` summaries are reachable; children get recall's scope
8
+ * filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
10
9
  export async function drillDown(ctx, summaryId, opts = {}) {
11
10
  const limit = opts.limit ?? DEFAULT_DRILL_DOWN_LIMIT;
12
11
  // v0.30 / E5: depth defaults 1 (backward compat); hard cap 10 levels
@@ -16,7 +15,7 @@ export async function drillDown(ctx, summaryId, opts = {}) {
16
15
  const readable = (row) => passesScopeFilterForRecall(row.scope ?? null, undefined, own)
17
16
  && (!opts.project || classifyOriginProject(row.origin_project, opts.project) !== 'cross-project');
18
17
  const pastLimit = Math.floor(limit) + 1;
19
- const walked = await requireGroup(storeFor(ctx), 'dagReads').summaryWithDescendants(ctx.tenantId, summaryId, {
18
+ const walked = await ctx.store.dagReads.summaryWithDescendants(ctx.tenantId, summaryId, {
20
19
  depth,
21
20
  // A leaf answers not_drillable, so nothing under it is read.
22
21
  admit: (row) => readable(row) && (row.id !== summaryId || isDrillable(row)),
@@ -0,0 +1,18 @@
1
+ import type { CompleteGoalOpts, Goal, PushGoalOpts } from '../../store/goals.js';
2
+ import { type ContextWith } from '../types.js';
3
+ /** What a new goal carries; its tenant is always the caller's. */
4
+ export type GoalPushOpts = Omit<PushGoalOpts, 'tenantId'>;
5
+ /** Push a goal onto `sessionId`'s stack in the caller's tenant. */
6
+ export declare function goalPush(ctx: ContextWith<'goals'>, opts: GoalPushOpts): Promise<Goal>;
7
+ /** The caller's goals for `sessionId`: active ones, or every status when `all` is set. */
8
+ export declare function goalList(ctx: ContextWith<'goals'>, opts: {
9
+ sessionId: string;
10
+ all: boolean;
11
+ }): Promise<Goal[]>;
12
+ /** Complete a goal by id; a no-op for an unknown or already completed goal. Host admin only. */
13
+ export declare function goalComplete(ctx: ContextWith<'goals'>, goalId: string, opts: CompleteGoalOpts): Promise<void>;
14
+ /** Suspend an active goal by id. Host admin only. */
15
+ export declare function goalSuspend(ctx: ContextWith<'goals'>, goalId: string): Promise<void>;
16
+ /** Resume a suspended goal by id, suspending the oldest active one past the depth cap. Host admin only. */
17
+ export declare function goalResume(ctx: ContextWith<'goals'>, goalId: string): Promise<void>;
18
+ //# sourceMappingURL=goals.d.ts.map
@@ -1,29 +1,29 @@
1
1
  // The per-session goal stack that recall boosts: push, list, complete, suspend and resume.
2
- import { completeGoal, getActiveGoals, getSessionGoals, pushGoal, resumeGoal, suspendGoal, } from '../store/goals.js';
3
- import { requireHostAdmin } from './types.js';
2
+ import { requireHostAdmin } from '../types.js';
4
3
  /** Push a goal onto `sessionId`'s stack in the caller's tenant. */
5
4
  export function goalPush(ctx, opts) {
6
- return pushGoal(ctx.hippoRoot, { ...opts, tenantId: ctx.tenantId });
5
+ return ctx.store.goals.push(ctx.tenantId, opts);
7
6
  }
8
7
  /** The caller's goals for `sessionId`: active ones, or every status when `all` is set. */
9
- export function goalList(ctx, opts) {
10
- const scope = { sessionId: opts.sessionId, tenantId: ctx.tenantId };
11
- return opts.all ? getSessionGoals(ctx.hippoRoot, scope) : getActiveGoals(ctx.hippoRoot, scope);
8
+ export async function goalList(ctx, opts) {
9
+ if (opts.all)
10
+ return ctx.store.goals.sessionGoals(ctx.tenantId, opts.sessionId);
11
+ return (await ctx.store.activeGoals({ sessionId: opts.sessionId, tenantId: ctx.tenantId })).goals;
12
12
  }
13
13
  /** Complete a goal by id; a no-op for an unknown or already completed goal. Host admin only. */
14
- export function goalComplete(ctx, goalId, opts) {
14
+ export async function goalComplete(ctx, goalId, opts) {
15
15
  // Goal ids are not tenant-scoped in the store, so acting on one by id reaches past the caller's tenant.
16
16
  requireHostAdmin(ctx, 'Completing a goal by id');
17
- completeGoal(ctx.hippoRoot, goalId, opts);
17
+ await ctx.store.goals.complete(ctx.tenantId, goalId, opts);
18
18
  }
19
19
  /** Suspend an active goal by id. Host admin only. */
20
- export function goalSuspend(ctx, goalId) {
20
+ export async function goalSuspend(ctx, goalId) {
21
21
  requireHostAdmin(ctx, 'Suspending a goal by id');
22
- suspendGoal(ctx.hippoRoot, goalId);
22
+ await ctx.store.goals.suspend(ctx.tenantId, goalId);
23
23
  }
24
24
  /** Resume a suspended goal by id, suspending the oldest active one past the depth cap. Host admin only. */
25
- export function goalResume(ctx, goalId) {
25
+ export async function goalResume(ctx, goalId) {
26
26
  requireHostAdmin(ctx, 'Resuming a goal by id');
27
- resumeGoal(ctx.hippoRoot, goalId);
27
+ await ctx.store.goals.resume(ctx.tenantId, goalId);
28
28
  }
29
29
  //# sourceMappingURL=goals.js.map
@@ -0,0 +1,11 @@
1
+ import type { GraphRows } from '../../store/port.js';
2
+ import type { ContextWith } from '../types.js';
3
+ /** The entity a graph read focuses on. Capped at the 512 entity-name cap, not the id-shaped 256, so a long decision or
4
+ * policy name stays focusable. */
5
+ export declare function graphEntityOf(raw: string | null): string | undefined;
6
+ /** The entity/relation rows behind GET /v1/graph, as the caller's role, scopes and owner may see them. */
7
+ export declare function graphRows(ctx: ContextWith<'graphReads'>, query: {
8
+ entity?: string;
9
+ limit: number;
10
+ }): Promise<GraphRows>;
11
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1,16 @@
1
+ import { BadRequestError } from '../../core/api-errors.js';
2
+ import { MAX_ENTITY_NAME_LEN } from '../../store/graph-rows.js';
3
+ /** The entity a graph read focuses on. Capped at the 512 entity-name cap, not the id-shaped 256, so a long decision or
4
+ * policy name stays focusable. */
5
+ export function graphEntityOf(raw) {
6
+ if (raw !== null && raw.length > MAX_ENTITY_NAME_LEN) {
7
+ throw new BadRequestError(`entity exceeds the ${MAX_ENTITY_NAME_LEN}-character cap`);
8
+ }
9
+ return raw ?? undefined;
10
+ }
11
+ /** The entity/relation rows behind GET /v1/graph, as the caller's role, scopes and owner may see them. */
12
+ export async function graphRows(ctx, query) {
13
+ const { role, scopes, owner } = ctx.actor;
14
+ return ctx.store.graphReads.graphRows(ctx.tenantId, { ...query, reader: { role, scopes, owner } });
15
+ }
16
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1,9 @@
1
+ import type { SavableDescriptor } from '../../objects/descriptor.js';
2
+ import type { ObjectByKind, SavableKind } from '../../core/object-types.js';
3
+ import type { Objects } from '../../store/port.js';
4
+ import type { ContextWith } from '../types.js';
5
+ /** The request store's object group; the dispatcher has already answered 501 for a store without it. */
6
+ export declare function objectsOf(ctx: ContextWith<'objects'>): Objects;
7
+ /** Saves through the request's store as the authenticated caller. */
8
+ export declare function saveFor<K extends SavableKind, W>(ctx: ContextWith<'objects'>, d: SavableDescriptor<K, W>, write: W): Promise<ObjectByKind[K]>;
9
+ //# sourceMappingURL=objects.d.ts.map
@@ -1,9 +1,7 @@
1
- import { saveObject } from '../objects/lifecycle.js';
2
- import { requireGroup } from '../store/index.js';
3
- import { storeFor } from '../store/sqlite/store.js';
1
+ import { saveObject } from '../../objects/lifecycle.js';
4
2
  /** The request store's object group; the dispatcher has already answered 501 for a store without it. */
5
3
  export function objectsOf(ctx) {
6
- return requireGroup(storeFor(ctx), 'objects');
4
+ return ctx.store.objects;
7
5
  }
8
6
  /** Saves through the request's store as the authenticated caller. */
9
7
  export function saveFor(ctx, d, write) {
@@ -0,0 +1,11 @@
1
+ import { type Prediction, type PredictionBaserate, type SavePredictionOpts } from '../../store/predictions.js';
2
+ import type { PredictionClose, PredictionSave, Predictions } from '../../store/port.js';
3
+ import type { ContextWith } from '../types.js';
4
+ export declare function savePrediction(ctx: ContextWith<'predictions'>, input: PredictionSave): Promise<Prediction>;
5
+ /** A claim saved with its recall mirror, built under the store root's half-life as the HTTP create route builds it. */
6
+ export declare function recordPrediction(ctx: ContextWith<'predictions'>, claim: SavePredictionOpts): Promise<Prediction>;
7
+ export declare function listPredictions(ctx: ContextWith<'predictions'>, query: Parameters<Predictions['listPredictions']>[1]): Promise<Prediction[]>;
8
+ export declare function predictionBaserate(ctx: ContextWith<'predictions'>, classTag: string): Promise<PredictionBaserate>;
9
+ export declare function predictionById(ctx: ContextWith<'predictions'>, id: number): Promise<Prediction | null>;
10
+ export declare function closePrediction(ctx: ContextWith<'predictions'>, id: number, close: PredictionClose): Promise<Prediction>;
11
+ //# sourceMappingURL=predictions.d.ts.map
@@ -1,14 +1,15 @@
1
- import { predictionMirror } from '../store/predictions.js';
2
- import { loadConfig } from '../core/config.js';
3
- import { requireGroup } from '../store/index.js';
4
- import { storeFor } from '../store/sqlite/store.js';
5
- const predictionsOf = (ctx) => requireGroup(storeFor(ctx), 'predictions');
1
+ import { predictionMirror, } from '../../store/predictions.js';
2
+ import { configOf } from '../config-of.js';
3
+ const predictionsOf = (ctx) => ctx.store.predictions;
6
4
  export async function savePrediction(ctx, input) {
7
5
  return predictionsOf(ctx).savePrediction(ctx.tenantId, input, ctx.actor.subject);
8
6
  }
9
7
  /** A claim saved with its recall mirror, built under the store root's half-life as the HTTP create route builds it. */
10
8
  export async function recordPrediction(ctx, claim) {
11
- return savePrediction(ctx, { ...claim, mirror: predictionMirror(ctx.tenantId, claim, loadConfig(ctx.hippoRoot).defaultHalfLifeDays) });
9
+ return savePrediction(ctx, {
10
+ ...claim,
11
+ mirror: predictionMirror(ctx.tenantId, claim, configOf(ctx).defaultHalfLifeDays),
12
+ });
12
13
  }
13
14
  export async function listPredictions(ctx, query) {
14
15
  return predictionsOf(ctx).listPredictions(ctx.tenantId, query);