audrey 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +303 -429
  3. package/SECURITY.md +3 -3
  4. package/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +3 -3
  5. package/benchmarks/output/external/guardbench-external-dry-run.json +1 -1
  6. package/benchmarks/output/external/guardbench-external-evidence.json +1 -1
  7. package/benchmarks/output/guardbench-conformance-card.json +11 -11
  8. package/benchmarks/output/guardbench-raw.json +105 -104
  9. package/benchmarks/output/guardbench-summary.json +169 -167
  10. package/benchmarks/output/leaderboard/guardbench-leaderboard.json +5 -5
  11. package/benchmarks/output/leaderboard/guardbench-leaderboard.md +2 -2
  12. package/benchmarks/output/submission-bundle/guardbench-conformance-card.json +11 -11
  13. package/benchmarks/output/submission-bundle/guardbench-raw.json +105 -104
  14. package/benchmarks/output/submission-bundle/guardbench-summary.json +169 -167
  15. package/benchmarks/output/submission-bundle/submission-manifest.json +11 -11
  16. package/benchmarks/output/submission-bundle/validation-report.json +1 -1
  17. package/benchmarks/output/summary.json +58 -58
  18. package/benchmarks/public-paths.mjs +14 -1
  19. package/dist/mcp-server/config.d.ts +4 -1
  20. package/dist/mcp-server/config.d.ts.map +1 -1
  21. package/dist/mcp-server/config.js +47 -7
  22. package/dist/mcp-server/config.js.map +1 -1
  23. package/dist/mcp-server/hooks.d.ts +41 -0
  24. package/dist/mcp-server/hooks.d.ts.map +1 -0
  25. package/dist/mcp-server/hooks.js +313 -0
  26. package/dist/mcp-server/hooks.js.map +1 -0
  27. package/dist/mcp-server/index.d.ts +8 -354
  28. package/dist/mcp-server/index.d.ts.map +1 -1
  29. package/dist/mcp-server/index.js +593 -565
  30. package/dist/mcp-server/index.js.map +1 -1
  31. package/dist/mcp-server/tool-schemas.d.ts +341 -0
  32. package/dist/mcp-server/tool-schemas.d.ts.map +1 -0
  33. package/dist/mcp-server/tool-schemas.js +248 -0
  34. package/dist/mcp-server/tool-schemas.js.map +1 -0
  35. package/dist/mcp-server/tool-validation.d.ts +17 -0
  36. package/dist/mcp-server/tool-validation.d.ts.map +1 -0
  37. package/dist/mcp-server/tool-validation.js +41 -0
  38. package/dist/mcp-server/tool-validation.js.map +1 -0
  39. package/dist/src/action-key.d.ts +1 -0
  40. package/dist/src/action-key.d.ts.map +1 -1
  41. package/dist/src/action-key.js +11 -13
  42. package/dist/src/action-key.js.map +1 -1
  43. package/dist/src/affect.d.ts +1 -0
  44. package/dist/src/affect.d.ts.map +1 -1
  45. package/dist/src/affect.js +9 -4
  46. package/dist/src/affect.js.map +1 -1
  47. package/dist/src/audrey.d.ts +11 -3
  48. package/dist/src/audrey.d.ts.map +1 -1
  49. package/dist/src/audrey.js +59 -25
  50. package/dist/src/audrey.js.map +1 -1
  51. package/dist/src/autopilot.d.ts +32 -0
  52. package/dist/src/autopilot.d.ts.map +1 -0
  53. package/dist/src/autopilot.js +997 -0
  54. package/dist/src/autopilot.js.map +1 -0
  55. package/dist/src/capsule.d.ts +2 -0
  56. package/dist/src/capsule.d.ts.map +1 -1
  57. package/dist/src/capsule.js +27 -12
  58. package/dist/src/capsule.js.map +1 -1
  59. package/dist/src/consolidate.d.ts +1 -1
  60. package/dist/src/consolidate.d.ts.map +1 -1
  61. package/dist/src/consolidate.js +14 -8
  62. package/dist/src/consolidate.js.map +1 -1
  63. package/dist/src/controller.d.ts +2 -0
  64. package/dist/src/controller.d.ts.map +1 -1
  65. package/dist/src/controller.js +18 -11
  66. package/dist/src/controller.js.map +1 -1
  67. package/dist/src/db.d.ts.map +1 -1
  68. package/dist/src/db.js +121 -33
  69. package/dist/src/db.js.map +1 -1
  70. package/dist/src/decay.d.ts +2 -1
  71. package/dist/src/decay.d.ts.map +1 -1
  72. package/dist/src/decay.js +14 -10
  73. package/dist/src/decay.js.map +1 -1
  74. package/dist/src/embedding.d.ts.map +1 -1
  75. package/dist/src/embedding.js.map +1 -1
  76. package/dist/src/encode.d.ts.map +1 -1
  77. package/dist/src/encode.js +4 -2
  78. package/dist/src/encode.js.map +1 -1
  79. package/dist/src/events.d.ts +2 -0
  80. package/dist/src/events.d.ts.map +1 -1
  81. package/dist/src/events.js +15 -1
  82. package/dist/src/events.js.map +1 -1
  83. package/dist/src/feedback.d.ts +1 -0
  84. package/dist/src/feedback.d.ts.map +1 -1
  85. package/dist/src/feedback.js +13 -9
  86. package/dist/src/feedback.js.map +1 -1
  87. package/dist/src/forget.d.ts.map +1 -1
  88. package/dist/src/forget.js.map +1 -1
  89. package/dist/src/impact.d.ts +1 -1
  90. package/dist/src/impact.d.ts.map +1 -1
  91. package/dist/src/impact.js +40 -30
  92. package/dist/src/impact.js.map +1 -1
  93. package/dist/src/import.d.ts.map +1 -1
  94. package/dist/src/import.js +13 -9
  95. package/dist/src/import.js.map +1 -1
  96. package/dist/src/index.d.ts +2 -0
  97. package/dist/src/index.d.ts.map +1 -1
  98. package/dist/src/index.js +1 -0
  99. package/dist/src/index.js.map +1 -1
  100. package/dist/src/interference.d.ts +2 -1
  101. package/dist/src/interference.d.ts.map +1 -1
  102. package/dist/src/interference.js +44 -17
  103. package/dist/src/interference.js.map +1 -1
  104. package/dist/src/llm.d.ts.map +1 -1
  105. package/dist/src/llm.js +12 -1
  106. package/dist/src/llm.js.map +1 -1
  107. package/dist/src/migrate.d.ts.map +1 -1
  108. package/dist/src/migrate.js +9 -9
  109. package/dist/src/migrate.js.map +1 -1
  110. package/dist/src/preflight.d.ts +2 -0
  111. package/dist/src/preflight.d.ts.map +1 -1
  112. package/dist/src/preflight.js +29 -12
  113. package/dist/src/preflight.js.map +1 -1
  114. package/dist/src/promote.d.ts +1 -0
  115. package/dist/src/promote.d.ts.map +1 -1
  116. package/dist/src/promote.js +12 -8
  117. package/dist/src/promote.js.map +1 -1
  118. package/dist/src/recall.d.ts.map +1 -1
  119. package/dist/src/recall.js +152 -100
  120. package/dist/src/recall.js.map +1 -1
  121. package/dist/src/reflexes.d.ts.map +1 -1
  122. package/dist/src/reflexes.js.map +1 -1
  123. package/dist/src/rollback.d.ts.map +1 -1
  124. package/dist/src/rollback.js.map +1 -1
  125. package/dist/src/routes.d.ts +1 -0
  126. package/dist/src/routes.d.ts.map +1 -1
  127. package/dist/src/routes.js +73 -20
  128. package/dist/src/routes.js.map +1 -1
  129. package/dist/src/server.d.ts +1 -0
  130. package/dist/src/server.d.ts.map +1 -1
  131. package/dist/src/server.js +2 -2
  132. package/dist/src/server.js.map +1 -1
  133. package/dist/src/types.d.ts +1 -0
  134. package/dist/src/types.d.ts.map +1 -1
  135. package/dist/src/utils.d.ts +2 -0
  136. package/dist/src/utils.d.ts.map +1 -1
  137. package/dist/src/utils.js +18 -0
  138. package/dist/src/utils.js.map +1 -1
  139. package/dist/src/validate.d.ts +1 -0
  140. package/dist/src/validate.d.ts.map +1 -1
  141. package/dist/src/validate.js +19 -10
  142. package/dist/src/validate.js.map +1 -1
  143. package/docs/AUDREY_PAPER_OUTLINE.md +6 -3
  144. package/docs/PRODUCTION_BACKLOG.md +47 -30
  145. package/docs/paper/06-implementation.md +5 -3
  146. package/docs/paper/07-evaluation.md +5 -5
  147. package/docs/paper/08-discussion-limitations.md +1 -1
  148. package/docs/paper/audrey-paper-v1.md +11 -9
  149. package/docs/paper/evidence-ledger.md +8 -8
  150. package/docs/paper/output/arxiv/arxiv-manifest.json +4 -4
  151. package/docs/paper/output/arxiv/main.tex +11 -9
  152. package/docs/paper/output/arxiv-compile-report.json +3 -3
  153. package/docs/paper/output/submission-bundle/README.md +303 -429
  154. package/docs/paper/output/submission-bundle/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +3 -3
  155. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-dry-run.json +1 -1
  156. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-evidence.json +1 -1
  157. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-conformance-card.json +11 -11
  158. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-raw.json +105 -104
  159. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-summary.json +169 -167
  160. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.json +5 -5
  161. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.md +2 -2
  162. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/submission-manifest.json +11 -11
  163. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/validation-report.json +1 -1
  164. package/docs/paper/output/submission-bundle/benchmarks/output/summary.json +45 -45
  165. package/docs/paper/output/submission-bundle/docs/AUDREY_PAPER_OUTLINE.md +6 -3
  166. package/docs/paper/output/submission-bundle/docs/paper/06-implementation.md +5 -3
  167. package/docs/paper/output/submission-bundle/docs/paper/07-evaluation.md +5 -5
  168. package/docs/paper/output/submission-bundle/docs/paper/08-discussion-limitations.md +1 -1
  169. package/docs/paper/output/submission-bundle/docs/paper/audrey-paper-v1.md +11 -9
  170. package/docs/paper/output/submission-bundle/docs/paper/evidence-ledger.md +8 -8
  171. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/arxiv-manifest.json +4 -4
  172. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/main.tex +11 -9
  173. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv-compile-report.json +3 -3
  174. package/docs/paper/output/submission-bundle/package.json +5 -2
  175. package/docs/paper/output/submission-bundle/paper-submission-manifest.json +41 -41
  176. package/package.json +5 -2
  177. package/scripts/audit-release-completion.mjs +8 -8
  178. package/scripts/finalize-release.mjs +1 -1
  179. package/scripts/prepare-release-cut.mjs +1 -1
  180. package/scripts/publish-release-bundle.mjs +8 -4
  181. package/scripts/publish-release-github-api.mjs +1 -1
  182. package/scripts/sync-paper-artifacts.mjs +4 -5
  183. package/scripts/verify-release-readiness.mjs +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
