hippo-memory 1.60.0 → 1.62.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 (593) hide show
  1. package/README.md +29 -54
  2. package/dist/ablation.js +9 -27
  3. package/dist/agent-memories/apply.d.ts +1 -1
  4. package/dist/agent-memories/apply.js +4 -1
  5. package/dist/agent-memories/claude-code.d.ts +3 -1
  6. package/dist/agent-memories/claude-code.js +54 -10
  7. package/dist/agent-memories/codex.js +1 -1
  8. package/dist/agent-memories/gemini.js +1 -1
  9. package/dist/agent-memories/legacy.js +1 -1
  10. package/dist/agent-memories/source.js +1 -1
  11. package/dist/agent-memories/sync.d.ts +3 -3
  12. package/dist/agent-memories/sync.js +22 -9
  13. package/dist/agent-memories/types.d.ts +0 -2
  14. package/dist/ambient-store.d.ts +14 -0
  15. package/dist/ambient-store.js +90 -0
  16. package/dist/ambient.d.ts +23 -0
  17. package/dist/ambient.js +72 -50
  18. package/dist/api/assemble.d.ts +93 -0
  19. package/dist/api/assemble.js +153 -0
  20. package/dist/api/audit.d.ts +17 -0
  21. package/dist/api/audit.js +23 -0
  22. package/dist/api/auth.d.ts +79 -0
  23. package/dist/api/auth.js +178 -0
  24. package/dist/api/context-select.d.ts +49 -0
  25. package/dist/api/context-select.js +344 -0
  26. package/dist/api/context-types.d.ts +105 -0
  27. package/dist/api/context-types.js +3 -0
  28. package/dist/api/context.d.ts +31 -0
  29. package/dist/api/context.js +378 -0
  30. package/dist/api/dormant.d.ts +30 -0
  31. package/dist/api/dormant.js +140 -0
  32. package/dist/api/drill-down.d.ts +84 -0
  33. package/dist/api/drill-down.js +126 -0
  34. package/dist/api/forget.d.ts +57 -0
  35. package/dist/api/forget.js +87 -0
  36. package/dist/api/goals.d.ts +18 -0
  37. package/dist/api/goals.js +33 -0
  38. package/dist/api/learn.d.ts +31 -0
  39. package/dist/api/learn.js +88 -0
  40. package/dist/api/outcome.d.ts +61 -0
  41. package/dist/api/outcome.js +66 -0
  42. package/dist/api/promote.d.ts +54 -0
  43. package/dist/api/promote.js +192 -0
  44. package/dist/api/quarantine.d.ts +24 -0
  45. package/dist/api/quarantine.js +121 -0
  46. package/dist/api/recall-types.d.ts +390 -0
  47. package/dist/api/recall-types.js +3 -0
  48. package/dist/api/recall.d.ts +36 -0
  49. package/dist/api/recall.js +499 -0
  50. package/dist/api/remember.d.ts +35 -0
  51. package/dist/api/remember.js +43 -0
  52. package/dist/api/sleep.d.ts +136 -0
  53. package/dist/api/sleep.js +256 -0
  54. package/dist/api/tokens.d.ts +26 -0
  55. package/dist/api/tokens.js +60 -0
  56. package/dist/api/types.d.ts +56 -0
  57. package/dist/api/types.js +38 -0
  58. package/dist/api.d.ts +20 -1262
  59. package/dist/api.js +25 -2727
  60. package/dist/audit.d.ts +3 -0
  61. package/dist/audit.js +6 -3
  62. package/dist/auth.d.ts +45 -4
  63. package/dist/auth.js +125 -48
  64. package/dist/autolearn.js +2 -2
  65. package/dist/capture/command.d.ts +33 -0
  66. package/dist/capture/command.js +264 -0
  67. package/dist/capture/compact.d.ts +44 -0
  68. package/dist/capture/compact.js +354 -0
  69. package/dist/capture/extract.d.ts +21 -0
  70. package/dist/capture/extract.js +464 -0
  71. package/dist/capture/transcript.d.ts +40 -0
  72. package/dist/capture/transcript.js +193 -0
  73. package/dist/capture-error.js +2 -1
  74. package/dist/churn-git.js +4 -2
  75. package/dist/cli/audit.d.ts +3 -0
  76. package/dist/cli/audit.js +159 -0
  77. package/dist/cli/auth.d.ts +2 -0
  78. package/dist/cli/auth.js +171 -0
  79. package/dist/cli/briefs.d.ts +4 -0
  80. package/dist/cli/briefs.js +453 -0
  81. package/dist/cli/card.d.ts +3 -0
  82. package/dist/cli/card.js +333 -0
  83. package/dist/cli/context.d.ts +15 -0
  84. package/dist/cli/context.js +376 -0
  85. package/dist/cli/continuity.d.ts +6 -0
  86. package/dist/cli/continuity.js +457 -0
  87. package/dist/cli/curate.d.ts +19 -0
  88. package/dist/cli/curate.js +556 -0
  89. package/dist/cli/dag.d.ts +5 -0
  90. package/dist/cli/dag.js +177 -0
  91. package/dist/cli/decisions.d.ts +4 -0
  92. package/dist/cli/decisions.js +528 -0
  93. package/dist/cli/eval.d.ts +5 -0
  94. package/dist/cli/eval.js +213 -0
  95. package/dist/cli/explain.d.ts +4 -0
  96. package/dist/cli/explain.js +156 -0
  97. package/dist/cli/goals.d.ts +2 -0
  98. package/dist/cli/goals.js +196 -0
  99. package/dist/cli/hook-blocks.d.ts +18 -0
  100. package/dist/cli/hook-blocks.js +233 -0
  101. package/dist/cli/init.d.ts +2 -0
  102. package/dist/cli/init.js +305 -0
  103. package/dist/cli/maintenance.d.ts +4 -0
  104. package/dist/cli/maintenance.js +190 -0
  105. package/dist/cli/playbooks.d.ts +4 -0
  106. package/dist/cli/playbooks.js +573 -0
  107. package/dist/cli/projects.js +9 -6
  108. package/dist/cli/recall.d.ts +7 -0
  109. package/dist/cli/recall.js +582 -0
  110. package/dist/cli/remember.d.ts +5 -0
  111. package/dist/cli/remember.js +485 -0
  112. package/dist/cli/serve.d.ts +5 -0
  113. package/dist/cli/serve.js +40 -0
  114. package/dist/cli/session-hooks.d.ts +29 -0
  115. package/dist/cli/session-hooks.js +647 -0
  116. package/dist/cli/setup.d.ts +4 -0
  117. package/dist/cli/setup.js +397 -0
  118. package/dist/cli/shared.d.ts +15 -19
  119. package/dist/cli/shared.js +50 -341
  120. package/dist/cli/slack.d.ts +2 -0
  121. package/dist/cli/slack.js +171 -0
  122. package/dist/cli/status.d.ts +18 -0
  123. package/dist/cli/status.js +409 -0
  124. package/dist/cli/transfer.d.ts +10 -0
  125. package/dist/cli/transfer.js +424 -0
  126. package/dist/cli/usage.d.ts +85 -0
  127. package/dist/cli/usage.js +741 -0
  128. package/dist/cli.d.ts +71 -120
  129. package/dist/cli.js +170 -8469
  130. package/dist/client.js +15 -8
  131. package/dist/compaction-record.d.ts +0 -2
  132. package/dist/compaction-record.js +7 -5
  133. package/dist/connectors/github/backfill.js +94 -87
  134. package/dist/connectors/github/cli-impl.js +4 -3
  135. package/dist/connectors/github/dlq.js +67 -54
  136. package/dist/connectors/github/ingest.js +34 -35
  137. package/dist/connectors/github/tenant-routing.js +3 -2
  138. package/dist/connectors/github/webhook.js +135 -216
  139. package/dist/connectors/slack/dlq.js +49 -61
  140. package/dist/connectors/slack/ingest.js +55 -48
  141. package/dist/connectors/slack/tenant-routing.js +4 -3
  142. package/dist/connectors/slack/webhook.js +72 -74
  143. package/dist/consolidate/conflicts.d.ts +10 -0
  144. package/dist/consolidate/conflicts.js +178 -0
  145. package/dist/consolidate/decay.d.ts +12 -0
  146. package/dist/consolidate/decay.js +145 -0
  147. package/dist/consolidate/llm-passes.d.ts +3 -0
  148. package/dist/consolidate/llm-passes.js +141 -0
  149. package/dist/consolidate/merge.d.ts +7 -0
  150. package/dist/consolidate/merge.js +251 -0
  151. package/dist/consolidate/physics-pass.d.ts +3 -0
  152. package/dist/consolidate/physics-pass.js +60 -0
  153. package/dist/consolidate/run.d.ts +69 -0
  154. package/dist/consolidate/run.js +76 -0
  155. package/dist/consolidate/sleep.d.ts +18 -0
  156. package/dist/consolidate/sleep.js +209 -0
  157. package/dist/consolidate/traces.d.ts +4 -0
  158. package/dist/consolidate/traces.js +178 -0
  159. package/dist/context-auto.js +7 -11
  160. package/dist/context-render.d.ts +1 -1
  161. package/dist/context-render.js +1 -1
  162. package/dist/customer-notes.d.ts +3 -0
  163. package/dist/customer-notes.js +83 -72
  164. package/dist/dag.js +225 -188
  165. package/dist/dashboard-actions.d.ts +20 -0
  166. package/dist/dashboard-actions.js +88 -0
  167. package/dist/dashboard-params.d.ts +45 -0
  168. package/dist/dashboard-params.js +127 -0
  169. package/dist/dashboard-queries.d.ts +15 -0
  170. package/dist/dashboard-queries.js +355 -0
  171. package/dist/dashboard-snapshot.d.ts +138 -0
  172. package/dist/dashboard-snapshot.js +308 -0
  173. package/dist/dashboard-types.d.ts +163 -0
  174. package/dist/dashboard-types.js +3 -0
  175. package/dist/dashboard.d.ts +6 -7
  176. package/dist/dashboard.js +228 -202
  177. package/dist/db/busy.d.ts +5 -0
  178. package/dist/db/busy.js +24 -0
  179. package/dist/db/continuity.d.ts +5 -0
  180. package/dist/db/continuity.js +145 -0
  181. package/dist/db/meta.d.ts +8 -0
  182. package/dist/db/meta.js +35 -0
  183. package/dist/db/migrate.d.ts +9 -0
  184. package/dist/db/migrate.js +138 -0
  185. package/dist/db/migrations/index.d.ts +5 -0
  186. package/dist/db/migrations/index.js +109 -0
  187. package/dist/db/migrations/types.d.ts +14 -0
  188. package/dist/db/migrations/types.js +2 -0
  189. package/dist/db/migrations/v01.d.ts +3 -0
  190. package/dist/db/migrations/v01.js +38 -0
  191. package/dist/db/migrations/v02.d.ts +3 -0
  192. package/dist/db/migrations/v02.js +21 -0
  193. package/dist/db/migrations/v03.d.ts +3 -0
  194. package/dist/db/migrations/v03.js +22 -0
  195. package/dist/db/migrations/v04.d.ts +3 -0
  196. package/dist/db/migrations/v04.js +28 -0
  197. package/dist/db/migrations/v05.d.ts +3 -0
  198. package/dist/db/migrations/v05.js +21 -0
  199. package/dist/db/migrations/v06.d.ts +3 -0
  200. package/dist/db/migrations/v06.js +25 -0
  201. package/dist/db/migrations/v07.d.ts +3 -0
  202. package/dist/db/migrations/v07.js +13 -0
  203. package/dist/db/migrations/v08.d.ts +3 -0
  204. package/dist/db/migrations/v08.js +8 -0
  205. package/dist/db/migrations/v09.d.ts +3 -0
  206. package/dist/db/migrations/v09.js +13 -0
  207. package/dist/db/migrations/v10.d.ts +3 -0
  208. package/dist/db/migrations/v10.js +17 -0
  209. package/dist/db/migrations/v11.d.ts +3 -0
  210. package/dist/db/migrations/v11.js +15 -0
  211. package/dist/db/migrations/v12.d.ts +3 -0
  212. package/dist/db/migrations/v12.js +11 -0
  213. package/dist/db/migrations/v13.d.ts +3 -0
  214. package/dist/db/migrations/v13.js +15 -0
  215. package/dist/db/migrations/v14.d.ts +3 -0
  216. package/dist/db/migrations/v14.js +66 -0
  217. package/dist/db/migrations/v15.d.ts +3 -0
  218. package/dist/db/migrations/v15.js +42 -0
  219. package/dist/db/migrations/v16.d.ts +3 -0
  220. package/dist/db/migrations/v16.js +61 -0
  221. package/dist/db/migrations/v17.d.ts +3 -0
  222. package/dist/db/migrations/v17.js +46 -0
  223. package/dist/db/migrations/v18.d.ts +3 -0
  224. package/dist/db/migrations/v18.js +60 -0
  225. package/dist/db/migrations/v19.d.ts +3 -0
  226. package/dist/db/migrations/v19.js +28 -0
  227. package/dist/db/migrations/v20.d.ts +3 -0
  228. package/dist/db/migrations/v20.js +42 -0
  229. package/dist/db/migrations/v21.d.ts +3 -0
  230. package/dist/db/migrations/v21.js +16 -0
  231. package/dist/db/migrations/v22.d.ts +3 -0
  232. package/dist/db/migrations/v22.js +82 -0
  233. package/dist/db/migrations/v23.d.ts +3 -0
  234. package/dist/db/migrations/v23.js +48 -0
  235. package/dist/db/migrations/v24.d.ts +3 -0
  236. package/dist/db/migrations/v24.js +72 -0
  237. package/dist/db/migrations/v25.d.ts +3 -0
  238. package/dist/db/migrations/v25.js +46 -0
  239. package/dist/db/migrations/v26.d.ts +3 -0
  240. package/dist/db/migrations/v26.js +23 -0
  241. package/dist/db/migrations/v27.d.ts +3 -0
  242. package/dist/db/migrations/v27.js +57 -0
  243. package/dist/db/migrations/v28.d.ts +3 -0
  244. package/dist/db/migrations/v28.js +38 -0
  245. package/dist/db/migrations/v29.d.ts +3 -0
  246. package/dist/db/migrations/v29.js +78 -0
  247. package/dist/db/migrations/v30.d.ts +3 -0
  248. package/dist/db/migrations/v30.js +92 -0
  249. package/dist/db/migrations/v31.d.ts +3 -0
  250. package/dist/db/migrations/v31.js +74 -0
  251. package/dist/db/migrations/v32.d.ts +3 -0
  252. package/dist/db/migrations/v32.js +102 -0
  253. package/dist/db/migrations/v33.d.ts +3 -0
  254. package/dist/db/migrations/v33.js +104 -0
  255. package/dist/db/migrations/v34.d.ts +3 -0
  256. package/dist/db/migrations/v34.js +93 -0
  257. package/dist/db/migrations/v35.d.ts +3 -0
  258. package/dist/db/migrations/v35.js +98 -0
  259. package/dist/db/migrations/v36.d.ts +3 -0
  260. package/dist/db/migrations/v36.js +98 -0
  261. package/dist/db/migrations/v37.d.ts +3 -0
  262. package/dist/db/migrations/v37.js +219 -0
  263. package/dist/db/migrations/v38.d.ts +3 -0
  264. package/dist/db/migrations/v38.js +277 -0
  265. package/dist/db/migrations/v39.d.ts +3 -0
  266. package/dist/db/migrations/v39.js +59 -0
  267. package/dist/db/migrations/v40.d.ts +3 -0
  268. package/dist/db/migrations/v40.js +74 -0
  269. package/dist/db/migrations/v41.d.ts +3 -0
  270. package/dist/db/migrations/v41.js +43 -0
  271. package/dist/db/migrations/v42.d.ts +3 -0
  272. package/dist/db/migrations/v42.js +41 -0
  273. package/dist/db/migrations/v43.d.ts +3 -0
  274. package/dist/db/migrations/v43.js +67 -0
  275. package/dist/db/migrations/v44.d.ts +3 -0
  276. package/dist/db/migrations/v44.js +28 -0
  277. package/dist/db/migrations/v45.d.ts +3 -0
  278. package/dist/db/migrations/v45.js +30 -0
  279. package/dist/db/migrations/v46.d.ts +3 -0
  280. package/dist/db/migrations/v46.js +25 -0
  281. package/dist/db/migrations/v47.d.ts +3 -0
  282. package/dist/db/migrations/v47.js +17 -0
  283. package/dist/db/migrations/v48.d.ts +3 -0
  284. package/dist/db/migrations/v48.js +10 -0
  285. package/dist/db/migrations/v49.d.ts +3 -0
  286. package/dist/db/migrations/v49.js +31 -0
  287. package/dist/db/migrations/v50.d.ts +3 -0
  288. package/dist/db/migrations/v50.js +67 -0
  289. package/dist/db/migrations/v51.d.ts +3 -0
  290. package/dist/db/migrations/v51.js +14 -0
  291. package/dist/db/migrations/v52.d.ts +3 -0
  292. package/dist/db/migrations/v52.js +7 -0
  293. package/dist/db/open.d.ts +23 -0
  294. package/dist/db/open.js +146 -0
  295. package/dist/db/sqlite.d.ts +21 -0
  296. package/dist/db/sqlite.js +8 -0
  297. package/dist/db/tables.d.ts +7 -0
  298. package/dist/db/tables.js +38 -0
  299. package/dist/db.d.ts +6 -46
  300. package/dist/db.js +5 -3049
  301. package/dist/decisions.d.ts +4 -1
  302. package/dist/decisions.js +102 -83
  303. package/dist/dedupe.js +3 -2
  304. package/dist/delivery-recorder.js +4 -1
  305. package/dist/doctor.js +14 -10
  306. package/dist/embedding-provider.d.ts +1 -1
  307. package/dist/embedding-provider.js +4 -3
  308. package/dist/embeddings.d.ts +9 -52
  309. package/dist/embeddings.js +43 -297
  310. package/dist/env.d.ts +75 -0
  311. package/dist/env.js +119 -0
  312. package/dist/eval-suite.js +1 -1
  313. package/dist/eval.js +2 -2
  314. package/dist/extract.js +1 -1
  315. package/dist/gated-write.js +3 -1
  316. package/dist/goals.d.ts +3 -1
  317. package/dist/goals.js +117 -86
  318. package/dist/graph/read.d.ts +73 -0
  319. package/dist/graph/read.js +325 -0
  320. package/dist/graph/rows.d.ts +45 -0
  321. package/dist/graph/rows.js +51 -0
  322. package/dist/graph/types.d.ts +83 -0
  323. package/dist/graph/types.js +11 -0
  324. package/dist/graph/write.d.ts +93 -0
  325. package/dist/{graph.js → graph/write.js} +6 -384
  326. package/dist/graph-extract.js +2 -1
  327. package/dist/graph-recall.d.ts +1 -1
  328. package/dist/graph-recall.js +2 -2
  329. package/dist/graph-stream.js +1 -1
  330. package/dist/graph-view.d.ts +1 -1
  331. package/dist/graph-view.js +1 -1
  332. package/dist/half-life-migration.d.ts +1 -1
  333. package/dist/half-life-migration.js +2 -1
  334. package/dist/hooks/codex-session.d.ts +8 -0
  335. package/dist/hooks/codex-session.js +76 -0
  336. package/dist/hooks/codex-wrapper.d.ts +55 -0
  337. package/dist/hooks/codex-wrapper.js +288 -0
  338. package/dist/hooks/json-hooks.d.ts +63 -0
  339. package/dist/hooks/json-hooks.js +356 -0
  340. package/dist/hooks/opencode.d.ts +50 -0
  341. package/dist/hooks/opencode.js +202 -0
  342. package/dist/hooks/shared.d.ts +54 -0
  343. package/dist/hooks/shared.js +77 -0
  344. package/dist/http-retry.d.ts +2 -0
  345. package/dist/http-retry.js +4 -3
  346. package/dist/http-util.d.ts +3 -0
  347. package/dist/http-util.js +10 -0
  348. package/dist/{importers.d.ts → importers/core.d.ts} +13 -17
  349. package/dist/importers/core.js +141 -0
  350. package/dist/importers/markdown-parse.d.ts +41 -0
  351. package/dist/importers/markdown-parse.js +132 -0
  352. package/dist/importers/markdown.d.ts +3 -0
  353. package/dist/importers/markdown.js +92 -0
  354. package/dist/importers/sources.d.ts +7 -0
  355. package/dist/importers/sources.js +229 -0
  356. package/dist/importers/vault.d.ts +11 -0
  357. package/dist/importers/vault.js +352 -0
  358. package/dist/incidents.d.ts +3 -0
  359. package/dist/incidents.js +52 -43
  360. package/dist/index.d.ts +25 -6
  361. package/dist/index.js +23 -6
  362. package/dist/invalidation.js +2 -1
  363. package/dist/judgment.js +2 -1
  364. package/dist/keyset.d.ts +13 -0
  365. package/dist/keyset.js +8 -0
  366. package/dist/local-embedding.d.ts +13 -0
  367. package/dist/local-embedding.js +165 -0
  368. package/dist/log.d.ts +7 -0
  369. package/dist/log.js +19 -1
  370. package/dist/mcp/admin-tools.d.ts +8 -0
  371. package/dist/mcp/admin-tools.js +116 -0
  372. package/dist/mcp/format.d.ts +27 -0
  373. package/dist/mcp/format.js +135 -0
  374. package/dist/mcp/memory-tools.d.ts +5 -0
  375. package/dist/mcp/memory-tools.js +83 -0
  376. package/dist/mcp/protocol.d.ts +83 -0
  377. package/dist/mcp/protocol.js +55 -0
  378. package/dist/mcp/recall-tools.d.ts +6 -0
  379. package/dist/mcp/recall-tools.js +320 -0
  380. package/dist/mcp/request.d.ts +10 -0
  381. package/dist/mcp/request.js +163 -0
  382. package/dist/mcp/server.d.ts +4 -75
  383. package/dist/mcp/server.js +7 -1190
  384. package/dist/mcp/session-state.d.ts +11 -0
  385. package/dist/mcp/session-state.js +28 -0
  386. package/dist/mcp/stdio.d.ts +8 -0
  387. package/dist/mcp/stdio.js +79 -0
  388. package/dist/mcp/tools.d.ts +11 -0
  389. package/dist/mcp/tools.js +247 -0
  390. package/dist/memory.d.ts +3 -0
  391. package/dist/memory.js +27 -1
  392. package/dist/multihop.d.ts +1 -1
  393. package/dist/multihop.js +2 -1
  394. package/dist/owner-validation.js +2 -1
  395. package/dist/physics-state.js +10 -7
  396. package/dist/policies.d.ts +3 -0
  397. package/dist/policies.js +93 -74
  398. package/dist/postinstall.js +3 -2
  399. package/dist/predictions/planning-fallacy.d.ts +100 -0
  400. package/dist/predictions/planning-fallacy.js +190 -0
  401. package/dist/{predictions.d.ts → predictions/store.d.ts} +7 -102
  402. package/dist/predictions/store.js +434 -0
  403. package/dist/processes.d.ts +3 -0
  404. package/dist/processes.js +94 -76
  405. package/dist/project-briefs.d.ts +3 -0
  406. package/dist/project-briefs.js +142 -113
  407. package/dist/project-identity.js +3 -2
  408. package/dist/project-merge.d.ts +12 -4
  409. package/dist/project-merge.js +132 -45
  410. package/dist/quarantine.d.ts +2 -1
  411. package/dist/quarantine.js +8 -5
  412. package/dist/raw-archive.js +1 -1
  413. package/dist/recall-history.js +3 -2
  414. package/dist/recall-pipeline.d.ts +2 -2
  415. package/dist/recall-pipeline.js +16 -8
  416. package/dist/recall-scope.js +1 -1
  417. package/dist/recall-trace.d.ts +1 -1
  418. package/dist/refine-llm.js +2 -1
  419. package/dist/reject-flow.js +6 -1
  420. package/dist/rerankers/clef.js +6 -5
  421. package/dist/rerankers/jev.d.ts +1 -1
  422. package/dist/rerankers/jev.js +4 -4
  423. package/dist/rerankers/llm.d.ts +4 -2
  424. package/dist/rerankers/llm.js +58 -38
  425. package/dist/rerankers/types.d.ts +1 -1
  426. package/dist/salience.js +1 -1
  427. package/dist/scheduler.d.ts +1 -0
  428. package/dist/scheduler.js +26 -4
  429. package/dist/scope.js +4 -3
  430. package/dist/search/as-of.d.ts +10 -0
  431. package/dist/search/as-of.js +22 -0
  432. package/dist/search/bm25-search.d.ts +14 -0
  433. package/dist/search/bm25-search.js +43 -0
  434. package/dist/search/bm25.d.ts +15 -0
  435. package/dist/search/bm25.js +54 -0
  436. package/dist/search/boosts.d.ts +54 -0
  437. package/dist/search/boosts.js +94 -0
  438. package/dist/search/breakdown.d.ts +7 -0
  439. package/dist/search/breakdown.js +20 -0
  440. package/dist/search/explain.d.ts +25 -0
  441. package/dist/search/explain.js +31 -0
  442. package/dist/search/finalize.d.ts +8 -0
  443. package/dist/search/finalize.js +52 -0
  444. package/dist/search/fusion.d.ts +27 -0
  445. package/dist/search/fusion.js +42 -0
  446. package/dist/search/hybrid-score.d.ts +20 -0
  447. package/dist/search/hybrid-score.js +73 -0
  448. package/dist/search/hybrid.d.ts +46 -0
  449. package/dist/search/hybrid.js +64 -0
  450. package/dist/search/physics-search.d.ts +29 -0
  451. package/dist/search/physics-search.js +162 -0
  452. package/dist/search/rerank.d.ts +10 -0
  453. package/dist/search/rerank.js +72 -0
  454. package/dist/search/temporal.d.ts +15 -0
  455. package/dist/search/temporal.js +45 -0
  456. package/dist/search/types.d.ts +91 -0
  457. package/dist/search/types.js +2 -0
  458. package/dist/search/vector.d.ts +30 -0
  459. package/dist/search/vector.js +71 -0
  460. package/dist/secret-detect.d.ts +2 -0
  461. package/dist/secret-detect.js +2 -1
  462. package/dist/server/auth.d.ts +52 -0
  463. package/dist/server/auth.js +221 -0
  464. package/dist/server/client-ip.d.ts +25 -0
  465. package/dist/server/client-ip.js +92 -0
  466. package/dist/server/cursor.d.ts +23 -0
  467. package/dist/server/cursor.js +58 -0
  468. package/dist/server/lifecycle.d.ts +7 -0
  469. package/dist/server/lifecycle.js +29 -0
  470. package/dist/server/mcp-http.d.ts +5 -0
  471. package/dist/server/mcp-http.js +199 -0
  472. package/dist/server/request.d.ts +33 -0
  473. package/dist/server/request.js +103 -0
  474. package/dist/server/routes/admin.d.ts +9 -0
  475. package/dist/server/routes/admin.js +158 -0
  476. package/dist/server/routes/customer-notes.d.ts +7 -0
  477. package/dist/server/routes/customer-notes.js +112 -0
  478. package/dist/server/routes/decisions.d.ts +7 -0
  479. package/dist/server/routes/decisions.js +133 -0
  480. package/dist/server/routes/incidents.d.ts +7 -0
  481. package/dist/server/routes/incidents.js +126 -0
  482. package/dist/server/routes/memories.d.ts +10 -0
  483. package/dist/server/routes/memories.js +179 -0
  484. package/dist/server/routes/policies.d.ts +8 -0
  485. package/dist/server/routes/policies.js +151 -0
  486. package/dist/server/routes/predictions.d.ts +7 -0
  487. package/dist/server/routes/predictions.js +164 -0
  488. package/dist/server/routes/processes.d.ts +7 -0
  489. package/dist/server/routes/processes.js +161 -0
  490. package/dist/server/routes/project-briefs.d.ts +8 -0
  491. package/dist/server/routes/project-briefs.js +136 -0
  492. package/dist/server/routes/recall.d.ts +8 -0
  493. package/dist/server/routes/recall.js +340 -0
  494. package/dist/server/routes/skills.d.ts +8 -0
  495. package/dist/server/routes/skills.js +150 -0
  496. package/dist/server/types.d.ts +56 -0
  497. package/dist/server/types.js +2 -0
  498. package/dist/server/validation.d.ts +14 -0
  499. package/dist/server/validation.js +91 -0
  500. package/dist/server.d.ts +7 -61
  501. package/dist/server.js +69 -2362
  502. package/dist/session-digest.d.ts +1 -1
  503. package/dist/session-digest.js +9 -2
  504. package/dist/shared.d.ts +12 -1
  505. package/dist/shared.js +33 -27
  506. package/dist/skills.d.ts +3 -0
  507. package/dist/skills.js +88 -70
  508. package/dist/stdin.js +2 -2
  509. package/dist/store/audit-event.d.ts +19 -0
  510. package/dist/store/audit-event.js +33 -0
  511. package/dist/store/candidates.d.ts +42 -0
  512. package/dist/store/candidates.js +152 -0
  513. package/dist/store/conflicts.d.ts +44 -0
  514. package/dist/store/conflicts.js +444 -0
  515. package/dist/store/delete-and-batch.d.ts +63 -0
  516. package/dist/store/delete-and-batch.js +310 -0
  517. package/dist/store/entry-reads.d.ts +92 -0
  518. package/dist/store/entry-reads.js +255 -0
  519. package/dist/store/entry-row.d.ts +67 -0
  520. package/dist/store/entry-row.js +208 -0
  521. package/dist/store/entry-writes.d.ts +46 -0
  522. package/dist/store/entry-writes.js +148 -0
  523. package/dist/store/handoffs.d.ts +26 -0
  524. package/dist/store/handoffs.js +184 -0
  525. package/dist/store/index-and-stats.d.ts +52 -0
  526. package/dist/store/index-and-stats.js +214 -0
  527. package/dist/store/markdown.d.ts +10 -0
  528. package/dist/store/markdown.js +108 -0
  529. package/dist/store/mirrors.d.ts +49 -0
  530. package/dist/store/mirrors.js +312 -0
  531. package/dist/store/open.d.ts +15 -0
  532. package/dist/store/open.js +223 -0
  533. package/dist/store/rows.d.ts +178 -0
  534. package/dist/store/rows.js +158 -0
  535. package/dist/store/search-rows.d.ts +86 -0
  536. package/dist/store/search-rows.js +260 -0
  537. package/dist/store/sessions.d.ts +83 -0
  538. package/dist/store/sessions.js +272 -0
  539. package/dist/store/summaries.d.ts +94 -0
  540. package/dist/store/summaries.js +377 -0
  541. package/dist/store/tenant-lookup.d.ts +12 -0
  542. package/dist/store/tenant-lookup.js +16 -0
  543. package/dist/store-cards.js +2 -1
  544. package/dist/summary-dirty.d.ts +4 -0
  545. package/dist/summary-dirty.js +32 -0
  546. package/dist/support-bundle.js +4 -3
  547. package/dist/tenant.js +2 -2
  548. package/dist/tokenize.d.ts +2 -0
  549. package/dist/tokenize.js +16 -0
  550. package/dist/transcript-tail.d.ts +7 -0
  551. package/dist/transcript-tail.js +48 -0
  552. package/dist/vector-store.d.ts +27 -0
  553. package/dist/vector-store.js +210 -0
  554. package/dist/version.d.ts +2 -2
  555. package/dist/version.js +2 -2
  556. package/dist/working-memory.js +1 -1
  557. package/dist/yaml.js +36 -11
  558. package/dist-ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  559. package/dist-ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  560. package/dist-ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  561. package/dist-ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  562. package/dist-ui/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
  563. package/dist-ui/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
  564. package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  565. package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  566. package/dist-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  567. package/dist-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  568. package/dist-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  569. package/dist-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  570. package/dist-ui/assets/index-DPN7cP19.js +33 -0
  571. package/dist-ui/assets/index-dFloKRVr.css +1 -0
  572. package/dist-ui/index.html +3 -25
  573. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  574. package/extensions/openclaw-plugin/package.json +1 -1
  575. package/openclaw.plugin.json +1 -1
  576. package/package.json +1 -1
  577. package/dist/capture.d.ts +0 -155
  578. package/dist/capture.js +0 -1295
  579. package/dist/consolidate.d.ts +0 -58
  580. package/dist/consolidate.js +0 -1124
  581. package/dist/graph.d.ts +0 -245
  582. package/dist/hooks.d.ts +0 -208
  583. package/dist/hooks.js +0 -1076
  584. package/dist/importers.js +0 -900
  585. package/dist/predictions.js +0 -620
  586. package/dist/search.d.ts +0 -320
  587. package/dist/search.js +0 -970
  588. package/dist/store.d.ts +0 -776
  589. package/dist/store.js +0 -3473
  590. package/dist-ui/assets/d3-BiWEKnn4.js +0 -1
  591. package/dist-ui/assets/index-BhT8RvO6.js +0 -61
  592. package/dist-ui/assets/index-RoXXJ5dq.css +0 -1
  593. package/dist-ui/assets/three-BDgTxR1l.js +0 -4112
