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,47 +1,50 @@
1
1
  import type { HandoffOutcome, SessionHandoff } from '../core/handoff.js';
2
2
  import type { SessionEvent, TaskSnapshot } from '../store/rows.js';
3
- import { appendSessionEvent, listSessionEvents, saveActiveTaskSnapshot } from '../store/sessions.js';
4
- import { wmClear, wmFlush, wmPush, wmRead, type WorkingMemoryItem } from '../store/working-memory.js';
5
- import type { Context } from './types.js';
3
+ import type { SessionEventInput, SnapshotInput } from '../store/sessions.js';
4
+ import type { Sessions } from '../store/index.js';
5
+ import type { WorkingMemoryItem } from '../store/working-memory.js';
6
+ import type { ContextWith } from './types.js';
7
+ type Ctx = ContextWith<'sessions'>;
6
8
  /** What a snapshot save carries. */
7
- export type SnapshotSaveInput = Parameters<typeof saveActiveTaskSnapshot>[2];
9
+ export type SnapshotSaveInput = SnapshotInput;
8
10
  /** What a session event append carries. */
9
- export type SessionEventAppendInput = Parameters<typeof appendSessionEvent>[2];
11
+ export type SessionEventAppendInput = SessionEventInput;
10
12
  /** What a session event listing filters on. */
11
- export type SessionEventListOpts = NonNullable<Parameters<typeof listSessionEvents>[2]>;
13
+ export type SessionEventListOpts = Parameters<Sessions['listEvents']>[1];
12
14
  /** Save the caller's active task snapshot. */
13
- export declare function snapshotSave(ctx: Context, input: SnapshotSaveInput): TaskSnapshot;
15
+ export declare function snapshotSave(ctx: Ctx, input: SnapshotSaveInput): Promise<TaskSnapshot>;
14
16
  /** Clear the caller's active task snapshot; false when there was none. */
15
- export declare function snapshotClear(ctx: Context, status: string): boolean;
17
+ export declare function snapshotClear(ctx: Ctx, status: string): Promise<boolean>;
16
18
  /** The caller's active task snapshot, or null. */
17
- export declare function snapshotLoad(ctx: Context): TaskSnapshot | null;
19
+ export declare function snapshotLoad(ctx: Ctx): Promise<TaskSnapshot | null>;
18
20
  /** Append a session event in the caller's tenant. */
19
- export declare function sessionEventAppend(ctx: Context, event: SessionEventAppendInput): SessionEvent;
21
+ export declare function sessionEventAppend(ctx: Ctx, event: SessionEventAppendInput): Promise<SessionEvent>;
20
22
  /** List the caller's session events. */
21
- export declare function sessionEventList(ctx: Context, opts: SessionEventListOpts): SessionEvent[];
23
+ export declare function sessionEventList(ctx: Ctx, opts: SessionEventListOpts): Promise<SessionEvent[]>;
22
24
  export interface LatestContinuity {
23
25
  snapshot: TaskSnapshot | null;
24
26
  events: SessionEvent[];
25
27
  }
26
28
  /** The active snapshot plus recent events for `sessionId`, falling back to the snapshot's own session. */
27
- export declare function continuityLatest(ctx: Context, opts: {
29
+ export declare function continuityLatest(ctx: Ctx, opts: {
28
30
  sessionId?: string;
29
31
  limit: number;
30
- }): LatestContinuity;
32
+ }): Promise<LatestContinuity>;
31
33
  /** Stamp the outcome on the caller's handoff for `sessionId`; returns the rows stamped. */
32
- export declare function handoffStampOutcome(ctx: Context, sessionId: string, outcome: HandoffOutcome): number;
34
+ export declare function handoffStampOutcome(ctx: Ctx, sessionId: string, outcome: HandoffOutcome): Promise<number>;
33
35
  /** Save a session handoff in the caller's tenant. */
34
- export declare function handoffSave(ctx: Context, handoff: Omit<SessionHandoff, 'updatedAt'>): SessionHandoff;
36
+ export declare function handoffSave(ctx: Ctx, handoff: Omit<SessionHandoff, 'updatedAt'>): Promise<SessionHandoff>;
35
37
  /** The caller's latest handoff, optionally for one session. */
36
- export declare function handoffLatest(ctx: Context, sessionId?: string): SessionHandoff | null;
38
+ export declare function handoffLatest(ctx: Ctx, sessionId?: string): Promise<SessionHandoff | null>;
37
39
  /** The caller's handoff by id, or null. */
38
- export declare function handoffById(ctx: Context, id: number): SessionHandoff | null;
40
+ export declare function handoffById(ctx: Ctx, id: number): Promise<SessionHandoff | null>;
39
41
  /** Push a working memory entry in the caller's tenant; returns its row id. */
40
- export declare function workingMemoryPush(ctx: Context, opts: Omit<Parameters<typeof wmPush>[1], 'tenantId'>): number;
42
+ export declare function workingMemoryPush(ctx: Ctx, opts: Parameters<Sessions['pushWorkingMemory']>[1]): Promise<number>;
41
43
  /** The caller's working memory entries, most important first. */
42
- export declare function workingMemoryRead(ctx: Context, opts: Omit<NonNullable<Parameters<typeof wmRead>[1]>, 'tenantId'>): WorkingMemoryItem[];
44
+ export declare function workingMemoryRead(ctx: Ctx, opts: Parameters<Sessions['readWorkingMemory']>[1]): Promise<WorkingMemoryItem[]>;
43
45
  /** Delete the caller's working memory entries; returns the count. */
