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,9 +1,9 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreateAuthKey({ req, res, opts }: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListAuthKeys({ res, ctx, query }: AuthedRouteRequest): Promise<void>;
4
- export declare function handleRevokeAuthKey({ res, ctx }: AuthedRouteRequest, keyMatch: Record<string, string>): Promise<void>;
5
- export declare function handleListQuarantine({ res, ctx, query }: AuthedRouteRequest): Promise<void>;
6
- export declare function handleApproveQuarantine({ res, ctx }: AuthedRouteRequest, quarantineApproveMatch: Record<string, string>): Promise<void>;
7
- export declare function handleRejectQuarantine({ res, ctx }: AuthedRouteRequest, quarantineRejectMatch: Record<string, string>): Promise<void>;
8
- export declare function handleListAudit({ res, ctx, query }: AuthedRouteRequest): Promise<void>;
2
+ export declare function handleCreateAuthKey({ req, res, opts }: AuthedRouteRequest<'keyWrites'>): Promise<void>;
3
+ export declare function handleListAuthKeys({ res, ctx, query }: AuthedRouteRequest<'keyWrites'>): Promise<void>;
4
+ export declare function handleRevokeAuthKey({ res, ctx }: AuthedRouteRequest<'keyAudit'>, keyMatch: Record<string, string>): Promise<void>;
5
+ export declare function handleListQuarantine({ res, ctx, query }: AuthedRouteRequest<'quarantine'>): Promise<void>;
6
+ export declare function handleApproveQuarantine({ res, ctx }: AuthedRouteRequest<'quarantine'>, quarantineApproveMatch: Record<string, string>): Promise<void>;
7
+ export declare function handleRejectQuarantine({ res, ctx }: AuthedRouteRequest<'quarantine'>, quarantineRejectMatch: Record<string, string>): Promise<void>;
8
+ export declare function handleListAudit({ res, ctx, query }: AuthedRouteRequest<'auditLog'>): Promise<void>;
9
9
  //# sourceMappingURL=admin.d.ts.map
@@ -1,7 +1,7 @@
1
1
  // Admin routes: API keys, quarantine and the audit log.
2
2
  import { DEFAULT_LIST_LIMIT } from '../../util/limits.js';
3
3
  import { AUDIT_OPS } from '../../store/audit.js';
4
- import { auditList, authCreate, authListRows, authRevoke, quarantineApprove, quarantineList, quarantineReject } from '../../api/index.js';
4
+ import { auditList, authCreate, authListRows, authRevoke, narrowContext, quarantineApprove, quarantineList, quarantineReject, } from '../../api/index.js';
5
5
  import { HttpError, readBody, sendJson } from '../../util/http-util.js';
6
6
  import { assertCrossTenantAdmin, recheckContextWithAuth } from '../auth.js';
7
7
  import { pageOf, parseCursor, setNextCursorHeader } from '../cursor.js';
@@ -12,21 +12,28 @@ const VALID_AUDIT_OPS = new Set(AUDIT_OPS);
12
12
  // ServeOpts.mintBodyDeadlineMs overrides the wait for tests only, so a 408 test need not sit through it.
13
13
  const MINT_BODY_MAX_BYTES = 4 * 1024;
14
14
  const MINT_BODY_DEADLINE_MS = 10_000;
15
- // Cap on GET /v1/audit?limit=: large enough to dump a small deployment's audit log unpaginated, small enough that a client cannot ask for the world.
15
+ // Cap on GET /v1/audit?limit=: large enough to dump a small deployment's audit log unpaginated, small enough that a
16
+ // client cannot ask for the world.
16
17
  const MAX_AUDIT_LIMIT = 10000;
17
18
  // GET /v1/auth/keys had no limit, so its default page is the cap: a deployment below 1000 keys sees no change.
18
19
  const MAX_AUTH_KEYS_PAGE = 1000;
19
- // POST /v1/auth/keys: mints a key; plaintext is in the response body (the CLI client, not this layer, carries the "store this somewhere safe" warning).
20
+ // POST /v1/auth/keys: mints a key; plaintext is in the response body (the CLI client, not this layer, carries the
21
+ // "store this somewhere safe" warning).
20
22
  export async function handleCreateAuthKey({ req, res, opts }) {
21
- // The dispatch gate authenticated before the body, so an unknown caller costs no read; this recheck runs the resolver right before the mint.
22
- const raw = await readBody(req, { maxBytes: MINT_BODY_MAX_BYTES, deadlineMs: opts.mintBodyDeadlineMs ?? MINT_BODY_DEADLINE_MS });
23
- const ctx = await recheckContextWithAuth(req, opts);
23
+ // The dispatch gate authenticated before the body, so an unknown caller costs no read; this recheck runs the resolver
24
+ // right before the mint.
25
+ const raw = await readBody(req, {
26
+ maxBytes: MINT_BODY_MAX_BYTES,
27
+ deadlineMs: opts.mintBodyDeadlineMs ?? MINT_BODY_DEADLINE_MS,
28
+ });
29
+ const ctx = narrowContext(await recheckContextWithAuth(req, opts), 'keyWrites');
24
30
  const body = parseJsonObjectText(raw);
25
31
  const labelRaw = body['label'];
26
32
  if (labelRaw !== undefined && !isJsonString(labelRaw)) {
27
33
  throw new HttpError(400, 'label must be a string');
28
34
  }
29
- // Optional body.role mirrors the --role CLI flag and is validated strictly: anything but 'admin'|'member' is a 400; authCreate refuses a member caller
35
+ // Optional body.role mirrors the --role CLI flag and is validated strictly: anything but 'admin'|'member' is a 400;
36
+ // authCreate refuses a member caller
30
37
  // with a 403.
31
38
  const roleRaw = body['role'];
32
39
  let role;
@@ -45,7 +52,8 @@ export async function handleCreateAuthKey({ req, res, opts }) {
45
52
  if (noExpiry !== undefined && !isJsonBoolean(noExpiry)) {
46
53
  throw new HttpError(400, 'noExpiry must be true or false');
47
54
  }
48
- // Security: any body `tenantId` is IGNORED; the key is bound to the caller's authenticated tenant, or tenant A could mint a key for tenant B (see
55
+ // Security: any body `tenantId` is IGNORED; the key is bound to the caller's authenticated tenant, or tenant A could
56
+ // mint a key for tenant B (see
49
57
  // authCreate).
50
58
  const result = await authCreate(ctx, {
51
59
  label: labelRaw,
@@ -56,7 +64,8 @@ export async function handleCreateAuthKey({ req, res, opts }) {
56
64
  sendJson(res, 200, result);
57
65
  return;
58
66
  }
59
- // GET /v1/auth/keys?active=true&limit=&cursor=: lists keys visible to ctx.tenantId; `active` defaults to true, ?active=false includes revoked and expired rows.
67
+ // GET /v1/auth/keys?active=true&limit=&cursor=: lists keys visible to ctx.tenantId; `active` defaults to true,
68
+ // ?active=false includes revoked and expired rows.
60
69
  export async function handleListAuthKeys({ res, ctx, query }) {
61
70
  const activeRaw = query.get('active');
62
71
  let active = true;
@@ -70,12 +79,16 @@ export async function handleListAuthKeys({ res, ctx, query }) {
70
79
  }
71
80
  const limit = parseListLimit(query.get('limit'), MAX_AUTH_KEYS_PAGE, MAX_AUTH_KEYS_PAGE);
72
81
  const after = parseCursor(query.get('cursor'), 'integer', 'integer');
73
- const page = pageOf(await authListRows(ctx, { active, limit: limit + 1, after }), limit, (r) => ({ key: r.rowId, id: r.rowId }));
82
+ const page = pageOf(await authListRows(ctx, { active, limit: limit + 1, after }), limit, (r) => ({
83
+ key: r.rowId,
84
+ id: r.rowId,
85
+ }));
74
86
  setNextCursorHeader(res, page.nextCursor);
75
87
  sendJson(res, 200, page.items.map((r) => r.key));
76
88
  return;
77
89
  }
78
- // DELETE /v1/auth/keys/:keyId revokes: missing or cross-tenant keys are 404 (no leak); a member is 403 on any key but its own or, via the resolver, those it
90
+ // DELETE /v1/auth/keys/:keyId revokes: missing or cross-tenant keys are 404 (no leak); a member is 403 on any key but
91
+ // its own or, via the resolver, those it
79
92
  // minted. Returns 200 with the body rather than 204 so the caller sees revokedAt.
80
93
  export async function handleRevokeAuthKey({ res, ctx }, keyMatch) {
81
94
  validateIdSegment(keyMatch.keyId, 'key id');
@@ -83,7 +96,8 @@ export async function handleRevokeAuthKey({ res, ctx }, keyMatch) {
83
96
  sendJson(res, 200, result);
84
97
  return;
85
98
  }
86
- // GET /v1/quarantine?status=&limit=&cursor=: quarantine review queue. quarantineList carries no role gate itself, so its row's admin gate is the check.
99
+ // GET /v1/quarantine?status=&limit=&cursor=: quarantine review queue. quarantineList carries no role gate itself, so
100
+ // its row's admin gate is the check.
87
101
  export async function handleListQuarantine({ res, ctx, query }) {
88
102
  const statusRaw = query.get('status');
89
103
  let status = 'pending';
@@ -95,7 +109,10 @@ export async function handleListQuarantine({ res, ctx, query }) {
95
109
  }
96
110
  const limit = parseListLimit(query.get('limit'));
97
111
  const after = parseCursor(query.get('cursor'), 'string', 'string');
98
- const page = pageOf(await quarantineList(ctx, { status, limit: limit + 1, after }), limit, (q) => ({ key: q.quarantinedAt, id: q.id }));
112
+ const page = pageOf(await quarantineList(ctx, { status, limit: limit + 1, after }), limit, (q) => ({
113
+ key: q.quarantinedAt,
114
+ id: q.id,
115
+ }));
99
116
  sendJson(res, 200, { quarantine: page.items, next_cursor: page.nextCursor });
100
117
  return;
101
118
  }
@@ -113,7 +130,8 @@ export async function handleRejectQuarantine({ res, ctx }, quarantineRejectMatch
113
130
  sendJson(res, 200, { rejected: quarantineRejectMatch.id });
114
131
  return;
115
132
  }
116
- // GET /v1/audit?op=&since=&limit=&cursor=: all three filters are validated at the route boundary so an invalid value is a 400 before the DB is hit.
133
+ // GET /v1/audit?op=&since=&limit=&cursor=: all three filters are validated at the route boundary so an invalid value is
134
+ // a 400 before the DB is hit.
117
135
  export async function handleListAudit({ res, ctx, query }) {
118
136
  const opRaw = query.get('op');
119
137
  let op;
@@ -148,7 +166,10 @@ export async function handleListAudit({ res, ctx, query }) {
148
166
  if (crossTenant)
149
167
  assertCrossTenantAdmin(ctx, '/v1/audit?tenant= for another tenant');
150
168
  const effectiveCtx = crossTenant ? { ...ctx, tenantId: tenantOverride } : ctx;
151
- const page = pageOf(await auditList(effectiveCtx, { op, since, limit: limit + 1, after }), limit, (e) => ({ key: e.ts, id: e.id }));
169
+ const page = pageOf(await auditList(effectiveCtx, { op, since, limit: limit + 1, after }), limit, (e) => ({
170
+ key: e.ts,
171
+ id: e.id,
172
+ }));
152
173
  setNextCursorHeader(res, page.nextCursor);
153
174
  sendJson(res, 200, page.items);
154
175
  return;
@@ -1,7 +1,7 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreateCustomerNote(rr: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListCustomerNotes(rr: AuthedRouteRequest): Promise<void>;
4
- export declare function handleSupersedeCustomerNote(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
5
- export declare function handleCloseCustomerNote(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
6
- export declare function handleGetCustomerNote(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreateCustomerNote(rr: AuthedRouteRequest<'objects'>): Promise<void>;
3
+ export declare function handleListCustomerNotes(rr: AuthedRouteRequest<'objects'>): Promise<void>;
4
+ export declare function handleSupersedeCustomerNote(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
5
+ export declare function handleCloseCustomerNote(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleGetCustomerNote(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
7
7
  //# sourceMappingURL=customer-notes.d.ts.map
@@ -1,9 +1,9 @@
1
1
  // /v1/customer-notes routes.
2
- import { CUSTOMER_NOTE, MAX_CHANGE_SUMMARY_LEN, MAX_CUSTOMER_LEN } from '../../objects/customer-notes.js';
2
+ import { CUSTOMER_NOTE, MAX_CHANGE_SUMMARY_LEN, MAX_CUSTOMER_LEN, } from '../../objects/customer-notes.js';
3
3
  import { sendJson } from '../../util/http-util.js';
4
4
  import { parseJsonBody } from '../validation.js';
5
- import { saveFor } from '../../api/objects.js';
6
- import { closeRoute, getRoute, listRoute, optionalString, requiredString, supersedeRoute } from './object-routes.js';
5
+ import { saveFor } from '../../api/objects/objects.js';
6
+ import { closeRoute, getRoute, listRoute, optionalString, requiredString, supersedeRoute, } from './object-routes.js';
7
7
  const noteRoutes = {
8
8
  noun: 'customer note',
9
9
  field: 'note',
@@ -16,7 +16,8 @@ const noteRoutes = {
16
16
  return (existing, id) => ({ customer: existing.customer, note, changeSummary, supersedesNoteId: id });
17
17
  },
18
18
  };
19
- // Routes: customer notes under /v1/customer-notes (create, list, show, supersede, close), mirroring /v1/project-briefs. The store validates and throws;
19
+ // Routes: customer notes under /v1/customer-notes (create, list, show, supersede, close), mirroring /v1/project-briefs.
20
+ // The store validates and throws;
20
21
  // the boundary maps validation -> 400, not-found -> 404, not-active -> 409.
21
22
  export async function handleCreateCustomerNote(rr) {
22
23
  const { ctx } = rr;
@@ -1,7 +1,7 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreateDecision(rr: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListDecisions(rr: AuthedRouteRequest): Promise<void>;
4
- export declare function handleSupersedeDecision(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
5
- export declare function handleCloseDecision(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
6
- export declare function handleGetDecision(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreateDecision(rr: AuthedRouteRequest<'objects'>): Promise<void>;
3
+ export declare function handleListDecisions(rr: AuthedRouteRequest<'objects'>): Promise<void>;
4
+ export declare function handleSupersedeDecision(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
5
+ export declare function handleCloseDecision(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleGetDecision(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
7
7
  //# sourceMappingURL=decisions.d.ts.map
@@ -4,10 +4,17 @@ import { HttpError, sendJson } from '../../util/http-util.js';
4
4
  import { NotFoundError } from '../../core/api-errors.js';
5
5
  import { isJsonNumber } from '../../util/json.js';
6
6
  import { MAX_SHORT_FIELD_LEN, parseJsonBody } from '../validation.js';
7
- import { saveFor } from '../../api/objects.js';
8
- import { closeRoute, getRoute, listRoute, optionalString, requiredString } from './object-routes.js';
9
- const decisionRoutes = { noun: 'decision', field: 'decision', listField: 'decisions', object: DECISION };
7
+ import { saveFor } from '../../api/objects/objects.js';
8
+ import { closeRoute, getRoute, listRoute, optionalString, requiredString, } from './object-routes.js';
9
+ const decisionRoutes = {
10
+ noun: 'decision',
11
+ field: 'decision',
12
+ listField: 'decisions',
13
+ object: DECISION,
14
+ };
10
15
  const TEXT = { max: MAX_SHORT_FIELD_LEN, untrimmed: true };
16
+ // The HTTP surface has no legacy --supersedes <memory-id> constraint, so it supersedes by table id and never weakens a
17
+ // memory mirror.
11
18
  function supersededId(body) {
12
19
  const raw = body['supersedesDecisionId'];
13
20
  if (raw === undefined || raw === null)
@@ -17,8 +24,6 @@ function supersededId(body) {
17
24
  }
18
25
  return raw;
19
26
  }
20
- // Routes: /v1/decisions (create, list, show, supersede, close), Bearer-authed and tenant-scoped; status is validated against VALID_DECISION_STATES.
21
- // The HTTP surface has no legacy --supersedes <memory-id> constraint, so it supersedes by table id and never weakens a memory mirror.
22
27
  export async function handleCreateDecision(rr) {
23
28
  const { req, res, ctx } = rr;
24
29
  const body = await parseJsonBody(req, ctx);
@@ -41,7 +46,8 @@ export async function handleCreateDecision(rr) {
41
46
  export function handleListDecisions(rr) {
42
47
  return listRoute(decisionRoutes, rr);
43
48
  }
44
- // 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.
49
+ // Not on supersedeRoute: this one answers 201 and leaves the missing-row 404 to the store, where the other five answer
50
+ // 200 after their own lookup.
45
51
  export async function handleSupersedeDecision(rr, match) {
46
52
  const oldId = parseInt(match[1], 10);
47
53
  const { ctx } = rr;
@@ -1,7 +1,7 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreateIncident(rr: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListIncidents(rr: AuthedRouteRequest): Promise<void>;
4
- export declare function handleResolveIncident(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
5
- export declare function handleCloseIncident(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
6
- export declare function handleGetIncident(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreateIncident(rr: AuthedRouteRequest<'objects'>): Promise<void>;
3
+ export declare function handleListIncidents(rr: AuthedRouteRequest<'objects'>): Promise<void>;
4
+ export declare function handleResolveIncident(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
5
+ export declare function handleCloseIncident(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleGetIncident(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
7
7
  //# sourceMappingURL=incidents.d.ts.map
@@ -4,10 +4,15 @@ import { HttpError, sendJson } from '../../util/http-util.js';
4
4
  import { NotFoundError } from '../../core/api-errors.js';
5
5
  import { MAX_SHORT_FIELD_LEN, parseJsonBody } from '../validation.js';
6
6
  import { isJsonString } from '../../util/json.js';
7
- import { objectsOf } from '../../api/objects.js';
8
- import { closeRoute, getRoute, listRoute, optionalString, requiredString } from './object-routes.js';
7
+ import { objectsOf } from '../../api/objects/objects.js';
8
+ import { closeRoute, getRoute, listRoute, optionalString, requiredString, } from './object-routes.js';
9
9
  const MAX_LINKED_MEMORY_IDS = 256;
10
- const incidentRoutes = { noun: 'incident', field: 'incident', listField: 'incidents', object: INCIDENT };
10
+ const incidentRoutes = {
11
+ noun: 'incident',
12
+ field: 'incident',
13
+ listField: 'incidents',
14
+ object: INCIDENT,
15
+ };
11
16
  function linkedMemoryIds(body) {
12
17
  const raw = body['linkedMemoryIds'];
13
18
  if (raw === undefined || raw === null)
@@ -24,7 +29,8 @@ function linkedMemoryIds(body) {
24
29
  }
25
30
  return raw;
26
31
  }
27
- // Routes: /v1/incidents (open, list, show, resolve, close), mirroring /v1/decisions; status is validated against VALID_INCIDENT_STATES.
32
+ // Routes: /v1/incidents (open, list, show, resolve, close), mirroring /v1/decisions; status is validated against
33
+ // VALID_INCIDENT_STATES.
28
34
  // Lifecycle is open->resolved->closed (no supersede), so linkedMemoryIds replaces supersedesDecisionId on create.
29
35
  export async function handleCreateIncident(rr) {
30
36
  const { req, res, opts, ctx } = rr;
@@ -1,10 +1,10 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreateMemory({ req, res, ctx }: AuthedRouteRequest): Promise<void>;
3
- export declare function handleGetGraph({ res, ctx, query }: AuthedRouteRequest): Promise<void>;
4
- export declare function handleArchiveMemory({ req, res, ctx }: AuthedRouteRequest, archiveMatch: Record<string, string>): Promise<void>;
5
- export declare function handleSupersedeMemory({ req, res, ctx }: AuthedRouteRequest, supersedeMatch: Record<string, string>): Promise<void>;
6
- export declare function handlePromoteMemory({ res, ctx }: AuthedRouteRequest, promoteMatch: Record<string, string>): Promise<void>;
7
- export declare function handleForgetMemory({ res, ctx }: AuthedRouteRequest, idMatch: Record<string, string>): Promise<void>;
8
- export declare function handleApplyOutcome({ req, res, ctx }: AuthedRouteRequest): Promise<void>;
9
- export declare function handleSleep({ req, res, ctx }: AuthedRouteRequest): Promise<void>;
2
+ export declare function handleCreateMemory({ req, res, ctx }: AuthedRouteRequest<'entryWrites'>): Promise<void>;
3
+ export declare function handleGetGraph({ res, ctx, query }: AuthedRouteRequest<'graphReads'>): Promise<void>;
4
+ export declare function handleArchiveMemory({ req, res, ctx }: AuthedRouteRequest<'entryWrites'>, archiveMatch: Record<string, string>): Promise<void>;
5
+ export declare function handleSupersedeMemory({ req, res, ctx }: AuthedRouteRequest<'entryWrites'>, supersedeMatch: Record<string, string>): Promise<void>;
6
+ export declare function handlePromoteMemory({ res, ctx }: AuthedRouteRequest<'localFiles'>, promoteMatch: Record<string, string>): Promise<void>;
7
+ export declare function handleForgetMemory({ res, ctx }: AuthedRouteRequest<'entryWrites'>, idMatch: Record<string, string>): Promise<void>;
8
+ export declare function handleApplyOutcome({ req, res, ctx }: AuthedRouteRequest<'entryWrites'>): Promise<void>;
9
+ export declare function handleSleep({ req, res, ctx }: AuthedRouteRequest<'localFiles'>): Promise<void>;
10
10
  //# sourceMappingURL=memories.d.ts.map
@@ -1,13 +1,11 @@
1
1
  // Memory write routes: create, graph, archive, supersede, promote, forget, outcome, sleep.
2
- import { graphRows } from '../../api/graph.js';
2
+ import { graphEntityOf, graphRows } from '../../api/objects/graph.js';
3
3
  import { archiveRaw, forget, outcome, outcomeForLastRecall, promote, remember, supersede } from '../../api/index.js';
4
4
  import { MEMORY_KINDS } from '../../core/memory.js';
5
5
  import { graphModelOf } from '../../graph/view.js';
6
- import { MAX_ENTITY_NAME_LEN } from '../../store/graph-rows.js';
7
- import { hasGroup } from '../../store/index.js';
8
6
  import { HttpError, sendJson } from '../../util/http-util.js';
9
7
  import { sleepInChild } from '../sleep-offload.js';
10
- import { getCallerProject, getString, getStringArray, isSetMember, parseJsonBody, parseListLimit, validateIdSegment } from '../validation.js';
8
+ import { getCallerProject, getString, getStringArray, isSetMember, parseJsonBody, parseListLimit, validateIdSegment, } from '../validation.js';
11
9
  import { isJsonString, isJsonBoolean } from '../../util/json.js';
12
10
  const VALID_KINDS = new Set(MEMORY_KINDS);
13
11
  // POST /v1/memories
@@ -40,14 +38,9 @@ export async function handleCreateMemory({ req, res, ctx }) {
40
38
  }
41
39
  // GET /v1/graph?entity=NAME&limit=N — read-only entity/relation graph (tenant-scoped)
42
40
  export async function handleGetGraph({ res, ctx, query }) {
43
- const entityRaw = query.get('entity');
44
- // Cap at the graph entity-name cap (512), not the id-shaped 256, so a valid
45
- // long decision/policy name remains focusable over HTTP.
46
- if (entityRaw !== null && entityRaw.length > MAX_ENTITY_NAME_LEN) {
47
- throw new HttpError(400, `entity exceeds the ${MAX_ENTITY_NAME_LEN}-character cap`);
48
- }
41
+ const entity = graphEntityOf(query.get('entity'));
49
42
  const limit = parseListLimit(query.get('limit'));
50
- const rows = await graphRows(ctx, { entity: entityRaw ?? undefined, limit });
43
+ const rows = await graphRows(ctx, { entity, limit });
51
44
  sendJson(res, 200, graphModelOf(rows));
52
45
  return;
53
46
  }
@@ -86,8 +79,10 @@ export async function handleForgetMemory({ res, ctx }, idMatch) {
86
79
  sendJson(res, 200, result);
87
80
  return;
88
81
  }
89
- // POST /v1/outcome: applies a positive/negative outcome to memory ids; without ids it falls back to the last-recall path (api.outcomeForLastRecall)
90
- // 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').
82
+ // POST /v1/outcome: applies a positive/negative outcome to memory ids; without ids it falls back to the last-recall
83
+ // path (api.outcomeForLastRecall)
84
+ // and returns {applied, ids}, so callers can tell "no recent recall" from "all ids skipped". Each applied id writes one
85
+ // audit_log row (op='outcome').
91
86
  export async function handleApplyOutcome({ req, res, ctx }) {
92
87
  const body = await parseJsonBody(req, ctx);
93
88
  const good = body['good'];
@@ -104,7 +99,8 @@ export async function handleApplyOutcome({ req, res, ctx }) {
104
99
  if (!idsRaw.every(isNonEmptyId)) {
105
100
  throw new HttpError(400, 'ids must be an array of non-empty strings');
106
101
  }
107
- // DoS cap on ids.length (each id costs ~3 DB ops): N=1000 keeps per-request work sub-second on SQLite. Auth runs first, so only a caller with a key
102
+ // DoS cap on ids.length (each id costs ~3 DB ops): N=1000 keeps per-request work sub-second on SQLite. Auth runs
103
+ // first, so only a caller with a key
108
104
  // reaches it.
109
105
  if (idsRaw.length > 1000) {
110
106
  throw new HttpError(400, 'ids exceeds 1000-id cap');
@@ -116,16 +112,13 @@ export async function handleApplyOutcome({ req, res, ctx }) {
116
112
  sendJson(res, 200, { applied });
117
113
  }
118
114
  else {
119
- // A store without the group keeps no last recall, so its client must send the ids its recall returned.
120
- if (ctx.store !== undefined && !hasGroup(ctx.store, 'lastRecall')) {
121
- throw new HttpError(501, 'this store keeps no last recall: send the ids your recall returned');
122
- }
123
115
  const result = await outcomeForLastRecall(ctx, good);
124
116
  sendJson(res, 200, result);
125
117
  }
126
118
  return;
127
119
  }
128
- // POST /v1/sleep: host-wide consolidation (consolidate, dedup, audit, share, ambient); api.sleep spans the WHOLE hippoRoot, cross-tenant by design, so the
120
+ // POST /v1/sleep: host-wide consolidation (consolidate, dedup, audit, share, ambient); api.sleep spans the WHOLE
121
+ // hippoRoot, cross-tenant by design, so the
129
122
  // row's host-admin-local gate is the trust boundary. Body {dry_run?, no_share?}; returns SleepResult JSON.
130
123
  export async function handleSleep({ req, res, ctx }) {
131
124
  const body = await parseJsonBody(req, ctx);
@@ -16,7 +16,10 @@ export interface ObjectRouteConfig<K extends ObjectKind> {
16
16
  }
17
17
  export interface VersionedRouteConfig<K extends SavableKind, W> extends ObjectRouteConfig<K> {
18
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. */
19
+ /**
20
+ * Checks the body, then returns the successor's write; split in two so a bad body answers 400 before a missing row
21
+ * answers 404.
22
+ */
20
23
  readonly revise: (body: Record<string, JsonValue>) => (existing: ObjectByKind[K], id: number) => W;
21
24
  }
22
25
  export interface RequiredStringRule {
@@ -28,8 +31,8 @@ export interface RequiredStringRule {
28
31
  }
29
32
  export declare function requiredString(body: Record<string, JsonValue>, key: string, rule: RequiredStringRule): string;
30
33
  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: AuthedRouteRequest): Promise<void>;
32
- export declare function getRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
33
- export declare function closeRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
34
- export declare function supersedeRoute<K extends SavableKind, W>(cfg: VersionedRouteConfig<K, W>, rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
34
+ export declare function listRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: AuthedRouteRequest<'objects'>): Promise<void>;
35
+ export declare function getRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
36
+ export declare function closeRoute<K extends ObjectKind>(cfg: ObjectRouteConfig<K>, rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
37
+ export declare function supersedeRoute<K extends SavableKind, W>(cfg: VersionedRouteConfig<K, W>, rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
35
38
  //# sourceMappingURL=object-routes.d.ts.map
@@ -1,7 +1,7 @@
1
1
  // List, get, close and supersede handlers shared by the typed-object routes; each route file passes one config.
2
2
  import { HttpError, sendJson } from '../../util/http-util.js';
3
3
  import { isJsonString } from '../../util/json.js';
4
- import { objectsOf, saveFor } from '../../api/objects.js';
4
+ import { objectsOf, saveFor } from '../../api/objects/objects.js';
5
5
  import { closeObject, listObjects, objectById } from '../../objects/lifecycle.js';
6
6
  import { byCreatedAt, pageOf, parseCursor } from '../cursor.js';
7
7
  import { isSetMember, parseJsonBody, parseListLimit } from '../validation.js';
@@ -56,7 +56,9 @@ export async function getRoute(cfg, rr, match) {
56
56
  export async function closeRoute(cfg, rr, match) {
57
57
  const id = parseInt(match[1], 10);
58
58
  const { ctx } = rr;
59
- sendJson(rr.res, 200, { [cfg.field]: await closeObject(objectsOf(ctx), cfg.object, ctx.tenantId, id, ctx.actor.subject) });
59
+ sendJson(rr.res, 200, {
60
+ [cfg.field]: await closeObject(objectsOf(ctx), cfg.object, ctx.tenantId, id, ctx.actor.subject),
61
+ });
60
62
  }
61
63
  export async function supersedeRoute(cfg, rr, match) {
62
64
  const id = parseInt(match[1], 10);
@@ -1,8 +1,8 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreatePolicy(rr: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListPolicies(rr: AuthedRouteRequest): Promise<void>;
4
- export declare function handlePoliciesAsOf(rr: AuthedRouteRequest): Promise<void>;
5
- export declare function handleSupersedePolicy(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
6
- export declare function handleClosePolicy(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
7
- export declare function handleGetPolicy(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreatePolicy(rr: AuthedRouteRequest<'objects'>): Promise<void>;
3
+ export declare function handleListPolicies(rr: AuthedRouteRequest<'objects'>): Promise<void>;
4
+ export declare function handlePoliciesAsOf(rr: AuthedRouteRequest<'objects'>): Promise<void>;
5
+ export declare function handleSupersedePolicy(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleClosePolicy(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
7
+ export declare function handleGetPolicy(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
8
8
  //# sourceMappingURL=policies.d.ts.map
@@ -2,9 +2,10 @@
2
2
  import { policiesAsOf, POLICY } from '../../objects/policies.js';
3
3
  import { HttpError, sendJson } from '../../util/http-util.js';
4
4
  import { MAX_SHORT_FIELD_LEN, parseJsonBody } from '../validation.js';
5
- import { objectsOf, saveFor } from '../../api/objects.js';
5
+ import { objectsOf, saveFor } from '../../api/objects/objects.js';
6
6
  import { closeRoute, getRoute, listRoute, optionalString, requiredString, supersedeRoute, } from './object-routes.js';
7
- // The date fields get a type and length check only: the store parses the date, and the cap bounds a junk string before it reaches the Date parser.
7
+ // The date fields get a type and length check only: the store parses the date, and the cap bounds a junk string before
8
+ // it reaches the Date parser.
8
9
  const MAX_DATE_LEN = 64;
9
10
  const policyRoutes = {
10
11
  noun: 'policy',
@@ -16,10 +17,16 @@ const policyRoutes = {
16
17
  const validFrom = optionalString(body, 'validFrom', MAX_DATE_LEN);
17
18
  const validTo = optionalString(body, 'validTo', MAX_DATE_LEN);
18
19
  const changeSummary = optionalString(body, 'changeSummary', MAX_SHORT_FIELD_LEN);
19
- return (existing, id) => ({ policyName: existing.policyName, policyText, validFrom, validTo, changeSummary, supersedesPolicyId: id });
20
+ return (existing, id) => ({
21
+ policyName: existing.policyName,
22
+ policyText,
23
+ validFrom,
24
+ validTo,
25
+ changeSummary,
26
+ supersedesPolicyId: id,
27
+ });
20
28
  },
21
29
  };
22
- // The as-of route is registered BEFORE /:id so the literal 'asof' is matched first; date errors surface as 400.
23
30
  export async function handleCreatePolicy(rr) {
24
31
  const { ctx } = rr;
25
32
  const body = await parseJsonBody(rr.req, ctx);
@@ -1,7 +1,7 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreatePrediction({ req, res, ctx, opts }: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListPredictions({ res, ctx, query }: AuthedRouteRequest): Promise<void>;
4
- export declare function handlePredictionStats({ res, ctx, query }: AuthedRouteRequest): Promise<void>;
5
- export declare function handleGetPrediction({ res, ctx }: AuthedRouteRequest, predictionByIdMatch: RegExpMatchArray): Promise<void>;
6
- export declare function handleClosePrediction({ req, res, ctx }: AuthedRouteRequest, predictionCloseMatch: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreatePrediction({ req, res, ctx, opts }: AuthedRouteRequest<'predictions'>): Promise<void>;
3
+ export declare function handleListPredictions({ res, ctx, query }: AuthedRouteRequest<'predictions'>): Promise<void>;
4
+ export declare function handlePredictionStats({ res, ctx, query }: AuthedRouteRequest<'predictions'>): Promise<void>;
5
+ export declare function handleGetPrediction({ res, ctx }: AuthedRouteRequest<'predictions'>, predictionByIdMatch: RegExpMatchArray): Promise<void>;
6
+ export declare function handleClosePrediction({ req, res, ctx }: AuthedRouteRequest<'predictions'>, predictionCloseMatch: RegExpMatchArray): Promise<void>;
7
7
  //# sourceMappingURL=predictions.d.ts.map
@@ -1,5 +1,5 @@
1
1
  // /v1/predictions routes.
2
- import { closePrediction, listPredictions, predictionBaserate, predictionById, savePrediction } from '../../api/predictions.js';
2
+ import { closePrediction, listPredictions, predictionBaserate, predictionById, savePrediction, } from '../../api/objects/predictions.js';
3
3
  import { loadConfig } from '../../core/config.js';
4
4
  import { predictionMirror } from '../../store/predictions.js';
5
5
  import { VALID_CLOSURE_STATES } from '../../core/prediction.js';
@@ -8,7 +8,8 @@ import { MAX_ID_LEN } from '../../util/limits.js';
8
8
  import { byCreatedAt, pageOf, parseCursor } from '../cursor.js';
9
9
  import { isSetMember, MAX_SHORT_FIELD_LEN, parseJsonBody, parseListLimit } from '../validation.js';
10
10
  import { isJsonString, isJsonNumber } from '../../util/json.js';
11
- // Routes: /v1/predictions (create, list, show, close), Bearer-authed and tenant-scoped; closure_state is validated against VALID_CLOSURE_STATES.
11
+ // Routes: /v1/predictions (create, list, show, close), Bearer-authed and tenant-scoped; closure_state is validated
12
+ // against VALID_CLOSURE_STATES.
12
13
  // DoS caps: claim MAX_SHORT_FIELD_LEN chars, closureNote 2048.
13
14
  export async function handleCreatePrediction({ req, res, ctx, opts }) {
14
15
  const body = await parseJsonBody(req, ctx);
@@ -52,7 +53,10 @@ export async function handleCreatePrediction({ req, res, ctx, opts }) {
52
53
  const prediction = await savePrediction(ctx, { ...claimed, mirror });
53
54
  sendJson(res, 201, { prediction });
54
55
  }
55
- /** Which rows a list reads; a status other than all or open needs a class, as no store reads one closed state across classes. */
56
+ /**
57
+ * Which rows a list reads; a status other than all or open needs a class, as no store reads one closed state across
58
+ * classes.
59
+ */
56
60
  function listFilter(classTag, status) {
57
61
  if (status === 'all')
58
62
  return { classTag };
@@ -75,7 +79,8 @@ export async function handleListPredictions({ res, ctx, query }) {
75
79
  const page = pageOf(predictions, limit, byCreatedAt);
76
80
  sendJson(res, 200, { predictions: page.items, next_cursor: page.nextCursor });
77
81
  }
78
- // Reference-class / planning-fallacy detector; registered BEFORE /v1/predictions/:id so dispatch order cannot matter ('stats' is not a number, but routing
82
+ // Reference-class / planning-fallacy detector; registered BEFORE /v1/predictions/:id so dispatch order cannot matter
83
+ // ('stats' is not a number, but routing
79
84
  // it first is safer).
80
85
  export async function handlePredictionStats({ res, ctx, query }) {
81
86
  const classTag = query.get('class');
@@ -1,7 +1,7 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreateProcess(rr: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListProcesses(rr: AuthedRouteRequest): Promise<void>;
4
- export declare function handleSupersedeProcess(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
5
- export declare function handleCloseProcess(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
6
- export declare function handleGetProcess(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreateProcess(rr: AuthedRouteRequest<'objects'>): Promise<void>;
3
+ export declare function handleListProcesses(rr: AuthedRouteRequest<'objects'>): Promise<void>;
4
+ export declare function handleSupersedeProcess(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
5
+ export declare function handleCloseProcess(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleGetProcess(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
7
7
  //# sourceMappingURL=processes.d.ts.map
@@ -3,9 +3,10 @@ import { MAX_PROCESS_STEP_LEN, MAX_PROCESS_STEPS, PROCESS } from '../../objects/
3
3
  import { HttpError, sendJson } from '../../util/http-util.js';
4
4
  import { MAX_SHORT_FIELD_LEN, parseJsonBody } from '../validation.js';
5
5
  import { isJsonString } from '../../util/json.js';
6
- import { saveFor } from '../../api/objects.js';
7
- import { closeRoute, getRoute, listRoute, optionalString, requiredString, supersedeRoute } from './object-routes.js';
8
- // HTTP-boundary validation for an untrusted process `steps` body; saveProcess re-validates and trims, this is the fail-fast 400 gate.
6
+ import { saveFor } from '../../api/objects/objects.js';
7
+ import { closeRoute, getRoute, listRoute, optionalString, requiredString, supersedeRoute, } from './object-routes.js';
8
+ // HTTP-boundary validation for an untrusted process `steps` body; saveProcess re-validates and trims, this is the
9
+ // fail-fast 400 gate.
9
10
  function validateProcessStepsBody(raw) {
10
11
  if (raw === undefined || raw === null)
11
12
  return [];
@@ -41,11 +42,19 @@ const processRoutes = {
41
42
  }
42
43
  const changeSummary = optionalString(body, 'changeSummary', MAX_SHORT_FIELD_LEN);
43
44
  const description = optionalString(body, 'description', MAX_SHORT_FIELD_LEN);
44
- return (existing, id) => ({ processName: existing.processName, steps, description, changeSummary, supersedesProcessId: id });
45
+ return (existing, id) => ({
46
+ processName: existing.processName,
47
+ steps,
48
+ description,
49
+ changeSummary,
50
+ supersedesProcessId: id,
51
+ });
45
52
  },
46
53
  };
47
- // Routes: /v1/processes (create, list, show, supersede, close), mirroring /v1/decisions; supersede creates a new version that reuses the predecessor's name.
48
- // DoS caps: processName/description/changeSummary MAX_SHORT_FIELD_LEN, steps MAX_PROCESS_STEPS x MAX_PROCESS_STEP_LEN (validateProcessStepsBody).
54
+ // Routes: /v1/processes (create, list, show, supersede, close), mirroring /v1/decisions; supersede creates a new
55
+ // version that reuses the predecessor's name.
56
+ // DoS caps: processName/description/changeSummary MAX_SHORT_FIELD_LEN, steps MAX_PROCESS_STEPS x MAX_PROCESS_STEP_LEN
57
+ // (validateProcessStepsBody).
49
58
  export async function handleCreateProcess(rr) {
50
59
  const { ctx } = rr;
51
60
  const body = await parseJsonBody(rr.req, ctx);
@@ -1,8 +1,8 @@
1
1
  import type { AuthedRouteRequest } from '../types.js';
2
- export declare function handleCreateProjectBrief(rr: AuthedRouteRequest): Promise<void>;
3
- export declare function handleListProjectBriefs(rr: AuthedRouteRequest): Promise<void>;
4
- export declare function handleRefreshProjectBrief(rr: AuthedRouteRequest): Promise<void>;
5
- export declare function handleSupersedeProjectBrief(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
6
- export declare function handleCloseProjectBrief(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
7
- export declare function handleGetProjectBrief(rr: AuthedRouteRequest, match: RegExpMatchArray): Promise<void>;
2
+ export declare function handleCreateProjectBrief(rr: AuthedRouteRequest<'objects'>): Promise<void>;
3
+ export declare function handleListProjectBriefs(rr: AuthedRouteRequest<'objects'>): Promise<void>;
4
+ export declare function handleRefreshProjectBrief(rr: AuthedRouteRequest<'objects'>): Promise<void>;
5
+ export declare function handleSupersedeProjectBrief(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
6
+ export declare function handleCloseProjectBrief(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
7
+ export declare function handleGetProjectBrief(rr: AuthedRouteRequest<'objects'>, match: RegExpMatchArray): Promise<void>;
8
8
  //# sourceMappingURL=project-briefs.d.ts.map