audrey 1.1.3 → 1.2.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 (285) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +39 -12
  3. package/dist/mcp-server/codex-hooks-probe.d.ts +22 -0
  4. package/dist/mcp-server/codex-hooks-probe.d.ts.map +1 -0
  5. package/dist/mcp-server/codex-hooks-probe.js +160 -0
  6. package/dist/mcp-server/codex-hooks-probe.js.map +1 -0
  7. package/dist/mcp-server/config.d.ts +26 -2
  8. package/dist/mcp-server/config.d.ts.map +1 -1
  9. package/dist/mcp-server/config.js +52 -20
  10. package/dist/mcp-server/config.js.map +1 -1
  11. package/dist/mcp-server/hooks.d.ts +28 -0
  12. package/dist/mcp-server/hooks.d.ts.map +1 -1
  13. package/dist/mcp-server/hooks.js +91 -2
  14. package/dist/mcp-server/hooks.js.map +1 -1
  15. package/dist/mcp-server/index.d.ts +242 -2
  16. package/dist/mcp-server/index.d.ts.map +1 -1
  17. package/dist/mcp-server/index.js +806 -240
  18. package/dist/mcp-server/index.js.map +1 -1
  19. package/dist/mcp-server/tool-schemas.d.ts +32 -2
  20. package/dist/mcp-server/tool-schemas.d.ts.map +1 -1
  21. package/dist/mcp-server/tool-schemas.js +55 -0
  22. package/dist/mcp-server/tool-schemas.js.map +1 -1
  23. package/dist/src/audrey.d.ts +14 -2
  24. package/dist/src/audrey.d.ts.map +1 -1
  25. package/dist/src/audrey.js +152 -28
  26. package/dist/src/audrey.js.map +1 -1
  27. package/dist/src/autopilot.d.ts +22 -0
  28. package/dist/src/autopilot.d.ts.map +1 -1
  29. package/dist/src/autopilot.js +271 -50
  30. package/dist/src/autopilot.js.map +1 -1
  31. package/dist/src/capsule.d.ts +23 -0
  32. package/dist/src/capsule.d.ts.map +1 -1
  33. package/dist/src/capsule.js +56 -11
  34. package/dist/src/capsule.js.map +1 -1
  35. package/dist/src/confidence.d.ts +9 -1
  36. package/dist/src/confidence.d.ts.map +1 -1
  37. package/dist/src/confidence.js +16 -2
  38. package/dist/src/confidence.js.map +1 -1
  39. package/dist/src/consolidate.d.ts +4 -0
  40. package/dist/src/consolidate.d.ts.map +1 -1
  41. package/dist/src/consolidate.js +206 -34
  42. package/dist/src/consolidate.js.map +1 -1
  43. package/dist/src/controller.d.ts +17 -1
  44. package/dist/src/controller.d.ts.map +1 -1
  45. package/dist/src/controller.js +244 -128
  46. package/dist/src/controller.js.map +1 -1
  47. package/dist/src/db.d.ts.map +1 -1
  48. package/dist/src/db.js +233 -56
  49. package/dist/src/db.js.map +1 -1
  50. package/dist/src/encode.d.ts +2 -1
  51. package/dist/src/encode.d.ts.map +1 -1
  52. package/dist/src/encode.js +41 -4
  53. package/dist/src/encode.js.map +1 -1
  54. package/dist/src/events.d.ts +48 -1
  55. package/dist/src/events.d.ts.map +1 -1
  56. package/dist/src/events.js +160 -62
  57. package/dist/src/events.js.map +1 -1
  58. package/dist/src/export.d.ts.map +1 -1
  59. package/dist/src/export.js +4 -4
  60. package/dist/src/export.js.map +1 -1
  61. package/dist/src/grounding.d.ts +111 -0
  62. package/dist/src/grounding.d.ts.map +1 -0
  63. package/dist/src/grounding.js +259 -0
  64. package/dist/src/grounding.js.map +1 -0
  65. package/dist/src/hybrid-recall.d.ts +16 -7
  66. package/dist/src/hybrid-recall.d.ts.map +1 -1
  67. package/dist/src/hybrid-recall.js +22 -11
  68. package/dist/src/hybrid-recall.js.map +1 -1
  69. package/dist/src/import.d.ts +10 -0
  70. package/dist/src/import.d.ts.map +1 -1
  71. package/dist/src/import.js +122 -22
  72. package/dist/src/import.js.map +1 -1
  73. package/dist/src/llm.d.ts.map +1 -1
  74. package/dist/src/llm.js +16 -0
  75. package/dist/src/llm.js.map +1 -1
  76. package/dist/src/preflight.d.ts.map +1 -1
  77. package/dist/src/preflight.js +89 -47
  78. package/dist/src/preflight.js.map +1 -1
  79. package/dist/src/project.d.ts +4 -1
  80. package/dist/src/project.d.ts.map +1 -1
  81. package/dist/src/project.js +65 -5
  82. package/dist/src/project.js.map +1 -1
  83. package/dist/src/recall.d.ts.map +1 -1
  84. package/dist/src/recall.js +138 -13
  85. package/dist/src/recall.js.map +1 -1
  86. package/dist/src/redact.d.ts +1 -1
  87. package/dist/src/redact.d.ts.map +1 -1
  88. package/dist/src/redact.js +185 -5
  89. package/dist/src/redact.js.map +1 -1
  90. package/dist/src/routes.d.ts.map +1 -1
  91. package/dist/src/routes.js +91 -18
  92. package/dist/src/routes.js.map +1 -1
  93. package/dist/src/trust.d.ts +35 -0
  94. package/dist/src/trust.d.ts.map +1 -0
  95. package/dist/src/trust.js +77 -0
  96. package/dist/src/trust.js.map +1 -0
  97. package/dist/src/types.d.ts +24 -0
  98. package/dist/src/types.d.ts.map +1 -1
  99. package/package.json +3 -37
  100. package/benchmarks/adapter-kit.mjs +0 -20
  101. package/benchmarks/adapter-self-test.mjs +0 -170
  102. package/benchmarks/adapters/example-allow.mjs +0 -31
  103. package/benchmarks/adapters/mem0-platform.mjs +0 -274
  104. package/benchmarks/adapters/registry.json +0 -51
  105. package/benchmarks/adapters/zep-cloud.mjs +0 -304
  106. package/benchmarks/baselines.js +0 -174
  107. package/benchmarks/build-leaderboard.mjs +0 -183
  108. package/benchmarks/cases.js +0 -549
  109. package/benchmarks/create-conformance-card.mjs +0 -148
  110. package/benchmarks/create-submission-bundle.mjs +0 -190
  111. package/benchmarks/dry-run-external-adapters.mjs +0 -177
  112. package/benchmarks/guardbench.js +0 -1265
  113. package/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +0 -50
  114. package/benchmarks/output/external/guardbench-external-dry-run.json +0 -69
  115. package/benchmarks/output/external/guardbench-external-evidence.json +0 -56
  116. package/benchmarks/output/guardbench-conformance-card.json +0 -63
  117. package/benchmarks/output/guardbench-manifest.json +0 -414
  118. package/benchmarks/output/guardbench-raw.json +0 -1279
  119. package/benchmarks/output/guardbench-summary.json +0 -2123
  120. package/benchmarks/output/leaderboard/guardbench-leaderboard.json +0 -93
  121. package/benchmarks/output/leaderboard/guardbench-leaderboard.md +0 -7
  122. package/benchmarks/output/submission-bundle/guardbench-conformance-card.json +0 -63
  123. package/benchmarks/output/submission-bundle/guardbench-manifest.json +0 -414
  124. package/benchmarks/output/submission-bundle/guardbench-raw.json +0 -1279
  125. package/benchmarks/output/submission-bundle/guardbench-summary.json +0 -2123
  126. package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-registry.schema.json +0 -69
  127. package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-self-test.schema.json +0 -156
  128. package/benchmarks/output/submission-bundle/schemas/guardbench-conformance-card.schema.json +0 -184
  129. package/benchmarks/output/submission-bundle/schemas/guardbench-external-dry-run.schema.json +0 -74
  130. package/benchmarks/output/submission-bundle/schemas/guardbench-external-evidence.schema.json +0 -108
  131. package/benchmarks/output/submission-bundle/schemas/guardbench-external-run.schema.json +0 -160
  132. package/benchmarks/output/submission-bundle/schemas/guardbench-leaderboard.schema.json +0 -179
  133. package/benchmarks/output/submission-bundle/schemas/guardbench-manifest.schema.json +0 -213
  134. package/benchmarks/output/submission-bundle/schemas/guardbench-publication-verification.schema.json +0 -47
  135. package/benchmarks/output/submission-bundle/schemas/guardbench-raw.schema.json +0 -184
  136. package/benchmarks/output/submission-bundle/schemas/guardbench-submission-manifest.schema.json +0 -151
  137. package/benchmarks/output/submission-bundle/schemas/guardbench-summary.schema.json +0 -249
  138. package/benchmarks/output/submission-bundle/submission-manifest.json +0 -131
  139. package/benchmarks/output/submission-bundle/validation-report.json +0 -31
  140. package/benchmarks/output/summary.json +0 -2354
  141. package/benchmarks/perf-snapshot.js +0 -307
  142. package/benchmarks/perf.bench.js +0 -169
  143. package/benchmarks/public-paths.mjs +0 -97
  144. package/benchmarks/reference-results.js +0 -75
  145. package/benchmarks/report.js +0 -280
  146. package/benchmarks/run-external-guardbench.mjs +0 -303
  147. package/benchmarks/run.js +0 -735
  148. package/benchmarks/schemas/guardbench-adapter-registry.schema.json +0 -69
  149. package/benchmarks/schemas/guardbench-adapter-self-test.schema.json +0 -156
  150. package/benchmarks/schemas/guardbench-conformance-card.schema.json +0 -184
  151. package/benchmarks/schemas/guardbench-external-dry-run.schema.json +0 -74
  152. package/benchmarks/schemas/guardbench-external-evidence.schema.json +0 -108
  153. package/benchmarks/schemas/guardbench-external-run.schema.json +0 -160
  154. package/benchmarks/schemas/guardbench-leaderboard.schema.json +0 -179
  155. package/benchmarks/schemas/guardbench-manifest.schema.json +0 -213
  156. package/benchmarks/schemas/guardbench-publication-verification.schema.json +0 -47
  157. package/benchmarks/schemas/guardbench-raw.schema.json +0 -184
  158. package/benchmarks/schemas/guardbench-submission-manifest.schema.json +0 -151
  159. package/benchmarks/schemas/guardbench-summary.schema.json +0 -249
  160. package/benchmarks/snapshots/perf-0.22.2.json +0 -123
  161. package/benchmarks/snapshots/perf-0.23.0.json +0 -123
  162. package/benchmarks/validate-adapter-module.mjs +0 -107
  163. package/benchmarks/validate-adapter-registry.mjs +0 -145
  164. package/benchmarks/validate-adapter-self-test.mjs +0 -96
  165. package/benchmarks/validate-guardbench-artifacts.mjs +0 -400
  166. package/benchmarks/verify-external-evidence.mjs +0 -351
  167. package/benchmarks/verify-publication-artifacts.mjs +0 -309
  168. package/benchmarks/verify-submission-bundle.mjs +0 -172
  169. package/docs/AUDREY_PAPER_OUTLINE.md +0 -178
  170. package/docs/MEMORY_BENCHMARKING.md +0 -59
  171. package/docs/PRODUCTION_BACKLOG.md +0 -321
  172. package/docs/assets/audrey-feature-grid.jpg +0 -0
  173. package/docs/assets/audrey-logo.svg +0 -45
  174. package/docs/assets/audrey-wordmark.png +0 -0
  175. package/docs/paper/00-master.md +0 -48
  176. package/docs/paper/01-introduction.md +0 -27
  177. package/docs/paper/02-related-work.md +0 -47
  178. package/docs/paper/03-problem-definition.md +0 -108
  179. package/docs/paper/04-design.md +0 -164
  180. package/docs/paper/05-guardbench-spec.md +0 -412
  181. package/docs/paper/06-implementation.md +0 -115
  182. package/docs/paper/07-evaluation.md +0 -168
  183. package/docs/paper/08-discussion-limitations.md +0 -61
  184. package/docs/paper/09-conclusion.md +0 -11
  185. package/docs/paper/SUBMISSION_README.md +0 -162
  186. package/docs/paper/appendix-a-demo-transcript.md +0 -114
  187. package/docs/paper/arxiv-compile-report.schema.json +0 -116
  188. package/docs/paper/arxiv-source.schema.json +0 -61
  189. package/docs/paper/audrey-paper-v1.md +0 -1108
  190. package/docs/paper/browser-launch-plan.json +0 -209
  191. package/docs/paper/browser-launch-plan.schema.json +0 -100
  192. package/docs/paper/browser-launch-results.json +0 -86
  193. package/docs/paper/browser-launch-results.schema.json +0 -66
  194. package/docs/paper/claim-register.json +0 -138
  195. package/docs/paper/claim-register.schema.json +0 -81
  196. package/docs/paper/evidence-ledger.md +0 -103
  197. package/docs/paper/output/arxiv/README-arxiv.txt +0 -8
  198. package/docs/paper/output/arxiv/arxiv-manifest.json +0 -41
  199. package/docs/paper/output/arxiv/main.tex +0 -951
  200. package/docs/paper/output/arxiv/references.bib +0 -222
  201. package/docs/paper/output/arxiv-compile-report.json +0 -24
  202. package/docs/paper/output/submission-bundle/LICENSE +0 -21
  203. package/docs/paper/output/submission-bundle/README.md +0 -440
  204. package/docs/paper/output/submission-bundle/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +0 -50
  205. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-dry-run.json +0 -69
  206. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-evidence.json +0 -56
  207. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-conformance-card.json +0 -63
  208. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-manifest.json +0 -414
  209. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-raw.json +0 -1279
  210. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-summary.json +0 -2123
  211. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.json +0 -93
  212. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.md +0 -7
  213. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/submission-manifest.json +0 -131
  214. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/validation-report.json +0 -31
  215. package/docs/paper/output/submission-bundle/benchmarks/output/summary.json +0 -2354
  216. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-registry.schema.json +0 -69
  217. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-self-test.schema.json +0 -156
  218. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-conformance-card.schema.json +0 -184
  219. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-dry-run.schema.json +0 -74
  220. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-evidence.schema.json +0 -108
  221. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-run.schema.json +0 -160
  222. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-leaderboard.schema.json +0 -179
  223. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-manifest.schema.json +0 -213
  224. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-publication-verification.schema.json +0 -47
  225. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-raw.schema.json +0 -184
  226. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-submission-manifest.schema.json +0 -151
  227. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-summary.schema.json +0 -249
  228. package/docs/paper/output/submission-bundle/docs/AUDREY_PAPER_OUTLINE.md +0 -178
  229. package/docs/paper/output/submission-bundle/docs/paper/00-master.md +0 -48
  230. package/docs/paper/output/submission-bundle/docs/paper/01-introduction.md +0 -27
  231. package/docs/paper/output/submission-bundle/docs/paper/02-related-work.md +0 -47
  232. package/docs/paper/output/submission-bundle/docs/paper/03-problem-definition.md +0 -108
  233. package/docs/paper/output/submission-bundle/docs/paper/04-design.md +0 -164
  234. package/docs/paper/output/submission-bundle/docs/paper/05-guardbench-spec.md +0 -412
  235. package/docs/paper/output/submission-bundle/docs/paper/06-implementation.md +0 -115
  236. package/docs/paper/output/submission-bundle/docs/paper/07-evaluation.md +0 -168
  237. package/docs/paper/output/submission-bundle/docs/paper/08-discussion-limitations.md +0 -61
  238. package/docs/paper/output/submission-bundle/docs/paper/09-conclusion.md +0 -11
  239. package/docs/paper/output/submission-bundle/docs/paper/SUBMISSION_README.md +0 -162
  240. package/docs/paper/output/submission-bundle/docs/paper/appendix-a-demo-transcript.md +0 -114
  241. package/docs/paper/output/submission-bundle/docs/paper/arxiv-compile-report.schema.json +0 -116
  242. package/docs/paper/output/submission-bundle/docs/paper/arxiv-source.schema.json +0 -61
  243. package/docs/paper/output/submission-bundle/docs/paper/audrey-paper-v1.md +0 -1108
  244. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.json +0 -209
  245. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.schema.json +0 -100
  246. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.json +0 -86
  247. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.schema.json +0 -66
  248. package/docs/paper/output/submission-bundle/docs/paper/claim-register.json +0 -138
  249. package/docs/paper/output/submission-bundle/docs/paper/claim-register.schema.json +0 -81
  250. package/docs/paper/output/submission-bundle/docs/paper/evidence-ledger.md +0 -103
  251. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/README-arxiv.txt +0 -8
  252. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/arxiv-manifest.json +0 -41
  253. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/main.tex +0 -951
  254. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/references.bib +0 -222
  255. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv-compile-report.json +0 -24
  256. package/docs/paper/output/submission-bundle/docs/paper/paper-submission-bundle.schema.json +0 -70
  257. package/docs/paper/output/submission-bundle/docs/paper/publication-pack.json +0 -81
  258. package/docs/paper/output/submission-bundle/docs/paper/publication-pack.schema.json +0 -60
  259. package/docs/paper/output/submission-bundle/docs/paper/references.bib +0 -222
  260. package/docs/paper/output/submission-bundle/package.json +0 -235
  261. package/docs/paper/output/submission-bundle/paper-submission-manifest.json +0 -379
  262. package/docs/paper/paper-submission-bundle.schema.json +0 -70
  263. package/docs/paper/publication-pack.json +0 -81
  264. package/docs/paper/publication-pack.schema.json +0 -60
  265. package/docs/paper/references.bib +0 -222
  266. package/scripts/audit-release-completion.mjs +0 -440
  267. package/scripts/create-arxiv-source.mjs +0 -368
  268. package/scripts/create-paper-submission-bundle.mjs +0 -214
  269. package/scripts/finalize-release.mjs +0 -601
  270. package/scripts/prepare-release-cut.mjs +0 -277
  271. package/scripts/publish-release-bundle.mjs +0 -252
  272. package/scripts/publish-release-github-api.mjs +0 -494
  273. package/scripts/run-vitest.mjs +0 -34
  274. package/scripts/smoke-cli.js +0 -92
  275. package/scripts/sync-paper-artifacts.mjs +0 -112
  276. package/scripts/verify-arxiv-compile.mjs +0 -476
  277. package/scripts/verify-arxiv-source.mjs +0 -224
  278. package/scripts/verify-browser-launch-plan.mjs +0 -254
  279. package/scripts/verify-browser-launch-results.mjs +0 -303
  280. package/scripts/verify-paper-artifacts.mjs +0 -798
  281. package/scripts/verify-paper-claims.mjs +0 -254
  282. package/scripts/verify-paper-submission-bundle.mjs +0 -218
  283. package/scripts/verify-publication-pack.mjs +0 -210
  284. package/scripts/verify-python-package.py +0 -201
  285. package/scripts/verify-release-readiness.mjs +0 -920
