hippo-memory 1.72.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 (995) hide show
  1. package/README.md +6 -4
  2. package/dist/agent-memories/apply.d.ts +7 -5
  3. package/dist/agent-memories/apply.js +66 -39
  4. package/dist/agent-memories/claude-code.d.ts +8 -2
  5. package/dist/agent-memories/claude-code.js +26 -7
  6. package/dist/agent-memories/copilot.js +2 -1
  7. package/dist/agent-memories/files.js +2 -1
  8. package/dist/agent-memories/legacy.d.ts +6 -3
  9. package/dist/agent-memories/legacy.js +35 -14
  10. package/dist/agent-memories/markdown.d.ts +3 -1
  11. package/dist/agent-memories/markdown.js +3 -1
  12. package/dist/agent-memories/openclaw.js +5 -2
  13. package/dist/agent-memories/plan.js +11 -1
  14. package/dist/agent-memories/project-folds.js +2 -1
  15. package/dist/agent-memories/report.d.ts +4 -1
  16. package/dist/agent-memories/report.js +43 -9
  17. package/dist/agent-memories/source.d.ts +8 -2
  18. package/dist/agent-memories/source.js +11 -3
  19. package/dist/agent-memories/sync.d.ts +7 -2
  20. package/dist/agent-memories/sync.js +141 -101
  21. package/dist/api/assemble.d.ts +6 -4
  22. package/dist/api/assemble.js +11 -5
  23. package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
  24. package/dist/api/auth/audit.js +58 -0
  25. package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -16
  26. package/dist/api/{auth.js → auth/auth.js} +66 -54
  27. package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
  28. package/dist/api/{quarantine.js → auth/quarantine.js} +8 -7
  29. package/dist/api/auth/session-owners.d.ts +10 -0
  30. package/dist/api/auth/session-owners.js +35 -0
  31. package/dist/api/availability.d.ts +3 -1
  32. package/dist/api/availability.js +3 -1
  33. package/dist/api/busy.d.ts +2 -0
  34. package/dist/api/busy.js +2 -0
  35. package/dist/api/cli-surface.d.ts +6 -0
  36. package/dist/api/cli-surface.js +6 -0
  37. package/dist/api/config-of.d.ts +5 -0
  38. package/dist/api/config-of.js +6 -0
  39. package/dist/api/context-auto.d.ts +4 -1
  40. package/dist/api/context-auto.js +14 -4
  41. package/dist/api/context-render.js +14 -7
  42. package/dist/api/context-select.d.ts +4 -1
  43. package/dist/api/context-select.js +31 -34
  44. package/dist/api/context-types.d.ts +38 -12
  45. package/dist/api/context.d.ts +8 -5
  46. package/dist/api/context.js +120 -63
  47. package/dist/api/continuity.d.ts +24 -21
  48. package/dist/api/continuity.js +18 -20
  49. package/dist/api/correction-latency.d.ts +3 -1
  50. package/dist/api/correction-latency.js +3 -1
  51. package/dist/api/error-reply.d.ts +4 -1
  52. package/dist/api/error-reply.js +12 -3
  53. package/dist/api/index.d.ts +39 -23
  54. package/dist/api/index.js +21 -23
  55. package/dist/api/instruction-detect.d.ts +4 -1
  56. package/dist/api/instruction-detect.js +75 -20
  57. package/dist/api/ledger-db.d.ts +15 -11
  58. package/dist/api/ledger-db.js +21 -23
  59. package/dist/api/memories/conflicts.d.ts +33 -0
  60. package/dist/api/memories/conflicts.js +67 -0
  61. package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
  62. package/dist/api/{forget.js → memories/forget.js} +23 -17
  63. package/dist/api/memories/memories.d.ts +27 -0
  64. package/dist/api/memories/memories.js +52 -0
  65. package/dist/api/memories/outcome.d.ts +22 -0
  66. package/dist/api/memories/outcome.js +28 -0
  67. package/dist/api/memories/promote.d.ts +40 -0
  68. package/dist/api/memories/promote.js +76 -0
  69. package/dist/api/memories/refine.d.ts +10 -0
  70. package/dist/api/memories/refine.js +12 -0
  71. package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +17 -9
  72. package/dist/api/{remember-local.js → memories/remember-local.js} +46 -24
  73. package/dist/api/{remember.d.ts → memories/remember.d.ts} +22 -13
  74. package/dist/api/{remember.js → memories/remember.js} +50 -32
  75. package/dist/api/objects/cards.d.ts +39 -0
  76. package/dist/api/{cards.js → objects/cards.js} +12 -14
  77. package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
  78. package/dist/api/{drill-down.js → objects/drill-down.js} +7 -7
  79. package/dist/api/objects/goals.d.ts +18 -0
  80. package/dist/api/{goals.js → objects/goals.js} +12 -12
  81. package/dist/api/objects/graph.d.ts +11 -0
  82. package/dist/api/objects/graph.js +16 -0
  83. package/dist/api/objects/objects.d.ts +9 -0
  84. package/dist/api/{objects.js → objects/objects.js} +2 -3
  85. package/dist/api/objects/predictions.d.ts +11 -0
  86. package/dist/api/{predictions.js → objects/predictions.js} +7 -5
  87. package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
  88. package/dist/api/{projects.js → objects/projects.js} +8 -4
  89. package/dist/api/pilot-arm.d.ts +8 -4
  90. package/dist/api/pilot-arm.js +5 -4
  91. package/dist/api/prompt-hook.d.ts +35 -20
  92. package/dist/api/prompt-hook.js +66 -44
  93. package/dist/api/provenance-coverage.d.ts +3 -1
  94. package/dist/api/provenance-coverage.js +3 -1
  95. package/dist/api/recall/finish.d.ts +185 -0
  96. package/dist/api/recall/finish.js +301 -0
  97. package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
  98. package/dist/api/{recall-pipeline.js → recall/pipeline.js} +185 -101
  99. package/dist/api/recall/recall.d.ts +6 -0
  100. package/dist/api/{recall.js → recall/recall.js} +116 -72
  101. package/dist/api/recall/render.d.ts +39 -0
  102. package/dist/api/recall/render.js +60 -0
  103. package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
  104. package/dist/api/recall/request.js +261 -0
  105. package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
  106. package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
  107. package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -68
  108. package/dist/api/{recall-types.js → recall/types.js} +1 -1
  109. package/dist/api/session-end.d.ts +36 -8
  110. package/dist/api/session-end.js +71 -25
  111. package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
  112. package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
  113. package/dist/api/sleep/dormant.d.ts +25 -0
  114. package/dist/api/sleep/dormant.js +64 -0
  115. package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
  116. package/dist/api/sleep/learn.js +138 -0
  117. package/dist/api/sleep/sleep-run.d.ts +38 -0
  118. package/dist/api/{sleep-run.js → sleep/sleep-run.js} +54 -45
  119. package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
  120. package/dist/api/sleep/sleep.js +9 -0
  121. package/dist/api/status.d.ts +3 -1
  122. package/dist/api/status.js +3 -1
  123. package/dist/api/store-init.d.ts +4 -1
  124. package/dist/api/store-init.js +4 -1
  125. package/dist/api/tokens.d.ts +10 -9
  126. package/dist/api/tokens.js +9 -10
  127. package/dist/api/types.d.ts +27 -12
  128. package/dist/api/types.js +13 -4
  129. package/dist/capture/caller-session.d.ts +8 -2
  130. package/dist/capture/caller-session.js +16 -6
  131. package/dist/capture/capture-error.d.ts +3 -1
  132. package/dist/capture/capture-error.js +3 -1
  133. package/dist/capture/codex-patch.js +7 -2
  134. package/dist/capture/command.d.ts +4 -2
  135. package/dist/capture/command.js +34 -15
  136. package/dist/capture/compact-resume-caller.js +15 -8
  137. package/dist/capture/compact.d.ts +8 -5
  138. package/dist/capture/compact.js +34 -23
  139. package/dist/capture/compaction-items-caller.js +9 -3
  140. package/dist/capture/compaction-record.d.ts +4 -3
  141. package/dist/capture/compaction-record.js +20 -12
  142. package/dist/capture/compaction-spool.d.ts +18 -9
  143. package/dist/capture/compaction-spool.js +105 -63
  144. package/dist/capture/copilot-transcript.d.ts +11 -3
  145. package/dist/capture/copilot-transcript.js +16 -6
  146. package/dist/capture/extract.js +20 -8
  147. package/dist/capture/failure-caller.js +23 -12
  148. package/dist/capture/failure-reading.d.ts +10 -3
  149. package/dist/capture/failure-reading.js +24 -7
  150. package/dist/capture/pre-compact-caller.js +11 -4
  151. package/dist/capture/session-digest.d.ts +15 -4
  152. package/dist/capture/session-digest.js +39 -13
  153. package/dist/capture/session-end-caller.d.ts +4 -1
  154. package/dist/capture/session-end-caller.js +20 -8
  155. package/dist/capture/session-texts.d.ts +6 -2
  156. package/dist/capture/session-texts.js +22 -7
  157. package/dist/capture/session-worker.d.ts +4 -2
  158. package/dist/capture/session-worker.js +58 -17
  159. package/dist/capture/transcript.d.ts +13 -4
  160. package/dist/capture/transcript.js +32 -10
  161. package/dist/capture/working-state.d.ts +13 -4
  162. package/dist/capture/working-state.js +50 -56
  163. package/dist/cli/api-context.d.ts +14 -2
  164. package/dist/cli/api-context.js +45 -2
  165. package/dist/cli/audit.js +33 -33
  166. package/dist/cli/auth.js +23 -31
  167. package/dist/cli/briefs.d.ts +1 -1
  168. package/dist/cli/briefs.js +20 -15
  169. package/dist/cli/card.d.ts +1 -1
  170. package/dist/cli/card.js +56 -73
  171. package/dist/cli/client.d.ts +12 -5
  172. package/dist/cli/client.js +53 -23
  173. package/dist/cli/compact-resume-payload.d.ts +4 -1
  174. package/dist/cli/compact-resume-payload.js +12 -5
  175. package/dist/cli/context.js +43 -18
  176. package/dist/cli/continuity.d.ts +5 -5
  177. package/dist/cli/continuity.js +90 -107
  178. package/dist/cli/curate.d.ts +5 -4
  179. package/dist/cli/curate.js +55 -77
  180. package/dist/cli/dag.d.ts +1 -1
  181. package/dist/cli/dag.js +14 -17
  182. package/dist/cli/decisions.js +30 -30
  183. package/dist/cli/eval.js +16 -21
  184. package/dist/cli/exit.d.ts +4 -1
  185. package/dist/cli/exit.js +10 -2
  186. package/dist/cli/explain.js +12 -11
  187. package/dist/cli/flag-values.d.ts +1 -1
  188. package/dist/cli/flag-values.js +9 -18
  189. package/dist/cli/github.d.ts +6 -0
  190. package/dist/cli/github.js +25 -13
  191. package/dist/cli/goals.d.ts +1 -1
  192. package/dist/cli/goals.js +39 -56
  193. package/dist/cli/graph.d.ts +1 -1
  194. package/dist/cli/graph.js +15 -11
  195. package/dist/cli/hook-runtime.d.ts +34 -10
  196. package/dist/cli/hook-runtime.js +41 -16
  197. package/dist/cli/incidents.d.ts +1 -1
  198. package/dist/cli/incidents.js +25 -25
  199. package/dist/cli/init.d.ts +1 -1
  200. package/dist/cli/init.js +35 -20
  201. package/dist/cli/install-steps.d.ts +12 -3
  202. package/dist/cli/install-steps.js +42 -18
  203. package/dist/cli/last-sleep.d.ts +4 -1
  204. package/dist/cli/last-sleep.js +9 -4
  205. package/dist/cli/maintenance.d.ts +1 -1
  206. package/dist/cli/maintenance.js +11 -12
  207. package/dist/cli/notes.d.ts +1 -1
  208. package/dist/cli/notes.js +8 -5
  209. package/dist/cli/object-verbs.d.ts +5 -5
  210. package/dist/cli/object-verbs.js +13 -16
  211. package/dist/cli/open-browser.js +11 -2
  212. package/dist/cli/playbooks.d.ts +3 -3
  213. package/dist/cli/playbooks.js +40 -32
  214. package/dist/cli/predictions.js +17 -22
  215. package/dist/cli/print.js +4 -2
  216. package/dist/cli/projects.js +21 -11
  217. package/dist/cli/quality-repair-once.d.ts +1 -1
  218. package/dist/cli/quality-repair-once.js +7 -6
  219. package/dist/cli/recall.js +129 -93
  220. package/dist/cli/refine-llm.d.ts +15 -4
  221. package/dist/cli/refine-llm.js +17 -7
  222. package/dist/cli/remember.js +51 -55
  223. package/dist/cli/scheduler.d.ts +4 -1
  224. package/dist/cli/scheduler.js +9 -5
  225. package/dist/cli/serve.js +28 -18
  226. package/dist/cli/session-hooks.d.ts +2 -6
  227. package/dist/cli/session-hooks.js +140 -112
  228. package/dist/cli/setup.d.ts +1 -1
  229. package/dist/cli/setup.js +56 -34
  230. package/dist/cli/shared.d.ts +4 -2
  231. package/dist/cli/shared.js +26 -11
  232. package/dist/cli/slack.js +15 -24
  233. package/dist/cli/sleep-render.d.ts +3 -1
  234. package/dist/cli/sleep-render.js +8 -5
  235. package/dist/cli/sleep.js +16 -8
  236. package/dist/cli/status.d.ts +4 -4
  237. package/dist/cli/status.js +32 -27
  238. package/dist/cli/stdin.d.ts +10 -3
  239. package/dist/cli/stdin.js +10 -3
  240. package/dist/cli/transfer.d.ts +4 -4
  241. package/dist/cli/transfer.js +97 -82
  242. package/dist/cli/usage.d.ts +1 -1
  243. package/dist/cli/usage.js +1 -1
  244. package/dist/cli/verb-row.d.ts +2 -0
  245. package/dist/cli/verbs/health.js +2 -0
  246. package/dist/cli/verbs/memory.js +47 -53
  247. package/dist/cli/verbs/objects.js +16 -7
  248. package/dist/cli/verbs/sessions.js +4 -2
  249. package/dist/cli/versioned-verbs.d.ts +8 -7
  250. package/dist/cli/versioned-verbs.js +31 -21
  251. package/dist/cli.js +14 -18
  252. package/dist/connectors/dlq.d.ts +6 -6
  253. package/dist/connectors/dlq.js +12 -7
  254. package/dist/connectors/github/backfill.d.ts +4 -4
  255. package/dist/connectors/github/backfill.js +6 -4
  256. package/dist/connectors/github/deletion.d.ts +6 -4
  257. package/dist/connectors/github/deletion.js +5 -4
  258. package/dist/connectors/github/dlq.d.ts +8 -6
  259. package/dist/connectors/github/dlq.js +11 -5
  260. package/dist/connectors/github/ingest.d.ts +2 -2
  261. package/dist/connectors/github/ingest.js +9 -5
  262. package/dist/connectors/github/octokit-client.d.ts +3 -1
  263. package/dist/connectors/github/octokit-client.js +7 -2
  264. package/dist/connectors/github/ratelimit.d.ts +6 -2
  265. package/dist/connectors/github/ratelimit.js +6 -2
  266. package/dist/connectors/github/signature.d.ts +14 -3
  267. package/dist/connectors/github/signature.js +17 -3
  268. package/dist/connectors/github/tenant-routing.d.ts +6 -4
  269. package/dist/connectors/github/tenant-routing.js +6 -5
  270. package/dist/connectors/github/transform.js +50 -67
  271. package/dist/connectors/github/types.d.ts +10 -3
  272. package/dist/connectors/github/types.js +6 -2
  273. package/dist/connectors/github/webhook.d.ts +5 -5
  274. package/dist/connectors/github/webhook.js +36 -23
  275. package/dist/connectors/ingest.d.ts +5 -3
  276. package/dist/connectors/ingest.js +3 -3
  277. package/dist/connectors/slack/backfill.d.ts +5 -5
  278. package/dist/connectors/slack/backfill.js +3 -3
  279. package/dist/connectors/slack/deletion.d.ts +4 -4
  280. package/dist/connectors/slack/deletion.js +6 -5
  281. package/dist/connectors/slack/dlq.d.ts +4 -4
  282. package/dist/connectors/slack/dlq.js +6 -6
  283. package/dist/connectors/slack/ingest.d.ts +6 -4
  284. package/dist/connectors/slack/ingest.js +5 -4
  285. package/dist/connectors/slack/signature.d.ts +4 -1
  286. package/dist/connectors/slack/tenant-routing.d.ts +6 -4
  287. package/dist/connectors/slack/tenant-routing.js +6 -5
  288. package/dist/connectors/slack/transform.d.ts +6 -2
  289. package/dist/connectors/slack/transform.js +6 -2
  290. package/dist/connectors/slack/types.d.ts +3 -1
  291. package/dist/connectors/slack/web-client.js +8 -3
  292. package/dist/connectors/slack/webhook.d.ts +5 -5
  293. package/dist/connectors/slack/webhook.js +19 -11
  294. package/dist/connectors/slack/workspaces.d.ts +7 -3
  295. package/dist/connectors/slack/workspaces.js +7 -3
  296. package/dist/connectors/store.d.ts +8 -0
  297. package/dist/connectors/store.js +2 -0
  298. package/dist/consolidate/conflicts.js +24 -10
  299. package/dist/consolidate/dag-summary.js +2 -1
  300. package/dist/consolidate/dag.d.ts +10 -5
  301. package/dist/consolidate/dag.js +45 -39
  302. package/dist/consolidate/decay.js +19 -6
  303. package/dist/consolidate/dedupe.d.ts +14 -5
  304. package/dist/consolidate/dedupe.js +28 -17
  305. package/dist/consolidate/flush-units.d.ts +4 -1
  306. package/dist/consolidate/flush-units.js +4 -1
  307. package/dist/consolidate/half-life-migration.d.ts +18 -8
  308. package/dist/consolidate/half-life-migration.js +48 -18
  309. package/dist/consolidate/llm-passes.js +27 -11
  310. package/dist/consolidate/memory-value-weights.d.ts +6 -2
  311. package/dist/consolidate/memory-value-weights.js +6 -2
  312. package/dist/consolidate/memory-value.d.ts +30 -10
  313. package/dist/consolidate/memory-value.js +37 -14
  314. package/dist/consolidate/merge.d.ts +4 -1
  315. package/dist/consolidate/merge.js +47 -37
  316. package/dist/consolidate/overlap-index.d.ts +8 -2
  317. package/dist/consolidate/overlap-index.js +11 -4
  318. package/dist/consolidate/physics-pass.d.ts +3 -1
  319. package/dist/consolidate/physics-pass.js +10 -7
  320. package/dist/consolidate/replay.d.ts +11 -4
  321. package/dist/consolidate/replay.js +19 -7
  322. package/dist/consolidate/run.d.ts +13 -5
  323. package/dist/consolidate/run.js +4 -4
  324. package/dist/consolidate/sleep.d.ts +14 -6
  325. package/dist/consolidate/sleep.js +42 -39
  326. package/dist/consolidate/trace.d.ts +7 -2
  327. package/dist/consolidate/trace.js +7 -2
  328. package/dist/consolidate/traces.js +27 -30
  329. package/dist/core/ablation.d.ts +9 -3
  330. package/dist/core/ablation.js +14 -4
  331. package/dist/core/active-scope.d.ts +3 -1
  332. package/dist/core/active-scope.js +3 -1
  333. package/dist/core/agent-memory-tools.d.ts +2 -0
  334. package/dist/core/agent-memory-tools.js +2 -0
  335. package/dist/core/ambient.d.ts +4 -3
  336. package/dist/core/ambient.js +8 -6
  337. package/dist/core/api-errors.d.ts +9 -3
  338. package/dist/core/api-errors.js +9 -3
  339. package/dist/core/capture-contract.d.ts +4 -1
  340. package/dist/core/capture-contract.js +27 -8
  341. package/dist/core/compare.d.ts +24 -8
  342. package/dist/core/compare.js +24 -8
  343. package/dist/core/config.d.ts +18 -9
  344. package/dist/core/config.js +38 -29
  345. package/dist/core/cosine.d.ts +4 -1
  346. package/dist/core/cosine.js +4 -1
  347. package/dist/core/handoff.d.ts +7 -2
  348. package/dist/core/handoff.js +4 -1
  349. package/dist/core/markdown.js +22 -17
  350. package/dist/core/memory-audit.js +14 -3
  351. package/dist/core/memory-quality.d.ts +12 -3
  352. package/dist/core/memory-quality.js +57 -21
  353. package/dist/core/memory.d.ts +87 -30
  354. package/dist/core/memory.js +82 -33
  355. package/dist/core/merged-row.d.ts +8 -2
  356. package/dist/core/merged-row.js +10 -3
  357. package/dist/core/package-root.d.ts +3 -1
  358. package/dist/core/package-root.js +3 -1
  359. package/dist/core/particle-refresh.d.ts +8 -0
  360. package/dist/core/particle-refresh.js +22 -0
  361. package/dist/core/physics-config.d.ts +4 -1
  362. package/dist/core/physics-config.js +6 -2
  363. package/dist/core/physics.d.ts +39 -11
  364. package/dist/core/physics.js +71 -21
  365. package/dist/core/project-identity.d.ts +34 -17
  366. package/dist/core/project-identity.js +35 -18
  367. package/dist/core/project-remote.d.ts +8 -4
  368. package/dist/core/project-remote.js +31 -14
  369. package/dist/core/recall-scope.d.ts +33 -11
  370. package/dist/core/recall-scope.js +42 -15
  371. package/dist/core/rejection-digest.d.ts +7 -0
  372. package/dist/core/rejection-digest.js +13 -0
  373. package/dist/core/salience.d.ts +3 -1
  374. package/dist/core/salience.js +10 -4
  375. package/dist/core/search-types.d.ts +15 -2
  376. package/dist/core/search-types.js +11 -0
  377. package/dist/dashboard/dashboard-actions.d.ts +2 -2
  378. package/dist/dashboard/dashboard-actions.js +18 -7
  379. package/dist/dashboard/dashboard-queries.js +2 -7
  380. package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
  381. package/dist/dashboard/dashboard-snapshot.js +5 -7
  382. package/dist/dashboard/dashboard.js +22 -8
  383. package/dist/db/backup.js +2 -2
  384. package/dist/db/busy.d.ts +10 -3
  385. package/dist/db/busy.js +27 -5
  386. package/dist/db/connect.d.ts +10 -2
  387. package/dist/db/connect.js +8 -2
  388. package/dist/db/continuity.d.ts +1 -1
  389. package/dist/db/continuity.js +27 -11
  390. package/dist/db/meta.d.ts +4 -1
  391. package/dist/db/meta.js +4 -1
  392. package/dist/db/migrate.d.ts +10 -5
  393. package/dist/db/migrate.js +40 -20
  394. package/dist/db/migrations/index.d.ts +1 -1
  395. package/dist/db/migrations/index.js +3 -1
  396. package/dist/db/migrations/types.d.ts +2 -1
  397. package/dist/db/migrations/v11.js +1 -0
  398. package/dist/db/migrations/v12.js +2 -1
  399. package/dist/db/migrations/v14.js +2 -0
  400. package/dist/db/migrations/v15.js +4 -2
  401. package/dist/db/migrations/v16.js +6 -3
  402. package/dist/db/migrations/v17.js +2 -1
  403. package/dist/db/migrations/v19.js +4 -2
  404. package/dist/db/migrations/v20.js +2 -1
  405. package/dist/db/migrations/v22.js +12 -6
  406. package/dist/db/migrations/v23.js +6 -3
  407. package/dist/db/migrations/v24.js +6 -3
  408. package/dist/db/migrations/v25.js +4 -2
  409. package/dist/db/migrations/v26.js +4 -2
  410. package/dist/db/migrations/v27.js +6 -3
  411. package/dist/db/migrations/v28.js +4 -2
  412. package/dist/db/migrations/v29.js +4 -2
  413. package/dist/db/migrations/v30.js +6 -3
  414. package/dist/db/migrations/v31.js +4 -2
  415. package/dist/db/migrations/v32.js +6 -3
  416. package/dist/db/migrations/v33.js +4 -2
  417. package/dist/db/migrations/v34.js +2 -1
  418. package/dist/db/migrations/v35.js +2 -1
  419. package/dist/db/migrations/v36.js +2 -1
  420. package/dist/db/migrations/v37.js +10 -5
  421. package/dist/db/migrations/v38.js +10 -5
  422. package/dist/db/migrations/v39.js +14 -6
  423. package/dist/db/migrations/v40.js +4 -2
  424. package/dist/db/migrations/v41.js +4 -2
  425. package/dist/db/migrations/v42.js +2 -1
  426. package/dist/db/migrations/v44.js +4 -2
  427. package/dist/db/migrations/v45.js +4 -2
  428. package/dist/db/migrations/v49.js +2 -1
  429. package/dist/db/migrations/v50.js +4 -2
  430. package/dist/db/migrations/v51.js +4 -2
  431. package/dist/db/migrations/v52.js +2 -1
  432. package/dist/db/migrations/v53.js +8 -4
  433. package/dist/db/migrations/v54.js +2 -1
  434. package/dist/db/migrations/v55.js +4 -2
  435. package/dist/db/migrations/v56.d.ts +3 -0
  436. package/dist/db/migrations/v56.js +28 -0
  437. package/dist/db/open.d.ts +24 -12
  438. package/dist/db/open.js +25 -13
  439. package/dist/db/physics-state.d.ts +8 -8
  440. package/dist/db/physics-state.js +17 -50
  441. package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
  442. package/dist/db/raw-archive-mirror-cleanup.js +6 -4
  443. package/dist/db/request-stores.d.ts +20 -5
  444. package/dist/db/request-stores.js +15 -5
  445. package/dist/db/tables.d.ts +2 -1
  446. package/dist/db/tables.js +12 -4
  447. package/dist/db/vector-store.d.ts +13 -4
  448. package/dist/db/vector-store.js +35 -14
  449. package/dist/db/wal-checkpointer.d.ts +2 -1
  450. package/dist/db/wal-checkpointer.js +19 -7
  451. package/dist/doctor.d.ts +7 -1
  452. package/dist/doctor.js +128 -46
  453. package/dist/embeddings/local.d.ts +8 -4
  454. package/dist/embeddings/local.js +11 -7
  455. package/dist/embeddings/provider.d.ts +19 -10
  456. package/dist/embeddings/provider.js +32 -27
  457. package/dist/embeddings/transformers.d.ts +16 -4
  458. package/dist/embeddings/transformers.js +32 -15
  459. package/dist/entry/json-hooks.d.ts +1 -1
  460. package/dist/entry/json-hooks.js +1 -1
  461. package/dist/entry/project-identity.js +2 -1
  462. package/dist/entry/session-text.d.ts +1 -1
  463. package/dist/entry/session-text.js +1 -1
  464. package/dist/entry/sqlite-handles.d.ts +10 -0
  465. package/dist/entry/sqlite-handles.js +9 -0
  466. package/dist/entry/store-kit.d.ts +50 -0
  467. package/dist/entry/store-kit.js +27 -0
  468. package/dist/entry/testing.d.ts +6 -0
  469. package/dist/entry/testing.js +7 -0
  470. package/dist/eval/eval-stats.d.ts +27 -8
  471. package/dist/eval/eval-stats.js +17 -5
  472. package/dist/eval/eval-suite.d.ts +3 -1
  473. package/dist/eval/eval-suite.js +409 -187
  474. package/dist/eval/eval.d.ts +8 -2
  475. package/dist/eval/eval.js +8 -2
  476. package/dist/eval/judgment.js +17 -7
  477. package/dist/graph/delta.d.ts +9 -42
  478. package/dist/graph/delta.js +17 -11
  479. package/dist/graph/extract.d.ts +10 -7
  480. package/dist/graph/extract.js +57 -25
  481. package/dist/graph/recall.d.ts +12 -4
  482. package/dist/graph/recall.js +30 -13
  483. package/dist/graph/stream.d.ts +18 -6
  484. package/dist/graph/stream.js +32 -10
  485. package/dist/graph/view.d.ts +19 -6
  486. package/dist/graph/view.js +42 -17
  487. package/dist/hooks/codex-session.js +2 -2
  488. package/dist/hooks/codex-wrapper.d.ts +3 -1
  489. package/dist/hooks/codex-wrapper.js +9 -4
  490. package/dist/hooks/copilot.d.ts +19 -5
  491. package/dist/hooks/copilot.js +54 -15
  492. package/dist/hooks/hook-blocks.d.ts +4 -1
  493. package/dist/hooks/hook-blocks.js +8 -3
  494. package/dist/hooks/json-hooks.d.ts +9 -5
  495. package/dist/hooks/json-hooks.js +72 -33
  496. package/dist/hooks/opencode.js +15 -5
  497. package/dist/hooks/shared.d.ts +27 -8
  498. package/dist/hooks/shared.js +57 -16
  499. package/dist/importers/core.d.ts +12 -4
  500. package/dist/importers/core.js +11 -10
  501. package/dist/importers/markdown-parse.d.ts +15 -5
  502. package/dist/importers/markdown-parse.js +16 -7
  503. package/dist/importers/markdown.js +6 -9
  504. package/dist/importers/sources.js +10 -23
  505. package/dist/importers/vault.d.ts +3 -3
  506. package/dist/importers/vault.js +61 -45
  507. package/dist/index.d.ts +33 -7
  508. package/dist/index.js +26 -8
  509. package/dist/learn/autolearn.d.ts +21 -6
  510. package/dist/learn/autolearn.js +57 -26
  511. package/dist/learn/churn-git.d.ts +4 -1
  512. package/dist/learn/churn-git.js +29 -5
  513. package/dist/learn/extract.d.ts +4 -1
  514. package/dist/learn/extract.js +17 -10
  515. package/dist/learn/forward-claim-detector.d.ts +17 -5
  516. package/dist/learn/forward-claim-detector.js +34 -15
  517. package/dist/learn/invalidation.d.ts +12 -6
  518. package/dist/learn/invalidation.js +62 -28
  519. package/dist/learn/roots.d.ts +3 -0
  520. package/dist/learn/roots.js +5 -0
  521. package/dist/mcp/admin-tools.d.ts +5 -5
  522. package/dist/mcp/admin-tools.js +28 -23
  523. package/dist/mcp/format.d.ts +1 -1
  524. package/dist/mcp/format.js +4 -2
  525. package/dist/mcp/framing.d.ts +3 -1
  526. package/dist/mcp/framing.js +20 -8
  527. package/dist/mcp/memory-tools.d.ts +3 -3
  528. package/dist/mcp/memory-tools.js +21 -20
  529. package/dist/mcp/protocol.d.ts +32 -16
  530. package/dist/mcp/protocol.js +12 -9
  531. package/dist/mcp/recall-tools.d.ts +3 -3
  532. package/dist/mcp/recall-tools.js +62 -74
  533. package/dist/mcp/request.d.ts +7 -5
  534. package/dist/mcp/request.js +61 -77
  535. package/dist/mcp/server.d.ts +3 -1
  536. package/dist/mcp/server.js +8 -3
  537. package/dist/mcp/session-state.d.ts +1 -1
  538. package/dist/mcp/session-state.js +4 -3
  539. package/dist/mcp/shared-gate.d.ts +3 -2
  540. package/dist/mcp/shared-gate.js +3 -2
  541. package/dist/mcp/stdio.d.ts +6 -3
  542. package/dist/mcp/stdio.js +59 -23
  543. package/dist/mcp/tool-args.d.ts +4 -1
  544. package/dist/mcp/tool-args.js +8 -3
  545. package/dist/mcp/tools.js +76 -32
  546. package/dist/objects/customer-notes.d.ts +12 -10
  547. package/dist/objects/customer-notes.js +21 -15
  548. package/dist/objects/decisions.d.ts +18 -10
  549. package/dist/objects/decisions.js +23 -17
  550. package/dist/objects/descriptor.js +2 -1
  551. package/dist/objects/fields.d.ts +4 -1
  552. package/dist/objects/fields.js +6 -2
  553. package/dist/objects/incidents.d.ts +14 -16
  554. package/dist/objects/incidents.js +29 -30
  555. package/dist/objects/lifecycle.d.ts +0 -4
  556. package/dist/objects/lifecycle.js +21 -24
  557. package/dist/objects/policies.d.ts +12 -16
  558. package/dist/objects/policies.js +17 -21
  559. package/dist/objects/processes.d.ts +16 -10
  560. package/dist/objects/processes.js +20 -15
  561. package/dist/objects/project-briefs.d.ts +13 -14
  562. package/dist/objects/project-briefs.js +33 -39
  563. package/dist/objects/skills.d.ts +10 -12
  564. package/dist/objects/skills.js +17 -22
  565. package/dist/postinstall.js +15 -7
  566. package/dist/predictions/planning-fallacy.d.ts +19 -6
  567. package/dist/predictions/planning-fallacy.js +4 -2
  568. package/dist/rerankers/clef.d.ts +8 -2
  569. package/dist/rerankers/clef.js +14 -9
  570. package/dist/rerankers/cross-encoder.d.ts +2 -1
  571. package/dist/rerankers/cross-encoder.js +19 -9
  572. package/dist/rerankers/index.js +2 -1
  573. package/dist/rerankers/jev.js +2 -1
  574. package/dist/rerankers/llm.d.ts +6 -2
  575. package/dist/rerankers/llm.js +8 -3
  576. package/dist/rerankers/remote.d.ts +3 -1
  577. package/dist/rerankers/remote.js +5 -2
  578. package/dist/rerankers/types.d.ts +6 -2
  579. package/dist/search/bm25-search.d.ts +3 -1
  580. package/dist/search/bm25-search.js +15 -2
  581. package/dist/search/boosts.js +4 -3
  582. package/dist/search/embed-memories.d.ts +12 -4
  583. package/dist/search/embed-memories.js +96 -58
  584. package/dist/search/engine.d.ts +11 -0
  585. package/dist/search/engine.js +14 -0
  586. package/dist/search/goal-boost.d.ts +10 -3
  587. package/dist/search/goal-boost.js +13 -6
  588. package/dist/search/hybrid-score.d.ts +4 -1
  589. package/dist/search/hybrid-score.js +4 -1
  590. package/dist/search/hybrid.d.ts +23 -8
  591. package/dist/search/hybrid.js +12 -7
  592. package/dist/search/multihop.js +14 -13
  593. package/dist/search/path-context.d.ts +10 -3
  594. package/dist/search/path-context.js +10 -3
  595. package/dist/search/physics-search.d.ts +9 -4
  596. package/dist/search/physics-search.js +38 -14
  597. package/dist/search/rerank.d.ts +2 -1
  598. package/dist/search/rerank.js +2 -1
  599. package/dist/search/rrf.d.ts +14 -5
  600. package/dist/search/rrf.js +11 -4
  601. package/dist/search/vector.d.ts +8 -2
  602. package/dist/search/vector.js +14 -8
  603. package/dist/server/auth.d.ts +19 -15
  604. package/dist/server/auth.js +68 -38
  605. package/dist/server/boot.d.ts +4 -1
  606. package/dist/server/boot.js +115 -67
  607. package/dist/server/client-ip.d.ts +17 -5
  608. package/dist/server/client-ip.js +56 -21
  609. package/dist/server/cursor.d.ts +10 -3
  610. package/dist/server/cursor.js +10 -3
  611. package/dist/server/deadline.d.ts +5 -2
  612. package/dist/server/deadline.js +10 -3
  613. package/dist/server/key-check-bounds.js +12 -4
  614. package/dist/server/lifecycle.d.ts +4 -1
  615. package/dist/server/lifecycle.js +10 -4
  616. package/dist/server/mcp-http.d.ts +2 -1
  617. package/dist/server/mcp-http.js +37 -22
  618. package/dist/server/rate-limit.d.ts +17 -5
  619. package/dist/server/rate-limit.js +55 -26
  620. package/dist/server/ready.js +7 -4
  621. package/dist/server/request.d.ts +15 -4
  622. package/dist/server/request.js +42 -15
  623. package/dist/server/route-checks.d.ts +4 -1
  624. package/dist/server/route-checks.js +8 -3
  625. package/dist/server/route-table.d.ts +8 -6
  626. package/dist/server/route-table.js +550 -97
  627. package/dist/server/routes/admin.d.ts +7 -7
  628. package/dist/server/routes/admin.js +36 -15
  629. package/dist/server/routes/customer-notes.d.ts +5 -5
  630. package/dist/server/routes/customer-notes.js +5 -4
  631. package/dist/server/routes/decisions.d.ts +5 -5
  632. package/dist/server/routes/decisions.js +12 -6
  633. package/dist/server/routes/incidents.d.ts +5 -5
  634. package/dist/server/routes/incidents.js +10 -4
  635. package/dist/server/routes/memories.d.ts +8 -8
  636. package/dist/server/routes/memories.js +12 -17
  637. package/dist/server/routes/object-routes.d.ts +8 -5
  638. package/dist/server/routes/object-routes.js +4 -2
  639. package/dist/server/routes/policies.d.ts +6 -6
  640. package/dist/server/routes/policies.js +11 -4
  641. package/dist/server/routes/predictions.d.ts +5 -5
  642. package/dist/server/routes/predictions.js +9 -4
  643. package/dist/server/routes/processes.d.ts +5 -5
  644. package/dist/server/routes/processes.js +15 -6
  645. package/dist/server/routes/project-briefs.d.ts +6 -6
  646. package/dist/server/routes/project-briefs.js +3 -2
  647. package/dist/server/routes/recall.d.ts +3 -3
  648. package/dist/server/routes/recall.js +21 -10
  649. package/dist/server/routes/skills.d.ts +6 -6
  650. package/dist/server/routes/skills.js +12 -4
  651. package/dist/server/server-detect.d.ts +24 -8
  652. package/dist/server/server-detect.js +57 -22
  653. package/dist/server/sleep-child.js +16 -10
  654. package/dist/server/sleep-offload.d.ts +8 -5
  655. package/dist/server/sleep-offload.js +40 -18
  656. package/dist/server/tls.d.ts +10 -2
  657. package/dist/server/tls.js +25 -5
  658. package/dist/server/types.d.ts +41 -24
  659. package/dist/server/validation.d.ts +4 -1
  660. package/dist/server/validation.js +22 -9
  661. package/dist/server.d.ts +17 -49
  662. package/dist/server.js +33 -40
  663. package/dist/sharing/global-store.d.ts +6 -12
  664. package/dist/sharing/global-store.js +8 -48
  665. package/dist/sharing/global-sync.d.ts +3 -1
  666. package/dist/sharing/global-sync.js +17 -7
  667. package/dist/sharing/project-merge.d.ts +25 -7
  668. package/dist/sharing/project-merge.js +49 -17
  669. package/dist/sharing/search-both.d.ts +8 -4
  670. package/dist/sharing/search-both.js +28 -14
  671. package/dist/sharing/share.d.ts +8 -4
  672. package/dist/sharing/share.js +40 -18
  673. package/dist/store/ambient.js +10 -5
  674. package/dist/store/audit-event.d.ts +2 -2
  675. package/dist/store/audit-event.js +8 -3
  676. package/dist/store/audit.d.ts +6 -3
  677. package/dist/store/audit.js +16 -6
  678. package/dist/store/auth.d.ts +4 -2
  679. package/dist/store/auth.js +63 -20
  680. package/dist/store/busy.d.ts +9 -0
  681. package/dist/store/busy.js +16 -0
  682. package/dist/store/candidates.d.ts +12 -5
  683. package/dist/store/candidates.js +90 -41
  684. package/dist/store/capture-write.d.ts +2 -1
  685. package/dist/store/capture-write.js +2 -1
  686. package/dist/store/card-detail.d.ts +4 -4
  687. package/dist/store/card-detail.js +15 -8
  688. package/dist/store/cards.d.ts +24 -10
  689. package/dist/store/cards.js +97 -63
  690. package/dist/store/compaction-caller.d.ts +2 -1
  691. package/dist/store/compaction-caller.js +2 -1
  692. package/dist/store/compactions-record.d.ts +14 -8
  693. package/dist/store/compactions-record.js +101 -37
  694. package/dist/store/compactions.js +35 -15
  695. package/dist/store/conflicts.d.ts +16 -5
  696. package/dist/store/conflicts.js +104 -48
  697. package/dist/store/connectors/dlq.d.ts +17 -5
  698. package/dist/store/connectors/dlq.js +58 -6
  699. package/dist/store/connectors/event-log.d.ts +122 -0
  700. package/dist/store/connectors/event-log.js +25 -0
  701. package/dist/store/connectors/github.d.ts +6 -3
  702. package/dist/store/connectors/github.js +30 -48
  703. package/dist/store/connectors/slack.d.ts +2 -1
  704. package/dist/store/connectors/slack.js +31 -47
  705. package/dist/store/dashboard-reads.d.ts +7 -3
  706. package/dist/store/dashboard-reads.js +32 -10
  707. package/dist/store/delete-and-batch.d.ts +17 -11
  708. package/dist/store/delete-and-batch.js +70 -28
  709. package/dist/store/delivery-recorder.d.ts +10 -7
  710. package/dist/store/delivery-recorder.js +70 -37
  711. package/dist/store/descendant-page.d.ts +2 -1
  712. package/dist/store/descendant-page.js +26 -10
  713. package/dist/store/diagnostics.d.ts +2 -1
  714. package/dist/store/diagnostics.js +2 -1
  715. package/dist/store/doctor-reads.d.ts +2 -1
  716. package/dist/store/doctor-reads.js +13 -5
  717. package/dist/store/dormant.d.ts +19 -11
  718. package/dist/store/dormant.js +45 -19
  719. package/dist/store/embeddings/index.d.ts +13 -9
  720. package/dist/store/embeddings/index.js +19 -12
  721. package/dist/store/entry-reads.d.ts +72 -21
  722. package/dist/store/entry-reads.js +215 -69
  723. package/dist/store/entry-row.d.ts +10 -6
  724. package/dist/store/entry-row.js +26 -14
  725. package/dist/store/entry-writes.d.ts +28 -13
  726. package/dist/store/entry-writes.js +61 -22
  727. package/dist/store/failure-log-at.js +1 -1
  728. package/dist/store/failure-log.d.ts +4 -2
  729. package/dist/store/failure-log.js +13 -6
  730. package/dist/store/gated-write.d.ts +3 -3
  731. package/dist/store/gated-write.js +3 -3
  732. package/dist/store/goals.d.ts +5 -4
  733. package/dist/store/goals.js +11 -12
  734. package/dist/store/graph-apply.d.ts +21 -0
  735. package/dist/{graph/write.js → store/graph-apply.js} +31 -11
  736. package/dist/store/graph-queue.d.ts +9 -6
  737. package/dist/store/graph-queue.js +15 -10
  738. package/dist/store/graph-reads.d.ts +16 -11
  739. package/dist/store/graph-reads.js +29 -19
  740. package/dist/store/graph-rows.d.ts +41 -3
  741. package/dist/store/graph-rows.js +10 -7
  742. package/dist/store/graph-view-rows.js +15 -7
  743. package/dist/store/graph-writes.d.ts +16 -10
  744. package/dist/store/graph-writes.js +59 -36
  745. package/dist/store/half-life.js +2 -2
  746. package/dist/store/handoffs.d.ts +13 -7
  747. package/dist/store/handoffs.js +44 -22
  748. package/dist/store/index-and-stats.d.ts +2 -2
  749. package/dist/store/index-and-stats.js +6 -5
  750. package/dist/store/index.d.ts +4 -2
  751. package/dist/store/index.js +2 -1
  752. package/dist/store/key-audit.d.ts +2 -1
  753. package/dist/store/key-audit.js +2 -1
  754. package/dist/store/key-writes.d.ts +2 -1
  755. package/dist/store/key-writes.js +9 -2
  756. package/dist/store/ledger-turn.d.ts +4 -1
  757. package/dist/store/ledger-turn.js +7 -2
  758. package/dist/store/mirrors.d.ts +11 -4
  759. package/dist/store/mirrors.js +96 -19
  760. package/dist/store/narrow.d.ts +6 -0
  761. package/dist/store/narrow.js +11 -0
  762. package/dist/store/open.d.ts +6 -3
  763. package/dist/store/open.js +20 -10
  764. package/dist/store/pilot-arm.d.ts +2 -1
  765. package/dist/store/pilot-arm.js +18 -6
  766. package/dist/store/planning-fallacy-evidence.d.ts +2 -2
  767. package/dist/store/planning-fallacy-evidence.js +8 -5
  768. package/dist/store/port/agent-import.d.ts +62 -0
  769. package/dist/store/port/agent-import.js +2 -0
  770. package/dist/store/port/consolidation.d.ts +129 -0
  771. package/dist/store/port/consolidation.js +2 -0
  772. package/dist/store/port/learning.d.ts +19 -0
  773. package/dist/store/port/learning.js +2 -0
  774. package/dist/store/port/local-files.d.ts +18 -0
  775. package/dist/store/port/local-files.js +2 -0
  776. package/dist/store/port/promotion.d.ts +20 -0
  777. package/dist/store/port/promotion.js +3 -0
  778. package/dist/store/port-groups.d.ts +160 -0
  779. package/dist/store/port-groups.js +2 -0
  780. package/dist/store/port.d.ts +261 -219
  781. package/dist/store/port.js +3 -9
  782. package/dist/store/predictions.d.ts +14 -10
  783. package/dist/store/predictions.js +37 -17
  784. package/dist/store/project-tags.d.ts +4 -1
  785. package/dist/store/project-tags.js +16 -5
  786. package/dist/store/quality-repair.d.ts +8 -4
  787. package/dist/store/quality-repair.js +53 -20
  788. package/dist/store/quarantine.d.ts +1 -0
  789. package/dist/store/quarantine.js +23 -9
  790. package/dist/store/raw-archive.d.ts +5 -4
  791. package/dist/store/raw-archive.js +11 -10
  792. package/dist/store/recall-trace.d.ts +22 -17
  793. package/dist/store/recall-trace.js +128 -64
  794. package/dist/store/rejected-values.d.ts +15 -10
  795. package/dist/store/rejected-values.js +46 -20
  796. package/dist/store/rejection.d.ts +12 -11
  797. package/dist/store/rejection.js +18 -19
  798. package/dist/store/report-reads.d.ts +2 -1
  799. package/dist/store/report-reads.js +2 -1
  800. package/dist/store/rows.d.ts +7 -5
  801. package/dist/store/rows.js +20 -13
  802. package/dist/store/rule-sql.d.ts +7 -3
  803. package/dist/store/rule-sql.js +26 -13
  804. package/dist/store/search-rows.d.ts +16 -11
  805. package/dist/store/search-rows.js +54 -32
  806. package/dist/store/sessions.d.ts +12 -10
  807. package/dist/store/sessions.js +40 -21
  808. package/dist/store/set-aside.d.ts +2 -2
  809. package/dist/store/set-aside.js +18 -5
  810. package/dist/store/sqlite/agent-import.d.ts +3 -0
  811. package/dist/store/sqlite/agent-import.js +77 -0
  812. package/dist/store/sqlite/cards-group.d.ts +6 -0
  813. package/dist/store/sqlite/cards-group.js +37 -0
  814. package/dist/store/sqlite/conflicts-group.d.ts +6 -0
  815. package/dist/store/sqlite/conflicts-group.js +18 -0
  816. package/dist/store/sqlite/connector-events-group.d.ts +2 -1
  817. package/dist/store/sqlite/connector-events-group.js +17 -6
  818. package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
  819. package/dist/store/sqlite/connector-writes-group.js +12 -5
  820. package/dist/store/sqlite/consolidation-group.d.ts +4 -0
  821. package/dist/store/sqlite/consolidation-group.js +64 -0
  822. package/dist/store/sqlite/dag-reads-group.js +1 -1
  823. package/dist/store/sqlite/dormant-group.d.ts +6 -0
  824. package/dist/store/sqlite/dormant-group.js +29 -0
  825. package/dist/store/sqlite/entry-writes-group.d.ts +9 -6
  826. package/dist/store/sqlite/entry-writes-group.js +37 -14
  827. package/dist/store/sqlite/error-codec.d.ts +4 -2
  828. package/dist/store/sqlite/error-codec.js +32 -10
  829. package/dist/store/sqlite/executor-counts.js +2 -1
  830. package/dist/store/sqlite/executor.d.ts +8 -3
  831. package/dist/store/sqlite/executor.js +56 -18
  832. package/dist/store/sqlite/global-promote.d.ts +5 -0
  833. package/dist/store/sqlite/global-promote.js +48 -0
  834. package/dist/store/sqlite/goals-group.d.ts +6 -0
  835. package/dist/store/sqlite/goals-group.js +23 -0
  836. package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
  837. package/dist/store/sqlite/graph-reads-group.js +2 -1
  838. package/dist/store/sqlite/held-connection.d.ts +8 -0
  839. package/dist/store/sqlite/held-connection.js +34 -7
  840. package/dist/store/sqlite/last-recall-group.d.ts +15 -0
  841. package/dist/store/sqlite/last-recall-group.js +62 -0
  842. package/dist/store/sqlite/learning-group.d.ts +4 -0
  843. package/dist/store/sqlite/learning-group.js +17 -0
  844. package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
  845. package/dist/store/sqlite/maintenance-groups.js +61 -0
  846. package/dist/store/sqlite/object-rows.d.ts +6 -3
  847. package/dist/store/sqlite/object-rows.js +34 -5
  848. package/dist/store/sqlite/objects-group.d.ts +5 -4
  849. package/dist/store/sqlite/objects-group.js +97 -38
  850. package/dist/store/sqlite/predictions-group.d.ts +2 -1
  851. package/dist/store/sqlite/predictions-group.js +4 -2
  852. package/dist/store/sqlite/promotion-group.d.ts +3 -0
  853. package/dist/store/sqlite/promotion-group.js +10 -0
  854. package/dist/store/sqlite/quarantine-group.d.ts +2 -1
  855. package/dist/store/sqlite/quarantine-group.js +4 -2
  856. package/dist/store/sqlite/reports-group.d.ts +6 -0
  857. package/dist/store/sqlite/reports-group.js +33 -0
  858. package/dist/store/sqlite/request-scope.d.ts +6 -0
  859. package/dist/store/sqlite/request-scope.js +18 -0
  860. package/dist/store/sqlite/sessions-group.d.ts +6 -0
  861. package/dist/store/sqlite/sessions-group.js +46 -0
  862. package/dist/store/sqlite/store.d.ts +22 -18
  863. package/dist/store/sqlite/store.js +95 -33
  864. package/dist/store/sqlite/vector-pack.js +2 -1
  865. package/dist/store/sqlite/vector-reads-group.js +2 -1
  866. package/dist/store/sqlite/worker-jobs.d.ts +2 -1
  867. package/dist/store/sqlite/worker-jobs.js +19 -7
  868. package/dist/store/sqlite/worker-ops.d.ts +10 -5
  869. package/dist/store/sqlite/worker-ops.js +6 -3
  870. package/dist/store/sqlite/worker-store.d.ts +4 -3
  871. package/dist/store/sqlite/worker-store.js +24 -14
  872. package/dist/store/summaries.d.ts +25 -11
  873. package/dist/store/summaries.js +84 -27
  874. package/dist/store/summary-dirty.d.ts +2 -1
  875. package/dist/store/summary-dirty.js +2 -1
  876. package/dist/store/tenant.d.ts +3 -2
  877. package/dist/store/tenant.js +5 -4
  878. package/dist/store/token-ledger-rows.js +8 -4
  879. package/dist/store/token-ledger.d.ts +19 -13
  880. package/dist/store/token-ledger.js +27 -14
  881. package/dist/store/tombstone-checks.d.ts +4 -1
  882. package/dist/store/tombstone-checks.js +10 -1
  883. package/dist/store/usage-reports.js +2 -1
  884. package/dist/store/vector-index.d.ts +8 -5
  885. package/dist/store/vector-index.js +28 -11
  886. package/dist/store/working-memory.d.ts +6 -4
  887. package/dist/store/working-memory.js +14 -9
  888. package/dist/support-bundle.js +10 -5
  889. package/dist/trust/quarantine.d.ts +1 -2
  890. package/dist/trust/quarantine.js +1 -5
  891. package/dist/trust/reject-flow.d.ts +12 -3
  892. package/dist/trust/reject-flow.js +12 -4
  893. package/dist/util/anthropic-messages.d.ts +7 -2
  894. package/dist/util/anthropic-messages.js +18 -7
  895. package/dist/util/atomic-write.d.ts +8 -3
  896. package/dist/util/atomic-write.js +36 -21
  897. package/dist/util/compaction-items.d.ts +4 -1
  898. package/dist/util/compaction-items.js +8 -2
  899. package/dist/util/crash-handlers.d.ts +7 -2
  900. package/dist/util/crash-handlers.js +13 -4
  901. package/dist/util/env.d.ts +26 -5
  902. package/dist/util/env.js +87 -25
  903. package/dist/util/format.d.ts +2 -0
  904. package/dist/util/format.js +4 -0
  905. package/dist/util/home-path.js +12 -6
  906. package/dist/util/hook-payload.d.ts +3 -1
  907. package/dist/util/hook-payload.js +3 -1
  908. package/dist/util/http-retry.d.ts +12 -6
  909. package/dist/util/http-retry.js +16 -6
  910. package/dist/util/http-util.d.ts +20 -5
  911. package/dist/util/http-util.js +28 -9
  912. package/dist/util/json.d.ts +4 -1
  913. package/dist/util/json.js +4 -1
  914. package/dist/util/keyset.js +2 -1
  915. package/dist/util/limits.js +4 -2
  916. package/dist/util/log.d.ts +13 -5
  917. package/dist/util/log.js +29 -6
  918. package/dist/util/net.d.ts +5 -0
  919. package/dist/util/net.js +19 -0
  920. package/dist/util/real-path.d.ts +2 -1
  921. package/dist/util/real-path.js +4 -3
  922. package/dist/util/request-scope.d.ts +16 -4
  923. package/dist/util/request-scope.js +19 -6
  924. package/dist/util/same-text.d.ts +10 -3
  925. package/dist/util/same-text.js +10 -3
  926. package/dist/util/secret-detect.d.ts +24 -7
  927. package/dist/util/secret-detect.js +49 -14
  928. package/dist/util/spawn-argv.d.ts +11 -0
  929. package/dist/util/spawn-argv.js +66 -0
  930. package/dist/util/sql.d.ts +3 -0
  931. package/dist/util/sql.js +6 -0
  932. package/dist/util/sqlite-blocked.d.ts +15 -4
  933. package/dist/util/sqlite-blocked.js +19 -6
  934. package/dist/util/stored-json.d.ts +4 -1
  935. package/dist/util/stored-json.js +6 -2
  936. package/dist/util/stream-tee.d.ts +2 -1
  937. package/dist/util/stream-tee.js +8 -5
  938. package/dist/util/transcript-tail.d.ts +4 -1
  939. package/dist/util/transcript-tail.js +4 -1
  940. package/dist/util/vector-codec.d.ts +4 -0
  941. package/dist/util/vector-codec.js +15 -0
  942. package/dist/util/version.d.ts +8 -3
  943. package/dist/util/version.js +8 -3
  944. package/dist/util/write-budget.d.ts +7 -2
  945. package/dist/util/write-budget.js +5 -2
  946. package/dist/util/yaml.d.ts +4 -1
  947. package/dist/util/yaml.js +4 -1
  948. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  949. package/extensions/openclaw-plugin/package.json +1 -1
  950. package/openclaw.plugin.json +1 -1
  951. package/package.json +4 -1
  952. package/scripts/postinstall.cjs +3 -1
  953. package/dist/api/audit.js +0 -56
  954. package/dist/api/cards.d.ts +0 -42
  955. package/dist/api/conflicts.d.ts +0 -28
  956. package/dist/api/conflicts.js +0 -61
  957. package/dist/api/dormant.d.ts +0 -14
  958. package/dist/api/dormant.js +0 -58
  959. package/dist/api/goals.d.ts +0 -18
  960. package/dist/api/graph.d.ts +0 -8
  961. package/dist/api/graph.js +0 -7
  962. package/dist/api/learn.js +0 -124
  963. package/dist/api/memories.d.ts +0 -23
  964. package/dist/api/memories.js +0 -46
  965. package/dist/api/objects.d.ts +0 -9
  966. package/dist/api/on-store.d.ts +0 -16
  967. package/dist/api/on-store.js +0 -38
  968. package/dist/api/outcome.d.ts +0 -19
  969. package/dist/api/outcome.js +0 -21
  970. package/dist/api/predictions.d.ts +0 -11
  971. package/dist/api/promote.d.ts +0 -36
  972. package/dist/api/promote.js +0 -65
  973. package/dist/api/recall-core.d.ts +0 -4
  974. package/dist/api/recall-core.js +0 -120
  975. package/dist/api/recall-finish.d.ts +0 -53
  976. package/dist/api/recall-finish.js +0 -30
  977. package/dist/api/recall-history.d.ts +0 -64
  978. package/dist/api/recall-history.js +0 -159
  979. package/dist/api/recall-record.d.ts +0 -43
  980. package/dist/api/recall-record.js +0 -78
  981. package/dist/api/recall-request.js +0 -121
  982. package/dist/api/recall.d.ts +0 -6
  983. package/dist/api/refine.d.ts +0 -7
  984. package/dist/api/refine.js +0 -10
  985. package/dist/api/session-owners.d.ts +0 -4
  986. package/dist/api/session-owners.js +0 -17
  987. package/dist/api/sleep-run.d.ts +0 -26
  988. package/dist/api/sleep.js +0 -10
  989. package/dist/cli/lenient-id.d.ts +0 -2
  990. package/dist/cli/lenient-id.js +0 -13
  991. package/dist/graph/write.d.ts +0 -14
  992. package/dist/store/sqlite/busy.d.ts +0 -3
  993. package/dist/store/sqlite/busy.js +0 -8
  994. package/dist/store/sqlite/local.d.ts +0 -21
  995. package/dist/store/sqlite/local.js +0 -39
