hippo-memory 1.72.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 (995) hide show
  1. package/README.md +6 -4
  2. package/dist/agent-memories/apply.d.ts +7 -5
  3. package/dist/agent-memories/apply.js +66 -39
  4. package/dist/agent-memories/claude-code.d.ts +8 -2
  5. package/dist/agent-memories/claude-code.js +26 -7
  6. package/dist/agent-memories/copilot.js +2 -1
  7. package/dist/agent-memories/files.js +2 -1
  8. package/dist/agent-memories/legacy.d.ts +6 -3
  9. package/dist/agent-memories/legacy.js +35 -14
  10. package/dist/agent-memories/markdown.d.ts +3 -1
  11. package/dist/agent-memories/markdown.js +3 -1
  12. package/dist/agent-memories/openclaw.js +5 -2
  13. package/dist/agent-memories/plan.js +11 -1
  14. package/dist/agent-memories/project-folds.js +2 -1
  15. package/dist/agent-memories/report.d.ts +4 -1
  16. package/dist/agent-memories/report.js +43 -9
  17. package/dist/agent-memories/source.d.ts +8 -2
  18. package/dist/agent-memories/source.js +11 -3
  19. package/dist/agent-memories/sync.d.ts +7 -2
  20. package/dist/agent-memories/sync.js +141 -101
  21. package/dist/api/assemble.d.ts +6 -4
  22. package/dist/api/assemble.js +11 -5
  23. package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
  24. package/dist/api/auth/audit.js +58 -0
  25. package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -16
  26. package/dist/api/{auth.js → auth/auth.js} +66 -54
  27. package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
  28. package/dist/api/{quarantine.js → auth/quarantine.js} +8 -7
  29. package/dist/api/auth/session-owners.d.ts +10 -0
  30. package/dist/api/auth/session-owners.js +35 -0
  31. package/dist/api/availability.d.ts +3 -1
  32. package/dist/api/availability.js +3 -1
  33. package/dist/api/busy.d.ts +2 -0
  34. package/dist/api/busy.js +2 -0
  35. package/dist/api/cli-surface.d.ts +6 -0
  36. package/dist/api/cli-surface.js +6 -0
  37. package/dist/api/config-of.d.ts +5 -0
  38. package/dist/api/config-of.js +6 -0
  39. package/dist/api/context-auto.d.ts +4 -1
  40. package/dist/api/context-auto.js +14 -4
  41. package/dist/api/context-render.js +14 -7
  42. package/dist/api/context-select.d.ts +4 -1
  43. package/dist/api/context-select.js +31 -34
  44. package/dist/api/context-types.d.ts +38 -12
  45. package/dist/api/context.d.ts +8 -5
  46. package/dist/api/context.js +120 -63
  47. package/dist/api/continuity.d.ts +24 -21
  48. package/dist/api/continuity.js +18 -20
  49. package/dist/api/correction-latency.d.ts +3 -1
  50. package/dist/api/correction-latency.js +3 -1
  51. package/dist/api/error-reply.d.ts +4 -1
  52. package/dist/api/error-reply.js +12 -3
  53. package/dist/api/index.d.ts +39 -23
  54. package/dist/api/index.js +21 -23
  55. package/dist/api/instruction-detect.d.ts +4 -1
  56. package/dist/api/instruction-detect.js +75 -20
  57. package/dist/api/ledger-db.d.ts +15 -11
  58. package/dist/api/ledger-db.js +21 -23
  59. package/dist/api/memories/conflicts.d.ts +33 -0
  60. package/dist/api/memories/conflicts.js +67 -0
  61. package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
  62. package/dist/api/{forget.js → memories/forget.js} +23 -17
  63. package/dist/api/memories/memories.d.ts +27 -0
  64. package/dist/api/memories/memories.js +52 -0
  65. package/dist/api/memories/outcome.d.ts +22 -0
  66. package/dist/api/memories/outcome.js +28 -0
  67. package/dist/api/memories/promote.d.ts +40 -0
  68. package/dist/api/memories/promote.js +76 -0
  69. package/dist/api/memories/refine.d.ts +10 -0
  70. package/dist/api/memories/refine.js +12 -0
  71. package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +17 -9
  72. package/dist/api/{remember-local.js → memories/remember-local.js} +46 -24
  73. package/dist/api/{remember.d.ts → memories/remember.d.ts} +22 -13
  74. package/dist/api/{remember.js → memories/remember.js} +50 -32
  75. package/dist/api/objects/cards.d.ts +39 -0
  76. package/dist/api/{cards.js → objects/cards.js} +12 -14
  77. package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
  78. package/dist/api/{drill-down.js → objects/drill-down.js} +7 -7
  79. package/dist/api/objects/goals.d.ts +18 -0
  80. package/dist/api/{goals.js → objects/goals.js} +12 -12
  81. package/dist/api/objects/graph.d.ts +11 -0
  82. package/dist/api/objects/graph.js +16 -0
  83. package/dist/api/objects/objects.d.ts +9 -0
  84. package/dist/api/{objects.js → objects/objects.js} +2 -3
  85. package/dist/api/objects/predictions.d.ts +11 -0
  86. package/dist/api/{predictions.js → objects/predictions.js} +7 -5
  87. package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
  88. package/dist/api/{projects.js → objects/projects.js} +8 -4
  89. package/dist/api/pilot-arm.d.ts +8 -4
  90. package/dist/api/pilot-arm.js +5 -4
  91. package/dist/api/prompt-hook.d.ts +35 -20
  92. package/dist/api/prompt-hook.js +66 -44
  93. package/dist/api/provenance-coverage.d.ts +3 -1
  94. package/dist/api/provenance-coverage.js +3 -1
  95. package/dist/api/recall/finish.d.ts +185 -0
  96. package/dist/api/recall/finish.js +301 -0
  97. package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
  98. package/dist/api/{recall-pipeline.js → recall/pipeline.js} +185 -101
  99. package/dist/api/recall/recall.d.ts +6 -0
  100. package/dist/api/{recall.js → recall/recall.js} +116 -72
  101. package/dist/api/recall/render.d.ts +39 -0
  102. package/dist/api/recall/render.js +60 -0
  103. package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
  104. package/dist/api/recall/request.js +261 -0
  105. package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
  106. package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
  107. package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -68
  108. package/dist/api/{recall-types.js → recall/types.js} +1 -1
  109. package/dist/api/session-end.d.ts +36 -8
  110. package/dist/api/session-end.js +71 -25
  111. package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
  112. package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
  113. package/dist/api/sleep/dormant.d.ts +25 -0
  114. package/dist/api/sleep/dormant.js +64 -0
  115. package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
  116. package/dist/api/sleep/learn.js +138 -0
  117. package/dist/api/sleep/sleep-run.d.ts +38 -0
  118. package/dist/api/{sleep-run.js → sleep/sleep-run.js} +54 -45
  119. package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
  120. package/dist/api/sleep/sleep.js +9 -0
  121. package/dist/api/status.d.ts +3 -1
  122. package/dist/api/status.js +3 -1
  123. package/dist/api/store-init.d.ts +4 -1
  124. package/dist/api/store-init.js +4 -1
  125. package/dist/api/tokens.d.ts +10 -9
  126. package/dist/api/tokens.js +9 -10
  127. package/dist/api/types.d.ts +27 -12
  128. package/dist/api/types.js +13 -4
  129. package/dist/capture/caller-session.d.ts +8 -2
  130. package/dist/capture/caller-session.js +16 -6
  131. package/dist/capture/capture-error.d.ts +3 -1
  132. package/dist/capture/capture-error.js +3 -1
  133. package/dist/capture/codex-patch.js +7 -2
  134. package/dist/capture/command.d.ts +4 -2
  135. package/dist/capture/command.js +34 -15
  136. package/dist/capture/compact-resume-caller.js +15 -8
  137. package/dist/capture/compact.d.ts +8 -5
  138. package/dist/capture/compact.js +34 -23
  139. package/dist/capture/compaction-items-caller.js +9 -3
  140. package/dist/capture/compaction-record.d.ts +4 -3
  141. package/dist/capture/compaction-record.js +20 -12
  142. package/dist/capture/compaction-spool.d.ts +18 -9
  143. package/dist/capture/compaction-spool.js +105 -63
  144. package/dist/capture/copilot-transcript.d.ts +11 -3
  145. package/dist/capture/copilot-transcript.js +16 -6
  146. package/dist/capture/extract.js +20 -8
  147. package/dist/capture/failure-caller.js +23 -12
  148. package/dist/capture/failure-reading.d.ts +10 -3
  149. package/dist/capture/failure-reading.js +24 -7
  150. package/dist/capture/pre-compact-caller.js +11 -4
  151. package/dist/capture/session-digest.d.ts +15 -4
  152. package/dist/capture/session-digest.js +39 -13
  153. package/dist/capture/session-end-caller.d.ts +4 -1
  154. package/dist/capture/session-end-caller.js +20 -8
  155. package/dist/capture/session-texts.d.ts +6 -2
  156. package/dist/capture/session-texts.js +22 -7
  157. package/dist/capture/session-worker.d.ts +4 -2
  158. package/dist/capture/session-worker.js +58 -17
  159. package/dist/capture/transcript.d.ts +13 -4
  160. package/dist/capture/transcript.js +32 -10
  161. package/dist/capture/working-state.d.ts +13 -4
  162. package/dist/capture/working-state.js +50 -56
  163. package/dist/cli/api-context.d.ts +14 -2
  164. package/dist/cli/api-context.js +45 -2
  165. package/dist/cli/audit.js +33 -33
  166. package/dist/cli/auth.js +23 -31
  167. package/dist/cli/briefs.d.ts +1 -1
  168. package/dist/cli/briefs.js +20 -15
  169. package/dist/cli/card.d.ts +1 -1
  170. package/dist/cli/card.js +56 -73
  171. package/dist/cli/client.d.ts +12 -5
  172. package/dist/cli/client.js +53 -23
  173. package/dist/cli/compact-resume-payload.d.ts +4 -1
  174. package/dist/cli/compact-resume-payload.js +12 -5
  175. package/dist/cli/context.js +43 -18
  176. package/dist/cli/continuity.d.ts +5 -5
  177. package/dist/cli/continuity.js +90 -107
  178. package/dist/cli/curate.d.ts +5 -4
  179. package/dist/cli/curate.js +55 -77
  180. package/dist/cli/dag.d.ts +1 -1
  181. package/dist/cli/dag.js +14 -17
  182. package/dist/cli/decisions.js +30 -30
  183. package/dist/cli/eval.js +16 -21
  184. package/dist/cli/exit.d.ts +4 -1
  185. package/dist/cli/exit.js +10 -2
  186. package/dist/cli/explain.js +12 -11
  187. package/dist/cli/flag-values.d.ts +1 -1
  188. package/dist/cli/flag-values.js +9 -18
  189. package/dist/cli/github.d.ts +6 -0
  190. package/dist/cli/github.js +25 -13
  191. package/dist/cli/goals.d.ts +1 -1
  192. package/dist/cli/goals.js +39 -56
  193. package/dist/cli/graph.d.ts +1 -1
  194. package/dist/cli/graph.js +15 -11
  195. package/dist/cli/hook-runtime.d.ts +34 -10
  196. package/dist/cli/hook-runtime.js +41 -16
  197. package/dist/cli/incidents.d.ts +1 -1
  198. package/dist/cli/incidents.js +25 -25
  199. package/dist/cli/init.d.ts +1 -1
  200. package/dist/cli/init.js +35 -20
  201. package/dist/cli/install-steps.d.ts +12 -3
  202. package/dist/cli/install-steps.js +42 -18
  203. package/dist/cli/last-sleep.d.ts +4 -1
  204. package/dist/cli/last-sleep.js +9 -4
  205. package/dist/cli/maintenance.d.ts +1 -1
  206. package/dist/cli/maintenance.js +11 -12
  207. package/dist/cli/notes.d.ts +1 -1
  208. package/dist/cli/notes.js +8 -5
  209. package/dist/cli/object-verbs.d.ts +5 -5
  210. package/dist/cli/object-verbs.js +13 -16
  211. package/dist/cli/open-browser.js +11 -2
  212. package/dist/cli/playbooks.d.ts +3 -3
  213. package/dist/cli/playbooks.js +40 -32
  214. package/dist/cli/predictions.js +17 -22
  215. package/dist/cli/print.js +4 -2
  216. package/dist/cli/projects.js +21 -11
  217. package/dist/cli/quality-repair-once.d.ts +1 -1
  218. package/dist/cli/quality-repair-once.js +7 -6
  219. package/dist/cli/recall.js +129 -93
  220. package/dist/cli/refine-llm.d.ts +15 -4
  221. package/dist/cli/refine-llm.js +17 -7
  222. package/dist/cli/remember.js +51 -55
  223. package/dist/cli/scheduler.d.ts +4 -1
  224. package/dist/cli/scheduler.js +9 -5
  225. package/dist/cli/serve.js +28 -18
  226. package/dist/cli/session-hooks.d.ts +2 -6
  227. package/dist/cli/session-hooks.js +140 -112
  228. package/dist/cli/setup.d.ts +1 -1
  229. package/dist/cli/setup.js +56 -34
  230. package/dist/cli/shared.d.ts +4 -2
  231. package/dist/cli/shared.js +26 -11
  232. package/dist/cli/slack.js +15 -24
  233. package/dist/cli/sleep-render.d.ts +3 -1
  234. package/dist/cli/sleep-render.js +8 -5
  235. package/dist/cli/sleep.js +16 -8
  236. package/dist/cli/status.d.ts +4 -4
  237. package/dist/cli/status.js +32 -27
  238. package/dist/cli/stdin.d.ts +10 -3
  239. package/dist/cli/stdin.js +10 -3
  240. package/dist/cli/transfer.d.ts +4 -4
  241. package/dist/cli/transfer.js +97 -82
  242. package/dist/cli/usage.d.ts +1 -1
  243. package/dist/cli/usage.js +1 -1
  244. package/dist/cli/verb-row.d.ts +2 -0
  245. package/dist/cli/verbs/health.js +2 -0
  246. package/dist/cli/verbs/memory.js +47 -53
  247. package/dist/cli/verbs/objects.js +16 -7
  248. package/dist/cli/verbs/sessions.js +4 -2
  249. package/dist/cli/versioned-verbs.d.ts +8 -7
  250. package/dist/cli/versioned-verbs.js +31 -21
  251. package/dist/cli.js +14 -18
  252. package/dist/connectors/dlq.d.ts +6 -6
  253. package/dist/connectors/dlq.js +12 -7
  254. package/dist/connectors/github/backfill.d.ts +4 -4
  255. package/dist/connectors/github/backfill.js +6 -4
  256. package/dist/connectors/github/deletion.d.ts +6 -4
  257. package/dist/connectors/github/deletion.js +5 -4
  258. package/dist/connectors/github/dlq.d.ts +8 -6
  259. package/dist/connectors/github/dlq.js +11 -5
  260. package/dist/connectors/github/ingest.d.ts +2 -2
  261. package/dist/connectors/github/ingest.js +9 -5
  262. package/dist/connectors/github/octokit-client.d.ts +3 -1
  263. package/dist/connectors/github/octokit-client.js +7 -2
  264. package/dist/connectors/github/ratelimit.d.ts +6 -2
  265. package/dist/connectors/github/ratelimit.js +6 -2
  266. package/dist/connectors/github/signature.d.ts +14 -3
  267. package/dist/connectors/github/signature.js +17 -3
  268. package/dist/connectors/github/tenant-routing.d.ts +6 -4
  269. package/dist/connectors/github/tenant-routing.js +6 -5
  270. package/dist/connectors/github/transform.js +50 -67
  271. package/dist/connectors/github/types.d.ts +10 -3
  272. package/dist/connectors/github/types.js +6 -2
  273. package/dist/connectors/github/webhook.d.ts +5 -5
  274. package/dist/connectors/github/webhook.js +36 -23
  275. package/dist/connectors/ingest.d.ts +5 -3
  276. package/dist/connectors/ingest.js +3 -3
  277. package/dist/connectors/slack/backfill.d.ts +5 -5
  278. package/dist/connectors/slack/backfill.js +3 -3
  279. package/dist/connectors/slack/deletion.d.ts +4 -4
  280. package/dist/connectors/slack/deletion.js +6 -5
  281. package/dist/connectors/slack/dlq.d.ts +4 -4
  282. package/dist/connectors/slack/dlq.js +6 -6
  283. package/dist/connectors/slack/ingest.d.ts +6 -4
  284. package/dist/connectors/slack/ingest.js +5 -4
  285. package/dist/connectors/slack/signature.d.ts +4 -1
  286. package/dist/connectors/slack/tenant-routing.d.ts +6 -4
  287. package/dist/connectors/slack/tenant-routing.js +6 -5
  288. package/dist/connectors/slack/transform.d.ts +6 -2
  289. package/dist/connectors/slack/transform.js +6 -2
  290. package/dist/connectors/slack/types.d.ts +3 -1
  291. package/dist/connectors/slack/web-client.js +8 -3
  292. package/dist/connectors/slack/webhook.d.ts +5 -5
  293. package/dist/connectors/slack/webhook.js +19 -11
  294. package/dist/connectors/slack/workspaces.d.ts +7 -3
  295. package/dist/connectors/slack/workspaces.js +7 -3
  296. package/dist/connectors/store.d.ts +8 -0
  297. package/dist/connectors/store.js +2 -0
  298. package/dist/consolidate/conflicts.js +24 -10
  299. package/dist/consolidate/dag-summary.js +2 -1
  300. package/dist/consolidate/dag.d.ts +10 -5
  301. package/dist/consolidate/dag.js +45 -39
  302. package/dist/consolidate/decay.js +19 -6
  303. package/dist/consolidate/dedupe.d.ts +14 -5
  304. package/dist/consolidate/dedupe.js +28 -17
  305. package/dist/consolidate/flush-units.d.ts +4 -1
  306. package/dist/consolidate/flush-units.js +4 -1
  307. package/dist/consolidate/half-life-migration.d.ts +18 -8
  308. package/dist/consolidate/half-life-migration.js +48 -18
  309. package/dist/consolidate/llm-passes.js +27 -11
  310. package/dist/consolidate/memory-value-weights.d.ts +6 -2
  311. package/dist/consolidate/memory-value-weights.js +6 -2
  312. package/dist/consolidate/memory-value.d.ts +30 -10
  313. package/dist/consolidate/memory-value.js +37 -14
  314. package/dist/consolidate/merge.d.ts +4 -1
  315. package/dist/consolidate/merge.js +47 -37
  316. package/dist/consolidate/overlap-index.d.ts +8 -2
  317. package/dist/consolidate/overlap-index.js +11 -4
  318. package/dist/consolidate/physics-pass.d.ts +3 -1
  319. package/dist/consolidate/physics-pass.js +10 -7
  320. package/dist/consolidate/replay.d.ts +11 -4
  321. package/dist/consolidate/replay.js +19 -7
  322. package/dist/consolidate/run.d.ts +13 -5
  323. package/dist/consolidate/run.js +4 -4
  324. package/dist/consolidate/sleep.d.ts +14 -6
  325. package/dist/consolidate/sleep.js +42 -39
  326. package/dist/consolidate/trace.d.ts +7 -2
  327. package/dist/consolidate/trace.js +7 -2
  328. package/dist/consolidate/traces.js +27 -30
  329. package/dist/core/ablation.d.ts +9 -3
  330. package/dist/core/ablation.js +14 -4
  331. package/dist/core/active-scope.d.ts +3 -1
  332. package/dist/core/active-scope.js +3 -1
  333. package/dist/core/agent-memory-tools.d.ts +2 -0
  334. package/dist/core/agent-memory-tools.js +2 -0
  335. package/dist/core/ambient.d.ts +4 -3
  336. package/dist/core/ambient.js +8 -6
  337. package/dist/core/api-errors.d.ts +9 -3
  338. package/dist/core/api-errors.js +9 -3
  339. package/dist/core/capture-contract.d.ts +4 -1
  340. package/dist/core/capture-contract.js +27 -8
  341. package/dist/core/compare.d.ts +24 -8
  342. package/dist/core/compare.js +24 -8
  343. package/dist/core/config.d.ts +18 -9
  344. package/dist/core/config.js +38 -29
  345. package/dist/core/cosine.d.ts +4 -1
  346. package/dist/core/cosine.js +4 -1
  347. package/dist/core/handoff.d.ts +7 -2
  348. package/dist/core/handoff.js +4 -1
  349. package/dist/core/markdown.js +22 -17
  350. package/dist/core/memory-audit.js +14 -3
  351. package/dist/core/memory-quality.d.ts +12 -3
  352. package/dist/core/memory-quality.js +57 -21
  353. package/dist/core/memory.d.ts +87 -30
  354. package/dist/core/memory.js +82 -33
  355. package/dist/core/merged-row.d.ts +8 -2
  356. package/dist/core/merged-row.js +10 -3
  357. package/dist/core/package-root.d.ts +3 -1
  358. package/dist/core/package-root.js +3 -1
  359. package/dist/core/particle-refresh.d.ts +8 -0
  360. package/dist/core/particle-refresh.js +22 -0
  361. package/dist/core/physics-config.d.ts +4 -1
  362. package/dist/core/physics-config.js +6 -2
  363. package/dist/core/physics.d.ts +39 -11
  364. package/dist/core/physics.js +71 -21
  365. package/dist/core/project-identity.d.ts +34 -17
  366. package/dist/core/project-identity.js +35 -18
  367. package/dist/core/project-remote.d.ts +8 -4
  368. package/dist/core/project-remote.js +31 -14
  369. package/dist/core/recall-scope.d.ts +33 -11
  370. package/dist/core/recall-scope.js +42 -15
  371. package/dist/core/rejection-digest.d.ts +7 -0
  372. package/dist/core/rejection-digest.js +13 -0
  373. package/dist/core/salience.d.ts +3 -1
  374. package/dist/core/salience.js +10 -4
  375. package/dist/core/search-types.d.ts +15 -2
  376. package/dist/core/search-types.js +11 -0
  377. package/dist/dashboard/dashboard-actions.d.ts +2 -2
  378. package/dist/dashboard/dashboard-actions.js +18 -7
  379. package/dist/dashboard/dashboard-queries.js +2 -7
  380. package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
  381. package/dist/dashboard/dashboard-snapshot.js +5 -7
  382. package/dist/dashboard/dashboard.js +22 -8
  383. package/dist/db/backup.js +2 -2
  384. package/dist/db/busy.d.ts +10 -3
  385. package/dist/db/busy.js +27 -5
  386. package/dist/db/connect.d.ts +10 -2
  387. package/dist/db/connect.js +8 -2
  388. package/dist/db/continuity.d.ts +1 -1
  389. package/dist/db/continuity.js +27 -11
  390. package/dist/db/meta.d.ts +4 -1
  391. package/dist/db/meta.js +4 -1
  392. package/dist/db/migrate.d.ts +10 -5
  393. package/dist/db/migrate.js +40 -20
  394. package/dist/db/migrations/index.d.ts +1 -1
  395. package/dist/db/migrations/index.js +3 -1
  396. package/dist/db/migrations/types.d.ts +2 -1
  397. package/dist/db/migrations/v11.js +1 -0
  398. package/dist/db/migrations/v12.js +2 -1
  399. package/dist/db/migrations/v14.js +2 -0
  400. package/dist/db/migrations/v15.js +4 -2
  401. package/dist/db/migrations/v16.js +6 -3
  402. package/dist/db/migrations/v17.js +2 -1
  403. package/dist/db/migrations/v19.js +4 -2
  404. package/dist/db/migrations/v20.js +2 -1
  405. package/dist/db/migrations/v22.js +12 -6
  406. package/dist/db/migrations/v23.js +6 -3
  407. package/dist/db/migrations/v24.js +6 -3
  408. package/dist/db/migrations/v25.js +4 -2
  409. package/dist/db/migrations/v26.js +4 -2
  410. package/dist/db/migrations/v27.js +6 -3
  411. package/dist/db/migrations/v28.js +4 -2
  412. package/dist/db/migrations/v29.js +4 -2
  413. package/dist/db/migrations/v30.js +6 -3
  414. package/dist/db/migrations/v31.js +4 -2
  415. package/dist/db/migrations/v32.js +6 -3
  416. package/dist/db/migrations/v33.js +4 -2
  417. package/dist/db/migrations/v34.js +2 -1
  418. package/dist/db/migrations/v35.js +2 -1
  419. package/dist/db/migrations/v36.js +2 -1
  420. package/dist/db/migrations/v37.js +10 -5
  421. package/dist/db/migrations/v38.js +10 -5
  422. package/dist/db/migrations/v39.js +14 -6
  423. package/dist/db/migrations/v40.js +4 -2
  424. package/dist/db/migrations/v41.js +4 -2
  425. package/dist/db/migrations/v42.js +2 -1
  426. package/dist/db/migrations/v44.js +4 -2
  427. package/dist/db/migrations/v45.js +4 -2
  428. package/dist/db/migrations/v49.js +2 -1
  429. package/dist/db/migrations/v50.js +4 -2
  430. package/dist/db/migrations/v51.js +4 -2
  431. package/dist/db/migrations/v52.js +2 -1
  432. package/dist/db/migrations/v53.js +8 -4
  433. package/dist/db/migrations/v54.js +2 -1
  434. package/dist/db/migrations/v55.js +4 -2
  435. package/dist/db/migrations/v56.d.ts +3 -0
  436. package/dist/db/migrations/v56.js +28 -0
  437. package/dist/db/open.d.ts +24 -12
  438. package/dist/db/open.js +25 -13
  439. package/dist/db/physics-state.d.ts +8 -8
  440. package/dist/db/physics-state.js +17 -50
  441. package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
  442. package/dist/db/raw-archive-mirror-cleanup.js +6 -4
  443. package/dist/db/request-stores.d.ts +20 -5
  444. package/dist/db/request-stores.js +15 -5
  445. package/dist/db/tables.d.ts +2 -1
  446. package/dist/db/tables.js +12 -4
  447. package/dist/db/vector-store.d.ts +13 -4
  448. package/dist/db/vector-store.js +35 -14
  449. package/dist/db/wal-checkpointer.d.ts +2 -1
  450. package/dist/db/wal-checkpointer.js +19 -7
  451. package/dist/doctor.d.ts +7 -1
  452. package/dist/doctor.js +128 -46
  453. package/dist/embeddings/local.d.ts +8 -4
  454. package/dist/embeddings/local.js +11 -7
  455. package/dist/embeddings/provider.d.ts +19 -10
  456. package/dist/embeddings/provider.js +32 -27
  457. package/dist/embeddings/transformers.d.ts +16 -4
  458. package/dist/embeddings/transformers.js +32 -15
  459. package/dist/entry/json-hooks.d.ts +1 -1
  460. package/dist/entry/json-hooks.js +1 -1
  461. package/dist/entry/project-identity.js +2 -1
  462. package/dist/entry/session-text.d.ts +1 -1
  463. package/dist/entry/session-text.js +1 -1
  464. package/dist/entry/sqlite-handles.d.ts +10 -0
  465. package/dist/entry/sqlite-handles.js +9 -0
  466. package/dist/entry/store-kit.d.ts +50 -0
  467. package/dist/entry/store-kit.js +27 -0
  468. package/dist/entry/testing.d.ts +6 -0
  469. package/dist/entry/testing.js +7 -0
  470. package/dist/eval/eval-stats.d.ts +27 -8
  471. package/dist/eval/eval-stats.js +17 -5
  472. package/dist/eval/eval-suite.d.ts +3 -1
  473. package/dist/eval/eval-suite.js +409 -187
  474. package/dist/eval/eval.d.ts +8 -2
  475. package/dist/eval/eval.js +8 -2
  476. package/dist/eval/judgment.js +17 -7
  477. package/dist/graph/delta.d.ts +9 -42
  478. package/dist/graph/delta.js +17 -11
  479. package/dist/graph/extract.d.ts +10 -7
  480. package/dist/graph/extract.js +57 -25
  481. package/dist/graph/recall.d.ts +12 -4
  482. package/dist/graph/recall.js +30 -13
  483. package/dist/graph/stream.d.ts +18 -6
  484. package/dist/graph/stream.js +32 -10
  485. package/dist/graph/view.d.ts +19 -6
  486. package/dist/graph/view.js +42 -17
  487. package/dist/hooks/codex-session.js +2 -2
  488. package/dist/hooks/codex-wrapper.d.ts +3 -1
  489. package/dist/hooks/codex-wrapper.js +9 -4
  490. package/dist/hooks/copilot.d.ts +19 -5
  491. package/dist/hooks/copilot.js +54 -15
  492. package/dist/hooks/hook-blocks.d.ts +4 -1
  493. package/dist/hooks/hook-blocks.js +8 -3
  494. package/dist/hooks/json-hooks.d.ts +9 -5
  495. package/dist/hooks/json-hooks.js +72 -33
  496. package/dist/hooks/opencode.js +15 -5
  497. package/dist/hooks/shared.d.ts +27 -8
  498. package/dist/hooks/shared.js +57 -16
  499. package/dist/importers/core.d.ts +12 -4
  500. package/dist/importers/core.js +11 -10
  501. package/dist/importers/markdown-parse.d.ts +15 -5
  502. package/dist/importers/markdown-parse.js +16 -7
  503. package/dist/importers/markdown.js +6 -9
  504. package/dist/importers/sources.js +10 -23
  505. package/dist/importers/vault.d.ts +3 -3
  506. package/dist/importers/vault.js +61 -45
  507. package/dist/index.d.ts +33 -7
  508. package/dist/index.js +26 -8
  509. package/dist/learn/autolearn.d.ts +21 -6
  510. package/dist/learn/autolearn.js +57 -26
  511. package/dist/learn/churn-git.d.ts +4 -1
  512. package/dist/learn/churn-git.js +29 -5
  513. package/dist/learn/extract.d.ts +4 -1
  514. package/dist/learn/extract.js +17 -10
  515. package/dist/learn/forward-claim-detector.d.ts +17 -5
  516. package/dist/learn/forward-claim-detector.js +34 -15
  517. package/dist/learn/invalidation.d.ts +12 -6
  518. package/dist/learn/invalidation.js +62 -28
  519. package/dist/learn/roots.d.ts +3 -0
  520. package/dist/learn/roots.js +5 -0
  521. package/dist/mcp/admin-tools.d.ts +5 -5
  522. package/dist/mcp/admin-tools.js +28 -23
  523. package/dist/mcp/format.d.ts +1 -1
  524. package/dist/mcp/format.js +4 -2
  525. package/dist/mcp/framing.d.ts +3 -1
  526. package/dist/mcp/framing.js +20 -8
  527. package/dist/mcp/memory-tools.d.ts +3 -3
  528. package/dist/mcp/memory-tools.js +21 -20
  529. package/dist/mcp/protocol.d.ts +32 -16
  530. package/dist/mcp/protocol.js +12 -9
  531. package/dist/mcp/recall-tools.d.ts +3 -3
  532. package/dist/mcp/recall-tools.js +62 -74
  533. package/dist/mcp/request.d.ts +7 -5
  534. package/dist/mcp/request.js +61 -77
  535. package/dist/mcp/server.d.ts +3 -1
  536. package/dist/mcp/server.js +8 -3
  537. package/dist/mcp/session-state.d.ts +1 -1
  538. package/dist/mcp/session-state.js +4 -3
  539. package/dist/mcp/shared-gate.d.ts +3 -2
  540. package/dist/mcp/shared-gate.js +3 -2
  541. package/dist/mcp/stdio.d.ts +6 -3
  542. package/dist/mcp/stdio.js +59 -23
  543. package/dist/mcp/tool-args.d.ts +4 -1
  544. package/dist/mcp/tool-args.js +8 -3
  545. package/dist/mcp/tools.js +76 -32
  546. package/dist/objects/customer-notes.d.ts +12 -10
  547. package/dist/objects/customer-notes.js +21 -15
  548. package/dist/objects/decisions.d.ts +18 -10
  549. package/dist/objects/decisions.js +23 -17
  550. package/dist/objects/descriptor.js +2 -1
  551. package/dist/objects/fields.d.ts +4 -1
  552. package/dist/objects/fields.js +6 -2
  553. package/dist/objects/incidents.d.ts +14 -16
  554. package/dist/objects/incidents.js +29 -30
  555. package/dist/objects/lifecycle.d.ts +0 -4
  556. package/dist/objects/lifecycle.js +21 -24
  557. package/dist/objects/policies.d.ts +12 -16
  558. package/dist/objects/policies.js +17 -21
  559. package/dist/objects/processes.d.ts +16 -10
  560. package/dist/objects/processes.js +20 -15
  561. package/dist/objects/project-briefs.d.ts +13 -14
  562. package/dist/objects/project-briefs.js +33 -39
  563. package/dist/objects/skills.d.ts +10 -12
  564. package/dist/objects/skills.js +17 -22
  565. package/dist/postinstall.js +15 -7
  566. package/dist/predictions/planning-fallacy.d.ts +19 -6
  567. package/dist/predictions/planning-fallacy.js +4 -2
  568. package/dist/rerankers/clef.d.ts +8 -2
  569. package/dist/rerankers/clef.js +14 -9
  570. package/dist/rerankers/cross-encoder.d.ts +2 -1
  571. package/dist/rerankers/cross-encoder.js +19 -9
  572. package/dist/rerankers/index.js +2 -1
  573. package/dist/rerankers/jev.js +2 -1
  574. package/dist/rerankers/llm.d.ts +6 -2
  575. package/dist/rerankers/llm.js +8 -3
  576. package/dist/rerankers/remote.d.ts +3 -1
  577. package/dist/rerankers/remote.js +5 -2
  578. package/dist/rerankers/types.d.ts +6 -2
  579. package/dist/search/bm25-search.d.ts +3 -1
  580. package/dist/search/bm25-search.js +15 -2
  581. package/dist/search/boosts.js +4 -3
  582. package/dist/search/embed-memories.d.ts +12 -4
  583. package/dist/search/embed-memories.js +96 -58
  584. package/dist/search/engine.d.ts +11 -0
  585. package/dist/search/engine.js +14 -0
  586. package/dist/search/goal-boost.d.ts +10 -3
  587. package/dist/search/goal-boost.js +13 -6
  588. package/dist/search/hybrid-score.d.ts +4 -1
  589. package/dist/search/hybrid-score.js +4 -1
  590. package/dist/search/hybrid.d.ts +23 -8
  591. package/dist/search/hybrid.js +12 -7
  592. package/dist/search/multihop.js +14 -13
  593. package/dist/search/path-context.d.ts +10 -3
  594. package/dist/search/path-context.js +10 -3
  595. package/dist/search/physics-search.d.ts +9 -4
  596. package/dist/search/physics-search.js +38 -14
  597. package/dist/search/rerank.d.ts +2 -1
  598. package/dist/search/rerank.js +2 -1
  599. package/dist/search/rrf.d.ts +14 -5
  600. package/dist/search/rrf.js +11 -4
  601. package/dist/search/vector.d.ts +8 -2
  602. package/dist/search/vector.js +14 -8
  603. package/dist/server/auth.d.ts +19 -15
  604. package/dist/server/auth.js +68 -38
  605. package/dist/server/boot.d.ts +4 -1
  606. package/dist/server/boot.js +115 -67
  607. package/dist/server/client-ip.d.ts +17 -5
  608. package/dist/server/client-ip.js +56 -21
  609. package/dist/server/cursor.d.ts +10 -3
  610. package/dist/server/cursor.js +10 -3
  611. package/dist/server/deadline.d.ts +5 -2
  612. package/dist/server/deadline.js +10 -3
  613. package/dist/server/key-check-bounds.js +12 -4
  614. package/dist/server/lifecycle.d.ts +4 -1
  615. package/dist/server/lifecycle.js +10 -4
  616. package/dist/server/mcp-http.d.ts +2 -1
  617. package/dist/server/mcp-http.js +37 -22
  618. package/dist/server/rate-limit.d.ts +17 -5
  619. package/dist/server/rate-limit.js +55 -26
  620. package/dist/server/ready.js +7 -4
  621. package/dist/server/request.d.ts +15 -4
  622. package/dist/server/request.js +42 -15
  623. package/dist/server/route-checks.d.ts +4 -1
  624. package/dist/server/route-checks.js +8 -3
  625. package/dist/server/route-table.d.ts +8 -6
  626. package/dist/server/route-table.js +550 -97
  627. package/dist/server/routes/admin.d.ts +7 -7
  628. package/dist/server/routes/admin.js +36 -15
  629. package/dist/server/routes/customer-notes.d.ts +5 -5
  630. package/dist/server/routes/customer-notes.js +5 -4
  631. package/dist/server/routes/decisions.d.ts +5 -5
  632. package/dist/server/routes/decisions.js +12 -6
  633. package/dist/server/routes/incidents.d.ts +5 -5
  634. package/dist/server/routes/incidents.js +10 -4
  635. package/dist/server/routes/memories.d.ts +8 -8
  636. package/dist/server/routes/memories.js +12 -17
  637. package/dist/server/routes/object-routes.d.ts +8 -5
  638. package/dist/server/routes/object-routes.js +4 -2
  639. package/dist/server/routes/policies.d.ts +6 -6
  640. package/dist/server/routes/policies.js +11 -4
  641. package/dist/server/routes/predictions.d.ts +5 -5
  642. package/dist/server/routes/predictions.js +9 -4
  643. package/dist/server/routes/processes.d.ts +5 -5
  644. package/dist/server/routes/processes.js +15 -6
  645. package/dist/server/routes/project-briefs.d.ts +6 -6
  646. package/dist/server/routes/project-briefs.js +3 -2
  647. package/dist/server/routes/recall.d.ts +3 -3
  648. package/dist/server/routes/recall.js +21 -10
  649. package/dist/server/routes/skills.d.ts +6 -6
  650. package/dist/server/routes/skills.js +12 -4
  651. package/dist/server/server-detect.d.ts +24 -8
  652. package/dist/server/server-detect.js +57 -22
  653. package/dist/server/sleep-child.js +16 -10
  654. package/dist/server/sleep-offload.d.ts +8 -5
  655. package/dist/server/sleep-offload.js +40 -18
  656. package/dist/server/tls.d.ts +10 -2
  657. package/dist/server/tls.js +25 -5
  658. package/dist/server/types.d.ts +41 -24
  659. package/dist/server/validation.d.ts +4 -1
  660. package/dist/server/validation.js +22 -9
  661. package/dist/server.d.ts +17 -49
  662. package/dist/server.js +33 -40
  663. package/dist/sharing/global-store.d.ts +6 -12
  664. package/dist/sharing/global-store.js +8 -48
  665. package/dist/sharing/global-sync.d.ts +3 -1
  666. package/dist/sharing/global-sync.js +17 -7
  667. package/dist/sharing/project-merge.d.ts +25 -7
  668. package/dist/sharing/project-merge.js +49 -17
  669. package/dist/sharing/search-both.d.ts +8 -4
  670. package/dist/sharing/search-both.js +28 -14
  671. package/dist/sharing/share.d.ts +8 -4
  672. package/dist/sharing/share.js +40 -18
  673. package/dist/store/ambient.js +10 -5
  674. package/dist/store/audit-event.d.ts +2 -2
  675. package/dist/store/audit-event.js +8 -3
  676. package/dist/store/audit.d.ts +6 -3
  677. package/dist/store/audit.js +16 -6
  678. package/dist/store/auth.d.ts +4 -2
  679. package/dist/store/auth.js +63 -20
  680. package/dist/store/busy.d.ts +9 -0
  681. package/dist/store/busy.js +16 -0
  682. package/dist/store/candidates.d.ts +12 -5
  683. package/dist/store/candidates.js +90 -41
  684. package/dist/store/capture-write.d.ts +2 -1
  685. package/dist/store/capture-write.js +2 -1
  686. package/dist/store/card-detail.d.ts +4 -4
  687. package/dist/store/card-detail.js +15 -8
  688. package/dist/store/cards.d.ts +24 -10
  689. package/dist/store/cards.js +97 -63
  690. package/dist/store/compaction-caller.d.ts +2 -1
  691. package/dist/store/compaction-caller.js +2 -1
  692. package/dist/store/compactions-record.d.ts +14 -8
  693. package/dist/store/compactions-record.js +101 -37
  694. package/dist/store/compactions.js +35 -15
  695. package/dist/store/conflicts.d.ts +16 -5
  696. package/dist/store/conflicts.js +104 -48
  697. package/dist/store/connectors/dlq.d.ts +17 -5
  698. package/dist/store/connectors/dlq.js +58 -6
  699. package/dist/store/connectors/event-log.d.ts +122 -0
  700. package/dist/store/connectors/event-log.js +25 -0
  701. package/dist/store/connectors/github.d.ts +6 -3
  702. package/dist/store/connectors/github.js +30 -48
  703. package/dist/store/connectors/slack.d.ts +2 -1
  704. package/dist/store/connectors/slack.js +31 -47
  705. package/dist/store/dashboard-reads.d.ts +7 -3
  706. package/dist/store/dashboard-reads.js +32 -10
  707. package/dist/store/delete-and-batch.d.ts +17 -11
  708. package/dist/store/delete-and-batch.js +70 -28
  709. package/dist/store/delivery-recorder.d.ts +10 -7
  710. package/dist/store/delivery-recorder.js +70 -37
  711. package/dist/store/descendant-page.d.ts +2 -1
  712. package/dist/store/descendant-page.js +26 -10
  713. package/dist/store/diagnostics.d.ts +2 -1
  714. package/dist/store/diagnostics.js +2 -1
  715. package/dist/store/doctor-reads.d.ts +2 -1
  716. package/dist/store/doctor-reads.js +13 -5
  717. package/dist/store/dormant.d.ts +19 -11
  718. package/dist/store/dormant.js +45 -19
  719. package/dist/store/embeddings/index.d.ts +13 -9
  720. package/dist/store/embeddings/index.js +19 -12
  721. package/dist/store/entry-reads.d.ts +72 -21
  722. package/dist/store/entry-reads.js +215 -69
  723. package/dist/store/entry-row.d.ts +10 -6
  724. package/dist/store/entry-row.js +26 -14
  725. package/dist/store/entry-writes.d.ts +28 -13
  726. package/dist/store/entry-writes.js +61 -22
  727. package/dist/store/failure-log-at.js +1 -1
  728. package/dist/store/failure-log.d.ts +4 -2
  729. package/dist/store/failure-log.js +13 -6
  730. package/dist/store/gated-write.d.ts +3 -3
  731. package/dist/store/gated-write.js +3 -3
  732. package/dist/store/goals.d.ts +5 -4
  733. package/dist/store/goals.js +11 -12
  734. package/dist/store/graph-apply.d.ts +21 -0
  735. package/dist/{graph/write.js → store/graph-apply.js} +31 -11
  736. package/dist/store/graph-queue.d.ts +9 -6
  737. package/dist/store/graph-queue.js +15 -10
  738. package/dist/store/graph-reads.d.ts +16 -11
  739. package/dist/store/graph-reads.js +29 -19
  740. package/dist/store/graph-rows.d.ts +41 -3
  741. package/dist/store/graph-rows.js +10 -7
  742. package/dist/store/graph-view-rows.js +15 -7
  743. package/dist/store/graph-writes.d.ts +16 -10
  744. package/dist/store/graph-writes.js +59 -36
  745. package/dist/store/half-life.js +2 -2
  746. package/dist/store/handoffs.d.ts +13 -7
  747. package/dist/store/handoffs.js +44 -22
  748. package/dist/store/index-and-stats.d.ts +2 -2
  749. package/dist/store/index-and-stats.js +6 -5
  750. package/dist/store/index.d.ts +4 -2
  751. package/dist/store/index.js +2 -1
  752. package/dist/store/key-audit.d.ts +2 -1
  753. package/dist/store/key-audit.js +2 -1
  754. package/dist/store/key-writes.d.ts +2 -1
  755. package/dist/store/key-writes.js +9 -2
  756. package/dist/store/ledger-turn.d.ts +4 -1
  757. package/dist/store/ledger-turn.js +7 -2
  758. package/dist/store/mirrors.d.ts +11 -4
  759. package/dist/store/mirrors.js +96 -19
  760. package/dist/store/narrow.d.ts +6 -0
  761. package/dist/store/narrow.js +11 -0
  762. package/dist/store/open.d.ts +6 -3
  763. package/dist/store/open.js +20 -10
  764. package/dist/store/pilot-arm.d.ts +2 -1
  765. package/dist/store/pilot-arm.js +18 -6
  766. package/dist/store/planning-fallacy-evidence.d.ts +2 -2
  767. package/dist/store/planning-fallacy-evidence.js +8 -5
  768. package/dist/store/port/agent-import.d.ts +62 -0
  769. package/dist/store/port/agent-import.js +2 -0
  770. package/dist/store/port/consolidation.d.ts +129 -0
  771. package/dist/store/port/consolidation.js +2 -0
  772. package/dist/store/port/learning.d.ts +19 -0
  773. package/dist/store/port/learning.js +2 -0
  774. package/dist/store/port/local-files.d.ts +18 -0
  775. package/dist/store/port/local-files.js +2 -0
  776. package/dist/store/port/promotion.d.ts +20 -0
  777. package/dist/store/port/promotion.js +3 -0
  778. package/dist/store/port-groups.d.ts +160 -0
  779. package/dist/store/port-groups.js +2 -0
  780. package/dist/store/port.d.ts +261 -219
  781. package/dist/store/port.js +3 -9
  782. package/dist/store/predictions.d.ts +14 -10
  783. package/dist/store/predictions.js +37 -17
  784. package/dist/store/project-tags.d.ts +4 -1
  785. package/dist/store/project-tags.js +16 -5
  786. package/dist/store/quality-repair.d.ts +8 -4
  787. package/dist/store/quality-repair.js +53 -20
  788. package/dist/store/quarantine.d.ts +1 -0
  789. package/dist/store/quarantine.js +23 -9
  790. package/dist/store/raw-archive.d.ts +5 -4
  791. package/dist/store/raw-archive.js +11 -10
  792. package/dist/store/recall-trace.d.ts +22 -17
  793. package/dist/store/recall-trace.js +128 -64
  794. package/dist/store/rejected-values.d.ts +15 -10
  795. package/dist/store/rejected-values.js +46 -20
  796. package/dist/store/rejection.d.ts +12 -11
  797. package/dist/store/rejection.js +18 -19
  798. package/dist/store/report-reads.d.ts +2 -1
  799. package/dist/store/report-reads.js +2 -1
  800. package/dist/store/rows.d.ts +7 -5
  801. package/dist/store/rows.js +20 -13
  802. package/dist/store/rule-sql.d.ts +7 -3
  803. package/dist/store/rule-sql.js +26 -13
  804. package/dist/store/search-rows.d.ts +16 -11
  805. package/dist/store/search-rows.js +54 -32
  806. package/dist/store/sessions.d.ts +12 -10
  807. package/dist/store/sessions.js +40 -21
  808. package/dist/store/set-aside.d.ts +2 -2
  809. package/dist/store/set-aside.js +18 -5
  810. package/dist/store/sqlite/agent-import.d.ts +3 -0
  811. package/dist/store/sqlite/agent-import.js +77 -0
  812. package/dist/store/sqlite/cards-group.d.ts +6 -0
  813. package/dist/store/sqlite/cards-group.js +37 -0
  814. package/dist/store/sqlite/conflicts-group.d.ts +6 -0
  815. package/dist/store/sqlite/conflicts-group.js +18 -0
  816. package/dist/store/sqlite/connector-events-group.d.ts +2 -1
  817. package/dist/store/sqlite/connector-events-group.js +17 -6
  818. package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
  819. package/dist/store/sqlite/connector-writes-group.js +12 -5
  820. package/dist/store/sqlite/consolidation-group.d.ts +4 -0
  821. package/dist/store/sqlite/consolidation-group.js +64 -0
  822. package/dist/store/sqlite/dag-reads-group.js +1 -1
  823. package/dist/store/sqlite/dormant-group.d.ts +6 -0
  824. package/dist/store/sqlite/dormant-group.js +29 -0
  825. package/dist/store/sqlite/entry-writes-group.d.ts +9 -6
  826. package/dist/store/sqlite/entry-writes-group.js +37 -14
  827. package/dist/store/sqlite/error-codec.d.ts +4 -2
  828. package/dist/store/sqlite/error-codec.js +32 -10
  829. package/dist/store/sqlite/executor-counts.js +2 -1
  830. package/dist/store/sqlite/executor.d.ts +8 -3
  831. package/dist/store/sqlite/executor.js +56 -18
  832. package/dist/store/sqlite/global-promote.d.ts +5 -0
  833. package/dist/store/sqlite/global-promote.js +48 -0
  834. package/dist/store/sqlite/goals-group.d.ts +6 -0
  835. package/dist/store/sqlite/goals-group.js +23 -0
  836. package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
  837. package/dist/store/sqlite/graph-reads-group.js +2 -1
  838. package/dist/store/sqlite/held-connection.d.ts +8 -0
  839. package/dist/store/sqlite/held-connection.js +34 -7
  840. package/dist/store/sqlite/last-recall-group.d.ts +15 -0
  841. package/dist/store/sqlite/last-recall-group.js +62 -0
  842. package/dist/store/sqlite/learning-group.d.ts +4 -0
  843. package/dist/store/sqlite/learning-group.js +17 -0
  844. package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
  845. package/dist/store/sqlite/maintenance-groups.js +61 -0
  846. package/dist/store/sqlite/object-rows.d.ts +6 -3
  847. package/dist/store/sqlite/object-rows.js +34 -5
  848. package/dist/store/sqlite/objects-group.d.ts +5 -4
  849. package/dist/store/sqlite/objects-group.js +97 -38
  850. package/dist/store/sqlite/predictions-group.d.ts +2 -1
  851. package/dist/store/sqlite/predictions-group.js +4 -2
  852. package/dist/store/sqlite/promotion-group.d.ts +3 -0
  853. package/dist/store/sqlite/promotion-group.js +10 -0
  854. package/dist/store/sqlite/quarantine-group.d.ts +2 -1
  855. package/dist/store/sqlite/quarantine-group.js +4 -2
  856. package/dist/store/sqlite/reports-group.d.ts +6 -0
  857. package/dist/store/sqlite/reports-group.js +33 -0
  858. package/dist/store/sqlite/request-scope.d.ts +6 -0
  859. package/dist/store/sqlite/request-scope.js +18 -0
  860. package/dist/store/sqlite/sessions-group.d.ts +6 -0
  861. package/dist/store/sqlite/sessions-group.js +46 -0
  862. package/dist/store/sqlite/store.d.ts +22 -18
  863. package/dist/store/sqlite/store.js +95 -33
  864. package/dist/store/sqlite/vector-pack.js +2 -1
  865. package/dist/store/sqlite/vector-reads-group.js +2 -1
  866. package/dist/store/sqlite/worker-jobs.d.ts +2 -1
  867. package/dist/store/sqlite/worker-jobs.js +19 -7
  868. package/dist/store/sqlite/worker-ops.d.ts +10 -5
  869. package/dist/store/sqlite/worker-ops.js +6 -3
  870. package/dist/store/sqlite/worker-store.d.ts +4 -3
  871. package/dist/store/sqlite/worker-store.js +24 -14
  872. package/dist/store/summaries.d.ts +25 -11
  873. package/dist/store/summaries.js +84 -27
  874. package/dist/store/summary-dirty.d.ts +2 -1
  875. package/dist/store/summary-dirty.js +2 -1
  876. package/dist/store/tenant.d.ts +3 -2
  877. package/dist/store/tenant.js +5 -4
  878. package/dist/store/token-ledger-rows.js +8 -4
  879. package/dist/store/token-ledger.d.ts +19 -13
  880. package/dist/store/token-ledger.js +27 -14
  881. package/dist/store/tombstone-checks.d.ts +4 -1
  882. package/dist/store/tombstone-checks.js +10 -1
  883. package/dist/store/usage-reports.js +2 -1
  884. package/dist/store/vector-index.d.ts +8 -5
  885. package/dist/store/vector-index.js +28 -11
  886. package/dist/store/working-memory.d.ts +6 -4
  887. package/dist/store/working-memory.js +14 -9
  888. package/dist/support-bundle.js +10 -5
  889. package/dist/trust/quarantine.d.ts +1 -2
  890. package/dist/trust/quarantine.js +1 -5
  891. package/dist/trust/reject-flow.d.ts +12 -3
  892. package/dist/trust/reject-flow.js +12 -4
  893. package/dist/util/anthropic-messages.d.ts +7 -2
  894. package/dist/util/anthropic-messages.js +18 -7
  895. package/dist/util/atomic-write.d.ts +8 -3
  896. package/dist/util/atomic-write.js +36 -21
  897. package/dist/util/compaction-items.d.ts +4 -1
  898. package/dist/util/compaction-items.js +8 -2
  899. package/dist/util/crash-handlers.d.ts +7 -2
  900. package/dist/util/crash-handlers.js +13 -4
  901. package/dist/util/env.d.ts +26 -5
  902. package/dist/util/env.js +87 -25
  903. package/dist/util/format.d.ts +2 -0
  904. package/dist/util/format.js +4 -0
  905. package/dist/util/home-path.js +12 -6
  906. package/dist/util/hook-payload.d.ts +3 -1
  907. package/dist/util/hook-payload.js +3 -1
  908. package/dist/util/http-retry.d.ts +12 -6
  909. package/dist/util/http-retry.js +16 -6
  910. package/dist/util/http-util.d.ts +20 -5
  911. package/dist/util/http-util.js +28 -9
  912. package/dist/util/json.d.ts +4 -1
  913. package/dist/util/json.js +4 -1
  914. package/dist/util/keyset.js +2 -1
  915. package/dist/util/limits.js +4 -2
  916. package/dist/util/log.d.ts +13 -5
  917. package/dist/util/log.js +29 -6
  918. package/dist/util/net.d.ts +5 -0
  919. package/dist/util/net.js +19 -0
  920. package/dist/util/real-path.d.ts +2 -1
  921. package/dist/util/real-path.js +4 -3
  922. package/dist/util/request-scope.d.ts +16 -4
  923. package/dist/util/request-scope.js +19 -6
  924. package/dist/util/same-text.d.ts +10 -3
  925. package/dist/util/same-text.js +10 -3
  926. package/dist/util/secret-detect.d.ts +24 -7
  927. package/dist/util/secret-detect.js +49 -14
  928. package/dist/util/spawn-argv.d.ts +11 -0
  929. package/dist/util/spawn-argv.js +66 -0
  930. package/dist/util/sql.d.ts +3 -0
  931. package/dist/util/sql.js +6 -0
  932. package/dist/util/sqlite-blocked.d.ts +15 -4
  933. package/dist/util/sqlite-blocked.js +19 -6
  934. package/dist/util/stored-json.d.ts +4 -1
  935. package/dist/util/stored-json.js +6 -2
  936. package/dist/util/stream-tee.d.ts +2 -1
  937. package/dist/util/stream-tee.js +8 -5
  938. package/dist/util/transcript-tail.d.ts +4 -1
  939. package/dist/util/transcript-tail.js +4 -1
  940. package/dist/util/vector-codec.d.ts +4 -0
  941. package/dist/util/vector-codec.js +15 -0
  942. package/dist/util/version.d.ts +8 -3
  943. package/dist/util/version.js +8 -3
  944. package/dist/util/write-budget.d.ts +7 -2
  945. package/dist/util/write-budget.js +5 -2
  946. package/dist/util/yaml.d.ts +4 -1
  947. package/dist/util/yaml.js +4 -1
  948. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  949. package/extensions/openclaw-plugin/package.json +1 -1
  950. package/openclaw.plugin.json +1 -1
  951. package/package.json +4 -1
  952. package/scripts/postinstall.cjs +3 -1
  953. package/dist/api/audit.js +0 -56
  954. package/dist/api/cards.d.ts +0 -42
  955. package/dist/api/conflicts.d.ts +0 -28
  956. package/dist/api/conflicts.js +0 -61
  957. package/dist/api/dormant.d.ts +0 -14
  958. package/dist/api/dormant.js +0 -58
  959. package/dist/api/goals.d.ts +0 -18
  960. package/dist/api/graph.d.ts +0 -8
  961. package/dist/api/graph.js +0 -7
  962. package/dist/api/learn.js +0 -124
  963. package/dist/api/memories.d.ts +0 -23
  964. package/dist/api/memories.js +0 -46
  965. package/dist/api/objects.d.ts +0 -9
  966. package/dist/api/on-store.d.ts +0 -16
  967. package/dist/api/on-store.js +0 -38
  968. package/dist/api/outcome.d.ts +0 -19
  969. package/dist/api/outcome.js +0 -21
  970. package/dist/api/predictions.d.ts +0 -11
  971. package/dist/api/promote.d.ts +0 -36
  972. package/dist/api/promote.js +0 -65
  973. package/dist/api/recall-core.d.ts +0 -4
  974. package/dist/api/recall-core.js +0 -120
  975. package/dist/api/recall-finish.d.ts +0 -53
  976. package/dist/api/recall-finish.js +0 -30
  977. package/dist/api/recall-history.d.ts +0 -64
  978. package/dist/api/recall-history.js +0 -159
  979. package/dist/api/recall-record.d.ts +0 -43
  980. package/dist/api/recall-record.js +0 -78
  981. package/dist/api/recall-request.js +0 -121
  982. package/dist/api/recall.d.ts +0 -6
  983. package/dist/api/refine.d.ts +0 -7
  984. package/dist/api/refine.js +0 -10
  985. package/dist/api/session-owners.d.ts +0 -4
  986. package/dist/api/session-owners.js +0 -17
  987. package/dist/api/sleep-run.d.ts +0 -26
  988. package/dist/api/sleep.js +0 -10
  989. package/dist/cli/lenient-id.d.ts +0 -2
  990. package/dist/cli/lenient-id.js +0 -13
  991. package/dist/graph/write.d.ts +0 -14
  992. package/dist/store/sqlite/busy.d.ts +0 -3
  993. package/dist/store/sqlite/busy.js +0 -8
  994. package/dist/store/sqlite/local.d.ts +0 -21
  995. package/dist/store/sqlite/local.js +0 -39
