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
@@ -33,8 +33,10 @@ const RELATIONS_TABLE = `
33
33
  FOREIGN KEY (memory_id) REFERENCES memories(id) ON DELETE SET NULL
34
34
  )
35
35
  `;
36
- // entities guard (dual-provenance): at least one valid provenance, no raw. Memory path: source_kind must equal the FK'd memory's kind, plus tenant-match.
37
- // Object path (memory_id NULL): (type,id) must point at an existing same-tenant object with status active|superseded (4-way CASE per table); all-null aborts.
36
+ // entities guard (dual-provenance): at least one valid provenance, no raw. Memory path: source_kind must equal the FK'd
37
+ // memory's kind, plus tenant-match.
38
+ // Object path (memory_id NULL): (type,id) must point at an existing same-tenant object with status active|superseded
39
+ // (4-way CASE per table); all-null aborts.
38
40
  const TRG_ENTITIES_CONSOLIDATED_ONLY_INSERT = `
39
41
  CREATE TRIGGER IF NOT EXISTS trg_entities_consolidated_only_insert
40
42
  BEFORE INSERT ON entities
@@ -197,7 +199,8 @@ const TRG_RELATIONS_CONSOLIDATED_ONLY_UPDATE = `
197
199
  END;
198
200
  END
199
201
  `;
200
- // Recreated verbatim from v37 (relation endpoints cannot move cross-tenant). The memories and graph queue triggers survive: those tables are not dropped.
202
+ // Recreated verbatim from v37 (relation endpoints cannot move cross-tenant). The memories and graph queue triggers
203
+ // survive: those tables are not dropped.
201
204
  const TRG_ENTITIES_NO_TENANT_MOVE_WHEN_REFERENCED = `
202
205
  CREATE TRIGGER IF NOT EXISTS trg_entities_no_tenant_move_when_referenced
203
206
  BEFORE UPDATE ON entities
@@ -210,8 +213,10 @@ const TRG_ENTITIES_NO_TENANT_MOVE_WHEN_REFERENCED = `
210
213
  export const v38 = {
211
214
  version: 38,
212
215
  up: (db) => {
213
- // Anchor graph provenance to the authoritative object, not the decaying mirror memory; the graph is a derived cache, so entities/relations are recreated.
214
- // memory_id is NULLABLE ON DELETE SET NULL; node:sqlite fires the BEFORE UPDATE guard on that SET NULL, so the UPDATE triggers omit the all-null ABORT.
216
+ // Anchor graph provenance to the authoritative object, not the decaying mirror memory; the graph is a derived
217
+ // cache, so entities/relations are recreated.
218
+ // memory_id is NULLABLE ON DELETE SET NULL; node:sqlite fires the BEFORE UPDATE guard on that SET NULL, so the
219
+ // UPDATE triggers omit the all-null ABORT.
215
220
  recreateGraphTables(db);
216
221
  createGraphGuards(db);
217
222
  },
@@ -11,16 +11,22 @@ export const v39 = {
11
11
  if (!tableHasColumn(db, 'memories', 'origin_project')) {
12
12
  db.exec(`ALTER TABLE memories ADD COLUMN origin_project TEXT`);
13
13
  }
14
- // Backfill from store location only (no path-tag guessing): 'shared:<project>:<ts>' rows take <project> (home-dir basename maps to '' user-global);
15
- // every other row takes this store's origin (`<project>/.hippo` -> '<project>', global store -> ''). Rows stay NULL only when no hippoRoot was provided.
14
+ // Backfill from store location only (no path-tag guessing): 'shared:<project>:<ts>' rows take <project> (home-dir
15
+ // basename maps to '' user-global);
16
+ // every other row takes this store's origin (`<project>/.hippo` -> '<project>', global store -> ''). Rows stay
17
+ // NULL only when no hippoRoot was provided.
16
18
  const hippoRoot = ctx?.hippoRoot;
17
19
  if (hippoRoot) {
18
- // Provenance-source evidence first (shared:<project>: / promoted:<localRoot>, parsed by the markdown-import stamp's helper),
20
+ // Provenance-source evidence first (shared:<project>: / promoted:<localRoot>, parsed by the markdown-import
21
+ // stamp's helper),
19
22
  // then the store's own location for everything else.
20
23
  const homeName = path.basename(os.homedir()).toLowerCase();
21
24
  // SAFETY: sourcedRows' shape matches the two columns (id, source)
22
25
  // named in the SELECT above.
23
- const sourcedRows = db.prepare(`SELECT id, source FROM memories WHERE origin_project IS NULL AND (source LIKE 'shared:%' OR source LIKE 'promoted:%')`).all();
26
+ const sourcedRows = db
27
+ .prepare(`SELECT id, source FROM memories WHERE origin_project IS NULL ` +
28
+ `AND (source LIKE 'shared:%' OR source LIKE 'promoted:%')`)
29
+ .all();
24
30
  const setOrigin = db.prepare(`UPDATE memories SET origin_project = ? WHERE id = ?`);
25
31
  for (const row of sourcedRows) {
26
32
  const origin = originFromSource(row.source, homeName);
@@ -28,14 +34,16 @@ export const v39 = {
28
34
  continue;
29
35
  setOrigin.run(origin, row.id);
30
36
  }
31
- // The global root itself is always user-global (''), whatever surrounds it on disk: a HIPPO_HOME inside a dotfiles git repo
37
+ // The global root itself is always user-global (''), whatever surrounds it on disk: a HIPPO_HOME inside a
38
+ // dotfiles git repo
32
39
  // must not stamp the whole corpus with that repo's name.
33
40
  const storeOrigin = isGlobalStoreRoot(hippoRoot)
34
41
  ? ''
35
42
  : deriveOriginProject(path.dirname(hippoRoot));
36
43
  db.prepare(`UPDATE memories SET origin_project = ? WHERE origin_project IS NULL`).run(storeOrigin);
37
44
  }
38
- // Rollback-safety guard: a pre-isolation binary would ignore origin_project and the secret veto and resume injecting cross-project rows.
45
+ // Rollback-safety guard: a pre-isolation binary would ignore origin_project and the secret veto and resume
46
+ // injecting cross-project rows.
39
47
  // 1.24.0 is the first version with isolation; forward-only, never lower an existing minimum.
40
48
  raiseMinBinary(db, '1.24.0');
41
49
  },
@@ -48,8 +48,10 @@ const RECALL_TRACES_SCHEMA_SQL = `
48
48
  export const v40 = {
49
49
  version: 40,
50
50
  up: (db) => {
51
- // Retrieval-trace persistence: one trace row per recall, a WITHOUT ROWID results table, append-only outcomes (audit_log pruning must not erase them).
52
- // No min_compatible_binary bump on purpose: old binaries ignore these tables and recordTraceOutcome re-validates trace ids; a bump would lock them out.
51
+ // Retrieval-trace persistence: one trace row per recall, a WITHOUT ROWID results table, append-only outcomes
52
+ // (audit_log pruning must not erase them).
53
+ // No min_compatible_binary bump on purpose: old binaries ignore these tables and recordTraceOutcome re-validates
54
+ // trace ids; a bump would lock them out.
53
55
  db.exec(RECALL_TRACES_SCHEMA_SQL);
54
56
  },
55
57
  };
