hippo-memory 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (965) hide show
  1. package/dist/agent-memories/apply.d.ts +7 -5
  2. package/dist/agent-memories/apply.js +66 -39
  3. package/dist/agent-memories/claude-code.d.ts +8 -2
  4. package/dist/agent-memories/claude-code.js +26 -7
  5. package/dist/agent-memories/copilot.js +2 -1
  6. package/dist/agent-memories/files.js +2 -1
  7. package/dist/agent-memories/legacy.d.ts +6 -3
  8. package/dist/agent-memories/legacy.js +35 -14
  9. package/dist/agent-memories/markdown.d.ts +3 -1
  10. package/dist/agent-memories/markdown.js +3 -1
  11. package/dist/agent-memories/openclaw.js +5 -2
  12. package/dist/agent-memories/plan.js +11 -1
  13. package/dist/agent-memories/project-folds.js +2 -1
  14. package/dist/agent-memories/report.d.ts +4 -1
  15. package/dist/agent-memories/report.js +43 -9
  16. package/dist/agent-memories/source.d.ts +8 -2
  17. package/dist/agent-memories/source.js +11 -3
  18. package/dist/agent-memories/sync.d.ts +7 -2
  19. package/dist/agent-memories/sync.js +141 -101
  20. package/dist/api/assemble.d.ts +6 -4
  21. package/dist/api/assemble.js +11 -6
  22. package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
  23. package/dist/api/{audit.js → auth/audit.js} +11 -11
  24. package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -15
  25. package/dist/api/{auth.js → auth/auth.js} +46 -29
  26. package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
  27. package/dist/api/{quarantine.js → auth/quarantine.js} +8 -8
  28. package/dist/api/auth/session-owners.d.ts +10 -0
  29. package/dist/api/auth/session-owners.js +35 -0
  30. package/dist/api/availability.d.ts +3 -1
  31. package/dist/api/availability.js +3 -1
  32. package/dist/api/busy.d.ts +2 -0
  33. package/dist/api/busy.js +2 -0
  34. package/dist/api/cli-surface.d.ts +6 -0
  35. package/dist/api/cli-surface.js +6 -0
  36. package/dist/api/config-of.d.ts +5 -0
  37. package/dist/api/config-of.js +6 -0
  38. package/dist/api/context-auto.d.ts +4 -1
  39. package/dist/api/context-auto.js +10 -2
  40. package/dist/api/context-render.js +14 -7
  41. package/dist/api/context-select.d.ts +4 -1
  42. package/dist/api/context-select.js +23 -14
  43. package/dist/api/context-types.d.ts +38 -12
  44. package/dist/api/context.d.ts +8 -5
  45. package/dist/api/context.js +112 -57
  46. package/dist/api/continuity.d.ts +24 -21
  47. package/dist/api/continuity.js +18 -20
  48. package/dist/api/correction-latency.d.ts +3 -1
  49. package/dist/api/correction-latency.js +3 -1
  50. package/dist/api/error-reply.d.ts +4 -1
  51. package/dist/api/error-reply.js +12 -3
  52. package/dist/api/index.d.ts +39 -23
  53. package/dist/api/index.js +21 -23
  54. package/dist/api/instruction-detect.d.ts +4 -1
  55. package/dist/api/instruction-detect.js +75 -20
  56. package/dist/api/ledger-db.d.ts +15 -11
  57. package/dist/api/ledger-db.js +21 -23
  58. package/dist/api/memories/conflicts.d.ts +33 -0
  59. package/dist/api/memories/conflicts.js +67 -0
  60. package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
  61. package/dist/api/{forget.js → memories/forget.js} +22 -15
  62. package/dist/api/memories/memories.d.ts +27 -0
  63. package/dist/api/{memories.js → memories/memories.js} +16 -21
  64. package/dist/api/memories/outcome.d.ts +22 -0
  65. package/dist/api/{outcome.js → memories/outcome.js} +14 -8
  66. package/dist/api/memories/promote.d.ts +40 -0
  67. package/dist/api/{promote.js → memories/promote.js} +35 -22
  68. package/dist/api/memories/refine.d.ts +10 -0
  69. package/dist/api/memories/refine.js +12 -0
  70. package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +16 -11
  71. package/dist/api/{remember-local.js → memories/remember-local.js} +34 -20
  72. package/dist/api/{remember.d.ts → memories/remember.d.ts} +19 -13
  73. package/dist/api/{remember.js → memories/remember.js} +42 -26
  74. package/dist/api/objects/cards.d.ts +39 -0
  75. package/dist/api/{cards.js → objects/cards.js} +12 -14
  76. package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
  77. package/dist/api/{drill-down.js → objects/drill-down.js} +7 -8
  78. package/dist/api/objects/goals.d.ts +18 -0
  79. package/dist/api/{goals.js → objects/goals.js} +12 -12
  80. package/dist/api/objects/graph.d.ts +11 -0
  81. package/dist/api/objects/graph.js +16 -0
  82. package/dist/api/objects/objects.d.ts +9 -0
  83. package/dist/api/{objects.js → objects/objects.js} +2 -4
  84. package/dist/api/objects/predictions.d.ts +11 -0
  85. package/dist/api/{predictions.js → objects/predictions.js} +7 -6
  86. package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
  87. package/dist/api/{projects.js → objects/projects.js} +8 -4
  88. package/dist/api/pilot-arm.d.ts +8 -4
  89. package/dist/api/pilot-arm.js +5 -4
  90. package/dist/api/prompt-hook.d.ts +32 -19
  91. package/dist/api/prompt-hook.js +65 -44
  92. package/dist/api/provenance-coverage.d.ts +3 -1
  93. package/dist/api/provenance-coverage.js +3 -1
  94. package/dist/api/recall/finish.d.ts +185 -0
  95. package/dist/api/recall/finish.js +301 -0
  96. package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
  97. package/dist/api/{recall-pipeline.js → recall/pipeline.js} +176 -92
  98. package/dist/api/recall/recall.d.ts +6 -0
  99. package/dist/api/{recall.js → recall/recall.js} +101 -60
  100. package/dist/api/recall/render.d.ts +39 -0
  101. package/dist/api/recall/render.js +60 -0
  102. package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
  103. package/dist/api/recall/request.js +261 -0
  104. package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
  105. package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
  106. package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -70
  107. package/dist/api/{recall-types.js → recall/types.js} +1 -1
  108. package/dist/api/session-end.d.ts +16 -12
  109. package/dist/api/session-end.js +46 -30
  110. package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
  111. package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
  112. package/dist/api/sleep/dormant.d.ts +25 -0
  113. package/dist/api/sleep/dormant.js +64 -0
  114. package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
  115. package/dist/api/sleep/learn.js +138 -0
  116. package/dist/api/sleep/sleep-run.d.ts +38 -0
  117. package/dist/api/{sleep-run.js → sleep/sleep-run.js} +51 -43
  118. package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
  119. package/dist/api/sleep/sleep.js +9 -0
  120. package/dist/api/status.d.ts +3 -1
  121. package/dist/api/status.js +3 -1
  122. package/dist/api/store-init.d.ts +4 -1
  123. package/dist/api/store-init.js +4 -1
  124. package/dist/api/tokens.d.ts +10 -9
  125. package/dist/api/tokens.js +9 -10
  126. package/dist/api/types.d.ts +28 -7
  127. package/dist/api/types.js +13 -4
  128. package/dist/capture/caller-session.d.ts +8 -2
  129. package/dist/capture/caller-session.js +16 -6
  130. package/dist/capture/capture-error.d.ts +3 -1
  131. package/dist/capture/capture-error.js +3 -1
  132. package/dist/capture/codex-patch.js +7 -2
  133. package/dist/capture/command.d.ts +4 -2
  134. package/dist/capture/command.js +33 -14
  135. package/dist/capture/compact-resume-caller.js +15 -8
  136. package/dist/capture/compact.d.ts +8 -5
  137. package/dist/capture/compact.js +34 -23
  138. package/dist/capture/compaction-items-caller.js +9 -3
  139. package/dist/capture/compaction-record.d.ts +4 -3
  140. package/dist/capture/compaction-record.js +20 -12
  141. package/dist/capture/compaction-spool.d.ts +15 -4
  142. package/dist/capture/compaction-spool.js +64 -17
  143. package/dist/capture/copilot-transcript.d.ts +11 -3
  144. package/dist/capture/copilot-transcript.js +16 -6
  145. package/dist/capture/extract.js +20 -8
  146. package/dist/capture/failure-caller.js +23 -12
  147. package/dist/capture/failure-reading.d.ts +10 -3
  148. package/dist/capture/failure-reading.js +24 -7
  149. package/dist/capture/pre-compact-caller.js +11 -4
  150. package/dist/capture/session-digest.d.ts +15 -4
  151. package/dist/capture/session-digest.js +39 -13
  152. package/dist/capture/session-end-caller.d.ts +4 -1
  153. package/dist/capture/session-end-caller.js +20 -8
  154. package/dist/capture/session-texts.d.ts +6 -2
  155. package/dist/capture/session-texts.js +22 -7
  156. package/dist/capture/session-worker.d.ts +4 -2
  157. package/dist/capture/session-worker.js +45 -17
  158. package/dist/capture/transcript.d.ts +13 -4
  159. package/dist/capture/transcript.js +32 -10
  160. package/dist/capture/working-state.d.ts +13 -4
  161. package/dist/capture/working-state.js +50 -56
  162. package/dist/cli/api-context.d.ts +14 -2
  163. package/dist/cli/api-context.js +45 -2
  164. package/dist/cli/audit.js +23 -23
  165. package/dist/cli/auth.js +19 -27
  166. package/dist/cli/briefs.d.ts +1 -1
  167. package/dist/cli/briefs.js +20 -15
  168. package/dist/cli/card.d.ts +1 -1
  169. package/dist/cli/card.js +56 -73
  170. package/dist/cli/client.d.ts +12 -4
  171. package/dist/cli/client.js +43 -13
  172. package/dist/cli/compact-resume-payload.d.ts +4 -1
  173. package/dist/cli/compact-resume-payload.js +12 -5
  174. package/dist/cli/context.js +42 -17
  175. package/dist/cli/continuity.d.ts +5 -5
  176. package/dist/cli/continuity.js +90 -107
  177. package/dist/cli/curate.d.ts +4 -3
  178. package/dist/cli/curate.js +46 -68
  179. package/dist/cli/dag.d.ts +1 -1
  180. package/dist/cli/dag.js +14 -17
  181. package/dist/cli/decisions.js +27 -26
  182. package/dist/cli/eval.js +16 -21
  183. package/dist/cli/exit.d.ts +4 -1
  184. package/dist/cli/exit.js +10 -2
  185. package/dist/cli/explain.js +12 -11
  186. package/dist/cli/flag-values.d.ts +1 -1
  187. package/dist/cli/flag-values.js +9 -18
  188. package/dist/cli/github.d.ts +6 -0
  189. package/dist/cli/github.js +25 -13
  190. package/dist/cli/goals.d.ts +1 -1
  191. package/dist/cli/goals.js +39 -56
  192. package/dist/cli/graph.d.ts +1 -1
  193. package/dist/cli/graph.js +15 -11
  194. package/dist/cli/hook-runtime.d.ts +31 -9
  195. package/dist/cli/hook-runtime.js +40 -15
  196. package/dist/cli/incidents.d.ts +1 -1
  197. package/dist/cli/incidents.js +25 -25
  198. package/dist/cli/init.js +26 -11
  199. package/dist/cli/install-steps.d.ts +12 -3
  200. package/dist/cli/install-steps.js +42 -18
  201. package/dist/cli/last-sleep.d.ts +4 -1
  202. package/dist/cli/last-sleep.js +9 -4
  203. package/dist/cli/maintenance.d.ts +1 -1
  204. package/dist/cli/maintenance.js +11 -12
  205. package/dist/cli/notes.d.ts +1 -1
  206. package/dist/cli/notes.js +8 -5
  207. package/dist/cli/object-verbs.d.ts +4 -4
  208. package/dist/cli/object-verbs.js +10 -13
  209. package/dist/cli/open-browser.js +11 -2
  210. package/dist/cli/playbooks.d.ts +3 -3
  211. package/dist/cli/playbooks.js +40 -32
  212. package/dist/cli/predictions.js +15 -19
  213. package/dist/cli/print.js +4 -2
  214. package/dist/cli/projects.js +21 -11
  215. package/dist/cli/quality-repair-once.js +5 -4
  216. package/dist/cli/recall.js +129 -93
  217. package/dist/cli/refine-llm.d.ts +15 -4
  218. package/dist/cli/refine-llm.js +16 -7
  219. package/dist/cli/remember.js +46 -50
  220. package/dist/cli/scheduler.d.ts +4 -1
  221. package/dist/cli/scheduler.js +9 -5
  222. package/dist/cli/serve.js +22 -17
  223. package/dist/cli/session-hooks.d.ts +2 -2
  224. package/dist/cli/session-hooks.js +87 -50
  225. package/dist/cli/setup.js +54 -32
  226. package/dist/cli/shared.d.ts +3 -1
  227. package/dist/cli/shared.js +24 -9
  228. package/dist/cli/slack.js +15 -24
  229. package/dist/cli/sleep-render.d.ts +3 -1
  230. package/dist/cli/sleep-render.js +8 -5
  231. package/dist/cli/sleep.js +14 -6
  232. package/dist/cli/status.d.ts +4 -4
  233. package/dist/cli/status.js +32 -27
  234. package/dist/cli/stdin.d.ts +10 -3
  235. package/dist/cli/stdin.js +10 -3
  236. package/dist/cli/transfer.d.ts +1 -1
  237. package/dist/cli/transfer.js +71 -75
  238. package/dist/cli/verbs/memory.js +8 -6
  239. package/dist/cli/verbs/objects.js +10 -4
  240. package/dist/cli/versioned-verbs.d.ts +8 -7
  241. package/dist/cli/versioned-verbs.js +31 -21
  242. package/dist/cli.js +13 -16
  243. package/dist/connectors/dlq.d.ts +6 -6
  244. package/dist/connectors/dlq.js +12 -8
  245. package/dist/connectors/github/backfill.d.ts +4 -4
  246. package/dist/connectors/github/backfill.js +6 -4
  247. package/dist/connectors/github/deletion.d.ts +6 -4
  248. package/dist/connectors/github/deletion.js +5 -5
  249. package/dist/connectors/github/dlq.d.ts +8 -6
  250. package/dist/connectors/github/dlq.js +11 -5
  251. package/dist/connectors/github/ingest.d.ts +2 -2
  252. package/dist/connectors/github/ingest.js +9 -6
  253. package/dist/connectors/github/octokit-client.d.ts +3 -1
  254. package/dist/connectors/github/octokit-client.js +7 -2
  255. package/dist/connectors/github/ratelimit.d.ts +6 -2
  256. package/dist/connectors/github/ratelimit.js +6 -2
  257. package/dist/connectors/github/signature.d.ts +14 -3
  258. package/dist/connectors/github/signature.js +17 -3
  259. package/dist/connectors/github/tenant-routing.d.ts +6 -4
  260. package/dist/connectors/github/tenant-routing.js +6 -6
  261. package/dist/connectors/github/transform.js +50 -67
  262. package/dist/connectors/github/types.d.ts +10 -3
  263. package/dist/connectors/github/types.js +6 -2
  264. package/dist/connectors/github/webhook.d.ts +5 -5
  265. package/dist/connectors/github/webhook.js +34 -23
  266. package/dist/connectors/ingest.d.ts +5 -3
  267. package/dist/connectors/ingest.js +3 -4
  268. package/dist/connectors/slack/backfill.d.ts +5 -5
  269. package/dist/connectors/slack/backfill.js +3 -3
  270. package/dist/connectors/slack/deletion.d.ts +4 -4
  271. package/dist/connectors/slack/deletion.js +6 -6
  272. package/dist/connectors/slack/dlq.d.ts +4 -4
  273. package/dist/connectors/slack/dlq.js +6 -6
  274. package/dist/connectors/slack/ingest.d.ts +6 -4
  275. package/dist/connectors/slack/ingest.js +5 -5
  276. package/dist/connectors/slack/signature.d.ts +4 -1
  277. package/dist/connectors/slack/tenant-routing.d.ts +6 -4
  278. package/dist/connectors/slack/tenant-routing.js +6 -6
  279. package/dist/connectors/slack/transform.d.ts +6 -2
  280. package/dist/connectors/slack/transform.js +6 -2
  281. package/dist/connectors/slack/types.d.ts +3 -1
  282. package/dist/connectors/slack/web-client.js +8 -3
  283. package/dist/connectors/slack/webhook.d.ts +5 -5
  284. package/dist/connectors/slack/webhook.js +19 -11
  285. package/dist/connectors/slack/workspaces.d.ts +7 -3
  286. package/dist/connectors/slack/workspaces.js +7 -3
  287. package/dist/connectors/store.d.ts +8 -0
  288. package/dist/connectors/store.js +2 -0
  289. package/dist/consolidate/conflicts.js +23 -9
  290. package/dist/consolidate/dag-summary.js +2 -1
  291. package/dist/consolidate/dag.d.ts +10 -5
  292. package/dist/consolidate/dag.js +37 -36
  293. package/dist/consolidate/decay.js +19 -6
  294. package/dist/consolidate/dedupe.d.ts +14 -5
  295. package/dist/consolidate/dedupe.js +27 -16
  296. package/dist/consolidate/flush-units.d.ts +4 -1
  297. package/dist/consolidate/flush-units.js +4 -1
  298. package/dist/consolidate/half-life-migration.d.ts +18 -8
  299. package/dist/consolidate/half-life-migration.js +48 -18
  300. package/dist/consolidate/llm-passes.js +27 -11
  301. package/dist/consolidate/memory-value-weights.d.ts +6 -2
  302. package/dist/consolidate/memory-value-weights.js +6 -2
  303. package/dist/consolidate/memory-value.d.ts +30 -10
  304. package/dist/consolidate/memory-value.js +36 -13
  305. package/dist/consolidate/merge.d.ts +4 -1
  306. package/dist/consolidate/merge.js +42 -32
  307. package/dist/consolidate/overlap-index.d.ts +8 -2
  308. package/dist/consolidate/overlap-index.js +11 -4
  309. package/dist/consolidate/physics-pass.d.ts +3 -1
  310. package/dist/consolidate/physics-pass.js +10 -7
  311. package/dist/consolidate/replay.d.ts +11 -4
  312. package/dist/consolidate/replay.js +19 -7
  313. package/dist/consolidate/run.d.ts +13 -5
  314. package/dist/consolidate/run.js +4 -4
  315. package/dist/consolidate/sleep.d.ts +14 -6
  316. package/dist/consolidate/sleep.js +41 -38
  317. package/dist/consolidate/trace.d.ts +7 -2
  318. package/dist/consolidate/trace.js +7 -2
  319. package/dist/consolidate/traces.js +26 -29
  320. package/dist/core/ablation.d.ts +9 -3
  321. package/dist/core/ablation.js +14 -4
  322. package/dist/core/active-scope.d.ts +3 -1
  323. package/dist/core/active-scope.js +3 -1
  324. package/dist/core/agent-memory-tools.d.ts +2 -0
  325. package/dist/core/agent-memory-tools.js +2 -0
  326. package/dist/core/ambient.d.ts +4 -3
  327. package/dist/core/ambient.js +8 -6
  328. package/dist/core/api-errors.d.ts +9 -3
  329. package/dist/core/api-errors.js +9 -3
  330. package/dist/core/capture-contract.d.ts +4 -1
  331. package/dist/core/capture-contract.js +27 -8
  332. package/dist/core/compare.d.ts +24 -8
  333. package/dist/core/compare.js +24 -8
  334. package/dist/core/config.d.ts +18 -9
  335. package/dist/core/config.js +24 -14
  336. package/dist/core/cosine.d.ts +4 -1
  337. package/dist/core/cosine.js +4 -1
  338. package/dist/core/handoff.d.ts +7 -2
  339. package/dist/core/handoff.js +4 -1
  340. package/dist/core/markdown.js +21 -16
  341. package/dist/core/memory-audit.js +14 -3
  342. package/dist/core/memory-quality.d.ts +12 -3
  343. package/dist/core/memory-quality.js +57 -21
  344. package/dist/core/memory.d.ts +84 -27
  345. package/dist/core/memory.js +73 -29
  346. package/dist/core/merged-row.d.ts +8 -2
  347. package/dist/core/merged-row.js +10 -3
  348. package/dist/core/package-root.d.ts +3 -1
  349. package/dist/core/package-root.js +3 -1
  350. package/dist/core/particle-refresh.d.ts +8 -0
  351. package/dist/core/particle-refresh.js +22 -0
  352. package/dist/core/physics-config.d.ts +4 -1
  353. package/dist/core/physics-config.js +6 -2
  354. package/dist/core/physics.d.ts +37 -11
  355. package/dist/core/physics.js +55 -20
  356. package/dist/core/project-identity.d.ts +34 -17
  357. package/dist/core/project-identity.js +33 -17
  358. package/dist/core/project-remote.d.ts +8 -4
  359. package/dist/core/project-remote.js +31 -14
  360. package/dist/core/recall-scope.d.ts +33 -11
  361. package/dist/core/recall-scope.js +42 -15
  362. package/dist/core/rejection-digest.d.ts +7 -0
  363. package/dist/core/rejection-digest.js +13 -0
  364. package/dist/core/salience.d.ts +3 -1
  365. package/dist/core/salience.js +10 -4
  366. package/dist/core/search-types.d.ts +15 -2
  367. package/dist/core/search-types.js +11 -0
  368. package/dist/dashboard/dashboard-actions.js +13 -2
  369. package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
  370. package/dist/dashboard/dashboard-snapshot.js +4 -4
  371. package/dist/dashboard/dashboard.js +6 -3
  372. package/dist/db/backup.js +2 -2
  373. package/dist/db/busy.d.ts +10 -3
  374. package/dist/db/busy.js +27 -5
  375. package/dist/db/connect.d.ts +10 -3
  376. package/dist/db/connect.js +8 -3
  377. package/dist/db/continuity.d.ts +1 -1
  378. package/dist/db/continuity.js +27 -11
  379. package/dist/db/meta.d.ts +4 -1
  380. package/dist/db/meta.js +4 -1
  381. package/dist/db/migrate.d.ts +10 -5
  382. package/dist/db/migrate.js +26 -13
  383. package/dist/db/migrations/index.d.ts +1 -1
  384. package/dist/db/migrations/index.js +3 -1
  385. package/dist/db/migrations/types.d.ts +2 -1
  386. package/dist/db/migrations/v12.js +2 -1
  387. package/dist/db/migrations/v14.js +2 -1
  388. package/dist/db/migrations/v15.js +4 -2
  389. package/dist/db/migrations/v16.js +6 -3
  390. package/dist/db/migrations/v17.js +2 -1
  391. package/dist/db/migrations/v19.js +4 -2
  392. package/dist/db/migrations/v20.js +2 -1
  393. package/dist/db/migrations/v22.js +12 -6
  394. package/dist/db/migrations/v23.js +6 -3
  395. package/dist/db/migrations/v24.js +6 -3
  396. package/dist/db/migrations/v25.js +4 -2
  397. package/dist/db/migrations/v26.js +4 -2
  398. package/dist/db/migrations/v27.js +6 -3
  399. package/dist/db/migrations/v28.js +4 -2
  400. package/dist/db/migrations/v29.js +4 -2
  401. package/dist/db/migrations/v30.js +6 -3
  402. package/dist/db/migrations/v31.js +4 -2
  403. package/dist/db/migrations/v32.js +6 -3
  404. package/dist/db/migrations/v33.js +4 -2
  405. package/dist/db/migrations/v34.js +2 -1
  406. package/dist/db/migrations/v35.js +2 -1
  407. package/dist/db/migrations/v36.js +2 -1
  408. package/dist/db/migrations/v37.js +10 -5
  409. package/dist/db/migrations/v38.js +10 -5
  410. package/dist/db/migrations/v39.js +14 -6
  411. package/dist/db/migrations/v40.js +4 -2
  412. package/dist/db/migrations/v41.js +4 -2
  413. package/dist/db/migrations/v42.js +2 -1
  414. package/dist/db/migrations/v44.js +4 -2
  415. package/dist/db/migrations/v45.js +4 -2
  416. package/dist/db/migrations/v49.js +2 -1
  417. package/dist/db/migrations/v50.js +4 -2
  418. package/dist/db/migrations/v51.js +4 -2
  419. package/dist/db/migrations/v52.js +2 -1
  420. package/dist/db/migrations/v53.js +8 -4
  421. package/dist/db/migrations/v54.js +2 -1
  422. package/dist/db/migrations/v55.js +4 -2
  423. package/dist/db/migrations/v56.d.ts +3 -0
  424. package/dist/db/migrations/v56.js +28 -0
  425. package/dist/db/open.d.ts +24 -12
  426. package/dist/db/open.js +25 -13
  427. package/dist/db/physics-state.d.ts +8 -4
  428. package/dist/db/physics-state.js +13 -20
  429. package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
  430. package/dist/db/raw-archive-mirror-cleanup.js +6 -4
  431. package/dist/db/request-stores.d.ts +19 -5
  432. package/dist/db/request-stores.js +14 -5
  433. package/dist/db/tables.d.ts +2 -1
  434. package/dist/db/tables.js +12 -4
  435. package/dist/db/vector-store.d.ts +13 -4
  436. package/dist/db/vector-store.js +34 -14
  437. package/dist/db/wal-checkpointer.d.ts +2 -1
  438. package/dist/db/wal-checkpointer.js +19 -7
  439. package/dist/doctor.d.ts +4 -1
  440. package/dist/doctor.js +121 -39
  441. package/dist/embeddings/local.d.ts +8 -4
  442. package/dist/embeddings/local.js +9 -5
  443. package/dist/embeddings/provider.d.ts +19 -10
  444. package/dist/embeddings/provider.js +31 -17
  445. package/dist/embeddings/transformers.d.ts +16 -4
  446. package/dist/embeddings/transformers.js +32 -15
  447. package/dist/entry/json-hooks.d.ts +1 -1
  448. package/dist/entry/json-hooks.js +1 -1
  449. package/dist/entry/project-identity.js +2 -1
  450. package/dist/entry/session-text.d.ts +1 -1
  451. package/dist/entry/session-text.js +1 -1
  452. package/dist/entry/sqlite-handles.d.ts +10 -0
  453. package/dist/entry/sqlite-handles.js +9 -0
  454. package/dist/entry/store-kit.d.ts +19 -6
  455. package/dist/entry/store-kit.js +6 -4
  456. package/dist/eval/eval-stats.d.ts +27 -8
  457. package/dist/eval/eval-stats.js +17 -5
  458. package/dist/eval/eval-suite.d.ts +3 -1
  459. package/dist/eval/eval-suite.js +409 -187
  460. package/dist/eval/eval.d.ts +8 -2
  461. package/dist/eval/eval.js +8 -2
  462. package/dist/eval/judgment.js +16 -6
  463. package/dist/graph/delta.d.ts +9 -42
  464. package/dist/graph/delta.js +17 -11
  465. package/dist/graph/extract.d.ts +10 -7
  466. package/dist/graph/extract.js +57 -25
  467. package/dist/graph/recall.d.ts +12 -4
  468. package/dist/graph/recall.js +30 -13
  469. package/dist/graph/stream.d.ts +18 -6
  470. package/dist/graph/stream.js +32 -10
  471. package/dist/graph/view.d.ts +19 -6
  472. package/dist/graph/view.js +42 -17
  473. package/dist/hooks/codex-session.js +2 -2
  474. package/dist/hooks/codex-wrapper.d.ts +3 -1
  475. package/dist/hooks/codex-wrapper.js +9 -4
  476. package/dist/hooks/copilot.d.ts +19 -5
  477. package/dist/hooks/copilot.js +54 -15
  478. package/dist/hooks/hook-blocks.d.ts +4 -1
  479. package/dist/hooks/hook-blocks.js +8 -3
  480. package/dist/hooks/json-hooks.d.ts +9 -5
  481. package/dist/hooks/json-hooks.js +69 -34
  482. package/dist/hooks/opencode.js +15 -5
  483. package/dist/hooks/shared.d.ts +27 -8
  484. package/dist/hooks/shared.js +57 -16
  485. package/dist/importers/core.d.ts +12 -4
  486. package/dist/importers/core.js +8 -7
  487. package/dist/importers/markdown-parse.d.ts +15 -5
  488. package/dist/importers/markdown-parse.js +16 -7
  489. package/dist/importers/markdown.js +6 -9
  490. package/dist/importers/sources.js +10 -23
  491. package/dist/importers/vault.d.ts +2 -2
  492. package/dist/importers/vault.js +43 -27
  493. package/dist/index.d.ts +32 -6
  494. package/dist/index.js +25 -7
  495. package/dist/learn/autolearn.d.ts +17 -6
  496. package/dist/learn/autolearn.js +53 -24
  497. package/dist/learn/churn-git.d.ts +4 -1
  498. package/dist/learn/churn-git.js +29 -5
  499. package/dist/learn/extract.d.ts +4 -1
  500. package/dist/learn/extract.js +16 -9
  501. package/dist/learn/forward-claim-detector.d.ts +17 -5
  502. package/dist/learn/forward-claim-detector.js +34 -15
  503. package/dist/learn/invalidation.d.ts +12 -7
  504. package/dist/learn/invalidation.js +56 -27
  505. package/dist/learn/roots.d.ts +3 -0
  506. package/dist/learn/roots.js +5 -0
  507. package/dist/mcp/admin-tools.d.ts +5 -5
  508. package/dist/mcp/admin-tools.js +28 -23
  509. package/dist/mcp/format.d.ts +1 -1
  510. package/dist/mcp/format.js +4 -2
  511. package/dist/mcp/framing.d.ts +3 -1
  512. package/dist/mcp/framing.js +20 -8
  513. package/dist/mcp/memory-tools.d.ts +3 -3
  514. package/dist/mcp/memory-tools.js +18 -14
  515. package/dist/mcp/protocol.d.ts +32 -16
  516. package/dist/mcp/protocol.js +12 -9
  517. package/dist/mcp/recall-tools.d.ts +3 -3
  518. package/dist/mcp/recall-tools.js +62 -74
  519. package/dist/mcp/request.d.ts +7 -5
  520. package/dist/mcp/request.js +57 -74
  521. package/dist/mcp/server.d.ts +3 -1
  522. package/dist/mcp/server.js +8 -3
  523. package/dist/mcp/session-state.d.ts +1 -1
  524. package/dist/mcp/session-state.js +4 -3
  525. package/dist/mcp/shared-gate.d.ts +3 -2
  526. package/dist/mcp/shared-gate.js +3 -2
  527. package/dist/mcp/stdio.d.ts +6 -3
  528. package/dist/mcp/stdio.js +52 -21
  529. package/dist/mcp/tool-args.d.ts +4 -1
  530. package/dist/mcp/tool-args.js +8 -3
  531. package/dist/mcp/tools.js +76 -32
  532. package/dist/objects/customer-notes.d.ts +12 -10
  533. package/dist/objects/customer-notes.js +21 -15
  534. package/dist/objects/decisions.d.ts +18 -10
  535. package/dist/objects/decisions.js +23 -17
  536. package/dist/objects/descriptor.js +2 -1
  537. package/dist/objects/fields.d.ts +4 -1
  538. package/dist/objects/fields.js +6 -2
  539. package/dist/objects/incidents.d.ts +14 -16
  540. package/dist/objects/incidents.js +29 -30
  541. package/dist/objects/lifecycle.d.ts +0 -4
  542. package/dist/objects/lifecycle.js +21 -24
  543. package/dist/objects/policies.d.ts +12 -16
  544. package/dist/objects/policies.js +17 -21
  545. package/dist/objects/processes.d.ts +16 -10
  546. package/dist/objects/processes.js +20 -15
  547. package/dist/objects/project-briefs.d.ts +13 -14
  548. package/dist/objects/project-briefs.js +33 -39
  549. package/dist/objects/skills.d.ts +10 -12
  550. package/dist/objects/skills.js +17 -22
  551. package/dist/postinstall.js +15 -7
  552. package/dist/predictions/planning-fallacy.d.ts +19 -6
  553. package/dist/predictions/planning-fallacy.js +4 -2
  554. package/dist/rerankers/clef.d.ts +8 -2
  555. package/dist/rerankers/clef.js +14 -9
  556. package/dist/rerankers/cross-encoder.d.ts +2 -1
  557. package/dist/rerankers/cross-encoder.js +9 -6
  558. package/dist/rerankers/index.js +2 -1
  559. package/dist/rerankers/jev.js +2 -1
  560. package/dist/rerankers/llm.d.ts +6 -2
  561. package/dist/rerankers/llm.js +8 -3
  562. package/dist/rerankers/remote.d.ts +3 -1
  563. package/dist/rerankers/remote.js +5 -2
  564. package/dist/rerankers/types.d.ts +6 -2
  565. package/dist/search/bm25-search.d.ts +3 -1
  566. package/dist/search/bm25-search.js +15 -2
  567. package/dist/search/boosts.js +4 -3
  568. package/dist/search/embed-memories.d.ts +10 -5
  569. package/dist/search/embed-memories.js +62 -36
  570. package/dist/search/engine.d.ts +4 -1
  571. package/dist/search/engine.js +6 -2
  572. package/dist/search/goal-boost.d.ts +10 -3
  573. package/dist/search/goal-boost.js +13 -6
  574. package/dist/search/hybrid-score.d.ts +4 -1
  575. package/dist/search/hybrid-score.js +4 -1
  576. package/dist/search/hybrid.d.ts +23 -8
  577. package/dist/search/hybrid.js +12 -7
  578. package/dist/search/multihop.js +14 -13
  579. package/dist/search/path-context.d.ts +10 -3
  580. package/dist/search/path-context.js +10 -3
  581. package/dist/search/physics-search.d.ts +9 -4
  582. package/dist/search/physics-search.js +38 -14
  583. package/dist/search/rerank.d.ts +2 -1
  584. package/dist/search/rerank.js +2 -1
  585. package/dist/search/rrf.d.ts +14 -5
  586. package/dist/search/rrf.js +11 -4
  587. package/dist/search/vector.d.ts +8 -2
  588. package/dist/search/vector.js +9 -3
  589. package/dist/server/auth.d.ts +18 -14
  590. package/dist/server/auth.js +69 -38
  591. package/dist/server/boot.d.ts +3 -1
  592. package/dist/server/boot.js +95 -56
  593. package/dist/server/client-ip.d.ts +11 -4
  594. package/dist/server/client-ip.js +27 -10
  595. package/dist/server/cursor.d.ts +10 -3
  596. package/dist/server/cursor.js +10 -3
  597. package/dist/server/deadline.d.ts +5 -2
  598. package/dist/server/deadline.js +10 -3
  599. package/dist/server/key-check-bounds.js +12 -4
  600. package/dist/server/lifecycle.d.ts +4 -1
  601. package/dist/server/lifecycle.js +10 -4
  602. package/dist/server/mcp-http.d.ts +2 -1
  603. package/dist/server/mcp-http.js +37 -22
  604. package/dist/server/rate-limit.d.ts +17 -5
  605. package/dist/server/rate-limit.js +55 -26
  606. package/dist/server/ready.js +7 -4
  607. package/dist/server/request.d.ts +15 -4
  608. package/dist/server/request.js +42 -15
  609. package/dist/server/route-checks.d.ts +4 -1
  610. package/dist/server/route-checks.js +8 -3
  611. package/dist/server/route-table.d.ts +8 -6
  612. package/dist/server/route-table.js +547 -93
  613. package/dist/server/routes/admin.d.ts +7 -7
  614. package/dist/server/routes/admin.js +36 -15
  615. package/dist/server/routes/customer-notes.d.ts +5 -5
  616. package/dist/server/routes/customer-notes.js +5 -4
  617. package/dist/server/routes/decisions.d.ts +5 -5
  618. package/dist/server/routes/decisions.js +12 -6
  619. package/dist/server/routes/incidents.d.ts +5 -5
  620. package/dist/server/routes/incidents.js +10 -4
  621. package/dist/server/routes/memories.d.ts +8 -8
  622. package/dist/server/routes/memories.js +12 -19
  623. package/dist/server/routes/object-routes.d.ts +8 -5
  624. package/dist/server/routes/object-routes.js +4 -2
  625. package/dist/server/routes/policies.d.ts +6 -6
  626. package/dist/server/routes/policies.js +11 -4
  627. package/dist/server/routes/predictions.d.ts +5 -5
  628. package/dist/server/routes/predictions.js +9 -4
  629. package/dist/server/routes/processes.d.ts +5 -5
  630. package/dist/server/routes/processes.js +15 -6
  631. package/dist/server/routes/project-briefs.d.ts +6 -6
  632. package/dist/server/routes/project-briefs.js +3 -2
  633. package/dist/server/routes/recall.d.ts +3 -3
  634. package/dist/server/routes/recall.js +21 -10
  635. package/dist/server/routes/skills.d.ts +6 -6
  636. package/dist/server/routes/skills.js +12 -4
  637. package/dist/server/server-detect.d.ts +24 -8
  638. package/dist/server/server-detect.js +57 -22
  639. package/dist/server/sleep-child.js +16 -10
  640. package/dist/server/sleep-offload.d.ts +8 -5
  641. package/dist/server/sleep-offload.js +41 -19
  642. package/dist/server/tls.d.ts +4 -1
  643. package/dist/server/tls.js +13 -5
  644. package/dist/server/types.d.ts +38 -26
  645. package/dist/server/validation.d.ts +4 -1
  646. package/dist/server/validation.js +22 -9
  647. package/dist/server.d.ts +15 -10
  648. package/dist/server.js +32 -12
  649. package/dist/sharing/global-store.d.ts +5 -10
  650. package/dist/sharing/global-store.js +8 -43
  651. package/dist/sharing/global-sync.d.ts +3 -1
  652. package/dist/sharing/global-sync.js +16 -6
  653. package/dist/sharing/project-merge.d.ts +25 -7
  654. package/dist/sharing/project-merge.js +49 -17
  655. package/dist/sharing/search-both.d.ts +8 -4
  656. package/dist/sharing/search-both.js +19 -12
  657. package/dist/sharing/share.d.ts +8 -4
  658. package/dist/sharing/share.js +39 -15
  659. package/dist/store/ambient.js +9 -5
  660. package/dist/store/audit-event.d.ts +2 -2
  661. package/dist/store/audit-event.js +8 -3
  662. package/dist/store/audit.d.ts +6 -3
  663. package/dist/store/audit.js +16 -6
  664. package/dist/store/auth.d.ts +4 -2
  665. package/dist/store/auth.js +63 -20
  666. package/dist/store/busy.d.ts +9 -0
  667. package/dist/store/busy.js +16 -0
  668. package/dist/store/candidates.d.ts +12 -5
  669. package/dist/store/candidates.js +75 -36
  670. package/dist/store/capture-write.d.ts +2 -1
  671. package/dist/store/capture-write.js +2 -1
  672. package/dist/store/card-detail.d.ts +4 -4
  673. package/dist/store/card-detail.js +15 -8
  674. package/dist/store/cards.d.ts +24 -10
  675. package/dist/store/cards.js +93 -60
  676. package/dist/store/compaction-caller.d.ts +2 -1
  677. package/dist/store/compaction-caller.js +2 -1
  678. package/dist/store/compactions-record.d.ts +14 -8
  679. package/dist/store/compactions-record.js +95 -32
  680. package/dist/store/compactions.js +35 -15
  681. package/dist/store/conflicts.d.ts +9 -4
  682. package/dist/store/conflicts.js +100 -45
  683. package/dist/store/connectors/dlq.d.ts +17 -5
  684. package/dist/store/connectors/dlq.js +56 -5
  685. package/dist/store/connectors/event-log.d.ts +111 -2
  686. package/dist/store/connectors/event-log.js +2 -1
  687. package/dist/store/connectors/github.d.ts +6 -3
  688. package/dist/store/connectors/github.js +24 -40
  689. package/dist/store/connectors/slack.d.ts +2 -1
  690. package/dist/store/connectors/slack.js +25 -37
  691. package/dist/store/dashboard-reads.d.ts +7 -3
  692. package/dist/store/dashboard-reads.js +32 -11
  693. package/dist/store/delete-and-batch.d.ts +17 -11
  694. package/dist/store/delete-and-batch.js +67 -26
  695. package/dist/store/delivery-recorder.d.ts +8 -5
  696. package/dist/store/delivery-recorder.js +70 -32
  697. package/dist/store/descendant-page.d.ts +2 -1
  698. package/dist/store/descendant-page.js +24 -9
  699. package/dist/store/diagnostics.d.ts +2 -1
  700. package/dist/store/diagnostics.js +2 -1
  701. package/dist/store/doctor-reads.d.ts +2 -1
  702. package/dist/store/doctor-reads.js +13 -5
  703. package/dist/store/dormant.d.ts +19 -11
  704. package/dist/store/dormant.js +40 -18
  705. package/dist/store/embeddings/index.d.ts +13 -9
  706. package/dist/store/embeddings/index.js +19 -12
  707. package/dist/store/entry-reads.d.ts +49 -20
  708. package/dist/store/entry-reads.js +181 -66
  709. package/dist/store/entry-row.d.ts +10 -6
  710. package/dist/store/entry-row.js +17 -12
  711. package/dist/store/entry-writes.d.ts +22 -10
  712. package/dist/store/entry-writes.js +41 -14
  713. package/dist/store/failure-log-at.js +1 -1
  714. package/dist/store/failure-log.d.ts +4 -2
  715. package/dist/store/failure-log.js +13 -6
  716. package/dist/store/gated-write.d.ts +3 -3
  717. package/dist/store/gated-write.js +3 -3
  718. package/dist/store/goals.d.ts +5 -4
  719. package/dist/store/goals.js +8 -10
  720. package/dist/store/graph-apply.d.ts +21 -0
  721. package/dist/{graph/write.js → store/graph-apply.js} +31 -11
  722. package/dist/store/graph-queue.d.ts +9 -6
  723. package/dist/store/graph-queue.js +15 -10
  724. package/dist/store/graph-reads.d.ts +16 -11
  725. package/dist/store/graph-reads.js +24 -15
  726. package/dist/store/graph-rows.d.ts +41 -3
  727. package/dist/store/graph-rows.js +10 -7
  728. package/dist/store/graph-view-rows.js +14 -7
  729. package/dist/store/graph-writes.d.ts +16 -10
  730. package/dist/store/graph-writes.js +59 -36
  731. package/dist/store/handoffs.d.ts +4 -4
  732. package/dist/store/handoffs.js +40 -19
  733. package/dist/store/index-and-stats.d.ts +2 -2
  734. package/dist/store/index-and-stats.js +6 -5
  735. package/dist/store/index.d.ts +3 -1
  736. package/dist/store/index.js +1 -0
  737. package/dist/store/key-audit.d.ts +2 -1
  738. package/dist/store/key-audit.js +2 -1
  739. package/dist/store/key-writes.d.ts +2 -1
  740. package/dist/store/key-writes.js +9 -2
  741. package/dist/store/ledger-turn.d.ts +4 -1
  742. package/dist/store/ledger-turn.js +7 -2
  743. package/dist/store/mirrors.d.ts +11 -4
  744. package/dist/store/mirrors.js +88 -16
  745. package/dist/store/narrow.d.ts +6 -0
  746. package/dist/store/narrow.js +11 -0
  747. package/dist/store/open.d.ts +4 -2
  748. package/dist/store/open.js +18 -9
  749. package/dist/store/pilot-arm.d.ts +2 -1
  750. package/dist/store/pilot-arm.js +18 -6
  751. package/dist/store/planning-fallacy-evidence.d.ts +2 -2
  752. package/dist/store/planning-fallacy-evidence.js +8 -5
  753. package/dist/store/port/agent-import.d.ts +62 -0
  754. package/dist/store/port/agent-import.js +2 -0
  755. package/dist/store/port/consolidation.d.ts +129 -0
  756. package/dist/store/port/consolidation.js +2 -0
  757. package/dist/store/port/learning.d.ts +19 -0
  758. package/dist/store/port/learning.js +2 -0
  759. package/dist/store/port/local-files.d.ts +18 -0
  760. package/dist/store/port/local-files.js +2 -0
  761. package/dist/store/port/promotion.d.ts +20 -0
  762. package/dist/store/port/promotion.js +3 -0
  763. package/dist/store/port-groups.d.ts +160 -0
  764. package/dist/store/port-groups.js +2 -0
  765. package/dist/store/port.d.ts +215 -229
  766. package/dist/store/port.js +3 -9
  767. package/dist/store/predictions.d.ts +14 -10
  768. package/dist/store/predictions.js +37 -17
  769. package/dist/store/project-tags.d.ts +4 -1
  770. package/dist/store/project-tags.js +16 -5
  771. package/dist/store/quality-repair.d.ts +8 -4
  772. package/dist/store/quality-repair.js +53 -20
  773. package/dist/store/quarantine.d.ts +1 -0
  774. package/dist/store/quarantine.js +23 -9
  775. package/dist/store/raw-archive.d.ts +5 -4
  776. package/dist/store/raw-archive.js +11 -10
  777. package/dist/store/recall-trace.d.ts +22 -17
  778. package/dist/store/recall-trace.js +126 -63
  779. package/dist/store/rejected-values.d.ts +15 -10
  780. package/dist/store/rejected-values.js +33 -12
  781. package/dist/store/rejection.d.ts +12 -11
  782. package/dist/store/rejection.js +18 -19
  783. package/dist/store/report-reads.d.ts +2 -1
  784. package/dist/store/report-reads.js +2 -1
  785. package/dist/store/rows.d.ts +7 -5
  786. package/dist/store/rows.js +18 -11
  787. package/dist/store/rule-sql.d.ts +6 -4
  788. package/dist/store/rule-sql.js +16 -9
  789. package/dist/store/search-rows.d.ts +14 -9
  790. package/dist/store/search-rows.js +48 -23
  791. package/dist/store/sessions.d.ts +12 -10
  792. package/dist/store/sessions.js +40 -21
  793. package/dist/store/set-aside.d.ts +2 -2
  794. package/dist/store/set-aside.js +18 -5
  795. package/dist/store/sqlite/agent-import.d.ts +3 -0
  796. package/dist/store/sqlite/agent-import.js +77 -0
  797. package/dist/store/sqlite/cards-group.d.ts +6 -0
  798. package/dist/store/sqlite/cards-group.js +37 -0
  799. package/dist/store/sqlite/conflicts-group.d.ts +6 -0
  800. package/dist/store/sqlite/conflicts-group.js +18 -0
  801. package/dist/store/sqlite/connector-events-group.d.ts +2 -1
  802. package/dist/store/sqlite/connector-events-group.js +17 -6
  803. package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
  804. package/dist/store/sqlite/connector-writes-group.js +9 -4
  805. package/dist/store/sqlite/consolidation-group.d.ts +4 -0
  806. package/dist/store/sqlite/consolidation-group.js +64 -0
  807. package/dist/store/sqlite/dag-reads-group.js +1 -1
  808. package/dist/store/sqlite/dormant-group.d.ts +6 -0
  809. package/dist/store/sqlite/dormant-group.js +29 -0
  810. package/dist/store/sqlite/entry-writes-group.d.ts +6 -3
  811. package/dist/store/sqlite/entry-writes-group.js +37 -14
  812. package/dist/store/sqlite/error-codec.d.ts +4 -2
  813. package/dist/store/sqlite/error-codec.js +32 -10
  814. package/dist/store/sqlite/executor-counts.js +2 -1
  815. package/dist/store/sqlite/executor.d.ts +8 -3
  816. package/dist/store/sqlite/executor.js +56 -18
  817. package/dist/store/sqlite/global-promote.d.ts +5 -0
  818. package/dist/store/sqlite/global-promote.js +48 -0
  819. package/dist/store/sqlite/goals-group.d.ts +6 -0
  820. package/dist/store/sqlite/goals-group.js +23 -0
  821. package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
  822. package/dist/store/sqlite/graph-reads-group.js +2 -1
  823. package/dist/store/sqlite/held-connection.d.ts +7 -1
  824. package/dist/store/sqlite/held-connection.js +34 -7
  825. package/dist/store/sqlite/last-recall-group.d.ts +4 -2
  826. package/dist/store/sqlite/last-recall-group.js +9 -4
  827. package/dist/store/sqlite/learning-group.d.ts +4 -0
  828. package/dist/store/sqlite/learning-group.js +17 -0
  829. package/dist/store/sqlite/maintenance-groups.js +2 -1
  830. package/dist/store/sqlite/object-rows.d.ts +6 -3
  831. package/dist/store/sqlite/object-rows.js +34 -5
  832. package/dist/store/sqlite/objects-group.d.ts +5 -4
  833. package/dist/store/sqlite/objects-group.js +84 -33
  834. package/dist/store/sqlite/predictions-group.d.ts +2 -1
  835. package/dist/store/sqlite/predictions-group.js +4 -2
  836. package/dist/store/sqlite/promotion-group.d.ts +3 -0
  837. package/dist/store/sqlite/promotion-group.js +10 -0
  838. package/dist/store/sqlite/quarantine-group.d.ts +2 -1
  839. package/dist/store/sqlite/quarantine-group.js +4 -2
  840. package/dist/store/sqlite/reports-group.d.ts +6 -0
  841. package/dist/store/sqlite/reports-group.js +33 -0
  842. package/dist/store/sqlite/request-scope.d.ts +6 -0
  843. package/dist/store/sqlite/request-scope.js +18 -0
  844. package/dist/store/sqlite/sessions-group.d.ts +6 -0
  845. package/dist/store/sqlite/sessions-group.js +46 -0
  846. package/dist/store/sqlite/store.d.ts +22 -11
  847. package/dist/store/sqlite/store.js +84 -11
  848. package/dist/store/sqlite/vector-pack.js +2 -1
  849. package/dist/store/sqlite/vector-reads-group.js +2 -1
  850. package/dist/store/sqlite/worker-jobs.d.ts +2 -1
  851. package/dist/store/sqlite/worker-jobs.js +19 -7
  852. package/dist/store/sqlite/worker-ops.d.ts +10 -5
  853. package/dist/store/sqlite/worker-ops.js +6 -3
  854. package/dist/store/sqlite/worker-store.d.ts +4 -3
  855. package/dist/store/sqlite/worker-store.js +24 -14
  856. package/dist/store/summaries.d.ts +19 -12
  857. package/dist/store/summaries.js +36 -21
  858. package/dist/store/summary-dirty.d.ts +2 -1
  859. package/dist/store/summary-dirty.js +2 -1
  860. package/dist/store/tenant.d.ts +3 -2
  861. package/dist/store/tenant.js +5 -4
  862. package/dist/store/token-ledger-rows.js +6 -3
  863. package/dist/store/token-ledger.d.ts +19 -13
  864. package/dist/store/token-ledger.js +27 -14
  865. package/dist/store/tombstone-checks.d.ts +4 -1
  866. package/dist/store/tombstone-checks.js +10 -1
  867. package/dist/store/usage-reports.js +2 -1
  868. package/dist/store/vector-index.d.ts +8 -5
  869. package/dist/store/vector-index.js +24 -10
  870. package/dist/store/working-memory.d.ts +6 -4
  871. package/dist/store/working-memory.js +14 -9
  872. package/dist/support-bundle.js +10 -5
  873. package/dist/trust/quarantine.d.ts +1 -2
  874. package/dist/trust/quarantine.js +1 -5
  875. package/dist/trust/reject-flow.d.ts +12 -3
  876. package/dist/trust/reject-flow.js +12 -4
  877. package/dist/util/anthropic-messages.d.ts +4 -1
  878. package/dist/util/anthropic-messages.js +14 -5
  879. package/dist/util/atomic-write.d.ts +4 -2
  880. package/dist/util/atomic-write.js +25 -14
  881. package/dist/util/compaction-items.d.ts +4 -1
  882. package/dist/util/compaction-items.js +8 -2
  883. package/dist/util/crash-handlers.d.ts +7 -2
  884. package/dist/util/crash-handlers.js +13 -4
  885. package/dist/util/env.d.ts +16 -4
  886. package/dist/util/env.js +78 -25
  887. package/dist/util/home-path.js +12 -6
  888. package/dist/util/hook-payload.d.ts +3 -1
  889. package/dist/util/hook-payload.js +3 -1
  890. package/dist/util/http-retry.d.ts +12 -6
  891. package/dist/util/http-retry.js +16 -6
  892. package/dist/util/http-util.d.ts +20 -5
  893. package/dist/util/http-util.js +28 -9
  894. package/dist/util/json.d.ts +4 -1
  895. package/dist/util/json.js +4 -1
  896. package/dist/util/keyset.js +2 -1
  897. package/dist/util/limits.js +4 -2
  898. package/dist/util/log.d.ts +13 -5
  899. package/dist/util/log.js +29 -6
  900. package/dist/util/net.d.ts +5 -0
  901. package/dist/util/net.js +19 -0
  902. package/dist/util/real-path.d.ts +2 -1
  903. package/dist/util/real-path.js +4 -3
  904. package/dist/util/request-scope.d.ts +11 -3
  905. package/dist/util/request-scope.js +13 -4
  906. package/dist/util/same-text.d.ts +10 -3
  907. package/dist/util/same-text.js +10 -3
  908. package/dist/util/secret-detect.d.ts +24 -7
  909. package/dist/util/secret-detect.js +49 -14
  910. package/dist/util/spawn-argv.d.ts +3 -1
  911. package/dist/util/spawn-argv.js +13 -4
  912. package/dist/util/sqlite-blocked.d.ts +15 -4
  913. package/dist/util/sqlite-blocked.js +19 -6
  914. package/dist/util/stored-json.d.ts +4 -1
  915. package/dist/util/stored-json.js +6 -2
  916. package/dist/util/stream-tee.d.ts +2 -1
  917. package/dist/util/stream-tee.js +8 -5
  918. package/dist/util/transcript-tail.d.ts +4 -1
  919. package/dist/util/transcript-tail.js +4 -1
  920. package/dist/util/version.d.ts +8 -3
  921. package/dist/util/version.js +8 -3
  922. package/dist/util/write-budget.d.ts +7 -2
  923. package/dist/util/write-budget.js +5 -2
  924. package/dist/util/yaml.d.ts +4 -1
  925. package/dist/util/yaml.js +4 -1
  926. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  927. package/extensions/openclaw-plugin/package.json +1 -1
  928. package/openclaw.plugin.json +1 -1
  929. package/package.json +2 -1
  930. package/scripts/postinstall.cjs +3 -1
  931. package/dist/api/cards.d.ts +0 -42
  932. package/dist/api/conflicts.d.ts +0 -28
  933. package/dist/api/conflicts.js +0 -61
  934. package/dist/api/dormant.d.ts +0 -14
  935. package/dist/api/dormant.js +0 -58
  936. package/dist/api/goals.d.ts +0 -18
  937. package/dist/api/graph.d.ts +0 -8
  938. package/dist/api/graph.js +0 -8
  939. package/dist/api/learn.js +0 -125
  940. package/dist/api/memories.d.ts +0 -25
  941. package/dist/api/objects.d.ts +0 -9
  942. package/dist/api/outcome.d.ts +0 -19
  943. package/dist/api/predictions.d.ts +0 -11
  944. package/dist/api/promote.d.ts +0 -36
  945. package/dist/api/recall-core.d.ts +0 -4
  946. package/dist/api/recall-core.js +0 -125
  947. package/dist/api/recall-finish.d.ts +0 -53
  948. package/dist/api/recall-finish.js +0 -30
  949. package/dist/api/recall-history.d.ts +0 -64
  950. package/dist/api/recall-history.js +0 -159
  951. package/dist/api/recall-record.d.ts +0 -43
  952. package/dist/api/recall-record.js +0 -78
  953. package/dist/api/recall-request.js +0 -121
  954. package/dist/api/recall.d.ts +0 -6
  955. package/dist/api/refine.d.ts +0 -7
  956. package/dist/api/refine.js +0 -10
  957. package/dist/api/session-owners.d.ts +0 -4
  958. package/dist/api/session-owners.js +0 -17
  959. package/dist/api/sleep-run.d.ts +0 -26
  960. package/dist/api/sleep.js +0 -11
  961. package/dist/graph/write.d.ts +0 -14
  962. package/dist/store/sqlite/busy.d.ts +0 -3
  963. package/dist/store/sqlite/busy.js +0 -8
  964. package/dist/store/sqlite/local.d.ts +0 -4
  965. package/dist/store/sqlite/local.js +0 -8
