hippo-memory 2.0.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 (965) hide show
  1. package/dist/agent-memories/apply.d.ts +7 -5
  2. package/dist/agent-memories/apply.js +66 -39
  3. package/dist/agent-memories/claude-code.d.ts +8 -2
  4. package/dist/agent-memories/claude-code.js +26 -7
  5. package/dist/agent-memories/copilot.js +2 -1
  6. package/dist/agent-memories/files.js +2 -1
  7. package/dist/agent-memories/legacy.d.ts +6 -3
  8. package/dist/agent-memories/legacy.js +35 -14
  9. package/dist/agent-memories/markdown.d.ts +3 -1
  10. package/dist/agent-memories/markdown.js +3 -1
  11. package/dist/agent-memories/openclaw.js +5 -2
  12. package/dist/agent-memories/plan.js +11 -1
  13. package/dist/agent-memories/project-folds.js +2 -1
  14. package/dist/agent-memories/report.d.ts +4 -1
  15. package/dist/agent-memories/report.js +43 -9
  16. package/dist/agent-memories/source.d.ts +8 -2
  17. package/dist/agent-memories/source.js +11 -3
  18. package/dist/agent-memories/sync.d.ts +7 -2
  19. package/dist/agent-memories/sync.js +141 -101
  20. package/dist/api/assemble.d.ts +6 -4
  21. package/dist/api/assemble.js +11 -6
  22. package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
  23. package/dist/api/{audit.js → auth/audit.js} +11 -11
  24. package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -15
  25. package/dist/api/{auth.js → auth/auth.js} +46 -29
  26. package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
  27. package/dist/api/{quarantine.js → auth/quarantine.js} +8 -8
  28. package/dist/api/auth/session-owners.d.ts +10 -0
  29. package/dist/api/auth/session-owners.js +35 -0
  30. package/dist/api/availability.d.ts +3 -1
  31. package/dist/api/availability.js +3 -1
  32. package/dist/api/busy.d.ts +2 -0
  33. package/dist/api/busy.js +2 -0
  34. package/dist/api/cli-surface.d.ts +6 -0
  35. package/dist/api/cli-surface.js +6 -0
  36. package/dist/api/config-of.d.ts +5 -0
  37. package/dist/api/config-of.js +6 -0
  38. package/dist/api/context-auto.d.ts +4 -1
  39. package/dist/api/context-auto.js +10 -2
  40. package/dist/api/context-render.js +14 -7
  41. package/dist/api/context-select.d.ts +4 -1
  42. package/dist/api/context-select.js +23 -14
  43. package/dist/api/context-types.d.ts +38 -12
  44. package/dist/api/context.d.ts +8 -5
  45. package/dist/api/context.js +112 -57
  46. package/dist/api/continuity.d.ts +24 -21
  47. package/dist/api/continuity.js +18 -20
  48. package/dist/api/correction-latency.d.ts +3 -1
  49. package/dist/api/correction-latency.js +3 -1
  50. package/dist/api/error-reply.d.ts +4 -1
  51. package/dist/api/error-reply.js +12 -3
  52. package/dist/api/index.d.ts +39 -23
  53. package/dist/api/index.js +21 -23
  54. package/dist/api/instruction-detect.d.ts +4 -1
  55. package/dist/api/instruction-detect.js +75 -20
  56. package/dist/api/ledger-db.d.ts +15 -11
  57. package/dist/api/ledger-db.js +21 -23
  58. package/dist/api/memories/conflicts.d.ts +33 -0
  59. package/dist/api/memories/conflicts.js +67 -0
  60. package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
  61. package/dist/api/{forget.js → memories/forget.js} +22 -15
  62. package/dist/api/memories/memories.d.ts +27 -0
  63. package/dist/api/{memories.js → memories/memories.js} +16 -21
  64. package/dist/api/memories/outcome.d.ts +22 -0
  65. package/dist/api/{outcome.js → memories/outcome.js} +14 -8
  66. package/dist/api/memories/promote.d.ts +40 -0
  67. package/dist/api/{promote.js → memories/promote.js} +35 -22
  68. package/dist/api/memories/refine.d.ts +10 -0
  69. package/dist/api/memories/refine.js +12 -0
  70. package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +16 -11
  71. package/dist/api/{remember-local.js → memories/remember-local.js} +34 -20
  72. package/dist/api/{remember.d.ts → memories/remember.d.ts} +19 -13
  73. package/dist/api/{remember.js → memories/remember.js} +42 -26
  74. package/dist/api/objects/cards.d.ts +39 -0
  75. package/dist/api/{cards.js → objects/cards.js} +12 -14
  76. package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
  77. package/dist/api/{drill-down.js → objects/drill-down.js} +7 -8
  78. package/dist/api/objects/goals.d.ts +18 -0
  79. package/dist/api/{goals.js → objects/goals.js} +12 -12
  80. package/dist/api/objects/graph.d.ts +11 -0
  81. package/dist/api/objects/graph.js +16 -0
  82. package/dist/api/objects/objects.d.ts +9 -0
  83. package/dist/api/{objects.js → objects/objects.js} +2 -4
  84. package/dist/api/objects/predictions.d.ts +11 -0
  85. package/dist/api/{predictions.js → objects/predictions.js} +7 -6
  86. package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
  87. package/dist/api/{projects.js → objects/projects.js} +8 -4
  88. package/dist/api/pilot-arm.d.ts +8 -4
  89. package/dist/api/pilot-arm.js +5 -4
  90. package/dist/api/prompt-hook.d.ts +32 -19
  91. package/dist/api/prompt-hook.js +65 -44
  92. package/dist/api/provenance-coverage.d.ts +3 -1
  93. package/dist/api/provenance-coverage.js +3 -1
  94. package/dist/api/recall/finish.d.ts +185 -0
  95. package/dist/api/recall/finish.js +301 -0
  96. package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
  97. package/dist/api/{recall-pipeline.js → recall/pipeline.js} +176 -92
  98. package/dist/api/recall/recall.d.ts +6 -0
  99. package/dist/api/{recall.js → recall/recall.js} +101 -60
  100. package/dist/api/recall/render.d.ts +39 -0
  101. package/dist/api/recall/render.js +60 -0
  102. package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
  103. package/dist/api/recall/request.js +261 -0
  104. package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
  105. package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
  106. package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -70
  107. package/dist/api/{recall-types.js → recall/types.js} +1 -1
  108. package/dist/api/session-end.d.ts +16 -12
  109. package/dist/api/session-end.js +46 -30
  110. package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
  111. package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
  112. package/dist/api/sleep/dormant.d.ts +25 -0
  113. package/dist/api/sleep/dormant.js +64 -0
  114. package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
  115. package/dist/api/sleep/learn.js +138 -0
  116. package/dist/api/sleep/sleep-run.d.ts +38 -0
  117. package/dist/api/{sleep-run.js → sleep/sleep-run.js} +51 -43
  118. package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
  119. package/dist/api/sleep/sleep.js +9 -0
  120. package/dist/api/status.d.ts +3 -1
  121. package/dist/api/status.js +3 -1
  122. package/dist/api/store-init.d.ts +4 -1
  123. package/dist/api/store-init.js +4 -1
  124. package/dist/api/tokens.d.ts +10 -9
  125. package/dist/api/tokens.js +9 -10
  126. package/dist/api/types.d.ts +28 -7
  127. package/dist/api/types.js +13 -4
  128. package/dist/capture/caller-session.d.ts +8 -2
  129. package/dist/capture/caller-session.js +16 -6
  130. package/dist/capture/capture-error.d.ts +3 -1
  131. package/dist/capture/capture-error.js +3 -1
  132. package/dist/capture/codex-patch.js +7 -2
  133. package/dist/capture/command.d.ts +4 -2
  134. package/dist/capture/command.js +33 -14
  135. package/dist/capture/compact-resume-caller.js +15 -8
  136. package/dist/capture/compact.d.ts +8 -5
  137. package/dist/capture/compact.js +34 -23
  138. package/dist/capture/compaction-items-caller.js +9 -3
  139. package/dist/capture/compaction-record.d.ts +4 -3
  140. package/dist/capture/compaction-record.js +20 -12
  141. package/dist/capture/compaction-spool.d.ts +15 -4
  142. package/dist/capture/compaction-spool.js +64 -17
  143. package/dist/capture/copilot-transcript.d.ts +11 -3
  144. package/dist/capture/copilot-transcript.js +16 -6
  145. package/dist/capture/extract.js +20 -8
  146. package/dist/capture/failure-caller.js +23 -12
  147. package/dist/capture/failure-reading.d.ts +10 -3
  148. package/dist/capture/failure-reading.js +24 -7
  149. package/dist/capture/pre-compact-caller.js +11 -4
  150. package/dist/capture/session-digest.d.ts +15 -4
  151. package/dist/capture/session-digest.js +39 -13
  152. package/dist/capture/session-end-caller.d.ts +4 -1
  153. package/dist/capture/session-end-caller.js +20 -8
  154. package/dist/capture/session-texts.d.ts +6 -2
  155. package/dist/capture/session-texts.js +22 -7
  156. package/dist/capture/session-worker.d.ts +4 -2
  157. package/dist/capture/session-worker.js +45 -17
  158. package/dist/capture/transcript.d.ts +13 -4
  159. package/dist/capture/transcript.js +32 -10
  160. package/dist/capture/working-state.d.ts +13 -4
  161. package/dist/capture/working-state.js +50 -56
  162. package/dist/cli/api-context.d.ts +14 -2
  163. package/dist/cli/api-context.js +45 -2
  164. package/dist/cli/audit.js +23 -23
  165. package/dist/cli/auth.js +19 -27
  166. package/dist/cli/briefs.d.ts +1 -1
  167. package/dist/cli/briefs.js +20 -15
  168. package/dist/cli/card.d.ts +1 -1
  169. package/dist/cli/card.js +56 -73
  170. package/dist/cli/client.d.ts +12 -4
  171. package/dist/cli/client.js +43 -13
  172. package/dist/cli/compact-resume-payload.d.ts +4 -1
  173. package/dist/cli/compact-resume-payload.js +12 -5
  174. package/dist/cli/context.js +42 -17
  175. package/dist/cli/continuity.d.ts +5 -5
  176. package/dist/cli/continuity.js +90 -107
  177. package/dist/cli/curate.d.ts +4 -3
  178. package/dist/cli/curate.js +46 -68
  179. package/dist/cli/dag.d.ts +1 -1
  180. package/dist/cli/dag.js +14 -17
  181. package/dist/cli/decisions.js +27 -26
  182. package/dist/cli/eval.js +16 -21
  183. package/dist/cli/exit.d.ts +4 -1
  184. package/dist/cli/exit.js +10 -2
  185. package/dist/cli/explain.js +12 -11
  186. package/dist/cli/flag-values.d.ts +1 -1
  187. package/dist/cli/flag-values.js +9 -18
  188. package/dist/cli/github.d.ts +6 -0
  189. package/dist/cli/github.js +25 -13
  190. package/dist/cli/goals.d.ts +1 -1
  191. package/dist/cli/goals.js +39 -56
  192. package/dist/cli/graph.d.ts +1 -1
  193. package/dist/cli/graph.js +15 -11
  194. package/dist/cli/hook-runtime.d.ts +31 -9
  195. package/dist/cli/hook-runtime.js +40 -15
  196. package/dist/cli/incidents.d.ts +1 -1
  197. package/dist/cli/incidents.js +25 -25
  198. package/dist/cli/init.js +26 -11
  199. package/dist/cli/install-steps.d.ts +12 -3
  200. package/dist/cli/install-steps.js +42 -18
  201. package/dist/cli/last-sleep.d.ts +4 -1
  202. package/dist/cli/last-sleep.js +9 -4
  203. package/dist/cli/maintenance.d.ts +1 -1
  204. package/dist/cli/maintenance.js +11 -12
  205. package/dist/cli/notes.d.ts +1 -1
  206. package/dist/cli/notes.js +8 -5
  207. package/dist/cli/object-verbs.d.ts +4 -4
  208. package/dist/cli/object-verbs.js +10 -13
  209. package/dist/cli/open-browser.js +11 -2
  210. package/dist/cli/playbooks.d.ts +3 -3
  211. package/dist/cli/playbooks.js +40 -32
  212. package/dist/cli/predictions.js +15 -19
  213. package/dist/cli/print.js +4 -2
  214. package/dist/cli/projects.js +21 -11
  215. package/dist/cli/quality-repair-once.js +5 -4
  216. package/dist/cli/recall.js +129 -93
  217. package/dist/cli/refine-llm.d.ts +15 -4
  218. package/dist/cli/refine-llm.js +16 -7
  219. package/dist/cli/remember.js +46 -50
  220. package/dist/cli/scheduler.d.ts +4 -1
  221. package/dist/cli/scheduler.js +9 -5
  222. package/dist/cli/serve.js +22 -17
  223. package/dist/cli/session-hooks.d.ts +2 -2
  224. package/dist/cli/session-hooks.js +87 -50
  225. package/dist/cli/setup.js +54 -32
  226. package/dist/cli/shared.d.ts +3 -1
  227. package/dist/cli/shared.js +24 -9
  228. package/dist/cli/slack.js +15 -24
  229. package/dist/cli/sleep-render.d.ts +3 -1
  230. package/dist/cli/sleep-render.js +8 -5
  231. package/dist/cli/sleep.js +14 -6
  232. package/dist/cli/status.d.ts +4 -4
  233. package/dist/cli/status.js +32 -27
  234. package/dist/cli/stdin.d.ts +10 -3
  235. package/dist/cli/stdin.js +10 -3
  236. package/dist/cli/transfer.d.ts +1 -1
  237. package/dist/cli/transfer.js +71 -75
  238. package/dist/cli/verbs/memory.js +8 -6
  239. package/dist/cli/verbs/objects.js +10 -4
  240. package/dist/cli/versioned-verbs.d.ts +8 -7
  241. package/dist/cli/versioned-verbs.js +31 -21
  242. package/dist/cli.js +13 -16
  243. package/dist/connectors/dlq.d.ts +6 -6
  244. package/dist/connectors/dlq.js +12 -8
  245. package/dist/connectors/github/backfill.d.ts +4 -4
  246. package/dist/connectors/github/backfill.js +6 -4
  247. package/dist/connectors/github/deletion.d.ts +6 -4
  248. package/dist/connectors/github/deletion.js +5 -5
  249. package/dist/connectors/github/dlq.d.ts +8 -6
  250. package/dist/connectors/github/dlq.js +11 -5
  251. package/dist/connectors/github/ingest.d.ts +2 -2
  252. package/dist/connectors/github/ingest.js +9 -6
  253. package/dist/connectors/github/octokit-client.d.ts +3 -1
  254. package/dist/connectors/github/octokit-client.js +7 -2
  255. package/dist/connectors/github/ratelimit.d.ts +6 -2
  256. package/dist/connectors/github/ratelimit.js +6 -2
  257. package/dist/connectors/github/signature.d.ts +14 -3
  258. package/dist/connectors/github/signature.js +17 -3
  259. package/dist/connectors/github/tenant-routing.d.ts +6 -4
  260. package/dist/connectors/github/tenant-routing.js +6 -6
  261. package/dist/connectors/github/transform.js +50 -67
  262. package/dist/connectors/github/types.d.ts +10 -3
  263. package/dist/connectors/github/types.js +6 -2
  264. package/dist/connectors/github/webhook.d.ts +5 -5
  265. package/dist/connectors/github/webhook.js +34 -23
  266. package/dist/connectors/ingest.d.ts +5 -3
  267. package/dist/connectors/ingest.js +3 -4
  268. package/dist/connectors/slack/backfill.d.ts +5 -5
  269. package/dist/connectors/slack/backfill.js +3 -3
  270. package/dist/connectors/slack/deletion.d.ts +4 -4
  271. package/dist/connectors/slack/deletion.js +6 -6
  272. package/dist/connectors/slack/dlq.d.ts +4 -4
  273. package/dist/connectors/slack/dlq.js +6 -6
  274. package/dist/connectors/slack/ingest.d.ts +6 -4
  275. package/dist/connectors/slack/ingest.js +5 -5
  276. package/dist/connectors/slack/signature.d.ts +4 -1
  277. package/dist/connectors/slack/tenant-routing.d.ts +6 -4
  278. package/dist/connectors/slack/tenant-routing.js +6 -6
  279. package/dist/connectors/slack/transform.d.ts +6 -2
  280. package/dist/connectors/slack/transform.js +6 -2
  281. package/dist/connectors/slack/types.d.ts +3 -1
  282. package/dist/connectors/slack/web-client.js +8 -3
  283. package/dist/connectors/slack/webhook.d.ts +5 -5
  284. package/dist/connectors/slack/webhook.js +19 -11
  285. package/dist/connectors/slack/workspaces.d.ts +7 -3
  286. package/dist/connectors/slack/workspaces.js +7 -3
  287. package/dist/connectors/store.d.ts +8 -0
  288. package/dist/connectors/store.js +2 -0
  289. package/dist/consolidate/conflicts.js +23 -9
  290. package/dist/consolidate/dag-summary.js +2 -1
  291. package/dist/consolidate/dag.d.ts +10 -5
  292. package/dist/consolidate/dag.js +37 -36
  293. package/dist/consolidate/decay.js +19 -6
  294. package/dist/consolidate/dedupe.d.ts +14 -5
  295. package/dist/consolidate/dedupe.js +27 -16
  296. package/dist/consolidate/flush-units.d.ts +4 -1
  297. package/dist/consolidate/flush-units.js +4 -1
  298. package/dist/consolidate/half-life-migration.d.ts +18 -8
  299. package/dist/consolidate/half-life-migration.js +48 -18
  300. package/dist/consolidate/llm-passes.js +27 -11
  301. package/dist/consolidate/memory-value-weights.d.ts +6 -2
  302. package/dist/consolidate/memory-value-weights.js +6 -2
  303. package/dist/consolidate/memory-value.d.ts +30 -10
  304. package/dist/consolidate/memory-value.js +36 -13
  305. package/dist/consolidate/merge.d.ts +4 -1
  306. package/dist/consolidate/merge.js +42 -32
  307. package/dist/consolidate/overlap-index.d.ts +8 -2
  308. package/dist/consolidate/overlap-index.js +11 -4
  309. package/dist/consolidate/physics-pass.d.ts +3 -1
  310. package/dist/consolidate/physics-pass.js +10 -7
  311. package/dist/consolidate/replay.d.ts +11 -4
  312. package/dist/consolidate/replay.js +19 -7
  313. package/dist/consolidate/run.d.ts +13 -5
  314. package/dist/consolidate/run.js +4 -4
  315. package/dist/consolidate/sleep.d.ts +14 -6
  316. package/dist/consolidate/sleep.js +41 -38
  317. package/dist/consolidate/trace.d.ts +7 -2
  318. package/dist/consolidate/trace.js +7 -2
  319. package/dist/consolidate/traces.js +26 -29
  320. package/dist/core/ablation.d.ts +9 -3
  321. package/dist/core/ablation.js +14 -4
  322. package/dist/core/active-scope.d.ts +3 -1
  323. package/dist/core/active-scope.js +3 -1
  324. package/dist/core/agent-memory-tools.d.ts +2 -0
  325. package/dist/core/agent-memory-tools.js +2 -0
  326. package/dist/core/ambient.d.ts +4 -3
  327. package/dist/core/ambient.js +8 -6
  328. package/dist/core/api-errors.d.ts +9 -3
  329. package/dist/core/api-errors.js +9 -3
  330. package/dist/core/capture-contract.d.ts +4 -1
  331. package/dist/core/capture-contract.js +27 -8
  332. package/dist/core/compare.d.ts +24 -8
  333. package/dist/core/compare.js +24 -8
  334. package/dist/core/config.d.ts +18 -9
  335. package/dist/core/config.js +24 -14
  336. package/dist/core/cosine.d.ts +4 -1
  337. package/dist/core/cosine.js +4 -1
  338. package/dist/core/handoff.d.ts +7 -2
  339. package/dist/core/handoff.js +4 -1
  340. package/dist/core/markdown.js +21 -16
  341. package/dist/core/memory-audit.js +14 -3
  342. package/dist/core/memory-quality.d.ts +12 -3
  343. package/dist/core/memory-quality.js +57 -21
  344. package/dist/core/memory.d.ts +84 -27
  345. package/dist/core/memory.js +73 -29
  346. package/dist/core/merged-row.d.ts +8 -2
  347. package/dist/core/merged-row.js +10 -3
  348. package/dist/core/package-root.d.ts +3 -1
  349. package/dist/core/package-root.js +3 -1
  350. package/dist/core/particle-refresh.d.ts +8 -0
  351. package/dist/core/particle-refresh.js +22 -0
  352. package/dist/core/physics-config.d.ts +4 -1
  353. package/dist/core/physics-config.js +6 -2
  354. package/dist/core/physics.d.ts +37 -11
  355. package/dist/core/physics.js +55 -20
  356. package/dist/core/project-identity.d.ts +34 -17
  357. package/dist/core/project-identity.js +33 -17
  358. package/dist/core/project-remote.d.ts +8 -4
  359. package/dist/core/project-remote.js +31 -14
  360. package/dist/core/recall-scope.d.ts +33 -11
  361. package/dist/core/recall-scope.js +42 -15
  362. package/dist/core/rejection-digest.d.ts +7 -0
  363. package/dist/core/rejection-digest.js +13 -0
  364. package/dist/core/salience.d.ts +3 -1
  365. package/dist/core/salience.js +10 -4
  366. package/dist/core/search-types.d.ts +15 -2
  367. package/dist/core/search-types.js +11 -0
  368. package/dist/dashboard/dashboard-actions.js +13 -2
  369. package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
  370. package/dist/dashboard/dashboard-snapshot.js +4 -4
  371. package/dist/dashboard/dashboard.js +6 -3
  372. package/dist/db/backup.js +2 -2
  373. package/dist/db/busy.d.ts +10 -3
  374. package/dist/db/busy.js +27 -5
  375. package/dist/db/connect.d.ts +10 -3
  376. package/dist/db/connect.js +8 -3
  377. package/dist/db/continuity.d.ts +1 -1
  378. package/dist/db/continuity.js +27 -11
  379. package/dist/db/meta.d.ts +4 -1
  380. package/dist/db/meta.js +4 -1
  381. package/dist/db/migrate.d.ts +10 -5
  382. package/dist/db/migrate.js +26 -13
  383. package/dist/db/migrations/index.d.ts +1 -1
  384. package/dist/db/migrations/index.js +3 -1
  385. package/dist/db/migrations/types.d.ts +2 -1
  386. package/dist/db/migrations/v12.js +2 -1
  387. package/dist/db/migrations/v14.js +2 -1
  388. package/dist/db/migrations/v15.js +4 -2
  389. package/dist/db/migrations/v16.js +6 -3
  390. package/dist/db/migrations/v17.js +2 -1
  391. package/dist/db/migrations/v19.js +4 -2
  392. package/dist/db/migrations/v20.js +2 -1
  393. package/dist/db/migrations/v22.js +12 -6
  394. package/dist/db/migrations/v23.js +6 -3
  395. package/dist/db/migrations/v24.js +6 -3
  396. package/dist/db/migrations/v25.js +4 -2
  397. package/dist/db/migrations/v26.js +4 -2
  398. package/dist/db/migrations/v27.js +6 -3
  399. package/dist/db/migrations/v28.js +4 -2
  400. package/dist/db/migrations/v29.js +4 -2
  401. package/dist/db/migrations/v30.js +6 -3
  402. package/dist/db/migrations/v31.js +4 -2
  403. package/dist/db/migrations/v32.js +6 -3
  404. package/dist/db/migrations/v33.js +4 -2
  405. package/dist/db/migrations/v34.js +2 -1
  406. package/dist/db/migrations/v35.js +2 -1
  407. package/dist/db/migrations/v36.js +2 -1
  408. package/dist/db/migrations/v37.js +10 -5
  409. package/dist/db/migrations/v38.js +10 -5
  410. package/dist/db/migrations/v39.js +14 -6
  411. package/dist/db/migrations/v40.js +4 -2
  412. package/dist/db/migrations/v41.js +4 -2
  413. package/dist/db/migrations/v42.js +2 -1
  414. package/dist/db/migrations/v44.js +4 -2
  415. package/dist/db/migrations/v45.js +4 -2
  416. package/dist/db/migrations/v49.js +2 -1
  417. package/dist/db/migrations/v50.js +4 -2
  418. package/dist/db/migrations/v51.js +4 -2
  419. package/dist/db/migrations/v52.js +2 -1
  420. package/dist/db/migrations/v53.js +8 -4
  421. package/dist/db/migrations/v54.js +2 -1
  422. package/dist/db/migrations/v55.js +4 -2
  423. package/dist/db/migrations/v56.d.ts +3 -0
  424. package/dist/db/migrations/v56.js +28 -0
  425. package/dist/db/open.d.ts +24 -12
  426. package/dist/db/open.js +25 -13
  427. package/dist/db/physics-state.d.ts +8 -4
  428. package/dist/db/physics-state.js +13 -20
  429. package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
  430. package/dist/db/raw-archive-mirror-cleanup.js +6 -4
  431. package/dist/db/request-stores.d.ts +19 -5
  432. package/dist/db/request-stores.js +14 -5
  433. package/dist/db/tables.d.ts +2 -1
  434. package/dist/db/tables.js +12 -4
  435. package/dist/db/vector-store.d.ts +13 -4
  436. package/dist/db/vector-store.js +34 -14
  437. package/dist/db/wal-checkpointer.d.ts +2 -1
  438. package/dist/db/wal-checkpointer.js +19 -7
  439. package/dist/doctor.d.ts +4 -1
  440. package/dist/doctor.js +121 -39
  441. package/dist/embeddings/local.d.ts +8 -4
  442. package/dist/embeddings/local.js +9 -5
  443. package/dist/embeddings/provider.d.ts +19 -10
  444. package/dist/embeddings/provider.js +31 -17
  445. package/dist/embeddings/transformers.d.ts +16 -4
  446. package/dist/embeddings/transformers.js +32 -15
  447. package/dist/entry/json-hooks.d.ts +1 -1
  448. package/dist/entry/json-hooks.js +1 -1
  449. package/dist/entry/project-identity.js +2 -1
  450. package/dist/entry/session-text.d.ts +1 -1
  451. package/dist/entry/session-text.js +1 -1
  452. package/dist/entry/sqlite-handles.d.ts +10 -0
  453. package/dist/entry/sqlite-handles.js +9 -0
  454. package/dist/entry/store-kit.d.ts +19 -6
  455. package/dist/entry/store-kit.js +6 -4
  456. package/dist/eval/eval-stats.d.ts +27 -8
  457. package/dist/eval/eval-stats.js +17 -5
  458. package/dist/eval/eval-suite.d.ts +3 -1
  459. package/dist/eval/eval-suite.js +409 -187
  460. package/dist/eval/eval.d.ts +8 -2
  461. package/dist/eval/eval.js +8 -2
  462. package/dist/eval/judgment.js +16 -6
  463. package/dist/graph/delta.d.ts +9 -42
  464. package/dist/graph/delta.js +17 -11
  465. package/dist/graph/extract.d.ts +10 -7
  466. package/dist/graph/extract.js +57 -25
  467. package/dist/graph/recall.d.ts +12 -4
  468. package/dist/graph/recall.js +30 -13
  469. package/dist/graph/stream.d.ts +18 -6
  470. package/dist/graph/stream.js +32 -10
  471. package/dist/graph/view.d.ts +19 -6
  472. package/dist/graph/view.js +42 -17
  473. package/dist/hooks/codex-session.js +2 -2
  474. package/dist/hooks/codex-wrapper.d.ts +3 -1
  475. package/dist/hooks/codex-wrapper.js +9 -4
  476. package/dist/hooks/copilot.d.ts +19 -5
  477. package/dist/hooks/copilot.js +54 -15
  478. package/dist/hooks/hook-blocks.d.ts +4 -1
  479. package/dist/hooks/hook-blocks.js +8 -3
  480. package/dist/hooks/json-hooks.d.ts +9 -5
  481. package/dist/hooks/json-hooks.js +69 -34
  482. package/dist/hooks/opencode.js +15 -5
  483. package/dist/hooks/shared.d.ts +27 -8
  484. package/dist/hooks/shared.js +57 -16
  485. package/dist/importers/core.d.ts +12 -4
  486. package/dist/importers/core.js +8 -7
  487. package/dist/importers/markdown-parse.d.ts +15 -5
  488. package/dist/importers/markdown-parse.js +16 -7
  489. package/dist/importers/markdown.js +6 -9
  490. package/dist/importers/sources.js +10 -23
  491. package/dist/importers/vault.d.ts +2 -2
  492. package/dist/importers/vault.js +43 -27
  493. package/dist/index.d.ts +32 -6
  494. package/dist/index.js +25 -7
  495. package/dist/learn/autolearn.d.ts +17 -6
  496. package/dist/learn/autolearn.js +53 -24
  497. package/dist/learn/churn-git.d.ts +4 -1
  498. package/dist/learn/churn-git.js +29 -5
  499. package/dist/learn/extract.d.ts +4 -1
  500. package/dist/learn/extract.js +16 -9
  501. package/dist/learn/forward-claim-detector.d.ts +17 -5
  502. package/dist/learn/forward-claim-detector.js +34 -15
  503. package/dist/learn/invalidation.d.ts +12 -7
  504. package/dist/learn/invalidation.js +56 -27
  505. package/dist/learn/roots.d.ts +3 -0
  506. package/dist/learn/roots.js +5 -0
  507. package/dist/mcp/admin-tools.d.ts +5 -5
  508. package/dist/mcp/admin-tools.js +28 -23
  509. package/dist/mcp/format.d.ts +1 -1
  510. package/dist/mcp/format.js +4 -2
  511. package/dist/mcp/framing.d.ts +3 -1
  512. package/dist/mcp/framing.js +20 -8
  513. package/dist/mcp/memory-tools.d.ts +3 -3
  514. package/dist/mcp/memory-tools.js +18 -14
  515. package/dist/mcp/protocol.d.ts +32 -16
  516. package/dist/mcp/protocol.js +12 -9
  517. package/dist/mcp/recall-tools.d.ts +3 -3
  518. package/dist/mcp/recall-tools.js +62 -74
  519. package/dist/mcp/request.d.ts +7 -5
  520. package/dist/mcp/request.js +57 -74
  521. package/dist/mcp/server.d.ts +3 -1
  522. package/dist/mcp/server.js +8 -3
  523. package/dist/mcp/session-state.d.ts +1 -1
  524. package/dist/mcp/session-state.js +4 -3
  525. package/dist/mcp/shared-gate.d.ts +3 -2
  526. package/dist/mcp/shared-gate.js +3 -2
  527. package/dist/mcp/stdio.d.ts +6 -3
  528. package/dist/mcp/stdio.js +52 -21
  529. package/dist/mcp/tool-args.d.ts +4 -1
  530. package/dist/mcp/tool-args.js +8 -3
  531. package/dist/mcp/tools.js +76 -32
  532. package/dist/objects/customer-notes.d.ts +12 -10
  533. package/dist/objects/customer-notes.js +21 -15
  534. package/dist/objects/decisions.d.ts +18 -10
  535. package/dist/objects/decisions.js +23 -17
  536. package/dist/objects/descriptor.js +2 -1
  537. package/dist/objects/fields.d.ts +4 -1
  538. package/dist/objects/fields.js +6 -2
  539. package/dist/objects/incidents.d.ts +14 -16
  540. package/dist/objects/incidents.js +29 -30
  541. package/dist/objects/lifecycle.d.ts +0 -4
  542. package/dist/objects/lifecycle.js +21 -24
  543. package/dist/objects/policies.d.ts +12 -16
  544. package/dist/objects/policies.js +17 -21
  545. package/dist/objects/processes.d.ts +16 -10
  546. package/dist/objects/processes.js +20 -15
  547. package/dist/objects/project-briefs.d.ts +13 -14
  548. package/dist/objects/project-briefs.js +33 -39
  549. package/dist/objects/skills.d.ts +10 -12
  550. package/dist/objects/skills.js +17 -22
  551. package/dist/postinstall.js +15 -7
  552. package/dist/predictions/planning-fallacy.d.ts +19 -6
  553. package/dist/predictions/planning-fallacy.js +4 -2
  554. package/dist/rerankers/clef.d.ts +8 -2
  555. package/dist/rerankers/clef.js +14 -9
  556. package/dist/rerankers/cross-encoder.d.ts +2 -1
  557. package/dist/rerankers/cross-encoder.js +9 -6
  558. package/dist/rerankers/index.js +2 -1
  559. package/dist/rerankers/jev.js +2 -1
  560. package/dist/rerankers/llm.d.ts +6 -2
  561. package/dist/rerankers/llm.js +8 -3
  562. package/dist/rerankers/remote.d.ts +3 -1
  563. package/dist/rerankers/remote.js +5 -2
  564. package/dist/rerankers/types.d.ts +6 -2
  565. package/dist/search/bm25-search.d.ts +3 -1
  566. package/dist/search/bm25-search.js +15 -2
  567. package/dist/search/boosts.js +4 -3
  568. package/dist/search/embed-memories.d.ts +10 -5
  569. package/dist/search/embed-memories.js +62 -36
  570. package/dist/search/engine.d.ts +4 -1
  571. package/dist/search/engine.js +6 -2
  572. package/dist/search/goal-boost.d.ts +10 -3
  573. package/dist/search/goal-boost.js +13 -6
  574. package/dist/search/hybrid-score.d.ts +4 -1
  575. package/dist/search/hybrid-score.js +4 -1
  576. package/dist/search/hybrid.d.ts +23 -8
  577. package/dist/search/hybrid.js +12 -7
  578. package/dist/search/multihop.js +14 -13
  579. package/dist/search/path-context.d.ts +10 -3
  580. package/dist/search/path-context.js +10 -3
  581. package/dist/search/physics-search.d.ts +9 -4
  582. package/dist/search/physics-search.js +38 -14
  583. package/dist/search/rerank.d.ts +2 -1
  584. package/dist/search/rerank.js +2 -1
  585. package/dist/search/rrf.d.ts +14 -5
  586. package/dist/search/rrf.js +11 -4
  587. package/dist/search/vector.d.ts +8 -2
  588. package/dist/search/vector.js +9 -3
  589. package/dist/server/auth.d.ts +18 -14
  590. package/dist/server/auth.js +69 -38
  591. package/dist/server/boot.d.ts +3 -1
  592. package/dist/server/boot.js +95 -56
  593. package/dist/server/client-ip.d.ts +11 -4
  594. package/dist/server/client-ip.js +27 -10
  595. package/dist/server/cursor.d.ts +10 -3
  596. package/dist/server/cursor.js +10 -3
  597. package/dist/server/deadline.d.ts +5 -2
  598. package/dist/server/deadline.js +10 -3
  599. package/dist/server/key-check-bounds.js +12 -4
  600. package/dist/server/lifecycle.d.ts +4 -1
  601. package/dist/server/lifecycle.js +10 -4
  602. package/dist/server/mcp-http.d.ts +2 -1
  603. package/dist/server/mcp-http.js +37 -22
  604. package/dist/server/rate-limit.d.ts +17 -5
  605. package/dist/server/rate-limit.js +55 -26
  606. package/dist/server/ready.js +7 -4
  607. package/dist/server/request.d.ts +15 -4
  608. package/dist/server/request.js +42 -15
  609. package/dist/server/route-checks.d.ts +4 -1
  610. package/dist/server/route-checks.js +8 -3
  611. package/dist/server/route-table.d.ts +8 -6
  612. package/dist/server/route-table.js +547 -93
  613. package/dist/server/routes/admin.d.ts +7 -7
  614. package/dist/server/routes/admin.js +36 -15
  615. package/dist/server/routes/customer-notes.d.ts +5 -5
  616. package/dist/server/routes/customer-notes.js +5 -4
  617. package/dist/server/routes/decisions.d.ts +5 -5
  618. package/dist/server/routes/decisions.js +12 -6
  619. package/dist/server/routes/incidents.d.ts +5 -5
  620. package/dist/server/routes/incidents.js +10 -4
  621. package/dist/server/routes/memories.d.ts +8 -8
  622. package/dist/server/routes/memories.js +12 -19
  623. package/dist/server/routes/object-routes.d.ts +8 -5
  624. package/dist/server/routes/object-routes.js +4 -2
  625. package/dist/server/routes/policies.d.ts +6 -6
  626. package/dist/server/routes/policies.js +11 -4
  627. package/dist/server/routes/predictions.d.ts +5 -5
  628. package/dist/server/routes/predictions.js +9 -4
  629. package/dist/server/routes/processes.d.ts +5 -5
  630. package/dist/server/routes/processes.js +15 -6
  631. package/dist/server/routes/project-briefs.d.ts +6 -6
  632. package/dist/server/routes/project-briefs.js +3 -2
  633. package/dist/server/routes/recall.d.ts +3 -3
  634. package/dist/server/routes/recall.js +21 -10
  635. package/dist/server/routes/skills.d.ts +6 -6
  636. package/dist/server/routes/skills.js +12 -4
  637. package/dist/server/server-detect.d.ts +24 -8
  638. package/dist/server/server-detect.js +57 -22
  639. package/dist/server/sleep-child.js +16 -10
  640. package/dist/server/sleep-offload.d.ts +8 -5
  641. package/dist/server/sleep-offload.js +41 -19
  642. package/dist/server/tls.d.ts +4 -1
  643. package/dist/server/tls.js +13 -5
  644. package/dist/server/types.d.ts +38 -26
  645. package/dist/server/validation.d.ts +4 -1
  646. package/dist/server/validation.js +22 -9
  647. package/dist/server.d.ts +15 -10
  648. package/dist/server.js +32 -12
  649. package/dist/sharing/global-store.d.ts +5 -10
  650. package/dist/sharing/global-store.js +8 -43
  651. package/dist/sharing/global-sync.d.ts +3 -1
  652. package/dist/sharing/global-sync.js +16 -6
  653. package/dist/sharing/project-merge.d.ts +25 -7
  654. package/dist/sharing/project-merge.js +49 -17
  655. package/dist/sharing/search-both.d.ts +8 -4
  656. package/dist/sharing/search-both.js +19 -12
  657. package/dist/sharing/share.d.ts +8 -4
  658. package/dist/sharing/share.js +39 -15
  659. package/dist/store/ambient.js +9 -5
  660. package/dist/store/audit-event.d.ts +2 -2
  661. package/dist/store/audit-event.js +8 -3
  662. package/dist/store/audit.d.ts +6 -3
  663. package/dist/store/audit.js +16 -6
  664. package/dist/store/auth.d.ts +4 -2
  665. package/dist/store/auth.js +63 -20
  666. package/dist/store/busy.d.ts +9 -0
  667. package/dist/store/busy.js +16 -0
  668. package/dist/store/candidates.d.ts +12 -5
  669. package/dist/store/candidates.js +75 -36
  670. package/dist/store/capture-write.d.ts +2 -1
  671. package/dist/store/capture-write.js +2 -1
  672. package/dist/store/card-detail.d.ts +4 -4
  673. package/dist/store/card-detail.js +15 -8
  674. package/dist/store/cards.d.ts +24 -10
  675. package/dist/store/cards.js +93 -60
  676. package/dist/store/compaction-caller.d.ts +2 -1
  677. package/dist/store/compaction-caller.js +2 -1
  678. package/dist/store/compactions-record.d.ts +14 -8
  679. package/dist/store/compactions-record.js +95 -32
  680. package/dist/store/compactions.js +35 -15
  681. package/dist/store/conflicts.d.ts +9 -4
  682. package/dist/store/conflicts.js +100 -45
  683. package/dist/store/connectors/dlq.d.ts +17 -5
  684. package/dist/store/connectors/dlq.js +56 -5
  685. package/dist/store/connectors/event-log.d.ts +111 -2
  686. package/dist/store/connectors/event-log.js +2 -1
  687. package/dist/store/connectors/github.d.ts +6 -3
  688. package/dist/store/connectors/github.js +24 -40
  689. package/dist/store/connectors/slack.d.ts +2 -1
  690. package/dist/store/connectors/slack.js +25 -37
  691. package/dist/store/dashboard-reads.d.ts +7 -3
  692. package/dist/store/dashboard-reads.js +32 -11
  693. package/dist/store/delete-and-batch.d.ts +17 -11
  694. package/dist/store/delete-and-batch.js +67 -26
  695. package/dist/store/delivery-recorder.d.ts +8 -5
  696. package/dist/store/delivery-recorder.js +70 -32
  697. package/dist/store/descendant-page.d.ts +2 -1
  698. package/dist/store/descendant-page.js +24 -9
  699. package/dist/store/diagnostics.d.ts +2 -1
  700. package/dist/store/diagnostics.js +2 -1
  701. package/dist/store/doctor-reads.d.ts +2 -1
  702. package/dist/store/doctor-reads.js +13 -5
  703. package/dist/store/dormant.d.ts +19 -11
  704. package/dist/store/dormant.js +40 -18
  705. package/dist/store/embeddings/index.d.ts +13 -9
  706. package/dist/store/embeddings/index.js +19 -12
  707. package/dist/store/entry-reads.d.ts +49 -20
  708. package/dist/store/entry-reads.js +181 -66
  709. package/dist/store/entry-row.d.ts +10 -6
  710. package/dist/store/entry-row.js +17 -12
  711. package/dist/store/entry-writes.d.ts +22 -10
  712. package/dist/store/entry-writes.js +41 -14
  713. package/dist/store/failure-log-at.js +1 -1
  714. package/dist/store/failure-log.d.ts +4 -2
  715. package/dist/store/failure-log.js +13 -6
  716. package/dist/store/gated-write.d.ts +3 -3
  717. package/dist/store/gated-write.js +3 -3
  718. package/dist/store/goals.d.ts +5 -4
  719. package/dist/store/goals.js +8 -10
  720. package/dist/store/graph-apply.d.ts +21 -0
  721. package/dist/{graph/write.js → store/graph-apply.js} +31 -11
  722. package/dist/store/graph-queue.d.ts +9 -6
  723. package/dist/store/graph-queue.js +15 -10
  724. package/dist/store/graph-reads.d.ts +16 -11
  725. package/dist/store/graph-reads.js +24 -15
  726. package/dist/store/graph-rows.d.ts +41 -3
  727. package/dist/store/graph-rows.js +10 -7
  728. package/dist/store/graph-view-rows.js +14 -7
  729. package/dist/store/graph-writes.d.ts +16 -10
  730. package/dist/store/graph-writes.js +59 -36
  731. package/dist/store/handoffs.d.ts +4 -4
  732. package/dist/store/handoffs.js +40 -19
  733. package/dist/store/index-and-stats.d.ts +2 -2
  734. package/dist/store/index-and-stats.js +6 -5
  735. package/dist/store/index.d.ts +3 -1
  736. package/dist/store/index.js +1 -0
  737. package/dist/store/key-audit.d.ts +2 -1
  738. package/dist/store/key-audit.js +2 -1
  739. package/dist/store/key-writes.d.ts +2 -1
  740. package/dist/store/key-writes.js +9 -2
  741. package/dist/store/ledger-turn.d.ts +4 -1
  742. package/dist/store/ledger-turn.js +7 -2
  743. package/dist/store/mirrors.d.ts +11 -4
  744. package/dist/store/mirrors.js +88 -16
  745. package/dist/store/narrow.d.ts +6 -0
  746. package/dist/store/narrow.js +11 -0
  747. package/dist/store/open.d.ts +4 -2
  748. package/dist/store/open.js +18 -9
  749. package/dist/store/pilot-arm.d.ts +2 -1
  750. package/dist/store/pilot-arm.js +18 -6
  751. package/dist/store/planning-fallacy-evidence.d.ts +2 -2
  752. package/dist/store/planning-fallacy-evidence.js +8 -5
  753. package/dist/store/port/agent-import.d.ts +62 -0
  754. package/dist/store/port/agent-import.js +2 -0
  755. package/dist/store/port/consolidation.d.ts +129 -0
  756. package/dist/store/port/consolidation.js +2 -0
  757. package/dist/store/port/learning.d.ts +19 -0
  758. package/dist/store/port/learning.js +2 -0
  759. package/dist/store/port/local-files.d.ts +18 -0
  760. package/dist/store/port/local-files.js +2 -0
  761. package/dist/store/port/promotion.d.ts +20 -0
  762. package/dist/store/port/promotion.js +3 -0
  763. package/dist/store/port-groups.d.ts +160 -0
  764. package/dist/store/port-groups.js +2 -0
  765. package/dist/store/port.d.ts +215 -229
  766. package/dist/store/port.js +3 -9
  767. package/dist/store/predictions.d.ts +14 -10
  768. package/dist/store/predictions.js +37 -17
  769. package/dist/store/project-tags.d.ts +4 -1
  770. package/dist/store/project-tags.js +16 -5
  771. package/dist/store/quality-repair.d.ts +8 -4
  772. package/dist/store/quality-repair.js +53 -20
  773. package/dist/store/quarantine.d.ts +1 -0
  774. package/dist/store/quarantine.js +23 -9
  775. package/dist/store/raw-archive.d.ts +5 -4
  776. package/dist/store/raw-archive.js +11 -10
  777. package/dist/store/recall-trace.d.ts +22 -17
  778. package/dist/store/recall-trace.js +126 -63
  779. package/dist/store/rejected-values.d.ts +15 -10
  780. package/dist/store/rejected-values.js +33 -12
  781. package/dist/store/rejection.d.ts +12 -11
  782. package/dist/store/rejection.js +18 -19
  783. package/dist/store/report-reads.d.ts +2 -1
  784. package/dist/store/report-reads.js +2 -1
  785. package/dist/store/rows.d.ts +7 -5
  786. package/dist/store/rows.js +18 -11
  787. package/dist/store/rule-sql.d.ts +6 -4
  788. package/dist/store/rule-sql.js +16 -9
  789. package/dist/store/search-rows.d.ts +14 -9
  790. package/dist/store/search-rows.js +48 -23
  791. package/dist/store/sessions.d.ts +12 -10
  792. package/dist/store/sessions.js +40 -21
  793. package/dist/store/set-aside.d.ts +2 -2
  794. package/dist/store/set-aside.js +18 -5
  795. package/dist/store/sqlite/agent-import.d.ts +3 -0
  796. package/dist/store/sqlite/agent-import.js +77 -0
  797. package/dist/store/sqlite/cards-group.d.ts +6 -0
  798. package/dist/store/sqlite/cards-group.js +37 -0
  799. package/dist/store/sqlite/conflicts-group.d.ts +6 -0
  800. package/dist/store/sqlite/conflicts-group.js +18 -0
  801. package/dist/store/sqlite/connector-events-group.d.ts +2 -1
  802. package/dist/store/sqlite/connector-events-group.js +17 -6
  803. package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
  804. package/dist/store/sqlite/connector-writes-group.js +9 -4
  805. package/dist/store/sqlite/consolidation-group.d.ts +4 -0
  806. package/dist/store/sqlite/consolidation-group.js +64 -0
  807. package/dist/store/sqlite/dag-reads-group.js +1 -1
  808. package/dist/store/sqlite/dormant-group.d.ts +6 -0
  809. package/dist/store/sqlite/dormant-group.js +29 -0
  810. package/dist/store/sqlite/entry-writes-group.d.ts +6 -3
  811. package/dist/store/sqlite/entry-writes-group.js +37 -14
  812. package/dist/store/sqlite/error-codec.d.ts +4 -2
  813. package/dist/store/sqlite/error-codec.js +32 -10
  814. package/dist/store/sqlite/executor-counts.js +2 -1
  815. package/dist/store/sqlite/executor.d.ts +8 -3
  816. package/dist/store/sqlite/executor.js +56 -18
  817. package/dist/store/sqlite/global-promote.d.ts +5 -0
  818. package/dist/store/sqlite/global-promote.js +48 -0
  819. package/dist/store/sqlite/goals-group.d.ts +6 -0
  820. package/dist/store/sqlite/goals-group.js +23 -0
  821. package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
  822. package/dist/store/sqlite/graph-reads-group.js +2 -1
  823. package/dist/store/sqlite/held-connection.d.ts +7 -1
  824. package/dist/store/sqlite/held-connection.js +34 -7
  825. package/dist/store/sqlite/last-recall-group.d.ts +4 -2
  826. package/dist/store/sqlite/last-recall-group.js +9 -4
  827. package/dist/store/sqlite/learning-group.d.ts +4 -0
  828. package/dist/store/sqlite/learning-group.js +17 -0
  829. package/dist/store/sqlite/maintenance-groups.js +2 -1
  830. package/dist/store/sqlite/object-rows.d.ts +6 -3
  831. package/dist/store/sqlite/object-rows.js +34 -5
  832. package/dist/store/sqlite/objects-group.d.ts +5 -4
  833. package/dist/store/sqlite/objects-group.js +84 -33
  834. package/dist/store/sqlite/predictions-group.d.ts +2 -1
  835. package/dist/store/sqlite/predictions-group.js +4 -2
  836. package/dist/store/sqlite/promotion-group.d.ts +3 -0
  837. package/dist/store/sqlite/promotion-group.js +10 -0
  838. package/dist/store/sqlite/quarantine-group.d.ts +2 -1
  839. package/dist/store/sqlite/quarantine-group.js +4 -2
  840. package/dist/store/sqlite/reports-group.d.ts +6 -0
  841. package/dist/store/sqlite/reports-group.js +33 -0
  842. package/dist/store/sqlite/request-scope.d.ts +6 -0
  843. package/dist/store/sqlite/request-scope.js +18 -0
  844. package/dist/store/sqlite/sessions-group.d.ts +6 -0
  845. package/dist/store/sqlite/sessions-group.js +46 -0
  846. package/dist/store/sqlite/store.d.ts +22 -11
  847. package/dist/store/sqlite/store.js +84 -11
  848. package/dist/store/sqlite/vector-pack.js +2 -1
  849. package/dist/store/sqlite/vector-reads-group.js +2 -1
  850. package/dist/store/sqlite/worker-jobs.d.ts +2 -1
  851. package/dist/store/sqlite/worker-jobs.js +19 -7
  852. package/dist/store/sqlite/worker-ops.d.ts +10 -5
  853. package/dist/store/sqlite/worker-ops.js +6 -3
  854. package/dist/store/sqlite/worker-store.d.ts +4 -3
  855. package/dist/store/sqlite/worker-store.js +24 -14
  856. package/dist/store/summaries.d.ts +19 -12
  857. package/dist/store/summaries.js +36 -21
  858. package/dist/store/summary-dirty.d.ts +2 -1
  859. package/dist/store/summary-dirty.js +2 -1
  860. package/dist/store/tenant.d.ts +3 -2
  861. package/dist/store/tenant.js +5 -4
  862. package/dist/store/token-ledger-rows.js +6 -3
  863. package/dist/store/token-ledger.d.ts +19 -13
  864. package/dist/store/token-ledger.js +27 -14
  865. package/dist/store/tombstone-checks.d.ts +4 -1
  866. package/dist/store/tombstone-checks.js +10 -1
  867. package/dist/store/usage-reports.js +2 -1
  868. package/dist/store/vector-index.d.ts +8 -5
  869. package/dist/store/vector-index.js +24 -10
  870. package/dist/store/working-memory.d.ts +6 -4
  871. package/dist/store/working-memory.js +14 -9
  872. package/dist/support-bundle.js +10 -5
  873. package/dist/trust/quarantine.d.ts +1 -2
  874. package/dist/trust/quarantine.js +1 -5
  875. package/dist/trust/reject-flow.d.ts +12 -3
  876. package/dist/trust/reject-flow.js +12 -4
  877. package/dist/util/anthropic-messages.d.ts +4 -1
  878. package/dist/util/anthropic-messages.js +14 -5
  879. package/dist/util/atomic-write.d.ts +4 -2
  880. package/dist/util/atomic-write.js +25 -14
  881. package/dist/util/compaction-items.d.ts +4 -1
  882. package/dist/util/compaction-items.js +8 -2
  883. package/dist/util/crash-handlers.d.ts +7 -2
  884. package/dist/util/crash-handlers.js +13 -4
  885. package/dist/util/env.d.ts +16 -4
  886. package/dist/util/env.js +78 -25
  887. package/dist/util/home-path.js +12 -6
  888. package/dist/util/hook-payload.d.ts +3 -1
  889. package/dist/util/hook-payload.js +3 -1
  890. package/dist/util/http-retry.d.ts +12 -6
  891. package/dist/util/http-retry.js +16 -6
  892. package/dist/util/http-util.d.ts +20 -5
  893. package/dist/util/http-util.js +28 -9
  894. package/dist/util/json.d.ts +4 -1
  895. package/dist/util/json.js +4 -1
  896. package/dist/util/keyset.js +2 -1
  897. package/dist/util/limits.js +4 -2
  898. package/dist/util/log.d.ts +13 -5
  899. package/dist/util/log.js +29 -6
  900. package/dist/util/net.d.ts +5 -0
  901. package/dist/util/net.js +19 -0
  902. package/dist/util/real-path.d.ts +2 -1
  903. package/dist/util/real-path.js +4 -3
  904. package/dist/util/request-scope.d.ts +11 -3
  905. package/dist/util/request-scope.js +13 -4
  906. package/dist/util/same-text.d.ts +10 -3
  907. package/dist/util/same-text.js +10 -3
  908. package/dist/util/secret-detect.d.ts +24 -7
  909. package/dist/util/secret-detect.js +49 -14
  910. package/dist/util/spawn-argv.d.ts +3 -1
  911. package/dist/util/spawn-argv.js +13 -4
  912. package/dist/util/sqlite-blocked.d.ts +15 -4
  913. package/dist/util/sqlite-blocked.js +19 -6
  914. package/dist/util/stored-json.d.ts +4 -1
  915. package/dist/util/stored-json.js +6 -2
  916. package/dist/util/stream-tee.d.ts +2 -1
  917. package/dist/util/stream-tee.js +8 -5
  918. package/dist/util/transcript-tail.d.ts +4 -1
  919. package/dist/util/transcript-tail.js +4 -1
  920. package/dist/util/version.d.ts +8 -3
  921. package/dist/util/version.js +8 -3
  922. package/dist/util/write-budget.d.ts +7 -2
  923. package/dist/util/write-budget.js +5 -2
  924. package/dist/util/yaml.d.ts +4 -1
  925. package/dist/util/yaml.js +4 -1
  926. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  927. package/extensions/openclaw-plugin/package.json +1 -1
  928. package/openclaw.plugin.json +1 -1
  929. package/package.json +2 -1
  930. package/scripts/postinstall.cjs +3 -1
  931. package/dist/api/cards.d.ts +0 -42
  932. package/dist/api/conflicts.d.ts +0 -28
  933. package/dist/api/conflicts.js +0 -61
  934. package/dist/api/dormant.d.ts +0 -14
  935. package/dist/api/dormant.js +0 -58
  936. package/dist/api/goals.d.ts +0 -18
  937. package/dist/api/graph.d.ts +0 -8
  938. package/dist/api/graph.js +0 -8
  939. package/dist/api/learn.js +0 -125
  940. package/dist/api/memories.d.ts +0 -25
  941. package/dist/api/objects.d.ts +0 -9
  942. package/dist/api/outcome.d.ts +0 -19
  943. package/dist/api/predictions.d.ts +0 -11
  944. package/dist/api/promote.d.ts +0 -36
  945. package/dist/api/recall-core.d.ts +0 -4
  946. package/dist/api/recall-core.js +0 -125
  947. package/dist/api/recall-finish.d.ts +0 -53
  948. package/dist/api/recall-finish.js +0 -30
  949. package/dist/api/recall-history.d.ts +0 -64
  950. package/dist/api/recall-history.js +0 -159
  951. package/dist/api/recall-record.d.ts +0 -43
  952. package/dist/api/recall-record.js +0 -78
  953. package/dist/api/recall-request.js +0 -121
  954. package/dist/api/recall.d.ts +0 -6
  955. package/dist/api/refine.d.ts +0 -7
  956. package/dist/api/refine.js +0 -10
  957. package/dist/api/session-owners.d.ts +0 -4
  958. package/dist/api/session-owners.js +0 -17
  959. package/dist/api/sleep-run.d.ts +0 -26
  960. package/dist/api/sleep.js +0 -11
  961. package/dist/graph/write.d.ts +0 -14
  962. package/dist/store/sqlite/busy.d.ts +0 -3
  963. package/dist/store/sqlite/busy.js +0 -8
  964. package/dist/store/sqlite/local.d.ts +0 -4
  965. package/dist/store/sqlite/local.js +0 -8