@@ -123,8 +123,10 @@ Metrics:
123
123
  - Why tool annotations are hints, not policy guarantees.
124
124
  - What Audrey borrows from graph memory without adding a graph database to the core.
125
125
  - Limitations:
126
- - Claude Code hook config can be applied with a guarded settings merge, but
127
- equivalent Codex hook wiring still depends on a stable host hook surface.
126
+ - Audrey 1.1 applies lifecycle hooks for Claude Code and Codex, but it can
127
+ inspect only the events and tool paths emitted by each trusted host.
128
+ - Hooks start short-lived Audrey processes; a persistent local runtime and
129
+ measured host-version compatibility gates remain production work.
128
130
  - Validation lineage is bound to exact preflight event evidence, but feedback
129
131
  does not yet tune risk scoring.
130
132
  - Local comparative GuardBench numbers exist; no external-system numbers yet.
@@ -134,7 +136,7 @@ Metrics:
134
136
 
135
137
  - Agent memory should be judged by whether it changes future actions, not just whether it retrieves relevant text.
136
138
  - Audrey Guard demonstrates a practical local loop for using memory as a pre-action control layer.
137
- - The next publishable milestone is live external-adapter GuardBench output plus broader host-hook integration.
139
+ - The next publishable milestone is live external-adapter GuardBench output plus measured real-host coverage and a persistent hook runtime.
138
140
 
139
141
  ## Figures and Tables
140
142
 
@@ -168,6 +170,7 @@ Metrics:
168
170
  - MCP tool annotations and trust model: https://modelcontextprotocol.io/specification/2025-11-25/server/tools and https://modelcontextprotocol.io/specification/2025-11-25/schema
169
171
  - MCP annotation risk vocabulary: https://blog.modelcontextprotocol.io/posts/2026-03-16-tool-annotations/
170
172
  - Claude Code hooks: https://code.claude.com/docs/en/hooks
173
+ - Codex hooks: https://developers.openai.com/codex/hooks
171
174
  - Mem0 token-efficient memory algorithm: https://mem0.ai/blog/mem0-the-token-efficient-memory-algorithm
172
175
  - MemOS: https://huggingface.co/papers/2507.03724
173
176
  - MCP Security Bench: https://huggingface.co/papers/2510.15994
@@ -1,6 +1,6 @@
1
1
  # Audrey Production Backlog
2
2
 
3
- Updated: 2026-05-13 after the Audrey 1.0 release-cut and paper-gate pass.
3
+ Updated: 2026-07-10 for the Audrey 1.1 Autopilot release candidate.
4
4
 
5
5
  This file tracks release posture and remaining product work. It is intentionally
6
6
  public-safe: it avoids exploit recipes, stale line references, and private
@@ -8,8 +8,9 @@ planning notes.
8
8
 
9
9
  ## Current Release Posture
10
10
 
11
- Audrey 1.0.0 has been cut locally and is ready for package-level validation
12
- through the full gate:
11
+ Audrey 1.0.0 and 1.0.1 remain the published historical baseline. The 1.1.0
12
+ working tree adds automatic Claude Code and Codex lifecycle integration and is
13
+ released only after it passes the full gate:
13
14
 
14
15
  ```bash
15
16
  npm run release:gate
@@ -17,7 +18,8 @@ npm run release:gate:paper
17
18
  npm run release:cut:plan
18
19
  npm run release:readiness
19
20
  npm run python:release:check
20
- npm run npm:smoke
21
+ npm run smoke:cli
22
+ npm run pack:check
21
23
  npm run security:audit
22
24
  npx audrey doctor
23
25
  npx audrey status --fail-on-unhealthy
@@ -26,14 +28,14 @@ python -m build --no-isolation python
26
28
  ```
27
29
 
28
30
  `npm run release:readiness` is intentionally pending-aware. It exits cleanly
29
- when local code and paper artifacts verify but the final 1.0 release is still
31
+ when local code and paper artifacts verify but the final 1.1 release is still
30
32
  blocked on source-control release state, GitHub Release object readiness, npm
31
33
  registry/auth readiness, PyPI publish readiness, authenticated browser
32
34
  publication URLs, live Mem0/Zep evidence, or npm/PyPI account steps. Use
33
- `npm run release:readiness:strict` only when cutting the actual 1.0 release;
35
+ `npm run release:readiness:strict` only when cutting the actual 1.1 release;
34
36
  strict mode must fail until those publish blockers are resolved.
35
37
  `npm run release:cut:plan` is the dry-run version/changelog cut. It previews
36
- the edits that `npm run release:cut:apply -- --target-version 1.0.0` would
38
+ the edits that `npm run release:cut:apply -- --target-version 1.1.0` would
37
39
  write to `package.json`, `package-lock.json`, `mcp-server/config.ts`,
38
40
  `python/audrey_memory/_version.py`, and `CHANGELOG.md`. The changelog plan is
39
41
  publishable release-note copy rather than TODO scaffolding, and strict
@@ -45,9 +47,24 @@ previous locked-down Windows temp-directory startup failure while keeping
45
47
  `npm run release:gate:sandbox` available for hosts that block child-process
46
48
  spawning entirely.
47
49
 
48
- ## Unreleased v0.23 Guard Chassis
50
+ ## Guard Chassis And 1.1 Autopilot
49
51
 
50
- The first Audrey Guard slice is now in the working tree:
52
+ The Guard chassis shipped across the 0.23 and 1.0 lines. Audrey 1.1 adds the
53
+ automatic host loop:
54
+
55
+ - `audrey install --host auto` discovers installed Claude Code and Codex CLIs,
56
+ registers the MCP server, and applies host-specific hooks from stable Node
57
+ and Audrey entrypoints. It preserves unrelated configuration, backs up
58
+ non-empty files, replaces older Audrey-owned handlers, and is idempotent.
59
+ - One host adapter normalizes session start, prompt submission, pre-tool,
60
+ post-tool, post-compaction, and stop events. It injects bounded memory,
61
+ creates Guard receipts, correlates outcomes by `session_id + tool_use_id`,
62
+ forms sanitized failure memories, and runs maintenance only when due.
63
+ - Codex project and user hooks require one-time review through `/hooks`;
64
+ Claude Code supports local, project, and user scopes. Hook failures remain
65
+ fail-open unless `AUDREY_HOOK_FAIL_CLOSED=1` is set.
66
+
67
+ The underlying Guard chassis includes:
51
68
 
52
69
  - `src/controller.ts` adds `MemoryController.beforeAction()` and
53
70
  `afterAction()` over the existing tool-trace, reflex, preflight, capsule,
@@ -96,9 +113,8 @@ The first Audrey Guard slice is now in the working tree:
96
113
  - `npm run release:gate:paper` is the publication gate: it rebuilds, typechecks,
97
114
  refreshes performance and behavioral benchmark outputs, runs GuardBench,
98
115
  syncs README/paper/ledger metrics from JSON artifacts, verifies paper
99
- consistency and redaction hygiene, runs the pending-aware 1.0 readiness
100
- checklist, then runs a clean-consumer npm package smoke test and the npm pack
101
- dry-run.
116
+ consistency and redaction hygiene, runs the pending-aware 1.1 readiness
117
+ checklist, then runs the CLI smoke test and npm pack dry-run.
102
118
  - Preflight now performs a supplemental tagged control-memory sweep for
103
119
  trusted `must-follow` memories so high-salience rules survive irrelevant
104
120
  memory noise.
@@ -112,9 +128,10 @@ The first Audrey Guard slice is now in the working tree:
112
128
  - `docs/AUDREY_PAPER_OUTLINE.md` defines the publishable Audrey Guard thesis