@@ -44,7 +44,10 @@ export interface MemoryEntry {
44
44
  descendant_count?: number;
45
45
  earliest_at?: string | null;
46
46
  latest_at?: string | null;
47
- /** True when a child was invalidated, superseded, forgotten or archived since the last rebuild; sleep clears it. Always false below level 2. */
47
+ /**
48
+ * True when a child was invalidated, superseded, forgotten or archived since the last rebuild; sleep clears it.
49
+ * Always false below level 2.
50
+ */
48
51
  summary_dirty?: boolean;
49
52
  /** ISO 8601 time of the last successful rebuild, or null if never rebuilt. */
50
53
  last_rebuilt_at?: string | null;
@@ -57,13 +60,23 @@ export interface MemoryEntry {
57
60
  owner: string | null;
58
61
  artifact_ref: string | null;
59
62
  tenant_id: string;
60
- /** Owning project, lowercased; '' = user-global (injectable everywhere), null = none known (legacy or unnamed write), denied by ambient context.
63
+ /**
64
+ * Owning project, lowercased; '' = user-global (injectable everywhere), null = none known (legacy or unnamed write),
65
+ * denied by ambient context.
61
66
  * Stamped at write time by stampOriginProject (src/store/entry-row.ts); undefined only before the first write. */
62
67
  origin_project?: string | null;
63
- /** Raw FTS5 bm25() from the search path (negative, lower = better); set only for a non-empty query the FTS join answered.
68
+ /**
69
+ * Raw FTS5 bm25() from the search path (negative, lower = better); set only for a non-empty query the FTS join
70
+ * answered.
64
71
  * Not comparable to the JS scorer in src/search/bm25.ts, so read it as rank metadata only. */
65
72
  bm25_score?: number;
66
73
  }
74
+ /** Named dag_level values; level 0 is a raw leaf. */
75
+ export declare const DAG_LEVEL: {
76
+ readonly extracted: 1;
77
+ readonly topic: 2;
78
+ readonly entity: 3;
79
+ };
67
80
  /** Tag on a memory whose named file/symbol/script changed after it was stored. */
68
81
  export declare const CHURN_STALE_TAG = "churn-stale";
69
82
  export declare const EMOTIONAL_MULTIPLIERS: {
@@ -72,22 +85,36 @@ export declare const EMOTIONAL_MULTIPLIERS: {
72
85
  negative: number;
73
86
  critical: number;
74
87
  };
75
- /** Test-only: a test that sets HIPPO_LOSS_AVERSION_RATIO calls this in beforeEach and afterEach (tests/emotional-multipliers.test.ts). */
88
+ /**
89
+ * Test-only: a test that sets HIPPO_LOSS_AVERSION_RATIO calls this in beforeEach and afterEach
90
+ * (tests/emotional-multipliers.test.ts).
91
+ */
76
92
  export declare function _resetLossAversionRatioCacheForTests(): void;
77
- /** Scales only the `negative` multiplier; `critical` stays unscaled so the knob moves just the losses-vs-gains claim. */
93
+ /**
94
+ * Scales only the `negative` multiplier; `critical` stays unscaled so the knob moves just the losses-vs-gains claim.
95
+ */
78
96
  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. */
97
+ /**
98
+ * 1 + REWARD_SLOPE * (pos - neg) / (pos + neg + 1), in (0.5, 1.5), 1.0 with no outcomes; it scales the effective
99
+ * half-life.
100
+ */
80
101
  export declare function calculateRewardFactor(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>, ablation?: StrengthAblation): number;
81
102
  /** Bad marks alone never push a memory under sleep's 0.05 retire line; supersede is the hard correction. */
82
103
  export declare const MAX_WRONG_HALVINGS = 3;
83
104
  export declare const DECAY_BASE = 0.5;
84
105
  export declare const REWARD_SLOPE = 0.5;
85
106
  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. */
107
+ /**
108
+ * Bad outcome marks past good ones, floored at zero; each halves strength and stops recall strengthening, so a
109
+ * correction outranks pinning.
110
+ */
87
111
  export declare function netWrong(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>, ablation?: StrengthAblation): number;
88
112
  /** What calculateStrength reads, so a caller can score a row without loading its text. */
89
113
  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. */
114
+ /**
115
+ * Decay basis: clock = wall time, session = per sleep cycle (intermittent agents), adaptive = half-life scaled by
116
+ * session frequency.
117
+ */
91
118
  export interface DecayOptions {
92
119
  decayBasis?: 'clock' | 'session' | 'adaptive';
93
120
  /** Average interval between sleep cycles, in days. Used by 'adaptive' and 'session' modes. */
@@ -97,12 +124,19 @@ export interface DecayOptions {
97
124
  /** EVAL-ONLY switches resolved once at the entry layer (`strengthAblation()`); absent means production scoring. */
98
125
  ablation?: StrengthAblation;
99
126
  }
100
- /** Strength at `now` = decay * retrieval boost * emotional multiplier, clamped to [0, 1]; the basis modes are on DecayOptions.
127
+ /**
128
+ * Strength at `now` = decay * retrieval boost * emotional multiplier, clamped to [0, 1]; the basis modes are on
129
+ * DecayOptions.
101
130
  * Pinned memories skip time decay, but being marked wrong still fades them (netWrong). */
102
131
  export declare function calculateStrength(entry: StrengthInputs, now?: Date, options?: DecayOptions): number;
132
+ /** A memory counts as high schema fit strictly above this. */
133
+ export declare const HIGH_SCHEMA_FIT = 0.7;
103
134
  /** The base half-life scaled by the PLAN.md signals: an error tag, and high or low schema fit. */
104
135
  export declare function deriveHalfLife(base: number, entry: Partial<MemoryEntry>): number;
105
- /** Counts the outcome; calculateStrength turns the counts into a reward factor on the half-life, so there is no fixed delta here. */
136
+ /**
137
+ * Counts the outcome; calculateStrength turns the counts into a reward factor on the half-life, so there is no fixed
138
+ * delta here.
139
+ */
106
140
  export declare function applyOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
107
141
  /** applyOutcome as a served outcome applies it: a good outcome reconfirms the entry, so its churn-stale tag goes. */
108
142
  export declare function entryAfterOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
@@ -120,14 +154,24 @@ export declare function confidenceLabel(entry: MemoryEntry, now?: Date): {
120
154
  text: string;
121
155
  warn: boolean;
122
156
  };
123
- /** The stored confidence, or 'stale' once the entry is aged out (not retrieved for AGED_OUT_AFTER_DAYS; pinned and verified exempt). */
157
+ /**
158
+ * The stored confidence, or 'stale' once the entry is aged out (not retrieved for AGED_OUT_AFTER_DAYS; pinned and
159
+ * verified exempt).
160
+ */
124
161
  export declare function resolveConfidence(entry: MemoryEntry, now?: Date): ConfidenceLevel;
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.
162
+ /**
163
+ * Base half-life in days before deriveHalfLife's multipliers: 365 because 7 lost the current fact far more often and
164
+ * 730 did no better.
126
165
  * `hippo sleep` moves memories still on an older base (src/consolidate/half-life-migration.ts). */
127
166
  export declare const DEFAULT_HALF_LIFE_DAYS = 365;
167
+ /** The flat half-life the decision, incident and other object writers gave their memories before they took the
168
+ * default. */
169
+ export declare const LEGACY_TYPED_HALF_LIFE = 90;
128
170
  export declare const COMPACTION_MEMORY_TAG = "compaction-memory";
129
171
  export declare const COMPACTION_SOURCE_PREFIX = "compaction:";
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,
172
+ /**
173
+ * 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
174
+ * source with that tool's prefix,
131
175
  * since merge copies source tags onto rows whose source is 'consolidation'. */
132
176
  export interface KeepPair {
133
177
  readonly tag: string;
@@ -136,31 +180,40 @@ export interface KeepPair {
136
180
  export declare const KEEP_PAIRS: readonly KeepPair[];
137
181
  export declare function isKeptForGood(entry: Pick<MemoryEntry, 'tags' | 'source' | 'superseded_by'>): boolean;
138
182
  export declare function canAutoDelete(entry: Pick<MemoryEntry, 'pinned' | 'kind' | 'tags' | 'source' | 'superseded_by'>): boolean;
183
+ /** Options are camelCase; `MemoryEntry` keeps the snake_case stored-row names. */
139
184
  export interface CreateMemoryOptions {
140
185
  layer?: Layer;
141
186
  tags?: string[];
142
- emotional_valence?: EmotionalValence;
187
+ emotionalValence?: EmotionalValence;
143
188
  pinned?: boolean;
144
- schema_fit?: number;
189
+ schemaFit?: number;
145
190
  source?: string;
146
191
  confidence?: ConfidenceLevel;
147
- /** The store's `loadConfig(hippoRoot).defaultHalfLifeDays`; required so no writer silently gets the compiled default. */
192
+ /**
193
+ * The store's `loadConfig(hippoRoot).defaultHalfLifeDays`; required so no writer silently gets the compiled default.
194
+ */
148
195
  baseHalfLifeDays: number;
149
- trace_outcome?: TraceOutcome;
150
- source_session_id?: string | null;
151
- valid_from?: string;
152
- extracted_from?: string;
153
- dag_level?: number;
154
- dag_parent_id?: string;
196
+ traceOutcome?: TraceOutcome;
197
+ sourceSessionId?: string | null;
198
+ validFrom?: string;
199
+ extractedFrom?: string;
200
+ dagLevel?: number;
201
+ dagParentId?: string;
155
202
  kind?: MemoryKind;
156
203
  scope?: string | null;
157
204
  owner?: string | null;
158
- artifact_ref?: string | null;
205
+ artifactRef?: string | null;
159
206
  tenantId?: string;
160
207
  }
161
- /** Create a new memory entry with defaults. Untyped JavaScript callers that omit the options get the compiled default half-life. */
208
+ /**
209
+ * Create a new memory entry with defaults. Untyped JavaScript callers that omit the options get the compiled default
210
+ * half-life.
211
+ */
162
212
  export declare function createMemory(content: string, options: CreateMemoryOptions): MemoryEntry;
163
- /** The row that replaces `old`: a supersede never changes where a memory belongs, so source, scope, session and a stamped origin carry over. */
213
+ /**
214
+ * The row that replaces `old`: a supersede never changes where a memory belongs, so source, scope, session and a
215
+ * stamped origin carry over.
216
+ */
164
217
  export declare function createSuccessor(old: MemoryEntry, content: string, opts: {
165
218
  tenantId: string;
166
219
  baseHalfLifeDays: number;
@@ -168,7 +221,9 @@ export declare function createSuccessor(old: MemoryEntry, content: string, opts:
168
221
  tags?: string[];
169
222
  pinned?: boolean;
170
223
  }): MemoryEntry;
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.
224
+ /**
225
+ * How well new content fits existing knowledge, 0..1: above 0.7 consolidates faster, below 0.3 is novel and decays
226
+ * faster if unused.
172
227
  * Tags shared with existing memories count by rarity (a rare shared tag fits more), plus content-token overlap. */
173
228
  export declare function computeSchemaFit(content: string, tags: string[], existingEntries: MemoryEntry[]): number;
174
229
  /** What schema fit reads from `entries`, built once for a caller that scores many contents against the same rows. */
@@ -184,6 +239,8 @@ export interface SchemaFitSource {
184
239
  /** computeSchemaFit against `source`, for a caller that holds counts and texts but no rows. */
185
240
  export declare function schemaFitFrom(content: string, tags: readonly string[], source: SchemaFitSource): number;
186
241
  /** 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. */
242
+ * Under HIPPO_ABLATE_RECALL_BOOST (eval-only) the entries come back unchanged, not empty, since callers derive
243
+ * last_retrieval_ids from them.
244
+ */
188
245
  export declare function markRetrieved(entries: MemoryEntry[], now?: Date, options?: Pick<DecayOptions, 'ablation'>): MemoryEntry[];
189
246
  //# sourceMappingURL=memory.d.ts.map
@@ -17,6 +17,8 @@ export var Layer;
17
17
  Layer["Trace"] = "trace";
18
18
  })(Layer || (Layer = {}));
19
19
  export const MEMORY_KINDS = ['raw', 'distilled', 'superseded', 'archived'];
20
+ /** Named dag_level values; level 0 is a raw leaf. */
21
+ export const DAG_LEVEL = { extracted: 1, topic: 2, entity: 3 };
20
22
  /** Tag on a memory whose named file/symbol/script changed after it was stored. */
21
23
  export const CHURN_STALE_TAG = 'churn-stale';
22
24
  // Losses weigh ~2x gains (Lovallo-Kahneman), so negative is 2.0; HIPPO_LOSS_AVERSION_RATIO scales it per process.
@@ -47,17 +49,25 @@ function getLossAversionRatio() {
47
49
  _lossAversionRatioCache = parsed;
48
50
  return parsed;
49
51
  }
50
- /** Test-only: a test that sets HIPPO_LOSS_AVERSION_RATIO calls this in beforeEach and afterEach (tests/emotional-multipliers.test.ts). */
52
+ /**
53
+ * Test-only: a test that sets HIPPO_LOSS_AVERSION_RATIO calls this in beforeEach and afterEach
54
+ * (tests/emotional-multipliers.test.ts).
55
+ */
51
56
  export function _resetLossAversionRatioCacheForTests() {
52
57
  _lossAversionRatioCache = undefined;
53
58
  }
54
- /** Scales only the `negative` multiplier; `critical` stays unscaled so the knob moves just the losses-vs-gains claim. */
59
+ /**
60
+ * Scales only the `negative` multiplier; `critical` stays unscaled so the knob moves just the losses-vs-gains claim.
61
+ */
55
62
  export function applyLossAversionRatio(valence, baseMultiplier) {
56
63
  if (valence !== 'negative')
57
64
  return baseMultiplier;
58
65
  return baseMultiplier * getLossAversionRatio();
59
66
  }
60
- /** 1 + REWARD_SLOPE * (pos - neg) / (pos + neg + 1), in (0.5, 1.5), 1.0 with no outcomes; it scales the effective half-life. */
67
+ /**
68
+ * 1 + REWARD_SLOPE * (pos - neg) / (pos + neg + 1), in (0.5, 1.5), 1.0 with no outcomes; it scales the effective
69
+ * half-life.
70
+ */
61
71
  export function calculateRewardFactor(entry, ablation = NO_STRENGTH_ABLATION) {
62
72
  // EVAL-ONLY ablation (see ablation.ts): the slow outcome channel.
63
73
  if (ablation.outcomeSlow)
@@ -75,13 +85,18 @@ export const MAX_WRONG_HALVINGS = 3;
75
85
  export const DECAY_BASE = 0.5;
76
86
  export const REWARD_SLOPE = 0.5;
77
87
  export const RETRIEVAL_BOOST_SLOPE = 0.1;
78
- /** Bad outcome marks past good ones, floored at zero; each halves strength and stops recall strengthening, so a correction outranks pinning. */
88
+ /**
89
+ * Bad outcome marks past good ones, floored at zero; each halves strength and stops recall strengthening, so a
90
+ * correction outranks pinning.
91
+ */
79
92
  export function netWrong(entry, ablation = NO_STRENGTH_ABLATION) {
80
93
  if (ablation.outcomeSlow || ablation.decay)
81
94
  return 0;
82
95
  return Math.max(0, (entry.outcome_negative ?? 0) - (entry.outcome_positive ?? 0));
83
96
  }
84
- /** Strength at `now` = decay * retrieval boost * emotional multiplier, clamped to [0, 1]; the basis modes are on DecayOptions.
97
+ /**
98
+ * Strength at `now` = decay * retrieval boost * emotional multiplier, clamped to [0, 1]; the basis modes are on
99
+ * DecayOptions.
85
100
  * Pinned memories skip time decay, but being marked wrong still fades them (netWrong). */
86
101
  export function calculateStrength(entry,
87
102
  // evalNow() is the real clock unless HIPPO_FAKE_NOW is set (eval-only); an explicit `now` wins.
@@ -91,7 +106,8 @@ now = evalNow(), options = {}) {
91
106
  const wrongPenalty = Math.pow(DECAY_BASE, Math.min(netWrong(entry, ablation), MAX_WRONG_HALVINGS));
92
107
  if (entry.pinned)
93
108
  return wrongPenalty;
94
- // EVAL-ONLY ablation (see ablation.ts): anchor decay at creation so clock resets from earlier unflagged runs cannot leak in.
109
+ // EVAL-ONLY ablation (see ablation.ts): anchor decay at creation so clock resets from earlier unflagged runs cannot
110
+ // leak in.
95
111
  const lastRetrieved = new Date(ablation.recallBoost ? entry.created : entry.last_retrieved);
96
112
  const daysSince = (now.getTime() - lastRetrieved.getTime()) / DAY_MS;
97
113
  const rewardFactor = calculateRewardFactor(entry, ablation);
@@ -113,7 +129,8 @@ function decayExponentFor(options, daysSince, halfLifeDays) {
113
129
  let effectiveHalfLife = halfLifeDays;
114
130
  const basis = options.decayBasis ?? 'clock';
115
131
  if (basis === 'session') {
116
- // Each sleep cycle counts as one "day"; sessions since last retrieval are estimated from wall time and the average interval.
132
+ // Each sleep cycle counts as one "day"; sessions since last retrieval are estimated from wall time and the average
133
+ // interval.
117
134
  const avgInterval = options.avgSessionIntervalDays ?? 1;
118
135
  const sessionsSince = avgInterval > 0 ? Math.max(0, daysSince / avgInterval) : daysSince;
119
136
  return sessionsSince / effectiveHalfLife;
@@ -134,7 +151,8 @@ function retrievalBoostFor(entry, ablation) {
134
151
  ? 1.0
135
152
  : 1 + RETRIEVAL_BOOST_SLOPE * Math.log2(entry.retrieval_count + 1);
136
153
  }
137
- const HIGH_SCHEMA_FIT = 0.7;
154
+ /** A memory counts as high schema fit strictly above this. */
155
+ export const HIGH_SCHEMA_FIT = 0.7;
138
156
  const HIGH_FIT_HALF_LIFE_FACTOR = 1.5;
139
157
  const LOW_SCHEMA_FIT = 0.3;
140
158
  const LOW_FIT_HALF_LIFE_FACTOR = 0.5;
@@ -161,7 +179,10 @@ export function deriveHalfLife(base, entry) {
161
179
  }
162
180
  return hl;
163
181
  }
164
- /** Counts the outcome; calculateStrength turns the counts into a reward factor on the half-life, so there is no fixed delta here. */
182
+ /**
183
+ * Counts the outcome; calculateStrength turns the counts into a reward factor on the half-life, so there is no fixed
184
+ * delta here.
185
+ */
165
186
  export function applyOutcome(entry, good) {
166
187
  const updated = {
167
188
  ...entry,
@@ -205,18 +226,30 @@ export function confidenceLabel(entry, now = evalNow()) {
205
226
  warn: agedOut || tier === 'stale' || tier === 'inferred',
206
227
  };
207
228
  }
208
- /** The stored confidence, or 'stale' once the entry is aged out (not retrieved for AGED_OUT_AFTER_DAYS; pinned and verified exempt). */
229
+ /**
230
+ * The stored confidence, or 'stale' once the entry is aged out (not retrieved for AGED_OUT_AFTER_DAYS; pinned and
231
+ * verified exempt).
232
+ */
209
233
  export function resolveConfidence(entry, now = evalNow()) {
210
234
  return isAgedOut(entry, now) ? 'stale' : entry.confidence;
211
235
  }
212
- /** Base half-life in days before deriveHalfLife's multipliers: 365 because 7 lost the current fact far more often and 730 did no better.
236
+ /**
237
+ * Base half-life in days before deriveHalfLife's multipliers: 365 because 7 lost the current fact far more often and
238
+ * 730 did no better.
213
239
  * `hippo sleep` moves memories still on an older base (src/consolidate/half-life-migration.ts). */
214
240
  export const DEFAULT_HALF_LIFE_DAYS = 365;
241
+ /** The flat half-life the decision, incident and other object writers gave their memories before they took the
242
+ * default. */
243
+ export const LEGACY_TYPED_HALF_LIFE = 90;
215
244
  export const COMPACTION_MEMORY_TAG = 'compaction-memory';
216
245
  export const COMPACTION_SOURCE_PREFIX = 'compaction:';
217
- export const KEEP_PAIRS = AGENT_MEMORY_TOOLS.map((t) => ({ tag: t.tag, sourcePrefix: toolSourcePrefix(t.id) }));
246
+ export const KEEP_PAIRS = AGENT_MEMORY_TOOLS.map((t) => ({
247
+ tag: t.tag,
248
+ sourcePrefix: toolSourcePrefix(t.id),
249
+ }));
218
250
  export function isKeptForGood(entry) {
219
- return !entry.superseded_by && KEEP_PAIRS.some((p) => entry.tags.includes(p.tag) && entry.source.startsWith(p.sourcePrefix));
251
+ return (!entry.superseded_by &&
252
+ KEEP_PAIRS.some((p) => entry.tags.includes(p.tag) && entry.source.startsWith(p.sourcePrefix)));
220
253
  }
221
254
  export function canAutoDelete(entry) {
222
255
  return !entry.pinned && entry.kind !== 'raw' && !isKeptForGood(entry);
@@ -226,8 +259,8 @@ export function createMemory(content, options = {}) {
226
259
  const now = evalNow().toISOString(); // honors HIPPO_FAKE_NOW (eval-only)
227
260
  const layer = options.layer ?? Layer.Episodic;
228
261
  const tags = options.tags ?? [];
229
- const emotional_valence = options.emotional_valence ?? inferValence(tags);
230
- const schema_fit = options.schema_fit ?? DEFAULT_SCHEMA_FIT;
262
+ const emotional_valence = options.emotionalValence ?? inferValence(tags);
263
+ const schema_fit = options.schemaFit ?? DEFAULT_SCHEMA_FIT;
231
264
  const half_life_days = deriveHalfLife(options.baseHalfLifeDays ?? DEFAULT_HALF_LIFE_DAYS, { tags, schema_fit });
232
265
  const entry = {
233
266
  id: generateId(layer === Layer.Semantic ? 'sem' : 'mem'),
@@ -250,17 +283,17 @@ export function createMemory(content, options = {}) {
250
283
  content,
251
284
  parents: [],
252
285
  starred: false,
253
- trace_outcome: options.trace_outcome ?? null,
254
- source_session_id: options.source_session_id ?? null,
255
- valid_from: options.valid_from ?? now,
286
+ trace_outcome: options.traceOutcome ?? null,
287
+ source_session_id: options.sourceSessionId ?? null,
288
+ valid_from: options.validFrom ?? now,
256
289
  superseded_by: null,
257
- extracted_from: options.extracted_from ?? null,
258
- dag_level: options.dag_level ?? 0,
259
- dag_parent_id: options.dag_parent_id ?? null,
290
+ extracted_from: options.extractedFrom ?? null,
291
+ dag_level: options.dagLevel ?? 0,
292
+ dag_parent_id: options.dagParentId ?? null,
260
293
  kind: options.kind ?? 'distilled',
261
294
  scope: options.scope ?? null,
262
295
  owner: options.owner ?? null,
263
- artifact_ref: options.artifact_ref ?? null,
296
+ artifact_ref: options.artifactRef ?? null,
264
297
  tenant_id: options.tenantId ?? DEFAULT_TENANT_ID,
265
298
  };
266
299
  entry.strength = calculateStrength(entry);
@@ -272,11 +305,14 @@ function assertValidMemoryInput(content, options) {
272
305
  throw new BadRequestError(`Memory content too short (${trimmed.length} chars, minimum 3): "${trimmed}"`);
273
306
  }
274
307
  const validOutcomes = ['success', 'failure', 'partial', null];
275
- if (options.trace_outcome !== undefined && !validOutcomes.includes(options.trace_outcome)) {
276
- throw new BadRequestError(`Invalid trace_outcome: ${options.trace_outcome}. Must be 'success', 'failure', 'partial', or null.`);
308
+ if (options.traceOutcome !== undefined && !validOutcomes.includes(options.traceOutcome)) {
309
+ throw new BadRequestError(`Invalid trace_outcome: ${options.traceOutcome}. Must be 'success', 'failure', 'partial', or null.`);
277
310
  }
278
311
  }
279
- /** The row that replaces `old`: a supersede never changes where a memory belongs, so source, scope, session and a stamped origin carry over. */
312
+ /**
313
+ * The row that replaces `old`: a supersede never changes where a memory belongs, so source, scope, session and a
314
+ * stamped origin carry over.
315
+ */
280
316
  export function createSuccessor(old, content, opts) {
281
317
  const next = createMemory(content, {
282
318
  layer: opts.layer ?? old.layer,
@@ -286,7 +322,7 @@ export function createSuccessor(old, content, opts) {
286
322
  confidence: 'verified',
287
323
  tenantId: opts.tenantId,
288
324
  scope: old.scope,
289
- source_session_id: old.source_session_id,
325
+ sourceSessionId: old.source_session_id,
290
326
  baseHalfLifeDays: opts.baseHalfLifeDays,
291
327
  });
292
328
  // A legacy null origin has nothing to carry, so the store stamps it from its own location.
@@ -295,7 +331,9 @@ export function createSuccessor(old, content, opts) {
295
331
  }
296
332
  return next;
297
333
  }
298
- /** How well new content fits existing knowledge, 0..1: above 0.7 consolidates faster, below 0.3 is novel and decays faster if unused.
334
+ /**
335
+ * How well new content fits existing knowledge, 0..1: above 0.7 consolidates faster, below 0.3 is novel and decays
336
+ * faster if unused.
299
337
  * Tags shared with existing memories count by rarity (a rare shared tag fits more), plus content-token overlap. */
300
338
  export function computeSchemaFit(content, tags, existingEntries) {
301
339
  return schemaFitFrom(content, tags, schemaFitSourceOf(existingEntries));
@@ -317,7 +355,11 @@ const TAG_OVERLAP_SCALE = 2;
317
355
  // Floor on the matches that saturate the content score, so a tiny store cannot saturate it on one hit.
318
356
  const CONTENT_ENOUGH_MIN_MATCHES = 5;
319
357
  function significantTokens(text) {
320
- return new Set(text.toLowerCase().replace(/[^\w\s]/g, ' ').split(/\s+/).filter((t) => t.length > FILLER_TOKEN_MAX_LENGTH));
358
+ return new Set(text
359
+ .toLowerCase()
360
+ .replace(/[^\w\s]/g, ' ')
361
+ .split(/\s+/)
362
+ .filter((t) => t.length > FILLER_TOKEN_MAX_LENGTH));
321
363
  }
322
364
  /** computeSchemaFit against `source`, for a caller that holds counts and texts but no rows. */
323
365
  export function schemaFitFrom(content, tags, source) {
@@ -368,7 +410,9 @@ function inferValence(tags) {
368
410
  return 'neutral';
369
411
  }
370
412
  /** Returns copies with the retrieval count, clock and half-life updated; the caller persists them.
371
- * Under HIPPO_ABLATE_RECALL_BOOST (eval-only) the entries come back unchanged, not empty, since callers derive last_retrieval_ids from them. */
413
+ * Under HIPPO_ABLATE_RECALL_BOOST (eval-only) the entries come back unchanged, not empty, since callers derive
414
+ * last_retrieval_ids from them.
415
+ */
372
416
  export function markRetrieved(entries, now = evalNow(), options = {}) {
373
417
  const ablation = options.ablation ?? NO_STRENGTH_ABLATION;
374
418
  if (ablation.recallBoost)
@@ -1,6 +1,12 @@
1
1
  import { type MemoryEntry } from './memory.js';
2
- /** The row that replaces a merged row once its retired texts leave: undefined when it holds none, null when nothing else is left. */
2
+ /**
3
+ * The row that replaces a merged row once its retired texts leave: undefined when it holds none, null when nothing else
4
+ * is left.
5
+ */
3
6
  export declare function mergedSuccessor(row: MemoryEntry, retired: (text: string) => boolean, retiredIds: ReadonlySet<string>): MemoryEntry | null | undefined;
4
- /** Sleep's check on a merged row: drops texts whose source was superseded since the merge, or that a rejection now covers. */
7
+ /**
8
+ * Sleep's check on a merged row: drops texts whose source was superseded since the merge, or that a rejection now
9
+ * covers.
10
+ */
5
11
  export declare function successorAfterRetirement(row: MemoryEntry, byId: ReadonlyMap<string, MemoryEntry>, rejected: (text: string) => boolean): MemoryEntry | null | undefined;
6
12
  //# sourceMappingURL=merged-row.d.ts.map
@@ -1,9 +1,13 @@
1
- // A sleep-merged row copies its sources' texts, so retiring a text (reject, or superseding its source) must reach the row too.
1
+ // A sleep-merged row copies its sources' texts, so retiring a text (reject, or superseding its source) must reach the
2
+ // row too.
2
3
  // SHORTCUT: reject rewrites merged rows at once, live and dormant; supersede and `resolve
3
4
  // --reject-loser` wait for the next sleep's check, which sees a dormant row only once restored.
4
5
  import { generateId } from './memory.js';
5
6
  import { duplicateKey, heldTexts, mergedText } from '../util/same-text.js';
6
- /** The row that replaces a merged row once its retired texts leave: undefined when it holds none, null when nothing else is left. */
7
+ /**
8
+ * The row that replaces a merged row once its retired texts leave: undefined when it holds none, null when nothing else
9
+ * is left.
10
+ */
7
11
  export function mergedSuccessor(row, retired, retiredIds) {
8
12
  const texts = heldTexts(row);
9
13
  const kept = texts.filter((t) => !retired(t));
@@ -22,7 +26,10 @@ export function mergedSuccessor(row, retired, retiredIds) {
22
26
  conflicts_with: [],
23
27
  };
24
28
  }
25
- /** Sleep's check on a merged row: drops texts whose source was superseded since the merge, or that a rejection now covers. */
29
+ /**
30
+ * Sleep's check on a merged row: drops texts whose source was superseded since the merge, or that a rejection now
31
+ * covers.
32
+ */
26
33
  export function successorAfterRetirement(row, byId, rejected) {
27
34
  if (row.source !== 'consolidation' || row.superseded_by)
28
35
  return undefined;
@@ -1,3 +1,5 @@
1
- /** The package folder: it holds package.json, bin/ and dist-ui/. The same two steps up from src/core and from dist/core. */
1
+ /**
2
+ * The package folder: it holds package.json, bin/ and dist-ui/. The same two steps up from src/core and from dist/core.
3
+ */
2
4
  export declare const PACKAGE_ROOT: string;
3
5
  //# sourceMappingURL=package-root.d.ts.map
@@ -1,5 +1,7 @@
1
1
  import * as path from 'path';
2
2
  import { fileURLToPath } from 'url';
3
- /** The package folder: it holds package.json, bin/ and dist-ui/. The same two steps up from src/core and from dist/core. */
3
+ /**
4
+ * The package folder: it holds package.json, bin/ and dist-ui/. The same two steps up from src/core and from dist/core.
5
+ */
4
6
  export const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
5
7
  //# sourceMappingURL=package-root.js.map
@@ -0,0 +1,8 @@
1
+ import { type MemoryEntry } from './memory.js';
2
+ import { type PhysicsParticle } from './physics.js';
3
+ /**
4
+ * Refresh mass, charge and temperature for existing particles
5
+ * from current memory attributes (called during consolidation).
6
+ */
7
+ export declare function refreshParticleProperties(particles: PhysicsParticle[], entries: Map<string, MemoryEntry>, now?: Date): void;
8
+ //# sourceMappingURL=particle-refresh.d.ts.map
@@ -0,0 +1,22 @@
1
+ // Particle properties follow the memory they stand for; pure, so sleep refreshes them without reaching the store.
2
+ import { evalNow, strengthAblation } from './ablation.js';
3
+ import { calculateStrength } from './memory.js';
4
+ import { computeCharge, computeMass, computeTemperature } from './physics.js';
5
+ import { DAY_MS } from '../util/time.js';
6
+ /**
7
+ * Refresh mass, charge and temperature for existing particles
8
+ * from current memory attributes (called during consolidation).
9
+ */
10
+ export function refreshParticleProperties(particles, entries, now = evalNow()) {
11
+ for (const p of particles) {
12
+ const entry = entries.get(p.memoryId);
13
+ if (!entry)
14
+ continue;
15
+ const strength = calculateStrength(entry, now, { ablation: strengthAblation() });
16
+ const ageDays = (now.getTime() - new Date(entry.created).getTime()) / DAY_MS;
17
+ p.mass = computeMass(strength, entry.retrieval_count);
18
+ p.charge = computeCharge(entry.emotional_valence);
19
+ p.temperature = computeTemperature(ageDays, 1.0);
20
+ }
21
+ }
22
+ //# sourceMappingURL=particle-refresh.js.map
@@ -1,4 +1,7 @@
1
- /** Physics engine configuration for Hippo memory-as-physics. All constants are tunable; defaults calibrated for ~500 memory corpus. */
1
+ /**
2
+ * Physics engine configuration for Hippo memory-as-physics. All constants are tunable; defaults calibrated for ~500
3
+ * memory corpus.
4
+ */
2
5
  export interface PhysicsConfig {
3
6
  /** Use physics scoring when embeddings available. 'auto' = yes if embeddings exist. */
4
7
  enabled: boolean | 'auto';
@@ -1,6 +1,10 @@
1
- /** Physics engine configuration for Hippo memory-as-physics. All constants are tunable; defaults calibrated for ~500 memory corpus. */
1
+ /**
2
+ * Physics engine configuration for Hippo memory-as-physics. All constants are tunable; defaults calibrated for ~500
3
+ * memory corpus.
4
+ */
2
5
  export const DEFAULT_PHYSICS_CONFIG = {
3
- // Off by default: the paired ablation (benchmarks/physics-ablation/) found physics worse than classic hybrid on every metric, CI excluding zero
6
+ // Off by default: the paired ablation (benchmarks/physics-ablation/) found physics worse than classic hybrid on every
7
+ // metric, CI excluding zero
4
8
  // (MRR 0.68 vs 0.84, R@5 74% vs 84%). Opt in with physics.enabled 'auto' or true.
5
9
  enabled: false,
6
10
  G_query: 2.0,
@@ -1,5 +1,8 @@
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,
1
+ /**
2
+ * Memory-as-Physics engine: pure math (forces, Velocity Verlet integration, physics-based scoring, cluster
3
+ * amplification), no I/O.
4
+ * Memories are particles on the unit hypersphere in embedding space (384-dim); query gravity, attraction, conflict
5
+ * repulsion and drag act on them,
3
6
  * and nearby high-scoring memories amplify each other. */
4
7
  import { type EmotionalValence, type MemoryEntry } from './memory.js';
5
8
  import type { PhysicsConfig } from './physics-config.js';
@@ -43,16 +46,29 @@ export declare function vecClampMagnitude(v: number[], maxMag: number): number[]
43
46
  export declare function computeMass(strength: number, retrievalCount: number): number;
44
47
  export declare function computeCharge(valence: EmotionalValence): number;
45
48
  export declare function computeTemperature(ageDays: number, temperatureDecay: number): number;
46
- /** Query gravity (retrieval-time, virtual: does not move the particle): scalar ranking magnitude F = G_Q * mass * max(0, cosine(pos, query))^2. */
49
+ /**
50
+ * Query gravity (retrieval-time, virtual: does not move the particle): scalar ranking magnitude F = G_Q * mass * max(0,
51
+ * cosine(pos, query))^2.
52
+ */
47
53
  export declare function queryGravityMagnitude(particle: PhysicsParticle, queryEmbedding: number[], G_query: number): number;
48
54
  /** Momentum bonus in [0, 1]: how aligned the particle's velocity is with the query direction. */
49
55
  export declare function velocityAlignmentBonus(particle: PhysicsParticle, queryEmbedding: number[]): number;
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. */
56
+ /**
57
+ * Attraction force on particle i from j (consolidation-time): G_M m_i m_j max(0, cosine)^3, directed along (pos_j -
58
+ * pos_i) projected tangent to the unit
59
+ * sphere at pos_i (positions are re-normalized to the sphere after integration). Adds into `out` (a fresh zero vector
60
+ * by default) using `diff` as scratch.
61
+ */
52
62
  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. */
63
+ /**
64
+ * Conflict repulsion on i away from j (consolidation-time): K_R * m_i * m_j / max(0.01, cosine_distance)^2, where
65
+ * cosine_distance = 1 - cosine_similarity.
66
+ */
54
67
  export declare function repulsionForce(pi: PhysicsParticle, pj: PhysicsParticle, K_repulsion: number): number[];
55
- /** Drag force (consolidation-time): -drag * velocity / max(1, effectiveHalfLife), with effectiveHalfLife from the memory's current half_life_days. */
68
+ /**
69
+ * Drag force (consolidation-time): -drag * velocity / max(1, effectiveHalfLife), with effectiveHalfLife from the
70
+ * memory's current half_life_days.
71
+ */
56
72
  export declare function dragForce(particle: PhysicsParticle, drag: number, effectiveHalfLife: number): number[];
57
73
  export interface ForceContext {
58
74
  /** Map of memory ID -> list of conflicting memory IDs */
@@ -64,13 +80,23 @@ export interface ForceContext {
64
80
  /** Full physics simulation for one sleep cycle; mutates particles in place and returns simulation statistics. */
65
81
  export declare function simulate(particles: PhysicsParticle[], ctx: ForceContext): SimulationStats;
66
82
  export declare function computeSystemEnergy(particles: PhysicsParticle[], G_memory: number): SystemEnergy;
67
- /** Scores all particles against a query embedding; virtual force computation, so it does NOT modify particle positions. */
83
+ /**
84
+ * Scores all particles against a query embedding; virtual force computation, so it does NOT modify particle positions.
85
+ */
68
86
  export declare function physicsScore(particles: PhysicsParticle[], queryEmbedding: number[], config: PhysicsConfig,
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,
87
+ /**
88
+ * Cross-ingest-stable tie key per memoryId (typically the memory content, from a caller with entries in scope);
89
+ * without it ties fall to memoryId,
70
90
  * which is per-instance only and lets the cluster_top_k amplification set vary across fresh ingests. */
71
91
  tieKeyOf?: (memoryId: string) => string): ScoredPhysicsResult[];
72
- /** Nudges a particle toward (good outcome) or away from (bad outcome) the query embedding; new memories respond more (temperature). Mutates in place. */
92
+ /**
93
+ * Nudges a particle toward (good outcome) or away from (bad outcome) the query embedding; new memories respond more
94
+ * (temperature). Mutates in place.
95
+ */
73
96
  export declare function applyOutcomeFeedback(particle: PhysicsParticle, queryEmbedding: number[], good: boolean, feedbackAlpha: number): void;
74
- /** Initialize physics state for a memory from its embedding vector; returns the new particle without persisting (the caller must save). */
97
+ /**
98
+ * Initialize physics state for a memory from its embedding vector; returns the new particle without persisting (the
99
+ * caller must save).
100
+ */
75
101
  export declare function initializeParticle(entry: MemoryEntry, embedding: number[], now?: Date): PhysicsParticle;
76
102
  //# sourceMappingURL=physics.d.ts.map