hippo-memory 1.70.0 → 1.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (629) hide show
  1. package/README.md +1 -1
  2. package/dist/agent-memories/claude-code.d.ts +4 -2
  3. package/dist/agent-memories/claude-code.js +14 -5
  4. package/dist/agent-memories/files.js +23 -12
  5. package/dist/agent-memories/markdown.d.ts +1 -3
  6. package/dist/agent-memories/markdown.js +1 -3
  7. package/dist/agent-memories/report.js +2 -1
  8. package/dist/agent-memories/sync.d.ts +4 -2
  9. package/dist/agent-memories/sync.js +10 -5
  10. package/dist/api/assemble.d.ts +7 -44
  11. package/dist/api/assemble.js +2 -22
  12. package/dist/api/audit.d.ts +5 -1
  13. package/dist/api/audit.js +9 -1
  14. package/dist/api/auth.d.ts +13 -22
  15. package/dist/api/auth.js +34 -24
  16. package/dist/api/auto-sleep.js +2 -2
  17. package/dist/api/availability.d.ts +2 -15
  18. package/dist/api/availability.js +2 -15
  19. package/dist/api/context-select.js +3 -4
  20. package/dist/api/context-types.d.ts +10 -35
  21. package/dist/api/context.d.ts +5 -22
  22. package/dist/api/context.js +21 -38
  23. package/dist/api/dormant.d.ts +5 -21
  24. package/dist/api/dormant.js +7 -26
  25. package/dist/api/drill-down.d.ts +7 -46
  26. package/dist/api/drill-down.js +5 -26
  27. package/dist/api/forget.d.ts +5 -24
  28. package/dist/api/forget.js +5 -28
  29. package/dist/api/graph.d.ts +8 -0
  30. package/dist/api/graph.js +7 -0
  31. package/dist/api/index.d.ts +2 -0
  32. package/dist/api/index.js +2 -0
  33. package/dist/api/instruction-detect.js +16 -5
  34. package/dist/api/ledger-db.d.ts +2 -1
  35. package/dist/api/ledger-db.js +5 -3
  36. package/dist/api/memories.d.ts +5 -0
  37. package/dist/api/memories.js +7 -0
  38. package/dist/api/objects.d.ts +9 -0
  39. package/dist/api/objects.js +11 -0
  40. package/dist/api/on-store.js +5 -3
  41. package/dist/api/predictions.d.ts +9 -0
  42. package/dist/api/predictions.js +18 -0
  43. package/dist/api/promote.d.ts +13 -17
  44. package/dist/api/promote.js +11 -19
  45. package/dist/api/prompt-hook.d.ts +4 -4
  46. package/dist/api/prompt-hook.js +10 -9
  47. package/dist/api/recall-cli.d.ts +55 -0
  48. package/dist/api/recall-cli.js +94 -0
  49. package/dist/api/recall-core.js +14 -6
  50. package/dist/api/recall-finish.d.ts +53 -0
  51. package/dist/api/recall-finish.js +30 -0
  52. package/dist/api/recall-history.d.ts +17 -84
  53. package/dist/api/recall-history.js +15 -88
  54. package/dist/api/recall-pipeline.d.ts +2 -3
  55. package/dist/api/recall-pipeline.js +16 -9
  56. package/dist/api/recall-types.d.ts +64 -304
  57. package/dist/api/recall.d.ts +5 -33
  58. package/dist/api/recall.js +59 -60
  59. package/dist/api/refine.d.ts +7 -0
  60. package/dist/api/refine.js +10 -0
  61. package/dist/api/remember-local.d.ts +57 -0
  62. package/dist/api/remember-local.js +90 -0
  63. package/dist/api/remember.d.ts +18 -1
  64. package/dist/api/remember.js +13 -1
  65. package/dist/api/sleep-run.d.ts +1 -3
  66. package/dist/api/sleep-run.js +17 -21
  67. package/dist/api/sleep.d.ts +9 -28
  68. package/dist/api/tokens.d.ts +3 -10
  69. package/dist/api/tokens.js +3 -10
  70. package/dist/api/types.d.ts +6 -29
  71. package/dist/api/types.js +4 -22
  72. package/dist/capture/command.d.ts +4 -12
  73. package/dist/capture/command.js +6 -22
  74. package/dist/capture/compact.d.ts +4 -15
  75. package/dist/capture/compact.js +16 -25
  76. package/dist/capture/compaction-record.js +101 -69
  77. package/dist/capture/compaction-spool.d.ts +1 -1
  78. package/dist/capture/compaction-spool.js +1 -1
  79. package/dist/capture/session-digest.d.ts +1 -1
  80. package/dist/capture/session-digest.js +13 -7
  81. package/dist/capture/transcript.d.ts +2 -10
  82. package/dist/capture/transcript.js +4 -18
  83. package/dist/cli/api-context.d.ts +3 -0
  84. package/dist/cli/api-context.js +6 -0
  85. package/dist/cli/audit-prune.d.ts +6 -39
  86. package/dist/cli/audit-prune.js +6 -39
  87. package/dist/cli/audit.d.ts +1 -1
  88. package/dist/cli/audit.js +33 -34
  89. package/dist/cli/auth.d.ts +2 -2
  90. package/dist/cli/auth.js +57 -39
  91. package/dist/cli/briefs.d.ts +4 -4
  92. package/dist/cli/briefs.js +18 -22
  93. package/dist/cli/card.d.ts +2 -2
  94. package/dist/cli/card.js +31 -32
  95. package/dist/cli/client.d.ts +7 -27
  96. package/dist/cli/client.js +24 -43
  97. package/dist/cli/compact-resume-payload.js +3 -2
  98. package/dist/cli/context.d.ts +1 -2
  99. package/dist/cli/context.js +12 -8
  100. package/dist/cli/continuity.d.ts +6 -6
  101. package/dist/cli/continuity.js +62 -64
  102. package/dist/cli/correction-latency.d.ts +2 -14
  103. package/dist/cli/correction-latency.js +2 -14
  104. package/dist/cli/curate.d.ts +13 -17
  105. package/dist/cli/curate.js +68 -92
  106. package/dist/cli/dag.d.ts +4 -4
  107. package/dist/cli/dag.js +33 -27
  108. package/dist/cli/decisions.d.ts +4 -4
  109. package/dist/cli/decisions.js +33 -47
  110. package/dist/cli/eval.js +15 -13
  111. package/dist/cli/exit.d.ts +6 -0
  112. package/dist/cli/exit.js +11 -0
  113. package/dist/cli/explain.d.ts +1 -2
  114. package/dist/cli/explain.js +6 -4
  115. package/dist/cli/flag-values.d.ts +6 -1
  116. package/dist/cli/flag-values.js +27 -10
  117. package/dist/cli/flags.d.ts +1 -0
  118. package/dist/cli/flags.js +1 -1
  119. package/dist/cli/github.d.ts +14 -0
  120. package/dist/{connectors/github/cli-impl.js → cli/github.js} +43 -71
  121. package/dist/cli/goals.d.ts +2 -2
  122. package/dist/cli/goals.js +46 -50
  123. package/dist/cli/hook-runtime.d.ts +9 -27
  124. package/dist/cli/hook-runtime.js +15 -31
  125. package/dist/cli/init.d.ts +2 -2
  126. package/dist/cli/init.js +6 -12
  127. package/dist/cli/install-steps.js +3 -12
  128. package/dist/cli/last-sleep.d.ts +2 -1
  129. package/dist/cli/last-sleep.js +3 -0
  130. package/dist/cli/maintenance.d.ts +4 -4
  131. package/dist/cli/maintenance.js +14 -19
  132. package/dist/cli/object-verbs.js +4 -3
  133. package/dist/cli/owner-validation.d.ts +5 -28
  134. package/dist/cli/owner-validation.js +5 -28
  135. package/dist/cli/playbooks.d.ts +4 -4
  136. package/dist/cli/playbooks.js +23 -28
  137. package/dist/cli/print.d.ts +2 -5
  138. package/dist/cli/print.js +1 -4
  139. package/dist/cli/projects.d.ts +2 -2
  140. package/dist/cli/projects.js +1 -3
  141. package/dist/cli/provenance-coverage.d.ts +2 -6
  142. package/dist/cli/provenance-coverage.js +2 -6
  143. package/dist/cli/quality-repair-once.js +2 -2
  144. package/dist/cli/recall.d.ts +2 -4
  145. package/dist/cli/recall.js +55 -131
  146. package/dist/cli/refine-llm.d.ts +5 -31
  147. package/dist/cli/refine-llm.js +9 -36
  148. package/dist/cli/remember.d.ts +3 -3
  149. package/dist/cli/remember.js +122 -180
  150. package/dist/cli/scheduler.d.ts +2 -17
  151. package/dist/cli/scheduler.js +12 -18
  152. package/dist/cli/serve.js +21 -12
  153. package/dist/cli/session-hooks.d.ts +10 -18
  154. package/dist/cli/session-hooks.js +112 -113
  155. package/dist/cli/setup.d.ts +4 -4
  156. package/dist/cli/setup.js +19 -21
  157. package/dist/cli/shared.d.ts +9 -23
  158. package/dist/cli/shared.js +9 -32
  159. package/dist/cli/slack.d.ts +2 -2
  160. package/dist/cli/slack.js +19 -23
  161. package/dist/cli/sleep.d.ts +3 -2
  162. package/dist/cli/sleep.js +15 -16
  163. package/dist/cli/status.d.ts +9 -12
  164. package/dist/cli/status.js +55 -98
  165. package/dist/cli/stdin.d.ts +4 -6
  166. package/dist/cli/stdin.js +2 -3
  167. package/dist/cli/transfer.d.ts +9 -9
  168. package/dist/cli/transfer.js +66 -89
  169. package/dist/cli/usage.js +11 -5
  170. package/dist/cli.d.ts +66 -448
  171. package/dist/cli.js +87 -263
  172. package/dist/connectors/github/backfill.d.ts +5 -25
  173. package/dist/connectors/github/backfill.js +14 -49
  174. package/dist/connectors/github/deletion.d.ts +4 -18
  175. package/dist/connectors/github/deletion.js +2 -15
  176. package/dist/connectors/github/dlq.d.ts +8 -33
  177. package/dist/connectors/github/dlq.js +12 -29
  178. package/dist/connectors/github/ingest.d.ts +2 -6
  179. package/dist/connectors/github/ingest.js +4 -10
  180. package/dist/connectors/github/octokit-client.d.ts +4 -16
  181. package/dist/connectors/github/octokit-client.js +27 -24
  182. package/dist/connectors/github/ratelimit.d.ts +3 -14
  183. package/dist/connectors/github/ratelimit.js +3 -14
  184. package/dist/connectors/github/scope.d.ts +3 -5
  185. package/dist/connectors/github/scope.js +3 -5
  186. package/dist/connectors/github/signature.d.ts +4 -26
  187. package/dist/connectors/github/signature.js +4 -26
  188. package/dist/connectors/github/tenant-routing.d.ts +2 -24
  189. package/dist/connectors/github/tenant-routing.js +4 -26
  190. package/dist/connectors/github/transform.js +2 -16
  191. package/dist/connectors/github/types.d.ts +3 -15
  192. package/dist/connectors/github/types.js +2 -9
  193. package/dist/connectors/github/webhook.d.ts +2 -16
  194. package/dist/connectors/github/webhook.js +6 -22
  195. package/dist/connectors/slack/backfill.d.ts +4 -17
  196. package/dist/connectors/slack/backfill.js +4 -13
  197. package/dist/connectors/slack/dlq.d.ts +2 -19
  198. package/dist/connectors/slack/dlq.js +2 -19
  199. package/dist/connectors/slack/ingest.d.ts +2 -3
  200. package/dist/connectors/slack/ingest.js +2 -3
  201. package/dist/connectors/slack/scope.d.ts +2 -8
  202. package/dist/connectors/slack/scope.js +2 -8
  203. package/dist/connectors/slack/signature.d.ts +1 -6
  204. package/dist/connectors/slack/tenant-routing.d.ts +2 -19
  205. package/dist/connectors/slack/tenant-routing.js +2 -21
  206. package/dist/connectors/slack/transform.d.ts +2 -18
  207. package/dist/connectors/slack/transform.js +2 -18
  208. package/dist/connectors/slack/types.d.ts +3 -9
  209. package/dist/connectors/slack/types.js +2 -4
  210. package/dist/connectors/slack/web-client.js +33 -27
  211. package/dist/connectors/slack/webhook.d.ts +2 -19
  212. package/dist/connectors/slack/webhook.js +5 -26
  213. package/dist/connectors/slack/workspaces.d.ts +4 -24
  214. package/dist/connectors/slack/workspaces.js +4 -24
  215. package/dist/consolidate/conflicts.js +6 -14
  216. package/dist/consolidate/dag-summary.d.ts +8 -0
  217. package/dist/consolidate/dag-summary.js +41 -0
  218. package/dist/consolidate/dag.d.ts +5 -28
  219. package/dist/consolidate/dag.js +14 -75
  220. package/dist/consolidate/decay.js +7 -19
  221. package/dist/consolidate/dedupe.d.ts +6 -52
  222. package/dist/consolidate/dedupe.js +13 -71
  223. package/dist/consolidate/flush-units.d.ts +3 -4
  224. package/dist/consolidate/flush-units.js +3 -3
  225. package/dist/consolidate/half-life-migration.d.ts +3 -26
  226. package/dist/consolidate/half-life-migration.js +11 -28
  227. package/dist/consolidate/llm-passes.js +4 -21
  228. package/dist/consolidate/memory-value-weights.d.ts +2 -13
  229. package/dist/consolidate/memory-value-weights.js +2 -13
  230. package/dist/consolidate/memory-value.d.ts +11 -84
  231. package/dist/consolidate/memory-value.js +16 -104
  232. package/dist/consolidate/merge.js +10 -31
  233. package/dist/consolidate/merged-row.js +2 -1
  234. package/dist/consolidate/physics-pass.js +1 -3
  235. package/dist/consolidate/replay.d.ts +6 -38
  236. package/dist/consolidate/replay.js +14 -52
  237. package/dist/consolidate/run.js +1 -1
  238. package/dist/consolidate/sleep.d.ts +1 -8
  239. package/dist/consolidate/sleep.js +5 -17
  240. package/dist/consolidate/trace.d.ts +3 -18
  241. package/dist/consolidate/trace.js +3 -18
  242. package/dist/consolidate/traces.js +6 -22
  243. package/dist/core/ablation.d.ts +4 -91
  244. package/dist/core/ablation.js +4 -91
  245. package/dist/core/ambient.d.ts +1 -8
  246. package/dist/core/ambient.js +1 -8
  247. package/dist/core/capture-contract.d.ts +4 -2
  248. package/dist/core/capture-contract.js +4 -2
  249. package/dist/core/card.d.ts +4 -1
  250. package/dist/core/card.js +8 -0
  251. package/dist/core/compare.d.ts +11 -67
  252. package/dist/core/compare.js +9 -63
  253. package/dist/core/config.d.ts +10 -24
  254. package/dist/core/config.js +13 -14
  255. package/dist/core/handoff.d.ts +1 -7
  256. package/dist/core/handoff.js +1 -7
  257. package/dist/core/memory-quality.js +1 -1
  258. package/dist/core/memory.d.ts +41 -164
  259. package/dist/core/memory.js +51 -221
  260. package/dist/core/package-root.d.ts +3 -0
  261. package/dist/core/package-root.js +5 -0
  262. package/dist/core/physics-config.d.ts +1 -4
  263. package/dist/core/physics-config.js +3 -8
  264. package/dist/core/physics.d.ts +15 -61
  265. package/dist/core/physics.js +59 -122
  266. package/dist/core/project-identity.d.ts +17 -58
  267. package/dist/core/project-identity.js +17 -38
  268. package/dist/core/project-remote.js +13 -2
  269. package/dist/core/raw-append-only.d.ts +5 -0
  270. package/dist/core/raw-append-only.js +7 -0
  271. package/dist/core/salience.d.ts +1 -7
  272. package/dist/core/salience.js +1 -7
  273. package/dist/dashboard/dashboard-actions.js +2 -2
  274. package/dist/dashboard/dashboard-snapshot.d.ts +2 -1
  275. package/dist/dashboard/dashboard-snapshot.js +11 -2
  276. package/dist/dashboard/dashboard-types.d.ts +2 -1
  277. package/dist/dashboard/dashboard.d.ts +1 -0
  278. package/dist/dashboard/dashboard.js +50 -4
  279. package/dist/db/busy.d.ts +1 -1
  280. package/dist/db/busy.js +17 -8
  281. package/dist/db/connect.d.ts +1 -0
  282. package/dist/db/connect.js +3 -3
  283. package/dist/db/migrate.js +3 -3
  284. package/dist/db/migrations/types.d.ts +2 -5
  285. package/dist/db/migrations/v14.js +2 -3
  286. package/dist/db/migrations/v15.js +2 -8
  287. package/dist/db/migrations/v16.js +2 -3
  288. package/dist/db/migrations/v17.js +2 -3
  289. package/dist/db/migrations/v19.js +2 -5
  290. package/dist/db/migrations/v20.js +2 -7
  291. package/dist/db/migrations/v22.js +4 -17
  292. package/dist/db/migrations/v23.js +3 -14
  293. package/dist/db/migrations/v24.js +2 -4
  294. package/dist/db/migrations/v25.js +3 -8
  295. package/dist/db/migrations/v26.js +2 -13
  296. package/dist/db/migrations/v27.js +3 -11
  297. package/dist/db/migrations/v28.js +2 -14
  298. package/dist/db/migrations/v29.js +4 -18
  299. package/dist/db/migrations/v30.js +4 -16
  300. package/dist/db/migrations/v31.js +2 -15
  301. package/dist/db/migrations/v32.js +4 -22
  302. package/dist/db/migrations/v33.js +2 -15
  303. package/dist/db/migrations/v34.js +2 -11
  304. package/dist/db/migrations/v35.js +2 -11
  305. package/dist/db/migrations/v36.js +2 -11
  306. package/dist/db/migrations/v37.js +8 -33
  307. package/dist/db/migrations/v38.js +5 -38
  308. package/dist/db/migrations/v39.js +9 -20
  309. package/dist/db/migrations/v40.js +2 -9
  310. package/dist/db/migrations/v41.js +2 -24
  311. package/dist/db/migrations/v43.js +1 -1
  312. package/dist/db/migrations/v44.js +2 -8
  313. package/dist/db/migrations/v45.js +2 -7
  314. package/dist/db/migrations/v47.js +2 -3
  315. package/dist/db/migrations/v51.js +1 -1
  316. package/dist/db/open.d.ts +2 -0
  317. package/dist/db/open.js +17 -1
  318. package/dist/db/physics-state.d.ts +6 -22
  319. package/dist/db/physics-state.js +25 -36
  320. package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
  321. package/dist/db/raw-archive-mirror-cleanup.js +2 -17
  322. package/dist/db/vector-store.d.ts +2 -0
  323. package/dist/db/vector-store.js +8 -1
  324. package/dist/doctor.js +74 -19
  325. package/dist/entry/session-text.js +2 -1
  326. package/dist/eval/eval-stats.d.ts +15 -53
  327. package/dist/eval/eval-stats.js +12 -42
  328. package/dist/eval/eval-suite.d.ts +2 -13
  329. package/dist/eval/eval-suite.js +74 -34
  330. package/dist/eval/eval.d.ts +6 -24
  331. package/dist/eval/eval.js +7 -34
  332. package/dist/eval/judgment.d.ts +0 -3
  333. package/dist/eval/judgment.js +19 -11
  334. package/dist/extensions/openclaw-plugin/index.js +1 -1
  335. package/dist/graph/extract.d.ts +5 -27
  336. package/dist/graph/extract.js +7 -33
  337. package/dist/graph/recall.d.ts +7 -20
  338. package/dist/graph/recall.js +14 -76
  339. package/dist/graph/stream.d.ts +7 -39
  340. package/dist/graph/stream.js +11 -34
  341. package/dist/graph/view.d.ts +9 -35
  342. package/dist/graph/view.js +11 -39
  343. package/dist/hooks/codex-wrapper.js +2 -2
  344. package/dist/hooks/copilot.js +2 -1
  345. package/dist/hooks/hook-blocks.d.ts +6 -2
  346. package/dist/hooks/hook-blocks.js +37 -124
  347. package/dist/hooks/json-hooks.d.ts +4 -36
  348. package/dist/hooks/json-hooks.js +18 -57
  349. package/dist/hooks/opencode.d.ts +0 -38
  350. package/dist/hooks/opencode.js +9 -76
  351. package/dist/hooks/shared.d.ts +8 -17
  352. package/dist/hooks/shared.js +29 -20
  353. package/dist/importers/core.d.ts +12 -37
  354. package/dist/importers/core.js +9 -27
  355. package/dist/importers/markdown-parse.d.ts +8 -22
  356. package/dist/importers/markdown-parse.js +8 -25
  357. package/dist/importers/markdown.js +3 -12
  358. package/dist/importers/sources.js +7 -35
  359. package/dist/importers/vault.d.ts +2 -8
  360. package/dist/importers/vault.js +25 -81
  361. package/dist/index.d.ts +6 -2
  362. package/dist/index.js +6 -2
  363. package/dist/learn/autolearn.d.ts +14 -41
  364. package/dist/learn/autolearn.js +14 -41
  365. package/dist/learn/extract.js +2 -4
  366. package/dist/learn/forward-claim-detector.d.ts +6 -30
  367. package/dist/learn/forward-claim-detector.js +14 -66
  368. package/dist/learn/invalidation.d.ts +6 -18
  369. package/dist/learn/invalidation.js +9 -26
  370. package/dist/mcp/admin-tools.js +3 -5
  371. package/dist/mcp/memory-tools.js +4 -9
  372. package/dist/mcp/protocol.d.ts +8 -26
  373. package/dist/mcp/protocol.js +3 -6
  374. package/dist/mcp/recall-tools.js +3 -3
  375. package/dist/mcp/request.d.ts +3 -11
  376. package/dist/mcp/request.js +10 -26
  377. package/dist/mcp/server.d.ts +3 -9
  378. package/dist/mcp/server.js +5 -16
  379. package/dist/mcp/session-state.d.ts +1 -1
  380. package/dist/mcp/session-state.js +5 -11
  381. package/dist/mcp/stdio.d.ts +2 -6
  382. package/dist/mcp/stdio.js +48 -12
  383. package/dist/mcp/tools.js +5 -3
  384. package/dist/objects/customer-notes.d.ts +7 -42
  385. package/dist/objects/customer-notes.js +7 -48
  386. package/dist/objects/decisions.d.ts +12 -50
  387. package/dist/objects/decisions.js +15 -53
  388. package/dist/objects/incidents.d.ts +7 -38
  389. package/dist/objects/incidents.js +7 -41
  390. package/dist/objects/policies.d.ts +11 -89
  391. package/dist/objects/policies.js +11 -98
  392. package/dist/objects/processes.d.ts +7 -52
  393. package/dist/objects/processes.js +7 -61
  394. package/dist/objects/project-briefs.d.ts +11 -55
  395. package/dist/objects/project-briefs.js +14 -75
  396. package/dist/objects/skills.d.ts +7 -42
  397. package/dist/objects/skills.js +8 -54
  398. package/dist/postinstall.js +6 -19
  399. package/dist/predictions/planning-fallacy.d.ts +11 -34
  400. package/dist/rerankers/clef.js +3 -31
  401. package/dist/rerankers/cross-encoder.js +4 -6
  402. package/dist/rerankers/jev.js +9 -6
  403. package/dist/rerankers/llm.d.ts +2 -11
  404. package/dist/rerankers/llm.js +14 -14
  405. package/dist/rerankers/outage-warning.d.ts +2 -1
  406. package/dist/rerankers/outage-warning.js +2 -1
  407. package/dist/rerankers/remote.d.ts +1 -0
  408. package/dist/rerankers/remote.js +2 -0
  409. package/dist/rerankers/types.d.ts +2 -14
  410. package/dist/search/boosts.d.ts +0 -2
  411. package/dist/search/boosts.js +2 -2
  412. package/dist/search/goal-boost.d.ts +23 -0
  413. package/dist/search/goal-boost.js +90 -0
  414. package/dist/search/hybrid.d.ts +2 -0
  415. package/dist/search/multihop.js +2 -3
  416. package/dist/search/path-context.d.ts +5 -18
  417. package/dist/search/path-context.js +5 -18
  418. package/dist/search/physics-search.js +11 -8
  419. package/dist/search/rrf.d.ts +7 -35
  420. package/dist/search/rrf.js +5 -30
  421. package/dist/search/vector.d.ts +7 -0
  422. package/dist/search/vector.js +35 -5
  423. package/dist/server/auth.d.ts +9 -28
  424. package/dist/server/auth.js +32 -25
  425. package/dist/server/boot.d.ts +2 -21
  426. package/dist/server/boot.js +63 -96
  427. package/dist/server/client-ip.d.ts +3 -19
  428. package/dist/server/client-ip.js +5 -28
  429. package/dist/server/defaults.d.ts +3 -0
  430. package/dist/server/defaults.js +4 -0
  431. package/dist/server/key-check-bounds.d.ts +2 -1
  432. package/dist/server/lifecycle.d.ts +5 -4
  433. package/dist/server/lifecycle.js +19 -4
  434. package/dist/server/mcp-http.js +10 -44
  435. package/dist/server/rate-limit.d.ts +5 -18
  436. package/dist/server/rate-limit.js +4 -13
  437. package/dist/server/request.d.ts +4 -8
  438. package/dist/server/request.js +9 -17
  439. package/dist/server/route-table.js +42 -49
  440. package/dist/server/routes/admin.js +22 -28
  441. package/dist/server/routes/customer-notes.js +7 -12
  442. package/dist/server/routes/decisions.js +10 -17
  443. package/dist/server/routes/incidents.js +12 -20
  444. package/dist/server/routes/memories.js +12 -32
  445. package/dist/server/routes/object-routes.d.ts +0 -5
  446. package/dist/server/routes/object-routes.js +7 -15
  447. package/dist/server/routes/policies.js +10 -18
  448. package/dist/server/routes/predictions.js +13 -25
  449. package/dist/server/routes/processes.js +16 -26
  450. package/dist/server/routes/project-briefs.js +9 -16
  451. package/dist/server/routes/recall.js +10 -35
  452. package/dist/server/routes/skills.js +8 -18
  453. package/dist/server/server-detect.d.ts +9 -53
  454. package/dist/server/server-detect.js +24 -90
  455. package/dist/server/sleep-offload.js +4 -1
  456. package/dist/server/types.d.ts +12 -10
  457. package/dist/server/validation.d.ts +3 -1
  458. package/dist/server/validation.js +10 -23
  459. package/dist/server.d.ts +2 -2
  460. package/dist/server.js +3 -2
  461. package/dist/sharing/global-store.d.ts +19 -0
  462. package/dist/sharing/global-store.js +75 -0
  463. package/dist/sharing/global-sync.d.ts +6 -0
  464. package/dist/sharing/global-sync.js +80 -0
  465. package/dist/sharing/project-merge.d.ts +4 -5
  466. package/dist/sharing/project-merge.js +9 -7
  467. package/dist/sharing/scope.d.ts +4 -11
  468. package/dist/sharing/scope.js +4 -11
  469. package/dist/sharing/search-both.d.ts +60 -0
  470. package/dist/sharing/search-both.js +138 -0
  471. package/dist/sharing/share.d.ts +38 -0
  472. package/dist/sharing/share.js +226 -0
  473. package/dist/store/ambient.js +4 -9
  474. package/dist/store/audit-event.d.ts +4 -12
  475. package/dist/store/audit-event.js +4 -12
  476. package/dist/store/audit.d.ts +2 -5
  477. package/dist/store/audit.js +4 -12
  478. package/dist/store/auth.d.ts +6 -6
  479. package/dist/store/auth.js +10 -9
  480. package/dist/store/candidates.d.ts +20 -3
  481. package/dist/store/candidates.js +77 -48
  482. package/dist/store/card-detail.d.ts +2 -1
  483. package/dist/store/card-detail.js +2 -1
  484. package/dist/store/cards.d.ts +14 -9
  485. package/dist/store/cards.js +72 -126
  486. package/dist/store/conflicts.d.ts +4 -21
  487. package/dist/store/conflicts.js +71 -150
  488. package/dist/store/connectors/github.d.ts +10 -10
  489. package/dist/store/connectors/github.js +10 -10
  490. package/dist/store/dashboard-reads.js +4 -8
  491. package/dist/store/delete-and-batch.d.ts +11 -31
  492. package/dist/store/delete-and-batch.js +48 -64
  493. package/dist/store/delivery-recorder.d.ts +8 -4
  494. package/dist/store/delivery-recorder.js +25 -15
  495. package/dist/store/diagnostics.js +6 -13
  496. package/dist/store/dormant.d.ts +7 -29
  497. package/dist/store/dormant.js +15 -56
  498. package/dist/store/embeddings/index.d.ts +11 -80
  499. package/dist/store/embeddings/index.js +71 -207
  500. package/dist/store/embeddings/local.js +15 -32
  501. package/dist/store/embeddings/provider.d.ts +16 -53
  502. package/dist/store/embeddings/provider.js +41 -69
  503. package/dist/store/entry-reads.d.ts +21 -57
  504. package/dist/store/entry-reads.js +65 -126
  505. package/dist/store/entry-row.d.ts +6 -35
  506. package/dist/store/entry-row.js +9 -37
  507. package/dist/store/entry-writes.d.ts +10 -16
  508. package/dist/store/entry-writes.js +17 -35
  509. package/dist/store/goals.d.ts +3 -40
  510. package/dist/store/goals.js +21 -160
  511. package/dist/store/graph-queue.d.ts +6 -22
  512. package/dist/store/graph-queue.js +14 -45
  513. package/dist/store/graph-reads.d.ts +11 -35
  514. package/dist/store/graph-reads.js +20 -58
  515. package/dist/store/graph-rows.d.ts +3 -6
  516. package/dist/store/graph-rows.js +6 -9
  517. package/dist/store/graph-view-rows.d.ts +2 -1
  518. package/dist/store/graph-view-rows.js +2 -1
  519. package/dist/store/graph-writes.d.ts +6 -31
  520. package/dist/store/graph-writes.js +13 -37
  521. package/dist/store/half-life.d.ts +2 -1
  522. package/dist/store/half-life.js +14 -16
  523. package/dist/store/handoffs.d.ts +5 -11
  524. package/dist/store/handoffs.js +16 -34
  525. package/dist/store/index-and-stats.d.ts +6 -19
  526. package/dist/store/index-and-stats.js +34 -82
  527. package/dist/store/markdown.d.ts +2 -6
  528. package/dist/store/markdown.js +21 -20
  529. package/dist/store/mirrors.d.ts +2 -6
  530. package/dist/store/mirrors.js +14 -23
  531. package/dist/store/open.js +6 -13
  532. package/dist/store/planning-fallacy-evidence.d.ts +2 -30
  533. package/dist/store/planning-fallacy-evidence.js +8 -37
  534. package/dist/store/port.d.ts +82 -79
  535. package/dist/store/predictions.d.ts +11 -51
  536. package/dist/store/predictions.js +38 -119
  537. package/dist/{cli → store}/quality-repair.js +15 -31
  538. package/dist/store/raw-archive.d.ts +4 -16
  539. package/dist/store/raw-archive.js +14 -29
  540. package/dist/store/recall-scope.d.ts +19 -79
  541. package/dist/store/recall-scope.js +21 -82
  542. package/dist/store/recall-trace.d.ts +10 -77
  543. package/dist/store/recall-trace.js +19 -95
  544. package/dist/store/rejected-values.js +7 -19
  545. package/dist/store/rejection.d.ts +12 -58
  546. package/dist/store/rejection.js +13 -65
  547. package/dist/store/report-reads.d.ts +6 -0
  548. package/dist/store/report-reads.js +29 -0
  549. package/dist/store/rows.d.ts +9 -19
  550. package/dist/store/rows.js +36 -34
  551. package/dist/store/rule-sql.d.ts +5 -0
  552. package/dist/store/rule-sql.js +37 -0
  553. package/dist/store/search-rows.d.ts +7 -38
  554. package/dist/store/search-rows.js +14 -50
  555. package/dist/store/sessions.d.ts +10 -47
  556. package/dist/store/sessions.js +17 -73
  557. package/dist/store/sqlite/connector-events-group.js +2 -2
  558. package/dist/store/sqlite/entry-writes-group.js +2 -2
  559. package/dist/store/sqlite/error-codec.js +4 -2
  560. package/dist/store/sqlite/executor.d.ts +2 -1
  561. package/dist/store/sqlite/executor.js +2 -1
  562. package/dist/store/sqlite/local.d.ts +3 -3
  563. package/dist/store/sqlite/local.js +1 -0
  564. package/dist/store/sqlite/object-rows.js +6 -3
  565. package/dist/store/sqlite/objects-group.js +4 -2
  566. package/dist/store/sqlite/quarantine-group.js +2 -2
  567. package/dist/store/sqlite/store.d.ts +1 -4
  568. package/dist/store/sqlite/store.js +2 -3
  569. package/dist/store/sqlite/vector-reads-group.js +2 -2
  570. package/dist/store/sqlite/worker-jobs.js +1 -1
  571. package/dist/store/sqlite/worker-ops.d.ts +13 -2
  572. package/dist/store/sqlite/worker-ops.js +13 -2
  573. package/dist/store/sqlite/worker-store.js +5 -2
  574. package/dist/store/summaries.d.ts +10 -62
  575. package/dist/store/summaries.js +34 -146
  576. package/dist/store/summary-dirty.js +1 -1
  577. package/dist/store/tenant-lookup.d.ts +6 -1
  578. package/dist/store/tenant-lookup.js +7 -0
  579. package/dist/store/tenant.d.ts +2 -16
  580. package/dist/store/tenant.js +4 -19
  581. package/dist/store/token-ledger.d.ts +13 -43
  582. package/dist/store/token-ledger.js +19 -50
  583. package/dist/store/usage-reports.js +5 -13
  584. package/dist/store/vector-index.d.ts +46 -0
  585. package/dist/store/vector-index.js +170 -0
  586. package/dist/store/working-memory.d.ts +6 -25
  587. package/dist/store/working-memory.js +18 -52
  588. package/dist/store/yaml.d.ts +1 -5
  589. package/dist/store/yaml.js +2 -6
  590. package/dist/support-bundle.js +7 -5
  591. package/dist/trust/reject-flow.js +1 -3
  592. package/dist/util/anthropic-messages.js +14 -2
  593. package/dist/util/atomic-write.d.ts +2 -1
  594. package/dist/util/atomic-write.js +35 -4
  595. package/dist/util/capped-json.d.ts +6 -0
  596. package/dist/util/capped-json.js +46 -0
  597. package/dist/util/crash-handlers.d.ts +8 -1
  598. package/dist/util/crash-handlers.js +52 -10
  599. package/dist/util/env.d.ts +13 -6
  600. package/dist/util/env.js +14 -7
  601. package/dist/util/home-path.d.ts +2 -1
  602. package/dist/util/home-path.js +4 -2
  603. package/dist/util/http-retry.d.ts +3 -1
  604. package/dist/util/http-retry.js +26 -5
  605. package/dist/util/log.d.ts +3 -2
  606. package/dist/util/log.js +25 -9
  607. package/dist/util/request-scope.d.ts +2 -1
  608. package/dist/util/request-scope.js +2 -1
  609. package/dist/util/secret-detect.d.ts +5 -30
  610. package/dist/util/secret-detect.js +13 -39
  611. package/dist/util/stored-json.d.ts +1 -1
  612. package/dist/util/stored-json.js +1 -1
  613. package/dist/util/token-text.d.ts +1 -4
  614. package/dist/util/token-text.js +1 -4
  615. package/dist/util/transcript-tail.d.ts +2 -0
  616. package/dist/util/transcript-tail.js +24 -23
  617. package/dist/util/version.d.ts +5 -20
  618. package/dist/util/version.js +5 -20
  619. package/extensions/openclaw-plugin/index.ts +1 -1
  620. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  621. package/extensions/openclaw-plugin/package.json +1 -1
  622. package/openclaw.plugin.json +1 -1
  623. package/package.json +1 -1
  624. package/dist/connectors/github/cli-impl.d.ts +0 -25
  625. package/dist/sharing/shared.d.ts +0 -187
  626. package/dist/sharing/shared.js +0 -563
  627. package/dist/store/vector-writes.d.ts +0 -13
  628. package/dist/store/vector-writes.js +0 -89
  629. /package/dist/{cli → store}/quality-repair.d.ts +0 -0
