hippo-memory 1.60.0 → 1.61.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 (585) hide show
  1. package/README.md +1 -1
  2. package/dist/ablation.js +9 -27
  3. package/dist/agent-memories/apply.js +4 -1
  4. package/dist/agent-memories/claude-code.js +1 -1
  5. package/dist/agent-memories/codex.js +1 -1
  6. package/dist/agent-memories/gemini.js +1 -1
  7. package/dist/agent-memories/legacy.js +1 -1
  8. package/dist/agent-memories/source.js +1 -1
  9. package/dist/agent-memories/sync.js +8 -3
  10. package/dist/ambient-store.d.ts +14 -0
  11. package/dist/ambient-store.js +90 -0
  12. package/dist/ambient.d.ts +23 -0
  13. package/dist/ambient.js +72 -50
  14. package/dist/api/assemble.d.ts +93 -0
  15. package/dist/api/assemble.js +152 -0
  16. package/dist/api/audit.d.ts +17 -0
  17. package/dist/api/audit.js +23 -0
  18. package/dist/api/auth.d.ts +79 -0
  19. package/dist/api/auth.js +178 -0
  20. package/dist/api/context-types.d.ts +105 -0
  21. package/dist/api/context-types.js +3 -0
  22. package/dist/api/context.d.ts +31 -0
  23. package/dist/api/context.js +705 -0
  24. package/dist/api/dormant.d.ts +30 -0
  25. package/dist/api/dormant.js +140 -0
  26. package/dist/api/drill-down.d.ts +84 -0
  27. package/dist/api/drill-down.js +123 -0
  28. package/dist/api/forget.d.ts +57 -0
  29. package/dist/api/forget.js +87 -0
  30. package/dist/api/goals.d.ts +18 -0
  31. package/dist/api/goals.js +33 -0
  32. package/dist/api/learn.d.ts +31 -0
  33. package/dist/api/learn.js +88 -0
  34. package/dist/api/outcome.d.ts +61 -0
  35. package/dist/api/outcome.js +66 -0
  36. package/dist/api/promote.d.ts +54 -0
  37. package/dist/api/promote.js +203 -0
  38. package/dist/api/quarantine.d.ts +24 -0
  39. package/dist/api/quarantine.js +121 -0
  40. package/dist/api/recall-types.d.ts +390 -0
  41. package/dist/api/recall-types.js +3 -0
  42. package/dist/api/recall.d.ts +36 -0
  43. package/dist/api/recall.js +634 -0
  44. package/dist/api/remember.d.ts +35 -0
  45. package/dist/api/remember.js +43 -0
  46. package/dist/api/sleep.d.ts +136 -0
  47. package/dist/api/sleep.js +271 -0
  48. package/dist/api/tokens.d.ts +26 -0
  49. package/dist/api/tokens.js +60 -0
  50. package/dist/api/types.d.ts +56 -0
  51. package/dist/api/types.js +38 -0
  52. package/dist/api.d.ts +20 -1262
  53. package/dist/api.js +25 -2727
  54. package/dist/audit.d.ts +3 -0
  55. package/dist/audit.js +6 -3
  56. package/dist/auth.d.ts +45 -4
  57. package/dist/auth.js +125 -48
  58. package/dist/autolearn.js +2 -2
  59. package/dist/capture/command.d.ts +33 -0
  60. package/dist/capture/command.js +264 -0
  61. package/dist/capture/compact.d.ts +44 -0
  62. package/dist/capture/compact.js +354 -0
  63. package/dist/capture/extract.d.ts +21 -0
  64. package/dist/capture/extract.js +464 -0
  65. package/dist/capture/transcript.d.ts +40 -0
  66. package/dist/capture/transcript.js +193 -0
  67. package/dist/capture-error.js +2 -1
  68. package/dist/churn-git.js +4 -2
  69. package/dist/cli/audit.d.ts +3 -0
  70. package/dist/cli/audit.js +159 -0
  71. package/dist/cli/auth.d.ts +2 -0
  72. package/dist/cli/auth.js +171 -0
  73. package/dist/cli/briefs.d.ts +4 -0
  74. package/dist/cli/briefs.js +435 -0
  75. package/dist/cli/card.d.ts +3 -0
  76. package/dist/cli/card.js +333 -0
  77. package/dist/cli/context.d.ts +15 -0
  78. package/dist/cli/context.js +366 -0
  79. package/dist/cli/continuity.d.ts +6 -0
  80. package/dist/cli/continuity.js +445 -0
  81. package/dist/cli/curate.d.ts +19 -0
  82. package/dist/cli/curate.js +555 -0
  83. package/dist/cli/dag.d.ts +5 -0
  84. package/dist/cli/dag.js +177 -0
  85. package/dist/cli/decisions.d.ts +4 -0
  86. package/dist/cli/decisions.js +528 -0
  87. package/dist/cli/eval.d.ts +5 -0
  88. package/dist/cli/eval.js +213 -0
  89. package/dist/cli/explain.d.ts +4 -0
  90. package/dist/cli/explain.js +150 -0
  91. package/dist/cli/goals.d.ts +2 -0
  92. package/dist/cli/goals.js +196 -0
  93. package/dist/cli/hook-blocks.d.ts +18 -0
  94. package/dist/cli/hook-blocks.js +233 -0
  95. package/dist/cli/init.d.ts +2 -0
  96. package/dist/cli/init.js +305 -0
  97. package/dist/cli/maintenance.d.ts +4 -0
  98. package/dist/cli/maintenance.js +179 -0
  99. package/dist/cli/playbooks.d.ts +4 -0
  100. package/dist/cli/playbooks.js +556 -0
  101. package/dist/cli/projects.js +1 -1
  102. package/dist/cli/recall.d.ts +7 -0
  103. package/dist/cli/recall.js +597 -0
  104. package/dist/cli/remember.d.ts +5 -0
  105. package/dist/cli/remember.js +442 -0
  106. package/dist/cli/serve.d.ts +5 -0
  107. package/dist/cli/serve.js +40 -0
  108. package/dist/cli/session-hooks.d.ts +29 -0
  109. package/dist/cli/session-hooks.js +637 -0
  110. package/dist/cli/setup.d.ts +4 -0
  111. package/dist/cli/setup.js +376 -0
  112. package/dist/cli/shared.d.ts +15 -19
  113. package/dist/cli/shared.js +50 -341
  114. package/dist/cli/slack.d.ts +2 -0
  115. package/dist/cli/slack.js +171 -0
  116. package/dist/cli/status.d.ts +18 -0
  117. package/dist/cli/status.js +400 -0
  118. package/dist/cli/transfer.d.ts +10 -0
  119. package/dist/cli/transfer.js +438 -0
  120. package/dist/cli/usage.d.ts +85 -0
  121. package/dist/cli/usage.js +741 -0
  122. package/dist/cli.d.ts +71 -120
  123. package/dist/cli.js +170 -8469
  124. package/dist/client.js +15 -8
  125. package/dist/compaction-record.js +6 -4
  126. package/dist/connectors/github/backfill.js +94 -87
  127. package/dist/connectors/github/cli-impl.js +4 -3
  128. package/dist/connectors/github/dlq.js +67 -54
  129. package/dist/connectors/github/ingest.js +34 -35
  130. package/dist/connectors/github/tenant-routing.js +3 -2
  131. package/dist/connectors/github/webhook.js +135 -216
  132. package/dist/connectors/slack/dlq.js +49 -61
  133. package/dist/connectors/slack/ingest.js +55 -48
  134. package/dist/connectors/slack/tenant-routing.js +4 -3
  135. package/dist/connectors/slack/webhook.js +72 -74
  136. package/dist/consolidate/conflicts.d.ts +10 -0
  137. package/dist/consolidate/conflicts.js +178 -0
  138. package/dist/consolidate/decay.d.ts +12 -0
  139. package/dist/consolidate/decay.js +145 -0
  140. package/dist/consolidate/llm-passes.d.ts +3 -0
  141. package/dist/consolidate/llm-passes.js +141 -0
  142. package/dist/consolidate/merge.d.ts +7 -0
  143. package/dist/consolidate/merge.js +251 -0
  144. package/dist/consolidate/physics-pass.d.ts +3 -0
  145. package/dist/consolidate/physics-pass.js +60 -0
  146. package/dist/consolidate/run.d.ts +69 -0
  147. package/dist/consolidate/run.js +76 -0
  148. package/dist/consolidate/sleep.d.ts +18 -0
  149. package/dist/consolidate/sleep.js +209 -0
  150. package/dist/consolidate/traces.d.ts +4 -0
  151. package/dist/consolidate/traces.js +178 -0
  152. package/dist/context-auto.js +7 -11
  153. package/dist/context-render.d.ts +1 -1
  154. package/dist/context-render.js +1 -1
  155. package/dist/customer-notes.d.ts +3 -0
  156. package/dist/customer-notes.js +6 -4
  157. package/dist/dag.js +6 -5
  158. package/dist/dashboard-actions.d.ts +20 -0
  159. package/dist/dashboard-actions.js +88 -0
  160. package/dist/dashboard-params.d.ts +45 -0
  161. package/dist/dashboard-params.js +127 -0
  162. package/dist/dashboard-queries.d.ts +15 -0
  163. package/dist/dashboard-queries.js +355 -0
  164. package/dist/dashboard-snapshot.d.ts +138 -0
  165. package/dist/dashboard-snapshot.js +308 -0
  166. package/dist/dashboard-types.d.ts +163 -0
  167. package/dist/dashboard-types.js +3 -0
  168. package/dist/dashboard.d.ts +6 -7
  169. package/dist/dashboard.js +228 -202
  170. package/dist/db/busy.d.ts +5 -0
  171. package/dist/db/busy.js +24 -0
  172. package/dist/db/continuity.d.ts +5 -0
  173. package/dist/db/continuity.js +145 -0
  174. package/dist/db/meta.d.ts +8 -0
  175. package/dist/db/meta.js +35 -0
  176. package/dist/db/migrate.d.ts +9 -0
  177. package/dist/db/migrate.js +138 -0
  178. package/dist/db/migrations/index.d.ts +5 -0
  179. package/dist/db/migrations/index.js +109 -0
  180. package/dist/db/migrations/types.d.ts +14 -0
  181. package/dist/db/migrations/types.js +2 -0
  182. package/dist/db/migrations/v01.d.ts +3 -0
  183. package/dist/db/migrations/v01.js +38 -0
  184. package/dist/db/migrations/v02.d.ts +3 -0
  185. package/dist/db/migrations/v02.js +21 -0
  186. package/dist/db/migrations/v03.d.ts +3 -0
  187. package/dist/db/migrations/v03.js +22 -0
  188. package/dist/db/migrations/v04.d.ts +3 -0
  189. package/dist/db/migrations/v04.js +28 -0
  190. package/dist/db/migrations/v05.d.ts +3 -0
  191. package/dist/db/migrations/v05.js +21 -0
  192. package/dist/db/migrations/v06.d.ts +3 -0
  193. package/dist/db/migrations/v06.js +25 -0
  194. package/dist/db/migrations/v07.d.ts +3 -0
  195. package/dist/db/migrations/v07.js +13 -0
  196. package/dist/db/migrations/v08.d.ts +3 -0
  197. package/dist/db/migrations/v08.js +8 -0
  198. package/dist/db/migrations/v09.d.ts +3 -0
  199. package/dist/db/migrations/v09.js +13 -0
  200. package/dist/db/migrations/v10.d.ts +3 -0
  201. package/dist/db/migrations/v10.js +17 -0
  202. package/dist/db/migrations/v11.d.ts +3 -0
  203. package/dist/db/migrations/v11.js +15 -0
  204. package/dist/db/migrations/v12.d.ts +3 -0
  205. package/dist/db/migrations/v12.js +11 -0
  206. package/dist/db/migrations/v13.d.ts +3 -0
  207. package/dist/db/migrations/v13.js +15 -0
  208. package/dist/db/migrations/v14.d.ts +3 -0
  209. package/dist/db/migrations/v14.js +66 -0
  210. package/dist/db/migrations/v15.d.ts +3 -0
  211. package/dist/db/migrations/v15.js +42 -0
  212. package/dist/db/migrations/v16.d.ts +3 -0
  213. package/dist/db/migrations/v16.js +61 -0
  214. package/dist/db/migrations/v17.d.ts +3 -0
  215. package/dist/db/migrations/v17.js +46 -0
  216. package/dist/db/migrations/v18.d.ts +3 -0
  217. package/dist/db/migrations/v18.js +60 -0
  218. package/dist/db/migrations/v19.d.ts +3 -0
  219. package/dist/db/migrations/v19.js +28 -0
  220. package/dist/db/migrations/v20.d.ts +3 -0
  221. package/dist/db/migrations/v20.js +42 -0
  222. package/dist/db/migrations/v21.d.ts +3 -0
  223. package/dist/db/migrations/v21.js +16 -0
  224. package/dist/db/migrations/v22.d.ts +3 -0
  225. package/dist/db/migrations/v22.js +82 -0
  226. package/dist/db/migrations/v23.d.ts +3 -0
  227. package/dist/db/migrations/v23.js +48 -0
  228. package/dist/db/migrations/v24.d.ts +3 -0
  229. package/dist/db/migrations/v24.js +72 -0
  230. package/dist/db/migrations/v25.d.ts +3 -0
  231. package/dist/db/migrations/v25.js +46 -0
  232. package/dist/db/migrations/v26.d.ts +3 -0
  233. package/dist/db/migrations/v26.js +23 -0
  234. package/dist/db/migrations/v27.d.ts +3 -0
  235. package/dist/db/migrations/v27.js +57 -0
  236. package/dist/db/migrations/v28.d.ts +3 -0
  237. package/dist/db/migrations/v28.js +38 -0
  238. package/dist/db/migrations/v29.d.ts +3 -0
  239. package/dist/db/migrations/v29.js +78 -0
  240. package/dist/db/migrations/v30.d.ts +3 -0
  241. package/dist/db/migrations/v30.js +92 -0
  242. package/dist/db/migrations/v31.d.ts +3 -0
  243. package/dist/db/migrations/v31.js +74 -0
  244. package/dist/db/migrations/v32.d.ts +3 -0
  245. package/dist/db/migrations/v32.js +102 -0
  246. package/dist/db/migrations/v33.d.ts +3 -0
  247. package/dist/db/migrations/v33.js +104 -0
  248. package/dist/db/migrations/v34.d.ts +3 -0
  249. package/dist/db/migrations/v34.js +93 -0
  250. package/dist/db/migrations/v35.d.ts +3 -0
  251. package/dist/db/migrations/v35.js +98 -0
  252. package/dist/db/migrations/v36.d.ts +3 -0
  253. package/dist/db/migrations/v36.js +98 -0
  254. package/dist/db/migrations/v37.d.ts +3 -0
  255. package/dist/db/migrations/v37.js +219 -0
  256. package/dist/db/migrations/v38.d.ts +3 -0
  257. package/dist/db/migrations/v38.js +277 -0
  258. package/dist/db/migrations/v39.d.ts +3 -0
  259. package/dist/db/migrations/v39.js +59 -0
  260. package/dist/db/migrations/v40.d.ts +3 -0
  261. package/dist/db/migrations/v40.js +74 -0
  262. package/dist/db/migrations/v41.d.ts +3 -0
  263. package/dist/db/migrations/v41.js +43 -0
  264. package/dist/db/migrations/v42.d.ts +3 -0
  265. package/dist/db/migrations/v42.js +41 -0
  266. package/dist/db/migrations/v43.d.ts +3 -0
  267. package/dist/db/migrations/v43.js +67 -0
  268. package/dist/db/migrations/v44.d.ts +3 -0
  269. package/dist/db/migrations/v44.js +28 -0
  270. package/dist/db/migrations/v45.d.ts +3 -0
  271. package/dist/db/migrations/v45.js +30 -0
  272. package/dist/db/migrations/v46.d.ts +3 -0
  273. package/dist/db/migrations/v46.js +25 -0
  274. package/dist/db/migrations/v47.d.ts +3 -0
  275. package/dist/db/migrations/v47.js +17 -0
  276. package/dist/db/migrations/v48.d.ts +3 -0
  277. package/dist/db/migrations/v48.js +10 -0
  278. package/dist/db/migrations/v49.d.ts +3 -0
  279. package/dist/db/migrations/v49.js +31 -0
  280. package/dist/db/migrations/v50.d.ts +3 -0
  281. package/dist/db/migrations/v50.js +67 -0
  282. package/dist/db/migrations/v51.d.ts +3 -0
  283. package/dist/db/migrations/v51.js +14 -0
  284. package/dist/db/migrations/v52.d.ts +3 -0
  285. package/dist/db/migrations/v52.js +7 -0
  286. package/dist/db/open.d.ts +23 -0
  287. package/dist/db/open.js +146 -0
  288. package/dist/db/sqlite.d.ts +21 -0
  289. package/dist/db/sqlite.js +8 -0
  290. package/dist/db/tables.d.ts +7 -0
  291. package/dist/db/tables.js +38 -0
  292. package/dist/db.d.ts +6 -46
  293. package/dist/db.js +5 -3049
  294. package/dist/decisions.d.ts +4 -1
  295. package/dist/decisions.js +9 -7
  296. package/dist/dedupe.js +3 -2
  297. package/dist/delivery-recorder.js +4 -1
  298. package/dist/doctor.js +3 -3
  299. package/dist/embedding-provider.d.ts +1 -1
  300. package/dist/embedding-provider.js +4 -3
  301. package/dist/embeddings.d.ts +9 -52
  302. package/dist/embeddings.js +43 -297
  303. package/dist/env.d.ts +75 -0
  304. package/dist/env.js +119 -0
  305. package/dist/eval-suite.js +1 -1
  306. package/dist/eval.js +2 -2
  307. package/dist/extract.js +1 -1
  308. package/dist/gated-write.js +3 -1
  309. package/dist/goals.d.ts +3 -1
  310. package/dist/goals.js +18 -0
  311. package/dist/graph/read.d.ts +73 -0
  312. package/dist/graph/read.js +325 -0
  313. package/dist/graph/rows.d.ts +45 -0
  314. package/dist/graph/rows.js +51 -0
  315. package/dist/graph/types.d.ts +83 -0
  316. package/dist/graph/types.js +11 -0
  317. package/dist/graph/write.d.ts +93 -0
  318. package/dist/{graph.js → graph/write.js} +6 -384
  319. package/dist/graph-extract.js +2 -1
  320. package/dist/graph-recall.d.ts +1 -1
  321. package/dist/graph-recall.js +2 -2
  322. package/dist/graph-stream.js +1 -1
  323. package/dist/graph-view.d.ts +1 -1
  324. package/dist/graph-view.js +1 -1
  325. package/dist/half-life-migration.d.ts +1 -1
  326. package/dist/half-life-migration.js +2 -1
  327. package/dist/hooks/codex-session.d.ts +8 -0
  328. package/dist/hooks/codex-session.js +76 -0
  329. package/dist/hooks/codex-wrapper.d.ts +55 -0
  330. package/dist/hooks/codex-wrapper.js +288 -0
  331. package/dist/hooks/json-hooks.d.ts +63 -0
  332. package/dist/hooks/json-hooks.js +356 -0
  333. package/dist/hooks/opencode.d.ts +50 -0
  334. package/dist/hooks/opencode.js +202 -0
  335. package/dist/hooks/shared.d.ts +54 -0
  336. package/dist/hooks/shared.js +77 -0
  337. package/dist/http-retry.d.ts +2 -0
  338. package/dist/http-retry.js +4 -3
  339. package/dist/http-util.d.ts +3 -0
  340. package/dist/http-util.js +10 -0
  341. package/dist/{importers.d.ts → importers/core.d.ts} +13 -17
  342. package/dist/importers/core.js +141 -0
  343. package/dist/importers/markdown-parse.d.ts +41 -0
  344. package/dist/importers/markdown-parse.js +132 -0
  345. package/dist/importers/markdown.d.ts +3 -0
  346. package/dist/importers/markdown.js +92 -0
  347. package/dist/importers/sources.d.ts +7 -0
  348. package/dist/importers/sources.js +229 -0
  349. package/dist/importers/vault.d.ts +11 -0
  350. package/dist/importers/vault.js +352 -0
  351. package/dist/incidents.d.ts +3 -0
  352. package/dist/incidents.js +7 -5
  353. package/dist/index.d.ts +25 -6
  354. package/dist/index.js +23 -6
  355. package/dist/invalidation.js +2 -1
  356. package/dist/judgment.js +2 -1
  357. package/dist/keyset.d.ts +13 -0
  358. package/dist/keyset.js +8 -0
  359. package/dist/local-embedding.d.ts +13 -0
  360. package/dist/local-embedding.js +165 -0
  361. package/dist/log.d.ts +7 -0
  362. package/dist/log.js +19 -1
  363. package/dist/mcp/admin-tools.d.ts +8 -0
  364. package/dist/mcp/admin-tools.js +116 -0
  365. package/dist/mcp/format.d.ts +27 -0
  366. package/dist/mcp/format.js +135 -0
  367. package/dist/mcp/memory-tools.d.ts +5 -0
  368. package/dist/mcp/memory-tools.js +83 -0
  369. package/dist/mcp/protocol.d.ts +83 -0
  370. package/dist/mcp/protocol.js +55 -0
  371. package/dist/mcp/recall-tools.d.ts +6 -0
  372. package/dist/mcp/recall-tools.js +320 -0
  373. package/dist/mcp/request.d.ts +10 -0
  374. package/dist/mcp/request.js +163 -0
  375. package/dist/mcp/server.d.ts +4 -75
  376. package/dist/mcp/server.js +7 -1190
  377. package/dist/mcp/session-state.d.ts +11 -0
  378. package/dist/mcp/session-state.js +28 -0
  379. package/dist/mcp/stdio.d.ts +8 -0
  380. package/dist/mcp/stdio.js +79 -0
  381. package/dist/mcp/tools.d.ts +11 -0
  382. package/dist/mcp/tools.js +247 -0
  383. package/dist/memory.d.ts +3 -0
  384. package/dist/memory.js +27 -1
  385. package/dist/multihop.d.ts +1 -1
  386. package/dist/multihop.js +2 -1
  387. package/dist/owner-validation.js +2 -1
  388. package/dist/physics-state.js +10 -7
  389. package/dist/policies.d.ts +3 -0
  390. package/dist/policies.js +8 -6
  391. package/dist/postinstall.js +3 -2
  392. package/dist/predictions/planning-fallacy.d.ts +100 -0
  393. package/dist/predictions/planning-fallacy.js +190 -0
  394. package/dist/{predictions.d.ts → predictions/store.d.ts} +7 -102
  395. package/dist/predictions/store.js +434 -0
  396. package/dist/processes.d.ts +3 -0
  397. package/dist/processes.js +7 -5
  398. package/dist/project-briefs.d.ts +3 -0
  399. package/dist/project-briefs.js +7 -5
  400. package/dist/project-identity.js +3 -2
  401. package/dist/project-merge.js +3 -1
  402. package/dist/quarantine.d.ts +2 -1
  403. package/dist/quarantine.js +8 -5
  404. package/dist/raw-archive.js +1 -1
  405. package/dist/recall-history.js +3 -2
  406. package/dist/recall-pipeline.d.ts +2 -2
  407. package/dist/recall-pipeline.js +16 -8
  408. package/dist/recall-scope.js +1 -1
  409. package/dist/recall-trace.d.ts +1 -1
  410. package/dist/refine-llm.js +2 -1
  411. package/dist/reject-flow.js +6 -1
  412. package/dist/rerankers/clef.js +6 -5
  413. package/dist/rerankers/jev.d.ts +1 -1
  414. package/dist/rerankers/jev.js +4 -4
  415. package/dist/rerankers/llm.d.ts +4 -2
  416. package/dist/rerankers/llm.js +58 -38
  417. package/dist/rerankers/types.d.ts +1 -1
  418. package/dist/salience.js +1 -1
  419. package/dist/scheduler.d.ts +1 -0
  420. package/dist/scheduler.js +26 -4
  421. package/dist/scope.js +4 -3
  422. package/dist/search/as-of.d.ts +10 -0
  423. package/dist/search/as-of.js +22 -0
  424. package/dist/search/bm25-search.d.ts +14 -0
  425. package/dist/search/bm25-search.js +43 -0
  426. package/dist/search/bm25.d.ts +15 -0
  427. package/dist/search/bm25.js +54 -0
  428. package/dist/search/boosts.d.ts +54 -0
  429. package/dist/search/boosts.js +94 -0
  430. package/dist/search/breakdown.d.ts +7 -0
  431. package/dist/search/breakdown.js +20 -0
  432. package/dist/search/explain.d.ts +25 -0
  433. package/dist/search/explain.js +31 -0
  434. package/dist/search/finalize.d.ts +8 -0
  435. package/dist/search/finalize.js +52 -0
  436. package/dist/search/fusion.d.ts +27 -0
  437. package/dist/search/fusion.js +42 -0
  438. package/dist/search/hybrid-score.d.ts +20 -0
  439. package/dist/search/hybrid-score.js +73 -0
  440. package/dist/search/hybrid.d.ts +46 -0
  441. package/dist/search/hybrid.js +64 -0
  442. package/dist/search/physics-search.d.ts +29 -0
  443. package/dist/search/physics-search.js +162 -0
  444. package/dist/search/rerank.d.ts +10 -0
  445. package/dist/search/rerank.js +72 -0
  446. package/dist/search/temporal.d.ts +15 -0
  447. package/dist/search/temporal.js +45 -0
  448. package/dist/search/types.d.ts +91 -0
  449. package/dist/search/types.js +2 -0
  450. package/dist/search/vector.d.ts +30 -0
  451. package/dist/search/vector.js +71 -0
  452. package/dist/secret-detect.d.ts +2 -0
  453. package/dist/secret-detect.js +2 -1
  454. package/dist/server/auth.d.ts +52 -0
  455. package/dist/server/auth.js +221 -0
  456. package/dist/server/client-ip.d.ts +25 -0
  457. package/dist/server/client-ip.js +92 -0
  458. package/dist/server/cursor.d.ts +23 -0
  459. package/dist/server/cursor.js +58 -0
  460. package/dist/server/lifecycle.d.ts +7 -0
  461. package/dist/server/lifecycle.js +29 -0
  462. package/dist/server/mcp-http.d.ts +5 -0
  463. package/dist/server/mcp-http.js +199 -0
  464. package/dist/server/request.d.ts +33 -0
  465. package/dist/server/request.js +103 -0
  466. package/dist/server/routes/admin.d.ts +9 -0
  467. package/dist/server/routes/admin.js +158 -0
  468. package/dist/server/routes/customer-notes.d.ts +7 -0
  469. package/dist/server/routes/customer-notes.js +112 -0
  470. package/dist/server/routes/decisions.d.ts +7 -0
  471. package/dist/server/routes/decisions.js +133 -0
  472. package/dist/server/routes/incidents.d.ts +7 -0
  473. package/dist/server/routes/incidents.js +126 -0
  474. package/dist/server/routes/memories.d.ts +10 -0
  475. package/dist/server/routes/memories.js +179 -0
  476. package/dist/server/routes/policies.d.ts +8 -0
  477. package/dist/server/routes/policies.js +151 -0
  478. package/dist/server/routes/predictions.d.ts +7 -0
  479. package/dist/server/routes/predictions.js +164 -0
  480. package/dist/server/routes/processes.d.ts +7 -0
  481. package/dist/server/routes/processes.js +161 -0
  482. package/dist/server/routes/project-briefs.d.ts +8 -0
  483. package/dist/server/routes/project-briefs.js +136 -0
  484. package/dist/server/routes/recall.d.ts +8 -0
  485. package/dist/server/routes/recall.js +340 -0
  486. package/dist/server/routes/skills.d.ts +8 -0
  487. package/dist/server/routes/skills.js +150 -0
  488. package/dist/server/types.d.ts +56 -0
  489. package/dist/server/types.js +2 -0
  490. package/dist/server/validation.d.ts +14 -0
  491. package/dist/server/validation.js +91 -0
  492. package/dist/server.d.ts +7 -61
  493. package/dist/server.js +69 -2362
  494. package/dist/session-digest.d.ts +1 -1
  495. package/dist/session-digest.js +9 -2
  496. package/dist/shared.d.ts +3 -1
  497. package/dist/shared.js +26 -22
  498. package/dist/skills.d.ts +3 -0
  499. package/dist/skills.js +7 -5
  500. package/dist/stdin.js +2 -2
  501. package/dist/store/audit-event.d.ts +19 -0
  502. package/dist/store/audit-event.js +33 -0
  503. package/dist/store/candidates.d.ts +42 -0
  504. package/dist/store/candidates.js +152 -0
  505. package/dist/store/conflicts.d.ts +44 -0
  506. package/dist/store/conflicts.js +444 -0
  507. package/dist/store/delete-and-batch.d.ts +63 -0
  508. package/dist/store/delete-and-batch.js +310 -0
  509. package/dist/store/entry-reads.d.ts +92 -0
  510. package/dist/store/entry-reads.js +255 -0
  511. package/dist/store/entry-row.d.ts +67 -0
  512. package/dist/store/entry-row.js +208 -0
  513. package/dist/store/entry-writes.d.ts +46 -0
  514. package/dist/store/entry-writes.js +148 -0
  515. package/dist/store/handoffs.d.ts +26 -0
  516. package/dist/store/handoffs.js +184 -0
  517. package/dist/store/index-and-stats.d.ts +52 -0
  518. package/dist/store/index-and-stats.js +214 -0
  519. package/dist/store/markdown.d.ts +10 -0
  520. package/dist/store/markdown.js +108 -0
  521. package/dist/store/mirrors.d.ts +49 -0
  522. package/dist/store/mirrors.js +312 -0
  523. package/dist/store/open.d.ts +15 -0
  524. package/dist/store/open.js +223 -0
  525. package/dist/store/rows.d.ts +178 -0
  526. package/dist/store/rows.js +158 -0
  527. package/dist/store/search-rows.d.ts +86 -0
  528. package/dist/store/search-rows.js +254 -0
  529. package/dist/store/sessions.d.ts +83 -0
  530. package/dist/store/sessions.js +272 -0
  531. package/dist/store/summaries.d.ts +94 -0
  532. package/dist/store/summaries.js +377 -0
  533. package/dist/store/tenant-lookup.d.ts +12 -0
  534. package/dist/store/tenant-lookup.js +16 -0
  535. package/dist/store-cards.js +2 -1
  536. package/dist/summary-dirty.d.ts +4 -0
  537. package/dist/summary-dirty.js +32 -0
  538. package/dist/support-bundle.js +4 -3
  539. package/dist/tenant.js +2 -2
  540. package/dist/tokenize.d.ts +2 -0
  541. package/dist/tokenize.js +16 -0
  542. package/dist/transcript-tail.d.ts +7 -0
  543. package/dist/transcript-tail.js +48 -0
  544. package/dist/vector-store.d.ts +27 -0
  545. package/dist/vector-store.js +210 -0
  546. package/dist/version.d.ts +2 -2
  547. package/dist/version.js +2 -2
  548. package/dist/working-memory.js +1 -1
  549. package/dist/yaml.js +36 -11
  550. package/dist-ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  551. package/dist-ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  552. package/dist-ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  553. package/dist-ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  554. package/dist-ui/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
  555. package/dist-ui/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
  556. package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  557. package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  558. package/dist-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  559. package/dist-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  560. package/dist-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  561. package/dist-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  562. package/dist-ui/assets/index-DPN7cP19.js +33 -0
  563. package/dist-ui/assets/index-dFloKRVr.css +1 -0
  564. package/dist-ui/index.html +3 -25
  565. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  566. package/extensions/openclaw-plugin/package.json +1 -1
  567. package/openclaw.plugin.json +1 -1
  568. package/package.json +1 -1
  569. package/dist/capture.d.ts +0 -155
  570. package/dist/capture.js +0 -1295
  571. package/dist/consolidate.d.ts +0 -58
  572. package/dist/consolidate.js +0 -1124
  573. package/dist/graph.d.ts +0 -245
  574. package/dist/hooks.d.ts +0 -208
  575. package/dist/hooks.js +0 -1076
  576. package/dist/importers.js +0 -900
  577. package/dist/predictions.js +0 -620
  578. package/dist/search.d.ts +0 -320
  579. package/dist/search.js +0 -970
  580. package/dist/store.d.ts +0 -776
  581. package/dist/store.js +0 -3473
  582. package/dist-ui/assets/d3-BiWEKnn4.js +0 -1
  583. package/dist-ui/assets/index-BhT8RvO6.js +0 -61
  584. package/dist-ui/assets/index-RoXXJ5dq.css +0 -1
  585. package/dist-ui/assets/three-BDgTxR1l.js +0 -4112
