hippo-memory 1.72.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (995) hide show
  1. package/README.md +6 -4
  2. package/dist/agent-memories/apply.d.ts +7 -5
  3. package/dist/agent-memories/apply.js +66 -39
  4. package/dist/agent-memories/claude-code.d.ts +8 -2
  5. package/dist/agent-memories/claude-code.js +26 -7
  6. package/dist/agent-memories/copilot.js +2 -1
  7. package/dist/agent-memories/files.js +2 -1
  8. package/dist/agent-memories/legacy.d.ts +6 -3
  9. package/dist/agent-memories/legacy.js +35 -14
  10. package/dist/agent-memories/markdown.d.ts +3 -1
  11. package/dist/agent-memories/markdown.js +3 -1
  12. package/dist/agent-memories/openclaw.js +5 -2
  13. package/dist/agent-memories/plan.js +11 -1
  14. package/dist/agent-memories/project-folds.js +2 -1
  15. package/dist/agent-memories/report.d.ts +4 -1
  16. package/dist/agent-memories/report.js +43 -9
  17. package/dist/agent-memories/source.d.ts +8 -2
  18. package/dist/agent-memories/source.js +11 -3
  19. package/dist/agent-memories/sync.d.ts +7 -2
  20. package/dist/agent-memories/sync.js +141 -101
  21. package/dist/api/assemble.d.ts +6 -4
  22. package/dist/api/assemble.js +11 -5
  23. package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
  24. package/dist/api/auth/audit.js +58 -0
  25. package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -16
  26. package/dist/api/{auth.js → auth/auth.js} +66 -54
  27. package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
  28. package/dist/api/{quarantine.js → auth/quarantine.js} +8 -7
  29. package/dist/api/auth/session-owners.d.ts +10 -0
  30. package/dist/api/auth/session-owners.js +35 -0
  31. package/dist/api/availability.d.ts +3 -1
  32. package/dist/api/availability.js +3 -1
  33. package/dist/api/busy.d.ts +2 -0
  34. package/dist/api/busy.js +2 -0
  35. package/dist/api/cli-surface.d.ts +6 -0
  36. package/dist/api/cli-surface.js +6 -0
  37. package/dist/api/config-of.d.ts +5 -0
  38. package/dist/api/config-of.js +6 -0
  39. package/dist/api/context-auto.d.ts +4 -1
  40. package/dist/api/context-auto.js +14 -4
  41. package/dist/api/context-render.js +14 -7
  42. package/dist/api/context-select.d.ts +4 -1
  43. package/dist/api/context-select.js +31 -34
  44. package/dist/api/context-types.d.ts +38 -12
  45. package/dist/api/context.d.ts +8 -5
  46. package/dist/api/context.js +120 -63
  47. package/dist/api/continuity.d.ts +24 -21
  48. package/dist/api/continuity.js +18 -20
  49. package/dist/api/correction-latency.d.ts +3 -1
  50. package/dist/api/correction-latency.js +3 -1
  51. package/dist/api/error-reply.d.ts +4 -1
  52. package/dist/api/error-reply.js +12 -3
  53. package/dist/api/index.d.ts +39 -23
  54. package/dist/api/index.js +21 -23
  55. package/dist/api/instruction-detect.d.ts +4 -1
  56. package/dist/api/instruction-detect.js +75 -20
  57. package/dist/api/ledger-db.d.ts +15 -11
  58. package/dist/api/ledger-db.js +21 -23
  59. package/dist/api/memories/conflicts.d.ts +33 -0
  60. package/dist/api/memories/conflicts.js +67 -0
  61. package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
  62. package/dist/api/{forget.js → memories/forget.js} +23 -17
  63. package/dist/api/memories/memories.d.ts +27 -0
  64. package/dist/api/memories/memories.js +52 -0
  65. package/dist/api/memories/outcome.d.ts +22 -0
  66. package/dist/api/memories/outcome.js +28 -0
  67. package/dist/api/memories/promote.d.ts +40 -0
  68. package/dist/api/memories/promote.js +76 -0
  69. package/dist/api/memories/refine.d.ts +10 -0
  70. package/dist/api/memories/refine.js +12 -0
  71. package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +17 -9
  72. package/dist/api/{remember-local.js → memories/remember-local.js} +46 -24
  73. package/dist/api/{remember.d.ts → memories/remember.d.ts} +22 -13
  74. package/dist/api/{remember.js → memories/remember.js} +50 -32
  75. package/dist/api/objects/cards.d.ts +39 -0
  76. package/dist/api/{cards.js → objects/cards.js} +12 -14
  77. package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
  78. package/dist/api/{drill-down.js → objects/drill-down.js} +7 -7
  79. package/dist/api/objects/goals.d.ts +18 -0
  80. package/dist/api/{goals.js → objects/goals.js} +12 -12
  81. package/dist/api/objects/graph.d.ts +11 -0
  82. package/dist/api/objects/graph.js +16 -0
  83. package/dist/api/objects/objects.d.ts +9 -0
  84. package/dist/api/{objects.js → objects/objects.js} +2 -3
  85. package/dist/api/objects/predictions.d.ts +11 -0
  86. package/dist/api/{predictions.js → objects/predictions.js} +7 -5
  87. package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
  88. package/dist/api/{projects.js → objects/projects.js} +8 -4
  89. package/dist/api/pilot-arm.d.ts +8 -4
  90. package/dist/api/pilot-arm.js +5 -4
  91. package/dist/api/prompt-hook.d.ts +35 -20
  92. package/dist/api/prompt-hook.js +66 -44
  93. package/dist/api/provenance-coverage.d.ts +3 -1
  94. package/dist/api/provenance-coverage.js +3 -1
  95. package/dist/api/recall/finish.d.ts +185 -0
  96. package/dist/api/recall/finish.js +301 -0
  97. package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
  98. package/dist/api/{recall-pipeline.js → recall/pipeline.js} +185 -101
  99. package/dist/api/recall/recall.d.ts +6 -0
  100. package/dist/api/{recall.js → recall/recall.js} +116 -72
  101. package/dist/api/recall/render.d.ts +39 -0
  102. package/dist/api/recall/render.js +60 -0
  103. package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
  104. package/dist/api/recall/request.js +261 -0
  105. package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
  106. package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
  107. package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -68
  108. package/dist/api/{recall-types.js → recall/types.js} +1 -1
  109. package/dist/api/session-end.d.ts +36 -8
  110. package/dist/api/session-end.js +71 -25
  111. package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
  112. package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
  113. package/dist/api/sleep/dormant.d.ts +25 -0
  114. package/dist/api/sleep/dormant.js +64 -0
  115. package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
  116. package/dist/api/sleep/learn.js +138 -0
  117. package/dist/api/sleep/sleep-run.d.ts +38 -0
  118. package/dist/api/{sleep-run.js → sleep/sleep-run.js} +54 -45
  119. package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
  120. package/dist/api/sleep/sleep.js +9 -0
  121. package/dist/api/status.d.ts +3 -1
  122. package/dist/api/status.js +3 -1
  123. package/dist/api/store-init.d.ts +4 -1
  124. package/dist/api/store-init.js +4 -1
  125. package/dist/api/tokens.d.ts +10 -9
  126. package/dist/api/tokens.js +9 -10
  127. package/dist/api/types.d.ts +27 -12
  128. package/dist/api/types.js +13 -4
  129. package/dist/capture/caller-session.d.ts +8 -2
  130. package/dist/capture/caller-session.js +16 -6
  131. package/dist/capture/capture-error.d.ts +3 -1
  132. package/dist/capture/capture-error.js +3 -1
  133. package/dist/capture/codex-patch.js +7 -2
  134. package/dist/capture/command.d.ts +4 -2
  135. package/dist/capture/command.js +34 -15
  136. package/dist/capture/compact-resume-caller.js +15 -8
  137. package/dist/capture/compact.d.ts +8 -5
  138. package/dist/capture/compact.js +34 -23
  139. package/dist/capture/compaction-items-caller.js +9 -3
  140. package/dist/capture/compaction-record.d.ts +4 -3
  141. package/dist/capture/compaction-record.js +20 -12
  142. package/dist/capture/compaction-spool.d.ts +18 -9
  143. package/dist/capture/compaction-spool.js +105 -63
  144. package/dist/capture/copilot-transcript.d.ts +11 -3
  145. package/dist/capture/copilot-transcript.js +16 -6
  146. package/dist/capture/extract.js +20 -8
  147. package/dist/capture/failure-caller.js +23 -12
  148. package/dist/capture/failure-reading.d.ts +10 -3
  149. package/dist/capture/failure-reading.js +24 -7
  150. package/dist/capture/pre-compact-caller.js +11 -4
  151. package/dist/capture/session-digest.d.ts +15 -4
  152. package/dist/capture/session-digest.js +39 -13
  153. package/dist/capture/session-end-caller.d.ts +4 -1
  154. package/dist/capture/session-end-caller.js +20 -8
  155. package/dist/capture/session-texts.d.ts +6 -2
  156. package/dist/capture/session-texts.js +22 -7
  157. package/dist/capture/session-worker.d.ts +4 -2
  158. package/dist/capture/session-worker.js +58 -17
  159. package/dist/capture/transcript.d.ts +13 -4
  160. package/dist/capture/transcript.js +32 -10
  161. package/dist/capture/working-state.d.ts +13 -4
  162. package/dist/capture/working-state.js +50 -56
  163. package/dist/cli/api-context.d.ts +14 -2
  164. package/dist/cli/api-context.js +45 -2
  165. package/dist/cli/audit.js +33 -33
  166. package/dist/cli/auth.js +23 -31
  167. package/dist/cli/briefs.d.ts +1 -1
  168. package/dist/cli/briefs.js +20 -15
  169. package/dist/cli/card.d.ts +1 -1
  170. package/dist/cli/card.js +56 -73
  171. package/dist/cli/client.d.ts +12 -5
  172. package/dist/cli/client.js +53 -23
  173. package/dist/cli/compact-resume-payload.d.ts +4 -1
  174. package/dist/cli/compact-resume-payload.js +12 -5
  175. package/dist/cli/context.js +43 -18
  176. package/dist/cli/continuity.d.ts +5 -5
  177. package/dist/cli/continuity.js +90 -107
  178. package/dist/cli/curate.d.ts +5 -4
  179. package/dist/cli/curate.js +55 -77
  180. package/dist/cli/dag.d.ts +1 -1
  181. package/dist/cli/dag.js +14 -17
  182. package/dist/cli/decisions.js +30 -30
  183. package/dist/cli/eval.js +16 -21
  184. package/dist/cli/exit.d.ts +4 -1
  185. package/dist/cli/exit.js +10 -2
  186. package/dist/cli/explain.js +12 -11
  187. package/dist/cli/flag-values.d.ts +1 -1
  188. package/dist/cli/flag-values.js +9 -18
  189. package/dist/cli/github.d.ts +6 -0
  190. package/dist/cli/github.js +25 -13
  191. package/dist/cli/goals.d.ts +1 -1
  192. package/dist/cli/goals.js +39 -56
  193. package/dist/cli/graph.d.ts +1 -1
  194. package/dist/cli/graph.js +15 -11
  195. package/dist/cli/hook-runtime.d.ts +34 -10
  196. package/dist/cli/hook-runtime.js +41 -16
  197. package/dist/cli/incidents.d.ts +1 -1
  198. package/dist/cli/incidents.js +25 -25
  199. package/dist/cli/init.d.ts +1 -1
  200. package/dist/cli/init.js +35 -20
  201. package/dist/cli/install-steps.d.ts +12 -3
  202. package/dist/cli/install-steps.js +42 -18
  203. package/dist/cli/last-sleep.d.ts +4 -1
  204. package/dist/cli/last-sleep.js +9 -4
  205. package/dist/cli/maintenance.d.ts +1 -1
  206. package/dist/cli/maintenance.js +11 -12
  207. package/dist/cli/notes.d.ts +1 -1
  208. package/dist/cli/notes.js +8 -5
  209. package/dist/cli/object-verbs.d.ts +5 -5
  210. package/dist/cli/object-verbs.js +13 -16
  211. package/dist/cli/open-browser.js +11 -2
  212. package/dist/cli/playbooks.d.ts +3 -3
  213. package/dist/cli/playbooks.js +40 -32
  214. package/dist/cli/predictions.js +17 -22
  215. package/dist/cli/print.js +4 -2
  216. package/dist/cli/projects.js +21 -11
  217. package/dist/cli/quality-repair-once.d.ts +1 -1
  218. package/dist/cli/quality-repair-once.js +7 -6
  219. package/dist/cli/recall.js +129 -93
  220. package/dist/cli/refine-llm.d.ts +15 -4
  221. package/dist/cli/refine-llm.js +17 -7
  222. package/dist/cli/remember.js +51 -55
  223. package/dist/cli/scheduler.d.ts +4 -1
  224. package/dist/cli/scheduler.js +9 -5
  225. package/dist/cli/serve.js +28 -18
  226. package/dist/cli/session-hooks.d.ts +2 -6
  227. package/dist/cli/session-hooks.js +140 -112
  228. package/dist/cli/setup.d.ts +1 -1
  229. package/dist/cli/setup.js +56 -34
  230. package/dist/cli/shared.d.ts +4 -2
  231. package/dist/cli/shared.js +26 -11
  232. package/dist/cli/slack.js +15 -24
  233. package/dist/cli/sleep-render.d.ts +3 -1
  234. package/dist/cli/sleep-render.js +8 -5
  235. package/dist/cli/sleep.js +16 -8
  236. package/dist/cli/status.d.ts +4 -4
  237. package/dist/cli/status.js +32 -27
  238. package/dist/cli/stdin.d.ts +10 -3
  239. package/dist/cli/stdin.js +10 -3
  240. package/dist/cli/transfer.d.ts +4 -4
  241. package/dist/cli/transfer.js +97 -82
  242. package/dist/cli/usage.d.ts +1 -1
  243. package/dist/cli/usage.js +1 -1
  244. package/dist/cli/verb-row.d.ts +2 -0
  245. package/dist/cli/verbs/health.js +2 -0
  246. package/dist/cli/verbs/memory.js +47 -53
  247. package/dist/cli/verbs/objects.js +16 -7
  248. package/dist/cli/verbs/sessions.js +4 -2
  249. package/dist/cli/versioned-verbs.d.ts +8 -7
  250. package/dist/cli/versioned-verbs.js +31 -21
  251. package/dist/cli.js +14 -18
  252. package/dist/connectors/dlq.d.ts +6 -6
  253. package/dist/connectors/dlq.js +12 -7
  254. package/dist/connectors/github/backfill.d.ts +4 -4
  255. package/dist/connectors/github/backfill.js +6 -4
  256. package/dist/connectors/github/deletion.d.ts +6 -4
  257. package/dist/connectors/github/deletion.js +5 -4
  258. package/dist/connectors/github/dlq.d.ts +8 -6
  259. package/dist/connectors/github/dlq.js +11 -5
  260. package/dist/connectors/github/ingest.d.ts +2 -2
  261. package/dist/connectors/github/ingest.js +9 -5
  262. package/dist/connectors/github/octokit-client.d.ts +3 -1
  263. package/dist/connectors/github/octokit-client.js +7 -2
  264. package/dist/connectors/github/ratelimit.d.ts +6 -2
  265. package/dist/connectors/github/ratelimit.js +6 -2
  266. package/dist/connectors/github/signature.d.ts +14 -3
  267. package/dist/connectors/github/signature.js +17 -3
  268. package/dist/connectors/github/tenant-routing.d.ts +6 -4
  269. package/dist/connectors/github/tenant-routing.js +6 -5
  270. package/dist/connectors/github/transform.js +50 -67
  271. package/dist/connectors/github/types.d.ts +10 -3
  272. package/dist/connectors/github/types.js +6 -2
  273. package/dist/connectors/github/webhook.d.ts +5 -5
  274. package/dist/connectors/github/webhook.js +36 -23
  275. package/dist/connectors/ingest.d.ts +5 -3
  276. package/dist/connectors/ingest.js +3 -3
  277. package/dist/connectors/slack/backfill.d.ts +5 -5
  278. package/dist/connectors/slack/backfill.js +3 -3
  279. package/dist/connectors/slack/deletion.d.ts +4 -4
  280. package/dist/connectors/slack/deletion.js +6 -5
  281. package/dist/connectors/slack/dlq.d.ts +4 -4
  282. package/dist/connectors/slack/dlq.js +6 -6
  283. package/dist/connectors/slack/ingest.d.ts +6 -4
  284. package/dist/connectors/slack/ingest.js +5 -4
  285. package/dist/connectors/slack/signature.d.ts +4 -1
  286. package/dist/connectors/slack/tenant-routing.d.ts +6 -4
  287. package/dist/connectors/slack/tenant-routing.js +6 -5
  288. package/dist/connectors/slack/transform.d.ts +6 -2
  289. package/dist/connectors/slack/transform.js +6 -2
  290. package/dist/connectors/slack/types.d.ts +3 -1
  291. package/dist/connectors/slack/web-client.js +8 -3
  292. package/dist/connectors/slack/webhook.d.ts +5 -5
  293. package/dist/connectors/slack/webhook.js +19 -11
  294. package/dist/connectors/slack/workspaces.d.ts +7 -3
  295. package/dist/connectors/slack/workspaces.js +7 -3
  296. package/dist/connectors/store.d.ts +8 -0
  297. package/dist/connectors/store.js +2 -0
  298. package/dist/consolidate/conflicts.js +24 -10
  299. package/dist/consolidate/dag-summary.js +2 -1
  300. package/dist/consolidate/dag.d.ts +10 -5
  301. package/dist/consolidate/dag.js +45 -39
  302. package/dist/consolidate/decay.js +19 -6
  303. package/dist/consolidate/dedupe.d.ts +14 -5
  304. package/dist/consolidate/dedupe.js +28 -17
  305. package/dist/consolidate/flush-units.d.ts +4 -1
  306. package/dist/consolidate/flush-units.js +4 -1
  307. package/dist/consolidate/half-life-migration.d.ts +18 -8
  308. package/dist/consolidate/half-life-migration.js +48 -18
  309. package/dist/consolidate/llm-passes.js +27 -11
  310. package/dist/consolidate/memory-value-weights.d.ts +6 -2
  311. package/dist/consolidate/memory-value-weights.js +6 -2
  312. package/dist/consolidate/memory-value.d.ts +30 -10
  313. package/dist/consolidate/memory-value.js +37 -14
  314. package/dist/consolidate/merge.d.ts +4 -1
  315. package/dist/consolidate/merge.js +47 -37
  316. package/dist/consolidate/overlap-index.d.ts +8 -2
  317. package/dist/consolidate/overlap-index.js +11 -4
  318. package/dist/consolidate/physics-pass.d.ts +3 -1
  319. package/dist/consolidate/physics-pass.js +10 -7
  320. package/dist/consolidate/replay.d.ts +11 -4
  321. package/dist/consolidate/replay.js +19 -7
  322. package/dist/consolidate/run.d.ts +13 -5
  323. package/dist/consolidate/run.js +4 -4
  324. package/dist/consolidate/sleep.d.ts +14 -6
  325. package/dist/consolidate/sleep.js +42 -39
  326. package/dist/consolidate/trace.d.ts +7 -2
  327. package/dist/consolidate/trace.js +7 -2
  328. package/dist/consolidate/traces.js +27 -30
  329. package/dist/core/ablation.d.ts +9 -3
  330. package/dist/core/ablation.js +14 -4
  331. package/dist/core/active-scope.d.ts +3 -1
  332. package/dist/core/active-scope.js +3 -1
  333. package/dist/core/agent-memory-tools.d.ts +2 -0
  334. package/dist/core/agent-memory-tools.js +2 -0
  335. package/dist/core/ambient.d.ts +4 -3
  336. package/dist/core/ambient.js +8 -6
  337. package/dist/core/api-errors.d.ts +9 -3
  338. package/dist/core/api-errors.js +9 -3
  339. package/dist/core/capture-contract.d.ts +4 -1
  340. package/dist/core/capture-contract.js +27 -8
  341. package/dist/core/compare.d.ts +24 -8
  342. package/dist/core/compare.js +24 -8
  343. package/dist/core/config.d.ts +18 -9
  344. package/dist/core/config.js +38 -29
  345. package/dist/core/cosine.d.ts +4 -1
  346. package/dist/core/cosine.js +4 -1
  347. package/dist/core/handoff.d.ts +7 -2
  348. package/dist/core/handoff.js +4 -1
  349. package/dist/core/markdown.js +22 -17
  350. package/dist/core/memory-audit.js +14 -3
  351. package/dist/core/memory-quality.d.ts +12 -3
  352. package/dist/core/memory-quality.js +57 -21
  353. package/dist/core/memory.d.ts +87 -30
  354. package/dist/core/memory.js +82 -33
  355. package/dist/core/merged-row.d.ts +8 -2
  356. package/dist/core/merged-row.js +10 -3
  357. package/dist/core/package-root.d.ts +3 -1
  358. package/dist/core/package-root.js +3 -1
  359. package/dist/core/particle-refresh.d.ts +8 -0
  360. package/dist/core/particle-refresh.js +22 -0
  361. package/dist/core/physics-config.d.ts +4 -1
  362. package/dist/core/physics-config.js +6 -2
  363. package/dist/core/physics.d.ts +39 -11
  364. package/dist/core/physics.js +71 -21
  365. package/dist/core/project-identity.d.ts +34 -17
  366. package/dist/core/project-identity.js +35 -18
  367. package/dist/core/project-remote.d.ts +8 -4
  368. package/dist/core/project-remote.js +31 -14
  369. package/dist/core/recall-scope.d.ts +33 -11
  370. package/dist/core/recall-scope.js +42 -15
  371. package/dist/core/rejection-digest.d.ts +7 -0
  372. package/dist/core/rejection-digest.js +13 -0
  373. package/dist/core/salience.d.ts +3 -1
  374. package/dist/core/salience.js +10 -4
  375. package/dist/core/search-types.d.ts +15 -2
  376. package/dist/core/search-types.js +11 -0
  377. package/dist/dashboard/dashboard-actions.d.ts +2 -2
  378. package/dist/dashboard/dashboard-actions.js +18 -7
  379. package/dist/dashboard/dashboard-queries.js +2 -7
  380. package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
  381. package/dist/dashboard/dashboard-snapshot.js +5 -7
  382. package/dist/dashboard/dashboard.js +22 -8
  383. package/dist/db/backup.js +2 -2
  384. package/dist/db/busy.d.ts +10 -3
  385. package/dist/db/busy.js +27 -5
  386. package/dist/db/connect.d.ts +10 -2
  387. package/dist/db/connect.js +8 -2
  388. package/dist/db/continuity.d.ts +1 -1
  389. package/dist/db/continuity.js +27 -11
  390. package/dist/db/meta.d.ts +4 -1
  391. package/dist/db/meta.js +4 -1
  392. package/dist/db/migrate.d.ts +10 -5
  393. package/dist/db/migrate.js +40 -20
  394. package/dist/db/migrations/index.d.ts +1 -1
  395. package/dist/db/migrations/index.js +3 -1
  396. package/dist/db/migrations/types.d.ts +2 -1
  397. package/dist/db/migrations/v11.js +1 -0
  398. package/dist/db/migrations/v12.js +2 -1
  399. package/dist/db/migrations/v14.js +2 -0
  400. package/dist/db/migrations/v15.js +4 -2
  401. package/dist/db/migrations/v16.js +6 -3
  402. package/dist/db/migrations/v17.js +2 -1
  403. package/dist/db/migrations/v19.js +4 -2
  404. package/dist/db/migrations/v20.js +2 -1
  405. package/dist/db/migrations/v22.js +12 -6
  406. package/dist/db/migrations/v23.js +6 -3
  407. package/dist/db/migrations/v24.js +6 -3
  408. package/dist/db/migrations/v25.js +4 -2
  409. package/dist/db/migrations/v26.js +4 -2
  410. package/dist/db/migrations/v27.js +6 -3
  411. package/dist/db/migrations/v28.js +4 -2
  412. package/dist/db/migrations/v29.js +4 -2
  413. package/dist/db/migrations/v30.js +6 -3
  414. package/dist/db/migrations/v31.js +4 -2
  415. package/dist/db/migrations/v32.js +6 -3
  416. package/dist/db/migrations/v33.js +4 -2
  417. package/dist/db/migrations/v34.js +2 -1
  418. package/dist/db/migrations/v35.js +2 -1
  419. package/dist/db/migrations/v36.js +2 -1
  420. package/dist/db/migrations/v37.js +10 -5
  421. package/dist/db/migrations/v38.js +10 -5
  422. package/dist/db/migrations/v39.js +14 -6
  423. package/dist/db/migrations/v40.js +4 -2
  424. package/dist/db/migrations/v41.js +4 -2
  425. package/dist/db/migrations/v42.js +2 -1
  426. package/dist/db/migrations/v44.js +4 -2
  427. package/dist/db/migrations/v45.js +4 -2
  428. package/dist/db/migrations/v49.js +2 -1
  429. package/dist/db/migrations/v50.js +4 -2
  430. package/dist/db/migrations/v51.js +4 -2
  431. package/dist/db/migrations/v52.js +2 -1
  432. package/dist/db/migrations/v53.js +8 -4
  433. package/dist/db/migrations/v54.js +2 -1
  434. package/dist/db/migrations/v55.js +4 -2
  435. package/dist/db/migrations/v56.d.ts +3 -0
  436. package/dist/db/migrations/v56.js +28 -0
  437. package/dist/db/open.d.ts +24 -12
  438. package/dist/db/open.js +25 -13
  439. package/dist/db/physics-state.d.ts +8 -8
  440. package/dist/db/physics-state.js +17 -50
  441. package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
  442. package/dist/db/raw-archive-mirror-cleanup.js +6 -4
  443. package/dist/db/request-stores.d.ts +20 -5
  444. package/dist/db/request-stores.js +15 -5
  445. package/dist/db/tables.d.ts +2 -1
  446. package/dist/db/tables.js +12 -4
  447. package/dist/db/vector-store.d.ts +13 -4
  448. package/dist/db/vector-store.js +35 -14
  449. package/dist/db/wal-checkpointer.d.ts +2 -1
  450. package/dist/db/wal-checkpointer.js +19 -7
  451. package/dist/doctor.d.ts +7 -1
  452. package/dist/doctor.js +128 -46
  453. package/dist/embeddings/local.d.ts +8 -4
  454. package/dist/embeddings/local.js +11 -7
  455. package/dist/embeddings/provider.d.ts +19 -10
  456. package/dist/embeddings/provider.js +32 -27
  457. package/dist/embeddings/transformers.d.ts +16 -4
  458. package/dist/embeddings/transformers.js +32 -15
  459. package/dist/entry/json-hooks.d.ts +1 -1
  460. package/dist/entry/json-hooks.js +1 -1
  461. package/dist/entry/project-identity.js +2 -1
  462. package/dist/entry/session-text.d.ts +1 -1
  463. package/dist/entry/session-text.js +1 -1
  464. package/dist/entry/sqlite-handles.d.ts +10 -0
  465. package/dist/entry/sqlite-handles.js +9 -0
  466. package/dist/entry/store-kit.d.ts +50 -0
  467. package/dist/entry/store-kit.js +27 -0
  468. package/dist/entry/testing.d.ts +6 -0
  469. package/dist/entry/testing.js +7 -0
  470. package/dist/eval/eval-stats.d.ts +27 -8
  471. package/dist/eval/eval-stats.js +17 -5
  472. package/dist/eval/eval-suite.d.ts +3 -1
  473. package/dist/eval/eval-suite.js +409 -187
  474. package/dist/eval/eval.d.ts +8 -2
  475. package/dist/eval/eval.js +8 -2
  476. package/dist/eval/judgment.js +17 -7
  477. package/dist/graph/delta.d.ts +9 -42
  478. package/dist/graph/delta.js +17 -11
  479. package/dist/graph/extract.d.ts +10 -7
  480. package/dist/graph/extract.js +57 -25
  481. package/dist/graph/recall.d.ts +12 -4
  482. package/dist/graph/recall.js +30 -13
  483. package/dist/graph/stream.d.ts +18 -6
  484. package/dist/graph/stream.js +32 -10
  485. package/dist/graph/view.d.ts +19 -6
  486. package/dist/graph/view.js +42 -17
  487. package/dist/hooks/codex-session.js +2 -2
  488. package/dist/hooks/codex-wrapper.d.ts +3 -1
  489. package/dist/hooks/codex-wrapper.js +9 -4
  490. package/dist/hooks/copilot.d.ts +19 -5
  491. package/dist/hooks/copilot.js +54 -15
  492. package/dist/hooks/hook-blocks.d.ts +4 -1
  493. package/dist/hooks/hook-blocks.js +8 -3
  494. package/dist/hooks/json-hooks.d.ts +9 -5
  495. package/dist/hooks/json-hooks.js +72 -33
  496. package/dist/hooks/opencode.js +15 -5
  497. package/dist/hooks/shared.d.ts +27 -8
  498. package/dist/hooks/shared.js +57 -16
  499. package/dist/importers/core.d.ts +12 -4
  500. package/dist/importers/core.js +11 -10
  501. package/dist/importers/markdown-parse.d.ts +15 -5
  502. package/dist/importers/markdown-parse.js +16 -7
  503. package/dist/importers/markdown.js +6 -9
  504. package/dist/importers/sources.js +10 -23
  505. package/dist/importers/vault.d.ts +3 -3
  506. package/dist/importers/vault.js +61 -45
  507. package/dist/index.d.ts +33 -7
  508. package/dist/index.js +26 -8
  509. package/dist/learn/autolearn.d.ts +21 -6
  510. package/dist/learn/autolearn.js +57 -26
  511. package/dist/learn/churn-git.d.ts +4 -1
  512. package/dist/learn/churn-git.js +29 -5
  513. package/dist/learn/extract.d.ts +4 -1
  514. package/dist/learn/extract.js +17 -10
  515. package/dist/learn/forward-claim-detector.d.ts +17 -5
  516. package/dist/learn/forward-claim-detector.js +34 -15
  517. package/dist/learn/invalidation.d.ts +12 -6
  518. package/dist/learn/invalidation.js +62 -28
  519. package/dist/learn/roots.d.ts +3 -0
  520. package/dist/learn/roots.js +5 -0
  521. package/dist/mcp/admin-tools.d.ts +5 -5
  522. package/dist/mcp/admin-tools.js +28 -23
  523. package/dist/mcp/format.d.ts +1 -1
  524. package/dist/mcp/format.js +4 -2
  525. package/dist/mcp/framing.d.ts +3 -1
  526. package/dist/mcp/framing.js +20 -8
  527. package/dist/mcp/memory-tools.d.ts +3 -3
  528. package/dist/mcp/memory-tools.js +21 -20
  529. package/dist/mcp/protocol.d.ts +32 -16
  530. package/dist/mcp/protocol.js +12 -9
  531. package/dist/mcp/recall-tools.d.ts +3 -3
  532. package/dist/mcp/recall-tools.js +62 -74
  533. package/dist/mcp/request.d.ts +7 -5
  534. package/dist/mcp/request.js +61 -77
  535. package/dist/mcp/server.d.ts +3 -1
  536. package/dist/mcp/server.js +8 -3
  537. package/dist/mcp/session-state.d.ts +1 -1
  538. package/dist/mcp/session-state.js +4 -3
  539. package/dist/mcp/shared-gate.d.ts +3 -2
  540. package/dist/mcp/shared-gate.js +3 -2
  541. package/dist/mcp/stdio.d.ts +6 -3
  542. package/dist/mcp/stdio.js +59 -23
  543. package/dist/mcp/tool-args.d.ts +4 -1
  544. package/dist/mcp/tool-args.js +8 -3
  545. package/dist/mcp/tools.js +76 -32
  546. package/dist/objects/customer-notes.d.ts +12 -10
  547. package/dist/objects/customer-notes.js +21 -15
  548. package/dist/objects/decisions.d.ts +18 -10
  549. package/dist/objects/decisions.js +23 -17
  550. package/dist/objects/descriptor.js +2 -1
  551. package/dist/objects/fields.d.ts +4 -1
  552. package/dist/objects/fields.js +6 -2
  553. package/dist/objects/incidents.d.ts +14 -16
  554. package/dist/objects/incidents.js +29 -30
  555. package/dist/objects/lifecycle.d.ts +0 -4
  556. package/dist/objects/lifecycle.js +21 -24
  557. package/dist/objects/policies.d.ts +12 -16
  558. package/dist/objects/policies.js +17 -21
  559. package/dist/objects/processes.d.ts +16 -10
  560. package/dist/objects/processes.js +20 -15
  561. package/dist/objects/project-briefs.d.ts +13 -14
  562. package/dist/objects/project-briefs.js +33 -39
  563. package/dist/objects/skills.d.ts +10 -12
  564. package/dist/objects/skills.js +17 -22
  565. package/dist/postinstall.js +15 -7
  566. package/dist/predictions/planning-fallacy.d.ts +19 -6
  567. package/dist/predictions/planning-fallacy.js +4 -2
  568. package/dist/rerankers/clef.d.ts +8 -2
  569. package/dist/rerankers/clef.js +14 -9
  570. package/dist/rerankers/cross-encoder.d.ts +2 -1
  571. package/dist/rerankers/cross-encoder.js +19 -9
  572. package/dist/rerankers/index.js +2 -1
  573. package/dist/rerankers/jev.js +2 -1
  574. package/dist/rerankers/llm.d.ts +6 -2
  575. package/dist/rerankers/llm.js +8 -3
  576. package/dist/rerankers/remote.d.ts +3 -1
  577. package/dist/rerankers/remote.js +5 -2
  578. package/dist/rerankers/types.d.ts +6 -2
  579. package/dist/search/bm25-search.d.ts +3 -1
  580. package/dist/search/bm25-search.js +15 -2
  581. package/dist/search/boosts.js +4 -3
  582. package/dist/search/embed-memories.d.ts +12 -4
  583. package/dist/search/embed-memories.js +96 -58
  584. package/dist/search/engine.d.ts +11 -0
  585. package/dist/search/engine.js +14 -0
  586. package/dist/search/goal-boost.d.ts +10 -3
  587. package/dist/search/goal-boost.js +13 -6
  588. package/dist/search/hybrid-score.d.ts +4 -1
  589. package/dist/search/hybrid-score.js +4 -1
  590. package/dist/search/hybrid.d.ts +23 -8
  591. package/dist/search/hybrid.js +12 -7
  592. package/dist/search/multihop.js +14 -13
  593. package/dist/search/path-context.d.ts +10 -3
  594. package/dist/search/path-context.js +10 -3
  595. package/dist/search/physics-search.d.ts +9 -4
  596. package/dist/search/physics-search.js +38 -14
  597. package/dist/search/rerank.d.ts +2 -1
  598. package/dist/search/rerank.js +2 -1
  599. package/dist/search/rrf.d.ts +14 -5
  600. package/dist/search/rrf.js +11 -4
  601. package/dist/search/vector.d.ts +8 -2
  602. package/dist/search/vector.js +14 -8
  603. package/dist/server/auth.d.ts +19 -15
  604. package/dist/server/auth.js +68 -38
  605. package/dist/server/boot.d.ts +4 -1
  606. package/dist/server/boot.js +115 -67
  607. package/dist/server/client-ip.d.ts +17 -5
  608. package/dist/server/client-ip.js +56 -21
  609. package/dist/server/cursor.d.ts +10 -3
  610. package/dist/server/cursor.js +10 -3
  611. package/dist/server/deadline.d.ts +5 -2
  612. package/dist/server/deadline.js +10 -3
  613. package/dist/server/key-check-bounds.js +12 -4
  614. package/dist/server/lifecycle.d.ts +4 -1
  615. package/dist/server/lifecycle.js +10 -4
  616. package/dist/server/mcp-http.d.ts +2 -1
  617. package/dist/server/mcp-http.js +37 -22
  618. package/dist/server/rate-limit.d.ts +17 -5
  619. package/dist/server/rate-limit.js +55 -26
  620. package/dist/server/ready.js +7 -4
  621. package/dist/server/request.d.ts +15 -4
  622. package/dist/server/request.js +42 -15
  623. package/dist/server/route-checks.d.ts +4 -1
  624. package/dist/server/route-checks.js +8 -3
  625. package/dist/server/route-table.d.ts +8 -6
  626. package/dist/server/route-table.js +550 -97
  627. package/dist/server/routes/admin.d.ts +7 -7
  628. package/dist/server/routes/admin.js +36 -15
  629. package/dist/server/routes/customer-notes.d.ts +5 -5
  630. package/dist/server/routes/customer-notes.js +5 -4
  631. package/dist/server/routes/decisions.d.ts +5 -5
  632. package/dist/server/routes/decisions.js +12 -6
  633. package/dist/server/routes/incidents.d.ts +5 -5
  634. package/dist/server/routes/incidents.js +10 -4
  635. package/dist/server/routes/memories.d.ts +8 -8
  636. package/dist/server/routes/memories.js +12 -17
  637. package/dist/server/routes/object-routes.d.ts +8 -5
  638. package/dist/server/routes/object-routes.js +4 -2
  639. package/dist/server/routes/policies.d.ts +6 -6
  640. package/dist/server/routes/policies.js +11 -4
  641. package/dist/server/routes/predictions.d.ts +5 -5
  642. package/dist/server/routes/predictions.js +9 -4
  643. package/dist/server/routes/processes.d.ts +5 -5
  644. package/dist/server/routes/processes.js +15 -6
  645. package/dist/server/routes/project-briefs.d.ts +6 -6
  646. package/dist/server/routes/project-briefs.js +3 -2
  647. package/dist/server/routes/recall.d.ts +3 -3
  648. package/dist/server/routes/recall.js +21 -10
  649. package/dist/server/routes/skills.d.ts +6 -6
  650. package/dist/server/routes/skills.js +12 -4
  651. package/dist/server/server-detect.d.ts +24 -8
  652. package/dist/server/server-detect.js +57 -22
  653. package/dist/server/sleep-child.js +16 -10
  654. package/dist/server/sleep-offload.d.ts +8 -5
  655. package/dist/server/sleep-offload.js +40 -18
  656. package/dist/server/tls.d.ts +10 -2
  657. package/dist/server/tls.js +25 -5
  658. package/dist/server/types.d.ts +41 -24
  659. package/dist/server/validation.d.ts +4 -1
  660. package/dist/server/validation.js +22 -9
  661. package/dist/server.d.ts +17 -49
  662. package/dist/server.js +33 -40
  663. package/dist/sharing/global-store.d.ts +6 -12
  664. package/dist/sharing/global-store.js +8 -48
  665. package/dist/sharing/global-sync.d.ts +3 -1
  666. package/dist/sharing/global-sync.js +17 -7
  667. package/dist/sharing/project-merge.d.ts +25 -7
  668. package/dist/sharing/project-merge.js +49 -17
  669. package/dist/sharing/search-both.d.ts +8 -4
  670. package/dist/sharing/search-both.js +28 -14
  671. package/dist/sharing/share.d.ts +8 -4
  672. package/dist/sharing/share.js +40 -18
  673. package/dist/store/ambient.js +10 -5
  674. package/dist/store/audit-event.d.ts +2 -2
  675. package/dist/store/audit-event.js +8 -3
  676. package/dist/store/audit.d.ts +6 -3
  677. package/dist/store/audit.js +16 -6
  678. package/dist/store/auth.d.ts +4 -2
  679. package/dist/store/auth.js +63 -20
  680. package/dist/store/busy.d.ts +9 -0
  681. package/dist/store/busy.js +16 -0
  682. package/dist/store/candidates.d.ts +12 -5
  683. package/dist/store/candidates.js +90 -41
  684. package/dist/store/capture-write.d.ts +2 -1
  685. package/dist/store/capture-write.js +2 -1
  686. package/dist/store/card-detail.d.ts +4 -4
  687. package/dist/store/card-detail.js +15 -8
  688. package/dist/store/cards.d.ts +24 -10
  689. package/dist/store/cards.js +97 -63
  690. package/dist/store/compaction-caller.d.ts +2 -1
  691. package/dist/store/compaction-caller.js +2 -1
  692. package/dist/store/compactions-record.d.ts +14 -8
  693. package/dist/store/compactions-record.js +101 -37
  694. package/dist/store/compactions.js +35 -15
  695. package/dist/store/conflicts.d.ts +16 -5
  696. package/dist/store/conflicts.js +104 -48
  697. package/dist/store/connectors/dlq.d.ts +17 -5
  698. package/dist/store/connectors/dlq.js +58 -6
  699. package/dist/store/connectors/event-log.d.ts +122 -0
  700. package/dist/store/connectors/event-log.js +25 -0
  701. package/dist/store/connectors/github.d.ts +6 -3
  702. package/dist/store/connectors/github.js +30 -48
  703. package/dist/store/connectors/slack.d.ts +2 -1
  704. package/dist/store/connectors/slack.js +31 -47
  705. package/dist/store/dashboard-reads.d.ts +7 -3
  706. package/dist/store/dashboard-reads.js +32 -10
  707. package/dist/store/delete-and-batch.d.ts +17 -11
  708. package/dist/store/delete-and-batch.js +70 -28
  709. package/dist/store/delivery-recorder.d.ts +10 -7
  710. package/dist/store/delivery-recorder.js +70 -37
  711. package/dist/store/descendant-page.d.ts +2 -1
  712. package/dist/store/descendant-page.js +26 -10
  713. package/dist/store/diagnostics.d.ts +2 -1
  714. package/dist/store/diagnostics.js +2 -1
  715. package/dist/store/doctor-reads.d.ts +2 -1
  716. package/dist/store/doctor-reads.js +13 -5
  717. package/dist/store/dormant.d.ts +19 -11
  718. package/dist/store/dormant.js +45 -19
  719. package/dist/store/embeddings/index.d.ts +13 -9
  720. package/dist/store/embeddings/index.js +19 -12
  721. package/dist/store/entry-reads.d.ts +72 -21
  722. package/dist/store/entry-reads.js +215 -69
  723. package/dist/store/entry-row.d.ts +10 -6
  724. package/dist/store/entry-row.js +26 -14
  725. package/dist/store/entry-writes.d.ts +28 -13
  726. package/dist/store/entry-writes.js +61 -22
  727. package/dist/store/failure-log-at.js +1 -1
  728. package/dist/store/failure-log.d.ts +4 -2
  729. package/dist/store/failure-log.js +13 -6
  730. package/dist/store/gated-write.d.ts +3 -3
  731. package/dist/store/gated-write.js +3 -3
  732. package/dist/store/goals.d.ts +5 -4
  733. package/dist/store/goals.js +11 -12
  734. package/dist/store/graph-apply.d.ts +21 -0
  735. package/dist/{graph/write.js → store/graph-apply.js} +31 -11
  736. package/dist/store/graph-queue.d.ts +9 -6
  737. package/dist/store/graph-queue.js +15 -10
  738. package/dist/store/graph-reads.d.ts +16 -11
  739. package/dist/store/graph-reads.js +29 -19
  740. package/dist/store/graph-rows.d.ts +41 -3
  741. package/dist/store/graph-rows.js +10 -7
  742. package/dist/store/graph-view-rows.js +15 -7
  743. package/dist/store/graph-writes.d.ts +16 -10
  744. package/dist/store/graph-writes.js +59 -36
  745. package/dist/store/half-life.js +2 -2
  746. package/dist/store/handoffs.d.ts +13 -7
  747. package/dist/store/handoffs.js +44 -22
  748. package/dist/store/index-and-stats.d.ts +2 -2
  749. package/dist/store/index-and-stats.js +6 -5
  750. package/dist/store/index.d.ts +4 -2
  751. package/dist/store/index.js +2 -1
  752. package/dist/store/key-audit.d.ts +2 -1
  753. package/dist/store/key-audit.js +2 -1
  754. package/dist/store/key-writes.d.ts +2 -1
  755. package/dist/store/key-writes.js +9 -2
  756. package/dist/store/ledger-turn.d.ts +4 -1
  757. package/dist/store/ledger-turn.js +7 -2
  758. package/dist/store/mirrors.d.ts +11 -4
  759. package/dist/store/mirrors.js +96 -19
  760. package/dist/store/narrow.d.ts +6 -0
  761. package/dist/store/narrow.js +11 -0
  762. package/dist/store/open.d.ts +6 -3
  763. package/dist/store/open.js +20 -10
  764. package/dist/store/pilot-arm.d.ts +2 -1
  765. package/dist/store/pilot-arm.js +18 -6
  766. package/dist/store/planning-fallacy-evidence.d.ts +2 -2
  767. package/dist/store/planning-fallacy-evidence.js +8 -5
  768. package/dist/store/port/agent-import.d.ts +62 -0
  769. package/dist/store/port/agent-import.js +2 -0
  770. package/dist/store/port/consolidation.d.ts +129 -0
  771. package/dist/store/port/consolidation.js +2 -0
  772. package/dist/store/port/learning.d.ts +19 -0
  773. package/dist/store/port/learning.js +2 -0
  774. package/dist/store/port/local-files.d.ts +18 -0
  775. package/dist/store/port/local-files.js +2 -0
  776. package/dist/store/port/promotion.d.ts +20 -0
  777. package/dist/store/port/promotion.js +3 -0
  778. package/dist/store/port-groups.d.ts +160 -0
  779. package/dist/store/port-groups.js +2 -0
  780. package/dist/store/port.d.ts +261 -219
  781. package/dist/store/port.js +3 -9
  782. package/dist/store/predictions.d.ts +14 -10
  783. package/dist/store/predictions.js +37 -17
  784. package/dist/store/project-tags.d.ts +4 -1
  785. package/dist/store/project-tags.js +16 -5
  786. package/dist/store/quality-repair.d.ts +8 -4
  787. package/dist/store/quality-repair.js +53 -20
  788. package/dist/store/quarantine.d.ts +1 -0
  789. package/dist/store/quarantine.js +23 -9
  790. package/dist/store/raw-archive.d.ts +5 -4
  791. package/dist/store/raw-archive.js +11 -10
  792. package/dist/store/recall-trace.d.ts +22 -17
  793. package/dist/store/recall-trace.js +128 -64
  794. package/dist/store/rejected-values.d.ts +15 -10
  795. package/dist/store/rejected-values.js +46 -20
  796. package/dist/store/rejection.d.ts +12 -11
  797. package/dist/store/rejection.js +18 -19
  798. package/dist/store/report-reads.d.ts +2 -1
  799. package/dist/store/report-reads.js +2 -1
  800. package/dist/store/rows.d.ts +7 -5
  801. package/dist/store/rows.js +20 -13
  802. package/dist/store/rule-sql.d.ts +7 -3
  803. package/dist/store/rule-sql.js +26 -13
  804. package/dist/store/search-rows.d.ts +16 -11
  805. package/dist/store/search-rows.js +54 -32
  806. package/dist/store/sessions.d.ts +12 -10
  807. package/dist/store/sessions.js +40 -21
  808. package/dist/store/set-aside.d.ts +2 -2
  809. package/dist/store/set-aside.js +18 -5
  810. package/dist/store/sqlite/agent-import.d.ts +3 -0
  811. package/dist/store/sqlite/agent-import.js +77 -0
  812. package/dist/store/sqlite/cards-group.d.ts +6 -0
  813. package/dist/store/sqlite/cards-group.js +37 -0
  814. package/dist/store/sqlite/conflicts-group.d.ts +6 -0
  815. package/dist/store/sqlite/conflicts-group.js +18 -0
  816. package/dist/store/sqlite/connector-events-group.d.ts +2 -1
  817. package/dist/store/sqlite/connector-events-group.js +17 -6
  818. package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
  819. package/dist/store/sqlite/connector-writes-group.js +12 -5
  820. package/dist/store/sqlite/consolidation-group.d.ts +4 -0
  821. package/dist/store/sqlite/consolidation-group.js +64 -0
  822. package/dist/store/sqlite/dag-reads-group.js +1 -1
  823. package/dist/store/sqlite/dormant-group.d.ts +6 -0
  824. package/dist/store/sqlite/dormant-group.js +29 -0
  825. package/dist/store/sqlite/entry-writes-group.d.ts +9 -6
  826. package/dist/store/sqlite/entry-writes-group.js +37 -14
  827. package/dist/store/sqlite/error-codec.d.ts +4 -2
  828. package/dist/store/sqlite/error-codec.js +32 -10
  829. package/dist/store/sqlite/executor-counts.js +2 -1
  830. package/dist/store/sqlite/executor.d.ts +8 -3
  831. package/dist/store/sqlite/executor.js +56 -18
  832. package/dist/store/sqlite/global-promote.d.ts +5 -0
  833. package/dist/store/sqlite/global-promote.js +48 -0
  834. package/dist/store/sqlite/goals-group.d.ts +6 -0
  835. package/dist/store/sqlite/goals-group.js +23 -0
  836. package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
  837. package/dist/store/sqlite/graph-reads-group.js +2 -1
  838. package/dist/store/sqlite/held-connection.d.ts +8 -0
  839. package/dist/store/sqlite/held-connection.js +34 -7
  840. package/dist/store/sqlite/last-recall-group.d.ts +15 -0
  841. package/dist/store/sqlite/last-recall-group.js +62 -0
  842. package/dist/store/sqlite/learning-group.d.ts +4 -0
  843. package/dist/store/sqlite/learning-group.js +17 -0
  844. package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
  845. package/dist/store/sqlite/maintenance-groups.js +61 -0
  846. package/dist/store/sqlite/object-rows.d.ts +6 -3
  847. package/dist/store/sqlite/object-rows.js +34 -5
  848. package/dist/store/sqlite/objects-group.d.ts +5 -4
  849. package/dist/store/sqlite/objects-group.js +97 -38
  850. package/dist/store/sqlite/predictions-group.d.ts +2 -1
  851. package/dist/store/sqlite/predictions-group.js +4 -2
  852. package/dist/store/sqlite/promotion-group.d.ts +3 -0
  853. package/dist/store/sqlite/promotion-group.js +10 -0
  854. package/dist/store/sqlite/quarantine-group.d.ts +2 -1
  855. package/dist/store/sqlite/quarantine-group.js +4 -2
  856. package/dist/store/sqlite/reports-group.d.ts +6 -0
  857. package/dist/store/sqlite/reports-group.js +33 -0
  858. package/dist/store/sqlite/request-scope.d.ts +6 -0
  859. package/dist/store/sqlite/request-scope.js +18 -0
  860. package/dist/store/sqlite/sessions-group.d.ts +6 -0
  861. package/dist/store/sqlite/sessions-group.js +46 -0
  862. package/dist/store/sqlite/store.d.ts +22 -18
  863. package/dist/store/sqlite/store.js +95 -33
  864. package/dist/store/sqlite/vector-pack.js +2 -1
  865. package/dist/store/sqlite/vector-reads-group.js +2 -1
  866. package/dist/store/sqlite/worker-jobs.d.ts +2 -1
  867. package/dist/store/sqlite/worker-jobs.js +19 -7
  868. package/dist/store/sqlite/worker-ops.d.ts +10 -5
  869. package/dist/store/sqlite/worker-ops.js +6 -3
  870. package/dist/store/sqlite/worker-store.d.ts +4 -3
  871. package/dist/store/sqlite/worker-store.js +24 -14
  872. package/dist/store/summaries.d.ts +25 -11
  873. package/dist/store/summaries.js +84 -27
  874. package/dist/store/summary-dirty.d.ts +2 -1
  875. package/dist/store/summary-dirty.js +2 -1
  876. package/dist/store/tenant.d.ts +3 -2
  877. package/dist/store/tenant.js +5 -4
  878. package/dist/store/token-ledger-rows.js +8 -4
  879. package/dist/store/token-ledger.d.ts +19 -13
  880. package/dist/store/token-ledger.js +27 -14
  881. package/dist/store/tombstone-checks.d.ts +4 -1
  882. package/dist/store/tombstone-checks.js +10 -1
  883. package/dist/store/usage-reports.js +2 -1
  884. package/dist/store/vector-index.d.ts +8 -5
  885. package/dist/store/vector-index.js +28 -11
  886. package/dist/store/working-memory.d.ts +6 -4
  887. package/dist/store/working-memory.js +14 -9
  888. package/dist/support-bundle.js +10 -5
  889. package/dist/trust/quarantine.d.ts +1 -2
  890. package/dist/trust/quarantine.js +1 -5
  891. package/dist/trust/reject-flow.d.ts +12 -3
  892. package/dist/trust/reject-flow.js +12 -4
  893. package/dist/util/anthropic-messages.d.ts +7 -2
  894. package/dist/util/anthropic-messages.js +18 -7
  895. package/dist/util/atomic-write.d.ts +8 -3
  896. package/dist/util/atomic-write.js +36 -21
  897. package/dist/util/compaction-items.d.ts +4 -1
  898. package/dist/util/compaction-items.js +8 -2
  899. package/dist/util/crash-handlers.d.ts +7 -2
  900. package/dist/util/crash-handlers.js +13 -4
  901. package/dist/util/env.d.ts +26 -5
  902. package/dist/util/env.js +87 -25
  903. package/dist/util/format.d.ts +2 -0
  904. package/dist/util/format.js +4 -0
  905. package/dist/util/home-path.js +12 -6
  906. package/dist/util/hook-payload.d.ts +3 -1
  907. package/dist/util/hook-payload.js +3 -1
  908. package/dist/util/http-retry.d.ts +12 -6
  909. package/dist/util/http-retry.js +16 -6
  910. package/dist/util/http-util.d.ts +20 -5
  911. package/dist/util/http-util.js +28 -9
  912. package/dist/util/json.d.ts +4 -1
  913. package/dist/util/json.js +4 -1
  914. package/dist/util/keyset.js +2 -1
  915. package/dist/util/limits.js +4 -2
  916. package/dist/util/log.d.ts +13 -5
  917. package/dist/util/log.js +29 -6
  918. package/dist/util/net.d.ts +5 -0
  919. package/dist/util/net.js +19 -0
  920. package/dist/util/real-path.d.ts +2 -1
  921. package/dist/util/real-path.js +4 -3
  922. package/dist/util/request-scope.d.ts +16 -4
  923. package/dist/util/request-scope.js +19 -6
  924. package/dist/util/same-text.d.ts +10 -3
  925. package/dist/util/same-text.js +10 -3
  926. package/dist/util/secret-detect.d.ts +24 -7
  927. package/dist/util/secret-detect.js +49 -14
  928. package/dist/util/spawn-argv.d.ts +11 -0
  929. package/dist/util/spawn-argv.js +66 -0
  930. package/dist/util/sql.d.ts +3 -0
  931. package/dist/util/sql.js +6 -0
  932. package/dist/util/sqlite-blocked.d.ts +15 -4
  933. package/dist/util/sqlite-blocked.js +19 -6
  934. package/dist/util/stored-json.d.ts +4 -1
  935. package/dist/util/stored-json.js +6 -2
  936. package/dist/util/stream-tee.d.ts +2 -1
  937. package/dist/util/stream-tee.js +8 -5
  938. package/dist/util/transcript-tail.d.ts +4 -1
  939. package/dist/util/transcript-tail.js +4 -1
  940. package/dist/util/vector-codec.d.ts +4 -0
  941. package/dist/util/vector-codec.js +15 -0
  942. package/dist/util/version.d.ts +8 -3
  943. package/dist/util/version.js +8 -3
  944. package/dist/util/write-budget.d.ts +7 -2
  945. package/dist/util/write-budget.js +5 -2
  946. package/dist/util/yaml.d.ts +4 -1
  947. package/dist/util/yaml.js +4 -1
  948. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  949. package/extensions/openclaw-plugin/package.json +1 -1
  950. package/openclaw.plugin.json +1 -1
  951. package/package.json +4 -1
  952. package/scripts/postinstall.cjs +3 -1
  953. package/dist/api/audit.js +0 -56
  954. package/dist/api/cards.d.ts +0 -42
  955. package/dist/api/conflicts.d.ts +0 -28
  956. package/dist/api/conflicts.js +0 -61
  957. package/dist/api/dormant.d.ts +0 -14
  958. package/dist/api/dormant.js +0 -58
  959. package/dist/api/goals.d.ts +0 -18
  960. package/dist/api/graph.d.ts +0 -8
  961. package/dist/api/graph.js +0 -7
  962. package/dist/api/learn.js +0 -124
  963. package/dist/api/memories.d.ts +0 -23
  964. package/dist/api/memories.js +0 -46
  965. package/dist/api/objects.d.ts +0 -9
  966. package/dist/api/on-store.d.ts +0 -16
  967. package/dist/api/on-store.js +0 -38
  968. package/dist/api/outcome.d.ts +0 -19
  969. package/dist/api/outcome.js +0 -21
  970. package/dist/api/predictions.d.ts +0 -11
  971. package/dist/api/promote.d.ts +0 -36
  972. package/dist/api/promote.js +0 -65
  973. package/dist/api/recall-core.d.ts +0 -4
  974. package/dist/api/recall-core.js +0 -120
  975. package/dist/api/recall-finish.d.ts +0 -53
  976. package/dist/api/recall-finish.js +0 -30
  977. package/dist/api/recall-history.d.ts +0 -64
  978. package/dist/api/recall-history.js +0 -159
  979. package/dist/api/recall-record.d.ts +0 -43
  980. package/dist/api/recall-record.js +0 -78
  981. package/dist/api/recall-request.js +0 -121
  982. package/dist/api/recall.d.ts +0 -6
  983. package/dist/api/refine.d.ts +0 -7
  984. package/dist/api/refine.js +0 -10
  985. package/dist/api/session-owners.d.ts +0 -4
  986. package/dist/api/session-owners.js +0 -17
  987. package/dist/api/sleep-run.d.ts +0 -26
  988. package/dist/api/sleep.js +0 -10
  989. package/dist/cli/lenient-id.d.ts +0 -2
  990. package/dist/cli/lenient-id.js +0 -13
  991. package/dist/graph/write.d.ts +0 -14
  992. package/dist/store/sqlite/busy.d.ts +0 -3
  993. package/dist/store/sqlite/busy.js +0 -8
  994. package/dist/store/sqlite/local.d.ts +0 -21
  995. package/dist/store/sqlite/local.js +0 -39
