hippo-memory 1.70.0 → 1.72.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 (855) hide show
  1. package/README.md +2 -2
  2. package/dist/agent-memories/apply.d.ts +0 -11
  3. package/dist/agent-memories/apply.js +6 -21
  4. package/dist/agent-memories/claude-code.d.ts +4 -2
  5. package/dist/agent-memories/claude-code.js +15 -6
  6. package/dist/agent-memories/codex.js +1 -1
  7. package/dist/agent-memories/copilot.d.ts +1 -3
  8. package/dist/agent-memories/copilot.js +1 -17
  9. package/dist/agent-memories/files.js +23 -12
  10. package/dist/agent-memories/markdown.d.ts +1 -3
  11. package/dist/agent-memories/markdown.js +1 -3
  12. package/dist/agent-memories/project-folds.d.ts +10 -0
  13. package/dist/agent-memories/project-folds.js +34 -0
  14. package/dist/agent-memories/report.js +2 -1
  15. package/dist/agent-memories/sync.d.ts +4 -2
  16. package/dist/agent-memories/sync.js +18 -11
  17. package/dist/api/assemble.d.ts +7 -44
  18. package/dist/api/assemble.js +3 -23
  19. package/dist/api/audit.d.ts +33 -1
  20. package/dist/api/audit.js +48 -1
  21. package/dist/api/auth.d.ts +20 -26
  22. package/dist/api/auth.js +43 -29
  23. package/dist/api/auto-sleep.d.ts +5 -2
  24. package/dist/api/auto-sleep.js +9 -5
  25. package/dist/api/availability.d.ts +2 -15
  26. package/dist/api/availability.js +4 -18
  27. package/dist/api/cards.d.ts +42 -0
  28. package/dist/api/cards.js +52 -0
  29. package/dist/api/conflicts.d.ts +28 -0
  30. package/dist/api/conflicts.js +61 -0
  31. package/dist/api/context-render.js +4 -3
  32. package/dist/api/context-select.js +12 -15
  33. package/dist/api/context-types.d.ts +10 -35
  34. package/dist/api/context.d.ts +5 -22
  35. package/dist/api/context.js +38 -46
  36. package/dist/api/continuity.d.ts +47 -0
  37. package/dist/api/continuity.js +66 -0
  38. package/dist/{cli → api}/correction-latency.d.ts +2 -14
  39. package/dist/{cli → api}/correction-latency.js +2 -14
  40. package/dist/api/dormant.d.ts +5 -21
  41. package/dist/api/dormant.js +11 -28
  42. package/dist/api/drill-down.d.ts +7 -46
  43. package/dist/api/drill-down.js +6 -27
  44. package/dist/api/embeddings.d.ts +17 -0
  45. package/dist/api/embeddings.js +28 -0
  46. package/dist/api/error-reply.d.ts +8 -0
  47. package/dist/api/error-reply.js +21 -0
  48. package/dist/api/forget.d.ts +11 -26
  49. package/dist/api/forget.js +23 -35
  50. package/dist/api/goals.d.ts +1 -1
  51. package/dist/api/goals.js +5 -9
  52. package/dist/api/graph.d.ts +8 -0
  53. package/dist/api/graph.js +7 -0
  54. package/dist/api/index.d.ts +6 -2
  55. package/dist/api/index.js +6 -2
  56. package/dist/api/instruction-detect.js +21 -6
  57. package/dist/api/learn.d.ts +4 -0
  58. package/dist/api/learn.js +53 -27
  59. package/dist/api/ledger-db.d.ts +2 -5
  60. package/dist/api/ledger-db.js +5 -35
  61. package/dist/api/memories.d.ts +23 -0
  62. package/dist/api/memories.js +46 -0
  63. package/dist/api/objects.d.ts +9 -0
  64. package/dist/api/objects.js +11 -0
  65. package/dist/api/on-store.js +5 -3
  66. package/dist/api/outcome.js +1 -1
  67. package/dist/api/pilot-arm.d.ts +1 -11
  68. package/dist/api/pilot-arm.js +5 -45
  69. package/dist/api/predictions.d.ts +11 -0
  70. package/dist/api/predictions.js +24 -0
  71. package/dist/api/projects.d.ts +21 -0
  72. package/dist/api/projects.js +24 -0
  73. package/dist/api/promote.d.ts +13 -17
  74. package/dist/api/promote.js +12 -20
  75. package/dist/api/prompt-hook.d.ts +19 -6
  76. package/dist/api/prompt-hook.js +54 -13
  77. package/dist/api/provenance-coverage.d.ts +14 -0
  78. package/dist/{cli → api}/provenance-coverage.js +2 -6
  79. package/dist/api/recall-cli.d.ts +58 -0
  80. package/dist/api/recall-cli.js +103 -0
  81. package/dist/api/recall-core.js +17 -9
  82. package/dist/api/recall-finish.d.ts +53 -0
  83. package/dist/api/recall-finish.js +30 -0
  84. package/dist/api/recall-history.d.ts +17 -84
  85. package/dist/api/recall-history.js +15 -88
  86. package/dist/api/recall-pipeline.d.ts +2 -3
  87. package/dist/api/recall-pipeline.js +21 -15
  88. package/dist/api/recall-request.js +1 -1
  89. package/dist/api/recall-types.d.ts +64 -304
  90. package/dist/api/recall.d.ts +3 -34
  91. package/dist/api/recall.js +63 -89
  92. package/dist/api/refine.d.ts +7 -0
  93. package/dist/api/refine.js +10 -0
  94. package/dist/api/remember-local.d.ts +57 -0
  95. package/dist/api/remember-local.js +90 -0
  96. package/dist/api/remember.d.ts +20 -2
  97. package/dist/api/remember.js +16 -3
  98. package/dist/api/session-end.d.ts +22 -0
  99. package/dist/api/session-end.js +101 -0
  100. package/dist/api/sleep-run.d.ts +2 -4
  101. package/dist/api/sleep-run.js +28 -28
  102. package/dist/api/sleep.d.ts +9 -28
  103. package/dist/api/status.d.ts +24 -0
  104. package/dist/api/status.js +40 -0
  105. package/dist/api/store-init.d.ts +4 -0
  106. package/dist/api/store-init.js +9 -0
  107. package/dist/api/tokens.d.ts +3 -10
  108. package/dist/api/tokens.js +4 -11
  109. package/dist/api/types.d.ts +8 -29
  110. package/dist/api/types.js +10 -23
  111. package/dist/capture/caller-session.d.ts +0 -3
  112. package/dist/capture/caller-session.js +1 -12
  113. package/dist/capture/capture-error.d.ts +2 -2
  114. package/dist/capture/capture-error.js +23 -18
  115. package/dist/capture/codex-patch.js +3 -1
  116. package/dist/capture/command.d.ts +4 -12
  117. package/dist/capture/command.js +39 -114
  118. package/dist/capture/compact.d.ts +4 -15
  119. package/dist/capture/compact.js +26 -30
  120. package/dist/capture/compaction-items-caller.js +11 -20
  121. package/dist/capture/compaction-record.d.ts +7 -93
  122. package/dist/capture/compaction-record.js +34 -399
  123. package/dist/capture/compaction-spool.d.ts +5 -3
  124. package/dist/capture/compaction-spool.js +21 -7
  125. package/dist/capture/copilot-transcript.d.ts +2 -1
  126. package/dist/capture/copilot-transcript.js +2 -1
  127. package/dist/capture/extract.d.ts +5 -2
  128. package/dist/capture/extract.js +4 -3
  129. package/dist/capture/failure-caller.d.ts +1 -1
  130. package/dist/capture/failure-caller.js +21 -16
  131. package/dist/capture/failure-reading.d.ts +2 -1
  132. package/dist/capture/failure-reading.js +7 -9
  133. package/dist/capture/pre-compact-caller.js +5 -4
  134. package/dist/capture/session-digest.d.ts +1 -1
  135. package/dist/capture/session-digest.js +17 -10
  136. package/dist/capture/session-end-caller.js +2 -1
  137. package/dist/capture/session-worker.js +3 -4
  138. package/dist/capture/transcript.d.ts +4 -11
  139. package/dist/capture/transcript.js +10 -21
  140. package/dist/capture/working-state.d.ts +4 -2
  141. package/dist/capture/working-state.js +4 -2
  142. package/dist/cli/api-context.d.ts +3 -0
  143. package/dist/cli/api-context.js +6 -0
  144. package/dist/cli/audit-prune.d.ts +1 -59
  145. package/dist/cli/audit-prune.js +2 -61
  146. package/dist/cli/audit.d.ts +1 -1
  147. package/dist/cli/audit.js +42 -43
  148. package/dist/cli/auth.d.ts +2 -2
  149. package/dist/cli/auth.js +61 -44
  150. package/dist/cli/briefs.d.ts +1 -4
  151. package/dist/cli/briefs.js +42 -301
  152. package/dist/cli/card.d.ts +2 -2
  153. package/dist/cli/card.js +63 -56
  154. package/dist/cli/client.d.ts +12 -27
  155. package/dist/cli/client.js +41 -44
  156. package/dist/cli/compact-resume-payload.js +4 -3
  157. package/dist/cli/context.d.ts +2 -3
  158. package/dist/cli/context.js +22 -18
  159. package/dist/cli/continuity.d.ts +6 -6
  160. package/dist/cli/continuity.js +81 -86
  161. package/dist/cli/curate.d.ts +13 -17
  162. package/dist/cli/curate.js +88 -116
  163. package/dist/cli/dag.d.ts +4 -4
  164. package/dist/cli/dag.js +55 -34
  165. package/dist/cli/decisions.d.ts +2 -4
  166. package/dist/cli/decisions.js +18 -309
  167. package/dist/cli/eval.d.ts +1 -1
  168. package/dist/cli/eval.js +27 -26
  169. package/dist/cli/exit.d.ts +6 -0
  170. package/dist/cli/exit.js +11 -0
  171. package/dist/cli/explain.d.ts +2 -3
  172. package/dist/cli/explain.js +25 -27
  173. package/dist/cli/flag-values.d.ts +6 -1
  174. package/dist/cli/flag-values.js +42 -15
  175. package/dist/cli/flags.d.ts +0 -288
  176. package/dist/cli/flags.js +3 -138
  177. package/dist/cli/github.d.ts +14 -0
  178. package/dist/{connectors/github/cli-impl.js → cli/github.js} +43 -71
  179. package/dist/cli/goals.d.ts +2 -2
  180. package/dist/cli/goals.js +46 -50
  181. package/dist/cli/graph.d.ts +3 -0
  182. package/dist/cli/graph.js +83 -0
  183. package/dist/cli/hook-runtime.d.ts +12 -32
  184. package/dist/cli/hook-runtime.js +21 -64
  185. package/dist/cli/incidents.d.ts +3 -0
  186. package/dist/cli/incidents.js +112 -0
  187. package/dist/cli/init.d.ts +2 -2
  188. package/dist/cli/init.js +33 -30
  189. package/dist/cli/install-steps.d.ts +2 -1
  190. package/dist/cli/install-steps.js +13 -14
  191. package/dist/cli/last-sleep.d.ts +2 -1
  192. package/dist/cli/last-sleep.js +4 -1
  193. package/dist/cli/lenient-id.d.ts +2 -0
  194. package/dist/cli/lenient-id.js +13 -0
  195. package/dist/cli/maintenance.d.ts +5 -5
  196. package/dist/cli/maintenance.js +37 -43
  197. package/dist/cli/notes.d.ts +2 -0
  198. package/dist/cli/notes.js +41 -0
  199. package/dist/cli/object-verbs.js +4 -3
  200. package/dist/cli/open-browser.d.ts +14 -0
  201. package/dist/cli/open-browser.js +26 -0
  202. package/dist/cli/owner-validation.d.ts +5 -28
  203. package/dist/cli/owner-validation.js +5 -28
  204. package/dist/cli/playbooks.d.ts +3 -4
  205. package/dist/cli/playbooks.js +131 -300
  206. package/dist/cli/predictions.d.ts +3 -0
  207. package/dist/cli/predictions.js +175 -0
  208. package/dist/cli/print.d.ts +2 -5
  209. package/dist/cli/print.js +3 -5
  210. package/dist/cli/projects.d.ts +2 -2
  211. package/dist/cli/projects.js +31 -25
  212. package/dist/cli/quality-repair-once.d.ts +1 -1
  213. package/dist/cli/quality-repair-once.js +7 -6
  214. package/dist/cli/recall.d.ts +2 -4
  215. package/dist/cli/recall.js +67 -137
  216. package/dist/cli/refine-llm.d.ts +5 -31
  217. package/dist/cli/refine-llm.js +23 -50
  218. package/dist/cli/remember.d.ts +3 -3
  219. package/dist/cli/remember.js +134 -192
  220. package/dist/cli/scheduler.d.ts +2 -17
  221. package/dist/cli/scheduler.js +14 -19
  222. package/dist/cli/serve.js +23 -14
  223. package/dist/cli/session-hooks.d.ts +11 -19
  224. package/dist/cli/session-hooks.js +143 -214
  225. package/dist/cli/setup.d.ts +4 -4
  226. package/dist/cli/setup.js +35 -30
  227. package/dist/cli/shared.d.ts +7 -25
  228. package/dist/cli/shared.js +17 -60
  229. package/dist/cli/slack.d.ts +2 -2
  230. package/dist/cli/slack.js +19 -23
  231. package/dist/cli/sleep-render.js +6 -3
  232. package/dist/cli/sleep.d.ts +3 -2
  233. package/dist/cli/sleep.js +17 -49
  234. package/dist/cli/status.d.ts +11 -14
  235. package/dist/cli/status.js +74 -120
  236. package/dist/cli/stdin.d.ts +4 -6
  237. package/dist/cli/stdin.js +2 -3
  238. package/dist/cli/transfer.d.ts +9 -9
  239. package/dist/cli/transfer.js +87 -108
  240. package/dist/cli/usage.d.ts +0 -79
  241. package/dist/cli/usage.js +1 -689
  242. package/dist/cli/verb-row.d.ts +32 -0
  243. package/dist/cli/verb-row.js +6 -0
  244. package/dist/cli/verbs/health.d.ts +27 -0
  245. package/dist/cli/verbs/health.js +232 -0
  246. package/dist/cli/verbs/memory.d.ts +16 -0
  247. package/dist/cli/verbs/memory.js +244 -0
  248. package/dist/cli/verbs/objects.d.ts +20 -0
  249. package/dist/cli/verbs/objects.js +254 -0
  250. package/dist/cli/verbs/sessions.d.ts +31 -0
  251. package/dist/cli/verbs/sessions.js +312 -0
  252. package/dist/cli/verbs.d.ts +81 -0
  253. package/dist/cli/verbs.js +7 -0
  254. package/dist/cli/versioned-verbs.d.ts +51 -0
  255. package/dist/cli/versioned-verbs.js +79 -0
  256. package/dist/cli.d.ts +1 -654
  257. package/dist/cli.js +44 -510
  258. package/dist/connectors/dlq.d.ts +39 -3
  259. package/dist/connectors/dlq.js +37 -3
  260. package/dist/connectors/github/backfill.d.ts +5 -25
  261. package/dist/connectors/github/backfill.js +26 -52
  262. package/dist/connectors/github/deletion.d.ts +4 -18
  263. package/dist/connectors/github/deletion.js +2 -15
  264. package/dist/connectors/github/dlq.d.ts +8 -33
  265. package/dist/connectors/github/dlq.js +34 -93
  266. package/dist/connectors/github/ingest.d.ts +4 -12
  267. package/dist/connectors/github/ingest.js +5 -36
  268. package/dist/connectors/github/octokit-client.d.ts +4 -16
  269. package/dist/connectors/github/octokit-client.js +27 -24
  270. package/dist/connectors/github/ratelimit.d.ts +3 -14
  271. package/dist/connectors/github/ratelimit.js +3 -14
  272. package/dist/connectors/github/scope.d.ts +3 -5
  273. package/dist/connectors/github/scope.js +3 -5
  274. package/dist/connectors/github/signature.d.ts +4 -26
  275. package/dist/connectors/github/signature.js +4 -26
  276. package/dist/connectors/github/tenant-routing.d.ts +2 -24
  277. package/dist/connectors/github/tenant-routing.js +4 -26
  278. package/dist/connectors/github/transform.js +2 -16
  279. package/dist/connectors/github/types.d.ts +3 -15
  280. package/dist/connectors/github/types.js +2 -9
  281. package/dist/connectors/github/webhook.d.ts +3 -16
  282. package/dist/connectors/github/webhook.js +38 -23
  283. package/dist/connectors/ingest.d.ts +10 -0
  284. package/dist/connectors/ingest.js +28 -0
  285. package/dist/connectors/slack/backfill.d.ts +4 -17
  286. package/dist/connectors/slack/backfill.js +4 -13
  287. package/dist/connectors/slack/dlq.d.ts +2 -19
  288. package/dist/connectors/slack/dlq.js +51 -90
  289. package/dist/connectors/slack/ingest.d.ts +4 -9
  290. package/dist/connectors/slack/ingest.js +4 -30
  291. package/dist/connectors/slack/scope.d.ts +2 -8
  292. package/dist/connectors/slack/scope.js +2 -8
  293. package/dist/connectors/slack/signature.d.ts +1 -6
  294. package/dist/connectors/slack/tenant-routing.d.ts +2 -19
  295. package/dist/connectors/slack/tenant-routing.js +2 -21
  296. package/dist/connectors/slack/transform.d.ts +2 -18
  297. package/dist/connectors/slack/transform.js +2 -18
  298. package/dist/connectors/slack/types.d.ts +3 -9
  299. package/dist/connectors/slack/types.js +2 -4
  300. package/dist/connectors/slack/web-client.js +33 -27
  301. package/dist/connectors/slack/webhook.d.ts +3 -19
  302. package/dist/connectors/slack/webhook.js +6 -26
  303. package/dist/connectors/slack/workspaces.d.ts +4 -24
  304. package/dist/connectors/slack/workspaces.js +4 -24
  305. package/dist/consolidate/conflicts.js +7 -15
  306. package/dist/consolidate/dag-summary.d.ts +8 -0
  307. package/dist/consolidate/dag-summary.js +41 -0
  308. package/dist/consolidate/dag.d.ts +5 -28
  309. package/dist/consolidate/dag.js +29 -84
  310. package/dist/consolidate/decay.js +7 -19
  311. package/dist/consolidate/dedupe.d.ts +13 -52
  312. package/dist/consolidate/dedupe.js +18 -74
  313. package/dist/consolidate/flush-units.d.ts +3 -4
  314. package/dist/consolidate/flush-units.js +3 -3
  315. package/dist/consolidate/half-life-migration.d.ts +3 -26
  316. package/dist/consolidate/half-life-migration.js +11 -28
  317. package/dist/consolidate/llm-passes.js +49 -40
  318. package/dist/consolidate/memory-value-weights.d.ts +2 -13
  319. package/dist/consolidate/memory-value-weights.js +2 -13
  320. package/dist/consolidate/memory-value.d.ts +11 -84
  321. package/dist/consolidate/memory-value.js +18 -105
  322. package/dist/consolidate/merge.js +12 -33
  323. package/dist/consolidate/physics-pass.d.ts +6 -1
  324. package/dist/consolidate/physics-pass.js +27 -9
  325. package/dist/consolidate/replay.d.ts +6 -38
  326. package/dist/consolidate/replay.js +25 -56
  327. package/dist/consolidate/run.js +1 -1
  328. package/dist/consolidate/sleep.d.ts +1 -8
  329. package/dist/consolidate/sleep.js +13 -22
  330. package/dist/consolidate/trace.d.ts +3 -18
  331. package/dist/consolidate/trace.js +3 -18
  332. package/dist/consolidate/traces.js +9 -25
  333. package/dist/core/ablation.d.ts +14 -91
  334. package/dist/core/ablation.js +16 -91
  335. package/dist/core/active-scope.d.ts +7 -0
  336. package/dist/{sharing/scope.js → core/active-scope.js} +5 -12
  337. package/dist/core/ambient.d.ts +5 -8
  338. package/dist/core/ambient.js +40 -26
  339. package/dist/core/api-errors.d.ts +16 -0
  340. package/dist/core/api-errors.js +20 -0
  341. package/dist/core/capture-contract.d.ts +4 -2
  342. package/dist/core/capture-contract.js +4 -2
  343. package/dist/core/card.d.ts +4 -1
  344. package/dist/core/card.js +11 -1
  345. package/dist/core/compaction-timing.d.ts +7 -0
  346. package/dist/core/compaction-timing.js +9 -0
  347. package/dist/core/compare.d.ts +11 -67
  348. package/dist/core/compare.js +9 -63
  349. package/dist/core/config.d.ts +10 -24
  350. package/dist/core/config.js +20 -16
  351. package/dist/core/cosine.d.ts +3 -0
  352. package/dist/core/cosine.js +19 -0
  353. package/dist/core/handoff.d.ts +1 -7
  354. package/dist/core/handoff.js +1 -7
  355. package/dist/core/markdown.d.ts +6 -0
  356. package/dist/{store → core}/markdown.js +23 -22
  357. package/dist/core/memory-audit.d.ts +17 -0
  358. package/dist/core/memory-audit.js +54 -0
  359. package/dist/core/memory-quality.js +1 -1
  360. package/dist/core/memory.d.ts +51 -168
  361. package/dist/core/memory.js +76 -239
  362. package/dist/{consolidate → core}/merged-row.d.ts +1 -1
  363. package/dist/{consolidate → core}/merged-row.js +3 -2
  364. package/dist/core/package-root.d.ts +3 -0
  365. package/dist/core/package-root.js +5 -0
  366. package/dist/core/physics-config.d.ts +1 -4
  367. package/dist/core/physics-config.js +3 -8
  368. package/dist/core/physics.d.ts +15 -61
  369. package/dist/core/physics.js +65 -138
  370. package/dist/core/prediction.d.ts +3 -0
  371. package/dist/core/prediction.js +6 -0
  372. package/dist/core/project-identity.d.ts +20 -58
  373. package/dist/core/project-identity.js +27 -39
  374. package/dist/core/project-remote.js +13 -2
  375. package/dist/core/raw-append-only.d.ts +5 -0
  376. package/dist/core/raw-append-only.js +7 -0
  377. package/dist/core/recall-scope.d.ts +69 -0
  378. package/dist/core/recall-scope.js +138 -0
  379. package/dist/core/salience.d.ts +1 -7
  380. package/dist/core/salience.js +1 -7
  381. package/dist/dashboard/dashboard-actions.js +2 -2
  382. package/dist/dashboard/dashboard-snapshot.d.ts +2 -1
  383. package/dist/dashboard/dashboard-snapshot.js +11 -2
  384. package/dist/dashboard/dashboard-types.d.ts +2 -1
  385. package/dist/dashboard/dashboard.d.ts +1 -0
  386. package/dist/dashboard/dashboard.js +50 -4
  387. package/dist/db/busy.d.ts +3 -8
  388. package/dist/db/busy.js +37 -33
  389. package/dist/db/connect.js +7 -8
  390. package/dist/db/index.d.ts +3 -3
  391. package/dist/db/index.js +3 -3
  392. package/dist/db/migrate.js +3 -3
  393. package/dist/db/migrations/index.d.ts +1 -1
  394. package/dist/db/migrations/index.js +3 -1
  395. package/dist/db/migrations/types.d.ts +2 -5
  396. package/dist/db/migrations/v14.js +2 -3
  397. package/dist/db/migrations/v15.js +2 -8
  398. package/dist/db/migrations/v16.js +2 -3
  399. package/dist/db/migrations/v17.js +2 -3
  400. package/dist/db/migrations/v19.js +2 -5
  401. package/dist/db/migrations/v20.js +2 -7
  402. package/dist/db/migrations/v22.js +4 -17
  403. package/dist/db/migrations/v23.js +3 -14
  404. package/dist/db/migrations/v24.js +2 -4
  405. package/dist/db/migrations/v25.js +3 -8
  406. package/dist/db/migrations/v26.js +2 -13
  407. package/dist/db/migrations/v27.js +3 -11
  408. package/dist/db/migrations/v28.js +2 -14
  409. package/dist/db/migrations/v29.js +4 -18
  410. package/dist/db/migrations/v30.js +4 -16
  411. package/dist/db/migrations/v31.js +2 -15
  412. package/dist/db/migrations/v32.js +4 -22
  413. package/dist/db/migrations/v33.js +2 -15
  414. package/dist/db/migrations/v34.js +2 -11
  415. package/dist/db/migrations/v35.js +2 -11
  416. package/dist/db/migrations/v36.js +2 -11
  417. package/dist/db/migrations/v37.js +8 -33
  418. package/dist/db/migrations/v38.js +5 -38
  419. package/dist/db/migrations/v39.js +9 -20
  420. package/dist/db/migrations/v40.js +2 -9
  421. package/dist/db/migrations/v41.js +2 -24
  422. package/dist/db/migrations/v43.js +1 -1
  423. package/dist/db/migrations/v44.js +2 -8
  424. package/dist/db/migrations/v45.js +2 -7
  425. package/dist/db/migrations/v47.js +2 -3
  426. package/dist/db/migrations/v51.js +1 -1
  427. package/dist/db/migrations/v55.d.ts +3 -0
  428. package/dist/db/migrations/v55.js +17 -0
  429. package/dist/db/open.d.ts +2 -2
  430. package/dist/db/open.js +21 -9
  431. package/dist/db/physics-state.d.ts +6 -22
  432. package/dist/db/physics-state.js +28 -39
  433. package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
  434. package/dist/db/raw-archive-mirror-cleanup.js +2 -17
  435. package/dist/db/tables.d.ts +2 -0
  436. package/dist/db/tables.js +6 -2
  437. package/dist/db/vector-store.d.ts +2 -0
  438. package/dist/db/vector-store.js +25 -5
  439. package/dist/db/wal-checkpointer.js +2 -1
  440. package/dist/doctor.js +85 -27
  441. package/dist/embeddings/local.d.ts +62 -0
  442. package/dist/embeddings/local.js +146 -0
  443. package/dist/embeddings/provider.d.ts +43 -0
  444. package/dist/{store/embeddings → embeddings}/provider.js +58 -83
  445. package/dist/embeddings/transformers.d.ts +26 -0
  446. package/dist/embeddings/transformers.js +89 -0
  447. package/dist/entry/session-text.d.ts +1 -1
  448. package/dist/entry/session-text.js +3 -2
  449. package/dist/eval/eval-stats.d.ts +15 -53
  450. package/dist/eval/eval-stats.js +12 -42
  451. package/dist/eval/eval-suite.d.ts +2 -13
  452. package/dist/eval/eval-suite.js +91 -45
  453. package/dist/eval/eval.d.ts +6 -24
  454. package/dist/eval/eval.js +8 -35
  455. package/dist/eval/judgment.d.ts +0 -3
  456. package/dist/eval/judgment.js +30 -15
  457. package/dist/extensions/openclaw-plugin/index.js +1 -1
  458. package/dist/graph/extract.d.ts +5 -27
  459. package/dist/graph/extract.js +10 -36
  460. package/dist/graph/recall.d.ts +7 -20
  461. package/dist/graph/recall.js +15 -77
  462. package/dist/graph/stream.d.ts +7 -39
  463. package/dist/graph/stream.js +11 -34
  464. package/dist/graph/view.d.ts +9 -35
  465. package/dist/graph/view.js +24 -44
  466. package/dist/graph/write.d.ts +1 -1
  467. package/dist/graph/write.js +9 -9
  468. package/dist/hooks/codex-session.js +3 -2
  469. package/dist/hooks/codex-wrapper.js +4 -3
  470. package/dist/hooks/copilot.js +2 -1
  471. package/dist/hooks/hook-blocks.d.ts +6 -2
  472. package/dist/hooks/hook-blocks.js +37 -124
  473. package/dist/hooks/json-hooks.d.ts +4 -36
  474. package/dist/hooks/json-hooks.js +22 -59
  475. package/dist/hooks/opencode.d.ts +0 -38
  476. package/dist/hooks/opencode.js +17 -81
  477. package/dist/hooks/shared.d.ts +6 -21
  478. package/dist/hooks/shared.js +31 -33
  479. package/dist/importers/core.d.ts +12 -37
  480. package/dist/importers/core.js +10 -28
  481. package/dist/importers/markdown-parse.d.ts +8 -22
  482. package/dist/importers/markdown-parse.js +8 -25
  483. package/dist/importers/markdown.js +3 -12
  484. package/dist/importers/sources.js +12 -39
  485. package/dist/importers/vault.d.ts +2 -8
  486. package/dist/importers/vault.js +31 -85
  487. package/dist/index.d.ts +8 -3
  488. package/dist/index.js +8 -3
  489. package/dist/learn/autolearn.d.ts +23 -42
  490. package/dist/learn/autolearn.js +45 -52
  491. package/dist/learn/churn-git.js +13 -4
  492. package/dist/learn/extract.d.ts +3 -2
  493. package/dist/learn/extract.js +8 -8
  494. package/dist/learn/forward-claim-detector.d.ts +6 -30
  495. package/dist/learn/forward-claim-detector.js +18 -68
  496. package/dist/learn/invalidation.d.ts +6 -18
  497. package/dist/learn/invalidation.js +18 -31
  498. package/dist/mcp/admin-tools.d.ts +2 -2
  499. package/dist/mcp/admin-tools.js +30 -53
  500. package/dist/mcp/format.js +3 -2
  501. package/dist/mcp/framing.d.ts +1 -0
  502. package/dist/mcp/framing.js +1 -1
  503. package/dist/mcp/memory-tools.js +7 -10
  504. package/dist/mcp/protocol.d.ts +15 -29
  505. package/dist/mcp/protocol.js +26 -16
  506. package/dist/mcp/recall-tools.js +14 -11
  507. package/dist/mcp/request.d.ts +3 -11
  508. package/dist/mcp/request.js +12 -27
  509. package/dist/mcp/server.d.ts +3 -9
  510. package/dist/mcp/server.js +5 -16
  511. package/dist/mcp/session-state.d.ts +1 -1
  512. package/dist/mcp/session-state.js +5 -11
  513. package/dist/mcp/stdio.d.ts +2 -6
  514. package/dist/mcp/stdio.js +68 -16
  515. package/dist/mcp/tool-args.js +2 -1
  516. package/dist/mcp/tools.js +47 -22
  517. package/dist/objects/customer-notes.d.ts +9 -44
  518. package/dist/objects/customer-notes.js +7 -48
  519. package/dist/objects/decisions.d.ts +14 -52
  520. package/dist/objects/decisions.js +15 -53
  521. package/dist/objects/descriptor.d.ts +1 -1
  522. package/dist/objects/incidents.d.ts +9 -40
  523. package/dist/objects/incidents.js +7 -41
  524. package/dist/objects/lifecycle.d.ts +1 -1
  525. package/dist/objects/lifecycle.js +2 -1
  526. package/dist/objects/policies.d.ts +13 -91
  527. package/dist/objects/policies.js +13 -99
  528. package/dist/objects/processes.d.ts +9 -54
  529. package/dist/objects/processes.js +7 -61
  530. package/dist/objects/project-briefs.d.ts +13 -57
  531. package/dist/objects/project-briefs.js +16 -78
  532. package/dist/objects/skills.d.ts +9 -44
  533. package/dist/objects/skills.js +8 -54
  534. package/dist/postinstall.js +7 -20
  535. package/dist/predictions/planning-fallacy.d.ts +11 -34
  536. package/dist/rerankers/clef.js +6 -37
  537. package/dist/rerankers/cross-encoder.d.ts +31 -2
  538. package/dist/rerankers/cross-encoder.js +65 -101
  539. package/dist/rerankers/index.js +5 -4
  540. package/dist/rerankers/jev.js +11 -10
  541. package/dist/rerankers/llm.d.ts +2 -11
  542. package/dist/rerankers/llm.js +14 -14
  543. package/dist/rerankers/outage-warning.d.ts +5 -2
  544. package/dist/rerankers/outage-warning.js +7 -4
  545. package/dist/rerankers/remote.d.ts +1 -0
  546. package/dist/rerankers/remote.js +2 -0
  547. package/dist/rerankers/types.d.ts +2 -14
  548. package/dist/search/bm25-search.js +1 -1
  549. package/dist/search/boosts.d.ts +0 -2
  550. package/dist/search/boosts.js +3 -3
  551. package/dist/search/embed-memories.d.ts +9 -0
  552. package/dist/search/embed-memories.js +377 -0
  553. package/dist/search/goal-boost.d.ts +23 -0
  554. package/dist/search/goal-boost.js +93 -0
  555. package/dist/search/hybrid.d.ts +11 -2
  556. package/dist/search/hybrid.js +9 -4
  557. package/dist/search/multihop.js +2 -3
  558. package/dist/search/path-context.d.ts +5 -18
  559. package/dist/search/path-context.js +5 -18
  560. package/dist/search/physics-search.d.ts +6 -3
  561. package/dist/search/physics-search.js +29 -19
  562. package/dist/search/rerank.js +1 -1
  563. package/dist/search/rrf.d.ts +7 -35
  564. package/dist/search/rrf.js +5 -30
  565. package/dist/search/vector.d.ts +13 -4
  566. package/dist/search/vector.js +40 -13
  567. package/dist/server/auth.d.ts +11 -28
  568. package/dist/server/auth.js +49 -32
  569. package/dist/server/boot.d.ts +2 -21
  570. package/dist/server/boot.js +69 -161
  571. package/dist/server/client-ip.d.ts +3 -21
  572. package/dist/server/client-ip.js +8 -30
  573. package/dist/server/deadline.d.ts +0 -2
  574. package/dist/server/deadline.js +1 -7
  575. package/dist/server/defaults.d.ts +4 -0
  576. package/dist/server/defaults.js +5 -0
  577. package/dist/server/key-check-bounds.d.ts +2 -1
  578. package/dist/server/lifecycle.d.ts +5 -4
  579. package/dist/server/lifecycle.js +19 -4
  580. package/dist/server/mcp-http.js +24 -53
  581. package/dist/server/rate-limit.d.ts +5 -18
  582. package/dist/server/rate-limit.js +4 -13
  583. package/dist/server/request.d.ts +4 -8
  584. package/dist/server/request.js +16 -19
  585. package/dist/server/route-checks.d.ts +7 -0
  586. package/dist/server/route-checks.js +42 -0
  587. package/dist/server/route-table.d.ts +9 -8
  588. package/dist/server/route-table.js +127 -139
  589. package/dist/server/routes/admin.d.ts +8 -8
  590. package/dist/server/routes/admin.js +35 -49
  591. package/dist/server/routes/customer-notes.d.ts +6 -6
  592. package/dist/server/routes/customer-notes.js +8 -14
  593. package/dist/server/routes/decisions.d.ts +6 -6
  594. package/dist/server/routes/decisions.js +12 -21
  595. package/dist/server/routes/incidents.d.ts +6 -6
  596. package/dist/server/routes/incidents.js +14 -25
  597. package/dist/server/routes/memories.d.ts +9 -9
  598. package/dist/server/routes/memories.js +20 -63
  599. package/dist/server/routes/object-routes.d.ts +6 -11
  600. package/dist/server/routes/object-routes.js +11 -22
  601. package/dist/server/routes/policies.d.ts +7 -7
  602. package/dist/server/routes/policies.js +12 -22
  603. package/dist/server/routes/predictions.d.ts +6 -6
  604. package/dist/server/routes/predictions.js +22 -38
  605. package/dist/server/routes/processes.d.ts +6 -6
  606. package/dist/server/routes/processes.js +17 -28
  607. package/dist/server/routes/project-briefs.d.ts +7 -7
  608. package/dist/server/routes/project-briefs.js +11 -20
  609. package/dist/server/routes/recall.d.ts +5 -5
  610. package/dist/server/routes/recall.js +16 -45
  611. package/dist/server/routes/skills.d.ts +7 -7
  612. package/dist/server/routes/skills.js +10 -22
  613. package/dist/server/server-detect.d.ts +15 -53
  614. package/dist/server/server-detect.js +55 -96
  615. package/dist/server/sleep-child.js +26 -7
  616. package/dist/server/sleep-offload.d.ts +11 -5
  617. package/dist/server/sleep-offload.js +21 -12
  618. package/dist/server/types.d.ts +32 -18
  619. package/dist/server/validation.d.ts +3 -2
  620. package/dist/server/validation.js +15 -33
  621. package/dist/server.d.ts +7 -6
  622. package/dist/server.js +8 -6
  623. package/dist/sharing/global-store.d.ts +19 -0
  624. package/dist/sharing/global-store.js +75 -0
  625. package/dist/sharing/global-sync.d.ts +6 -0
  626. package/dist/sharing/global-sync.js +73 -0
  627. package/dist/sharing/project-merge.d.ts +11 -19
  628. package/dist/sharing/project-merge.js +63 -125
  629. package/dist/sharing/search-both.d.ts +60 -0
  630. package/dist/sharing/search-both.js +138 -0
  631. package/dist/sharing/share.d.ts +40 -0
  632. package/dist/sharing/share.js +229 -0
  633. package/dist/store/ambient.js +9 -15
  634. package/dist/store/audit-event.d.ts +5 -13
  635. package/dist/store/audit-event.js +4 -12
  636. package/dist/store/audit.d.ts +2 -21
  637. package/dist/store/audit.js +8 -67
  638. package/dist/store/auth.d.ts +10 -8
  639. package/dist/store/auth.js +17 -12
  640. package/dist/store/candidates.d.ts +23 -5
  641. package/dist/store/candidates.js +119 -71
  642. package/dist/store/capture-write.d.ts +17 -0
  643. package/dist/store/capture-write.js +35 -0
  644. package/dist/store/card-detail.d.ts +2 -1
  645. package/dist/store/card-detail.js +2 -1
  646. package/dist/store/cards.d.ts +14 -9
  647. package/dist/store/cards.js +72 -126
  648. package/dist/store/compaction-caller.d.ts +18 -0
  649. package/dist/store/compaction-caller.js +29 -0
  650. package/dist/store/compactions-record.d.ts +115 -0
  651. package/dist/store/compactions-record.js +417 -0
  652. package/dist/store/compactions.js +6 -4
  653. package/dist/store/conflicts.d.ts +4 -21
  654. package/dist/store/conflicts.js +76 -152
  655. package/dist/store/connectors/dlq.d.ts +10 -0
  656. package/dist/store/connectors/dlq.js +32 -0
  657. package/dist/store/connectors/github.d.ts +14 -16
  658. package/dist/store/connectors/github.js +34 -57
  659. package/dist/store/connectors/slack.d.ts +2 -11
  660. package/dist/store/connectors/slack.js +18 -47
  661. package/dist/store/dashboard-reads.js +11 -14
  662. package/dist/store/delete-and-batch.d.ts +17 -31
  663. package/dist/store/delete-and-batch.js +84 -67
  664. package/dist/store/delivery-recorder.d.ts +15 -4
  665. package/dist/store/delivery-recorder.js +34 -17
  666. package/dist/store/descendant-page.js +6 -3
  667. package/dist/store/diagnostics.js +6 -13
  668. package/dist/store/dormant.d.ts +8 -30
  669. package/dist/store/dormant.js +18 -57
  670. package/dist/store/embeddings/index.d.ts +11 -90
  671. package/dist/store/embeddings/index.js +18 -523
  672. package/dist/store/entry-reads.d.ts +34 -61
  673. package/dist/store/entry-reads.js +111 -136
  674. package/dist/store/entry-row.d.ts +6 -35
  675. package/dist/store/entry-row.js +9 -37
  676. package/dist/store/entry-writes.d.ts +12 -18
  677. package/dist/store/entry-writes.js +46 -44
  678. package/dist/store/failure-log-at.d.ts +8 -0
  679. package/dist/store/failure-log-at.js +16 -0
  680. package/dist/store/failure-log.d.ts +2 -2
  681. package/dist/store/failure-log.js +5 -3
  682. package/dist/{trust → store}/gated-write.d.ts +3 -1
  683. package/dist/{trust → store}/gated-write.js +7 -5
  684. package/dist/store/goals.d.ts +3 -40
  685. package/dist/store/goals.js +41 -178
  686. package/dist/store/graph-queue.d.ts +6 -22
  687. package/dist/store/graph-queue.js +14 -45
  688. package/dist/store/graph-reads.d.ts +11 -35
  689. package/dist/store/graph-reads.js +24 -60
  690. package/dist/store/graph-rows.d.ts +3 -6
  691. package/dist/store/graph-rows.js +6 -9
  692. package/dist/store/graph-view-rows.d.ts +2 -1
  693. package/dist/store/graph-view-rows.js +2 -1
  694. package/dist/store/graph-writes.d.ts +10 -35
  695. package/dist/store/graph-writes.js +59 -106
  696. package/dist/store/half-life.d.ts +2 -1
  697. package/dist/store/half-life.js +14 -16
  698. package/dist/store/handoffs.d.ts +6 -12
  699. package/dist/store/handoffs.js +22 -40
  700. package/dist/store/index-and-stats.d.ts +6 -19
  701. package/dist/store/index-and-stats.js +36 -84
  702. package/dist/store/key-writes.js +1 -1
  703. package/dist/store/ledger-turn.d.ts +9 -0
  704. package/dist/store/ledger-turn.js +38 -0
  705. package/dist/store/mirrors.d.ts +2 -6
  706. package/dist/store/mirrors.js +24 -29
  707. package/dist/store/open.d.ts +0 -4
  708. package/dist/store/open.js +42 -62
  709. package/dist/store/pilot-arm.d.ts +12 -0
  710. package/dist/store/pilot-arm.js +42 -0
  711. package/dist/store/planning-fallacy-evidence.d.ts +2 -30
  712. package/dist/store/planning-fallacy-evidence.js +8 -37
  713. package/dist/store/port.d.ts +91 -82
  714. package/dist/store/port.js +8 -0
  715. package/dist/store/predictions.d.ts +12 -53
  716. package/dist/store/predictions.js +41 -125
  717. package/dist/store/project-tags.d.ts +62 -0
  718. package/dist/store/project-tags.js +67 -0
  719. package/dist/{cli → store}/quality-repair.js +15 -31
  720. package/dist/store/quarantine.js +2 -1
  721. package/dist/store/raw-archive.d.ts +4 -16
  722. package/dist/store/raw-archive.js +14 -29
  723. package/dist/store/recall-trace.d.ts +12 -77
  724. package/dist/store/recall-trace.js +37 -97
  725. package/dist/store/rejected-values.js +9 -20
  726. package/dist/store/rejection-probe.d.ts +4 -0
  727. package/dist/store/rejection-probe.js +19 -0
  728. package/dist/store/rejection.d.ts +10 -73
  729. package/dist/store/rejection.js +12 -84
  730. package/dist/store/report-reads.d.ts +6 -0
  731. package/dist/store/report-reads.js +29 -0
  732. package/dist/store/rows.d.ts +9 -19
  733. package/dist/store/rows.js +36 -34
  734. package/dist/store/rule-sql.d.ts +14 -0
  735. package/dist/store/rule-sql.js +56 -0
  736. package/dist/store/search-rows.d.ts +7 -38
  737. package/dist/store/search-rows.js +23 -54
  738. package/dist/store/sessions.d.ts +10 -47
  739. package/dist/store/sessions.js +21 -75
  740. package/dist/store/set-aside.d.ts +14 -0
  741. package/dist/store/set-aside.js +23 -0
  742. package/dist/store/sqlite/busy.d.ts +3 -0
  743. package/dist/store/sqlite/busy.js +8 -0
  744. package/dist/store/sqlite/connector-events-group.js +5 -8
  745. package/dist/store/sqlite/connector-writes-group.js +3 -3
  746. package/dist/store/sqlite/entry-writes-group.js +4 -4
  747. package/dist/store/sqlite/error-codec.js +8 -5
  748. package/dist/store/sqlite/executor.d.ts +2 -1
  749. package/dist/store/sqlite/executor.js +12 -5
  750. package/dist/store/sqlite/graph-reads-group.js +1 -1
  751. package/dist/store/sqlite/held-connection.d.ts +9 -0
  752. package/dist/store/sqlite/held-connection.js +41 -0
  753. package/dist/store/sqlite/local.d.ts +3 -3
  754. package/dist/store/sqlite/local.js +1 -0
  755. package/dist/store/sqlite/object-rows.d.ts +1 -1
  756. package/dist/store/sqlite/object-rows.js +6 -3
  757. package/dist/store/sqlite/objects-group.d.ts +1 -1
  758. package/dist/store/sqlite/objects-group.js +5 -3
  759. package/dist/store/sqlite/quarantine-group.js +2 -2
  760. package/dist/store/sqlite/store.d.ts +1 -4
  761. package/dist/store/sqlite/store.js +16 -15
  762. package/dist/store/sqlite/vector-reads-group.js +2 -2
  763. package/dist/store/sqlite/worker-jobs.js +1 -1
  764. package/dist/store/sqlite/worker-ops.d.ts +13 -2
  765. package/dist/store/sqlite/worker-ops.js +13 -2
  766. package/dist/store/sqlite/worker-store.js +5 -2
  767. package/dist/store/summaries.d.ts +11 -63
  768. package/dist/store/summaries.js +37 -148
  769. package/dist/store/summary-dirty.js +1 -1
  770. package/dist/store/tenant-lookup.d.ts +6 -1
  771. package/dist/store/tenant-lookup.js +7 -0
  772. package/dist/store/tenant.d.ts +2 -16
  773. package/dist/store/tenant.js +4 -19
  774. package/dist/store/token-ledger.d.ts +13 -50
  775. package/dist/store/token-ledger.js +19 -85
  776. package/dist/store/usage-reports.js +5 -13
  777. package/dist/store/vector-index.d.ts +46 -0
  778. package/dist/store/vector-index.js +171 -0
  779. package/dist/store/working-memory.d.ts +6 -25
  780. package/dist/store/working-memory.js +18 -52
  781. package/dist/support-bundle.js +9 -8
  782. package/dist/trust/reject-flow.js +3 -5
  783. package/dist/util/agent-homes.d.ts +15 -0
  784. package/dist/util/agent-homes.js +34 -0
  785. package/dist/util/anthropic-messages.d.ts +3 -0
  786. package/dist/util/anthropic-messages.js +35 -6
  787. package/dist/util/atomic-write.d.ts +2 -1
  788. package/dist/util/atomic-write.js +35 -4
  789. package/dist/util/capped-json.d.ts +6 -0
  790. package/dist/util/capped-json.js +46 -0
  791. package/dist/util/chunked.d.ts +3 -0
  792. package/dist/util/chunked.js +10 -0
  793. package/dist/util/crash-handlers.d.ts +8 -1
  794. package/dist/util/crash-handlers.js +52 -10
  795. package/dist/util/ellipsize.d.ts +3 -0
  796. package/dist/util/ellipsize.js +5 -0
  797. package/dist/util/env.d.ts +14 -6
  798. package/dist/util/env.js +15 -7
  799. package/dist/util/format.d.ts +3 -0
  800. package/dist/util/format.js +6 -0
  801. package/dist/util/home-path.d.ts +2 -1
  802. package/dist/util/home-path.js +4 -2
  803. package/dist/util/hook-payload.d.ts +8 -0
  804. package/dist/util/hook-payload.js +37 -0
  805. package/dist/util/http-retry.d.ts +9 -1
  806. package/dist/util/http-retry.js +67 -8
  807. package/dist/util/http-util.d.ts +0 -8
  808. package/dist/util/http-util.js +10 -21
  809. package/dist/util/limits.d.ts +7 -0
  810. package/dist/util/limits.js +14 -0
  811. package/dist/util/log.d.ts +7 -2
  812. package/dist/util/log.js +34 -9
  813. package/dist/util/request-scope.d.ts +5 -2
  814. package/dist/util/request-scope.js +13 -7
  815. package/dist/util/secret-detect.d.ts +5 -30
  816. package/dist/util/secret-detect.js +19 -40
  817. package/dist/util/sqlite-blocked.d.ts +2 -0
  818. package/dist/util/sqlite-blocked.js +5 -0
  819. package/dist/util/stored-json.d.ts +1 -1
  820. package/dist/util/stored-json.js +1 -1
  821. package/dist/util/stream-tee.d.ts +3 -0
  822. package/dist/util/stream-tee.js +35 -0
  823. package/dist/util/time.d.ts +4 -0
  824. package/dist/util/time.js +4 -0
  825. package/dist/util/token-text.d.ts +1 -4
  826. package/dist/util/token-text.js +1 -4
  827. package/dist/util/transcript-tail.d.ts +2 -0
  828. package/dist/util/transcript-tail.js +24 -23
  829. package/dist/util/version.d.ts +5 -20
  830. package/dist/util/version.js +5 -20
  831. package/dist/{store → util}/yaml.d.ts +1 -5
  832. package/dist/{store → util}/yaml.js +2 -6
  833. package/extensions/openclaw-plugin/index.ts +1 -1
  834. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  835. package/extensions/openclaw-plugin/package.json +1 -1
  836. package/openclaw.plugin.json +1 -1
  837. package/package.json +2 -2
  838. package/dist/cli/provenance-coverage.d.ts +0 -18
  839. package/dist/connectors/github/cli-impl.d.ts +0 -25
  840. package/dist/sharing/scope.d.ts +0 -14
  841. package/dist/sharing/shared.d.ts +0 -187
  842. package/dist/sharing/shared.js +0 -563
  843. package/dist/store/embeddings/local.d.ts +0 -15
  844. package/dist/store/embeddings/local.js +0 -192
  845. package/dist/store/embeddings/provider.d.ts +0 -77
  846. package/dist/store/markdown.d.ts +0 -10
  847. package/dist/store/recall-scope.d.ts +0 -138
  848. package/dist/store/recall-scope.js +0 -216
  849. package/dist/store/vector-writes.d.ts +0 -13
  850. package/dist/store/vector-writes.js +0 -89
  851. /package/dist/{store → core}/object-types.d.ts +0 -0
  852. /package/dist/{store → core}/object-types.js +0 -0
  853. /package/dist/{cli → store}/quality-repair.d.ts +0 -0
  854. /package/dist/{capture → util}/compaction-items.d.ts +0 -0
  855. /package/dist/{capture → util}/compaction-items.js +0 -0