113
129
  and the GuardBench evaluation plan.
114
130
 
115
- Still not production-complete Guard: Claude Code hook apply is explicit rather
116
- than part of `install`, Codex hook wiring is not available yet, and validation
117
- feedback is recorded but not yet used to tune risk scoring.
131
+ Still not production-complete Guard: hooks can inspect only the lifecycle
132
+ events and tool paths emitted by each trusted host, each event starts a
133
+ short-lived Audrey process rather than using a persistent local daemon, and
134
+ validation feedback is recorded but does not yet tune risk scoring.
118
135
 
119
136
  ## Shipped In The 0.22.2 Correctness Pass
120
137
 
@@ -158,11 +175,11 @@ Before publishing a new npm or Python package, capture:
158
175
  - `npm run release:gate:sandbox` on locked-down local hosts.
159
176
  - `npm run release:gate:paper` before publishing the paper, npm package, or
160
177
  public launch posts that quote benchmark numbers.
161
- - `npm run release:readiness -- --json` to capture the current 1.0 prompt-to-artifact checklist.
178
+ - `npm run release:readiness -- --json` to capture the current 1.1 prompt-to-artifact checklist.
162
179
  - `npm run release:readiness:strict -- --json` immediately before npm publish, PyPI publish, and browser launch are claimed complete.
163
- - `npm run release:cut:plan -- --target-version 1.0.0 --json` before applying the final version/changelog bump.
180
+ - `npm run release:cut:plan -- --target-version 1.1.0 --json` before applying the final version/changelog bump.
164
181
  - `npm run python:release:check` to build wheel/sdist artifacts, inspect package metadata, check for local path leakage, and run `twine check`.
165
- - `npm run npm:smoke` to prove the packed npm tarball installs in a clean consumer project, imports the public ESM API, runs encode/recall, and executes both CLI shims.
182
+ - `npm run smoke:cli` and `npm run pack:check` to exercise the public CLI and inspect the npm tarball contents.
166
183
  - `npm run security:audit`.
167
184
  - `npm ci --dry-run`.
168
185
  - Direct stdio MCP smoke: initialize, `tools/list`, `resources/list`,
@@ -173,9 +190,9 @@ Before publishing a new npm or Python package, capture:
173
190
 
174
191
  ## P0: Next Release Blockers
175
192
 
176
- 1. Add the equivalent Codex hook wiring when the host exposes a stable hook
177
- surface, and add a one-command Claude Code install mode that runs MCP
178
- registration plus hook apply after a dry-run preview.
193
+ 1. Replace per-event process startup with a persistent local runtime, and add a
194
+ real-host compatibility matrix that measures cold/warm latency and records
195
+ which tool paths each supported Claude Code and Codex version emits.
179
196
  2. Run the Mem0 Platform and Zep Cloud adapters with real runtime keys,
180
197
  publish their raw per-scenario outputs, then add Letta/Graphiti-style
181
198
  adapters.
@@ -185,10 +202,10 @@ Before publishing a new npm or Python package, capture:
185
202
  4. Add MCP tool-risk policy inputs: descriptor fingerprints, annotation hints,
186
203
  trusted-server status, and descriptor drift warnings.
187
204
 
188
- ## 1.0 / Paper Publish Blockers
205
+ ## Historical 1.0 / Paper Publish Snapshot
189
206
 
190
- The local code and paper gates are strong, but the 1.0/publication objective is
191
- not complete until `release:readiness:strict` passes. Current blockers:
207
+ The following rows preserve the publication state recorded during the 2026-05-13
208
+ paper pass. They are evidence history, not the current 1.1 release checklist:
192
209
 
193
210
  - Source control is partially released remotely but not coherent yet: live
194
211
  GitHub refs now show `release/audrey-1.0.0` at `83eb0ad` while `v1.0.0` is
@@ -257,7 +274,7 @@ the context they already earned. The strongest paid surface is likely team
257
274
  memory operations: policy editor, memory diff/rollback, audit log, shared
258
275
  encrypted stores, hosted relay, CI gates, and support.
259
276
 
260
- ## v0.23 Product Direction (Tracked, Not Decided)
277
+ ## Historical v0.23 Product Direction
261
278
 
262
279
  A 2026-05-01 audit recommends repositioning Audrey from a generic local
263
280
  memory framework to **Audrey Guard** — a local-first memory firewall whose
@@ -275,12 +292,12 @@ Open questions before committing to the rename:
275
292
  while branding the guard CLI separately give us the same wedge without
276
293
  abandoning existing positioning?
277
294
 
278
- Concrete v0.23 work the audit identified, scoped to fit one or two
279
- releases:
295
+ Concrete v0.23 work the audit identified, with shipped items marked:
280
296
 
281
- 1. Host hook wiring for Claude Code and Codex so Guard runs automatically
282
- before tool use and tool outcomes feed back into trace/validation surfaces.
283
- 2. Memory Controller Layer (`src/controller.ts`) that owns
297
+ 1. Shipped in 1.1: host hook wiring for Claude Code and Codex so Guard runs
298
+ automatically before supported tool use and outcomes feed trace/validation
299
+ surfaces.
300
+ 2. Shipped: Memory Controller Layer (`src/controller.ts`) that owns
284
301
  `beforeAction(action) → GuardResult` and
285
302
  `afterAction(outcome) → void` over the existing primitives. This
286
303
  chassis also enables splitting `src/audrey.ts` (now ~1.2K lines) into
@@ -84,11 +84,13 @@ The JSON walker redacts sensitive keys and values recursively. If a value sits u
84
84
 
85
85
  ## MCP, CLI, and REST Surfaces
86
86
 