@@ -5,48 +5,49 @@ 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';
8
+ import { calculateStrength, calculateRewardFactor, resolveConfidence, Layer } from '../core/memory.js';
9
+ import { loadCorrectionEntries, loadRawEntries } from '../store/report-reads.js';
10
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';
11
+ import { loadStatusCounts } from '../store/candidates.js';
12
+ import { embeddingModelRequiresReindex } from '../store/embeddings/index.js';
13
13
  import { resolveEmbeddingProvider } from '../store/embeddings/provider.js';
14
- import { loadStoredParticles } from '../store/vector-writes.js';
14
+ import { loadStoredParticles, storedVectorSummary } from '../store/vector-index.js';
15
15
  import { computeSystemEnergy, vecNorm } from '../core/physics.js';
16
16
  import { loadConfig } from '../core/config.js';
17
17
  import { runDoctor, formatDoctor } from '../doctor.js';
18
18
  import { buildSupportBundle, TAIL_MAX_LINES } from '../support-bundle.js';
19
19
  import { PACKAGE_VERSION } from '../util/version.js';
20
20
  import { FAILURE_LOG_RETENTION_DAYS } from '../store/failure-log.js';
21
- import { getGlobalRoot } from '../sharing/shared.js';
21
+ import { getGlobalRoot } from '../sharing/global-store.js';
22
22
  import { buildProvenanceCoverage } from './provenance-coverage.js';