@@ -4,6 +4,7 @@ import { DEFAULT_ASSEMBLE_BUDGET } from '../../api/assemble.js';
4
4
  import { verb } from '../verb-row.js';
5
5
  export const HEALTH_VERBS = {
6
6
  status: verb(() => import('../status.js'), 'handleStatus', {
7
+ repairsCodexWrapper: true,
7
8
  flags: {},
8
9
  usage: [`
9
10
  status Show memory health stats`],
@@ -98,6 +99,7 @@ export const HEALTH_VERBS = {
98
99
  --json Output as JSON`],
99
100
  }),
100
101
  outcome: verb(() => import('../curate.js'), 'handleOutcome', {
102
+ repairsCodexWrapper: true,
101
103
  scoped: true,
102
104
  flags: { switches: ['bad', 'good'], values: ['id'] },
103
105
  usage: [`
@@ -1,10 +1,13 @@
1
1
  // Store, recall and maintenance verbs; every verbs/ file keeps its rows in the order `hippo help` lists them.
2
- import { DEFAULT_LOCAL_BUMP, DEFAULT_RECALL_BUDGET } from '../../core/search-types.js';
3
- import { DEFAULT_EMBEDDING_WEIGHT, DEFAULT_MMR_LAMBDA } from '../../search/hybrid.js';
2
+ import { CONFLICT_PEER_MULTIPLIER, DEFAULT_LOCAL_BUMP, DEFAULT_MMR_LAMBDA, DEFAULT_RECALL_BUDGET, SALIENCE_MIN_MULTIPLIER, UTILITY_LENGTH_PENALTY_CAP, UTILITY_LENGTH_TOKENS, VALUE_MULT_MAX, VALUE_MULT_MIN, VALUE_MULT_SLOPE, } from '../../core/search-types.js';
3
+ import { DEFAULT_EMBEDDING_WEIGHT } from '../../search/hybrid.js';
4
4
  import { DEFAULT_GRAPH_HOPS, DEFAULT_GRAPH_SEED_COUNT } from '../../graph/stream.js';
5
5
  import { verb } from '../verb-row.js';
6
+ const VALUE_CLIP = `clip(1 + ${VALUE_MULT_SLOPE}*tanh(pos - neg), ${VALUE_MULT_MIN}, ${VALUE_MULT_MAX})`;
6
7
  export const MEMORY_VERBS = {
7
8
  init: verb(() => import('../init.js'), 'handleInit', {
9
+ repairsCodexWrapper: true,
10
+ scoped: true,
8
11
  flags: { switches: ['global', 'no-hooks', 'no-learn', 'no-schedule'], values: ['scan'], numbers: ['days'] },
9
12
  usage: [`
10
13
  init Create .hippo/ structure in current directory
@@ -18,6 +21,7 @@ export const MEMORY_VERBS = {
18
21
  coding agents' own memories (every init imports those)`],
19
22
  }),
20
23
  remember: verb(() => import('../remember.js'), 'handleRemember', {
24
+ repairsCodexWrapper: true,
21
25
  flags: {
22
26
  switches: ['error', 'extract', 'force', 'global', 'inferred', 'observed', 'pin', 'verified'],
23
27
  values: ['artifact-ref', 'kind', 'layer', 'owner', 'scope'],
@@ -43,6 +47,7 @@ export const MEMORY_VERBS = {
43
47
  --pin Pin the new memory (default: pinned if the old one was)`],
44
48
  }),
45
49
  recall: verb(() => import('../recall.js'), 'handleRecall', {
50
+ repairsCodexWrapper: true,
46
51
  scoped: true,
47
52
  flags: {
48
53
  switches: ['classic', 'continuity', 'equal-sources', 'evc-adaptive', 'filter-conflicts', 'graph-stream',
@@ -61,47 +66,40 @@ export const MEMORY_VERBS = {
61
66
  --as-of <iso-date> Return the memories that were current on that date
62
67
  --multihop Search a second time with the speaker: and topic: tags the
63
68
  first pass found (also on when config multihop.enabled is true)
64
- --hops <n> E3.2 multi-hop graph recall: also surface memories
65
- reached by walking the entities/relations graph <n>
66
- hops (0..3, default off) out from the lexical seeds.
67
- Graph hits are tagged [graph: Nhop <rel>]. Today the
68
- graph holds supersedes edges (E3.1); cross-object edges
69
- light up the same traversal once extracted.
69
+ --hops <n> Also surface memories reached by walking the entity and
70
+ relation graph <n> hops (0..3, default off) out from the
71
+ lexical matches. Graph hits are tagged [graph: Nhop <rel>].
72
+ Today the graph holds supersedes edges; cross-object
73
+ edges light up the same walk once extracted.
70
74
  --max-neighbors <n> Per-hop fanout cap for --hops (1..200, default 25).
71
- --graph-stream L1: fuse a graph-retrieval stream into RRF, re-ranking
72
- in-pool results by graph proximity to the strong lexical
73
- seeds. Implies rrf scoring (default is blend). Local store
74
- only. Distinct from --hops (which injects out-of-pool
75
- neighbours); this re-ranks within the candidate pool.
75
+ --graph-stream Fuse a graph-proximity ranking into the result list,
76
+ re-ranking in-pool results by closeness to the strong
77
+ lexical matches. Implies rrf scoring (default is blend).
78
+ Local store only. Unlike --hops, it adds no memories
79
+ from outside the candidate pool.
76
80
  --graph-hops <n> Hops for --graph-stream (1..3, default ${DEFAULT_GRAPH_HOPS}).
77
81
  --graph-seeds <n> Lexical anchors for --graph-stream (default ${DEFAULT_GRAPH_SEED_COUNT}). The stream
78
- re-ranks the rank>seeds tail; on a pool with <= n candidates
79
- every candidate is a seed and the stream is inert.
82
+ re-ranks the results below the anchors; on a pool with <= n
83
+ candidates every candidate is an anchor and the stream is inert.
80
84
  --no-mmr Disable MMR diversity re-ranking
81
85
  --mmr-lambda <f> MMR balance 0..1 (default: ${DEFAULT_MMR_LAMBDA}, 1.0 = pure relevance)
82
- --evc-adaptive ACC-style: when top-K shows high inter-item overlap
83
- (= conflict cluster), expand pool and re-rank by
84
- recency. Default off. RESEARCH.md §PFC.ACC.
85
- --filter-conflicts vlPFC interference filter: drop superseded entries
86
- and 0.3x-downweight entries flagged in an open
87
- conflict with a peer in the same result set.
88
- Uses recorded supersession + conflicts only — never
89
- lexical inference. Default off. RESEARCH.md §PFC.vlPFC.
90
- --value-aware vmPFC value attribution: boost memories with positive
91
- cumulative outcomes and demote those with negative
92
- outcomes during ranking. Multiplier
93
- clip(1 + 0.3*tanh(pos - neg), 0.7, 1.3). Reuses
94
- outcome_positive / outcome_negative; no schema
95
- change. Default off. RESEARCH.md §PFC.vmPFC.
96
- --rerank-utility OFC option-value re-ranker: combine relevance,
97
- strength, and integration cost into a single utility
98
- = score * (0.5 + 0.5 * strength) * (1 - cost_factor)
99
- where cost_factor = min(0.3, tokens / 10000). Re-sorts
100
- results by utility. Default off. RESEARCH.md §PFC.OFC.
86
+ --evc-adaptive When the top results overlap heavily (a conflict
87
+ cluster), widen the pool and re-rank by recency.
88
+ Default off.
89
+ --filter-conflicts Drop superseded entries and down-weight by ${CONFLICT_PEER_MULTIPLIER}x any
90
+ entry in an open conflict with another result.
91
+ Uses recorded supersession and conflicts only, never
92
+ lexical inference. Default off.
93
+ --value-aware Boost memories with positive cumulative outcomes and
94
+ demote those with negative ones during ranking:
95
+ multiplier ${VALUE_CLIP}.
96
+ Reads outcome_positive and outcome_negative. Default off.
97
+ --rerank-utility Re-sort results by utility = score * (0.5 + 0.5 * strength)
98
+ * (1 - cost_factor), where cost_factor =
99
+ min(${UTILITY_LENGTH_PENALTY_CAP}, tokens / ${UTILITY_LENGTH_TOKENS}). Default off.
101
100
  --reranker <name> Apply a reranker pass after retrieval
102
- (cross-encoder|jev|clef-flash|clef|llm). Looks up
103
- the named reranker from src/rerankers/index.ts and
104
- re-orders the top-K candidates. Default unset (no reranker).
101
+ (cross-encoder|jev|clef-flash|clef|llm) to re-order the
102
+ top-K candidates. Default unset (no reranker).
105
103
  jev calls the hosted TypeSafe Jev API: it needs
106
104
  TYPESAFE_API_KEY, sends the query and candidate
107
105
  text to that API, costs about 0.0004 USD a recall,
@@ -110,30 +108,24 @@ export const MEMORY_VERBS = {
110
108
  Cloudflare Workers AI (CLOUDFLARE_ACCOUNT_ID and
111
109
  CLOUDFLARE_API_TOKEN) or to HIPPO_CLEF_ENDPOINT, and
112
110
  keep the native order on any failure.
113
- See docs/evals/2026-09-19-jev-reranker.md and
114
- docs/plans/2026-05-10-f6-reranker-hardening.md.
115
111
  --reranker-top-k <n> Cap candidates passed to the reranker (default 50;
116
112
  40 for jev, clef-flash and clef).
117
- --goal <tag> dlPFC goal-conditioned recall: memories tagged with
118
- the goal tag get a 1.5x score boost and results are
119
- re-sorted. Default off. RESEARCH.md §PFC.dlPFC.
120
- --session-id <id> Session identifier for dlPFC goal-stack boost.
113
+ --goal <tag> Goal-conditioned recall: memories tagged with the
114
+ goal tag get a 1.5x score boost and results are
115
+ re-sorted. Default off.
116
+ --session-id <id> Session identifier for the goal-stack boost.
121
117
  Defaults to $HIPPO_SESSION_ID. When set and the
122
118
  (tenant, session) has active goals (see
123
119
  'hippo goal push'), recall auto-boosts memories
124
120
  whose tags match an active goal name. Boost stacks
125
121
  on top of base BM25 score, capped at 3.0x.
126
122
  --salience-threshold <n>
127
- Pineal salience: down-weight memories whose
128
- retrieval_count is below n. score *= max(0.5,
129
- retrieval_count / n) for entries with count < n;
130
- entries at or above n are unchanged. Salience emerges
131
- from USE, not from lexical overlap. Default off.
132
- RESEARCH.md §"AI Pineal Gland". (v1's creation-time
133
- lexical gate destroyed LoCoMo 0.28 -> 0.02; this v2
134
- is retrieval-side, opt-in only — see MEMORY.md
135
- "Hippo salience gate destroys benchmark recall".)
136
- --continuity Include continuity block (active task snapshot,
123
+ Down-weight memories retrieved fewer than n times:
124
+ score *= max(${SALIENCE_MIN_MULTIPLIER}, retrieval_count / n) for entries
125
+ with count < n; entries at or above n are unchanged.
126
+ Salience comes from use, not from lexical overlap.
127
+ Default off.
128
+ --continuity Include a continuity block (active task snapshot,
137
129
  latest matching session handoff, last 5 session
138
130
  events) above the memory list. Useful at agent
139
131
  boot when you want both relevant memories AND
@@ -198,6 +190,7 @@ export const MEMORY_VERBS = {
198
190
  --json Output full summary as JSON`],
199
191
  }),
200
192
  context: verb(() => import('../context.js'), 'handleContext', {
193
+ repairsCodexWrapper: true,
201
194
  flags: {
202
195
  switches: ['auto', 'cross-project', 'pinned-only'],
203
196
  values: ['budget', 'format', 'framing', 'include-recent', 'runtime', 'scope'],
@@ -215,6 +208,7 @@ export const MEMORY_VERBS = {
215
208
  --framing <mode> Framing: observe (default), suggest, assert`],
216
209
  }),
217
210
  sleep: verb(() => import('../sleep.js'), 'handleSleep', {
211
+ repairsCodexWrapper: true,
218
212
  destructive: true,
219
213
  scoped: true,
220
214
  flags: { switches: ['dry-run', 'no-learn', 'no-share'], values: ['log-file'] },
@@ -1,5 +1,5 @@
1
1
  // First-class object, server, goal and auth verbs, in `hippo help` order.
2
- import { DEFAULT_KEY_TTL_DAYS, MAX_TTL_DAYS } from '../../api/auth.js';
2
+ import { DEFAULT_KEY_TTL_DAYS, MAX_TTL_DAYS } from '../../api/auth/auth.js';
3
3
  import { DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT } from '../../server/defaults.js';
4
4
  import { verb } from '../verb-row.js';
5
5
  export const OBJECT_VERBS = {
@@ -188,16 +188,19 @@ export const OBJECT_VERBS = {
188
188
  mcp Start MCP server (stdio transport)`],
189
189
  }),
190
190
  serve: verb(() => import('../serve.js'), 'handleServe', {
191
- flags: { values: ['host', 'tls-cert', 'tls-key'], numbers: ['port'] },
191
+ flags: { switches: ['allow-cleartext'], values: ['host', 'tls-cert', 'tls-key'], numbers: ['port'] },
192
192
  usage: [`
193
193
  serve Start the HTTP API server for this store (Ctrl+C stops it)
194
194
  --port <n> Port to serve on (default: $HIPPO_PORT or ${DEFAULT_SERVER_PORT})
195
195
  --host <host> Address to bind (default: ${DEFAULT_SERVER_HOST})
196
196
  --tls-cert <file> PEM certificate; serve HTTPS only (or $HIPPO_TLS_CERT)
197
197
  --tls-key <file> PEM private key for it; give both (or $HIPPO_TLS_KEY)
198
+ --allow-cleartext Bind a non-loopback host without TLS, for a TLS proxy
199
+ in front (or $HIPPO_ALLOW_CLEARTEXT=1)
198
200
  Every request needs an API key (hippo auth create).
199
201
  $HIPPO_ALLOW_KEYLESS_LOCAL=1 lets requests from this machine
200
- in without one; $HIPPO_REQUIRE_AUTH=1 wins over it.`],
202
+ in without one, as a member ($HIPPO_KEYLESS_LOCAL_ROLE=admin
203
+ for host admin); $HIPPO_REQUIRE_AUTH=1 wins over it.`],
201
204
  }),
202
205
  goal: verb(() => import('../goals.js'), 'handleGoal', {
203
206
  scoped: true,
@@ -206,7 +209,7 @@ export const OBJECT_VERBS = {
206
209
  values: ['level', 'outcome', 'parent', 'policy', 'session-id', 'success', 'tenant-id'],
207
210
  },
208
211
  usage: [`
209
- goal <sub> dlPFC goal stack (B3) — scoped per session
212
+ goal <sub> Goal stack, scoped per session
210
213
  goal push <name> Push a new active goal; prints the new goal id
211
214
  --policy <type> schema-fit-biased | error-prioritized |
212
215
  recency-first | hybrid
@@ -225,8 +228,13 @@ export const OBJECT_VERBS = {
225
228
  }),
226
229
  auth: verb(() => import('../auth.js'), 'handleAuth', {
227
230
  scoped: true,
228
- flags: { switches: ['all', 'global', 'json', 'no-expiry'], values: ['label', 'role', 'tenant'], numbers: ['ttl-days'] },
229
- usage: [`
231
+ flags: {
232
+ switches: ['all', 'global', 'json', 'no-expiry'],
233
+ values: ['label', 'role', 'tenant'],
234
+ numbers: ['ttl-days'],
235
+ },
236
+ usage: [
237
+ `
230
238
  auth <sub> Manage API keys (A5 stub auth)
231
239
  auth create Mint a new API key (plaintext shown ONCE)
232
240
  --label <s> Optional human label
@@ -248,7 +256,8 @@ export const OBJECT_VERBS = {
248
256
  --global Operate on the global store
249
257
  auth ungrant <key_id> <scope> Remove a scope grant
250
258
  --json Output as JSON
251
- --global Operate on the global store`],
259
+ --global Operate on the global store`
260
+ ],
252
261
  }),
253
262
  };
254
263
  //# sourceMappingURL=objects.js.map
@@ -132,9 +132,10 @@ export const SESSION_VERBS = {
132
132
  --status Show embedding coverage`],
133
133
  }),
134
134
  watch: verb(() => import('../transfer.js'), 'handleWatch', {
135
- flags: {},
135
+ flags: { values: ['shell'] },
136
136
  usage: [`
137
- watch "<command>" Run command, auto-learn from failures`],
137
+ watch -- <cmd> [args] Run command, auto-learn from failures (no shell)
138
+ --shell "<line>" Run one command line through the shell instead`],
138
139
  }),
139
140
  learn: verb(() => import('../transfer.js'), 'handleLearn', {
140
141
  scoped: true,
@@ -203,6 +204,7 @@ export const SESSION_VERBS = {
203
204
  --format <fmt> Output format: json (default) or markdown`],
204
205
  }),
205
206
  capture: verb(() => import('../session-hooks.js'), 'handleCapture', {
207
+ repairsCodexWrapper: true,
206
208
  flags: { switches: ['dry-run', 'global', 'last-session', 'stdin'], values: ['file', 'log-file', 'transcript'] },
207
209
  usage: [`
208
210
  capture Extract memories from conversation text
@@ -1,4 +1,5 @@
1
1
  import { type CliFlags, type CommandContext } from './flag-values.js';
2
+ import type { Objects } from '../store/port.js';
2
3
  import { printLifecycleTail, type ObjectNames } from './object-verbs.js';
3
4
  type VersionedRow = Parameters<typeof printLifecycleTail>[0] & {
4
5
  readonly id: number;
@@ -23,29 +24,29 @@ export interface VersionedKind<O extends VersionedRow, S extends string, B> {
23
24
  readonly body: (flags: CliFlags, verb: 'new' | 'supersede') => B | undefined;
24
25
  /** What a new version keeps from the one it supersedes: the repo, customer or name. */
25
26
  readonly keyOf: (o: O) => string;
26
- readonly save: (key: string, body: B, extraTags: string[], from?: Succession) => O;
27
+ readonly save: (key: string, body: B, extraTags: string[], from?: Succession) => Promise<O>;
27
28
  /** The first line `new` prints. */
28
29
  readonly recorded: (o: O) => string;
29
30
  readonly list: (opts: {
30
31
  status?: S;
31
32
  limit: number;
32
- }, flags: CliFlags) => readonly O[];
33
- readonly loadById: (id: number) => O | null;
34
- readonly close: (id: number) => {
33
+ }, flags: CliFlags) => Promise<readonly O[]>;
34
+ readonly loadById: (id: number) => Promise<O | null>;
35
+ readonly close: (id: number) => Promise<{
35
36
  id: number;
36
- };
37
+ }>;
37
38
  readonly printRow: (o: O) => void;
38
39
  /** The `get` lines between the header and the lifecycle tail. */
39
40
  readonly printDetail: (o: O) => void;
40
41
  /** A subcommand only this kind has. */
41
42
  readonly extra?: {
42
43
  readonly sub: string;
43
- readonly run: (args: string[], flags: CliFlags) => void;
44
+ readonly run: (args: string[], flags: CliFlags) => Promise<void>;
44
45
  };
45
46
  }
46
47
  /** A flag that must carry text: its raw value, or undefined when absent or blank. */
47
48
  export declare function requiredText(flags: CliFlags, name: string): string | undefined;
48
49
  /** The `hippo <cmd>` handler for a kind; `kindAt` binds the descriptor to the store the command runs against. */
49
- export declare function versionedVerbs<O extends VersionedRow, S extends string, B>(kindAt: (hippoRoot: string, tenantId: string) => VersionedKind<O, S, B>): (ctx: CommandContext) => void;
50
+ export declare function versionedVerbs<O extends VersionedRow, S extends string, B>(kindAt: (objects: Objects, hippoRoot: string, tenantId: string) => VersionedKind<O, S, B>): (ctx: CommandContext) => Promise<void>;
50
51
  export {};
51
52
  //# sourceMappingURL=versioned-verbs.d.ts.map
@@ -1,11 +1,14 @@
1
- // One handler set for the kinds that evolve by supersession (brief, note, policy, process, skill), each driven by a descriptor.
1
+ // One handler set for the kinds that evolve by supersession (brief, note, policy, process, skill),
2
+ // each driven by a descriptor.
2
3
  import { extractPathTags } from '../search/path-context.js';
3
4
  import { errorMessage } from '../util/log.js';
4
5
  import { printError } from './output.js';
5
6
  import { nonEmptyStringFlag, stringFlag } from './flag-values.js';
6
7
  import { requireInit } from './shared.js';
7
- import { closeObject, foundOrExit, idArgOrExit, listObjects, printLifecycleTail } from './object-verbs.js';
8
- import { CliExit } from './exit.js';
8
+ import { objectsOf } from '../api/objects/objects.js';
9
+ import { cliApiContext } from './api-context.js';
10
+ import { closeObject, foundOrExit, idArgOrExit, listObjects, printLifecycleTail, } from './object-verbs.js';
11
+ import { CliExit, fail } from './exit.js';
9
12
  /** A flag that must carry text: its raw value, or undefined when absent or blank. */
10
13
  export function requiredText(flags, name) {
11
14
  const raw = stringFlag(flags, name);
@@ -13,14 +16,19 @@ export function requiredText(flags, name) {
13
16
  }
14
17
  /** The `hippo <cmd>` handler for a kind; `kindAt` binds the descriptor to the store the command runs against. */
15
18
  export function versionedVerbs(kindAt) {
16
- return ({ hippoRoot, tenantId, args, flags }) => {
19
+ return async ({ hippoRoot, tenantId, args, flags }) => {
17
20
  requireInit(hippoRoot);
18
- const kind = kindAt(hippoRoot, tenantId);
21
+ const kind = kindAt(objectsOf(cliApiContext(hippoRoot, tenantId)), hippoRoot, tenantId);
19
22
  const sub = args[0] ?? '';
20
23
  if (sub === kind.extra?.sub)
21
24
  return kind.extra.run(args, flags);
22
25
  if (sub === 'list') {
23
- return listObjects(flags, { plural: kind.plural, states: kind.states, load: (opts) => kind.list(opts, flags), printRow: kind.printRow });
26
+ return listObjects(flags, {
27
+ plural: kind.plural,
28
+ states: kind.states,
29
+ load: (opts) => kind.list(opts, flags),
30
+ printRow: kind.printRow,
31
+ });
24
32
  }
25
33
  if (sub === 'get')
26
34
  return getVersion(kind, args);
@@ -29,46 +37,48 @@ export function versionedVerbs(kindAt) {
29
37
  if (sub === 'close')
30
38
  return closeObject(args, kind.names, kind.close);
31
39
  // Both `<cmd> new "<key>"` and the bare `<cmd> "<key>"` create.
32
- createVersion(kind, sub === 'new' ? (args[1] ?? '') : sub, flags);
40
+ await createVersion(kind, sub === 'new' ? (args[1] ?? '') : sub, flags);
33
41
  };
34
42
  }
35
- function getVersion(kind, args) {
43
+ async function getVersion(kind, args) {
36
44
  const id = idArgOrExit(args, `Usage: hippo ${kind.names.cmd} get <id>`, kind.names.idLabel);
37
- const o = foundOrExit(kind.loadById(id), kind.names.noun, id);
45
+ const o = foundOrExit(await kind.loadById(id), kind.names.noun, id);
38
46
  console.log(`${kind.names.noun} #${o.id}`);
39
47
  kind.printDetail(o);
40
48
  printLifecycleTail(o);
41
49
  }
42
- function createVersion(kind, key, flags) {
50
+ async function createVersion(kind, key, flags) {
43
51
  const body = key ? kind.body(flags, 'new') : undefined;
44
52
  if (body === undefined) {
45
53
  for (const line of kind.usage)
46
54
  printError(line);
47
55
  throw new CliExit(1);
48
56
  }
49
- const created = saveVersion(kind, key, body);
57
+ const created = await saveVersion(kind, key, body);
50
58
  printSaved(kind.recorded(created), created);
51
59
  }
52
- function supersedeVersion(kind, args, flags) {
60
+ async function supersedeVersion(kind, args, flags) {
53
61
  const id = idArgOrExit(args, kind.supersedeUsage, kind.names.idLabel);
54
62
  const body = kind.body(flags, 'supersede');
55
63
  if (body === undefined) {
56
- printError(`hippo ${kind.names.cmd} supersede requires ${kind.bodyRequired} for the new version.`);
57
- throw new CliExit(1);
64
+ fail(`hippo ${kind.names.cmd} supersede requires ${kind.bodyRequired} for the new version.`);
58
65
  }
59
- // The lookup only gives a missing id its not-found line; the save's own preflight is the authoritative active-state check.
60
- const existing = foundOrExit(kind.loadById(id), kind.names.noun, id);
61
- const created = saveVersion(kind, kind.keyOf(existing), body, { id, changeSummary: nonEmptyStringFlag(flags, 'change') });
66
+ // The lookup only gives a missing id its not-found line; the save's own preflight is the
67
+ // authoritative active-state check.
68
+ const existing = foundOrExit(await kind.loadById(id), kind.names.noun, id);
69
+ const created = await saveVersion(kind, kind.keyOf(existing), body, {
70
+ id,
71
+ changeSummary: nonEmptyStringFlag(flags, 'change'),
72
+ });
62
73
  printSaved(`${kind.names.noun} #${created.id} recorded (v${created.version}), superseding #${id}.`, created);
63
74
  }
64
75
  /** Every kind's save goes through here, so a refused write always prints the store's message and exits 1. */
65
- function saveVersion(kind, key, body, from) {
76
+ async function saveVersion(kind, key, body, from) {
66
77
  try {
67
- return kind.save(key, body, extractPathTags(process.cwd()), from);
78
+ return await kind.save(key, body, extractPathTags(process.cwd()), from);
68
79
  }
69
80
  catch (e) {
70
- printError(errorMessage(e));
71
- throw new CliExit(1);
81
+ fail(errorMessage(e));
72
82
  }
73
83
  }
74
84
  function printSaved(line, o) {
package/dist/cli.js CHANGED
@@ -12,17 +12,18 @@ import { printGitHubBackfillUsage } from './cli/github.js';
12
12
  import { printError } from './cli/output.js';
13
13
  import { errorFields, errorMessage, isLevelEnabled, log } from './util/log.js';
14
14
  import { STORE_BUSY_MESSAGE } from './store/port.js';
15
- import { isStoreBusy } from './store/sqlite/busy.js';
15
+ import { isStoreBusy } from './api/busy.js';
16
16
  import { flagIsTrue, isBooleanFlag, isStringFlag } from './cli/flag-values.js';
17
- import { USAGE_HEADER, USAGE_EXAMPLES, printAuditPruneUsage, printSlackBackfillUsage, printSlackWorkspacesUsage } from './cli/usage.js';
17
+ import { USAGE_HEADER, USAGE_EXAMPLES, printAuditPruneUsage, printSlackBackfillUsage, printSlackWorkspacesUsage, } from './cli/usage.js';
18
18
  import { flagKind, isKnownFlag, undeclaredFlags } from './cli/flags.js';
19
19
  import { COMMANDS } from './cli/verbs.js';
20
- import { CliExit } from './cli/exit.js';
21
- // Helpers
20
+ import { CliExit, fail } from './cli/exit.js';
22
21
  // A command that does not honour --dry-run would ignore it and run for real.
23
22
  function dryRunRefusal(command, spec, args, flags) {
24
23
  const only = spec?.dryRun;
25
- const honoured = only === undefined ? spec?.flags.switches?.includes('dry-run') : only !== false && only.honoured(args, flags);
24
+ const honoured = only === undefined
25
+ ? spec?.flags.switches?.includes('dry-run')
26
+ : only !== false && only.honoured(args, flags);
26
27
  if (honoured)
27
28
  return null;
28
29
  const where = only ? ` outside \`hippo ${command} ${only.form}\`` : '';
@@ -59,7 +60,6 @@ function setSeparatedFlag(flags, key, next, kind) {
59
60
  return 2;
60
61
  }
61
62
  if (!next || next.startsWith('--') || kind === 'switch') {
62
- // Boolean flag
63
63
  flags[key] = true;
64
64
  return 1;
65
65
  }
@@ -107,9 +107,8 @@ export function parseArgs(argv) {
107
107
  export function shouldAutoRepairCodexWrapper(currentCommand, flags) {
108
108
  if (envSkipAutoIntegrations())
109
109
  return false;
110
- if (!['context', 'remember', 'recall', 'sleep', 'capture', 'outcome', 'status', 'init'].includes(currentCommand)) {
110
+ if (!COMMAND_INDEX.get(currentCommand)?.repairsCodexWrapper)
111
111
  return false;
112
- }
113
112
  if (currentCommand === 'init' && flagIsTrue(flags, 'no-hooks'))
114
113
  return false;
115
114
  return true;
@@ -123,7 +122,7 @@ function maybeRepairCodexWrapper(currentCommand, flags) {
123
122
  repairCodexWrapperIfInstalled();
124
123
  }
125
124
  catch (err) {
126
- log.debug(`codex wrapper not repaired: ${errorMessage(err)}`);
125
+ log.debug(`codex wrapper not repaired: ${errorMessage(err)}`, errorFields(err));
127
126
  }
128
127
  }
129
128
  const ROWS = Object.values(COMMANDS);
@@ -155,7 +154,6 @@ function printHelp(command, args) {
155
154
  else
156
155
  console.log(verbUsage(command) ?? usageText());
157
156
  }
158
- // Entry point
159
157
  function printVersion() {
160
158
  const __filename_local = fileURLToPath(import.meta.url);
161
159
  const __dirname_local = path.dirname(__filename_local);
@@ -169,8 +167,7 @@ function printVersion() {
169
167
  * reject it once here so every command, thin-client relays included, sees only a non-empty string. */
170
168
  function rejectEmptyScope(flags) {
171
169
  if ('scope' in flags && (!isStringFlag(flags['scope']) || !flags['scope'].trim())) {
172
- printError('--scope requires a non-empty value (e.g. --scope slack:private:C1).');
173
- throw new CliExit(1);
170
+ fail('--scope requires a non-empty value (e.g. --scope slack:private:C1).');
174
171
  }
175
172
  }
176
173
  // parseArgs stores a value-less flag as boolean true, and NaN then survives every
@@ -180,8 +177,7 @@ function rejectNonNumericFlags(flags, declared) {
180
177
  if (flagKind(declared, key) !== 'number')
181
178
  continue;
182
179
  if (!isStringFlag(raw) || !raw.trim() || !Number.isFinite(Number(raw))) {
183
- printError(`--${key} requires a numeric value.`);
184
- throw new CliExit(1);
180
+ fail(`--${key} requires a numeric value.`);
185
181
  }
186
182
  }
187
183
  }
@@ -190,8 +186,7 @@ function rejectNonNumericFlags(flags, declared) {
190
186
  function rejectValuedSwitches(flags, declared) {
191
187
  for (const [key, raw] of Object.entries(flags)) {
192
188
  if (flagKind(declared, key) === 'switch' && !isBooleanFlag(raw)) {
193
- printError(`--${key} takes no value`);
194
- throw new CliExit(1);
189
+ fail(`--${key} takes no value`);
195
190
  }
196
191
  }
197
192
  }
@@ -208,8 +203,9 @@ function checkUnknownFlags(command, flags, spec) {
208
203
  }
209
204
  // main() refuses --dry-run by name on a verb without one, so that flag is not also called ignored.
210
205
  const ignored = declared ? undeclaredFlags(declared, Object.keys(flags)).filter((key) => key !== 'dry-run') : unknown;
211
- if (ignored.length > 0)
206
+ if (ignored.length > 0) {
212
207
  printError(`hippo: ignoring unknown flag ${flagNames(ignored)}. A later release will reject it.`);
208
+ }
213
209
  }
214
210
  async function main(command, args, flags, hippoRoot) {
215
211
  if (command === '--version' || command === '-v' || flags['version'])
@@ -240,7 +236,7 @@ async function main(command, args, flags, hippoRoot) {
240
236
  throw new CliExit(1);
241
237
  }
242
238
  const run = () => spec.run({ hippoRoot, tenantId: resolveTenantId({}), args, flags });
243
- await (spec.scoped ? (await import('./db/request-stores.js')).runWithRequestStores(run) : run());
239
+ await (spec.scoped ? (await import('./cli/api-context.js')).cliRequest(run) : run());
244
240
  }
245
241
  export async function runCli(argv = process.argv) {
246
242
  const { command, args, flags } = parseArgs(argv);
@@ -1,4 +1,4 @@
1
- import { type HippoStore } from '../store/index.js';
1
+ import type { StoreWith } from '../store/index.js';
2
2
  import type { ConnectorDeadLetter } from '../store/port.js';
3
3
  import type { JsonValue } from '../util/json.js';
4
4
  declare const DEFAULT_BUCKET = "parse_error";
@@ -19,8 +19,8 @@ export interface ParkedRow<Bucket extends string> {
19
19
  bucket: Bucket | typeof DEFAULT_BUCKET;
20
20
  signature: string | null;
21
21
  }
22
- /** What one connector supplies: the tag that names its table to the store, its list, its one-row read and its retry bump.
23
- * `Own` is the columns only its table has. */
22
+ /** What one connector supplies: the tag that names its table to the store, its list, its one-row read and its retry
23
+ * bump. `Own` is the columns only its table has. */
24
24
  export interface ConnectorDlq<Own, Bucket extends string, Item> {
25
25
  readonly letter: (row: ParkedRow<Bucket> & Own) => ConnectorDeadLetter;
26
26
  readonly list: (hippoRoot: string, tenantId: string, limit: number) => Item[];
@@ -28,8 +28,7 @@ export interface ConnectorDlq<Own, Bucket extends string, Item> {
28
28
  /** Adds one to `retry_count` and stamps `retried_at`. */
29
29
  readonly bump: (hippoRoot: string, id: number) => void;
30
30
  }
31
- /** Parks on `store`, else on hippo.db under `hippoRoot`. */
32
- export declare function parkInDlq<Own, Bucket extends string>(dlq: ConnectorDlq<Own, Bucket, unknown>, hippoRoot: string, opts: ParkOpts<Bucket> & NoInfer<Own>, store?: HippoStore): Promise<number>;
31
+ export declare function parkInDlq<Own, Bucket extends string>(dlq: ConnectorDlq<Own, Bucket, unknown>, store: StoreWith<'connectorEvents'>, opts: ParkOpts<Bucket> & NoInfer<Own>): Promise<number>;
33
32
  export declare function listDlq<Item>(dlq: ConnectorDlq<never, never, Item>, hippoRoot: string, opts: {
34
33
  tenantId: string;
35
34
  limit?: number;
@@ -74,7 +73,8 @@ export interface ReplaySteps<Item, Envelope extends JsonValue> {
74
73
  readonly notEnvelope: string;
75
74
  readonly reingest: (row: Item, envelope: Envelope) => Promise<Reingest>;
76
75
  }
77
- /** Re-runs a parked row under today's secret and routing; every attempt past the read is counted once, except a missing signature. */
76
+ /** Re-runs a parked row under today's secret and routing; every
77
+ * attempt past the read is counted once, except a missing signature. */
78
78
  export declare function replayParked<Item extends ParkedEntry, Envelope extends JsonValue>(steps: ReplaySteps<Item, Envelope>, hippoRoot: string, id: number, force: boolean): Promise<ReplayResult>;
79
79
  export {};
80
80
  //# sourceMappingURL=dlq.d.ts.map
@@ -1,13 +1,12 @@
1
- // The dead-letter queue every webhook connector parks into: one redaction, one unroutable sentinel, one set of defaults, one replay result.
1
+ // The dead-letter queue every webhook connector parks into: one redaction, one unroutable sentinel, one set of
2
+ // defaults, one replay result.
2
3
  import { DEFAULT_LIST_LIMIT } from '../util/limits.js';
3
4
  import { DLQ_REDACTED_NOTE, redactPayload } from '../util/secret-detect.js';
4
- import { requireGroup, storeFor } from '../store/index.js';
5
5
  import { errorMessage } from '../util/log.js';
6
6
  /** The tenant stored on a row no tenant was resolved for; the column is NOT NULL. */
7
7
  const UNROUTABLE_TENANT = '__unroutable__';
8
8
  const DEFAULT_BUCKET = 'parse_error';
9
- /** Parks on `store`, else on hippo.db under `hippoRoot`. */
10
- export async function parkInDlq(dlq, hippoRoot, opts, store) {
9
+ export async function parkInDlq(dlq, store, opts) {
11
10
  const rawPayload = redactPayload(opts.rawPayload);
12
11
  // A redacted body can never match its signature, so the row keeps none and replay needs --force.
13
12
  const redacted = rawPayload !== opts.rawPayload;
@@ -19,7 +18,7 @@ export async function parkInDlq(dlq, hippoRoot, opts, store) {
19
18
  bucket: opts.bucket ?? DEFAULT_BUCKET,
20
19
  signature: redacted ? null : opts.signature ?? null,
21
20
  });
22
- return requireGroup(storeFor({ hippoRoot, store }), 'connectorEvents').parkDeadLetter(letter);
21
+ return store.connectorEvents.parkDeadLetter(letter);
23
22
  }
24
23
  export function listDlq(dlq, hippoRoot, opts) {
25
24
  return dlq.list(hippoRoot, opts.tenantId, opts.limit ?? DEFAULT_LIST_LIMIT);
@@ -33,7 +32,8 @@ function failAndBump(dlq, hippoRoot, row, status, reason) {
33
32
  dlq.bump(hippoRoot, row.id);
34
33
  return replayFailed(status, row.retryCount + 1, reason);
35
34
  }
36
- /** Re-runs a parked row under today's secret and routing; every attempt past the read is counted once, except a missing signature. */
35
+ /** Re-runs a parked row under today's secret and routing; every
36
+ * attempt past the read is counted once, except a missing signature. */
37
37
  export async function replayParked(steps, hippoRoot, id, force) {
38
38
  const row = steps.dlq.entry(hippoRoot, id);
39
39
  if (!row)
@@ -56,7 +56,12 @@ export async function replayParked(steps, hippoRoot, id, force) {
56
56
  if (!outcome.ok)
57
57
  return failAndBump(steps.dlq, hippoRoot, row, outcome.status, outcome.reason);
58
58
  steps.dlq.bump(hippoRoot, row.id);
59
- const result = { ok: true, status: outcome.status, memoryId: outcome.memoryId, retryCount: row.retryCount + 1 };
59
+ const result = {
60
+ ok: true,
61
+ status: outcome.status,
62
+ memoryId: outcome.memoryId,
63
+ retryCount: row.retryCount + 1,
64
+ };
60
65
  if (outcome.reason !== undefined)
61
66
  result.reason = outcome.reason;
62
67
  return result;
@@ -1,7 +1,7 @@
1
- /** Paginated backfill of the GitHub issues, issue-comments and PR-review-comments streams, each with its own high-water mark (HWM).
2
- * An HWM is persisted only after its stream fully drains, so a crash in stream 2 leaves stream 1 committed and stream 2 resumes from its prior HWM.
1
+ /** Paginated backfill of the GitHub issues, issue-comments and PR-review-comments streams, each with its own HWM.
2
+ * An HWM (high-water mark) is saved only after its stream fully drains, so a crash in stream 2 keeps stream 1.
3
3
  * `repository.private` is left undefined (REST lists omit it), so scopeFromRepository falls through to private. */
4
- import type { Context } from '../../api/index.js';
4
+ import type { ConnectorContext } from '../store.js';
5
5
  import type { GitHubFetcher } from './octokit-client.js';
6
6
  export interface BackfillOpts {
7
7
  /** e.g. 'acme/repo'. */
@@ -24,5 +24,5 @@ export interface BackfillResult {
24
24
  ingested: BackfillStreamCounts;
25
25
  pages: BackfillStreamCounts;
26
26
  }
27
- export declare function backfillRepo(ctx: Context, opts: BackfillOpts): Promise<BackfillResult>;
27
+ export declare function backfillRepo(ctx: ConnectorContext, opts: BackfillOpts): Promise<BackfillResult>;
28
28
  //# sourceMappingURL=backfill.d.ts.map