hippo-memory 1.69.0 → 1.71.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 (1014) hide show
  1. package/README.md +5 -2
  2. package/dist/agent-memories/apply.d.ts +3 -3
  3. package/dist/agent-memories/apply.js +16 -31
  4. package/dist/agent-memories/claude-code.d.ts +5 -5
  5. package/dist/agent-memories/claude-code.js +25 -12
  6. package/dist/agent-memories/copilot.js +3 -2
  7. package/dist/agent-memories/files.js +26 -14
  8. package/dist/agent-memories/gemini.js +6 -5
  9. package/dist/agent-memories/keys.js +3 -2
  10. package/dist/agent-memories/legacy.d.ts +2 -2
  11. package/dist/agent-memories/legacy.js +2 -2
  12. package/dist/agent-memories/markdown.d.ts +1 -3
  13. package/dist/agent-memories/markdown.js +1 -3
  14. package/dist/agent-memories/report.d.ts +1 -1
  15. package/dist/agent-memories/report.js +3 -2
  16. package/dist/agent-memories/source.d.ts +1 -1
  17. package/dist/agent-memories/source.js +6 -5
  18. package/dist/agent-memories/sync.d.ts +5 -3
  19. package/dist/agent-memories/sync.js +34 -38
  20. package/dist/agent-memories/types.d.ts +1 -1
  21. package/dist/api/assemble.d.ts +9 -46
  22. package/dist/api/assemble.js +44 -54
  23. package/dist/api/audit.d.ts +8 -7
  24. package/dist/api/audit.js +15 -21
  25. package/dist/api/auth.d.ts +17 -39
  26. package/dist/api/auth.js +76 -216
  27. package/dist/api/auto-sleep.d.ts +13 -0
  28. package/dist/api/auto-sleep.js +32 -0
  29. package/dist/{availability.d.ts → api/availability.d.ts} +4 -17
  30. package/dist/{availability.js → api/availability.js} +14 -44
  31. package/dist/{context-auto.js → api/context-auto.js} +2 -1
  32. package/dist/{context-render.d.ts → api/context-render.d.ts} +4 -4
  33. package/dist/{context-render.js → api/context-render.js} +7 -6
  34. package/dist/api/context-select.d.ts +5 -5
  35. package/dist/api/context-select.js +39 -48
  36. package/dist/api/context-types.d.ts +15 -40
  37. package/dist/api/context.d.ts +7 -26
  38. package/dist/api/context.js +67 -97
  39. package/dist/api/dormant.d.ts +7 -23
  40. package/dist/api/dormant.js +40 -128
  41. package/dist/api/drill-down.d.ts +9 -48
  42. package/dist/api/drill-down.js +41 -90
  43. package/dist/api/forget.d.ts +5 -33
  44. package/dist/api/forget.js +17 -73
  45. package/dist/api/goals.d.ts +1 -1
  46. package/dist/api/goals.js +2 -2
  47. package/dist/api/graph.d.ts +8 -0
  48. package/dist/api/graph.js +7 -0
  49. package/dist/api/index.d.ts +28 -0
  50. package/dist/api/index.js +31 -0
  51. package/dist/api/instruction-detect.js +85 -0
  52. package/dist/api/learn.js +63 -55
  53. package/dist/api/ledger-db.d.ts +21 -0
  54. package/dist/api/ledger-db.js +81 -0
  55. package/dist/api/memories.d.ts +5 -0
  56. package/dist/api/memories.js +7 -0
  57. package/dist/api/objects.d.ts +9 -0
  58. package/dist/api/objects.js +11 -0
  59. package/dist/api/on-store.d.ts +16 -0
  60. package/dist/api/on-store.js +38 -0
  61. package/dist/api/outcome.d.ts +5 -42
  62. package/dist/api/outcome.js +15 -80
  63. package/dist/{pilot-arm.d.ts → api/pilot-arm.d.ts} +1 -1
  64. package/dist/{pilot-arm.js → api/pilot-arm.js} +15 -23
  65. package/dist/api/predictions.d.ts +9 -0
  66. package/dist/api/predictions.js +18 -0
  67. package/dist/api/promote.d.ts +16 -31
  68. package/dist/api/promote.js +38 -123
  69. package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +11 -11
  70. package/dist/{prompt-hook.js → api/prompt-hook.js} +42 -60
  71. package/dist/api/quarantine.d.ts +5 -5
  72. package/dist/api/quarantine.js +30 -106
  73. package/dist/api/recall-cli.d.ts +55 -0
  74. package/dist/api/recall-cli.js +94 -0
  75. package/dist/api/recall-core.d.ts +4 -0
  76. package/dist/api/recall-core.js +120 -0
  77. package/dist/api/recall-finish.d.ts +53 -0
  78. package/dist/api/recall-finish.js +30 -0
  79. package/dist/api/recall-history.d.ts +64 -0
  80. package/dist/api/recall-history.js +159 -0
  81. package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +7 -8
  82. package/dist/{recall-pipeline.js → api/recall-pipeline.js} +60 -48
  83. package/dist/api/recall-record.d.ts +10 -13
  84. package/dist/api/recall-record.js +10 -30
  85. package/dist/api/recall-request.d.ts +2 -2
  86. package/dist/api/recall-request.js +3 -3
  87. package/dist/api/recall-types.d.ts +101 -316
  88. package/dist/api/recall.d.ts +5 -33
  89. package/dist/api/recall.js +92 -91
  90. package/dist/api/refine.d.ts +7 -0
  91. package/dist/api/refine.js +10 -0
  92. package/dist/api/remember-local.d.ts +57 -0
  93. package/dist/api/remember-local.js +90 -0
  94. package/dist/api/remember.d.ts +27 -12
  95. package/dist/api/remember.js +42 -46
  96. package/dist/api/session-owners.d.ts +4 -0
  97. package/dist/api/session-owners.js +17 -0
  98. package/dist/api/sleep-run.d.ts +7 -9
  99. package/dist/api/sleep-run.js +78 -94
  100. package/dist/api/sleep.d.ts +10 -29
  101. package/dist/api/tokens.d.ts +5 -12
  102. package/dist/api/tokens.js +12 -31
  103. package/dist/api/types.d.ts +8 -31
  104. package/dist/api/types.js +5 -23
  105. package/dist/capture/caller-session.d.ts +2 -2
  106. package/dist/capture/caller-session.js +8 -8
  107. package/dist/{capture-error.d.ts → capture/capture-error.d.ts} +2 -2
  108. package/dist/{capture-error.js → capture/capture-error.js} +7 -7
  109. package/dist/{codex-patch.js → capture/codex-patch.js} +1 -1
  110. package/dist/capture/command.d.ts +5 -13
  111. package/dist/capture/command.js +57 -60
  112. package/dist/capture/compact-resume-caller.d.ts +1 -1
  113. package/dist/capture/compact-resume-caller.js +7 -7
  114. package/dist/capture/compact.d.ts +8 -16
  115. package/dist/capture/compact.js +56 -47
  116. package/dist/capture/compaction-items-caller.d.ts +1 -1
  117. package/dist/capture/compaction-items-caller.js +7 -5
  118. package/dist/{compaction-items.js → capture/compaction-items.js} +27 -3
  119. package/dist/{compaction-record.d.ts → capture/compaction-record.d.ts} +10 -6
  120. package/dist/{compaction-record.js → capture/compaction-record.js} +143 -157
  121. package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +1 -1
  122. package/dist/{compaction-spool.js → capture/compaction-spool.js} +18 -14
  123. package/dist/capture/copilot-transcript.js +1 -1
  124. package/dist/capture/extract.js +2 -2
  125. package/dist/capture/failure-caller.d.ts +2 -2
  126. package/dist/capture/failure-caller.js +6 -6
  127. package/dist/capture/failure-reading.d.ts +2 -5
  128. package/dist/capture/failure-reading.js +11 -12
  129. package/dist/{handoff-evidence.d.ts → capture/handoff-evidence.d.ts} +1 -1
  130. package/dist/{handoff-evidence.js → capture/handoff-evidence.js} +2 -1
  131. package/dist/capture/pre-compact-caller.d.ts +1 -1
  132. package/dist/capture/pre-compact-caller.js +2 -2
  133. package/dist/{session-digest.d.ts → capture/session-digest.d.ts} +2 -6
  134. package/dist/{session-digest.js → capture/session-digest.js} +29 -29
  135. package/dist/capture/session-end-caller.d.ts +2 -2
  136. package/dist/capture/session-end-caller.js +1 -1
  137. package/dist/capture/session-texts.d.ts +1 -1
  138. package/dist/capture/session-texts.js +5 -5
  139. package/dist/capture/session-worker.js +6 -4
  140. package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
  141. package/dist/capture/transcript.d.ts +2 -10
  142. package/dist/capture/transcript.js +72 -92
  143. package/dist/capture/working-state.d.ts +0 -3
  144. package/dist/capture/working-state.js +7 -7
  145. package/dist/cli/api-context.d.ts +3 -0
  146. package/dist/cli/api-context.js +6 -0
  147. package/dist/cli/audit-prune.d.ts +28 -0
  148. package/dist/cli/audit-prune.js +40 -0
  149. package/dist/cli/audit.d.ts +2 -2
  150. package/dist/cli/audit.js +92 -88
  151. package/dist/cli/auth.d.ts +2 -1
  152. package/dist/cli/auth.js +69 -53
  153. package/dist/cli/briefs.d.ts +4 -3
  154. package/dist/cli/briefs.js +76 -202
  155. package/dist/cli/card.d.ts +2 -1
  156. package/dist/cli/card.js +55 -54
  157. package/dist/cli/client.d.ts +28 -0
  158. package/dist/{client.js → cli/client.js} +25 -44
  159. package/dist/cli/compact-resume-payload.d.ts +8 -0
  160. package/dist/cli/compact-resume-payload.js +40 -0
  161. package/dist/cli/context.d.ts +1 -13
  162. package/dist/cli/context.js +51 -77
  163. package/dist/cli/continuity.d.ts +6 -5
  164. package/dist/cli/continuity.js +153 -145
  165. package/dist/cli/correction-latency.d.ts +24 -0
  166. package/dist/{correction-latency.js → cli/correction-latency.js} +2 -14
  167. package/dist/cli/curate.d.ts +13 -17
  168. package/dist/cli/curate.js +226 -222
  169. package/dist/cli/dag.d.ts +4 -4
  170. package/dist/cli/dag.js +70 -52
  171. package/dist/cli/decisions.d.ts +4 -3
  172. package/dist/cli/decisions.js +129 -253
  173. package/dist/cli/eval.d.ts +1 -3
  174. package/dist/cli/eval.js +56 -42
  175. package/dist/cli/exit.d.ts +6 -0
  176. package/dist/cli/exit.js +11 -0
  177. package/dist/cli/explain.d.ts +1 -2
  178. package/dist/cli/explain.js +39 -21
  179. package/dist/cli/flag-values.d.ts +30 -0
  180. package/dist/cli/flag-values.js +120 -0
  181. package/dist/cli/flags.d.ts +304 -0
  182. package/dist/cli/flags.js +169 -0
  183. package/dist/cli/github.d.ts +14 -0
  184. package/dist/cli/github.js +184 -0
  185. package/dist/cli/goals.d.ts +2 -1
  186. package/dist/cli/goals.js +76 -75
  187. package/dist/cli/hook-runtime.d.ts +31 -0
  188. package/dist/cli/hook-runtime.js +139 -0
  189. package/dist/cli/init.d.ts +2 -1
  190. package/dist/cli/init.js +153 -126
  191. package/dist/cli/install-steps.d.ts +7 -0
  192. package/dist/cli/install-steps.js +101 -0
  193. package/dist/cli/last-sleep.d.ts +3 -1
  194. package/dist/cli/last-sleep.js +12 -7
  195. package/dist/cli/maintenance.d.ts +5 -4
  196. package/dist/cli/maintenance.js +41 -42
  197. package/dist/cli/object-verbs.d.ts +40 -0
  198. package/dist/cli/object-verbs.js +66 -0
  199. package/dist/cli/owner-validation.d.ts +18 -0
  200. package/dist/cli/owner-validation.js +33 -0
  201. package/dist/cli/playbooks.d.ts +4 -3
  202. package/dist/cli/playbooks.js +98 -306
  203. package/dist/cli/print.d.ts +15 -0
  204. package/dist/cli/print.js +82 -0
  205. package/dist/cli/projects.d.ts +2 -3
  206. package/dist/cli/projects.js +56 -51
  207. package/dist/cli/provenance-coverage.d.ts +14 -0
  208. package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +2 -6
  209. package/dist/cli/quality-repair-once.js +4 -4
  210. package/dist/cli/recall.d.ts +2 -6
  211. package/dist/cli/recall.js +128 -253
  212. package/dist/cli/refine-llm.d.ts +35 -0
  213. package/dist/cli/refine-llm.js +128 -0
  214. package/dist/cli/remember.d.ts +4 -6
  215. package/dist/cli/remember.js +193 -230
  216. package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +4 -17
  217. package/dist/{scheduler.js → cli/scheduler.js} +22 -22
  218. package/dist/cli/serve.d.ts +1 -1
  219. package/dist/cli/serve.js +46 -7
  220. package/dist/cli/session-hooks.d.ts +11 -19
  221. package/dist/cli/session-hooks.js +263 -258
  222. package/dist/cli/setup.d.ts +4 -3
  223. package/dist/cli/setup.js +55 -37
  224. package/dist/cli/shared.d.ts +14 -118
  225. package/dist/cli/shared.js +26 -400
  226. package/dist/cli/slack.d.ts +2 -1
  227. package/dist/cli/slack.js +46 -74
  228. package/dist/cli/sleep-render.d.ts +4 -0
  229. package/dist/cli/sleep-render.js +61 -0
  230. package/dist/cli/sleep.d.ts +3 -8
  231. package/dist/cli/sleep.js +34 -91
  232. package/dist/cli/status.d.ts +9 -12
  233. package/dist/cli/status.js +86 -131
  234. package/dist/{stdin.d.ts → cli/stdin.d.ts} +4 -6
  235. package/dist/{stdin.js → cli/stdin.js} +8 -9
  236. package/dist/cli/transfer.d.ts +9 -9
  237. package/dist/cli/transfer.js +125 -122
  238. package/dist/cli/usage.js +13 -5
  239. package/dist/cli.d.ts +69 -167
  240. package/dist/cli.js +187 -296
  241. package/dist/connectors/dlq.d.ts +44 -0
  242. package/dist/connectors/dlq.js +30 -0
  243. package/dist/connectors/github/backfill.d.ts +6 -26
  244. package/dist/connectors/github/backfill.js +42 -114
  245. package/dist/connectors/github/deletion.d.ts +6 -21
  246. package/dist/connectors/github/deletion.js +17 -64
  247. package/dist/connectors/github/dlq.d.ts +12 -91
  248. package/dist/connectors/github/dlq.js +23 -140
  249. package/dist/connectors/github/ingest.d.ts +4 -37
  250. package/dist/connectors/github/ingest.js +24 -93
  251. package/dist/connectors/github/octokit-client.d.ts +5 -17
  252. package/dist/connectors/github/octokit-client.js +29 -25
  253. package/dist/connectors/github/ratelimit.d.ts +3 -14
  254. package/dist/connectors/github/ratelimit.js +3 -14
  255. package/dist/connectors/github/scope.d.ts +3 -5
  256. package/dist/connectors/github/scope.js +3 -5
  257. package/dist/connectors/github/signature.d.ts +4 -26
  258. package/dist/connectors/github/signature.js +4 -26
  259. package/dist/connectors/github/tenant-routing.d.ts +4 -26
  260. package/dist/connectors/github/tenant-routing.js +13 -61
  261. package/dist/connectors/github/transform.d.ts +1 -1
  262. package/dist/connectors/github/transform.js +2 -16
  263. package/dist/connectors/github/types.d.ts +4 -16
  264. package/dist/connectors/github/types.js +17 -27
  265. package/dist/connectors/github/webhook.d.ts +5 -18
  266. package/dist/connectors/github/webhook.js +86 -105
  267. package/dist/connectors/slack/backfill.d.ts +5 -18
  268. package/dist/connectors/slack/backfill.js +9 -42
  269. package/dist/connectors/slack/deletion.d.ts +4 -7
  270. package/dist/connectors/slack/deletion.js +20 -49
  271. package/dist/connectors/slack/dlq.d.ts +9 -68
  272. package/dist/connectors/slack/dlq.js +26 -136
  273. package/dist/connectors/slack/ingest.d.ts +4 -18
  274. package/dist/connectors/slack/ingest.js +26 -91
  275. package/dist/connectors/slack/scope.d.ts +2 -8
  276. package/dist/connectors/slack/scope.js +2 -8
  277. package/dist/connectors/slack/signature.d.ts +1 -6
  278. package/dist/connectors/slack/signature.js +2 -1
  279. package/dist/connectors/slack/tenant-routing.d.ts +4 -18
  280. package/dist/connectors/slack/tenant-routing.js +11 -31
  281. package/dist/connectors/slack/transform.d.ts +3 -19
  282. package/dist/connectors/slack/transform.js +2 -18
  283. package/dist/connectors/slack/types.d.ts +4 -10
  284. package/dist/connectors/slack/types.js +5 -16
  285. package/dist/connectors/slack/web-client.js +34 -28
  286. package/dist/connectors/slack/webhook.d.ts +5 -21
  287. package/dist/connectors/slack/webhook.js +80 -108
  288. package/dist/connectors/slack/workspaces.d.ts +8 -41
  289. package/dist/connectors/slack/workspaces.js +8 -58
  290. package/dist/consolidate/conflicts.d.ts +1 -1
  291. package/dist/consolidate/conflicts.js +10 -18
  292. package/dist/consolidate/dag-summary.d.ts +8 -0
  293. package/dist/consolidate/dag-summary.js +41 -0
  294. package/dist/{dag.d.ts → consolidate/dag.d.ts} +6 -29
  295. package/dist/{dag.js → consolidate/dag.js} +49 -131
  296. package/dist/consolidate/decay.d.ts +2 -2
  297. package/dist/consolidate/decay.js +35 -41
  298. package/dist/consolidate/dedupe.d.ts +29 -0
  299. package/dist/consolidate/dedupe.js +103 -0
  300. package/dist/consolidate/flush-units.d.ts +5 -6
  301. package/dist/consolidate/flush-units.js +3 -3
  302. package/dist/consolidate/half-life-migration.d.ts +34 -0
  303. package/dist/consolidate/half-life-migration.js +89 -0
  304. package/dist/consolidate/llm-passes.js +12 -29
  305. package/dist/consolidate/memory-value-weights.d.ts +8 -0
  306. package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +2 -13
  307. package/dist/consolidate/memory-value.d.ts +45 -0
  308. package/dist/consolidate/memory-value.js +164 -0
  309. package/dist/consolidate/merge.js +65 -83
  310. package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
  311. package/dist/{merged-row.js → consolidate/merged-row.js} +4 -3
  312. package/dist/consolidate/physics-pass.js +46 -48
  313. package/dist/consolidate/replay.d.ts +9 -0
  314. package/dist/consolidate/replay.js +84 -0
  315. package/dist/consolidate/run.d.ts +7 -13
  316. package/dist/consolidate/run.js +6 -37
  317. package/dist/consolidate/sleep.d.ts +2 -9
  318. package/dist/consolidate/sleep.js +69 -151
  319. package/dist/consolidate/trace.d.ts +19 -0
  320. package/dist/{trace.js → consolidate/trace.js} +7 -24
  321. package/dist/consolidate/traces.js +40 -51
  322. package/dist/core/ablation.d.ts +15 -0
  323. package/dist/core/ablation.js +49 -0
  324. package/dist/{agent-memories/tools.d.ts → core/agent-memory-tools.d.ts} +1 -1
  325. package/dist/{agent-memories/tools.js → core/agent-memory-tools.js} +1 -1
  326. package/dist/{ambient.d.ts → core/ambient.d.ts} +1 -8
  327. package/dist/{ambient.js → core/ambient.js} +13 -18
  328. package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
  329. package/dist/{capture-contract.js → core/capture-contract.js} +67 -1
  330. package/dist/{card.d.ts → core/card.d.ts} +4 -1
  331. package/dist/{card.js → core/card.js} +8 -0
  332. package/dist/core/compare.d.ts +32 -0
  333. package/dist/core/compare.js +70 -0
  334. package/dist/{config.d.ts → core/config.d.ts} +14 -28
  335. package/dist/{config.js → core/config.js} +101 -75
  336. package/dist/{handoff.d.ts → core/handoff.d.ts} +1 -7
  337. package/dist/core/handoff.js +81 -0
  338. package/dist/{memory-quality.js → core/memory-quality.js} +2 -2
  339. package/dist/core/memory.d.ts +183 -0
  340. package/dist/core/memory.js +380 -0
  341. package/dist/core/package-root.d.ts +3 -0
  342. package/dist/core/package-root.js +5 -0
  343. package/dist/{physics-config.d.ts → core/physics-config.d.ts} +1 -4
  344. package/dist/{physics-config.js → core/physics-config.js} +3 -8
  345. package/dist/{physics.d.ts → core/physics.d.ts} +16 -62
  346. package/dist/{physics.js → core/physics.js} +60 -122
  347. package/dist/{project-identity.d.ts → core/project-identity.d.ts} +17 -63
  348. package/dist/{project-identity.js → core/project-identity.js} +22 -55
  349. package/dist/{project-remote.js → core/project-remote.js} +17 -6
  350. package/dist/{prompt-recall.js → core/prompt-recall.js} +1 -1
  351. package/dist/core/raw-append-only.d.ts +5 -0
  352. package/dist/core/raw-append-only.js +7 -0
  353. package/dist/{salience.d.ts → core/salience.d.ts} +1 -7
  354. package/dist/{salience.js → core/salience.js} +36 -27
  355. package/dist/{search/types.d.ts → core/search-types.d.ts} +2 -2
  356. package/dist/{search/types.js → core/search-types.js} +1 -1
  357. package/dist/core/session-digest-row.d.ts +5 -0
  358. package/dist/core/session-digest-row.js +6 -0
  359. package/dist/{dashboard-actions.d.ts → dashboard/dashboard-actions.d.ts} +1 -1
  360. package/dist/{dashboard-actions.js → dashboard/dashboard-actions.js} +7 -7
  361. package/dist/{dashboard-queries.d.ts → dashboard/dashboard-queries.d.ts} +7 -2
  362. package/dist/{dashboard-queries.js → dashboard/dashboard-queries.js} +6 -10
  363. package/dist/{dashboard-snapshot.d.ts → dashboard/dashboard-snapshot.d.ts} +11 -10
  364. package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +110 -104
  365. package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +2 -1
  366. package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +1 -0
  367. package/dist/{dashboard.js → dashboard/dashboard.js} +172 -55
  368. package/dist/db/backup.js +1 -1
  369. package/dist/db/busy.d.ts +19 -2
  370. package/dist/db/busy.js +88 -14
  371. package/dist/db/connect.d.ts +11 -2
  372. package/dist/db/connect.js +43 -10
  373. package/dist/db/index.d.ts +9 -0
  374. package/dist/db/index.js +8 -0
  375. package/dist/db/meta.d.ts +4 -0
  376. package/dist/db/meta.js +11 -1
  377. package/dist/db/migrate.d.ts +8 -1
  378. package/dist/db/migrate.js +28 -33
  379. package/dist/db/migrations/types.d.ts +2 -5
  380. package/dist/db/migrations/v08.js +1 -1
  381. package/dist/db/migrations/v14.js +39 -36
  382. package/dist/db/migrations/v15.js +2 -8
  383. package/dist/db/migrations/v16.js +31 -29
  384. package/dist/db/migrations/v17.js +2 -3
  385. package/dist/db/migrations/v18.js +6 -5
  386. package/dist/db/migrations/v19.js +2 -5
  387. package/dist/db/migrations/v20.js +5 -8
  388. package/dist/db/migrations/v22.js +28 -38
  389. package/dist/db/migrations/v23.js +3 -14
  390. package/dist/db/migrations/v24.js +25 -22
  391. package/dist/db/migrations/v25.js +3 -8
  392. package/dist/db/migrations/v26.js +2 -13
  393. package/dist/db/migrations/v27.js +3 -11
  394. package/dist/db/migrations/v28.js +2 -14
  395. package/dist/db/migrations/v29.js +23 -32
  396. package/dist/db/migrations/v30.js +4 -16
  397. package/dist/db/migrations/v31.js +23 -31
  398. package/dist/db/migrations/v32.js +4 -22
  399. package/dist/db/migrations/v33.js +2 -15
  400. package/dist/db/migrations/v34.js +2 -11
  401. package/dist/db/migrations/v35.js +2 -11
  402. package/dist/db/migrations/v36.js +2 -11
  403. package/dist/db/migrations/v37.js +8 -33
  404. package/dist/db/migrations/v38.js +5 -38
  405. package/dist/db/migrations/v39.js +10 -21
  406. package/dist/db/migrations/v40.js +8 -14
  407. package/dist/db/migrations/v41.js +2 -24
  408. package/dist/db/migrations/v43.js +7 -6
  409. package/dist/db/migrations/v44.js +2 -8
  410. package/dist/db/migrations/v45.js +2 -7
  411. package/dist/db/migrations/v46.js +1 -1
  412. package/dist/db/migrations/v47.js +2 -3
  413. package/dist/db/migrations/v48.js +1 -1
  414. package/dist/db/migrations/v49.js +1 -1
  415. package/dist/db/migrations/v50.js +8 -7
  416. package/dist/db/migrations/v51.js +1 -1
  417. package/dist/db/migrations/v52.js +1 -1
  418. package/dist/db/open.d.ts +11 -1
  419. package/dist/db/open.js +37 -4
  420. package/dist/db/physics-state.d.ts +23 -0
  421. package/dist/{physics-state.js → db/physics-state.js} +34 -52
  422. package/dist/db/raw-archive-mirror-cleanup.d.ts +5 -0
  423. package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +10 -20
  424. package/dist/db/request-stores.d.ts +15 -2
  425. package/dist/db/request-stores.js +37 -15
  426. package/dist/db/tables.d.ts +2 -0
  427. package/dist/db/tables.js +6 -0
  428. package/dist/{vector-store.d.ts → db/vector-store.d.ts} +6 -2
  429. package/dist/{vector-store.js → db/vector-store.js} +83 -51
  430. package/dist/db/wal-checkpointer.d.ts +11 -0
  431. package/dist/db/wal-checkpointer.js +92 -0
  432. package/dist/doctor.js +176 -152
  433. package/dist/entry/json-hooks.d.ts +1 -1
  434. package/dist/entry/json-hooks.js +1 -1
  435. package/dist/entry/project-identity.d.ts +1 -1
  436. package/dist/entry/project-identity.js +1 -1
  437. package/dist/entry/session-text.d.ts +3 -3
  438. package/dist/entry/session-text.js +5 -4
  439. package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +15 -53
  440. package/dist/{eval-stats.js → eval/eval-stats.js} +24 -51
  441. package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +3 -14
  442. package/dist/{eval-suite.js → eval/eval-suite.js} +99 -57
  443. package/dist/{eval.d.ts → eval/eval.d.ts} +7 -25
  444. package/dist/{eval.js → eval/eval.js} +35 -55
  445. package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -6
  446. package/dist/{judgment.js → eval/judgment.js} +23 -20
  447. package/dist/extensions/openclaw-plugin/index.js +2 -3
  448. package/dist/graph/delta.d.ts +3 -2
  449. package/dist/graph/delta.js +9 -23
  450. package/dist/{graph-extract.d.ts → graph/extract.d.ts} +10 -32
  451. package/dist/{graph-extract.js → graph/extract.js} +40 -81
  452. package/dist/{graph-recall.d.ts → graph/recall.d.ts} +9 -22
  453. package/dist/{graph-recall.js → graph/recall.js} +65 -108
  454. package/dist/graph/stream.d.ts +38 -0
  455. package/dist/{graph-stream.js → graph/stream.js} +20 -41
  456. package/dist/graph/view.d.ts +50 -0
  457. package/dist/graph/view.js +265 -0
  458. package/dist/graph/write.d.ts +4 -76
  459. package/dist/graph/write.js +13 -397
  460. package/dist/hooks/codex-session.js +1 -1
  461. package/dist/hooks/codex-wrapper.js +16 -17
  462. package/dist/hooks/copilot.d.ts +1 -8
  463. package/dist/hooks/copilot.js +16 -16
  464. package/dist/{cli → hooks}/hook-blocks.d.ts +6 -2
  465. package/dist/{cli → hooks}/hook-blocks.js +38 -125
  466. package/dist/hooks/json-hooks.d.ts +5 -37
  467. package/dist/hooks/json-hooks.js +49 -179
  468. package/dist/hooks/opencode.d.ts +0 -38
  469. package/dist/hooks/opencode.js +44 -103
  470. package/dist/hooks/shared.d.ts +8 -21
  471. package/dist/hooks/shared.js +30 -25
  472. package/dist/importers/core.d.ts +13 -42
  473. package/dist/importers/core.js +48 -64
  474. package/dist/importers/markdown-parse.d.ts +9 -32
  475. package/dist/importers/markdown-parse.js +10 -44
  476. package/dist/importers/markdown.js +5 -13
  477. package/dist/importers/sources.js +57 -81
  478. package/dist/importers/vault.d.ts +2 -8
  479. package/dist/importers/vault.js +95 -172
  480. package/dist/index.d.ts +26 -22
  481. package/dist/index.js +25 -21
  482. package/dist/learn/autolearn.d.ts +29 -0
  483. package/dist/{autolearn.js → learn/autolearn.js} +26 -51
  484. package/dist/{churn-git.d.ts → learn/churn-git.d.ts} +1 -1
  485. package/dist/{churn-git.js → learn/churn-git.js} +6 -4
  486. package/dist/{extract.d.ts → learn/extract.d.ts} +1 -1
  487. package/dist/learn/extract.js +123 -0
  488. package/dist/learn/forward-claim-detector.d.ts +12 -0
  489. package/dist/learn/forward-claim-detector.js +60 -0
  490. package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +10 -18
  491. package/dist/{invalidation.js → learn/invalidation.js} +92 -125
  492. package/dist/mcp/admin-tools.d.ts +1 -1
  493. package/dist/mcp/admin-tools.js +39 -64
  494. package/dist/mcp/format.d.ts +5 -5
  495. package/dist/mcp/format.js +7 -6
  496. package/dist/mcp/framing.d.ts +6 -0
  497. package/dist/mcp/framing.js +11 -3
  498. package/dist/mcp/memory-tools.js +10 -35
  499. package/dist/mcp/protocol.d.ts +14 -36
  500. package/dist/mcp/protocol.js +10 -19
  501. package/dist/mcp/recall-tools.d.ts +2 -2
  502. package/dist/mcp/recall-tools.js +70 -52
  503. package/dist/mcp/request.d.ts +3 -11
  504. package/dist/mcp/request.js +71 -85
  505. package/dist/mcp/server.d.ts +3 -9
  506. package/dist/mcp/server.js +6 -17
  507. package/dist/mcp/session-state.d.ts +2 -3
  508. package/dist/mcp/session-state.js +7 -13
  509. package/dist/mcp/shared-gate.js +1 -1
  510. package/dist/mcp/stdio.d.ts +2 -6
  511. package/dist/mcp/stdio.js +112 -38
  512. package/dist/mcp/tool-args.js +2 -1
  513. package/dist/mcp/tools.js +7 -5
  514. package/dist/objects/customer-notes.d.ts +44 -0
  515. package/dist/objects/customer-notes.js +71 -0
  516. package/dist/objects/decisions.d.ts +41 -0
  517. package/dist/objects/decisions.js +63 -0
  518. package/dist/objects/descriptor.d.ts +52 -0
  519. package/dist/objects/descriptor.js +4 -0
  520. package/dist/objects/fields.d.ts +15 -0
  521. package/dist/objects/fields.js +21 -0
  522. package/dist/objects/incidents.d.ts +45 -0
  523. package/dist/objects/incidents.js +96 -0
  524. package/dist/objects/lifecycle.d.ts +27 -0
  525. package/dist/objects/lifecycle.js +96 -0
  526. package/dist/objects/policies.d.ts +60 -0
  527. package/dist/objects/policies.js +102 -0
  528. package/dist/objects/processes.d.ts +43 -0
  529. package/dist/objects/processes.js +92 -0
  530. package/dist/objects/project-briefs.d.ts +63 -0
  531. package/dist/objects/project-briefs.js +194 -0
  532. package/dist/objects/skills.d.ts +51 -0
  533. package/dist/objects/skills.js +110 -0
  534. package/dist/postinstall.js +10 -21
  535. package/dist/predictions/planning-fallacy.d.ts +14 -109
  536. package/dist/predictions/planning-fallacy.js +4 -129
  537. package/dist/rerankers/clef.d.ts +2 -6
  538. package/dist/rerankers/clef.js +28 -76
  539. package/dist/rerankers/cross-encoder.d.ts +0 -7
  540. package/dist/rerankers/cross-encoder.js +18 -28
  541. package/dist/rerankers/index.js +8 -7
  542. package/dist/rerankers/jev.d.ts +1 -4
  543. package/dist/rerankers/jev.js +36 -52
  544. package/dist/rerankers/llm.d.ts +2 -13
  545. package/dist/rerankers/llm.js +42 -59
  546. package/dist/rerankers/outage-warning.d.ts +8 -0
  547. package/dist/rerankers/outage-warning.js +32 -0
  548. package/dist/rerankers/remote.d.ts +4 -0
  549. package/dist/rerankers/remote.js +25 -0
  550. package/dist/rerankers/types.d.ts +3 -15
  551. package/dist/search/as-of.d.ts +1 -1
  552. package/dist/search/bm25-search.d.ts +2 -2
  553. package/dist/search/bm25-search.js +7 -7
  554. package/dist/search/bm25.d.ts +1 -1
  555. package/dist/search/bm25.js +1 -1
  556. package/dist/search/boosts.d.ts +5 -3
  557. package/dist/search/boosts.js +36 -15
  558. package/dist/search/breakdown.d.ts +2 -2
  559. package/dist/search/breakdown.js +2 -1
  560. package/dist/search/explain.d.ts +1 -1
  561. package/dist/search/explain.js +3 -2
  562. package/dist/search/finalize.d.ts +2 -2
  563. package/dist/search/finalize.js +4 -3
  564. package/dist/search/fusion.d.ts +1 -1
  565. package/dist/search/fusion.js +3 -3
  566. package/dist/search/goal-boost.d.ts +23 -0
  567. package/dist/search/goal-boost.js +90 -0
  568. package/dist/search/hybrid-score.d.ts +2 -2
  569. package/dist/search/hybrid-score.js +1 -1
  570. package/dist/search/hybrid.d.ts +6 -4
  571. package/dist/search/hybrid.js +11 -8
  572. package/dist/{multihop.d.ts → search/multihop.d.ts} +2 -2
  573. package/dist/{multihop.js → search/multihop.js} +9 -8
  574. package/dist/search/path-context.d.ts +11 -0
  575. package/dist/{path-context.js → search/path-context.js} +8 -19
  576. package/dist/search/physics-search.d.ts +4 -4
  577. package/dist/search/physics-search.js +25 -22
  578. package/dist/search/rerank.d.ts +3 -3
  579. package/dist/search/rerank.js +4 -3
  580. package/dist/search/rrf.d.ts +15 -0
  581. package/dist/search/rrf.js +36 -0
  582. package/dist/search/temporal.d.ts +1 -1
  583. package/dist/search/temporal.js +5 -2
  584. package/dist/search/vector.d.ts +10 -3
  585. package/dist/search/vector.js +51 -15
  586. package/dist/server/auth.d.ts +10 -29
  587. package/dist/server/auth.js +57 -42
  588. package/dist/server/boot.d.ts +5 -0
  589. package/dist/server/boot.js +432 -0
  590. package/dist/server/client-ip.d.ts +8 -20
  591. package/dist/server/client-ip.js +23 -34
  592. package/dist/server/cursor.d.ts +1 -1
  593. package/dist/server/cursor.js +2 -3
  594. package/dist/server/deadline.d.ts +13 -0
  595. package/dist/server/deadline.js +45 -0
  596. package/dist/server/defaults.d.ts +3 -0
  597. package/dist/server/defaults.js +4 -0
  598. package/dist/server/key-check-bounds.d.ts +9 -0
  599. package/dist/server/key-check-bounds.js +46 -0
  600. package/dist/server/lifecycle.d.ts +5 -4
  601. package/dist/server/lifecycle.js +20 -5
  602. package/dist/server/mcp-http.d.ts +1 -4
  603. package/dist/server/mcp-http.js +44 -68
  604. package/dist/server/rate-limit.d.ts +21 -0
  605. package/dist/{rate-limit.js → server/rate-limit.js} +4 -13
  606. package/dist/server/ready.d.ts +7 -0
  607. package/dist/server/ready.js +38 -0
  608. package/dist/server/request.d.ts +14 -12
  609. package/dist/server/request.js +71 -28
  610. package/dist/server/route-table.d.ts +15 -0
  611. package/dist/server/route-table.js +202 -0
  612. package/dist/server/routes/admin.js +29 -30
  613. package/dist/server/routes/customer-notes.d.ts +5 -5
  614. package/dist/server/routes/customer-notes.js +35 -105
  615. package/dist/server/routes/decisions.d.ts +5 -5
  616. package/dist/server/routes/decisions.js +45 -115
  617. package/dist/server/routes/incidents.d.ts +5 -5
  618. package/dist/server/routes/incidents.js +44 -105
  619. package/dist/server/routes/memories.js +21 -43
  620. package/dist/server/routes/object-routes.d.ts +35 -0
  621. package/dist/server/routes/object-routes.js +72 -0
  622. package/dist/server/routes/policies.d.ts +6 -6
  623. package/dist/server/routes/policies.js +42 -134
  624. package/dist/server/routes/predictions.js +35 -63
  625. package/dist/server/routes/processes.d.ts +5 -5
  626. package/dist/server/routes/processes.js +44 -134
  627. package/dist/server/routes/project-briefs.d.ts +6 -6
  628. package/dist/server/routes/project-briefs.js +41 -120
  629. package/dist/server/routes/recall.js +21 -44
  630. package/dist/server/routes/skills.d.ts +6 -6
  631. package/dist/server/routes/skills.js +40 -138
  632. package/dist/server/server-detect.d.ts +28 -0
  633. package/dist/server/server-detect.js +156 -0
  634. package/dist/server/sleep-child.d.ts +2 -0
  635. package/dist/server/sleep-child.js +19 -0
  636. package/dist/server/sleep-offload.d.ts +20 -0
  637. package/dist/server/sleep-offload.js +73 -0
  638. package/dist/server/tls.d.ts +6 -0
  639. package/dist/server/tls.js +24 -0
  640. package/dist/server/types.d.ts +35 -14
  641. package/dist/server/validation.d.ts +6 -5
  642. package/dist/server/validation.js +16 -34
  643. package/dist/server.d.ts +39 -61
  644. package/dist/server.js +26 -569
  645. package/dist/sharing/global-store.d.ts +19 -0
  646. package/dist/sharing/global-store.js +75 -0
  647. package/dist/sharing/global-sync.d.ts +6 -0
  648. package/dist/sharing/global-sync.js +80 -0
  649. package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +5 -6
  650. package/dist/{project-merge.js → sharing/project-merge.js} +34 -51
  651. package/dist/sharing/scope.d.ts +7 -0
  652. package/dist/{scope.js → sharing/scope.js} +5 -12
  653. package/dist/sharing/search-both.d.ts +60 -0
  654. package/dist/sharing/search-both.js +138 -0
  655. package/dist/sharing/share.d.ts +38 -0
  656. package/dist/sharing/share.js +226 -0
  657. package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
  658. package/dist/{ambient-store.js → store/ambient.js} +11 -16
  659. package/dist/store/audit-event.d.ts +15 -17
  660. package/dist/store/audit-event.js +9 -16
  661. package/dist/{audit.d.ts → store/audit.d.ts} +29 -8
  662. package/dist/{audit.js → store/audit.js} +95 -18
  663. package/dist/{auth.d.ts → store/auth.d.ts} +19 -36
  664. package/dist/{auth.js → store/auth.js} +108 -99
  665. package/dist/store/candidates.d.ts +41 -13
  666. package/dist/store/candidates.js +141 -60
  667. package/dist/{card-detail.d.ts → store/card-detail.d.ts} +5 -4
  668. package/dist/{card-detail.js → store/card-detail.js} +3 -2
  669. package/dist/{store-cards.d.ts → store/cards.d.ts} +26 -16
  670. package/dist/{store-cards.js → store/cards.js} +133 -248
  671. package/dist/store/compactions.d.ts +78 -0
  672. package/dist/store/compactions.js +93 -0
  673. package/dist/store/conflicts.d.ts +26 -26
  674. package/dist/store/conflicts.js +194 -222
  675. package/dist/store/connectors/github.d.ts +84 -0
  676. package/dist/store/connectors/github.js +180 -0
  677. package/dist/store/connectors/slack.d.ts +69 -0
  678. package/dist/store/connectors/slack.js +177 -0
  679. package/dist/store/dashboard-reads.d.ts +27 -0
  680. package/dist/store/dashboard-reads.js +88 -0
  681. package/dist/store/delete-and-batch.d.ts +27 -51
  682. package/dist/store/delete-and-batch.js +100 -92
  683. package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +16 -5
  684. package/dist/{delivery-recorder.js → store/delivery-recorder.js} +60 -38
  685. package/dist/store/descendant-page.d.ts +12 -0
  686. package/dist/store/descendant-page.js +99 -0
  687. package/dist/store/diagnostics.d.ts +47 -0
  688. package/dist/store/diagnostics.js +44 -0
  689. package/dist/store/doctor-reads.d.ts +16 -0
  690. package/dist/store/doctor-reads.js +19 -0
  691. package/dist/store/dormant.d.ts +105 -0
  692. package/dist/store/dormant.js +241 -0
  693. package/dist/store/embeddings/index.d.ts +36 -0
  694. package/dist/{embeddings.js → store/embeddings/index.js} +104 -224
  695. package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
  696. package/dist/{local-embedding.js → store/embeddings/local.js} +69 -75
  697. package/dist/store/embeddings/provider.d.ts +40 -0
  698. package/dist/{embedding-provider.js → store/embeddings/provider.js} +78 -91
  699. package/dist/store/entry-reads.d.ts +66 -63
  700. package/dist/store/entry-reads.js +159 -121
  701. package/dist/store/entry-row.d.ts +14 -37
  702. package/dist/store/entry-row.js +37 -45
  703. package/dist/store/entry-writes.d.ts +40 -17
  704. package/dist/store/entry-writes.js +105 -41
  705. package/dist/{failure-log.d.ts → store/failure-log.d.ts} +7 -2
  706. package/dist/{failure-log.js → store/failure-log.js} +9 -2
  707. package/dist/store/goals.d.ts +96 -0
  708. package/dist/store/goals.js +260 -0
  709. package/dist/store/graph-queue.d.ts +13 -0
  710. package/dist/store/graph-queue.js +70 -0
  711. package/dist/store/graph-reads.d.ts +41 -0
  712. package/dist/{graph/read.js → store/graph-reads.js} +72 -162
  713. package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +71 -14
  714. package/dist/{graph/rows.js → store/graph-rows.js} +20 -12
  715. package/dist/store/graph-view-rows.d.ts +13 -0
  716. package/dist/store/graph-view-rows.js +68 -0
  717. package/dist/store/graph-writes.d.ts +33 -0
  718. package/dist/store/graph-writes.js +232 -0
  719. package/dist/store/half-life.d.ts +35 -0
  720. package/dist/store/half-life.js +75 -0
  721. package/dist/store/handoffs.d.ts +6 -12
  722. package/dist/store/handoffs.js +54 -63
  723. package/dist/store/index-and-stats.d.ts +14 -20
  724. package/dist/store/index-and-stats.js +74 -119
  725. package/dist/store/index.d.ts +4 -0
  726. package/dist/store/index.js +3 -0
  727. package/dist/store/key-audit.d.ts +2 -2
  728. package/dist/store/key-audit.js +4 -4
  729. package/dist/store/key-writes.d.ts +12 -5
  730. package/dist/store/key-writes.js +30 -4
  731. package/dist/store/ledger-turn.d.ts +17 -0
  732. package/dist/store/ledger-turn.js +27 -0
  733. package/dist/store/markdown.d.ts +3 -7
  734. package/dist/store/markdown.js +25 -23
  735. package/dist/store/mirrors.d.ts +7 -13
  736. package/dist/store/mirrors.js +52 -47
  737. package/dist/store/object-types.d.ts +189 -0
  738. package/dist/store/object-types.js +4 -0
  739. package/dist/store/open.d.ts +6 -4
  740. package/dist/store/open.js +30 -36
  741. package/dist/store/planning-fallacy-evidence.d.ts +14 -0
  742. package/dist/store/planning-fallacy-evidence.js +52 -0
  743. package/dist/store/port.d.ts +649 -0
  744. package/dist/store/port.js +17 -0
  745. package/dist/{predictions/store.d.ts → store/predictions.d.ts} +25 -52
  746. package/dist/{predictions/store.js → store/predictions.js} +88 -184
  747. package/dist/{quality-repair.js → store/quality-repair.js} +27 -57
  748. package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
  749. package/dist/{quarantine.js → store/quarantine.js} +64 -22
  750. package/dist/store/raw-archive.d.ts +14 -0
  751. package/dist/{raw-archive.js → store/raw-archive.js} +20 -31
  752. package/dist/store/recall-scope.d.ts +78 -0
  753. package/dist/{recall-scope.js → store/recall-scope.js} +23 -84
  754. package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -81
  755. package/dist/{recall-trace.js → store/recall-trace.js} +41 -122
  756. package/dist/store/rejected-values.d.ts +55 -0
  757. package/dist/store/rejected-values.js +150 -0
  758. package/dist/store/rejection.d.ts +54 -0
  759. package/dist/{rejection.js → store/rejection.js} +16 -67
  760. package/dist/store/report-reads.d.ts +6 -0
  761. package/dist/store/report-reads.js +29 -0
  762. package/dist/store/rows.d.ts +11 -22
  763. package/dist/store/rows.js +52 -43
  764. package/dist/store/rule-sql.d.ts +5 -0
  765. package/dist/store/rule-sql.js +37 -0
  766. package/dist/store/search-rows.d.ts +22 -42
  767. package/dist/store/search-rows.js +55 -78
  768. package/dist/store/sessions.d.ts +23 -49
  769. package/dist/store/sessions.js +96 -118
  770. package/dist/store/sqlite/commit-watch.d.ts +4 -0
  771. package/dist/store/sqlite/commit-watch.js +29 -0
  772. package/dist/store/sqlite/connector-events-group.d.ts +5 -0
  773. package/dist/store/sqlite/connector-events-group.js +50 -0
  774. package/dist/store/sqlite/connector-writes-group.d.ts +6 -0
  775. package/dist/store/sqlite/connector-writes-group.js +65 -0
  776. package/dist/store/sqlite/dag-reads-group.d.ts +3 -0
  777. package/dist/store/sqlite/dag-reads-group.js +45 -0
  778. package/dist/store/sqlite/entry-writes-group.d.ts +18 -0
  779. package/dist/store/{entry-writes-group.js → sqlite/entry-writes-group.js} +73 -60
  780. package/dist/store/sqlite/error-codec.d.ts +17 -0
  781. package/dist/store/sqlite/error-codec.js +61 -0
  782. package/dist/store/sqlite/executor-counts.d.ts +10 -0
  783. package/dist/store/sqlite/executor-counts.js +11 -0
  784. package/dist/store/sqlite/executor.d.ts +29 -0
  785. package/dist/store/sqlite/executor.js +287 -0
  786. package/dist/store/sqlite/graph-reads-group.d.ts +5 -0
  787. package/dist/store/sqlite/graph-reads-group.js +18 -0
  788. package/dist/store/sqlite/local.d.ts +21 -0
  789. package/dist/store/sqlite/local.js +39 -0
  790. package/dist/store/sqlite/object-rows.d.ts +102 -0
  791. package/dist/store/sqlite/object-rows.js +221 -0
  792. package/dist/store/sqlite/objects-group.d.ts +20 -0
  793. package/dist/store/sqlite/objects-group.js +316 -0
  794. package/dist/store/sqlite/predictions-group.d.ts +5 -0
  795. package/dist/store/sqlite/predictions-group.js +28 -0
  796. package/dist/store/sqlite/quarantine-group.d.ts +5 -0
  797. package/dist/store/sqlite/quarantine-group.js +38 -0
  798. package/dist/store/sqlite/store.d.ts +23 -0
  799. package/dist/store/sqlite/store.js +294 -0
  800. package/dist/store/sqlite/vector-pack.d.ts +18 -0
  801. package/dist/store/sqlite/vector-pack.js +46 -0
  802. package/dist/store/sqlite/vector-reads-group.d.ts +3 -0
  803. package/dist/store/sqlite/vector-reads-group.js +23 -0
  804. package/dist/store/sqlite/worker-entry.d.ts +2 -0
  805. package/dist/store/sqlite/worker-entry.js +8 -0
  806. package/dist/store/sqlite/worker-jobs.d.ts +5 -0
  807. package/dist/store/sqlite/worker-jobs.js +116 -0
  808. package/dist/store/sqlite/worker-ops.d.ts +135 -0
  809. package/dist/store/sqlite/worker-ops.js +93 -0
  810. package/dist/store/sqlite/worker-store.d.ts +8 -0
  811. package/dist/store/sqlite/worker-store.js +79 -0
  812. package/dist/store/summaries.d.ts +11 -72
  813. package/dist/store/summaries.js +47 -186
  814. package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
  815. package/dist/{summary-dirty.js → store/summary-dirty.js} +1 -1
  816. package/dist/store/tenant-lookup.d.ts +6 -1
  817. package/dist/store/tenant-lookup.js +7 -0
  818. package/dist/store/tenant.d.ts +11 -0
  819. package/dist/store/tenant.js +28 -0
  820. package/dist/store/token-ledger-rows.d.ts +61 -0
  821. package/dist/store/token-ledger-rows.js +68 -0
  822. package/dist/{token-ledger.d.ts → store/token-ledger.d.ts} +14 -51
  823. package/dist/{token-ledger.js → store/token-ledger.js} +51 -129
  824. package/dist/store/tombstone-checks.d.ts +12 -0
  825. package/dist/store/tombstone-checks.js +31 -0
  826. package/dist/store/usage-reports.d.ts +7 -0
  827. package/dist/store/usage-reports.js +18 -0
  828. package/dist/store/vector-index.d.ts +46 -0
  829. package/dist/store/vector-index.js +170 -0
  830. package/dist/{working-memory.d.ts → store/working-memory.d.ts} +11 -26
  831. package/dist/store/working-memory.js +118 -0
  832. package/dist/{yaml.d.ts → store/yaml.d.ts} +1 -5
  833. package/dist/{yaml.js → store/yaml.js} +2 -6
  834. package/dist/support-bundle.d.ts +1 -1
  835. package/dist/support-bundle.js +19 -37
  836. package/dist/{gated-write.d.ts → trust/gated-write.d.ts} +2 -2
  837. package/dist/{gated-write.js → trust/gated-write.js} +6 -6
  838. package/dist/trust/quarantine.d.ts +4 -0
  839. package/dist/trust/quarantine.js +8 -0
  840. package/dist/trust/reject-flow.d.ts +23 -0
  841. package/dist/trust/reject-flow.js +65 -0
  842. package/dist/util/anthropic-messages.d.ts +31 -0
  843. package/dist/util/anthropic-messages.js +58 -0
  844. package/dist/util/atomic-write.d.ts +4 -0
  845. package/dist/util/atomic-write.js +138 -0
  846. package/dist/util/capped-json.d.ts +6 -0
  847. package/dist/util/capped-json.js +46 -0
  848. package/dist/util/crash-handlers.d.ts +12 -0
  849. package/dist/util/crash-handlers.js +72 -0
  850. package/dist/{env.d.ts → util/env.d.ts} +27 -7
  851. package/dist/{env.js → util/env.js} +33 -8
  852. package/dist/{home-path.d.ts → util/home-path.d.ts} +2 -1
  853. package/dist/util/home-path.js +69 -0
  854. package/dist/{http-retry.d.ts → util/http-retry.d.ts} +8 -2
  855. package/dist/util/http-retry.js +103 -0
  856. package/dist/{http-util.d.ts → util/http-util.d.ts} +14 -3
  857. package/dist/{http-util.js → util/http-util.js} +31 -11
  858. package/dist/util/json.d.ts +17 -0
  859. package/dist/util/json.js +25 -0
  860. package/dist/{log.d.ts → util/log.d.ts} +7 -3
  861. package/dist/{log.js → util/log.js} +36 -11
  862. package/dist/util/real-path.d.ts +3 -0
  863. package/dist/util/real-path.js +15 -0
  864. package/dist/util/request-scope.d.ts +28 -0
  865. package/dist/util/request-scope.js +48 -0
  866. package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
  867. package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +5 -30
  868. package/dist/{secret-detect.js → util/secret-detect.js} +17 -42
  869. package/dist/util/stored-json.d.ts +9 -0
  870. package/dist/util/stored-json.js +8 -0
  871. package/dist/util/time.d.ts +2 -0
  872. package/dist/util/time.js +3 -0
  873. package/dist/util/token-text.d.ts +15 -0
  874. package/dist/util/token-text.js +20 -0
  875. package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +2 -0
  876. package/dist/util/transcript-tail.js +49 -0
  877. package/dist/util/version.d.ts +11 -0
  878. package/dist/util/version.js +26 -0
  879. package/extensions/openclaw-plugin/index.ts +2 -6
  880. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  881. package/extensions/openclaw-plugin/package.json +1 -1
  882. package/openclaw.plugin.json +1 -1
  883. package/package.json +2 -2
  884. package/dist/ablation.d.ts +0 -102
  885. package/dist/ablation.js +0 -136
  886. package/dist/api.d.ts +0 -26
  887. package/dist/api.js +0 -29
  888. package/dist/audit-prune.d.ts +0 -62
  889. package/dist/audit-prune.js +0 -107
  890. package/dist/autolearn.d.ts +0 -56
  891. package/dist/client.d.ts +0 -48
  892. package/dist/compare.d.ts +0 -86
  893. package/dist/compare.js +0 -117
  894. package/dist/connectors/github/cli-impl.d.ts +0 -25
  895. package/dist/connectors/github/cli-impl.js +0 -227
  896. package/dist/connectors/github/idempotency.d.ts +0 -19
  897. package/dist/connectors/github/idempotency.js +0 -27
  898. package/dist/connectors/slack/idempotency.d.ts +0 -17
  899. package/dist/connectors/slack/idempotency.js +0 -31
  900. package/dist/correction-latency.d.ts +0 -36
  901. package/dist/customer-notes.d.ts +0 -96
  902. package/dist/customer-notes.js +0 -336
  903. package/dist/db.d.ts +0 -9
  904. package/dist/db.js +0 -8
  905. package/dist/decisions.d.ts +0 -94
  906. package/dist/decisions.js +0 -326
  907. package/dist/dedupe.d.ts +0 -75
  908. package/dist/dedupe.js +0 -169
  909. package/dist/dormant.d.ts +0 -93
  910. package/dist/dormant.js +0 -137
  911. package/dist/embedding-provider.d.ts +0 -77
  912. package/dist/embeddings.d.ts +0 -101
  913. package/dist/extract.js +0 -133
  914. package/dist/forward-claim-detector.d.ts +0 -36
  915. package/dist/forward-claim-detector.js +0 -112
  916. package/dist/goals.d.ts +0 -173
  917. package/dist/goals.js +0 -448
  918. package/dist/graph/read.d.ts +0 -73
  919. package/dist/graph/rows.d.ts +0 -45
  920. package/dist/graph/types.js +0 -11
  921. package/dist/graph-stream.d.ts +0 -70
  922. package/dist/graph-view.d.ts +0 -73
  923. package/dist/graph-view.js +0 -333
  924. package/dist/half-life-migration.d.ts +0 -63
  925. package/dist/half-life-migration.js +0 -182
  926. package/dist/handoff.js +0 -68
  927. package/dist/home-path.js +0 -24
  928. package/dist/http-retry.js +0 -51
  929. package/dist/incidents.d.ts +0 -103
  930. package/dist/incidents.js +0 -349
  931. package/dist/instruction-detect.js +0 -27
  932. package/dist/json.d.ts +0 -7
  933. package/dist/json.js +0 -11
  934. package/dist/ledger-db.d.ts +0 -10
  935. package/dist/ledger-db.js +0 -42
  936. package/dist/memory-value-weights.d.ts +0 -19
  937. package/dist/memory-value.d.ts +0 -113
  938. package/dist/memory-value.js +0 -250
  939. package/dist/memory.d.ts +0 -294
  940. package/dist/memory.js +0 -522
  941. package/dist/owner-validation.d.ts +0 -42
  942. package/dist/owner-validation.js +0 -56
  943. package/dist/path-context.d.ts +0 -24
  944. package/dist/physics-state.d.ts +0 -39
  945. package/dist/policies.d.ts +0 -151
  946. package/dist/policies.js +0 -434
  947. package/dist/processes.d.ts +0 -108
  948. package/dist/processes.js +0 -371
  949. package/dist/project-briefs.d.ts +0 -128
  950. package/dist/project-briefs.js +0 -523
  951. package/dist/provenance-coverage.d.ts +0 -18
  952. package/dist/rate-limit.d.ts +0 -34
  953. package/dist/raw-archive-mirror-cleanup.d.ts +0 -20
  954. package/dist/raw-archive.d.ts +0 -24
  955. package/dist/recall-history.d.ts +0 -131
  956. package/dist/recall-history.js +0 -227
  957. package/dist/recall-scope.d.ts +0 -138
  958. package/dist/refine-llm.d.ts +0 -61
  959. package/dist/refine-llm.js +0 -167
  960. package/dist/reject-flow.d.ts +0 -69
  961. package/dist/reject-flow.js +0 -260
  962. package/dist/rejection.d.ts +0 -100
  963. package/dist/replay.d.ts +0 -41
  964. package/dist/replay.js +0 -122
  965. package/dist/rrf.d.ts +0 -43
  966. package/dist/rrf.js +0 -61
  967. package/dist/scope.d.ts +0 -14
  968. package/dist/server-detect.d.ts +0 -72
  969. package/dist/server-detect.js +0 -222
  970. package/dist/session-owners.d.ts +0 -7
  971. package/dist/session-owners.js +0 -54
  972. package/dist/shared.d.ts +0 -186
  973. package/dist/shared.js +0 -540
  974. package/dist/skills.d.ts +0 -101
  975. package/dist/skills.js +0 -367
  976. package/dist/store/entry-writes-group.d.ts +0 -9
  977. package/dist/store/vector-writes.d.ts +0 -6
  978. package/dist/store/vector-writes.js +0 -59
  979. package/dist/store-port.d.ts +0 -262
  980. package/dist/store-port.js +0 -178
  981. package/dist/tenant.d.ts +0 -25
  982. package/dist/tenant.js +0 -43
  983. package/dist/trace.d.ts +0 -34
  984. package/dist/transcript-tail.js +0 -48
  985. package/dist/version.d.ts +0 -26
  986. package/dist/version.js +0 -41
  987. package/dist/working-memory.js +0 -154
  988. /package/dist/{context-auto.d.ts → api/context-auto.d.ts} +0 -0
  989. /package/dist/{instruction-detect.d.ts → api/instruction-detect.d.ts} +0 -0
  990. /package/dist/{codex-patch.d.ts → capture/codex-patch.d.ts} +0 -0
  991. /package/dist/{compaction-items.d.ts → capture/compaction-items.d.ts} +0 -0
  992. /package/dist/{share-scrub.d.ts → capture/share-scrub.d.ts} +0 -0
  993. /package/dist/{overlap-index.d.ts → consolidate/overlap-index.d.ts} +0 -0
  994. /package/dist/{overlap-index.js → consolidate/overlap-index.js} +0 -0
  995. /package/dist/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
  996. /package/dist/{api-errors.js → core/api-errors.js} +0 -0
  997. /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
  998. /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
  999. /package/dist/{prompt-recall.d.ts → core/prompt-recall.d.ts} +0 -0
  1000. /package/dist/{dashboard-params.d.ts → dashboard/dashboard-params.d.ts} +0 -0
  1001. /package/dist/{dashboard-params.js → dashboard/dashboard-params.js} +0 -0
  1002. /package/dist/{dashboard-types.js → dashboard/dashboard-types.js} +0 -0
  1003. /package/dist/{quality-repair.d.ts → store/quality-repair.d.ts} +0 -0
  1004. /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
  1005. /package/dist/{escape.js → util/escape.js} +0 -0
  1006. /package/dist/{keyset.d.ts → util/keyset.d.ts} +0 -0
  1007. /package/dist/{keyset.js → util/keyset.js} +0 -0
  1008. /package/dist/{same-text.js → util/same-text.js} +0 -0
  1009. /package/dist/{db → util}/sqlite-blocked.d.ts +0 -0
  1010. /package/dist/{db → util}/sqlite-blocked.js +0 -0
  1011. /package/dist/{tokenize.d.ts → util/tokenize.d.ts} +0 -0
  1012. /package/dist/{tokenize.js → util/tokenize.js} +0 -0
  1013. /package/dist/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
  1014. /package/dist/{write-budget.js → util/write-budget.js} +0 -0