@@ -1,8 +1,10 @@
1
1
  export const v41 = {
2
2
  version: 41,
3
3
  up: (db) => {
4
- // Rejected-value tombstone: upsertEntryRow refuses writes matching a row's digest. No raw content stored (may be secret); no FK: it outlives its row.
5
- // No min_compatible_binary bump, a deliberate tradeoff: an old binary writes without the guard until upgraded (see MEMORY_ENVELOPE.md).
4
+ // Rejected-value tombstone: upsertEntryRow refuses writes matching a row's digest. No raw content stored (may be
5
+ // secret); no FK: it outlives its row.
6
+ // No min_compatible_binary bump, a deliberate tradeoff: an old binary writes without the guard until upgraded
7
+ // (see MEMORY_ENVELOPE.md).
6
8
  db.exec(`
7
9
  CREATE TABLE IF NOT EXISTS rejected_values (
8
10
  tenant_id TEXT NOT NULL,
@@ -34,7 +34,8 @@ export const v42 = {
34
34
  if (!tableHasColumn(db, 'session_handoffs', 'card_id')) {
35
35
  db.exec(`ALTER TABLE session_handoffs ADD COLUMN card_id TEXT`);
36
36
  }
37
- db.exec(`CREATE INDEX IF NOT EXISTS idx_session_handoffs_tenant_outcome ON session_handoffs(tenant_id, outcome, created_at DESC)`);
37
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_session_handoffs_tenant_outcome ` +
38
+ `ON session_handoffs(tenant_id, outcome, created_at DESC)`);
38
39
  },
39
40
  };
40
41
  //# sourceMappingURL=v42.js.map