87
- The MCP server registers 20 tools: `memory_dream`, `memory_encode`, `memory_recall`, `memory_consolidate`, `memory_introspect`, `memory_resolve_truth`, `memory_export`, `memory_import`, `memory_forget`, `memory_validate`, `memory_decay`, `memory_status`, `memory_reflect`, `memory_greeting`, `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_reflexes`, and `memory_promote` (Ledger: E32). The Guard-relevant MCP surface is `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, and `memory_reflexes`, with `memory_validate` supporting closed-loop validation and REST or CLI impact reporting supporting aggregate impact inspection (Ledger: E16-E19, E32-E34).
87
+ The MCP server registers 22 tools: `memory_dream`, `memory_encode`, `memory_recall`, `memory_consolidate`, `memory_introspect`, `memory_resolve_truth`, `memory_export`, `memory_import`, `memory_forget`, `memory_validate`, `memory_decay`, `memory_status`, `memory_reflect`, `memory_greeting`, `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_guard_before`, `memory_guard_after`, `memory_reflexes`, and `memory_promote` (Ledger: E32). The Guard-relevant MCP surface is `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_guard_before`, `memory_guard_after`, and `memory_reflexes`, with `memory_validate` supporting closed-loop validation and REST or CLI impact reporting supporting aggregate impact inspection (Ledger: E16-E19, E32-E34).
88
88
 
89
- The CLI recognizes `install`, `uninstall`, `mcp-config`, `hook-config`, `demo`, `guard`, `reembed`, `dream`, `greeting`, `reflect`, `serve`, `status`, `doctor`, `observe-tool`, `promote`, and `impact` (Ledger: E34). The `guard` subcommand invokes the controller, prints JSON or formatted output, exits nonzero for blocking decisions unless an explicit override is supplied, and can run as a Claude Code PreToolUse hook with `--hook`. `hook-config claude-code --apply` merges the generated hook block into Claude Code settings with backup/idempotence (Ledger: E26, E43).
89
+ The CLI recognizes `install`, `uninstall`, `mcp-config`, `hook-config`, `demo`, `guard`, `guard-after`, `hook`, `reembed`, `dream`, `greeting`, `reflect`, `serve`, `status`, `doctor`, `observe-tool`, `promote`, and `impact` (Ledger: E34). The `guard` subcommand remains available for explicit checks, while the host-facing `hook` subcommand normalizes current Claude Code and Codex lifecycle payloads. `audrey install --host auto` discovers installed supported CLIs, registers the MCP server, and applies host-specific lifecycle hooks from a stable Node and Audrey entrypoint. Generated settings preserve unrelated hooks, replace older Audrey-owned handlers, write backups before changing non-empty files, and are idempotent. Claude Code supports local, project, and user hook scopes; Codex supports project and user scopes and requires one-time review of non-managed hooks through `/hooks` (Ledger: E26, E43).
90
90
 
91
- The REST sidecar exposes routes for health, encode, recall, validate, mark-used, capsule, preflight, reflexes, consolidate, dream, introspect, impact, resolve-truth, export, import, forget, decay, status, reflect, and greeting (Ledger: E33). The sidecar defaults to loopback binding, refuses non-loopback binds without `AUDREY_API_KEY` unless `AUDREY_ALLOW_NO_AUTH=1`, and emits an explicit warning when that no-auth override is used (Ledger: E35). Export, import, and forget are disabled unless `AUDREY_ENABLE_ADMIN_TOOLS=1` (Ledger: E33).
91
+ The generated lifecycle covers session start, user prompt submission, guarded pre-tool use, correlated post-tool outcomes, post-compaction, and turn stop. Session and prompt hooks inject bounded, agent-scoped memory context. Retrieval queries are bounded before embedding: large prompts and edits contribute redacted previews, lengths, and hashes rather than unbounded bodies, while exact Guard identity digests the full normalized, redacted action. Pre-tool hooks create Guard receipts, and post-tool hooks close the matching receipt by `session_id + tool_use_id`; sanitized failures may become durable memories. Claude Code exposes an explicit failure event. Current Codex Bash hooks can omit exit status, so Audrey records an opaque result as `unknown` unless structured fields or response text establish success or failure. Stop and post-compaction hooks run consolidation only when due. Audrey fails open on hook-runtime errors by default, with explicit fail-closed operation available through `AUDREY_HOOK_FAIL_CLOSED=1`. This is lifecycle integration, not a complete enforcement boundary: Audrey can inspect only the events and tool paths emitted by each host, and the short-lived hook process still pays provider startup cost instead of using a persistent daemon (Ledger: E43, E44).
92
+
93
+ The REST sidecar exposes routes for health, encode, recall, validate, mark-used, capsule, preflight, Guard before/after receipts, reflexes, consolidate, dream, introspect, impact, resolve-truth, export, import, forget, decay, status, reflect, and greeting (Ledger: E33). The sidecar defaults to loopback binding, refuses non-loopback binds without `AUDREY_API_KEY` unless `AUDREY_ALLOW_NO_AUTH=1`, and emits an explicit warning when that no-auth override is used (Ledger: E35). Export, import, and forget are disabled unless `AUDREY_ENABLE_ADMIN_TOOLS=1` (Ledger: E33).
92
94
 
93
95
  ## Configuration
94
96
 
@@ -24,13 +24,13 @@ These numbers measure Audrey's local call path under an in-process mock embeddin
24
24
 
25
25
  ## Behavioral Regression Result
26
26
 
27
- The current `benchmarks/output/summary.json` was generated on 2026-05-29T03:45:32.997Z with command `node benchmarks/run.js --provider mock --dimensions 64` (Ledger: E24). It reports:
27
+ The current `benchmarks/output/summary.json` was generated on 2026-07-10T15:00:37.705Z with command `node benchmarks/run.js --provider mock --dimensions 64` (Ledger: E24). It reports:
28
28
 
29
29
  | System | Score Percent | Pass Rate | Average Duration Ms |
30
30
  |---|---:|---:|---:|
31
- | Audrey | 100 | 100 | 15.416666666666666 |
32
- | Vector Only | 41.66666666666667 | 25 | 0.3333333333333333 |
33
- | Keyword + Recency | 41.66666666666667 | 25 | 0.6666666666666666 |
31
+ | Audrey | 100 | 100 | 16.25 |
32
+ | Vector Only | 41.66666666666667 | 25 | 0.25 |
33
+ | Keyword + Recency | 41.66666666666667 | 25 | 0.5833333333333334 |
34
34
  | Recent Window | 37.5 | 25 | 0 |
35
35
 
36
36
  This output is a regression-gate result. The baselines are toy local baselines used to catch retrieval and lifecycle regressions in the Audrey codebase. They are not external systems, not tuned competitor implementations, and not GuardBench baselines (Ledger: E23-E24). The current suite covers retrieval and operation families such as information extraction, knowledge updates, multi-session reasoning, conflict resolution, procedural learning, privacy boundary, overwrite, delete-and-abstain, semantic merge, and procedural merge (Ledger: E23-E24).
@@ -55,7 +55,7 @@ It reports local adapters only, not external-system comparisons (Ledger: E46):
55
55
  | Evidence recall | 100% |
56
56
  | Redaction leaks | 0 |
57
57
  | Recall-degradation detection | 100% |
58
- | Guard latency p50 / p95 | 2.916 ms / 21.17 ms |
58
+ | Guard latency p50 / p95 | 3.501 ms / 20.658 ms |
59
59
  | Published artifact raw-secret leaks | 0 |
60
60
  | Audrey Guard decision accuracy | 100% |
61
61
  | No-memory decision accuracy | 10% |
@@ -46,7 +46,7 @@ Reflex generation is deterministic, not adaptive. Reflexes are mapped from prefl
46
46
 
47
47
  ## Open Problems
48
48
 
49
- Host hook parity. Audrey exposes CLI pieces that host hooks can call, and Claude Code documents hook extension points [@anthropic2026claudecodehooks]. Audrey now generates and applies Claude Code hook settings, `guard --hook` emits the current PreToolUse `hookSpecificOutput.permissionDecision` shape, and `observe-tool` records post-tool events (Ledger: E43). The remaining production installer work is equivalent wiring for hosts with stable hook surfaces, especially Codex.
49
+ Host hook coverage and process model. Audrey 1.1 generates, applies, and removes lifecycle hooks for current Claude Code and Codex CLIs; the shared adapter injects bounded context, runs Guard before selected side-effectful tools, correlates post-tool outcomes, and performs due-only maintenance (Ledger: E43). This closes the configuration gap, not the enforcement gap. Hook execution still depends on host trust and on the host emitting a supported event for the relevant tool path. Alternate or incompletely intercepted host tool paths remain outside Audrey's view. Each hook also starts a short-lived Audrey process, so the default local embedding provider can pay cold-start cost repeatedly. Production follow-up is a persistent local runtime, measured compatibility gates against supported host versions, and organization-managed deployment that binds tenant identity and enforcement policy outside a caller-controlled routing header. Claude Code's documented hook surface remains an example of the underlying host boundary [@anthropic2026claudecodehooks].
50
50
 
51
51
  Validation lineage is implemented but not yet policy-adaptive. Audrey can bind validation events to the exact preflight event, evidence IDs, and action key that produced a decision, and rejects mismatched evidence claims (Ledger: E44). The next step is using that closed-loop signal to tune warning priority and recommendation wording without giving the model direct control over policy.
52
52
 
@@ -841,11 +841,13 @@ The JSON walker redacts sensitive keys and values recursively. If a value sits u
841
841
 
842
842
  ### MCP, CLI, and REST Surfaces
843
843
 
844
- The MCP server registers 20 tools: `memory_dream`, `memory_encode`, `memory_recall`, `memory_consolidate`, `memory_introspect`, `memory_resolve_truth`, `memory_export`, `memory_import`, `memory_forget`, `memory_validate`, `memory_decay`, `memory_status`, `memory_reflect`, `memory_greeting`, `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_reflexes`, and `memory_promote` (Ledger: E32). The Guard-relevant MCP surface is `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, and `memory_reflexes`, with `memory_validate` supporting closed-loop validation and REST or CLI impact reporting supporting aggregate impact inspection (Ledger: E16-E19, E32-E34).
844
+ The MCP server registers 22 tools: `memory_dream`, `memory_encode`, `memory_recall`, `memory_consolidate`, `memory_introspect`, `memory_resolve_truth`, `memory_export`, `memory_import`, `memory_forget`, `memory_validate`, `memory_decay`, `memory_status`, `memory_reflect`, `memory_greeting`, `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_guard_before`, `memory_guard_after`, `memory_reflexes`, and `memory_promote` (Ledger: E32). The Guard-relevant MCP surface is `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_guard_before`, `memory_guard_after`, and `memory_reflexes`, with `memory_validate` supporting closed-loop validation and REST or CLI impact reporting supporting aggregate impact inspection (Ledger: E16-E19, E32-E34).
845
845
 
846
- The CLI recognizes `install`, `uninstall`, `mcp-config`, `hook-config`, `demo`, `guard`, `reembed`, `dream`, `greeting`, `reflect`, `serve`, `status`, `doctor`, `observe-tool`, `promote`, and `impact` (Ledger: E34). The `guard` subcommand invokes the controller, prints JSON or formatted output, exits nonzero for blocking decisions unless an explicit override is supplied, and can run as a Claude Code PreToolUse hook with `--hook`. `hook-config claude-code --apply` merges the generated hook block into Claude Code settings with backup/idempotence (Ledger: E26, E43).
846
+ The CLI recognizes `install`, `uninstall`, `mcp-config`, `hook-config`, `demo`, `guard`, `guard-after`, `hook`, `reembed`, `dream`, `greeting`, `reflect`, `serve`, `status`, `doctor`, `observe-tool`, `promote`, and `impact` (Ledger: E34). The `guard` subcommand remains available for explicit checks, while the host-facing `hook` subcommand normalizes current Claude Code and Codex lifecycle payloads. `audrey install --host auto` discovers installed supported CLIs, registers the MCP server, and applies host-specific lifecycle hooks from a stable Node and Audrey entrypoint. Generated settings preserve unrelated hooks, replace older Audrey-owned handlers, write backups before changing non-empty files, and are idempotent. Claude Code supports local, project, and user hook scopes; Codex supports project and user scopes and requires one-time review of non-managed hooks through `/hooks` (Ledger: E26, E43).
847
847
 