44
- export declare function workingMemoryClear(ctx: Context, opts: Omit<NonNullable<Parameters<typeof wmClear>[1]>, 'tenantId'>): number;
46
+ export declare function workingMemoryClear(ctx: Ctx, opts: Parameters<Sessions['clearWorkingMemory']>[1]): Promise<number>;
45
47
  /** Flush the caller's working memory at session end; returns the count. */
46
- export declare function workingMemoryFlush(ctx: Context, opts: Omit<NonNullable<Parameters<typeof wmFlush>[1]>, 'tenantId'>): number;
48
+ export declare function workingMemoryFlush(ctx: Ctx, opts: Parameters<Sessions['clearWorkingMemory']>[1]): Promise<number>;
49
+ export {};
47
50
  //# sourceMappingURL=continuity.d.ts.map
@@ -1,66 +1,64 @@
1
1
  // Where-you-left-off ops: task snapshot, session events, handoffs and working memory.
2
- import { appendSessionEvent, clearActiveTaskSnapshot, listSessionEvents, loadActiveTaskSnapshot, saveActiveTaskSnapshot, } from '../store/sessions.js';
3
- import { loadHandoffById, loadLatestHandoff, saveSessionHandoff, stampHandoffOutcome } from '../store/handoffs.js';
4
- import { wmClear, wmFlush, wmPush, wmRead } from '../store/working-memory.js';
5
2
  /** Save the caller's active task snapshot. */
6
3
  export function snapshotSave(ctx, input) {
7
- return saveActiveTaskSnapshot(ctx.hippoRoot, ctx.tenantId, input);
4
+ return ctx.store.sessions.saveSnapshot(ctx.tenantId, input, null);
8
5
  }
9
6
  /** Clear the caller's active task snapshot; false when there was none. */
10
7
  export function snapshotClear(ctx, status) {
11
- return clearActiveTaskSnapshot(ctx.hippoRoot, ctx.tenantId, status);
8
+ return ctx.store.sessions.clearSnapshot(ctx.tenantId, status);
12
9
  }
13
10
  /** The caller's active task snapshot, or null. */
14
11
  export function snapshotLoad(ctx) {
15
- return loadActiveTaskSnapshot(ctx.hippoRoot, ctx.tenantId);
12
+ return ctx.store.sessions.loadSnapshot(ctx.tenantId, null);
16
13
  }
17
14
  /** Append a session event in the caller's tenant. */
18
15
  export function sessionEventAppend(ctx, event) {
19
- return appendSessionEvent(ctx.hippoRoot, ctx.tenantId, event);
16
+ return ctx.store.sessions.appendEvent(ctx.tenantId, event);
20
17
  }
21
18
  /** List the caller's session events. */
22
19
  export function sessionEventList(ctx, opts) {
23
- return listSessionEvents(ctx.hippoRoot, ctx.tenantId, opts);
20
+ return ctx.store.sessions.listEvents(ctx.tenantId, opts);
24
21
  }
25
22
  /** The active snapshot plus recent events for `sessionId`, falling back to the snapshot's own session. */