@@ -1,8 +1,10 @@
1
1
  export const v44 = {
2
2
  version: 44,
3
3
  up: (db) => {
4
- // Dormant memories (src/store/dormant.ts): with `dormant.enabled`, sleep moves a faded memory here; `hippo dormant restore` writes entry_json back.
5
- // No FK to memories (the row is gone by design). Additive only: no min_compatible_binary bump, an older binary ignores the table and keeps deleting.
4
+ // Dormant memories (src/store/dormant.ts): with `dormant.enabled`, sleep moves a faded memory here; `hippo
5
+ // dormant restore` writes entry_json back.
6
+ // No FK to memories (the row is gone by design). Additive only: no min_compatible_binary bump, an older binary
7
+ // ignores the table and keeps deleting.
6
8
  db.exec(`
7
9
  CREATE TABLE IF NOT EXISTS dormant_memories (
8
10
  tenant_id TEXT NOT NULL DEFAULT 'default',
@@ -1,8 +1,10 @@
1
1
  export const v45 = {
2
2
  version: 45,
3
3
  up: (db) => {
4
- // Token ledger (src/store/token-ledger.ts): one row per block of memory text handed to an agent; `event` is inject, skip, reset (compaction) or reread.
5
- // block_hash lets the per-prompt hook skip an unchanged block; rows past retention are pruned on write. Additive: no min_compatible_binary bump.
4
+ // Token ledger (src/store/token-ledger.ts): one row per block of memory text handed to an agent; `event` is
5
+ // inject, skip, reset (compaction) or reread.
6
+ // block_hash lets the per-prompt hook skip an unchanged block; rows past retention are pruned on write. Additive:
7
+ // no min_compatible_binary bump.
6
8
  db.exec(`
7
9
  CREATE TABLE IF NOT EXISTS token_ledger (
8
10
  id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -1,7 +1,8 @@
1
1
  export const v49 = {
2
2
  version: 49,
3
3
  up: (db) => {
4
- // Compaction record (src/capture/compaction-record.ts): one row per Claude Code compaction, written before it (started)
4
+ // Compaction record (src/capture/compaction-record.ts): one row per Claude Code compaction, written before it
5
+ // (started)
5
6
  // and after it (summarised, done). Not a memory row. Additive only: no min_compatible_binary bump.
6
7
  db.exec(`
7
8
  CREATE TABLE IF NOT EXISTS compactions (
@@ -60,8 +60,10 @@ const DELIVERY_EVENTS_SCHEMA_SQL = `
60
60
  export const v50 = {
61
61
  version: 50,
62
62
  up: (db) => {
63
- // Per-turn delivery events (src/store/recall-trace.ts). Additive only: no min_compatible_binary bump; rollback drops both tables
64
- // and sets schema_version back to 49. No CHECK on enum columns since SQLite cannot alter one; delivery-recorder.ts unions are the allowlist.
63
+ // Per-turn delivery events (src/store/recall-trace.ts). Additive only: no min_compatible_binary bump; rollback
64
+ // drops both tables
65
+ // and sets schema_version back to 49. No CHECK on enum columns since SQLite cannot alter one;
66
+ // delivery-recorder.ts unions are the allowlist.
65
67
  db.exec(DELIVERY_EVENTS_SCHEMA_SQL);
66
68
  },
67
69
  };
@@ -1,8 +1,10 @@
1
1
  export const v51 = {
2
2
  version: 51,
3
3
  up: (db) => {
4
- // Both indexes serve loadAmbientCandidates (src/store/candidates.ts); their WHERE text must match its SQL for the planner to pick them.
5
- // The drift index stays empty on a healthy store, so the drift probe is one index seek instead of a tenant scan. Additive only.
4
+ // Both indexes serve loadAmbientCandidates (src/store/candidates.ts); their WHERE text must match its SQL for the
5
+ // planner to pick them.
6
+ // The drift index stays empty on a healthy store, so the drift probe is one index seek instead of a tenant scan.
7
+ // Additive only.
6
8
  db.exec(`
7
9
  CREATE INDEX IF NOT EXISTS idx_memories_pinned
8
10
  ON memories(tenant_id, created, id) WHERE pinned = 1;
@@ -1,7 +1,8 @@
1
1
  import { MEMORY_VECTORS_DDL } from '../vector-store.js';
2
2
  export const v52 = {
3
3
  version: 52,
4
- // Vectors move out of embeddings.json so hybrid search reads only the rows it ranks. Additive only; the JSON import runs after COMMIT.
4
+ // Vectors move out of embeddings.json so hybrid search reads only the rows it ranks. Additive only; the JSON import
5
+ // runs after COMMIT.
5
6
  up: (db) => db.exec(MEMORY_VECTORS_DDL),
6
7
  };
7
8
  //# sourceMappingURL=v52.js.map
@@ -2,14 +2,18 @@ import { tableHasColumn, tableExists } from '../tables.js';
2
2
  export const v53 = {
3
3
  version: 53,
4
4
  up: (db) => {
5
- // Self-service keys record who minted them and when they stop working; both stay null for keys minted before this.
6
- // No floor raise here: a store with no expiring key is safe for older binaries, so the first expiring key raises it.
5
+ // Self-service keys record who minted them and when they
6
+ // stop working; both stay null for keys minted before this.
7
+ // No floor raise here: a store with no expiring key is safe
8
+ // for older binaries, so the first expiring key raises it.
7
9
  if (tableExists(db, 'api_keys')) {
8
- if (!tableHasColumn(db, 'api_keys', 'owner_subject'))
10
+ if (!tableHasColumn(db, 'api_keys', 'owner_subject')) {
9
11
  db.exec(`ALTER TABLE api_keys ADD COLUMN owner_subject TEXT`);
12
+ }
10
13
  if (!tableHasColumn(db, 'api_keys', 'expires_at'))
11
14
  db.exec(`ALTER TABLE api_keys ADD COLUMN expires_at TEXT`);
12
- db.exec(`CREATE INDEX IF NOT EXISTS idx_api_keys_live_owner ON api_keys(tenant_id, owner_subject) WHERE revoked_at IS NULL`);
15
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_api_keys_live_owner ` +
16
+ `ON api_keys(tenant_id, owner_subject) WHERE revoked_at IS NULL`);
13
17
  }
14
18
  },
15
19
  };
@@ -14,7 +14,8 @@ export const v54 = {
14
14
  version: 54,
15
15
  up: (db) => {
16
16
  // Rows from before this stay NULL: no backfill, so they never match an owner's key.
17
- // No floor raise here: the first session bind or owner snapshot raises it, so an unused store stays open to older binaries.
17
+ // No floor raise here: the first session bind or owner snapshot raises it, so an unused store stays open to older
18
+ // binaries.
18
19
  for (const [t, c] of OWNER_COLUMNS) {
19
20
  if (tableExists(db, t) && !tableHasColumn(db, t, c))
20
21
  db.exec(`ALTER TABLE ${t} ADD COLUMN ${c} TEXT`);
@@ -5,10 +5,12 @@ export const v55 = {
5
5
  // No backfill and no floor raise: an older binary names its INSERT columns, so it still writes.
6
6
  if (!tableExists(db, 'delivery_events'))
7
7
  return;
8
- if (!tableHasColumn(db, 'delivery_events', 'tool_use_id'))
8
+ if (!tableHasColumn(db, 'delivery_events', 'tool_use_id')) {
9
9
  db.exec('ALTER TABLE delivery_events ADD COLUMN tool_use_id TEXT');
10
- if (!tableHasColumn(db, 'delivery_events', 'failure_id'))
10
+ }
11
+ if (!tableHasColumn(db, 'delivery_events', 'failure_id')) {
11
12
  db.exec('ALTER TABLE delivery_events ADD COLUMN failure_id INTEGER');
13
+ }
12
14
  db.exec(`CREATE UNIQUE INDEX IF NOT EXISTS idx_delivery_events_tool_call
13
15
  ON delivery_events(tenant_id, session_id, tool_use_id)
14
16
  WHERE tool_use_id IS NOT NULL AND turn_seq IS NOT NULL`);
@@ -0,0 +1,3 @@
1
+ import type { Migration } from './types.js';
2
+ export declare const v56: Migration;
3
+ //# sourceMappingURL=v56.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { tableExists } from '../tables.js';
2
+ const OBJECT_TABLES = [
3
+ 'decisions',
4
+ 'incidents',
5
+ 'processes',
6
+ 'policies',
7
+ 'skills',
8
+ 'project_briefs',
9
+ 'customer_notes',
10
+ ];
11
+ export const v56 = {
12
+ version: 56,
13
+ up: (db) => {
14
+ // The list order is part of the key, so a page by status reads in index order with no sort; the old (tenant_id,
15
+ // status) index stays.
16
+ for (const table of OBJECT_TABLES) {
17
+ if (!tableExists(db, table))
18
+ continue;
19
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_${table}_tenant_status_created ` +
20
+ `ON ${table}(tenant_id, status, created_at DESC, id DESC)`);
21
+ }
22
+ // Source leads so a tenant-only query cannot pick this over idx_memories_tenant_created and change the order of
23
+ // its unsorted rows;
24
+ // created and id let a per-source read come back in store order with no sort.
25
+ db.exec('CREATE INDEX IF NOT EXISTS idx_memories_source_tenant_created ON memories(source, tenant_id, created, id)');
26
+ },
27
+ };
28
+ //# sourceMappingURL=v56.js.map
package/dist/db/open.d.ts CHANGED
@@ -1,32 +1,42 @@
1
1
  import { type DatabaseSyncLike } from './sqlite.js';
2
2
  import { getHippoDbPath, type OpenedDb } from './connect.js';
3
3
  export { getHippoDbPath };
4
- /** Lock wait for hook commands: under the 5 s prompt-hook budget even after a few skipped writes, and far above a normal write's hold. */
4
+ /** Lock wait for hook commands: under the 5 s prompt-hook budget even after a few skipped writes, and far above a
5
+ * normal write's hold. */
5
6
  export declare const HOOK_DB_WAIT_MS = 1000;
6
- /** Lock wait inside an HTTP request: SQLite waits synchronously, so a long wait would stall every other request on the event loop. */
7
+ /** Lock wait inside an HTTP request: SQLite waits synchronously, so a long wait would stall every other request on
8
+ * the event loop. */
7
9
  export declare const SERVER_DB_WAIT_MS = 250;
8
10
  /** A busy store made a command skip work: warn once per process (the holder is usually `hippo sleep`). */
9
11
  export declare function noteStoreBusy(skipped: string): void;
10
- /** Runs `fn` with one handle per store: openHippoDb reuses it and closeHippoDb leaves it open until `fn` settles or the process exits.
12
+ /** Runs `fn` with one handle per store: openHippoDb reuses it and closeHippoDb leaves it open until `fn` settles or the
13
+ * process exits.
11
14
  * `busyWaitMs` is the lock wait of every open inside `fn` that does not pass its own. */
12
15
  export declare function withSharedStoreHandles<T>(fn: () => T | Promise<T>, opts?: {
13
16
  busyWaitMs?: number;
14
17
  }): Promise<T>;
15
- /** Lock wait for each of sleep's short write transactions, even inside a server request: a run stops only on a writer that holds the lock longer. */
18
+ /** Lock wait for each of sleep's short write transactions, even inside a server request: a run stops only on a
19
+ * writer that holds the lock longer. */
16
20
  export declare const SLEEP_DB_WAIT_MS = 5000;
17
- /** The lock wait an open here would get without its own `busyWaitMs`: the request scope's; undefined outside every scope. */
21
+ /** The lock wait an open here would get without its own `busyWaitMs`: the request scope's; undefined outside every
22
+ * scope. */
18
23
  export declare function scopedBusyWait(): number | undefined;
19
- /** Runs `fn` so that every hippo.db open inside it, across awaits, throws; otherwise a missed port would create and write a hippo.db nobody reads. */
24
+ /** Runs `fn` so that every hippo.db open inside it, across awaits, throws; otherwise a missed port would create and
25
+ * write a hippo.db nobody reads. */
20
26
  export declare function withSqliteBlocked<T>(storeKind: string, fn: () => T): T;
21
- /** Runs `fn` with hippo.db opens allowed again, for a store whose own methods are backed by hippo.db, or a copy that reads the old hippo.db. */
27
+ /** Runs `fn` with hippo.db opens allowed again, for a store whose own methods are backed by hippo.db, or a copy that
28
+ * reads the old hippo.db. */
22
29
  export declare function withSqliteAllowed<T>(fn: () => T): T;
23
- /** Runs `fn` so that a hippo.db open on this thread throws, across awaits; a block of another store, when one is open, already refuses and stays as it is. */
30
+ /** Runs `fn` so that a hippo.db open on this thread throws, across awaits; a block of another store, when one is
31
+ * open, already refuses and stays as it is. */
24
32
  export declare function withSqliteOffLoop<T>(fn: () => T): T;
25
- /** Leaves withSqliteOffLoop's block and nothing else: another store's block and the folder marker still refuse, which withSqliteAllowed would waive. */
33
+ /** Leaves withSqliteOffLoop's block and nothing else: another store's block and the folder marker still refuse,
34
+ * which withSqliteAllowed would waive. */
26
35
  export declare function outsideSqliteOffLoop<T>(fn: () => T): T;
27
36
  /** store init --db, store copy --db and serve --db write this file in the hippo root; its text is the store kind. */
28
37
  export declare const OTHER_STORE_MARKER = "other-store";
29
- /** Throws where hippo.db must not open; checked on every open, not cached, since the marker can appear while a process runs. */
38
+ /** Throws where hippo.db must not open; checked on every open, not cached, since the marker can appear while a
39
+ * process runs. */
30
40
  export declare function assertSqliteAllowed(hippoRoot: string): void;
31
41
  /** `busyWaitMs` shortens every lock wait of this open, for a hook that must finish inside its own timeout. */
32
42
  export declare function openHippoDb(hippoRoot: string, opts?: {
@@ -36,9 +46,11 @@ export declare function openHippoDb(hippoRoot: string, opts?: {
36
46
  export declare function openHippoDbWithFacts(hippoRoot: string, opts?: {
37
47
  busyWaitMs?: number;
38
48
  }): OpenedDb;
39
- /** Open an existing store without changing it: no mkdir, WAL switch, migration or mirror cleanup. Throws when hippo.db is missing. */
49
+ /** Open an existing store without changing it: no mkdir, WAL switch, migration or mirror cleanup. Throws when
50
+ * hippo.db is missing. */
40
51
  export declare function openHippoDbReadOnly(hippoRoot: string): DatabaseSyncLike;
41
- /** Runs `fn` on an existing hippo.db opened without migrations, for a repair of a store whose schema is behind; closes it after. */
52
+ /** Runs `fn` on an existing hippo.db opened without migrations, for a repair of a store whose schema is behind;
53
+ * closes it after. */
42
54
  export declare function withUnmigratedDb<T>(hippoRoot: string, readOnly: boolean, fn: (db: DatabaseSyncLike) => T): T;
43
55
  export declare function closeHippoDb(db: DatabaseSyncLike): void;
44
56
  //# sourceMappingURL=open.d.ts.map
package/dist/db/open.js CHANGED
@@ -10,43 +10,52 @@ import { connectWithFacts, getHippoDbPath } from './connect.js';
10
10
  import { currentRequestStores, isScopedHandle, runWithRequestStores } from './request-stores.js';
11
11
  import { OtherStoreFolderError, SqliteBlockedError } from '../util/sqlite-blocked.js';
12
12
  export { getHippoDbPath };
13
- /** Lock wait for hook commands: under the 5 s prompt-hook budget even after a few skipped writes, and far above a normal write's hold. */
13
+ /** Lock wait for hook commands: under the 5 s prompt-hook budget even after a few skipped writes, and far above a
14
+ * normal write's hold. */
14
15
  export const HOOK_DB_WAIT_MS = 1000;
15
- /** Lock wait inside an HTTP request: SQLite waits synchronously, so a long wait would stall every other request on the event loop. */
16
+ /** Lock wait inside an HTTP request: SQLite waits synchronously, so a long wait would stall every other request on
17
+ * the event loop. */
16
18
  export const SERVER_DB_WAIT_MS = 250;
17
19
  /** A busy store made a command skip work: warn once per process (the holder is usually `hippo sleep`). */
18
20
  export function noteStoreBusy(skipped) {
19
21
  log.once('store-busy', 'warn', `store busy (another hippo process holds the write lock); ${skipped}`);
20
22
  currentRequestStores()?.noteBusy();
21
23
  }
22
- /** Runs `fn` with one handle per store: openHippoDb reuses it and closeHippoDb leaves it open until `fn` settles or the process exits.
24
+ /** Runs `fn` with one handle per store: openHippoDb reuses it and closeHippoDb leaves it open until `fn` settles or the
25
+ * process exits.
23
26
  * `busyWaitMs` is the lock wait of every open inside `fn` that does not pass its own. */
24
27
  export async function withSharedStoreHandles(fn, opts) {
25
28
  return runWithRequestStores(fn, { busyWaitMs: opts?.busyWaitMs });
26
29
  }
27
- /** Lock wait for each of sleep's short write transactions, even inside a server request: a run stops only on a writer that holds the lock longer. */
30
+ /** Lock wait for each of sleep's short write transactions, even inside a server request: a run stops only on a
31
+ * writer that holds the lock longer. */
28
32
  export const SLEEP_DB_WAIT_MS = 5000;
29
- /** The lock wait an open here would get without its own `busyWaitMs`: the request scope's; undefined outside every scope. */
33
+ /** The lock wait an open here would get without its own `busyWaitMs`: the request scope's; undefined outside every
34
+ * scope. */
30
35
  export function scopedBusyWait() {
31
36
  return currentRequestStores()?.busyWaitMs;
32
37
  }
33
38
  const sqliteBlockedBy = new AsyncLocalStorage();
34
- /** Runs `fn` so that every hippo.db open inside it, across awaits, throws; otherwise a missed port would create and write a hippo.db nobody reads. */
39
+ /** Runs `fn` so that every hippo.db open inside it, across awaits, throws; otherwise a missed port would create and
40
+ * write a hippo.db nobody reads. */
35
41
  export function withSqliteBlocked(storeKind, fn) {
36
42
  return sqliteBlockedBy.run(storeKind, fn);
37
43
  }
38
- /** Runs `fn` with hippo.db opens allowed again, for a store whose own methods are backed by hippo.db, or a copy that reads the old hippo.db. */
44
+ /** Runs `fn` with hippo.db opens allowed again, for a store whose own methods are backed by hippo.db, or a copy that
45
+ * reads the old hippo.db. */
39
46
  export function withSqliteAllowed(fn) {
40
47
  return sqliteBlockedBy.exit(() => markerWaived.run(true, fn));
41
48
  }
42
49
  // Not a store kind: the block of a route whose SQLite work belongs on a worker thread, under the hippo.db store itself.
43
50
  const OFF_LOOP = 'sqlite (off the event loop)';
44
51
  const OFF_LOOP_MESSAGE = 'hippo.db was opened on the server thread by a route whose SQLite work runs on a worker thread';
45
- /** Runs `fn` so that a hippo.db open on this thread throws, across awaits; a block of another store, when one is open, already refuses and stays as it is. */
52
+ /** Runs `fn` so that a hippo.db open on this thread throws, across awaits; a block of another store, when one is
53
+ * open, already refuses and stays as it is. */
46
54
  export function withSqliteOffLoop(fn) {
47
55
  return sqliteBlockedBy.getStore() === undefined ? sqliteBlockedBy.run(OFF_LOOP, fn) : fn();
48
56
  }
49
- /** Leaves withSqliteOffLoop's block and nothing else: another store's block and the folder marker still refuse, which withSqliteAllowed would waive. */
57
+ /** Leaves withSqliteOffLoop's block and nothing else: another store's block and the folder marker still refuse,
58
+ * which withSqliteAllowed would waive. */
50
59
  export function outsideSqliteOffLoop(fn) {
51
60
  return sqliteBlockedBy.getStore() === OFF_LOOP ? sqliteBlockedBy.exit(fn) : fn();
52
61
  }
@@ -59,11 +68,12 @@ function markerKind(marker) {
59
68
  return readFileSync(marker, 'utf8').trim() || 'unknown';
60
69
  }
61
70
  catch (err) {
62
- log.debug(`${marker} is unreadable, so its store kind reads as unknown: ${errorMessage(err)}`);
71
+ log.warn(`${marker} is unreadable, so its store kind reads as unknown: ${errorMessage(err)}`, errorFields(err));
63
72
  return 'unknown';
64
73
  }
65
74
  }
66
- /** Throws where hippo.db must not open; checked on every open, not cached, since the marker can appear while a process runs. */
75
+ /** Throws where hippo.db must not open; checked on every open, not cached, since the marker can appear while a
76
+ * process runs. */
67
77
  export function assertSqliteAllowed(hippoRoot) {
68
78
  const storeKind = sqliteBlockedBy.getStore();
69
79
  if (storeKind === OFF_LOOP)
@@ -86,7 +96,8 @@ export function openHippoDbWithFacts(hippoRoot, opts) {
86
96
  const stores = currentRequestStores();
87
97
  return stores ? stores.getWithFacts(hippoRoot, opts) : connectWithFacts(hippoRoot, opts?.busyWaitMs);
88
98
  }
89
- /** Open an existing store without changing it: no mkdir, WAL switch, migration or mirror cleanup. Throws when hippo.db is missing. */
99
+ /** Open an existing store without changing it: no mkdir, WAL switch, migration or mirror cleanup. Throws when
100
+ * hippo.db is missing. */
90
101
  export function openHippoDbReadOnly(hippoRoot) {
91
102
  assertSqliteAllowed(hippoRoot);
92
103
  const db = new DatabaseSync(getHippoDbPath(hippoRoot), { readOnly: true });
@@ -106,7 +117,8 @@ export function openHippoDbReadOnly(hippoRoot) {
106
117
  throw error;
107
118
  }
108
119
  }
109
- /** Runs `fn` on an existing hippo.db opened without migrations, for a repair of a store whose schema is behind; closes it after. */
120
+ /** Runs `fn` on an existing hippo.db opened without migrations, for a repair of a store whose schema is behind;
121
+ * closes it after. */
110
122
  export function withUnmigratedDb(hippoRoot, readOnly, fn) {
111
123
  // Skips openHippoDb, so it takes the same refusal itself.
112
124
  assertSqliteAllowed(hippoRoot);
@@ -1,4 +1,7 @@
1
- /** Physics state persistence: particle state (position, velocity, mass, charge, temperature) in SQLite, with BLOB columns for 384-dim vectors. */
1
+ /**
2
+ * Physics state persistence: particle state (position, velocity, mass, charge, temperature) in SQLite, with BLOB
3
+ * columns for 384-dim vectors.
4
+ */
2
5
  import type { DatabaseSyncLike } from './index.js';
3
6
  import type { MemoryEntry } from '../core/memory.js';
4
7
  import type { PhysicsParticle } from '../core/physics.js';
@@ -12,8 +15,9 @@ export declare function loadPhysicsState(db: DatabaseSyncLike, memoryIds?: strin
12
15
  * Save physics state for multiple particles (batch upsert).
13
16
  */
14
17
  export declare function savePhysicsState(db: DatabaseSyncLike, particles: PhysicsParticle[]): void;
15
- /** Drops every particle, then seeds one per entry that has an embedding; `entries` may be read lazily, as each batch is written before the next is read. */
18
+ /**
19
+ * Drops every particle, then seeds one per entry that has an embedding; `entries` may be read lazily, as each batch is
20
+ * written before the next is read.
21
+ */
16
22
  export declare function resetAllPhysicsState(db: DatabaseSyncLike, entries: Iterable<MemoryEntry>, embeddingIndex: Record<string, number[]>, now?: Date): number;
17
- /** Refresh mass, charge and temperature for existing particles from current memory attributes (called during consolidation). */
18
- export declare function refreshParticleProperties(particles: PhysicsParticle[], entries: Map<string, MemoryEntry>, now?: Date): void;
19
23
  //# sourceMappingURL=physics-state.d.ts.map
@@ -1,9 +1,10 @@
1
- /** Physics state persistence: particle state (position, velocity, mass, charge, temperature) in SQLite, with BLOB columns for 384-dim vectors. */
2
- import { evalNow, strengthAblation } from '../core/ablation.js';
1
+ /**
2
+ * Physics state persistence: particle state (position, velocity, mass, charge, temperature) in SQLite, with BLOB
3
+ * columns for 384-dim vectors.
4
+ */
5
+ import { evalNow } from '../core/ablation.js';
3
6
  import { withWriteScope } from './busy.js';
4
- import { computeMass, computeCharge, computeTemperature, initializeParticle } from '../core/physics.js';
5
- import { calculateStrength } from '../core/memory.js';
6
- import { DAY_MS } from '../util/time.js';
7
+ import { initializeParticle } from '../core/physics.js';
7
8
  import { placeholders } from '../util/sql.js';
8
9
  import { bufferToFloat32, float32ToBuffer } from '../util/vector-codec.js';
9
10
  // Schema migration
@@ -68,7 +69,9 @@ export function savePhysicsState(db, particles) {
68
69
  if (particles.length === 0)
69
70
  return;
70
71
  const stmt = db.prepare(`
71
- INSERT INTO memory_physics (memory_id, position_blob, velocity_blob, mass, charge, temperature, last_simulation, updated_at)
72
+ INSERT INTO memory_physics (
73
+ memory_id, position_blob, velocity_blob, mass, charge, temperature, last_simulation, updated_at
74
+ )
72
75
  VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'))
73
76
  ON CONFLICT(memory_id) DO UPDATE SET
74
77
  position_blob = excluded.position_blob,
@@ -86,7 +89,10 @@ export function savePhysicsState(db, particles) {
86
89
  });
87
90
  }
88
91
  const RESET_BATCH = 64;
89
- /** Drops every particle, then seeds one per entry that has an embedding; `entries` may be read lazily, as each batch is written before the next is read. */
92
+ /**
93
+ * Drops every particle, then seeds one per entry that has an embedding; `entries` may be read lazily, as each batch is
94
+ * written before the next is read.
95
+ */
90
96
  export function resetAllPhysicsState(db, entries, embeddingIndex, now = evalNow()) {
91
97
  db.exec('DELETE FROM memory_physics');
92
98
  // One transaction for every batch, so a failure part way leaves no particles rather than some.
@@ -109,17 +115,4 @@ export function resetAllPhysicsState(db, entries, embeddingIndex, now = evalNow(
109
115
  return count;
110
116
  });
111
117
  }
112
- /** Refresh mass, charge and temperature for existing particles from current memory attributes (called during consolidation). */
113
- export function refreshParticleProperties(particles, entries, now = evalNow()) {
114
- for (const p of particles) {
115
- const entry = entries.get(p.memoryId);
116
- if (!entry)
117
- continue;
118
- const strength = calculateStrength(entry, now, { ablation: strengthAblation() });
119
- const ageDays = (now.getTime() - new Date(entry.created).getTime()) / DAY_MS;
120
- p.mass = computeMass(strength, entry.retrieval_count);
121
- p.charge = computeCharge(entry.emotional_valence);
122
- p.temperature = computeTemperature(ageDays, 1.0);
123
- }
124
- }
125
118
  //# sourceMappingURL=physics-state.js.map
@@ -1,5 +1,7 @@
1
1
  import type { DatabaseSyncLike } from './index.js';
2
- /** Path A backfill cleanup: delete markdown mirrors (<hippoRoot>/<layer>/<id>.md) of rows archived before redaction, so RTBF holds for historical archives.
3
- * Tracked by raw_archive.mirror_cleaned_at: set only on success, so a failed unlink retries next connection. Returns whether all pending rows were cleaned. */
2
+ /** Path A backfill cleanup: delete markdown mirrors (<hippoRoot>/<layer>/<id>.md) of rows archived before redaction, so
3
+ * RTBF holds for historical archives.
4
+ * Tracked by raw_archive.mirror_cleaned_at: set only on success, so a failed unlink retries next connection. Returns
5
+ * whether all pending rows were cleaned. */
4
6
  export declare function cleanupArchivedMirrors(hippoRoot: string, db: DatabaseSyncLike): boolean;
5
7
  //# sourceMappingURL=raw-archive-mirror-cleanup.d.ts.map
@@ -1,10 +1,12 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
- import { errorMessage, log } from '../util/log.js';
3
+ import { errorMessage, log, errorFields } from '../util/log.js';
4
4
  const LAYERS = ['episodic', 'buffer', 'semantic'];
5
5
  const MAX_WARN_LOGS = 5;
6
- /** Path A backfill cleanup: delete markdown mirrors (<hippoRoot>/<layer>/<id>.md) of rows archived before redaction, so RTBF holds for historical archives.
7
- * Tracked by raw_archive.mirror_cleaned_at: set only on success, so a failed unlink retries next connection. Returns whether all pending rows were cleaned. */
6
+ /** Path A backfill cleanup: delete markdown mirrors (<hippoRoot>/<layer>/<id>.md) of rows archived before redaction, so
7
+ * RTBF holds for historical archives.
8
+ * Tracked by raw_archive.mirror_cleaned_at: set only on success, so a failed unlink retries next connection. Returns
9
+ * whether all pending rows were cleaned. */
8
10
  export function cleanupArchivedMirrors(hippoRoot, db) {
9
11
  // SAFETY: the SELECT above names exactly one column, memory_id (raw_archive.memory_id
10
12
  // is NOT NULL TEXT), so the row shape matches this assertion.
@@ -29,7 +31,7 @@ export function cleanupArchivedMirrors(hippoRoot, db) {
29
31
  catch (err) {
30
32
  allOk = false;
31
33
  if (warnCount < MAX_WARN_LOGS) {
32
- log.warn(`cleanupArchivedMirrors: unlink failed for ${filePath} (will retry on next DB open): ${errorMessage(err)}`);
34
+ log.warn(`cleanupArchivedMirrors: unlink failed for ${filePath} (will retry on next DB open): ${errorMessage(err)}`, errorFields(err));
33
35
  warnCount += 1;
34
36
  }
35
37
  }
@@ -4,9 +4,15 @@ import { type RequestScope } from '../util/request-scope.js';
4
4
  export interface RequestStoresOptions {
5
5
  /** Lock wait of every open in the scope that does not pass its own. */
6
6
  readonly busyWaitMs?: number;
7
- /** Set for hook scopes: after one lock wait runs out, {@link RequestStores.noteBusy} makes the scope's later writes skip at once. */
7
+ /**
8
+ * Set for hook scopes: after one lock wait runs out, {@link RequestStores.noteBusy} makes the scope's later writes
9
+ * skip at once.
10
+ */
8
11
  readonly failFastWhenBusy?: boolean;
9
- /** The store whose open-time setup another connection has already run, so an open in this scope skips it: a store worker's reader, which cannot write it. */
12
+ /**
13
+ * The store whose open-time setup another connection has already run, so an open in this scope skips it: a store
14
+ * worker's reader, which cannot write it.
15
+ */
10
16
  readonly setupDoneFor?: string;
11
17
  }
12
18
  /** The handles one request opened, keyed by resolved store path and lock wait. */
@@ -31,13 +37,21 @@ export declare class RequestStores implements RequestScope {
31
37
  noteBusy(): void;
32
38
  close(): void;
33
39
  }
34
- /** Runs `fn` in a request scope whose handles close when `fn` settles; inside an open scope `fn` joins it and `opts` is ignored. */
40
+ /**
41
+ * Runs `fn` in a request scope whose handles close when `fn` settles; inside an open scope `fn` joins it and `opts` is
42
+ * ignored.
43
+ */
35
44
  export declare function runWithRequestStores<T>(fn: () => T | Promise<T>, opts?: RequestStoresOptions): Promise<T>;
36
- /** runWithRequestStores for a synchronous `fn`, so a batch called from outside any request still opens each store once. */
45
+ /**
46
+ * runWithRequestStores for a synchronous `fn`, so a batch called from outside any request still opens each store once.
47
+ */
37
48
  export declare function withRequestStoresSync<T>(fn: () => T): T;
38
49
  /** The scope this code runs in, if any. A closed scope still answers: its `get` falls through to a plain open. */
39
50
  export declare function currentRequestStores(): RequestStores | undefined;
40
- /** Runs `fn` outside every store scope, for a connection that must outlive the request that happens to open it; its log lines keep the request's id. */
51
+ /**
52
+ * Runs `fn` outside every store scope, for a connection that must outlive the request that happens to open it; its log
53
+ * lines keep the request's id.
54
+ */
41
55
  export declare function outsideRequestStores<T>(fn: () => T): T;
42
56
  /** Whether a scope owns `db` and will close it itself. */
43
57
  export declare function isScopedHandle(db: DatabaseSyncLike): boolean;