848
- The REST sidecar exposes routes for health, encode, recall, validate, mark-used, capsule, preflight, reflexes, consolidate, dream, introspect, impact, resolve-truth, export, import, forget, decay, status, reflect, and greeting (Ledger: E33). The sidecar defaults to loopback binding, refuses non-loopback binds without `AUDREY_API_KEY` unless `AUDREY_ALLOW_NO_AUTH=1`, and emits an explicit warning when that no-auth override is used (Ledger: E35). Export, import, and forget are disabled unless `AUDREY_ENABLE_ADMIN_TOOLS=1` (Ledger: E33).
848
+ The generated lifecycle covers session start, user prompt submission, guarded pre-tool use, correlated post-tool outcomes, post-compaction, and turn stop. Session and prompt hooks inject bounded, agent-scoped memory context. Pre-tool hooks create Guard receipts, and post-tool hooks close the matching receipt by `session_id + tool_use_id`; sanitized failures may become durable memories. Claude Code exposes an explicit failure event. Current Codex Bash hooks can omit exit status, so Audrey records an opaque result as `unknown` unless structured fields or response text establish success or failure. Stop and post-compaction hooks run consolidation only when due. Audrey fails open on hook-runtime errors by default, with explicit fail-closed operation available through `AUDREY_HOOK_FAIL_CLOSED=1`. This is lifecycle integration, not a complete enforcement boundary: Audrey can inspect only the events and tool paths emitted by each host, and the short-lived hook process still pays provider startup cost instead of using a persistent daemon (Ledger: E43).
849
+
850
+ The REST sidecar exposes routes for health, encode, recall, validate, mark-used, capsule, preflight, Guard before/after receipts, reflexes, consolidate, dream, introspect, impact, resolve-truth, export, import, forget, decay, status, reflect, and greeting (Ledger: E33). The sidecar defaults to loopback binding, refuses non-loopback binds without `AUDREY_API_KEY` unless `AUDREY_ALLOW_NO_AUTH=1`, and emits an explicit warning when that no-auth override is used (Ledger: E35). Export, import, and forget are disabled unless `AUDREY_ENABLE_ADMIN_TOOLS=1` (Ledger: E33).
849
851
 
850
852
  ### Configuration
851
853
 
@@ -895,13 +897,13 @@ These numbers measure Audrey's local call path under an in-process mock embeddin
895
897
 
896
898
  ### Behavioral Regression Result
897
899
 
898
- The current `benchmarks/output/summary.json` was generated on 2026-05-29T03:45:32.997Z with command `node benchmarks/run.js --provider mock --dimensions 64` (Ledger: E24). It reports:
900
+ The current `benchmarks/output/summary.json` was generated on 2026-07-10T15:00:37.705Z with command `node benchmarks/run.js --provider mock --dimensions 64` (Ledger: E24). It reports:
899
901
 
900
902
  | System | Score Percent | Pass Rate | Average Duration Ms |
901
903
  |---|---:|---:|---:|
902
- | Audrey | 100 | 100 | 15.416666666666666 |
903
- | Vector Only | 41.66666666666667 | 25 | 0.3333333333333333 |
904
- | Keyword + Recency | 41.66666666666667 | 25 | 0.6666666666666666 |
904
+ | Audrey | 100 | 100 | 16.25 |
905
+ | Vector Only | 41.66666666666667 | 25 | 0.25 |
906
+ | Keyword + Recency | 41.66666666666667 | 25 | 0.5833333333333334 |
905
907
  | Recent Window | 37.5 | 25 | 0 |
906
908
 
907
909
  This output is a regression-gate result. The baselines are toy local baselines used to catch retrieval and lifecycle regressions in the Audrey codebase. They are not external systems, not tuned competitor implementations, and not GuardBench baselines (Ledger: E23-E24). The current suite covers retrieval and operation families such as information extraction, knowledge updates, multi-session reasoning, conflict resolution, procedural learning, privacy boundary, overwrite, delete-and-abstain, semantic merge, and procedural merge (Ledger: E23-E24).
@@ -924,7 +926,7 @@ It reports local adapters only, not external-system comparisons (Ledger: E46):
924
926
  | Evidence recall | 100% |
925
927
  | Redaction leaks | 0 |
926
928
  | Recall-degradation detection | 100% |
927
- | Guard latency p50 / p95 | 2.916 ms / 21.17 ms |
929
+ | Guard latency p50 / p95 | 3.501 ms / 20.658 ms |
928
930
  | Published artifact raw-secret leaks | 0 |
929
931
  | Audrey Guard decision accuracy | 100% |
930
932
  | No-memory decision accuracy | 10% |
@@ -1071,7 +1073,7 @@ Reflex generation is deterministic, not adaptive. Reflexes are mapped from prefl
1071
1073
 
1072
1074
  ### Open Problems
1073
1075
 
1074
- Host hook parity. Audrey exposes CLI pieces that host hooks can call, and Claude Code documents hook extension points [@anthropic2026claudecodehooks]. Audrey now generates and applies Claude Code hook settings, `guard --hook` emits the current PreToolUse `hookSpecificOutput.permissionDecision` shape, and `observe-tool` records post-tool events (Ledger: E43). The remaining production installer work is equivalent wiring for hosts with stable hook surfaces, especially Codex.
1076
+ Host hook coverage and process model. Audrey 1.1 generates, applies, and removes lifecycle hooks for current Claude Code and Codex CLIs; the shared adapter injects bounded context, runs Guard before selected side-effectful tools, correlates post-tool outcomes, and performs due-only maintenance (Ledger: E43). This closes the configuration gap, not the enforcement gap. Hook execution still depends on host trust and on the host emitting a supported event for the relevant tool path. Alternate or incompletely intercepted host tool paths remain outside Audrey's view. Each hook also starts a short-lived Audrey process, so the default local embedding provider can pay cold-start cost repeatedly. Production follow-up is a persistent local runtime, measured compatibility gates against supported host versions, and organization-managed deployment that binds tenant identity and enforcement policy outside a caller-controlled routing header. Claude Code's documented hook surface remains an example of the underlying host boundary [@anthropic2026claudecodehooks].
1075
1077
 
1076
1078
  Validation lineage is implemented but not yet policy-adaptive. Audrey can bind validation events to the exact preflight event, evidence IDs, and action key that produced a decision, and rejects mismatched evidence claims (Ledger: E44). The next step is using that closed-loop signal to tune warning priority and recommendation wording without giving the model direct control over policy.
1077
1079
 
@@ -21,7 +21,7 @@ Every implementation claim in the paper should point to one or more ledger IDs i
21
21
  | E15 - Recall degradation is represented as `RecallError[]`, propagated through `partialFailure` and `errors`, and exposed in memory status as `recall_degraded` and `last_recall_errors`. | Recall degradation types and status | src/types.ts:129-137,568-570; src/recall.ts:741-753; src/audrey.ts:844-846 | Yes, 2026-05-08 |
22
22
  | E16 - Closed-loop validation accepts `used`, `helpful`, and `wrong` outcomes and updates salience, usage count, retrieval count, challenge count, and last-use/reinforcement timestamps by memory type. | Feedback application | src/feedback.ts:3-18,32-45,91-163 | Yes, 2026-05-08 |
23
23
  | E17 - Impact reporting computes memory totals, all-time and windowed validation counts, challenge counts, per-outcome validation events, top-used memories, weakest memories, and recent activity. | Impact report | src/impact.ts:12-35,100-158 | Yes, 2026-05-08 |
24
- | E18 - The MCP surface registers 20 tools; Guard-relevant tools include `memory_observe_tool`, `memory_capsule`, `memory_preflight`, and `memory_reflexes`. | MCP tool surface | mcp-server/index.ts:639-654,1455-2022 | Yes, `rg "server\.tool\(" mcp-server/index.ts` count = 20 on 2026-05-08 |
24
+ | E18 - The MCP surface registers 22 tools; Guard-relevant tools include `memory_observe_tool`, `memory_capsule`, `memory_preflight`, `memory_guard_before`, `memory_guard_after`, and `memory_reflexes`. | MCP tool surface | mcp-server/index.ts | Yes, `rg "server\.tool\(" mcp-server/index.ts` count = 22 on 2026-07-10 |
25
25
  | E19 - Audrey exposes `memory_validate`, `memory_dream`, `memory_observe_tool`, `memory_capsule`, `memory_preflight`, and `memory_reflexes` in the server help and registers each as an MCP tool. | MCP guard and lifecycle tools | mcp-server/index.ts:639-654,1456,1779,1835,1905,1944,1982 | Yes, 2026-05-08 |
26
26
  | E20 - `benchmarks/snapshots/perf-0.22.2.json` is the canonical performance snapshot generated on 2026-05-01 from git SHA `e2e821b`, using mock in-process 64-dimensional embeddings, hybrid recall limit 5, corpus sizes 100/1000/5000, and 50 recall runs per size on Node 25.5.0 with a 24-core Ryzen 9 7900X3D and 62.9 GB RAM. | Performance snapshot methodology and provenance | benchmarks/snapshots/perf-0.22.2.json:2-16,19-26 | Yes, 2026-05-08 |
27
27
  | E21 - The canonical perf snapshot reports hybrid recall p95 of 1.82 ms at 100 memories, 2.364 ms at 1,000 memories, and 3.417 ms at 5,000 memories under the mock-provider methodology. | Performance snapshot recall p95 | benchmarks/snapshots/perf-0.22.2.json:42-44,73-75,104-106 | Yes, 2026-05-08 |
@@ -35,21 +35,21 @@ Every implementation claim in the paper should point to one or more ledger IDs i
35
35
  | E29 - Audrey stores episodic, semantic, and procedural memories alongside causal links, contradictions, consolidation runs and metrics, configuration, and tool/memory events in SQLite tables with indexes on created time, source, state, session, tool, and outcome. | Storage schema | src/db.ts:8-158 | Yes, 2026-05-08 |
