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
package/dist/cli/sleep.js CHANGED
@@ -6,57 +6,32 @@ import { isGitRepo } from '../learn/autolearn.js';
6
6
  import { importForStore, currentMachine } from '../agent-memories/sync.js';
7
7
  import { replayCompactionsAt } from '../capture/compaction-record.js';
8
8
  import * as api from '../api/index.js';
9
- import { resolveTenantId } from '../store/tenant.js';
9
+ import { cliApiContext } from './api-context.js';
10
10
  import { sleepResultLines } from './sleep-render.js';
11
11
  import { errorMessage, log } from '../util/log.js';
12
- import { closeHippoDb, openHippoDb } from '../db/index.js';
13
- import { repairOnceOnSleep } from '../sharing/project-merge.js';
12
+ import { teeStdStreams } from '../util/stream-tee.js';
14
13
  import { boolFlag, stringFlag } from './flag-values.js';
15
14
  import { requireInit, learnFromRepo, runChurnStaleForRepo, skipLearnOnSharedStore } from './shared.js';
16
15
  import { printAgentImport } from './print.js';
17
16
  import { repairQualityOnceAt } from './quality-repair-once.js';
18
17
  import { printError } from './output.js';
19
18
  /** Runs `hippo sleep`; with `--log-file` it also tees its output to that file. */
