hippo-memory 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (965) hide show
  1. package/dist/agent-memories/apply.d.ts +7 -5
  2. package/dist/agent-memories/apply.js +66 -39
  3. package/dist/agent-memories/claude-code.d.ts +8 -2
  4. package/dist/agent-memories/claude-code.js +26 -7
  5. package/dist/agent-memories/copilot.js +2 -1
  6. package/dist/agent-memories/files.js +2 -1
  7. package/dist/agent-memories/legacy.d.ts +6 -3
  8. package/dist/agent-memories/legacy.js +35 -14
  9. package/dist/agent-memories/markdown.d.ts +3 -1
  10. package/dist/agent-memories/markdown.js +3 -1
  11. package/dist/agent-memories/openclaw.js +5 -2
  12. package/dist/agent-memories/plan.js +11 -1
  13. package/dist/agent-memories/project-folds.js +2 -1
  14. package/dist/agent-memories/report.d.ts +4 -1
  15. package/dist/agent-memories/report.js +43 -9
  16. package/dist/agent-memories/source.d.ts +8 -2
  17. package/dist/agent-memories/source.js +11 -3
  18. package/dist/agent-memories/sync.d.ts +7 -2
  19. package/dist/agent-memories/sync.js +141 -101
  20. package/dist/api/assemble.d.ts +6 -4
  21. package/dist/api/assemble.js +11 -6
  22. package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
  23. package/dist/api/{audit.js → auth/audit.js} +11 -11
  24. package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -15
  25. package/dist/api/{auth.js → auth/auth.js} +46 -29
  26. package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
  27. package/dist/api/{quarantine.js → auth/quarantine.js} +8 -8
  28. package/dist/api/auth/session-owners.d.ts +10 -0
  29. package/dist/api/auth/session-owners.js +35 -0
  30. package/dist/api/availability.d.ts +3 -1
  31. package/dist/api/availability.js +3 -1
  32. package/dist/api/busy.d.ts +2 -0
  33. package/dist/api/busy.js +2 -0
  34. package/dist/api/cli-surface.d.ts +6 -0
  35. package/dist/api/cli-surface.js +6 -0
  36. package/dist/api/config-of.d.ts +5 -0
  37. package/dist/api/config-of.js +6 -0
  38. package/dist/api/context-auto.d.ts +4 -1
  39. package/dist/api/context-auto.js +10 -2
  40. package/dist/api/context-render.js +14 -7
  41. package/dist/api/context-select.d.ts +4 -1
  42. package/dist/api/context-select.js +23 -14
  43. package/dist/api/context-types.d.ts +38 -12
  44. package/dist/api/context.d.ts +8 -5
  45. package/dist/api/context.js +112 -57
  46. package/dist/api/continuity.d.ts +24 -21
  47. package/dist/api/continuity.js +18 -20
  48. package/dist/api/correction-latency.d.ts +3 -1
  49. package/dist/api/correction-latency.js +3 -1
  50. package/dist/api/error-reply.d.ts +4 -1
  51. package/dist/api/error-reply.js +12 -3
  52. package/dist/api/index.d.ts +39 -23
  53. package/dist/api/index.js +21 -23
  54. package/dist/api/instruction-detect.d.ts +4 -1
  55. package/dist/api/instruction-detect.js +75 -20
  56. package/dist/api/ledger-db.d.ts +15 -11
  57. package/dist/api/ledger-db.js +21 -23
  58. package/dist/api/memories/conflicts.d.ts +33 -0
  59. package/dist/api/memories/conflicts.js +67 -0
  60. package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
  61. package/dist/api/{forget.js → memories/forget.js} +22 -15
  62. package/dist/api/memories/memories.d.ts +27 -0
  63. package/dist/api/{memories.js → memories/memories.js} +16 -21
  64. package/dist/api/memories/outcome.d.ts +22 -0
  65. package/dist/api/{outcome.js → memories/outcome.js} +14 -8
  66. package/dist/api/memories/promote.d.ts +40 -0
  67. package/dist/api/{promote.js → memories/promote.js} +35 -22
  68. package/dist/api/memories/refine.d.ts +10 -0
  69. package/dist/api/memories/refine.js +12 -0
  70. package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +16 -11
  71. package/dist/api/{remember-local.js → memories/remember-local.js} +34 -20
  72. package/dist/api/{remember.d.ts → memories/remember.d.ts} +19 -13
  73. package/dist/api/{remember.js → memories/remember.js} +42 -26
  74. package/dist/api/objects/cards.d.ts +39 -0
  75. package/dist/api/{cards.js → objects/cards.js} +12 -14
  76. package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
  77. package/dist/api/{drill-down.js → objects/drill-down.js} +7 -8
  78. package/dist/api/objects/goals.d.ts +18 -0
  79. package/dist/api/{goals.js → objects/goals.js} +12 -12
  80. package/dist/api/objects/graph.d.ts +11 -0
  81. package/dist/api/objects/graph.js +16 -0
  82. package/dist/api/objects/objects.d.ts +9 -0
  83. package/dist/api/{objects.js → objects/objects.js} +2 -4
  84. package/dist/api/objects/predictions.d.ts +11 -0
  85. package/dist/api/{predictions.js → objects/predictions.js} +7 -6
  86. package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
  87. package/dist/api/{projects.js → objects/projects.js} +8 -4
  88. package/dist/api/pilot-arm.d.ts +8 -4
  89. package/dist/api/pilot-arm.js +5 -4
  90. package/dist/api/prompt-hook.d.ts +32 -19
  91. package/dist/api/prompt-hook.js +65 -44
  92. package/dist/api/provenance-coverage.d.ts +3 -1
  93. package/dist/api/provenance-coverage.js +3 -1
  94. package/dist/api/recall/finish.d.ts +185 -0
  95. package/dist/api/recall/finish.js +301 -0
  96. package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
  97. package/dist/api/{recall-pipeline.js → recall/pipeline.js} +176 -92
  98. package/dist/api/recall/recall.d.ts +6 -0
  99. package/dist/api/{recall.js → recall/recall.js} +101 -60
  100. package/dist/api/recall/render.d.ts +39 -0
  101. package/dist/api/recall/render.js +60 -0
  102. package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
  103. package/dist/api/recall/request.js +261 -0
  104. package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
  105. package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
  106. package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -70
  107. package/dist/api/{recall-types.js → recall/types.js} +1 -1
  108. package/dist/api/session-end.d.ts +16 -12
  109. package/dist/api/session-end.js +46 -30
  110. package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
  111. package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
  112. package/dist/api/sleep/dormant.d.ts +25 -0
  113. package/dist/api/sleep/dormant.js +64 -0
  114. package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
  115. package/dist/api/sleep/learn.js +138 -0
  116. package/dist/api/sleep/sleep-run.d.ts +38 -0
  117. package/dist/api/{sleep-run.js → sleep/sleep-run.js} +51 -43
  118. package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
  119. package/dist/api/sleep/sleep.js +9 -0
  120. package/dist/api/status.d.ts +3 -1
  121. package/dist/api/status.js +3 -1
  122. package/dist/api/store-init.d.ts +4 -1
  123. package/dist/api/store-init.js +4 -1
  124. package/dist/api/tokens.d.ts +10 -9
  125. package/dist/api/tokens.js +9 -10
  126. package/dist/api/types.d.ts +28 -7
  127. package/dist/api/types.js +13 -4
  128. package/dist/capture/caller-session.d.ts +8 -2
  129. package/dist/capture/caller-session.js +16 -6
  130. package/dist/capture/capture-error.d.ts +3 -1
  131. package/dist/capture/capture-error.js +3 -1
  132. package/dist/capture/codex-patch.js +7 -2
  133. package/dist/capture/command.d.ts +4 -2
  134. package/dist/capture/command.js +33 -14
  135. package/dist/capture/compact-resume-caller.js +15 -8
  136. package/dist/capture/compact.d.ts +8 -5
  137. package/dist/capture/compact.js +34 -23
  138. package/dist/capture/compaction-items-caller.js +9 -3
  139. package/dist/capture/compaction-record.d.ts +4 -3
  140. package/dist/capture/compaction-record.js +20 -12
  141. package/dist/capture/compaction-spool.d.ts +15 -4
  142. package/dist/capture/compaction-spool.js +64 -17
  143. package/dist/capture/copilot-transcript.d.ts +11 -3
  144. package/dist/capture/copilot-transcript.js +16 -6
  145. package/dist/capture/extract.js +20 -8
  146. package/dist/capture/failure-caller.js +23 -12
  147. package/dist/capture/failure-reading.d.ts +10 -3
  148. package/dist/capture/failure-reading.js +24 -7
  149. package/dist/capture/pre-compact-caller.js +11 -4
  150. package/dist/capture/session-digest.d.ts +15 -4
  151. package/dist/capture/session-digest.js +39 -13
  152. package/dist/capture/session-end-caller.d.ts +4 -1
  153. package/dist/capture/session-end-caller.js +20 -8
  154. package/dist/capture/session-texts.d.ts +6 -2
  155. package/dist/capture/session-texts.js +22 -7
  156. package/dist/capture/session-worker.d.ts +4 -2
  157. package/dist/capture/session-worker.js +45 -17
  158. package/dist/capture/transcript.d.ts +13 -4
  159. package/dist/capture/transcript.js +32 -10
  160. package/dist/capture/working-state.d.ts +13 -4
  161. package/dist/capture/working-state.js +50 -56
  162. package/dist/cli/api-context.d.ts +14 -2
  163. package/dist/cli/api-context.js +45 -2
  164. package/dist/cli/audit.js +23 -23
  165. package/dist/cli/auth.js +19 -27
  166. package/dist/cli/briefs.d.ts +1 -1
  167. package/dist/cli/briefs.js +20 -15
  168. package/dist/cli/card.d.ts +1 -1
  169. package/dist/cli/card.js +56 -73
  170. package/dist/cli/client.d.ts +12 -4
  171. package/dist/cli/client.js +43 -13
  172. package/dist/cli/compact-resume-payload.d.ts +4 -1
  173. package/dist/cli/compact-resume-payload.js +12 -5
  174. package/dist/cli/context.js +42 -17
  175. package/dist/cli/continuity.d.ts +5 -5
  176. package/dist/cli/continuity.js +90 -107
  177. package/dist/cli/curate.d.ts +4 -3
  178. package/dist/cli/curate.js +46 -68
  179. package/dist/cli/dag.d.ts +1 -1
  180. package/dist/cli/dag.js +14 -17
  181. package/dist/cli/decisions.js +27 -26
  182. package/dist/cli/eval.js +16 -21
  183. package/dist/cli/exit.d.ts +4 -1
  184. package/dist/cli/exit.js +10 -2
  185. package/dist/cli/explain.js +12 -11
  186. package/dist/cli/flag-values.d.ts +1 -1
  187. package/dist/cli/flag-values.js +9 -18
  188. package/dist/cli/github.d.ts +6 -0
  189. package/dist/cli/github.js +25 -13
  190. package/dist/cli/goals.d.ts +1 -1
  191. package/dist/cli/goals.js +39 -56
  192. package/dist/cli/graph.d.ts +1 -1
  193. package/dist/cli/graph.js +15 -11
  194. package/dist/cli/hook-runtime.d.ts +31 -9
  195. package/dist/cli/hook-runtime.js +40 -15
  196. package/dist/cli/incidents.d.ts +1 -1
  197. package/dist/cli/incidents.js +25 -25
  198. package/dist/cli/init.js +26 -11
  199. package/dist/cli/install-steps.d.ts +12 -3
  200. package/dist/cli/install-steps.js +42 -18
  201. package/dist/cli/last-sleep.d.ts +4 -1
  202. package/dist/cli/last-sleep.js +9 -4
  203. package/dist/cli/maintenance.d.ts +1 -1
  204. package/dist/cli/maintenance.js +11 -12
  205. package/dist/cli/notes.d.ts +1 -1
  206. package/dist/cli/notes.js +8 -5
  207. package/dist/cli/object-verbs.d.ts +4 -4
  208. package/dist/cli/object-verbs.js +10 -13
  209. package/dist/cli/open-browser.js +11 -2
  210. package/dist/cli/playbooks.d.ts +3 -3
  211. package/dist/cli/playbooks.js +40 -32
  212. package/dist/cli/predictions.js +15 -19
  213. package/dist/cli/print.js +4 -2
  214. package/dist/cli/projects.js +21 -11
  215. package/dist/cli/quality-repair-once.js +5 -4
  216. package/dist/cli/recall.js +129 -93
  217. package/dist/cli/refine-llm.d.ts +15 -4
  218. package/dist/cli/refine-llm.js +16 -7
  219. package/dist/cli/remember.js +46 -50
  220. package/dist/cli/scheduler.d.ts +4 -1
  221. package/dist/cli/scheduler.js +9 -5
  222. package/dist/cli/serve.js +22 -17
  223. package/dist/cli/session-hooks.d.ts +2 -2
  224. package/dist/cli/session-hooks.js +87 -50
  225. package/dist/cli/setup.js +54 -32
  226. package/dist/cli/shared.d.ts +3 -1
  227. package/dist/cli/shared.js +24 -9
  228. package/dist/cli/slack.js +15 -24
  229. package/dist/cli/sleep-render.d.ts +3 -1
  230. package/dist/cli/sleep-render.js +8 -5
  231. package/dist/cli/sleep.js +14 -6
  232. package/dist/cli/status.d.ts +4 -4
  233. package/dist/cli/status.js +32 -27
  234. package/dist/cli/stdin.d.ts +10 -3
  235. package/dist/cli/stdin.js +10 -3
  236. package/dist/cli/transfer.d.ts +1 -1
  237. package/dist/cli/transfer.js +71 -75
  238. package/dist/cli/verbs/memory.js +8 -6
  239. package/dist/cli/verbs/objects.js +10 -4
  240. package/dist/cli/versioned-verbs.d.ts +8 -7
  241. package/dist/cli/versioned-verbs.js +31 -21
  242. package/dist/cli.js +13 -16
  243. package/dist/connectors/dlq.d.ts +6 -6
  244. package/dist/connectors/dlq.js +12 -8
  245. package/dist/connectors/github/backfill.d.ts +4 -4
  246. package/dist/connectors/github/backfill.js +6 -4
  247. package/dist/connectors/github/deletion.d.ts +6 -4
  248. package/dist/connectors/github/deletion.js +5 -5
  249. package/dist/connectors/github/dlq.d.ts +8 -6
  250. package/dist/connectors/github/dlq.js +11 -5
  251. package/dist/connectors/github/ingest.d.ts +2 -2
  252. package/dist/connectors/github/ingest.js +9 -6
  253. package/dist/connectors/github/octokit-client.d.ts +3 -1
  254. package/dist/connectors/github/octokit-client.js +7 -2
  255. package/dist/connectors/github/ratelimit.d.ts +6 -2
  256. package/dist/connectors/github/ratelimit.js +6 -2
  257. package/dist/connectors/github/signature.d.ts +14 -3
  258. package/dist/connectors/github/signature.js +17 -3
  259. package/dist/connectors/github/tenant-routing.d.ts +6 -4
  260. package/dist/connectors/github/tenant-routing.js +6 -6
  261. package/dist/connectors/github/transform.js +50 -67
  262. package/dist/connectors/github/types.d.ts +10 -3
  263. package/dist/connectors/github/types.js +6 -2
  264. package/dist/connectors/github/webhook.d.ts +5 -5
  265. package/dist/connectors/github/webhook.js +34 -23
  266. package/dist/connectors/ingest.d.ts +5 -3
  267. package/dist/connectors/ingest.js +3 -4
  268. package/dist/connectors/slack/backfill.d.ts +5 -5
  269. package/dist/connectors/slack/backfill.js +3 -3
  270. package/dist/connectors/slack/deletion.d.ts +4 -4
  271. package/dist/connectors/slack/deletion.js +6 -6
  272. package/dist/connectors/slack/dlq.d.ts +4 -4
  273. package/dist/connectors/slack/dlq.js +6 -6
  274. package/dist/connectors/slack/ingest.d.ts +6 -4
  275. package/dist/connectors/slack/ingest.js +5 -5
  276. package/dist/connectors/slack/signature.d.ts +4 -1
  277. package/dist/connectors/slack/tenant-routing.d.ts +6 -4
  278. package/dist/connectors/slack/tenant-routing.js +6 -6
  279. package/dist/connectors/slack/transform.d.ts +6 -2
  280. package/dist/connectors/slack/transform.js +6 -2
  281. package/dist/connectors/slack/types.d.ts +3 -1
  282. package/dist/connectors/slack/web-client.js +8 -3
  283. package/dist/connectors/slack/webhook.d.ts +5 -5
  284. package/dist/connectors/slack/webhook.js +19 -11
  285. package/dist/connectors/slack/workspaces.d.ts +7 -3
  286. package/dist/connectors/slack/workspaces.js +7 -3
  287. package/dist/connectors/store.d.ts +8 -0
  288. package/dist/connectors/store.js +2 -0
  289. package/dist/consolidate/conflicts.js +23 -9
  290. package/dist/consolidate/dag-summary.js +2 -1
  291. package/dist/consolidate/dag.d.ts +10 -5
  292. package/dist/consolidate/dag.js +37 -36
  293. package/dist/consolidate/decay.js +19 -6
  294. package/dist/consolidate/dedupe.d.ts +14 -5
  295. package/dist/consolidate/dedupe.js +27 -16
  296. package/dist/consolidate/flush-units.d.ts +4 -1
  297. package/dist/consolidate/flush-units.js +4 -1
  298. package/dist/consolidate/half-life-migration.d.ts +18 -8
  299. package/dist/consolidate/half-life-migration.js +48 -18
  300. package/dist/consolidate/llm-passes.js +27 -11
  301. package/dist/consolidate/memory-value-weights.d.ts +6 -2
  302. package/dist/consolidate/memory-value-weights.js +6 -2
  303. package/dist/consolidate/memory-value.d.ts +30 -10
  304. package/dist/consolidate/memory-value.js +36 -13
  305. package/dist/consolidate/merge.d.ts +4 -1
  306. package/dist/consolidate/merge.js +42 -32
  307. package/dist/consolidate/overlap-index.d.ts +8 -2
  308. package/dist/consolidate/overlap-index.js +11 -4
  309. package/dist/consolidate/physics-pass.d.ts +3 -1
  310. package/dist/consolidate/physics-pass.js +10 -7
  311. package/dist/consolidate/replay.d.ts +11 -4
  312. package/dist/consolidate/replay.js +19 -7
  313. package/dist/consolidate/run.d.ts +13 -5
  314. package/dist/consolidate/run.js +4 -4
  315. package/dist/consolidate/sleep.d.ts +14 -6
  316. package/dist/consolidate/sleep.js +41 -38
  317. package/dist/consolidate/trace.d.ts +7 -2
  318. package/dist/consolidate/trace.js +7 -2
  319. package/dist/consolidate/traces.js +26 -29
  320. package/dist/core/ablation.d.ts +9 -3
  321. package/dist/core/ablation.js +14 -4
  322. package/dist/core/active-scope.d.ts +3 -1
  323. package/dist/core/active-scope.js +3 -1
  324. package/dist/core/agent-memory-tools.d.ts +2 -0
  325. package/dist/core/agent-memory-tools.js +2 -0
  326. package/dist/core/ambient.d.ts +4 -3
  327. package/dist/core/ambient.js +8 -6
  328. package/dist/core/api-errors.d.ts +9 -3
  329. package/dist/core/api-errors.js +9 -3
  330. package/dist/core/capture-contract.d.ts +4 -1
  331. package/dist/core/capture-contract.js +27 -8
  332. package/dist/core/compare.d.ts +24 -8
  333. package/dist/core/compare.js +24 -8
  334. package/dist/core/config.d.ts +18 -9
  335. package/dist/core/config.js +24 -14
  336. package/dist/core/cosine.d.ts +4 -1
  337. package/dist/core/cosine.js +4 -1
  338. package/dist/core/handoff.d.ts +7 -2
  339. package/dist/core/handoff.js +4 -1
  340. package/dist/core/markdown.js +21 -16
  341. package/dist/core/memory-audit.js +14 -3
  342. package/dist/core/memory-quality.d.ts +12 -3
  343. package/dist/core/memory-quality.js +57 -21
  344. package/dist/core/memory.d.ts +84 -27
  345. package/dist/core/memory.js +73 -29
  346. package/dist/core/merged-row.d.ts +8 -2
  347. package/dist/core/merged-row.js +10 -3
  348. package/dist/core/package-root.d.ts +3 -1
  349. package/dist/core/package-root.js +3 -1
  350. package/dist/core/particle-refresh.d.ts +8 -0
  351. package/dist/core/particle-refresh.js +22 -0
  352. package/dist/core/physics-config.d.ts +4 -1
  353. package/dist/core/physics-config.js +6 -2
  354. package/dist/core/physics.d.ts +37 -11
  355. package/dist/core/physics.js +55 -20
  356. package/dist/core/project-identity.d.ts +34 -17
  357. package/dist/core/project-identity.js +33 -17
  358. package/dist/core/project-remote.d.ts +8 -4
  359. package/dist/core/project-remote.js +31 -14
  360. package/dist/core/recall-scope.d.ts +33 -11
  361. package/dist/core/recall-scope.js +42 -15
  362. package/dist/core/rejection-digest.d.ts +7 -0
  363. package/dist/core/rejection-digest.js +13 -0
  364. package/dist/core/salience.d.ts +3 -1
  365. package/dist/core/salience.js +10 -4
  366. package/dist/core/search-types.d.ts +15 -2
  367. package/dist/core/search-types.js +11 -0
  368. package/dist/dashboard/dashboard-actions.js +13 -2
  369. package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
  370. package/dist/dashboard/dashboard-snapshot.js +4 -4
  371. package/dist/dashboard/dashboard.js +6 -3
  372. package/dist/db/backup.js +2 -2
  373. package/dist/db/busy.d.ts +10 -3
  374. package/dist/db/busy.js +27 -5
  375. package/dist/db/connect.d.ts +10 -3
  376. package/dist/db/connect.js +8 -3
  377. package/dist/db/continuity.d.ts +1 -1
  378. package/dist/db/continuity.js +27 -11
  379. package/dist/db/meta.d.ts +4 -1
  380. package/dist/db/meta.js +4 -1
  381. package/dist/db/migrate.d.ts +10 -5
  382. package/dist/db/migrate.js +26 -13
  383. package/dist/db/migrations/index.d.ts +1 -1
  384. package/dist/db/migrations/index.js +3 -1
  385. package/dist/db/migrations/types.d.ts +2 -1
  386. package/dist/db/migrations/v12.js +2 -1
  387. package/dist/db/migrations/v14.js +2 -1
  388. package/dist/db/migrations/v15.js +4 -2
  389. package/dist/db/migrations/v16.js +6 -3
  390. package/dist/db/migrations/v17.js +2 -1
  391. package/dist/db/migrations/v19.js +4 -2
  392. package/dist/db/migrations/v20.js +2 -1
  393. package/dist/db/migrations/v22.js +12 -6
  394. package/dist/db/migrations/v23.js +6 -3
  395. package/dist/db/migrations/v24.js +6 -3
  396. package/dist/db/migrations/v25.js +4 -2
  397. package/dist/db/migrations/v26.js +4 -2
  398. package/dist/db/migrations/v27.js +6 -3
  399. package/dist/db/migrations/v28.js +4 -2
  400. package/dist/db/migrations/v29.js +4 -2
  401. package/dist/db/migrations/v30.js +6 -3
  402. package/dist/db/migrations/v31.js +4 -2
  403. package/dist/db/migrations/v32.js +6 -3
  404. package/dist/db/migrations/v33.js +4 -2
  405. package/dist/db/migrations/v34.js +2 -1
  406. package/dist/db/migrations/v35.js +2 -1
  407. package/dist/db/migrations/v36.js +2 -1
  408. package/dist/db/migrations/v37.js +10 -5
  409. package/dist/db/migrations/v38.js +10 -5
  410. package/dist/db/migrations/v39.js +14 -6
  411. package/dist/db/migrations/v40.js +4 -2
  412. package/dist/db/migrations/v41.js +4 -2
  413. package/dist/db/migrations/v42.js +2 -1
  414. package/dist/db/migrations/v44.js +4 -2
  415. package/dist/db/migrations/v45.js +4 -2
  416. package/dist/db/migrations/v49.js +2 -1
  417. package/dist/db/migrations/v50.js +4 -2
  418. package/dist/db/migrations/v51.js +4 -2
  419. package/dist/db/migrations/v52.js +2 -1
  420. package/dist/db/migrations/v53.js +8 -4
  421. package/dist/db/migrations/v54.js +2 -1
  422. package/dist/db/migrations/v55.js +4 -2
  423. package/dist/db/migrations/v56.d.ts +3 -0
  424. package/dist/db/migrations/v56.js +28 -0
  425. package/dist/db/open.d.ts +24 -12
  426. package/dist/db/open.js +25 -13
  427. package/dist/db/physics-state.d.ts +8 -4
  428. package/dist/db/physics-state.js +13 -20
  429. package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
  430. package/dist/db/raw-archive-mirror-cleanup.js +6 -4
  431. package/dist/db/request-stores.d.ts +19 -5
  432. package/dist/db/request-stores.js +14 -5
  433. package/dist/db/tables.d.ts +2 -1
  434. package/dist/db/tables.js +12 -4
  435. package/dist/db/vector-store.d.ts +13 -4
  436. package/dist/db/vector-store.js +34 -14
  437. package/dist/db/wal-checkpointer.d.ts +2 -1
  438. package/dist/db/wal-checkpointer.js +19 -7
  439. package/dist/doctor.d.ts +4 -1
  440. package/dist/doctor.js +121 -39
  441. package/dist/embeddings/local.d.ts +8 -4
  442. package/dist/embeddings/local.js +9 -5
  443. package/dist/embeddings/provider.d.ts +19 -10
  444. package/dist/embeddings/provider.js +31 -17
  445. package/dist/embeddings/transformers.d.ts +16 -4
  446. package/dist/embeddings/transformers.js +32 -15
  447. package/dist/entry/json-hooks.d.ts +1 -1
  448. package/dist/entry/json-hooks.js +1 -1
  449. package/dist/entry/project-identity.js +2 -1
  450. package/dist/entry/session-text.d.ts +1 -1
  451. package/dist/entry/session-text.js +1 -1
  452. package/dist/entry/sqlite-handles.d.ts +10 -0
  453. package/dist/entry/sqlite-handles.js +9 -0
  454. package/dist/entry/store-kit.d.ts +19 -6
  455. package/dist/entry/store-kit.js +6 -4
  456. package/dist/eval/eval-stats.d.ts +27 -8
  457. package/dist/eval/eval-stats.js +17 -5
  458. package/dist/eval/eval-suite.d.ts +3 -1
  459. package/dist/eval/eval-suite.js +409 -187
  460. package/dist/eval/eval.d.ts +8 -2
  461. package/dist/eval/eval.js +8 -2
  462. package/dist/eval/judgment.js +16 -6
  463. package/dist/graph/delta.d.ts +9 -42
  464. package/dist/graph/delta.js +17 -11
  465. package/dist/graph/extract.d.ts +10 -7
  466. package/dist/graph/extract.js +57 -25
  467. package/dist/graph/recall.d.ts +12 -4
  468. package/dist/graph/recall.js +30 -13
  469. package/dist/graph/stream.d.ts +18 -6
  470. package/dist/graph/stream.js +32 -10
  471. package/dist/graph/view.d.ts +19 -6
  472. package/dist/graph/view.js +42 -17
  473. package/dist/hooks/codex-session.js +2 -2
  474. package/dist/hooks/codex-wrapper.d.ts +3 -1
  475. package/dist/hooks/codex-wrapper.js +9 -4
  476. package/dist/hooks/copilot.d.ts +19 -5
  477. package/dist/hooks/copilot.js +54 -15
  478. package/dist/hooks/hook-blocks.d.ts +4 -1
  479. package/dist/hooks/hook-blocks.js +8 -3
  480. package/dist/hooks/json-hooks.d.ts +9 -5
  481. package/dist/hooks/json-hooks.js +69 -34
  482. package/dist/hooks/opencode.js +15 -5
  483. package/dist/hooks/shared.d.ts +27 -8
  484. package/dist/hooks/shared.js +57 -16
  485. package/dist/importers/core.d.ts +12 -4
  486. package/dist/importers/core.js +8 -7
  487. package/dist/importers/markdown-parse.d.ts +15 -5
  488. package/dist/importers/markdown-parse.js +16 -7
  489. package/dist/importers/markdown.js +6 -9
  490. package/dist/importers/sources.js +10 -23
  491. package/dist/importers/vault.d.ts +2 -2
  492. package/dist/importers/vault.js +43 -27
  493. package/dist/index.d.ts +32 -6
  494. package/dist/index.js +25 -7
  495. package/dist/learn/autolearn.d.ts +17 -6
  496. package/dist/learn/autolearn.js +53 -24
  497. package/dist/learn/churn-git.d.ts +4 -1
  498. package/dist/learn/churn-git.js +29 -5
  499. package/dist/learn/extract.d.ts +4 -1
  500. package/dist/learn/extract.js +16 -9
  501. package/dist/learn/forward-claim-detector.d.ts +17 -5
  502. package/dist/learn/forward-claim-detector.js +34 -15
  503. package/dist/learn/invalidation.d.ts +12 -7
  504. package/dist/learn/invalidation.js +56 -27
  505. package/dist/learn/roots.d.ts +3 -0
  506. package/dist/learn/roots.js +5 -0
  507. package/dist/mcp/admin-tools.d.ts +5 -5
  508. package/dist/mcp/admin-tools.js +28 -23
  509. package/dist/mcp/format.d.ts +1 -1
  510. package/dist/mcp/format.js +4 -2
  511. package/dist/mcp/framing.d.ts +3 -1
  512. package/dist/mcp/framing.js +20 -8
  513. package/dist/mcp/memory-tools.d.ts +3 -3
  514. package/dist/mcp/memory-tools.js +18 -14
  515. package/dist/mcp/protocol.d.ts +32 -16
  516. package/dist/mcp/protocol.js +12 -9
  517. package/dist/mcp/recall-tools.d.ts +3 -3
  518. package/dist/mcp/recall-tools.js +62 -74
  519. package/dist/mcp/request.d.ts +7 -5
  520. package/dist/mcp/request.js +57 -74
  521. package/dist/mcp/server.d.ts +3 -1
  522. package/dist/mcp/server.js +8 -3
  523. package/dist/mcp/session-state.d.ts +1 -1
  524. package/dist/mcp/session-state.js +4 -3
  525. package/dist/mcp/shared-gate.d.ts +3 -2
  526. package/dist/mcp/shared-gate.js +3 -2
  527. package/dist/mcp/stdio.d.ts +6 -3
  528. package/dist/mcp/stdio.js +52 -21
  529. package/dist/mcp/tool-args.d.ts +4 -1
  530. package/dist/mcp/tool-args.js +8 -3
  531. package/dist/mcp/tools.js +76 -32
  532. package/dist/objects/customer-notes.d.ts +12 -10
  533. package/dist/objects/customer-notes.js +21 -15
  534. package/dist/objects/decisions.d.ts +18 -10
  535. package/dist/objects/decisions.js +23 -17
  536. package/dist/objects/descriptor.js +2 -1
  537. package/dist/objects/fields.d.ts +4 -1
  538. package/dist/objects/fields.js +6 -2
  539. package/dist/objects/incidents.d.ts +14 -16
  540. package/dist/objects/incidents.js +29 -30
  541. package/dist/objects/lifecycle.d.ts +0 -4
  542. package/dist/objects/lifecycle.js +21 -24
  543. package/dist/objects/policies.d.ts +12 -16
  544. package/dist/objects/policies.js +17 -21
  545. package/dist/objects/processes.d.ts +16 -10
  546. package/dist/objects/processes.js +20 -15
  547. package/dist/objects/project-briefs.d.ts +13 -14
  548. package/dist/objects/project-briefs.js +33 -39
  549. package/dist/objects/skills.d.ts +10 -12
  550. package/dist/objects/skills.js +17 -22
  551. package/dist/postinstall.js +15 -7
  552. package/dist/predictions/planning-fallacy.d.ts +19 -6
  553. package/dist/predictions/planning-fallacy.js +4 -2
  554. package/dist/rerankers/clef.d.ts +8 -2
  555. package/dist/rerankers/clef.js +14 -9
  556. package/dist/rerankers/cross-encoder.d.ts +2 -1
  557. package/dist/rerankers/cross-encoder.js +9 -6
  558. package/dist/rerankers/index.js +2 -1
  559. package/dist/rerankers/jev.js +2 -1
  560. package/dist/rerankers/llm.d.ts +6 -2
  561. package/dist/rerankers/llm.js +8 -3
  562. package/dist/rerankers/remote.d.ts +3 -1
  563. package/dist/rerankers/remote.js +5 -2
  564. package/dist/rerankers/types.d.ts +6 -2
  565. package/dist/search/bm25-search.d.ts +3 -1
  566. package/dist/search/bm25-search.js +15 -2
  567. package/dist/search/boosts.js +4 -3
  568. package/dist/search/embed-memories.d.ts +10 -5
  569. package/dist/search/embed-memories.js +62 -36
  570. package/dist/search/engine.d.ts +4 -1
  571. package/dist/search/engine.js +6 -2
  572. package/dist/search/goal-boost.d.ts +10 -3
  573. package/dist/search/goal-boost.js +13 -6
  574. package/dist/search/hybrid-score.d.ts +4 -1
  575. package/dist/search/hybrid-score.js +4 -1
  576. package/dist/search/hybrid.d.ts +23 -8
  577. package/dist/search/hybrid.js +12 -7
  578. package/dist/search/multihop.js +14 -13
  579. package/dist/search/path-context.d.ts +10 -3
  580. package/dist/search/path-context.js +10 -3
  581. package/dist/search/physics-search.d.ts +9 -4
  582. package/dist/search/physics-search.js +38 -14
  583. package/dist/search/rerank.d.ts +2 -1
  584. package/dist/search/rerank.js +2 -1
  585. package/dist/search/rrf.d.ts +14 -5
  586. package/dist/search/rrf.js +11 -4
  587. package/dist/search/vector.d.ts +8 -2
  588. package/dist/search/vector.js +9 -3
  589. package/dist/server/auth.d.ts +18 -14
  590. package/dist/server/auth.js +69 -38
  591. package/dist/server/boot.d.ts +3 -1
  592. package/dist/server/boot.js +95 -56
  593. package/dist/server/client-ip.d.ts +11 -4
  594. package/dist/server/client-ip.js +27 -10
  595. package/dist/server/cursor.d.ts +10 -3
  596. package/dist/server/cursor.js +10 -3
  597. package/dist/server/deadline.d.ts +5 -2
  598. package/dist/server/deadline.js +10 -3
  599. package/dist/server/key-check-bounds.js +12 -4
  600. package/dist/server/lifecycle.d.ts +4 -1
  601. package/dist/server/lifecycle.js +10 -4
  602. package/dist/server/mcp-http.d.ts +2 -1
  603. package/dist/server/mcp-http.js +37 -22
  604. package/dist/server/rate-limit.d.ts +17 -5
  605. package/dist/server/rate-limit.js +55 -26
  606. package/dist/server/ready.js +7 -4
  607. package/dist/server/request.d.ts +15 -4
  608. package/dist/server/request.js +42 -15
  609. package/dist/server/route-checks.d.ts +4 -1
  610. package/dist/server/route-checks.js +8 -3
  611. package/dist/server/route-table.d.ts +8 -6
  612. package/dist/server/route-table.js +547 -93
  613. package/dist/server/routes/admin.d.ts +7 -7
  614. package/dist/server/routes/admin.js +36 -15
  615. package/dist/server/routes/customer-notes.d.ts +5 -5
  616. package/dist/server/routes/customer-notes.js +5 -4
  617. package/dist/server/routes/decisions.d.ts +5 -5
  618. package/dist/server/routes/decisions.js +12 -6
  619. package/dist/server/routes/incidents.d.ts +5 -5
  620. package/dist/server/routes/incidents.js +10 -4
  621. package/dist/server/routes/memories.d.ts +8 -8
  622. package/dist/server/routes/memories.js +12 -19
  623. package/dist/server/routes/object-routes.d.ts +8 -5
  624. package/dist/server/routes/object-routes.js +4 -2
  625. package/dist/server/routes/policies.d.ts +6 -6
  626. package/dist/server/routes/policies.js +11 -4
  627. package/dist/server/routes/predictions.d.ts +5 -5
  628. package/dist/server/routes/predictions.js +9 -4
  629. package/dist/server/routes/processes.d.ts +5 -5
  630. package/dist/server/routes/processes.js +15 -6
  631. package/dist/server/routes/project-briefs.d.ts +6 -6
  632. package/dist/server/routes/project-briefs.js +3 -2
  633. package/dist/server/routes/recall.d.ts +3 -3
  634. package/dist/server/routes/recall.js +21 -10
  635. package/dist/server/routes/skills.d.ts +6 -6
  636. package/dist/server/routes/skills.js +12 -4
  637. package/dist/server/server-detect.d.ts +24 -8
  638. package/dist/server/server-detect.js +57 -22
  639. package/dist/server/sleep-child.js +16 -10
  640. package/dist/server/sleep-offload.d.ts +8 -5
  641. package/dist/server/sleep-offload.js +41 -19
  642. package/dist/server/tls.d.ts +4 -1
  643. package/dist/server/tls.js +13 -5
  644. package/dist/server/types.d.ts +38 -26
  645. package/dist/server/validation.d.ts +4 -1
  646. package/dist/server/validation.js +22 -9
  647. package/dist/server.d.ts +15 -10
  648. package/dist/server.js +32 -12
  649. package/dist/sharing/global-store.d.ts +5 -10
  650. package/dist/sharing/global-store.js +8 -43
  651. package/dist/sharing/global-sync.d.ts +3 -1
  652. package/dist/sharing/global-sync.js +16 -6
  653. package/dist/sharing/project-merge.d.ts +25 -7
  654. package/dist/sharing/project-merge.js +49 -17
  655. package/dist/sharing/search-both.d.ts +8 -4
  656. package/dist/sharing/search-both.js +19 -12
  657. package/dist/sharing/share.d.ts +8 -4
  658. package/dist/sharing/share.js +39 -15
  659. package/dist/store/ambient.js +9 -5
  660. package/dist/store/audit-event.d.ts +2 -2
  661. package/dist/store/audit-event.js +8 -3
  662. package/dist/store/audit.d.ts +6 -3
  663. package/dist/store/audit.js +16 -6
  664. package/dist/store/auth.d.ts +4 -2
  665. package/dist/store/auth.js +63 -20
  666. package/dist/store/busy.d.ts +9 -0
  667. package/dist/store/busy.js +16 -0
  668. package/dist/store/candidates.d.ts +12 -5
  669. package/dist/store/candidates.js +75 -36
  670. package/dist/store/capture-write.d.ts +2 -1
  671. package/dist/store/capture-write.js +2 -1
  672. package/dist/store/card-detail.d.ts +4 -4
  673. package/dist/store/card-detail.js +15 -8
  674. package/dist/store/cards.d.ts +24 -10
  675. package/dist/store/cards.js +93 -60
  676. package/dist/store/compaction-caller.d.ts +2 -1
  677. package/dist/store/compaction-caller.js +2 -1
  678. package/dist/store/compactions-record.d.ts +14 -8
  679. package/dist/store/compactions-record.js +95 -32
  680. package/dist/store/compactions.js +35 -15
  681. package/dist/store/conflicts.d.ts +9 -4
  682. package/dist/store/conflicts.js +100 -45
  683. package/dist/store/connectors/dlq.d.ts +17 -5
  684. package/dist/store/connectors/dlq.js +56 -5
  685. package/dist/store/connectors/event-log.d.ts +111 -2
  686. package/dist/store/connectors/event-log.js +2 -1
  687. package/dist/store/connectors/github.d.ts +6 -3
  688. package/dist/store/connectors/github.js +24 -40
  689. package/dist/store/connectors/slack.d.ts +2 -1
  690. package/dist/store/connectors/slack.js +25 -37
  691. package/dist/store/dashboard-reads.d.ts +7 -3
  692. package/dist/store/dashboard-reads.js +32 -11
  693. package/dist/store/delete-and-batch.d.ts +17 -11
  694. package/dist/store/delete-and-batch.js +67 -26
  695. package/dist/store/delivery-recorder.d.ts +8 -5
  696. package/dist/store/delivery-recorder.js +70 -32
  697. package/dist/store/descendant-page.d.ts +2 -1
  698. package/dist/store/descendant-page.js +24 -9
  699. package/dist/store/diagnostics.d.ts +2 -1
  700. package/dist/store/diagnostics.js +2 -1
  701. package/dist/store/doctor-reads.d.ts +2 -1
  702. package/dist/store/doctor-reads.js +13 -5
  703. package/dist/store/dormant.d.ts +19 -11
  704. package/dist/store/dormant.js +40 -18
  705. package/dist/store/embeddings/index.d.ts +13 -9
  706. package/dist/store/embeddings/index.js +19 -12
  707. package/dist/store/entry-reads.d.ts +49 -20
  708. package/dist/store/entry-reads.js +181 -66
  709. package/dist/store/entry-row.d.ts +10 -6
  710. package/dist/store/entry-row.js +17 -12
  711. package/dist/store/entry-writes.d.ts +22 -10
  712. package/dist/store/entry-writes.js +41 -14
  713. package/dist/store/failure-log-at.js +1 -1
  714. package/dist/store/failure-log.d.ts +4 -2
  715. package/dist/store/failure-log.js +13 -6
  716. package/dist/store/gated-write.d.ts +3 -3
  717. package/dist/store/gated-write.js +3 -3
  718. package/dist/store/goals.d.ts +5 -4
  719. package/dist/store/goals.js +8 -10
  720. package/dist/store/graph-apply.d.ts +21 -0
  721. package/dist/{graph/write.js → store/graph-apply.js} +31 -11
  722. package/dist/store/graph-queue.d.ts +9 -6
  723. package/dist/store/graph-queue.js +15 -10
  724. package/dist/store/graph-reads.d.ts +16 -11
  725. package/dist/store/graph-reads.js +24 -15
  726. package/dist/store/graph-rows.d.ts +41 -3
  727. package/dist/store/graph-rows.js +10 -7
  728. package/dist/store/graph-view-rows.js +14 -7
  729. package/dist/store/graph-writes.d.ts +16 -10
  730. package/dist/store/graph-writes.js +59 -36
  731. package/dist/store/handoffs.d.ts +4 -4
  732. package/dist/store/handoffs.js +40 -19
  733. package/dist/store/index-and-stats.d.ts +2 -2
  734. package/dist/store/index-and-stats.js +6 -5
  735. package/dist/store/index.d.ts +3 -1
  736. package/dist/store/index.js +1 -0
  737. package/dist/store/key-audit.d.ts +2 -1
  738. package/dist/store/key-audit.js +2 -1
  739. package/dist/store/key-writes.d.ts +2 -1
  740. package/dist/store/key-writes.js +9 -2
  741. package/dist/store/ledger-turn.d.ts +4 -1
  742. package/dist/store/ledger-turn.js +7 -2
  743. package/dist/store/mirrors.d.ts +11 -4
  744. package/dist/store/mirrors.js +88 -16
  745. package/dist/store/narrow.d.ts +6 -0
  746. package/dist/store/narrow.js +11 -0
  747. package/dist/store/open.d.ts +4 -2
  748. package/dist/store/open.js +18 -9
  749. package/dist/store/pilot-arm.d.ts +2 -1
  750. package/dist/store/pilot-arm.js +18 -6
  751. package/dist/store/planning-fallacy-evidence.d.ts +2 -2
  752. package/dist/store/planning-fallacy-evidence.js +8 -5
  753. package/dist/store/port/agent-import.d.ts +62 -0
  754. package/dist/store/port/agent-import.js +2 -0
  755. package/dist/store/port/consolidation.d.ts +129 -0
  756. package/dist/store/port/consolidation.js +2 -0
  757. package/dist/store/port/learning.d.ts +19 -0
  758. package/dist/store/port/learning.js +2 -0
  759. package/dist/store/port/local-files.d.ts +18 -0
  760. package/dist/store/port/local-files.js +2 -0
  761. package/dist/store/port/promotion.d.ts +20 -0
  762. package/dist/store/port/promotion.js +3 -0
  763. package/dist/store/port-groups.d.ts +160 -0
  764. package/dist/store/port-groups.js +2 -0
  765. package/dist/store/port.d.ts +215 -229
  766. package/dist/store/port.js +3 -9
  767. package/dist/store/predictions.d.ts +14 -10
  768. package/dist/store/predictions.js +37 -17
  769. package/dist/store/project-tags.d.ts +4 -1
  770. package/dist/store/project-tags.js +16 -5
  771. package/dist/store/quality-repair.d.ts +8 -4
  772. package/dist/store/quality-repair.js +53 -20
  773. package/dist/store/quarantine.d.ts +1 -0
  774. package/dist/store/quarantine.js +23 -9
  775. package/dist/store/raw-archive.d.ts +5 -4
  776. package/dist/store/raw-archive.js +11 -10
  777. package/dist/store/recall-trace.d.ts +22 -17
  778. package/dist/store/recall-trace.js +126 -63
  779. package/dist/store/rejected-values.d.ts +15 -10
  780. package/dist/store/rejected-values.js +33 -12
  781. package/dist/store/rejection.d.ts +12 -11
  782. package/dist/store/rejection.js +18 -19
  783. package/dist/store/report-reads.d.ts +2 -1
  784. package/dist/store/report-reads.js +2 -1
  785. package/dist/store/rows.d.ts +7 -5
  786. package/dist/store/rows.js +18 -11
  787. package/dist/store/rule-sql.d.ts +6 -4
  788. package/dist/store/rule-sql.js +16 -9
  789. package/dist/store/search-rows.d.ts +14 -9
  790. package/dist/store/search-rows.js +48 -23
  791. package/dist/store/sessions.d.ts +12 -10
  792. package/dist/store/sessions.js +40 -21
  793. package/dist/store/set-aside.d.ts +2 -2
  794. package/dist/store/set-aside.js +18 -5
  795. package/dist/store/sqlite/agent-import.d.ts +3 -0
  796. package/dist/store/sqlite/agent-import.js +77 -0
  797. package/dist/store/sqlite/cards-group.d.ts +6 -0
  798. package/dist/store/sqlite/cards-group.js +37 -0
  799. package/dist/store/sqlite/conflicts-group.d.ts +6 -0
  800. package/dist/store/sqlite/conflicts-group.js +18 -0
  801. package/dist/store/sqlite/connector-events-group.d.ts +2 -1
  802. package/dist/store/sqlite/connector-events-group.js +17 -6
  803. package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
  804. package/dist/store/sqlite/connector-writes-group.js +9 -4
  805. package/dist/store/sqlite/consolidation-group.d.ts +4 -0
  806. package/dist/store/sqlite/consolidation-group.js +64 -0
  807. package/dist/store/sqlite/dag-reads-group.js +1 -1
  808. package/dist/store/sqlite/dormant-group.d.ts +6 -0
  809. package/dist/store/sqlite/dormant-group.js +29 -0
  810. package/dist/store/sqlite/entry-writes-group.d.ts +6 -3
  811. package/dist/store/sqlite/entry-writes-group.js +37 -14
  812. package/dist/store/sqlite/error-codec.d.ts +4 -2
  813. package/dist/store/sqlite/error-codec.js +32 -10
  814. package/dist/store/sqlite/executor-counts.js +2 -1
  815. package/dist/store/sqlite/executor.d.ts +8 -3
  816. package/dist/store/sqlite/executor.js +56 -18
  817. package/dist/store/sqlite/global-promote.d.ts +5 -0
  818. package/dist/store/sqlite/global-promote.js +48 -0
  819. package/dist/store/sqlite/goals-group.d.ts +6 -0
  820. package/dist/store/sqlite/goals-group.js +23 -0
  821. package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
  822. package/dist/store/sqlite/graph-reads-group.js +2 -1
  823. package/dist/store/sqlite/held-connection.d.ts +7 -1
  824. package/dist/store/sqlite/held-connection.js +34 -7
  825. package/dist/store/sqlite/last-recall-group.d.ts +4 -2
  826. package/dist/store/sqlite/last-recall-group.js +9 -4
  827. package/dist/store/sqlite/learning-group.d.ts +4 -0
  828. package/dist/store/sqlite/learning-group.js +17 -0
  829. package/dist/store/sqlite/maintenance-groups.js +2 -1
  830. package/dist/store/sqlite/object-rows.d.ts +6 -3
  831. package/dist/store/sqlite/object-rows.js +34 -5
  832. package/dist/store/sqlite/objects-group.d.ts +5 -4
  833. package/dist/store/sqlite/objects-group.js +84 -33
  834. package/dist/store/sqlite/predictions-group.d.ts +2 -1
  835. package/dist/store/sqlite/predictions-group.js +4 -2
  836. package/dist/store/sqlite/promotion-group.d.ts +3 -0
  837. package/dist/store/sqlite/promotion-group.js +10 -0
  838. package/dist/store/sqlite/quarantine-group.d.ts +2 -1
  839. package/dist/store/sqlite/quarantine-group.js +4 -2
  840. package/dist/store/sqlite/reports-group.d.ts +6 -0
  841. package/dist/store/sqlite/reports-group.js +33 -0
  842. package/dist/store/sqlite/request-scope.d.ts +6 -0
  843. package/dist/store/sqlite/request-scope.js +18 -0
  844. package/dist/store/sqlite/sessions-group.d.ts +6 -0
  845. package/dist/store/sqlite/sessions-group.js +46 -0
  846. package/dist/store/sqlite/store.d.ts +22 -11
  847. package/dist/store/sqlite/store.js +84 -11
  848. package/dist/store/sqlite/vector-pack.js +2 -1
  849. package/dist/store/sqlite/vector-reads-group.js +2 -1
  850. package/dist/store/sqlite/worker-jobs.d.ts +2 -1
  851. package/dist/store/sqlite/worker-jobs.js +19 -7
  852. package/dist/store/sqlite/worker-ops.d.ts +10 -5
  853. package/dist/store/sqlite/worker-ops.js +6 -3
  854. package/dist/store/sqlite/worker-store.d.ts +4 -3
  855. package/dist/store/sqlite/worker-store.js +24 -14
  856. package/dist/store/summaries.d.ts +19 -12
  857. package/dist/store/summaries.js +36 -21
  858. package/dist/store/summary-dirty.d.ts +2 -1
  859. package/dist/store/summary-dirty.js +2 -1
  860. package/dist/store/tenant.d.ts +3 -2
  861. package/dist/store/tenant.js +5 -4
  862. package/dist/store/token-ledger-rows.js +6 -3
  863. package/dist/store/token-ledger.d.ts +19 -13
  864. package/dist/store/token-ledger.js +27 -14
  865. package/dist/store/tombstone-checks.d.ts +4 -1
  866. package/dist/store/tombstone-checks.js +10 -1
  867. package/dist/store/usage-reports.js +2 -1
  868. package/dist/store/vector-index.d.ts +8 -5
  869. package/dist/store/vector-index.js +24 -10
  870. package/dist/store/working-memory.d.ts +6 -4
  871. package/dist/store/working-memory.js +14 -9
  872. package/dist/support-bundle.js +10 -5
  873. package/dist/trust/quarantine.d.ts +1 -2
  874. package/dist/trust/quarantine.js +1 -5
  875. package/dist/trust/reject-flow.d.ts +12 -3
  876. package/dist/trust/reject-flow.js +12 -4
  877. package/dist/util/anthropic-messages.d.ts +4 -1
  878. package/dist/util/anthropic-messages.js +14 -5
  879. package/dist/util/atomic-write.d.ts +4 -2
  880. package/dist/util/atomic-write.js +25 -14
  881. package/dist/util/compaction-items.d.ts +4 -1
  882. package/dist/util/compaction-items.js +8 -2
  883. package/dist/util/crash-handlers.d.ts +7 -2
  884. package/dist/util/crash-handlers.js +13 -4
  885. package/dist/util/env.d.ts +16 -4
  886. package/dist/util/env.js +78 -25
  887. package/dist/util/home-path.js +12 -6
  888. package/dist/util/hook-payload.d.ts +3 -1
  889. package/dist/util/hook-payload.js +3 -1
  890. package/dist/util/http-retry.d.ts +12 -6
  891. package/dist/util/http-retry.js +16 -6
  892. package/dist/util/http-util.d.ts +20 -5
  893. package/dist/util/http-util.js +28 -9
  894. package/dist/util/json.d.ts +4 -1
  895. package/dist/util/json.js +4 -1
  896. package/dist/util/keyset.js +2 -1
  897. package/dist/util/limits.js +4 -2
  898. package/dist/util/log.d.ts +13 -5
  899. package/dist/util/log.js +29 -6
  900. package/dist/util/net.d.ts +5 -0
  901. package/dist/util/net.js +19 -0
  902. package/dist/util/real-path.d.ts +2 -1
  903. package/dist/util/real-path.js +4 -3
  904. package/dist/util/request-scope.d.ts +11 -3
  905. package/dist/util/request-scope.js +13 -4
  906. package/dist/util/same-text.d.ts +10 -3
  907. package/dist/util/same-text.js +10 -3
  908. package/dist/util/secret-detect.d.ts +24 -7
  909. package/dist/util/secret-detect.js +49 -14
  910. package/dist/util/spawn-argv.d.ts +3 -1
  911. package/dist/util/spawn-argv.js +13 -4
  912. package/dist/util/sqlite-blocked.d.ts +15 -4
  913. package/dist/util/sqlite-blocked.js +19 -6
  914. package/dist/util/stored-json.d.ts +4 -1
  915. package/dist/util/stored-json.js +6 -2
  916. package/dist/util/stream-tee.d.ts +2 -1
  917. package/dist/util/stream-tee.js +8 -5
  918. package/dist/util/transcript-tail.d.ts +4 -1
  919. package/dist/util/transcript-tail.js +4 -1
  920. package/dist/util/version.d.ts +8 -3
  921. package/dist/util/version.js +8 -3
  922. package/dist/util/write-budget.d.ts +7 -2
  923. package/dist/util/write-budget.js +5 -2
  924. package/dist/util/yaml.d.ts +4 -1
  925. package/dist/util/yaml.js +4 -1
  926. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  927. package/extensions/openclaw-plugin/package.json +1 -1
  928. package/openclaw.plugin.json +1 -1
  929. package/package.json +2 -1
  930. package/scripts/postinstall.cjs +3 -1
  931. package/dist/api/cards.d.ts +0 -42
  932. package/dist/api/conflicts.d.ts +0 -28
  933. package/dist/api/conflicts.js +0 -61
  934. package/dist/api/dormant.d.ts +0 -14
  935. package/dist/api/dormant.js +0 -58
  936. package/dist/api/goals.d.ts +0 -18
  937. package/dist/api/graph.d.ts +0 -8
  938. package/dist/api/graph.js +0 -8
  939. package/dist/api/learn.js +0 -125
  940. package/dist/api/memories.d.ts +0 -25
  941. package/dist/api/objects.d.ts +0 -9
  942. package/dist/api/outcome.d.ts +0 -19
  943. package/dist/api/predictions.d.ts +0 -11
  944. package/dist/api/promote.d.ts +0 -36
  945. package/dist/api/recall-core.d.ts +0 -4
  946. package/dist/api/recall-core.js +0 -125
  947. package/dist/api/recall-finish.d.ts +0 -53
  948. package/dist/api/recall-finish.js +0 -30
  949. package/dist/api/recall-history.d.ts +0 -64
  950. package/dist/api/recall-history.js +0 -159
  951. package/dist/api/recall-record.d.ts +0 -43
  952. package/dist/api/recall-record.js +0 -78
  953. package/dist/api/recall-request.js +0 -121
  954. package/dist/api/recall.d.ts +0 -6
  955. package/dist/api/refine.d.ts +0 -7
  956. package/dist/api/refine.js +0 -10
  957. package/dist/api/session-owners.d.ts +0 -4
  958. package/dist/api/session-owners.js +0 -17
  959. package/dist/api/sleep-run.d.ts +0 -26
  960. package/dist/api/sleep.js +0 -11
  961. package/dist/graph/write.d.ts +0 -14
  962. package/dist/store/sqlite/busy.d.ts +0 -3
  963. package/dist/store/sqlite/busy.js +0 -8
  964. package/dist/store/sqlite/local.d.ts +0 -4
  965. package/dist/store/sqlite/local.js +0 -8