36
36
  | E30 - Audrey creates sqlite-vec virtual tables for episodic, semantic, and procedural embeddings, creates FTS5 virtual tables for the same memory classes, backfills FTS tables, and manages schema evolution through in-code migrations. | Vector, FTS, and migrations | src/db.ts:193-208,318-370; src/fts.ts:15-21,143-159 | Yes, 2026-05-08 |
37
37
  | E31 - Audrey's runtime stack is Node 20+, TypeScript, Hono, MCP stdio, better-sqlite3, sqlite-vec, transformers.js local embeddings, and optional OpenAI or Gemini embedding providers. The local provider uses a 384-dimensional `Xenova/all-MiniLM-L6-v2` model; mock, OpenAI, and Gemini default to 64, 1536, and 3072 dimensions respectively. | Runtime stack and embedding providers | package.json:105-115,122; mcp-server/index.ts:1605,2061-2064; mcp-server/config.ts:29-79; src/embedding.ts:39-46,122-180,207-218,288-299 | Yes, 2026-05-08 |
38
- | E32 - The MCP server registers exactly 20 tools by name: `memory_dream`, `memory_encode`, `memory_recall`, `memory_consolidate`, `memory_introspect`, `memory_resolve_truth`, `memory_export`, `memory_import`, `memory_forget`, `memory_validate`, `memory_decay`, `memory_status`, `memory_reflect`, `memory_greeting`, `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_reflexes`, and `memory_promote`. | MCP tool registry | mcp-server/index.ts:1455-2022 | Yes, `rg "server\.tool\(" mcp-server/index.ts` count = 20 on 2026-05-08 |
39
- | E33 - The REST sidecar exposes health, encode, recall, validate, mark-used, capsule, preflight, reflexes, consolidate, dream, introspect, impact, resolve-truth, export, import, forget, decay, status, reflect, and greeting routes; API-key middleware uses bearer-token constant-time comparison, and export/import/forget are disabled unless admin tools are enabled. | REST route surface and auth/admin gates | src/routes.ts:13-61,68-70,135-188,195-494 | Yes, 2026-05-08 |
40
- | E34 - The CLI recognizes `install`, `uninstall`, `mcp-config`, `hook-config`, `demo`, `guard`, `reembed`, `dream`, `greeting`, `reflect`, `serve`, `status`, `doctor`, `observe-tool`, `promote`, and `impact`. | CLI subcommands | mcp-server/index.ts; tests/mcp-server.test.js | Yes, 2026-05-12 |
38
+ | E32 - The MCP server registers exactly 22 tools by name: `memory_dream`, `memory_encode`, `memory_recall`, `memory_consolidate`, `memory_introspect`, `memory_resolve_truth`, `memory_export`, `memory_import`, `memory_forget`, `memory_validate`, `memory_decay`, `memory_status`, `memory_reflect`, `memory_greeting`, `memory_observe_tool`, `memory_recent_failures`, `memory_capsule`, `memory_preflight`, `memory_guard_before`, `memory_guard_after`, `memory_reflexes`, and `memory_promote`. | MCP tool registry | mcp-server/index.ts | Yes, `rg "server\.tool\(" mcp-server/index.ts` count = 22 on 2026-07-10 |
39
+ | E33 - The REST sidecar exposes health, encode, recall, validate, mark-used, capsule, preflight, Guard before/after receipt, reflex, consolidation, dream, introspection, impact, truth-resolution, export, import, forget, decay, status, reflection, and greeting routes; API-key middleware uses bearer-token constant-time comparison, and export/import/forget are disabled unless admin tools are enabled. | REST route surface and auth/admin gates | src/routes.ts; tests/http-api.test.js | Yes, focused HTTP API coverage passed on 2026-07-10 |
40
+ | E34 - The CLI recognizes `install`, `uninstall`, `mcp-config`, `hook-config`, `demo`, `guard`, `guard-after`, `hook`, `reembed`, `dream`, `greeting`, `reflect`, `serve`, `status`, `doctor`, `observe-tool`, `promote`, and `impact`. | CLI subcommands | mcp-server/index.ts; tests/mcp-server.test.js; tests/hooks-config.test.js | Yes, relevant CLI and hook-config cases passed in the targeted 2026-07-10 run |
41
41
  | E35 - The REST sidecar defaults to `127.0.0.1`, refuses non-loopback binds without `AUDREY_API_KEY` unless `AUDREY_ALLOW_NO_AUTH=1`, and emits a no-auth warning when that override is used. | Loopback bind discipline | src/server.ts:13-31; mcp-server/index.ts:217-225,1266-1280 | Yes, 2026-05-08 |
42
42
  | E36 - Audrey ships a Python client that calls the REST sidecar and exposes synchronous and asynchronous encode, recall, recall-response, and impact operations. | Python client | README.md:127-184; python/audrey_memory/client.py:116-181,258-310 | Yes, 2026-05-08 |
43
- | E37 - The documented environment matrix includes security-relevant defaults for data directory, agent identity, embedding and LLM provider selection, device, port, host, API key, no-auth override, admin tools, promote roots, debug/profile flags, warmup, ONNX verbosity, SQLite pragmas, and context budget. | README configuration matrix | README.md:220-236 | Yes, 2026-05-08 |
43
+ | E37 - The documented environment matrix includes security-relevant defaults for data directory, agent identity, embedding and LLM provider selection and model override, device, port, host, API key, no-auth override, admin tools, hook memory scope, hook failure policy, debug/profile flags, warmup, ONNX verbosity, SQLite pragmas, and context budget. | README configuration matrix | README.md; .env.example; mcp-server/config.ts | Yes, re-verified 2026-07-10 |
44
44
  | E38 - `AUDREY_MODEL` is not a documented Audrey environment variable in the README matrix; embedding model selection is represented by provider defaults in configuration and embedding-provider constructors. | Environment variable scope and provider defaults | README.md:220-236; mcp-server/config.ts:38-79; src/embedding.ts:39-46,122-180,207-218 | Yes, `rg "AUDREY_MODEL" README.md src mcp-server package.json` returned no Audrey runtime variable on 2026-05-08 |
45
45
  | E39 - Release and verification scripts include build, typecheck, Vitest, perf benchmark, performance snapshot, memory regression check, GuardBench check, npm pack dry-run, release gate, sandbox release gate, and documented Python unittest/build commands. | Test and release gates | package.json:39-58; README.md:200,247-300,352-356; python/tests/test_client.py:124-149,195-245 | Yes, 2026-05-12 |
46
46
  | E40 - Recall checks vector-table availability, records per-type partial failures for missing vector tables or KNN errors, records FTS lookup failures, and attaches collected `RecallError[]` to the returned recall result while preserving available partial results. | Recall partial-failure pathway | src/recall.ts:82-105,626-721,741-753 | Yes, 2026-05-08 |
47
47
  | E41 - The Phase 3 demo run rebuilt the project with `npm run build`, which completed successfully before executing the repeated-failure demo. | Build command for evaluation demo | package.json:39-40; Phase 3 command output | Yes, command succeeded on 2026-05-08 |
48
48
  | E42 - The Phase 3 repeated-failure demo printed an Audrey Guard `BLOCKED` decision with risk score `0.90`, two blocking memory reflexes, one warning reflex, three evidence IDs, one repeated failure prevented, one helpful memory validation recorded, and three evidence IDs attached. | Demo transcript captured for evaluation | mcp-server/index.ts:828-880; Phase 3 command output | Yes, command succeeded on 2026-05-08 |
49
- | E43 - Audrey exposes a Claude Code hook generator, guarded settings apply path, and hook-mode Guard command: `hook-config claude-code` emits hooks, `hook-config claude-code --apply --scope project|user` merges them into Claude Code settings with backup/idempotence, `guard --hook --fail-on-warn` consumes PreToolUse JSON and returns `hookSpecificOutput.permissionDecision`, and `observe-tool` records post-tool events. Codex hook wiring remains pending on a stable host hook surface. | Hook integration boundary | README.md; mcp-server/index.ts; tests/mcp-server.test.js | Yes, focused Vitest and CLI hook smoke passed on 2026-05-12 |
50
- | E44 - Audrey preflight events now persist `preflight_evidence_ids` and `audrey_guard_action_key`; `memory_validate` accepts optional `preflight_event_id`, action key, and evidence ids, persists them on the validation audit event, and rejects validation lineage when the memory id was not evidence for that preflight. | Validation lineage implementation | src/action-key.ts; src/controller.ts; src/preflight.ts; src/audrey.ts; mcp-server/index.ts; tests/controller.test.js | Yes, focused Vitest passed on 2026-05-12 |
49
+ | E43 - Audrey 1.1 ships one normalized lifecycle adapter and host-specific configuration for current Claude Code and Codex CLIs. `audrey install --host auto` registers MCP and applies hooks for detected hosts from stable executable paths. `hook-config` supports preview, scoped apply, private backups, and idempotent Audrey-handler replacement; `uninstall` supports non-mutating preview and removes Audrey-owned registrations and handlers in the selected scope. Session and prompt hooks inject bounded, agent-scoped context; PreToolUse creates Guard receipts; post-tool events correlate outcomes by `session_id + tool_use_id`; sanitized failures may form durable memories; Stop and PostCompact run due-only maintenance. Codex requires explicit non-managed hook trust through `/hooks`. Hook errors fail open unless `AUDREY_HOOK_FAIL_CLOSED=1`. Coverage remains limited to events and tool paths emitted by the host, and each hook starts a short-lived Audrey process rather than using a persistent daemon. | Automatic lifecycle integration and boundary | README.md; CHANGELOG.md; mcp-server/hooks.ts; mcp-server/index.ts; src/autopilot.ts; tests/autopilot.test.js; tests/hooks-config.test.js; tests/mcp-server.test.js | Yes, build plus 191 focused install, hook, Autopilot, preflight, controller, and HTTP tests passed on 2026-07-10 |
50
+ | E44 - Audrey preflight events now persist `preflight_evidence_ids` and `audrey_guard_action_key`; `memory_validate` accepts optional `preflight_event_id`, action key, and evidence ids, persists them on the validation audit event, and rejects validation lineage when the memory id was not evidence for that preflight. Preflight embedding queries are bounded, while exact action identity hashes the full normalized, redacted action so large inputs with a shared prefix do not collide. | Validation lineage implementation | src/action-key.ts; src/controller.ts; src/preflight.ts; src/audrey.ts; mcp-server/index.ts; tests/controller.test.js | Yes, focused Vitest passed on 2026-07-10, including a large-action prefix-collision regression |
51
51
  | E45 - Preflight risk scoring uses a fixed severity map (`info=0.1`, `low=0.25`, `medium=0.55`, `high=0.85`), sorts warnings by severity, and strict mode blocks on high-severity warnings; the scoring path does not consume validation feedback. | Fixed risk scoring boundary | src/preflight.ts:6-60,291-299,332-338; src/feedback.ts:3-18,70-163 | Yes, 2026-05-08 |