@@ -1,14 +1,6 @@
1
- /**
2
- * Memory-as-Physics engine for Hippo.
3
- *
4
- * Pure math module: forces, Velocity Verlet integration, physics-based scoring,
5
- * and cluster amplification. No I/O — all state is passed in and returned.
6
- *
7
- * Memories are particles on the unit hypersphere in embedding space (384-dim).
8
- * Forces act on them: query gravity (retrieval), inter-memory attraction,
9
- * conflict repulsion, and drag (consolidation). Nearby high-scoring memories
10
- * amplify each other via constructive interference.
11
- */
1
+ /** Memory-as-Physics engine: pure math (forces, Velocity Verlet integration, physics-based scoring, cluster amplification), no I/O.
2
+ * Memories are particles on the unit hypersphere in embedding space (384-dim); query gravity, attraction, conflict repulsion and drag act on them,
3
+ * and nearby high-scoring memories amplify each other. */
12
4
  import { type EmotionalValence } from './memory.js';
13
5
  import type { PhysicsConfig } from './physics-config.js';
14
6
  export interface PhysicsParticle {
@@ -51,42 +43,16 @@ export declare function vecClampMagnitude(v: number[], maxMag: number): number[]
51
43
  export declare function computeMass(strength: number, retrievalCount: number): number;
52
44
  export declare function computeCharge(valence: EmotionalValence): number;
53
45
  export declare function computeTemperature(ageDays: number, temperatureDecay: number): number;
54
- /**
55
- * Query gravity (retrieval-time, virtual — does not update position).
56
- * Returns scalar force magnitude for ranking.
57
- *
58
- * F_query(i) = G_Q * mass(i) * max(0, cosine(pos_i, query))^2
59
- */
46
+ /** Query gravity (retrieval-time, virtual: does not move the particle): scalar ranking magnitude F = G_Q * mass * max(0, cosine(pos, query))^2. */
60
47
  export declare function queryGravityMagnitude(particle: PhysicsParticle, queryEmbedding: number[], G_query: number): number;
61
- /**
62
- * Momentum bonus: how aligned is the particle's velocity with the query direction?
63
- * Returns a value in [0, 1].
64
- */
48
+ /** Momentum bonus in [0, 1]: how aligned the particle's velocity is with the query direction. */
65
49
  export declare function velocityAlignmentBonus(particle: PhysicsParticle, queryEmbedding: number[]): number;
66
- /**
67
- * Inter-memory attraction force vector (consolidation-time).
68
- * Attractive force from particle j on particle i.
69
- *
70
- * F_attract(i,j) = G_M * m_i * m_j * max(0, cosine(i,j))^3 * direction(j→i in embedding space)
71
- *
72
- * Direction is computed as the component of (pos_j - pos_i) that lies tangent to the
73
- * unit sphere at pos_i (since we normalize positions back to the sphere after integration).
74
- */
75
- export declare function attractionForce(pi: PhysicsParticle, pj: PhysicsParticle, G_memory: number): number[];
76
- /**
77
- * Conflict repulsion force vector (consolidation-time).
78
- * Repulsive force pushing i away from j.
79
- *
80
- * F_repel(i,j) = K_R * m_i * m_j / max(0.01, cosine_distance(i,j))^2
81
- * where cosine_distance = 1 - cosine_similarity
82
- */
50
+ /** Attraction force on particle i from j (consolidation-time): G_M m_i m_j max(0, cosine)^3, directed along (pos_j - pos_i) projected tangent to the unit
51
+ * sphere at pos_i (positions are re-normalized to the sphere after integration). Adds into `out` (a fresh zero vector by default) using `diff` as scratch. */
52
+ export declare function attractionForce(pi: PhysicsParticle, pj: PhysicsParticle, G_memory: number, out?: number[], diff?: number[]): number[];
53
+ /** Conflict repulsion on i away from j (consolidation-time): K_R * m_i * m_j / max(0.01, cosine_distance)^2, where cosine_distance = 1 - cosine_similarity. */
83
54
  export declare function repulsionForce(pi: PhysicsParticle, pj: PhysicsParticle, K_repulsion: number): number[];
84
- /**
85
- * Drag force vector (consolidation-time).
86
- * F_drag(i) = -drag * velocity(i) / max(1, effective_half_life(i))
87
- *
88
- * effectiveHalfLife should be passed in from the memory's current half_life_days.
89
- */
55
+ /** Drag force (consolidation-time): -drag * velocity / max(1, effectiveHalfLife), with effectiveHalfLife from the memory's current half_life_days. */
90
56
  export declare function dragForce(particle: PhysicsParticle, drag: number, effectiveHalfLife: number): number[];
91
57
  export interface ForceContext {
92
58
  /** Map of memory ID -> list of conflicting memory IDs */
@@ -95,26 +61,14 @@ export interface ForceContext {
95
61
  halfLives: Map<string, number>;
96
62
  config: PhysicsConfig;
97
63
  }
98
- /**
99
- * Run the full physics simulation for one sleep cycle.
100
- * Mutates particles in place. Returns simulation statistics.
101
- */
64
+ /** Full physics simulation for one sleep cycle; mutates particles in place and returns simulation statistics. */
102
65
  export declare function simulate(particles: PhysicsParticle[], ctx: ForceContext): SimulationStats;
103
66
  export declare function computeSystemEnergy(particles: PhysicsParticle[], G_memory: number): SystemEnergy;
104
- /**
105
- * Score all particles against a query embedding using physics-based ranking.
106
- * Does NOT modify particle positions (virtual force computation).
107
- */
67
+ /** Scores all particles against a query embedding; virtual force computation, so it does NOT modify particle positions. */
108
68
  export declare function physicsScore(particles: PhysicsParticle[], queryEmbedding: number[], config: PhysicsConfig,
109
- /** Cross-ingest-stable tie key per memoryId (typically the memory's
110
- * content, supplied by the caller which has entries in scope). Without
111
- * it ties fall to memoryId -- per-instance only, which lets the
112
- * cluster_top_k amplification set vary across fresh ingests. */
69
+ /** Cross-ingest-stable tie key per memoryId (typically the memory content, from a caller with entries in scope); without it ties fall to memoryId,
70
+ * which is per-instance only and lets the cluster_top_k amplification set vary across fresh ingests. */
113
71
  tieKeyOf?: (memoryId: string) => string): ScoredPhysicsResult[];
114
- /**
115
- * Nudge a particle's position toward (good outcome) or away from (bad outcome)
116
- * the query embedding. Respects temperature: new memories respond more.
117
- * Mutates particle in place.
118
- */
72
+ /** Nudges a particle toward (good outcome) or away from (bad outcome) the query embedding; new memories respond more (temperature). Mutates in place. */
119
73
  export declare function applyOutcomeFeedback(particle: PhysicsParticle, queryEmbedding: number[], good: boolean, feedbackAlpha: number): void;
120
74
  //# sourceMappingURL=physics.d.ts.map
@@ -1,20 +1,10 @@
1
- /**
2
- * Memory-as-Physics engine for Hippo.
3
- *
4
- * Pure math module: forces, Velocity Verlet integration, physics-based scoring,
5
- * and cluster amplification. No I/O — all state is passed in and returned.
6
- *
7
- * Memories are particles on the unit hypersphere in embedding space (384-dim).
8
- * Forces act on them: query gravity (retrieval), inter-memory attraction,
9
- * conflict repulsion, and drag (consolidation). Nearby high-scoring memories
10
- * amplify each other via constructive interference.
11
- */
1
+ /** Memory-as-Physics engine: pure math (forces, Velocity Verlet integration, physics-based scoring, cluster amplification), no I/O.
2
+ * Memories are particles on the unit hypersphere in embedding space (384-dim); query gravity, attraction, conflict repulsion and drag act on them,
3
+ * and nearby high-scoring memories amplify each other. */
4
+ import { cosineOf } from './cosine.js';
12
5
  import { isRecallBoostAblated } from './ablation.js';
13
6
  import { FALLBACK_HALF_LIFE_DAYS } from './memory.js';
14
7
  import { comparePhysicsResultsBy } from './compare.js';
15
- // ---------------------------------------------------------------------------
16
- // Vector math (hot path — kept inline for performance)
17
- // ---------------------------------------------------------------------------
18
8
  export function vecDot(a, b) {
19
9
  let sum = 0;
20
10
  for (let i = 0; i < a.length; i++)
@@ -25,25 +15,25 @@ export function vecNorm(v) {
25
15
  return Math.sqrt(vecDot(v, v));
26
16
  }
27
17
  export function vecScale(v, s) {
28
- const out = new Array(v.length);
18
+ const out = v.slice();
29
19
  for (let i = 0; i < v.length; i++)
30
20
  out[i] = v[i] * s;
31
21
  return out;
32
22
  }
33
23
  export function vecAdd(a, b) {
34
- const out = new Array(a.length);
24
+ const out = a.slice();
35
25
  for (let i = 0; i < a.length; i++)
36
26
  out[i] = a[i] + b[i];
37
27
  return out;
38
28
  }
39
29
  export function vecSub(a, b) {
40
- const out = new Array(a.length);
30
+ const out = a.slice();
41
31
  for (let i = 0; i < a.length; i++)
42
32
  out[i] = a[i] - b[i];
43
33
  return out;
44
34
  }
45
35
  export function vecZero(dim) {
46
- return new Array(dim).fill(0);
36
+ return Array(dim).fill(0);
47
37
  }
48
38
  /** Normalize to unit length. Returns zero vector if magnitude < epsilon. */
49
39
  export function vecNormalize(v) {
@@ -59,20 +49,6 @@ export function vecClampMagnitude(v, maxMag) {
59
49
  return v;
60
50
  return vecScale(v, maxMag / mag);
61
51
  }
62
- /** Cosine similarity between two vectors. */
63
- function cosine(a, b) {
64
- if (a.length === 0 || b.length === 0 || a.length !== b.length)
65
- return 0;
66
- const dot = vecDot(a, b);
67
- const na = vecNorm(a);
68
- const nb = vecNorm(b);
69
- if (na < 1e-10 || nb < 1e-10)
70
- return 0;
71
- return Math.min(1, Math.max(-1, dot / (na * nb)));
72
- }
73
- // ---------------------------------------------------------------------------
74
- // Property derivation from memory attributes
75
- // ---------------------------------------------------------------------------
76
52
  const CHARGE_MAP = {
77
53
  neutral: 0,
78
54
  positive: 0.3,
@@ -80,9 +56,8 @@ const CHARGE_MAP = {
80
56
  critical: -1.0,
81
57
  };
82
58
  export function computeMass(strength, retrievalCount) {
83
- // EVAL-ONLY ablation (see ablation.ts): under the recall-boost flag mass ignores retrieval history, since
84
- // query gravity ranks by mass and prior counts would leak strengthening into the ablated arm's
85
- // physics-pool rankings. Covers both the init and refresh callers in physics-state.ts.
59
+ // EVAL-ONLY ablation (ablation.ts): under the recall-boost flag mass ignores retrieval history, which would otherwise leak strengthening into the ablated
60
+ // arm's physics-pool rankings (query gravity ranks by mass). Covers both init and refresh callers in physics-state.ts.
86
61
  const effectiveCount = isRecallBoostAblated() ? 0 : retrievalCount;
87
62
  return Math.max(0.01, strength * (1 + 0.1 * Math.log2(effectiveCount + 1)));
88
63
  }
@@ -92,23 +67,12 @@ export function computeCharge(valence) {
92
67
  export function computeTemperature(ageDays, temperatureDecay) {
93
68
  return 1 / (ageDays * temperatureDecay + 1);
94
69
  }
95
- // ---------------------------------------------------------------------------
96
- // Force computations
97
- // ---------------------------------------------------------------------------
98
- /**
99
- * Query gravity (retrieval-time, virtual — does not update position).
100
- * Returns scalar force magnitude for ranking.
101
- *
102
- * F_query(i) = G_Q * mass(i) * max(0, cosine(pos_i, query))^2
103
- */
70
+ /** Query gravity (retrieval-time, virtual: does not move the particle): scalar ranking magnitude F = G_Q * mass * max(0, cosine(pos, query))^2. */
104
71
  export function queryGravityMagnitude(particle, queryEmbedding, G_query) {
105
- const cos = cosine(particle.position, queryEmbedding);
72
+ const cos = cosineOf(particle.position, queryEmbedding);
106
73
  return G_query * particle.mass * Math.pow(Math.max(0, cos), 2);
107
74
  }
108
- /**
109
- * Momentum bonus: how aligned is the particle's velocity with the query direction?
110
- * Returns a value in [0, 1].
111
- */
75
+ /** Momentum bonus in [0, 1]: how aligned the particle's velocity is with the query direction. */
112
76
  export function velocityAlignmentBonus(particle, queryEmbedding) {
113
77
  if (particle.velocity.length === 0 || particle.velocity.length !== queryEmbedding.length)
114
78
  return 0;
@@ -119,79 +83,71 @@ export function velocityAlignmentBonus(particle, queryEmbedding) {
119
83
  const alignment = vecDot(particle.velocity, queryEmbedding) / (velMag * qNorm);
120
84
  return Math.max(0, alignment);
121
85
  }
122
- /**
123
- * Inter-memory attraction force vector (consolidation-time).
124
- * Attractive force from particle j on particle i.
125
- *
126
- * F_attract(i,j) = G_M * m_i * m_j * max(0, cosine(i,j))^3 * direction(j→i in embedding space)
127
- *
128
- * Direction is computed as the component of (pos_j - pos_i) that lies tangent to the
129
- * unit sphere at pos_i (since we normalize positions back to the sphere after integration).
130
- */
131
- export function attractionForce(pi, pj, G_memory) {
132
- const cos = cosine(pi.position, pj.position);
86
+ /** Attraction force on particle i from j (consolidation-time): G_M m_i m_j max(0, cosine)^3, directed along (pos_j - pos_i) projected tangent to the unit
87
+ * sphere at pos_i (positions are re-normalized to the sphere after integration). Adds into `out` (a fresh zero vector by default) using `diff` as scratch. */
88
+ export function attractionForce(pi, pj, G_memory, out = vecZero(pi.position.length), diff = vecZero(pi.position.length)) {
89
+ const cos = cosineOf(pi.position, pj.position);
133
90
  if (cos <= 0)
134
- return vecZero(pi.position.length);
91
+ return out;
135
92
  const magnitude = G_memory * pi.mass * pj.mass * Math.pow(cos, 3);
136
93
  // Direction: from i toward j (tangent projection handled by normalization after integration)
137
- const direction = vecNormalize(vecSub(pj.position, pi.position));
138
- return vecScale(direction, magnitude);
94
+ for (let k = 0; k < out.length; k++)
95
+ diff[k] = pj.position[k] - pi.position[k];
96
+ const norm = vecNorm(diff);
97
+ if (norm < 1e-10)
98
+ return out;
99
+ const inv = 1 / norm;
100
+ for (let k = 0; k < out.length; k++)
101
+ out[k] += diff[k] * inv * magnitude;
102
+ return out;
139
103
  }
140
- /**
141
- * Conflict repulsion force vector (consolidation-time).
142
- * Repulsive force pushing i away from j.
143
- *
144
- * F_repel(i,j) = K_R * m_i * m_j / max(0.01, cosine_distance(i,j))^2
145
- * where cosine_distance = 1 - cosine_similarity
146
- */
104
+ /** Conflict repulsion on i away from j (consolidation-time): K_R * m_i * m_j / max(0.01, cosine_distance)^2, where cosine_distance = 1 - cosine_similarity. */
147
105
  export function repulsionForce(pi, pj, K_repulsion) {
148
- const cos = cosine(pi.position, pj.position);
106
+ const cos = cosineOf(pi.position, pj.position);
149
107
  const dist = Math.max(0.01, 1 - cos);
150
108
  const magnitude = K_repulsion * pi.mass * pj.mass / (dist * dist);
151
109
  // Direction: away from j
152
110
  const direction = vecNormalize(vecSub(pi.position, pj.position));
153
111
  return vecScale(direction, magnitude);
154
112
  }
155
- /**
156
- * Drag force vector (consolidation-time).
157
- * F_drag(i) = -drag * velocity(i) / max(1, effective_half_life(i))
158
- *
159
- * effectiveHalfLife should be passed in from the memory's current half_life_days.
160
- */
113
+ /** Drag force (consolidation-time): -drag * velocity / max(1, effectiveHalfLife), with effectiveHalfLife from the memory's current half_life_days. */
161
114
  export function dragForce(particle, drag, effectiveHalfLife) {
162
115
  const damping = drag / Math.max(1, effectiveHalfLife);
163
116
  return vecScale(particle.velocity, -damping);
164
117
  }
165
- /**
166
- * Compute net force on particle i from all other particles + drag.
167
- */
168
- function computeNetForce(i, particles, ctx) {
118
+ function addInto(net, force) {
119
+ for (let k = 0; k < net.length; k++)
120
+ net[k] += force[k];
121
+ }
122
+ /** The net force on particle i, accumulated into one new array; `diff` is the caller's scratch for pair directions. */
123
+ function computeNetForce(i, particles, ctx, diff) {
169
124
  const pi = particles[i];
170
125
  const dim = pi.position.length;
171
- let net = vecZero(dim);
126
+ const net = vecZero(dim);
172
127
  const conflicts = ctx.conflictPairs.get(pi.memoryId);
173
128
  for (let j = 0; j < particles.length; j++) {
174
129
  if (i === j)
175
130
  continue;
176
131
  const pj = particles[j];
177
132
  // Attraction (all pairs)
178
- const fa = attractionForce(pi, pj, ctx.config.G_memory);
179
- net = vecAdd(net, fa);
133
+ attractionForce(pi, pj, ctx.config.G_memory, net, diff);
180
134
  // Repulsion (conflict pairs only)
181
- if (conflicts?.has(pj.memoryId)) {
182
- const fr = repulsionForce(pi, pj, ctx.config.K_repulsion);
183
- net = vecAdd(net, fr);
184
- }
135
+ if (conflicts?.has(pj.memoryId))
136
+ addInto(net, repulsionForce(pi, pj, ctx.config.K_repulsion));
185
137
  }
186
138
  // Drag
187
- const fd = dragForce(pi, ctx.config.drag, ctx.halfLives.get(pi.memoryId) ?? FALLBACK_HALF_LIFE_DAYS);
188
- net = vecAdd(net, fd);
139
+ addInto(net, dragForce(pi, ctx.config.drag, ctx.halfLives.get(pi.memoryId) ?? FALLBACK_HALF_LIFE_DAYS));
189
140
  return net;
190
141
  }
191
- /**
192
- * Run one Velocity Verlet integration step for all particles.
193
- * Mutates particles in place for performance.
194
- */
142
+ /** Acceleration of particle i: its net force divided by mass, scaled in place. */
143
+ function computeAcceleration(i, particles, ctx, diff) {
144
+ const accel = computeNetForce(i, particles, ctx, diff);
145
+ const inv = 1 / Math.max(0.01, particles[i].mass);
146
+ for (let k = 0; k < accel.length; k++)
147
+ accel[k] *= inv;
148
+ return accel;
149
+ }
150
+ /** One Velocity Verlet step for all particles; mutates in place for performance. */
195
151
  function verletStep(particles, accelerations, ctx) {
196
152
  const dt = ctx.config.dt;
197
153
  const maxVel = ctx.config.max_velocity;
@@ -203,11 +159,10 @@ function verletStep(particles, accelerations, ctx) {
203
159
  p.position = vecAdd(vecAdd(p.position, velDt), accelDt2);
204
160
  }
205
161
  // Compute new accelerations
162
+ const diff = vecZero(particles[0].position.length);
206
163
  const newAccelerations = [];
207
- for (let i = 0; i < particles.length; i++) {
208
- const force = computeNetForce(i, particles, ctx);
209
- newAccelerations.push(vecScale(force, 1 / Math.max(0.01, particles[i].mass)));
210
- }
164
+ for (let i = 0; i < particles.length; i++)
165
+ newAccelerations.push(computeAcceleration(i, particles, ctx, diff));
211
166
  // Velocity update: vel += 0.5*(accel_old + accel_new)*dt
212
167
  for (let i = 0; i < particles.length; i++) {
213
168
  const p = particles[i];
@@ -222,10 +177,7 @@ function verletStep(particles, accelerations, ctx) {
222
177
  accelerations[i] = newAccelerations[i];
223
178
  }
224
179
  }
225
- /**
226
- * Run the full physics simulation for one sleep cycle.
227
- * Mutates particles in place. Returns simulation statistics.
228
- */
180
+ /** Full physics simulation for one sleep cycle; mutates particles in place and returns simulation statistics. */
229
181
  export function simulate(particles, ctx) {
230
182
  if (particles.length === 0) {
231
183
  return {
@@ -237,10 +189,8 @@ export function simulate(particles, ctx) {
237
189
  };
238
190
  }
239
191
  // Initial accelerations
240
- const accelerations = particles.map((_, i) => {
241
- const force = computeNetForce(i, particles, ctx);
242
- return vecScale(force, 1 / Math.max(0.01, particles[i].mass));
243
- });
192
+ const diff = vecZero(particles[0].position.length);
193
+ const accelerations = particles.map((_, i) => computeAcceleration(i, particles, ctx, diff));
244
194
  // Run substeps
245
195
  for (let step = 0; step < ctx.config.substeps; step++) {
246
196
  verletStep(particles, accelerations, ctx);
@@ -268,9 +218,6 @@ export function simulate(particles, ctx) {
268
218
  substepsRun: ctx.config.substeps,
269
219
  };
270
220
  }
271
- // ---------------------------------------------------------------------------
272
- // System energy (health monitoring)
273
- // ---------------------------------------------------------------------------
274
221
  export function computeSystemEnergy(particles, G_memory) {
275
222
  let kinetic = 0;
276
223
  let potential = 0;
@@ -280,24 +227,16 @@ export function computeSystemEnergy(particles, G_memory) {
280
227
  }
281
228
  for (let i = 0; i < particles.length; i++) {
282
229
  for (let j = i + 1; j < particles.length; j++) {
283
- const cos = cosine(particles[i].position, particles[j].position);
230
+ const cos = cosineOf(particles[i].position, particles[j].position);
284
231
  potential -= G_memory * particles[i].mass * particles[j].mass * Math.max(0, cos);
285
232
  }
286
233
  }
287
234
  return { kinetic, potential, total: kinetic + potential };
288
235
  }
289
- // ---------------------------------------------------------------------------
290
- // Physics-based scoring (retrieval-time)
291
- // ---------------------------------------------------------------------------
292
- /**
293
- * Score all particles against a query embedding using physics-based ranking.
294
- * Does NOT modify particle positions (virtual force computation).
295
- */
236
+ /** Scores all particles against a query embedding; virtual force computation, so it does NOT modify particle positions. */
296
237
  export function physicsScore(particles, queryEmbedding, config,
297
- /** Cross-ingest-stable tie key per memoryId (typically the memory's
298
- * content, supplied by the caller which has entries in scope). Without
299
- * it ties fall to memoryId -- per-instance only, which lets the
300
- * cluster_top_k amplification set vary across fresh ingests. */
238
+ /** Cross-ingest-stable tie key per memoryId (typically the memory content, from a caller with entries in scope); without it ties fall to memoryId,
239
+ * which is per-instance only and lets the cluster_top_k amplification set vary across fresh ingests. */
301
240
  tieKeyOf) {
302
241
  if (particles.length === 0 || queryEmbedding.length === 0)
303
242
  return [];
@@ -312,10 +251,8 @@ tieKeyOf) {
312
251
  finalScore: gravity + momentum,
313
252
  };
314
253
  });
315
- // Sort by base score for top-K selection: score desc -> tie key asc.
316
- // The tie order here picks the cluster_top_k amplification SET (which
317
- // mutates scores), so it must be cross-ingest-stable when the caller
318
- // supplies a content tie key. See compare.ts comparePhysicsResultsBy.
254
+ // Base-score order picks the cluster_top_k amplification SET (which mutates scores), so ties must be cross-ingest-stable
255
+ // when the caller supplies a content tie key (see comparePhysicsResultsBy in compare.ts).
319
256
  const tie = tieKeyOf ? (r) => tieKeyOf(r.memoryId) : undefined;
320
257
  results.sort(comparePhysicsResultsBy((r) => r.baseScore, tie));
321
258
  // Pass 2: cluster amplification on top K
@@ -324,10 +261,7 @@ tieKeyOf) {
324
261
  results.sort(comparePhysicsResultsBy((r) => r.finalScore, tie));
325
262
  return results;
326
263
  }
327
- /**
328
- * Cluster amplification: nearby high-scoring memories reinforce each other.
329
- * Mutates results in place.
330
- */
264
+ /** Cluster amplification: nearby high-scoring memories reinforce each other; mutates results in place. */
331
265
  function applyClusterAmplification(results, particles, config) {
332
266
  const topK = Math.min(config.cluster_top_k, results.length);
333
267
  if (topK < 2)
@@ -348,7 +282,7 @@ function applyClusterAmplification(results, particles, config) {
348
282
  const pj = particleMap.get(top[j].memoryId);
349
283
  if (!pj)
350
284
  continue;
351
- const proximity = cosine(pi.position, pj.position);
285
+ const proximity = cosineOf(pi.position, pj.position);
352
286
  if (proximity > config.cluster_threshold) {
353
287
  clusterSignal += top[j].baseScore * proximity;
354
288
  }
@@ -358,14 +292,7 @@ function applyClusterAmplification(results, particles, config) {
358
292
  top[i].finalScore = top[i].baseScore * amplification;
359
293
  }
360
294
  }
361
- // ---------------------------------------------------------------------------
362
- // Outcome feedback (micro-nudge)
363
- // ---------------------------------------------------------------------------
364
- /**
365
- * Nudge a particle's position toward (good outcome) or away from (bad outcome)
366
- * the query embedding. Respects temperature: new memories respond more.
367
- * Mutates particle in place.
368
- */
295
+ /** Nudges a particle toward (good outcome) or away from (bad outcome) the query embedding; new memories respond more (temperature). Mutates in place. */
369
296
  export function applyOutcomeFeedback(particle, queryEmbedding, good, feedbackAlpha) {
370
297
  if (particle.position.length === 0 || particle.position.length !== queryEmbedding.length)
371
298
  return;
@@ -0,0 +1,3 @@
1
+ export type ClosureState = 'open' | 'closed' | 'closed-unknown';
2
+ export declare const VALID_CLOSURE_STATES: ReadonlySet<ClosureState>;
3
+ //# sourceMappingURL=prediction.d.ts.map
@@ -0,0 +1,6 @@
1
+ export const VALID_CLOSURE_STATES = new Set([
2
+ 'open',
3
+ 'closed',
4
+ 'closed-unknown',
5
+ ]);
6
+ //# sourceMappingURL=prediction.js.map
@@ -1,22 +1,5 @@
1
- /**
2
- * Project identity resolution for memory scope isolation.
3
- *
4
- * Resolution rules:
5
- * - The nearest ancestor of cwd (including cwd itself) containing a `.hippo`
6
- * directory is the project root; if none exists, the nearest ancestor
7
- * containing `.git` (directory or worktree file).
8
- * - The user home directory is NEVER a project, even though it contains the
9
- * global store at `~/.hippo`. Reaching home or the temp root (inside home on Windows) ends the walk.
10
- * - A directory with no marker anywhere up the walk is NOT a project: it
11
- * resolves to the user-global identity (empty name), so memories written
12
- * there stay injectable everywhere (matches pre-isolation behavior).
13
- * - A project's name is its id: `.hippo-project.json` at the root, else the
14
- * checkout's normalised `origin` remote, else the folder rule (legacyName),
15
- * so two repos in folders of one name stay apart.
16
- *
17
- * NOTE: this module must stay free of imports from shared.ts / store.ts /
18
- * api.ts so any of them can import it without creating a cycle.
19
- */
1
+ /** Project = nearest ancestor of cwd with `.hippo` (else `.git`); home and the temp root never are, and no marker means user-global (empty name).
2
+ * Name: `.hippo-project.json`, else the normalised `origin`, else the folder name. Must not import shared.ts / store.ts / api/index.ts (cycle). */
20
3
  /** The project a working directory belongs to. */
21
4
  export interface ProjectIdentity {
22
5
  /** Realpath-resolved root directory of the project (the start dir when not in a project). */
@@ -25,30 +8,28 @@ export interface ProjectIdentity {
25
8
  name: string;
26
9
  /** The folder rule rows written before ids carry: the root's lowercased basename, or its repo's for a linked worktree with no `.hippo`. */
27
10
  legacyName: string;
28
- /** Every other name this root resolves to (the project file id, the origin remote even with the rule off, legacyName), so rows written under an earlier id stay readable. */
11
+ /** Every other name this root resolves to (the project file id, the origin remote even
12
+ * with the rule off, legacyName), so rows written under an earlier id stay readable. */
29
13
  aliases?: readonly string[];
30
14
  /** True when the directory resolves to the user home working set. */
31
15
  isHome: boolean;
32
16
  }
33
- /**
34
- * Options for resolveProjectIdentity. Both fields are test seams; results are
35
- * not cached when either is set. stopDir bounds the upward walk so tests in a
36
- * temp sandbox never escape it and hit the host machine's real markers.
37
- */
17
+ /** Options for resolveProjectIdentity. Both fields are test seams and disable caching;
18
+ * stopDir bounds the upward walk so tests in a temp sandbox never reach the host's real markers. */
38
19
  export interface ResolveProjectIdentityOpts {
39
20
  homeDir?: string;
40
21
  stopDir?: string;
41
22
  }
42
23
  /** Clear the per-process identity cache and the remote switch it read (test seam). */
43
24
  export declare function clearProjectIdentityCache(): void;
44
- /**
45
- * Resolve the project identity for a working directory.
46
- * Defaults to process.cwd(). Results are cached per resolved input path.
47
- */
25
+ /** Resolves the project identity for a working directory (default process.cwd()); results are cached per resolved input path. */
48
26
  export declare function resolveProjectIdentity(cwd?: string, opts?: ResolveProjectIdentityOpts): ProjectIdentity;
49
27
  /** Nearest ancestor `.hippo` below home and the temp root (never projects; on Windows the temp root sits inside home).
50
28
  * Everything is realpath'd so a symlinked temp root or cwd still matches its bound. */
51
29
  export declare function findHippoStoreDir(cwd?: string, opts?: ResolveProjectIdentityOpts): string | null;
30
+ /** Nearest ancestor store like git; the strict join is the fallback so `hippo init` still creates `<cwd>/.hippo`. */
31
+ export declare function getHippoRoot(cwd?: string, opts?: ResolveProjectIdentityOpts): string;
32
+ export declare function isInitialized(hippoRoot: string): boolean;
52
33
  /** A reader's project: a bare name, or an identity whose own rows may also carry its legacy folder name. */
53
34
  export type ProjectRef = string | Pick<ProjectIdentity, 'name' | 'legacyName' | 'aliases'>;
54
35
  /** The id a reader's new rows are stamped with; '' outside a project. */
@@ -57,44 +38,25 @@ export declare function projectId(project: ProjectRef): string;
57
38
  export declare function projectNames(project: ProjectRef): readonly string[];
58
39
  export declare const MAX_PROJECT_ALIASES = 10;
59
40
  export declare const MCP_PROJECT_SCOPED_HEADER = "X-Hippo-Project-Scoped";
60
- /** Refuses a caller's project that is blank (it would stamp user-global), past the caps, or unlike the resolver's ids: rows match verbatim, so a rewrite would split a project. Inner spaces pass, since a checkout with no remote is named by its folder. */
41
+ /** Refuses a caller's project that is blank (it would stamp user-global), past the caps, or unlike the resolver's ids: rows match
42
+ * verbatim, so a rewrite would split a project. Inner spaces pass, since a checkout with no remote is named by its folder. */
61
43
  export declare function assertCallerProject(project: {
62
44
  readonly name: string;
63
45
  readonly aliases?: readonly string[];
64
46
  }): void;
65
47
  /** `origin_project IN (?, ...)` with one placeholder per name; an empty list matches nothing. */
66
48
  export declare function originInSql(names: readonly string[], column?: string): string;
67
- /**
68
- * v39 memory scope isolation: classify a memory's origin_project against the
69
- * active project. An empty current id means the session is not in a project
70
- * (home dir or markerless cwd) - everything is in scope there, matching
71
- * pre-isolation behavior. NULL/undefined origin means no known project (a legacy
72
- * row, or a shared-store write that named none) and is treated as cross-project
73
- * (deny by default) - the safe direction for a security partition.
74
- */
49
+ /** Classifies a memory's origin_project against the active project. An empty current id (home or markerless cwd) puts everything in scope;
50
+ * NULL/undefined origin (legacy row, or a shared-store write naming none) counts as cross-project: deny by default for a security partition. */
75
51
  export declare function classifyOriginProject(origin: string | null | undefined, current: ProjectRef): 'project' | 'user-global' | 'cross-project';
76
- /**
77
- * The global Hippo store directory, resolved the same way shared.ts does:
78
- * $HIPPO_HOME > $XDG_DATA_HOME/hippo > ~/.hippo. Lives here (leaf module) so
79
- * db.ts migrations can use it without importing shared.ts (store.ts cycle);
80
- * shared.getGlobalRoot delegates to this.
81
- */
52
+ /** The global Hippo store directory ($HIPPO_HOME > $XDG_DATA_HOME/hippo > ~/.hippo); getGlobalRoot (sharing/global-store.ts) returns it.
53
+ * Leaf module so store migrations can use it without importing sharing/ (store cycle). */
82
54
  export declare function resolveGlobalRootDir(): string;
83
- /**
84
- * True when `p` IS the global store root. Used by the v39 migration so a
85
- * global store whose parent chain happens to contain `.git`/`.hippo`
86
- * (git-managed HIPPO_HOME, dotfiles setups) still backfills as user-global
87
- * ('') instead of being stamped with the surrounding repo's name - which
88
- * would hide the user's entire global corpus from every project.
89
- */
55
+ /** True when `p` IS the global store root, so a global store whose parent chain contains `.git`/`.hippo` (git-managed HIPPO_HOME) still backfills as
56
+ * user-global ('') instead of being stamped with the surrounding repo's name, which would hide the global corpus from every project. */
90
57
  export declare function isGlobalStoreRoot(p: string): boolean;
91
- /**
92
- * Parse a memory's origin from its provenance `source` string, mirroring the
93
- * v39 migration's evidence rules: `shared:<project>:<ts>` and
94
- * `promoted:<localRoot>` identify the owning project; the user home dir's
95
- * basename maps to '' (user-global). Returns null when the source carries no
96
- * origin evidence. Pure string logic - recorded paths may no longer exist.
97
- */
58
+ /** Parses a memory's origin from its provenance `source`: `shared:<project>:<ts>` and `promoted:<localRoot>` name the owning project; the home dir basename
59
+ * maps to '' (user-global). Returns null without origin evidence. Pure string logic, since recorded paths may no longer exist. */
98
60
  export declare function originFromSource(source: string | null | undefined, homeName?: string): string | null;
99
61
  /** The origin to stamp on a memory written from cwd: its project name, or '' (user-global, injectable everywhere) outside a project.
100
62
  * NULL means no known project: a legacy row with no evidence, or a write to a shared store that named none; ambient context treats it as deny. */