@@ -0,0 +1,288 @@
1
+ import { envPath } from '../env.js';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import { isJsonString, HIPPO_CODEX_WRAPPER_MARKER, homeDir, codexHomeDir, ensureDir } from './shared.js';
6
+ export function resolveCodexWrapperPaths() {
7
+ const home = homeDir();
8
+ const codexHome = codexHomeDir(home);
9
+ const wrapperDir = path.join(home, '.hippo', 'bin');
10
+ return {
11
+ wrapperDir,
12
+ metadataPath: path.join(home, '.hippo', 'integrations', 'codex.json'),
13
+ wrapperCmdPath: path.join(wrapperDir, 'codex.cmd'),
14
+ wrapperPs1Path: path.join(wrapperDir, 'codex.ps1'),
15
+ wrapperShPath: path.join(wrapperDir, 'codex'),
16
+ logFile: path.join(home, '.hippo', 'logs', 'codex-sleep.log'),
17
+ runsDir: path.join(home, '.hippo', 'runs', 'codex'),
18
+ codexHome,
19
+ historyPath: path.join(codexHome, 'history.jsonl'),
20
+ };
21
+ }
22
+ function pathEquals(a, b) {
23
+ return path.resolve(a).toLowerCase() === path.resolve(b).toLowerCase();
24
+ }
25
+ function readCodexWrapperMetadata() {
26
+ const { metadataPath } = resolveCodexWrapperPaths();
27
+ if (!fs.existsSync(metadataPath))
28
+ return null;
29
+ try {
30
+ // This optimistic parse is never trusted directly — every call site reads fields off
31
+ // the result only after isCodexWrapperMetadataValid has runtime-checked each string
32
+ // field and the referenced paths.
33
+ const parsed = JSON.parse(fs.readFileSync(metadataPath, 'utf8'));
34
+ return parsed;
35
+ }
36
+ catch {
37
+ // Unreadable metadata is treated like the missing-file case above.
38
+ return null;
39
+ }
40
+ }
41
+ function readTextFile(filePath) {
42
+ try {
43
+ return fs.readFileSync(filePath, 'utf8');
44
+ }
45
+ catch {
46
+ // Callers treat an unreadable file as absent.
47
+ return null;
48
+ }
49
+ }
50
+ function isHippoCodexWrapperFile(filePath) {
51
+ if (!fs.existsSync(filePath))
52
+ return false;
53
+ const text = readTextFile(filePath);
54
+ return text !== null && text.includes(HIPPO_CODEX_WRAPPER_MARKER);
55
+ }
56
+ function isCodexWrapperMetadataValid(metadata) {
57
+ if (!metadata)
58
+ return false;
59
+ return (isJsonString(metadata.originalCodexPath) &&
60
+ isJsonString(metadata.realCodexPath) &&
61
+ isJsonString(metadata.commandPath) &&
62
+ isJsonString(metadata.backupPath) &&
63
+ fs.existsSync(metadata.realCodexPath) &&
64
+ fs.existsSync(metadata.backupPath) &&
65
+ isHippoCodexWrapperFile(metadata.commandPath));
66
+ }
67
+ function resolveHippoCliPath() {
68
+ return fileURLToPath(new URL('../bin/hippo.js', import.meta.url));
69
+ }
70
+ function quoteForShell(value) {
71
+ return `"${value.replace(/(["\\$`])/g, '\\$1')}"`;
72
+ }
73
+ function quoteForPowerShell(value) {
74
+ return `'${value.replace(/'/g, "''")}'`;
75
+ }
76
+ function quoteForCmd(value) {
77
+ return `"${value.replace(/"/g, '""')}"`;
78
+ }
79
+ function resolveCodexInstallPlan(originalCodexPath) {
80
+ const dir = path.dirname(originalCodexPath);
81
+ const ext = path.extname(originalCodexPath).toLowerCase();
82
+ const name = path.basename(originalCodexPath, ext);
83
+ const backupPath = path.join(dir, `${name}.hippo-real${ext}`);
84
+ if (process.platform === 'win32' && ext === '.exe') {
85
+ return {
86
+ commandPath: path.join(dir, `${name}.cmd`),
87
+ backupPath,
88
+ installMode: 'cmd-shim',
89
+ };
90
+ }
91
+ return {
92
+ commandPath: originalCodexPath,
93
+ backupPath,
94
+ installMode: 'same-path',
95
+ };
96
+ }
97
+ function writeCodexLauncherWrapper(commandPath) {
98
+ const ext = path.extname(commandPath).toLowerCase();
99
+ const nodePath = process.execPath;
100
+ const hippoCliPath = resolveHippoCliPath();
101
+ if (process.platform === 'win32' && ext === '.ps1') {
102
+ writeExecutableFile(commandPath, [
103
+ `# ${HIPPO_CODEX_WRAPPER_MARKER}`,
104
+ `& ${quoteForPowerShell(nodePath)} ${quoteForPowerShell(hippoCliPath)} codex-run -- @args`,
105
+ '',
106
+ ].join('\n'));
107
+ return;
108
+ }
109
+ if (process.platform === 'win32' && (ext === '.cmd' || ext === '.bat')) {
110
+ writeExecutableFile(commandPath, [
111
+ '@echo off',
112
+ `REM ${HIPPO_CODEX_WRAPPER_MARKER}`,
113
+ `${quoteForCmd(nodePath)} ${quoteForCmd(hippoCliPath)} codex-run -- %*`,
114
+ '',
115
+ ].join('\r\n'));
116
+ return;
117
+ }
118
+ writeExecutableFile(commandPath, [
119
+ '#!/usr/bin/env sh',
120
+ `# ${HIPPO_CODEX_WRAPPER_MARKER}`,
121
+ `exec ${quoteForShell(nodePath)} ${quoteForShell(hippoCliPath)} codex-run -- "$@"`,
122
+ '',
123
+ ].join('\n'));
124
+ }
125
+ function cleanupLegacyCodexPathWrappers(paths) {
126
+ for (const filePath of [paths.wrapperCmdPath, paths.wrapperPs1Path, paths.wrapperShPath]) {
127
+ if (fs.existsSync(filePath))
128
+ fs.rmSync(filePath, { force: true });
129
+ }
130
+ }
131
+ export function detectRealCodexPath() {
132
+ const metadata = readCodexWrapperMetadata();
133
+ if (isCodexWrapperMetadataValid(metadata))
134
+ return metadata.realCodexPath;
135
+ const { wrapperDir } = resolveCodexWrapperPaths();
136
+ const entries = (envPath() ?? '')
137
+ .split(path.delimiter)
138
+ .map((entry) => entry.trim())
139
+ .filter(Boolean)
140
+ .filter((entry) => !pathEquals(entry, wrapperDir));
141
+ const names = process.platform === 'win32'
142
+ ? ['codex.cmd', 'codex.ps1', 'codex.exe', 'codex']
143
+ : ['codex'];
144
+ for (const entry of entries) {
145
+ for (const name of names) {
146
+ const candidate = path.join(entry, name);
147
+ if (fs.existsSync(candidate))
148
+ return candidate;
149
+ }
150
+ }
151
+ return null;
152
+ }
153
+ function writeExecutableFile(filePath, content) {
154
+ fs.writeFileSync(filePath, content, 'utf8');
155
+ try {
156
+ fs.chmodSync(filePath, 0o755);
157
+ }
158
+ catch {
159
+ // chmod is best-effort on Windows
160
+ }
161
+ }
162
+ export function installCodexWrapper(realCodexPath) {
163
+ const existingMetadata = readCodexWrapperMetadata();
164
+ if (isCodexWrapperMetadataValid(existingMetadata) && !realCodexPath) {
165
+ cleanupLegacyCodexPathWrappers(resolveCodexWrapperPaths());
166
+ return {
167
+ installed: true,
168
+ metadataPath: resolveCodexWrapperPaths().metadataPath,
169
+ realCodexPath: existingMetadata.realCodexPath,
170
+ commandPath: existingMetadata.commandPath,
171
+ backupPath: existingMetadata.backupPath,
172
+ installMode: existingMetadata.installMode,
173
+ };
174
+ }
175
+ const resolvedRealCodexPath = realCodexPath ?? detectRealCodexPath();
176
+ if (!resolvedRealCodexPath) {
177
+ throw new Error('Could not locate the real Codex executable on PATH.');
178
+ }
179
+ const paths = resolveCodexWrapperPaths();
180
+ ensureDir(path.dirname(paths.metadataPath));
181
+ ensureDir(path.dirname(paths.logFile));
182
+ ensureDir(paths.runsDir);
183
+ cleanupLegacyCodexPathWrappers(paths);
184
+ const plan = resolveCodexInstallPlan(resolvedRealCodexPath);
185
+ ensureDir(path.dirname(plan.commandPath));
186
+ if (isCodexWrapperMetadataValid(existingMetadata)) {
187
+ uninstallCodexWrapper();
188
+ }
189
+ if (!fs.existsSync(plan.backupPath)) {
190
+ fs.renameSync(resolvedRealCodexPath, plan.backupPath);
191
+ }
192
+ writeCodexLauncherWrapper(plan.commandPath);
193
+ const metadata = {
194
+ originalCodexPath: resolvedRealCodexPath,
195
+ realCodexPath: plan.backupPath,
196
+ commandPath: plan.commandPath,
197
+ backupPath: plan.backupPath,
198
+ installMode: plan.installMode,
199
+ logFile: paths.logFile,
200
+ installedAt: new Date().toISOString(),
201
+ };
202
+ fs.writeFileSync(paths.metadataPath, JSON.stringify(metadata, null, 2) + '\n', 'utf8');
203
+ return {
204
+ installed: true,
205
+ metadataPath: paths.metadataPath,
206
+ realCodexPath: metadata.realCodexPath,
207
+ commandPath: metadata.commandPath,
208
+ backupPath: metadata.backupPath,
209
+ installMode: metadata.installMode,
210
+ };
211
+ }
212
+ export function uninstallCodexWrapper() {
213
+ const paths = resolveCodexWrapperPaths();
214
+ let changed = false;
215
+ const metadata = readCodexWrapperMetadata();
216
+ if (metadata) {
217
+ if (fs.existsSync(metadata.commandPath) && isHippoCodexWrapperFile(metadata.commandPath)) {
218
+ fs.rmSync(metadata.commandPath, { force: true });
219
+ changed = true;
220
+ }
221
+ if (fs.existsSync(metadata.backupPath)) {
222
+ fs.renameSync(metadata.backupPath, metadata.originalCodexPath);
223
+ changed = true;
224
+ }
225
+ }
226
+ cleanupLegacyCodexPathWrappers(paths);
227
+ if (fs.existsSync(paths.metadataPath)) {
228
+ fs.rmSync(paths.metadataPath, { force: true });
229
+ changed = true;
230
+ }
231
+ return changed;
232
+ }
233
+ export function ensureCodexWrapperInstalled() {
234
+ const metadata = readCodexWrapperMetadata();
235
+ if (isCodexWrapperMetadataValid(metadata)) {
236
+ cleanupLegacyCodexPathWrappers(resolveCodexWrapperPaths());
237
+ return {
238
+ status: 'already-installed',
239
+ metadataPath: resolveCodexWrapperPaths().metadataPath,
240
+ realCodexPath: metadata.realCodexPath,
241
+ commandPath: metadata.commandPath,
242
+ backupPath: metadata.backupPath,
243
+ };
244
+ }
245
+ if (metadata) {
246
+ uninstallCodexWrapper();
247
+ }
248
+ const detectedRealCodexPath = detectRealCodexPath();
249
+ if (!detectedRealCodexPath) {
250
+ return { status: 'not-found' };
251
+ }
252
+ const result = installCodexWrapper(detectedRealCodexPath);
253
+ return {
254
+ status: 'installed',
255
+ metadataPath: result.metadataPath,
256
+ realCodexPath: result.realCodexPath,
257
+ commandPath: result.commandPath,
258
+ backupPath: result.backupPath,
259
+ };
260
+ }
261
+ /**
262
+ * True if Codex wrapper metadata exists on this machine, i.e. the user opted
263
+ * in to the wrapper at some point (via `hippo hook install codex`).
264
+ */
265
+ export function isCodexWrapperInstalled() {
266
+ return readCodexWrapperMetadata() !== null;
267
+ }
268
+ /**
269
+ * Repair-only variant of `ensureCodexWrapperInstalled`: re-ensures the wrapper
270
+ * ONLY when wrapper metadata already exists — that metadata is the user's
271
+ * opt-in record. Never performs a first install. Replacing another vendor's
272
+ * binary must stay behind the explicit `hippo hook install codex` command;
273
+ * doing it from postinstall or routine commands is a consent violation and
274
+ * reads as binary hijacking to security scanners (issue #133).
275
+ */
276
+ export function repairCodexWrapperIfInstalled(hippoCliPath = resolveHippoCliPath()) {
277
+ if (readCodexWrapperMetadata() === null) {
278
+ return { status: 'not-found' };
279
+ }
280
+ // A checkout's own `npm install` or CLI would point the user's launcher at a folder that may be deleted.
281
+ // SHORTCUT: any node_modules copy (npx cache, a project dependency) still repairs; record the opted-in CLI path in the metadata to close that.
282
+ const packageDir = path.dirname(path.dirname(hippoCliPath));
283
+ if (path.basename(path.dirname(packageDir)).toLowerCase() !== 'node_modules') {
284
+ return { status: 'source-checkout' };
285
+ }
286
+ return ensureCodexWrapperInstalled();
287
+ }
288
+ //# sourceMappingURL=codex-wrapper.js.map
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Hook install/uninstall for AI coding tools.
3
+ *
4
+ * Two integration models live in this file:
5
+ *
6
+ * 1. JSON-hook install (Claude Code only). Writes a `hooks` block into the
7
+ * tool's settings.json with two entries:
8
+ * - SessionEnd: `hippo session-end --log-file <path>` - spawns a detached
9
+ * child that runs `hippo sleep` then `hippo capture --last-session` in
10
+ * sequence, writing both outputs to the log file. The parent returns in
11
+ * <100ms so the TUI teardown can't kill the child before it finishes.
12
+ * - SessionStart: `hippo last-sleep --path <path>` - prints the log
13
+ * written by the previous session's detached worker to stderr, which
14
+ * keeps it out of the model's context, and then clears it.
15
+ * Earlier Claude Code forms are detected and migrated automatically:
16
+ * - < 0.20.2: `Stop` hook firing `hippo sleep` on every assistant turn.
17
+ * - < 0.21.0: bare `hippo sleep` in SessionEnd, no `--log-file`.
18
+ * - 0.22.x: separate sleep + capture SessionEnd entries.
19
+ * PreCompact and PostCompact entries go in too: the first records the compaction and
20
+ * asks the summariser for a "Memories for hippo" list, the second saves that list.
21
+ * Codex's hooks.json gets only two groups (per-prompt memory and
22
+ * compact-resume); see installCodexHooks.
23
+ *
24
+ * 2. Plugin install (OpenCode only). OpenCode does NOT share Claude Code's
25
+ * JSON-hook schema — its config has `additionalProperties: false` and no
26
+ * `hooks` key, so v1.10.x-v1.11.1's JSON-hook installer broke opencode
27
+ * launch (issue #24). Hippo now installs a TypeScript plugin at
28
+ * `~/.config/opencode/plugins/hippo.ts` subscribing to opencode's
29
+ * `session.idle` (→ `hippo session-end`) and `session.created` (→
30
+ * `hippo last-sleep`) events. See OPENCODE_PLUGIN_SOURCE below for the
31
+ * plugin file content + design rationale; see installOpencodePlugin for
32
+ * the installer + the migration that removes any pre-existing broken
33
+ * `hooks` block from opencode.json.
34
+ */
35
+ import { type JsonHookTarget } from './shared.js';
36
+ export interface JsonHookPaths {
37
+ settings: string;
38
+ logFile: string;
39
+ display: string;
40
+ }
41
+ export interface InstallResult {
42
+ target: JsonHookTarget;
43
+ settingsPath: string;
44
+ installedSessionEnd: boolean;
45
+ installedSessionStart: boolean;
46
+ installedUserPromptSubmit: boolean;
47
+ installedPreCompact: boolean;
48
+ installedCompactResume: boolean;
49
+ /** PostCompact -> `hippo post-compact` (saves the summary's memories, tells the user how many). */
50
+ installedPostCompact: boolean;
51
+ /** PostToolUseFailure -> `hippo capture-error` (failed tool calls become error memories). */
52
+ installedCaptureError: boolean;
53
+ migratedPinnedInjectRecent: boolean;
54
+ migratedFromStop: boolean;
55
+ migratedLegacySessionEnd: boolean;
56
+ migratedSplitSessionEnd: boolean;
57
+ /** The file exists but is not JSON hippo can merge into, so it was left untouched. */
58
+ invalidJson: boolean;
59
+ }
60
+ export declare function resolveJsonHookPaths(target: JsonHookTarget): JsonHookPaths;
61
+ export declare function installJsonHooks(target: JsonHookTarget): InstallResult;
62
+ export declare function uninstallJsonHooks(target: JsonHookTarget): boolean;
63
+ //# sourceMappingURL=json-hooks.d.ts.map