@@ -1,6 +1,7 @@
1
1
  /** Project_brief object: the living, repo-scoped `summary` of a repository, evolving via supersession.
2
- * `refreshBrief` assembles recent `path:<repo>` receipts with a deterministic (no-LLM) assembler; an LLM pipeline is deferred.
3
- * The `project_briefs` table is the source of truth; the memory mirror (memory_id NULLABLE, ON DELETE SET NULL) is for recall. */
2
+ * `refreshedBrief` assembles recent `path:<repo>` receipts with a deterministic (no-LLM) assembler; an LLM
3
+ * pipeline is deferred. The `project_briefs` table is the source of truth; the memory mirror (memory_id NULLABLE,
4
+ * ON DELETE SET NULL) is for recall. */
4
5
  import type { KeysetPosition } from '../util/keyset.js';
5
6
  import type { SavableDescriptor } from './descriptor.js';
6
7
  import { type ObjectSaveSite } from './lifecycle.js';
@@ -27,7 +28,7 @@ export interface SaveProjectBriefOpts {
27
28
  supersedesBriefId?: number;
28
29
  /** Extra memory tags merged after ['project_brief']. */
29
30
  extraTags?: string[];
30
- /** Internal: set by refreshBrief to the receipt count so audit metadata marks the write as an auto-refresh
31
+ /** Internal: set by refreshedBrief to the receipt count so audit metadata marks the write as an auto-refresh
31
32
  * without a 4th audit op. Not part of the CLI/HTTP surface. */
32
33
  refreshReceiptCount?: number;
33
34
  }
