hippo-memory 1.70.0 → 1.72.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 (855) hide show
  1. package/README.md +2 -2
  2. package/dist/agent-memories/apply.d.ts +0 -11
  3. package/dist/agent-memories/apply.js +6 -21
  4. package/dist/agent-memories/claude-code.d.ts +4 -2
  5. package/dist/agent-memories/claude-code.js +15 -6
  6. package/dist/agent-memories/codex.js +1 -1
  7. package/dist/agent-memories/copilot.d.ts +1 -3
  8. package/dist/agent-memories/copilot.js +1 -17
  9. package/dist/agent-memories/files.js +23 -12
  10. package/dist/agent-memories/markdown.d.ts +1 -3
  11. package/dist/agent-memories/markdown.js +1 -3
  12. package/dist/agent-memories/project-folds.d.ts +10 -0
  13. package/dist/agent-memories/project-folds.js +34 -0
  14. package/dist/agent-memories/report.js +2 -1
  15. package/dist/agent-memories/sync.d.ts +4 -2
  16. package/dist/agent-memories/sync.js +18 -11
  17. package/dist/api/assemble.d.ts +7 -44
  18. package/dist/api/assemble.js +3 -23
  19. package/dist/api/audit.d.ts +33 -1
  20. package/dist/api/audit.js +48 -1
  21. package/dist/api/auth.d.ts +20 -26
  22. package/dist/api/auth.js +43 -29
  23. package/dist/api/auto-sleep.d.ts +5 -2
  24. package/dist/api/auto-sleep.js +9 -5
  25. package/dist/api/availability.d.ts +2 -15
  26. package/dist/api/availability.js +4 -18
  27. package/dist/api/cards.d.ts +42 -0
  28. package/dist/api/cards.js +52 -0
  29. package/dist/api/conflicts.d.ts +28 -0
  30. package/dist/api/conflicts.js +61 -0
  31. package/dist/api/context-render.js +4 -3
  32. package/dist/api/context-select.js +12 -15
  33. package/dist/api/context-types.d.ts +10 -35
  34. package/dist/api/context.d.ts +5 -22
  35. package/dist/api/context.js +38 -46
  36. package/dist/api/continuity.d.ts +47 -0
  37. package/dist/api/continuity.js +66 -0
  38. package/dist/{cli → api}/correction-latency.d.ts +2 -14
  39. package/dist/{cli → api}/correction-latency.js +2 -14
  40. package/dist/api/dormant.d.ts +5 -21
  41. package/dist/api/dormant.js +11 -28
  42. package/dist/api/drill-down.d.ts +7 -46
  43. package/dist/api/drill-down.js +6 -27
  44. package/dist/api/embeddings.d.ts +17 -0
  45. package/dist/api/embeddings.js +28 -0
  46. package/dist/api/error-reply.d.ts +8 -0
  47. package/dist/api/error-reply.js +21 -0
  48. package/dist/api/forget.d.ts +11 -26
  49. package/dist/api/forget.js +23 -35
  50. package/dist/api/goals.d.ts +1 -1
  51. package/dist/api/goals.js +5 -9
  52. package/dist/api/graph.d.ts +8 -0
  53. package/dist/api/graph.js +7 -0
  54. package/dist/api/index.d.ts +6 -2
  55. package/dist/api/index.js +6 -2
  56. package/dist/api/instruction-detect.js +21 -6
  57. package/dist/api/learn.d.ts +4 -0
  58. package/dist/api/learn.js +53 -27
  59. package/dist/api/ledger-db.d.ts +2 -5
  60. package/dist/api/ledger-db.js +5 -35
  61. package/dist/api/memories.d.ts +23 -0
  62. package/dist/api/memories.js +46 -0
  63. package/dist/api/objects.d.ts +9 -0
  64. package/dist/api/objects.js +11 -0
  65. package/dist/api/on-store.js +5 -3
  66. package/dist/api/outcome.js +1 -1
  67. package/dist/api/pilot-arm.d.ts +1 -11
  68. package/dist/api/pilot-arm.js +5 -45
  69. package/dist/api/predictions.d.ts +11 -0
  70. package/dist/api/predictions.js +24 -0
  71. package/dist/api/projects.d.ts +21 -0
  72. package/dist/api/projects.js +24 -0
  73. package/dist/api/promote.d.ts +13 -17
  74. package/dist/api/promote.js +12 -20
  75. package/dist/api/prompt-hook.d.ts +19 -6
  76. package/dist/api/prompt-hook.js +54 -13
  77. package/dist/api/provenance-coverage.d.ts +14 -0
  78. package/dist/{cli → api}/provenance-coverage.js +2 -6
  79. package/dist/api/recall-cli.d.ts +58 -0
  80. package/dist/api/recall-cli.js +103 -0
  81. package/dist/api/recall-core.js +17 -9
  82. package/dist/api/recall-finish.d.ts +53 -0
  83. package/dist/api/recall-finish.js +30 -0
  84. package/dist/api/recall-history.d.ts +17 -84
  85. package/dist/api/recall-history.js +15 -88
  86. package/dist/api/recall-pipeline.d.ts +2 -3
  87. package/dist/api/recall-pipeline.js +21 -15
  88. package/dist/api/recall-request.js +1 -1
  89. package/dist/api/recall-types.d.ts +64 -304
  90. package/dist/api/recall.d.ts +3 -34
  91. package/dist/api/recall.js +63 -89
  92. package/dist/api/refine.d.ts +7 -0
  93. package/dist/api/refine.js +10 -0
  94. package/dist/api/remember-local.d.ts +57 -0
  95. package/dist/api/remember-local.js +90 -0
  96. package/dist/api/remember.d.ts +20 -2
  97. package/dist/api/remember.js +16 -3
  98. package/dist/api/session-end.d.ts +22 -0
  99. package/dist/api/session-end.js +101 -0
  100. package/dist/api/sleep-run.d.ts +2 -4
  101. package/dist/api/sleep-run.js +28 -28
  102. package/dist/api/sleep.d.ts +9 -28
  103. package/dist/api/status.d.ts +24 -0
  104. package/dist/api/status.js +40 -0
  105. package/dist/api/store-init.d.ts +4 -0
  106. package/dist/api/store-init.js +9 -0
  107. package/dist/api/tokens.d.ts +3 -10
  108. package/dist/api/tokens.js +4 -11
  109. package/dist/api/types.d.ts +8 -29
  110. package/dist/api/types.js +10 -23
  111. package/dist/capture/caller-session.d.ts +0 -3
  112. package/dist/capture/caller-session.js +1 -12
  113. package/dist/capture/capture-error.d.ts +2 -2
  114. package/dist/capture/capture-error.js +23 -18
  115. package/dist/capture/codex-patch.js +3 -1
  116. package/dist/capture/command.d.ts +4 -12
  117. package/dist/capture/command.js +39 -114
  118. package/dist/capture/compact.d.ts +4 -15
  119. package/dist/capture/compact.js +26 -30
  120. package/dist/capture/compaction-items-caller.js +11 -20
  121. package/dist/capture/compaction-record.d.ts +7 -93
  122. package/dist/capture/compaction-record.js +34 -399
  123. package/dist/capture/compaction-spool.d.ts +5 -3
  124. package/dist/capture/compaction-spool.js +21 -7
  125. package/dist/capture/copilot-transcript.d.ts +2 -1
  126. package/dist/capture/copilot-transcript.js +2 -1
  127. package/dist/capture/extract.d.ts +5 -2
  128. package/dist/capture/extract.js +4 -3
  129. package/dist/capture/failure-caller.d.ts +1 -1
  130. package/dist/capture/failure-caller.js +21 -16
  131. package/dist/capture/failure-reading.d.ts +2 -1
  132. package/dist/capture/failure-reading.js +7 -9
  133. package/dist/capture/pre-compact-caller.js +5 -4
  134. package/dist/capture/session-digest.d.ts +1 -1
  135. package/dist/capture/session-digest.js +17 -10
  136. package/dist/capture/session-end-caller.js +2 -1
  137. package/dist/capture/session-worker.js +3 -4
  138. package/dist/capture/transcript.d.ts +4 -11
  139. package/dist/capture/transcript.js +10 -21
  140. package/dist/capture/working-state.d.ts +4 -2
  141. package/dist/capture/working-state.js +4 -2
  142. package/dist/cli/api-context.d.ts +3 -0
  143. package/dist/cli/api-context.js +6 -0
  144. package/dist/cli/audit-prune.d.ts +1 -59
  145. package/dist/cli/audit-prune.js +2 -61
  146. package/dist/cli/audit.d.ts +1 -1
  147. package/dist/cli/audit.js +42 -43
  148. package/dist/cli/auth.d.ts +2 -2
  149. package/dist/cli/auth.js +61 -44
  150. package/dist/cli/briefs.d.ts +1 -4
  151. package/dist/cli/briefs.js +42 -301
  152. package/dist/cli/card.d.ts +2 -2
  153. package/dist/cli/card.js +63 -56
  154. package/dist/cli/client.d.ts +12 -27
  155. package/dist/cli/client.js +41 -44
  156. package/dist/cli/compact-resume-payload.js +4 -3
  157. package/dist/cli/context.d.ts +2 -3
  158. package/dist/cli/context.js +22 -18
  159. package/dist/cli/continuity.d.ts +6 -6
  160. package/dist/cli/continuity.js +81 -86
  161. package/dist/cli/curate.d.ts +13 -17
  162. package/dist/cli/curate.js +88 -116
  163. package/dist/cli/dag.d.ts +4 -4
  164. package/dist/cli/dag.js +55 -34
  165. package/dist/cli/decisions.d.ts +2 -4
  166. package/dist/cli/decisions.js +18 -309
  167. package/dist/cli/eval.d.ts +1 -1
  168. package/dist/cli/eval.js +27 -26
  169. package/dist/cli/exit.d.ts +6 -0
  170. package/dist/cli/exit.js +11 -0
  171. package/dist/cli/explain.d.ts +2 -3
  172. package/dist/cli/explain.js +25 -27
  173. package/dist/cli/flag-values.d.ts +6 -1
  174. package/dist/cli/flag-values.js +42 -15
  175. package/dist/cli/flags.d.ts +0 -288
  176. package/dist/cli/flags.js +3 -138
  177. package/dist/cli/github.d.ts +14 -0
  178. package/dist/{connectors/github/cli-impl.js → cli/github.js} +43 -71
  179. package/dist/cli/goals.d.ts +2 -2
  180. package/dist/cli/goals.js +46 -50
  181. package/dist/cli/graph.d.ts +3 -0
  182. package/dist/cli/graph.js +83 -0
  183. package/dist/cli/hook-runtime.d.ts +12 -32
  184. package/dist/cli/hook-runtime.js +21 -64
  185. package/dist/cli/incidents.d.ts +3 -0
  186. package/dist/cli/incidents.js +112 -0
  187. package/dist/cli/init.d.ts +2 -2
  188. package/dist/cli/init.js +33 -30
  189. package/dist/cli/install-steps.d.ts +2 -1
  190. package/dist/cli/install-steps.js +13 -14
  191. package/dist/cli/last-sleep.d.ts +2 -1
  192. package/dist/cli/last-sleep.js +4 -1
  193. package/dist/cli/lenient-id.d.ts +2 -0
  194. package/dist/cli/lenient-id.js +13 -0
  195. package/dist/cli/maintenance.d.ts +5 -5
  196. package/dist/cli/maintenance.js +37 -43
  197. package/dist/cli/notes.d.ts +2 -0
  198. package/dist/cli/notes.js +41 -0
  199. package/dist/cli/object-verbs.js +4 -3
  200. package/dist/cli/open-browser.d.ts +14 -0
  201. package/dist/cli/open-browser.js +26 -0
  202. package/dist/cli/owner-validation.d.ts +5 -28
  203. package/dist/cli/owner-validation.js +5 -28
  204. package/dist/cli/playbooks.d.ts +3 -4
  205. package/dist/cli/playbooks.js +131 -300
  206. package/dist/cli/predictions.d.ts +3 -0
  207. package/dist/cli/predictions.js +175 -0
  208. package/dist/cli/print.d.ts +2 -5
  209. package/dist/cli/print.js +3 -5
  210. package/dist/cli/projects.d.ts +2 -2
  211. package/dist/cli/projects.js +31 -25
  212. package/dist/cli/quality-repair-once.d.ts +1 -1
  213. package/dist/cli/quality-repair-once.js +7 -6
  214. package/dist/cli/recall.d.ts +2 -4
  215. package/dist/cli/recall.js +67 -137
  216. package/dist/cli/refine-llm.d.ts +5 -31
  217. package/dist/cli/refine-llm.js +23 -50
  218. package/dist/cli/remember.d.ts +3 -3
  219. package/dist/cli/remember.js +134 -192
  220. package/dist/cli/scheduler.d.ts +2 -17
  221. package/dist/cli/scheduler.js +14 -19
  222. package/dist/cli/serve.js +23 -14
  223. package/dist/cli/session-hooks.d.ts +11 -19
  224. package/dist/cli/session-hooks.js +143 -214
  225. package/dist/cli/setup.d.ts +4 -4
  226. package/dist/cli/setup.js +35 -30
  227. package/dist/cli/shared.d.ts +7 -25
  228. package/dist/cli/shared.js +17 -60
  229. package/dist/cli/slack.d.ts +2 -2
  230. package/dist/cli/slack.js +19 -23
  231. package/dist/cli/sleep-render.js +6 -3
  232. package/dist/cli/sleep.d.ts +3 -2
  233. package/dist/cli/sleep.js +17 -49
  234. package/dist/cli/status.d.ts +11 -14
  235. package/dist/cli/status.js +74 -120
  236. package/dist/cli/stdin.d.ts +4 -6
  237. package/dist/cli/stdin.js +2 -3
  238. package/dist/cli/transfer.d.ts +9 -9
  239. package/dist/cli/transfer.js +87 -108
  240. package/dist/cli/usage.d.ts +0 -79
  241. package/dist/cli/usage.js +1 -689
  242. package/dist/cli/verb-row.d.ts +32 -0
  243. package/dist/cli/verb-row.js +6 -0
  244. package/dist/cli/verbs/health.d.ts +27 -0
  245. package/dist/cli/verbs/health.js +232 -0
  246. package/dist/cli/verbs/memory.d.ts +16 -0
  247. package/dist/cli/verbs/memory.js +244 -0
  248. package/dist/cli/verbs/objects.d.ts +20 -0
  249. package/dist/cli/verbs/objects.js +254 -0
  250. package/dist/cli/verbs/sessions.d.ts +31 -0
  251. package/dist/cli/verbs/sessions.js +312 -0
  252. package/dist/cli/verbs.d.ts +81 -0
  253. package/dist/cli/verbs.js +7 -0
  254. package/dist/cli/versioned-verbs.d.ts +51 -0
  255. package/dist/cli/versioned-verbs.js +79 -0
  256. package/dist/cli.d.ts +1 -654
  257. package/dist/cli.js +44 -510
  258. package/dist/connectors/dlq.d.ts +39 -3
  259. package/dist/connectors/dlq.js +37 -3
  260. package/dist/connectors/github/backfill.d.ts +5 -25
  261. package/dist/connectors/github/backfill.js +26 -52
  262. package/dist/connectors/github/deletion.d.ts +4 -18
  263. package/dist/connectors/github/deletion.js +2 -15
  264. package/dist/connectors/github/dlq.d.ts +8 -33
  265. package/dist/connectors/github/dlq.js +34 -93
  266. package/dist/connectors/github/ingest.d.ts +4 -12
  267. package/dist/connectors/github/ingest.js +5 -36
  268. package/dist/connectors/github/octokit-client.d.ts +4 -16
  269. package/dist/connectors/github/octokit-client.js +27 -24
  270. package/dist/connectors/github/ratelimit.d.ts +3 -14
  271. package/dist/connectors/github/ratelimit.js +3 -14
  272. package/dist/connectors/github/scope.d.ts +3 -5
  273. package/dist/connectors/github/scope.js +3 -5
  274. package/dist/connectors/github/signature.d.ts +4 -26
  275. package/dist/connectors/github/signature.js +4 -26
  276. package/dist/connectors/github/tenant-routing.d.ts +2 -24
  277. package/dist/connectors/github/tenant-routing.js +4 -26
  278. package/dist/connectors/github/transform.js +2 -16
  279. package/dist/connectors/github/types.d.ts +3 -15
  280. package/dist/connectors/github/types.js +2 -9
  281. package/dist/connectors/github/webhook.d.ts +3 -16
  282. package/dist/connectors/github/webhook.js +38 -23
  283. package/dist/connectors/ingest.d.ts +10 -0
  284. package/dist/connectors/ingest.js +28 -0
  285. package/dist/connectors/slack/backfill.d.ts +4 -17
  286. package/dist/connectors/slack/backfill.js +4 -13
  287. package/dist/connectors/slack/dlq.d.ts +2 -19
  288. package/dist/connectors/slack/dlq.js +51 -90
  289. package/dist/connectors/slack/ingest.d.ts +4 -9
  290. package/dist/connectors/slack/ingest.js +4 -30
  291. package/dist/connectors/slack/scope.d.ts +2 -8
  292. package/dist/connectors/slack/scope.js +2 -8
  293. package/dist/connectors/slack/signature.d.ts +1 -6
  294. package/dist/connectors/slack/tenant-routing.d.ts +2 -19
  295. package/dist/connectors/slack/tenant-routing.js +2 -21
  296. package/dist/connectors/slack/transform.d.ts +2 -18
  297. package/dist/connectors/slack/transform.js +2 -18
  298. package/dist/connectors/slack/types.d.ts +3 -9
  299. package/dist/connectors/slack/types.js +2 -4
  300. package/dist/connectors/slack/web-client.js +33 -27
  301. package/dist/connectors/slack/webhook.d.ts +3 -19
  302. package/dist/connectors/slack/webhook.js +6 -26
  303. package/dist/connectors/slack/workspaces.d.ts +4 -24
  304. package/dist/connectors/slack/workspaces.js +4 -24
  305. package/dist/consolidate/conflicts.js +7 -15
  306. package/dist/consolidate/dag-summary.d.ts +8 -0
  307. package/dist/consolidate/dag-summary.js +41 -0
  308. package/dist/consolidate/dag.d.ts +5 -28
  309. package/dist/consolidate/dag.js +29 -84
  310. package/dist/consolidate/decay.js +7 -19
  311. package/dist/consolidate/dedupe.d.ts +13 -52
  312. package/dist/consolidate/dedupe.js +18 -74
  313. package/dist/consolidate/flush-units.d.ts +3 -4
  314. package/dist/consolidate/flush-units.js +3 -3
  315. package/dist/consolidate/half-life-migration.d.ts +3 -26
  316. package/dist/consolidate/half-life-migration.js +11 -28
  317. package/dist/consolidate/llm-passes.js +49 -40
  318. package/dist/consolidate/memory-value-weights.d.ts +2 -13
  319. package/dist/consolidate/memory-value-weights.js +2 -13
  320. package/dist/consolidate/memory-value.d.ts +11 -84
  321. package/dist/consolidate/memory-value.js +18 -105
  322. package/dist/consolidate/merge.js +12 -33
  323. package/dist/consolidate/physics-pass.d.ts +6 -1
  324. package/dist/consolidate/physics-pass.js +27 -9
  325. package/dist/consolidate/replay.d.ts +6 -38
  326. package/dist/consolidate/replay.js +25 -56
  327. package/dist/consolidate/run.js +1 -1
  328. package/dist/consolidate/sleep.d.ts +1 -8
  329. package/dist/consolidate/sleep.js +13 -22
  330. package/dist/consolidate/trace.d.ts +3 -18
  331. package/dist/consolidate/trace.js +3 -18
  332. package/dist/consolidate/traces.js +9 -25
  333. package/dist/core/ablation.d.ts +14 -91
  334. package/dist/core/ablation.js +16 -91
  335. package/dist/core/active-scope.d.ts +7 -0
  336. package/dist/{sharing/scope.js → core/active-scope.js} +5 -12
  337. package/dist/core/ambient.d.ts +5 -8
  338. package/dist/core/ambient.js +40 -26
  339. package/dist/core/api-errors.d.ts +16 -0
  340. package/dist/core/api-errors.js +20 -0
  341. package/dist/core/capture-contract.d.ts +4 -2
  342. package/dist/core/capture-contract.js +4 -2
  343. package/dist/core/card.d.ts +4 -1
  344. package/dist/core/card.js +11 -1
  345. package/dist/core/compaction-timing.d.ts +7 -0
  346. package/dist/core/compaction-timing.js +9 -0
  347. package/dist/core/compare.d.ts +11 -67
  348. package/dist/core/compare.js +9 -63
  349. package/dist/core/config.d.ts +10 -24
  350. package/dist/core/config.js +20 -16
  351. package/dist/core/cosine.d.ts +3 -0
  352. package/dist/core/cosine.js +19 -0
  353. package/dist/core/handoff.d.ts +1 -7
  354. package/dist/core/handoff.js +1 -7
  355. package/dist/core/markdown.d.ts +6 -0
  356. package/dist/{store → core}/markdown.js +23 -22
  357. package/dist/core/memory-audit.d.ts +17 -0
  358. package/dist/core/memory-audit.js +54 -0
  359. package/dist/core/memory-quality.js +1 -1
  360. package/dist/core/memory.d.ts +51 -168
  361. package/dist/core/memory.js +76 -239
  362. package/dist/{consolidate → core}/merged-row.d.ts +1 -1
  363. package/dist/{consolidate → core}/merged-row.js +3 -2
  364. package/dist/core/package-root.d.ts +3 -0
  365. package/dist/core/package-root.js +5 -0
  366. package/dist/core/physics-config.d.ts +1 -4
  367. package/dist/core/physics-config.js +3 -8
  368. package/dist/core/physics.d.ts +15 -61
  369. package/dist/core/physics.js +65 -138
  370. package/dist/core/prediction.d.ts +3 -0
  371. package/dist/core/prediction.js +6 -0
  372. package/dist/core/project-identity.d.ts +20 -58
  373. package/dist/core/project-identity.js +27 -39
  374. package/dist/core/project-remote.js +13 -2
  375. package/dist/core/raw-append-only.d.ts +5 -0
  376. package/dist/core/raw-append-only.js +7 -0
  377. package/dist/core/recall-scope.d.ts +69 -0
  378. package/dist/core/recall-scope.js +138 -0
  379. package/dist/core/salience.d.ts +1 -7
  380. package/dist/core/salience.js +1 -7
  381. package/dist/dashboard/dashboard-actions.js +2 -2
  382. package/dist/dashboard/dashboard-snapshot.d.ts +2 -1
  383. package/dist/dashboard/dashboard-snapshot.js +11 -2
  384. package/dist/dashboard/dashboard-types.d.ts +2 -1
  385. package/dist/dashboard/dashboard.d.ts +1 -0
  386. package/dist/dashboard/dashboard.js +50 -4
  387. package/dist/db/busy.d.ts +3 -8
  388. package/dist/db/busy.js +37 -33
  389. package/dist/db/connect.js +7 -8
  390. package/dist/db/index.d.ts +3 -3
  391. package/dist/db/index.js +3 -3
  392. package/dist/db/migrate.js +3 -3
  393. package/dist/db/migrations/index.d.ts +1 -1
  394. package/dist/db/migrations/index.js +3 -1
  395. package/dist/db/migrations/types.d.ts +2 -5
  396. package/dist/db/migrations/v14.js +2 -3
  397. package/dist/db/migrations/v15.js +2 -8
  398. package/dist/db/migrations/v16.js +2 -3
  399. package/dist/db/migrations/v17.js +2 -3
  400. package/dist/db/migrations/v19.js +2 -5
  401. package/dist/db/migrations/v20.js +2 -7
  402. package/dist/db/migrations/v22.js +4 -17
  403. package/dist/db/migrations/v23.js +3 -14
  404. package/dist/db/migrations/v24.js +2 -4
  405. package/dist/db/migrations/v25.js +3 -8
  406. package/dist/db/migrations/v26.js +2 -13
  407. package/dist/db/migrations/v27.js +3 -11
  408. package/dist/db/migrations/v28.js +2 -14
  409. package/dist/db/migrations/v29.js +4 -18
  410. package/dist/db/migrations/v30.js +4 -16
  411. package/dist/db/migrations/v31.js +2 -15
  412. package/dist/db/migrations/v32.js +4 -22
  413. package/dist/db/migrations/v33.js +2 -15
  414. package/dist/db/migrations/v34.js +2 -11
  415. package/dist/db/migrations/v35.js +2 -11
  416. package/dist/db/migrations/v36.js +2 -11
  417. package/dist/db/migrations/v37.js +8 -33
  418. package/dist/db/migrations/v38.js +5 -38
  419. package/dist/db/migrations/v39.js +9 -20
  420. package/dist/db/migrations/v40.js +2 -9
  421. package/dist/db/migrations/v41.js +2 -24
  422. package/dist/db/migrations/v43.js +1 -1
  423. package/dist/db/migrations/v44.js +2 -8
  424. package/dist/db/migrations/v45.js +2 -7
  425. package/dist/db/migrations/v47.js +2 -3
  426. package/dist/db/migrations/v51.js +1 -1
  427. package/dist/db/migrations/v55.d.ts +3 -0
  428. package/dist/db/migrations/v55.js +17 -0
  429. package/dist/db/open.d.ts +2 -2
  430. package/dist/db/open.js +21 -9
  431. package/dist/db/physics-state.d.ts +6 -22
  432. package/dist/db/physics-state.js +28 -39
  433. package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
  434. package/dist/db/raw-archive-mirror-cleanup.js +2 -17
  435. package/dist/db/tables.d.ts +2 -0
  436. package/dist/db/tables.js +6 -2
  437. package/dist/db/vector-store.d.ts +2 -0
  438. package/dist/db/vector-store.js +25 -5
  439. package/dist/db/wal-checkpointer.js +2 -1
  440. package/dist/doctor.js +85 -27
  441. package/dist/embeddings/local.d.ts +62 -0
  442. package/dist/embeddings/local.js +146 -0
  443. package/dist/embeddings/provider.d.ts +43 -0
  444. package/dist/{store/embeddings → embeddings}/provider.js +58 -83
  445. package/dist/embeddings/transformers.d.ts +26 -0
  446. package/dist/embeddings/transformers.js +89 -0
  447. package/dist/entry/session-text.d.ts +1 -1
  448. package/dist/entry/session-text.js +3 -2
  449. package/dist/eval/eval-stats.d.ts +15 -53
  450. package/dist/eval/eval-stats.js +12 -42
  451. package/dist/eval/eval-suite.d.ts +2 -13
  452. package/dist/eval/eval-suite.js +91 -45
  453. package/dist/eval/eval.d.ts +6 -24
  454. package/dist/eval/eval.js +8 -35
  455. package/dist/eval/judgment.d.ts +0 -3
  456. package/dist/eval/judgment.js +30 -15
  457. package/dist/extensions/openclaw-plugin/index.js +1 -1
  458. package/dist/graph/extract.d.ts +5 -27
  459. package/dist/graph/extract.js +10 -36
  460. package/dist/graph/recall.d.ts +7 -20
  461. package/dist/graph/recall.js +15 -77
  462. package/dist/graph/stream.d.ts +7 -39
  463. package/dist/graph/stream.js +11 -34
  464. package/dist/graph/view.d.ts +9 -35
  465. package/dist/graph/view.js +24 -44
  466. package/dist/graph/write.d.ts +1 -1
  467. package/dist/graph/write.js +9 -9
  468. package/dist/hooks/codex-session.js +3 -2
  469. package/dist/hooks/codex-wrapper.js +4 -3
  470. package/dist/hooks/copilot.js +2 -1
  471. package/dist/hooks/hook-blocks.d.ts +6 -2
  472. package/dist/hooks/hook-blocks.js +37 -124
  473. package/dist/hooks/json-hooks.d.ts +4 -36
  474. package/dist/hooks/json-hooks.js +22 -59
  475. package/dist/hooks/opencode.d.ts +0 -38
  476. package/dist/hooks/opencode.js +17 -81
  477. package/dist/hooks/shared.d.ts +6 -21
  478. package/dist/hooks/shared.js +31 -33
  479. package/dist/importers/core.d.ts +12 -37
  480. package/dist/importers/core.js +10 -28
  481. package/dist/importers/markdown-parse.d.ts +8 -22
  482. package/dist/importers/markdown-parse.js +8 -25
  483. package/dist/importers/markdown.js +3 -12
  484. package/dist/importers/sources.js +12 -39
  485. package/dist/importers/vault.d.ts +2 -8
  486. package/dist/importers/vault.js +31 -85
  487. package/dist/index.d.ts +8 -3
  488. package/dist/index.js +8 -3
  489. package/dist/learn/autolearn.d.ts +23 -42
  490. package/dist/learn/autolearn.js +45 -52
  491. package/dist/learn/churn-git.js +13 -4
  492. package/dist/learn/extract.d.ts +3 -2
  493. package/dist/learn/extract.js +8 -8
  494. package/dist/learn/forward-claim-detector.d.ts +6 -30
  495. package/dist/learn/forward-claim-detector.js +18 -68
  496. package/dist/learn/invalidation.d.ts +6 -18
  497. package/dist/learn/invalidation.js +18 -31
  498. package/dist/mcp/admin-tools.d.ts +2 -2
  499. package/dist/mcp/admin-tools.js +30 -53
  500. package/dist/mcp/format.js +3 -2
  501. package/dist/mcp/framing.d.ts +1 -0
  502. package/dist/mcp/framing.js +1 -1
  503. package/dist/mcp/memory-tools.js +7 -10
  504. package/dist/mcp/protocol.d.ts +15 -29
  505. package/dist/mcp/protocol.js +26 -16
  506. package/dist/mcp/recall-tools.js +14 -11
  507. package/dist/mcp/request.d.ts +3 -11
  508. package/dist/mcp/request.js +12 -27
  509. package/dist/mcp/server.d.ts +3 -9
  510. package/dist/mcp/server.js +5 -16
  511. package/dist/mcp/session-state.d.ts +1 -1
  512. package/dist/mcp/session-state.js +5 -11
  513. package/dist/mcp/stdio.d.ts +2 -6
  514. package/dist/mcp/stdio.js +68 -16
  515. package/dist/mcp/tool-args.js +2 -1
  516. package/dist/mcp/tools.js +47 -22
  517. package/dist/objects/customer-notes.d.ts +9 -44
  518. package/dist/objects/customer-notes.js +7 -48
  519. package/dist/objects/decisions.d.ts +14 -52
  520. package/dist/objects/decisions.js +15 -53
  521. package/dist/objects/descriptor.d.ts +1 -1
  522. package/dist/objects/incidents.d.ts +9 -40
  523. package/dist/objects/incidents.js +7 -41
  524. package/dist/objects/lifecycle.d.ts +1 -1
  525. package/dist/objects/lifecycle.js +2 -1
  526. package/dist/objects/policies.d.ts +13 -91
  527. package/dist/objects/policies.js +13 -99
  528. package/dist/objects/processes.d.ts +9 -54
  529. package/dist/objects/processes.js +7 -61
  530. package/dist/objects/project-briefs.d.ts +13 -57
  531. package/dist/objects/project-briefs.js +16 -78
  532. package/dist/objects/skills.d.ts +9 -44
  533. package/dist/objects/skills.js +8 -54
  534. package/dist/postinstall.js +7 -20
  535. package/dist/predictions/planning-fallacy.d.ts +11 -34
  536. package/dist/rerankers/clef.js +6 -37
  537. package/dist/rerankers/cross-encoder.d.ts +31 -2
  538. package/dist/rerankers/cross-encoder.js +65 -101
  539. package/dist/rerankers/index.js +5 -4
  540. package/dist/rerankers/jev.js +11 -10
  541. package/dist/rerankers/llm.d.ts +2 -11
  542. package/dist/rerankers/llm.js +14 -14
  543. package/dist/rerankers/outage-warning.d.ts +5 -2
  544. package/dist/rerankers/outage-warning.js +7 -4
  545. package/dist/rerankers/remote.d.ts +1 -0
  546. package/dist/rerankers/remote.js +2 -0
  547. package/dist/rerankers/types.d.ts +2 -14
  548. package/dist/search/bm25-search.js +1 -1
  549. package/dist/search/boosts.d.ts +0 -2
  550. package/dist/search/boosts.js +3 -3
  551. package/dist/search/embed-memories.d.ts +9 -0
  552. package/dist/search/embed-memories.js +377 -0
  553. package/dist/search/goal-boost.d.ts +23 -0
  554. package/dist/search/goal-boost.js +93 -0
  555. package/dist/search/hybrid.d.ts +11 -2
  556. package/dist/search/hybrid.js +9 -4
  557. package/dist/search/multihop.js +2 -3
  558. package/dist/search/path-context.d.ts +5 -18
  559. package/dist/search/path-context.js +5 -18
  560. package/dist/search/physics-search.d.ts +6 -3
  561. package/dist/search/physics-search.js +29 -19
  562. package/dist/search/rerank.js +1 -1
  563. package/dist/search/rrf.d.ts +7 -35
  564. package/dist/search/rrf.js +5 -30
  565. package/dist/search/vector.d.ts +13 -4
  566. package/dist/search/vector.js +40 -13
  567. package/dist/server/auth.d.ts +11 -28
  568. package/dist/server/auth.js +49 -32
  569. package/dist/server/boot.d.ts +2 -21
  570. package/dist/server/boot.js +69 -161
  571. package/dist/server/client-ip.d.ts +3 -21
  572. package/dist/server/client-ip.js +8 -30
  573. package/dist/server/deadline.d.ts +0 -2
  574. package/dist/server/deadline.js +1 -7
  575. package/dist/server/defaults.d.ts +4 -0
  576. package/dist/server/defaults.js +5 -0
  577. package/dist/server/key-check-bounds.d.ts +2 -1
  578. package/dist/server/lifecycle.d.ts +5 -4
  579. package/dist/server/lifecycle.js +19 -4
  580. package/dist/server/mcp-http.js +24 -53
  581. package/dist/server/rate-limit.d.ts +5 -18
  582. package/dist/server/rate-limit.js +4 -13
  583. package/dist/server/request.d.ts +4 -8
  584. package/dist/server/request.js +16 -19
  585. package/dist/server/route-checks.d.ts +7 -0
  586. package/dist/server/route-checks.js +42 -0
  587. package/dist/server/route-table.d.ts +9 -8
  588. package/dist/server/route-table.js +127 -139
  589. package/dist/server/routes/admin.d.ts +8 -8
  590. package/dist/server/routes/admin.js +35 -49
  591. package/dist/server/routes/customer-notes.d.ts +6 -6
  592. package/dist/server/routes/customer-notes.js +8 -14
  593. package/dist/server/routes/decisions.d.ts +6 -6
  594. package/dist/server/routes/decisions.js +12 -21
  595. package/dist/server/routes/incidents.d.ts +6 -6
  596. package/dist/server/routes/incidents.js +14 -25
  597. package/dist/server/routes/memories.d.ts +9 -9
  598. package/dist/server/routes/memories.js +20 -63
  599. package/dist/server/routes/object-routes.d.ts +6 -11
  600. package/dist/server/routes/object-routes.js +11 -22
  601. package/dist/server/routes/policies.d.ts +7 -7
  602. package/dist/server/routes/policies.js +12 -22
  603. package/dist/server/routes/predictions.d.ts +6 -6
  604. package/dist/server/routes/predictions.js +22 -38
  605. package/dist/server/routes/processes.d.ts +6 -6
  606. package/dist/server/routes/processes.js +17 -28
  607. package/dist/server/routes/project-briefs.d.ts +7 -7
  608. package/dist/server/routes/project-briefs.js +11 -20
  609. package/dist/server/routes/recall.d.ts +5 -5
  610. package/dist/server/routes/recall.js +16 -45
  611. package/dist/server/routes/skills.d.ts +7 -7
  612. package/dist/server/routes/skills.js +10 -22
  613. package/dist/server/server-detect.d.ts +15 -53
  614. package/dist/server/server-detect.js +55 -96
  615. package/dist/server/sleep-child.js +26 -7
  616. package/dist/server/sleep-offload.d.ts +11 -5
  617. package/dist/server/sleep-offload.js +21 -12
  618. package/dist/server/types.d.ts +32 -18
  619. package/dist/server/validation.d.ts +3 -2
  620. package/dist/server/validation.js +15 -33
  621. package/dist/server.d.ts +7 -6
  622. package/dist/server.js +8 -6
  623. package/dist/sharing/global-store.d.ts +19 -0
  624. package/dist/sharing/global-store.js +75 -0
  625. package/dist/sharing/global-sync.d.ts +6 -0
  626. package/dist/sharing/global-sync.js +73 -0
  627. package/dist/sharing/project-merge.d.ts +11 -19
  628. package/dist/sharing/project-merge.js +63 -125
  629. package/dist/sharing/search-both.d.ts +60 -0
  630. package/dist/sharing/search-both.js +138 -0
  631. package/dist/sharing/share.d.ts +40 -0
  632. package/dist/sharing/share.js +229 -0
  633. package/dist/store/ambient.js +9 -15
  634. package/dist/store/audit-event.d.ts +5 -13
  635. package/dist/store/audit-event.js +4 -12
  636. package/dist/store/audit.d.ts +2 -21
  637. package/dist/store/audit.js +8 -67
  638. package/dist/store/auth.d.ts +10 -8
  639. package/dist/store/auth.js +17 -12
  640. package/dist/store/candidates.d.ts +23 -5
  641. package/dist/store/candidates.js +119 -71
  642. package/dist/store/capture-write.d.ts +17 -0
  643. package/dist/store/capture-write.js +35 -0
  644. package/dist/store/card-detail.d.ts +2 -1
  645. package/dist/store/card-detail.js +2 -1
  646. package/dist/store/cards.d.ts +14 -9
  647. package/dist/store/cards.js +72 -126
  648. package/dist/store/compaction-caller.d.ts +18 -0
  649. package/dist/store/compaction-caller.js +29 -0
  650. package/dist/store/compactions-record.d.ts +115 -0
  651. package/dist/store/compactions-record.js +417 -0
  652. package/dist/store/compactions.js +6 -4
  653. package/dist/store/conflicts.d.ts +4 -21
  654. package/dist/store/conflicts.js +76 -152
  655. package/dist/store/connectors/dlq.d.ts +10 -0
  656. package/dist/store/connectors/dlq.js +32 -0
  657. package/dist/store/connectors/github.d.ts +14 -16
  658. package/dist/store/connectors/github.js +34 -57
  659. package/dist/store/connectors/slack.d.ts +2 -11
  660. package/dist/store/connectors/slack.js +18 -47
  661. package/dist/store/dashboard-reads.js +11 -14
  662. package/dist/store/delete-and-batch.d.ts +17 -31
  663. package/dist/store/delete-and-batch.js +84 -67
  664. package/dist/store/delivery-recorder.d.ts +15 -4
  665. package/dist/store/delivery-recorder.js +34 -17
  666. package/dist/store/descendant-page.js +6 -3
  667. package/dist/store/diagnostics.js +6 -13
  668. package/dist/store/dormant.d.ts +8 -30
  669. package/dist/store/dormant.js +18 -57
  670. package/dist/store/embeddings/index.d.ts +11 -90
  671. package/dist/store/embeddings/index.js +18 -523
  672. package/dist/store/entry-reads.d.ts +34 -61
  673. package/dist/store/entry-reads.js +111 -136
  674. package/dist/store/entry-row.d.ts +6 -35
  675. package/dist/store/entry-row.js +9 -37
  676. package/dist/store/entry-writes.d.ts +12 -18
  677. package/dist/store/entry-writes.js +46 -44
  678. package/dist/store/failure-log-at.d.ts +8 -0
  679. package/dist/store/failure-log-at.js +16 -0
  680. package/dist/store/failure-log.d.ts +2 -2
  681. package/dist/store/failure-log.js +5 -3
  682. package/dist/{trust → store}/gated-write.d.ts +3 -1
  683. package/dist/{trust → store}/gated-write.js +7 -5
  684. package/dist/store/goals.d.ts +3 -40
  685. package/dist/store/goals.js +41 -178
  686. package/dist/store/graph-queue.d.ts +6 -22
  687. package/dist/store/graph-queue.js +14 -45
  688. package/dist/store/graph-reads.d.ts +11 -35
  689. package/dist/store/graph-reads.js +24 -60
  690. package/dist/store/graph-rows.d.ts +3 -6
  691. package/dist/store/graph-rows.js +6 -9
  692. package/dist/store/graph-view-rows.d.ts +2 -1
  693. package/dist/store/graph-view-rows.js +2 -1
  694. package/dist/store/graph-writes.d.ts +10 -35
  695. package/dist/store/graph-writes.js +59 -106
  696. package/dist/store/half-life.d.ts +2 -1
  697. package/dist/store/half-life.js +14 -16
  698. package/dist/store/handoffs.d.ts +6 -12
  699. package/dist/store/handoffs.js +22 -40
  700. package/dist/store/index-and-stats.d.ts +6 -19
  701. package/dist/store/index-and-stats.js +36 -84
  702. package/dist/store/key-writes.js +1 -1
  703. package/dist/store/ledger-turn.d.ts +9 -0
  704. package/dist/store/ledger-turn.js +38 -0
  705. package/dist/store/mirrors.d.ts +2 -6
  706. package/dist/store/mirrors.js +24 -29
  707. package/dist/store/open.d.ts +0 -4
  708. package/dist/store/open.js +42 -62
  709. package/dist/store/pilot-arm.d.ts +12 -0
  710. package/dist/store/pilot-arm.js +42 -0
  711. package/dist/store/planning-fallacy-evidence.d.ts +2 -30
  712. package/dist/store/planning-fallacy-evidence.js +8 -37
  713. package/dist/store/port.d.ts +91 -82
  714. package/dist/store/port.js +8 -0
  715. package/dist/store/predictions.d.ts +12 -53
  716. package/dist/store/predictions.js +41 -125
  717. package/dist/store/project-tags.d.ts +62 -0
  718. package/dist/store/project-tags.js +67 -0
  719. package/dist/{cli → store}/quality-repair.js +15 -31
  720. package/dist/store/quarantine.js +2 -1
  721. package/dist/store/raw-archive.d.ts +4 -16
  722. package/dist/store/raw-archive.js +14 -29
  723. package/dist/store/recall-trace.d.ts +12 -77
  724. package/dist/store/recall-trace.js +37 -97
  725. package/dist/store/rejected-values.js +9 -20
  726. package/dist/store/rejection-probe.d.ts +4 -0
  727. package/dist/store/rejection-probe.js +19 -0
  728. package/dist/store/rejection.d.ts +10 -73
  729. package/dist/store/rejection.js +12 -84
  730. package/dist/store/report-reads.d.ts +6 -0
  731. package/dist/store/report-reads.js +29 -0
  732. package/dist/store/rows.d.ts +9 -19
  733. package/dist/store/rows.js +36 -34
  734. package/dist/store/rule-sql.d.ts +14 -0
  735. package/dist/store/rule-sql.js +56 -0
  736. package/dist/store/search-rows.d.ts +7 -38
  737. package/dist/store/search-rows.js +23 -54
  738. package/dist/store/sessions.d.ts +10 -47
  739. package/dist/store/sessions.js +21 -75
  740. package/dist/store/set-aside.d.ts +14 -0
  741. package/dist/store/set-aside.js +23 -0
  742. package/dist/store/sqlite/busy.d.ts +3 -0
  743. package/dist/store/sqlite/busy.js +8 -0
  744. package/dist/store/sqlite/connector-events-group.js +5 -8
  745. package/dist/store/sqlite/connector-writes-group.js +3 -3
  746. package/dist/store/sqlite/entry-writes-group.js +4 -4
  747. package/dist/store/sqlite/error-codec.js +8 -5
  748. package/dist/store/sqlite/executor.d.ts +2 -1
  749. package/dist/store/sqlite/executor.js +12 -5
  750. package/dist/store/sqlite/graph-reads-group.js +1 -1
  751. package/dist/store/sqlite/held-connection.d.ts +9 -0
  752. package/dist/store/sqlite/held-connection.js +41 -0
  753. package/dist/store/sqlite/local.d.ts +3 -3
  754. package/dist/store/sqlite/local.js +1 -0
  755. package/dist/store/sqlite/object-rows.d.ts +1 -1
  756. package/dist/store/sqlite/object-rows.js +6 -3
  757. package/dist/store/sqlite/objects-group.d.ts +1 -1
  758. package/dist/store/sqlite/objects-group.js +5 -3
  759. package/dist/store/sqlite/quarantine-group.js +2 -2
  760. package/dist/store/sqlite/store.d.ts +1 -4
  761. package/dist/store/sqlite/store.js +16 -15
  762. package/dist/store/sqlite/vector-reads-group.js +2 -2
  763. package/dist/store/sqlite/worker-jobs.js +1 -1
  764. package/dist/store/sqlite/worker-ops.d.ts +13 -2
  765. package/dist/store/sqlite/worker-ops.js +13 -2
  766. package/dist/store/sqlite/worker-store.js +5 -2
  767. package/dist/store/summaries.d.ts +11 -63
  768. package/dist/store/summaries.js +37 -148
  769. package/dist/store/summary-dirty.js +1 -1
  770. package/dist/store/tenant-lookup.d.ts +6 -1
  771. package/dist/store/tenant-lookup.js +7 -0
  772. package/dist/store/tenant.d.ts +2 -16
  773. package/dist/store/tenant.js +4 -19
  774. package/dist/store/token-ledger.d.ts +13 -50
  775. package/dist/store/token-ledger.js +19 -85
  776. package/dist/store/usage-reports.js +5 -13
  777. package/dist/store/vector-index.d.ts +46 -0
  778. package/dist/store/vector-index.js +171 -0
  779. package/dist/store/working-memory.d.ts +6 -25
  780. package/dist/store/working-memory.js +18 -52
  781. package/dist/support-bundle.js +9 -8
  782. package/dist/trust/reject-flow.js +3 -5
  783. package/dist/util/agent-homes.d.ts +15 -0
  784. package/dist/util/agent-homes.js +34 -0
  785. package/dist/util/anthropic-messages.d.ts +3 -0
  786. package/dist/util/anthropic-messages.js +35 -6
  787. package/dist/util/atomic-write.d.ts +2 -1
  788. package/dist/util/atomic-write.js +35 -4
  789. package/dist/util/capped-json.d.ts +6 -0
  790. package/dist/util/capped-json.js +46 -0
  791. package/dist/util/chunked.d.ts +3 -0
  792. package/dist/util/chunked.js +10 -0
  793. package/dist/util/crash-handlers.d.ts +8 -1
  794. package/dist/util/crash-handlers.js +52 -10
  795. package/dist/util/ellipsize.d.ts +3 -0
  796. package/dist/util/ellipsize.js +5 -0
  797. package/dist/util/env.d.ts +14 -6
  798. package/dist/util/env.js +15 -7
  799. package/dist/util/format.d.ts +3 -0
  800. package/dist/util/format.js +6 -0
  801. package/dist/util/home-path.d.ts +2 -1
  802. package/dist/util/home-path.js +4 -2
  803. package/dist/util/hook-payload.d.ts +8 -0
  804. package/dist/util/hook-payload.js +37 -0
  805. package/dist/util/http-retry.d.ts +9 -1
  806. package/dist/util/http-retry.js +67 -8
  807. package/dist/util/http-util.d.ts +0 -8
  808. package/dist/util/http-util.js +10 -21
  809. package/dist/util/limits.d.ts +7 -0
  810. package/dist/util/limits.js +14 -0
  811. package/dist/util/log.d.ts +7 -2
  812. package/dist/util/log.js +34 -9
  813. package/dist/util/request-scope.d.ts +5 -2
  814. package/dist/util/request-scope.js +13 -7
  815. package/dist/util/secret-detect.d.ts +5 -30
  816. package/dist/util/secret-detect.js +19 -40
  817. package/dist/util/sqlite-blocked.d.ts +2 -0
  818. package/dist/util/sqlite-blocked.js +5 -0
  819. package/dist/util/stored-json.d.ts +1 -1
  820. package/dist/util/stored-json.js +1 -1
  821. package/dist/util/stream-tee.d.ts +3 -0
  822. package/dist/util/stream-tee.js +35 -0
  823. package/dist/util/time.d.ts +4 -0
  824. package/dist/util/time.js +4 -0
  825. package/dist/util/token-text.d.ts +1 -4
  826. package/dist/util/token-text.js +1 -4
  827. package/dist/util/transcript-tail.d.ts +2 -0
  828. package/dist/util/transcript-tail.js +24 -23
  829. package/dist/util/version.d.ts +5 -20
  830. package/dist/util/version.js +5 -20
  831. package/dist/{store → util}/yaml.d.ts +1 -5
  832. package/dist/{store → util}/yaml.js +2 -6
  833. package/extensions/openclaw-plugin/index.ts +1 -1
  834. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  835. package/extensions/openclaw-plugin/package.json +1 -1
  836. package/openclaw.plugin.json +1 -1
  837. package/package.json +2 -2
  838. package/dist/cli/provenance-coverage.d.ts +0 -18
  839. package/dist/connectors/github/cli-impl.d.ts +0 -25
  840. package/dist/sharing/scope.d.ts +0 -14
  841. package/dist/sharing/shared.d.ts +0 -187
  842. package/dist/sharing/shared.js +0 -563
  843. package/dist/store/embeddings/local.d.ts +0 -15
  844. package/dist/store/embeddings/local.js +0 -192
  845. package/dist/store/embeddings/provider.d.ts +0 -77
  846. package/dist/store/markdown.d.ts +0 -10
  847. package/dist/store/recall-scope.d.ts +0 -138
  848. package/dist/store/recall-scope.js +0 -216
  849. package/dist/store/vector-writes.d.ts +0 -13
  850. package/dist/store/vector-writes.js +0 -89
  851. /package/dist/{store → core}/object-types.d.ts +0 -0
  852. /package/dist/{store → core}/object-types.js +0 -0
  853. /package/dist/{cli → store}/quality-repair.d.ts +0 -0
  854. /package/dist/{capture → util}/compaction-items.d.ts +0 -0
  855. /package/dist/{capture → util}/compaction-items.js +0 -0
