hippo-memory 1.69.0 → 1.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1014) hide show
  1. package/README.md +5 -2
  2. package/dist/agent-memories/apply.d.ts +3 -3
  3. package/dist/agent-memories/apply.js +16 -31
  4. package/dist/agent-memories/claude-code.d.ts +5 -5
  5. package/dist/agent-memories/claude-code.js +25 -12
  6. package/dist/agent-memories/copilot.js +3 -2
  7. package/dist/agent-memories/files.js +26 -14
  8. package/dist/agent-memories/gemini.js +6 -5
  9. package/dist/agent-memories/keys.js +3 -2
  10. package/dist/agent-memories/legacy.d.ts +2 -2
  11. package/dist/agent-memories/legacy.js +2 -2
  12. package/dist/agent-memories/markdown.d.ts +1 -3
  13. package/dist/agent-memories/markdown.js +1 -3
  14. package/dist/agent-memories/report.d.ts +1 -1
  15. package/dist/agent-memories/report.js +3 -2
  16. package/dist/agent-memories/source.d.ts +1 -1
  17. package/dist/agent-memories/source.js +6 -5
  18. package/dist/agent-memories/sync.d.ts +5 -3
  19. package/dist/agent-memories/sync.js +34 -38
  20. package/dist/agent-memories/types.d.ts +1 -1
  21. package/dist/api/assemble.d.ts +9 -46
  22. package/dist/api/assemble.js +44 -54
  23. package/dist/api/audit.d.ts +8 -7
  24. package/dist/api/audit.js +15 -21
  25. package/dist/api/auth.d.ts +17 -39
  26. package/dist/api/auth.js +76 -216
  27. package/dist/api/auto-sleep.d.ts +13 -0
  28. package/dist/api/auto-sleep.js +32 -0
  29. package/dist/{availability.d.ts → api/availability.d.ts} +4 -17
  30. package/dist/{availability.js → api/availability.js} +14 -44
  31. package/dist/{context-auto.js → api/context-auto.js} +2 -1
  32. package/dist/{context-render.d.ts → api/context-render.d.ts} +4 -4
  33. package/dist/{context-render.js → api/context-render.js} +7 -6
  34. package/dist/api/context-select.d.ts +5 -5
  35. package/dist/api/context-select.js +39 -48
  36. package/dist/api/context-types.d.ts +15 -40
  37. package/dist/api/context.d.ts +7 -26
  38. package/dist/api/context.js +67 -97
  39. package/dist/api/dormant.d.ts +7 -23
  40. package/dist/api/dormant.js +40 -128
  41. package/dist/api/drill-down.d.ts +9 -48
  42. package/dist/api/drill-down.js +41 -90
  43. package/dist/api/forget.d.ts +5 -33
  44. package/dist/api/forget.js +17 -73
  45. package/dist/api/goals.d.ts +1 -1
  46. package/dist/api/goals.js +2 -2
  47. package/dist/api/graph.d.ts +8 -0
  48. package/dist/api/graph.js +7 -0
  49. package/dist/api/index.d.ts +28 -0
  50. package/dist/api/index.js +31 -0
  51. package/dist/api/instruction-detect.js +85 -0
  52. package/dist/api/learn.js +63 -55
  53. package/dist/api/ledger-db.d.ts +21 -0
  54. package/dist/api/ledger-db.js +81 -0
  55. package/dist/api/memories.d.ts +5 -0
  56. package/dist/api/memories.js +7 -0
  57. package/dist/api/objects.d.ts +9 -0
  58. package/dist/api/objects.js +11 -0
  59. package/dist/api/on-store.d.ts +16 -0
  60. package/dist/api/on-store.js +38 -0
  61. package/dist/api/outcome.d.ts +5 -42
  62. package/dist/api/outcome.js +15 -80
  63. package/dist/{pilot-arm.d.ts → api/pilot-arm.d.ts} +1 -1
  64. package/dist/{pilot-arm.js → api/pilot-arm.js} +15 -23
  65. package/dist/api/predictions.d.ts +9 -0
  66. package/dist/api/predictions.js +18 -0
  67. package/dist/api/promote.d.ts +16 -31
  68. package/dist/api/promote.js +38 -123
  69. package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +11 -11
  70. package/dist/{prompt-hook.js → api/prompt-hook.js} +42 -60
  71. package/dist/api/quarantine.d.ts +5 -5
  72. package/dist/api/quarantine.js +30 -106
  73. package/dist/api/recall-cli.d.ts +55 -0
  74. package/dist/api/recall-cli.js +94 -0
  75. package/dist/api/recall-core.d.ts +4 -0
  76. package/dist/api/recall-core.js +120 -0
  77. package/dist/api/recall-finish.d.ts +53 -0
  78. package/dist/api/recall-finish.js +30 -0
  79. package/dist/api/recall-history.d.ts +64 -0
  80. package/dist/api/recall-history.js +159 -0
  81. package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +7 -8
  82. package/dist/{recall-pipeline.js → api/recall-pipeline.js} +60 -48
  83. package/dist/api/recall-record.d.ts +10 -13
  84. package/dist/api/recall-record.js +10 -30
  85. package/dist/api/recall-request.d.ts +2 -2
  86. package/dist/api/recall-request.js +3 -3
  87. package/dist/api/recall-types.d.ts +101 -316
  88. package/dist/api/recall.d.ts +5 -33
  89. package/dist/api/recall.js +92 -91
  90. package/dist/api/refine.d.ts +7 -0
  91. package/dist/api/refine.js +10 -0
  92. package/dist/api/remember-local.d.ts +57 -0
  93. package/dist/api/remember-local.js +90 -0
  94. package/dist/api/remember.d.ts +27 -12
  95. package/dist/api/remember.js +42 -46
  96. package/dist/api/session-owners.d.ts +4 -0
  97. package/dist/api/session-owners.js +17 -0
  98. package/dist/api/sleep-run.d.ts +7 -9
  99. package/dist/api/sleep-run.js +78 -94
  100. package/dist/api/sleep.d.ts +10 -29
  101. package/dist/api/tokens.d.ts +5 -12
  102. package/dist/api/tokens.js +12 -31
  103. package/dist/api/types.d.ts +8 -31
  104. package/dist/api/types.js +5 -23
  105. package/dist/capture/caller-session.d.ts +2 -2
  106. package/dist/capture/caller-session.js +8 -8
  107. package/dist/{capture-error.d.ts → capture/capture-error.d.ts} +2 -2
  108. package/dist/{capture-error.js → capture/capture-error.js} +7 -7
  109. package/dist/{codex-patch.js → capture/codex-patch.js} +1 -1
  110. package/dist/capture/command.d.ts +5 -13
  111. package/dist/capture/command.js +57 -60
  112. package/dist/capture/compact-resume-caller.d.ts +1 -1
  113. package/dist/capture/compact-resume-caller.js +7 -7
  114. package/dist/capture/compact.d.ts +8 -16
  115. package/dist/capture/compact.js +56 -47
  116. package/dist/capture/compaction-items-caller.d.ts +1 -1
  117. package/dist/capture/compaction-items-caller.js +7 -5
  118. package/dist/{compaction-items.js → capture/compaction-items.js} +27 -3
  119. package/dist/{compaction-record.d.ts → capture/compaction-record.d.ts} +10 -6
  120. package/dist/{compaction-record.js → capture/compaction-record.js} +143 -157
  121. package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +1 -1
  122. package/dist/{compaction-spool.js → capture/compaction-spool.js} +18 -14
  123. package/dist/capture/copilot-transcript.js +1 -1
  124. package/dist/capture/extract.js +2 -2
  125. package/dist/capture/failure-caller.d.ts +2 -2
  126. package/dist/capture/failure-caller.js +6 -6
  127. package/dist/capture/failure-reading.d.ts +2 -5
  128. package/dist/capture/failure-reading.js +11 -12
  129. package/dist/{handoff-evidence.d.ts → capture/handoff-evidence.d.ts} +1 -1
  130. package/dist/{handoff-evidence.js → capture/handoff-evidence.js} +2 -1
  131. package/dist/capture/pre-compact-caller.d.ts +1 -1
  132. package/dist/capture/pre-compact-caller.js +2 -2
  133. package/dist/{session-digest.d.ts → capture/session-digest.d.ts} +2 -6
  134. package/dist/{session-digest.js → capture/session-digest.js} +29 -29
  135. package/dist/capture/session-end-caller.d.ts +2 -2
  136. package/dist/capture/session-end-caller.js +1 -1
  137. package/dist/capture/session-texts.d.ts +1 -1
  138. package/dist/capture/session-texts.js +5 -5
  139. package/dist/capture/session-worker.js +6 -4
  140. package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
  141. package/dist/capture/transcript.d.ts +2 -10
  142. package/dist/capture/transcript.js +72 -92
  143. package/dist/capture/working-state.d.ts +0 -3
  144. package/dist/capture/working-state.js +7 -7
  145. package/dist/cli/api-context.d.ts +3 -0
  146. package/dist/cli/api-context.js +6 -0
  147. package/dist/cli/audit-prune.d.ts +28 -0
  148. package/dist/cli/audit-prune.js +40 -0
  149. package/dist/cli/audit.d.ts +2 -2
  150. package/dist/cli/audit.js +92 -88
  151. package/dist/cli/auth.d.ts +2 -1
  152. package/dist/cli/auth.js +69 -53
  153. package/dist/cli/briefs.d.ts +4 -3
  154. package/dist/cli/briefs.js +76 -202
  155. package/dist/cli/card.d.ts +2 -1
  156. package/dist/cli/card.js +55 -54
  157. package/dist/cli/client.d.ts +28 -0
  158. package/dist/{client.js → cli/client.js} +25 -44
  159. package/dist/cli/compact-resume-payload.d.ts +8 -0
  160. package/dist/cli/compact-resume-payload.js +40 -0
  161. package/dist/cli/context.d.ts +1 -13
  162. package/dist/cli/context.js +51 -77
  163. package/dist/cli/continuity.d.ts +6 -5
  164. package/dist/cli/continuity.js +153 -145
  165. package/dist/cli/correction-latency.d.ts +24 -0
  166. package/dist/{correction-latency.js → cli/correction-latency.js} +2 -14
  167. package/dist/cli/curate.d.ts +13 -17
  168. package/dist/cli/curate.js +226 -222
  169. package/dist/cli/dag.d.ts +4 -4
  170. package/dist/cli/dag.js +70 -52
  171. package/dist/cli/decisions.d.ts +4 -3
  172. package/dist/cli/decisions.js +129 -253
  173. package/dist/cli/eval.d.ts +1 -3
  174. package/dist/cli/eval.js +56 -42
  175. package/dist/cli/exit.d.ts +6 -0
  176. package/dist/cli/exit.js +11 -0
  177. package/dist/cli/explain.d.ts +1 -2
  178. package/dist/cli/explain.js +39 -21
  179. package/dist/cli/flag-values.d.ts +30 -0
  180. package/dist/cli/flag-values.js +120 -0
  181. package/dist/cli/flags.d.ts +304 -0
  182. package/dist/cli/flags.js +169 -0
  183. package/dist/cli/github.d.ts +14 -0
  184. package/dist/cli/github.js +184 -0
  185. package/dist/cli/goals.d.ts +2 -1
  186. package/dist/cli/goals.js +76 -75
  187. package/dist/cli/hook-runtime.d.ts +31 -0
  188. package/dist/cli/hook-runtime.js +139 -0
  189. package/dist/cli/init.d.ts +2 -1
  190. package/dist/cli/init.js +153 -126
  191. package/dist/cli/install-steps.d.ts +7 -0
  192. package/dist/cli/install-steps.js +101 -0
  193. package/dist/cli/last-sleep.d.ts +3 -1
  194. package/dist/cli/last-sleep.js +12 -7
  195. package/dist/cli/maintenance.d.ts +5 -4
  196. package/dist/cli/maintenance.js +41 -42
  197. package/dist/cli/object-verbs.d.ts +40 -0
  198. package/dist/cli/object-verbs.js +66 -0
  199. package/dist/cli/owner-validation.d.ts +18 -0
  200. package/dist/cli/owner-validation.js +33 -0
  201. package/dist/cli/playbooks.d.ts +4 -3
  202. package/dist/cli/playbooks.js +98 -306
  203. package/dist/cli/print.d.ts +15 -0
  204. package/dist/cli/print.js +82 -0
  205. package/dist/cli/projects.d.ts +2 -3
  206. package/dist/cli/projects.js +56 -51
  207. package/dist/cli/provenance-coverage.d.ts +14 -0
  208. package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +2 -6
  209. package/dist/cli/quality-repair-once.js +4 -4
  210. package/dist/cli/recall.d.ts +2 -6
  211. package/dist/cli/recall.js +128 -253
  212. package/dist/cli/refine-llm.d.ts +35 -0
  213. package/dist/cli/refine-llm.js +128 -0
  214. package/dist/cli/remember.d.ts +4 -6
  215. package/dist/cli/remember.js +193 -230
  216. package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +4 -17
  217. package/dist/{scheduler.js → cli/scheduler.js} +22 -22
  218. package/dist/cli/serve.d.ts +1 -1
  219. package/dist/cli/serve.js +46 -7
  220. package/dist/cli/session-hooks.d.ts +11 -19
  221. package/dist/cli/session-hooks.js +263 -258
  222. package/dist/cli/setup.d.ts +4 -3
  223. package/dist/cli/setup.js +55 -37
  224. package/dist/cli/shared.d.ts +14 -118
  225. package/dist/cli/shared.js +26 -400
  226. package/dist/cli/slack.d.ts +2 -1
  227. package/dist/cli/slack.js +46 -74
  228. package/dist/cli/sleep-render.d.ts +4 -0
  229. package/dist/cli/sleep-render.js +61 -0
  230. package/dist/cli/sleep.d.ts +3 -8
  231. package/dist/cli/sleep.js +34 -91
  232. package/dist/cli/status.d.ts +9 -12
  233. package/dist/cli/status.js +86 -131
  234. package/dist/{stdin.d.ts → cli/stdin.d.ts} +4 -6
  235. package/dist/{stdin.js → cli/stdin.js} +8 -9
  236. package/dist/cli/transfer.d.ts +9 -9
  237. package/dist/cli/transfer.js +125 -122
  238. package/dist/cli/usage.js +13 -5
  239. package/dist/cli.d.ts +69 -167
  240. package/dist/cli.js +187 -296
  241. package/dist/connectors/dlq.d.ts +44 -0
  242. package/dist/connectors/dlq.js +30 -0
  243. package/dist/connectors/github/backfill.d.ts +6 -26
  244. package/dist/connectors/github/backfill.js +42 -114
  245. package/dist/connectors/github/deletion.d.ts +6 -21
  246. package/dist/connectors/github/deletion.js +17 -64
  247. package/dist/connectors/github/dlq.d.ts +12 -91
  248. package/dist/connectors/github/dlq.js +23 -140
  249. package/dist/connectors/github/ingest.d.ts +4 -37
  250. package/dist/connectors/github/ingest.js +24 -93
  251. package/dist/connectors/github/octokit-client.d.ts +5 -17
  252. package/dist/connectors/github/octokit-client.js +29 -25
  253. package/dist/connectors/github/ratelimit.d.ts +3 -14
  254. package/dist/connectors/github/ratelimit.js +3 -14
  255. package/dist/connectors/github/scope.d.ts +3 -5
  256. package/dist/connectors/github/scope.js +3 -5
  257. package/dist/connectors/github/signature.d.ts +4 -26
  258. package/dist/connectors/github/signature.js +4 -26
  259. package/dist/connectors/github/tenant-routing.d.ts +4 -26
  260. package/dist/connectors/github/tenant-routing.js +13 -61
  261. package/dist/connectors/github/transform.d.ts +1 -1
  262. package/dist/connectors/github/transform.js +2 -16
  263. package/dist/connectors/github/types.d.ts +4 -16
  264. package/dist/connectors/github/types.js +17 -27
  265. package/dist/connectors/github/webhook.d.ts +5 -18
  266. package/dist/connectors/github/webhook.js +86 -105
  267. package/dist/connectors/slack/backfill.d.ts +5 -18
  268. package/dist/connectors/slack/backfill.js +9 -42
  269. package/dist/connectors/slack/deletion.d.ts +4 -7
  270. package/dist/connectors/slack/deletion.js +20 -49
  271. package/dist/connectors/slack/dlq.d.ts +9 -68
  272. package/dist/connectors/slack/dlq.js +26 -136
  273. package/dist/connectors/slack/ingest.d.ts +4 -18
  274. package/dist/connectors/slack/ingest.js +26 -91
  275. package/dist/connectors/slack/scope.d.ts +2 -8
  276. package/dist/connectors/slack/scope.js +2 -8
  277. package/dist/connectors/slack/signature.d.ts +1 -6
  278. package/dist/connectors/slack/signature.js +2 -1
  279. package/dist/connectors/slack/tenant-routing.d.ts +4 -18
  280. package/dist/connectors/slack/tenant-routing.js +11 -31
  281. package/dist/connectors/slack/transform.d.ts +3 -19
  282. package/dist/connectors/slack/transform.js +2 -18
  283. package/dist/connectors/slack/types.d.ts +4 -10
  284. package/dist/connectors/slack/types.js +5 -16
  285. package/dist/connectors/slack/web-client.js +34 -28
  286. package/dist/connectors/slack/webhook.d.ts +5 -21
  287. package/dist/connectors/slack/webhook.js +80 -108
  288. package/dist/connectors/slack/workspaces.d.ts +8 -41
  289. package/dist/connectors/slack/workspaces.js +8 -58
  290. package/dist/consolidate/conflicts.d.ts +1 -1
  291. package/dist/consolidate/conflicts.js +10 -18
  292. package/dist/consolidate/dag-summary.d.ts +8 -0
  293. package/dist/consolidate/dag-summary.js +41 -0
  294. package/dist/{dag.d.ts → consolidate/dag.d.ts} +6 -29
  295. package/dist/{dag.js → consolidate/dag.js} +49 -131
  296. package/dist/consolidate/decay.d.ts +2 -2
  297. package/dist/consolidate/decay.js +35 -41
  298. package/dist/consolidate/dedupe.d.ts +29 -0
  299. package/dist/consolidate/dedupe.js +103 -0
  300. package/dist/consolidate/flush-units.d.ts +5 -6
  301. package/dist/consolidate/flush-units.js +3 -3
  302. package/dist/consolidate/half-life-migration.d.ts +34 -0
  303. package/dist/consolidate/half-life-migration.js +89 -0
  304. package/dist/consolidate/llm-passes.js +12 -29
  305. package/dist/consolidate/memory-value-weights.d.ts +8 -0
  306. package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +2 -13
  307. package/dist/consolidate/memory-value.d.ts +45 -0
  308. package/dist/consolidate/memory-value.js +164 -0
  309. package/dist/consolidate/merge.js +65 -83
  310. package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
  311. package/dist/{merged-row.js → consolidate/merged-row.js} +4 -3
  312. package/dist/consolidate/physics-pass.js +46 -48
  313. package/dist/consolidate/replay.d.ts +9 -0
  314. package/dist/consolidate/replay.js +84 -0
  315. package/dist/consolidate/run.d.ts +7 -13
  316. package/dist/consolidate/run.js +6 -37
  317. package/dist/consolidate/sleep.d.ts +2 -9
  318. package/dist/consolidate/sleep.js +69 -151
  319. package/dist/consolidate/trace.d.ts +19 -0
  320. package/dist/{trace.js → consolidate/trace.js} +7 -24
  321. package/dist/consolidate/traces.js +40 -51
  322. package/dist/core/ablation.d.ts +15 -0
  323. package/dist/core/ablation.js +49 -0
  324. package/dist/{agent-memories/tools.d.ts → core/agent-memory-tools.d.ts} +1 -1
  325. package/dist/{agent-memories/tools.js → core/agent-memory-tools.js} +1 -1
  326. package/dist/{ambient.d.ts → core/ambient.d.ts} +1 -8
  327. package/dist/{ambient.js → core/ambient.js} +13 -18
  328. package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
  329. package/dist/{capture-contract.js → core/capture-contract.js} +67 -1
  330. package/dist/{card.d.ts → core/card.d.ts} +4 -1
  331. package/dist/{card.js → core/card.js} +8 -0
  332. package/dist/core/compare.d.ts +32 -0
  333. package/dist/core/compare.js +70 -0
  334. package/dist/{config.d.ts → core/config.d.ts} +14 -28
  335. package/dist/{config.js → core/config.js} +101 -75
  336. package/dist/{handoff.d.ts → core/handoff.d.ts} +1 -7
  337. package/dist/core/handoff.js +81 -0
  338. package/dist/{memory-quality.js → core/memory-quality.js} +2 -2
  339. package/dist/core/memory.d.ts +183 -0
  340. package/dist/core/memory.js +380 -0
  341. package/dist/core/package-root.d.ts +3 -0
  342. package/dist/core/package-root.js +5 -0
  343. package/dist/{physics-config.d.ts → core/physics-config.d.ts} +1 -4
  344. package/dist/{physics-config.js → core/physics-config.js} +3 -8
  345. package/dist/{physics.d.ts → core/physics.d.ts} +16 -62
  346. package/dist/{physics.js → core/physics.js} +60 -122
  347. package/dist/{project-identity.d.ts → core/project-identity.d.ts} +17 -63
  348. package/dist/{project-identity.js → core/project-identity.js} +22 -55
  349. package/dist/{project-remote.js → core/project-remote.js} +17 -6
  350. package/dist/{prompt-recall.js → core/prompt-recall.js} +1 -1
  351. package/dist/core/raw-append-only.d.ts +5 -0
  352. package/dist/core/raw-append-only.js +7 -0
  353. package/dist/{salience.d.ts → core/salience.d.ts} +1 -7
  354. package/dist/{salience.js → core/salience.js} +36 -27
  355. package/dist/{search/types.d.ts → core/search-types.d.ts} +2 -2
  356. package/dist/{search/types.js → core/search-types.js} +1 -1
  357. package/dist/core/session-digest-row.d.ts +5 -0
  358. package/dist/core/session-digest-row.js +6 -0
  359. package/dist/{dashboard-actions.d.ts → dashboard/dashboard-actions.d.ts} +1 -1
  360. package/dist/{dashboard-actions.js → dashboard/dashboard-actions.js} +7 -7
  361. package/dist/{dashboard-queries.d.ts → dashboard/dashboard-queries.d.ts} +7 -2
  362. package/dist/{dashboard-queries.js → dashboard/dashboard-queries.js} +6 -10
  363. package/dist/{dashboard-snapshot.d.ts → dashboard/dashboard-snapshot.d.ts} +11 -10
  364. package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +110 -104
  365. package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +2 -1
  366. package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +1 -0
  367. package/dist/{dashboard.js → dashboard/dashboard.js} +172 -55
  368. package/dist/db/backup.js +1 -1
  369. package/dist/db/busy.d.ts +19 -2
  370. package/dist/db/busy.js +88 -14
  371. package/dist/db/connect.d.ts +11 -2
  372. package/dist/db/connect.js +43 -10
  373. package/dist/db/index.d.ts +9 -0
  374. package/dist/db/index.js +8 -0
  375. package/dist/db/meta.d.ts +4 -0
  376. package/dist/db/meta.js +11 -1
  377. package/dist/db/migrate.d.ts +8 -1
  378. package/dist/db/migrate.js +28 -33
  379. package/dist/db/migrations/types.d.ts +2 -5
  380. package/dist/db/migrations/v08.js +1 -1
  381. package/dist/db/migrations/v14.js +39 -36
  382. package/dist/db/migrations/v15.js +2 -8
  383. package/dist/db/migrations/v16.js +31 -29
  384. package/dist/db/migrations/v17.js +2 -3
  385. package/dist/db/migrations/v18.js +6 -5
  386. package/dist/db/migrations/v19.js +2 -5
  387. package/dist/db/migrations/v20.js +5 -8
  388. package/dist/db/migrations/v22.js +28 -38
  389. package/dist/db/migrations/v23.js +3 -14
  390. package/dist/db/migrations/v24.js +25 -22
  391. package/dist/db/migrations/v25.js +3 -8
  392. package/dist/db/migrations/v26.js +2 -13
  393. package/dist/db/migrations/v27.js +3 -11
  394. package/dist/db/migrations/v28.js +2 -14
  395. package/dist/db/migrations/v29.js +23 -32
  396. package/dist/db/migrations/v30.js +4 -16
  397. package/dist/db/migrations/v31.js +23 -31
  398. package/dist/db/migrations/v32.js +4 -22
  399. package/dist/db/migrations/v33.js +2 -15
  400. package/dist/db/migrations/v34.js +2 -11
  401. package/dist/db/migrations/v35.js +2 -11
  402. package/dist/db/migrations/v36.js +2 -11
  403. package/dist/db/migrations/v37.js +8 -33
  404. package/dist/db/migrations/v38.js +5 -38
  405. package/dist/db/migrations/v39.js +10 -21
  406. package/dist/db/migrations/v40.js +8 -14
  407. package/dist/db/migrations/v41.js +2 -24
  408. package/dist/db/migrations/v43.js +7 -6
  409. package/dist/db/migrations/v44.js +2 -8
  410. package/dist/db/migrations/v45.js +2 -7
  411. package/dist/db/migrations/v46.js +1 -1
  412. package/dist/db/migrations/v47.js +2 -3
  413. package/dist/db/migrations/v48.js +1 -1
  414. package/dist/db/migrations/v49.js +1 -1
  415. package/dist/db/migrations/v50.js +8 -7
  416. package/dist/db/migrations/v51.js +1 -1
  417. package/dist/db/migrations/v52.js +1 -1
  418. package/dist/db/open.d.ts +11 -1
  419. package/dist/db/open.js +37 -4
  420. package/dist/db/physics-state.d.ts +23 -0
  421. package/dist/{physics-state.js → db/physics-state.js} +34 -52
  422. package/dist/db/raw-archive-mirror-cleanup.d.ts +5 -0
  423. package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +10 -20
  424. package/dist/db/request-stores.d.ts +15 -2
  425. package/dist/db/request-stores.js +37 -15
  426. package/dist/db/tables.d.ts +2 -0
  427. package/dist/db/tables.js +6 -0
  428. package/dist/{vector-store.d.ts → db/vector-store.d.ts} +6 -2
  429. package/dist/{vector-store.js → db/vector-store.js} +83 -51
  430. package/dist/db/wal-checkpointer.d.ts +11 -0
  431. package/dist/db/wal-checkpointer.js +92 -0
  432. package/dist/doctor.js +176 -152
  433. package/dist/entry/json-hooks.d.ts +1 -1
  434. package/dist/entry/json-hooks.js +1 -1
  435. package/dist/entry/project-identity.d.ts +1 -1
  436. package/dist/entry/project-identity.js +1 -1
  437. package/dist/entry/session-text.d.ts +3 -3
  438. package/dist/entry/session-text.js +5 -4
  439. package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +15 -53
  440. package/dist/{eval-stats.js → eval/eval-stats.js} +24 -51
  441. package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +3 -14
  442. package/dist/{eval-suite.js → eval/eval-suite.js} +99 -57
  443. package/dist/{eval.d.ts → eval/eval.d.ts} +7 -25
  444. package/dist/{eval.js → eval/eval.js} +35 -55
  445. package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -6
  446. package/dist/{judgment.js → eval/judgment.js} +23 -20
  447. package/dist/extensions/openclaw-plugin/index.js +2 -3
  448. package/dist/graph/delta.d.ts +3 -2
  449. package/dist/graph/delta.js +9 -23
  450. package/dist/{graph-extract.d.ts → graph/extract.d.ts} +10 -32
  451. package/dist/{graph-extract.js → graph/extract.js} +40 -81
  452. package/dist/{graph-recall.d.ts → graph/recall.d.ts} +9 -22
  453. package/dist/{graph-recall.js → graph/recall.js} +65 -108
  454. package/dist/graph/stream.d.ts +38 -0
  455. package/dist/{graph-stream.js → graph/stream.js} +20 -41
  456. package/dist/graph/view.d.ts +50 -0
  457. package/dist/graph/view.js +265 -0
  458. package/dist/graph/write.d.ts +4 -76
  459. package/dist/graph/write.js +13 -397
  460. package/dist/hooks/codex-session.js +1 -1
  461. package/dist/hooks/codex-wrapper.js +16 -17
  462. package/dist/hooks/copilot.d.ts +1 -8
  463. package/dist/hooks/copilot.js +16 -16
  464. package/dist/{cli → hooks}/hook-blocks.d.ts +6 -2
  465. package/dist/{cli → hooks}/hook-blocks.js +38 -125
  466. package/dist/hooks/json-hooks.d.ts +5 -37
  467. package/dist/hooks/json-hooks.js +49 -179
  468. package/dist/hooks/opencode.d.ts +0 -38
  469. package/dist/hooks/opencode.js +44 -103
  470. package/dist/hooks/shared.d.ts +8 -21
  471. package/dist/hooks/shared.js +30 -25
  472. package/dist/importers/core.d.ts +13 -42
  473. package/dist/importers/core.js +48 -64
  474. package/dist/importers/markdown-parse.d.ts +9 -32
  475. package/dist/importers/markdown-parse.js +10 -44
  476. package/dist/importers/markdown.js +5 -13
  477. package/dist/importers/sources.js +57 -81
  478. package/dist/importers/vault.d.ts +2 -8
  479. package/dist/importers/vault.js +95 -172
  480. package/dist/index.d.ts +26 -22
  481. package/dist/index.js +25 -21
  482. package/dist/learn/autolearn.d.ts +29 -0
  483. package/dist/{autolearn.js → learn/autolearn.js} +26 -51
  484. package/dist/{churn-git.d.ts → learn/churn-git.d.ts} +1 -1
  485. package/dist/{churn-git.js → learn/churn-git.js} +6 -4
  486. package/dist/{extract.d.ts → learn/extract.d.ts} +1 -1
  487. package/dist/learn/extract.js +123 -0
  488. package/dist/learn/forward-claim-detector.d.ts +12 -0
  489. package/dist/learn/forward-claim-detector.js +60 -0
  490. package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +10 -18
  491. package/dist/{invalidation.js → learn/invalidation.js} +92 -125
  492. package/dist/mcp/admin-tools.d.ts +1 -1
  493. package/dist/mcp/admin-tools.js +39 -64
  494. package/dist/mcp/format.d.ts +5 -5
  495. package/dist/mcp/format.js +7 -6
  496. package/dist/mcp/framing.d.ts +6 -0
  497. package/dist/mcp/framing.js +11 -3
  498. package/dist/mcp/memory-tools.js +10 -35
  499. package/dist/mcp/protocol.d.ts +14 -36
  500. package/dist/mcp/protocol.js +10 -19
  501. package/dist/mcp/recall-tools.d.ts +2 -2
  502. package/dist/mcp/recall-tools.js +70 -52
  503. package/dist/mcp/request.d.ts +3 -11
  504. package/dist/mcp/request.js +71 -85
  505. package/dist/mcp/server.d.ts +3 -9
  506. package/dist/mcp/server.js +6 -17
  507. package/dist/mcp/session-state.d.ts +2 -3
  508. package/dist/mcp/session-state.js +7 -13
  509. package/dist/mcp/shared-gate.js +1 -1
  510. package/dist/mcp/stdio.d.ts +2 -6
  511. package/dist/mcp/stdio.js +112 -38
  512. package/dist/mcp/tool-args.js +2 -1
  513. package/dist/mcp/tools.js +7 -5
  514. package/dist/objects/customer-notes.d.ts +44 -0
  515. package/dist/objects/customer-notes.js +71 -0
  516. package/dist/objects/decisions.d.ts +41 -0
  517. package/dist/objects/decisions.js +63 -0
  518. package/dist/objects/descriptor.d.ts +52 -0
  519. package/dist/objects/descriptor.js +4 -0
  520. package/dist/objects/fields.d.ts +15 -0
  521. package/dist/objects/fields.js +21 -0
  522. package/dist/objects/incidents.d.ts +45 -0
  523. package/dist/objects/incidents.js +96 -0
  524. package/dist/objects/lifecycle.d.ts +27 -0
  525. package/dist/objects/lifecycle.js +96 -0
  526. package/dist/objects/policies.d.ts +60 -0
  527. package/dist/objects/policies.js +102 -0
  528. package/dist/objects/processes.d.ts +43 -0
  529. package/dist/objects/processes.js +92 -0
  530. package/dist/objects/project-briefs.d.ts +63 -0
  531. package/dist/objects/project-briefs.js +194 -0
  532. package/dist/objects/skills.d.ts +51 -0
  533. package/dist/objects/skills.js +110 -0
  534. package/dist/postinstall.js +10 -21
  535. package/dist/predictions/planning-fallacy.d.ts +14 -109
  536. package/dist/predictions/planning-fallacy.js +4 -129
  537. package/dist/rerankers/clef.d.ts +2 -6
  538. package/dist/rerankers/clef.js +28 -76
  539. package/dist/rerankers/cross-encoder.d.ts +0 -7
  540. package/dist/rerankers/cross-encoder.js +18 -28
  541. package/dist/rerankers/index.js +8 -7
  542. package/dist/rerankers/jev.d.ts +1 -4
  543. package/dist/rerankers/jev.js +36 -52
  544. package/dist/rerankers/llm.d.ts +2 -13
  545. package/dist/rerankers/llm.js +42 -59
  546. package/dist/rerankers/outage-warning.d.ts +8 -0
  547. package/dist/rerankers/outage-warning.js +32 -0
  548. package/dist/rerankers/remote.d.ts +4 -0
  549. package/dist/rerankers/remote.js +25 -0
  550. package/dist/rerankers/types.d.ts +3 -15
  551. package/dist/search/as-of.d.ts +1 -1
  552. package/dist/search/bm25-search.d.ts +2 -2
  553. package/dist/search/bm25-search.js +7 -7
  554. package/dist/search/bm25.d.ts +1 -1
  555. package/dist/search/bm25.js +1 -1
  556. package/dist/search/boosts.d.ts +5 -3
  557. package/dist/search/boosts.js +36 -15
  558. package/dist/search/breakdown.d.ts +2 -2
  559. package/dist/search/breakdown.js +2 -1
  560. package/dist/search/explain.d.ts +1 -1
  561. package/dist/search/explain.js +3 -2
  562. package/dist/search/finalize.d.ts +2 -2
  563. package/dist/search/finalize.js +4 -3
  564. package/dist/search/fusion.d.ts +1 -1
  565. package/dist/search/fusion.js +3 -3
  566. package/dist/search/goal-boost.d.ts +23 -0
  567. package/dist/search/goal-boost.js +90 -0
  568. package/dist/search/hybrid-score.d.ts +2 -2
  569. package/dist/search/hybrid-score.js +1 -1
  570. package/dist/search/hybrid.d.ts +6 -4
  571. package/dist/search/hybrid.js +11 -8
  572. package/dist/{multihop.d.ts → search/multihop.d.ts} +2 -2
  573. package/dist/{multihop.js → search/multihop.js} +9 -8
  574. package/dist/search/path-context.d.ts +11 -0
  575. package/dist/{path-context.js → search/path-context.js} +8 -19
  576. package/dist/search/physics-search.d.ts +4 -4
  577. package/dist/search/physics-search.js +25 -22
  578. package/dist/search/rerank.d.ts +3 -3
  579. package/dist/search/rerank.js +4 -3
  580. package/dist/search/rrf.d.ts +15 -0
  581. package/dist/search/rrf.js +36 -0
  582. package/dist/search/temporal.d.ts +1 -1
  583. package/dist/search/temporal.js +5 -2
  584. package/dist/search/vector.d.ts +10 -3
  585. package/dist/search/vector.js +51 -15
  586. package/dist/server/auth.d.ts +10 -29
  587. package/dist/server/auth.js +57 -42
  588. package/dist/server/boot.d.ts +5 -0
  589. package/dist/server/boot.js +432 -0
  590. package/dist/server/client-ip.d.ts +8 -20
  591. package/dist/server/client-ip.js +23 -34
  592. package/dist/server/cursor.d.ts +1 -1
  593. package/dist/server/cursor.js +2 -3
  594. package/dist/server/deadline.d.ts +13 -0
  595. package/dist/server/deadline.js +45 -0
  596. package/dist/server/defaults.d.ts +3 -0
  597. package/dist/server/defaults.js +4 -0
  598. package/dist/server/key-check-bounds.d.ts +9 -0
  599. package/dist/server/key-check-bounds.js +46 -0
  600. package/dist/server/lifecycle.d.ts +5 -4
  601. package/dist/server/lifecycle.js +20 -5
  602. package/dist/server/mcp-http.d.ts +1 -4
  603. package/dist/server/mcp-http.js +44 -68
  604. package/dist/server/rate-limit.d.ts +21 -0
  605. package/dist/{rate-limit.js → server/rate-limit.js} +4 -13
  606. package/dist/server/ready.d.ts +7 -0
  607. package/dist/server/ready.js +38 -0
  608. package/dist/server/request.d.ts +14 -12
  609. package/dist/server/request.js +71 -28
  610. package/dist/server/route-table.d.ts +15 -0
  611. package/dist/server/route-table.js +202 -0
  612. package/dist/server/routes/admin.js +29 -30
  613. package/dist/server/routes/customer-notes.d.ts +5 -5
  614. package/dist/server/routes/customer-notes.js +35 -105
  615. package/dist/server/routes/decisions.d.ts +5 -5
  616. package/dist/server/routes/decisions.js +45 -115
  617. package/dist/server/routes/incidents.d.ts +5 -5
  618. package/dist/server/routes/incidents.js +44 -105
  619. package/dist/server/routes/memories.js +21 -43
  620. package/dist/server/routes/object-routes.d.ts +35 -0
  621. package/dist/server/routes/object-routes.js +72 -0
  622. package/dist/server/routes/policies.d.ts +6 -6
  623. package/dist/server/routes/policies.js +42 -134
  624. package/dist/server/routes/predictions.js +35 -63
  625. package/dist/server/routes/processes.d.ts +5 -5
  626. package/dist/server/routes/processes.js +44 -134
  627. package/dist/server/routes/project-briefs.d.ts +6 -6
  628. package/dist/server/routes/project-briefs.js +41 -120
  629. package/dist/server/routes/recall.js +21 -44
  630. package/dist/server/routes/skills.d.ts +6 -6
  631. package/dist/server/routes/skills.js +40 -138
  632. package/dist/server/server-detect.d.ts +28 -0
  633. package/dist/server/server-detect.js +156 -0
  634. package/dist/server/sleep-child.d.ts +2 -0
  635. package/dist/server/sleep-child.js +19 -0
  636. package/dist/server/sleep-offload.d.ts +20 -0
  637. package/dist/server/sleep-offload.js +73 -0
  638. package/dist/server/tls.d.ts +6 -0
  639. package/dist/server/tls.js +24 -0
  640. package/dist/server/types.d.ts +35 -14
  641. package/dist/server/validation.d.ts +6 -5
  642. package/dist/server/validation.js +16 -34
  643. package/dist/server.d.ts +39 -61
  644. package/dist/server.js +26 -569
  645. package/dist/sharing/global-store.d.ts +19 -0
  646. package/dist/sharing/global-store.js +75 -0
  647. package/dist/sharing/global-sync.d.ts +6 -0
  648. package/dist/sharing/global-sync.js +80 -0
  649. package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +5 -6
  650. package/dist/{project-merge.js → sharing/project-merge.js} +34 -51
  651. package/dist/sharing/scope.d.ts +7 -0
  652. package/dist/{scope.js → sharing/scope.js} +5 -12
  653. package/dist/sharing/search-both.d.ts +60 -0
  654. package/dist/sharing/search-both.js +138 -0
  655. package/dist/sharing/share.d.ts +38 -0
  656. package/dist/sharing/share.js +226 -0
  657. package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
  658. package/dist/{ambient-store.js → store/ambient.js} +11 -16
  659. package/dist/store/audit-event.d.ts +15 -17
  660. package/dist/store/audit-event.js +9 -16
  661. package/dist/{audit.d.ts → store/audit.d.ts} +29 -8
  662. package/dist/{audit.js → store/audit.js} +95 -18
  663. package/dist/{auth.d.ts → store/auth.d.ts} +19 -36
  664. package/dist/{auth.js → store/auth.js} +108 -99
  665. package/dist/store/candidates.d.ts +41 -13
  666. package/dist/store/candidates.js +141 -60
  667. package/dist/{card-detail.d.ts → store/card-detail.d.ts} +5 -4
  668. package/dist/{card-detail.js → store/card-detail.js} +3 -2
  669. package/dist/{store-cards.d.ts → store/cards.d.ts} +26 -16
  670. package/dist/{store-cards.js → store/cards.js} +133 -248
  671. package/dist/store/compactions.d.ts +78 -0
  672. package/dist/store/compactions.js +93 -0
  673. package/dist/store/conflicts.d.ts +26 -26
  674. package/dist/store/conflicts.js +194 -222
  675. package/dist/store/connectors/github.d.ts +84 -0
  676. package/dist/store/connectors/github.js +180 -0
  677. package/dist/store/connectors/slack.d.ts +69 -0
  678. package/dist/store/connectors/slack.js +177 -0
  679. package/dist/store/dashboard-reads.d.ts +27 -0
  680. package/dist/store/dashboard-reads.js +88 -0
  681. package/dist/store/delete-and-batch.d.ts +27 -51
  682. package/dist/store/delete-and-batch.js +100 -92
  683. package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +16 -5
  684. package/dist/{delivery-recorder.js → store/delivery-recorder.js} +60 -38
  685. package/dist/store/descendant-page.d.ts +12 -0
  686. package/dist/store/descendant-page.js +99 -0
  687. package/dist/store/diagnostics.d.ts +47 -0
  688. package/dist/store/diagnostics.js +44 -0
  689. package/dist/store/doctor-reads.d.ts +16 -0
  690. package/dist/store/doctor-reads.js +19 -0
  691. package/dist/store/dormant.d.ts +105 -0
  692. package/dist/store/dormant.js +241 -0
  693. package/dist/store/embeddings/index.d.ts +36 -0
  694. package/dist/{embeddings.js → store/embeddings/index.js} +104 -224
  695. package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
  696. package/dist/{local-embedding.js → store/embeddings/local.js} +69 -75
  697. package/dist/store/embeddings/provider.d.ts +40 -0
  698. package/dist/{embedding-provider.js → store/embeddings/provider.js} +78 -91
  699. package/dist/store/entry-reads.d.ts +66 -63
  700. package/dist/store/entry-reads.js +159 -121
  701. package/dist/store/entry-row.d.ts +14 -37
  702. package/dist/store/entry-row.js +37 -45
  703. package/dist/store/entry-writes.d.ts +40 -17
  704. package/dist/store/entry-writes.js +105 -41
  705. package/dist/{failure-log.d.ts → store/failure-log.d.ts} +7 -2
  706. package/dist/{failure-log.js → store/failure-log.js} +9 -2
  707. package/dist/store/goals.d.ts +96 -0
  708. package/dist/store/goals.js +260 -0
  709. package/dist/store/graph-queue.d.ts +13 -0
  710. package/dist/store/graph-queue.js +70 -0
  711. package/dist/store/graph-reads.d.ts +41 -0
  712. package/dist/{graph/read.js → store/graph-reads.js} +72 -162
  713. package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +71 -14
  714. package/dist/{graph/rows.js → store/graph-rows.js} +20 -12
  715. package/dist/store/graph-view-rows.d.ts +13 -0
  716. package/dist/store/graph-view-rows.js +68 -0
  717. package/dist/store/graph-writes.d.ts +33 -0
  718. package/dist/store/graph-writes.js +232 -0
  719. package/dist/store/half-life.d.ts +35 -0
  720. package/dist/store/half-life.js +75 -0
  721. package/dist/store/handoffs.d.ts +6 -12
  722. package/dist/store/handoffs.js +54 -63
  723. package/dist/store/index-and-stats.d.ts +14 -20
  724. package/dist/store/index-and-stats.js +74 -119
  725. package/dist/store/index.d.ts +4 -0
  726. package/dist/store/index.js +3 -0
  727. package/dist/store/key-audit.d.ts +2 -2
  728. package/dist/store/key-audit.js +4 -4
  729. package/dist/store/key-writes.d.ts +12 -5
  730. package/dist/store/key-writes.js +30 -4
  731. package/dist/store/ledger-turn.d.ts +17 -0
  732. package/dist/store/ledger-turn.js +27 -0
  733. package/dist/store/markdown.d.ts +3 -7
  734. package/dist/store/markdown.js +25 -23
  735. package/dist/store/mirrors.d.ts +7 -13
  736. package/dist/store/mirrors.js +52 -47
  737. package/dist/store/object-types.d.ts +189 -0
  738. package/dist/store/object-types.js +4 -0
  739. package/dist/store/open.d.ts +6 -4
  740. package/dist/store/open.js +30 -36
  741. package/dist/store/planning-fallacy-evidence.d.ts +14 -0
  742. package/dist/store/planning-fallacy-evidence.js +52 -0
  743. package/dist/store/port.d.ts +649 -0
  744. package/dist/store/port.js +17 -0
  745. package/dist/{predictions/store.d.ts → store/predictions.d.ts} +25 -52
  746. package/dist/{predictions/store.js → store/predictions.js} +88 -184
  747. package/dist/{quality-repair.js → store/quality-repair.js} +27 -57
  748. package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
  749. package/dist/{quarantine.js → store/quarantine.js} +64 -22
  750. package/dist/store/raw-archive.d.ts +14 -0
  751. package/dist/{raw-archive.js → store/raw-archive.js} +20 -31
  752. package/dist/store/recall-scope.d.ts +78 -0
  753. package/dist/{recall-scope.js → store/recall-scope.js} +23 -84
  754. package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -81
  755. package/dist/{recall-trace.js → store/recall-trace.js} +41 -122
  756. package/dist/store/rejected-values.d.ts +55 -0
  757. package/dist/store/rejected-values.js +150 -0
  758. package/dist/store/rejection.d.ts +54 -0
  759. package/dist/{rejection.js → store/rejection.js} +16 -67
  760. package/dist/store/report-reads.d.ts +6 -0
  761. package/dist/store/report-reads.js +29 -0
  762. package/dist/store/rows.d.ts +11 -22
  763. package/dist/store/rows.js +52 -43
  764. package/dist/store/rule-sql.d.ts +5 -0
  765. package/dist/store/rule-sql.js +37 -0
  766. package/dist/store/search-rows.d.ts +22 -42
  767. package/dist/store/search-rows.js +55 -78
  768. package/dist/store/sessions.d.ts +23 -49
  769. package/dist/store/sessions.js +96 -118
  770. package/dist/store/sqlite/commit-watch.d.ts +4 -0
  771. package/dist/store/sqlite/commit-watch.js +29 -0
  772. package/dist/store/sqlite/connector-events-group.d.ts +5 -0
  773. package/dist/store/sqlite/connector-events-group.js +50 -0
  774. package/dist/store/sqlite/connector-writes-group.d.ts +6 -0
  775. package/dist/store/sqlite/connector-writes-group.js +65 -0
  776. package/dist/store/sqlite/dag-reads-group.d.ts +3 -0
  777. package/dist/store/sqlite/dag-reads-group.js +45 -0
  778. package/dist/store/sqlite/entry-writes-group.d.ts +18 -0
  779. package/dist/store/{entry-writes-group.js → sqlite/entry-writes-group.js} +73 -60
  780. package/dist/store/sqlite/error-codec.d.ts +17 -0
  781. package/dist/store/sqlite/error-codec.js +61 -0
  782. package/dist/store/sqlite/executor-counts.d.ts +10 -0
  783. package/dist/store/sqlite/executor-counts.js +11 -0
  784. package/dist/store/sqlite/executor.d.ts +29 -0
  785. package/dist/store/sqlite/executor.js +287 -0
  786. package/dist/store/sqlite/graph-reads-group.d.ts +5 -0
  787. package/dist/store/sqlite/graph-reads-group.js +18 -0
  788. package/dist/store/sqlite/local.d.ts +21 -0
  789. package/dist/store/sqlite/local.js +39 -0
  790. package/dist/store/sqlite/object-rows.d.ts +102 -0
  791. package/dist/store/sqlite/object-rows.js +221 -0
  792. package/dist/store/sqlite/objects-group.d.ts +20 -0
  793. package/dist/store/sqlite/objects-group.js +316 -0
  794. package/dist/store/sqlite/predictions-group.d.ts +5 -0
  795. package/dist/store/sqlite/predictions-group.js +28 -0
  796. package/dist/store/sqlite/quarantine-group.d.ts +5 -0
  797. package/dist/store/sqlite/quarantine-group.js +38 -0
  798. package/dist/store/sqlite/store.d.ts +23 -0
  799. package/dist/store/sqlite/store.js +294 -0
  800. package/dist/store/sqlite/vector-pack.d.ts +18 -0
  801. package/dist/store/sqlite/vector-pack.js +46 -0
  802. package/dist/store/sqlite/vector-reads-group.d.ts +3 -0
  803. package/dist/store/sqlite/vector-reads-group.js +23 -0
  804. package/dist/store/sqlite/worker-entry.d.ts +2 -0
  805. package/dist/store/sqlite/worker-entry.js +8 -0
  806. package/dist/store/sqlite/worker-jobs.d.ts +5 -0
  807. package/dist/store/sqlite/worker-jobs.js +116 -0
  808. package/dist/store/sqlite/worker-ops.d.ts +135 -0
  809. package/dist/store/sqlite/worker-ops.js +93 -0
  810. package/dist/store/sqlite/worker-store.d.ts +8 -0
  811. package/dist/store/sqlite/worker-store.js +79 -0
  812. package/dist/store/summaries.d.ts +11 -72
  813. package/dist/store/summaries.js +47 -186
  814. package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
  815. package/dist/{summary-dirty.js → store/summary-dirty.js} +1 -1
  816. package/dist/store/tenant-lookup.d.ts +6 -1
  817. package/dist/store/tenant-lookup.js +7 -0
  818. package/dist/store/tenant.d.ts +11 -0
  819. package/dist/store/tenant.js +28 -0
  820. package/dist/store/token-ledger-rows.d.ts +61 -0
  821. package/dist/store/token-ledger-rows.js +68 -0
  822. package/dist/{token-ledger.d.ts → store/token-ledger.d.ts} +14 -51
  823. package/dist/{token-ledger.js → store/token-ledger.js} +51 -129
  824. package/dist/store/tombstone-checks.d.ts +12 -0
  825. package/dist/store/tombstone-checks.js +31 -0
  826. package/dist/store/usage-reports.d.ts +7 -0
  827. package/dist/store/usage-reports.js +18 -0
  828. package/dist/store/vector-index.d.ts +46 -0
  829. package/dist/store/vector-index.js +170 -0
  830. package/dist/{working-memory.d.ts → store/working-memory.d.ts} +11 -26
  831. package/dist/store/working-memory.js +118 -0
  832. package/dist/{yaml.d.ts → store/yaml.d.ts} +1 -5
  833. package/dist/{yaml.js → store/yaml.js} +2 -6
  834. package/dist/support-bundle.d.ts +1 -1
  835. package/dist/support-bundle.js +19 -37
  836. package/dist/{gated-write.d.ts → trust/gated-write.d.ts} +2 -2
  837. package/dist/{gated-write.js → trust/gated-write.js} +6 -6
  838. package/dist/trust/quarantine.d.ts +4 -0
  839. package/dist/trust/quarantine.js +8 -0
  840. package/dist/trust/reject-flow.d.ts +23 -0
  841. package/dist/trust/reject-flow.js +65 -0
  842. package/dist/util/anthropic-messages.d.ts +31 -0
  843. package/dist/util/anthropic-messages.js +58 -0
  844. package/dist/util/atomic-write.d.ts +4 -0
  845. package/dist/util/atomic-write.js +138 -0
  846. package/dist/util/capped-json.d.ts +6 -0
  847. package/dist/util/capped-json.js +46 -0
  848. package/dist/util/crash-handlers.d.ts +12 -0
  849. package/dist/util/crash-handlers.js +72 -0
  850. package/dist/{env.d.ts → util/env.d.ts} +27 -7
  851. package/dist/{env.js → util/env.js} +33 -8
  852. package/dist/{home-path.d.ts → util/home-path.d.ts} +2 -1
  853. package/dist/util/home-path.js +69 -0
  854. package/dist/{http-retry.d.ts → util/http-retry.d.ts} +8 -2
  855. package/dist/util/http-retry.js +103 -0
  856. package/dist/{http-util.d.ts → util/http-util.d.ts} +14 -3
  857. package/dist/{http-util.js → util/http-util.js} +31 -11
  858. package/dist/util/json.d.ts +17 -0
  859. package/dist/util/json.js +25 -0
  860. package/dist/{log.d.ts → util/log.d.ts} +7 -3
  861. package/dist/{log.js → util/log.js} +36 -11
  862. package/dist/util/real-path.d.ts +3 -0
  863. package/dist/util/real-path.js +15 -0
  864. package/dist/util/request-scope.d.ts +28 -0
  865. package/dist/util/request-scope.js +48 -0
  866. package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
  867. package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +5 -30
  868. package/dist/{secret-detect.js → util/secret-detect.js} +17 -42
  869. package/dist/util/stored-json.d.ts +9 -0
  870. package/dist/util/stored-json.js +8 -0
  871. package/dist/util/time.d.ts +2 -0
  872. package/dist/util/time.js +3 -0
  873. package/dist/util/token-text.d.ts +15 -0
  874. package/dist/util/token-text.js +20 -0
  875. package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +2 -0
  876. package/dist/util/transcript-tail.js +49 -0
  877. package/dist/util/version.d.ts +11 -0
  878. package/dist/util/version.js +26 -0
  879. package/extensions/openclaw-plugin/index.ts +2 -6
  880. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  881. package/extensions/openclaw-plugin/package.json +1 -1
  882. package/openclaw.plugin.json +1 -1
  883. package/package.json +2 -2
  884. package/dist/ablation.d.ts +0 -102
  885. package/dist/ablation.js +0 -136
  886. package/dist/api.d.ts +0 -26
  887. package/dist/api.js +0 -29
  888. package/dist/audit-prune.d.ts +0 -62
  889. package/dist/audit-prune.js +0 -107
  890. package/dist/autolearn.d.ts +0 -56
  891. package/dist/client.d.ts +0 -48
  892. package/dist/compare.d.ts +0 -86
  893. package/dist/compare.js +0 -117
  894. package/dist/connectors/github/cli-impl.d.ts +0 -25
  895. package/dist/connectors/github/cli-impl.js +0 -227
  896. package/dist/connectors/github/idempotency.d.ts +0 -19
  897. package/dist/connectors/github/idempotency.js +0 -27
  898. package/dist/connectors/slack/idempotency.d.ts +0 -17
  899. package/dist/connectors/slack/idempotency.js +0 -31
  900. package/dist/correction-latency.d.ts +0 -36
  901. package/dist/customer-notes.d.ts +0 -96
  902. package/dist/customer-notes.js +0 -336
  903. package/dist/db.d.ts +0 -9
  904. package/dist/db.js +0 -8
  905. package/dist/decisions.d.ts +0 -94
  906. package/dist/decisions.js +0 -326
  907. package/dist/dedupe.d.ts +0 -75
  908. package/dist/dedupe.js +0 -169
  909. package/dist/dormant.d.ts +0 -93
  910. package/dist/dormant.js +0 -137
  911. package/dist/embedding-provider.d.ts +0 -77
  912. package/dist/embeddings.d.ts +0 -101
  913. package/dist/extract.js +0 -133
  914. package/dist/forward-claim-detector.d.ts +0 -36
  915. package/dist/forward-claim-detector.js +0 -112
  916. package/dist/goals.d.ts +0 -173
  917. package/dist/goals.js +0 -448
  918. package/dist/graph/read.d.ts +0 -73
  919. package/dist/graph/rows.d.ts +0 -45
  920. package/dist/graph/types.js +0 -11
  921. package/dist/graph-stream.d.ts +0 -70
  922. package/dist/graph-view.d.ts +0 -73
  923. package/dist/graph-view.js +0 -333
  924. package/dist/half-life-migration.d.ts +0 -63
  925. package/dist/half-life-migration.js +0 -182
  926. package/dist/handoff.js +0 -68
  927. package/dist/home-path.js +0 -24
  928. package/dist/http-retry.js +0 -51
  929. package/dist/incidents.d.ts +0 -103
  930. package/dist/incidents.js +0 -349
  931. package/dist/instruction-detect.js +0 -27
  932. package/dist/json.d.ts +0 -7
  933. package/dist/json.js +0 -11
  934. package/dist/ledger-db.d.ts +0 -10
  935. package/dist/ledger-db.js +0 -42
  936. package/dist/memory-value-weights.d.ts +0 -19
  937. package/dist/memory-value.d.ts +0 -113
  938. package/dist/memory-value.js +0 -250
  939. package/dist/memory.d.ts +0 -294
  940. package/dist/memory.js +0 -522
  941. package/dist/owner-validation.d.ts +0 -42
  942. package/dist/owner-validation.js +0 -56
  943. package/dist/path-context.d.ts +0 -24
  944. package/dist/physics-state.d.ts +0 -39
  945. package/dist/policies.d.ts +0 -151
  946. package/dist/policies.js +0 -434
  947. package/dist/processes.d.ts +0 -108
  948. package/dist/processes.js +0 -371
  949. package/dist/project-briefs.d.ts +0 -128
  950. package/dist/project-briefs.js +0 -523
  951. package/dist/provenance-coverage.d.ts +0 -18
  952. package/dist/rate-limit.d.ts +0 -34
  953. package/dist/raw-archive-mirror-cleanup.d.ts +0 -20
  954. package/dist/raw-archive.d.ts +0 -24
  955. package/dist/recall-history.d.ts +0 -131
  956. package/dist/recall-history.js +0 -227
  957. package/dist/recall-scope.d.ts +0 -138
  958. package/dist/refine-llm.d.ts +0 -61
  959. package/dist/refine-llm.js +0 -167
  960. package/dist/reject-flow.d.ts +0 -69
  961. package/dist/reject-flow.js +0 -260
  962. package/dist/rejection.d.ts +0 -100
  963. package/dist/replay.d.ts +0 -41
  964. package/dist/replay.js +0 -122
  965. package/dist/rrf.d.ts +0 -43
  966. package/dist/rrf.js +0 -61
  967. package/dist/scope.d.ts +0 -14
  968. package/dist/server-detect.d.ts +0 -72
  969. package/dist/server-detect.js +0 -222
  970. package/dist/session-owners.d.ts +0 -7
  971. package/dist/session-owners.js +0 -54
  972. package/dist/shared.d.ts +0 -186
  973. package/dist/shared.js +0 -540
  974. package/dist/skills.d.ts +0 -101
  975. package/dist/skills.js +0 -367
  976. package/dist/store/entry-writes-group.d.ts +0 -9
  977. package/dist/store/vector-writes.d.ts +0 -6
  978. package/dist/store/vector-writes.js +0 -59
  979. package/dist/store-port.d.ts +0 -262
  980. package/dist/store-port.js +0 -178
  981. package/dist/tenant.d.ts +0 -25
  982. package/dist/tenant.js +0 -43
  983. package/dist/trace.d.ts +0 -34
  984. package/dist/transcript-tail.js +0 -48
  985. package/dist/version.d.ts +0 -26
  986. package/dist/version.js +0 -41
  987. package/dist/working-memory.js +0 -154
  988. /package/dist/{context-auto.d.ts → api/context-auto.d.ts} +0 -0
  989. /package/dist/{instruction-detect.d.ts → api/instruction-detect.d.ts} +0 -0
  990. /package/dist/{codex-patch.d.ts → capture/codex-patch.d.ts} +0 -0
  991. /package/dist/{compaction-items.d.ts → capture/compaction-items.d.ts} +0 -0
  992. /package/dist/{share-scrub.d.ts → capture/share-scrub.d.ts} +0 -0
  993. /package/dist/{overlap-index.d.ts → consolidate/overlap-index.d.ts} +0 -0
  994. /package/dist/{overlap-index.js → consolidate/overlap-index.js} +0 -0
  995. /package/dist/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
  996. /package/dist/{api-errors.js → core/api-errors.js} +0 -0
  997. /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
  998. /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
  999. /package/dist/{prompt-recall.d.ts → core/prompt-recall.d.ts} +0 -0
  1000. /package/dist/{dashboard-params.d.ts → dashboard/dashboard-params.d.ts} +0 -0
  1001. /package/dist/{dashboard-params.js → dashboard/dashboard-params.js} +0 -0
  1002. /package/dist/{dashboard-types.js → dashboard/dashboard-types.js} +0 -0
  1003. /package/dist/{quality-repair.d.ts → store/quality-repair.d.ts} +0 -0
  1004. /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
  1005. /package/dist/{escape.js → util/escape.js} +0 -0
  1006. /package/dist/{keyset.d.ts → util/keyset.d.ts} +0 -0
  1007. /package/dist/{keyset.js → util/keyset.js} +0 -0
  1008. /package/dist/{same-text.js → util/same-text.js} +0 -0
  1009. /package/dist/{db → util}/sqlite-blocked.d.ts +0 -0
  1010. /package/dist/{db → util}/sqlite-blocked.js +0 -0
  1011. /package/dist/{tokenize.d.ts → util/tokenize.d.ts} +0 -0
  1012. /package/dist/{tokenize.js → util/tokenize.js} +0 -0
  1013. /package/dist/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
  1014. /package/dist/{write-budget.js → util/write-budget.js} +0 -0