@@ -40,16 +41,16 @@ export interface ListProjectBriefsOpts {
40
41
  after?: KeysetPosition;
41
42
  }
42
43
  export declare const PROJECT_BRIEF: SavableDescriptor<'project_brief', SaveProjectBriefOpts>;
43
- /** Create a project_brief, or a new version superseding an existing one, in the `objects` store group's one transaction. */
44
- export declare function saveProjectBrief(hippoRoot: string, tenantId: string, opts: SaveProjectBriefOpts, actor?: string): ProjectBrief;
44
+ /** Create a project_brief, or a new version superseding an
45
+ * existing one, in the `objects` store group's one transaction. */
46
+ export declare function saveProjectBrief(objects: Objects, hippoRoot: string, tenantId: string, opts: SaveProjectBriefOpts, actor?: string): Promise<ProjectBrief>;
45
47
  /** Close (retire) an active brief; a superseded row is terminal. */
46
- export declare function closeProjectBrief(hippoRoot: string, tenantId: string, id: number, actor?: string): ProjectBrief;
47
- export declare function loadProjectBriefById(hippoRoot: string, tenantId: string, id: number): ProjectBrief | null;
48
- export declare function loadProjectBriefs(hippoRoot: string, tenantId: string, opts?: ListProjectBriefsOpts): ProjectBrief[];
49
- /** Assemble the repo's recent receipts into a deterministic markdown digest and return it with the receipt count; never empty (summary is NOT NULL).
50
- * The brief's own mirror (source='project_brief') is excluded; the quotes in the JSON-array LIKE are load-bearing (`hip` must not match `path:hippo`). */
51
- export declare function assembleBriefFromReceipts(hippoRoot: string, tenantId: string, repo: string): BriefDigest;
52
- /** `assembleBriefFromReceipts` over a served store's group. */
48
+ export declare function closeProjectBrief(objects: Objects, tenantId: string, id: number, actor?: string): Promise<ProjectBrief>;
49
+ export declare function loadProjectBriefById(objects: Objects, tenantId: string, id: number): Promise<ProjectBrief | null>;
50
+ export declare function loadProjectBriefs(objects: Objects, tenantId: string, opts?: ListProjectBriefsOpts): Promise<ProjectBrief[]>;
51
+ /** Assemble the repo's recent receipts into a deterministic markdown digest and return it with the receipt count;
52
+ * never empty (summary is NOT NULL). The brief's own mirror (source='project_brief') is excluded; the quotes in
53
+ * the JSON-array LIKE are load-bearing (`hip` must not match `path:hippo`). */
53
54
  export declare function briefFromReceipts(objects: Objects, tenantId: string, repo: string): Promise<BriefDigest>;