@@ -0,0 +1,294 @@
1
+ // The built-in SQLite adapter behind the store port.
2
+ import { loadAmbientTallies } from '../ambient.js';
3
+ import { listApiKeyRows, readApiKeyRecord } from '../auth.js';
4
+ import { existsSync } from 'node:fs';
5
+ import { appendAuditEvent, listAuditEventsAfter, queryAuditEvents } from '../audit.js';
6
+ import { getHippoDbPath, withWriteScope } from '../../db/index.js';
7
+ import { activeGoalsWithPolicies, localGoalRecallRows, writeGoalRecallLog } from '../goals.js';
8
+ import { planningFallacyEvidenceAt } from '../planning-fallacy-evidence.js';
9
+ import { writeRecallTrace } from '../recall-trace.js';
10
+ import { recordTokenUse } from '../token-ledger.js';
11
+ import { loadAmbientCandidates, loadContextCandidates } from '../candidates.js';
12
+ import { loadEntriesByIds, loadFreshRawMemories } from '../entry-reads.js';
13
+ import { strengthenRetrievedInOwnTx } from '../entry-writes.js';
14
+ import { servedConnectorEvents, sqliteConnectorEvents } from './connector-events-group.js';
15
+ import { servedConnectorWrites, sqliteConnectorWrites } from './connector-writes-group.js';
16
+ import { sqliteDagReads } from './dag-reads-group.js';
17
+ import { sqliteEntryWrites } from './entry-writes-group.js';
18
+ import { servedGraphReads, sqliteGraphReads } from './graph-reads-group.js';
19
+ import { servedObjects, sqliteObjects } from './objects-group.js';
20
+ import { servedPredictions, sqlitePredictions } from './predictions-group.js';
21
+ import { servedQuarantine, sqliteQuarantine } from './quarantine-group.js';
22
+ import { sqliteVectorReads } from './vector-reads-group.js';
23
+ import { loadLatestHandoff } from '../handoffs.js';
24
+ import { updateStats } from '../index-and-stats.js';
25
+ import { auditHighIdAt, revokeKeyAt } from '../key-audit.js';
26
+ import { createKeyAt, createSelfKeyAt } from '../key-writes.js';
27
+ import { onHandle } from '../open.js';
28
+ import { loadRecallSearchEntries } from '../search-rows.js';
29
+ import { listSessionEvents, loadActiveTaskSnapshot } from '../sessions.js';
30
+ import { entriesWithoutVectorAt, loadStoredVectorViews, writeVectorsAt } from '../vector-index.js';
31
+ /** The store a request runs on: the served one, else hippo.db under its root, as the CLI and SDK callers have it. */
32
+ export function storeFor(ctx) {
33
+ return ctx.store ?? sqliteStore(ctx.hippoRoot);
34
+ }
35
+ /** The built-in store: hippo.db under the port's own method names, each call on its own short-lived handles, so close has nothing to release. */
36
+ export function sqliteSyncStore(hippoRoot) {
37
+ return {
38
+ kind: 'sqlite',
39
+ ...sqliteBaseReads(hippoRoot),
40
+ ...sqliteRecallWrites(hippoRoot),
41
+ keyAudit: sqliteKeyAudit(hippoRoot),
42
+ keyWrites: sqliteKeyWrites(hippoRoot),
43
+ vectorViews: sqliteVectorViews(hippoRoot),
44
+ vectorWrites: sqliteVectorWrites(hippoRoot),
45
+ entryWrites: sqliteEntryWrites(hippoRoot),
46
+ contextReads: sqliteContextReads(hippoRoot),
47
+ predictions: sqlitePredictions(hippoRoot),
48
+ dagReads: sqliteDagReads(hippoRoot),
49
+ auditLog: sqliteAuditLog(hippoRoot),
50
+ quarantine: sqliteQuarantine(hippoRoot),
51
+ graphReads: sqliteGraphReads(hippoRoot),
52
+ connectorWrites: sqliteConnectorWrites(hippoRoot),
53
+ connectorEvents: sqliteConnectorEvents(hippoRoot),
54
+ objects: sqliteObjects(hippoRoot),
55
+ readiness: sqliteReadiness(hippoRoot),
56
+ close() { },
57
+ };
58
+ }
59
+ function sqliteBaseReads(hippoRoot) {
60
+ return {
61
+ findApiKey(keyId) {
62
+ return onHandle(hippoRoot, (db) => readApiKeyRecord(db, keyId));
63
+ },
64
+ searchRecallEntries(query, args) {
65
+ return loadRecallSearchEntries(hippoRoot, query, args.limit, args.tenantId, args.requestedScope, args.explicitScopeMode, args.includeSuperseded, args.originProjects, args.ownScope);
66
+ },
67
+ entriesByIds(ids, tenantId) {
68
+ return loadEntriesByIds(hippoRoot, ids, tenantId);
69
+ },
70
+ activeGoals(opts) {
71
+ return activeGoalsWithPolicies(hippoRoot, opts);
72
+ },
73
+ freshRawEntries(count, tenantId, sessionId, origins) {
74
+ return loadFreshRawMemories(hippoRoot, count, tenantId, sessionId, origins ?? undefined);
75
+ },
76
+ continuity(tenantId, eventLimit, key) {
77
+ return continuityAt(hippoRoot, tenantId, eventLimit, key);
78
+ },
79
+ planningFallacyEvidence(tenantId, classQueryTokens) {
80
+ return planningFallacyEvidenceAt(hippoRoot, tenantId, classQueryTokens);
81
+ },
82
+ };
83
+ }
84
+ function sqliteRecallWrites(hippoRoot) {
85
+ return {
86
+ appendAuditEvents(events) {
87
+ if (events.length === 0)
88
+ return;
89
+ onHandle(hippoRoot, (db) => withWriteScope(db, 'append_audit_events', () => {
90
+ for (const event of events)
91
+ appendAuditEvent(db, event);
92
+ }));
93
+ },
94
+ finishRecall(writes) {
95
+ finishRecallAt(hippoRoot, writes);
96
+ },
97
+ bumpRecallStats(recalled) {
98
+ updateStats(hippoRoot, { recalled });
99
+ },
100
+ recordTokens(use) {
101
+ onHandle(hippoRoot, (db) => recordTokenUse(db, use));
102
+ },
103
+ };
104
+ }
105
+ function sqliteVectorViews(hippoRoot) {
106
+ return {
107
+ storedVectorViews(ids) {
108
+ return loadStoredVectorViews(hippoRoot, ids);
109
+ },
110
+ };
111
+ }
112
+ function sqliteVectorWrites(hippoRoot) {
113
+ return {
114
+ entriesWithoutVector(query) {
115
+ return onHandle(hippoRoot, (db) => entriesWithoutVectorAt(db, query));
116
+ },
117
+ writeVectors(write) {
118
+ return onHandle(hippoRoot, (db) => writeVectorsAt(db, write));
119
+ },
120
+ };
121
+ }
122
+ function sqliteAuditLog(hippoRoot) {
123
+ return {
124
+ listAuditEvents(query) {
125
+ return onHandle(hippoRoot, (db) => queryAuditEvents(db, query));
126
+ },
127
+ };
128
+ }
129
+ function sqliteReadiness(hippoRoot) {
130
+ return {
131
+ ping() {
132
+ // A probe must not create the store; the first write does, so a root with none yet is ready.
133
+ if (!existsSync(getHippoDbPath(hippoRoot)))
134
+ return;
135
+ onHandle(hippoRoot, (db) => { db.prepare('SELECT 1').get(); });
136
+ },
137
+ };
138
+ }
139
+ /** `sqliteSyncStore` as a served store: each method runs at once and answers through a Promise, so a throw rejects as another store's would. */
140
+ export function sqliteStore(hippoRoot) {
141
+ const sync = sqliteSyncStore(hippoRoot);
142
+ return {
143
+ ...servedBaseMethods(sync),
144
+ vectors: sqliteVectorReads(hippoRoot),
145
+ vectorViews: { storedVectorViews: async (ids) => sync.vectorViews.storedVectorViews(ids) },
146
+ ...servedKeyGroups(sync),
147
+ ...servedEntryGroups(sync),
148
+ predictions: servedPredictions(sync.predictions),
149
+ ...servedDagAndAudit(sync),
150
+ quarantine: servedQuarantine(sync.quarantine),
151
+ graphReads: servedGraphReads(sync.graphReads),
152
+ connectorWrites: servedConnectorWrites(sync.connectorWrites),
153
+ connectorEvents: servedConnectorEvents(sync.connectorEvents),
154
+ objects: servedObjects(sqliteObjects(hippoRoot)),
155
+ readiness: { ping: async () => sync.readiness.ping() },
156
+ close: async () => sync.close(),
157
+ };
158
+ }
159
+ function servedBaseMethods(sync) {
160
+ return {
161
+ kind: sync.kind,
162
+ findApiKey: async (keyId) => sync.findApiKey(keyId),
163
+ searchRecallEntries: async (query, args) => sync.searchRecallEntries(query, args),
164
+ entriesByIds: async (ids, tenantId) => sync.entriesByIds(ids, tenantId),
165
+ activeGoals: async (opts) => sync.activeGoals(opts),
166
+ freshRawEntries: async (count, tenantId, sessionId, origins) => sync.freshRawEntries(count, tenantId, sessionId, origins),
167
+ continuity: async (tenantId, eventLimit, key) => sync.continuity(tenantId, eventLimit, key),
168
+ planningFallacyEvidence: async (tenantId, classQueryTokens) => sync.planningFallacyEvidence(tenantId, classQueryTokens),
169
+ appendAuditEvents: async (events) => sync.appendAuditEvents(events),
170
+ finishRecall: async (writes) => sync.finishRecall(writes),
171
+ bumpRecallStats: async (recalled) => sync.bumpRecallStats(recalled),
172
+ recordTokens: async (use) => sync.recordTokens(use),
173
+ };
174
+ }
175
+ function servedKeyGroups(sync) {
176
+ const { keyAudit, keyWrites } = sync;
177
+ return {
178
+ keyAudit: {
179
+ revokeApiKey: async (revoke) => keyAudit.revokeApiKey(revoke),
180
+ auditEventsAfter: async (opts) => keyAudit.auditEventsAfter(opts),
181
+ auditHighId: async () => keyAudit.auditHighId(),
182
+ },
183
+ keyWrites: {
184
+ createApiKey: async (mint) => keyWrites.createApiKey(mint),
185
+ createSelfApiKey: async (mint) => keyWrites.createSelfApiKey(mint),
186
+ listApiKeys: async (query) => keyWrites.listApiKeys(query),
187
+ },
188
+ };
189
+ }
190
+ function servedEntryGroups(sync) {
191
+ const { vectorWrites, entryWrites, contextReads } = sync;
192
+ return {
193
+ vectorWrites: {
194
+ entriesWithoutVector: async (query) => vectorWrites.entriesWithoutVector(query),
195
+ writeVectors: async (write) => vectorWrites.writeVectors(write),
196
+ },
197
+ entryWrites: {
198
+ writeEntry: async (write) => entryWrites.writeEntry(write),
199
+ applyOutcome: async (outcome) => entryWrites.applyOutcome(outcome),
200
+ supersede: async (write) => entryWrites.supersede(write),
201
+ archiveRaw: async (archive) => entryWrites.archiveRaw(archive),
202
+ forget: async (removal) => entryWrites.forget(removal),
203
+ },
204
+ contextReads: {
205
+ unfinishedHandoff: async (tenantId, maxAgeMs, key) => contextReads.unfinishedHandoff(tenantId, maxAgeMs, key),
206
+ ambientCandidates: async (tenantId, request) => contextReads.ambientCandidates(tenantId, request),
207
+ contextCandidates: async (tenantId, filter) => contextReads.contextCandidates(tenantId, filter),
208
+ ambientTallies: async (tenantId, filter) => contextReads.ambientTallies(tenantId, filter),
209
+ },
210
+ };
211
+ }
212
+ function servedDagAndAudit(sync) {
213
+ const { dagReads, auditLog } = sync;
214
+ return {
215
+ dagReads: {
216
+ sessionRawEntries: async (query) => dagReads.sessionRawEntries(query),
217
+ sessionRawCount: async (query) => dagReads.sessionRawCount(query),
218
+ summaryWithDescendants: async (tenantId, id, walk) => dagReads.summaryWithDescendants(tenantId, id, walk),
219
+ },
220
+ auditLog: {
221
+ listAuditEvents: async (query) => auditLog.listAuditEvents(query),
222
+ },
223
+ };
224
+ }
225
+ function sqliteContextReads(hippoRoot) {
226
+ return {
227
+ unfinishedHandoff(tenantId, maxAgeMs, key) {
228
+ return loadLatestHandoff(hippoRoot, tenantId, undefined, { unfinishedOnly: true, maxAgeMs, scopeFilter: 'default-deny' }, key ?? undefined);
229
+ },
230
+ ambientCandidates(tenantId, { recentNeeded, admit, recall, origins }) {
231
+ return loadAmbientCandidates(hippoRoot, tenantId, recentNeeded, admit, recall, origins);
232
+ },
233
+ contextCandidates(tenantId, filter) {
234
+ return loadContextCandidates(hippoRoot, tenantId, filter);
235
+ },
236
+ ambientTallies(tenantId, filter) {
237
+ return loadAmbientTallies(hippoRoot, tenantId, filter);
238
+ },
239
+ };
240
+ }
241
+ function sqliteKeyWrites(hippoRoot) {
242
+ return {
243
+ createApiKey(mint) {
244
+ onHandle(hippoRoot, (db) => createKeyAt(db, mint));
245
+ },
246
+ createSelfApiKey(mint) {
247
+ return onHandle(hippoRoot, (db) => createSelfKeyAt(db, mint));
248
+ },
249
+ listApiKeys(query) {
250
+ return onHandle(hippoRoot, (db) => listApiKeyRows(db, query));
251
+ },
252
+ };
253
+ }
254
+ function sqliteKeyAudit(hippoRoot) {
255
+ return {
256
+ revokeApiKey(revoke) {
257
+ return onHandle(hippoRoot, (db) => revokeKeyAt(db, revoke));
258
+ },
259
+ auditEventsAfter(opts) {
260
+ return onHandle(hippoRoot, (db) => listAuditEventsAfter(db, opts));
261
+ },
262
+ auditHighId() {
263
+ return onHandle(hippoRoot, auditHighIdAt);
264
+ },
265
+ };
266
+ }
267
+ /** sqliteStore's continuity read, for the synchronous recall that cannot await the port. */
268
+ function continuityAt(hippoRoot, tenantId, eventLimit, key) {
269
+ const activeSnapshot = loadActiveTaskSnapshot(hippoRoot, tenantId, key ?? undefined);
270
+ const sessionId = activeSnapshot?.session_id ?? undefined;
271
+ return {
272
+ activeSnapshot,
273
+ sessionHandoff: sessionId ? loadLatestHandoff(hippoRoot, tenantId, sessionId, {}, key ?? undefined) : null,
274
+ recentSessionEvents: sessionId ? listSessionEvents(hippoRoot, tenantId, { session_id: sessionId, limit: eventLimit }) : [],
275
+ };
276
+ }
277
+ /** sqliteStore's finishRecall, for the synchronous recall that cannot await the port. */
278
+ export function finishRecallAt(hippoRoot, writes) {
279
+ return onHandle(hippoRoot, (db) => {
280
+ // With no row to write the scope would only take the write lock.
281
+ if (writes.goalLog.length > 0 || writes.audit.length > 0) {
282
+ withWriteScope(db, 'finish_recall', () => {
283
+ writeGoalRecallLog(db, localGoalRecallRows(db, writes.goalLog));
284
+ for (const event of writes.audit)
285
+ appendAuditEvent(db, event);
286
+ });
287
+ }
288
+ // Each opens its own transaction, so neither can share the scope above.
289
+ const traceId = writes.trace ? writeRecallTrace(db, writes.trace) : null;
290
+ const strengthened = writes.strengthen ? strengthenRetrievedInOwnTx(db, writes.strengthen.ids, writes.strengthen.opts) : new Set();
291
+ return { traceId, strengthened };
292
+ });
293
+ }
294
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1,18 @@
1
+ /** Every vector end to end in `buffer` as Float32, `dims[i]` numbers for `ids[i]`. */
2
+ export interface VectorPack {
3
+ readonly ids: readonly string[];
4
+ readonly dims: readonly number[];
5
+ readonly buffer: ArrayBuffer;
6
+ }
7
+ /** A pack on the thread that built it, so the reply that carries it knows which buffer to move. */
8
+ export declare class PackedVectors implements VectorPack {
9
+ readonly ids: readonly string[];
10
+ readonly dims: readonly number[];
11
+ readonly buffer: ArrayBuffer;
12
+ constructor(ids: readonly string[], dims: readonly number[], buffer: ArrayBuffer);
13
+ }
14
+ export declare function packVectors(vectors: ReadonlyMap<string, Float32Array>): PackedVectors;
15
+ /** Each value views its own stretch of the pack's one buffer. */
16
+ export declare function vectorViewsOf(pack: VectorPack): Map<string, Float32Array>;
17
+ export declare function vectorCopiesOf(pack: VectorPack): Map<string, number[]>;
18
+ //# sourceMappingURL=vector-pack.d.ts.map
@@ -0,0 +1,46 @@
1
+ // Vectors from a store worker as one buffer: it moves to the server thread with no copy, where a Map of typed arrays is copied value by value.
2
+ /** A pack on the thread that built it, so the reply that carries it knows which buffer to move. */
3
+ export class PackedVectors {
4
+ ids;
5
+ dims;
6
+ buffer;
7
+ constructor(ids, dims, buffer) {
8
+ this.ids = ids;
9
+ this.dims = dims;
10
+ this.buffer = buffer;
11
+ }
12
+ }
13
+ export function packVectors(vectors) {
14
+ let total = 0;
15
+ for (const vector of vectors.values())
16
+ total += vector.length;
17
+ const buffer = new ArrayBuffer(total * Float32Array.BYTES_PER_ELEMENT);
18
+ const floats = new Float32Array(buffer);
19
+ const dims = [];
20
+ let at = 0;
21
+ for (const vector of vectors.values()) {
22
+ floats.set(vector, at);
23
+ at += vector.length;
24
+ dims.push(vector.length);
25
+ }
26
+ return new PackedVectors([...vectors.keys()], dims, buffer);
27
+ }
28
+ function eachVector(pack, valueOf) {
29
+ const floats = new Float32Array(pack.buffer);
30
+ const out = new Map();
31
+ let at = 0;
32
+ pack.ids.forEach((id, i) => {
33
+ const end = at + (pack.dims[i] ?? 0);
34
+ out.set(id, valueOf(floats.subarray(at, end)));
35
+ at = end;
36
+ });
37
+ return out;
38
+ }
39
+ /** Each value views its own stretch of the pack's one buffer. */
40
+ export function vectorViewsOf(pack) {
41
+ return eachVector(pack, (view) => view);
42
+ }
43
+ export function vectorCopiesOf(pack) {
44
+ return eachVector(pack, (view) => Array.from(view));
45
+ }
46
+ //# sourceMappingURL=vector-pack.js.map
@@ -0,0 +1,3 @@
1
+ import type { VectorReads } from '../port.js';
2
+ export declare function sqliteVectorReads(hippoRoot: string): VectorReads;
3
+ //# sourceMappingURL=vector-reads-group.d.ts.map
@@ -0,0 +1,23 @@
1
+ // hippo.db's vector reads. Async only: the nearest-row scan yields between chunks, so a store worker awaits these where it runs every other method to its end.
2
+ import { loadPhysicsState } from '../../db/physics-state.js';
3
+ import { onHandle } from '../open.js';
4
+ import { loadVectorCandidateEntries } from '../search-rows.js';
5
+ import { loadStoredVectors, storedIndexState } from '../vector-index.js';
6
+ export function sqliteVectorReads(hippoRoot) {
7
+ return {
8
+ async embeddingIndexState() {
9
+ return storedIndexState(hippoRoot);
10
+ },
11
+ async storedVectors(ids) {
12
+ return loadStoredVectors(hippoRoot, ids);
13
+ },
14
+ async nearestEntries(queryVector, spec) {
15
+ return loadVectorCandidateEntries(hippoRoot, queryVector, spec);
16
+ },
17
+ async physicsParticles(ids) {
18
+ // loadPhysicsState reads every row for an empty list.
19
+ return ids.length === 0 ? new Map() : onHandle(hippoRoot, (db) => loadPhysicsState(db, [...ids]));
20
+ },
21
+ };
22
+ }
23
+ //# sourceMappingURL=vector-reads-group.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker-entry.d.ts.map
@@ -0,0 +1,8 @@
1
+ // Entry of a store worker thread; executor.ts starts it and nothing imports it. The work is in worker-jobs.ts.
2
+ import { parentPort, workerData } from 'node:worker_threads';
3
+ import { serveJobs } from './worker-jobs.js';
4
+ if (parentPort) {
5
+ // SAFETY: executor.ts is the only code that starts this file, and it passes a WorkerInit.
6
+ serveJobs(parentPort, workerData);
7
+ }
8
+ //# sourceMappingURL=worker-entry.js.map
@@ -0,0 +1,5 @@
1
+ import type { MessagePort } from 'node:worker_threads';
2
+ import { type WorkerInit } from './worker-ops.js';
3
+ /** Answers the thread's jobs until 'stop', which closes the connection so the thread ends with no handle on the store's files. */
4
+ export declare function serveJobs(port: MessagePort, init: WorkerInit): void;
5
+ //# sourceMappingURL=worker-jobs.d.ts.map
@@ -0,0 +1,116 @@
1
+ import { auditWriteFailureCount } from '../audit.js';
2
+ import { RequestStores } from '../../db/index.js';
3
+ import { loadStoredVectorViews } from '../vector-index.js';
4
+ import { requestScopes } from '../../util/request-scope.js';
5
+ import { initStore } from '../open.js';
6
+ import { watchCommits } from './commit-watch.js';
7
+ import { encodeError } from './error-codec.js';
8
+ import { sqliteSyncStore } from './store.js';
9
+ import { PackedVectors, packVectors } from './vector-pack.js';
10
+ import { sqliteVectorReads } from './vector-reads-group.js';
11
+ import { STORE_SETUP_OP, WORKER_OPS } from './worker-ops.js';
12
+ /** Every method the op table can name: the synchronous store, and the vector reads, which answer only through Promises.
13
+ * The two reads that return vectors answer with a pack, which worker-store.ts turns back into the port's Map. */
14
+ function workerOps(hippoRoot) {
15
+ const packed = (ids) => packVectors(loadStoredVectorViews(hippoRoot, ids));
16
+ return {
17
+ ...sqliteSyncStore(hippoRoot),
18
+ vectors: { ...sqliteVectorReads(hippoRoot), storedVectors: packed },
19
+ vectorViews: { storedVectorViews: packed },
20
+ };
21
+ }
22
+ /** The scope every job of a thread runs in, so each open inside a job gets the thread's one connection. */
23
+ class WorkerStores extends RequestStores {
24
+ requestId = undefined;
25
+ walPages;
26
+ jobId = 0;
27
+ #init;
28
+ #commitFlag;
29
+ #prepared = new WeakSet();
30
+ #walPagesOn = new WeakMap();
31
+ constructor(init) {
32
+ // The executor sends a reader its first job only after the writer has run the setup.
33
+ super({ busyWaitMs: init.busyWaitMs, ...(init.mode === 'read' && { setupDoneFor: init.hippoRoot }) });
34
+ this.#init = init;
35
+ this.#commitFlag = init.commitFlag && new Int32Array(init.commitFlag);
36
+ }
37
+ // The one path every open of the scope takes: `get` is a wrapper over it.
38
+ getWithFacts(hippoRoot, opts) {
39
+ const opened = super.getWithFacts(hippoRoot, opts);
40
+ const { db } = opened;
41
+ if (!this.#prepared.has(db)) {
42
+ this.#prepared.add(db);
43
+ // A reader that could write would let a method wrongly tagged 'read' take the write lock off the writer thread.
44
+ if (this.#init.mode === 'read')
45
+ db.exec('PRAGMA query_only = ON');
46
+ const flag = this.#commitFlag;
47
+ if (flag)
48
+ watchCommits(db, () => Atomics.store(flag, 0, this.jobId));
49
+ }
50
+ // The connection set its own value from this thread's state, where no checkpointer ever runs.
51
+ if (hippoRoot === this.#init.hippoRoot && this.walPages !== undefined && this.#walPagesOn.get(db) !== this.walPages) {
52
+ db.exec(`PRAGMA wal_autocheckpoint = ${this.walPages}`);
53
+ this.#walPagesOn.set(db, this.walPages);
54
+ }
55
+ return opened;
56
+ }
57
+ }
58
+ function isWorkerGroup(group) {
59
+ return Object.hasOwn(WORKER_OPS, group);
60
+ }
61
+ function runsOnWorker(group, method) {
62
+ const places = WORKER_OPS[group];
63
+ return Object.hasOwn(places, method) && places[method] !== 'server';
64
+ }
65
+ function methodsOf(ops, group) {
66
+ // SAFETY: every group is an object of methods, and the server thread sent the arguments the port's own signature for the one called took.
67
+ return (group === 'base' ? ops : ops[group]);
68
+ }
69
+ /** Runs `op`; only a method the op table places on a worker can run. */
70
+ function runOp(ops, op, args) {
71
+ const [group = '', method = ''] = op.split('.');
72
+ const run = isWorkerGroup(group) && runsOnWorker(group, method) ? methodsOf(ops, group)[method] : undefined;
73
+ if (run === undefined)
74
+ throw new Error(`the store worker has no op '${op}'`);
75
+ return run(...args);
76
+ }
77
+ async function answer(ops, stores, hippoRoot, job) {
78
+ const failuresBefore = auditWriteFailureCount();
79
+ stores.requestId = job.requestId;
80
+ stores.walPages = job.walPages;
81
+ stores.jobId = job.id;
82
+ try {
83
+ const value = await requestScopes.run(stores, () => (job.op === STORE_SETUP_OP ? initStore(hippoRoot) : runOp(ops, job.op, job.args)));
84
+ return { id: job.id, ok: true, value, auditFailures: auditWriteFailureCount() - failuresBefore };
85
+ }
86
+ catch (err) {
87
+ return { id: job.id, ok: false, error: encodeError(err), auditFailures: auditWriteFailureCount() - failuresBefore };
88
+ }
89
+ }
90
+ function post(port, reply) {
91
+ try {
92
+ port.postMessage(reply, reply.ok && reply.value instanceof PackedVectors ? [reply.value.buffer] : []);
93
+ }
94
+ catch (err) {
95
+ // A result that cannot be copied to the server thread must still answer, or its caller would wait for ever.
96
+ port.postMessage({ id: reply.id, ok: false, error: encodeError(err), auditFailures: reply.auditFailures });
97
+ }
98
+ }
99
+ /** Answers the thread's jobs until 'stop', which closes the connection so the thread ends with no handle on the store's files. */
100
+ export function serveJobs(port, init) {
101
+ const ops = workerOps(init.hippoRoot);
102
+ const stores = new WorkerStores(init);
103
+ // A thread is sent one job at a time, so only 'stop' can arrive while a vector scan yields, and it waits for that job's reply.
104
+ let last = Promise.resolve();
105
+ port.on('message', (message) => {
106
+ if (message === 'stop') {
107
+ void last.then(() => {
108
+ stores.close();
109
+ port.close();
110
+ });
111
+ return;
112
+ }
113
+ last = answer(ops, stores, init.hippoRoot, message).then((reply) => post(port, reply));
114
+ });
115
+ }
116
+ //# sourceMappingURL=worker-jobs.js.map
@@ -0,0 +1,135 @@
1
+ import type { HippoStore } from '../port.js';
2
+ import type { WireError } from './error-codec.js';
3
+ /** 'write' runs on the one writer thread; 'read' on a reader, whose connection refuses every write. */
4
+ export type OpMode = 'read' | 'write';
5
+ /** 'server' keeps a method on the calling thread: it takes a function, and a function cannot be copied to a thread. */
6
+ export type OpPlace = OpMode | 'server';
7
+ export type OpPlaces<G> = {
8
+ readonly [M in keyof G]: OpPlace;
9
+ };
10
+ /** Store methods answered by a worker, base ones under `base`. Tagged by effect, not name: predictionBaserate (audit row) and bumpRecallStats
11
+ * (stats.json) are writes. A read that opens through `openStore` is a read: the writer runs that open's setup before any reader serves. */
12
+ export declare const WORKER_OPS: {
13
+ readonly base: {
14
+ readonly findApiKey: "read";
15
+ readonly searchRecallEntries: "read";
16
+ readonly entriesByIds: "read";
17
+ readonly activeGoals: "read";
18
+ readonly freshRawEntries: "read";
19
+ readonly continuity: "read";
20
+ readonly planningFallacyEvidence: "read";
21
+ readonly appendAuditEvents: "write";
22
+ readonly finishRecall: "write";
23
+ readonly bumpRecallStats: "write";
24
+ readonly recordTokens: "write";
25
+ };
26
+ readonly vectors: {
27
+ readonly embeddingIndexState: "read";
28
+ readonly storedVectors: "read";
29
+ readonly nearestEntries: "read";
30
+ readonly physicsParticles: "read";
31
+ };
32
+ readonly vectorViews: {
33
+ readonly storedVectorViews: "read";
34
+ };
35
+ readonly keyAudit: {
36
+ readonly revokeApiKey: "write";
37
+ readonly auditEventsAfter: "read";
38
+ readonly auditHighId: "read";
39
+ };
40
+ readonly keyWrites: {
41
+ readonly createApiKey: "write";
42
+ readonly createSelfApiKey: "write";
43
+ readonly listApiKeys: "read";
44
+ };
45
+ readonly vectorWrites: {
46
+ readonly entriesWithoutVector: "read";
47
+ readonly writeVectors: "write";
48
+ };
49
+ readonly entryWrites: {
50
+ readonly writeEntry: "write";
51
+ readonly applyOutcome: "write";
52
+ readonly supersede: "write";
53
+ readonly archiveRaw: "write";
54
+ readonly forget: "write";
55
+ };
56
+ readonly contextReads: {
57
+ readonly unfinishedHandoff: "read";
58
+ readonly ambientCandidates: "server";
59
+ readonly contextCandidates: "read";
60
+ readonly ambientTallies: "read";
61
+ };
62
+ readonly predictions: {
63
+ readonly savePrediction: "write";
64
+ readonly closePrediction: "write";
65
+ readonly predictionById: "read";
66
+ readonly listPredictions: "read";
67
+ readonly predictionBaserate: "write";
68
+ };
69
+ readonly dagReads: {
70
+ readonly sessionRawEntries: "read";
71
+ readonly sessionRawCount: "read";
72
+ readonly summaryWithDescendants: "server";
73
+ };
74
+ readonly auditLog: {
75
+ readonly listAuditEvents: "read";
76
+ };
77
+ readonly quarantine: {
78
+ readonly listQuarantined: "read";
79
+ readonly approveQuarantined: "write";
80
+ readonly rejectQuarantined: "write";
81
+ };
82
+ readonly graphReads: {
83
+ readonly graphRows: "read";
84
+ };
85
+ readonly objects: {
86
+ readonly listObjects: "read";
87
+ readonly objectById: "read";
88
+ readonly closeObject: "write";
89
+ readonly saveObject: "write";
90
+ readonly openIncident: "write";
91
+ readonly resolveIncident: "write";
92
+ readonly policiesInForce: "read";
93
+ readonly activeSkillsByName: "read";
94
+ readonly briefReceipts: "read";
95
+ };
96
+ readonly readiness: {
97
+ readonly ping: "read";
98
+ };
99
+ };
100
+ /** Sent by the executor itself and by no store method: the writer runs the store's open-time setup once, before any reader is sent a job. */
101
+ export declare const STORE_SETUP_OP = "setup";
102
+ export type WorkerGroup = keyof typeof WORKER_OPS;
103
+ /** The base methods the op table names. */
104
+ export type WorkerBase = Pick<HippoStore, keyof typeof WORKER_OPS.base>;
105
+ export interface WorkerInit {
106
+ readonly hippoRoot: string;
107
+ readonly mode: OpMode;
108
+ /** Lock wait of the thread's connection. */
109
+ readonly busyWaitMs: number;
110
+ /** One shared integer the writer sets to a job's id before that job may commit; the server thread reads it when the job passes its deadline. */
111
+ readonly commitFlag?: SharedArrayBuffer;
112
+ }
113
+ export interface Job {
114
+ readonly id: number;
115
+ /** `<group>.<method>` of the synchronous store, `base.<method>` for a base one. */
116
+ readonly op: string;
117
+ readonly args: readonly unknown[];
118
+ /** Of the request the call belongs to, so the thread's log lines carry it. */
119
+ readonly requestId: string | undefined;
120
+ /** wal_autocheckpoint as the server thread has it: a worker cannot see the checkpointer start or stop. */
121
+ readonly walPages: number;
122
+ }
123
+ /** Both kinds carry the audit rows the job failed to write, since the count `/health` reports lives on the server thread. */
124
+ export type Reply = {
125
+ readonly id: number;
126
+ readonly ok: true;
127
+ readonly value: unknown;
128
+ readonly auditFailures: number;
129
+ } | {
130
+ readonly id: number;
131
+ readonly ok: false;
132
+ readonly error: WireError;
133
+ readonly auditFailures: number;
134
+ };
135
+ //# sourceMappingURL=worker-ops.d.ts.map