package/dist/cli/auth.js CHANGED
@@ -5,7 +5,7 @@ import { printError } from './output.js';
5
5
  import { boolFlag, stringFlag } from './flag-values.js';
6
6
  import { resolveAuthRoot } from './shared.js';
7
7
  import { errorMessage } from '../util/log.js';
8
- import { CliExit } from './exit.js';
8
+ import { fail } from './exit.js';
9
9
  // ---------------------------------------------------------------------------
10
10
  // Auth subcommands
11
11
  // ---------------------------------------------------------------------------
@@ -13,8 +13,7 @@ import { CliExit } from './exit.js';
13
13
  function roleFlagOrExit(flags) {
14
14
  const roleFlag = stringFlag(flags, 'role');
15
15
  if (roleFlag !== undefined && roleFlag !== 'admin' && roleFlag !== 'member') {
16
- printError(`Invalid --role value: '${roleFlag}'. Use 'admin' or 'member'.`);
17
- throw new CliExit(1);
16
+ fail(`Invalid --role value: '${roleFlag}'. Use 'admin' or 'member'.`);
18
17
  }
19
18
  return roleFlag;
20
19
  }
@@ -28,7 +27,7 @@ function noteMintDefaults(roleGiven, expiryGiven) {
28
27
  if (notes.length > 0)
29
28
  printError(`hippo auth create: ${notes.join('; ')}.`);
30
29
  }