package/dist/src/db.js CHANGED
@@ -141,6 +141,10 @@ const SCHEMA = `
141
141
  cwd TEXT,
142
142
  file_fingerprints TEXT,
143
143
  redaction_state TEXT DEFAULT 'unreviewed' CHECK(redaction_state IN ('unreviewed','redacted','clean','quarantined')),
144
+ action_key TEXT,
145
+ hook_host TEXT,
146
+ hook_tool_use_id TEXT,
147
+ receipt_id TEXT,
144
148
  metadata TEXT,
145
149
  created_at TEXT NOT NULL
146
150
  );
@@ -208,37 +212,105 @@ export function createVec0Tables(db, dimensions) {
208
212
  createVec0Table(db, dimensions, spec.table);
209
213
  }
210
214
  }
215
+ const VEC_SYNC_SOURCES = ['episodes', 'semantics', 'procedures'];
216
+ /**
217
+ * Keyed on id, not rowid, and deliberately a different config key from the
218
+ * `vec_sync_rowid_*` marks earlier versions wrote.
219
+ *
220
+ * SQLite hands out max(rowid)+1, so deleting the row that holds the current
221
+ * maximum makes the next insert reuse that rowid. A rowid high-water mark
222
+ * then reads as already-synced and the new row never reaches its vec0
223
+ * table — silently, permanently, with no error and no migrated flag. Memory
224
+ * ids are ULIDs: monotonic, and never recycled by a delete.
225
+ *
226
+ * The key rename matters for the upgrade. A stored numeric mark like "412"
227
+ * compares lexicographically against ULIDs beginning with "0", so reusing
228
+ * the old key would make every existing row look already-synced. A fresh
229
+ * key starts empty and every id sorts above it, which costs one full
230
+ * catch-up scan on first open and is correct from then on.
231
+ */
232
+ function vecSyncMarkKey(source) {
233
+ return `vec_sync_id_${source}`;
234
+ }
235
+ function readConfigText(db, key) {
236
+ const row = db.prepare('SELECT value FROM audrey_config WHERE key = ?').get(key);
237
+ return row ? String(row.value) : '';
238
+ }
239
+ function writeConfigText(db, key, value) {
240
+ db.prepare(`INSERT INTO audrey_config (key, value) VALUES (?, ?)
241
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(key, value);
242
+ }
211
243
  export function dropVec0Tables(db) {
212
- db.exec('DROP TABLE IF EXISTS vec_episodes');
213
- db.exec('DROP TABLE IF EXISTS vec_semantics');
214
- db.exec('DROP TABLE IF EXISTS vec_procedures');
244
+ const drop = db.transaction(() => {
245
+ db.exec('DROP TABLE IF EXISTS vec_episodes');
246
+ db.exec('DROP TABLE IF EXISTS vec_semantics');
247
+ db.exec('DROP TABLE IF EXISTS vec_procedures');
248
+ // The vec0 tables are gone, so any high-water mark claiming rows up to
249
+ // some rowid are already synced would be a lie — the next
250
+ // migrateEmbeddingsToVec0 call must rescan those tables from scratch.
251
+ const clearMark = db.prepare('DELETE FROM audrey_config WHERE key = ?');
252
+ for (const source of VEC_SYNC_SOURCES)
253
+ clearMark.run(vecSyncMarkKey(source));
254
+ });
255
+ drop();
215
256
  }
