hippo-memory 1.69.0 → 1.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1014) hide show
  1. package/README.md +5 -2
  2. package/dist/agent-memories/apply.d.ts +3 -3
  3. package/dist/agent-memories/apply.js +16 -31
  4. package/dist/agent-memories/claude-code.d.ts +5 -5
  5. package/dist/agent-memories/claude-code.js +25 -12
  6. package/dist/agent-memories/copilot.js +3 -2
  7. package/dist/agent-memories/files.js +26 -14
  8. package/dist/agent-memories/gemini.js +6 -5
  9. package/dist/agent-memories/keys.js +3 -2
  10. package/dist/agent-memories/legacy.d.ts +2 -2
  11. package/dist/agent-memories/legacy.js +2 -2
  12. package/dist/agent-memories/markdown.d.ts +1 -3
  13. package/dist/agent-memories/markdown.js +1 -3
  14. package/dist/agent-memories/report.d.ts +1 -1
  15. package/dist/agent-memories/report.js +3 -2
  16. package/dist/agent-memories/source.d.ts +1 -1
  17. package/dist/agent-memories/source.js +6 -5
  18. package/dist/agent-memories/sync.d.ts +5 -3
  19. package/dist/agent-memories/sync.js +34 -38
  20. package/dist/agent-memories/types.d.ts +1 -1
  21. package/dist/api/assemble.d.ts +9 -46
  22. package/dist/api/assemble.js +44 -54
  23. package/dist/api/audit.d.ts +8 -7
  24. package/dist/api/audit.js +15 -21
  25. package/dist/api/auth.d.ts +17 -39
  26. package/dist/api/auth.js +76 -216
  27. package/dist/api/auto-sleep.d.ts +13 -0
  28. package/dist/api/auto-sleep.js +32 -0
  29. package/dist/{availability.d.ts → api/availability.d.ts} +4 -17
  30. package/dist/{availability.js → api/availability.js} +14 -44
  31. package/dist/{context-auto.js → api/context-auto.js} +2 -1
  32. package/dist/{context-render.d.ts → api/context-render.d.ts} +4 -4
  33. package/dist/{context-render.js → api/context-render.js} +7 -6
  34. package/dist/api/context-select.d.ts +5 -5
  35. package/dist/api/context-select.js +39 -48
  36. package/dist/api/context-types.d.ts +15 -40
  37. package/dist/api/context.d.ts +7 -26
  38. package/dist/api/context.js +67 -97
  39. package/dist/api/dormant.d.ts +7 -23
  40. package/dist/api/dormant.js +40 -128
  41. package/dist/api/drill-down.d.ts +9 -48
  42. package/dist/api/drill-down.js +41 -90
  43. package/dist/api/forget.d.ts +5 -33
  44. package/dist/api/forget.js +17 -73
  45. package/dist/api/goals.d.ts +1 -1
  46. package/dist/api/goals.js +2 -2
  47. package/dist/api/graph.d.ts +8 -0
  48. package/dist/api/graph.js +7 -0
  49. package/dist/api/index.d.ts +28 -0
  50. package/dist/api/index.js +31 -0
  51. package/dist/api/instruction-detect.js +85 -0
  52. package/dist/api/learn.js +63 -55
  53. package/dist/api/ledger-db.d.ts +21 -0
  54. package/dist/api/ledger-db.js +81 -0
  55. package/dist/api/memories.d.ts +5 -0
  56. package/dist/api/memories.js +7 -0
  57. package/dist/api/objects.d.ts +9 -0
  58. package/dist/api/objects.js +11 -0
  59. package/dist/api/on-store.d.ts +16 -0
  60. package/dist/api/on-store.js +38 -0
  61. package/dist/api/outcome.d.ts +5 -42
  62. package/dist/api/outcome.js +15 -80
  63. package/dist/{pilot-arm.d.ts → api/pilot-arm.d.ts} +1 -1
  64. package/dist/{pilot-arm.js → api/pilot-arm.js} +15 -23
  65. package/dist/api/predictions.d.ts +9 -0
  66. package/dist/api/predictions.js +18 -0
  67. package/dist/api/promote.d.ts +16 -31
  68. package/dist/api/promote.js +38 -123
  69. package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +11 -11
  70. package/dist/{prompt-hook.js → api/prompt-hook.js} +42 -60
  71. package/dist/api/quarantine.d.ts +5 -5
  72. package/dist/api/quarantine.js +30 -106
  73. package/dist/api/recall-cli.d.ts +55 -0
  74. package/dist/api/recall-cli.js +94 -0
  75. package/dist/api/recall-core.d.ts +4 -0
  76. package/dist/api/recall-core.js +120 -0
  77. package/dist/api/recall-finish.d.ts +53 -0
  78. package/dist/api/recall-finish.js +30 -0
  79. package/dist/api/recall-history.d.ts +64 -0
  80. package/dist/api/recall-history.js +159 -0
  81. package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +7 -8
  82. package/dist/{recall-pipeline.js → api/recall-pipeline.js} +60 -48
  83. package/dist/api/recall-record.d.ts +10 -13
  84. package/dist/api/recall-record.js +10 -30
  85. package/dist/api/recall-request.d.ts +2 -2
  86. package/dist/api/recall-request.js +3 -3
  87. package/dist/api/recall-types.d.ts +101 -316
  88. package/dist/api/recall.d.ts +5 -33
  89. package/dist/api/recall.js +92 -91
  90. package/dist/api/refine.d.ts +7 -0
  91. package/dist/api/refine.js +10 -0
  92. package/dist/api/remember-local.d.ts +57 -0
  93. package/dist/api/remember-local.js +90 -0
  94. package/dist/api/remember.d.ts +27 -12
  95. package/dist/api/remember.js +42 -46
  96. package/dist/api/session-owners.d.ts +4 -0
  97. package/dist/api/session-owners.js +17 -0
  98. package/dist/api/sleep-run.d.ts +7 -9
  99. package/dist/api/sleep-run.js +78 -94
  100. package/dist/api/sleep.d.ts +10 -29
  101. package/dist/api/tokens.d.ts +5 -12
  102. package/dist/api/tokens.js +12 -31
  103. package/dist/api/types.d.ts +8 -31
  104. package/dist/api/types.js +5 -23
  105. package/dist/capture/caller-session.d.ts +2 -2
  106. package/dist/capture/caller-session.js +8 -8
  107. package/dist/{capture-error.d.ts → capture/capture-error.d.ts} +2 -2
  108. package/dist/{capture-error.js → capture/capture-error.js} +7 -7
  109. package/dist/{codex-patch.js → capture/codex-patch.js} +1 -1
  110. package/dist/capture/command.d.ts +5 -13
  111. package/dist/capture/command.js +57 -60
  112. package/dist/capture/compact-resume-caller.d.ts +1 -1
  113. package/dist/capture/compact-resume-caller.js +7 -7
  114. package/dist/capture/compact.d.ts +8 -16
  115. package/dist/capture/compact.js +56 -47
  116. package/dist/capture/compaction-items-caller.d.ts +1 -1
  117. package/dist/capture/compaction-items-caller.js +7 -5
  118. package/dist/{compaction-items.js → capture/compaction-items.js} +27 -3
  119. package/dist/{compaction-record.d.ts → capture/compaction-record.d.ts} +10 -6
  120. package/dist/{compaction-record.js → capture/compaction-record.js} +143 -157
  121. package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +1 -1
  122. package/dist/{compaction-spool.js → capture/compaction-spool.js} +18 -14
  123. package/dist/capture/copilot-transcript.js +1 -1
  124. package/dist/capture/extract.js +2 -2
  125. package/dist/capture/failure-caller.d.ts +2 -2
  126. package/dist/capture/failure-caller.js +6 -6
  127. package/dist/capture/failure-reading.d.ts +2 -5
  128. package/dist/capture/failure-reading.js +11 -12
  129. package/dist/{handoff-evidence.d.ts → capture/handoff-evidence.d.ts} +1 -1
  130. package/dist/{handoff-evidence.js → capture/handoff-evidence.js} +2 -1
  131. package/dist/capture/pre-compact-caller.d.ts +1 -1
  132. package/dist/capture/pre-compact-caller.js +2 -2
  133. package/dist/{session-digest.d.ts → capture/session-digest.d.ts} +2 -6
  134. package/dist/{session-digest.js → capture/session-digest.js} +29 -29
  135. package/dist/capture/session-end-caller.d.ts +2 -2
  136. package/dist/capture/session-end-caller.js +1 -1
  137. package/dist/capture/session-texts.d.ts +1 -1
  138. package/dist/capture/session-texts.js +5 -5
  139. package/dist/capture/session-worker.js +6 -4
  140. package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
  141. package/dist/capture/transcript.d.ts +2 -10
  142. package/dist/capture/transcript.js +72 -92
  143. package/dist/capture/working-state.d.ts +0 -3
  144. package/dist/capture/working-state.js +7 -7
  145. package/dist/cli/api-context.d.ts +3 -0
  146. package/dist/cli/api-context.js +6 -0
  147. package/dist/cli/audit-prune.d.ts +28 -0
  148. package/dist/cli/audit-prune.js +40 -0
  149. package/dist/cli/audit.d.ts +2 -2
  150. package/dist/cli/audit.js +92 -88
  151. package/dist/cli/auth.d.ts +2 -1
  152. package/dist/cli/auth.js +69 -53
  153. package/dist/cli/briefs.d.ts +4 -3
  154. package/dist/cli/briefs.js +76 -202
  155. package/dist/cli/card.d.ts +2 -1
  156. package/dist/cli/card.js +55 -54
  157. package/dist/cli/client.d.ts +28 -0
  158. package/dist/{client.js → cli/client.js} +25 -44
  159. package/dist/cli/compact-resume-payload.d.ts +8 -0
  160. package/dist/cli/compact-resume-payload.js +40 -0
  161. package/dist/cli/context.d.ts +1 -13
  162. package/dist/cli/context.js +51 -77
  163. package/dist/cli/continuity.d.ts +6 -5
  164. package/dist/cli/continuity.js +153 -145
  165. package/dist/cli/correction-latency.d.ts +24 -0
  166. package/dist/{correction-latency.js → cli/correction-latency.js} +2 -14
  167. package/dist/cli/curate.d.ts +13 -17
  168. package/dist/cli/curate.js +226 -222
  169. package/dist/cli/dag.d.ts +4 -4
  170. package/dist/cli/dag.js +70 -52
  171. package/dist/cli/decisions.d.ts +4 -3
  172. package/dist/cli/decisions.js +129 -253
  173. package/dist/cli/eval.d.ts +1 -3
  174. package/dist/cli/eval.js +56 -42
  175. package/dist/cli/exit.d.ts +6 -0
  176. package/dist/cli/exit.js +11 -0
  177. package/dist/cli/explain.d.ts +1 -2
  178. package/dist/cli/explain.js +39 -21
  179. package/dist/cli/flag-values.d.ts +30 -0
  180. package/dist/cli/flag-values.js +120 -0
  181. package/dist/cli/flags.d.ts +304 -0
  182. package/dist/cli/flags.js +169 -0
  183. package/dist/cli/github.d.ts +14 -0
  184. package/dist/cli/github.js +184 -0
  185. package/dist/cli/goals.d.ts +2 -1
  186. package/dist/cli/goals.js +76 -75
  187. package/dist/cli/hook-runtime.d.ts +31 -0
  188. package/dist/cli/hook-runtime.js +139 -0
  189. package/dist/cli/init.d.ts +2 -1
  190. package/dist/cli/init.js +153 -126
  191. package/dist/cli/install-steps.d.ts +7 -0
  192. package/dist/cli/install-steps.js +101 -0
  193. package/dist/cli/last-sleep.d.ts +3 -1
  194. package/dist/cli/last-sleep.js +12 -7
  195. package/dist/cli/maintenance.d.ts +5 -4
  196. package/dist/cli/maintenance.js +41 -42
  197. package/dist/cli/object-verbs.d.ts +40 -0
  198. package/dist/cli/object-verbs.js +66 -0
  199. package/dist/cli/owner-validation.d.ts +18 -0
  200. package/dist/cli/owner-validation.js +33 -0
  201. package/dist/cli/playbooks.d.ts +4 -3
  202. package/dist/cli/playbooks.js +98 -306
  203. package/dist/cli/print.d.ts +15 -0
  204. package/dist/cli/print.js +82 -0
  205. package/dist/cli/projects.d.ts +2 -3
  206. package/dist/cli/projects.js +56 -51
  207. package/dist/cli/provenance-coverage.d.ts +14 -0
  208. package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +2 -6
  209. package/dist/cli/quality-repair-once.js +4 -4
  210. package/dist/cli/recall.d.ts +2 -6
  211. package/dist/cli/recall.js +128 -253
  212. package/dist/cli/refine-llm.d.ts +35 -0
  213. package/dist/cli/refine-llm.js +128 -0
  214. package/dist/cli/remember.d.ts +4 -6
  215. package/dist/cli/remember.js +193 -230
  216. package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +4 -17
  217. package/dist/{scheduler.js → cli/scheduler.js} +22 -22
  218. package/dist/cli/serve.d.ts +1 -1
  219. package/dist/cli/serve.js +46 -7
  220. package/dist/cli/session-hooks.d.ts +11 -19
  221. package/dist/cli/session-hooks.js +263 -258
  222. package/dist/cli/setup.d.ts +4 -3
  223. package/dist/cli/setup.js +55 -37
  224. package/dist/cli/shared.d.ts +14 -118
  225. package/dist/cli/shared.js +26 -400
  226. package/dist/cli/slack.d.ts +2 -1
  227. package/dist/cli/slack.js +46 -74
  228. package/dist/cli/sleep-render.d.ts +4 -0
  229. package/dist/cli/sleep-render.js +61 -0
  230. package/dist/cli/sleep.d.ts +3 -8
  231. package/dist/cli/sleep.js +34 -91
  232. package/dist/cli/status.d.ts +9 -12
  233. package/dist/cli/status.js +86 -131
  234. package/dist/{stdin.d.ts → cli/stdin.d.ts} +4 -6
  235. package/dist/{stdin.js → cli/stdin.js} +8 -9
  236. package/dist/cli/transfer.d.ts +9 -9
  237. package/dist/cli/transfer.js +125 -122
  238. package/dist/cli/usage.js +13 -5
  239. package/dist/cli.d.ts +69 -167
  240. package/dist/cli.js +187 -296
  241. package/dist/connectors/dlq.d.ts +44 -0
  242. package/dist/connectors/dlq.js +30 -0
  243. package/dist/connectors/github/backfill.d.ts +6 -26
  244. package/dist/connectors/github/backfill.js +42 -114
  245. package/dist/connectors/github/deletion.d.ts +6 -21
  246. package/dist/connectors/github/deletion.js +17 -64
  247. package/dist/connectors/github/dlq.d.ts +12 -91
  248. package/dist/connectors/github/dlq.js +23 -140
  249. package/dist/connectors/github/ingest.d.ts +4 -37
  250. package/dist/connectors/github/ingest.js +24 -93
  251. package/dist/connectors/github/octokit-client.d.ts +5 -17
  252. package/dist/connectors/github/octokit-client.js +29 -25
  253. package/dist/connectors/github/ratelimit.d.ts +3 -14
  254. package/dist/connectors/github/ratelimit.js +3 -14
  255. package/dist/connectors/github/scope.d.ts +3 -5
  256. package/dist/connectors/github/scope.js +3 -5
  257. package/dist/connectors/github/signature.d.ts +4 -26
  258. package/dist/connectors/github/signature.js +4 -26
  259. package/dist/connectors/github/tenant-routing.d.ts +4 -26
  260. package/dist/connectors/github/tenant-routing.js +13 -61
  261. package/dist/connectors/github/transform.d.ts +1 -1
  262. package/dist/connectors/github/transform.js +2 -16
  263. package/dist/connectors/github/types.d.ts +4 -16
  264. package/dist/connectors/github/types.js +17 -27
  265. package/dist/connectors/github/webhook.d.ts +5 -18
  266. package/dist/connectors/github/webhook.js +86 -105
  267. package/dist/connectors/slack/backfill.d.ts +5 -18
  268. package/dist/connectors/slack/backfill.js +9 -42
  269. package/dist/connectors/slack/deletion.d.ts +4 -7
  270. package/dist/connectors/slack/deletion.js +20 -49
  271. package/dist/connectors/slack/dlq.d.ts +9 -68
  272. package/dist/connectors/slack/dlq.js +26 -136
  273. package/dist/connectors/slack/ingest.d.ts +4 -18
  274. package/dist/connectors/slack/ingest.js +26 -91
  275. package/dist/connectors/slack/scope.d.ts +2 -8
  276. package/dist/connectors/slack/scope.js +2 -8
  277. package/dist/connectors/slack/signature.d.ts +1 -6
  278. package/dist/connectors/slack/signature.js +2 -1
  279. package/dist/connectors/slack/tenant-routing.d.ts +4 -18
  280. package/dist/connectors/slack/tenant-routing.js +11 -31
  281. package/dist/connectors/slack/transform.d.ts +3 -19
  282. package/dist/connectors/slack/transform.js +2 -18
  283. package/dist/connectors/slack/types.d.ts +4 -10
  284. package/dist/connectors/slack/types.js +5 -16
  285. package/dist/connectors/slack/web-client.js +34 -28
  286. package/dist/connectors/slack/webhook.d.ts +5 -21
  287. package/dist/connectors/slack/webhook.js +80 -108
  288. package/dist/connectors/slack/workspaces.d.ts +8 -41
  289. package/dist/connectors/slack/workspaces.js +8 -58
  290. package/dist/consolidate/conflicts.d.ts +1 -1
  291. package/dist/consolidate/conflicts.js +10 -18
  292. package/dist/consolidate/dag-summary.d.ts +8 -0
  293. package/dist/consolidate/dag-summary.js +41 -0
  294. package/dist/{dag.d.ts → consolidate/dag.d.ts} +6 -29
  295. package/dist/{dag.js → consolidate/dag.js} +49 -131
  296. package/dist/consolidate/decay.d.ts +2 -2
  297. package/dist/consolidate/decay.js +35 -41
  298. package/dist/consolidate/dedupe.d.ts +29 -0
  299. package/dist/consolidate/dedupe.js +103 -0
  300. package/dist/consolidate/flush-units.d.ts +5 -6
  301. package/dist/consolidate/flush-units.js +3 -3
  302. package/dist/consolidate/half-life-migration.d.ts +34 -0
  303. package/dist/consolidate/half-life-migration.js +89 -0
  304. package/dist/consolidate/llm-passes.js +12 -29
  305. package/dist/consolidate/memory-value-weights.d.ts +8 -0
  306. package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +2 -13
  307. package/dist/consolidate/memory-value.d.ts +45 -0
  308. package/dist/consolidate/memory-value.js +164 -0
  309. package/dist/consolidate/merge.js +65 -83
  310. package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
  311. package/dist/{merged-row.js → consolidate/merged-row.js} +4 -3
  312. package/dist/consolidate/physics-pass.js +46 -48
  313. package/dist/consolidate/replay.d.ts +9 -0
  314. package/dist/consolidate/replay.js +84 -0
  315. package/dist/consolidate/run.d.ts +7 -13
  316. package/dist/consolidate/run.js +6 -37
  317. package/dist/consolidate/sleep.d.ts +2 -9
  318. package/dist/consolidate/sleep.js +69 -151
  319. package/dist/consolidate/trace.d.ts +19 -0
  320. package/dist/{trace.js → consolidate/trace.js} +7 -24
  321. package/dist/consolidate/traces.js +40 -51
  322. package/dist/core/ablation.d.ts +15 -0
  323. package/dist/core/ablation.js +49 -0
  324. package/dist/{agent-memories/tools.d.ts → core/agent-memory-tools.d.ts} +1 -1
  325. package/dist/{agent-memories/tools.js → core/agent-memory-tools.js} +1 -1
  326. package/dist/{ambient.d.ts → core/ambient.d.ts} +1 -8
  327. package/dist/{ambient.js → core/ambient.js} +13 -18
  328. package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
  329. package/dist/{capture-contract.js → core/capture-contract.js} +67 -1
  330. package/dist/{card.d.ts → core/card.d.ts} +4 -1
  331. package/dist/{card.js → core/card.js} +8 -0
  332. package/dist/core/compare.d.ts +32 -0
  333. package/dist/core/compare.js +70 -0
  334. package/dist/{config.d.ts → core/config.d.ts} +14 -28
  335. package/dist/{config.js → core/config.js} +101 -75
  336. package/dist/{handoff.d.ts → core/handoff.d.ts} +1 -7
  337. package/dist/core/handoff.js +81 -0
  338. package/dist/{memory-quality.js → core/memory-quality.js} +2 -2
  339. package/dist/core/memory.d.ts +183 -0
  340. package/dist/core/memory.js +380 -0
  341. package/dist/core/package-root.d.ts +3 -0
  342. package/dist/core/package-root.js +5 -0
  343. package/dist/{physics-config.d.ts → core/physics-config.d.ts} +1 -4
  344. package/dist/{physics-config.js → core/physics-config.js} +3 -8
  345. package/dist/{physics.d.ts → core/physics.d.ts} +16 -62
  346. package/dist/{physics.js → core/physics.js} +60 -122
  347. package/dist/{project-identity.d.ts → core/project-identity.d.ts} +17 -63
  348. package/dist/{project-identity.js → core/project-identity.js} +22 -55
  349. package/dist/{project-remote.js → core/project-remote.js} +17 -6
  350. package/dist/{prompt-recall.js → core/prompt-recall.js} +1 -1
  351. package/dist/core/raw-append-only.d.ts +5 -0
  352. package/dist/core/raw-append-only.js +7 -0
  353. package/dist/{salience.d.ts → core/salience.d.ts} +1 -7
  354. package/dist/{salience.js → core/salience.js} +36 -27
  355. package/dist/{search/types.d.ts → core/search-types.d.ts} +2 -2
  356. package/dist/{search/types.js → core/search-types.js} +1 -1
  357. package/dist/core/session-digest-row.d.ts +5 -0
  358. package/dist/core/session-digest-row.js +6 -0
  359. package/dist/{dashboard-actions.d.ts → dashboard/dashboard-actions.d.ts} +1 -1
  360. package/dist/{dashboard-actions.js → dashboard/dashboard-actions.js} +7 -7
  361. package/dist/{dashboard-queries.d.ts → dashboard/dashboard-queries.d.ts} +7 -2
  362. package/dist/{dashboard-queries.js → dashboard/dashboard-queries.js} +6 -10
  363. package/dist/{dashboard-snapshot.d.ts → dashboard/dashboard-snapshot.d.ts} +11 -10
  364. package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +110 -104
  365. package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +2 -1
  366. package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +1 -0
  367. package/dist/{dashboard.js → dashboard/dashboard.js} +172 -55
  368. package/dist/db/backup.js +1 -1
  369. package/dist/db/busy.d.ts +19 -2
  370. package/dist/db/busy.js +88 -14
  371. package/dist/db/connect.d.ts +11 -2
  372. package/dist/db/connect.js +43 -10
  373. package/dist/db/index.d.ts +9 -0
  374. package/dist/db/index.js +8 -0
  375. package/dist/db/meta.d.ts +4 -0
  376. package/dist/db/meta.js +11 -1
  377. package/dist/db/migrate.d.ts +8 -1
  378. package/dist/db/migrate.js +28 -33
  379. package/dist/db/migrations/types.d.ts +2 -5
  380. package/dist/db/migrations/v08.js +1 -1
  381. package/dist/db/migrations/v14.js +39 -36
  382. package/dist/db/migrations/v15.js +2 -8
  383. package/dist/db/migrations/v16.js +31 -29
  384. package/dist/db/migrations/v17.js +2 -3
  385. package/dist/db/migrations/v18.js +6 -5
  386. package/dist/db/migrations/v19.js +2 -5
  387. package/dist/db/migrations/v20.js +5 -8
  388. package/dist/db/migrations/v22.js +28 -38
  389. package/dist/db/migrations/v23.js +3 -14
  390. package/dist/db/migrations/v24.js +25 -22
  391. package/dist/db/migrations/v25.js +3 -8
  392. package/dist/db/migrations/v26.js +2 -13
  393. package/dist/db/migrations/v27.js +3 -11
  394. package/dist/db/migrations/v28.js +2 -14
  395. package/dist/db/migrations/v29.js +23 -32
  396. package/dist/db/migrations/v30.js +4 -16
  397. package/dist/db/migrations/v31.js +23 -31
  398. package/dist/db/migrations/v32.js +4 -22
  399. package/dist/db/migrations/v33.js +2 -15
  400. package/dist/db/migrations/v34.js +2 -11
  401. package/dist/db/migrations/v35.js +2 -11
  402. package/dist/db/migrations/v36.js +2 -11
  403. package/dist/db/migrations/v37.js +8 -33
  404. package/dist/db/migrations/v38.js +5 -38
  405. package/dist/db/migrations/v39.js +10 -21
  406. package/dist/db/migrations/v40.js +8 -14
  407. package/dist/db/migrations/v41.js +2 -24
  408. package/dist/db/migrations/v43.js +7 -6
  409. package/dist/db/migrations/v44.js +2 -8
  410. package/dist/db/migrations/v45.js +2 -7
  411. package/dist/db/migrations/v46.js +1 -1
  412. package/dist/db/migrations/v47.js +2 -3
  413. package/dist/db/migrations/v48.js +1 -1
  414. package/dist/db/migrations/v49.js +1 -1
  415. package/dist/db/migrations/v50.js +8 -7
  416. package/dist/db/migrations/v51.js +1 -1
  417. package/dist/db/migrations/v52.js +1 -1
  418. package/dist/db/open.d.ts +11 -1
  419. package/dist/db/open.js +37 -4
  420. package/dist/db/physics-state.d.ts +23 -0
  421. package/dist/{physics-state.js → db/physics-state.js} +34 -52
  422. package/dist/db/raw-archive-mirror-cleanup.d.ts +5 -0
  423. package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +10 -20
  424. package/dist/db/request-stores.d.ts +15 -2
  425. package/dist/db/request-stores.js +37 -15
  426. package/dist/db/tables.d.ts +2 -0
  427. package/dist/db/tables.js +6 -0
  428. package/dist/{vector-store.d.ts → db/vector-store.d.ts} +6 -2
  429. package/dist/{vector-store.js → db/vector-store.js} +83 -51
  430. package/dist/db/wal-checkpointer.d.ts +11 -0
  431. package/dist/db/wal-checkpointer.js +92 -0
  432. package/dist/doctor.js +176 -152
  433. package/dist/entry/json-hooks.d.ts +1 -1
  434. package/dist/entry/json-hooks.js +1 -1
  435. package/dist/entry/project-identity.d.ts +1 -1
  436. package/dist/entry/project-identity.js +1 -1
  437. package/dist/entry/session-text.d.ts +3 -3
  438. package/dist/entry/session-text.js +5 -4
  439. package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +15 -53
  440. package/dist/{eval-stats.js → eval/eval-stats.js} +24 -51
  441. package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +3 -14
  442. package/dist/{eval-suite.js → eval/eval-suite.js} +99 -57
  443. package/dist/{eval.d.ts → eval/eval.d.ts} +7 -25
  444. package/dist/{eval.js → eval/eval.js} +35 -55
  445. package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -6
  446. package/dist/{judgment.js → eval/judgment.js} +23 -20
  447. package/dist/extensions/openclaw-plugin/index.js +2 -3
  448. package/dist/graph/delta.d.ts +3 -2
  449. package/dist/graph/delta.js +9 -23
  450. package/dist/{graph-extract.d.ts → graph/extract.d.ts} +10 -32
  451. package/dist/{graph-extract.js → graph/extract.js} +40 -81
  452. package/dist/{graph-recall.d.ts → graph/recall.d.ts} +9 -22
  453. package/dist/{graph-recall.js → graph/recall.js} +65 -108
  454. package/dist/graph/stream.d.ts +38 -0
  455. package/dist/{graph-stream.js → graph/stream.js} +20 -41
  456. package/dist/graph/view.d.ts +50 -0
  457. package/dist/graph/view.js +265 -0
  458. package/dist/graph/write.d.ts +4 -76
  459. package/dist/graph/write.js +13 -397
  460. package/dist/hooks/codex-session.js +1 -1
  461. package/dist/hooks/codex-wrapper.js +16 -17
  462. package/dist/hooks/copilot.d.ts +1 -8
  463. package/dist/hooks/copilot.js +16 -16
  464. package/dist/{cli → hooks}/hook-blocks.d.ts +6 -2
  465. package/dist/{cli → hooks}/hook-blocks.js +38 -125
  466. package/dist/hooks/json-hooks.d.ts +5 -37
  467. package/dist/hooks/json-hooks.js +49 -179
  468. package/dist/hooks/opencode.d.ts +0 -38
  469. package/dist/hooks/opencode.js +44 -103
  470. package/dist/hooks/shared.d.ts +8 -21
  471. package/dist/hooks/shared.js +30 -25
  472. package/dist/importers/core.d.ts +13 -42
  473. package/dist/importers/core.js +48 -64
  474. package/dist/importers/markdown-parse.d.ts +9 -32
  475. package/dist/importers/markdown-parse.js +10 -44
  476. package/dist/importers/markdown.js +5 -13
  477. package/dist/importers/sources.js +57 -81
  478. package/dist/importers/vault.d.ts +2 -8
  479. package/dist/importers/vault.js +95 -172
  480. package/dist/index.d.ts +26 -22
  481. package/dist/index.js +25 -21
  482. package/dist/learn/autolearn.d.ts +29 -0
  483. package/dist/{autolearn.js → learn/autolearn.js} +26 -51
  484. package/dist/{churn-git.d.ts → learn/churn-git.d.ts} +1 -1
  485. package/dist/{churn-git.js → learn/churn-git.js} +6 -4
  486. package/dist/{extract.d.ts → learn/extract.d.ts} +1 -1
  487. package/dist/learn/extract.js +123 -0
  488. package/dist/learn/forward-claim-detector.d.ts +12 -0
  489. package/dist/learn/forward-claim-detector.js +60 -0
  490. package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +10 -18
  491. package/dist/{invalidation.js → learn/invalidation.js} +92 -125
  492. package/dist/mcp/admin-tools.d.ts +1 -1
  493. package/dist/mcp/admin-tools.js +39 -64
  494. package/dist/mcp/format.d.ts +5 -5
  495. package/dist/mcp/format.js +7 -6
  496. package/dist/mcp/framing.d.ts +6 -0
  497. package/dist/mcp/framing.js +11 -3
  498. package/dist/mcp/memory-tools.js +10 -35
  499. package/dist/mcp/protocol.d.ts +14 -36
  500. package/dist/mcp/protocol.js +10 -19
  501. package/dist/mcp/recall-tools.d.ts +2 -2
  502. package/dist/mcp/recall-tools.js +70 -52
  503. package/dist/mcp/request.d.ts +3 -11
  504. package/dist/mcp/request.js +71 -85
  505. package/dist/mcp/server.d.ts +3 -9
  506. package/dist/mcp/server.js +6 -17
  507. package/dist/mcp/session-state.d.ts +2 -3
  508. package/dist/mcp/session-state.js +7 -13
  509. package/dist/mcp/shared-gate.js +1 -1
  510. package/dist/mcp/stdio.d.ts +2 -6
  511. package/dist/mcp/stdio.js +112 -38
  512. package/dist/mcp/tool-args.js +2 -1
  513. package/dist/mcp/tools.js +7 -5
  514. package/dist/objects/customer-notes.d.ts +44 -0
  515. package/dist/objects/customer-notes.js +71 -0
  516. package/dist/objects/decisions.d.ts +41 -0
  517. package/dist/objects/decisions.js +63 -0
  518. package/dist/objects/descriptor.d.ts +52 -0
  519. package/dist/objects/descriptor.js +4 -0
  520. package/dist/objects/fields.d.ts +15 -0
  521. package/dist/objects/fields.js +21 -0
  522. package/dist/objects/incidents.d.ts +45 -0
  523. package/dist/objects/incidents.js +96 -0
  524. package/dist/objects/lifecycle.d.ts +27 -0
  525. package/dist/objects/lifecycle.js +96 -0
  526. package/dist/objects/policies.d.ts +60 -0
  527. package/dist/objects/policies.js +102 -0
  528. package/dist/objects/processes.d.ts +43 -0
  529. package/dist/objects/processes.js +92 -0
  530. package/dist/objects/project-briefs.d.ts +63 -0
  531. package/dist/objects/project-briefs.js +194 -0
  532. package/dist/objects/skills.d.ts +51 -0
  533. package/dist/objects/skills.js +110 -0
  534. package/dist/postinstall.js +10 -21
  535. package/dist/predictions/planning-fallacy.d.ts +14 -109
  536. package/dist/predictions/planning-fallacy.js +4 -129
  537. package/dist/rerankers/clef.d.ts +2 -6
  538. package/dist/rerankers/clef.js +28 -76
  539. package/dist/rerankers/cross-encoder.d.ts +0 -7
  540. package/dist/rerankers/cross-encoder.js +18 -28
  541. package/dist/rerankers/index.js +8 -7
  542. package/dist/rerankers/jev.d.ts +1 -4
  543. package/dist/rerankers/jev.js +36 -52
  544. package/dist/rerankers/llm.d.ts +2 -13
  545. package/dist/rerankers/llm.js +42 -59
  546. package/dist/rerankers/outage-warning.d.ts +8 -0
  547. package/dist/rerankers/outage-warning.js +32 -0
  548. package/dist/rerankers/remote.d.ts +4 -0
  549. package/dist/rerankers/remote.js +25 -0
  550. package/dist/rerankers/types.d.ts +3 -15
  551. package/dist/search/as-of.d.ts +1 -1
  552. package/dist/search/bm25-search.d.ts +2 -2
  553. package/dist/search/bm25-search.js +7 -7
  554. package/dist/search/bm25.d.ts +1 -1
  555. package/dist/search/bm25.js +1 -1
  556. package/dist/search/boosts.d.ts +5 -3
  557. package/dist/search/boosts.js +36 -15
  558. package/dist/search/breakdown.d.ts +2 -2
  559. package/dist/search/breakdown.js +2 -1
  560. package/dist/search/explain.d.ts +1 -1
  561. package/dist/search/explain.js +3 -2
  562. package/dist/search/finalize.d.ts +2 -2
  563. package/dist/search/finalize.js +4 -3
  564. package/dist/search/fusion.d.ts +1 -1
  565. package/dist/search/fusion.js +3 -3
  566. package/dist/search/goal-boost.d.ts +23 -0
  567. package/dist/search/goal-boost.js +90 -0
  568. package/dist/search/hybrid-score.d.ts +2 -2
  569. package/dist/search/hybrid-score.js +1 -1
  570. package/dist/search/hybrid.d.ts +6 -4
  571. package/dist/search/hybrid.js +11 -8
  572. package/dist/{multihop.d.ts → search/multihop.d.ts} +2 -2
  573. package/dist/{multihop.js → search/multihop.js} +9 -8
  574. package/dist/search/path-context.d.ts +11 -0
  575. package/dist/{path-context.js → search/path-context.js} +8 -19
  576. package/dist/search/physics-search.d.ts +4 -4
  577. package/dist/search/physics-search.js +25 -22
  578. package/dist/search/rerank.d.ts +3 -3
  579. package/dist/search/rerank.js +4 -3
  580. package/dist/search/rrf.d.ts +15 -0
  581. package/dist/search/rrf.js +36 -0
  582. package/dist/search/temporal.d.ts +1 -1
  583. package/dist/search/temporal.js +5 -2
  584. package/dist/search/vector.d.ts +10 -3
  585. package/dist/search/vector.js +51 -15
  586. package/dist/server/auth.d.ts +10 -29
  587. package/dist/server/auth.js +57 -42
  588. package/dist/server/boot.d.ts +5 -0
  589. package/dist/server/boot.js +432 -0
  590. package/dist/server/client-ip.d.ts +8 -20
  591. package/dist/server/client-ip.js +23 -34
  592. package/dist/server/cursor.d.ts +1 -1
  593. package/dist/server/cursor.js +2 -3
  594. package/dist/server/deadline.d.ts +13 -0
  595. package/dist/server/deadline.js +45 -0
  596. package/dist/server/defaults.d.ts +3 -0
  597. package/dist/server/defaults.js +4 -0
  598. package/dist/server/key-check-bounds.d.ts +9 -0
  599. package/dist/server/key-check-bounds.js +46 -0
  600. package/dist/server/lifecycle.d.ts +5 -4
  601. package/dist/server/lifecycle.js +20 -5
  602. package/dist/server/mcp-http.d.ts +1 -4
  603. package/dist/server/mcp-http.js +44 -68
  604. package/dist/server/rate-limit.d.ts +21 -0
  605. package/dist/{rate-limit.js → server/rate-limit.js} +4 -13
  606. package/dist/server/ready.d.ts +7 -0
  607. package/dist/server/ready.js +38 -0
  608. package/dist/server/request.d.ts +14 -12
  609. package/dist/server/request.js +71 -28
  610. package/dist/server/route-table.d.ts +15 -0
  611. package/dist/server/route-table.js +202 -0
  612. package/dist/server/routes/admin.js +29 -30
  613. package/dist/server/routes/customer-notes.d.ts +5 -5
  614. package/dist/server/routes/customer-notes.js +35 -105
  615. package/dist/server/routes/decisions.d.ts +5 -5
  616. package/dist/server/routes/decisions.js +45 -115
  617. package/dist/server/routes/incidents.d.ts +5 -5
  618. package/dist/server/routes/incidents.js +44 -105
  619. package/dist/server/routes/memories.js +21 -43
  620. package/dist/server/routes/object-routes.d.ts +35 -0
  621. package/dist/server/routes/object-routes.js +72 -0
  622. package/dist/server/routes/policies.d.ts +6 -6
  623. package/dist/server/routes/policies.js +42 -134
  624. package/dist/server/routes/predictions.js +35 -63
  625. package/dist/server/routes/processes.d.ts +5 -5
  626. package/dist/server/routes/processes.js +44 -134
  627. package/dist/server/routes/project-briefs.d.ts +6 -6
  628. package/dist/server/routes/project-briefs.js +41 -120
  629. package/dist/server/routes/recall.js +21 -44
  630. package/dist/server/routes/skills.d.ts +6 -6
  631. package/dist/server/routes/skills.js +40 -138
  632. package/dist/server/server-detect.d.ts +28 -0
  633. package/dist/server/server-detect.js +156 -0
  634. package/dist/server/sleep-child.d.ts +2 -0
  635. package/dist/server/sleep-child.js +19 -0
  636. package/dist/server/sleep-offload.d.ts +20 -0
  637. package/dist/server/sleep-offload.js +73 -0
  638. package/dist/server/tls.d.ts +6 -0
  639. package/dist/server/tls.js +24 -0
  640. package/dist/server/types.d.ts +35 -14
  641. package/dist/server/validation.d.ts +6 -5
  642. package/dist/server/validation.js +16 -34
  643. package/dist/server.d.ts +39 -61
  644. package/dist/server.js +26 -569
  645. package/dist/sharing/global-store.d.ts +19 -0
  646. package/dist/sharing/global-store.js +75 -0
  647. package/dist/sharing/global-sync.d.ts +6 -0
  648. package/dist/sharing/global-sync.js +80 -0
  649. package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +5 -6
  650. package/dist/{project-merge.js → sharing/project-merge.js} +34 -51
  651. package/dist/sharing/scope.d.ts +7 -0
  652. package/dist/{scope.js → sharing/scope.js} +5 -12
  653. package/dist/sharing/search-both.d.ts +60 -0
  654. package/dist/sharing/search-both.js +138 -0
  655. package/dist/sharing/share.d.ts +38 -0
  656. package/dist/sharing/share.js +226 -0
  657. package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
  658. package/dist/{ambient-store.js → store/ambient.js} +11 -16
  659. package/dist/store/audit-event.d.ts +15 -17
  660. package/dist/store/audit-event.js +9 -16
  661. package/dist/{audit.d.ts → store/audit.d.ts} +29 -8
  662. package/dist/{audit.js → store/audit.js} +95 -18
  663. package/dist/{auth.d.ts → store/auth.d.ts} +19 -36
  664. package/dist/{auth.js → store/auth.js} +108 -99
  665. package/dist/store/candidates.d.ts +41 -13
  666. package/dist/store/candidates.js +141 -60
  667. package/dist/{card-detail.d.ts → store/card-detail.d.ts} +5 -4
  668. package/dist/{card-detail.js → store/card-detail.js} +3 -2
  669. package/dist/{store-cards.d.ts → store/cards.d.ts} +26 -16
  670. package/dist/{store-cards.js → store/cards.js} +133 -248
  671. package/dist/store/compactions.d.ts +78 -0
  672. package/dist/store/compactions.js +93 -0
  673. package/dist/store/conflicts.d.ts +26 -26
  674. package/dist/store/conflicts.js +194 -222
  675. package/dist/store/connectors/github.d.ts +84 -0
  676. package/dist/store/connectors/github.js +180 -0
  677. package/dist/store/connectors/slack.d.ts +69 -0
  678. package/dist/store/connectors/slack.js +177 -0
  679. package/dist/store/dashboard-reads.d.ts +27 -0
  680. package/dist/store/dashboard-reads.js +88 -0
  681. package/dist/store/delete-and-batch.d.ts +27 -51
  682. package/dist/store/delete-and-batch.js +100 -92
  683. package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +16 -5
  684. package/dist/{delivery-recorder.js → store/delivery-recorder.js} +60 -38
  685. package/dist/store/descendant-page.d.ts +12 -0
  686. package/dist/store/descendant-page.js +99 -0
  687. package/dist/store/diagnostics.d.ts +47 -0
  688. package/dist/store/diagnostics.js +44 -0
  689. package/dist/store/doctor-reads.d.ts +16 -0
  690. package/dist/store/doctor-reads.js +19 -0
  691. package/dist/store/dormant.d.ts +105 -0
  692. package/dist/store/dormant.js +241 -0
  693. package/dist/store/embeddings/index.d.ts +36 -0
  694. package/dist/{embeddings.js → store/embeddings/index.js} +104 -224
  695. package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
  696. package/dist/{local-embedding.js → store/embeddings/local.js} +69 -75
  697. package/dist/store/embeddings/provider.d.ts +40 -0
  698. package/dist/{embedding-provider.js → store/embeddings/provider.js} +78 -91
  699. package/dist/store/entry-reads.d.ts +66 -63
  700. package/dist/store/entry-reads.js +159 -121
  701. package/dist/store/entry-row.d.ts +14 -37
  702. package/dist/store/entry-row.js +37 -45
  703. package/dist/store/entry-writes.d.ts +40 -17
  704. package/dist/store/entry-writes.js +105 -41
  705. package/dist/{failure-log.d.ts → store/failure-log.d.ts} +7 -2
  706. package/dist/{failure-log.js → store/failure-log.js} +9 -2
  707. package/dist/store/goals.d.ts +96 -0
  708. package/dist/store/goals.js +260 -0
  709. package/dist/store/graph-queue.d.ts +13 -0
  710. package/dist/store/graph-queue.js +70 -0
  711. package/dist/store/graph-reads.d.ts +41 -0
  712. package/dist/{graph/read.js → store/graph-reads.js} +72 -162
  713. package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +71 -14
  714. package/dist/{graph/rows.js → store/graph-rows.js} +20 -12
  715. package/dist/store/graph-view-rows.d.ts +13 -0
  716. package/dist/store/graph-view-rows.js +68 -0
  717. package/dist/store/graph-writes.d.ts +33 -0
  718. package/dist/store/graph-writes.js +232 -0
  719. package/dist/store/half-life.d.ts +35 -0
  720. package/dist/store/half-life.js +75 -0
  721. package/dist/store/handoffs.d.ts +6 -12
  722. package/dist/store/handoffs.js +54 -63
  723. package/dist/store/index-and-stats.d.ts +14 -20
  724. package/dist/store/index-and-stats.js +74 -119
  725. package/dist/store/index.d.ts +4 -0
  726. package/dist/store/index.js +3 -0
  727. package/dist/store/key-audit.d.ts +2 -2
  728. package/dist/store/key-audit.js +4 -4
  729. package/dist/store/key-writes.d.ts +12 -5
  730. package/dist/store/key-writes.js +30 -4
  731. package/dist/store/ledger-turn.d.ts +17 -0
  732. package/dist/store/ledger-turn.js +27 -0
  733. package/dist/store/markdown.d.ts +3 -7
  734. package/dist/store/markdown.js +25 -23
  735. package/dist/store/mirrors.d.ts +7 -13
  736. package/dist/store/mirrors.js +52 -47
  737. package/dist/store/object-types.d.ts +189 -0
  738. package/dist/store/object-types.js +4 -0
  739. package/dist/store/open.d.ts +6 -4
  740. package/dist/store/open.js +30 -36
  741. package/dist/store/planning-fallacy-evidence.d.ts +14 -0
  742. package/dist/store/planning-fallacy-evidence.js +52 -0
  743. package/dist/store/port.d.ts +649 -0
  744. package/dist/store/port.js +17 -0
  745. package/dist/{predictions/store.d.ts → store/predictions.d.ts} +25 -52
  746. package/dist/{predictions/store.js → store/predictions.js} +88 -184
  747. package/dist/{quality-repair.js → store/quality-repair.js} +27 -57
  748. package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
  749. package/dist/{quarantine.js → store/quarantine.js} +64 -22
  750. package/dist/store/raw-archive.d.ts +14 -0
  751. package/dist/{raw-archive.js → store/raw-archive.js} +20 -31
  752. package/dist/store/recall-scope.d.ts +78 -0
  753. package/dist/{recall-scope.js → store/recall-scope.js} +23 -84
  754. package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -81
  755. package/dist/{recall-trace.js → store/recall-trace.js} +41 -122
  756. package/dist/store/rejected-values.d.ts +55 -0
  757. package/dist/store/rejected-values.js +150 -0
  758. package/dist/store/rejection.d.ts +54 -0
  759. package/dist/{rejection.js → store/rejection.js} +16 -67
  760. package/dist/store/report-reads.d.ts +6 -0
  761. package/dist/store/report-reads.js +29 -0
  762. package/dist/store/rows.d.ts +11 -22
  763. package/dist/store/rows.js +52 -43
  764. package/dist/store/rule-sql.d.ts +5 -0
  765. package/dist/store/rule-sql.js +37 -0
  766. package/dist/store/search-rows.d.ts +22 -42
  767. package/dist/store/search-rows.js +55 -78
  768. package/dist/store/sessions.d.ts +23 -49
  769. package/dist/store/sessions.js +96 -118
  770. package/dist/store/sqlite/commit-watch.d.ts +4 -0
  771. package/dist/store/sqlite/commit-watch.js +29 -0
  772. package/dist/store/sqlite/connector-events-group.d.ts +5 -0
  773. package/dist/store/sqlite/connector-events-group.js +50 -0
  774. package/dist/store/sqlite/connector-writes-group.d.ts +6 -0
  775. package/dist/store/sqlite/connector-writes-group.js +65 -0
  776. package/dist/store/sqlite/dag-reads-group.d.ts +3 -0
  777. package/dist/store/sqlite/dag-reads-group.js +45 -0
  778. package/dist/store/sqlite/entry-writes-group.d.ts +18 -0
  779. package/dist/store/{entry-writes-group.js → sqlite/entry-writes-group.js} +73 -60
  780. package/dist/store/sqlite/error-codec.d.ts +17 -0
  781. package/dist/store/sqlite/error-codec.js +61 -0
  782. package/dist/store/sqlite/executor-counts.d.ts +10 -0
  783. package/dist/store/sqlite/executor-counts.js +11 -0
  784. package/dist/store/sqlite/executor.d.ts +29 -0
  785. package/dist/store/sqlite/executor.js +287 -0
  786. package/dist/store/sqlite/graph-reads-group.d.ts +5 -0
  787. package/dist/store/sqlite/graph-reads-group.js +18 -0
  788. package/dist/store/sqlite/local.d.ts +21 -0
  789. package/dist/store/sqlite/local.js +39 -0
  790. package/dist/store/sqlite/object-rows.d.ts +102 -0
  791. package/dist/store/sqlite/object-rows.js +221 -0
  792. package/dist/store/sqlite/objects-group.d.ts +20 -0
  793. package/dist/store/sqlite/objects-group.js +316 -0
  794. package/dist/store/sqlite/predictions-group.d.ts +5 -0
  795. package/dist/store/sqlite/predictions-group.js +28 -0
  796. package/dist/store/sqlite/quarantine-group.d.ts +5 -0
  797. package/dist/store/sqlite/quarantine-group.js +38 -0
  798. package/dist/store/sqlite/store.d.ts +23 -0
  799. package/dist/store/sqlite/store.js +294 -0
  800. package/dist/store/sqlite/vector-pack.d.ts +18 -0
  801. package/dist/store/sqlite/vector-pack.js +46 -0
  802. package/dist/store/sqlite/vector-reads-group.d.ts +3 -0
  803. package/dist/store/sqlite/vector-reads-group.js +23 -0
  804. package/dist/store/sqlite/worker-entry.d.ts +2 -0
  805. package/dist/store/sqlite/worker-entry.js +8 -0
  806. package/dist/store/sqlite/worker-jobs.d.ts +5 -0
  807. package/dist/store/sqlite/worker-jobs.js +116 -0
  808. package/dist/store/sqlite/worker-ops.d.ts +135 -0
  809. package/dist/store/sqlite/worker-ops.js +93 -0
  810. package/dist/store/sqlite/worker-store.d.ts +8 -0
  811. package/dist/store/sqlite/worker-store.js +79 -0
  812. package/dist/store/summaries.d.ts +11 -72
  813. package/dist/store/summaries.js +47 -186
  814. package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
  815. package/dist/{summary-dirty.js → store/summary-dirty.js} +1 -1
  816. package/dist/store/tenant-lookup.d.ts +6 -1
  817. package/dist/store/tenant-lookup.js +7 -0
  818. package/dist/store/tenant.d.ts +11 -0
  819. package/dist/store/tenant.js +28 -0
  820. package/dist/store/token-ledger-rows.d.ts +61 -0
  821. package/dist/store/token-ledger-rows.js +68 -0
  822. package/dist/{token-ledger.d.ts → store/token-ledger.d.ts} +14 -51
  823. package/dist/{token-ledger.js → store/token-ledger.js} +51 -129
  824. package/dist/store/tombstone-checks.d.ts +12 -0
  825. package/dist/store/tombstone-checks.js +31 -0
  826. package/dist/store/usage-reports.d.ts +7 -0
  827. package/dist/store/usage-reports.js +18 -0
  828. package/dist/store/vector-index.d.ts +46 -0
  829. package/dist/store/vector-index.js +170 -0
  830. package/dist/{working-memory.d.ts → store/working-memory.d.ts} +11 -26
  831. package/dist/store/working-memory.js +118 -0
  832. package/dist/{yaml.d.ts → store/yaml.d.ts} +1 -5
  833. package/dist/{yaml.js → store/yaml.js} +2 -6
  834. package/dist/support-bundle.d.ts +1 -1
  835. package/dist/support-bundle.js +19 -37
  836. package/dist/{gated-write.d.ts → trust/gated-write.d.ts} +2 -2
  837. package/dist/{gated-write.js → trust/gated-write.js} +6 -6
  838. package/dist/trust/quarantine.d.ts +4 -0
  839. package/dist/trust/quarantine.js +8 -0
  840. package/dist/trust/reject-flow.d.ts +23 -0
  841. package/dist/trust/reject-flow.js +65 -0
  842. package/dist/util/anthropic-messages.d.ts +31 -0
  843. package/dist/util/anthropic-messages.js +58 -0
  844. package/dist/util/atomic-write.d.ts +4 -0
  845. package/dist/util/atomic-write.js +138 -0
  846. package/dist/util/capped-json.d.ts +6 -0
  847. package/dist/util/capped-json.js +46 -0
  848. package/dist/util/crash-handlers.d.ts +12 -0
  849. package/dist/util/crash-handlers.js +72 -0
  850. package/dist/{env.d.ts → util/env.d.ts} +27 -7
  851. package/dist/{env.js → util/env.js} +33 -8
  852. package/dist/{home-path.d.ts → util/home-path.d.ts} +2 -1
  853. package/dist/util/home-path.js +69 -0
  854. package/dist/{http-retry.d.ts → util/http-retry.d.ts} +8 -2
  855. package/dist/util/http-retry.js +103 -0
  856. package/dist/{http-util.d.ts → util/http-util.d.ts} +14 -3
  857. package/dist/{http-util.js → util/http-util.js} +31 -11
  858. package/dist/util/json.d.ts +17 -0
  859. package/dist/util/json.js +25 -0
  860. package/dist/{log.d.ts → util/log.d.ts} +7 -3
  861. package/dist/{log.js → util/log.js} +36 -11
  862. package/dist/util/real-path.d.ts +3 -0
  863. package/dist/util/real-path.js +15 -0
  864. package/dist/util/request-scope.d.ts +28 -0
  865. package/dist/util/request-scope.js +48 -0
  866. package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
  867. package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +5 -30
  868. package/dist/{secret-detect.js → util/secret-detect.js} +17 -42
  869. package/dist/util/stored-json.d.ts +9 -0
  870. package/dist/util/stored-json.js +8 -0
  871. package/dist/util/time.d.ts +2 -0
  872. package/dist/util/time.js +3 -0
  873. package/dist/util/token-text.d.ts +15 -0
  874. package/dist/util/token-text.js +20 -0
  875. package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +2 -0
  876. package/dist/util/transcript-tail.js +49 -0
  877. package/dist/util/version.d.ts +11 -0
  878. package/dist/util/version.js +26 -0
  879. package/extensions/openclaw-plugin/index.ts +2 -6
  880. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  881. package/extensions/openclaw-plugin/package.json +1 -1
  882. package/openclaw.plugin.json +1 -1
  883. package/package.json +2 -2
  884. package/dist/ablation.d.ts +0 -102
  885. package/dist/ablation.js +0 -136
  886. package/dist/api.d.ts +0 -26
  887. package/dist/api.js +0 -29
  888. package/dist/audit-prune.d.ts +0 -62
  889. package/dist/audit-prune.js +0 -107
  890. package/dist/autolearn.d.ts +0 -56
  891. package/dist/client.d.ts +0 -48
  892. package/dist/compare.d.ts +0 -86
  893. package/dist/compare.js +0 -117
  894. package/dist/connectors/github/cli-impl.d.ts +0 -25
  895. package/dist/connectors/github/cli-impl.js +0 -227
  896. package/dist/connectors/github/idempotency.d.ts +0 -19
  897. package/dist/connectors/github/idempotency.js +0 -27
  898. package/dist/connectors/slack/idempotency.d.ts +0 -17
  899. package/dist/connectors/slack/idempotency.js +0 -31
  900. package/dist/correction-latency.d.ts +0 -36
  901. package/dist/customer-notes.d.ts +0 -96
  902. package/dist/customer-notes.js +0 -336
  903. package/dist/db.d.ts +0 -9
  904. package/dist/db.js +0 -8
  905. package/dist/decisions.d.ts +0 -94
  906. package/dist/decisions.js +0 -326
  907. package/dist/dedupe.d.ts +0 -75
  908. package/dist/dedupe.js +0 -169
  909. package/dist/dormant.d.ts +0 -93
  910. package/dist/dormant.js +0 -137
  911. package/dist/embedding-provider.d.ts +0 -77
  912. package/dist/embeddings.d.ts +0 -101
  913. package/dist/extract.js +0 -133
  914. package/dist/forward-claim-detector.d.ts +0 -36
  915. package/dist/forward-claim-detector.js +0 -112
  916. package/dist/goals.d.ts +0 -173
  917. package/dist/goals.js +0 -448
  918. package/dist/graph/read.d.ts +0 -73
  919. package/dist/graph/rows.d.ts +0 -45
  920. package/dist/graph/types.js +0 -11
  921. package/dist/graph-stream.d.ts +0 -70
  922. package/dist/graph-view.d.ts +0 -73
  923. package/dist/graph-view.js +0 -333
  924. package/dist/half-life-migration.d.ts +0 -63
  925. package/dist/half-life-migration.js +0 -182
  926. package/dist/handoff.js +0 -68
  927. package/dist/home-path.js +0 -24
  928. package/dist/http-retry.js +0 -51
  929. package/dist/incidents.d.ts +0 -103
  930. package/dist/incidents.js +0 -349
  931. package/dist/instruction-detect.js +0 -27
  932. package/dist/json.d.ts +0 -7
  933. package/dist/json.js +0 -11
  934. package/dist/ledger-db.d.ts +0 -10
  935. package/dist/ledger-db.js +0 -42
  936. package/dist/memory-value-weights.d.ts +0 -19
  937. package/dist/memory-value.d.ts +0 -113
  938. package/dist/memory-value.js +0 -250
  939. package/dist/memory.d.ts +0 -294
  940. package/dist/memory.js +0 -522
  941. package/dist/owner-validation.d.ts +0 -42
  942. package/dist/owner-validation.js +0 -56
  943. package/dist/path-context.d.ts +0 -24
  944. package/dist/physics-state.d.ts +0 -39
  945. package/dist/policies.d.ts +0 -151
  946. package/dist/policies.js +0 -434
  947. package/dist/processes.d.ts +0 -108
  948. package/dist/processes.js +0 -371
  949. package/dist/project-briefs.d.ts +0 -128
  950. package/dist/project-briefs.js +0 -523
  951. package/dist/provenance-coverage.d.ts +0 -18
  952. package/dist/rate-limit.d.ts +0 -34
  953. package/dist/raw-archive-mirror-cleanup.d.ts +0 -20
  954. package/dist/raw-archive.d.ts +0 -24
  955. package/dist/recall-history.d.ts +0 -131
  956. package/dist/recall-history.js +0 -227
  957. package/dist/recall-scope.d.ts +0 -138
  958. package/dist/refine-llm.d.ts +0 -61
  959. package/dist/refine-llm.js +0 -167
  960. package/dist/reject-flow.d.ts +0 -69
  961. package/dist/reject-flow.js +0 -260
  962. package/dist/rejection.d.ts +0 -100
  963. package/dist/replay.d.ts +0 -41
  964. package/dist/replay.js +0 -122
  965. package/dist/rrf.d.ts +0 -43
  966. package/dist/rrf.js +0 -61
  967. package/dist/scope.d.ts +0 -14
  968. package/dist/server-detect.d.ts +0 -72
  969. package/dist/server-detect.js +0 -222
  970. package/dist/session-owners.d.ts +0 -7
  971. package/dist/session-owners.js +0 -54
  972. package/dist/shared.d.ts +0 -186
  973. package/dist/shared.js +0 -540
  974. package/dist/skills.d.ts +0 -101
  975. package/dist/skills.js +0 -367
  976. package/dist/store/entry-writes-group.d.ts +0 -9
  977. package/dist/store/vector-writes.d.ts +0 -6
  978. package/dist/store/vector-writes.js +0 -59
  979. package/dist/store-port.d.ts +0 -262
  980. package/dist/store-port.js +0 -178
  981. package/dist/tenant.d.ts +0 -25
  982. package/dist/tenant.js +0 -43
  983. package/dist/trace.d.ts +0 -34
  984. package/dist/transcript-tail.js +0 -48
  985. package/dist/version.d.ts +0 -26
  986. package/dist/version.js +0 -41
  987. package/dist/working-memory.js +0 -154
  988. /package/dist/{context-auto.d.ts → api/context-auto.d.ts} +0 -0
  989. /package/dist/{instruction-detect.d.ts → api/instruction-detect.d.ts} +0 -0
  990. /package/dist/{codex-patch.d.ts → capture/codex-patch.d.ts} +0 -0
  991. /package/dist/{compaction-items.d.ts → capture/compaction-items.d.ts} +0 -0
  992. /package/dist/{share-scrub.d.ts → capture/share-scrub.d.ts} +0 -0
  993. /package/dist/{overlap-index.d.ts → consolidate/overlap-index.d.ts} +0 -0
  994. /package/dist/{overlap-index.js → consolidate/overlap-index.js} +0 -0
  995. /package/dist/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
  996. /package/dist/{api-errors.js → core/api-errors.js} +0 -0
  997. /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
  998. /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
  999. /package/dist/{prompt-recall.d.ts → core/prompt-recall.d.ts} +0 -0
  1000. /package/dist/{dashboard-params.d.ts → dashboard/dashboard-params.d.ts} +0 -0
  1001. /package/dist/{dashboard-params.js → dashboard/dashboard-params.js} +0 -0
  1002. /package/dist/{dashboard-types.js → dashboard/dashboard-types.js} +0 -0
  1003. /package/dist/{quality-repair.d.ts → store/quality-repair.d.ts} +0 -0
  1004. /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
  1005. /package/dist/{escape.js → util/escape.js} +0 -0
  1006. /package/dist/{keyset.d.ts → util/keyset.d.ts} +0 -0
  1007. /package/dist/{keyset.js → util/keyset.js} +0 -0
  1008. /package/dist/{same-text.js → util/same-text.js} +0 -0
  1009. /package/dist/{db → util}/sqlite-blocked.d.ts +0 -0
  1010. /package/dist/{db → util}/sqlite-blocked.js +0 -0
  1011. /package/dist/{tokenize.d.ts → util/tokenize.d.ts} +0 -0
  1012. /package/dist/{tokenize.js → util/tokenize.js} +0 -0
  1013. /package/dist/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
  1014. /package/dist/{write-budget.js → util/write-budget.js} +0 -0