@@ -4,19 +4,24 @@ import { isStringValue } from '../core/capture-contract.js';
4
4
  import { REPLAY_AFTER_MS } from '../core/compaction-timing.js';
5
5
  import { SPOOL_PROBLEM, spoolCounts } from '../capture/compaction-spool.js';
6
6
  import { defaultSleepLogPath } from '../hooks/shared.js';
7
- import { errorMessage, log } from '../util/log.js';
7
+ import { errorMessage, log, errorFields } from '../util/log.js';
8
8
  import { truncateCodePointSafe } from '../util/transcript-tail.js';
9
9
  import { printError } from './output.js';
10
10
  import { hookStoreRoot } from './hook-runtime.js';
11
11
  const SLEEP_FAILED = '[hippo] sleep failed: ';
12
12
  const FAILURE_CHARS = 120;
13
- /** The line the user sees when the last sleep failed, a spool step hit an unexpected error, or the spool holds `.bad` files; null when none did. */
13
+ /**
14
+ * The line the user sees when the last sleep failed, a spool step hit an unexpected error, or the spool holds `.bad`
15
+ * files; null when none did.
16
+ */
14
17
  export function sleepProblems(logText, bad) {
15
18
  const lines = logText.split(/\r?\n/);
16
19
  const failed = lines.find((line) => line.startsWith(SLEEP_FAILED));
17
20
  const errors = lines.filter((line) => line.includes(SPOOL_PROBLEM)).length;
18
21
  const parts = [
19
- failed === undefined ? '' : `the last sleep failed (${truncateCodePointSafe(failed.slice(SLEEP_FAILED.length).trim(), FAILURE_CHARS)})`,
22
+ failed === undefined
23
+ ? ''
24
+ : `the last sleep failed (${truncateCodePointSafe(failed.slice(SLEEP_FAILED.length).trim(), FAILURE_CHARS)})`,
20
25
  errors === 0 ? '' : `${errors} error${errors === 1 ? '' : 's'} while saving waiting compaction summaries`,
21
26
  bad === 0 ? '' : `${bad} compaction ${bad === 1 ? 'summary' : 'summaries'} set aside as .bad`,
22
27
  ].filter((part) => part !== '');
@@ -63,7 +68,7 @@ export function cmdLastSleep(hippoRoot, flags, out = process.stdout.isTTY ? 'ter
63
68
  fs.unlinkSync(logPath);
64
69
  }
65
70
  catch (err) {
66
- log.debug(`last-sleep log not removed, it shows again next session: ${errorMessage(err)}`);
71
+ log.debug(`last-sleep log not removed, it shows again next session: ${errorMessage(err)}`, errorFields(err));
67
72
  }
68
73
  }