@@ -3,21 +3,10 @@ import type { Context } from './types.js';
3
3
  export interface DrillDownOpts {
4
4
  /** Cap on number of children returned. Default 50. */
5
5
  limit?: number;
6
- /**
7
- * Optional token budget. When set, children are appended in chronological
8
- * order (created ASC) until adding the next child would exceed the budget.
9
- * Token cost = the child's printed line under `cost`, else ceil(content.length / 4).
10
- *
11
- * For depth > 1, the budget is GLOBAL cumulative (NOT per-level).
12
- */
6
+ /** Token budget: children append in created order until the next would exceed it (cost: printed line under `cost`, else ceil(content.length / 4)).
7
+ * For depth > 1 the budget is global and cumulative, not per level. */
13
8
  budget?: number;
14
- /**
15
- * v0.30 / E5 — walk N levels down (default 1 = direct children only).
16
- * Higher values include children of children, etc. Internal hard cap 10
17
- * to prevent pathological depth walks. BFS uses visited Set for dedup
18
- * (defensive against shared-child data anomalies; DAG is acyclic by
19
- * construction).
20
- */
9
+ /** Levels to walk down (default 1 = direct children); capped at 10 internally. BFS dedups with a visited Set, defensive against shared-child anomalies. */
21
10
  depth?: number;
22
11
  cost?: DrillDownCost;
23
12
  project?: CallerProject;
@@ -46,41 +35,13 @@ export interface DrillDownResult {
46
35
  totalChildren: number;
47
36
  truncated: boolean;
48
37
  }
49
- /**
50
- * v1.6.4 discriminated failure shape. Two reasons distinguishable:
51
- * - `not_found`: covers genuinely-missing, wrong-tenant, AND
52
- * scope-blocked (codex round 3 P1 — distinguishing scope_blocked
53
- * from not_found on non-HTTP surfaces leaked private-row existence
54
- * to no-scope callers, even though the HTTP route already collapsed
55
- * them. Collapse at the API layer.)
56
- * - `not_drillable`: id is a leaf row (level 0/1). Caller-actionable.
57
- *
58
- * If a future drillDown gains a `scope` opt for explicit-scope callers,
59
- * a `scope_blocked` failure could be safely re-introduced ONLY for that
60
- * code path (caller already proved authorization by passing a scope).
61
- */
38
+ /** `not_found` covers missing, wrong-tenant AND scope-blocked, because distinguishing scope_blocked leaked private-row existence to no-scope callers.
39
+ * `not_drillable`: the id is a leaf row (level 0/1), which the caller can act on. */
62
40
  export interface DrillDownFailure {
63
41
  failure: 'not_found' | 'not_drillable';
64
42
  }
65
43
  export type DrillDownOutcome = DrillDownResult | DrillDownFailure;
66
- /**
67
- * Walk one step down the DAG from a level-2 (or higher) summary to its direct
68
- * children. Companion to `recall(... summarizeOverflow: true)` — when recall
69
- * surfaces a summary with `substitutedFor: [...]`, the caller drills into the
70
- * summary id to recover the original detail.
71
- *
72
- * Tenant scope: only summaries owned by `ctx.tenantId` are reachable. The same
73
- * scope filter that recall applies is enforced on the children — a level-2
74
- * summary in `slack:public:CGEN` cannot leak `slack:private:*` children even
75
- * if the underlying DAG accidentally linked across scopes.
76
- *
77
- * Returns a discriminated `DrillDownOutcome`: `DrillDownResult` on success,
78
- * or `{failure: '...'}` for `not_found` (covers genuinely-missing, wrong-
79
- * tenant and scope-blocked, intentionally indistinguishable) or
80
- * `not_drillable` (id is a leaf row).
81
- *
82
- * Pre-v1.6.4 returned null for all three cases. JS callers migrate via
83
- * `'failure' in result` checks; HTTP route maps `not_drillable` to 422.
84
- */
44
+ /** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(... summarizeOverflow: true)` substitutions). Only
45
+ * `ctx.tenantId` summaries are reachable; children get recall's scope filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
85
46
  export declare function drillDown(ctx: Context, summaryId: string, opts?: DrillDownOpts): Promise<DrillDownOutcome>;
86
47
  //# sourceMappingURL=drill-down.d.ts.map
@@ -1,28 +1,11 @@
1
1
  // DAG drill-down from a summary to its children.
2
2
  import { requireGroup, storeFor } from '../store/index.js';
3
3
  import { estimateTokens } from '../util/token-text.js';
4
- import { passesScopeFilterForRecall, personalScopeOf } from '../store/recall-scope.js';
4
+ import { passesScopeFilterForRecall, personalScopeOf } from '../core/recall-scope.js';
5
5
  import { classifyOriginProject } from '../core/project-identity.js';
6
6
  const DEFAULT_DRILL_DOWN_LIMIT = 50;
7
- /**
8
- * Walk one step down the DAG from a level-2 (or higher) summary to its direct
9
- * children. Companion to `recall(... summarizeOverflow: true)` — when recall
10
- * surfaces a summary with `substitutedFor: [...]`, the caller drills into the
11
- * summary id to recover the original detail.
12
- *
13
- * Tenant scope: only summaries owned by `ctx.tenantId` are reachable. The same
14
- * scope filter that recall applies is enforced on the children — a level-2
15
- * summary in `slack:public:CGEN` cannot leak `slack:private:*` children even
16
- * if the underlying DAG accidentally linked across scopes.
17
- *
18
- * Returns a discriminated `DrillDownOutcome`: `DrillDownResult` on success,
19
- * or `{failure: '...'}` for `not_found` (covers genuinely-missing, wrong-
20
- * tenant and scope-blocked, intentionally indistinguishable) or
21
- * `not_drillable` (id is a leaf row).
22
- *
23
- * Pre-v1.6.4 returned null for all three cases. JS callers migrate via
24
- * `'failure' in result` checks; HTTP route maps `not_drillable` to 422.
25
- */
7
+ /** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(... summarizeOverflow: true)` substitutions). Only
8
+ * `ctx.tenantId` summaries are reachable; children get recall's scope filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
26
9
  export async function drillDown(ctx, summaryId, opts = {}) {
27
10
  const limit = opts.limit ?? DEFAULT_DRILL_DOWN_LIMIT;
28
11
  // v0.30 / E5: depth defaults 1 (backward compat); hard cap 10 levels
@@ -38,10 +21,8 @@ export async function drillDown(ctx, summaryId, opts = {}) {
38
21
  admit: (row) => readable(row) && (row.id !== summaryId || isDrillable(row)),
39
22
  page: limit >= 0 && Number.isSafeInteger(pastLimit) ? { rows: pastLimit, admit: readable } : undefined,
40
23
  });
41
- // No unscoped cross-tenant probe here: the tenant-scoped read's miss covers
42
- // both "doesn't exist" and "exists in another tenant" by design.
43
- // Distinguishing them via an unscoped lookup would leak existence to
44
- // unauthorised tenants. The two cases collapse into not_found.
24
+ // No unscoped cross-tenant probe: the tenant-scoped miss covers "missing" and "in another tenant" alike,
25
+ // because telling them apart would leak existence to unauthorised tenants.
45
26
  if (!walked)
46
27
  return { failure: 'not_found' };
47
28
  // A distinguishable "scope_blocked" would tell a no-scope caller "this row
@@ -80,9 +61,7 @@ function drillResult({ summary, levels, sizes: counted }, opts, limit) {
80
61
  return {
81
62
  summary: summaryOut,
82
63
  children,
83
- // v0.30 / E5: totalChildren = BFS-collected count (depth-aware). For
84
- // depth=1 this equals the eligible direct-children count (backward
85
- // compat). For depth>1 it is the cumulative count across levels.
64
+ // totalChildren is the BFS-collected count, cumulative across levels (equals the direct-children count at depth=1).
86
65
  totalChildren: total,
87
66
  truncated,
88
67
  };
@@ -0,0 +1,17 @@
1
+ import type { EmbeddingProvider } from '../embeddings/provider.js';
2
+ import { type Context } from './types.js';
3
+ /** Embed every memory that has no vector yet; resolves to how many it embedded. */
4
+ export declare function embedMissingMemories(ctx: Context, provider?: EmbeddingProvider): Promise<number>;
5
+ /** How many vectors the store holds, live memory or not. */
6
+ export declare function storedVectorCount(ctx: Context): number;
7
+ export interface EmbedCoverage {
8
+ /** Every memory id in the store. */
9
+ memoryIds: string[];
10
+ /** Every id with a stored vector, including orphans whose memory is gone. */
11
+ vectorIds: string[];
12
+ }
13
+ /** Memory ids against vector ids, for the embed status and backfill lines. */
14
+ export declare function embedCoverage(ctx: Context): EmbedCoverage;
15
+ /** Re-seed every memory's physics particle from its vector; returns how many it reset. */
16
+ export declare function resetPhysicsFromVectors(ctx: Context): number;
17
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1,28 @@
1
+ // The vector side of a store for the embed and import verbs: embed what is missing, count coverage, re-seed physics.
2
+ // Vectors and physics rows carry no tenant, so each op covers the whole store and needs the host admin.
3
+ import { embedAll } from '../search/embed-memories.js';
4
+ import { loadAllEntryIds } from '../store/entry-reads.js';
5
+ import { loadEmbeddingIndex, resetStoredParticles, storedVectorSummary } from '../store/vector-index.js';
6
+ import { requireHostAdmin } from './types.js';
7
+ /** Embed every memory that has no vector yet; resolves to how many it embedded. */
8
+ export async function embedMissingMemories(ctx, provider) {
9
+ requireHostAdmin(ctx, 'Embedding the store');
10
+ return embedAll(ctx.hippoRoot, undefined, provider);
11
+ }
12
+ /** How many vectors the store holds, live memory or not. */
13
+ export function storedVectorCount(ctx) {
14
+ requireHostAdmin(ctx, 'Reading the vector index');
15
+ return storedVectorSummary(ctx.hippoRoot).ids.size;
16
+ }
17
+ /** Memory ids against vector ids, for the embed status and backfill lines. */
18
+ export function embedCoverage(ctx) {
19
+ requireHostAdmin(ctx, 'Reading the vector index');
20
+ return { memoryIds: loadAllEntryIds(ctx.hippoRoot), vectorIds: [...storedVectorSummary(ctx.hippoRoot).ids] };
21
+ }
22
+ /** Re-seed every memory's physics particle from its vector; returns how many it reset. */
23
+ export function resetPhysicsFromVectors(ctx) {
24
+ requireHostAdmin(ctx, 'Resetting physics');
25
+ const vectors = loadEmbeddingIndex(ctx.hippoRoot);
26
+ return resetStoredParticles(ctx.hippoRoot, loadAllEntryIds(ctx.hippoRoot), vectors);
27
+ }
28
+ //# sourceMappingURL=embeddings.js.map
@@ -0,0 +1,8 @@
1
+ /** The status and client-facing message for one failed request. */
2
+ export interface ApiErrorReply {
3
+ status: number;
4
+ message: string;
5
+ }
6
+ /** Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server log. */
7
+ export declare function mapApiError<E>(err: E): ApiErrorReply;
8
+ //# sourceMappingURL=error-reply.d.ts.map
@@ -0,0 +1,21 @@
1
+ // The one error-to-reply map the HTTP server and the MCP transports share, so a status never depends on which front end caught the error.
2
+ import { ApiError } from '../core/api-errors.js';
3
+ import { BodyTimeoutError, BodyTooLargeError, HttpError, INTERNAL_ERROR_MESSAGE, STORE_NOT_PORTED_MESSAGE } from '../util/http-util.js';
4
+ import { SqliteBlockedError } from '../util/sqlite-blocked.js';
5
+ /** Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server log. */
6
+ export function mapApiError(err) {
7
+ // An add-on can build an HttpError from any number, and writeHead throws on one outside 100-999.
8
+ if (err instanceof HttpError && !(Number.isInteger(err.status) && err.status >= 100 && err.status <= 999)) {
9
+ return { status: 500, message: INTERNAL_ERROR_MESSAGE };
10
+ }
11
+ if (err instanceof HttpError || err instanceof ApiError)
12
+ return { status: err.status, message: err.message };
13
+ if (err instanceof BodyTooLargeError)
14
+ return { status: 413, message: err.message };
15
+ if (err instanceof BodyTimeoutError)
16
+ return { status: 408, message: err.message };
17
+ if (err instanceof SqliteBlockedError)
18
+ return { status: 501, message: STORE_NOT_PORTED_MESSAGE };
19
+ return { status: 500, message: INTERNAL_ERROR_MESSAGE };
20
+ }
21
+ //# sourceMappingURL=error-reply.js.map
@@ -1,6 +1,7 @@
1
- import type { RejectedValueRow } from '../store/rejection.js';
2
- import type { Context, StoreReply } from './types.js';
3
- /** Delete a memory by id. Reach is checked inside the delete's write scope, and a row out of reach answers as not found, so a caller learns nothing about it. */
1
+ import { type RejectFlowResult } from '../trust/reject-flow.js';
2
+ import { type Context, type StoreReply } from './types.js';
3
+ /** Delete a memory by id. Reach is checked inside the delete's write scope, and a
4
+ * row out of reach answers as not found, so a caller learns nothing about it. */
4
5
  export interface ForgetResult {
5
6
  ok: true;
6
7
  id: string;
@@ -18,31 +19,15 @@ export interface RejectResult {
18
19
  digest: string;
19
20
  removedIds: string[];
20
21
  }
21
- /**
22
- * Reject a value: tombstone its normalized digest so a matching write is
23
- * refused everywhere (remember/capture/import/sync) until `unreject`. Two
24
- * forms — pass exactly one:
25
- * - `memoryId`: reject the CURRENT content of an existing memory. Removes
26
- * that row and every other live row in the tenant whose normalized
27
- * digest matches (not just the id passed), except another person's personal rows.
28
- * - `value`: pre-emptive form — tombstone content that may not currently
29
- * be stored (or is already gone). Zero removals.
30
- *
31
- * `reason` is required (the tombstone stores no content; reason is its
32
- * only human-readable identity). Throws if the memory id is not found in
33
- * `ctx.tenantId`, or if both/neither of `memoryId`/`value` are given.
34
- */
35
- export declare function reject(ctx: Context, opts: RejectOpts): RejectResult;
36
- /**
37
- * Delete a tombstone by exact digest or unambiguous prefix, restoring the
38
- * value's writability — the only v1 escape hatch (no per-write force flag).
39
- * Throws if `digestOrPrefix` matches no tombstone, is blank, or matches
40
- * more than one (use a longer prefix).
41
- */
22
+ /** Tombstones a value's normalized digest so a matching write is refused everywhere until `unreject`; pass exactly one of `memoryId` or `value`.
23
+ * `memoryId` also removes every live tenant row with that digest (not others' personal rows); `reason` is required. Throws on an unknown id or both/neither. */
24
+ export declare function reject(ctx: Context, opts: RejectOpts): Promise<RejectResult>;
25
+ /** `hippo reject` on the host: every row it removed and the rows that kept their other texts. A personal row by id answers with the
26
+ * personal refusal rather than reject's not-found, as the operator can see that row. */
27
+ export declare function rejectOnHost(ctx: Context, opts: RejectOpts): RejectFlowResult;
28
+ /** Deletes a tombstone by exact digest or unambiguous prefix, restoring writability (the only v1 escape hatch); throws on blank, no match or several. */
42
29
  export declare function unreject(ctx: Context, digestOrPrefix: string): {
43
30
  ok: boolean;
44
31
  digest: string;
45
32
  };
46
- /** List every rejected-value tombstone for `ctx.tenantId`, newest first. */
47
- export declare function listRejections(ctx: Context): RejectedValueRow[];
48
33
  //# sourceMappingURL=forget.d.ts.map
@@ -1,9 +1,10 @@
1
1
  // Forget a memory, and reject or unreject a value so it cannot be stored again.
2
2
  import { BadRequestError, NotFoundError } from '../core/api-errors.js';
3
- import { rejectValue, unrejectValue, listRejectionsForTenant } from '../trust/reject-flow.js';
3
+ import { rejectValue, unrejectValue } from '../trust/reject-flow.js';
4
4
  import { andThen, notPorted, onStore } from './on-store.js';
5
- import { readEntry } from '../store/entry-reads.js';
6
- import { canTouchScope, personalScopeOf } from '../store/recall-scope.js';
5
+ import { requireHostAdmin } from './types.js';
6
+ import { getMemory } from './memories.js';
7
+ import { canTouchScope, personalScopeOf } from '../core/recall-scope.js';
7
8
  export function forget(ctx, id) {
8
9
  return onStore(ctx, (port) => {
9
10
  const entryWrites = port.entryWrites ?? notPorted(port, 'entryWrites');
@@ -11,31 +12,28 @@ export function forget(ctx, id) {
11
12
  return andThen(entryWrites.forget(removal), () => ({ ok: true, id }));
12
13
  });
13
14
  }
14
- /**
15
- * Reject a value: tombstone its normalized digest so a matching write is
16
- * refused everywhere (remember/capture/import/sync) until `unreject`. Two
17
- * forms — pass exactly one:
18
- * - `memoryId`: reject the CURRENT content of an existing memory. Removes
19
- * that row and every other live row in the tenant whose normalized
20
- * digest matches (not just the id passed), except another person's personal rows.
21
- * - `value`: pre-emptive form — tombstone content that may not currently
22
- * be stored (or is already gone). Zero removals.
23
- *
24
- * `reason` is required (the tombstone stores no content; reason is its
25
- * only human-readable identity). Throws if the memory id is not found in
26
- * `ctx.tenantId`, or if both/neither of `memoryId`/`value` are given.
27
- */
28
- export function reject(ctx, opts) {
15
+ /** Tombstones a value's normalized digest so a matching write is refused everywhere until `unreject`; pass exactly one of `memoryId` or `value`.
16
+ * `memoryId` also removes every live tenant row with that digest (not others' personal rows); `reason` is required. Throws on an unknown id or both/neither. */
17
+ export async function reject(ctx, opts) {
29
18
  if (opts.memoryId !== undefined) {
30
- // Tenant scope, same not-found-shaped denial as forget/promote above:
31
- // rejectValue itself also tenant-checks the id, but pre-checking here
32
- // keeps the error message consistent with the rest of this module.
33
- const entry = readEntry(ctx.hippoRoot, opts.memoryId);
34
- if (entry?.tenantId !== ctx.tenantId || !canTouchScope(ctx.actor, entry.scope)) {
19
+ // Tenant scope: same not-found-shaped denial as forget/promote; rejectValue tenant-checks too, but pre-checking keeps the error message consistent.
20
+ const entry = await getMemory(ctx, opts.memoryId);
21
+ if (entry === null || !canTouchScope(ctx.actor, entry.scope)) {
35
22
  throw new NotFoundError(`memory not found: ${opts.memoryId}`);
36
23
  }
37
24
  }
38
- const result = rejectValue({
25
+ const result = applyReject(ctx, opts);
26
+ return { digest: result.digest, removedIds: result.removedIds };
27
+ }
28
+ /** `hippo reject` on the host: every row it removed and the rows that kept their other texts. A personal row by id answers with the
29
+ * personal refusal rather than reject's not-found, as the operator can see that row. */
30
+ export function rejectOnHost(ctx, opts) {
31
+ requireHostAdmin(ctx, 'Rejecting with the removal report');
32
+ return applyReject(ctx, opts);
33
+ }
34
+ function applyReject(ctx, opts) {
35
+ // SHORTCUT: the tombstone write is hippo.db only, as the port has no rejection group; one when a served store needs reject.
36
+ return rejectValue({
39
37
  hippoRoot: ctx.hippoRoot,
40
38
  tenantId: ctx.tenantId,
41
39
  actor: ctx.actor.subject,
@@ -44,14 +42,8 @@ export function reject(ctx, opts) {
44
42
  value: opts.value,
45
43
  ownScope: personalScopeOf(ctx.actor) ?? undefined,
46
44
  });
47
- return { digest: result.digest, removedIds: result.removedIds };
48
45
  }
49
- /**
50
- * Delete a tombstone by exact digest or unambiguous prefix, restoring the
51
- * value's writability — the only v1 escape hatch (no per-write force flag).
52
- * Throws if `digestOrPrefix` matches no tombstone, is blank, or matches
53
- * more than one (use a longer prefix).
54
- */
46
+ /** Deletes a tombstone by exact digest or unambiguous prefix, restoring writability (the only v1 escape hatch); throws on blank, no match or several. */
55
47
  export function unreject(ctx, digestOrPrefix) {
56
48
  const outcome = unrejectValue(ctx.hippoRoot, ctx.tenantId, digestOrPrefix, ctx.actor.subject);
57
49
  if (outcome.status === 'not_found') {
@@ -62,8 +54,4 @@ export function unreject(ctx, digestOrPrefix) {
62
54
  }
63
55
  return { ok: true, digest: outcome.digest };
64
56
  }
65
- /** List every rejected-value tombstone for `ctx.tenantId`, newest first. */
66
- export function listRejections(ctx) {
67
- return listRejectionsForTenant(ctx.hippoRoot, ctx.tenantId);
68
- }
69
57
  //# sourceMappingURL=forget.js.map
@@ -1,5 +1,5 @@
1
1
  import { type CompleteGoalOpts, type Goal, type PushGoalOpts } from '../store/goals.js';
2
- import type { Context } from './types.js';
2
+ import { type Context } from './types.js';
3
3
  /** What a new goal carries; its tenant is always the caller's. */
4
4
  export type GoalPushOpts = Omit<PushGoalOpts, 'tenantId'>;
5
5
  /** Push a goal onto `sessionId`'s stack in the caller's tenant. */
package/dist/api/goals.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // The per-session goal stack that recall boosts: push, list, complete, suspend and resume.
2
- import { ForbiddenError } from '../core/api-errors.js';
3
2
  import { completeGoal, getActiveGoals, getSessionGoals, pushGoal, resumeGoal, suspendGoal, } from '../store/goals.js';
3
+ import { requireHostAdmin } from './types.js';
4
4
  /** Push a goal onto `sessionId`'s stack in the caller's tenant. */
5
5
  export function goalPush(ctx, opts) {
6
6
  return pushGoal(ctx.hippoRoot, { ...opts, tenantId: ctx.tenantId });
@@ -12,22 +12,18 @@ export function goalList(ctx, opts) {
12
12
  }
13
13
  /** Complete a goal by id; a no-op for an unknown or already completed goal. Host admin only. */
14
14
  export function goalComplete(ctx, goalId, opts) {
15
- requireHostAdmin(ctx);
15
+ // Goal ids are not tenant-scoped in the store, so acting on one by id reaches past the caller's tenant.
16
+ requireHostAdmin(ctx, 'Completing a goal by id');
16
17
  completeGoal(ctx.hippoRoot, goalId, opts);
17
18
  }
18
19
  /** Suspend an active goal by id. Host admin only. */
19
20
  export function goalSuspend(ctx, goalId) {
20
- requireHostAdmin(ctx);
21
+ requireHostAdmin(ctx, 'Suspending a goal by id');
21
22
  suspendGoal(ctx.hippoRoot, goalId);
22
23
  }
23
24
  /** Resume a suspended goal by id, suspending the oldest active one past the depth cap. Host admin only. */
24
25
  export function goalResume(ctx, goalId) {
25
- requireHostAdmin(ctx);
26
+ requireHostAdmin(ctx, 'Resuming a goal by id');
26
27
  resumeGoal(ctx.hippoRoot, goalId);
27
28
  }
28
- // Goal ids are not tenant-scoped in the store, so acting on one by id is a cross-tenant power.
29
- function requireHostAdmin(ctx) {
30
- if (!ctx.actor.hostAdmin)
31
- throw new ForbiddenError('Only the host admin can change a goal by id');
32
- }
33
29
  //# sourceMappingURL=goals.js.map
@@ -0,0 +1,8 @@
1
+ import type { GraphRows } from '../store/port.js';
2
+ import type { Context } from './types.js';
3
+ /** The entity/relation rows behind GET /v1/graph, as the caller's role, scopes and owner may see them. */
4
+ export declare function graphRows(ctx: Context, query: {
5
+ entity?: string;
6
+ limit: number;
7
+ }): Promise<GraphRows>;
8
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { requireGroup, storeFor } from '../store/index.js';
2
+ /** The entity/relation rows behind GET /v1/graph, as the caller's role, scopes and owner may see them. */
3
+ export async function graphRows(ctx, query) {
4
+ const { role, scopes, owner } = ctx.actor;
5
+ return requireGroup(storeFor(ctx), 'graphReads').graphRows(ctx.tenantId, { ...query, reader: { role, scopes, owner } });
6
+ }
7
+ //# sourceMappingURL=graph.js.map
@@ -1,17 +1,20 @@
1
1
  export { ApiError, BadRequestError, ConflictError, ForbiddenError, NotFoundError } from '../core/api-errors.js';
2
- export { isPrivateScope, passesScopeFilterForRecall } from '../store/recall-scope.js';
3
- export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../store/recall-scope.js';
2
+ export { isPrivateScope, passesScopeFilterForRecall } from '../core/recall-scope.js';
3
+ export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../core/recall-scope.js';
4
4
  export type { TokenSummary, TokenSurface, TokenSurfaceSummary } from '../store/token-ledger.js';
5
5
  export type { FailureSummary } from '../store/failure-log.js';
6
6
  export { classifyOriginProject } from '../core/project-identity.js';
7
7
  export * from './types.js';
8
8
  export * from './remember.js';
9
+ export * from './remember-local.js';
9
10
  export * from './recall-types.js';
10
11
  export * from './recall.js';
11
12
  export * from './assemble.js';
12
13
  export * from './drill-down.js';
13
14
  export * from './outcome.js';
14
15
  export * from './forget.js';
16
+ export * from './conflicts.js';
17
+ export * from './projects.js';
15
18
  export * from './promote.js';
16
19
  export * from './auth.js';
17
20
  export * from './audit.js';
@@ -23,4 +26,5 @@ export * from './quarantine.js';
23
26
  export * from './sleep.js';
24
27
  export * from './goals.js';
25
28
  export * from './learn.js';
29
+ export * from './refine.js';
26
30
  //# sourceMappingURL=index.d.ts.map
package/dist/api/index.js CHANGED
@@ -3,18 +3,21 @@
3
3
  // keeps every import path that callers already use.
4
4
  export { ApiError, BadRequestError, ConflictError, ForbiddenError, NotFoundError } from '../core/api-errors.js';
5
5
  // The recall-side scope predicates live in recall-scope.ts (leaf) so shared.ts can use them without an import cycle.
6
- export { isPrivateScope, passesScopeFilterForRecall } from '../store/recall-scope.js';
7
- export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../store/recall-scope.js';
6
+ export { isPrivateScope, passesScopeFilterForRecall } from '../core/recall-scope.js';
7
+ export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../core/recall-scope.js';
8
8
  // classifyOriginProject lives in project-identity.ts (leaf) for the same reason.
9
9
  export { classifyOriginProject } from '../core/project-identity.js';
10
10
  export * from './types.js';
11
11
  export * from './remember.js';
12
+ export * from './remember-local.js';
12
13
  export * from './recall-types.js';
13
14
  export * from './recall.js';
14
15
  export * from './assemble.js';
15
16
  export * from './drill-down.js';
16
17
  export * from './outcome.js';
17
18
  export * from './forget.js';
19
+ export * from './conflicts.js';
20
+ export * from './projects.js';
18
21
  export * from './promote.js';
19
22
  export * from './auth.js';
20
23
  export * from './audit.js';
@@ -26,4 +29,5 @@ export * from './quarantine.js';
26
29
  export * from './sleep.js';
27
30
  export * from './goals.js';
28
31
  export * from './learn.js';
32
+ export * from './refine.js';
29
33
  //# sourceMappingURL=index.js.map
@@ -3,12 +3,25 @@ const INSTRUCTION_PATTERNS = [
3
3
  { name: 'override-instructions', re: /\b(?:ignore|disregard|forget)\b[^.\n]{0,40}\b(?:previous|prior|above)\b[^.\n]{0,40}\binstructions?\b/i },
4
4
  { name: 'role-reassignment', re: /\b(?:you are now|act as|pretend to be)\b[^.\n]{0,40}\b(?:an?\s+)?(?:ai|assistant|agent|system)\b/i },
5
5
  { name: 'chat-role-markup', re: /<\|im_start\|>|<\|system\|>|\[INST\]|<\/?system>|###\s*system\s*:/i },
6
- { name: 'system-prompt-reference', re: /\b(?:(?:override|ignore|bypass|replace|reveal)\b[^.\n]{0,40}\b(?:system prompt|developer message)|(?:system prompt|developer message)\b[^.\n]{0,40}\b(?:override|ignore|bypass|replace|reveal))\b/i },
6
+ {
7
+ name: 'system-prompt-reference',
8
+ re: new RegExp(String.raw `\b(?:(?:override|ignore|bypass|replace|reveal)\b[^.\n]{0,40}\b(?:system prompt|developer message)|` +
9
+ String.raw `(?:system prompt|developer message)\b[^.\n]{0,40}\b(?:override|ignore|bypass|replace|reveal))\b`, 'i'),
10
+ },
7
11
  // "always"/"never" alone (ordinary PR prose) doesn't flag without an agent-facing target nearby too.
8
- { name: 'standing-order', re: /\b(?:from now on|whenever you|always|never)\b[^.\n]{0,50}\b(?:you must|(?:the ai|the assistant|the agent|claude|copilot)\s+(?:must|should|will)\b)/i },
12
+ {
13
+ name: 'standing-order',
14
+ re: /\b(?:from now on|whenever you|always|never)\b[^.\n]{0,50}\b(?:you must|(?:the ai|the assistant|the agent|claude|copilot)\s+(?:must|should|will)\b)/i
15
+ },
9
16
  { name: 'concealment', re: /\b(?:do not|never|don't)\b[^.\n]{0,40}\b(?:tell|mention|reveal)\b[^.\n]{0,40}\bthe user\b/i },
10
- { name: 'remote-script-exec', re: /\b(?:curl|wget)\b[^\n|]{0,80}\|\s*(?:sudo\s+)?(?:sh|bash|zsh)\b|\biex\s*\(\s*(?:iwr|invoke-webrequest|new-object\s+net\.webclient)/i },
11
- { name: 'exfiltration', re: /\b(?:send|post|upload|exfiltrate)\b[^.\n]{0,40}\b(?:secrets?|tokens?|api[- ]?keys?|credentials?|env(?:ironment)? variables?)\b/i },
17
+ {
18
+ name: 'remote-script-exec',
19
+ re: /\b(?:curl|wget)\b[^\n|]{0,80}\|\s*(?:sudo\s+)?(?:sh|bash|zsh)\b|\biex\s*\(\s*(?:iwr|invoke-webrequest|new-object\s+net\.webclient)/i
20
+ },
21
+ {
22
+ name: 'exfiltration',
23
+ re: /\b(?:send|post|upload|exfiltrate)\b[^.\n]{0,40}\b(?:secrets?|tokens?|api[- ]?keys?|credentials?|env(?:ironment)? variables?)\b/i
24
+ },
12
25
  { name: 'unicode-tag-chars', re: /[\u{E0000}-\u{E007F}]/u },
13
26
  ];
14
27
  // A stray zero-width char has legitimate uses (ZWJ); only a run of 3+ adjacent ones reads as smuggling.
@@ -22,8 +35,10 @@ const NAMED_REFERENCES = new Map([['amp', '&'], ['lt', '<'], ['gt', '>'], ['quot
22
35
  const INVISIBLE_RE = /[\u034F\u00AD\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u2069\uFEFF]/g;
23
36
  // Cyrillic, then Greek, letters drawn like a c e i j o p s x y; closed at those, so Russian or Greek prose folds into no phrase a pattern names.
24
37
  const LOOKALIKES = new Map([
25
- ['\u0430', 'a'], ['\u0441', 'c'], ['\u0435', 'e'], ['\u0456', 'i'], ['\u0458', 'j'], ['\u043E', 'o'], ['\u0440', 'p'], ['\u0455', 's'], ['\u0445', 'x'], ['\u0443', 'y'],
26
- ['\u0410', 'A'], ['\u0421', 'C'], ['\u0415', 'E'], ['\u0406', 'I'], ['\u0408', 'J'], ['\u041E', 'O'], ['\u0420', 'P'], ['\u0405', 'S'], ['\u0425', 'X'], ['\u0423', 'Y'],
38
+ ['\u0430', 'a'], ['\u0441', 'c'], ['\u0435', 'e'], ['\u0456', 'i'], ['\u0458', 'j'], ['\u043E', 'o'], ['\u0440', 'p'], ['\u0455', 's'],
39
+ ['\u0445', 'x'], ['\u0443', 'y'],
40
+ ['\u0410', 'A'], ['\u0421', 'C'], ['\u0415', 'E'], ['\u0406', 'I'], ['\u0408', 'J'], ['\u041E', 'O'], ['\u0420', 'P'], ['\u0405', 'S'],
41
+ ['\u0425', 'X'], ['\u0423', 'Y'],
27
42
  ['\u03B1', 'a'], ['\u03B5', 'e'], ['\u03B9', 'i'], ['\u03F3', 'j'], ['\u03BF', 'o'], ['\u03C1', 'p'], ['\u03C7', 'x'], ['\u03B3', 'y'],
28
43
  ['\u0391', 'A'], ['\u0395', 'E'], ['\u0399', 'I'], ['\u037F', 'J'], ['\u039F', 'O'], ['\u03A1', 'P'], ['\u03A7', 'X'], ['\u03A5', 'Y'],
29
44
  ]);
@@ -1,3 +1,4 @@
1
+ import { type InvalidationOptions, type InvalidationResult, type InvalidationTarget } from '../learn/invalidation.js';
1
2
  import type { Context } from './types.js';
2
3
  /** How a surface writes what it learns. */
3
4
  export interface LearnProfile {
@@ -28,4 +29,7 @@ export interface LearnResult {
28
29
  }
29
30
  /** Learn from `repoPath`'s last `days` of commits into the caller's tenant. Host admin only. */
30
31
  export declare function learn(ctx: Context, opts: LearnOpts): LearnResult;
32
+ export type { InvalidationOptions, InvalidationResult, InvalidationTarget };
33
+ /** `hippo invalidate`: weakens the caller's tenant's memories that reference `target.from`, or only the one `options.onlyId` names. */
34
+ export declare function invalidateMemories(ctx: Context, target: InvalidationTarget, options: InvalidationOptions): InvalidationResult;
31
35
  //# sourceMappingURL=learn.d.ts.map