52
- | E46 - `benchmarks/guardbench.js` runs ten local comparative GuardBench scenarios across Audrey Guard, no-memory, recent-window, vector-only, and FTS-only adapters and writes `benchmarks/output/guardbench-summary.json`, `benchmarks/output/guardbench-manifest.json`, and `benchmarks/output/guardbench-raw.json`; the latest local run has Audrey Guard passing 10/10 scenarios with 100% prevention rate, 0% false-block rate, 100% evidence recall, zero decision-output redaction leaks, zero published artifact raw-secret leaks, 100% recall-degradation detection, 100% decision accuracy, and 2.916ms/21.17ms p50/p95 guard latency under the mock-provider methodology. Baseline decision accuracy was no-memory 10%, recent-window 60%, vector-only 40%, and FTS-only 10%, with 0% full-contract pass rate for each baseline. | GuardBench local comparative results | benchmarks/guardbench.js; benchmarks/output/guardbench-summary.json; benchmarks/output/guardbench-manifest.json; benchmarks/output/guardbench-raw.json; package.json | Yes, `npm run bench:guard:check` passed on 2026-05-13 |
52
+ | E46 - `benchmarks/guardbench.js` runs ten local comparative GuardBench scenarios across Audrey Guard, no-memory, recent-window, vector-only, and FTS-only adapters and writes `benchmarks/output/guardbench-summary.json`, `benchmarks/output/guardbench-manifest.json`, and `benchmarks/output/guardbench-raw.json`; the latest local run has Audrey Guard passing 10/10 scenarios with 100% prevention rate, 0% false-block rate, 100% evidence recall, zero decision-output redaction leaks, zero published artifact raw-secret leaks, 100% recall-degradation detection, 100% decision accuracy, and 3.501ms/20.658ms p50/p95 guard latency under the mock-provider methodology. Baseline decision accuracy was no-memory 10%, recent-window 60%, vector-only 40%, and FTS-only 10%, with 0% full-contract pass rate for each baseline. | GuardBench local comparative results | benchmarks/guardbench.js; benchmarks/output/guardbench-summary.json; benchmarks/output/guardbench-manifest.json; benchmarks/output/guardbench-raw.json; package.json | Yes, `npm run bench:guard:check` passed on 2026-05-13 |
53
53
  | E47 - GuardBench accepts external ESM adapters through `--adapter`, supports `default`, `adapter`, or `createGuardBenchAdapter()` exports, withholds `expectedDecision` and `requiredEvidence` during adapter execution, then scores adapter output against the same full-contract decision/evidence/redaction checks. | GuardBench external adapter contract | benchmarks/guardbench.js; tests/guardbench.test.js; package.json | Yes, `node scripts/run-vitest.mjs run tests/guardbench.test.js` passed on 2026-05-12 |
54
54
  | E48 - Audrey ships a Mem0 Platform GuardBench adapter that uses the current Mem0 REST shape: V3 async memory add with event polling, V2 filtered memory search, and user-entity cleanup. It requires runtime `MEM0_API_KEY` and is not run by default. | First external-system GuardBench adapter | benchmarks/adapters/mem0-platform.mjs; tests/guardbench.test.js; README.md | Import/contract and mocked REST-flow tests passed on 2026-05-12; live Mem0 run not yet executed |
55
55
  | E49 - GuardBench ships a credential-free example external adapter and a `bench:guard:adapter-smoke` script so the adapter loader can be exercised through the real CLI path without external credentials. | External adapter smoke path | benchmarks/adapters/example-allow.mjs; package.json; README.md; tests/guardbench.test.js | Yes, `npm run bench:guard:adapter-smoke` passed on 2026-05-12 |
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "suite": "Audrey arXiv source package",
4
- "generatedAt": "2026-05-29T03:45:42.097Z",
4
+ "generatedAt": "2026-07-10T15:00:47.587Z",
5
5
  "sourceMarkdown": "docs/paper/audrey-paper-v1.md",
6
6
  "publicationPack": "docs/paper/publication-pack.json",
7
7
  "sourceHashes": {
8
- "sourceMarkdown": "f2afc1cda24b1ba91cf39429e7836ead97c7a1c815b294b3d623bb20d8f5e7e6",
8
+ "sourceMarkdown": "d8eca75076e4ce06b1d6f15a5f2c91b2fab6da767c0bd613539b6fb9dace802d",
9
9
  "publicationPack": "a1a523d5938faea72be568b843ac3890e61cea6070b0cfa46acf22ad3d2fb974",
10
10
  "referencesBib": "c0bfcaf7bfe37d6933c812e46352be8a95397eaa430a0f5bc94037600a53f654"
11
11
  },
@@ -13,8 +13,8 @@
13
13
  {
14
14
  "path": "main.tex",
15
15
  "source": "docs/paper/audrey-paper-v1.md",
16
- "bytes": 122667,
17
- "sha256": "e3ee98ea8c523e8f394b8fbbc73e206f0d6126b7349df5669206d4d48d9feea6"
16
+ "bytes": 124811,
17
+ "sha256": "1dbe78fa0648e70bd02db6ff29352d8af859af25e27eb28e39a3cd78fa0965f9"
18
18
  },