@@ -2,7 +2,6 @@ import * as fs from 'fs';
2
2
  import * as path from 'path';
3
3
  import { realpathOrResolve } from '../util/real-path.js';
4
4
  export function splitMarkdownFrontmatter(raw) {
5
- // Must start with `---` on its own line. Accept CRLF or LF.
6
5
  const m = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/);
7
6
  if (!m)
8
7
  return { fm: {}, body: raw };
@@ -16,7 +15,8 @@ export function splitMarkdownFrontmatter(raw) {
16
15
  continue;
17
16
  let val = kv[2].trim();
18
17
  if (val === '') {
19
- // YAML block-style list (`key:` then indented `- item` lines, common in Obsidian/Dendron): collect into a comma-joined value for frontmatterList.
18
+ // YAML block-style list (`key:` then indented `- item` lines, common in Obsidian/Dendron): collect into a
19
+ // comma-joined value for frontmatterList.
20
20
  const items = [];
21
21
  let j = i + 1;
22
22
  let item;
@@ -33,7 +33,9 @@ export function splitMarkdownFrontmatter(raw) {
33
33
  }
34
34
  return { fm, body };
35
35
  }
36
- /** Pull a frontmatter field that may be a YAML flow list (`[a, b]`), a comma-separated scalar, or one token into a string[];
36
+ /**
37
+ * Pull a frontmatter field that may be a YAML flow list (`[a, b]`), a comma-separated scalar, or one token into a
38
+ * string[];
37
39
  * quotes and brackets are stripped and empty entries dropped. */
38
40
  export function frontmatterList(value) {
39
41
  if (!value)
@@ -46,7 +48,9 @@ export function frontmatterList(value) {
46
48
  .map((s) => s.trim().replace(/^['"]|['"]$/g, '').trim())
47
49
  .filter(Boolean);
48
50
  }
49
- /** Parse `[[wikilinks]]` from body text: `[[target]]` and `[[target|alias]]` both yield `target`; de-duplicated, order-preserving.
51
+ /**
52
+ * Parse `[[wikilinks]]` from body text: `[[target]]` and `[[target|alias]]` both yield `target`; de-duplicated,
53
+ * order-preserving.
50
54
  * Embeds (`![[...]]`) match too, because the leading `!` is outside the capture and a candidate target is harmless. */
51
55
  export function parseWikilinks(body) {
52
56
  const out = [];
@@ -65,11 +69,16 @@ export function parseWikilinks(body) {
65
69
  }
66
70
  return out;
67
71
  }
68
- /** Recursively collect files matching `match` (`*.md` default) under `root` as forward-slash relative paths; symlinks are not followed.
69
- * Skips dot-directories and the Hippo store path so a vault containing the store never imports its own mirror files; importVault handles root-IS-the-store. */
72
+ /**
73
+ * Recursively collect files matching `match` (`*.md` default) under `root` as forward-slash relative paths; symlinks
74
+ * are not followed.
75
+ * Skips dot-directories and the Hippo store path so a vault containing the store never imports its own mirror files;
76
+ * importVault handles root-IS-the-store.
77
+ */
70
78
  export function collectMarkdownFiles(root, hippoRoot, match = /\.md$/i) {
71
79
  const out = [];
72
- // Canonicalize (realpath) so a non-dot HIPPO_HOME store nested in the vault is skipped even via a junction or Windows case alias.
80
+ // Canonicalize (realpath) so a non-dot HIPPO_HOME store nested in the vault is skipped even via a junction or Windows
81
+ // case alias.
73
82
  const resolvedHippoRoot = realpathOrResolve(hippoRoot);
74
83
  const walk = (dir) => {
75
84
  const entries = fs.readdirSync(dir, { withFileTypes: true });
@@ -12,7 +12,10 @@ function slugify(heading) {
12
12
  .replace(/-+/g, '-')
13
13
  .slice(0, SLUG_MAX_CHARS);
14
14
  }
15
- /** Parse structured markdown into {content, sectionSlug} pairs: each heading starts a section whose bullets or numbered items become memories. */
15
+ /**
16
+ * Parse structured markdown into {content, sectionSlug} pairs: each heading starts a section whose bullets or numbered
17
+ * items become memories.
18
+ */
16
19
  function parseStructuredMarkdown(raw) {
17
20
  const results = [];
18
21
  const lines = raw.split('\n');
@@ -27,7 +30,6 @@ function parseStructuredMarkdown(raw) {
27
30
  }
28
31
  for (const line of lines) {
29
32
  const trimmed = line.trim();
30
- // Heading
31
33
  const headingMatch = trimmed.match(/^(#{1,6})\s+(.+)/);
32
34
  if (headingMatch) {
33
35
  flush();
@@ -35,19 +37,16 @@ function parseStructuredMarkdown(raw) {
35
37
  currentSlug = slugify(currentSection);
36
38
  continue;
37
39
  }
38
- // Bullet or numbered item: flush previous, start new
39
40
  if (/^[-*+]\s+/.test(trimmed) || /^\d+\.\s+/.test(trimmed)) {
40
41
  flush();
41
42
  const itemText = trimmed.replace(/^[-*+]\s+/, '').replace(/^\d+\.\s+/, '').trim();
42
43
  pendingText = itemText;
43
44
  continue;
44
45
  }
45
- // Empty line: flush current pending
46
46
  if (!trimmed) {
47
47
  flush();
48
48
  continue;
49
49
  }
50
- // Continuation of current item
51
50
  pendingText = pendingText ? pendingText + ' ' + trimmed : trimmed;
52
51
  }
53
52
  flush();
@@ -56,8 +55,7 @@ function parseStructuredMarkdown(raw) {
56
55
  export function importMarkdown(filePath, options) {
57
56
  const raw = fs.readFileSync(filePath, 'utf8');
58
57
  const parsed = parseStructuredMarkdown(raw);
59
- // Group by section slug so we can pass per-chunk tags
60
- // We call importEntries per unique slug to get the right tags per section
58
+ // importEntries takes one tag set per call, so each section's chunks go in as one call.
61
59
  const bySlug = new Map();
62
60
  for (const { content, sectionSlug } of parsed) {
63
61
  const list = bySlug.get(sectionSlug) ?? [];
@@ -72,8 +70,7 @@ export function importMarkdown(filePath, options) {
72
70
  total: totalResult.total + result.total,
73
71
  imported: totalResult.imported + result.imported,
74
72
  skipped: totalResult.skipped + result.skipped,
75
- // AT1 P2 fix: `rejected` is now optional on ImportResult (compat) — tolerate
76
- // undefined on either side of the accumulation.
73
+ // rejected and redacted are optional on ImportResult, so either side may be undefined.
77
74
  rejected: (totalResult.rejected ?? 0) + (result.rejected ?? 0),
78
75
  redacted: (totalResult.redacted ?? 0) + (result.redacted ?? 0),
79
76
  entries: [...totalResult.entries, ...result.entries],
@@ -2,7 +2,7 @@ import * as fs from 'fs';
2
2
  import * as path from 'path';
3
3
  import { importEntries } from './core.js';
4
4
  import { splitMarkdownFrontmatter, collectMarkdownFiles } from './markdown-parse.js';
5
- import { errorMessage, log } from '../util/log.js';
5
+ import { errorMessage, log, errorFields } from '../util/log.js';
6
6
  import { isJsonString, isJsonObject } from '../util/json.js';
7
7
  /** Coerce one imported record (string, `{content|text: ...}` object, or
8
8
  * anything else) into the plain-text memory chunk it represents. */
@@ -14,27 +14,24 @@ function extractMemoryText(candidate) {
14
14
  }
15
15
  return '';
16
16
  }
17
- /** Parse a ChatGPT memory export: a JSON array of strings or `{content, created}` objects, `{"memories": [...]}`, or plain text with one memory per line. */
17
+ /** Parse a ChatGPT memory export: a JSON array of strings or `{content, created}` objects, `{"memories": [...]}`, or
18
+ * plain text with one memory per line. */
18
19
  function parseChatGPTFile(filePath) {
19
20
  const raw = fs.readFileSync(filePath, 'utf8').trim();
20
- // Try JSON first
21
21
  if (raw.startsWith('[') || raw.startsWith('{')) {
22
22
  try {
23
23
  const parsed = JSON.parse(raw);
24
- // {"memories": [...]} - ChatGPT export format
25
24
  if (isJsonObject(parsed) && Array.isArray(parsed.memories)) {
26
25
  return parsed.memories.map(extractMemoryText).filter(Boolean);
27
26
  }
28
- // Array format
29
27
  if (Array.isArray(parsed)) {
30
28
  return parsed.map(extractMemoryText).filter(Boolean);
31
29
  }
32
30
  }
33
31
  catch (err) {
34
- log.warn(`import: ${filePath} is not valid JSON (${errorMessage(err)}); reading it as plain text`);
32
+ log.warn(`import: ${filePath} is not valid JSON (${errorMessage(err)}); reading it as plain text`, errorFields(err));
35
33
  }
36
34
  }
37
- // Plain text: one memory per line
38
35
  return raw.split('\n').map((l) => l.trim()).filter(Boolean);
39
36
  }
40
37
  export function importChatGPT(filePath, options) {
@@ -62,18 +59,17 @@ function splitMarkdown(content) {
62
59
  chunks.push(current.trim());
63
60
  return chunks.filter(Boolean);
64
61
  }
65
- /** Takes one line into the chunk being built, pushing that chunk when the line ends it; returns the chunk still open. */
62
+ /** Takes one line into the chunk being built, pushing that chunk when the line ends it; returns the chunk still
63
+ * open. */
66
64
  function appendLine(chunks, open, line) {
67
65
  let current = open;
68
66
  const trimmed = line.trim();
69
- // Heading: start a new chunk
70
67
  if (/^#{1,6}\s+/.test(trimmed)) {
71
68
  if (current.trim())
72
69
  chunks.push(current.trim());
73
70
  current = trimmed;
74
71
  return current;
75
72
  }
76
- // Bullet point: each bullet is its own chunk (flush previous if not a bullet context)
77
73
  if (/^[-*+]\s+/.test(trimmed)) {
78
74
  if (current.trim() && !/^[-*+]\s+/.test(current.split('\n')[0])) {
79
75
  chunks.push(current.trim());
@@ -86,7 +82,6 @@ function appendLine(chunks, open, line) {
86
82
  current = trimmed.replace(/^[-*+]\s+/, '').trim();
87
83
  return current;
88
84
  }
89
- // Numbered list item
90
85
  if (/^\d+\.\s+/.test(trimmed)) {
91
86
  if (current.trim()) {
92
87
  chunks.push(current.trim());
@@ -95,7 +90,6 @@ function appendLine(chunks, open, line) {
95
90
  current = trimmed.replace(/^\d+\.\s+/, '').trim();
96
91
  return current;
97
92
  }
98
- // Empty line
99
93
  if (!trimmed) {
100
94
  if (current.trim()) {
101
95
  chunks.push(current.trim());
@@ -103,13 +97,11 @@ function appendLine(chunks, open, line) {
103
97
  }
104
98
  return current;
105
99
  }
106
- // Regular line: append to current
107
100
  return current ? current + ' ' + trimmed : trimmed;
108
101
  }
109
102
  /** Parse CLAUDE.md or Claude memory.json. */
110
103
  function parseClaudeFile(filePath) {
111
104
  const raw = fs.readFileSync(filePath, 'utf8');
112
- // JSON memory file
113
105
  if (filePath.endsWith('.json')) {
114
106
  try {
115
107
  const parsed = JSON.parse(raw.trim());
@@ -118,10 +110,9 @@ function parseClaudeFile(filePath) {
118
110
  }
119
111
  }
120
112
  catch (err) {
121
- log.warn(`import: ${filePath} is not valid JSON (${errorMessage(err)}); reading it as markdown`);
113
+ log.warn(`import: ${filePath} is not valid JSON (${errorMessage(err)}); reading it as markdown`, errorFields(err));
122
114
  }
123
115
  }
124
- // Markdown file: strip hippo block and split
125
116
  const cleaned = stripHippoBlock(raw);
126
117
  return splitMarkdown(cleaned);
127
118
  }
@@ -137,7 +128,7 @@ function parseCursorFile(content) {
137
128
  let current = '';
138
129
  for (const line of lines) {
139
130
  const trimmed = line.trim();
140
- // Skip comment-only lines that are empty after stripping #
131
+ // A bare '#' is an empty comment line, so it ends the rule like a blank line.
141
132
  if (!trimmed || trimmed === '#') {
142
133
  if (current.trim()) {
143
134
  chunks.push(current.trim());
@@ -145,7 +136,6 @@ function parseCursorFile(content) {
145
136
  }
146
137
  continue;
147
138
  }
148
- // Numbered item: 1. 2. 3.
149
139
  if (/^\d+\.\s+/.test(trimmed)) {
150
140
  if (current.trim()) {
151
141
  chunks.push(current.trim());
@@ -154,7 +144,6 @@ function parseCursorFile(content) {
154
144
  current = trimmed.replace(/^\d+\.\s+/, '').trim();
155
145
  continue;
156
146
  }
157
- // Bullet: - or *
158
147
  if (/^[-*]\s+/.test(trimmed)) {
159
148
  if (current.trim()) {
160
149
  chunks.push(current.trim());
@@ -163,7 +152,6 @@ function parseCursorFile(content) {
163
152
  current = trimmed.replace(/^[-*]\s+/, '').trim();
164
153
  continue;
165
154
  }
166
- // Regular line
167
155
  current = current ? current + ' ' + trimmed : trimmed;
168
156
  }
169
157
  if (current.trim())
@@ -186,18 +174,17 @@ export function importCursor(sourcePath, options) {
186
174
  });
187
175
  return importEntries(chunks, 'import:cursor', ['imported', 'cursor'], options);
188
176
  }
189
- /** Split a generic file into chunks: markdown on headings and bullets, plain text on double newlines or one per line. */
177
+ /** Split a generic file into chunks: markdown on headings and bullets, plain text on double newlines or one per
178
+ * line. */
190
179
  function parseGenericFile(filePath) {
191
180
  const raw = fs.readFileSync(filePath, 'utf8');
192
181
  const isMarkdown = filePath.endsWith('.md') || filePath.endsWith('.mdx');
193
182
  if (isMarkdown) {
194
183
  return splitMarkdown(raw);
195
184
  }
196
- // Plain text: try double newlines first
197
185
  const byParagraph = raw.split(/\n{2,}/).map((p) => p.trim()).filter(Boolean);
198
186
  if (byParagraph.length > 1)
199
187
  return byParagraph;
200
- // Fall back to one-per-line
201
188
  return raw.split('\n').map((l) => l.trim()).filter(Boolean);
202
189
  }
203
190
  export function importGenericFile(filePath, options) {
@@ -1,5 +1,5 @@
1
1
  import { type ImportResult, type ImportOptions } from './core.js';
2
- /** Import a markdown vault FOLDER as `kind='raw'` memories.
3
- * NOT re-entrant: idempotency rests on the in-memory `existing` Map loaded once, so two concurrent runs over one vault can double-insert. */
4
- export declare function importVault(folderPath: string, options: ImportOptions): ImportResult;
2
+ /** Import a markdown vault FOLDER as `kind='raw'` memories. NOT re-entrant: idempotency rests on the in-memory
3
+ * `existing` Map loaded once, so two concurrent runs over one vault can double-insert. */
4
+ export declare function importVault(folderPath: string, options: ImportOptions): Promise<ImportResult>;
5
5
  //# sourceMappingURL=vault.d.ts.map
@@ -5,28 +5,31 @@ import { createHash } from 'node:crypto';
5
5
  import { createMemory } from '../core/memory.js';
6
6
  import { loadVaultRawRows } from '../store/entry-reads.js';
7
7
  import { remember, archiveRaw, isPrivateScope } from '../api/index.js';
8
+ import { sqliteStore } from '../store/sqlite/store.js';
8
9
  import { assertClientScope } from '../core/recall-scope.js';
9
10
  import { RejectedValueError } from '../core/api-errors.js';
10
11
  import { rejectionGuardRefuses } from '../store/rejected-values.js';
11
- import { withRequestStoresSync } from '../db/request-stores.js';
12
+ import { runWithRequestStores } from '../db/request-stores.js';
12
13
  import { loadConfig } from '../core/config.js';
13
14
  import { vetSecrets } from '../util/secret-detect.js';
14
- import { errorMessage, log } from '../util/log.js';
15
+ import { errorMessage, log, errorFields } from '../util/log.js';
15
16
  import { splitMarkdownFrontmatter, frontmatterList, parseWikilinks, collectMarkdownFiles } from './markdown-parse.js';
16
17
  import { realpathOrResolve } from '../util/real-path.js';
17
18
  import { isJsonString } from '../util/json.js';
18
19
  import { escapeLike } from '../util/escape.js';
19
- /** Import a markdown vault FOLDER as `kind='raw'` memories.
20
- * NOT re-entrant: idempotency rests on the in-memory `existing` Map loaded once, so two concurrent runs over one vault can double-insert. */
21
- export function importVault(folderPath, options) {
20
+ /** Import a markdown vault FOLDER as `kind='raw'` memories. NOT re-entrant: idempotency rests on the in-memory
21
+ * `existing` Map loaded once, so two concurrent runs over one vault can double-insert. */
22
+ export async function importVault(folderPath, options) {
22
23
  const hippoRoot = options.hippoRoot;
23
24
  const identity = vaultIdentityOrThrow(options);
24
25
  if (options.global) {
25
- // The raw-archive path is tenant-local, so global mode would put raw vault rows in the wrong store; reject for SDK callers too, not only the CLI.
26
+ // The raw-archive path is tenant-local, so global mode would put raw vault rows in the wrong store; reject for SDK
27
+ // callers too, not only the CLI.
26
28
  throw new Error('importVault does not support global mode (raw rows are tenant-local).');
27
29
  }
28
- // Self-store no-op guard: MUST run before the existing-rows load and the deletion-sync. If the vault IS (or sits inside) the store, an empty scan looks like
29
- // "every note deleted" and deletion-sync would irreversibly archive every live row, so do nothing. Canonicalize both paths (realpath) to catch aliased paths.
30
+ // Self-store no-op guard: MUST run before the existing-rows load and the deletion-sync. If the vault IS (or sits
31
+ // inside) the store, an empty scan looks like "every note deleted" and deletion-sync would irreversibly archive every
32
+ // live row, so do nothing. Canonicalize both paths (realpath) to catch aliased paths.
30
33
  const resolvedStore = realpathOrResolve(hippoRoot);
31
34
  const resolvedFolder = realpathOrResolve(folderPath);
32
35
  if (resolvedFolder === resolvedStore || resolvedFolder.startsWith(resolvedStore + path.sep)) {
@@ -34,7 +37,7 @@ export function importVault(folderPath, options) {
34
37
  }
35
38
  return syncVaultFolder(folderPath, options, identity);
36
39
  }
37
- function syncVaultFolder(folderPath, options, { vaultName, scope }) {
40
+ async function syncVaultFolder(folderPath, options, { vaultName, scope }) {
38
41
  const hippoRoot = options.hippoRoot;
39
42
  const tenantId = options.tenantId ?? DEFAULT_TENANT_ID;
40
43
  const extraTags = options.extraTags ?? [];
@@ -45,6 +48,7 @@ function syncVaultFolder(folderPath, options, { vaultName, scope }) {
45
48
  // Process-local actor; the vault importer is a CLI/SDK ingestion path, not
46
49
  // a bearer-authed request. archiveRaw / remember thread this into audit.
47
50
  actor: { subject: 'connector:vault', role: 'admin' },
51
+ store: sqliteStore(hippoRoot),
48
52
  };
49
53
  const existing = loadVaultRows(hippoRoot, tenantId, vaultName);
50
54
  const relpaths = collectMarkdownFiles(folderPath, hippoRoot);
@@ -54,15 +58,15 @@ function syncVaultFolder(folderPath, options, { vaultName, scope }) {
54
58
  const run = {
55
59
  ctx, folderPath, vaultName, scope, extraTags, dryRun, existing, seen, baseHalfLifeDays, tally,
56
60
  };
57
- const importNotes = () => {
61
+ const importNotes = async () => {
58
62
  for (const relpath of relpaths)
59
- importVaultNote(run, relpath);
63
+ await importVaultNote(run, relpath);
60
64
  };
61
65
  // A dry run probes the rejection guard once per changed note; one scope lets every probe share a handle.
62
66
  if (dryRun)
63
- withRequestStoresSync(importNotes);
67
+ await runWithRequestStores(importNotes);
64
68
  else
65
- importNotes();
69
+ await importNotes();
66
70
  // Deletion-sync: an artifactRef in the Map but not seen this run vanished from the source, so archive its raw row.
67
71
  // Per-file archiveRaw, no outer SAVEPOINT: there is no cross-file idempotency row to commit atomically.
68
72
  for (const [artifactRef, rows] of existing) {
@@ -71,14 +75,15 @@ function syncVaultFolder(folderPath, options, { vaultName, scope }) {
71
75
  for (const row of rows) {
72
76
  tally.archived++; // count even in dryRun so the preview reflects destructive deletes
73
77
  if (!dryRun)
74
- archiveRaw(ctx, row.id, `source_deleted:${artifactRef}`);
78
+ await archiveRaw(ctx, row.id, `source_deleted:${artifactRef}`);
75
79
  }
76
80
  }
77
81
  const { total, imported, skipped, rejected, archived, redacted, entries } = tally;
78
82
  return { total, imported, skipped, rejected, archived, redacted, entries };
79
83
  }
80
84
  function vaultIdentityOrThrow(options) {
81
- // The vault NAME keys the destructive deletion-sync, so it must be explicit: defaulting to the folder basename made two vaults
85
+ // The vault NAME keys the destructive deletion-sync, so it must be explicit: defaulting to the folder basename made
86
+ // two vaults
82
87
  // sharing a basename collide on the same `vault:<name>:*` prefix and the sync archived the first one's rows.
83
88
  const vaultName = options.name?.trim();
84
89
  if (!vaultName) {
@@ -86,12 +91,14 @@ function vaultIdentityOrThrow(options) {
86
91
  'basename.');
87
92
  }
88
93
  if (vaultName.includes(':')) {
89
- // ':' delimits the artifactRef (vault:<name>:<relpath>); a name containing it lets another vault's prefix scan over-match and archive its rows.
94
+ // ':' delimits the artifactRef (vault:<name>:<relpath>); a name containing it lets another vault's prefix scan
95
+ // over-match and archive its rows.
90
96
  throw new Error(`vault name must not contain ':' (artifactRef delimiter): ${vaultName}`);
91
97
  }
92
98
  const scope = options.scope ?? null;
93
- // Privacy guard: recall only default-denies scopes shaped `<source>:private:*` (isPrivateScope in src/core/recall-scope.ts), so a bare `private`
94
- // alias would be returned to no-scope callers. Reject any scope naming a `private` segment that is not a valid `<source>:private:*`.
99
+ // Privacy guard: recall only default-denies scopes shaped `<source>:private:*` (isPrivateScope in
100
+ // src/core/recall-scope.ts), so a bare `private` alias would be returned to no-scope callers. Reject any scope naming
101
+ // a `private` segment that is not a valid `<source>:private:*`.
95
102
  assertClientScope(scope);
96
103
  if (scope !== null && scope.split(':').includes('private') && !isPrivateScope(scope)) {
97
104
  throw new Error(`vault scope '${scope}' is not recognized as private by recall (only '<source>:private:*' scopes are default-denied). ` +
@@ -120,52 +127,56 @@ function loadVaultRows(hippoRoot, tenantId, vaultName) {
120
127
  }
121
128
  return existing;
122
129
  }
123
- function importVaultNote(run, relpath) {
130
+ async function importVaultNote(run, relpath) {
124
131
  const { tally } = run;
125
132
  tally.total++;
126
133
  const artifactRef = `vault:${run.vaultName}:${relpath}`;
127
134
  run.seen.add(artifactRef);
128
- // The content hash covers the RAW file bytes (deterministic, no Date/random) so frontmatter edits are idempotent like body edits.
135
+ // The content hash covers the RAW file bytes (deterministic, no
136
+ // Date/random) so frontmatter edits are idempotent like body edits.
129
137
  const rawFileContent = readVaultNote(run, relpath);
130
138
  if (rawFileContent === null)
131
139
  return;
132
140
  const hash = createHash('sha256').update(rawFileContent).digest('hex');
133
141
  const hashTag = `content-hash:${hash}`;
134
- // Load every live raw row for this ref (>1 only after a concurrent double-insert); decide idempotency below, once the full tag set is built.
142
+ // Load every live raw row for this ref (>1 only after a concurrent double-insert); decide idempotency below, once the
143
+ // full tag set is built.
135
144
  const priors = run.existing.get(artifactRef) ?? [];
136
145
  const { fm, body } = splitMarkdownFrontmatter(rawFileContent);
137
- // Empty or frontmatter-only note: nothing storable, and the content was deleted at source, so archive prior rows (the old body must not stay searchable)
138
- // and skip the write. Safe because remember() is skipped, so there is no archive-then-throw hazard; the note stays in `seen` so deletion-sync skips it.
146
+ // Empty or frontmatter-only note: nothing storable, and the content was deleted at source, so archive prior rows (the
147
+ // old body must not stay searchable) and skip the write. Safe because remember() is skipped, so there is no
148
+ // archive-then-throw hazard; the note stays in `seen` so deletion-sync skips it.
139
149
  if (body.trim().length < 3) {
140
- archivePriors(run, priors, `emptied:${artifactRef}`);
150
+ await archivePriors(run, priors, `emptied:${artifactRef}`);
141
151
  tally.skipped++;
142
152
  return;
143
153
  }
144
154
  const tags = vaultNoteTags(run, hashTag, fm, body);
145
155
  if (vaultEnvelopeUnchanged(priors, tags, run.scope)) {
146
- // Unchanged file + envelope → skip (idempotent re-import).
147
156
  tally.skipped++;
148
157
  return;
149
158
  }
150
- writeChangedNote(run, artifactRef, priors, body, tags);
159
+ await writeChangedNote(run, artifactRef, priors, body, tags);
151
160
  }
152
- function writeChangedNote(run, artifactRef, priors, body, tags) {
161
+ async function writeChangedNote(run, artifactRef, priors, body, tags) {
153
162
  const { ctx, tally } = run;
154
- // Changed file: archive EVERY old raw row for this ref (>1 only after a concurrent double-insert), then append the new one; NEVER supersede.
155
- // archiveRaw commits before remember() runs, so no double-live row; a crash between them self-heals on the next import.
156
- archivePriors(run, priors, `changed:${artifactRef}`);
157
- // remember() owns the write; the `echo` from createMemory only fills the ImportResult, with its id reconciled to the row that landed.
163
+ // Changed file: archive EVERY old raw row for this ref (>1 only after a concurrent double-insert), then append the
164
+ // new one; NEVER supersede. archiveRaw commits before remember() runs, so no double-live row; a crash between them
165
+ // self-heals on the next import.
166
+ await archivePriors(run, priors, `changed:${artifactRef}`);
167
+ // remember() owns the write; the `echo` from createMemory only fills the ImportResult, with its id reconciled to the
168
+ // row that landed.
158
169
  const content = vetSecrets(body, tags, true).content;
159
170
  const echo = createMemory(content, {
160
171
  kind: 'raw',
161
172
  tags,
162
173
  scope: run.scope,
163
174
  owner: 'agent:vault-import',
164
- artifact_ref: artifactRef,
175
+ artifactRef: artifactRef,
165
176
  tenantId: ctx.tenantId,
166
177
  baseHalfLifeDays: run.baseHalfLifeDays,
167
178
  });
168
- if (!storeVaultNote(run, echo, content, tags, artifactRef)) {
179
+ if (!(await storeVaultNote(run, echo, content, tags, artifactRef))) {
169
180
  tally.rejected++;
170
181
  return;
171
182
  }
@@ -179,21 +190,23 @@ function readVaultNote(run, relpath) {
179
190
  return fs.readFileSync(path.join(run.folderPath, relpath), 'utf8');
180
191
  }
181
192
  catch (err) {
182
- // One unreadable note (gone since the listing, or a transient IO error) must not abort the import; a re-run picks it up.
183
- log.debug(`vault note skipped: ${relpath}: ${errorMessage(err)}`);
193
+ // One unreadable note (gone since the listing, or a transient
194
+ // IO error) must not abort the import; a re-run picks it up.
195
+ log.warnThenDebug(`vault-note-skipped:${run.folderPath}`, `vault note skipped: ${relpath}: ${errorMessage(err)}`, errorFields(err));
184
196
  run.tally.skipped++;
185
197
  return null;
186
198
  }
187
199
  }
188
- function archivePriors(run, priors, reason) {
200
+ async function archivePriors(run, priors, reason) {
189
201
  for (const p of priors) {
190
202
  run.tally.archived++; // count the would-be archive even in dryRun (true preview)
191
203
  if (!run.dryRun)
192
- archiveRaw(run.ctx, p.id, reason);
204
+ await archiveRaw(run.ctx, p.id, reason);
193
205
  }
194
206
  }
195
207
  function vaultNoteTags(run, hashTag, fm, body) {
196
- // Build the FULL tag envelope before the idempotency decision, de-duplicated and order-preserving (createMemory stores tags verbatim).
208
+ // Build the FULL tag envelope before the idempotency decision, de-duplicated and order-preserving (createMemory
209
+ // stores tags verbatim).
197
210
  const frontmatterTags = [
198
211
  ...frontmatterList(fm['tags']),
199
212
  ...frontmatterList(fm['aliases']).map((a) => `alias:${a}`),
@@ -209,8 +222,9 @@ function vaultNoteTags(run, hashTag, fm, body) {
209
222
  ]));
210
223
  }
211
224
  function vaultEnvelopeUnchanged(priors, tags, scope) {
212
- // Unchanged iff EVERY live raw row carries the EXACT same tag set AND scope; comparing the complete envelope (not hash plus a subset) catches
213
- // scope, added and removed tags. `length > 0` guards a never-seen file; archiving all priors on a mismatch also clears concurrent double-inserts.
225
+ // Unchanged iff EVERY live raw row carries the EXACT same tag set AND scope; comparing the complete envelope (not
226
+ // hash plus a subset) catches scope, added and removed tags. `length > 0` guards a never-seen file; archiving all
227
+ // priors on a mismatch also clears concurrent double-inserts.
214
228
  const wantTags = new Set(tags);
215
229
  return (priors.length > 0 &&
216
230
  priors.every((p) => {
@@ -221,14 +235,15 @@ function vaultEnvelopeUnchanged(priors, tags, scope) {
221
235
  }));
222
236
  }
223
237
  /** Returns false when the rejection guard refuses the note; any other error propagates. */
224
- function storeVaultNote(run, echo, content, tags, artifactRef) {
225
- // A dry run writes nothing; it asks the guard remember() uses, so its `rejected` count matches what a real run would refuse.
238
+ async function storeVaultNote(run, echo, content, tags, artifactRef) {
239
+ // A dry run writes nothing; it asks the guard remember() uses,
240
+ // so its `rejected` count matches what a real run would refuse.
226
241
  if (run.dryRun)
227
242
  return !rejectionGuardRefuses(run.ctx.hippoRoot, run.ctx.tenantId, echo.id, echo.content);
228
243
  try {
229
244
  // A rejected note must not stop the scan or the deletion sync. Its priors are archived by now, so a rerun meets
230
245
  // the same refusal and counts it again.
231
- const result = remember(run.ctx, {
246
+ const result = await remember(run.ctx, {
232
247
  content,
233
248
  kind: 'raw',
234
249
  artifactRef,
@@ -245,7 +260,8 @@ function storeVaultNote(run, echo, content, tags, artifactRef) {
245
260
  throw err;
246
261
  }
247
262
  }
248
- /** Tolerant JSON-array parse for the loader's `tags_json` column (the store's `parseJsonArray` is not exported); returns [] on null or garbage. */
263
+ /** Tolerant JSON-array parse for the loader's `tags_json` column (the store's `parseJsonArray` is not exported);
264
+ * returns [] on null or garbage. */
249
265
  function parseJsonArrayLoose(value) {
250
266
  if (!value)
251
267
  return [];
@@ -254,7 +270,7 @@ function parseJsonArrayLoose(value) {
254
270
  return Array.isArray(parsed) ? parsed.filter(isJsonString) : [];
255
271
  }
256
272
  catch (err) {
257
- log.debug(`import: unreadable tags_json read as no tags: ${errorMessage(err)}`);
273
+ log.warnThenDebug('import-tags-json-unreadable', `import: unreadable tags_json read as no tags: ${errorMessage(err)}`, errorFields(err));
258
274
  return [];
259
275
  }
260
276
  }
package/dist/index.d.ts CHANGED
@@ -2,9 +2,33 @@
2
2
  * Hippo public API - re-exports for programmatic use.
3
3
  */
4
4
  import { type CreateMemoryOptions, type MemoryEntry } from './core/memory.js';
5
+ import { type SleepOpts, type SleepResult } from './api/sleep/sleep.js';
6
+ import type { Context } from './api/types.js';
5
7
  export { MemoryEntry, Layer, EmotionalValence, ConfidenceLevel, DecayOptions, calculateStrength, resolveConfidence, confidenceFacets, type ConfidenceFacets, applyOutcome, generateId, computeSchemaFit } from './core/memory.js';
6
- /** Published signature, so `baseHalfLifeDays` stays optional here; hippo's own writers use the strict one in memory.ts. */
7
- export declare function createMemory(content: string, options?: Partial<CreateMemoryOptions>): MemoryEntry;
8
+ /** Core's camelCase options, plus the snake_case spellings 2.0 published; the camelCase key wins when both are set. */
9
+ type PublicCreateMemoryOptions = CreateMemoryOptions & {
10
+ /** @deprecated Use emotionalValence; removed in 3.0. */
11
+ emotional_valence?: CreateMemoryOptions['emotionalValence'];
12
+ /** @deprecated Use schemaFit; removed in 3.0. */
13
+ schema_fit?: CreateMemoryOptions['schemaFit'];
14
+ /** @deprecated Use traceOutcome; removed in 3.0. */
15
+ trace_outcome?: CreateMemoryOptions['traceOutcome'];
16
+ /** @deprecated Use sourceSessionId; removed in 3.0. */
17
+ source_session_id?: CreateMemoryOptions['sourceSessionId'];
18
+ /** @deprecated Use validFrom; removed in 3.0. */
19
+ valid_from?: CreateMemoryOptions['validFrom'];
20
+ /** @deprecated Use extractedFrom; removed in 3.0. */
21
+ extracted_from?: CreateMemoryOptions['extractedFrom'];
22
+ /** @deprecated Use dagLevel; removed in 3.0. */
23
+ dag_level?: CreateMemoryOptions['dagLevel'];
24
+ /** @deprecated Use dagParentId; removed in 3.0. */
25
+ dag_parent_id?: CreateMemoryOptions['dagParentId'];
26
+ /** @deprecated Use artifactRef; removed in 3.0. */
27
+ artifact_ref?: CreateMemoryOptions['artifactRef'];
28
+ };
29
+ /** Published signature, so `baseHalfLifeDays` stays optional
30
+ * here; hippo's own writers use the strict one in memory.ts. */
31
+ export declare function createMemory(content: string, options?: Partial<PublicCreateMemoryOptions>): MemoryEntry;
8
32
  export { search } from './search/bm25-search.js';
9
33
  export { hybridSearch } from './search/hybrid.js';
10
34
  export { physicsSearch } from './search/physics-search.js';
@@ -20,23 +44,25 @@ export { initStore } from './store/open.js';
20
44
  export { writeEntry } from './store/entry-writes.js';
21
45
  export { loadAllEntries, readEntry } from './store/entry-reads.js';
22
46
  export { deleteEntry } from './store/delete-and-batch.js';
23
- export { loadSearchEntries, loadRecallSearchEntries } from './store/search-rows.js';
47
+ export { loadSearchEntries, loadRecallEntries, type RecallSearchEntriesOptions } from './store/search-rows.js';
24
48
  export { loadIndex, rebuildIndex, loadSessionDecayContext, SessionDecayContext } from './store/index-and-stats.js';
25
49
  export { saveActiveTaskSnapshot, loadActiveTaskSnapshot, loadFreshActiveTaskSnapshot, SNAPSHOT_AMBIENT_MAX_AGE_MS, closeTaskSnapshotsForSession, clearActiveTaskSnapshot, appendSessionEvent, listSessionEvents, type ContinuityKey, } from './store/sessions.js';
26
50
  export { listMemoryConflicts, replaceDetectedConflicts, resolveConflict } from './store/conflicts.js';
27
51
  export { saveSessionHandoff, loadLatestHandoff, loadHandoffById, stampHandoffOutcome, writeSessionEndHandoff, } from './store/handoffs.js';
28
52
  export { createCard, loadCard, listCards, loadCardDeps, loadCardRuns, loadCardComments, claimCard, heartbeatCard, blockCard, reviewCard, completeCard, reclaimExpiredCards, addCardComment, loadLatestHandoffForCard, } from './store/cards.js';
29
53
  export { SessionHandoff, HandoffOutcome, HandoffEvidence, isHandoffOutcome } from './core/handoff.js';
30
- export { Card, CardStatus, CardRun, CardComment, CardTransitions, isCardStatus, CARD_TRANSITIONS, CARD_LEASE_MS } from './core/card.js';
54
+ export { Card, CardStatus, CardRun, CardComment, CardTransitions, isCardStatus, CARD_TRANSITIONS, CARD_LEASE_MS, } from './core/card.js';
31
55
  export { consolidate } from './consolidate/sleep.js';
32
56
  export { ConsolidationResult } from './consolidate/run.js';
33
- export { sleep, type SleepOpts, type SleepResult } from './api/sleep.js';
57
+ export type { SleepOpts, SleepResult } from './api/sleep/sleep.js';
58
+ /** Published signature, so the Context may carry no store: it then runs on hippo.db under its root. */
59
+ export declare function sleep(ctx: Context, opts?: SleepOpts): Promise<SleepResult>;
34
60
  export { strengthBucket } from './consolidate/dedupe.js';
35
61
  export { isEmbeddingAvailable, getEmbedding } from './embeddings/local.js';
36
62
  export { cosineSimilarity } from './store/embeddings/index.js';
37
63
  export { embedMemory, embedAll } from './search/embed-memories.js';
38
64
  export { loadEmbeddingIndex, saveEmbeddingIndex } from './store/vector-index.js';
39
- export { captureError, extractLessons, partitionLessons, deduplicateLesson, runWatched, fetchGitLog, } from './learn/autolearn.js';
65
+ export { captureError, extractLessons, partitionLessons, deduplicateLesson, runWatched, runWatchedLine, type RunWatchedOptions, fetchGitLog, } from './learn/autolearn.js';
40
66
  export { getGlobalRoot, initGlobal, promoteToGlobal } from './sharing/global-store.js';
41
67
  export { searchBoth, searchBothHybrid, HybridSearchOptions } from './sharing/search-both.js';
42
68
  export { syncGlobalToLocal } from './sharing/global-sync.js';
@@ -50,5 +76,5 @@ export { runFeatureEval, formatResult, resultToBaseline, detectRegressions, buil
50
76
  export { computeSalience, SalienceDecision, SalienceResult, SalienceOptions, } from './core/salience.js';
51
77
  export { computeAmbientState, renderAmbientSummary, formatAmbientVector, AmbientState, } from './core/ambient.js';
52
78
  export { appendAuditEvent, queryAuditEvents, listAuditEventsAfter, AUDIT_OPS, type AuditEvent, type AuditOp, type QueryAuditOpts, type ListAuditAfterOpts, } from './store/audit.js';
53
- export { openHippoDb, openHippoDbReadOnly, closeHippoDb, type DatabaseSyncLike } from './db/index.js';
79
+ export * from './entry/sqlite-handles.js';
54
80
  //# sourceMappingURL=index.d.ts.map