@@ -1,86 +1,47 @@
1
1
  // First-class object verbs for processes, policies and skills.
2
- import { extractPathTags } from '../path-context.js';
3
- import * as processesModule from '../processes.js';
4
- import * as policiesModule from '../policies.js';
5
- import * as skillsModule from '../skills.js';
6
- import { resolveTenantId } from '../tenant.js';
2
+ import { extractPathTags } from '../search/path-context.js';
3
+ import * as processesModule from '../objects/processes.js';
4
+ import * as policiesModule from '../objects/policies.js';
5
+ import * as skillsModule from '../objects/skills.js';
7
6
  import { printError } from './output.js';
7
+ import { isStringFlag, nonEmptyStringFlag, stringFlag } from './flag-values.js';
8
8
  import { requireInit } from './shared.js';
9
- // parseInt alone accepts trailing junk ('1abc' -> 1), which would let `process close 1abc`
10
- // silently hit the wrong row; require the whole arg to be digits.
11
- function parsePositiveProcessId(idRaw) {
12
- const s = String(idRaw ?? '').trim();
13
- const id = parseInt(s, 10);
14
- if (!/^\d+$/.test(s) || id <= 0) {
15
- printError(`Invalid process id: "${idRaw}" (expected a positive integer).`);
16
- process.exit(1);
17
- }
18
- return id;
19
- }
9
+ import { closeObject, foundOrExit, idArgOrExit, listObjects, printLifecycleTail } from './object-verbs.js';
10
+ import { errorMessage } from '../util/log.js';
11
+ import { CliExit } from './exit.js';
12
+ const PROCESS = { cmd: 'process', noun: 'Process', idLabel: 'process' };
13
+ const POLICY = { cmd: 'policy', noun: 'Policy', idLabel: 'policy' };
14
+ const SKILL = { cmd: 'skill', noun: 'Skill', idLabel: 'skill' };
20
15
  // --step is a repeatable flag (collected into an array by parseArgs). A single