19
19
  {
20
20
  "path": "references.bib",
@@ -673,11 +673,13 @@ The JSON walker redacts sensitive keys and values recursively. If a value sits u
673
673
 
674
674
  \subsection{MCP, CLI, and REST Surfaces}
675
675
 
676
- The MCP server registers 20 tools: \texttt{memory\_dream}, \texttt{memory\_encode}, \texttt{memory\_recall}, \texttt{memory\_consolidate}, \texttt{memory\_introspect}, \texttt{memory\_resolve\_truth}, \texttt{memory\_export}, \texttt{memory\_import}, \texttt{memory\_forget}, \texttt{memory\_validate}, \texttt{memory\_decay}, \texttt{memory\_status}, \texttt{memory\_reflect}, \texttt{memory\_greeting}, \texttt{memory\_observe\_tool}, \texttt{memory\_recent\_failures}, \texttt{memory\_capsule}, \texttt{memory\_preflight}, \texttt{memory\_reflexes}, and \texttt{memory\_promote} (Ledger: E32). The Guard-relevant MCP surface is \texttt{memory\_observe\_tool}, \texttt{memory\_recent\_failures}, \texttt{memory\_capsule}, \texttt{memory\_preflight}, and \texttt{memory\_reflexes}, with \texttt{memory\_validate} supporting closed-loop validation and REST or CLI impact reporting supporting aggregate impact inspection (Ledger: E16-E19, E32-E34).
676
+ The MCP server registers 22 tools: \texttt{memory\_dream}, \texttt{memory\_encode}, \texttt{memory\_recall}, \texttt{memory\_consolidate}, \texttt{memory\_introspect}, \texttt{memory\_resolve\_truth}, \texttt{memory\_export}, \texttt{memory\_import}, \texttt{memory\_forget}, \texttt{memory\_validate}, \texttt{memory\_decay}, \texttt{memory\_status}, \texttt{memory\_reflect}, \texttt{memory\_greeting}, \texttt{memory\_observe\_tool}, \texttt{memory\_recent\_failures}, \texttt{memory\_capsule}, \texttt{memory\_preflight}, \texttt{memory\_guard\_before}, \texttt{memory\_guard\_after}, \texttt{memory\_reflexes}, and \texttt{memory\_promote} (Ledger: E32). The Guard-relevant MCP surface is \texttt{memory\_observe\_tool}, \texttt{memory\_recent\_failures}, \texttt{memory\_capsule}, \texttt{memory\_preflight}, \texttt{memory\_guard\_before}, \texttt{memory\_guard\_after}, and \texttt{memory\_reflexes}, with \texttt{memory\_validate} supporting closed-loop validation and REST or CLI impact reporting supporting aggregate impact inspection (Ledger: E16-E19, E32-E34).
677
677
 
678
- The CLI recognizes \texttt{install}, \texttt{uninstall}, \texttt{mcp-config}, \texttt{hook-config}, \texttt{demo}, \texttt{guard}, \texttt{reembed}, \texttt{dream}, \texttt{greeting}, \texttt{reflect}, \texttt{serve}, \texttt{status}, \texttt{doctor}, \texttt{observe-tool}, \texttt{promote}, and \texttt{impact} (Ledger: E34). The \texttt{guard} subcommand invokes the controller, prints JSON or formatted output, exits nonzero for blocking decisions unless an explicit override is supplied, and can run as a Claude Code PreToolUse hook with \texttt{--hook}. \texttt{hook-config claude-code --apply} merges the generated hook block into Claude Code settings with backup/idempotence (Ledger: E26, E43).
678
+ The CLI recognizes \texttt{install}, \texttt{uninstall}, \texttt{mcp-config}, \texttt{hook-config}, \texttt{demo}, \texttt{guard}, \texttt{guard-after}, \texttt{hook}, \texttt{reembed}, \texttt{dream}, \texttt{greeting}, \texttt{reflect}, \texttt{serve}, \texttt{status}, \texttt{doctor}, \texttt{observe-tool}, \texttt{promote}, and \texttt{impact} (Ledger: E34). The \texttt{guard} subcommand remains available for explicit checks, while the host-facing \texttt{hook} subcommand normalizes current Claude Code and Codex lifecycle payloads. \texttt{audrey install --host auto} discovers installed supported CLIs, registers the MCP server, and applies host-specific lifecycle hooks from a stable Node and Audrey entrypoint. Generated settings preserve unrelated hooks, replace older Audrey-owned handlers, write backups before changing non-empty files, and are idempotent. Claude Code supports local, project, and user hook scopes; Codex supports project and user scopes and requires one-time review of non-managed hooks through \texttt{/hooks} (Ledger: E26, E43).
679
679
 
680
- The REST sidecar exposes routes for health, encode, recall, validate, mark-used, capsule, preflight, reflexes, consolidate, dream, introspect, impact, resolve-truth, export, import, forget, decay, status, reflect, and greeting (Ledger: E33). The sidecar defaults to loopback binding, refuses non-loopback binds without \texttt{AUDREY\_API\_KEY} unless \texttt{AUDREY\_ALLOW\_NO\_AUTH=1}, and emits an explicit warning when that no-auth override is used (Ledger: E35). Export, import, and forget are disabled unless \texttt{AUDREY\_ENABLE\_ADMIN\_TOOLS=1} (Ledger: E33).
680
+ The generated lifecycle covers session start, user prompt submission, guarded pre-tool use, correlated post-tool outcomes, post-compaction, and turn stop. Session and prompt hooks inject bounded, agent-scoped memory context. Pre-tool hooks create Guard receipts, and post-tool hooks close the matching receipt by \texttt{session\_id + tool\_use\_id}; sanitized failures may become durable memories. Claude Code exposes an explicit failure event. Current Codex Bash hooks can omit exit status, so Audrey records an opaque result as \texttt{unknown} unless structured fields or response text establish success or failure. Stop and post-compaction hooks run consolidation only when due. Audrey fails open on hook-runtime errors by default, with explicit fail-closed operation available through \texttt{AUDREY\_HOOK\_FAIL\_CLOSED=1}. This is lifecycle integration, not a complete enforcement boundary: Audrey can inspect only the events and tool paths emitted by each host, and the short-lived hook process still pays provider startup cost instead of using a persistent daemon (Ledger: E43).
681
+
682
+ The REST sidecar exposes routes for health, encode, recall, validate, mark-used, capsule, preflight, Guard before/after receipts, reflexes, consolidate, dream, introspect, impact, resolve-truth, export, import, forget, decay, status, reflect, and greeting (Ledger: E33). The sidecar defaults to loopback binding, refuses non-loopback binds without \texttt{AUDREY\_API\_KEY} unless \texttt{AUDREY\_ALLOW\_NO\_AUTH=1}, and emits an explicit warning when that no-auth override is used (Ledger: E35). Export, import, and forget are disabled unless \texttt{AUDREY\_ENABLE\_ADMIN\_TOOLS=1} (Ledger: E33).
681
683
 
682
684
  \subsection{Configuration}
683
685
 
@@ -729,13 +731,13 @@ These numbers measure Audrey's local call path under an in-process mock embeddin
729
731
 
730
732
  \subsection{Behavioral Regression Result}
731
733
 
732
- The current \texttt{benchmarks/output/summary.json} was generated on 2026-05-29T03:45:32.997Z with command \texttt{node benchmarks/run.js --provider mock --dimensions 64} (Ledger: E24). It reports:
734
+ The current \texttt{benchmarks/output/summary.json} was generated on 2026-07-10T15:00:37.705Z with command \texttt{node benchmarks/run.js --provider mock --dimensions 64} (Ledger: E24). It reports:
733
735
 
734
736
  \begin{verbatim}
735
737
  | System | Score Percent | Pass Rate | Average Duration Ms |
736
- | Audrey | 100 | 100 | 15.416666666666666 |
737
- | Vector Only | 41.66666666666667 | 25 | 0.3333333333333333 |
738
- | Keyword + Recency | 41.66666666666667 | 25 | 0.6666666666666666 |
738
+ | Audrey | 100 | 100 | 16.25 |
739
+ | Vector Only | 41.66666666666667 | 25 | 0.25 |
740
+ | Keyword + Recency | 41.66666666666667 | 25 | 0.5833333333333334 |
739
741
  | Recent Window | 37.5 | 25 | 0 |
740
742
  \end{verbatim}
741
743
 
@@ -759,7 +761,7 @@ It reports local adapters only, not external-system comparisons (Ledger: E46):
759
761
  | Evidence recall | 100% |
760
762
  | Redaction leaks | 0 |
761
763
  | Recall-degradation detection | 100% |
762
- | Guard latency p50 / p95 | 2.916 ms / 21.17 ms |
764
+ | Guard latency p50 / p95 | 3.501 ms / 20.658 ms |
763
765
  | Published artifact raw-secret leaks | 0 |
764
766
  | Audrey Guard decision accuracy | 100% |
765
767
  | No-memory decision accuracy | 10% |
@@ -908,7 +910,7 @@ Reflex generation is deterministic, not adaptive. Reflexes are mapped from prefl
908
910
 
909
911
  \subsection{Open Problems}
910
912
 
911
- Host hook parity. Audrey exposes CLI pieces that host hooks can call, and Claude Code documents hook extension points \cite{anthropic2026claudecodehooks}. Audrey now generates and applies Claude Code hook settings, \texttt{guard --hook} emits the current PreToolUse \texttt{hookSpecificOutput.permissionDecision} shape, and \texttt{observe-tool} records post-tool events (Ledger: E43). The remaining production installer work is equivalent wiring for hosts with stable hook surfaces, especially Codex.
913
+ Host hook coverage and process model. Audrey 1.1 generates, applies, and removes lifecycle hooks for current Claude Code and Codex CLIs; the shared adapter injects bounded context, runs Guard before selected side-effectful tools, correlates post-tool outcomes, and performs due-only maintenance (Ledger: E43). This closes the configuration gap, not the enforcement gap. Hook execution still depends on host trust and on the host emitting a supported event for the relevant tool path. Alternate or incompletely intercepted host tool paths remain outside Audrey's view. Each hook also starts a short-lived Audrey process, so the default local embedding provider can pay cold-start cost repeatedly. Production follow-up is a persistent local runtime, measured compatibility gates against supported host versions, and organization-managed deployment that binds tenant identity and enforcement policy outside a caller-controlled routing header. Claude Code's documented hook surface remains an example of the underlying host boundary \cite{anthropic2026claudecodehooks}.
912
914
 
913
915
  Validation lineage is implemented but not yet policy-adaptive. Audrey can bind validation events to the exact preflight event, evidence IDs, and action key that produced a decision, and rejects mismatched evidence claims (Ledger: E44). The next step is using that closed-loop signal to tune warning priority and recommendation wording without giving the model direct control over policy.
914
916
 
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "suite": "Audrey arXiv compile check",
4
- "generatedAt": "2026-05-29T03:45:42.412Z",
4
+ "generatedAt": "2026-07-10T15:00:49.374Z",
5
5
  "source": {
6
6
  "sourceDir": "docs/paper/output/arxiv",
7
7
  "manifest": "docs/paper/output/arxiv/arxiv-manifest.json",
8
- "manifestSha256": "6364c368755a4188d5b2deea9e3fe80201f5fa55658e6ae570141e54c5293bc6",
8
+ "manifestSha256": "9df7fee92964064551d7eb23098800f909f7ae8dc770be2ddcc29ff3cb33723a",
9
9
  "mainTex": "docs/paper/output/arxiv/main.tex",
10
- "mainTexSha256": "e3ee98ea8c523e8f394b8fbbc73e206f0d6126b7349df5669206d4d48d9feea6",
10
+ "mainTexSha256": "1dbe78fa0648e70bd02db6ff29352d8af859af25e27eb28e39a3cd78fa0965f9",
11
11
  "referencesBib": "docs/paper/output/arxiv/references.bib",
12
12
  "referencesBibSha256": "c0bfcaf7bfe37d6933c812e46352be8a95397eaa430a0f5bc94037600a53f654"
13
13
  },