26
- export function continuityLatest(ctx, opts) {
27
- const snapshot = loadActiveTaskSnapshot(ctx.hippoRoot, ctx.tenantId);
28
- const events = listSessionEvents(ctx.hippoRoot, ctx.tenantId, {
29
- session_id: opts.sessionId || snapshot?.session_id || undefined,
23
+ export async function continuityLatest(ctx, opts) {
24
+ const { sessions } = ctx.store;
25
+ const snapshot = await sessions.loadSnapshot(ctx.tenantId, null);
26
+ const events = await sessions.listEvents(ctx.tenantId, {
27
+ sessionId: opts.sessionId || snapshot?.session_id || undefined,
30
28
  limit: opts.limit,
31
29
  });
32
30
  return { snapshot, events };
33
31
  }
34
32
  /** Stamp the outcome on the caller's handoff for `sessionId`; returns the rows stamped. */
35
33
  export function handoffStampOutcome(ctx, sessionId, outcome) {
36
- return stampHandoffOutcome(ctx.hippoRoot, ctx.tenantId, sessionId, outcome);
34
+ return ctx.store.sessions.stampHandoffOutcome(ctx.tenantId, sessionId, outcome);
37
35
  }
38
36
  /** Save a session handoff in the caller's tenant. */
39
37
  export function handoffSave(ctx, handoff) {
40
- return saveSessionHandoff(ctx.hippoRoot, ctx.tenantId, handoff);
38
+ return ctx.store.sessions.saveHandoff(ctx.tenantId, handoff, null);
41
39
  }
42
40
  /** The caller's latest handoff, optionally for one session. */
43
41
  export function handoffLatest(ctx, sessionId) {
44
- return loadLatestHandoff(ctx.hippoRoot, ctx.tenantId, sessionId);
42
+ return ctx.store.sessions.latestHandoff(ctx.tenantId, sessionId ?? null, {}, null);
45
43
  }
46
44
  /** The caller's handoff by id, or null. */
47
45
  export function handoffById(ctx, id) {
48
- return loadHandoffById(ctx.hippoRoot, ctx.tenantId, id);
46
+ return ctx.store.sessions.handoffById(ctx.tenantId, id);
49
47
  }
50
48
  /** Push a working memory entry in the caller's tenant; returns its row id. */
51
49
  export function workingMemoryPush(ctx, opts) {
52
- return wmPush(ctx.hippoRoot, { ...opts, tenantId: ctx.tenantId });
50
+ return ctx.store.sessions.pushWorkingMemory(ctx.tenantId, opts);
53
51
  }
54
52
  /** The caller's working memory entries, most important first. */
55
53
  export function workingMemoryRead(ctx, opts) {
56
- return wmRead(ctx.hippoRoot, { ...opts, tenantId: ctx.tenantId });
54
+ return ctx.store.sessions.readWorkingMemory(ctx.tenantId, opts);
57
55
  }
58
56
  /** Delete the caller's working memory entries; returns the count. */
59
57
  export function workingMemoryClear(ctx, opts) {
60
- return wmClear(ctx.hippoRoot, { ...opts, tenantId: ctx.tenantId });
58
+ return ctx.store.sessions.clearWorkingMemory(ctx.tenantId, opts);
61
59
  }
62
60
  /** Flush the caller's working memory at session end; returns the count. */
63
61
  export function workingMemoryFlush(ctx, opts) {
64
- return wmFlush(ctx.hippoRoot, { ...opts, tenantId: ctx.tenantId });
62
+ return ctx.store.sessions.clearWorkingMemory(ctx.tenantId, opts);
65
63
  }
66
64
  //# sourceMappingURL=continuity.js.map
@@ -18,7 +18,9 @@ export interface CorrectionLatencyReport {
18
18
  maxMs: number | null;
19
19
  pairs: CorrectionPair[];
20
20
  }
21
- /** Correction latency = `new.created` minus the observation time (the extracted-from row's `created`, else `new.created`).
21
+ /**
22
+ * Correction latency = `new.created` minus the observation time (the extracted-from row's `created`, else
23
+ * `new.created`).
22
24
  * Manual supersedes have latency 0 and are excluded from percentiles so they do not mask real lag. */
23
25
  export declare function buildCorrectionLatency(entries: MemoryEntry[]): CorrectionLatencyReport;
24
26
  //# sourceMappingURL=correction-latency.d.ts.map
@@ -10,7 +10,9 @@ function percentile(sorted, q) {
10
10
  return sorted[lo];
11
11
  return sorted[lo] + (sorted[hi] - sorted[lo]) * (idx - lo);
12
12
  }
13
- /** Correction latency = `new.created` minus the observation time (the extracted-from row's `created`, else `new.created`).
13
+ /**
14
+ * Correction latency = `new.created` minus the observation time (the extracted-from row's `created`, else
15
+ * `new.created`).
14
16
  * Manual supersedes have latency 0 and are excluded from percentiles so they do not mask real lag. */
15
17
  export function buildCorrectionLatency(entries) {
16
18
  const byId = new Map();
@@ -3,6 +3,9 @@ export interface ApiErrorReply {
3
3
  status: number;
4
4
  message: string;
5
5
  }
6
- /** Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server log. */
6
+ /**
7
+ * Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server
8
+ * log.
9
+ */
7
10
  export declare function mapApiError<E>(err: E): ApiErrorReply;
8
11
  //# sourceMappingURL=error-reply.d.ts.map
@@ -1,9 +1,18 @@
1
- // The one error-to-reply map the HTTP server and the MCP transports share, so a status never depends on which front end caught the error.
1
+ // The one error-to-reply map the HTTP server and the MCP transports share, so a status never depends on which front end
2
+ // caught the error.
2
3
  import { ApiError } from '../core/api-errors.js';
3
- import { BodyTimeoutError, BodyTooLargeError, HttpError, INTERNAL_ERROR_MESSAGE, STORE_NOT_PORTED_MESSAGE } from '../util/http-util.js';
4
+ import { BodyTimeoutError, BodyTooLargeError, HttpError, INTERNAL_ERROR_MESSAGE, STORE_NOT_PORTED_MESSAGE, } from '../util/http-util.js';
4
5
  import { SqliteBlockedError } from '../util/sqlite-blocked.js';
5
- /** Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server log. */
6
+ import { STORE_BUSY_MESSAGE } from '../store/port.js';
7
+ import { isStoreBusy } from './busy.js';
8
+ /**
9
+ * Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server
10
+ * log.
11
+ */
6
12
  export function mapApiError(err) {
13
+ // A held lock is a retryable 503 in every store, so the surfaces need not know SQLite's busy codes.
14
+ if (isStoreBusy(err))
15
+ return { status: 503, message: STORE_BUSY_MESSAGE };
7
16
  // An add-on can build an HttpError from any number, and writeHead throws on one outside 100-999.
8
17
  if (err instanceof HttpError && !(Number.isInteger(err.status) && err.status >= 100 && err.status <= 999)) {
9
18
  return { status: 500, message: INTERNAL_ERROR_MESSAGE };
@@ -4,27 +4,43 @@ export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../core/recall-
4
4
  export type { TokenSummary, TokenSurface, TokenSurfaceSummary } from '../store/token-ledger.js';
5
5
  export type { FailureSummary } from '../store/failure-log.js';
6
6
  export { classifyOriginProject } from '../core/project-identity.js';
7
- export * from './types.js';
8
- export * from './remember.js';
9
- export * from './remember-local.js';
10
- export * from './recall-types.js';
11
- export * from './recall.js';
12
- export * from './assemble.js';
13
- export * from './drill-down.js';
14
- export * from './outcome.js';
15
- export * from './forget.js';
16
- export * from './conflicts.js';
17
- export * from './projects.js';
18
- export * from './promote.js';
19
- export * from './auth.js';
20
- export * from './audit.js';
21
- export * from './context-types.js';
22
- export * from './context.js';
23
- export * from './tokens.js';
24
- export * from './dormant.js';
25
- export * from './quarantine.js';
26
- export * from './sleep.js';
27
- export * from './goals.js';
28
- export * from './learn.js';
29
- export * from './refine.js';
7
+ export { RecallContractError, adminActor, narrowContext, ownerOrSubject, requireHostAdmin } from './types.js';
8
+ export type { Actor, Context, ContextWith, HippoDbContext, StoreContext } from './types.js';
9
+ export { remember } from './memories/remember.js';
10
+ export type { RememberLocal, RememberOpts, RememberResult } from './memories/remember.js';
11
+ export { extractRememberedFacts, rememberLocally } from './memories/remember-local.js';
12
+ export type { FactExtraction, FactExtractionRequest, LocalRememberInput, LocalRememberOutcome, StartedWeak, } from './memories/remember-local.js';
13
+ export type { CliCoreInspection, CliCoreRanker, CliCoreRecall, ContinuityBlock, RecallOpts, RecallResult, RecallResultItem, RecallSuppressionSummary, ShownCliCore, ShownRanking, StoreRanking, } from './recall/types.js';
14
+ export { retrieve } from './recall/recall.js';
15
+ export { DEFAULT_ASSEMBLE_BUDGET, assemble } from './assemble.js';
16
+ export type { AssembleCost, AssembleOpts, AssembleResult, AssembledContextItem } from './assemble.js';
17
+ export { drillDown } from './objects/drill-down.js';
18
+ export type { DrillDownChild, DrillDownCost, DrillDownFailure, DrillDownOpts, DrillDownOutcome, DrillDownResult, DrillDownSummary, } from './objects/drill-down.js';
19
+ export { outcome, outcomeForLastRecall } from './memories/outcome.js';
20
+ export type { OutcomeForLastRecallResult, OutcomeResult } from './memories/outcome.js';
21
+ export { forget, reject, rejectOnHost, unreject } from './memories/forget.js';
22
+ export type { ForgetResult, RejectOpts, RejectResult } from './memories/forget.js';
23
+ export { listConflicts, listOpenConflicts, resolveMemoryConflict } from './memories/conflicts.js';
24
+ export type { ResolveMemoryConflictOpts, ResolveMemoryConflictResult } from './memories/conflicts.js';
25
+ export { listProjectNames, mergeProjectNames, repairProjectNames, repairProjectNamesOnce } from './objects/projects.js';
26
+ export type { MergeProjectNamesOpts, MergeResult, ProjectCollision, ProjectFold, ProjectSummary, RepairResult, } from './objects/projects.js';
27
+ export { archiveRaw, promote, supersede } from './memories/promote.js';
28
+ export type { ArchiveRawOpts, ArchiveRawResult, PromoteResult, SupersedeOverrides, SupersedeResult, } from './memories/promote.js';
29
+ export { DEFAULT_KEY_TTL_DAYS, MAX_TTL_DAYS, authCreate, authCreateSelf, authGrant, authKeyTenant, authListAllTenants, authListRows, authRevoke, authUngrant, } from './auth/auth.js';
30
+ export type { AuthCreateOpts, AuthCreateResult, AuthCreateSelfOpts, AuthCreateSelfResult, AuthGrantResult, AuthRevokeResult, } from './auth/auth.js';
31
+ export { auditList, auditMemoryQuality, computeCutoff, pruneAuditLog, removeAuditErrors, repairMemoryQuality, repairMemoryQualityOnce, } from './auth/audit.js';
32
+ export type { AuditListOpts, AuditPass, PruneAuditOpts, PruneAuditResult } from './auth/audit.js';
33
+ export type { ContextCost, ContextOpts, ContextResult, ContextResultEntry } from './context-types.js';
34
+ export { DEFAULT_CONTEXT_BUDGET, NO_QUERY, ambientSecretAdmit, getContext, oneCopyPerMemory } from './context.js';
35
+ export { failureSummary, recordTokens, tokenSummary } from './tokens.js';
36
+ export { forgetDormant, isDormant, listDormant, restoreDormant } from './sleep/dormant.js';
37
+ export { quarantineApprove, quarantineList, quarantineReject } from './auth/quarantine.js';
38
+ export type { QuarantineListItem } from './auth/quarantine.js';
39
+ export { sleep } from './sleep/sleep.js';
40
+ export type { SleepOpts, SleepResult } from './sleep/sleep.js';
41
+ export { goalComplete, goalList, goalPush, goalResume, goalSuspend } from './objects/goals.js';
42
+ export type { GoalPushOpts } from './objects/goals.js';
43
+ export { CLI_LEARN, MCP_LEARN, invalidateMemories, learn } from './sleep/learn.js';
44
+ export type { InvalidationOptions, InvalidationResult, InvalidationTarget, LearnOpts, LearnProfile, LearnResult, } from './sleep/learn.js';
45
+ export { REFINED_TAG, storeRefinement } from './memories/refine.js';
30
46
  //# sourceMappingURL=index.d.ts.map
package/dist/api/index.js CHANGED
@@ -7,27 +7,25 @@ export { isPrivateScope, passesScopeFilterForRecall } from '../core/recall-scope
7
7
  export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../core/recall-scope.js';
8
8
  // classifyOriginProject lives in project-identity.ts (leaf) for the same reason.
9
9
  export { classifyOriginProject } from '../core/project-identity.js';
10
- export * from './types.js';
11
- export * from './remember.js';
12
- export * from './remember-local.js';
13
- export * from './recall-types.js';
14
- export * from './recall.js';
15
- export * from './assemble.js';
16
- export * from './drill-down.js';
17
- export * from './outcome.js';
18
- export * from './forget.js';
19
- export * from './conflicts.js';
20
- export * from './projects.js';
21
- export * from './promote.js';
22
- export * from './auth.js';
23
- export * from './audit.js';
24
- export * from './context-types.js';
25
- export * from './context.js';
26
- export * from './tokens.js';
27
- export * from './dormant.js';
28
- export * from './quarantine.js';
29
- export * from './sleep.js';
30
- export * from './goals.js';
31
- export * from './learn.js';
32
- export * from './refine.js';
10
+ export { RecallContractError, adminActor, narrowContext, ownerOrSubject, requireHostAdmin } from './types.js';
11
+ export { remember } from './memories/remember.js';
12
+ export { extractRememberedFacts, rememberLocally } from './memories/remember-local.js';
13
+ export { retrieve } from './recall/recall.js';
14
+ export { DEFAULT_ASSEMBLE_BUDGET, assemble } from './assemble.js';
15
+ export { drillDown } from './objects/drill-down.js';
16
+ export { outcome, outcomeForLastRecall } from './memories/outcome.js';
17
+ export { forget, reject, rejectOnHost, unreject } from './memories/forget.js';
18
+ export { listConflicts, listOpenConflicts, resolveMemoryConflict } from './memories/conflicts.js';
19
+ export { listProjectNames, mergeProjectNames, repairProjectNames, repairProjectNamesOnce } from './objects/projects.js';
20
+ export { archiveRaw, promote, supersede } from './memories/promote.js';
21
+ export { DEFAULT_KEY_TTL_DAYS, MAX_TTL_DAYS, authCreate, authCreateSelf, authGrant, authKeyTenant, authListAllTenants, authListRows, authRevoke, authUngrant, } from './auth/auth.js';
22
+ export { auditList, auditMemoryQuality, computeCutoff, pruneAuditLog, removeAuditErrors, repairMemoryQuality, repairMemoryQualityOnce, } from './auth/audit.js';
23
+ export { DEFAULT_CONTEXT_BUDGET, NO_QUERY, ambientSecretAdmit, getContext, oneCopyPerMemory } from './context.js';
24
+ export { failureSummary, recordTokens, tokenSummary } from './tokens.js';
25
+ export { forgetDormant, isDormant, listDormant, restoreDormant } from './sleep/dormant.js';
26
+ export { quarantineApprove, quarantineList, quarantineReject } from './auth/quarantine.js';
27
+ export { sleep } from './sleep/sleep.js';
28
+ export { goalComplete, goalList, goalPush, goalResume, goalSuspend } from './objects/goals.js';
29
+ export { CLI_LEARN, MCP_LEARN, invalidateMemories, learn } from './sleep/learn.js';
30
+ export { REFINED_TAG, storeRefinement } from './memories/refine.js';
33
31
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,7 @@
1
- /** Prompt-injection detection for untrusted memory content. Same shape as secret-detect.ts; leaf module, no store/api/shared imports. */
1
+ /**
2
+ * Prompt-injection detection for untrusted memory content. Same shape
3
+ * as secret-detect.ts; leaf module, no store/api/shared imports.
4
+ */
2
5
  export interface InstructionDetection {
3
6
  flagged: boolean;
4
7
  reason: string | null;
@@ -1,7 +1,16 @@
1
- /** Prompt-injection detection for untrusted memory content. Same shape as secret-detect.ts; leaf module, no store/api/shared imports. */
1
+ /**
2
+ * Prompt-injection detection for untrusted memory content. Same shape
3
+ * as secret-detect.ts; leaf module, no store/api/shared imports.
4
+ */
2
5
  const INSTRUCTION_PATTERNS = [
3
- { name: 'override-instructions', re: /\b(?:ignore|disregard|forget)\b[^.\n]{0,40}\b(?:previous|prior|above)\b[^.\n]{0,40}\binstructions?\b/i },
4
- { name: 'role-reassignment', re: /\b(?:you are now|act as|pretend to be)\b[^.\n]{0,40}\b(?:an?\s+)?(?:ai|assistant|agent|system)\b/i },
6
+ {
7
+ name: 'override-instructions',
8
+ re: /\b(?:ignore|disregard|forget)\b[^.\n]{0,40}\b(?:previous|prior|above)\b[^.\n]{0,40}\binstructions?\b/i,
9
+ },
10
+ {
11
+ name: 'role-reassignment',
12
+ re: /\b(?:you are now|act as|pretend to be)\b[^.\n]{0,40}\b(?:an?\s+)?(?:ai|assistant|agent|system)\b/i,
13
+ },
5
14
  { name: 'chat-role-markup', re: /<\|im_start\|>|<\|system\|>|\[INST\]|<\/?system>|###\s*system\s*:/i },
6
15
  {
7
16
  name: 'system-prompt-reference',
@@ -11,16 +20,22 @@ const INSTRUCTION_PATTERNS = [
11
20
  // "always"/"never" alone (ordinary PR prose) doesn't flag without an agent-facing target nearby too.
12
21
  {
13
22
  name: 'standing-order',
14
- re: /\b(?:from now on|whenever you|always|never)\b[^.\n]{0,50}\b(?:you must|(?:the ai|the assistant|the agent|claude|copilot)\s+(?:must|should|will)\b)/i
23
+ re: new RegExp(String.raw `\b(?:from now on|whenever you|always|never)\b[^.\n]{0,50}\b(?:you must|` +
24
+ String.raw `(?:the ai|the assistant|the agent|claude|copilot)\s+(?:must|should|will)\b)`, 'i'),
25
+ },
26
+ {
27
+ name: 'concealment',
28
+ re: /\b(?:do not|never|don't)\b[^.\n]{0,40}\b(?:tell|mention|reveal)\b[^.\n]{0,40}\bthe user\b/i,
15
29
  },
16
- { name: 'concealment', re: /\b(?:do not|never|don't)\b[^.\n]{0,40}\b(?:tell|mention|reveal)\b[^.\n]{0,40}\bthe user\b/i },
17
30
  {
18
31
  name: 'remote-script-exec',
19
- re: /\b(?:curl|wget)\b[^\n|]{0,80}\|\s*(?:sudo\s+)?(?:sh|bash|zsh)\b|\biex\s*\(\s*(?:iwr|invoke-webrequest|new-object\s+net\.webclient)/i
32
+ re: new RegExp(String.raw `\b(?:curl|wget)\b[^\n|]{0,80}\|\s*(?:sudo\s+)?(?:sh|bash|zsh)\b|` +
33
+ String.raw `\biex\s*\(\s*(?:iwr|invoke-webrequest|new-object\s+net\.webclient)`, 'i'),
20
34
  },
21
35
  {
22
36
  name: 'exfiltration',
23
- re: /\b(?:send|post|upload|exfiltrate)\b[^.\n]{0,40}\b(?:secrets?|tokens?|api[- ]?keys?|credentials?|env(?:ironment)? variables?)\b/i
37
+ re: new RegExp(String.raw `\b(?:send|post|upload|exfiltrate)\b[^.\n]{0,40}\b` +
38
+ String.raw `(?:secrets?|tokens?|api[- ]?keys?|credentials?|env(?:ironment)? variables?)\b`, 'i'),
24
39
  },
25
40
  { name: 'unicode-tag-chars', re: /[\u{E0000}-\u{E007F}]/u },
26
41
  ];
@@ -30,20 +45,59 @@ const ZERO_WIDTH_RUN_RE = /[\u200B-\u200F\u2060-\u2064]{3,}/;
30
45
  const BIDI_CONTROL_RE = /[\u202A-\u202E\u2066-\u2069]/;
31
46
  // A renderer draws a reference as the character it names: decimal, hex, or one of the five names XML defines.
32
47
  const CHARACTER_REFERENCE_RE = /&(?:#(\d{1,7})|#[xX]([0-9a-fA-F]{1,6})|(amp|lt|gt|quot|apos));/g;
33
- const NAMED_REFERENCES = new Map([['amp', '&'], ['lt', '<'], ['gt', '>'], ['quot', '"'], ['apos', "'"]]);
34
- // Drawn with no width, so one inside a word splits it for a pattern and not for a reader: soft hyphen, joiners, zero-width and bidi format characters.
48
+ const NAMED_REFERENCES = new Map([
49
+ ['amp', '&'],
50
+ ['lt', '<'],
51
+ ['gt', '>'],
52
+ ['quot', '"'],
53
+ ['apos', "'"],
54
+ ]);
55
+ // Drawn with no width, so one inside a word splits it for a pattern and not for a reader: soft hyphen, joiners,
56
+ // zero-width and bidi format characters.
35
57
  const INVISIBLE_RE = /[\u034F\u00AD\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u2069\uFEFF]/g;
36
- // Cyrillic, then Greek, letters drawn like a c e i j o p s x y; closed at those, so Russian or Greek prose folds into no phrase a pattern names.
58
+ // Cyrillic, then Greek, letters drawn like a c e i j o p s x y; closed at those, so Russian or Greek prose folds into
59
+ // no phrase a pattern names.
37
60
  const LOOKALIKES = new Map([
38
- ['\u0430', 'a'], ['\u0441', 'c'], ['\u0435', 'e'], ['\u0456', 'i'], ['\u0458', 'j'], ['\u043E', 'o'], ['\u0440', 'p'], ['\u0455', 's'],
39
- ['\u0445', 'x'], ['\u0443', 'y'],
40
- ['\u0410', 'A'], ['\u0421', 'C'], ['\u0415', 'E'], ['\u0406', 'I'], ['\u0408', 'J'], ['\u041E', 'O'], ['\u0420', 'P'], ['\u0405', 'S'],
41
- ['\u0425', 'X'], ['\u0423', 'Y'],
42
- ['\u03B1', 'a'], ['\u03B5', 'e'], ['\u03B9', 'i'], ['\u03F3', 'j'], ['\u03BF', 'o'], ['\u03C1', 'p'], ['\u03C7', 'x'], ['\u03B3', 'y'],
43
- ['\u0391', 'A'], ['\u0395', 'E'], ['\u0399', 'I'], ['\u037F', 'J'], ['\u039F', 'O'], ['\u03A1', 'P'], ['\u03A7', 'X'], ['\u03A5', 'Y'],
61
+ ['\u0430', 'a'],
62
+ ['\u0441', 'c'],
63
+ ['\u0435', 'e'],
64
+ ['\u0456', 'i'],
65
+ ['\u0458', 'j'],
66
+ ['\u043E', 'o'],
67
+ ['\u0440', 'p'],
68
+ ['\u0455', 's'],
69
+ ['\u0445', 'x'],
70
+ ['\u0443', 'y'],
71
+ ['\u0410', 'A'],
72
+ ['\u0421', 'C'],
73
+ ['\u0415', 'E'],
74
+ ['\u0406', 'I'],
75
+ ['\u0408', 'J'],
76
+ ['\u041E', 'O'],
77
+ ['\u0420', 'P'],
78
+ ['\u0405', 'S'],
79
+ ['\u0425', 'X'],
80
+ ['\u0423', 'Y'],
81
+ ['\u03B1', 'a'],
82
+ ['\u03B5', 'e'],
83
+ ['\u03B9', 'i'],
84
+ ['\u03F3', 'j'],
85
+ ['\u03BF', 'o'],
86
+ ['\u03C1', 'p'],
87
+ ['\u03C7', 'x'],
88
+ ['\u03B3', 'y'],
89
+ ['\u0391', 'A'],
90
+ ['\u0395', 'E'],
91
+ ['\u0399', 'I'],
92
+ ['\u037F', 'J'],
93
+ ['\u039F', 'O'],
94
+ ['\u03A1', 'P'],
95
+ ['\u03A7', 'X'],
96
+ ['\u03A5', 'Y'],
44
97
  ]);
45
98
  const GREEK_OR_CYRILLIC_RE = /[\u0370-\u03FF\u0400-\u04FF]/g;
46
- // A line break stays: it is the sentence bound the patterns rely on where a list or a chat message ends a line with no full stop.
99
+ // A line break stays: it is the sentence bound the patterns rely
100
+ // on where a list or a chat message ends a line with no full stop.
47
101
  const SPACE_RUN_RE = /[^\S\n]+/g;
48
102
  function referencedCharacter(reference, decimal, hex, name) {
49
103
  if (name !== undefined)
@@ -55,13 +109,13 @@ function referencedCharacter(reference, decimal, hex, name) {
55
109
  }
56
110
  /** `content` as a reader or a model takes it in. For matching only: what is stored is never this. */
57
111
  function screeningForm(content) {
58
- return content
112
+ return (content
59
113
  .replace(CHARACTER_REFERENCE_RE, referencedCharacter)
60
114
  // Full-width, mathematical and enclosed letters become the plain ones, and every space character a U+0020.
61
115
  .normalize('NFKC')
62
116
  .replace(INVISIBLE_RE, '')
63
117
  .replace(GREEK_OR_CYRILLIC_RE, (letter) => LOOKALIKES.get(letter) ?? letter)
64
- .replace(SPACE_RUN_RE, ' ');
118
+ .replace(SPACE_RUN_RE, ' '));
65
119
  }
66
120
  function matchedPattern(text) {
67
121
  for (const { name, re } of INSTRUCTION_PATTERNS) {
@@ -71,7 +125,8 @@ function matchedPattern(text) {
71
125
  return null;
72
126
  }
73
127
  export function detectInstruction(content) {
74
- // The text as written goes first: a phrase in plain sight is named before any smuggling rule, and the screening form only adds flags.
128
+ // The text as written goes first: a phrase in plain sight is named before any smuggling rule, and the screening form
129
+ // only adds flags.
75
130
  const plain = matchedPattern(content);
76
131
  if (plain !== null)
77
132
  return { flagged: true, reason: plain };
@@ -1,17 +1,21 @@
1
1
  import { type LedgerTurn } from '../store/ledger-turn.js';
2
+ import { type HippoStore, type StoreReach } from '../store/port.js';
2
3
  import type { LastSent, TokenSurface, TokenUse } from '../store/token-ledger.js';
3
- export interface LedgerRootOpts {
4
- /** The store serves many people, so the global store of the user running it belongs to none of them. */
5
- readonly sharedStore?: boolean;
6
- }
7
- /** `hippoRoot` when it holds a store, else the global store (the prompt hook fires where no local one exists), else null. */
8
- export declare function ledgerRoot(hippoRoot: string, opts?: LedgerRootOpts): string | null;
9
- /** Runs `call` on ledgerRoot's store root. Best-effort: undefined on any failure, because a ledger failure must not break context or recall. */
10
- export declare function onLedgerRoot<T>(hippoRoot: string, opts: LedgerRootOpts | undefined, call: (root: string) => T): T | undefined;
4
+ /** The slice of a call's store reach that picks the ledger; a shared store has no `global`. */
5
+ export type LedgerReach = Pick<StoreReach, 'hasLocal' | 'global'>;
6
+ /** The ledger is SQLite-only: a local store needs a reach that says so and a SQLite store; no reach books nowhere. */
7
+ export declare function ledgerReachOf(ctx: {
8
+ readonly reach?: StoreReach;
9
+ readonly store?: HippoStore;
10
+ }, shared?: boolean): LedgerReach;
11
+ /** `hippoRoot` when the call has a store of its own, else the global store (the prompt hook fires where none is). */
12
+ export declare function ledgerRoot(hippoRoot: string, reach: LedgerReach): string | null;
13
+ /** Runs `call` on ledgerRoot's store root; undefined on any failure, since a ledger failure must not break recall. */
14
+ export declare function onLedgerRoot<T>(hippoRoot: string, reach: LedgerReach, call: (root: string) => T): T | undefined;
11
15
  /** Books one row in ledgerRoot's store, best-effort. */
12
- export declare function bookTokenUse(hippoRoot: string, use: TokenUse, opts?: LedgerRootOpts): void;
16
+ export declare function bookTokenUse(hippoRoot: string, use: TokenUse, reach: LedgerReach): void;
13
17
  /** Books a turn's rows and then its delivery event on one connection of ledgerRoot's store, best-effort. */
14
- export declare function bookLedgerTurn(hippoRoot: string, turn: LedgerTurn, opts?: LedgerRootOpts): void;
18
+ export declare function bookLedgerTurn(hippoRoot: string, turn: LedgerTurn, reach: LedgerReach): void;
15
19
  /** What the session last sent on `surface` in ledgerRoot's store; undefined with no ledger or a failed read. */
16
- export declare function ledgerLastSent(hippoRoot: string, tenantId: string, sessionId: string | null | undefined, surface: TokenSurface, opts?: LedgerRootOpts): LastSent | null | undefined;
20
+ export declare function ledgerLastSent(hippoRoot: string, tenantId: string, sessionId: string | null | undefined, surface: TokenSurface, reach: LedgerReach): LastSent | null | undefined;
17
21
  //# sourceMappingURL=ledger-db.d.ts.map
@@ -1,27 +1,25 @@
1
1
  // The store the token ledger writes to for a caller's root; context, recall and the session hooks share it.
2
- import { errorMessage, log } from '../util/log.js';
3
- import { getGlobalRoot } from '../sharing/global-store.js';
4
- import { lastSentOnSurface, noteLedgerRowSkipped, recordLedgerTurn } from '../store/ledger-turn.js';
5
- import { isInitialized } from '../core/project-identity.js';
6
- import { sqliteSyncStore } from '../store/sqlite/store.js';
7
- /** `hippoRoot` when it holds a store, else the global store (the prompt hook fires where no local one exists), else null. */
8
- export function ledgerRoot(hippoRoot, opts) {
9
- if (isInitialized(hippoRoot))
10
- return hippoRoot;
11
- if (opts?.sharedStore)
12
- return null;
13
- const globalRoot = getGlobalRoot();
14
- return isInitialized(globalRoot) ? globalRoot : null;
2
+ import { errorMessage, log, errorFields } from '../util/log.js';
3
+ import { lastSentOnSurface, noteLedgerRowSkipped, recordLedgerTurn, recordTokensAt, } from '../store/ledger-turn.js';
4
+ import { hasGroup } from '../store/port.js';
5
+ /** The ledger is SQLite-only: a local store needs a reach that says so and a SQLite store; no reach books nowhere. */
6
+ export function ledgerReachOf(ctx, shared) {
7
+ const hasLocal = ctx.reach?.hasLocal === true && (ctx.store === undefined || hasGroup(ctx.store, 'localFiles'));
8
+ return shared === true ? { hasLocal } : { hasLocal, global: ctx.reach?.global };
15
9
  }
16
- /** Runs `call` on ledgerRoot's store root. Best-effort: undefined on any failure, because a ledger failure must not break context or recall. */
17
- export function onLedgerRoot(hippoRoot, opts, call) {
10
+ /** `hippoRoot` when the call has a store of its own, else the global store (the prompt hook fires where none is). */
11
+ export function ledgerRoot(hippoRoot, reach) {
12
+ return reach.hasLocal ? hippoRoot : (reach.global?.root ?? null);
13
+ }
14
+ /** Runs `call` on ledgerRoot's store root; undefined on any failure, since a ledger failure must not break recall. */
15
+ export function onLedgerRoot(hippoRoot, reach, call) {
18
16
  let root = null;
19
17
  try {
20
- root = ledgerRoot(hippoRoot, opts);
18
+ root = ledgerRoot(hippoRoot, reach);
21
19
  }
22
20
  catch (error) {
23
21
  // An unreadable store root means no ledger write; the ledger must never break context or recall.
24
- log.debug(`token ledger skipped, store root unreadable: ${errorMessage(error)}`);
22
+ log.debug(`token ledger skipped, store root unreadable: ${errorMessage(error)}`, errorFields(error));
25
23
  return undefined;
26
24
  }
27
25
  if (root === null)
@@ -35,15 +33,15 @@ export function onLedgerRoot(hippoRoot, opts, call) {
35
33
  }
36
34
  }
37
35
  /** Books one row in ledgerRoot's store, best-effort. */
38
- export function bookTokenUse(hippoRoot, use, opts) {
39
- onLedgerRoot(hippoRoot, opts, (root) => sqliteSyncStore(root).recordTokens(use));
36
+ export function bookTokenUse(hippoRoot, use, reach) {
37
+ onLedgerRoot(hippoRoot, reach, (root) => recordTokensAt(root, use));
40
38
  }
41
39
  /** Books a turn's rows and then its delivery event on one connection of ledgerRoot's store, best-effort. */
42
- export function bookLedgerTurn(hippoRoot, turn, opts) {
43
- onLedgerRoot(hippoRoot, opts, (root) => recordLedgerTurn(root, turn));
40
+ export function bookLedgerTurn(hippoRoot, turn, reach) {
41
+ onLedgerRoot(hippoRoot, reach, (root) => recordLedgerTurn(root, turn));
44
42
  }
45
43
  /** What the session last sent on `surface` in ledgerRoot's store; undefined with no ledger or a failed read. */
46
- export function ledgerLastSent(hippoRoot, tenantId, sessionId, surface, opts) {
47
- return onLedgerRoot(hippoRoot, opts, (root) => lastSentOnSurface(root, tenantId, sessionId, surface));
44
+ export function ledgerLastSent(hippoRoot, tenantId, sessionId, surface, reach) {
45
+ return onLedgerRoot(hippoRoot, reach, (root) => lastSentOnSurface(root, tenantId, sessionId, surface));
48
46
  }
49
47
  //# sourceMappingURL=ledger-db.js.map