54
55
  export interface BriefDigest {
55
56
  markdown: string;
@@ -57,7 +58,5 @@ export interface BriefDigest {
57
58
  }
58
59
  /** Saves a new version of the repo's brief from its receipts. The receipts are read before
59
60
  * the save's transaction, so a receipt written in between shows in the next refresh. */
60
- export declare function refreshBrief(hippoRoot: string, tenantId: string, repo: string, actor?: string): ProjectBrief;
61
- /** `refreshBrief` over a served store's group. */
62
61
  export declare function refreshedBrief(objects: Objects, site: ObjectSaveSite, repo: string): Promise<ProjectBrief>;
63
62
  //# sourceMappingURL=project-briefs.d.ts.map
@@ -1,12 +1,12 @@
1
1
  /** Project_brief object: the living, repo-scoped `summary` of a repository, evolving via supersession.
2
- * `refreshBrief` assembles recent `path:<repo>` receipts with a deterministic (no-LLM) assembler; an LLM pipeline is deferred.
3
- * The `project_briefs` table is the source of truth; the memory mirror (memory_id NULLABLE, ON DELETE SET NULL) is for recall. */
2
+ * `refreshedBrief` assembles recent `path:<repo>` receipts with a deterministic (no-LLM) assembler; an LLM
3
+ * pipeline is deferred. The `project_briefs` table is the source of truth; the memory mirror (memory_id NULLABLE,
4
+ * ON DELETE SET NULL) is for recall. */
4
5
  import { truncateWithEllipsis } from '../util/ellipsize.js';
5
6
  import { BadRequestError } from '../core/api-errors.js';
6
7
  import { assertTenantId } from '../store/tenant.js';
7
8
  import { checkText, requireLine } from './fields.js';
8
- import { closeObjectAt, listObjectsAt, objectByIdAt, saveObject, saveObjectAt } from './lifecycle.js';
9
- import { sqliteObjects } from '../store/sqlite/objects-group.js';
9
+ import { closeObject, listObjects, objectById, saveObject } from './lifecycle.js';
10
10
  export const VALID_BRIEF_STATES = new Set([
11
11
  'active',
12
12
  'superseded',
@@ -58,26 +58,25 @@ export const PROJECT_BRIEF = {
58
58
  function buildBriefContent(repo, summary) {
59
59
  return `${repo}\n\n${summary}`;
60
60
  }
61
- /** Create a project_brief, or a new version superseding an existing one, in the `objects` store group's one transaction. */
62
- export function saveProjectBrief(hippoRoot, tenantId, opts, actor = 'cli') {
63
- return saveObjectAt(PROJECT_BRIEF, { hippoRoot, tenantId, actor }, opts);
61
+ /** Create a project_brief, or a new version superseding an
62
+ * existing one, in the `objects` store group's one transaction. */
63
+ export function saveProjectBrief(objects, hippoRoot, tenantId, opts, actor = 'cli') {
64
+ return saveObject(objects, PROJECT_BRIEF, { hippoRoot, tenantId, actor }, opts);
64
65
  }
65
66
  /** Close (retire) an active brief; a superseded row is terminal. */
66
- export function closeProjectBrief(hippoRoot, tenantId, id, actor = 'cli') {
67
- return closeObjectAt(hippoRoot, PROJECT_BRIEF, tenantId, id, actor);
67
+ export function closeProjectBrief(objects, tenantId, id, actor = 'cli') {
68
+ return closeObject(objects, PROJECT_BRIEF, tenantId, id, actor);
68
69
  }
69
- export function loadProjectBriefById(hippoRoot, tenantId, id) {
70
- return objectByIdAt(hippoRoot, PROJECT_BRIEF, tenantId, id);
70
+ export function loadProjectBriefById(objects, tenantId, id) {
71
+ return objectById(objects, PROJECT_BRIEF, tenantId, id);
71
72
  }
72
- export function loadProjectBriefs(hippoRoot, tenantId, opts = {}) {
73
- return listObjectsAt(hippoRoot, PROJECT_BRIEF, tenantId, { status: opts.status, filter: opts.repo, limit: opts.limit, after: opts.after });
74
- }
75
- /** The repo's current active brief, or null. The DB allows several active rows per (tenant, repo); the most recent wins. */
76
- function loadActiveBriefForRepo(hippoRoot, tenantId, repo) {
77
- assertTenantId('loadActiveBriefForRepo', tenantId);
78
- if (repo === '')
79
- return null;
80
- return sqliteObjects(hippoRoot).listObjects(tenantId, 'project_brief', newestActive(repo))[0] ?? null;
73
+ export function loadProjectBriefs(objects, tenantId, opts = {}) {
74
+ return listObjects(objects, PROJECT_BRIEF, tenantId, {
75
+ status: opts.status,
76
+ filter: opts.repo,
77
+ limit: opts.limit,
78
+ after: opts.after,
79
+ });
81
80
  }
82
81
  /** An empty filter lists every repo, so the callers refuse an empty repo first. */
83
82
  function newestActive(repo) {
@@ -94,8 +93,9 @@ function receiptHeadline(content) {
94
93
  function receiptTag(normalizedRepo) {
95
94
  return `path:${normalizedRepo.toLowerCase()}`;
96
95
  }
97
- // `id DESC` is a lexical tiebreak on a random-ish id, so same-`created` order is stable but arbitrary; `created DESC` is the recency order.
98
- // Receipt lines go newest-first only while they fit MAX_BRIEF_SUMMARY_LEN (reserving slack for header and omission footer), else the store rejects the body.
96
+ // `id DESC` is a lexical tiebreak on a random-ish id, so same-`created` order is stable but arbitrary;
97
+ // `created DESC` is the recency order. Receipt lines go newest-first only while they fit MAX_BRIEF_SUMMARY_LEN
98
+ // (reserving slack for header and omission footer), else the store rejects the body.
99
99
  function fitReceiptLines(receipts) {
100
100
  const buildReceiptLine = (r) => `- ${(r.created ?? '').slice(0, 10)} [${r.source}] ${receiptHeadline(r.content)}`;
101
101
  const receiptLines = [];
@@ -142,16 +142,13 @@ function renderBriefDigest(normalizedRepo, receiptCount, receiptLines) {
142
142
  }
143
143
  return markdown;
144
144
  }
145
- /** Assemble the repo's recent receipts into a deterministic markdown digest and return it with the receipt count; never empty (summary is NOT NULL).
146
- * The brief's own mirror (source='project_brief') is excluded; the quotes in the JSON-array LIKE are load-bearing (`hip` must not match `path:hippo`). */
147
- export function assembleBriefFromReceipts(hippoRoot, tenantId, repo) {
148
- const normalizedRepo = requiredRepo('assembleBriefFromReceipts', tenantId, repo);
149
- return briefDigest(normalizedRepo, sqliteObjects(hippoRoot).briefReceipts(tenantId, receiptTag(normalizedRepo), MAX_BRIEF_RECEIPTS));
150
- }
151
- /** `assembleBriefFromReceipts` over a served store's group. */
145
+ /** Assemble the repo's recent receipts into a deterministic markdown digest and return it with the receipt count;
146
+ * never empty (summary is NOT NULL). The brief's own mirror (source='project_brief') is excluded; the quotes in
147
+ * the JSON-array LIKE are load-bearing (`hip` must not match `path:hippo`). */
152
148
  export async function briefFromReceipts(objects, tenantId, repo) {
153
149
  const normalizedRepo = requiredRepo('assembleBriefFromReceipts', tenantId, repo);
154
- return briefDigest(normalizedRepo, await objects.briefReceipts(tenantId, receiptTag(normalizedRepo), MAX_BRIEF_RECEIPTS));
150
+ const receipts = await objects.briefReceipts(tenantId, receiptTag(normalizedRepo), MAX_BRIEF_RECEIPTS);
151
+ return briefDigest(normalizedRepo, receipts);
155
152
  }
156
153
  function requiredRepo(fn, tenantId, repo) {
157
154
  assertTenantId(fn, tenantId);
@@ -161,7 +158,10 @@ function requiredRepo(fn, tenantId, repo) {
161
158
  return normalizedRepo;
162
159
  }
163
160
  function briefDigest(normalizedRepo, receipts) {
164
- return { markdown: renderBriefDigest(normalizedRepo, receipts.length, fitReceiptLines(receipts)), receiptCount: receipts.length };
161
+ return {
162
+ markdown: renderBriefDigest(normalizedRepo, receipts.length, fitReceiptLines(receipts)),
163
+ receiptCount: receipts.length,
164
+ };
165
165
  }
166
166
  /** The version a refresh saves: a successor of the repo's active brief when it has one, else a first version. */
167
167
  function refreshWrite(normalizedRepo, digest, active) {
@@ -171,19 +171,13 @@ function refreshWrite(normalizedRepo, digest, active) {
171
171
  changeSummary: active ? `auto-refresh from ${digest.receiptCount} receipt(s)` : undefined,
172
172
  supersedesBriefId: active ? active.id : undefined,
173
173
  refreshReceiptCount: digest.receiptCount,
174
- // The path tag lets path-aware recall boost the brief; it cannot become its own receipt, because receipts leave out source project_brief.
174
+ // The path tag lets path-aware recall boost the brief; it cannot become its own receipt, because receipts
175
+ // leave out source project_brief.
175
176
  extraTags: [receiptTag(normalizedRepo)],
176
177
  };
177
178
  }
178
179
  /** Saves a new version of the repo's brief from its receipts. The receipts are read before
179
180
  * the save's transaction, so a receipt written in between shows in the next refresh. */
180
- export function refreshBrief(hippoRoot, tenantId, repo, actor = 'cli') {
181
- const normalizedRepo = requiredRepo('refreshBrief', tenantId, repo);
182
- const digest = assembleBriefFromReceipts(hippoRoot, tenantId, normalizedRepo);
183
- const active = loadActiveBriefForRepo(hippoRoot, tenantId, normalizedRepo);
184
- return saveProjectBrief(hippoRoot, tenantId, refreshWrite(normalizedRepo, digest, active), actor);
185
- }
186
- /** `refreshBrief` over a served store's group. */
187
181
  export async function refreshedBrief(objects, site, repo) {
188
182
  const normalizedRepo = requiredRepo('refreshBrief', site.tenantId, repo);
189
183
  const digest = await briefFromReceipts(objects, site.tenantId, normalizedRepo);
@@ -1,6 +1,6 @@
1
1
  /** Skill object: an agent-followable `instructions` body plus an optional `trigger`, evolving via supersession.
2
- * `exportSkills` renders ACTIVE skills into AGENTS.md / CLAUDE.md rules; running code from a skill is deferred (security).
3
- * `trigger` is stored in `trigger_text` because it is a SQLite reserved keyword. */
2
+ * `skillsMarkdown` renders ACTIVE skills into AGENTS.md / CLAUDE.md rules; running code from a skill is deferred
3
+ * (security). `trigger` is stored in `trigger_text` because it is a SQLite reserved keyword. */
4
4
  import type { KeysetPosition } from '../util/keyset.js';
5
5
  import type { SavableDescriptor } from './descriptor.js';
6
6
  import type { Skill, SkillStatus } from '../core/object-types.js';
@@ -35,17 +35,15 @@ export interface ListSkillsOpts {
35
35
  }
36
36
  export declare const SKILL: SavableDescriptor<'skill', SaveSkillOpts>;
37
37
  /** Create a skill, or a new version superseding an existing one, in the `objects` store group's one transaction. */
38
- export declare function saveSkill(hippoRoot: string, tenantId: string, opts: SaveSkillOpts, actor?: string): Skill;
38
+ export declare function saveSkill(objects: Objects, hippoRoot: string, tenantId: string, opts: SaveSkillOpts, actor?: string): Promise<Skill>;
39
39
  /** Close (retire) an active skill; a superseded row is terminal. */
40
- export declare function closeSkill(hippoRoot: string, tenantId: string, id: number, actor?: string): Skill;
41
- export declare function loadSkillById(hippoRoot: string, tenantId: string, id: number): Skill | null;
42
- export declare function loadSkills(hippoRoot: string, tenantId: string, opts?: ListSkillsOpts): Skill[];
43
- export declare function loadActiveSkills(hippoRoot: string, tenantId: string, opts?: {
40
+ export declare function closeSkill(objects: Objects, tenantId: string, id: number, actor?: string): Promise<Skill>;
41
+ export declare function loadSkillById(objects: Objects, tenantId: string, id: number): Promise<Skill | null>;
42
+ export declare function loadSkills(objects: Objects, tenantId: string, opts?: ListSkillsOpts): Promise<Skill[]>;
43
+ export declare function loadActiveSkills(objects: Objects, tenantId: string, opts?: {
44
44
  limit?: number;
45
- }): Skill[];
46
- /** Render the tenant's ACTIVE skills into one AGENTS.md / CLAUDE.md-style markdown block (H2 per skill, ordered by skill_name) and return it; writes no file.
47
- * Bounded by MAX_EXPORT_SKILLS rows; instructions are emitted verbatim. */
48
- export declare function exportSkills(hippoRoot: string, tenantId: string): string;
49
- /** `exportSkills` over a served store's group. */
45
+ }): Promise<Skill[]>;
46
+ /** Render the tenant's ACTIVE skills into one AGENTS.md / CLAUDE.md-style markdown block (H2 per skill, ordered by
47
+ * skill_name) and return it; writes no file. Bounded by MAX_EXPORT_SKILLS rows; instructions are emitted verbatim. */
50
48
  export declare function skillsMarkdown(objects: Objects, tenantId: string): Promise<string>;
51
49
  //# sourceMappingURL=skills.d.ts.map
@@ -1,11 +1,10 @@
1
1
  /** Skill object: an agent-followable `instructions` body plus an optional `trigger`, evolving via supersession.
2
- * `exportSkills` renders ACTIVE skills into AGENTS.md / CLAUDE.md rules; running code from a skill is deferred (security).
3
- * `trigger` is stored in `trigger_text` because it is a SQLite reserved keyword. */
2
+ * `skillsMarkdown` renders ACTIVE skills into AGENTS.md / CLAUDE.md rules; running code from a skill is deferred
3
+ * (security). `trigger` is stored in `trigger_text` because it is a SQLite reserved keyword. */
4
4
  import { BadRequestError } from '../core/api-errors.js';
5
5
  import { assertTenantId } from '../store/tenant.js';
6
6
  import { checkText, requireLine } from './fields.js';
7
- import { closeObjectAt, listObjectsAt, objectByIdAt, saveObjectAt } from './lifecycle.js';
8
- import { sqliteObjects } from '../store/sqlite/objects-group.js';
7
+ import { closeObject, listObjects, objectById, saveObject } from './lifecycle.js';
9
8
  export const VALID_SKILL_STATES = new Set([
10
9
  'active',
11
10
  'superseded',
@@ -19,7 +18,8 @@ export const MAX_SKILL_TRIGGER_LEN = 1024;
19
18
  /** Aggregate bound on a single export render so the export body is never unbounded.
20
19
  * Realistic active-skill counts are tens; 1000 is a generous bound. */
21
20
  export const MAX_EXPORT_SKILLS = 1000;
22
- /** The trigger as stored, or null for none. One line, because a newline would forge a heading inside the exported **When:** line. */
21
+ /** The trigger as stored, or null for none. One line, because a newline would forge a heading inside the
22
+ * exported **When:** line. */
23
23
  function checkTrigger(trigger) {
24
24
  if (trigger === undefined || trigger === null || trigger.trim().length === 0)
25
25
  return null;
@@ -69,29 +69,24 @@ export const SKILL = {
69
69
  },
70
70
  };
71
71
  /** Create a skill, or a new version superseding an existing one, in the `objects` store group's one transaction. */
72
- export function saveSkill(hippoRoot, tenantId, opts, actor = 'cli') {
73
- return saveObjectAt(SKILL, { hippoRoot, tenantId, actor }, opts);
72
+ export function saveSkill(objects, hippoRoot, tenantId, opts, actor = 'cli') {
73
+ return saveObject(objects, SKILL, { hippoRoot, tenantId, actor }, opts);
74
74
  }
75
75
  /** Close (retire) an active skill; a superseded row is terminal. */
76
- export function closeSkill(hippoRoot, tenantId, id, actor = 'cli') {
77
- return closeObjectAt(hippoRoot, SKILL, tenantId, id, actor);
76
+ export function closeSkill(objects, tenantId, id, actor = 'cli') {
77
+ return closeObject(objects, SKILL, tenantId, id, actor);
78
78
  }
79
- export function loadSkillById(hippoRoot, tenantId, id) {
80
- return objectByIdAt(hippoRoot, SKILL, tenantId, id);
79
+ export function loadSkillById(objects, tenantId, id) {
80
+ return objectById(objects, SKILL, tenantId, id);
81
81
  }
82
- export function loadSkills(hippoRoot, tenantId, opts = {}) {
83
- return listObjectsAt(hippoRoot, SKILL, tenantId, opts);
82
+ export function loadSkills(objects, tenantId, opts = {}) {
83
+ return listObjects(objects, SKILL, tenantId, opts);
84
84
  }
85
- export function loadActiveSkills(hippoRoot, tenantId, opts = {}) {
86
- return loadSkills(hippoRoot, tenantId, { status: 'active', limit: opts.limit });
85
+ export function loadActiveSkills(objects, tenantId, opts = {}) {
86
+ return loadSkills(objects, tenantId, { status: 'active', limit: opts.limit });
87
87
  }
88
- /** Render the tenant's ACTIVE skills into one AGENTS.md / CLAUDE.md-style markdown block (H2 per skill, ordered by skill_name) and return it; writes no file.
89
- * Bounded by MAX_EXPORT_SKILLS rows; instructions are emitted verbatim. */
90
- export function exportSkills(hippoRoot, tenantId) {
91
- assertTenantId('exportSkills', tenantId);
92
- return skillsBlock(sqliteObjects(hippoRoot).activeSkillsByName(tenantId, MAX_EXPORT_SKILLS));
93
- }
94
- /** `exportSkills` over a served store's group. */
88
+ /** Render the tenant's ACTIVE skills into one AGENTS.md / CLAUDE.md-style markdown block (H2 per skill, ordered by
89
+ * skill_name) and return it; writes no file. Bounded by MAX_EXPORT_SKILLS rows; instructions are emitted verbatim. */
95
90
  export async function skillsMarkdown(objects, tenantId) {
96
91
  assertTenantId('exportSkills', tenantId);
97
92
  return skillsBlock(await objects.activeSkillsByName(tenantId, MAX_EXPORT_SKILLS));
@@ -4,18 +4,20 @@ import * as os from 'node:os';
4
4
  import * as path from 'node:path';
5
5
  import { detectRealCodexPath, isCodexWrapperInstalled, repairCodexWrapperIfInstalled } from './hooks/codex-wrapper.js';
6
6
  import { claudeConfigDir } from './util/agent-homes.js';
7
- import { errorMessage, log } from './util/log.js';
7
+ import { errorFields, errorMessage, log } from './util/log.js';
8
8
  function main() {
9
9
  if (envSkipPostinstall())
10
10
  return;
11
11
  try {
12
- // Repair-only, for users who opted in (a Codex update can restore the real binary over our shim): swapping the binary from postinstall
13
- // is a consent violation that supply-chain scanners read as hijacking, so first install is `hippo hook install codex` only.
12
+ // Repair-only, for users who opted in (a Codex update can restore the real binary over our shim): swapping the
13
+ // binary from postinstall
14
+ // is a consent violation that supply-chain scanners read as hijacking, so first install is `hippo hook install
15
+ // codex` only.
14
16
  repairCodexWrapperIfInstalled();
15
17
  }
16
18
  catch (err) {
17
19
  // Never fail package install because auto-integration could not be applied.
18
- log.debug(`postinstall: codex wrapper not repaired: ${errorMessage(err)}`);
20
+ log.warn(`postinstall: codex wrapper not repaired: ${errorMessage(err)}`, errorFields(err));
19
21
  }
20
22
  try {
21
23
  printClaudeCodeNudge();
@@ -30,8 +32,12 @@ function main() {
30
32
  // Never fail package install because the install hint could not be printed.
31
33
  }
32
34
  }
33
- /** Read-only nudge: if Claude Code is detected and the Hippo UserPromptSubmit hook is not installed, point the user at `hippo init`.
34
- * It never patches ~/.claude/settings.json from a package postinstall: surprising, against least authority, and trips security scanners. */
35
+ /**
36
+ * Read-only nudge: if Claude Code is detected and the Hippo UserPromptSubmit hook is not installed, point the user at
37
+ * `hippo init`.
38
+ * It never patches ~/.claude/settings.json from a package postinstall: surprising, against least authority, and trips
39
+ * security scanners.
40
+ */
35
41
  function printClaudeCodeNudge() {
36
42
  const claudeDir = claudeConfigDir(os.homedir());
37
43
  if (!fs.existsSync(claudeDir))
@@ -67,7 +73,9 @@ function printClaudeCodeNudge() {
67
73
  line('To skip this message on future installs: export HIPPO_SKIP_POSTINSTALL=1');
68
74
  line('');
69
75
  }
70
- /** Read-only nudge: if the Codex CLI is on PATH and the session-capture wrapper is not installed, print the opt-in command;
76
+ /**
77
+ * Read-only nudge: if the Codex CLI is on PATH and the session-capture wrapper is not installed, print the opt-in
78
+ * command;
71
79
  * same least-authority reasoning as the Claude Code nudge, we never swap the user's binary. */
72
80
  function printCodexNudge() {
73
81
  if (isCodexWrapperInstalled())
@@ -1,7 +1,9 @@
1
1
  import type { AppendAuditOpts } from '../store/audit.js';
2
2
  import { type ForwardClaimMatch } from '../learn/forward-claim-detector.js';
3
3
  import type { PlanningFallacyEvidence } from '../store/planning-fallacy-evidence.js';
4
- /** Surface delivered on `RecallResult.planningFallacyHint` when a recall query carries a forward-prediction phrase and the closest class has closed history,
4
+ /**
5
+ * Surface delivered on `RecallResult.planningFallacyHint` when a recall query carries a forward-prediction phrase and
6
+ * the closest class has closed history,
5
7
  * so the agent sees its own track record at the moment of forecasting. */
6
8
  export interface PlanningFallacyHint {
7
9
  classTag: string;
@@ -10,25 +12,36 @@ export interface PlanningFallacyHint {
10
12
  baserateSummary: string;
11
13
  /** Discriminator vs hypothetical future manual-override hints. */
12
14
  source: 'j3.2-auto';
13
- /** The regex match snippet that triggered detection, so the agent sees WHY the hint appeared and can self-correct if detection misfired. */
15
+ /**
16
+ * The regex match snippet that triggered detection, so the agent sees WHY the hint appeared and can self-correct if
17
+ * detection misfired.
18
+ */
14
19
  detectedPhrase: string;
15
20
  nClosed: number;
16
21
  /** Null only when every closed-row had estimate_value=0 (ratio undefined). */
17
22
  meanRatio: number | null;
18
23
  }
19
- /** "Watching" variant emitted when the forward-claim regex matched but no baserate hint was returned (no prediction class tag overlaps the query's tokens).
20
- * It surfaces the detection plus a one-line suggestion so the agent can re-tag the prediction or pass the suggestion to the user. */
24
+ /**
25
+ * "Watching" variant emitted when the forward-claim regex matched but no baserate hint was returned (no prediction
26
+ * class tag overlaps the query's tokens).
27
+ * It surfaces the detection plus a one-line suggestion so the agent can re-tag the prediction or pass the suggestion to
28
+ * the user.
29
+ */
21
30
  export interface PlanningFallacyWatching {
22
31
  /** The forward-claim phrase the detector matched (verbatim regex match snippet). */
23
32
  detectedPhrase: string;
24
- /** Why hippo could not produce a baserate hint despite the match: 'no_class_match' (no class scored >=1 on token overlap)
33
+ /**
34
+ * Why hippo could not produce a baserate hint despite the match: 'no_class_match' (no class scored >=1 on token
35
+ * overlap)
25
36
  * or 'tiebreak' (>=2 classes tied at the best score; silent on ambiguity). */
26
37
  reason: 'no_class_match' | 'tiebreak';
27
38
  /** One-line agent-facing suggestion for how the user can give hippo
28
39
  * enough signal to produce a baserate next time. */
29
40
  suggestion: string;
30
41
  }
31
- /** What `decidePlanningFallacy` hands to recall: EITHER `hint` (baserate available) OR `watching` (regex fired, no baserate), or NEITHER (mode=off,
42
+ /**
43
+ * What `decidePlanningFallacy` hands to recall: EITHER `hint` (baserate available) OR `watching` (regex fired, no
44
+ * baserate), or NEITHER (mode=off,
32
45
  * no queryText, no regex match, or nClosed=0). Never both. */
33
46
  export interface PlanningFallacyOutput {
34
47
  hint?: PlanningFallacyHint;
@@ -3,7 +3,8 @@ import { detectForwardClaim } from '../learn/forward-claim-detector.js';
3
3
  const TARGET_ID_CHARS = 100;
4
4
  /** The forward claim in a recall query; null when HIPPO_AUTODEBIAS=off, the query is empty or no claim matches. */
5
5
  export function detectPlanningClaim(queryText, opts = {}) {
6
- // Env read FIRST so AUTODEBIAS=off pays zero regex cost; read per call so tests can toggle it without a module reload.
6
+ // Env read FIRST so AUTODEBIAS=off pays zero regex cost; read per call so tests can toggle it without a module
7
+ // reload.
7
8
  const mode = opts.mode ?? (envAutodebiasOff() ? 'off' : 'regex');
8
9
  if (mode === 'off')
9
10
  return null;
@@ -52,7 +53,8 @@ export function decidePlanningFallacy(match, evidence, tenantId, actor) {
52
53
  };
53
54
  }
54
55
  const TIEBREAK_SUGGESTION = 'Multiple prediction classes tied on this query. Refine the query or rename overlapping classes to break the tie.';
55
- const NO_CLASS_MATCH_SUGGESTION = 'No matching prediction class for this forward-claim. Tag your prediction with `hippo predict --class <name>` to start tracking this class.';
56
+ const NO_CLASS_MATCH_SUGGESTION = 'No matching prediction class for this forward-claim. Tag your prediction with `hippo predict --class <name>` to ' +
57
+ 'start tracking this class.';
56
58
  function watchingWithAudit(tenantId, actor, match, reason, suggestion) {
57
59
  return {
58
60
  output: {
@@ -17,9 +17,15 @@ interface ClefScores {
17
17
  }
18
18
  /** Transport from trusted local env, never call arguments: HIPPO_CLEF_ENDPOINT wins over hosted Workers AI. */
19
19
  export declare function resolveClefRoute(model: ClefModel): ClefRoute;
20
- /** Unwraps a Workers AI `{ result }` envelope or a bare System One reply and checks model and `c1..cN`; a string is the rejection reason. */
20
+ /**
21
+ * Unwraps a Workers AI `{ result }` envelope or a bare System One reply and checks model and `c1..cN`; a string is the
22
+ * rejection reason.
23
+ */
21
24
  export declare function parseClefReply(body: JsonValue, n: number, model: ClefModel, requireModel: boolean): ClefScores | string;
22
- /** A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev) and warns. */
25
+ /**
26
+ * A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev) and
27
+ * warns.
28
+ */
23
29
  export declare function createClefReranker(model: ClefModel): RerankerFn;
24
30
  export {};
25
31
  //# sourceMappingURL=clef.d.ts.map
@@ -1,10 +1,11 @@
1
- import { envClefEndpoint, envClefEndpointToken, envClefTimeoutMs, envCloudflareAccountId, envCloudflareApiToken } from '../util/env.js';
1
+ import { envClefEndpoint, envClefEndpointToken, envClefTimeoutMs, envCloudflareAccountId, envCloudflareApiToken, } from '../util/env.js';
2
2
  import { buildRelevanceRequest, JEV_DEFAULT_TOP_K, rankByScores } from './jev.js';
3
3
  import { createOutageWarning } from './outage-warning.js';
4
4
  import { rerankerPost, RERANKER_MAX_REPLY_BYTES } from './remote.js';
5
5
  import { readCappedJson } from '../util/capped-json.js';
6
6
  import { isJsonObject, isJsonString } from '../util/json.js';
7
7
  import { errorMessage } from '../util/log.js';
8
+ import { isLoopbackHost } from '../util/net.js';
8
9
  const RAY_ID_MAX_CHARS = 64;
9
10
  const CLEF_MODELS = ['clef-flash', 'clef'];
10
11
  const DEFAULT_TIMEOUT_MS = 15_000;
@@ -16,10 +17,6 @@ const ACCOUNT_ID = /^[0-9a-f]{32}$/i;
16
17
  export function isClefModel(name) {
17
18
  return CLEF_MODELS.some((m) => m === name);
18
19
  }
19
- // Plain http would put the token and the memory text on the wire, so only the local machine may use it.
20
- function isLoopback(hostname) {
21
- return hostname === 'localhost' || hostname === '[::1]' || /^127(\.\d{1,3}){3}$/.test(hostname);
22
- }
23
20
  function isNumber(v) {
24
21
  return Number.isFinite(v);
25
22
  }
@@ -49,7 +46,8 @@ export function resolveClefRoute(model) {
49
46
  if (parsed.username || parsed.password) {
50
47
  throw new Error('HIPPO_CLEF_ENDPOINT must not embed credentials; set HIPPO_CLEF_ENDPOINT_TOKEN');
51
48
  }
52
- if (parsed.protocol === 'http:' && !isLoopback(parsed.hostname)) {
49
+ // Plain http would put the token and the memory text on the wire, so only the local machine may use it.
50
+ if (parsed.protocol === 'http:' && !isLoopbackHost(parsed.hostname)) {
53
51
  throw new Error('HIPPO_CLEF_ENDPOINT must use https unless it is on this machine');
54
52
  }
55
53
  const endpointToken = envClefEndpointToken();
@@ -70,7 +68,10 @@ export function resolveClefRoute(model) {
70
68
  backend: 'cloudflare',
71
69
  };
72
70
  }
73
- /** Unwraps a Workers AI `{ result }` envelope or a bare System One reply and checks model and `c1..cN`; a string is the rejection reason. */
71
+ /**
72
+ * Unwraps a Workers AI `{ result }` envelope or a bare System One reply and checks model and `c1..cN`; a string is the
73
+ * rejection reason.
74
+ */
74
75
  export function parseClefReply(body, n, model, requireModel) {
75
76
  if (!isJsonObject(body))
76
77
  return 'reply is not a JSON object';
@@ -80,8 +81,9 @@ export function parseClefReply(body, n, model, requireModel) {
80
81
  if (!isJsonObject(reply))
81
82
  return 'reply has no result object';
82
83
  const actual = reply.model;
83
- if (actual !== undefined && (!isJsonString(actual) || actual.trim() !== model))
84
+ if (actual !== undefined && (!isJsonString(actual) || actual.trim() !== model)) {
84
85
  return 'reply names a different model';
86
+ }
85
87
  if (actual === undefined && requireModel)
86
88
  return 'reply does not name its model';
87
89
  const answers = reply.answers;
@@ -139,7 +141,10 @@ function nativeOrder(head, provenance) {
139
141
  rerankProvenance: { ...provenance },
140
142
  }));
141
143
  }
142
- /** A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev) and warns. */
144
+ /**
145
+ * A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev) and
146
+ * warns.
147
+ */
143
148
  export function createClefReranker(model) {
144
149
  const outage = createOutageWarning(model, 'keeping the native order');
145
150
  return async (query, results, options) => {
@@ -27,7 +27,8 @@ type ImportModule = () => Promise<{
27
27
  readonly name: string;
28
28
  readonly mod: TransformersModuleNamespace;
29
29
  } | null>;
30
- /** Track 2 reranker: MS-MARCO MiniLM cross-encoder, identity fallback if the model will not load. Each instance owns its model and outage warning. */
30
+ /** Track 2 reranker: MS-MARCO MiniLM cross-encoder, identity fallback if the model will not load. Each instance owns
31
+ * its model and outage warning. */
31
32
  export declare function createCrossEncoderReranker(importModule?: ImportModule): RerankerFn;
32
33
  export {};
33
34
  //# sourceMappingURL=cross-encoder.d.ts.map
@@ -15,8 +15,8 @@ async function importModelClasses(importModule) {
15
15
  throw new Error(`${name} exports no AutoTokenizer or AutoModelForSequenceClassification`);
16
16
  return { AutoTokenizer: tok, AutoModelForSequenceClassification: seq };
17
17
  }
18
- // NOT the text-classification pipeline: this is a num_labels=1 regression head and that pipeline softmaxes a length-1 logit vector (always 1.0).
19
- // Read the logit, then squash it.
18
+ // NOT the text-classification pipeline: this is a num_labels=1 regression head and that pipeline softmaxes a length-1
19
+ // logit vector (always 1.0). Read the logit, then squash it.
20
20
  async function buildPipeline(importModule) {
21
21
  const mod = await importModelClasses(importModule);
22
22
  const [tokenizer, model] = await Promise.all([
@@ -56,8 +56,9 @@ async function scoreHead(pipe, query, head) {
56
56
  succeeded++;
57
57
  }
58
58
  catch (err) {
59
- // One bad inference must not sink the whole pass.
60
- log.debug(`cross-encoder inference failed, keeping the base score: ${errorMessage(err)}`);
59
+ // One bad inference must not sink the whole pass; a pass where every call fails is warned about by the outage
60
+ // tracker below.
61
+ log.debug(`cross-encoder inference failed, keeping the base score: ${errorMessage(err)}`, errorFields(err));
61
62
  ceScore = r.score;
62
63
  }
63
64
  return {
@@ -73,7 +74,8 @@ async function scoreHead(pipe, query, head) {
73
74
  scored.forEach((r, i) => (r.postRerankRank = i + 1));
74
75
  return { results: scored, succeeded };
75
76
  }
76
- /** Track 2 reranker: MS-MARCO MiniLM cross-encoder, identity fallback if the model will not load. Each instance owns its model and outage warning. */
77
+ /** Track 2 reranker: MS-MARCO MiniLM cross-encoder, identity fallback if the model will not load. Each instance owns
78
+ * its model and outage warning. */
77
79
  export function createCrossEncoderReranker(importModule = importTransformers) {
78
80
  const outage = createOutageWarning('cross-encoder', 'falling back to identity ordering');
79
81
  // The outage warning already says each failure, at most once per window, so the loads report nothing themselves.
@@ -82,7 +84,8 @@ export function createCrossEncoderReranker(importModule = importTransformers) {
82
84
  const head = results.slice(0, options?.topK ?? DEFAULT_CROSS_ENCODER_TOP_K);
83
85
  let pipe;
84
86
  try {
85
- // One shared load per backoff window: two first calls fetch the model once, and a failure is not fetched again on every recall.
87
+ // One shared load per backoff window: two first calls fetch the model once, and a failure is not fetched again on
88
+ // every recall.
86
89
  pipe = await pipelines.load(MODEL_NAME, () => buildPipeline(importModule));
87
90
  }
88
91
  catch (err) {
@@ -2,7 +2,8 @@ import { createClefReranker } from './clef.js';
2
2
  import { createCrossEncoderReranker } from './cross-encoder.js';
3
3
  import { createJevReranker } from './jev.js';
4
4
  import { createLlmReranker } from './llm.js';
5
- // Each reranker is built once here, so its outage warning lasts the process; jev falls back to the same cross-encoder, so one model loads.
5
+ // Each reranker is built once here, so its outage warning lasts the process; jev falls back to the same cross-encoder,
6
+ // so one model loads.
6
7
  const crossEncoder = createCrossEncoderReranker();
7
8
  const REGISTRY = {
8
9
  clef: createClefReranker('clef'),
@@ -39,7 +39,8 @@ function parseScores(body, n) {
39
39
  export function buildRelevanceRequest(query, head) {
40
40
  // Strict: this text leaves the machine, so Bearer, Basic-auth and JWT shapes go too.
41
41
  const lines = head.map((r, i) => `[${i + 1}] ${truncateWithEllipsis(redactSecretsStrict(r.entry.content), TRUNCATE_CHARS)}`);
42
- const state = `Query: ${redactSecretsStrict(query)}\n\nNumbered candidate memories from an AI coding agent's project store:\n\n${lines.join('\n\n')}`;
42
+ const state = `Query: ${redactSecretsStrict(query)}\n\nNumbered candidate memories from an AI coding agent's ` +
43
+ `project store:\n\n${lines.join('\n\n')}`;
43
44
  const questions = {};
44
45
  for (let i = 1; i <= head.length; i++) {
45
46
  questions[`c${i}`] = {
@@ -1,5 +1,9 @@
1
1
  import type { RerankerFn } from './types.js';
2
- /** Track 3 reranker (skeleton): listwise LLM rerank on a customer-supplied OpenAI-compatible endpoint, gated on HIPPO_LLM_RERANKER_URL against accidental cost.
3
- * Timeout is 30s for the whole call, retries included (HIPPO_LLM_RERANKER_TIMEOUT_MS); any failure falls back to identity ordering, so recall never hangs. */
2
+ /**
3
+ * Track 3 reranker (skeleton): listwise LLM rerank on a customer-supplied OpenAI-compatible endpoint, gated on
4
+ * HIPPO_LLM_RERANKER_URL against accidental cost.
5
+ * Timeout is 30s for the whole call, retries included (HIPPO_LLM_RERANKER_TIMEOUT_MS); any failure falls back to
6
+ * identity ordering, so recall never hangs.
7
+ */
4
8
  export declare function createLlmReranker(): RerankerFn;
5
9
  //# sourceMappingURL=llm.d.ts.map
@@ -7,8 +7,12 @@ import { isJsonObject, isJsonString } from '../util/json.js';
7
7
  import { errorMessage } from '../util/log.js';
8
8
  const DEFAULT_LLM_RERANK_TOP_K = 20;
9
9
  const DEFAULT_TIMEOUT_MS = 30_000;
10
- /** Track 3 reranker (skeleton): listwise LLM rerank on a customer-supplied OpenAI-compatible endpoint, gated on HIPPO_LLM_RERANKER_URL against accidental cost.
11
- * Timeout is 30s for the whole call, retries included (HIPPO_LLM_RERANKER_TIMEOUT_MS); any failure falls back to identity ordering, so recall never hangs. */
10
+ /**
11
+ * Track 3 reranker (skeleton): listwise LLM rerank on a customer-supplied OpenAI-compatible endpoint, gated on
12
+ * HIPPO_LLM_RERANKER_URL against accidental cost.
13
+ * Timeout is 30s for the whole call, retries included (HIPPO_LLM_RERANKER_TIMEOUT_MS); any failure falls back to
14
+ * identity ordering, so recall never hangs.
15
+ */
12
16
  export function createLlmReranker() {
13
17
  const outage = createOutageWarning('llm', 'keeping the input order');
14
18
  return async (query, results, options) => {
@@ -47,7 +51,8 @@ function replyText(body) {
47
51
  async function requestPermutation(url, query, head) {
48
52
  const key = envLlmRerankerKey();
49
53
  const prompt = [
50
- `Rerank the candidates below by relevance to the query. Output a JSON array of indices (zero-indexed) in best-first order.`,
54
+ `Rerank the candidates below by relevance to the query. Output a JSON array of indices (zero-indexed) in ` +
55
+ `best-first order.`,
51
56
  `Query: ${redactSecretsStrict(query)}`,
52
57
  ...head.map((r, i) => `[${i}] ${redactSecretsStrict(r.entry.content)}`),
53
58
  `Output format: [<int>, <int>, ...] with all ${head.length} indices.`,
@@ -1,4 +1,6 @@
1
1
  export declare const RERANKER_MAX_REPLY_BYTES: number;
2
- /** POST a scoring request. A dropped connection, 429 or 5xx is retried, since scoring changes nothing on the far side. */
2
+ /**
3
+ * POST a scoring request. A dropped connection, 429 or 5xx is retried, since scoring changes nothing on the far side.
4
+ */
3
5
  export declare function rerankerPost(url: string, init: RequestInit, budgetMs: number): Promise<Response>;
4
6
  //# sourceMappingURL=remote.d.ts.map