23
23
  import { buildCorrectionLatency } from './correction-latency.js';
24
24
  import * as api from '../api/index.js';
25
- import { resolveTenantId } from '../store/tenant.js';
25
+ import { getMemory } from '../api/memories.js';
26
+ import { cliApiContext } from './api-context.js';
26
27
  import { errorMessage, log } from '../util/log.js';
27
28
  import { printError } from './output.js';
28
29
  import { parseCountFlag, stringFlagOrExit, flagIsTrue } from './flag-values.js';
29
30
  import { requireInit, resolveAuthRoot } from './shared.js';
30
31
  import { fmt } from './print.js';
32
+ import { isJsonObject } from '../util/json.js';
31
33
  import { hookStoreRoot } from './hook-runtime.js';
32
34
  import { DAY_MS } from '../util/time.js';
33
- export function cmdStatus(hippoRoot) {
35
+ import { CliExit } from './exit.js';
36
+ export function handleStatus({ hippoRoot }) {
34
37
  requireInit(hippoRoot);
35
- const entries = loadAllEntries(hippoRoot);
36
38
  const stats = loadStats(hippoRoot);
37
- const now = evalNow();
38
- const { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength } = tallyStatus(entries, now);
39
+ const counts = loadStatusCounts(hippoRoot, evalNow(), 0.2);
40
+ const { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength } = counts;
39
41
  console.log('Hippo Status');
40
42
  console.log('---------------------------');
41
- console.log(`Total memories: ${entries.length}`);
43
+ console.log(`Total memories: ${counts.total}`);
42
44
  console.log(` Buffer: ${byLayer[Layer.Buffer]}`);
43
45
  console.log(` Episodic: ${byLayer[Layer.Episodic]}`);
44
46
  console.log(` Semantic: ${byLayer[Layer.Semantic]}`);
45
47
  console.log(` Trace: ${byLayer[Layer.Trace]}`);
46
- const conflictCount = listMemoryConflicts(hippoRoot).length;
47
48
  console.log(`Pinned: ${pinned}`);
48
49
  console.log(`At risk (<0.2): ${atRisk}`);
49
- console.log(`Open conflicts: ${conflictCount}`);
50
+ console.log(`Open conflicts: ${counts.openConflicts}`);
50
51
  console.log(`Avg strength: ${fmt(avgStrength)}`);
51
52
  console.log('');
52
53
  console.log('Confidence breakdown:');
@@ -56,55 +57,22 @@ export function cmdStatus(hippoRoot) {
56
57
  console.log(` Stale: ${byConfidence['stale'] ?? 0}`);
57
58
  console.log(` Aged out: ${agedOut} (of the above; excludes pinned, verified)`);
58
59
  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'] ?? [];
60
+ console.log(`Total remembered: ${stats.total_remembered ?? 0}`);
61
+ console.log(`Total recalled: ${stats.total_recalled ?? 0}`);
62
+ console.log(`Total forgotten: ${stats.total_forgotten ?? 0}`);
63
+ const runs = stats.consolidation_runs ?? [];
63
64
  if (Array.isArray(runs) && runs.length > 0) {
64
65
  const last = runs[runs.length - 1];
65
- console.log(`Last sleep: ${last['timestamp']}`);
66
+ console.log(`Last sleep: ${isJsonObject(last) ? last['timestamp'] : undefined}`);
66
67
  }
67
68
  else {
68
69
  console.log(`Last sleep: never`);
69
70
  }
70
- printEmbeddingStatus(hippoRoot, entries);
71
+ printEmbeddingStatus(hippoRoot, counts);
71
72
  printPhysicsStatus(hippoRoot);
72
73
  }
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 };
105
- }
106
74
  // Embedding status (provider-aware)