31
- function cmdAuthCreate(hippoRoot, defaultTenantId, flags) {
30
+ async function cmdAuthCreate(hippoRoot, defaultTenantId, flags) {
32
31
  const root = resolveAuthRoot(hippoRoot, flags);
33
32
  const tenantFlag = stringFlag(flags, 'tenant');
34
33
  const labelFlag = stringFlag(flags, 'label');
@@ -37,21 +36,20 @@ function cmdAuthCreate(hippoRoot, defaultTenantId, flags) {
37
36
  const ttlFlag = stringFlag(flags, 'ttl-days');
38
37
  const ttlDays = ttlFlag === undefined ? undefined : Number(ttlFlag);
39
38
  const noExpiry = boolFlag(flags, 'no-expiry');
40
- // The CLI's --tenant flag is the only legitimate cross-tenant override
41
- // (admin minting a key for another tenant from the local machine). It
42
- // flows through ctx.tenantId, NOT through opts — authCreate's opts no
43
- // longer accepts a tenantId field, so the HTTP layer cannot smuggle a
44
- // body.tenantId across.
39
+ // The CLI's --tenant flag is the only legitimate cross-tenant
40
+ // override (admin minting a key for another tenant from the
41
+ // local machine). It flows through ctx.tenantId, NOT through
42
+ // opts — authCreate's opts no longer accepts a tenantId field,
43
+ // so the HTTP layer cannot smuggle a body.tenantId across.
45
44
  const ctx = cliApiContext(root, tenantFlag ?? defaultTenantId);
46
45
  let result;
47
46
  try {
48
- result = api.authCreate(ctx, { label: labelFlag, role, ttlDays, noExpiry: noExpiry || undefined });
47
+ result = await api.authCreate(ctx, { label: labelFlag, role, ttlDays, noExpiry: noExpiry || undefined });
49
48
  }
50
49
  catch (err) {
51
50
  if (!(err instanceof api.BadRequestError))
52
51
  throw err;
53
- printError(`hippo auth create: ${err.message} (--ttl-days, --no-expiry).`);
54
- throw new CliExit(1);
52
+ fail(`hippo auth create: ${err.message} (--ttl-days, --no-expiry).`);
55
53
  }
56
54
  noteMintDefaults(role !== undefined, ttlFlag !== undefined || noExpiry);
57
55
  if (asJson) {
@@ -103,8 +101,7 @@ async function keyContext(root, tenantId, keyId) {
103
101
  const hostCtx = cliApiContext(root, tenantId);
104
102
  const keyTenant = await api.authKeyTenant(hostCtx, keyId);
105
103
  if (keyTenant === undefined) {
106
- printError(`Unknown key_id: ${keyId}`);
107
- throw new CliExit(1);
104
+ fail(`Unknown key_id: ${keyId}`);
108
105
  }
109
106
  return { ...hostCtx, tenantId: keyTenant };
110
107
  }
@@ -112,11 +109,10 @@ async function cmdAuthRevoke(hippoRoot, tenantId, keyId, flags) {
112
109
  const ctx = await keyContext(resolveAuthRoot(hippoRoot, flags), tenantId, keyId);
113
110
  let revokedAt;
114
111
  try {
115
- revokedAt = api.authRevoke(ctx, keyId).revokedAt;
112
+ revokedAt = (await api.authRevoke(ctx, keyId)).revokedAt;
116
113
  }
117
114
  catch (err) {
118
- printError(`Error: ${errorMessage(err)}`);
119
- throw new CliExit(1);
115
+ fail(`Error: ${errorMessage(err)}`);
120
116
  }
121
117
  if (flags['json']) {
122
118
  console.log(JSON.stringify({ keyId, revokedAt }));
@@ -124,18 +120,18 @@ async function cmdAuthRevoke(hippoRoot, tenantId, keyId, flags) {
124
120
  }
125
121
  console.log(`Revoked ${keyId} at ${revokedAt}`);
126
122
  }
127
- /** `hippo auth grant|ungrant <key_id> <scope>`, routed through api so the tenant, restricted-scope and audit checks live in one place. */
123
+ /** `hippo auth grant|ungrant <key_id> <scope>`, routed through api so the tenant, restricted-scope and audit checks
124
+ * live in one place. */
128
125
  async function cmdAuthScopeGrant(hippoRoot, tenantId, keyId, scope, grant, flags) {
129
126
  const ctx = await keyContext(resolveAuthRoot(hippoRoot, flags), tenantId, keyId);
130
127
  try {
131
128
  if (grant)
132
- api.authGrant(ctx, keyId, scope);
129
+ await api.authGrant(ctx, keyId, scope);
133
130
  else
134
- api.authUngrant(ctx, keyId, scope);
131
+ await api.authUngrant(ctx, keyId, scope);
135
132
  }
136
133
  catch (err) {
137
- printError(`Error: ${errorMessage(err)}`);
138
- throw new CliExit(1);
134
+ fail(`Error: ${errorMessage(err)}`);
139
135
  }
140
136
  if (flags['json']) {
141
137
  console.log(JSON.stringify({ keyId, scope, granted: grant }));
@@ -146,13 +142,12 @@ async function cmdAuthScopeGrant(hippoRoot, tenantId, keyId, scope, grant, flags
146
142
  export async function handleAuth({ hippoRoot, tenantId, args, flags }) {
147
143
  const sub = args[0];
148
144
  if (!sub) {
149
- printError('Usage: hippo auth <create|list|revoke|grant|ungrant> [options]');
150
- throw new CliExit(1);
145
+ fail('Usage: hippo auth <create|list|revoke|grant|ungrant> [options]');
151
146
  }
152
147
  const subArgs = args.slice(1);
153
148
  switch (sub) {
154
149
  case 'create':
155
- cmdAuthCreate(hippoRoot, tenantId, flags);
150
+ await cmdAuthCreate(hippoRoot, tenantId, flags);
156
151
  return;
157
152
  case 'list':
158
153
  cmdAuthList(hippoRoot, tenantId, flags);
@@ -160,8 +155,7 @@ export async function handleAuth({ hippoRoot, tenantId, args, flags }) {
160
155
  case 'revoke': {
161
156
  const keyId = subArgs[0];
162
157
  if (!keyId) {
163
- printError('Usage: hippo auth revoke <key_id>');
164
- throw new CliExit(1);
158
+ fail('Usage: hippo auth revoke <key_id>');
165
159
  }
166
160
  await cmdAuthRevoke(hippoRoot, tenantId, keyId, flags);
167
161
  return;
@@ -170,15 +164,13 @@ export async function handleAuth({ hippoRoot, tenantId, args, flags }) {
170
164
  case 'ungrant': {
171
165
  const [keyId, scope] = subArgs;
172
166
  if (!keyId || !scope) {
173
- printError(`Usage: hippo auth ${sub} <key_id> <scope>`);
174
- throw new CliExit(1);
167
+ fail(`Usage: hippo auth ${sub} <key_id> <scope>`);
175
168
  }
176
169
  await cmdAuthScopeGrant(hippoRoot, tenantId, keyId, scope, sub === 'grant', flags);
177
170
  return;
178
171
  }
179
172
  default:
180
- printError(`Unknown auth subcommand: ${sub}. Expected: create | list | revoke | grant | ungrant.`);
181
- throw new CliExit(1);
173
+ fail(`Unknown auth subcommand: ${sub}. Expected: create | list | revoke | grant | ungrant.`);
182
174
  }
183
175
  }
184
176
  //# sourceMappingURL=auth.js.map
@@ -1,2 +1,2 @@
1
- export declare const handleProjectBrief: (ctx: import("./flag-values.js").CommandContext) => void;
1
+ export declare const handleProjectBrief: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
2
2
  //# sourceMappingURL=briefs.d.ts.map
@@ -3,28 +3,27 @@ import * as briefsModule from '../objects/project-briefs.js';
3
3
  import { errorMessage } from '../util/log.js';
4
4
  import { printError } from './output.js';
5
5
  import { boolFlag, stringFlag } from './flag-values.js';
6
- import { CliExit } from './exit.js';
6
+ import { fail } from './exit.js';
7
7
  import { requiredText, versionedVerbs } from './versioned-verbs.js';
8
8
  function printBriefRow(b) {
9
9
  console.log(`#${b.id} [${b.status}] v${b.version} repo="${b.repo}" memory=${b.memoryId ?? '-'}`);
10
10
  if (b.changeSummary)
11
11
  console.log(` change: ${b.changeSummary}`);
12
12
  }
13
- function briefRefresh(hippoRoot, tenantId, args, flags) {
13
+ async function briefRefresh(objects, hippoRoot, tenantId, args, flags) {
14
14
  const repoRaw = args[1];
15
15
  if (!repoRaw) {
16
- printError('Usage: hippo brief refresh "<repo>" [--dry-run]');
17
- throw new CliExit(1);
16
+ fail('Usage: hippo brief refresh "<repo>" [--dry-run]');
18
17
  }
19
18
  const dryRun = boolFlag(flags, 'dry-run');
20
19
  try {
21
20
  if (dryRun) {
22
- const { markdown, receiptCount } = briefsModule.assembleBriefFromReceipts(hippoRoot, tenantId, repoRaw);
21
+ const { markdown, receiptCount } = await briefsModule.briefFromReceipts(objects, tenantId, repoRaw);
23
22
  printError(`(dry-run: assembled from ${receiptCount} receipt(s); brief NOT written)`);
24
23
  console.log(markdown);
25
24
  return;
26
25
  }
27
- const created = briefsModule.refreshBrief(hippoRoot, tenantId, repoRaw, 'cli');
26
+ const created = await briefsModule.refreshedBrief(objects, { hippoRoot, tenantId, actor: 'cli' }, repoRaw);
28
27
  console.log(`Project brief #${created.id} recorded (v${created.version}) for repo "${created.repo}".`);
29
28
  if (created.changeSummary)
30
29
  console.log(` change: ${created.changeSummary}`);
@@ -32,11 +31,10 @@ function briefRefresh(hippoRoot, tenantId, args, flags) {
32
31
  console.log(` memory: ${created.memoryId}`);
33
32
  }
34
33
  catch (e) {
35
- printError(errorMessage(e));
36
- throw new CliExit(1);
34
+ fail(errorMessage(e));
37
35
  }
38
36
  }
39
- const briefKind = (hippoRoot, tenantId) => ({
37
+ const briefKind = (objects, hippoRoot, tenantId) => ({
40
38
  names: { cmd: 'brief', noun: 'Project brief', idLabel: 'brief' },
41
39
  plural: 'project briefs',
42
40
  states: briefsModule.VALID_BRIEF_STATES,
@@ -52,13 +50,20 @@ const briefKind = (hippoRoot, tenantId) => ({
52
50
  bodyRequired: '--summary "<text>"',
53
51
  body: (flags) => requiredText(flags, 'summary'),
54
52
  keyOf: (b) => b.repo,
55
- save: (repo, summary, extraTags, from) => briefsModule.saveProjectBrief(hippoRoot, tenantId, {
56
- repo, summary, extraTags, changeSummary: from?.changeSummary, supersedesBriefId: from?.id,
53
+ save: (repo, summary, extraTags, from) => briefsModule.saveProjectBrief(objects, hippoRoot, tenantId, {
54
+ repo,
55
+ summary,
56
+ extraTags,
57
+ changeSummary: from?.changeSummary,
58
+ supersedesBriefId: from?.id,
57
59
  }),
58
60
  recorded: (b) => `Project brief recorded: #${b.id} (v${b.version}) for repo "${b.repo}"`,
59
- list: (opts, flags) => briefsModule.loadProjectBriefs(hippoRoot, tenantId, { ...opts, repo: stringFlag(flags, 'repo')?.trim() || undefined }),
60
- loadById: (id) => briefsModule.loadProjectBriefById(hippoRoot, tenantId, id),
61
- close: (id) => briefsModule.closeProjectBrief(hippoRoot, tenantId, id),
61
+ list: (opts, flags) => briefsModule.loadProjectBriefs(objects, tenantId, {
62
+ ...opts,
63
+ repo: stringFlag(flags, 'repo')?.trim() || undefined,
64
+ }),
65
+ loadById: (id) => briefsModule.loadProjectBriefById(objects, tenantId, id),
66
+ close: (id) => briefsModule.closeProjectBrief(objects, tenantId, id),
62
67
  printRow: printBriefRow,
63
68
  printDetail: (b) => {
64
69
  console.log(` repo: ${b.repo}`);
@@ -66,7 +71,7 @@ const briefKind = (hippoRoot, tenantId) => ({
66
71
  console.log(` version: ${b.version}`);
67
72
  console.log(` summary: ${b.summary}`);
68
73
  },
69
- extra: { sub: 'refresh', run: (args, flags) => briefRefresh(hippoRoot, tenantId, args, flags) },
74
+ extra: { sub: 'refresh', run: (args, flags) => briefRefresh(objects, hippoRoot, tenantId, args, flags) },
70
75
  });
71
76
  export const handleProjectBrief = versionedVerbs(briefKind);
72
77
  //# sourceMappingURL=briefs.js.map
@@ -1,4 +1,4 @@
1
1
  import { type CommandContext } from './flag-values.js';
2
2
  /** Runs `hippo card <subcommand>`: rejects flags the subcommand never reads, then hands off to its handler. */
3
- export declare function handleCard({ hippoRoot, tenantId, args, flags }: CommandContext): void;
3
+ export declare function handleCard({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
4
4
  //# sourceMappingURL=card.d.ts.map
package/dist/cli/card.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // The `hippo card` verb (the agent work board); main() loads it lazily from the command table.
2
- import * as cardsApi from '../api/cards.js';
2
+ import * as cardsApi from '../api/objects/cards.js';
3
3
  import { cliApiContext } from './api-context.js';
4
4
  import { isHandoffOutcome } from '../core/handoff.js';
5
5
  import { isCardStatus } from '../core/card.js';
@@ -7,7 +7,7 @@ import { printError } from './output.js';
7
7
  import { stringFlagOrExit } from './flag-values.js';
8
8
  import { requireInit } from './shared.js';
9
9
  import { errorMessage } from '../util/log.js';
10
- import { CliExit } from './exit.js';
10
+ import { CliExit, fail } from './exit.js';
11
11
  // Each subcommand's usage line, written once so the repeated checks cannot drift.
12
12
  const CARD_USAGE = {
13
13
  create: 'hippo card create --title "..." [--repo <name>] [--contract <text>] [--budget <n>] [--depends-on <id>...]',
@@ -50,7 +50,8 @@ function printCard(detail) {
50
50
  if (runs.length > 0) {
51
51
  console.log('\n### Runs');
52
52
  for (const run of runs) {
53
- console.log(`- run ${run.id}: ${run.runtime} started ${run.started}${run.ended ? ` ended ${run.ended} (${run.outcome})` : ' (open)'}`);
53
+ const ended = run.ended ? ` ended ${run.ended} (${run.outcome})` : ' (open)';
54
+ console.log(`- run ${run.id}: ${run.runtime} started ${run.started}${ended}`);
54
55
  }
55
56
  }
56
57
  if (comments.length > 0) {
@@ -73,16 +74,15 @@ function cardRunFlag(flags) {
73
74
  return undefined;
74
75
  const n = Number(raw);
75
76
  if (!/^\d+$/.test(raw) || !Number.isSafeInteger(n) || n <= 0) {
76
- printError(`Invalid --run: "${raw}" (expected a positive integer).`);
77
- throw new CliExit(1);
77
+ fail(`Invalid --run: "${raw}" (expected a positive integer).`);
78
78
  }
79
79
  return n;
80
80
  }
81
81
  // Reads after the store already refused, so this only explains the refusal, never changes it.
82
- function cardRefusal(hippoRoot, tenantId, id) {
82
+ async function cardRefusal(hippoRoot, tenantId, id) {
83
83
  const ctx = cliApiContext(hippoRoot, tenantId);
84
- const card = cardsApi.cardLoad(ctx, id);
85
- const liveRun = cardsApi.cardRuns(ctx, id).find((r) => !r.ended);
84
+ const card = await cardsApi.cardLoad(ctx, id);
85
+ const liveRun = (await cardsApi.cardRuns(ctx, id)).find((r) => !r.ended);
86
86
  return `status ${card?.status ?? 'unknown'}, live run ${liveRun?.id ?? 'none'}`;
87
87
  }
88
88
  const CARD_SUBCOMMAND_FLAGS = {
@@ -102,8 +102,7 @@ export function handleCard({ hippoRoot, tenantId, args, flags }) {
102
102
  requireInit(hippoRoot);
103
103
  const subcommand = args[0] ?? '';
104
104
  if (!Object.hasOwn(CARD_SUBCOMMAND_FLAGS, subcommand)) {
105
- printError('Usage: hippo card <create|show|list|claim|heartbeat|block|review|complete|reclaim|comment>');
106
- throw new CliExit(1);
105
+ fail('Usage: hippo card <create|show|list|claim|heartbeat|block|review|complete|reclaim|comment>');
107
106
  }
108
107
  // SAFETY: hasOwn, unlike `in`, skips inherited keys such as constructor, so subcommand is a real key.
109
108
  const known = subcommand;
@@ -111,13 +110,12 @@ export function handleCard({ hippoRoot, tenantId, args, flags }) {
111
110
  for (const key of Object.keys(flags)) {
112
111
  if (!allowedFlags.includes(key)) {
113
112
  const valid = allowedFlags.length > 0 ? allowedFlags.map((f) => `--${f}`).join(', ') : '(none)';
114
- printError(`Unknown flag --${key} for hippo card ${subcommand}. Valid flags: ${valid}`);
115
- throw new CliExit(1);
113
+ fail(`Unknown flag --${key} for hippo card ${subcommand}. Valid flags: ${valid}`);
116
114
  }
117
115
  }
118
- CARD_HANDLERS[known](hippoRoot, tenantId, args, flags);
116
+ return CARD_HANDLERS[known](hippoRoot, tenantId, args, flags);
119
117
  }
120
- function cardCreate(hippoRoot, tenantId, _args, flags) {
118
+ async function cardCreate(hippoRoot, tenantId, _args, flags) {
121
119
  const title = stringFlagOrExit(flags, 'title') ?? '';
122
120
  if (!title) {
123
121
  throw usageError('create');
@@ -128,36 +126,32 @@ function cardCreate(hippoRoot, tenantId, _args, flags) {
128
126
  let budget;
129
127
  if (budgetRaw !== undefined) {
130
128
  if (!/^\d+$/.test(budgetRaw)) {
131
- printError(`Invalid budget: "${budgetRaw}" (expected a positive integer)`);
132
- throw new CliExit(1);
129
+ fail(`Invalid budget: "${budgetRaw}" (expected a positive integer)`);
133
130
  }
134
131
  budget = Number(budgetRaw);
135
132
  }
136
133
  const dependsOnFlag = flags['depends-on'];
137
134
  if (dependsOnFlag === true) {
138
- printError('--depends-on requires a value');
139
- throw new CliExit(1);
135
+ fail('--depends-on requires a value');
140
136
  }
141
137
  const dependsOn = Array.isArray(dependsOnFlag) ? dependsOnFlag : [];
142
138
  let card;
143
139
  try {
144
- card = cardsApi.cardCreate(cliApiContext(hippoRoot, tenantId), { title, repo, contract, budget, dependsOn });
140
+ card = await cardsApi.cardCreate(cliApiContext(hippoRoot, tenantId), { title, repo, contract, budget, dependsOn });
145
141
  }
146
142
  catch (error) {
147
- printError(errorMessage(error));
148
- throw new CliExit(1);
143
+ fail(errorMessage(error));
149
144
  }
150
145
  console.log(`Created card ${card.id} (status: ${card.status})`);
151
146
  }
152
- function cardShow(hippoRoot, tenantId, args, flags) {
147
+ async function cardShow(hippoRoot, tenantId, args, flags) {
153
148
  const id = args[1];
154
149
  if (!id) {
155
150
  throw usageError('show');
156
151
  }
157
- const detail = cardsApi.cardDetail(cliApiContext(hippoRoot, tenantId), id);
152
+ const detail = await cardsApi.cardDetail(cliApiContext(hippoRoot, tenantId), id);
158
153
  if (!detail) {
159
- printError(`No card found with id ${id}.`);
160
- throw new CliExit(1);
154
+ fail(`No card found with id ${id}.`);
161
155
  }
162
156
  if (flags['json']) {
163
157
  console.log(JSON.stringify(detail, null, 2));
@@ -165,13 +159,12 @@ function cardShow(hippoRoot, tenantId, args, flags) {
165
159
  }
166
160
  printCard(detail);
167
161
  }
168
- function cardList(hippoRoot, tenantId, _args, flags) {
162
+ async function cardList(hippoRoot, tenantId, _args, flags) {
169
163
  const status = stringFlagOrExit(flags, 'status');
170
164
  if (status !== undefined && !isCardStatus(status)) {
171
- printError(`Invalid status: "${status}".`);
172
- throw new CliExit(1);
165
+ fail(`Invalid status: "${status}".`);
173
166
  }
174
- const cards = cardsApi.cardList(cliApiContext(hippoRoot, tenantId), { status });
167
+ const cards = await cardsApi.cardList(cliApiContext(hippoRoot, tenantId), { status });
175
168
  if (flags['json']) {
176
169
  console.log(JSON.stringify({ cards }, null, 2));
177
170
  return;
@@ -181,10 +174,11 @@ function cardList(hippoRoot, tenantId, _args, flags) {
181
174
  return;
182
175
  }
183
176
  for (const card of cards) {
184
- console.log(`${card.id}\t${card.status}\t${card.title}${card.assigneeRuntime ? `\t(${card.assigneeRuntime})` : ''}`);
177
+ const assignee = card.assigneeRuntime ? `\t(${card.assigneeRuntime})` : '';
178
+ console.log(`${card.id}\t${card.status}\t${card.title}${assignee}`);
185
179
  }
186
180
  }
187
- function cardClaim(hippoRoot, tenantId, args, flags) {
181
+ async function cardClaim(hippoRoot, tenantId, args, flags) {
188
182
  const id = args[1];
189
183
  const runtime = stringFlagOrExit(flags, 'runtime') ?? '';
190
184
  if (!id || !runtime) {
@@ -193,19 +187,17 @@ function cardClaim(hippoRoot, tenantId, args, flags) {
193
187
  const sessionId = stringFlagOrExit(flags, 'session') || undefined;
194
188
  let card;
195
189
  try {
196
- card = cardsApi.cardClaim(cliApiContext(hippoRoot, tenantId), id, runtime, sessionId);
190
+ card = await cardsApi.cardClaim(cliApiContext(hippoRoot, tenantId), id, runtime, sessionId);
197
191
  }
198
192
  catch (error) {
199
- printError(errorMessage(error));
200
- throw new CliExit(1);
193
+ fail(errorMessage(error));
201
194
  }
202
195
  if (!card) {
203
- printError(`Could not claim card ${id} (not ready/blocked, or already claimed).`);
204
- throw new CliExit(1);
196
+ fail(`Could not claim card ${id} (not ready/blocked, or already claimed).`);
205
197
  }
206
198
  console.log(`Claimed card ${card.id} for ${runtime} (run ${card.runId}, lease until ${card.leaseUntil})`);
207
199
  }
208
- function cardHeartbeat(hippoRoot, tenantId, args, flags) {
200
+ async function cardHeartbeat(hippoRoot, tenantId, args, flags) {
209
201
  const id = args[1];
210
202
  const runId = cardRunFlag(flags);
211
203
  if (!id || runId === undefined) {
@@ -213,42 +205,37 @@ function cardHeartbeat(hippoRoot, tenantId, args, flags) {
213
205
  }
214
206
  let card;
215
207
  try {
216
- card = cardsApi.cardHeartbeat(cliApiContext(hippoRoot, tenantId), id, runId);
208
+ card = await cardsApi.cardHeartbeat(cliApiContext(hippoRoot, tenantId), id, runId);
217
209
  }
218
210
  catch (error) {
219
- printError(errorMessage(error));
220
- throw new CliExit(1);
211
+ fail(errorMessage(error));
221
212
  }
222
213
  if (!card) {
223
- printError(`Could not heartbeat card ${id} (${cardRefusal(hippoRoot, tenantId, id)}).`);
224
- throw new CliExit(1);
214
+ fail(`Could not heartbeat card ${id} (${await cardRefusal(hippoRoot, tenantId, id)}).`);
225
215
  }
226
216
  console.log(`Heartbeat card ${card.id}: lease until ${card.leaseUntil}`);
227
217
  }
228
- function cardBlock(hippoRoot, tenantId, args, flags) {
218
+ async function cardBlock(hippoRoot, tenantId, args, flags) {
229
219
  const id = args[1];
230
220
  const reason = stringFlagOrExit(flags, 'reason') ?? '';
231
221
  if (!id || !reason) {
232
- printError(CARD_BLOCK_REASON_REQUIRED);
233
- throw new CliExit(1);
222
+ fail(CARD_BLOCK_REASON_REQUIRED);
234
223
  }
235
224
  const runId = cardRunFlag(flags);
236
225
  let card;
237
226
  try {
238
- card = cardsApi.cardBlock(cliApiContext(hippoRoot, tenantId), id, reason, runId);
227
+ card = await cardsApi.cardBlock(cliApiContext(hippoRoot, tenantId), id, reason, runId);
239
228
  }
240
229
  catch (error) {
241
- printError(errorMessage(error));
242
- throw new CliExit(1);
230
+ fail(errorMessage(error));
243
231
  }
244
232
  if (!card) {
245
- const why = runId === undefined ? 'not running' : cardRefusal(hippoRoot, tenantId, id);
246
- printError(`Could not block card ${id} (${why}).`);
247
- throw new CliExit(1);
233
+ const why = runId === undefined ? 'not running' : await cardRefusal(hippoRoot, tenantId, id);
234
+ fail(`Could not block card ${id} (${why}).`);
248
235
  }
249
236
  console.log(`Blocked card ${card.id}`);
250
237
  }
251
- function cardReview(hippoRoot, tenantId, args, flags) {
238
+ async function cardReview(hippoRoot, tenantId, args, flags) {
252
239
  const id = args[1];
253
240
  if (!id) {
254
241
  throw usageError('review');
@@ -256,20 +243,18 @@ function cardReview(hippoRoot, tenantId, args, flags) {
256
243
  const runId = cardRunFlag(flags);
257
244
  let card;
258
245
  try {
259
- card = cardsApi.cardReview(cliApiContext(hippoRoot, tenantId), id, runId);
246
+ card = await cardsApi.cardReview(cliApiContext(hippoRoot, tenantId), id, runId);
260
247
  }
261
248
  catch (error) {
262
- printError(errorMessage(error));
263
- throw new CliExit(1);
249
+ fail(errorMessage(error));
264
250
  }
265
251
  if (!card) {
266
- const why = runId === undefined ? 'not running' : cardRefusal(hippoRoot, tenantId, id);
267
- printError(`Could not move card ${id} to review (${why}).`);
268
- throw new CliExit(1);
252
+ const why = runId === undefined ? 'not running' : await cardRefusal(hippoRoot, tenantId, id);
253
+ fail(`Could not move card ${id} to review (${why}).`);
269
254
  }
270
255
  console.log(`Card ${card.id} moved to review`);
271
256
  }
272
- function cardComplete(hippoRoot, tenantId, args, flags) {
257
+ async function cardComplete(hippoRoot, tenantId, args, flags) {
273
258
  const id = args[1];
274
259
  const outcomeRaw = flags['outcome'];
275
260
  if (!id || !isHandoffOutcome(outcomeRaw)) {
@@ -278,27 +263,25 @@ function cardComplete(hippoRoot, tenantId, args, flags) {
278
263
  const runId = cardRunFlag(flags);
279
264
  let result;
280
265
  try {
281
- result = cardsApi.cardComplete(cliApiContext(hippoRoot, tenantId), id, outcomeRaw, runId);
266
+ result = await cardsApi.cardComplete(cliApiContext(hippoRoot, tenantId), id, outcomeRaw, runId);
282
267
  }
283
268
  catch (error) {
284
- printError(errorMessage(error));
285
- throw new CliExit(1);
269
+ fail(errorMessage(error));
286
270
  }
287
271
  if (!result) {
288
- const why = runId === undefined ? 'not in review' : cardRefusal(hippoRoot, tenantId, id);
289
- printError(`Could not complete card ${id} (${why}).`);
290
- throw new CliExit(1);
272
+ const why = runId === undefined ? 'not in review' : await cardRefusal(hippoRoot, tenantId, id);
273
+ fail(`Could not complete card ${id} (${why}).`);
291
274
  }
292
275
  console.log(`Completed card ${result.card.id} (status: ${result.card.status})`);
293
276
  if (result.promotedChildren.length > 0) {
294
277
  console.log(`Promoted to ready: ${result.promotedChildren.join(', ')}`);
295
278
  }
296
279
  }
297
- function cardReclaim(hippoRoot, tenantId, args) {
280
+ async function cardReclaim(hippoRoot, tenantId, args) {
298
281
  if (args.length > 1) {
299
282
  throw usageError('reclaim');
300
283
  }
301
- const ids = cardsApi.cardReclaimExpired(cliApiContext(hippoRoot, tenantId));
284
+ const ids = await cardsApi.cardReclaimExpired(cliApiContext(hippoRoot, tenantId));
302
285
  if (ids.length === 0) {
303
286
  console.log('No expired leases.');
304
287
  return;
@@ -307,24 +290,24 @@ function cardReclaim(hippoRoot, tenantId, args) {
307
290
  console.log(`Reclaimed card ${id} (now ready)`);
308
291
  }
309
292
  }
310
- function cardComment(hippoRoot, tenantId, args, flags) {
293
+ async function cardComment(hippoRoot, tenantId, args, flags) {
311
294
  const id = args[1];
312
295
  if (!id) {
313
296
  throw usageError('comment');
314
297
  }
315
- // Only show and comment look the card up directly; claim/heartbeat/block/review/complete throw from the store instead.
298
+ // Only show and comment look the card up directly; claim/heartbeat/block/review/complete throw from the store
299
+ // instead.
316
300
  const ctx = cliApiContext(hippoRoot, tenantId);
317
- const card = cardsApi.cardLoad(ctx, id);
301
+ const card = await cardsApi.cardLoad(ctx, id);
318
302
  if (!card) {
319
- printError(`No card found with id ${id}.`);
320
- throw new CliExit(1);
303
+ fail(`No card found with id ${id}.`);
321
304
  }
322
305
  const body = stringFlagOrExit(flags, 'body') ?? '';
323
306
  if (!body) {
324
307
  throw usageError('comment');
325
308
  }
326
309
  const author = stringFlagOrExit(flags, 'author') || 'cli';
327
- const comment = cardsApi.cardComment(ctx, id, author, body);
310
+ const comment = await cardsApi.cardComment(ctx, id, author, body);
328
311
  console.log(`Added comment ${comment.id} to card ${id}`);
329
312
  }
330
313
  const CARD_HANDLERS = {
@@ -1,8 +1,13 @@
1
- /** HTTP client wrapper for `hippo serve`: only the routed writes (remember, forget, archive, promote); every other command opens the store directly.
2
- * Server errors rethrow with the message verbatim so CLI substring matches still work; network errors propagate as the native fetch failure. */
1
+ /**
2
+ * HTTP client wrapper for `hippo serve`: only the routed writes (remember, forget, archive, promote); every other
3
+ * command opens the store directly.
4
+ * Server errors rethrow with the message verbatim so CLI substring matches still work; network errors propagate as the
5
+ * native fetch failure.
6
+ */
3
7
  import type { RememberOpts, RememberResult } from '../api/index.js';
4
- /** An error the server answered with, not one the transport raised: the refused-connection classifier sniffs message text,
5
- * and a server message quotes the caller's own id or content back verbatim. */
8
+ /**
9
+ * An error the server answered with, not one the transport raised, so the transport classifier can skip it by class.
10
+ */
6
11
  export declare class HttpResponseError extends Error {
7
12
  readonly status: number;
8
13
  constructor(message: string, status: number);
@@ -26,7 +31,9 @@ export declare function archiveRaw(serverUrl: string, apiKey: string | undefined
26
31
  ok: true;
27
32
  archivedAt: string;
28
33
  }>;
29
- /** 'never-sent': connection never opened, safe to replay locally. 'delivery-unknown': the request was on the wire and may have
34
+ /**
35
+ * 'never-sent': connection never opened, safe to replay locally. 'delivery-unknown': the request was on the wire and
36
+ * may have
30
37
  * committed, so never replay a write. 'none': not a transport failure. */
31
38
  export type TransportFailure = 'none' | 'never-sent' | 'delivery-unknown';
32
39
  export declare function classifyTransportFailure(err: Error): TransportFailure;