216
- function migrateTable(db, { source, target, selectCols, insertCols, placeholders, transform, dimensions, }) {
257
+ /**
258
+ * Copies not-yet-synced embeddings from a source table into its vec0
259
+ * shadow, bounded by a persisted high-water mark (audrey_config key
260
+ * markKey) instead of a full table scan on every call. Returns true when a
261
+ * gap remains that this pass could not close (a dimension mismatch, most
262
+ * likely — see the expectedBytes check below), in which case the mark is
263
+ * deliberately left behind: the caller should trigger a full reembed, and
264
+ * the next open must see the same rows again rather than silently treating
265
+ * them as handled.
266
+ */
267
+ function migrateTable(db, { source, target, selectCols, insertCols, placeholders, transform, dimensions, markKey, }) {
268
+ const mark = readConfigText(db, markKey);
269
+ const maxIdRow = db.prepare(`SELECT MAX(id) AS m FROM ${source}`).get();
270
+ const maxId = maxIdRow.m ?? '';
271
+ if (maxId === '' || maxId <= mark)
272
+ return false;
217
273
  const rows = db
218
274
  .prepare(`
219
275
  SELECT ${selectCols}
220
276
  FROM ${source} source_row
221
- WHERE source_row.embedding IS NOT NULL
277
+ WHERE source_row.id > ?
278
+ AND source_row.embedding IS NOT NULL
222
279
  AND NOT EXISTS (
223
280
  SELECT 1 FROM ${target} target_row WHERE target_row.id = source_row.id
224
281
  )
225
282
  `)
226
- .all();
227
- if (rows.length === 0)
228
- return;
283
+ .all(mark);
229
284
  const expectedBytes = dimensions ? dimensions * 4 : null;
230
- const insert = db.prepare(`INSERT INTO ${target}(${insertCols}) VALUES (${placeholders})`);
231
- const tx = db.transaction(() => {
232
- for (const row of rows) {
233
- if (expectedBytes && row.embedding.byteLength !== expectedBytes)
234
- continue;
235
- insert.run(...transform(row));
236
- }
237
- });
238
- tx();
285
+ let inserted = 0;
286
+ if (rows.length > 0) {
287
+ const insert = db.prepare(`INSERT INTO ${target}(${insertCols}) VALUES (${placeholders})`);
288
+ const tx = db.transaction(() => {
289
+ for (const row of rows) {
290
+ if (expectedBytes && row.embedding.byteLength !== expectedBytes)
291
+ continue;
292
+ insert.run(...transform(row));
293
+ inserted += 1;
294
+ }
295
+ });
296
+ tx();
297
+ }
298
+ if (inserted < rows.length)
299
+ return true;
300
+ writeConfigText(db, markKey, maxId);
301
+ return false;
239
302
  }
303
+ /**
304
+ * Catches up vec0 tables with any source rows a normal encode/import/
305
+ * consolidate write didn't already sync atomically (legacy pre-vec0 data,
306
+ * or a row written by another connection). Each table is bounded by its
307
+ * own high-water mark, so a steady-state open with nothing new touches
308
+ * only three cheap MAX(rowid) lookups instead of a full table scan.
309
+ * Returns true if any table still has an unresolved gap, signaling the
310
+ * caller that a full reembed is needed.
311
+ */
240
312
  function migrateEmbeddingsToVec0(db, dimensions) {
241
- migrateTable(db, {
313
+ const episodesMismatch = migrateTable(db, {
242
314
  source: 'episodes',
243
315
  target: 'vec_episodes',
244
316
  selectCols: 'id, agent, embedding, source, consolidated',
@@ -252,8 +324,9 @@ function migrateEmbeddingsToVec0(db, dimensions) {
252
324
  BigInt(row.consolidated ?? 0),
253
325
  ],
254
326
  dimensions,
327
+ markKey: vecSyncMarkKey('episodes'),
255
328
  });
256
- migrateTable(db, {
329
+ const semanticsMismatch = migrateTable(db, {
257
330
  source: 'semantics',
258
331
  target: 'vec_semantics',
259
332
  selectCols: 'id, agent, embedding, state',
@@ -261,8 +334,9 @@ function migrateEmbeddingsToVec0(db, dimensions) {
261
334
  placeholders: '?, ?, ?, ?',
262
335
  transform: row => [row.id, requireAgent(row.agent, 'default'), row.embedding, row.state],
263
336
  dimensions,
337
+ markKey: vecSyncMarkKey('semantics'),
264
338
  });
265
- migrateTable(db, {
339
+ const proceduresMismatch = migrateTable(db, {
266
340
  source: 'procedures',
267
341
  target: 'vec_procedures',
268
342
  selectCols: 'id, agent, embedding, state',
@@ -270,7 +344,9 @@ function migrateEmbeddingsToVec0(db, dimensions) {
270
344
  placeholders: '?, ?, ?, ?',
271
345
  transform: row => [row.id, requireAgent(row.agent, 'default'), row.embedding, row.state],
272
346
  dimensions,
347
+ markKey: vecSyncMarkKey('procedures'),
273
348
  });
349
+ return episodesMismatch || semanticsMismatch || proceduresMismatch;
274
350
  }
275
351
  function hasAgentPartition(db, table) {
276
352
  const row = db
@@ -321,30 +397,6 @@ function migrateVec0AgentPartitions(db, dimensions) {
321
397
  });
322
398
  migrate();
323
399
  }
324
- function getEmbeddingSyncCounts(db) {
325
- let vecEpisodes = 0;
326
- let vecSemantics = 0;
327
- let vecProcedures = 0;
328
- try {
329
- vecEpisodes = db.prepare('SELECT COUNT(*) as c FROM vec_episodes').get().c;
330
- vecSemantics = db.prepare('SELECT COUNT(*) as c FROM vec_semantics').get().c;
331
- vecProcedures = db.prepare('SELECT COUNT(*) as c FROM vec_procedures').get().c;
332
- }
333
- catch {
334
- // vec tables may not exist yet
335
- }
336
- const episodes = db.prepare('SELECT COUNT(*) as c FROM episodes WHERE embedding IS NOT NULL').get().c;
337
- const semantics = db.prepare('SELECT COUNT(*) as c FROM semantics WHERE embedding IS NOT NULL').get().c;
338
- const procedures = db.prepare('SELECT COUNT(*) as c FROM procedures WHERE embedding IS NOT NULL').get().c;
339
- return {
340
- episodes,
341
- vecEpisodes,
342
- semantics,
343
- vecSemantics,
344
- procedures,
345
- vecProcedures,
346
- };
347
- }
348
400
  function addColumnIfMissing(db, table, column, definition) {
349
401
  const columns = db.pragma(`table_info(${table})`);
350
402
  const exists = columns.some(col => col.name === column);
@@ -352,7 +404,7 @@ function addColumnIfMissing(db, table, column, definition) {
352
404
  db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
353
405
  }
354
406
  }
355
- const SCHEMA_VERSION = 11;
407
+ const SCHEMA_VERSION = 15;
356
408
  const MIGRATIONS = [
357
409
  {
358
410
  version: 1,
@@ -433,6 +485,134 @@ const MIGRATIONS = [
433
485
  // this migration simply advances schema_version to 11 for existing DBs.
434
486
  },
435
487
  },
488
+ {
489
+ version: 12,
490
+ up(db) {
491
+ addColumnIfMissing(db, 'memory_events', 'action_key', 'TEXT');
492
+ db.exec(`
493
+ UPDATE memory_events
494
+ SET action_key = CASE
495
+ WHEN json_valid(metadata) THEN CASE
496
+ WHEN json_type(metadata, '$.audrey_guard_action_key') = 'text'
497
+ THEN json_extract(metadata, '$.audrey_guard_action_key')
498
+ ELSE NULL
499
+ END
500
+ ELSE NULL
501
+ END
502
+ WHERE action_key IS NULL;
503
+
504
+ CREATE INDEX IF NOT EXISTS idx_memory_events_action_key
505
+ ON memory_events(action_key, actor_agent, created_at, outcome);
506
+ `);
507
+ },
508
+ },
509
+ {
510
+ version: 13,
511
+ up(db) {
512
+ // Some prerelease v12 stores advanced the logical version without
513
+ // receiving the v12 action_key DDL. Repair the physical schema before
514
+ // any v13 validation or indexes reference that column.
515
+ addColumnIfMissing(db, 'memory_events', 'action_key', 'TEXT');
516
+ addColumnIfMissing(db, 'memory_events', 'hook_host', 'TEXT');
517
+ addColumnIfMissing(db, 'memory_events', 'hook_tool_use_id', 'TEXT');
518
+ addColumnIfMissing(db, 'memory_events', 'receipt_id', 'TEXT');
519
+ db.exec(`
520
+ UPDATE memory_events
521
+ SET action_key = json_extract(metadata, '$.audrey_guard_action_key')
522
+ WHERE action_key IS NULL
523
+ AND json_valid(metadata)
524
+ AND json_type(metadata, '$.audrey_guard_action_key') = 'text'
525
+ AND length(json_extract(metadata, '$.audrey_guard_action_key')) = 64
526
+ AND json_extract(metadata, '$.audrey_guard_action_key') NOT GLOB '*[^0-9a-f]*';
527
+
528
+ UPDATE memory_events
529
+ SET action_key = NULL
530
+ WHERE action_key IS NOT NULL
531
+ AND (length(action_key) != 64 OR action_key GLOB '*[^0-9a-f]*');
532
+
533
+ UPDATE memory_events
534
+ SET hook_host = CASE
535
+ WHEN hook_host IS NOT NULL THEN hook_host
536
+ WHEN json_valid(metadata)
537
+ AND json_type(metadata, '$.autopilot_host') = 'text'
538
+ THEN json_extract(metadata, '$.autopilot_host')
539
+ ELSE NULL
540
+ END,
541
+ hook_tool_use_id = CASE
542
+ WHEN hook_tool_use_id IS NOT NULL THEN hook_tool_use_id
543
+ WHEN json_valid(metadata)
544
+ AND json_type(metadata, '$.autopilot_tool_use_id') = 'text'
545
+ THEN json_extract(metadata, '$.autopilot_tool_use_id')
546
+ ELSE NULL
547
+ END,
548
+ receipt_id = CASE
549
+ WHEN receipt_id IS NOT NULL THEN receipt_id
550
+ WHEN json_valid(metadata)
551
+ AND json_type(metadata, '$.receipt_id') = 'text'
552
+ THEN json_extract(metadata, '$.receipt_id')
553
+ ELSE NULL
554
+ END
555
+ WHERE hook_host IS NULL OR hook_tool_use_id IS NULL OR receipt_id IS NULL;
556
+
557
+ CREATE INDEX IF NOT EXISTS idx_memory_events_action_key
558
+ ON memory_events(action_key, actor_agent, created_at, outcome);
559
+ CREATE INDEX IF NOT EXISTS idx_memory_events_hook_lookup
560
+ ON memory_events(
561
+ actor_agent, hook_host, hook_tool_use_id, session_id, event_type, created_at DESC
562
+ );
563
+ CREATE INDEX IF NOT EXISTS idx_memory_events_receipt
564
+ ON memory_events(receipt_id, actor_agent, created_at DESC);
565
+ `);
566
+ },
567
+ },
568
+ {
569
+ version: 14,
570
+ up(db) {
571
+ db.exec(`
572
+ CREATE INDEX IF NOT EXISTS idx_memory_events_tool_outcome_created_actor
573
+ ON memory_events(tool_name, outcome, created_at, actor_agent);
574
+
575
+ CREATE INDEX IF NOT EXISTS idx_episodes_embedding_present
576
+ ON episodes(id) WHERE embedding IS NOT NULL;
577
+ CREATE INDEX IF NOT EXISTS idx_semantics_embedding_present
578
+ ON semantics(id) WHERE embedding IS NOT NULL;
579
+ CREATE INDEX IF NOT EXISTS idx_procedures_embedding_present
580
+ ON procedures(id) WHERE embedding IS NOT NULL;
581
+ `);
582
+ },
583
+ },
584
+ {
585
+ version: 15,
586
+ up(db) {
587
+ db.exec(`
588
+ CREATE TABLE IF NOT EXISTS memory_anchors (
589
+ id TEXT PRIMARY KEY,
590
+ memory_id TEXT NOT NULL,
591
+ memory_type TEXT NOT NULL CHECK(memory_type IN ('episodic','semantic','procedural')),
592
+ agent TEXT NOT NULL DEFAULT 'default',
593
+ project_root TEXT NOT NULL,
594
+ kind TEXT NOT NULL CHECK(kind IN ('path','npm_script')),
595
+ value TEXT NOT NULL,
596
+ state TEXT NOT NULL DEFAULT 'intact' CHECK(state IN ('intact','broken')),
597
+ created_at TEXT NOT NULL,
598
+ last_verified_at TEXT,
599
+ broken_at TEXT
600
+ );
601
+
602
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_memory_anchors_unique
603
+ ON memory_anchors(memory_id, project_root, kind, value);
604
+ CREATE INDEX IF NOT EXISTS idx_memory_anchors_memory
605
+ ON memory_anchors(memory_id);
606
+ CREATE INDEX IF NOT EXISTS idx_memory_anchors_sweep
607
+ ON memory_anchors(agent, project_root, last_verified_at);
608
+ CREATE INDEX IF NOT EXISTS idx_memory_anchors_broken
609
+ ON memory_anchors(memory_id) WHERE state = 'broken';
610
+
611
+ CREATE INDEX IF NOT EXISTS idx_episodes_must_follow_tag
612
+ ON episodes(id) WHERE tags LIKE '%"must-follow"%';
613
+ `);
614
+ },
615
+ },
436
616
  ];
437
617
  function runMigrations(db) {
438
618
  const row = db.prepare("SELECT value FROM audrey_config WHERE key = 'schema_version'").get();
@@ -440,11 +620,14 @@ function runMigrations(db) {
440
620
  if (currentVersion >= SCHEMA_VERSION)
441
621
  return;
442
622
  const pending = MIGRATIONS.filter(m => m.version > currentVersion);
623
+ const setSchemaVersion = db.prepare(`INSERT INTO audrey_config (key, value) VALUES ('schema_version', ?)
624
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value`);
443
625
  for (const migration of pending) {
444
- migration.up(db);
626
+ db.transaction(() => {
627
+ migration.up(db);
628
+ setSchemaVersion.run(String(migration.version));
629
+ })();
445
630
  }
446
- db.prepare(`INSERT INTO audrey_config (key, value) VALUES ('schema_version', ?)
447
- ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(String(SCHEMA_VERSION));
448
631
  }
449
632
  export function createDatabase(dataDir, options = {}) {
450
633
  let { dimensions } = options;
@@ -493,14 +676,8 @@ export function createDatabase(dataDir, options = {}) {
493
676
  }
494
677
  createVec0Tables(db, dimensions);
495
678
  migrateVec0AgentPartitions(db, dimensions);
496
- if (!migrated) {
497
- migrateEmbeddingsToVec0(db, dimensions);
498
- const sync = getEmbeddingSyncCounts(db);
499
- if (sync.episodes !== sync.vecEpisodes ||
500
- sync.semantics !== sync.vecSemantics ||
501
- sync.procedures !== sync.vecProcedures) {
502
- migrated = true;
503
- }
679
+ if (!migrated && migrateEmbeddingsToVec0(db, dimensions)) {
680
+ migrated = true;
504
681
  }
505
682
  }
506
683
  return { db, migrated };
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import Database from 'better-sqlite3';
2
- import type { Affect, CausalParams, EmbeddingProvider, SourceType } from './types.js';
2
+ import type { Affect, CausalParams, EmbeddingProvider, RedactionSummary, SourceType } from './types.js';
3
3
  import type { ProfileRecorder } from './profile.js';
4
4
  export interface EncodeEpisodeOptions {
5
5
  profile?: ProfileRecorder;
6
6
  vector?: number[];
7
7
  onVector?: (vector: number[], buffer: Buffer) => void;
8
+ onRedaction?: (summary: RedactionSummary) => void;
8
9
  }
9
10
  export declare function encodeEpisode(db: Database.Database, embeddingProvider: EmbeddingProvider, { content, source, agent, salience, causal, tags, supersedes, context, affect, arousalWeight, private: isPrivate, }: {
10
11
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,EACE,OAAO,EACP,MAAM,EACN,KAAiB,EACjB,QAAc,EACd,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAY,EACZ,MAAW,EACX,aAAmB,EACnB,OAAO,EAAE,SAAiB,GAC3B,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,EACD,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAqEjB"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AAKpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnD;AAYD,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,EACE,OAAO,EACP,MAAM,EACN,KAAiB,EACjB,QAAc,EACd,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAY,EACZ,MAAW,EACX,aAAmB,EACnB,OAAO,EAAE,SAAiB,GAC3B,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,EACD,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAoGjB"}
@@ -3,6 +3,16 @@ import { sourceReliability } from './confidence.js';
3
3
  import { arousalSalienceBoost } from './affect.js';
4
4
  import { insertFTSEpisode } from './fts.js';
5
5
  import { requireAgent } from './utils.js';
6
+ import { redact } from './redact.js';
7
+ function mergeRedactionHits(...sets) {
8
+ const counts = new Map();
9
+ for (const set of sets) {
10
+ for (const hit of set) {
11
+ counts.set(hit.class, (counts.get(hit.class) ?? 0) + hit.count);
12
+ }
13
+ }
14
+ return [...counts.entries()].map(([cls, count]) => ({ class: cls, count }));
15
+ }
6
16
  export async function encodeEpisode(db, embeddingProvider, { content, source, agent = 'default', salience = 0.5, causal, tags, supersedes, context = {}, affect = {}, arousalWeight = 0.3, private: isPrivate = false, }, options = {}) {
7
17
  if (!content || typeof content !== 'string')
8
18
  throw new Error('content must be a non-empty string');
@@ -11,12 +21,39 @@ export async function encodeEpisode(db, embeddingProvider, { content, source, ag
11
21
  if (tags && !Array.isArray(tags))
12
22
  throw new Error('tags must be an array');
13
23
  const ownerAgent = requireAgent(agent);
24
+ // Storage boundary: this is the primary ingestion path (memory_encode,
25
+ // POST /v1/encode, Audrey.encode), so content/context/affect are always
26
+ // filtered through redact() before they reach the episodes row, the FTS
27
+ // index, or the embedding model. redact() is a no-op on ordinary prose.
28
+ const contentResult = redact(content);
29
+ const redactedContent = contentResult.text;
30
+ const redactedContext = {};
31
+ const contextHits = [];
32
+ for (const [key, value] of Object.entries(context)) {
33
+ const valueResult = redact(value);
34
+ redactedContext[key] = valueResult.text;
35
+ contextHits.push(...valueResult.redactions);
36
+ }
37
+ let redactedAffect = affect;
38
+ let affectHits = [];
39
+ if (affect.label) {
40
+ const labelResult = redact(affect.label);
41
+ affectHits = labelResult.redactions;
42
+ redactedAffect = { ...affect, label: labelResult.text };
43
+ }
44
+ const mergedHits = mergeRedactionHits(contentResult.redactions, contextHits, affectHits);
45
+ const redactionSummary = {
46
+ redacted: mergedHits.length > 0,
47
+ classes: mergedHits.map(hit => hit.class),
48
+ count: mergedHits.reduce((sum, hit) => sum + hit.count, 0),
49
+ };
50
+ options.onRedaction?.(redactionSummary);
14
51
  const reliability = sourceReliability(source);
15
52
  const profile = options.profile;
16
53
  const vector = options.vector ??
17
54
  (profile
18
- ? await profile.measure('encode.embedding', () => embeddingProvider.embed(content))
19
- : await embeddingProvider.embed(content));
55
+ ? await profile.measure('encode.embedding', () => embeddingProvider.embed(redactedContent))
56
+ : await embeddingProvider.embed(redactedContent));
20
57
  const embeddingBuffer = profile
21
58
  ? profile.measureSync('encode.vector_to_buffer', () => embeddingProvider.vectorToBuffer(vector))
22
59
  : embeddingProvider.vectorToBuffer(vector);
@@ -34,9 +71,9 @@ export async function encodeEpisode(db, embeddingProvider, { content, source, ag
34
71
  tags, causal_trigger, causal_consequence, created_at,
35
72
  embedding_model, embedding_version, supersedes, "private"
36
73
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
37
- `).run(id, content, embeddingBuffer, source, ownerAgent, reliability, effectiveSalience, JSON.stringify(context), JSON.stringify(affect), tags ? JSON.stringify(tags) : null, causal?.trigger || null, causal?.consequence || null, now, embeddingProvider.modelName, embeddingProvider.modelVersion, supersedes || null, isPrivate ? 1 : 0);
74
+ `).run(id, redactedContent, embeddingBuffer, source, ownerAgent, reliability, effectiveSalience, JSON.stringify(redactedContext), JSON.stringify(redactedAffect), tags ? JSON.stringify(tags) : null, causal?.trigger || null, causal?.consequence || null, now, embeddingProvider.modelName, embeddingProvider.modelVersion, supersedes || null, isPrivate ? 1 : 0);
38
75
  db.prepare('INSERT INTO vec_episodes(id, agent, embedding, source, consolidated) VALUES (?, ?, ?, ?, ?)').run(id, ownerAgent, embeddingBuffer, source, BigInt(0));
39
- insertFTSEpisode(db, id, content, tags ?? null);
76
+ insertFTSEpisode(db, id, redactedContent, tags ?? null);
40
77
  if (supersedes) {
41
78
  db.prepare('UPDATE episodes SET superseded_by = ? WHERE id = ?').run(id, supersedes);
42
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,10 @@ export interface MemoryEvent {
21
21
  cwd: string | null;
22
22
  file_fingerprints: string | null;
23
23
  redaction_state: RedactionState;
24
+ action_key: string | null;
25
+ hook_host: string | null;
26
+ hook_tool_use_id: string | null;
27
+ receipt_id: string | null;
24
28
  metadata: string | null;
25
29
  created_at: string;
26
30
  }
@@ -38,6 +42,10 @@ export interface EventInsert {
38
42
  cwd?: string | null;
39
43
  fileFingerprints?: string[] | null;
40
44
  redactionState?: RedactionState;
45
+ actionKey?: string | null;
46
+ hookHost?: string | null;
47
+ hookToolUseId?: string | null;
48
+ receiptId?: string | null;
41
49
  metadata?: Record<string, unknown> | null;
42
50
  createdAt?: string;
43
51
  }
@@ -51,6 +59,12 @@ export interface EventQuery {
51
59
  limit?: number;
52
60
  }
53
61
  export declare function insertEvent(db: Database.Database, input: EventInsert): MemoryEvent;
62
+ export interface ExactActionHistoryOptions {
63
+ actionKey: string;
64
+ actorAgent: string;
65
+ since?: string;
66
+ }
67
+ export declare function exactActionHistory(db: Database.Database, options: ExactActionHistoryOptions): MemoryEvent[];
54
68
  export declare function listEvents(db: Database.Database, query?: EventQuery): MemoryEvent[];
55
69
  export declare function countEvents(db: Database.Database, query?: EventQuery): number;
56
70
  export interface FailurePattern {
@@ -83,7 +97,40 @@ export interface RecentFailureOptions {
83
97
  * failure_count counts failures since the tool's last success in scope
84
98
  * (extinction: disconfirming evidence retires the warning), not raw failures
85
99
  * in the window.
100
+ *
101
+ * Implemented as one filtered pass over memory_events plus per-tool window
102
+ * functions, rather than a correlated subquery (error summary, last success)
103
+ * and a NOT EXISTS extinction check evaluated per candidate row — the
104
+ * per-row version turns near-quadratic on a large event table.
105
+ *
106
+ * `scoped` must stay MATERIALIZED: without the hint the planner evaluates it
107
+ * once per referencing CTE as co-routines over the low-selectivity outcome
108
+ * index (~30x slower at 50k rows, measured).
86
109
  */
87
110
  export declare function recentFailures(db: Database.Database, options?: RecentFailureOptions): FailurePattern[];
88
- export declare function deleteEventsBefore(db: Database.Database, cutoffIso: string): number;
111
+ /**
112
+ * Default memory_events retention window. Guarded tool calls write at least
113
+ * two rows apiece (PreToolUse + a PostToolUse/PostToolUseFailure receipt),
114
+ * so an install with no retention keeps growing for its whole lifetime —
115
+ * that unbounded growth is what lets recentFailures() and createDatabase()'s
116
+ * embedding sync get slow. 30 days keeps failure-streak history well beyond
117
+ * recentFailures()'s own 7-day default lookback while bounding table size
118
+ * for long-running installs.
119
+ */
120
+ export declare const DEFAULT_EVENT_RETENTION_MS: number;
121
+ export interface DeleteEventsBeforeOptions {
122
+ /**
123
+ * Rows deleted per statement. Deleting in bounded batches (rather than one
124
+ * DELETE spanning the whole backlog) keeps any single write short even
125
+ * when a long-neglected store has millions of stale rows to purge.
126
+ * Defaults to 1000, capped at 50000.
127
+ */
128
+ batchSize?: number;
129
+ }
130
+ /**
131
+ * Deletes memory_events rows older than cutoffIso, batching so a large
132
+ * purge cannot hold one long-running write. Returns the total number of
133
+ * rows deleted across all batches.
134
+ */
135
+ export declare function deleteEventsBefore(db: Database.Database, cutoffIso: string, options?: DeleteEventsBeforeOptions): number;
89
136
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}