69
74
  }
@@ -1,6 +1,6 @@
1
1
  import { type EmbeddingProvider } from '../embeddings/provider.js';
2
2
  import { type CommandContext } from './flag-values.js';
3
3
  export declare function handleRefine({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
4
- export declare function handleDedup({ hippoRoot, tenantId, flags }: CommandContext): void;
4
+ export declare function handleDedup({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
5
5
  export declare function handleEmbed({ hippoRoot, tenantId, flags }: CommandContext, given?: EmbeddingProvider): Promise<void>;
6
6
  //# sourceMappingURL=maintenance.d.ts.map
@@ -3,15 +3,15 @@ import { envAnthropicApiKey } from '../util/env.js';
3
3
  import { deduplicateStore } from '../consolidate/dedupe.js';
4
4
  import { resolveEmbeddingProvider } from '../embeddings/provider.js';
5
5
  import { embedCoverage, embedMissingMemories, resetPhysicsFromVectors, storedVectorCount } from '../api/embeddings.js';
6
- import { countAllMemories } from '../api/memories.js';
7
- import { cliApiContext } from './api-context.js';
6
+ import { countAllMemories } from '../api/memories/memories.js';
7
+ import { cliApiContext, cliLocalFiles } from './api-context.js';
8
8
  import { loadConfig } from '../core/config.js';
9
9
  import { refineStore } from './refine-llm.js';
10
10
  import { printError } from './output.js';
11
- import { boolFlag, numberFlag } from './flag-values.js';
11
+ import { boolFlag, numberFlag, stringFlagOrExit } from './flag-values.js';
12
12
  import { requireInit, resolveAuthRoot } from './shared.js';
13
13
  import { errorMessage } from '../util/log.js';
14
- import { CliExit } from './exit.js';
14
+ import { fail } from './exit.js';
15
15
  const MAX_FAILED_SHOWN = 5;
16
16
  const MAX_PAIRS_SHOWN = 15;
17
17
  const PAIR_PREVIEW_CHARS = 90;
@@ -19,13 +19,12 @@ export async function handleRefine({ hippoRoot, tenantId, flags }) {
19
19
  requireInit(hippoRoot);
20
20
  const apiKey = envAnthropicApiKey();
21
21
  if (!apiKey) {
22
- printError('hippo refine needs ANTHROPIC_API_KEY in the environment.');
23
- throw new CliExit(1);
22
+ fail('hippo refine needs ANTHROPIC_API_KEY in the environment.');
24
23
  }
25
24
  const dryRun = boolFlag(flags, 'dry-run');
26
25
  const all = boolFlag(flags, 'all');
27
26
  const limit = numberFlag(flags, 'limit');
28
- const model = flags['model'] ? String(flags['model']) : undefined;
27
+ const model = stringFlagOrExit(flags, 'model') || undefined;
29
28
  const asJson = boolFlag(flags, 'json');
30
29
  const result = await refineStore(hippoRoot, {
31
30
  apiKey,
@@ -50,15 +49,15 @@ export async function handleRefine({ hippoRoot, tenantId, flags }) {
50
49
  }
51
50
  }
52
51
  }
53
- export function handleDedup({ hippoRoot, tenantId, flags }) {
52
+ export async function handleDedup({ hippoRoot, tenantId, flags }) {
54
53
  requireInit(hippoRoot);
55
54
  const dryRun = boolFlag(flags, 'dry-run');
56
55
  if (flags['threshold'] !== undefined) {
57
56
  printError('hippo dedup: --threshold is ignored; a duplicate is the same text apart from spacing.');
58
57
  }
59
- const total = countAllMemories(cliApiContext(hippoRoot, tenantId));
58
+ const total = await countAllMemories(cliApiContext(hippoRoot, tenantId));
60
59
  console.log(`Scanning ${total} memories for duplicates (same text apart from spacing)${dryRun ? ' (dry run)' : ''}...\n`);
61
- const result = deduplicateStore(hippoRoot, { dryRun });
60
+ const result = deduplicateStore(cliLocalFiles(hippoRoot).consolidation, { dryRun });
62
61
  if (result.removed === 0) {
63
62
  console.log('No duplicates found.');
64
63
  return;
@@ -105,8 +104,8 @@ export async function handleEmbed({ hippoRoot, tenantId, flags }, given) {
105
104
  // so it heals pre-1.27.0 global stores from a directory with no local .hippo.
106
105
  const root = resolveAuthRoot(hippoRoot, flags);
107
106
  const ctx = cliApiContext(root, tenantId);
108
- // --status and --reset-physics only read cached state, so they must work with no provider key (e.g. removed after an earlier embed);
109
- // the provider-availability gate is deferred to the embed path.
107
+ // --status and --reset-physics only read cached state, so they must work with no provider key (e.g. removed after an
108
+ // earlier embed); the provider-availability gate is deferred to the embed path.
110
109
  if (flags['reset-physics']) {
111
110
  resetPhysics(ctx);
112
111
  return;
@@ -1,2 +1,2 @@
1
- export declare const handleCustomerNote: (ctx: import("./flag-values.js").CommandContext) => void;
1
+ export declare const handleCustomerNote: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
2
2
  //# sourceMappingURL=notes.d.ts.map
package/dist/cli/notes.js CHANGED
@@ -7,7 +7,7 @@ function printNoteRow(n) {
7
7
  if (n.changeSummary)
8
8
  console.log(` change: ${n.changeSummary}`);
9
9
  }
10
- const noteKind = (hippoRoot, tenantId) => ({
10
+ const noteKind = (objects, hippoRoot, tenantId) => ({
11
11
  names: { cmd: 'note', noun: 'Customer note', idLabel: 'note' },
12
12
  plural: 'customer notes',
13
13
  states: customerNotesModule.VALID_NOTE_STATES,
@@ -22,13 +22,16 @@ const noteKind = (hippoRoot, tenantId) => ({
22
22
  bodyRequired: '--text "<note>"',
23
23
  body: (flags) => requiredText(flags, 'text'),
24
24
  keyOf: (n) => n.customer,
25
- save: (customer, note, extraTags, from) => customerNotesModule.saveCustomerNote(hippoRoot, tenantId, {
25
+ save: (customer, note, extraTags, from) => customerNotesModule.saveCustomerNote(objects, hippoRoot, tenantId, {
26
26
  customer, note, extraTags, changeSummary: from?.changeSummary, supersedesNoteId: from?.id,
27
27
  }),
28
28
  recorded: (n) => `Customer note recorded: #${n.id} (v${n.version}) for customer "${n.customer}"`,
29
- list: (opts, flags) => customerNotesModule.loadCustomerNotes(hippoRoot, tenantId, { ...opts, customer: stringFlag(flags, 'customer')?.trim() || undefined }),
30
- loadById: (id) => customerNotesModule.loadCustomerNoteById(hippoRoot, tenantId, id),
31
- close: (id) => customerNotesModule.closeCustomerNote(hippoRoot, tenantId, id),
29
+ list: (opts, flags) => customerNotesModule.loadCustomerNotes(objects, tenantId, {
30
+ ...opts,
31
+ customer: stringFlag(flags, 'customer')?.trim() || undefined,
32
+ }),
33
+ loadById: (id) => customerNotesModule.loadCustomerNoteById(objects, tenantId, id),
34
+ close: (id) => customerNotesModule.closeCustomerNote(objects, tenantId, id),
32
35
  printRow: printNoteRow,
33
36
  printDetail: (n) => {
34
37
  console.log(` customer: ${n.customer}`);
@@ -9,10 +9,10 @@ export interface ObjectListSpec<O, S extends string> {
9
9
  readonly load: (opts: {
10
10
  status?: S;
11
11
  limit: number;
12
- }) => readonly O[];
12
+ }) => Promise<readonly O[]>;
13
13
  readonly printRow: (o: O) => void;
14
14
  }
15
- export declare function listObjects<O, S extends string>(flags: CliFlags, spec: ObjectListSpec<O, S>): void;
15
+ export declare function listObjects<O, S extends string>(flags: CliFlags, spec: ObjectListSpec<O, S>): Promise<void>;
16
16
  /** The `<id>` after the subcommand; prints `usage` and exits 1 when it is missing. */
17
17
  export declare function idArgOrExit(args: string[], usage: string, label: string): number;
18
18
  export declare function foundOrExit<O>(found: O | null | undefined, noun: string, id: number): O;
@@ -23,9 +23,9 @@ export interface ObjectNames {
23
23
  readonly idLabel: string;
24
24
  }
25
25
  /** `hippo <cmd> close <id>` for a kind whose close call returns the closed row. */
26
- export declare function closeObject(args: string[], names: ObjectNames, close: (id: number) => {
26
+ export declare function closeObject(args: string[], names: ObjectNames, close: (id: number) => Promise<{
27
27
  id: number;
28
- }): void;
28
+ }>): Promise<void>;
29
29
  interface LifecycleTail {
30
30
  readonly changeSummary?: string | null;
31
31
  readonly supersededBy: number | null;
@@ -1,13 +1,12 @@
1
- // The status, list, id and not-found paths the typed-object verbs (process, policy, skill, brief, note, decide, incident, predict) share.
2
- import { printError } from './output.js';
1
+ // The status, list, id and not-found paths the typed-object verbs (process, policy, skill, brief, note, decide,
2
+ // incident, predict) share.
3
3
  import { parseListLimit, parsePositiveId, stringFlag } from './flag-values.js';
4
- import { CliExit } from './exit.js';
4
+ import { fail } from './exit.js';
5
5
  /** The member of `states` named by `status`, or exit 1 with the message that lists every allowed value. */
6
6
  export function requireStatus(status, states) {
7
7
  const found = [...states].find((s) => s === status);
8
8
  if (found === undefined) {
9
- printError(`Invalid --status: "${status}". Must be one of: ${[...states, 'all'].join(' | ')}.`);
10
- throw new CliExit(1);
9
+ fail(`Invalid --status: "${status}". Must be one of: ${[...states, 'all'].join(' | ')}.`);
11
10
  }
12
11
  return found;
13
12
  }
@@ -16,10 +15,10 @@ export function statusFilter(flags, states) {
16
15
  const status = stringFlag(flags, 'status')?.trim() ?? 'all';
17
16
  return status === 'all' ? undefined : requireStatus(status, states);
18
17
  }
19
- export function listObjects(flags, spec) {
18
+ export async function listObjects(flags, spec) {
20
19
  const limit = parseListLimit(flags);
21
20
  const status = statusFilter(flags, spec.states);
22
- const results = spec.load(status === undefined ? { limit } : { status, limit });
21
+ const results = await spec.load(status === undefined ? { limit } : { status, limit });
23
22
  if (results.length === 0) {
24
23
  console.log(`No ${spec.plural}.`);
25
24
  return;
@@ -32,22 +31,20 @@ export function listObjects(flags, spec) {
32
31
  export function idArgOrExit(args, usage, label) {
33
32
  const idRaw = args[1];
34
33
  if (!idRaw) {
35
- printError(usage);
36
- throw new CliExit(1);
34
+ fail(usage);
37
35
  }
38
36
  return parsePositiveId(idRaw, label);
39
37
  }
40
38
  export function foundOrExit(found, noun, id) {
41
39
  if (!found) {
42
- printError(`${noun} ${id} not found.`);
43
- throw new CliExit(1);
40
+ fail(`${noun} ${id} not found.`);
44
41
  }
45
42
  return found;
46
43
  }
47
44
  /** `hippo <cmd> close <id>` for a kind whose close call returns the closed row. */
48
- export function closeObject(args, names, close) {
45
+ export async function closeObject(args, names, close) {
49
46
  const id = idArgOrExit(args, `Usage: hippo ${names.cmd} close <id>`, names.idLabel);
50
- console.log(`${names.noun} #${close(id).id} closed.`);
47
+ console.log(`${names.noun} #${(await close(id)).id} closed.`);
51
48
  }
52
49
  /** The detail lines every `get` ends with. */
53
50
  export function printLifecycleTail(o) {
@@ -1,8 +1,17 @@
1
1
  // Best-effort browser launch for CLI verbs that write a file.
2
2
  import { spawn } from 'child_process';
3
- import { errorMessage, log } from '../util/log.js';
3
+ import { errorMessage, log, errorFields } from '../util/log.js';
4
+ // cmd.exe re-reads `start`'s argument as a command line, so one of these in the file name would end it and run the
5
+ // rest.
6
+ const CMD_METACHARS = /[&|<>^%!"\r\n]/;
4
7
  /** `launch` is the process starter; tests hand in a stand-in. */
5
8
  export function openInBrowser(out, launch = spawn) {
9
+ if (process.platform === 'win32' && CMD_METACHARS.test(out)) {
10
+ log.warn(`graph view: not opening ${out} in the browser, since cmd.exe would run part of its name as a command; open ` +
11
+ `the file by hand`);
12
+ process.exitCode = 1;
13
+ return;
14
+ }
6
15
  // Best-effort browser launch; never fail the command if it doesn't work.
7
16
  try {
8
17
  const [cmd, cmdArgs] = process.platform === 'win32'
@@ -20,7 +29,7 @@ export function openInBrowser(out, launch = spawn) {
20
29
  }
21
30
  catch (err) {
22
31
  // The file is written and its path printed above, so a browser that will not start costs nothing.
23
- log.debug(`browser not opened: ${errorMessage(err)}`);
32
+ log.debug(`browser not opened: ${errorMessage(err)}`, errorFields(err));
24
33
  }
25
34
  }
26
35
  //# sourceMappingURL=open-browser.js.map
@@ -1,4 +1,4 @@
1
- export declare const handleProcess: (ctx: import("./flag-values.js").CommandContext) => void;
2
- export declare const handlePolicy: (ctx: import("./flag-values.js").CommandContext) => void;
3
- export declare const handleSkill: (ctx: import("./flag-values.js").CommandContext) => void;
1
+ export declare const handleProcess: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
2
+ export declare const handlePolicy: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
3
+ export declare const handleSkill: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
4
4
  //# sourceMappingURL=playbooks.d.ts.map
@@ -2,10 +2,9 @@
2
2
  import * as processesModule from '../objects/processes.js';
3
3
  import * as policiesModule from '../objects/policies.js';
4
4
  import * as skillsModule from '../objects/skills.js';
5
- import { printError } from './output.js';
6
5
  import { isStringFlag, nonEmptyStringFlag } from './flag-values.js';
7
6
  import { errorMessage } from '../util/log.js';
8
- import { CliExit } from './exit.js';
7
+ import { fail } from './exit.js';
9
8
  import { requiredText, versionedVerbs } from './versioned-verbs.js';
10
9
  // --step is a repeatable flag (collected into an array by parseArgs). A single
11
10
  // --step yields a string; normalize both to string[]. A value-less --step errors.
@@ -15,8 +14,7 @@ function collectProcessSteps(stepRaw) {
15
14
  if (isStringFlag(stepRaw))
16
15
  return [stepRaw];
17
16
  if (stepRaw === true) {
18
- printError('--step requires a value, e.g. hippo process new "<name>" --step "do X".');
19
- throw new CliExit(1);
17
+ fail('--step requires a value, e.g. hippo process new "<name>" --step "do X".');
20
18
  }
21
19
  return [];
22
20
  }
@@ -26,7 +24,7 @@ function printProcessRow(proc) {
26
24
  if (proc.changeSummary)
27
25
  console.log(` change: ${proc.changeSummary}`);
28
26
  }
29
- const processKind = (hippoRoot, tenantId) => ({
27
+ const processKind = (objects, hippoRoot, tenantId) => ({
30
28
  names: { cmd: 'process', noun: 'Process', idLabel: 'process' },
31
29
  plural: 'processes',
32
30
  states: processesModule.VALID_PROCESS_STATES,
@@ -47,13 +45,17 @@ const processKind = (hippoRoot, tenantId) => ({
47
45
  return { steps, description: nonEmptyStringFlag(flags, 'description') };
48
46
  },
49
47
  keyOf: (proc) => proc.processName,
50
- save: (processName, body, extraTags, from) => processesModule.saveProcess(hippoRoot, tenantId, {
51
- processName, ...body, extraTags, changeSummary: from?.changeSummary, supersedesProcessId: from?.id,
48
+ save: (processName, body, extraTags, from) => processesModule.saveProcess(objects, hippoRoot, tenantId, {
49
+ processName,
50
+ ...body,
51
+ extraTags,
52
+ changeSummary: from?.changeSummary,
53
+ supersedesProcessId: from?.id,
52
54
  }),
53
55
  recorded: (proc) => `Process recorded: #${proc.id} (v${proc.version}, ${proc.steps.length} steps)`,
54
- list: (opts) => processesModule.loadProcesses(hippoRoot, tenantId, opts),
55
- loadById: (id) => processesModule.loadProcessById(hippoRoot, tenantId, id),
56
- close: (id) => processesModule.closeProcess(hippoRoot, tenantId, id),
56
+ list: (opts) => processesModule.loadProcesses(objects, tenantId, opts),
57
+ loadById: (id) => processesModule.loadProcessById(objects, tenantId, id),
58
+ close: (id) => processesModule.closeProcess(objects, tenantId, id),
57
59
  printRow: printProcessRow,
58
60
  printDetail: (proc) => {
59
61
  console.log(` name: ${proc.processName}`);
@@ -75,20 +77,18 @@ function printPolicyRow(p) {
75
77
  if (p.changeSummary)
76
78
  console.log(` change: ${p.changeSummary}`);
77
79
  }
78
- function policyAsOf(hippoRoot, tenantId, args, flags) {
80
+ async function policyAsOf(objects, tenantId, args, flags) {
79
81
  const dateRaw = args[1];
80
82
  if (!dateRaw) {
81
- printError('Usage: hippo policy asof <iso-date> [--name "<policy>"]');
82
- throw new CliExit(1);
83
+ fail('Usage: hippo policy asof <iso-date> [--name "<policy>"]');
83
84
  }
84
85
  const name = nonEmptyStringFlag(flags, 'name');
85
86
  let results;
86
87
  try {
87
- results = policiesModule.loadPoliciesAsOf(hippoRoot, tenantId, dateRaw, { name });
88
+ results = await policiesModule.policiesAsOf(objects, tenantId, dateRaw, { name });
88
89
  }
89
90
  catch (e) {
90
- printError(errorMessage(e));
91
- throw new CliExit(1);
91
+ fail(errorMessage(e));
92
92
  }
93
93
  if (results.length === 0) {
94
94
  console.log(`No active policies in force at ${dateRaw}${name ? ` for "${name}"` : ''}.`);
@@ -98,7 +98,7 @@ function policyAsOf(hippoRoot, tenantId, args, flags) {
98
98
  for (const p of results)
99
99
  printPolicyRow(p);
100
100
  }
101
- const policyKind = (hippoRoot, tenantId) => ({
101
+ const policyKind = (objects, hippoRoot, tenantId) => ({
102
102
  names: { cmd: 'policy', noun: 'Policy', idLabel: 'policy' },
103
103
  plural: 'policies',
104
104
  states: policiesModule.VALID_POLICY_STATES,
@@ -119,13 +119,17 @@ const policyKind = (hippoRoot, tenantId) => ({
119
119
  return { policyText, validFrom: nonEmptyStringFlag(flags, 'from'), validTo: nonEmptyStringFlag(flags, 'to') };
120
120
  },
121
121
  keyOf: (p) => p.policyName,
122
- save: (policyName, body, extraTags, from) => policiesModule.savePolicy(hippoRoot, tenantId, {
123
- policyName, ...body, extraTags, changeSummary: from?.changeSummary, supersedesPolicyId: from?.id,
122
+ save: (policyName, body, extraTags, from) => policiesModule.savePolicy(objects, hippoRoot, tenantId, {
123
+ policyName,
124
+ ...body,
125
+ extraTags,
126
+ changeSummary: from?.changeSummary,
127
+ supersedesPolicyId: from?.id,
124
128
  }),
125
129
  recorded: (p) => `Policy recorded: #${p.id} (v${p.version}, effective ${policyRange(p)})`,
126
- list: (opts) => policiesModule.loadPolicies(hippoRoot, tenantId, opts),
127
- loadById: (id) => policiesModule.loadPolicyById(hippoRoot, tenantId, id),
128
- close: (id) => policiesModule.closePolicy(hippoRoot, tenantId, id),
130
+ list: (opts) => policiesModule.loadPolicies(objects, tenantId, opts),
131
+ loadById: (id) => policiesModule.loadPolicyById(objects, tenantId, id),
132
+ close: (id) => policiesModule.closePolicy(objects, tenantId, id),
129
133
  printRow: printPolicyRow,
130
134
  printDetail: (p) => {
131
135
  console.log(` name: ${p.policyName}`);
@@ -135,7 +139,7 @@ const policyKind = (hippoRoot, tenantId) => ({
135
139
  console.log(` valid_from: ${p.validFrom}`);
136
140
  console.log(` valid_to: ${p.validTo ?? '(open-ended)'}`);
137
141
  },
138
- extra: { sub: 'asof', run: (args, flags) => policyAsOf(hippoRoot, tenantId, args, flags) },
142
+ extra: { sub: 'asof', run: (args, flags) => policyAsOf(objects, tenantId, args, flags) },
139
143
  });
140
144
  export const handlePolicy = versionedVerbs(policyKind);
141
145
  function printSkillRow(s) {
@@ -145,15 +149,15 @@ function printSkillRow(s) {
145
149
  if (s.changeSummary)
146
150
  console.log(` change: ${s.changeSummary}`);
147
151
  }
148
- function skillExport(hippoRoot, tenantId) {
149
- const md = skillsModule.exportSkills(hippoRoot, tenantId);
152
+ async function skillExport(objects, tenantId) {
153
+ const md = await skillsModule.skillsMarkdown(objects, tenantId);
150
154
  if (!md) {
151
155
  console.log('No active skills.');
152
156
  return;
153
157
  }
154
158
  console.log(md);
155
159
  }
156
- const skillKind = (hippoRoot, tenantId) => ({
160
+ const skillKind = (objects, hippoRoot, tenantId) => ({
157
161
  names: { cmd: 'skill', noun: 'Skill', idLabel: 'skill' },
158
162
  plural: 'skills',
159
163
  states: skillsModule.VALID_SKILL_STATES,
@@ -174,13 +178,17 @@ const skillKind = (hippoRoot, tenantId) => ({
174
178
  return { instructions, trigger: nonEmptyStringFlag(flags, 'trigger') };
175
179
  },
176
180
  keyOf: (s) => s.skillName,
177
- save: (skillName, body, extraTags, from) => skillsModule.saveSkill(hippoRoot, tenantId, {
178
- skillName, ...body, extraTags, changeSummary: from?.changeSummary, supersedesSkillId: from?.id,
181
+ save: (skillName, body, extraTags, from) => skillsModule.saveSkill(objects, hippoRoot, tenantId, {
182
+ skillName,
183
+ ...body,
184
+ extraTags,
185
+ changeSummary: from?.changeSummary,
186
+ supersedesSkillId: from?.id,
179
187
  }),
180
188
  recorded: (s) => `Skill recorded: #${s.id} (v${s.version})`,
181
- list: (opts) => skillsModule.loadSkills(hippoRoot, tenantId, opts),
182
- loadById: (id) => skillsModule.loadSkillById(hippoRoot, tenantId, id),
183
- close: (id) => skillsModule.closeSkill(hippoRoot, tenantId, id),
189
+ list: (opts) => skillsModule.loadSkills(objects, tenantId, opts),
190
+ loadById: (id) => skillsModule.loadSkillById(objects, tenantId, id),
191
+ close: (id) => skillsModule.closeSkill(objects, tenantId, id),
184
192
  printRow: printSkillRow,
185
193
  printDetail: (s) => {
186
194
  console.log(` name: ${s.skillName}`);
@@ -190,7 +198,7 @@ const skillKind = (hippoRoot, tenantId) => ({
190
198
  console.log(` when: ${s.trigger}`);
191
199
  console.log(` instructions: ${s.instructions}`);
192
200
  },
193
- extra: { sub: 'export', run: () => skillExport(hippoRoot, tenantId) },
201
+ extra: { sub: 'export', run: () => skillExport(objects, tenantId) },
194
202
  });
195
203
  export const handleSkill = versionedVerbs(skillKind);
196
204
  //# sourceMappingURL=playbooks.js.map
@@ -1,12 +1,12 @@
1
1
  // First-class object verbs for predictions: record a claim, close it against the actual, and read the class base rate.
2
- import * as predictionsApi from '../api/predictions.js';
2
+ import * as predictionsApi from '../api/objects/predictions.js';
3
3
  import { VALID_CLOSURE_STATES } from '../core/prediction.js';
4
4
  import { cliApiContext } from './api-context.js';
5
5
  import { printError } from './output.js';
6
6
  import { parseListLimit, stringFlag } from './flag-values.js';
7
7
  import { requireInit } from './shared.js';
8
8
  import { foundOrExit, idArgOrExit, requireStatus } from './object-verbs.js';
9
- import { CliExit } from './exit.js';
9
+ import { fail } from './exit.js';
10
10
  const BASERATE_DECIMALS = 3;
11
11
  const PREDICTION_NOUN = 'Prediction';
12
12
  async function predictClose(ctx, args, flags) {
@@ -14,14 +14,12 @@ async function predictClose(ctx, args, flags) {
14
14
  const stateRaw = (stringFlag(flags, 'state') ?? '').trim();
15
15
  // SAFETY: Set.has only compares by value, so a string outside the closure states is a plain miss.
16
16
  if (!VALID_CLOSURE_STATES.has(stateRaw) || stateRaw === 'open') {
17
- printError(`Invalid --state: "${stateRaw}". Must be one of: closed | closed-unknown.`);
18
- throw new CliExit(1);
17
+ fail(`Invalid --state: "${stateRaw}". Must be one of: closed | closed-unknown.`);
19
18
  }
20
19
  const actualRaw = flags['actual'];
21
20
  const actualValue = actualRaw !== undefined ? Number(actualRaw) : undefined;
22
21
  if (actualRaw !== undefined && !Number.isFinite(actualValue)) {
23
- printError(`Invalid --actual: "${actualRaw}". Must be a number.`);
24
- throw new CliExit(1);
22
+ fail(`Invalid --actual: "${actualRaw}". Must be a number.`);
25
23
  }
26
24
  const closureNote = stringFlag(flags, 'note');
27
25
  const closed = await predictionsApi.closePrediction(ctx, id, {
@@ -46,8 +44,7 @@ async function loadPredictionList(ctx, status, classTag, limit) {
46
44
  const closureState = requireStatus(status, VALID_CLOSURE_STATES);
47
45
  if (!classTag) {
48
46
  // status filter without class: scan all classes is more complex; v1 requires --class for non-default status
49
- printError('--status filter (non-open) requires --class to be set.');
50
- throw new CliExit(1);
47
+ fail('--status filter (non-open) requires --class to be set.');
51
48
  }
52
49
  return predictionsApi.listPredictions(ctx, {
53
50
  classTag,
@@ -82,8 +79,9 @@ async function predictShow(ctx, args) {
82
79
  console.log(` class: ${pred.classTag}`);
83
80
  console.log(` claim: ${pred.claimText}`);
84
81
  console.log(` state: ${pred.closureState}`);
85
- if (pred.estimateValue !== null)
82
+ if (pred.estimateValue !== null) {
86
83
  console.log(` estimate: ${pred.estimateValue}${pred.estimateUnit ? ' ' + pred.estimateUnit : ''}`);
84
+ }
87
85
  if (pred.targetDate)
88
86
  console.log(` target: ${pred.targetDate}`);
89
87
  if (pred.actualValue !== null)
@@ -100,8 +98,7 @@ async function predictBaserate(ctx, flags) {
100
98
  // Reference-class / planning-fallacy detector
101
99
  const classTag = stringFlag(flags, 'class')?.trim();
102
100
  if (!classTag) {
103
- printError('Usage: hippo predict baserate --class <c>');
104
- throw new CliExit(1);
101
+ fail('Usage: hippo predict baserate --class <c>');
105
102
  }
106
103
  const baserate = await predictionsApi.predictionBaserate(ctx, classTag);
107
104
  if (baserate.nClosed === 0) {
@@ -113,10 +110,12 @@ async function predictBaserate(ctx, flags) {
113
110
  console.log(baserate.summary);
114
111
  console.log(` n_closed: ${baserate.nClosed}`);
115
112
  console.log(` n_ratio_eligible: ${baserate.nRatioEligible}`);
116
- if (baserate.meanEstimate !== null)
113
+ if (baserate.meanEstimate !== null) {
117
114
  console.log(` mean_estimate: ${baserate.meanEstimate.toFixed(BASERATE_DECIMALS)}`);
118
- if (baserate.meanActual !== null)
115
+ }
116
+ if (baserate.meanActual !== null) {
119
117
  console.log(` mean_actual: ${baserate.meanActual.toFixed(BASERATE_DECIMALS)}`);
118
+ }
120
119
  if (baserate.meanRatio !== null)
121
120
  console.log(` mean_ratio: ${baserate.meanRatio.toFixed(BASERATE_DECIMALS)}x`);
122
121
  if (baserate.p50Ratio !== null)
@@ -144,19 +143,16 @@ async function predictCreate(ctx, claimText, flags) {
144
143
  printError('Usage: hippo predict "<claim>" --class <c> [--estimate <v>] [--unit <u>] [--target <YYYY-MM-DD>]');
145
144
  printError(' hippo predict close <id> --state <closed|closed-unknown> [--actual <v>] [--note "..."]');
146
145
  printError(' hippo predict list [--class X] [--status open|closed|closed-unknown|all] [--limit N]');
147
- printError(' hippo predict show <id>');
148
- throw new CliExit(1);
146
+ fail(' hippo predict show <id>');
149
147
  }
150
148
  const classTag = stringFlag(flags, 'class')?.trim();
151
149
  if (!classTag) {
152
- printError('--class is required for prediction creation.');
153
- throw new CliExit(1);
150
+ fail('--class is required for prediction creation.');
154
151
  }
155
152
  const estimateRaw = flags['estimate'];
156
153
  const estimateValue = estimateRaw !== undefined ? Number(estimateRaw) : undefined;
157
154
  if (estimateRaw !== undefined && !Number.isFinite(estimateValue)) {
158
- printError(`Invalid --estimate: "${estimateRaw}". Must be a number.`);
159
- throw new CliExit(1);
155
+ fail(`Invalid --estimate: "${estimateRaw}". Must be a number.`);
160
156
  }
161
157
  const estimateUnit = stringFlag(flags, 'unit');
162
158
  const targetDate = stringFlag(flags, 'target');
package/dist/cli/print.js CHANGED
@@ -15,9 +15,11 @@ export function recallEntryText(r, query, showWhy, isGlobal) {
15
15
  const bars = Math.round(e.strength * 10);
16
16
  const graphMark = r.graphVia ? ` [graph: ${r.graphVia.hops}hop ${r.graphVia.relType}]` : '';
17
17
  const lines = [
18
- `--- ${e.id} [${e.layer}] ${confLabel}${isGlobal ? ' [global]' : ''}${e.superseded_by ? ' [superseded]' : ''}${graphMark} ` +
18
+ `--- ${e.id} [${e.layer}] ` +
19
+ `${confLabel}${isGlobal ? ' [global]' : ''}${e.superseded_by ? ' [superseded]' : ''}${graphMark} ` +
19
20
  `score=${fmt(r.score, 3)} strength=${fmt(e.strength)}`,
20
- ` [${'█'.repeat(bars)}${'░'.repeat(10 - bars)}] tags: ${e.tags.join(', ') || 'none'} | retrieved: ${e.retrieval_count}x`,
21
+ ` [${'█'.repeat(bars)}${'░'.repeat(10 - bars)}] tags: ${e.tags.join(', ') || 'none'} | retrieved: ` +
22
+ `${e.retrieval_count}x`,
21
23
  ];
22
24
  if (showWhy) {
23
25
  const explanation = explainMatch(query, r);
@@ -1,4 +1,5 @@
1
- // The `hippo projects` verb: list a store's project names, fold an old worktree name into its repo, repair old tags in one pass.
1
+ // The `hippo projects` verb: list a store's project names, fold an old worktree name into its repo, repair old tags in
2
+ // one pass.
2
3
  import * as path from 'path';
3
4
  import { execFileSync } from 'child_process';
4
5
  import * as api from '../api/index.js';
@@ -17,7 +18,10 @@ function worktreeNames() {
17
18
  stdio: ['ignore', 'pipe', 'ignore'],
18
19
  windowsHide: true,
19
20
  });
20
- const paths = out.split(/\r?\n/).filter((l) => l.startsWith('worktree ')).map((l) => path.basename(l.slice('worktree '.length)));
21
+ const paths = out
22
+ .split(/\r?\n/)
23
+ .filter((l) => l.startsWith('worktree '))
24
+ .map((l) => path.basename(l.slice('worktree '.length)));
21
25
  return new Map(paths.slice(1).map((name) => [name, paths[0]]));
22
26
  }
23
27
  catch {
@@ -32,7 +36,9 @@ function hint(p, worktrees) {
32
36
  const main = p.origin ? worktrees.get(p.origin) : undefined;
33
37
  if (main)
34
38
  return `\n a worktree of ${main}: hippo projects merge ${p.origin} ${main}`;
35
- return p.copiesElsewhere > 0 ? `\n ${p.copiesElsewhere} of its imported notes are copies also held under another name` : '';
39
+ return p.copiesElsewhere > 0
40
+ ? `\n ${p.copiesElsewhere} of its imported notes are copies also held under another name`
41
+ : '';
36
42
  }
37
43
  function count(n, one, many = `${one}s`) {
38
44
  return `${n} ${n === 1 ? one : many}`;
@@ -60,11 +66,12 @@ function projectsMerge(ctx, args, flags) {
60
66
  return;
61
67
  }
62
68
  console.log(`${apply ? 'Merged' : 'Dry run: would merge'} ${from} into ${into}:`);
63
- console.log(` ${count(r.setAside.length, 'imported note ' +
64
- 'copy', 'imported note copies')} set aside (${into} already holds the same note; the rest move under ${into} on the next sync)`);
69
+ console.log(` ${count(r.setAside.length, 'imported note ' + 'copy', 'imported note copies')} set aside (${into} already holds the same note; the rest move under ${into} on the next sync)`);
65
70
  console.log(` ${count(r.restamped.length, 'memory', 'memories')} re-tagged, plus ${r.dormantRestamped.length} dormant ` +
66
71
  `and ${count(r.compactions, 'compaction record')}`);
67
- console.log(apply ? `Backup: ${r.backup}\nEvery id is in the audit log: hippo audit list --op project_merge` : 'Nothing written. Add --apply to run it.');
72
+ console.log(apply
73
+ ? `Backup: ${r.backup}\nEvery id is in the audit log: hippo audit list --op project_merge`
74
+ : 'Nothing written. Add --apply to run it.');
68
75
  }
69
76
  function projectsRepair(ctx, flags) {
70
77
  const root = ctx.hippoRoot;
@@ -75,17 +82,20 @@ function projectsRepair(ctx, flags) {
75
82
  return;
76
83
  }
77
84
  console.log(`${apply ? 'Repaired' : 'Dry run: would repair'} ${root}:`);
78
- console.log(` ${count(r.copies.length, 'imported note ' +
79
- 'copy', 'imported note copies')} under the wrong project set aside (the note stays under its own, or user-global)`);
85
+ console.log(` ${count(r.copies.length, 'imported note ' + 'copy', 'imported note copies')} under the wrong project set aside (the note stays under its own, or user-global)`);
80
86
  for (const f of r.folds)
81
87
  console.log(` ${f.from} folded into ${f.into} (its sessions' folders resolve there now)`);
82
88
  for (const c of r.collisions) {
83
- console.log(` ${c.name} left as it is: its folders now resolve to ${c.ids.join(', ')}; fold it by hand with hippo projects merge`);
89
+ console.log(` ${c.name} left as it is: its folders now resolve to ${c.ids.join(', ')}; fold it by hand with hippo ` +
90
+ `projects merge`);
84
91
  }
85
92
  console.log(` sleep's user-global merged rows: ${r.toProject.length} re-tagged to their parents' project`);
86
93
  console.log(` ${r.setAside.length} set aside (parents in two projects; sleep re-merges them per project)`);
87
- console.log(` ${r.untraced.length} left as they are (no parent left to show which project; check them with hippo inspect <id>)`);
88
- console.log(apply ? `Backup: ${r.backup}\nEvery id is in the audit log: hippo audit list --op project_repair` : 'Nothing written. Add --apply to run it.');
94
+ console.log(` ${r.untraced.length} left as they are (no parent left to show which project; check them with hippo inspect ` +
95
+ `<id>)`);
96
+ console.log(apply
97
+ ? `Backup: ${r.backup}\nEvery id is in the audit log: hippo audit list --op project_repair`
98
+ : 'Nothing written. Add --apply to run it.');
89
99
  }
90
100
  export function handleProjects({ hippoRoot, tenantId, args, flags }) {
91
101
  const ctx = cliApiContext(resolveAuthRoot(hippoRoot, flags), tenantId);