21
16
  // --step yields a string; normalize both to string[]. A value-less --step errors.
22
17
  function collectProcessSteps(stepRaw) {
23
18
  if (Array.isArray(stepRaw))
24
19
  return stepRaw;
25
- if (typeof stepRaw === 'string')
20
+ if (isStringFlag(stepRaw))
26
21
  return [stepRaw];
27
22
  if (stepRaw === true) {
28
23
  printError('--step requires a value, e.g. hippo process new "<name>" --step "do X".');
29
- process.exit(1);
24
+ throw new CliExit(1);
30
25
  }
31
26
  return [];
32
27
  }
33
- function parseListLimit(flags) {
34
- const limitRaw = flags['limit'];
35
- const limit = limitRaw !== undefined ? parseInt(String(limitRaw), 10) : 100;
36
- if (!Number.isFinite(limit) || limit <= 0) {
37
- printError(`Invalid --limit: "${limitRaw}". Must be a positive integer.`);
38
- process.exit(1);
39
- }
40
- return limit;
28
+ function printProcessRow(proc) {
29
+ console.log(`#${proc.id} [${proc.status}] v${proc.version} steps=${proc.steps.length} memory=${proc.memoryId ?? '-'}`);
30
+ console.log(` ${proc.processName}`);
31
+ if (proc.changeSummary)
32
+ console.log(` change: ${proc.changeSummary}`);
41
33
  }
42
34
  function processList(hippoRoot, tenantId, flags) {
43
- const statusRaw = flags['status'];
44
- const status = typeof statusRaw === 'string' ? statusRaw.trim() : 'all';
45
- const limit = parseListLimit(flags);
46
- let results;
47
- if (status === 'all') {
48
- results = processesModule.loadProcesses(hippoRoot, tenantId, { limit });
49
- }
50
- else {
51
- if (!processesModule.VALID_PROCESS_STATES.has(status)) {
52
- printError(`Invalid --status: "${status}". Must be one of: active | superseded | closed | all.`);
53
- process.exit(1);
54
- }
55
- results = processesModule.loadProcesses(hippoRoot, tenantId, {
56
- status: status,
57
- limit,
58
- });
59
- }
60
- if (results.length === 0) {
61
- console.log('No processes.');
62
- return;
63
- }
64
- console.log(`Found ${results.length} processes:\n`);
65
- for (const proc of results) {
66
- console.log(`#${proc.id} [${proc.status}] v${proc.version} steps=${proc.steps.length} memory=${proc.memoryId ?? '-'}`);
67
- console.log(` ${proc.processName}`);
68
- if (proc.changeSummary)
69
- console.log(` change: ${proc.changeSummary}`);
70
- }
35
+ listObjects(flags, {
36
+ plural: 'processes',
37
+ states: processesModule.VALID_PROCESS_STATES,
38
+ load: (opts) => processesModule.loadProcesses(hippoRoot, tenantId, opts),
39
+ printRow: printProcessRow,
40
+ });
71
41
  }
72
42
  function processGet(hippoRoot, tenantId, args) {
73
- const idRaw = args[1];
74
- if (!idRaw) {
75
- printError('Usage: hippo process get <id>');
76
- process.exit(1);
77
- }
78
- const id = parsePositiveProcessId(idRaw);
79
- const proc = processesModule.loadProcessById(hippoRoot, tenantId, id);
80
- if (!proc) {
81
- printError(`Process ${id} not found.`);
82
- process.exit(1);
83
- }
43
+ const id = idArgOrExit(args, 'Usage: hippo process get <id>', PROCESS.idLabel);
44
+ const proc = foundOrExit(processesModule.loadProcessById(hippoRoot, tenantId, id), PROCESS.noun, id);
84
45
  console.log(`Process #${proc.id}`);
85
46
  console.log(` name: ${proc.processName}`);
86
47
  console.log(` status: ${proc.status}`);
@@ -91,42 +52,20 @@ function processGet(hippoRoot, tenantId, args) {
91
52
  console.log(` steps:`);
92
53
  proc.steps.forEach((s, i) => console.log(` ${i + 1}. ${s}`));
93
54
  }
94
- if (proc.changeSummary)
95
- console.log(` change_summary: ${proc.changeSummary}`);
96
- if (proc.supersededBy !== null)
97
- console.log(` superseded_by: #${proc.supersededBy}`);
98
- if (proc.supersededAt)
99
- console.log(` superseded_at: ${proc.supersededAt}`);
100
- if (proc.closedAt)
101
- console.log(` closed_at: ${proc.closedAt}`);
102
- if (proc.memoryId)
103
- console.log(` memory: ${proc.memoryId}`);
104
- console.log(` created: ${proc.createdAt}`);
55
+ printLifecycleTail(proc);
105
56
  }
106
57
  function processSupersede(hippoRoot, tenantId, args, flags) {
107
- const idRaw = args[1];
108
- if (!idRaw) {
109
- printError('Usage: hippo process supersede <id> --step "<text>" [--step ...] [--change "<summary>"] [--description "<text>"]');
110
- process.exit(1);
111
- }
112
- const id = parsePositiveProcessId(idRaw);
58
+ const id = idArgOrExit(args, 'Usage: hippo process supersede <id> --step "<text>" [--step ...] [--change "<summary>"] [--description "<text>"]', PROCESS.idLabel);
113
59
  const steps = collectProcessSteps(flags['step']);
114
60
  if (steps.length === 0) {
115
61
  printError('hippo process supersede requires at least one --step "<text>" for the new version.');
116
- process.exit(1);
117
- }
118
- // A supersession is a new version of the SAME process, so the new row reuses the predecessor's name (stable identity
119
- // across versions). loadProcessById gives an early not-found before the write; saveProcess's in-SAVEPOINT preflight
120
- // is the authoritative active-state check.
121
- const existing = processesModule.loadProcessById(hippoRoot, tenantId, id);
122
- if (!existing) {
123
- printError(`Process ${id} not found.`);
124
- process.exit(1);
62
+ throw new CliExit(1);
125
63
  }
126
- const changeRaw = flags['change'];
127
- const changeSummary = typeof changeRaw === 'string' && changeRaw ? changeRaw : undefined;
128
- const descRaw = flags['description'];
129
- const description = typeof descRaw === 'string' && descRaw ? descRaw : undefined;
64
+ // A supersession is a new version of the SAME process, so the new row reuses the predecessor's name; loadProcessById gives an early not-found,
65
+ // and saveProcess's in-SAVEPOINT preflight is the authoritative active-state check.
66
+ const existing = foundOrExit(processesModule.loadProcessById(hippoRoot, tenantId, id), PROCESS.noun, id);
67
+ const changeSummary = nonEmptyStringFlag(flags, 'change');
68
+ const description = nonEmptyStringFlag(flags, 'description');
130
69
  const procPathTags = extractPathTags(process.cwd());
131
70
  const created = processesModule.saveProcess(hippoRoot, tenantId, {
132
71
  processName: existing.processName,
@@ -141,18 +80,10 @@ function processSupersede(hippoRoot, tenantId, args, flags) {
141
80
  console.log(` memory: ${created.memoryId}`);
142
81
  }
143
82
  function processClose(hippoRoot, tenantId, args) {
144
- const idRaw = args[1];
145
- if (!idRaw) {
146
- printError('Usage: hippo process close <id>');
147
- process.exit(1);
148
- }
149
- const id = parsePositiveProcessId(idRaw);
150
- const closed = processesModule.closeProcess(hippoRoot, tenantId, id);
151
- console.log(`Process #${closed.id} closed.`);
83
+ closeObject(args, PROCESS, (id) => processesModule.closeProcess(hippoRoot, tenantId, id));
152
84
  }
153
- export function cmdProcess(hippoRoot, args, flags) {
85
+ export function handleProcess({ hippoRoot, tenantId, args, flags }) {
154
86
  requireInit(hippoRoot);
155
- const tenantId = resolveTenantId({});
156
87
  const subcommand = args[0] ?? '';
157
88
  if (subcommand === 'list')
158
89
  return processList(hippoRoot, tenantId, flags);
@@ -162,9 +93,8 @@ export function cmdProcess(hippoRoot, args, flags) {
162
93
  return processSupersede(hippoRoot, tenantId, args, flags);
163
94
  if (subcommand === 'close')
164
95
  return processClose(hippoRoot, tenantId, args);
165
- // Default subcommand: new (create). Accept both the documented
166
- // `process new "<name>"` form and the bare `process "<name>"` form: for the
167
- // `new` keyword the name is args[1], otherwise args[0] IS the name.
96
+ // Default subcommand is new (create): accept both `process new "<name>"` and bare `process "<name>"`;
97
+ // for the `new` keyword the name is args[1], otherwise args[0] is the name.
168
98
  processCreate(hippoRoot, tenantId, subcommand === 'new' ? (args[1] ?? '') : subcommand, flags);
169
99
  }
170
100
  function processCreate(hippoRoot, tenantId, processName, flags) {
@@ -174,11 +104,10 @@ function processCreate(hippoRoot, tenantId, processName, flags) {
174
104
  printError(' hippo process get <id>');
175
105
  printError(' hippo process supersede <id> --step "<text>" [--change "<summary>"]');
176
106
  printError(' hippo process close <id>');
177
- process.exit(1);
107
+ throw new CliExit(1);
178
108
  }
179
109
  const steps = collectProcessSteps(flags['step']);
180
- const descRaw = flags['description'];
181
- const description = typeof descRaw === 'string' && descRaw ? descRaw : undefined;
110
+ const description = nonEmptyStringFlag(flags, 'description');
182
111
  const procPathTags = extractPathTags(process.cwd());
183
112
  const created = processesModule.saveProcess(hippoRoot, tenantId, {
184
113
  processName,
@@ -190,16 +119,6 @@ function processCreate(hippoRoot, tenantId, processName, flags) {
190
119
  if (created.memoryId)
191
120
  console.log(` memory: ${created.memoryId}`);
192
121
  }
193
- // Strict positive-integer id parse for the mutating policy subcommands: parseInt alone accepts '1abc' -> 1.
194
- function parsePositivePolicyId(idRaw) {
195
- const s = String(idRaw ?? '').trim();
196
- const id = parseInt(s, 10);
197
- if (!/^\d+$/.test(s) || id <= 0) {
198
- printError(`Invalid policy id: "${idRaw}" (expected a positive integer).`);
199
- process.exit(1);
200
- }
201
- return id;
202
- }
203
122
  function printPolicyRow(p) {
204
123
  const range = p.validTo ? `${p.validFrom}..${p.validTo}` : `${p.validFrom}..(open)`;
205
124
  console.log(`#${p.id} [${p.status}] v${p.version} ${range} memory=${p.memoryId ?? '-'}`);
@@ -208,46 +127,27 @@ function printPolicyRow(p) {
208
127
  console.log(` change: ${p.changeSummary}`);
209
128
  }
210
129
  function policyList(hippoRoot, tenantId, flags) {
211
- const statusRaw = flags['status'];
212
- const status = typeof statusRaw === 'string' ? statusRaw.trim() : 'all';
213
- const limit = parseListLimit(flags);
214
- let results;
215
- if (status === 'all') {
216
- results = policiesModule.loadPolicies(hippoRoot, tenantId, { limit });
217
- }
218
- else {
219
- if (!policiesModule.VALID_POLICY_STATES.has(status)) {
220
- printError(`Invalid --status: "${status}". Must be one of: active | superseded | closed | all.`);
221
- process.exit(1);
222
- }
223
- results = policiesModule.loadPolicies(hippoRoot, tenantId, {
224
- status: status,
225
- limit,
226
- });
227
- }
228
- if (results.length === 0) {
229
- console.log('No policies.');
230
- return;
231
- }
232
- console.log(`Found ${results.length} policies:\n`);
233
- for (const p of results)
234
- printPolicyRow(p);
130
+ listObjects(flags, {
131
+ plural: 'policies',
132
+ states: policiesModule.VALID_POLICY_STATES,
133
+ load: (opts) => policiesModule.loadPolicies(hippoRoot, tenantId, opts),
134
+ printRow: printPolicyRow,
135
+ });
235
136
  }
236
137
  function policyAsOf(hippoRoot, tenantId, args, flags) {
237
138
  const dateRaw = args[1];
238
139
  if (!dateRaw) {
239
140
  printError('Usage: hippo policy asof <iso-date> [--name "<policy>"]');
240
- process.exit(1);
141
+ throw new CliExit(1);
241
142
  }
242
- const nameRaw = flags['name'];
243
- const name = typeof nameRaw === 'string' && nameRaw ? nameRaw : undefined;
143
+ const name = nonEmptyStringFlag(flags, 'name');
244
144
  let results;
245
145
  try {
246
146
  results = policiesModule.loadPoliciesAsOf(hippoRoot, tenantId, dateRaw, { name });
247
147
  }
248
148
  catch (e) {
249
- printError(e.message);
250
- process.exit(1);
149
+ printError(errorMessage(e));
150
+ throw new CliExit(1);
251
151
  }
252
152
  if (results.length === 0) {
253
153
  console.log(`No active policies in force at ${dateRaw}${name ? ` for "${name}"` : ''}.`);
@@ -258,17 +158,8 @@ function policyAsOf(hippoRoot, tenantId, args, flags) {
258
158
  printPolicyRow(p);
259
159
  }
260
160
  function policyGet(hippoRoot, tenantId, args) {
261
- const idRaw = args[1];
262
- if (!idRaw) {
263
- printError('Usage: hippo policy get <id>');
264
- process.exit(1);
265
- }
266
- const id = parsePositivePolicyId(idRaw);
267
- const p = policiesModule.loadPolicyById(hippoRoot, tenantId, id);
268
- if (!p) {
269
- printError(`Policy ${id} not found.`);
270
- process.exit(1);
271
- }
161
+ const id = idArgOrExit(args, 'Usage: hippo policy get <id>', POLICY.idLabel);
162
+ const p = foundOrExit(policiesModule.loadPolicyById(hippoRoot, tenantId, id), POLICY.noun, id);
272
163
  console.log(`Policy #${p.id}`);
273
164
  console.log(` name: ${p.policyName}`);
274
165
  console.log(` text: ${p.policyText}`);
@@ -276,45 +167,23 @@ function policyGet(hippoRoot, tenantId, args) {
276
167
  console.log(` version: ${p.version}`);
277
168
  console.log(` valid_from: ${p.validFrom}`);
278
169
  console.log(` valid_to: ${p.validTo ?? '(open-ended)'}`);
279
- if (p.changeSummary)
280
- console.log(` change_summary: ${p.changeSummary}`);
281
- if (p.supersededBy !== null)
282
- console.log(` superseded_by: #${p.supersededBy}`);
283
- if (p.supersededAt)
284
- console.log(` superseded_at: ${p.supersededAt}`);
285
- if (p.closedAt)
286
- console.log(` closed_at: ${p.closedAt}`);
287
- if (p.memoryId)
288
- console.log(` memory: ${p.memoryId}`);
289
- console.log(` created: ${p.createdAt}`);
170
+ printLifecycleTail(p);
290
171
  }
291
172
  function policySupersede(hippoRoot, tenantId, args, flags) {
292
- const idRaw = args[1];
293
- if (!idRaw) {
294
- printError('Usage: hippo policy supersede <id> --text "<rule>" [--from <iso>] [--to <iso>] [--change "<summary>"]');
295
- process.exit(1);
296
- }
297
- const id = parsePositivePolicyId(idRaw);
298
- const textRaw = flags['text'];
299
- if (typeof textRaw !== 'string' || !textRaw.trim()) {
173
+ const id = idArgOrExit(args, 'Usage: hippo policy supersede <id> --text "<rule>" [--from <iso>] [--to <iso>] [--change "<summary>"]', POLICY.idLabel);
174
+ const textRaw = stringFlag(flags, 'text');
175
+ if (!textRaw?.trim()) {
300
176
  printError('hippo policy supersede requires --text "<rule>" for the new version.');
301
- process.exit(1);
302
- }
303
- const existing = policiesModule.loadPolicyById(hippoRoot, tenantId, id);
304
- if (!existing) {
305
- printError(`Policy ${id} not found.`);
306
- process.exit(1);
177
+ throw new CliExit(1);
307
178
  }
308
- const fromRaw = flags['from'];
309
- const toRaw = flags['to'];
310
- const changeRaw = flags['change'];
179
+ const existing = foundOrExit(policiesModule.loadPolicyById(hippoRoot, tenantId, id), POLICY.noun, id);
311
180
  try {
312
181
  const created = policiesModule.savePolicy(hippoRoot, tenantId, {
313
182
  policyName: existing.policyName,
314
183
  policyText: textRaw,
315
- validFrom: typeof fromRaw === 'string' && fromRaw ? fromRaw : undefined,
316
- validTo: typeof toRaw === 'string' && toRaw ? toRaw : undefined,
317
- changeSummary: typeof changeRaw === 'string' && changeRaw ? changeRaw : undefined,
184
+ validFrom: nonEmptyStringFlag(flags, 'from'),
185
+ validTo: nonEmptyStringFlag(flags, 'to'),
186
+ changeSummary: nonEmptyStringFlag(flags, 'change'),
318
187
  supersedesPolicyId: id,
319
188
  extraTags: extractPathTags(process.cwd()),
320
189
  });
@@ -323,23 +192,15 @@ function policySupersede(hippoRoot, tenantId, args, flags) {
323
192
  console.log(` memory: ${created.memoryId}`);
324
193
  }
325
194
  catch (e) {
326
- printError(e.message);
327
- process.exit(1);
195
+ printError(errorMessage(e));
196
+ throw new CliExit(1);
328
197
  }
329
198
  }
330
199
  function policyClose(hippoRoot, tenantId, args) {
331
- const idRaw = args[1];
332
- if (!idRaw) {
333
- printError('Usage: hippo policy close <id>');
334
- process.exit(1);
335
- }
336
- const id = parsePositivePolicyId(idRaw);
337
- const closed = policiesModule.closePolicy(hippoRoot, tenantId, id);
338
- console.log(`Policy #${closed.id} closed.`);
200
+ closeObject(args, POLICY, (id) => policiesModule.closePolicy(hippoRoot, tenantId, id));
339
201
  }
340
- export function cmdPolicy(hippoRoot, args, flags) {
202
+ export function handlePolicy({ hippoRoot, tenantId, args, flags }) {
341
203
  requireInit(hippoRoot);
342
- const tenantId = resolveTenantId({});
343
204
  const subcommand = args[0] ?? '';
344
205
  if (subcommand === 'list')
345
206
  return policyList(hippoRoot, tenantId, flags);
@@ -358,24 +219,22 @@ function policyCreate(hippoRoot, tenantId, args, flags) {
358
219
  // Default subcommand: new (create). Accept both `policy new "<name>"` and the
359
220
  // bare `policy "<name>"` form: for the `new` keyword the name is args[1].
360
221
  const policyName = subcommand === 'new' ? (args[1] ?? '') : subcommand;
361
- const textRaw = flags['text'];
362
- if (!policyName || typeof textRaw !== 'string' || !textRaw.trim()) {
222
+ const textRaw = stringFlag(flags, 'text');
223
+ if (!policyName || !textRaw?.trim()) {
363
224
  printError('Usage: hippo policy new "<name>" --text "<rule>" [--from <iso>] [--to <iso>]');
364
225
  printError(' hippo policy list [--status active|superseded|closed|all] [--limit N]');
365
226
  printError(' hippo policy get <id>');
366
227
  printError(' hippo policy asof <iso-date> [--name "<policy>"]');
367
228
  printError(' hippo policy supersede <id> --text "<rule>" [--from] [--to] [--change "<summary>"]');
368
229
  printError(' hippo policy close <id>');
369
- process.exit(1);
230
+ throw new CliExit(1);
370
231
  }
371
- const fromRaw = flags['from'];
372
- const toRaw = flags['to'];
373
232
  try {
374
233
  const created = policiesModule.savePolicy(hippoRoot, tenantId, {
375
234
  policyName,
376
235
  policyText: textRaw,
377
- validFrom: typeof fromRaw === 'string' && fromRaw ? fromRaw : undefined,
378
- validTo: typeof toRaw === 'string' && toRaw ? toRaw : undefined,
236
+ validFrom: nonEmptyStringFlag(flags, 'from'),
237
+ validTo: nonEmptyStringFlag(flags, 'to'),
379
238
  extraTags: extractPathTags(process.cwd()),
380
239
  });
381
240
  const range = created.validTo ? `${created.validFrom}..${created.validTo}` : `${created.validFrom}..(open)`;
@@ -384,20 +243,10 @@ function policyCreate(hippoRoot, tenantId, args, flags) {
384
243
  console.log(` memory: ${created.memoryId}`);
385
244
  }
386
245
  catch (e) {
387
- printError(e.message);
388
- process.exit(1);
246
+ printError(errorMessage(e));
247
+ throw new CliExit(1);
389
248
  }
390
249
  }
391
- // Strict positive-integer id parse for the mutating skill subcommands: parseInt accepts '1abc' -> 1.
392
- function parsePositiveSkillId(idRaw) {
393
- const s = String(idRaw ?? '').trim();
394
- const id = parseInt(s, 10);
395
- if (!/^\d+$/.test(s) || id <= 0) {
396
- printError(`Invalid skill id: "${idRaw}" (expected a positive integer).`);
397
- process.exit(1);
398
- }
399
- return id;
400
- }
401
250
  function printSkillRow(s) {
402
251
  const trig = s.trigger ? ` when="${s.trigger}"` : '';
403
252
  console.log(`#${s.id} [${s.status}] v${s.version}${trig} memory=${s.memoryId ?? '-'}`);
@@ -406,30 +255,12 @@ function printSkillRow(s) {
406
255
  console.log(` change: ${s.changeSummary}`);
407
256
  }
408
257
  function skillList(hippoRoot, tenantId, flags) {
409
- const statusRaw = flags['status'];
410
- const status = typeof statusRaw === 'string' ? statusRaw.trim() : 'all';
411
- const limit = parseListLimit(flags);
412
- let results;
413
- if (status === 'all') {
414
- results = skillsModule.loadSkills(hippoRoot, tenantId, { limit });
415
- }
416
- else {
417
- if (!skillsModule.VALID_SKILL_STATES.has(status)) {
418
- printError(`Invalid --status: "${status}". Must be one of: active | superseded | closed | all.`);
419
- process.exit(1);
420
- }
421
- results = skillsModule.loadSkills(hippoRoot, tenantId, {
422
- status: status,
423
- limit,
424
- });
425
- }
426
- if (results.length === 0) {
427
- console.log('No skills.');
428
- return;
429
- }
430
- console.log(`Found ${results.length} skills:\n`);
431
- for (const s of results)
432
- printSkillRow(s);
258
+ listObjects(flags, {
259
+ plural: 'skills',
260
+ states: skillsModule.VALID_SKILL_STATES,
261
+ load: (opts) => skillsModule.loadSkills(hippoRoot, tenantId, opts),
262
+ printRow: printSkillRow,
263
+ });
433
264
  }
434
265
  function skillExport(hippoRoot, tenantId) {
435
266
  const md = skillsModule.exportSkills(hippoRoot, tenantId);
@@ -440,17 +271,8 @@ function skillExport(hippoRoot, tenantId) {
440
271
  console.log(md);
441
272
  }
442
273
  function skillGet(hippoRoot, tenantId, args) {
443
- const idRaw = args[1];
444
- if (!idRaw) {
445
- printError('Usage: hippo skill get <id>');
446
- process.exit(1);
447
- }
448
- const id = parsePositiveSkillId(idRaw);
449
- const s = skillsModule.loadSkillById(hippoRoot, tenantId, id);
450
- if (!s) {
451
- printError(`Skill ${id} not found.`);
452
- process.exit(1);
453
- }
274
+ const id = idArgOrExit(args, 'Usage: hippo skill get <id>', SKILL.idLabel);
275
+ const s = foundOrExit(skillsModule.loadSkillById(hippoRoot, tenantId, id), SKILL.noun, id);
454
276
  console.log(`Skill #${s.id}`);
455
277
  console.log(` name: ${s.skillName}`);
456
278
  console.log(` status: ${s.status}`);
@@ -458,43 +280,22 @@ function skillGet(hippoRoot, tenantId, args) {
458
280
  if (s.trigger)
459
281
  console.log(` when: ${s.trigger}`);
460
282
  console.log(` instructions: ${s.instructions}`);
461
- if (s.changeSummary)
462
- console.log(` change_summary: ${s.changeSummary}`);
463
- if (s.supersededBy !== null)
464
- console.log(` superseded_by: #${s.supersededBy}`);
465
- if (s.supersededAt)
466
- console.log(` superseded_at: ${s.supersededAt}`);
467
- if (s.closedAt)
468
- console.log(` closed_at: ${s.closedAt}`);
469
- if (s.memoryId)
470
- console.log(` memory: ${s.memoryId}`);
471
- console.log(` created: ${s.createdAt}`);
283
+ printLifecycleTail(s);
472
284
  }
473
285
  function skillSupersede(hippoRoot, tenantId, args, flags) {
474
- const idRaw = args[1];
475
- if (!idRaw) {
476
- printError('Usage: hippo skill supersede <id> --instructions "<text>" [--trigger "<when>"] [--change "<summary>"]');
477
- process.exit(1);
478
- }
479
- const id = parsePositiveSkillId(idRaw);
480
- const instrRaw = flags['instructions'];
481
- if (typeof instrRaw !== 'string' || !instrRaw.trim()) {
286
+ const id = idArgOrExit(args, 'Usage: hippo skill supersede <id> --instructions "<text>" [--trigger "<when>"] [--change "<summary>"]', SKILL.idLabel);
287
+ const instrRaw = stringFlag(flags, 'instructions');
288
+ if (!instrRaw?.trim()) {
482
289
  printError('hippo skill supersede requires --instructions "<text>" for the new version.');
483
- process.exit(1);
484
- }
485
- const existing = skillsModule.loadSkillById(hippoRoot, tenantId, id);
486
- if (!existing) {
487
- printError(`Skill ${id} not found.`);
488
- process.exit(1);
290
+ throw new CliExit(1);
489
291
  }
490
- const trigRaw = flags['trigger'];
491
- const changeRaw = flags['change'];
292
+ const existing = foundOrExit(skillsModule.loadSkillById(hippoRoot, tenantId, id), SKILL.noun, id);
492
293
  try {
493
294
  const created = skillsModule.saveSkill(hippoRoot, tenantId, {
494
295
  skillName: existing.skillName,
495
296
  instructions: instrRaw,
496
- trigger: typeof trigRaw === 'string' && trigRaw ? trigRaw : undefined,
497
- changeSummary: typeof changeRaw === 'string' && changeRaw ? changeRaw : undefined,
297
+ trigger: nonEmptyStringFlag(flags, 'trigger'),
298
+ changeSummary: nonEmptyStringFlag(flags, 'change'),
498
299
  supersedesSkillId: id,
499
300
  extraTags: extractPathTags(process.cwd()),
500
301
  });
@@ -503,23 +304,15 @@ function skillSupersede(hippoRoot, tenantId, args, flags) {
503
304
  console.log(` memory: ${created.memoryId}`);
504
305
  }
505
306
  catch (e) {
506
- printError(e.message);
507
- process.exit(1);
307
+ printError(errorMessage(e));
308
+ throw new CliExit(1);
508
309
  }
509
310
  }
510
311
  function skillClose(hippoRoot, tenantId, args) {
511
- const idRaw = args[1];
512
- if (!idRaw) {
513
- printError('Usage: hippo skill close <id>');
514
- process.exit(1);
515
- }
516
- const id = parsePositiveSkillId(idRaw);
517
- const closed = skillsModule.closeSkill(hippoRoot, tenantId, id);
518
- console.log(`Skill #${closed.id} closed.`);
312
+ closeObject(args, SKILL, (id) => skillsModule.closeSkill(hippoRoot, tenantId, id));
519
313
  }
520
- export function cmdSkill(hippoRoot, args, flags) {
314
+ export function handleSkill({ hippoRoot, tenantId, args, flags }) {
521
315
  requireInit(hippoRoot);
522
- const tenantId = resolveTenantId({});
523
316
  const subcommand = args[0] ?? '';
524
317
  if (subcommand === 'list')
525
318
  return skillList(hippoRoot, tenantId, flags);
@@ -538,22 +331,21 @@ function skillCreate(hippoRoot, tenantId, args, flags) {
538
331
  // Default subcommand: new (create). Accept both `skill new "<name>"` and the
539
332
  // bare `skill "<name>"` form: for the `new` keyword the name is args[1].
540
333
  const skillName = subcommand === 'new' ? (args[1] ?? '') : subcommand;
541
- const instrRaw = flags['instructions'];
542
- if (!skillName || typeof instrRaw !== 'string' || !instrRaw.trim()) {
334
+ const instrRaw = stringFlag(flags, 'instructions');
335
+ if (!skillName || !instrRaw?.trim()) {
543
336
  printError('Usage: hippo skill new "<name>" --instructions "<text>" [--trigger "<when>"]');
544
337
  printError(' hippo skill list [--status active|superseded|closed|all] [--limit N]');
545
338
  printError(' hippo skill get <id>');
546
339
  printError(' hippo skill export (render active skills as an AGENTS.md/CLAUDE.md block)');
547
340
  printError(' hippo skill supersede <id> --instructions "<text>" [--trigger] [--change "<summary>"]');
548
341
  printError(' hippo skill close <id>');
549
- process.exit(1);
342
+ throw new CliExit(1);
550
343
  }
551
- const trigRaw = flags['trigger'];
552
344
  try {
553
345
  const created = skillsModule.saveSkill(hippoRoot, tenantId, {
554
346
  skillName,
555
347
  instructions: instrRaw,
556
- trigger: typeof trigRaw === 'string' && trigRaw ? trigRaw : undefined,
348
+ trigger: nonEmptyStringFlag(flags, 'trigger'),
557
349
  extraTags: extractPathTags(process.cwd()),
558
350
  });
559
351
  console.log(`Skill recorded: #${created.id} (v${created.version})`);
@@ -561,8 +353,8 @@ function skillCreate(hippoRoot, tenantId, args, flags) {
561
353
  console.log(` memory: ${created.memoryId}`);
562
354
  }
563
355
  catch (e) {
564
- printError(e.message);
565
- process.exit(1);
356
+ printError(errorMessage(e));
357
+ throw new CliExit(1);
566
358
  }
567
359
  }
568
360
  //# sourceMappingURL=playbooks.js.map
@@ -0,0 +1,15 @@
1
+ import type { TaskSnapshot, SessionEvent } from '../store/rows.js';
2
+ import type { SessionHandoff } from '../core/handoff.js';
3
+ import type { SearchResult } from '../core/search-types.js';
4
+ import { type ImportReport } from '../agent-memories/report.js';
5
+ export declare function fmt(n: number, digits?: number): string;
6
+ export declare function recallEntryText(r: SearchResult, query: string, showWhy: boolean, isGlobal: boolean): string;
7
+ export declare function recallHeading(entries: number, tokens: number, query: string): string;
8
+ /** One line when an agent memory import moved anything; its warnings go to stderr. */
9
+ export declare function printAgentImport(report: ImportReport, indent?: string): void;
10
+ export declare function printActiveTaskSnapshot(snapshot: TaskSnapshot): void;
11
+ export declare function printSessionEvents(events: SessionEvent[]): void;
12
+ export declare function printHandoff(handoff: SessionHandoff): void;
13
+ /** Run `fn` with console.log captured; returns the captured lines joined by newlines (no final newline). */
14
+ export declare function captureConsole(fn: () => void): string;
15
+ //# sourceMappingURL=print.d.ts.map