20
- export async function cmdSleep(hippoRoot, flags) {
21
- // Tee stdout/stderr to a log file when --log-file is set. The SessionEnd
22
- // hook uses this so the output is captured somewhere the SessionStart hook
23
- // can re-display it next time the agent UI starts.
19
+ export async function cmdSleep(hippoRoot, tenantId, flags) {
20
+ // Tee stdout/stderr to a log file when --log-file is set; the SessionEnd hook uses it so the SessionStart hook can re-display the output.
24
21
  const logFile = stringFlag(flags, 'log-file') ?? null;
25
22
  let restoreStdout = null;
26
23
  if (logFile) {
27
24
  try {
28
25
  fs.mkdirSync(path.dirname(logFile), { recursive: true });
29
26
  fs.writeFileSync(logFile, `[hippo] ${new Date().toISOString()} consolidating memory...\n`, 'utf8');
30
- const origStdoutWrite = process.stdout.write.bind(process.stdout);
31
- const origStderrWrite = process.stderr.write.bind(process.stderr);
32
- const tee = (chunk) => {
33
- try {
34
- const buf = typeof chunk === 'string' ? chunk : Buffer.isBuffer(chunk) ? chunk.toString('utf8') : String(chunk);
35
- fs.appendFileSync(logFile, buf, 'utf8');
36
- }
37
- catch {
38
- // log failures are non-fatal — still write to the real stream
39
- }
40
- };
41
- process.stdout.write = ((chunk, enc, cb) => {
42
- tee(chunk);
43
- return origStdoutWrite(chunk, enc, cb);
44
- });
45
- process.stderr.write = ((chunk, enc, cb) => {
46
- tee(chunk);
47
- return origStderrWrite(chunk, enc, cb);
48
- });
49
- restoreStdout = () => {
50
- process.stdout.write = origStdoutWrite;
51
- process.stderr.write = origStderrWrite;
52
- };
27
+ restoreStdout = teeStdStreams(logFile);
53
28
  }
54
29
  catch (err) {
55
30
  log.warn(`could not open log file ${logFile}: ${errorMessage(err)}`);
56
31
  }
57
32
  }
58
33
  try {
59
- await cmdSleepCore(hippoRoot, flags);
34
+ await cmdSleepCore(hippoRoot, tenantId, flags);
60
35
  if (logFile)
61
36
  console.log('[hippo] sleep complete');
62
37
  }
@@ -70,16 +45,17 @@ export async function cmdSleep(hippoRoot, flags) {
70
45
  restoreStdout();
71
46
  }
72
47
  }
48
+ export function handleSleep({ hippoRoot, tenantId, flags }) {
49
+ return cmdSleep(hippoRoot, tenantId, flags);
50
+ }
73
51
  function renderSleepResult(result) {
74
52
  for (const line of sleepResultLines(result))
75
53
  console.log(line);
76
54
  }
77
55
  /** Fault-isolated: a failed repair warns and runs again next sleep, and never stops the sleep. */
78
- function repairProjectTagsOnce(hippoRoot) {
79
- let db;
56
+ function repairProjectTagsOnce(hippoRoot, tenantId) {
80
57
  try {
81
- db = openHippoDb(hippoRoot);
82
- const r = repairOnceOnSleep(db, hippoRoot, resolveTenantId({}));
58
+ const r = api.repairProjectNamesOnce(cliApiContext(hippoRoot, tenantId));
83
59
  if (r === null)
84
60
  return;
85
61
  const parts = [
@@ -92,12 +68,8 @@ function repairProjectTagsOnce(hippoRoot) {
92
68
  catch (err) {
93
69
  log.warn(`project tag repair skipped, retried next sleep: ${errorMessage(err)}`);
94
70
  }
95
- finally {
96
- if (db)
97
- closeHippoDb(db);
98
- }
99
71
  }
100
- async function cmdSleepCore(hippoRoot, flags) {
72
+ async function cmdSleepCore(hippoRoot, tenantId, flags) {
101
73
  requireInit(hippoRoot);
102
74
  // Phase 1: Auto-learn from git and every coding agent's own memories (CLI-only, uses process.cwd() / os.homedir()).
103
75
  // Stays in cli.ts; api.sleep covers Phase 2-6 only.
@@ -108,13 +80,13 @@ async function cmdSleepCore(hippoRoot, flags) {
108
80
  else if (learn) {
109
81
  const config = loadConfig(hippoRoot);
110
82
  if (config.autoLearnOnSleep && isGitRepo(process.cwd())) {
111
- const { added } = learnFromRepo(hippoRoot, process.cwd(), 1);
83
+ const { added } = learnFromRepo(hippoRoot, tenantId, process.cwd(), 1);
112
84
  if (added > 0)
113
85
  console.log(`Auto-learned ${added} lessons from today's git commits.`);
114
86
  }
115
87
  // Opt-in code-churn staleness, off by default (config.churnStaleness.enabled).
116
88
  if (config.churnStaleness.enabled && isGitRepo(process.cwd())) {
117
- for (const { root, result } of runChurnStaleForRepo(hippoRoot, false)) {
89
+ for (const { root, result } of runChurnStaleForRepo(hippoRoot, tenantId, false)) {
118
90
  if (result.marked > 0)
119
91
  console.log(`Tagged ${result.marked} memories churn-stale in ${root}.`);
120
92
  if (result.error)
@@ -128,15 +100,11 @@ async function cmdSleepCore(hippoRoot, flags) {
128
100
  const finished = replayCompactionsAt(hippoRoot, (message) => log.warn(`compaction replay: ${message}`));
129
101
  if (finished > 0)
130
102
  console.log(`Finished saving ${finished} compaction${finished === 1 ? '' : 's'} left over from earlier sessions.`);
131
- repairProjectTagsOnce(hippoRoot);
132
- repairQualityOnceAt(hippoRoot);
103
+ repairProjectTagsOnce(hippoRoot, tenantId);
104
+ repairQualityOnceAt(hippoRoot, tenantId);
133
105
  }
134
106
  // Phase 2-6: Pure-storage pipeline (consolidate + dedup + audit + share + ambient).
135
- const ctx = {
136
- hippoRoot,
137
- tenantId: resolveTenantId({}),
138
- actor: api.adminActor('cli'),
139
- };
107
+ const ctx = cliApiContext(hippoRoot, tenantId);
140
108
  const result = await api.sleep(ctx, {
141
109
  dryRun: boolFlag(flags, 'dry-run'),
142
110
  noShare: boolFlag(flags, 'no-share'),
@@ -1,18 +1,15 @@
1
- import { type CliFlags, type CommandContext } from './flag-values.js';
2
- export declare function cmdStatus(hippoRoot: string): void;
3
- /**
4
- * `hippo tokens [--days <n>] [--json] [--global]`: the token ledger.
5
- * Tokens of memory text handed to agents per surface, blocks
6
- * the per-prompt hook skipped as unchanged and the tokens that saved,
7
- * and the hook blocks' tokens later model calls re-read, counted when each session ends.
8
- * Counts are estimates (characters / 4), the same estimate every budget uses.
9
- */
10
- export declare function cmdTokens(hippoRoot: string, flags: CliFlags): void;
1
+ import { type PhysicsParticle } from '../core/physics.js';
2
+ import { type CommandContext } from './flag-values.js';
3
+ export declare function handleStatus({ hippoRoot, tenantId }: CommandContext): void;
4
+ export declare function physicsEnergyText(particles: PhysicsParticle[], gMemory: number): string;
5
+ /** `hippo tokens [--days <n>] [--json] [--global]`: the token ledger per surface, tokens saved by skipped unchanged blocks, and re-read hook tokens.
6
+ * Counts are estimates (characters / 4), the same estimate every budget uses. */
7
+ export declare function handleTokens({ hippoRoot, tenantId, flags }: CommandContext): void;
11
8
  /** `hippo failures [--days <n>] [--json] [--global]`: failed tool calls by outcome, and repeats across sessions. */
12
- export declare function cmdFailures(hippoRoot: string, flags: CliFlags): void;
13
- export declare function handleCorrectionLatency({ hippoRoot, flags }: CommandContext): void;
14
- export declare function handleProvenance({ hippoRoot, flags }: CommandContext): void;
9
+ export declare function handleFailures({ hippoRoot, tenantId, flags }: CommandContext): void;
10
+ export declare function handleCorrectionLatency({ hippoRoot, tenantId, flags }: CommandContext): void;
11
+ export declare function handleProvenance({ hippoRoot, tenantId, flags }: CommandContext): void;
15
12
  export declare function handleDoctor({ flags }: CommandContext): void;
16
13
  export declare function handleSupportBundle({ flags }: CommandContext): void;
17
- export declare function handleInspect({ hippoRoot, args }: CommandContext): void;
14
+ export declare function handleInspect({ hippoRoot, tenantId, args }: CommandContext): Promise<void>;
18
15
  //# sourceMappingURL=status.d.ts.map
@@ -1,52 +1,47 @@
1
1
  // Read-only report verbs: status, inspect, tokens, failures, provenance, correction latency, doctor and support bundle.
2
2
  import { envHomeDir } from '../util/env.js';
3
- import { evalNow } from '../core/ablation.js';
3
+ import { evalNow, strengthAblation } from '../core/ablation.js';
4
4
  import * as path from 'path';
5
5
  import * as fs from 'fs';
6
6
  import * as os from 'os';
7
7
  import { fileURLToPath } from 'node:url';
8
- import { calculateStrength, calculateRewardFactor, resolveConfidence, confidenceFacets, Layer } from '../core/memory.js';
9
- import { readEntry, loadAllEntries } from '../store/entry-reads.js';
10
- import { loadStats } from '../store/index-and-stats.js';
11
- import { listMemoryConflicts } from '../store/conflicts.js';
12
- import { loadEmbeddingIndex, embeddingModelRequiresReindex } from '../store/embeddings/index.js';
13
- import { resolveEmbeddingProvider } from '../store/embeddings/provider.js';
14
- import { loadStoredParticles } from '../store/vector-writes.js';
8
+ import { calculateStrength, calculateRewardFactor, resolveConfidence, Layer } from '../core/memory.js';
9
+ import { resolveEmbeddingProvider } from '../embeddings/provider.js';
15
10
  import { computeSystemEnergy, vecNorm } from '../core/physics.js';
16
11
  import { loadConfig } from '../core/config.js';
17
12
  import { runDoctor, formatDoctor } from '../doctor.js';
18
13
  import { buildSupportBundle, TAIL_MAX_LINES } from '../support-bundle.js';
19
14
  import { PACKAGE_VERSION } from '../util/version.js';
20
15
  import { FAILURE_LOG_RETENTION_DAYS } from '../store/failure-log.js';
21
- import { getGlobalRoot } from '../sharing/shared.js';
22
- import { buildProvenanceCoverage } from './provenance-coverage.js';
23
- import { buildCorrectionLatency } from './correction-latency.js';
16
+ import { getGlobalRoot } from '../sharing/global-store.js';
24
17
  import * as api from '../api/index.js';
25
- import { resolveTenantId } from '../store/tenant.js';
18
+ import { getMemory } from '../api/memories.js';
19
+ import { correctionLatencyReport, embeddingReindexNeeded, provenanceCoverageReport, storeStatus, storedParticles, vectorSummary, } from '../api/status.js';
20
+ import { cliApiContext } from './api-context.js';
26
21
  import { errorMessage, log } from '../util/log.js';
27
22
  import { printError } from './output.js';
28
23
  import { parseCountFlag, stringFlagOrExit, flagIsTrue } from './flag-values.js';
29
24
  import { requireInit, resolveAuthRoot } from './shared.js';
30
25
  import { fmt } from './print.js';
26
+ import { isJsonObject } from '../util/json.js';
31
27
  import { hookStoreRoot } from './hook-runtime.js';
32
- import { DAY_MS } from '../util/time.js';
33
- export function cmdStatus(hippoRoot) {
28
+ import { DAY_MS, HOUR_MS, MINUTE_MS } from '../util/time.js';
29
+ import { CliExit } from './exit.js';
30
+ export function handleStatus({ hippoRoot, tenantId }) {
34
31
  requireInit(hippoRoot);
35
- const entries = loadAllEntries(hippoRoot);
36
- const stats = loadStats(hippoRoot);
37
- const now = evalNow();
38
- const { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength } = tallyStatus(entries, now);
32
+ const ctx = cliApiContext(hippoRoot, tenantId);
33
+ const { stats, counts } = storeStatus(ctx, evalNow(), 0.2);
34
+ const { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength } = counts;
39
35
  console.log('Hippo Status');
40
36
  console.log('---------------------------');
41
- console.log(`Total memories: ${entries.length}`);
37
+ console.log(`Total memories: ${counts.total}`);
42
38
  console.log(` Buffer: ${byLayer[Layer.Buffer]}`);
43
39
  console.log(` Episodic: ${byLayer[Layer.Episodic]}`);
44
40
  console.log(` Semantic: ${byLayer[Layer.Semantic]}`);
45
41
  console.log(` Trace: ${byLayer[Layer.Trace]}`);
46
- const conflictCount = listMemoryConflicts(hippoRoot).length;
47
42
  console.log(`Pinned: ${pinned}`);
48
43
  console.log(`At risk (<0.2): ${atRisk}`);
49
- console.log(`Open conflicts: ${conflictCount}`);
44
+ console.log(`Open conflicts: ${counts.openConflicts}`);
50
45
  console.log(`Avg strength: ${fmt(avgStrength)}`);
51
46
  console.log('');
52
47
  console.log('Confidence breakdown:');
@@ -56,58 +51,25 @@ export function cmdStatus(hippoRoot) {
56
51
  console.log(` Stale: ${byConfidence['stale'] ?? 0}`);
57
52
  console.log(` Aged out: ${agedOut} (of the above; excludes pinned, verified)`);
58
53
  console.log('');
59
- console.log(`Total remembered: ${stats['total_remembered'] ?? 0}`);
60
- console.log(`Total recalled: ${stats['total_recalled'] ?? 0}`);
61
- console.log(`Total forgotten: ${stats['total_forgotten'] ?? 0}`);
62
- const runs = stats['consolidation_runs'] ?? [];
54
+ console.log(`Total remembered: ${stats.total_remembered ?? 0}`);
55
+ console.log(`Total recalled: ${stats.total_recalled ?? 0}`);
56
+ console.log(`Total forgotten: ${stats.total_forgotten ?? 0}`);
57
+ const runs = stats.consolidation_runs ?? [];
63
58
  if (Array.isArray(runs) && runs.length > 0) {
64
59
  const last = runs[runs.length - 1];
65
- console.log(`Last sleep: ${last['timestamp']}`);
60
+ console.log(`Last sleep: ${isJsonObject(last) ? last['timestamp'] : undefined}`);
66
61
  }
67
62
  else {
68
63
  console.log(`Last sleep: never`);
69
64
  }
70
- printEmbeddingStatus(hippoRoot, entries);
71
- printPhysicsStatus(hippoRoot);
72
- }
73
- function tallyStatus(entries, now) {
74
- const byLayer = {
75
- [Layer.Buffer]: 0,
76
- [Layer.Episodic]: 0,
77
- [Layer.Semantic]: 0,
78
- [Layer.Trace]: 0,
79
- };
80
- const byConfidence = {
81
- verified: 0,
82
- observed: 0,
83
- inferred: 0,
84
- stale: 0,
85
- };
86
- let totalStrength = 0;
87
- let pinned = 0;
88
- let atRisk = 0; // strength < 0.2
89
- let agedOut = 0;
90
- for (const e of entries) {
91
- const s = calculateStrength(e, now);
92
- byLayer[e.layer] = (byLayer[e.layer] ?? 0) + 1;
93
- totalStrength += s;
94
- if (e.pinned)
95
- pinned++;
96
- if (s < 0.2)
97
- atRisk++;
98
- const facets = confidenceFacets(e, now);
99
- byConfidence[facets.tier] = (byConfidence[facets.tier] ?? 0) + 1;
100
- if (facets.agedOut)
101
- agedOut++;
102
- }
103
- const avgStrength = entries.length > 0 ? totalStrength / entries.length : 0;
104
- return { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength };
65
+ printEmbeddingStatus(ctx, counts);
66
+ printPhysicsStatus(ctx);
105
67
  }
106
68
  // Embedding status (provider-aware)
107
- function printEmbeddingStatus(hippoRoot, entries) {
69
+ function printEmbeddingStatus(ctx, counts) {
108
70
  const embedProvider = (() => {
109
71
  try {
110
- return resolveEmbeddingProvider(hippoRoot);
72
+ return resolveEmbeddingProvider(ctx.hippoRoot);
111
73
  }
112
74
  catch {
113
75
  // Status reports a bad provider config as "misconfigured" below instead of failing.
@@ -119,7 +81,7 @@ function printEmbeddingStatus(hippoRoot, entries) {
119
81
  console.log(`Embeddings: misconfigured (check embeddings.provider / apiBaseUrl), BM25 only`);
120
82
  return;
121
83
  }
122
- const embeddingsDisabled = loadConfig(hippoRoot).embeddings.enabled === false;
84
+ const embeddingsDisabled = loadConfig(ctx.hippoRoot).embeddings.enabled === false;
123
85
  const embAvail = embedProvider.isAvailable();
124
86
  if (embeddingsDisabled) {
125
87
  console.log(`Embeddings: disabled in config (embeddings.enabled = false), BM25 only`);
@@ -135,36 +97,35 @@ function printEmbeddingStatus(hippoRoot, entries) {
135
97
  }
136
98
  // Show cached counts whenever vectors exist on disk (even when disabled or
137
99
  // the key was removed), so the user still sees what is already indexed.
138
- const embIndex = loadEmbeddingIndex(hippoRoot);
139
- if (!embAvail && Object.keys(embIndex).length === 0)
100
+ const { ids: embeddedIds, dims } = vectorSummary(ctx);
101
+ if (!embAvail && embeddedIds.size === 0)
140
102
  return;
141
- const activeIds = new Set(entries.map((e) => e.id));
142
- const activeEmbedded = Object.keys(embIndex).filter((id) => activeIds.has(id)).length;
143
- const orphaned = Object.keys(embIndex).length - activeEmbedded;
144
- const dims = Object.values(embIndex)[0]?.length;
145
- let line = `Embedded: ${activeEmbedded}/${entries.length} memories`;
103
+ const orphaned = embeddedIds.size - counts.embedded;
104
+ let line = `Embedded: ${counts.embedded}/${counts.total} memories`;
146
105
  if (dims)
147
106
  line += ` (${dims}-dim)`;
148
107
  if (orphaned > 0)
149
108
  line += ` (${orphaned} orphaned, run \`hippo embed\` to prune)`;
150
109
  console.log(line);
151
- if (embeddingModelRequiresReindex(hippoRoot, embedProvider.id, embIndex)) {
110
+ // No index argument: the check then asks SQLite whether any vector exists instead of loading them.
111
+ if (embeddingReindexNeeded(ctx, embedProvider.id)) {
152
112
  console.log(` model changed, run \`hippo embed\` to reindex`);
153
113
  }
154
114
  }
115
+ // The all-pairs energy sum is quadratic, so a large particle set skips it.
116
+ const PHYSICS_ENERGY_STATUS_MAX = 2000;
155
117
  // Physics status
156
- function printPhysicsStatus(hippoRoot) {
118
+ function printPhysicsStatus(ctx) {
157
119
  try {
158
- const particles = loadStoredParticles(hippoRoot);
120
+ const particles = storedParticles(ctx);
159
121
  if (particles.length > 0) {
160
- const physConfig = loadConfig(hippoRoot);
161
- const energy = computeSystemEnergy(particles, physConfig.physics.G_memory);
162
122
  let sumVelMag = 0;
163
123
  for (const p of particles)
164
124
  sumVelMag += vecNorm(p.velocity);
165
125
  const avgVelMag = sumVelMag / particles.length;
166
126
  console.log('');
167
- console.log(`Physics: ${particles.length} particles, energy: ${fmt(energy.total, 4)} (KE: ${fmt(energy.kinetic, 4)}, PE: ${fmt(energy.potential, 4)}), avg vel: ${fmt(avgVelMag, 4)}`);
127
+ console.log(`Physics: ${particles.length} particles, ` +
128
+ `${physicsEnergyText(particles, loadConfig(ctx.hippoRoot).physics.G_memory)}, avg vel: ${fmt(avgVelMag, 4)}`);
168
129
  }
169
130
  }
170
131
  catch (err) {
@@ -172,15 +133,21 @@ function printPhysicsStatus(hippoRoot) {
172
133
  log.debug(`physics status skipped: ${errorMessage(err)}`);
173
134
  }
174
135
  }
175
- function cmdInspect(hippoRoot, id) {
136
+ export function physicsEnergyText(particles, gMemory) {
137
+ if (particles.length > PHYSICS_ENERGY_STATUS_MAX)
138
+ return `energy: skipped (${particles.length} particles)`;
139
+ const energy = computeSystemEnergy(particles, gMemory);
140
+ return `energy: ${fmt(energy.total, 4)} (KE: ${fmt(energy.kinetic, 4)}, PE: ${fmt(energy.potential, 4)})`;
141
+ }
142
+ async function cmdInspect(hippoRoot, tenantId, id) {
176
143
  requireInit(hippoRoot);
177
- const entry = readEntry(hippoRoot, id, resolveTenantId({}));
144
+ const entry = await getMemory(cliApiContext(hippoRoot, tenantId), id);
178
145
  if (!entry) {
179
146
  printError(`Memory not found: ${id}`);
180
- process.exit(1);
147
+ throw new CliExit(1);
181
148
  }
182
149
  const now = evalNow();
183
- const currentStrength = calculateStrength(entry, now);
150
+ const currentStrength = calculateStrength(entry, now, { ablation: strengthAblation() });
184
151
  const lastRetrieved = new Date(entry.last_retrieved);
185
152
  const created = new Date(entry.created);
186
153
  const ageDays = (now.getTime() - created.getTime()) / DAY_MS;
@@ -199,7 +166,7 @@ function cmdInspect(hippoRoot, id) {
199
166
  console.log(`Schema fit: ${entry.schema_fit}`);
200
167
  console.log(`Pinned: ${entry.pinned}`);
201
168
  console.log(`Tags: ${entry.tags.join(', ') || 'none'}`);
202
- const rewardFactor = calculateRewardFactor(entry);
169
+ const rewardFactor = calculateRewardFactor(entry, strengthAblation());
203
170
  const pos = entry.outcome_positive ?? 0;
204
171
  const neg = entry.outcome_negative ?? 0;
205
172
  const outcomeLabel = pos === 0 && neg === 0
@@ -214,20 +181,11 @@ function cmdInspect(hippoRoot, id) {
214
181
  console.log('-'.repeat(40));
215
182
  console.log(entry.content);
216
183
  }
217
- /**
218
- * `hippo tokens [--days <n>] [--json] [--global]`: the token ledger.
219
- * Tokens of memory text handed to agents per surface, blocks
220
- * the per-prompt hook skipped as unchanged and the tokens that saved,
221
- * and the hook blocks' tokens later model calls re-read, counted when each session ends.
222
- * Counts are estimates (characters / 4), the same estimate every budget uses.
223
- */
224
- export function cmdTokens(hippoRoot, flags) {
184
+ /** `hippo tokens [--days <n>] [--json] [--global]`: the token ledger per surface, tokens saved by skipped unchanged blocks, and re-read hook tokens.
185
+ * Counts are estimates (characters / 4), the same estimate every budget uses. */
186
+ export function handleTokens({ hippoRoot, tenantId, flags }) {
225
187
  const root = resolveAuthRoot(hippoRoot, flags);
226
- const ctx = {
227
- hippoRoot: root,
228
- tenantId: resolveTenantId({}),
229
- actor: api.adminActor('cli'),
230
- };
188
+ const ctx = cliApiContext(root, tenantId);
231
189
  const days = parseCountFlag(flags['days']);
232
190
  const summary = api.tokenSummary(ctx, { days: days > 0 ? days : undefined });
233
191
  if (flags['json']) {
@@ -257,15 +215,11 @@ export function cmdTokens(hippoRoot, flags) {
257
215
  console.log(" Re-reads usually bill at the provider's cached-input rate, a fraction of the full input price.");
258
216
  }
259
217
  /** `hippo failures [--days <n>] [--json] [--global]`: failed tool calls by outcome, and repeats across sessions. */
260
- export function cmdFailures(hippoRoot, flags) {
218
+ export function handleFailures({ hippoRoot, tenantId, flags }) {
261
219
  // The store the capture-error hook writes to; a report never creates one.
262
220
  const root = flags['global'] ? getGlobalRoot() : hookStoreRoot(hippoRoot);
263
221
  requireInit(root);
264
- const ctx = {
265
- hippoRoot: root,
266
- tenantId: resolveTenantId({}),
267
- actor: api.adminActor('cli'),
268
- };
222
+ const ctx = cliApiContext(root, tenantId);
269
223
  const days = parseCountFlag(flags['days']);
270
224
  const summary = api.failureSummary(ctx, { days: days > 0 ? days : undefined });
271
225
  if (flags['json']) {
@@ -298,10 +252,9 @@ export function cmdFailures(hippoRoot, flags) {
298
252
  console.log(`\n Repeats: ${summary.repeats} of ${summary.rated} errors first happened in another session.${unrated}`);
299
253
  }
300
254
  }
301
- export function handleCorrectionLatency({ hippoRoot, flags }) {
255
+ export function handleCorrectionLatency({ hippoRoot, tenantId, flags }) {
302
256
  requireInit(hippoRoot);
303
- const entries = loadAllEntries(hippoRoot);
304
- const report = buildCorrectionLatency(entries);
257
+ const report = correctionLatencyReport(cliApiContext(hippoRoot, tenantId));
305
258
  if (flags['json']) {
306
259
  console.log(JSON.stringify(report, null, 2));
307
260
  }
@@ -314,11 +267,11 @@ export function handleCorrectionLatency({ hippoRoot, flags }) {
314
267
  return 'n/a';
315
268
  if (ms < 1000)
316
269
  return `${ms}ms`;
317
- if (ms < 60_000)
270
+ if (ms < MINUTE_MS)
318
271
  return `${(ms / 1000).toFixed(1)}s`;
319
- if (ms < 3_600_000)
320
- return `${(ms / 60_000).toFixed(1)}m`;
321
- return `${(ms / 3_600_000).toFixed(1)}h`;
272
+ if (ms < HOUR_MS)
273
+ return `${(ms / MINUTE_MS).toFixed(1)}m`;
274
+ return `${(ms / HOUR_MS).toFixed(1)}h`;
322
275
  };
323
276
  console.log(`Corrections: ${report.count} total (${report.extractionCount} extraction-driven, ${report.manualCount} manual)`);
324
277
  console.log(`Latency p50: ${fmt(report.p50Ms)}, p95: ${fmt(report.p95Ms)}, max: ${fmt(report.maxMs)}`);
@@ -328,10 +281,9 @@ export function handleCorrectionLatency({ hippoRoot, flags }) {
328
281
  }
329
282
  }
330
283
  }
331
- export function handleProvenance({ hippoRoot, flags }) {
284
+ export function handleProvenance({ hippoRoot, tenantId, flags }) {
332
285
  requireInit(hippoRoot);
333
- const entries = loadAllEntries(hippoRoot);
334
- const coverage = buildProvenanceCoverage(entries);
286
+ const coverage = provenanceCoverageReport(cliApiContext(hippoRoot, tenantId));
335
287
  if (flags['json']) {
336
288
  console.log(JSON.stringify(coverage, null, 2));
337
289
  }
@@ -349,7 +301,7 @@ export function handleProvenance({ hippoRoot, flags }) {
349
301
  }
350
302
  }
351
303
  if (flags['strict'] && coverage.coverage < 1) {
352
- process.exit(1);
304
+ throw new CliExit(1);
353
305
  }
354
306
  }
355
307
  export function handleDoctor({ flags }) {
@@ -358,13 +310,13 @@ export function handleDoctor({ flags }) {
358
310
  const report = runDoctor({ version: pkg.version });
359
311
  console.log(flags['json'] ? JSON.stringify(report, null, 2) : formatDoctor(report));
360
312
  if (!report.ok)
361
- process.exit(1);
313
+ throw new CliExit(1);
362
314
  }
363
315
  export function handleSupportBundle({ flags }) {
364
316
  const outFlag = stringFlagOrExit(flags, 'out');
365
317
  if (outFlag === '') {
366
318
  printError('--out requires a file path.');
367
- process.exit(1);
319
+ throw new CliExit(1);
368
320
  }
369
321
  const includeLogs = flagIsTrue(flags, 'include-logs');
370
322
  const home = envHomeDir() || os.homedir();
@@ -383,20 +335,22 @@ export function handleSupportBundle({ flags }) {
383
335
  else {
384
336
  printError(errorMessage(err));
385
337
  }
386
- process.exit(1);
338
+ throw new CliExit(1);
387
339
  }
388
340
  const kb = Math.round(Buffer.byteLength(json) / 1024);
389
341
  console.log(`Wrote ${file} (${kb} KB).`);
390
342
  console.log(includeLogs
391
- ? `It holds versions, doctor checks, config with secrets removed, store counts, and the last ${TAIL_MAX_LINES} lines of each hippo log with known secret shapes removed. Those log lines can quote memory text. Read it before you attach it to a ticket.`
392
- : 'It holds versions, doctor checks, config with secrets removed, store counts and log file names. It never holds memory text. Read it before you attach it to a ticket.');
343
+ ? `It holds versions, doctor checks, config with secrets removed, store counts, and the last ${TAIL_MAX_LINES} lines of ` +
344
+ 'each hippo log with known secret shapes removed. Those log lines can quote memory text. Read it before you attach it to a ticket.'
345
+ : 'It holds versions, doctor checks, config with secrets removed, store counts and log file names. It never holds memory text. Read it before you ' +
346
+ 'attach it to a ticket.');
393
347
  }
394
- export function handleInspect({ hippoRoot, args }) {
348
+ export async function handleInspect({ hippoRoot, tenantId, args }) {
395
349
  const id = args[0];
396
350
  if (!id) {
397
351
  printError('Please provide a memory ID.');
398
- process.exit(1);
352
+ throw new CliExit(1);
399
353
  }
400
- cmdInspect(hippoRoot, id);
354
+ await cmdInspect(hippoRoot, tenantId, id);
401
355
  }
402
356
  //# sourceMappingURL=status.js.map
@@ -1,13 +1,11 @@
1
- /** `timedOut` means the window closed with stdin still open, so absent
2
- * `text` is "unknown", not "none", and present `text` may be truncated.
3
- * Treating absence as a manual run is only safe when it is false. */
1
+ /** `timedOut` means the window closed with stdin still open, so absent `text` is "unknown", not "none", and present `text` may be truncated;
2
+ * treating absence as a manual run is only safe when it is false. */
4
3
  export interface BoundedStdin {
5
4
  text?: string;
6
5
  timedOut: boolean;
7
6
  }
8
- /** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of
9
- * idle (default 1000ms, or `HIPPO_STDIN_WAIT_MS`), refreshed on each chunk
10
- * so a slow but real write is not cut off, and capped at `waitMs * 10`. */
7
+ /** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of idle (default 1000ms, or `HIPPO_STDIN_WAIT_MS`),
8
+ * refreshed on each chunk so a slow real write is not cut off, capped at `waitMs * 10`. */
11
9
  export declare function readStdinBounded(waitMs?: number): Promise<BoundedStdin>;
12
10
  /** A hook payload with Copilot's camelCase fields copied to the snake_case keys hippo reads. The camelCase keys stay,
13
11
  * so the sessionStart reply can follow the sender's casing; text that needs no change comes back exactly as sent. */
package/dist/cli/stdin.js CHANGED
@@ -4,9 +4,8 @@ const DEFAULT_STDIN_WAIT_MS = 1000;
4
4
  function defaultWaitMs() {
5
5
  return envStdinWaitMs() ?? DEFAULT_STDIN_WAIT_MS;
6
6
  }
7
- /** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of
8
- * idle (default 1000ms, or `HIPPO_STDIN_WAIT_MS`), refreshed on each chunk
9
- * so a slow but real write is not cut off, and capped at `waitMs * 10`. */
7
+ /** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of idle (default 1000ms, or `HIPPO_STDIN_WAIT_MS`),
8
+ * refreshed on each chunk so a slow real write is not cut off, capped at `waitMs * 10`. */
10
9
  export function readStdinBounded(waitMs = defaultWaitMs()) {
11
10
  let stdin;
12
11
  try {
@@ -1,10 +1,10 @@
1
- import { type CliFlags, type CommandContext } from './flag-values.js';
2
- export declare function cmdLearn(hippoRoot: string, flags: CliFlags): void;
3
- export declare function cmdImport(hippoRoot: string, args: string[], flags: CliFlags): void;
4
- export declare function cmdSync(hippoRoot: string, flags?: CliFlags): void;
5
- export declare function handleWatch({ hippoRoot, args }: CommandContext): Promise<void>;
6
- export declare function handlePromote({ hippoRoot, args }: CommandContext): Promise<void>;
7
- export declare function handleShare({ hippoRoot, args, flags }: CommandContext): void;
8
- export declare function handlePeers({ flags }: CommandContext): void;
9
- export declare function handleExport({ hippoRoot, args, flags }: CommandContext): void;
1
+ import { type CommandContext } from './flag-values.js';
2
+ export declare function handleLearn({ hippoRoot, tenantId, flags }: CommandContext): void;
3
+ export declare function handleImport({ hippoRoot, tenantId, args, flags }: CommandContext): void;
4
+ export declare function handleSync({ hippoRoot, flags }: CommandContext): void;
5
+ export declare function handleWatch({ hippoRoot, tenantId, args }: CommandContext): Promise<void>;
6
+ export declare function handlePromote({ hippoRoot, tenantId, args }: CommandContext): Promise<void>;
7
+ export declare function handleShare({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
8
+ export declare function handlePeers({ tenantId, flags }: CommandContext): void;
9
+ export declare function handleExport({ hippoRoot, tenantId, args, flags }: CommandContext): void;
10
10
  //# sourceMappingURL=transfer.d.ts.map