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,10 +1,4 @@
1
- /**
2
- * Session handoff types and helpers.
3
- *
4
- * A handoff captures the state of a session so that a successor
5
- * session (or a different agent) can pick up where the previous
6
- * one left off.
7
- */
1
+ /** Session handoff types and helpers: a handoff captures a session's state so a successor session or another agent can pick up where it left off. */
8
2
  /** Terminal state of a handoff's session, denormalized from its `session_complete` event. */
9
3
  export type HandoffOutcome = 'success' | 'failure' | 'partial';
10
4
  /** Best-effort evidence of repo state at handoff time; null fields mean collection failed or was skipped. */
@@ -1,10 +1,4 @@
1
- /**
2
- * Session handoff types and helpers.
3
- *
4
- * A handoff captures the state of a session so that a successor
5
- * session (or a different agent) can pick up where the previous
6
- * one left off.
7
- */
1
+ /** Session handoff types and helpers: a handoff captures a session's state so a successor session or another agent can pick up where it left off. */
8
2
  import { isJsonString } from '../util/json.js';
9
3
  import { warnDamagedColumn } from '../util/stored-json.js';
10
4
  /** Narrows an unvalidated value (e.g. CLI input or event content) to a HandoffOutcome. */
@@ -0,0 +1,6 @@
1
+ import { type MemoryEntry } from './memory.js';
2
+ /** Serialize a MemoryEntry to markdown with YAML frontmatter. */
3
+ export declare function serializeEntry(entry: MemoryEntry): string;
4
+ /** Deserialize a markdown file to a MemoryEntry. */
5
+ export declare function deserializeEntry(raw: string): MemoryEntry | null;
6
+ //# sourceMappingURL=markdown.d.ts.map
@@ -1,10 +1,9 @@
1
- import { FALLBACK_HALF_LIFE_DAYS, DEFAULT_SCHEMA_FIT } from '../core/memory.js';
2
- import { dumpFrontmatter, parseFrontmatter } from './yaml.js';
3
- /**
4
- * Serialize a MemoryEntry to markdown with YAML frontmatter.
5
- */
6
- export function serializeEntry(entry) {
7
- const frontmatter = {
1
+ import { DEFAULT_TENANT_ID } from '../util/env.js';
2
+ import { FALLBACK_HALF_LIFE_DAYS, DEFAULT_SCHEMA_FIT } from './memory.js';
3
+ import { dumpFrontmatter, parseFrontmatter } from '../util/yaml.js';
4
+ /** The fields every mirror file carries; serializeEntry adds the optional ones. */
5
+ function entryFrontmatter(entry) {
6
+ return {
8
7
  id: entry.id,
9
8
  created: entry.created,
10
9
  last_retrieved: entry.last_retrieved,
@@ -30,11 +29,21 @@ export function serializeEntry(entry) {
30
29
  scope: entry.scope ?? null,
31
30
  owner: entry.owner ?? null,
32
31
  artifact_ref: entry.artifact_ref ?? null,
32
+ // A rebuild from these files must keep supersession and the DAG; deserializeEntry reads all five.
33
+ valid_from: entry.valid_from,
34
+ superseded_by: entry.superseded_by,
35
+ extracted_from: entry.extracted_from,
36
+ dag_level: entry.dag_level,
37
+ dag_parent_id: entry.dag_parent_id,
33
38
  };
39
+ }
40
+ /** Serialize a MemoryEntry to markdown with YAML frontmatter. */
41
+ export function serializeEntry(entry) {
42
+ const frontmatter = entryFrontmatter(entry);
34
43
  // Emit tenant_id only when not 'default' to keep diffs clean for the dominant
35
44
  // single-tenant case (mirrors the plan's task 7 guidance).
36
- const tenantId = entry.tenantId ?? 'default';
37
- if (tenantId !== 'default') {
45
+ const tenantId = entry.tenantId ?? DEFAULT_TENANT_ID;
46
+ if (tenantId !== DEFAULT_TENANT_ID) {
38
47
  frontmatter['tenant_id'] = tenantId;
39
48
  }
40
49
  // v39: '' (user-global) and null (unknown, hidden by default) must both round-trip;
@@ -42,25 +51,17 @@ export function serializeEntry(entry) {
42
51
  if (entry.origin_project !== undefined) {
43
52
  frontmatter['origin_project'] = entry.origin_project;
44
53
  }
45
- // Spread into a fresh object literal: dumpFrontmatter's Record<string,
46
- // YamlValue> parameter needs an index signature, which a named interface
47
- // reference (EntryFrontmatterFields) doesn't structurally provide even
48
- // though every property's value type already matches.
54
+ // Spread into a fresh literal: dumpFrontmatter's Record<string, YamlValue> needs an index signature, which the named interface does not structurally provide.
49
55
  const fm = dumpFrontmatter({ ...frontmatter });
50
56
  return `${fm}\n\n${entry.content}\n`;
51
57
  }
52
- /**
53
- * Deserialize a markdown file to a MemoryEntry.
54
- */
58
+ /** Deserialize a markdown file to a MemoryEntry. */
55
59
  export function deserializeEntry(raw) {
56
60
  const { data, content } = parseFrontmatter(raw);
57
61
  if (!data['id'] || !data['layer'])
58
62
  return null;
59
- // SAFETY: every `as X` below narrows a raw YAML frontmatter field to an
60
- // enum/union member of MemoryEntry; frontmatter is only ever written by
61
- // serializeEntry (whose own fields are typed), so out-of-range values here
62
- // would indicate hand-edited files, which this parser is not required to
63
- // reject — matches the pre-existing permissive-parse behavior.
63
+ // SAFETY: each `as X` narrows a raw YAML field to a MemoryEntry union member; frontmatter is only written by serializeEntry,
64
+ // so out-of-range values mean hand-edited files, which this parser may accept (permissive parse).
64
65
  return {
65
66
  id: String(data['id']),
66
67
  created: String(data['created'] ?? new Date().toISOString()),
@@ -97,7 +98,7 @@ export function deserializeEntry(raw) {
97
98
  scope: data['scope'] === null || data['scope'] === undefined ? null : String(data['scope']),
98
99
  owner: data['owner'] === null || data['owner'] === undefined ? null : String(data['owner']),
99
100
  artifact_ref: data['artifact_ref'] === null || data['artifact_ref'] === undefined ? null : String(data['artifact_ref']),
100
- tenantId: data['tenant_id'] === null || data['tenant_id'] === undefined ? 'default' : String(data['tenant_id']),
101
+ tenantId: data['tenant_id'] === null || data['tenant_id'] === undefined ? DEFAULT_TENANT_ID : String(data['tenant_id']),
101
102
  origin_project: !('origin_project' in data) ? undefined : data['origin_project'] === null ? null : String(data['origin_project']),
102
103
  };
103
104
  }
@@ -0,0 +1,17 @@
1
+ import { type MemoryEntry } from './memory.js';
2
+ export type AuditSeverity = 'warning' | 'error';
3
+ export interface AuditIssue {
4
+ memoryId: string;
5
+ content: string;
6
+ severity: AuditSeverity;
7
+ reason: string;
8
+ }
9
+ export interface AuditResult {
10
+ total: number;
11
+ issues: AuditIssue[];
12
+ clean: number;
13
+ }
14
+ export declare function auditMemory(entry: MemoryEntry, backsObject?: boolean): AuditIssue | null;
15
+ /** `backing`: ids of memories that back an object (store.memoriesBackingObjects). */
16
+ export declare function auditMemories(entries: MemoryEntry[], backing: ReadonlySet<string>): AuditResult;
17
+ //# sourceMappingURL=memory-audit.d.ts.map
@@ -0,0 +1,54 @@
1
+ // The memory-quality audit rules: pure functions of a row, so any store can be audited by them.
2
+ import { canAutoDelete } from './memory.js';
3
+ import { automaticDefect, hasNoSpecificity, isFragment, isReleaseCommitNoise, substantiveWordCount, } from './memory-quality.js';
4
+ export function auditMemory(entry, backsObject = false) {
5
+ const issue = classifyMemory(entry);
6
+ // Error means "auto-remove"; a pinned, raw, kept-for-good or object-backing row is never auto-removed, so it can only warn.
7
+ if (issue?.severity === 'error' && (!canAutoDelete(entry) || backsObject)) {
8
+ const why = entry.pinned ? 'pinned' : entry.kind === 'raw' ? 'raw' : backsObject ? 'backs an object' : 'keep rule';
9
+ return { ...issue, severity: 'warning', reason: `${issue.reason} (${why}, kept)` };
10
+ }
11
+ return issue;
12
+ }
13
+ function classifyMemory(entry) {
14
+ const content = entry.content.trim();
15
+ if (content.length < 3) {
16
+ return { memoryId: entry.id, content, severity: 'error', reason: 'too short (< 3 chars)' };
17
+ }
18
+ if (content.length < 10) {
19
+ return { memoryId: entry.id, content, severity: 'error', reason: 'too short (< 10 chars)' };
20
+ }
21
+ if (isReleaseCommitNoise(content)) {
22
+ return { memoryId: entry.id, content, severity: 'error', reason: 'release/commit noise, not a useful memory' };
23
+ }
24
+ if (isFragment(content)) {
25
+ return { memoryId: entry.id, content, severity: 'warning', reason: 'sentence fragment — lacks context' };
26
+ }
27
+ const substantive = substantiveWordCount(content);
28
+ if (substantive < 2) {
29
+ return { memoryId: entry.id, content, severity: 'warning', reason: `only ${substantive} substantive word(s) — too vague` };
30
+ }
31
+ if (content.length < 40 && hasNoSpecificity(content)) {
32
+ return { memoryId: entry.id, content, severity: 'warning', reason: 'no specific details (names, paths, numbers, code)' };
33
+ }
34
+ const reason = automaticDefect(entry);
35
+ if (reason !== null) {
36
+ return { memoryId: entry.id, content, severity: 'warning', reason: `automatic memory defect: ${reason}` };
37
+ }
38
+ return null;
39
+ }
40
+ /** `backing`: ids of memories that back an object (store.memoriesBackingObjects). */
41
+ export function auditMemories(entries, backing) {
42
+ const issues = [];
43
+ for (const entry of entries) {
44
+ const issue = auditMemory(entry, backing.has(entry.id));
45
+ if (issue)
46
+ issues.push(issue);
47
+ }
48
+ return {
49
+ total: entries.length,
50
+ issues,
51
+ clean: entries.length - issues.length,
52
+ };
53
+ }
54
+ //# sourceMappingURL=memory-audit.js.map
@@ -28,7 +28,7 @@ export function isReleaseCommitNoise(text) {
28
28
  /** Short preferences and rules carry a useful relationship even without a path or number. */
29
29
  export function hasNoSpecificity(text) {
30
30
  const domainAcronyms = (text.match(/\b[A-Z]{2,6}\b/g) ?? []).filter(a => !CHAT_ACRONYMS.test(a));
31
- if (/\d|[A-Z][a-z]{2,}|[/\\.]|[`_{}()\[\]]/.test(text))
31
+ if (/\d|[A-Z][a-z]{2,}|[/\\.]|[`_{}()[\]]/.test(text))
32
32
  return false;
33
33
  if (domainAcronyms.length > 0 && /[a-z]/.test(text))
34
34
  return false;
@@ -1,7 +1,5 @@
1
- /**
2
- * Core data model for Hippo memory entries.
3
- * Based on the strength formula from PLAN.md.
4
- */
1
+ /** Core data model for Hippo memory entries, based on the strength formula from PLAN.md. */
2
+ import { type StrengthAblation } from './ablation.js';
5
3
  export declare const DEFAULT_SCHEMA_FIT = 0.5;
6
4
  export declare const FALLBACK_HALF_LIFE_DAYS = 7;
7
5
  export declare enum Layer {
@@ -13,29 +11,8 @@ export declare enum Layer {
13
11
  export type EmotionalValence = 'neutral' | 'positive' | 'negative' | 'critical';
14
12
  export type ConfidenceLevel = 'verified' | 'observed' | 'inferred' | 'stale';
15
13
  export type TraceOutcome = 'success' | 'failure' | 'partial' | null;
16
- export type MemoryKind = 'raw' | 'distilled' | 'superseded' | 'archived';
17
- /**
18
- * Timestamp invariant.
19
- *
20
- * All in-process writes of timestamp fields on `MemoryEntry` (`created`,
21
- * `last_retrieved`, `valid_from`) and on session-state types (SessionEvent,
22
- * TaskSnapshot, SessionHandoff, AssembledContextItem.createdAt, etc.) emit
23
- * canonical `Date.prototype.toISOString()` output: 24 characters, UTC,
24
- * milliseconds precision, trailing `Z` (e.g. `2026-05-06T09:55:49.123Z`).
25
- *
26
- * Caveat — markdown rebuild. `deserializeEntry` / `rebuildIndex` preserve
27
- * frontmatter timestamp strings as-is. Legacy markdown that recorded a
28
- * non-canonical offset (e.g. `2026-05-06T05:55:49-04:00`) round-trips
29
- * through SQLite without normalization, and DAG `earliest_at` / `latest_at`
30
- * caches are computed from those strings. Importers SHOULD normalize on
31
- * write; rebuild from drifted markdown is a known limitation.
32
- *
33
- * Byte-comparison sort (`<` / `>`) is chronological for any pair of
34
- * canonical UTC ISO strings. ~50× faster than `localeCompare` with no
35
- * semantic gain. `assemble` sorts by byte compare; if a future
36
- * import path admits non-canonical timestamps, that sort and any
37
- * downstream chronological reasoning will need a normalization pass.
38
- */
14
+ export declare const MEMORY_KINDS: readonly ["raw", "distilled", "superseded", "archived"];
15
+ export type MemoryKind = (typeof MEMORY_KINDS)[number];
39
16
  export interface MemoryEntry {
40
17
  id: string;
41
18
  created: string;
@@ -67,133 +44,69 @@ export interface MemoryEntry {
67
44
  descendant_count?: number;
68
45
  earliest_at?: string | null;
69
46
  latest_at?: string | null;
70
- /** 1 when this summary row has at least one child invalidated,
71
- * superseded, forgotten, or archived since it was last rebuilt. Cleared
72
- * by rebuildDirtySummaries during sleep. Always 0 for non-summary
73
- * rows (dag_level !== 2). */
47
+ /** 1 when a child was invalidated, superseded, forgotten or archived since the last rebuild; sleep clears it. Always 0 below level 2. */
74
48
  summary_dirty?: 0 | 1;
75
- /** ISO 8601 timestamp of the last successful rebuild for this
76
- * summary, or null if never rebuilt. */
49
+ /** ISO 8601 time of the last successful rebuild, or null if never rebuilt. */
77
50
  last_rebuilt_at?: string | null;
78
- /** Monotonically-increasing counter of successful rebuilds for this
79
- * summary. 0 for initial buildDag write; bumped by each rebuild. */
51
+ /** Count of successful rebuilds: 0 at the first buildDag write, bumped by each rebuild. */
80
52
  rebuild_count?: number;
81
- /** Reserved: ISO 8601 timestamp the level-3 entity profile
82
- * was built. Only ever populated on dag_level=3 rows. */
53
+ /** Reserved: ISO 8601 time the level-3 entity profile was built; only set on dag_level=3 rows. */
83
54
  dag_level_3_built_at?: string | null;
84
55
  kind: MemoryKind;
85
56
  scope: string | null;
86
57
  owner: string | null;
87
58
  artifact_ref: string | null;
88
59
  tenantId: string;
89
- /**
90
- * Memory scope isolation: owning project for ambient-context
91
- * partitioning. A lowercased project name, '' for user-global (injectable
92
- * everywhere), or null for no known project (a legacy row, or a shared-store
93
- * write that named none) - ambient context treats null as other-project (deny).
94
- * Stamped at write time by store/entry-row.ts stampOriginProject via fallbackOrigin;
95
- * undefined only on entries not yet written.
96
- */
60
+ /** Owning project, lowercased; '' = user-global (injectable everywhere), null = none known (legacy or unnamed write), denied by ambient context.
61
+ * Stamped at write time by stampOriginProject (src/store/entry-row.ts); undefined only before the first write. */
97
62
  origin_project?: string | null;
98
- /**
99
- * Raw SQLite FTS5 bm25() score from the FTS path of
100
- * `loadSearchEntries`.
101
- *
102
- * Populated ONLY when ALL of the following hold:
103
- * - `loadSearchEntries` was called with a non-empty query, AND
104
- * - FTS5 is available (meta `fts5_available = 1`), AND
105
- * - the FTS join returned at least one row (path 2 of `loadSearchRows`).
106
- *
107
- * `undefined` on every other path: empty query, FTS unavailable, LIKE
108
- * fallback, full-store fallback, `readEntry`, `loadAllEntries`, manual
109
- * upsert, deserializeEntry from markdown.
110
- *
111
- * SCALE: FTS5 bm25() is negative; lower = better match (ascending order).
112
- * NOT a drop-in for the JS-side BM25 in `src/search.ts` — that is a
113
- * different scorer (different tokenizer, different params, positive
114
- * scale). Treat `bm25_score` as provenance/rank metadata only.
115
- */
63
+ /** Raw FTS5 bm25() from the search path (negative, lower = better); set only for a non-empty query the FTS join answered.
64
+ * Not comparable to the JS scorer in src/search/bm25.ts, so read it as rank metadata only. */
116
65
  bm25_score?: number;
117
66
  }
118
67
  /** Tag on a memory whose named file/symbol/script changed after it was stored. */
119
68
  export declare const CHURN_STALE_TAG = "churn-stale";
120
- /**
121
- * Test-only helper. Tests that mutate `process.env.HIPPO_LOSS_AVERSION_RATIO`
122
- * MUST call this in BOTH `beforeEach` AND `afterEach`:
123
- * - beforeEach: clear any stale cache from a previous test before setting
124
- * the env var for this test.
125
- * - afterEach: clear the cache so the next test (which may not set the env
126
- * var) reads the clean default instead of this test's value.
127
- * See `tests/emotional-multipliers.test.ts` for the pattern.
128
- */
69
+ export declare const EMOTIONAL_MULTIPLIERS: {
70
+ neutral: number;
71
+ positive: number;
72
+ negative: number;
73
+ critical: number;
74
+ };
75
+ /** Test-only: a test that sets HIPPO_LOSS_AVERSION_RATIO calls this in beforeEach and afterEach (tests/emotional-multipliers.test.ts). */
129
76
  export declare function _resetLossAversionRatioCacheForTests(): void;
130
- /**
131
- * Compute the reward factor from cumulative outcome counts.
132
- *
133
- * reward_ratio = (positive - negative) / (positive + negative + 1)
134
- * reward_factor = 1 + 0.5 * reward_ratio
135
- *
136
- * Range: (0.5, 1.5). Neutral (no outcomes) returns 1.0.
137
- * Modulates effective half-life: memories with consistent positive outcomes
138
- * decay slower; consistent negative outcomes decay faster.
139
- */
140
- export declare function calculateRewardFactor(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>): number;
141
- /**
142
- * Net wrongness: bad outcome marks past good ones, never below zero.
143
- * Strength halves per unit (capped at 3) and recall stops strengthening
144
- * the memory, so a correction outranks pinning, error tags and heavy recall.
145
- */
146
- export declare function netWrong(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>): number;
147
- /**
148
- * Options for decay basis.
149
- * - clock: wall-clock time (former default)
150
- * - session: decay by sleep cycle count (for intermittent agents)
151
- * - adaptive: auto-scale half-life by session frequency (default)
152
- */
77
+ /** Scales only the `negative` multiplier; `critical` stays unscaled so the knob moves just the losses-vs-gains claim. */
78
+ export declare function applyLossAversionRatio(valence: EmotionalValence, baseMultiplier: number): number;
79
+ /** 1 + REWARD_SLOPE * (pos - neg) / (pos + neg + 1), in (0.5, 1.5), 1.0 with no outcomes; it scales the effective half-life. */
80
+ export declare function calculateRewardFactor(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>, ablation?: StrengthAblation): number;
81
+ /** Bad marks alone never push a memory under sleep's 0.05 retire line; supersede is the hard correction. */
82
+ export declare const MAX_WRONG_HALVINGS = 3;
83
+ export declare const DECAY_BASE = 0.5;
84
+ export declare const REWARD_SLOPE = 0.5;
85
+ export declare const RETRIEVAL_BOOST_SLOPE = 0.1;
86
+ /** Bad outcome marks past good ones, floored at zero; each halves strength and stops recall strengthening, so a correction outranks pinning. */
87
+ export declare function netWrong(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>, ablation?: StrengthAblation): number;
153
88
  /** What calculateStrength reads, so a caller can score a row without loading its text. */
154
89
  export type StrengthInputs = Pick<MemoryEntry, 'pinned' | 'created' | 'last_retrieved' | 'half_life_days' | 'retrieval_count' | 'emotional_valence' | 'outcome_positive' | 'outcome_negative'>;
90
+ /** Decay basis: clock = wall time, session = per sleep cycle (intermittent agents), adaptive = half-life scaled by session frequency. */
155
91
  export interface DecayOptions {
156
92
  decayBasis?: 'clock' | 'session' | 'adaptive';
157
93
  /** Average interval between sleep cycles, in days. Used by 'adaptive' and 'session' modes. */
158
94
  avgSessionIntervalDays?: number;
159
95
  /** Total sleep cycles completed. Used by consolidation tracking. */
160
96
  sleepCount?: number;
97
+ /** EVAL-ONLY switches resolved once at the entry layer (`strengthAblation()`); absent means production scoring. */
98
+ ablation?: StrengthAblation;
161
99
  }
162
- /**
163
- * Calculate current strength at a given time.
164
- * strength(t) = base_strength * decay * retrieval_boost * emotional_multiplier
165
- *
166
- * Decay basis modes:
167
- * - clock: classic wall-clock decay (daysSince / halfLife)
168
- * - session: decay by sleep cycles instead of days (sessionsSince / halfLife)
169
- * - adaptive: wall-clock decay with half-life scaled by session frequency
170
- *
171
- * Pinned memories skip time decay; being marked wrong still fades them (netWrong).
172
- */
100
+ /** Strength at `now` = decay * retrieval boost * emotional multiplier, clamped to [0, 1]; the basis modes are on DecayOptions.
101
+ * Pinned memories skip time decay, but being marked wrong still fades them (netWrong). */
173
102
  export declare function calculateStrength(entry: StrengthInputs, now?: Date, options?: DecayOptions): number;
174
- /** calculateStrength's clock-basis formula as SQL over `memories` columns, flags and multipliers baked in; keep in step.
175
- * An unparseable date scores NULL here and 0 in JS, so sums agree. */
176
- export declare function strengthSql(now: Date): string;
103
+ /** The base half-life scaled by the PLAN.md signals: an error tag, and high or low schema fit. */
177
104
  export declare function deriveHalfLife(base: number, entry: Partial<MemoryEntry>): number;
178
- /**
179
- * Apply outcome feedback to a memory entry.
180
- *
181
- * Increments outcome_positive or outcome_negative counters.
182
- * The reward factor in calculateStrength() uses these counts to
183
- * continuously modulate the effective half-life:
184
- * reward_ratio = (pos - neg) / (pos + neg + 1)
185
- * reward_factor = 1 + 0.5 * reward_ratio // range (0.5, 1.5)
186
- * effective_hl = half_life_days * reward_factor
187
- *
188
- * No fixed half-life delta. Decay rate adjusts proportionally to
189
- * cumulative reward signal, inspired by R-STDP in spiking networks.
190
- */
105
+ /** Counts the outcome; calculateStrength turns the counts into a reward factor on the half-life, so there is no fixed delta here. */
191
106
  export declare function applyOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
192
107
  /** applyOutcome as a served outcome applies it: a good outcome reconfirms the entry, so its churn-stale tag goes. */
193
108
  export declare function entryAfterOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
194
- /**
195
- * Generate a random memory ID using crypto.randomUUID().
196
- */
109
+ /** A new id: `prefix_` plus the first ID_SUFFIX_CHARS hex characters of a random UUID. */
197
110
  export declare function generateId(prefix?: string): string;
198
111
  /** What the confidence facets read, so a caller can derive them from a row it loaded only in part. */
199
112
  export type ConfidenceInputs = Pick<MemoryEntry, 'pinned' | 'confidence' | 'last_retrieved'>;
@@ -207,28 +120,20 @@ export declare function confidenceLabel(entry: MemoryEntry, now?: Date): {
207
120
  text: string;
208
121
  warn: boolean;
209
122
  };
210
- /**
211
- * Resolve the effective confidence for a memory entry.
212
- * If the entry has not been retrieved in 30+ days and is not 'verified',
213
- * returns 'stale'. Otherwise returns the stored confidence value.
214
- */
123
+ /** The stored confidence, or 'stale' once the entry is aged out (not retrieved for AGED_OUT_AFTER_DAYS; pinned and verified exempt). */
215
124
  export declare function resolveConfidence(entry: MemoryEntry, now?: Date): ConfidenceLevel;
216
- /**
217
- * Base half-life for a new memory, in days, before `deriveHalfLife`'s
218
- * write-time multipliers. 365 because 7 days lost the current fact far more
219
- * often, and 730 days or no decay did no better. `hippo sleep` moves memories still
220
- * on an older base (src/consolidate/half-life-migration.ts).
221
- */
125
+ /** Base half-life in days before deriveHalfLife's multipliers: 365 because 7 lost the current fact far more often and 730 did no better.
126
+ * `hippo sleep` moves memories still on an older base (src/consolidate/half-life-migration.ts). */
222
127
  export declare const DEFAULT_HALF_LIFE_DAYS = 365;
223
128
  export declare const COMPACTION_MEMORY_TAG = "compaction-memory";
224
129
  export declare const COMPACTION_SOURCE_PREFIX = "compaction:";
225
- /** An imported agent memory (its tool's tag, and a source starting that tool's prefix) is kept for good: the agent's note file is its record. Both, since merge copies source tags onto rows whose source is 'consolidation'. */
130
+ /** An imported agent memory is kept for good: the agent's note file is its record. It needs both its tool's tag and a source with that tool's prefix,
131
+ * since merge copies source tags onto rows whose source is 'consolidation'. */
226
132
  export interface KeepPair {
227
133
  readonly tag: string;
228
134
  readonly sourcePrefix: string;
229
135
  }
230
136
  export declare const KEEP_PAIRS: readonly KeepPair[];
231
- export declare const AUTO_DELETABLE_SQL: string;
232
137
  export declare function isKeptForGood(entry: Pick<MemoryEntry, 'tags' | 'source' | 'superseded_by'>): boolean;
233
138
  export declare function canAutoDelete(entry: Pick<MemoryEntry, 'pinned' | 'kind' | 'tags' | 'source' | 'superseded_by'>): boolean;
234
139
  export interface CreateMemoryOptions {
@@ -239,7 +144,7 @@ export interface CreateMemoryOptions {
239
144
  schema_fit?: number;
240
145
  source?: string;
241
146
  confidence?: ConfidenceLevel;
242
- /** The store's `loadConfig(hippoRoot).defaultHalfLifeDays`; required so no writer falls back to the compiled default by leaving it out. */
147
+ /** The store's `loadConfig(hippoRoot).defaultHalfLifeDays`; required so no writer silently gets the compiled default. */
243
148
  baseHalfLifeDays: number;
244
149
  trace_outcome?: TraceOutcome;
245
150
  source_session_id?: string | null;
@@ -263,17 +168,11 @@ export declare function createSuccessor(old: MemoryEntry, content: string, opts:
263
168
  tags?: string[];
264
169
  pinned?: boolean;
265
170
  }): MemoryEntry;
266
- /**
267
- * Compute how well new content fits existing knowledge patterns.
268
- * Returns 0..1 where:
269
- * >0.7 = high fit (consistent with existing knowledge, consolidates faster)
270
- * 0.3-0.7 = moderate fit
271
- * <0.3 = novel (doesn't match existing patterns, decays faster if unused)
272
- *
273
- * Uses tag overlap (always available) weighted by how common each tag is.
274
- * Rare shared tags signal stronger schema fit than common ones.
275
- */
171
+ /** How well new content fits existing knowledge, 0..1: above 0.7 consolidates faster, below 0.3 is novel and decays faster if unused.
172
+ * Tags shared with existing memories count by rarity (a rare shared tag fits more), plus content-token overlap. */
276
173
  export declare function computeSchemaFit(content: string, tags: string[], existingEntries: MemoryEntry[]): number;
174
+ /** What schema fit reads from `entries`, built once for a caller that scores many contents against the same rows. */
175
+ export declare function schemaFitSourceOf(entries: readonly MemoryEntry[]): SchemaFitSource;
277
176
  /** What schema fit reads from a set of memories, so a store can answer without loading its rows. */
278
177
  export interface SchemaFitSource {
279
178
  readonly rows: number;
@@ -284,23 +183,7 @@ export interface SchemaFitSource {
284
183
  }
285
184
  /** computeSchemaFit against `source`, for a caller that holds counts and texts but no rows. */
286
185
  export declare function schemaFitFrom(content: string, tags: readonly string[], source: SchemaFitSource): number;
287
- /**
288
- * Update retrieval metadata on entries that were returned by a search.
289
- * Returns the mutated copies (caller must persist to disk).
290
- *
291
- * EVAL-ONLY ablation (see ablation.ts): with HIPPO_ABLATE_RECALL_BOOST set,
292
- * this returns the entries UNMUTATED - neutralizing all three strengthening
293
- * sub-effects (clock reset, retrieval_count, half-life increment) at the
294
- * single shared write site. The entries (not an empty array) must be
295
- * returned because callers derive `last_retrieval_ids` from the return
296
- * value, and a later `hippo outcome --good/--bad` targets those ids - an
297
- * empty return would silently co-ablate the outcome channel in the
298
- * strengthen-off arm. PERSISTENCE is gated separately at
299
- * each persisting caller (CLI recall, api context, MCP recall/context,
300
- * consolidation replay): writeEntry on identical rows still refreshes
301
- * updated_at, rewrites mirrors, and marks DAG parents dirty,
302
- * so those write loops skip under the flag.
303
- * The default `now` honors HIPPO_FAKE_NOW (simulated-time protocols).
304
- */
305
- export declare function markRetrieved(entries: MemoryEntry[], now?: Date): MemoryEntry[];
186
+ /** Returns copies with the retrieval count, clock and half-life updated; the caller persists them.
187
+ * Under HIPPO_ABLATE_RECALL_BOOST (eval-only) the entries come back unchanged, not empty, since callers derive last_retrieval_ids from them. */
188
+ export declare function markRetrieved(entries: MemoryEntry[], now?: Date, options?: Pick<DecayOptions, 'ablation'>): MemoryEntry[];
306
189
  //# sourceMappingURL=memory.d.ts.map