@@ -0,0 +1,741 @@
1
+ // Help text for every verb, keyed like the command table in cli.ts; no command logic lives here.
2
+ import { TAIL_MAX_LINES } from '../support-bundle.js';
3
+ export function printAuditPruneUsage() {
4
+ console.log('hippo audit prune --older-than <Nd> [--dry-run] [--tenant <t>]');
5
+ console.log(' --older-than <Nd> Delete audit_log rows with ts older than N days (e.g. 90d).');
6
+ console.log(' --dry-run Count matching rows without deleting (operator safety).');
7
+ console.log(' --tenant <t> Tenant scope. Defaults to HIPPO_TENANT or "default".');
8
+ console.log(' --json Output the result as JSON {cutoff, count, dryRun}.');
9
+ }
10
+ export function printSlackBackfillUsage() {
11
+ console.log('hippo slack backfill --channel <id> [--since ISO]');
12
+ console.log(' --channel Slack channel id (required, e.g. C0123ABC)');
13
+ console.log(' --since backfill from ISO timestamp (default: cursor)');
14
+ }
15
+ export function printSlackWorkspacesUsage() {
16
+ console.log('hippo slack workspaces <add|list|remove> [options]');
17
+ console.log(' add --team <T> --tenant <t> Register a workspace (upserts on existing team-id)');
18
+ console.log(' list List all registered workspaces');
19
+ console.log(' remove --team <T> Remove a workspace registration');
20
+ }
21
+ export const USAGE_HEADER = `
22
+ Hippo - memory for AI agents that learns what is wrong and ranks it down
23
+
24
+ Usage: hippo <command> [options]
25
+
26
+ Commands:`;
27
+ export const USAGE_EXAMPLES = `
28
+
29
+ Examples:
30
+ hippo init
31
+ hippo remember "FRED cache can silently drop series" --tag error
32
+ hippo recall "data pipeline issues" --budget 2000
33
+ hippo context --auto --budget 1500
34
+ hippo conflicts
35
+ hippo reject mem_abc123 --reason "leaked credential"
36
+ hippo reject --value "never store my key again" --reason "secret"
37
+ hippo rejections
38
+ hippo unreject a1b2c3d4e5f6
39
+ hippo dormant "staging hostname"
40
+ hippo dormant restore mem_abc123
41
+ hippo tokens --days 7
42
+ hippo session log --id sess_123 --task "Ship feature" --type progress --content "Build is green, next step is docs"
43
+ hippo session latest --json
44
+ hippo session resume
45
+ hippo snapshot save --task "Ship feature" --summary "Tests are green" --next-step "Open the PR" --session sess_123
46
+ hippo handoff create --summary "PR is open, tests green" --next "Merge after review" --session sess_123 --artifact src/foo.ts
47
+ hippo handoff create --summary s --constraint a --constraint b --outcome partial --target-runtime codex --card-id c1 --tests pass
48
+ hippo card create --title "Add cards table" --repo hippo --depends-on card_abc
49
+ hippo card claim card_abc --runtime codex
50
+ hippo card complete card_abc --outcome success
51
+ hippo card heartbeat card_abc --run 7
52
+ hippo card reclaim
53
+ hippo embed --status
54
+ hippo watch "npm run build"
55
+ hippo learn --git --days 30
56
+ hippo promote mem_abc123
57
+ hippo sync
58
+ hippo setup
59
+ hippo hook install claude-code
60
+ hippo decide "Use PostgreSQL for new services" --context "JSONB support"
61
+ hippo incident "Prod outage: DB connection pool exhausted" --context "spike at 14:00"
62
+ hippo process new "Release" --step "run tests" --step "bump version" --step "publish"
63
+ hippo policy new "Data retention" --text "Delete logs after 90 days" --from 2026-01-01
64
+ hippo policy asof 2026-03-01 --name "Data retention"
65
+ hippo skill new "Run tests" --instructions "npm test before every commit" --trigger "before commit"
66
+ hippo skill export
67
+ hippo brief new "hippo" --summary "Agent-memory library; E2 first-class objects in progress"
68
+ hippo brief refresh "hippo"
69
+ hippo note new "Acme Corp" --text "Renewal call: wants SSO before Q3; champion is the VP Eng"
70
+ hippo note list --customer "Acme Corp" --status active
71
+ hippo graph extract
72
+ hippo invalidate "REST API" --dry-run
73
+ hippo invalidate "REST API" --reason "migrated to GraphQL"
74
+ hippo invalidate --id mem_a1b2c3d4e5f6 --reason "superseded by new policy"
75
+ hippo invalidate --churn --dry-run
76
+ hippo export memories.json
77
+ hippo export --format markdown memories.md
78
+ hippo sleep --dry-run
79
+ hippo outcome --good
80
+ hippo status
81
+ `;
82
+ /** Each verb's help blocks for the command table, keyed like COMMANDS; a block opens with a newline. */
83
+ export const VERB_USAGE = {
84
+ init: [`
85
+ init Create .hippo/ structure in current directory
86
+ --scan [dir] Find all git repos under dir (default: ~) and init each
87
+ --days <n> Days of git history to seed (default: 365 for --scan, 30 for single)
88
+ --global Init the global store ($HIPPO_HOME or ~/.hippo/)
89
+ --no-hooks Skip auto-detecting and installing agent hooks
90
+ (HIPPO_SKIP_AUTO_INTEGRATIONS=1 does the same)
91
+ --no-schedule Skip auto-creating the machine-level daily runner
92
+ --no-learn Skip seeding memories from git history and importing
93
+ coding agents' own memories (every init imports those)`],
94
+ remember: [`
95
+ remember <text> Store a memory
96
+ --tag <tag> Add a tag (repeatable)
97
+ --error Tag as error (boosts retention)
98
+ --pin Pin memory (never decays)
99
+ --verified Set confidence: verified (default)
100
+ --observed Set confidence: observed
101
+ --inferred Set confidence: inferred
102
+ --global Store in global store ($HIPPO_HOME or ~/.hippo/)`],
103
+ recall: [`
104
+ recall <query> Search and retrieve memories (local + global)
105
+ --budget <n> Token budget for the whole printed block (default: 4000)
106
+ --min-results <n> Minimum results regardless of budget (default: 1)
107
+ --json Output as JSON
108
+ --why Show match reasons and source annotations
109
+ --hops <n> E3.2 multi-hop graph recall: also surface memories
110
+ reached by walking the entities/relations graph <n>
111
+ hops (0..3, default off) out from the lexical seeds.
112
+ Graph hits are tagged [graph: Nhop <rel>]. Today the
113
+ graph holds supersedes edges (E3.1); cross-object edges
114
+ light up the same traversal once extracted.
115
+ --max-neighbors <n> Per-hop fanout cap for --hops (1..200, default 25).
116
+ --graph-stream L1: fuse a graph-retrieval stream into RRF, re-ranking
117
+ in-pool results by graph proximity to the strong lexical
118
+ seeds. Implies rrf scoring (default is blend). Local store
119
+ only. Distinct from --hops (which injects out-of-pool
120
+ neighbours); this re-ranks within the candidate pool.
121
+ --graph-hops <n> Hops for --graph-stream (1..3, default 2).
122
+ --graph-seeds <n> Lexical anchors for --graph-stream (default 10). The stream
123
+ re-ranks the rank>seeds tail; on a pool with <= n candidates
124
+ every candidate is a seed and the stream is inert.
125
+ --no-mmr Disable MMR diversity re-ranking
126
+ --mmr-lambda <f> MMR balance 0..1 (default: 0.7, 1.0 = pure relevance)
127
+ --evc-adaptive ACC-style: when top-K shows high inter-item overlap
128
+ (= conflict cluster), expand pool and re-rank by
129
+ recency. Default off. RESEARCH.md §PFC.ACC.
130
+ --filter-conflicts vlPFC interference filter: drop superseded entries
131
+ and 0.3x-downweight entries flagged in an open
132
+ conflict with a peer in the same result set.
133
+ Uses recorded supersession + conflicts only — never
134
+ lexical inference. Default off. RESEARCH.md §PFC.vlPFC.
135
+ --value-aware vmPFC value attribution: boost memories with positive
136
+ cumulative outcomes and demote those with negative
137
+ outcomes during ranking. Multiplier
138
+ clip(1 + 0.3*tanh(pos - neg), 0.7, 1.3). Reuses
139
+ outcome_positive / outcome_negative; no schema
140
+ change. Default off. RESEARCH.md §PFC.vmPFC.
141
+ --rerank-utility OFC option-value re-ranker: combine relevance,
142
+ strength, and integration cost into a single utility
143
+ = score * (0.5 + 0.5 * strength) * (1 - cost_factor)
144
+ where cost_factor = min(0.3, tokens / 10000). Re-sorts
145
+ results by utility. Default off. RESEARCH.md §PFC.OFC.
146
+ --reranker <name> Apply a reranker pass after retrieval
147
+ (cross-encoder|jev|clef-flash|clef|llm). Looks up
148
+ the named reranker from src/rerankers/index.ts and
149
+ re-orders the top-K candidates. Default unset (no reranker).
150
+ jev calls the hosted TypeSafe Jev API: it needs
151
+ TYPESAFE_API_KEY, sends the query and candidate
152
+ text to that API, costs about 0.0004 USD a recall,
153
+ and falls back to cross-encoder on any failure.
154
+ clef-flash and clef send the same request to
155
+ Cloudflare Workers AI (CLOUDFLARE_ACCOUNT_ID and
156
+ CLOUDFLARE_API_TOKEN) or to HIPPO_CLEF_ENDPOINT, and
157
+ keep the native order on any failure.
158
+ See docs/evals/2026-09-19-jev-reranker.md and
159
+ docs/plans/2026-05-10-f6-reranker-hardening.md.
160
+ --reranker-top-k <n> Cap candidates passed to the reranker (default 50;
161
+ 40 for jev, clef-flash and clef).
162
+ --goal <tag> dlPFC goal-conditioned recall: memories tagged with
163
+ the goal tag get a 1.5x score boost and results are
164
+ re-sorted. Default off. RESEARCH.md §PFC.dlPFC.
165
+ --session-id <id> Session identifier for dlPFC goal-stack boost.
166
+ Defaults to \$HIPPO_SESSION_ID. When set and the
167
+ (tenant, session) has active goals (see
168
+ 'hippo goal push'), recall auto-boosts memories
169
+ whose tags match an active goal name. Boost stacks
170
+ on top of base BM25 score, capped at 3.0x.
171
+ --salience-threshold <n>
172
+ Pineal salience: down-weight memories whose
173
+ retrieval_count is below n. score *= max(0.5,
174
+ retrieval_count / n) for entries with count < n;
175
+ entries at or above n are unchanged. Salience emerges
176
+ from USE, not from lexical overlap. Default off.
177
+ RESEARCH.md §"AI Pineal Gland". (v1's creation-time
178
+ lexical gate destroyed LoCoMo 0.28 -> 0.02; this v2
179
+ is retrieval-side, opt-in only — see MEMORY.md
180
+ "Hippo salience gate destroys benchmark recall".)
181
+ --continuity Include continuity block (active task snapshot,
182
+ latest matching session handoff, last 5 session
183
+ events) above the memory list. Useful at agent
184
+ boot when you want both relevant memories AND
185
+ where you left off in one call. Anchored on the
186
+ active snapshot's session_id; no anchor = no
187
+ handoff/events (use 'hippo session resume' for
188
+ the explicit handoff-without-snapshot path).`],
189
+ drill: [`
190
+ drill <summary-id> Walk down a DAG level-2 summary to its children
191
+ --limit N Cap children list (default 50)
192
+ --budget N Token budget for the printed children (≈ chars/4)
193
+ --json Output as JSON`],
194
+ assemble: [`
195
+ assemble --session <id> Build a session's chronological context window
196
+ --budget N Token budget for the printed window (default 4000)
197
+ --fresh-tail N Recent rows always kept verbatim (default 10)
198
+ --no-summarize-older Disable older-row summary substitution
199
+ --scope <s> Restrict to exact scope (default: deny *:private:*)
200
+ --json Output as JSON`],
201
+ supersede: [`
202
+ supersede <id> "<text>" Replace a memory with a new version; the old one points at it
203
+ --layer <layer> Layer for the new memory (default: the old memory's layer)
204
+ --tag <tag> Tag for the new memory (repeatable; default: the old memory's tags)
205
+ --pin Pin the new memory (default: pinned if the old one was)`],
206
+ explain: [`
207
+ explain <query> Show full score breakdown for each retrieved memory
208
+ --budget <n> Token budget, counted as recall prints (default: 4000)
209
+ --limit <n> Cap the number of results displayed
210
+ --json Output as JSON
211
+ --physics | --classic Force search mode (default: from config)
212
+ --no-mmr Disable MMR diversity re-ranking
213
+ --mmr-lambda <f> MMR balance 0..1 (default: 0.7, 1.0 = pure relevance)`],
214
+ eval: [`
215
+ eval [<corpus.json>] Measure recall quality against a test corpus
216
+ --bootstrap Generate a synthetic corpus from current memories
217
+ --out <path> With --bootstrap, write to file instead of stdout
218
+ --max-cases <n> With --bootstrap, cap case count (default: 50)
219
+ --show-cases Print per-case details (query, R@10, missed, top 3)
220
+ --compare <path> JSON from a prior \`eval --json\` run; print deltas
221
+ --no-mmr Disable MMR for this eval run
222
+ --mmr-lambda <f> Override MMR lambda for this run
223
+ --embedding-weight <f> Override cosine weight (default: 0.6)
224
+ --local-bump <f> Local-over-global priority multiplier (default: 1.2)
225
+ --equal-sources Shortcut for --local-bump 1.0
226
+ --min-mrr <f> Exit non-zero if mean MRR falls below this
227
+ --json Output full summary as JSON`],
228
+ trace: [`
229
+ trace <id> Memory dossier: content, decay trajectory, retrievals,
230
+ outcomes, consolidation parents, open conflicts
231
+ --json Output as JSON`],
232
+ refine: [`
233
+ refine Rewrite consolidated semantic memories with Claude
234
+ --limit <n> Cap the number of memories processed this run
235
+ --all Ignore \`llm-refined\` tag and re-refine everything
236
+ --dry-run Call the API but don't write results back
237
+ --model <id> Override the default model (claude-sonnet-4-6)
238
+ --json Output summary as JSON
239
+ (requires ANTHROPIC_API_KEY in env)`],
240
+ sleep: [`
241
+ sleep Run consolidation pass (auto-learns + dedup + auto-shares)
242
+ Runs at Claude Code and OpenCode session end and in the daily job.
243
+ With ANTHROPIC_API_KEY set it sends memory text to Anthropic for
244
+ fact extraction; {"extraction":{"enabled":false}} turns that off
245
+ --dry-run Preview without writing
246
+ --no-learn Skip auto git-learn and the agent memory import before consolidation
247
+ --no-share Skip auto-sharing to global store`],
248
+ 'last-sleep': [`
249
+ last-sleep Print the last 'hippo sleep --log-file' output to stderr and clear it
250
+ --path <p> Log path (default: ~/.hippo/logs/last-sleep.log)
251
+ --keep Print without clearing`],
252
+ 'session-end': [`
253
+ session-end SessionEnd hook: count this session's re-read tokens, run sleep, then
254
+ capture from the session's last 20 user and 10 assistant messages,
255
+ in a detached worker
256
+ --log-file <path> Tee the worker's output to a log file (paired with 'hippo last-sleep')`],
257
+ 'pre-compact': [`
258
+ pre-compact PreCompact hook: record the compaction, save a working-state snapshot, and
259
+ ask the summariser to end with a "Memories for hippo" list
260
+ --log-file <p> Diagnostic log path (default: ~/.hippo/logs/pre-compact.log)`],
261
+ 'post-compact': [`
262
+ post-compact PostCompact hook: keep that list as memories (a busy store leaves the save to
263
+ the next hippo sleep) and print one line saying how many
264
+ --log-file <p> Same log path as pre-compact (default: ~/.hippo/logs/pre-compact.log)`],
265
+ 'capture-error': [`
266
+ capture-error Store a failed tool call as an error memory (reads the Claude Code
267
+ PostToolUseFailure hook payload on stdin; skips routine failures)`],
268
+ 'compact-resume': [`
269
+ compact-resume SessionStart(compact) hook: re-print the snapshot, if under 15 minutes old`],
270
+ 'codex-run': [`
271
+ codex-run [-- ...args] Launch real Codex behind Hippo's session-end wrapper`],
272
+ dedup: [`
273
+ dedup Remove duplicate memories (keeps stronger copy)
274
+ --dry-run Preview without removing
275
+ --threshold <n> Ignored, kept for old scripts: a duplicate is the same text apart from spacing`],
276
+ dag: [`
277
+ dag Show the summary tree: entity profiles, topic summaries, facts
278
+ --stats Count memories per DAG level instead`],
279
+ auth: [`
280
+ auth <sub> Manage API keys (A5 stub auth)
281
+ auth create Mint a new API key (plaintext shown ONCE)
282
+ --label <s> Optional human label
283
+ --role <r> admin | member (default: admin; member blocked from /v1/sleep)
284
+ --tenant <id> Override tenant (defaults to HIPPO_TENANT)
285
+ --json Output as JSON
286
+ --global Operate on the global store
287
+ auth list List API keys (active by default)
288
+ --all Include revoked keys
289
+ --json Output as JSON
290
+ --global Operate on the global store
291
+ auth revoke <key_id> Revoke an API key (subsequent validate fails)
292
+ --json Output as JSON
293
+ --global Operate on the global store
294
+ auth grant <key_id> <scope> Let a member key read one restricted scope
295
+ --json Output as JSON
296
+ --global Operate on the global store
297
+ auth ungrant <key_id> <scope> Remove a scope grant
298
+ --json Output as JSON
299
+ --global Operate on the global store`],
300
+ goal: [`
301
+ goal <sub> dlPFC goal stack (B3) — scoped per session
302
+ goal push <name> Push a new active goal; prints the new goal id
303
+ --policy <type> schema-fit-biased | error-prioritized |
304
+ recency-first | hybrid
305
+ --success "<cond>" Optional success condition text
306
+ --level <n> Goal level (default: 0)
307
+ --parent <goalId> Parent goal id (for sub-goals)
308
+ --session-id <s> Override session (defaults to HIPPO_SESSION_ID)
309
+ --tenant-id <t> Override tenant (defaults to HIPPO_TENANT)
310
+ goal list Show active goals as a table
311
+ --all Include suspended/completed goals
312
+ goal complete <id> Mark a goal completed
313
+ --outcome <0..1> Outcome score; >=0.7 boosts, <0.3 decays recalled mems
314
+ --no-propagate Close the goal without applying strength side-effects
315
+ goal suspend <id> Move an active goal to suspended
316
+ goal resume <id> Move a suspended goal back to active (depth-capped)`],
317
+ slack: [`
318
+ slack Slack connector subcommands (backfill, dlq, workspaces)
319
+ backfill --channel <id> [--since ISO]
320
+ Backfill a channel's history (needs SLACK_BOT_TOKEN)
321
+ dlq list List DLQ entries for the active tenant
322
+ dlq replay <id> [--force]
323
+ Re-ingest a DLQ entry (--force skips sig check)
324
+ workspaces <add|list|remove>
325
+ Map Slack workspaces (team ids) to tenants`],
326
+ github: [`
327
+ github GitHub connector subcommands (backfill, dlq)
328
+ backfill --repo <owner/name> [--since ISO] [--max <N>]
329
+ Paginated backfill of issues + comments
330
+ dlq list List DLQ entries for the active tenant
331
+ dlq replay <id> [--force]
332
+ Re-ingest a DLQ entry (--force skips sig check)`],
333
+ audit: [`
334
+ audit [--fix] Check memory quality (--fix removes junk)`, `
335
+ audit <sub> Query the append-only audit log (A5 stub auth)
336
+ audit list List audit events for the active tenant
337
+ --op <op> Filter by op (remember | recall | promote |
338
+ supersede | forget | archive_raw | auth_revoke)
339
+ --since <iso> Lower bound on ts (ISO timestamp)
340
+ --limit <n> Max events (default: 100, max: 10000)
341
+ --json Output as JSON
342
+ --global Operate on the global store`],
343
+ 'correction-latency': [`
344
+ correction-latency Wall-clock lag from receipt to supersession (p50/p95/max)
345
+ --json Output as JSON`],
346
+ provenance: [`
347
+ provenance Provenance coverage gate for kind='raw' rows
348
+ --json Output as JSON
349
+ --strict Exit non-zero when coverage < 100%`],
350
+ status: [`
351
+ status Show memory health stats`],
352
+ outcome: [`
353
+ outcome Apply feedback to last recall
354
+ --good Memories were helpful
355
+ --bad Memories were irrelevant
356
+ --id <id> Target a specific memory`],
357
+ conflicts: [`
358
+ conflicts List detected open memory conflicts
359
+ --status <status> Filter by status (default: open)
360
+ --json Output as JSON`],
361
+ resolve: [`
362
+ resolve <conflict_id> Resolve a memory conflict
363
+ --keep <memory_id> Memory to keep (required)
364
+ --forget Delete the losing memory (default: halve half-life)
365
+ --reject-loser Tombstone the loser's value too (implies removal)
366
+ --reason "<why>" Reason for --reject-loser (default: conflict context)`],
367
+ reject: [`
368
+ reject <memory-id> Tombstone a value so it refuses re-ingestion
369
+ reject --value "<t>" Pre-emptive form: tombstone a value not (currently) stored
370
+ --reason "<why>" Required. The tombstone stores no content — this
371
+ is its only human-readable identity.
372
+ --global Reject in the global store`],
373
+ rejections: [`
374
+ rejections List rejected-value tombstones for the active tenant
375
+ --json Output as JSON
376
+ --global Operate on the global store`],
377
+ unreject: [`
378
+ unreject <digest-prefix> Delete a tombstone (the only escape hatch)
379
+ --global Operate on the global store`],
380
+ dormant: [`
381
+ dormant [<query>] List faded memories sleep kept instead of deleting
382
+ (on by default; "dormant": {"enabled": false} deletes instead)
383
+ --limit <n> Max rows, newest first (default: 20)
384
+ --json Output as JSON
385
+ --global Operate on the global store
386
+ dormant restore <id> Bring a dormant memory back to active memory
387
+ dormant forget <id> Delete a dormant memory permanently`],
388
+ projects: [`
389
+ projects [list] List the project names in a store, with a hint for old worktree names
390
+ --json Output as JSON
391
+ --global Operate on the global store
392
+ projects merge <from> <into> [--apply]
393
+ Fold one project name into another (dry run unless --apply;
394
+ writes a backup and one audit event first)
395
+ projects repair [--apply]
396
+ Re-tag merged rows older versions of sleep saved as user-global,
397
+ by their parents' project (dry run unless --apply)`],
398
+ quarantine: [`
399
+ quarantine [list] List memories a connector flagged as an instruction attempt, pending review
400
+ --all Include approved and rejected rows too (default: pending only)
401
+ --json Output as JSON
402
+ --global Operate on the global store
403
+ quarantine approve <id> Restore a quarantined memory to its original scope
404
+ quarantine reject <id> Keep a quarantined memory hidden for good`],
405
+ tokens: [`
406
+ tokens Tokens of memory text hippo handed agents, per surface
407
+ (hook, compact-resume, context, recall, MCP, HTTP), what
408
+ skipping unchanged hook blocks saved, and how much of the
409
+ hook and compact-resume blocks later model calls re-read,
410
+ counted when a session ends. Estimates (characters / 4)
411
+ --days <n> Window in days (default: 30)
412
+ --json Output as JSON
413
+ --global Operate on the global store`],
414
+ failures: [`
415
+ failures Failed tool calls capture-error saw, by outcome, and how
416
+ many errors first happened in another session
417
+ --days <n> Window in days (default: 30)
418
+ --json Output as JSON
419
+ --global Operate on the global store`],
420
+ doctor: [`
421
+ doctor Check the install: Node, store, schema, sleep, agent hooks
422
+ --json Machine-readable report (exit code 1 on any failure)`],
423
+ 'support-bundle': [`
424
+ support-bundle Write a redacted JSON file for a support ticket: versions, doctor,
425
+ config without secrets, store counts, log names; never memory text
426
+ --out <file> Where to write it (default: hippo-support-<time>.json here)
427
+ --include-logs Add the last ${TAIL_MAX_LINES} lines of each hippo log, known secret shapes removed`],
428
+ snapshot: [`
429
+ snapshot <sub> Persist or inspect the current active task
430
+ snapshot save Save active task state
431
+ --task <task>
432
+ --summary <summary>
433
+ --next-step <step>
434
+ --source <source> Optional source label
435
+ --session <id> Link snapshot to a session trail
436
+ snapshot show Show the active task snapshot
437
+ --json Output as JSON
438
+ snapshot clear Clear the active task snapshot
439
+ --status <status> Mark final status (default: cleared)`],
440
+ session: [`
441
+ session <sub> Append or inspect short-term session history
442
+ session log Append a structured session event
443
+ --id <session-id>
444
+ --content <text>
445
+ --type <type> Event type (default: note)
446
+ --task <task> Optional task label
447
+ --source <source> Optional source label
448
+ session show Show recent events for a session or task
449
+ --id <session-id>
450
+ --task <task>
451
+ --limit <n> Event limit (default: 8)
452
+ --json Output as JSON
453
+ session latest Show latest task snapshot + events
454
+ --id <session-id> Filter by session
455
+ --json Output as JSON
456
+ session resume Re-inject latest handoff as context output
457
+ --id <session-id> Filter by session`],
458
+ handoff: [`
459
+ handoff <sub> Manage session handoffs for continuity
460
+ handoff create Create a new session handoff
461
+ --summary <text> Handoff summary (required)
462
+ --next <text> Next action for successor
463
+ --session <id> Session ID (auto-generated if omitted)
464
+ --task <id> Associated task ID
465
+ --artifact <path> Related file path (repeatable)
466
+ --constraint <text> Constraint for the successor to respect (repeatable)
467
+ --outcome <o> success | failure | partial
468
+ --target-runtime <n> Name of the runtime the successor will run in
469
+ --card-id <id> Associated card/ticket ID
470
+ --tests <status> pass | fail | unknown (default: unknown)
471
+ handoff latest Show the most recent handoff
472
+ --session <id> Filter by session
473
+ --json Output as JSON
474
+ handoff show <id> Show a specific handoff by ID`],
475
+ card: [`
476
+ card <sub> Manage claimable work-queue cards
477
+ card create Create a new card
478
+ --title <text> Card title (required)
479
+ --repo <name> Associated repo
480
+ --contract <text> Associated contract
481
+ --budget <n> Token/step budget
482
+ --depends-on <id> Parent card id (repeatable)
483
+ card show <id> Show a card, its deps, runs, comments and latest handoff
484
+ --json Output as JSON
485
+ card list List cards, newest-updated first
486
+ --status <status> Filter by status
487
+ card claim <id> Claim a ready or blocked card; prints its run id and lease
488
+ --runtime <name> Claiming runtime (required)
489
+ --session <id> Session ID
490
+ card heartbeat <id> Extend a running card's lease
491
+ --run <n> Your run id, as card claim printed it (required)
492
+ card block <id> Block a running card
493
+ --reason "<why>" Reason recorded as a card comment (required)
494
+ --run <n> Refuse unless <n> is the card's live run
495
+ card review <id> Move a running card to review
496
+ --run <n> Refuse unless <n> is the card's live run
497
+ card complete <id> Complete a card in review
498
+ --outcome <o> success | failure | partial (required)
499
+ --run <n> Refuse unless <n> is the card's live run
500
+ card reclaim Return every running card whose lease has expired to ready
501
+ card comment <id> Add a comment to a card
502
+ --body <text> Comment body (required)
503
+ --author <name> Comment author (default: cli)`],
504
+ predict: [`
505
+ predict "<claim>" Record a prediction to score against the actual outcome later
506
+ --class <c> Reference class (required)
507
+ --estimate <v> Numeric estimate
508
+ --unit <u> Unit of the estimate
509
+ --target <YYYY-MM-DD> When the outcome is due
510
+ predict close <id> Close a prediction
511
+ --state <s> closed | closed-unknown (required)
512
+ --actual <v> The actual value
513
+ --note "<text>" Closure note
514
+ predict list [--class <c>] [--status open|closed|closed-unknown|all] [--limit N]
515
+ List predictions (closed and closed-unknown need --class)
516
+ predict show <id> Show one prediction
517
+ predict baserate --class <c>
518
+ How past estimates in a class compared with the actuals`],
519
+ current: [`
520
+ current <sub> Show compact current state for agent injection
521
+ current show Active task + recent session events (default)
522
+ --json Output as JSON`],
523
+ forget: [`
524
+ forget <id> Force remove a memory
525
+ --archive Archive a raw (append-only) memory instead of deleting
526
+ --reason "<why>" Reason recorded on the archive (required with --archive)`],
527
+ inspect: [`
528
+ inspect <id> Show full memory detail`],
529
+ context: [`
530
+ context Smart context injection for AI agents
531
+ --auto Auto-detect task from git state
532
+ --budget <n> Token budget for the whole printed block (default: 1500)
533
+ --pinned-only Only inject pinned memories (used by UserPromptSubmit hook)
534
+ --include-recent <n> With --pinned-only, also inject the last N writes regardless of pinning
535
+ (the hook payload's "prompt" drives prompt recall instead of --include-recent when pinnedInject.promptRecall is on, the default)
536
+ --format <fmt> Output format: markdown (default), json, or additional-context (Claude Code hook JSON)
537
+ --framing <mode> Framing: observe (default), suggest, assert`],
538
+ hook: [`
539
+ hook <sub> [target] Manage framework integrations
540
+ hook list Show available hooks
541
+ hook install <target> Install hook (claude-code|codex|cursor|openclaw|opencode|pi)
542
+ claude-code adds 7 hooks to ~/.claude/settings.json;
543
+ opencode installs a plugin; codex adds 2 hooks to
544
+ $CODEX_HOME/hooks.json (trust them once in /hooks) and
545
+ wraps the detected launcher in place; all but claude-code
546
+ also patch an existing AGENTS.md
547
+ hook uninstall <target> Remove hook`],
548
+ setup: [`
549
+ setup One-shot: detect installed AI tools and install their hooks:
550
+ claude-code gets 7 hooks in ~/.claude/settings.json, opencode
551
+ a plugin, codex 2 hooks in its hooks.json plus a launcher
552
+ wrapper; other tools get a hint. Then imports each agent's
553
+ user-level memories into the global store
554
+ --all Install for every JSON-hook tool, even if not detected
555
+ --dry-run Show what would be installed without writing
556
+ --no-schedule Skip installing or repairing the daily runner
557
+ --no-learn Skip the agent memory import`],
558
+ 'daily-runner': [`
559
+ daily-runner Sweep registered workspaces and run daily learn+sleep`],
560
+ embed: [`
561
+ embed Embed all memories for semantic search
562
+ --status Show embedding coverage`],
563
+ watch: [`
564
+ watch "<command>" Run command, auto-learn from failures`],
565
+ learn: [`
566
+ learn Learn lessons from repository history
567
+ --git Scan recent git commits for lessons
568
+ --days <n> Scan this many days back (default: 7)
569
+ --repos <paths> Comma-separated repo paths to scan`],
570
+ promote: [`
571
+ promote <id> Copy a local memory to the global store`],
572
+ sync: [`
573
+ sync Pull global memories into local project`],
574
+ share: [`
575
+ share <id> Share a memory with attribution + transfer scoring
576
+ --force Share even if transfer score is low
577
+ --auto Auto-share all high-transfer-score memories
578
+ --dry-run Preview what would be shared
579
+ --min-score <n> Minimum transfer score (default: 0.6)`],
580
+ peers: [`
581
+ peers List projects contributing to global store`],
582
+ import: [`
583
+ import Import memories from other AI tools
584
+ --chatgpt <path> Import from ChatGPT memory export (JSON or txt)
585
+ --claude <path> Import from CLAUDE.md or Claude memory.json
586
+ --cursor <path> Import from .cursorrules or .cursor/rules
587
+ --file <path> Import from any markdown or text file
588
+ --markdown <path> Import from structured MEMORY.md / AGENTS.md
589
+ --vault <path> Import a markdown-vault FOLDER as kind='raw' notes
590
+ (Obsidian/Foam/Dendron). Requires --name <vault>.
591
+ [--scope <scope>]
592
+ --agents Sync every coding agent's own memories (Claude Code, Codex,
593
+ Gemini CLI, Copilot, OpenClaw, Qwen Code) now; with
594
+ --dry-run, print each tool's folders and what would change.
595
+ HIPPO_AGENT_MEMORY_TOOLS=<ids> or config agentMemories.tools
596
+ picks the tools; "none" or [] turns the import off
597
+ --dry-run Preview without writing
598
+ --global Write to global store ($HIPPO_HOME or ~/.hippo/)
599
+ --tag <tag> Add extra tag (repeatable)`],
600
+ export: [`
601
+ export [file] Export all memories (default: stdout)
602
+ --format <fmt> Output format: json (default) or markdown`],
603
+ capture: [`
604
+ capture Extract memories from conversation text
605
+ --stdin Read from piped input
606
+ --file <path> Read from a file
607
+ --last-session Read the transcript a hook names on stdin, else the newest
608
+ Claude Code one from any project
609
+ --transcript <path> Explicit transcript path (implies --last-session)
610
+ --log-file <path> Tee output to a log file (paired with 'hippo last-sleep')
611
+ --dry-run Preview without writing
612
+ --global Write to global store ($HIPPO_HOME or ~/.hippo/)`],
613
+ dashboard: [`
614
+ dashboard Open web dashboard for memory health
615
+ --port <n> Port to serve on (default: 3333)`],
616
+ wm: [`
617
+ wm <sub> Working memory — bounded buffer for current state
618
+ wm push Push a working memory entry
619
+ --scope <scope> Scope name (default: default)
620
+ --content <text> Content to store (required)
621
+ --importance <n> Priority 0-1 (default: 0.5)
622
+ --session <id> Session ID
623
+ --task <id> Task ID
624
+ wm read Read working memory entries
625
+ --scope <scope> Filter by scope
626
+ --session <id> Filter by session
627
+ --limit <n> Max entries (default: 20)
628
+ --json Output as JSON
629
+ wm clear Clear working memory entries
630
+ --scope <scope> Filter by scope
631
+ --session <id> Filter by session
632
+ wm flush Same as clear; nothing runs it at session end
633
+ --scope <scope> Filter by scope
634
+ --session <id> Filter by session`],
635
+ mcp: [`
636
+ mcp Start MCP server (stdio transport)`],
637
+ serve: [`
638
+ serve Start the HTTP API server for this store (Ctrl+C stops it)
639
+ --port <n> Port to serve on (default: $HIPPO_PORT or 6789)
640
+ --host <host> Address to bind (default: 127.0.0.1)`],
641
+ invalidate: [`
642
+ invalidate "<pattern>" Actively weaken memories matching an old pattern
643
+ (content overlap, or a tag EXACTLY equal to the
644
+ full pattern - never token-level tag matching)
645
+ --id <memory-id> Invalidate exactly one memory (instead of a pattern)
646
+ --dry-run Preview what would be hit; writes nothing
647
+ Note: a pattern equal to the system tag
648
+ 'invalidated' re-weakens previously invalidated
649
+ memories - preview with --dry-run first
650
+ --reason "<why>" Optional: what replaced it
651
+ invalidate --churn FE2: tag memories 'churn-stale' whose named file
652
+ changed or was deleted, or whose named symbol or
653
+ npm script was removed, in this repo's git history
654
+ since the memory was stored or confirmed
655
+ --dry-run Preview what would be tagged; writes nothing`],
656
+ decide: [`
657
+ decide "<decision>" Record a decision (first-class object + memory mirror)
658
+ --context "<why>" Why this decision was made
659
+ --supersedes <mem-id> Supersede the decision backed by this memory id
660
+ decide list [--status active|superseded|closed|all] [--limit N]
661
+ List decisions (table is authoritative, survives decay)
662
+ decide get <id> Show a decision by its table id
663
+ decide close <id> Retire (close) an active decision by its table id`],
664
+ incident: [`
665
+ incident "<incident>" Record an incident (first-class object + memory mirror)
666
+ --context "<details>" What happened / surrounding detail
667
+ --link <mem-id> Link a memory as evidence (repeatable)
668
+ incident list [--status open|resolved|closed|all] [--limit N]
669
+ List incidents (table is authoritative, survives decay)
670
+ incident get <id> Show an incident by its table id
671
+ incident resolve <id> Resolve an open incident (open -> resolved)
672
+ --resolution "<text>" How it was resolved (required)
673
+ incident close <id> Retire (close) an open or resolved incident by its table id`],
674
+ process: [`
675
+ process new "<name>" Record a process map (first-class object + memory mirror)
676
+ --step "<text>" An ordered step (repeatable)
677
+ --description "<text>" Optional summary of the process
678
+ process list [--status active|superseded|closed|all] [--limit N]
679
+ List processes (table is authoritative, survives decay)
680
+ process get <id> Show a process (with its steps) by its table id
681
+ process supersede <id> Record a new version that supersedes an active process
682
+ --step "<text>" A step of the new version (repeatable, required)
683
+ --change "<summary>" What changed in this version (the delta note)
684
+ --description "<text>" Optional summary of the new version
685
+ process close <id> Retire (close) an active process by its table id`],
686
+ policy: [`
687
+ policy new "<name>" Record a policy (bi-temporal first-class object + mirror)
688
+ --text "<rule>" The policy rule/statement (required)
689
+ --from "<iso>" Effective-from date (default: now)
690
+ --to "<iso>" Effective-to date (optional; open-ended if omitted)
691
+ policy list [--status active|superseded|closed|all] [--limit N]
692
+ List policies (table is authoritative, survives decay)
693
+ policy get <id> Show a policy by its table id
694
+ policy asof "<iso-date>" Show active policies in force at a valid-time
695
+ --name "<policy>" Filter to one policy by name
696
+ policy supersede <id> Record a new version that supersedes an active policy
697
+ --text "<rule>" The new rule (required)
698
+ --from "<iso>" New effective-from (default: now)
699
+ --to "<iso>" New effective-to (optional)
700
+ --change "<summary>" What changed in this version (the delta note)
701
+ policy close <id> Retire (close) an active policy by its table id`],
702
+ skill: [`
703
+ skill new "<name>" Record a skill (reusable agent-followable capability)
704
+ --instructions "<txt>" The skill body (required)
705
+ --trigger "<when>" Optional: when to apply this skill
706
+ skill list [--status active|superseded|closed|all] [--limit N]
707
+ List skills (table is authoritative, survives decay)
708
+ skill get <id> Show a skill by its table id
709
+ skill export Render active skills as an AGENTS.md/CLAUDE.md markdown block
710
+ skill supersede <id> Record a new version that supersedes an active skill
711
+ --instructions "<txt>" The new skill body (required)
712
+ --trigger "<when>" Optional new trigger
713
+ --change "<summary>" What changed in this version (the delta note)
714
+ skill close <id> Retire (close) an active skill by its table id`],
715
+ brief: [`
716
+ brief new "<repo>" Record a repo-scoped project brief
717
+ --summary "<text>" The brief body (required)
718
+ brief list [--status active|superseded|closed|all] [--repo "<repo>"] [--limit N]
719
+ List project briefs (table is authoritative, survives decay)
720
+ brief get <id> Show a project brief by its table id
721
+ brief supersede <id> Record a new version that supersedes an active brief
722
+ --summary "<text>" The new brief body (required)
723
+ --change "<summary>" What changed in this version (the delta note)
724
+ brief close <id> Retire (close) an active project brief by its table id
725
+ brief refresh "<repo>" Auto-assemble the brief from the repo's receipts (path:<repo>)
726
+ --dry-run Print the assembled brief without writing it`],
727
+ note: [`
728
+ note new "<customer>" Record a customer/account-scoped note
729
+ --text "<note>" The note body (required)
730
+ note list [--status active|superseded|closed|all] [--customer "<id>"] [--limit N]
731
+ List customer notes (table is authoritative, survives decay)
732
+ note get <id> Show a customer note by its table id
733
+ note supersede <id> Record a new version that supersedes an active note
734
+ --text "<note>" The new note body (required)
735
+ --change "<summary>" What changed in this version (the delta note)
736
+ note close <id> Retire (close) an active customer note by its table id`],
737
+ graph: [`
738
+ graph extract Rebuild the entity/relation graph from consolidated objects
739
+ (decisions/policies/customer-notes/project-briefs); idempotent`],
740
+ };
741
+ //# sourceMappingURL=usage.js.map