107
- function printEmbeddingStatus(hippoRoot, entries) {
75
+ function printEmbeddingStatus(hippoRoot, counts) {
108
76
  const embedProvider = (() => {
109
77
  try {
110
78
  return resolveEmbeddingProvider(hippoRoot);
@@ -135,36 +103,34 @@ function printEmbeddingStatus(hippoRoot, entries) {
135
103
  }
136
104
  // Show cached counts whenever vectors exist on disk (even when disabled or
137
105
  // 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)
106
+ const { ids: embeddedIds, dims } = storedVectorSummary(hippoRoot);
107
+ if (!embAvail && embeddedIds.size === 0)
140
108
  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`;
109
+ const orphaned = embeddedIds.size - counts.embedded;
110
+ let line = `Embedded: ${counts.embedded}/${counts.total} memories`;
146
111
  if (dims)
147
112
  line += ` (${dims}-dim)`;
148
113
  if (orphaned > 0)
149
114
  line += ` (${orphaned} orphaned, run \`hippo embed\` to prune)`;
150
115
  console.log(line);
151
- if (embeddingModelRequiresReindex(hippoRoot, embedProvider.id, embIndex)) {
116
+ // No index argument: the check then asks SQLite whether any vector exists instead of loading them.
117
+ if (embeddingModelRequiresReindex(hippoRoot, embedProvider.id)) {
152
118
  console.log(` model changed, run \`hippo embed\` to reindex`);
153
119
  }
154
120
  }
121
+ // The all-pairs energy sum is quadratic, so a large particle set skips it.
122
+ const PHYSICS_ENERGY_STATUS_MAX = 2000;
155
123
  // Physics status
156
124
  function printPhysicsStatus(hippoRoot) {
157
125
  try {
158
126
  const particles = loadStoredParticles(hippoRoot);
159
127
  if (particles.length > 0) {
160
- const physConfig = loadConfig(hippoRoot);
161
- const energy = computeSystemEnergy(particles, physConfig.physics.G_memory);
162
128
  let sumVelMag = 0;
163
129
  for (const p of particles)
164
130
  sumVelMag += vecNorm(p.velocity);
165
131
  const avgVelMag = sumVelMag / particles.length;
166
132
  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)}`);
133
+ console.log(`Physics: ${particles.length} particles, ${physicsEnergyText(particles, loadConfig(hippoRoot).physics.G_memory)}, avg vel: ${fmt(avgVelMag, 4)}`);
168
134
  }
169
135
  }
170
136
  catch (err) {
@@ -172,12 +138,18 @@ function printPhysicsStatus(hippoRoot) {
172
138
  log.debug(`physics status skipped: ${errorMessage(err)}`);
173
139
  }
174
140
  }
175
- function cmdInspect(hippoRoot, id) {
141
+ export function physicsEnergyText(particles, gMemory) {
142
+ if (particles.length > PHYSICS_ENERGY_STATUS_MAX)
143
+ return `energy: skipped (${particles.length} particles)`;
144
+ const energy = computeSystemEnergy(particles, gMemory);
145
+ return `energy: ${fmt(energy.total, 4)} (KE: ${fmt(energy.kinetic, 4)}, PE: ${fmt(energy.potential, 4)})`;
146
+ }
147
+ async function cmdInspect(hippoRoot, tenantId, id) {
176
148
  requireInit(hippoRoot);
177
- const entry = readEntry(hippoRoot, id, resolveTenantId({}));
149
+ const entry = await getMemory(cliApiContext(hippoRoot, tenantId), id);
178
150
  if (!entry) {
179
151
  printError(`Memory not found: ${id}`);
180
- process.exit(1);
152
+ throw new CliExit(1);
181
153
  }
182
154
  const now = evalNow();
183
155
  const currentStrength = calculateStrength(entry, now);
@@ -214,20 +186,11 @@ function cmdInspect(hippoRoot, id) {
214
186
  console.log('-'.repeat(40));
215
187
  console.log(entry.content);
216
188
  }
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) {
189
+ /** `hippo tokens [--days <n>] [--json] [--global]`: the token ledger per surface, tokens saved by skipped unchanged blocks, and re-read hook tokens.
190
+ * Counts are estimates (characters / 4), the same estimate every budget uses. */
191
+ export function handleTokens({ hippoRoot, tenantId, flags }) {
225
192
  const root = resolveAuthRoot(hippoRoot, flags);
226
- const ctx = {
227
- hippoRoot: root,
228
- tenantId: resolveTenantId({}),
229
- actor: api.adminActor('cli'),
230
- };
193
+ const ctx = cliApiContext(root, tenantId);
231
194
  const days = parseCountFlag(flags['days']);
232
195
  const summary = api.tokenSummary(ctx, { days: days > 0 ? days : undefined });
233
196
  if (flags['json']) {
@@ -257,15 +220,11 @@ export function cmdTokens(hippoRoot, flags) {
257
220
  console.log(" Re-reads usually bill at the provider's cached-input rate, a fraction of the full input price.");
258
221
  }
259
222
  /** `hippo failures [--days <n>] [--json] [--global]`: failed tool calls by outcome, and repeats across sessions. */
260
- export function cmdFailures(hippoRoot, flags) {
223
+ export function handleFailures({ hippoRoot, tenantId, flags }) {
261
224
  // The store the capture-error hook writes to; a report never creates one.
262
225
  const root = flags['global'] ? getGlobalRoot() : hookStoreRoot(hippoRoot);
263
226
  requireInit(root);
264
- const ctx = {
265
- hippoRoot: root,
266
- tenantId: resolveTenantId({}),
267
- actor: api.adminActor('cli'),
268
- };
227
+ const ctx = cliApiContext(root, tenantId);
269
228
  const days = parseCountFlag(flags['days']);
270
229
  const summary = api.failureSummary(ctx, { days: days > 0 ? days : undefined });
271
230
  if (flags['json']) {
@@ -300,8 +259,7 @@ export function cmdFailures(hippoRoot, flags) {
300
259
  }
301
260
  export function handleCorrectionLatency({ hippoRoot, flags }) {
302
261
  requireInit(hippoRoot);
303
- const entries = loadAllEntries(hippoRoot);
304
- const report = buildCorrectionLatency(entries);
262
+ const report = buildCorrectionLatency(loadCorrectionEntries(hippoRoot));
305
263
  if (flags['json']) {
306
264
  console.log(JSON.stringify(report, null, 2));
307
265
  }
@@ -330,8 +288,7 @@ export function handleCorrectionLatency({ hippoRoot, flags }) {
330
288
  }
331
289
  export function handleProvenance({ hippoRoot, flags }) {
332
290
  requireInit(hippoRoot);
333
- const entries = loadAllEntries(hippoRoot);
334
- const coverage = buildProvenanceCoverage(entries);
291
+ const coverage = buildProvenanceCoverage(loadRawEntries(hippoRoot));
335
292
  if (flags['json']) {
336
293
  console.log(JSON.stringify(coverage, null, 2));
337
294
  }
@@ -349,7 +306,7 @@ export function handleProvenance({ hippoRoot, flags }) {
349
306
  }
350
307
  }
351
308
  if (flags['strict'] && coverage.coverage < 1) {
352
- process.exit(1);
309
+ throw new CliExit(1);
353
310
  }
354
311
  }
355
312
  export function handleDoctor({ flags }) {
@@ -358,13 +315,13 @@ export function handleDoctor({ flags }) {
358
315
  const report = runDoctor({ version: pkg.version });
359
316
  console.log(flags['json'] ? JSON.stringify(report, null, 2) : formatDoctor(report));
360
317
  if (!report.ok)
361
- process.exit(1);
318
+ throw new CliExit(1);
362
319
  }
363
320
  export function handleSupportBundle({ flags }) {
364
321
  const outFlag = stringFlagOrExit(flags, 'out');
365
322
  if (outFlag === '') {
366
323
  printError('--out requires a file path.');
367
- process.exit(1);
324
+ throw new CliExit(1);
368
325
  }
369
326
  const includeLogs = flagIsTrue(flags, 'include-logs');
370
327
  const home = envHomeDir() || os.homedir();
@@ -383,7 +340,7 @@ export function handleSupportBundle({ flags }) {
383
340
  else {
384
341
  printError(errorMessage(err));
385
342
  }
386
- process.exit(1);
343
+ throw new CliExit(1);
387
344
  }
388
345
  const kb = Math.round(Buffer.byteLength(json) / 1024);
389
346
  console.log(`Wrote ${file} (${kb} KB).`);
@@ -391,12 +348,12 @@ export function handleSupportBundle({ flags }) {
391
348
  ? `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
349
  : '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.');
393
350
  }
394
- export function handleInspect({ hippoRoot, args }) {
351
+ export async function handleInspect({ hippoRoot, tenantId, args }) {
395
352
  const id = args[0];
396
353
  if (!id) {
397
354
  printError('Please provide a memory ID.');
398
- process.exit(1);
355
+ throw new CliExit(1);
399
356
  }
400
- cmdInspect(hippoRoot, id);
357
+ await cmdInspect(hippoRoot, tenantId, id);
401
358
  }
402
359
  //# 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, 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