@@ -1,56 +1,36 @@
1
1
  // /v1/decisions routes.
2
- import { closeDecision, loadDecisionById, loadDecisions, saveDecision, VALID_DECISION_STATES } from '../../decisions.js';
3
- import { HttpError, sendJson } from '../../http-util.js';
4
- import { NotFoundError } from '../../api-errors.js';
2
+ import { DECISION } from '../../objects/decisions.js';
3
+ import { HttpError, sendJson } from '../../util/http-util.js';
4
+ import { NotFoundError } from '../../core/api-errors.js';
5
+ import { isJsonNumber } from '../../util/json.js';
5
6
  import { buildContextWithAuth } from '../auth.js';
6
- import { byCreatedAt, pageOf, parseCursor } from '../cursor.js';
7
- import { isJsonNumber, isSetMember, parseJsonBody, parseListLimit } from '../validation.js';
8
- import { isJsonString } from '../../json.js';
9
- // ── decisions (first-class object) ──
10
- //
11
- // 5 routes: POST /v1/decisions (create, optional supersedesDecisionId),
12
- // GET /v1/decisions (list, status filter), GET /v1/decisions/:id (show),
13
- // POST /v1/decisions/:id/supersede (create a successor + supersede :id),
14
- // POST /v1/decisions/:id/close (retire). Bearer-authed + tenant-scoped via
15
- // buildContextWithAuth. status validated against VALID_DECISION_STATES.
16
- // DoS caps: text 4096, context 4096. The HTTP surface is
17
- // new (no legacy --supersedes <memory-id> constraint), so it supersedes by
18
- // table id and never weakens a memory mirror.
19
- export async function handleCreateDecision({ req, res, opts }) {
20
- const ctx = await buildContextWithAuth(req, opts);
21
- const body = await parseJsonBody(req, ctx);
22
- const text = body['text'];
23
- if (!isJsonString(text) || text.length === 0) {
24
- throw new HttpError(400, 'text is required (non-empty string)');
25
- }
26
- if (text.length > 4096) {
27
- throw new HttpError(400, 'text exceeds 4096-character cap');
28
- }
29
- const contextRaw = body['context'];
30
- let context;
31
- if (contextRaw !== undefined && contextRaw !== null) {
32
- if (!isJsonString(contextRaw)) {
33
- throw new HttpError(400, 'context must be a string');
34
- }
35
- if (contextRaw.length > 4096) {
36
- throw new HttpError(400, 'context exceeds 4096-character cap');
37
- }
38
- context = contextRaw;
39
- }
40
- const supRaw = body['supersedesDecisionId'];
41
- let supersedesDecisionId;
42
- if (supRaw !== undefined && supRaw !== null) {
43
- if (!isJsonNumber(supRaw) || !Number.isInteger(supRaw) || supRaw <= 0) {
44
- throw new HttpError(400, 'supersedesDecisionId must be a positive integer');
45
- }
46
- supersedesDecisionId = supRaw;
7
+ import { MAX_SHORT_FIELD_LEN, parseJsonBody } from '../validation.js';
8
+ import { saveFor } from '../../api/objects.js';
9
+ import { closeRoute, getRoute, listRoute, optionalString, requiredString } from './object-routes.js';
10
+ const decisionRoutes = { noun: 'decision', field: 'decision', listField: 'decisions', object: DECISION };
11
+ const TEXT = { max: MAX_SHORT_FIELD_LEN, untrimmed: true };
12
+ function supersededId(body) {
13
+ const raw = body['supersedesDecisionId'];
14
+ if (raw === undefined || raw === null)
15
+ return undefined;
16
+ if (!isJsonNumber(raw) || !Number.isInteger(raw) || raw <= 0) {
17
+ throw new HttpError(400, 'supersedesDecisionId must be a positive integer');
47
18
  }
19
+ return raw;
20
+ }
21
+ // Routes: /v1/decisions (create, list, show, supersede, close), Bearer-authed and tenant-scoped; status is validated against VALID_DECISION_STATES.
22
+ // The HTTP surface has no legacy --supersedes <memory-id> constraint, so it supersedes by table id and never weakens a memory mirror.
23
+ export async function handleCreateDecision(rr) {
24
+ const { req, res } = rr;
25
+ const ctx = await buildContextWithAuth(req, rr.opts);
26
+ const body = await parseJsonBody(req, ctx);
27
+ const write = {
28
+ decisionText: requiredString(body, 'text', TEXT),
29
+ context: optionalString(body, 'context', MAX_SHORT_FIELD_LEN),
30
+ supersedesDecisionId: supersededId(body),
31
+ };
48
32
  try {
49
- const decision = saveDecision(opts.hippoRoot, ctx.tenantId, {
50
- decisionText: text,
51
- context,
52
- supersedesDecisionId,
53
- }, ctx.actor.subject);
33
+ const decision = await saveFor(ctx, DECISION, write);
54
34
  sendJson(res, 201, { decision });
55
35
  }
56
36
  catch (e) {
@@ -59,76 +39,26 @@ export async function handleCreateDecision({ req, res, opts }) {
59
39
  throw new HttpError(409, e.message);
60
40
  throw e;
61
41
  }
62
- return;
63
42
  }
64
- export async function handleListDecisions({ req, res, opts, query }) {
65
- const status = query.get('status') ?? 'all';
66
- const limit = parseListLimit(query.get('limit'));
67
- const after = parseCursor(query.get('cursor'), 'string', 'integer');
68
- const ctx = await buildContextWithAuth(req, opts);
69
- let decisions;
70
- if (status === 'all') {
71
- decisions = loadDecisions(opts.hippoRoot, ctx.tenantId, { limit: limit + 1, after });
72
- }
73
- else {
74
- if (!isSetMember(VALID_DECISION_STATES, status)) {
75
- throw new HttpError(400, `status must be one of: active | superseded | closed | all (got "${status}")`);
76
- }
77
- decisions = loadDecisions(opts.hippoRoot, ctx.tenantId, {
78
- status,
79
- limit: limit + 1,
80
- after,
81
- });
82
- }
83
- const page = pageOf(decisions, limit, byCreatedAt);
84
- sendJson(res, 200, { decisions: page.items, next_cursor: page.nextCursor });
85
- return;
43
+ export function handleListDecisions(rr) {
44
+ return listRoute(decisionRoutes, rr);
86
45
  }
87
- export async function handleSupersedeDecision({ req, res, opts }, decisionSupersedeMatch) {
88
- const oldId = parseInt(decisionSupersedeMatch[1], 10);
89
- const ctx = await buildContextWithAuth(req, opts);
90
- const body = await parseJsonBody(req, ctx);
91
- const text = body['text'];
92
- if (!isJsonString(text) || text.length === 0) {
93
- throw new HttpError(400, 'text is required (non-empty string)');
94
- }
95
- if (text.length > 4096) {
96
- throw new HttpError(400, 'text exceeds 4096-character cap');
97
- }
98
- const contextRaw = body['context'];
99
- let context;
100
- if (contextRaw !== undefined && contextRaw !== null) {
101
- if (!isJsonString(contextRaw)) {
102
- throw new HttpError(400, 'context must be a string');
103
- }
104
- if (contextRaw.length > 4096) {
105
- throw new HttpError(400, 'context exceeds 4096-character cap');
106
- }
107
- context = contextRaw;
108
- }
109
- const decision = saveDecision(opts.hippoRoot, ctx.tenantId, {
110
- decisionText: text,
111
- context,
46
+ // Not on supersedeRoute: this one answers 201 and leaves the missing-row 404 to the store, where the other five answer 200 after their own lookup.
47
+ export async function handleSupersedeDecision(rr, match) {
48
+ const oldId = parseInt(match[1], 10);
49
+ const ctx = await buildContextWithAuth(rr.req, rr.opts);
50
+ const body = await parseJsonBody(rr.req, ctx);
51
+ const decision = await saveFor(ctx, DECISION, {
52
+ decisionText: requiredString(body, 'text', TEXT),
53
+ context: optionalString(body, 'context', MAX_SHORT_FIELD_LEN),
112
54
  supersedesDecisionId: oldId,
113
- }, ctx.actor.subject);
114
- sendJson(res, 201, { decision });
115
- return;
55
+ });
56
+ sendJson(rr.res, 201, { decision });
116
57
  }
117
- export async function handleCloseDecision({ req, res, opts }, decisionCloseMatch) {
118
- const id = parseInt(decisionCloseMatch[1], 10);
119
- const ctx = await buildContextWithAuth(req, opts);
120
- const decision = closeDecision(opts.hippoRoot, ctx.tenantId, id, ctx.actor.subject);
121
- sendJson(res, 200, { decision });
122
- return;
58
+ export function handleCloseDecision(rr, match) {
59
+ return closeRoute(decisionRoutes, rr, match);
123
60
  }
124
- export async function handleGetDecision({ req, res, opts }, decisionByIdMatch) {
125
- const id = parseInt(decisionByIdMatch[1], 10);
126
- const ctx = await buildContextWithAuth(req, opts);
127
- const decision = loadDecisionById(opts.hippoRoot, ctx.tenantId, id);
128
- if (!decision) {
129
- throw new HttpError(404, `decision ${id} not found`);
130
- }
131
- sendJson(res, 200, { decision });
132
- return;
61
+ export function handleGetDecision(rr, match) {
62
+ return getRoute(decisionRoutes, rr, match);
133
63
  }
134
64
  //# sourceMappingURL=decisions.js.map
@@ -1,7 +1,7 @@
1
1
  import type { RouteRequest } from '../types.js';
2
- export declare function handleCreateIncident({ req, res, opts }: RouteRequest): Promise<void>;
3
- export declare function handleListIncidents({ req, res, opts, query }: RouteRequest): Promise<void>;
4
- export declare function handleResolveIncident({ req, res, opts }: RouteRequest, incidentResolveMatch: RegExpMatchArray): Promise<void>;
5
- export declare function handleCloseIncident({ req, res, opts }: RouteRequest, incidentCloseMatch: RegExpMatchArray): Promise<void>;
6
- export declare function handleGetIncident({ req, res, opts }: RouteRequest, incidentByIdMatch: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreateIncident(rr: RouteRequest): Promise<void>;
3
+ export declare function handleListIncidents(rr: RouteRequest): Promise<void>;
4
+ export declare function handleResolveIncident(rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
5
+ export declare function handleCloseIncident(rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleGetIncident(rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
7
7
  //# sourceMappingURL=incidents.d.ts.map
@@ -1,65 +1,43 @@
1
1
  // /v1/incidents routes.
2
- import { closeIncident, loadIncidentById, loadIncidents, resolveIncident, saveIncident, VALID_INCIDENT_STATES } from '../../incidents.js';
3
- import { HttpError, sendJson } from '../../http-util.js';
4
- import { NotFoundError } from '../../api-errors.js';
2
+ import { INCIDENT, openIncident, resolveOpenIncident } from '../../objects/incidents.js';
3
+ import { HttpError, sendJson } from '../../util/http-util.js';
4
+ import { NotFoundError } from '../../core/api-errors.js';
5
5
  import { buildContextWithAuth } from '../auth.js';
6
- import { byCreatedAt, pageOf, parseCursor } from '../cursor.js';
7
- import { isSetMember, parseJsonBody, parseListLimit } from '../validation.js';
8
- import { isJsonString } from '../../json.js';
6
+ import { MAX_SHORT_FIELD_LEN, parseJsonBody } from '../validation.js';
7
+ import { isJsonString } from '../../util/json.js';
8
+ import { objectsOf } from '../../api/objects.js';
9
+ import { closeRoute, getRoute, listRoute, optionalString, requiredString } from './object-routes.js';
9
10
  const MAX_LINKED_MEMORY_IDS = 256;
10
- // ── incidents (first-class object) ──
11
- //
12
- // 5 routes: POST /v1/incidents (open; body text + context + linkedMemoryIds[]),
13
- // GET /v1/incidents (list, status filter), GET /v1/incidents/:id (show),
14
- // POST /v1/incidents/:id/resolve (open -> resolved; body resolutionText),
15
- // POST /v1/incidents/:id/close (open|resolved -> closed). Bearer-authed +
16
- // tenant-scoped via buildContextWithAuth. status validated against
17
- // VALID_INCIDENT_STATES. DoS caps: text 4096, context 4096, resolutionText
18
- // 4096. Mirrors /v1/decisions; lifecycle is
19
- // open->resolved->closed (no supersede), so linkedMemoryIds replaces
20
- // supersedesDecisionId on create.
21
- export async function handleCreateIncident({ req, res, opts }) {
22
- const ctx = await buildContextWithAuth(req, opts);
23
- const body = await parseJsonBody(req, ctx);
24
- const text = body['text'];
25
- if (!isJsonString(text) || text.length === 0) {
26
- throw new HttpError(400, 'text is required (non-empty string)');
27
- }
28
- if (text.length > 4096) {
29
- throw new HttpError(400, 'text exceeds 4096-character cap');
11
+ const incidentRoutes = { noun: 'incident', field: 'incident', listField: 'incidents', object: INCIDENT };
12
+ function linkedMemoryIds(body) {
13
+ const raw = body['linkedMemoryIds'];
14
+ if (raw === undefined || raw === null)
15
+ return undefined;
16
+ if (!Array.isArray(raw)) {
17
+ throw new HttpError(400, 'linkedMemoryIds must be an array of memory ids');
30
18
  }
31
- const contextRaw = body['context'];
32
- let context;
33
- if (contextRaw !== undefined && contextRaw !== null) {
34
- if (!isJsonString(contextRaw)) {
35
- throw new HttpError(400, 'context must be a string');
36
- }
37
- if (contextRaw.length > 4096) {
38
- throw new HttpError(400, 'context exceeds 4096-character cap');
39
- }
40
- context = contextRaw;
19
+ if (raw.length > MAX_LINKED_MEMORY_IDS) {
20
+ throw new HttpError(400, `linkedMemoryIds exceeds ${MAX_LINKED_MEMORY_IDS}-item cap`);
41
21
  }
42
- const linkedRaw = body['linkedMemoryIds'];
43
- let linkedMemoryIds;
44
- if (linkedRaw !== undefined && linkedRaw !== null) {
45
- if (!Array.isArray(linkedRaw)) {
46
- throw new HttpError(400, 'linkedMemoryIds must be an array of memory ids');
47
- }
48
- if (linkedRaw.length > MAX_LINKED_MEMORY_IDS) {
49
- throw new HttpError(400, `linkedMemoryIds exceeds ${MAX_LINKED_MEMORY_IDS}-item cap`);
50
- }
51
- const isValidMemoryId = (item) => isJsonString(item) && item.length > 0 && item.length <= 4096;
52
- if (!linkedRaw.every(isValidMemoryId)) {
53
- throw new HttpError(400, 'each linkedMemoryIds entry must be a non-empty string <= 4096 chars');
54
- }
55
- linkedMemoryIds = linkedRaw;
22
+ const isValidMemoryId = (item) => isJsonString(item) && item.length > 0 && item.length <= MAX_SHORT_FIELD_LEN;
23
+ if (!raw.every(isValidMemoryId)) {
24
+ throw new HttpError(400, `each linkedMemoryIds entry must be a non-empty string <= ${MAX_SHORT_FIELD_LEN} chars`);
56
25
  }
26
+ return raw;
27
+ }
28
+ // Routes: /v1/incidents (open, list, show, resolve, close), mirroring /v1/decisions; status is validated against VALID_INCIDENT_STATES.
29
+ // Lifecycle is open->resolved->closed (no supersede), so linkedMemoryIds replaces supersedesDecisionId on create.
30
+ export async function handleCreateIncident(rr) {
31
+ const { req, res, opts } = rr;
32
+ const ctx = await buildContextWithAuth(req, opts);
33
+ const body = await parseJsonBody(req, ctx);
34
+ const write = {
35
+ incidentText: requiredString(body, 'text', { max: MAX_SHORT_FIELD_LEN, untrimmed: true }),
36
+ context: optionalString(body, 'context', MAX_SHORT_FIELD_LEN),
37
+ linkedMemoryIds: linkedMemoryIds(body),
38
+ };
57
39
  try {
58
- const incident = saveIncident(opts.hippoRoot, ctx.tenantId, {
59
- incidentText: text,
60
- context,
61
- linkedMemoryIds,
62
- }, ctx.actor.subject);
40
+ const incident = await openIncident(objectsOf(ctx), opts.hippoRoot, ctx.tenantId, write, ctx.actor.subject);
63
41
  sendJson(res, 201, { incident });
64
42
  }
65
43
  catch (e) {
@@ -68,61 +46,22 @@ export async function handleCreateIncident({ req, res, opts }) {
68
46
  throw new HttpError(409, e.message);
69
47
  throw e;
70
48
  }
71
- return;
72
49
  }
73
- export async function handleListIncidents({ req, res, opts, query }) {
74
- const status = query.get('status') ?? 'all';
75
- const limit = parseListLimit(query.get('limit'));
76
- const after = parseCursor(query.get('cursor'), 'string', 'integer');
77
- const ctx = await buildContextWithAuth(req, opts);
78
- let incidents;
79
- if (status === 'all') {
80
- incidents = loadIncidents(opts.hippoRoot, ctx.tenantId, { limit: limit + 1, after });
81
- }
82
- else {
83
- if (!isSetMember(VALID_INCIDENT_STATES, status)) {
84
- throw new HttpError(400, `status must be one of: open | resolved | closed | all (got "${status}")`);
85
- }
86
- incidents = loadIncidents(opts.hippoRoot, ctx.tenantId, {
87
- status,
88
- limit: limit + 1,
89
- after,
90
- });
91
- }
92
- const page = pageOf(incidents, limit, byCreatedAt);
93
- sendJson(res, 200, { incidents: page.items, next_cursor: page.nextCursor });
94
- return;
50
+ export function handleListIncidents(rr) {
51
+ return listRoute(incidentRoutes, rr);
95
52
  }
96
- export async function handleResolveIncident({ req, res, opts }, incidentResolveMatch) {
97
- const id = parseInt(incidentResolveMatch[1], 10);
53
+ export async function handleResolveIncident(rr, match) {
54
+ const { req, res, opts } = rr;
55
+ const id = parseInt(match[1], 10);
98
56
  const ctx = await buildContextWithAuth(req, opts);
99
- const body = await parseJsonBody(req, ctx);
100
- const resolutionText = body['resolutionText'];
101
- if (!isJsonString(resolutionText) || resolutionText.trim().length === 0) {
102
- throw new HttpError(400, 'resolutionText is required (non-empty string)');
103
- }
104
- if (resolutionText.length > 4096) {
105
- throw new HttpError(400, 'resolutionText exceeds 4096-character cap');
106
- }
107
- const incident = resolveIncident(opts.hippoRoot, ctx.tenantId, id, resolutionText, ctx.actor.subject);
57
+ const resolutionText = requiredString(await parseJsonBody(req, ctx), 'resolutionText', { max: MAX_SHORT_FIELD_LEN });
58
+ const incident = await resolveOpenIncident(objectsOf(ctx), ctx.tenantId, id, resolutionText, ctx.actor.subject);
108
59
  sendJson(res, 200, { incident });
109
- return;
110
60
  }
111
- export async function handleCloseIncident({ req, res, opts }, incidentCloseMatch) {
112
- const id = parseInt(incidentCloseMatch[1], 10);
113
- const ctx = await buildContextWithAuth(req, opts);
114
- const incident = closeIncident(opts.hippoRoot, ctx.tenantId, id, ctx.actor.subject);
115
- sendJson(res, 200, { incident });
116
- return;
61
+ export function handleCloseIncident(rr, match) {
62
+ return closeRoute(incidentRoutes, rr, match);
117
63
  }
118
- export async function handleGetIncident({ req, res, opts }, incidentByIdMatch) {
119
- const id = parseInt(incidentByIdMatch[1], 10);
120
- const ctx = await buildContextWithAuth(req, opts);
121
- const incident = loadIncidentById(opts.hippoRoot, ctx.tenantId, id);
122
- if (!incident) {
123
- throw new HttpError(404, `incident ${id} not found`);
124
- }
125
- sendJson(res, 200, { incident });
126
- return;
64
+ export function handleGetIncident(rr, match) {
65
+ return getRoute(incidentRoutes, rr, match);
127
66
  }
128
67
  //# sourceMappingURL=incidents.js.map
@@ -1,12 +1,13 @@
1
1
  // Memory write routes: create, graph, archive, supersede, promote, forget, outcome, sleep.
2
- import { archiveRaw, forget, outcome, outcomeForLastRecall, promote, remember, sleep, supersede } from '../../api.js';
3
- import { buildGraphModel } from '../../graph-view.js';
4
- import { MAX_ENTITY_NAME_LEN } from '../../graph/types.js';
5
- import { HttpError, sendJson } from '../../http-util.js';
6
- import { canReadScope } from '../../recall-scope.js';
2
+ import { graphRows } from '../../api/graph.js';
3
+ import { archiveRaw, forget, outcome, outcomeForLastRecall, promote, remember, supersede } from '../../api/index.js';
4
+ import { graphModelOf } from '../../graph/view.js';
5
+ import { MAX_ENTITY_NAME_LEN } from '../../store/graph-rows.js';
6
+ import { HttpError, sendJson } from '../../util/http-util.js';
7
7
  import { assertCrossTenantAdmin, buildContextWithAuth, isLoopback } from '../auth.js';
8
- import { getCallerProject, getString, getStringArray, isJsonBoolean, isSetMember, parseJsonBody, parseListLimit, validateIdSegment } from '../validation.js';
9
- import { isJsonString } from '../../json.js';
8
+ import { sleepInChild } from '../sleep-offload.js';
9
+ import { getCallerProject, getString, getStringArray, isSetMember, parseJsonBody, parseListLimit, validateIdSegment } from '../validation.js';
10
+ import { isJsonString, isJsonBoolean } from '../../util/json.js';
10
11
  const VALID_KINDS = new Set([
11
12
  'raw',
12
13
  'distilled',
@@ -52,12 +53,8 @@ export async function handleGetGraph({ req, res, opts, query }) {
52
53
  }
53
54
  const limit = parseListLimit(query.get('limit'));
54
55
  const ctx = await buildContextWithAuth(req, opts);
55
- const model = buildGraphModel(ctx.hippoRoot, ctx.tenantId, {
56
- entity: entityRaw ?? undefined,
57
- limit,
58
- canRead: (s) => s === null || canReadScope(ctx.actor, s),
59
- });
60
- sendJson(res, 200, model);
56
+ const rows = await graphRows(ctx, { entity: entityRaw ?? undefined, limit });
57
+ sendJson(res, 200, graphModelOf(rows));
61
58
  return;
62
59
  }
63
60
  // /v1/memories/:id/* and DELETE /v1/memories/:id
@@ -99,12 +96,8 @@ export async function handleForgetMemory({ req, res, opts }, idMatch) {
99
96
  sendJson(res, 200, result);
100
97
  return;
101
98
  }
102
- // POST /v1/outcome — apply a positive/negative outcome to memory ids.
103
- // Body: {ids?: string[], good: boolean}. If ids omitted, falls back to
104
- // the last-recall path (api.outcomeForLastRecall); returned shape is
105
- // {applied, ids} in that case so callers can disambiguate "no recent
106
- // recall" from "all ids skipped". Each applied id writes one audit_log
107
- // row (op='outcome', actor from Bearer).
99
+ // POST /v1/outcome: applies a positive/negative outcome to memory ids; without ids it falls back to the last-recall path (api.outcomeForLastRecall)
100
+ // and returns {applied, ids}, so callers can tell "no recent recall" from "all ids skipped". Each applied id writes one audit_log row (op='outcome').
108
101
  export async function handleApplyOutcome({ req, res, opts }) {
109
102
  const ctx = await buildContextWithAuth(req, opts);
110
103
  const body = await parseJsonBody(req, ctx);
@@ -122,10 +115,8 @@ export async function handleApplyOutcome({ req, res, opts }) {
122
115
  if (!idsRaw.every(isNonEmptyId)) {
123
116
  throw new HttpError(400, 'ids must be an array of non-empty strings');
124
117
  }
125
- // DoS cap on ids.length. Each id triggers ~3 DB ops (readEntry +
126
- // writeEntry + appendAuditEvent). N=1000 keeps per-request work bounded
127
- // to sub-second wall time on SQLite hot path. Cap BEFORE buildContextWithAuth
128
- // so attack traffic doesn't pay the api-key lookup cost.
118
+ // DoS cap on ids.length (each id costs ~3 DB ops): N=1000 keeps per-request work sub-second on SQLite.
119
+ // Checked BEFORE buildContextWithAuth so attack traffic does not pay the api-key lookup.
129
120
  if (idsRaw.length > 1000) {
130
121
  throw new HttpError(400, 'ids exceeds 1000-id cap');
131
122
  }
@@ -144,29 +135,16 @@ export async function handleApplyOutcome({ req, res, opts }) {
144
135
  }
145
136
  return;
146
137
  }
147
- // POST /v1/sleep — host-wide consolidation pipeline (consolidate + dedup +
148
- // audit + share + ambient). serve() refuses non-loopback hosts at boot, AND
149
- // this per-request loopback assertion makes the host-wide semantic fail-
150
- // closed regardless of any future serve() boot-config change. Body:
151
- // {dry_run?, no_share?}. Returns SleepResult JSON.
152
- //
153
- // Tenant scope (Episode A follow-up tracked in TODOS.md): api.sleep operates
154
- // on the WHOLE hippoRoot (cross-tenant by design, matching CLI cmdSleep).
155
- // The loopback-only guard is the trust boundary today. Future non-loopback
156
- // serving must also zero the cross-tenant counters for other tenants.
138
+ // POST /v1/sleep: host-wide consolidation (consolidate, dedup, audit, share, ambient); api.sleep spans the WHOLE hippoRoot, cross-tenant by design, so the
139
+ // loopback-only guard is the trust boundary; non-loopback serving must also zero cross-tenant counters. Body {dry_run?, no_share?}; returns SleepResult JSON.
157
140
  export async function handleSleep({ req, res, opts }) {
158
- // Defensive per-request loopback guard. Uses the canonical isLoopback()
159
- // helper above so any future extension (additional mapped/IPv6 forms,
160
- // NAT64 prefixes) flows through without drift. serve()'s boot-time host
161
- // check is the primary trust boundary; this is belt-and-suspenders.
141
+ // Defensive per-request loopback guard using isLoopback(), so future mapped/IPv6/NAT64 forms flow through without drift;
142
+ // serve()'s boot-time host check is the primary trust boundary.
162
143
  if (!isLoopback(req.socket.remoteAddress)) {
163
144
  throw new HttpError(403, '/v1/sleep is loopback-only (host-wide consolidation; see CHANGELOG v1.11.4)');
164
145
  }
165
- // Admin-role gate. Forward-defensive: exists today
166
- // under loopback-only enforcement (loopback fallback is admin by default;
167
- // any Bearer-authed caller now carries an explicit role from the api_keys
168
- // row). When non-loopback serving lands, this gate is the actual auth
169
- // boundary on host-wide sleep.
146
+ // Admin-role gate, forward-defensive: loopback fallback is admin by default and Bearer callers carry an explicit role from the api_keys row;
147
+ // when non-loopback serving lands, this gate is the real auth boundary on host-wide sleep.
170
148
  const sleepCtx = await buildContextWithAuth(req, opts);
171
149
  // Sleep consolidates every tenant under hippoRoot, so it is a cross-tenant action.
172
150
  assertCrossTenantAdmin(sleepCtx, '/v1/sleep');
@@ -180,7 +158,7 @@ export async function handleSleep({ req, res, opts }) {
180
158
  throw new HttpError(400, 'no_share must be a boolean');
181
159
  }
182
160
  // sleepCtx already built above for the admin-role gate; reuse.
183
- const result = await sleep(sleepCtx, {
161
+ const result = await sleepInChild(sleepCtx, {
184
162
  dryRun: dryRunRaw === true,
185
163
  noShare: noShareRaw === true,
186
164
  });
@@ -0,0 +1,35 @@
1
+ import { type JsonValue } from '../../util/json.js';
2
+ import type { ObjectDescriptor, SavableDescriptor } from '../../objects/descriptor.js';
3
+ import type { ObjectByKind, ObjectKind, SavableKind } from '../../store/object-types.js';
4
+ import type { RouteRequest } from '../types.js';
5
+ export interface ObjectRouteConfig<K extends ObjectKind> {
6
+ /** Names the object in the 404 text, e.g. "customer note". */
7
+ readonly noun: string;
8
+ /** Reply field that carries one object, e.g. "note". */
9
+ readonly field: string;
10
+ /** Reply field that carries a page, e.g. "notes". */
11
+ readonly listField: string;
12
+ /** The bad-status reply lists `object.states` in the set's own order. */
13
+ readonly object: ObjectDescriptor<K>;
14
+ /** List query parameter matched against the kind's filter column, e.g. "customer". */
15
+ readonly filterParam?: string;
16
+ }
17
+ export interface VersionedRouteConfig<K extends SavableKind, W> extends ObjectRouteConfig<K> {
18
+ readonly object: SavableDescriptor<K, W>;
19
+ /** Checks the body, then returns the successor's write; split in two so a bad body answers 400 before a missing row answers 404. */
20
+ readonly revise: (body: Record<string, JsonValue>) => (existing: ObjectByKind[K], id: number) => W;
21
+ }
22
+ export interface RequiredStringRule {
23
+ readonly max: number;
24
+ /** The field name is a plural noun, so the replies read "are required" and "exceed". */
25
+ readonly plural?: boolean;
26
+ /** The blank check does not trim, so a value of only spaces passes it. */
27
+ readonly untrimmed?: boolean;
28
+ }
29
+ export declare function requiredString(body: Record<string, JsonValue>, key: string, rule: RequiredStringRule): string;
30
+ export declare function optionalString(body: Record<string, JsonValue>, key: string, max: number): string | undefined;
31
+ export declare function listRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: RouteRequest): Promise<void>;
32
+ export declare function getRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
33
+ export declare function closeRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
34
+ export declare function supersedeRoute<K extends SavableKind, W>(cfg: VersionedRouteConfig<K, W>, rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
35
+ //# sourceMappingURL=object-routes.d.ts.map
@@ -0,0 +1,72 @@
1
+ // List, get, close and supersede handlers shared by the typed-object routes; each route file passes one config.
2
+ import { HttpError, sendJson } from '../../util/http-util.js';
3
+ import { isJsonString } from '../../util/json.js';
4
+ import { objectsOf, saveFor } from '../../api/objects.js';
5
+ import { closeObject, listObjects, objectById } from '../../objects/lifecycle.js';
6
+ import { buildContextWithAuth } from '../auth.js';
7
+ import { byCreatedAt, pageOf, parseCursor } from '../cursor.js';
8
+ import { isSetMember, parseJsonBody, parseListLimit } from '../validation.js';
9
+ export function requiredString(body, key, rule) {
10
+ const value = body[key];
11
+ if (!isJsonString(value) || (rule.untrimmed ? value : value.trim()).length === 0) {
12
+ throw new HttpError(400, `${key} ${rule.plural ? 'are' : 'is'} required (non-empty string)`);
13
+ }
14
+ if (value.length > rule.max) {
15
+ throw new HttpError(400, `${key} ${rule.plural ? 'exceed' : 'exceeds'} ${rule.max}-character cap`);
16
+ }
17
+ return value;
18
+ }
19
+ export function optionalString(body, key, max) {
20
+ const value = body[key];
21
+ if (value === undefined || value === null)
22
+ return undefined;
23
+ if (!isJsonString(value))
24
+ throw new HttpError(400, `${key} must be a string`);
25
+ if (value.length > max)
26
+ throw new HttpError(400, `${key} exceeds ${max}-character cap`);
27
+ return value;
28
+ }
29
+ async function found(cfg, objects, tenantId, id) {
30
+ const row = await objectById(objects, cfg.object, tenantId, id);
31
+ if (!row)
32
+ throw new HttpError(404, `${cfg.noun} ${id} not found`);
33
+ return row;
34
+ }
35
+ // Limit and cursor are checked before auth and status after it, so a keyless caller gets 400 for the first two and 401 for a bad status.
36
+ export async function listRoute(cfg, rr) {
37
+ const { req, res, opts, query } = rr;
38
+ const status = query.get('status') ?? 'all';
39
+ const filter = cfg.filterParam === undefined ? null : query.get(cfg.filterParam);
40
+ const limit = parseListLimit(query.get('limit'));
41
+ const after = parseCursor(query.get('cursor'), 'string', 'integer');
42
+ const ctx = await buildContextWithAuth(req, opts);
43
+ const listOpts = { limit: limit + 1, after, filter: filter?.trim() || undefined };
44
+ if (status !== 'all') {
45
+ const states = cfg.object.states;
46
+ if (!isSetMember(states, status)) {
47
+ throw new HttpError(400, `status must be one of: ${[...states].join(' | ')} | all (got "${status}")`);
48
+ }
49
+ listOpts.status = status;
50
+ }
51
+ const page = pageOf(await listObjects(objectsOf(ctx), cfg.object, ctx.tenantId, listOpts), limit, byCreatedAt);
52
+ sendJson(res, 200, { [cfg.listField]: page.items, next_cursor: page.nextCursor });
53
+ }
54
+ export async function getRoute(cfg, rr, match) {
55
+ const id = parseInt(match[1], 10);
56
+ const ctx = await buildContextWithAuth(rr.req, rr.opts);
57
+ sendJson(rr.res, 200, { [cfg.field]: await found(cfg, objectsOf(ctx), ctx.tenantId, id) });
58
+ }
59
+ export async function closeRoute(cfg, rr, match) {
60
+ const id = parseInt(match[1], 10);
61
+ const ctx = await buildContextWithAuth(rr.req, rr.opts);
62
+ sendJson(rr.res, 200, { [cfg.field]: await closeObject(objectsOf(ctx), cfg.object, ctx.tenantId, id, ctx.actor.subject) });
63
+ }
64
+ export async function supersedeRoute(cfg, rr, match) {
65
+ const id = parseInt(match[1], 10);
66
+ const ctx = await buildContextWithAuth(rr.req, rr.opts);
67
+ const successor = cfg.revise(await parseJsonBody(rr.req, ctx));
68
+ const existing = await found(cfg, objectsOf(ctx), ctx.tenantId, id);
69
+ const saved = await saveFor(ctx, cfg.object, successor(existing, id));
70
+ sendJson(rr.res, 200, { [cfg.field]: saved });
71
+ }
72
+ //# sourceMappingURL=object-routes.js.map
@@ -1,8 +1,8 @@
1
1
  import type { RouteRequest } from '../types.js';
2
- export declare function handleCreatePolicy({ req, res, opts }: RouteRequest): Promise<void>;
3
- export declare function handleListPolicies({ req, res, opts, query }: RouteRequest): Promise<void>;
4
- export declare function handlePoliciesAsOf({ req, res, opts, query }: RouteRequest): Promise<void>;
5
- export declare function handleSupersedePolicy({ req, res, opts }: RouteRequest, policySupersedeMatch: RegExpMatchArray): Promise<void>;
6
- export declare function handleClosePolicy({ req, res, opts }: RouteRequest, policyCloseMatch: RegExpMatchArray): Promise<void>;
7
- export declare function handleGetPolicy({ req, res, opts }: RouteRequest, policyByIdMatch: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreatePolicy(rr: RouteRequest): Promise<void>;
3
+ export declare function handleListPolicies(rr: RouteRequest): Promise<void>;
4
+ export declare function handlePoliciesAsOf(rr: RouteRequest): Promise<void>;
5
+ export declare function handleSupersedePolicy(rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleClosePolicy(rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
7
+ export declare function handleGetPolicy(rr: RouteRequest, match: RegExpMatchArray): Promise<void>;
8
8
  //# sourceMappingURL=policies.d.ts.map