audrey 1.0.0 → 1.0.2

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 (234) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +30 -6
  3. package/benchmarks/adapter-self-test.mjs +6 -2
  4. package/benchmarks/adapters/example-allow.mjs +5 -2
  5. package/benchmarks/adapters/mem0-platform.mjs +19 -12
  6. package/benchmarks/adapters/zep-cloud.mjs +51 -27
  7. package/benchmarks/baselines.js +11 -6
  8. package/benchmarks/build-leaderboard.mjs +36 -23
  9. package/benchmarks/cases.js +24 -12
  10. package/benchmarks/create-conformance-card.mjs +12 -3
  11. package/benchmarks/create-submission-bundle.mjs +22 -8
  12. package/benchmarks/dry-run-external-adapters.mjs +24 -12
  13. package/benchmarks/guardbench.js +354 -124
  14. package/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +7 -7
  15. package/benchmarks/output/external/guardbench-external-dry-run.json +1 -1
  16. package/benchmarks/output/external/guardbench-external-evidence.json +1 -1
  17. package/benchmarks/output/guardbench-conformance-card.json +12 -12
  18. package/benchmarks/output/guardbench-raw.json +243 -144
  19. package/benchmarks/output/guardbench-summary.json +354 -230
  20. package/benchmarks/output/leaderboard/guardbench-leaderboard.json +5 -5
  21. package/benchmarks/output/leaderboard/guardbench-leaderboard.md +2 -2
  22. package/benchmarks/output/submission-bundle/guardbench-conformance-card.json +12 -12
  23. package/benchmarks/output/submission-bundle/guardbench-raw.json +243 -144
  24. package/benchmarks/output/submission-bundle/guardbench-summary.json +354 -230
  25. package/benchmarks/output/submission-bundle/schemas/guardbench-raw.schema.json +21 -1
  26. package/benchmarks/output/submission-bundle/schemas/guardbench-summary.schema.json +23 -2
  27. package/benchmarks/output/submission-bundle/submission-manifest.json +15 -15
  28. package/benchmarks/output/submission-bundle/validation-report.json +1 -1
  29. package/benchmarks/output/summary.json +58 -58
  30. package/benchmarks/perf-snapshot.js +12 -9
  31. package/benchmarks/perf.bench.js +14 -6
  32. package/benchmarks/public-paths.mjs +11 -5
  33. package/benchmarks/reference-results.js +10 -5
  34. package/benchmarks/report.js +48 -27
  35. package/benchmarks/run-external-guardbench.mjs +47 -25
  36. package/benchmarks/run.js +112 -59
  37. package/benchmarks/schemas/guardbench-raw.schema.json +21 -1
  38. package/benchmarks/schemas/guardbench-summary.schema.json +23 -2
  39. package/benchmarks/validate-adapter-module.mjs +13 -10
  40. package/benchmarks/validate-adapter-registry.mjs +16 -5
  41. package/benchmarks/validate-guardbench-artifacts.mjs +76 -19
  42. package/benchmarks/verify-external-evidence.mjs +86 -31
  43. package/benchmarks/verify-publication-artifacts.mjs +34 -11
  44. package/benchmarks/verify-submission-bundle.mjs +9 -4
  45. package/dist/mcp-server/config.d.ts +1 -1
  46. package/dist/mcp-server/config.d.ts.map +1 -1
  47. package/dist/mcp-server/config.js +5 -3
  48. package/dist/mcp-server/config.js.map +1 -1
  49. package/dist/mcp-server/index.d.ts +4 -3
  50. package/dist/mcp-server/index.d.ts.map +1 -1
  51. package/dist/mcp-server/index.js +479 -172
  52. package/dist/mcp-server/index.js.map +1 -1
  53. package/dist/src/action-key.d.ts.map +1 -1
  54. package/dist/src/action-key.js +6 -2
  55. package/dist/src/action-key.js.map +1 -1
  56. package/dist/src/adaptive.d.ts.map +1 -1
  57. package/dist/src/adaptive.js +4 -2
  58. package/dist/src/adaptive.js.map +1 -1
  59. package/dist/src/affect.d.ts.map +1 -1
  60. package/dist/src/affect.js +8 -5
  61. package/dist/src/affect.js.map +1 -1
  62. package/dist/src/audrey.d.ts +11 -1
  63. package/dist/src/audrey.d.ts.map +1 -1
  64. package/dist/src/audrey.js +110 -53
  65. package/dist/src/audrey.js.map +1 -1
  66. package/dist/src/capsule.d.ts.map +1 -1
  67. package/dist/src/capsule.js +37 -15
  68. package/dist/src/capsule.js.map +1 -1
  69. package/dist/src/causal.d.ts +1 -1
  70. package/dist/src/causal.d.ts.map +1 -1
  71. package/dist/src/causal.js +4 -2
  72. package/dist/src/causal.js.map +1 -1
  73. package/dist/src/confidence.d.ts.map +1 -1
  74. package/dist/src/confidence.js +5 -5
  75. package/dist/src/confidence.js.map +1 -1
  76. package/dist/src/consolidate.d.ts.map +1 -1
  77. package/dist/src/consolidate.js +17 -9
  78. package/dist/src/consolidate.js.map +1 -1
  79. package/dist/src/context.js +1 -1
  80. package/dist/src/context.js.map +1 -1
  81. package/dist/src/controller.d.ts +17 -1
  82. package/dist/src/controller.d.ts.map +1 -1
  83. package/dist/src/controller.js +73 -23
  84. package/dist/src/controller.js.map +1 -1
  85. package/dist/src/db.d.ts.map +1 -1
  86. package/dist/src/db.js +78 -27
  87. package/dist/src/db.js.map +1 -1
  88. package/dist/src/decay.d.ts +1 -1
  89. package/dist/src/decay.d.ts.map +1 -1
  90. package/dist/src/decay.js +1 -1
  91. package/dist/src/decay.js.map +1 -1
  92. package/dist/src/embedding.d.ts +12 -4
  93. package/dist/src/embedding.d.ts.map +1 -1
  94. package/dist/src/embedding.js +18 -16
  95. package/dist/src/embedding.js.map +1 -1
  96. package/dist/src/encode.d.ts.map +1 -1
  97. package/dist/src/encode.js +5 -4
  98. package/dist/src/encode.js.map +1 -1
  99. package/dist/src/events.d.ts +3 -2
  100. package/dist/src/events.d.ts.map +1 -1
  101. package/dist/src/events.js +7 -3
  102. package/dist/src/events.js.map +1 -1
  103. package/dist/src/export.d.ts.map +1 -1
  104. package/dist/src/export.js +21 -7
  105. package/dist/src/export.js.map +1 -1
  106. package/dist/src/feedback.d.ts.map +1 -1
  107. package/dist/src/feedback.js +1 -1
  108. package/dist/src/feedback.js.map +1 -1
  109. package/dist/src/forget.d.ts.map +1 -1
  110. package/dist/src/forget.js +12 -6
  111. package/dist/src/forget.js.map +1 -1
  112. package/dist/src/fts.d.ts.map +1 -1
  113. package/dist/src/fts.js +20 -8
  114. package/dist/src/fts.js.map +1 -1
  115. package/dist/src/hybrid-recall.d.ts.map +1 -1
  116. package/dist/src/hybrid-recall.js +12 -6
  117. package/dist/src/hybrid-recall.js.map +1 -1
  118. package/dist/src/impact.d.ts.map +1 -1
  119. package/dist/src/impact.js +26 -10
  120. package/dist/src/impact.js.map +1 -1
  121. package/dist/src/import.d.ts.map +1 -1
  122. package/dist/src/import.js +11 -6
  123. package/dist/src/import.js.map +1 -1
  124. package/dist/src/index.d.ts +5 -4
  125. package/dist/src/index.d.ts.map +1 -1
  126. package/dist/src/index.js +4 -4
  127. package/dist/src/index.js.map +1 -1
  128. package/dist/src/interference.d.ts.map +1 -1
  129. package/dist/src/interference.js +10 -5
  130. package/dist/src/interference.js.map +1 -1
  131. package/dist/src/introspect.d.ts.map +1 -1
  132. package/dist/src/introspect.js +12 -6
  133. package/dist/src/introspect.js.map +1 -1
  134. package/dist/src/llm.d.ts +2 -2
  135. package/dist/src/llm.d.ts.map +1 -1
  136. package/dist/src/llm.js +6 -6
  137. package/dist/src/llm.js.map +1 -1
  138. package/dist/src/migrate.d.ts.map +1 -1
  139. package/dist/src/migrate.js +10 -4
  140. package/dist/src/migrate.js.map +1 -1
  141. package/dist/src/preflight.d.ts.map +1 -1
  142. package/dist/src/preflight.js +6 -8
  143. package/dist/src/preflight.js.map +1 -1
  144. package/dist/src/profile.d.ts.map +1 -1
  145. package/dist/src/profile.js.map +1 -1
  146. package/dist/src/promote.d.ts.map +1 -1
  147. package/dist/src/promote.js +16 -7
  148. package/dist/src/promote.js.map +1 -1
  149. package/dist/src/prompts.d.ts.map +1 -1
  150. package/dist/src/prompts.js +1 -2
  151. package/dist/src/prompts.js.map +1 -1
  152. package/dist/src/recall.d.ts.map +1 -1
  153. package/dist/src/recall.js +85 -18
  154. package/dist/src/recall.js.map +1 -1
  155. package/dist/src/redact.d.ts.map +1 -1
  156. package/dist/src/redact.js +9 -4
  157. package/dist/src/redact.js.map +1 -1
  158. package/dist/src/reflexes.d.ts.map +1 -1
  159. package/dist/src/reflexes.js +1 -7
  160. package/dist/src/reflexes.js.map +1 -1
  161. package/dist/src/rollback.d.ts.map +1 -1
  162. package/dist/src/rollback.js +4 -2
  163. package/dist/src/rollback.js.map +1 -1
  164. package/dist/src/routes.d.ts.map +1 -1
  165. package/dist/src/routes.js +37 -14
  166. package/dist/src/routes.js.map +1 -1
  167. package/dist/src/rules-compiler.d.ts.map +1 -1
  168. package/dist/src/rules-compiler.js +24 -2
  169. package/dist/src/rules-compiler.js.map +1 -1
  170. package/dist/src/server.js +2 -2
  171. package/dist/src/server.js.map +1 -1
  172. package/dist/src/tool-trace.d.ts +2 -2
  173. package/dist/src/tool-trace.d.ts.map +1 -1
  174. package/dist/src/tool-trace.js +12 -4
  175. package/dist/src/tool-trace.js.map +1 -1
  176. package/dist/src/types.d.ts.map +1 -1
  177. package/dist/src/ulid.js +1 -1
  178. package/dist/src/ulid.js.map +1 -1
  179. package/dist/src/utils.d.ts.map +1 -1
  180. package/dist/src/utils.js.map +1 -1
  181. package/dist/src/validate.d.ts.map +1 -1
  182. package/dist/src/validate.js +20 -10
  183. package/dist/src/validate.js.map +1 -1
  184. package/docs/paper/07-evaluation.md +5 -5
  185. package/docs/paper/audrey-paper-v1.md +6 -6
  186. package/docs/paper/evidence-ledger.md +1 -1
  187. package/docs/paper/output/arxiv/arxiv-manifest.json +4 -4
  188. package/docs/paper/output/arxiv/main.tex +6 -6
  189. package/docs/paper/output/arxiv-compile-report.json +3 -3
  190. package/docs/paper/output/submission-bundle/README.md +30 -6
  191. package/docs/paper/output/submission-bundle/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +7 -7
  192. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-dry-run.json +1 -1
  193. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-evidence.json +1 -1
  194. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-conformance-card.json +12 -12
  195. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-raw.json +243 -144
  196. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-summary.json +354 -230
  197. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.json +5 -5
  198. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.md +2 -2
  199. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/submission-manifest.json +15 -15
  200. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/validation-report.json +1 -1
  201. package/docs/paper/output/submission-bundle/benchmarks/output/summary.json +52 -52
  202. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-raw.schema.json +21 -1
  203. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-summary.schema.json +23 -2
  204. package/docs/paper/output/submission-bundle/docs/paper/07-evaluation.md +5 -5
  205. package/docs/paper/output/submission-bundle/docs/paper/audrey-paper-v1.md +6 -6
  206. package/docs/paper/output/submission-bundle/docs/paper/evidence-ledger.md +1 -1
  207. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/arxiv-manifest.json +4 -4
  208. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/main.tex +6 -6
  209. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv-compile-report.json +3 -3
  210. package/docs/paper/output/submission-bundle/package.json +18 -5
  211. package/docs/paper/output/submission-bundle/paper-submission-manifest.json +40 -40
  212. package/examples/fintech-ops-demo.js +12 -5
  213. package/examples/healthcare-ops-demo.js +8 -4
  214. package/examples/ollama-memory-agent.js +41 -13
  215. package/examples/stripe-demo.js +12 -5
  216. package/package.json +18 -5
  217. package/scripts/audit-release-completion.mjs +179 -101
  218. package/scripts/create-arxiv-source.mjs +20 -14
  219. package/scripts/create-paper-submission-bundle.mjs +6 -2
  220. package/scripts/finalize-release.mjs +111 -36
  221. package/scripts/prepare-release-cut.mjs +14 -6
  222. package/scripts/publish-release-bundle.mjs +62 -23
  223. package/scripts/publish-release-github-api.mjs +89 -24
  224. package/scripts/smoke-cli.js +26 -6
  225. package/scripts/sync-paper-artifacts.mjs +5 -1
  226. package/scripts/verify-arxiv-compile.mjs +52 -16
  227. package/scripts/verify-arxiv-source.mjs +45 -15
  228. package/scripts/verify-browser-launch-plan.mjs +28 -11
  229. package/scripts/verify-browser-launch-results.mjs +32 -14
  230. package/scripts/verify-paper-artifacts.mjs +539 -79
  231. package/scripts/verify-paper-claims.mjs +48 -20
  232. package/scripts/verify-paper-submission-bundle.mjs +22 -11
  233. package/scripts/verify-publication-pack.mjs +23 -9
  234. package/scripts/verify-release-readiness.mjs +250 -71
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "suite": "GuardBench comparative",
3
- "generatedAt": "2026-05-13T23:33:51.220Z",
3
+ "generatedAt": "2026-05-29T03:45:36.607Z",
4
4
  "manifestVersion": "0.2.0",
5
5
  "provenance": {
6
- "generatedAt": "2026-05-13T23:33:51.221Z",
7
- "gitSha": "970752172441967c3ede79562eca69b08efb1f12",
6
+ "generatedAt": "2026-05-29T03:45:36.607Z",
7
+ "gitSha": "ceed2f51b615175c8bb412b96b5e5a501561189f",
8
8
  "gitDirty": false,
9
- "node": "v24.14.1",
10
- "v8": "13.6.233.17-node.44",
9
+ "node": "v24.16.0",
10
+ "v8": "13.6.233.17-node.49",
11
11
  "platform": "linux",
12
12
  "arch": "x64",
13
- "osRelease": "6.17.0-1010-azure",
14
- "cpuModel": "AMD EPYC 7763 64-Core Processor",
13
+ "osRelease": "6.17.0-1015-azure",
14
+ "cpuModel": "AMD EPYC 9V74 80-Core Processor",
15
15
  "cpuCount": 4,
16
16
  "totalMemoryGb": 15.61,
17
17
  "embeddingProvider": "mock",
@@ -33,11 +33,11 @@
33
33
  "decisionCorrect": true,
34
34
  "riskScore": 0.9,
35
35
  "passed": true,
36
- "latencyMs": 8.899,
36
+ "latencyMs": 8.156,
37
37
  "evidenceCount": 2,
38
38
  "evidenceIds": [
39
- "01KRHV0X9M33M5ZXDZ9YXYVBJN",
40
- "failure:Bash:2026-05-13T23:33:47.445Z"
39
+ "01KSRXCP2KSTEGGHFKA5WRR1S8",
40
+ "failure:Bash:2026-05-29T03:45:33.268Z"
41
41
  ],
42
42
  "recommendedActions": [
43
43
  "Do not repeat the exact failed action until the prior error is understood or the command is changed.",
@@ -46,6 +46,8 @@
46
46
  "summary": "Blocked: this exact Bash action failed before. Caution: 1 memory signal, 1 medium severity found before acting.",
47
47
  "recallErrors": [],
48
48
  "leakedSecrets": [],
49
+ "hasEvidenceForDecision": true,
50
+ "lineageTextMatched": true,
49
51
  "requiredEvidenceMatched": true
50
52
  },
51
53
  {
@@ -57,13 +59,15 @@
57
59
  "decisionCorrect": false,
58
60
  "riskScore": 0,
59
61
  "passed": false,
60
- "latencyMs": 0.038,
62
+ "latencyMs": 0.035,
61
63
  "evidenceCount": 0,
62
64
  "evidenceIds": [],
63
65
  "recommendedActions": [],
64
66
  "summary": "No memory baseline always allows proposed actions.",
65
67
  "recallErrors": [],
66
68
  "leakedSecrets": [],
69
+ "hasEvidenceForDecision": false,
70
+ "lineageTextMatched": false,
67
71
  "requiredEvidenceMatched": false
68
72
  },
69
73
  {
@@ -75,10 +79,10 @@
75
79
  "decisionCorrect": false,
76
80
  "riskScore": 0.55,
77
81
  "passed": false,
78
- "latencyMs": 0.27,
82
+ "latencyMs": 0.223,
79
83
  "evidenceCount": 1,
80
84
  "evidenceIds": [
81
- "01KRHV0XAWMDCXTZB3AAWH585M"
85
+ "01KSRXCP3QFKSFEB9TZNQV7P48"
82
86
  ],
83
87
  "recommendedActions": [
84
88
  "Check the recent failed event before repeating a similar action."
@@ -86,7 +90,9 @@
86
90
  "summary": "Recent-window baseline found a failed Bash event.",
87
91
  "recallErrors": [],
88
92
  "leakedSecrets": [],
89
- "requiredEvidenceMatched": false
93
+ "hasEvidenceForDecision": true,
94
+ "lineageTextMatched": false,
95
+ "requiredEvidenceMatched": true
90
96
  },
91
97
  {
92
98
  "system": "Vector Only",
@@ -97,10 +103,10 @@
97
103
  "decisionCorrect": false,
98
104
  "riskScore": 0.35,
99
105
  "passed": false,
100
- "latencyMs": 1.119,
106
+ "latencyMs": 0.945,
101
107
  "evidenceCount": 1,
102
108
  "evidenceIds": [
103
- "01KRHV0XBBNDQN9FZB3T6YSG9Z"
109
+ "01KSRXCP44MHYS3JJJN1C3H0SR"
104
110
  ],
105
111
  "recommendedActions": [
106
112
  "Treat retrieved memory as advisory context."
@@ -108,7 +114,9 @@
108
114
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
109
115
  "recallErrors": [],
110
116
  "leakedSecrets": [],
111
- "requiredEvidenceMatched": false
117
+ "hasEvidenceForDecision": true,
118
+ "lineageTextMatched": false,
119
+ "requiredEvidenceMatched": true
112
120
  },
113
121
  {
114
122
  "system": "FTS Only",
@@ -119,13 +127,15 @@
119
127
  "decisionCorrect": false,
120
128
  "riskScore": 0,
121
129
  "passed": false,
122
- "latencyMs": 0.573,
130
+ "latencyMs": 0.467,
123
131
  "evidenceCount": 0,
124
132
  "evidenceIds": [],
125
133
  "recommendedActions": [],
126
134
  "summary": "No memory signal found by this baseline.",
127
135
  "recallErrors": [],
128
136
  "leakedSecrets": [],
137
+ "hasEvidenceForDecision": false,
138
+ "lineageTextMatched": false,
129
139
  "requiredEvidenceMatched": false
130
140
  }
131
141
  ]
@@ -144,10 +154,10 @@
144
154
  "decisionCorrect": true,
145
155
  "riskScore": 0.85,
146
156
  "passed": true,
147
- "latencyMs": 2.566,
157
+ "latencyMs": 2.277,
148
158
  "evidenceCount": 1,
149
159
  "evidenceIds": [
150
- "01KRHV0XCAFQE8M3MM50FDRPEP"
160
+ "01KSRXCP4XYS02ZWPSKVYA7A0G"
151
161
  ],
152
162
  "recommendedActions": [
153
163
  "Do not proceed until the high-severity memory warning is addressed.",
@@ -156,6 +166,8 @@
156
166
  "summary": "Blocked: 1 memory signal, 1 high severity found before acting.",
157
167
  "recallErrors": [],
158
168
  "leakedSecrets": [],
169
+ "hasEvidenceForDecision": true,
170
+ "lineageTextMatched": true,
159
171
  "requiredEvidenceMatched": true
160
172
  },
161
173
  {
@@ -167,13 +179,15 @@
167
179
  "decisionCorrect": false,
168
180
  "riskScore": 0,
169
181
  "passed": false,
170
- "latencyMs": 0.005,
182
+ "latencyMs": 0.004,
171
183
  "evidenceCount": 0,
172
184
  "evidenceIds": [],
173
185
  "recommendedActions": [],
174
186
  "summary": "No memory baseline always allows proposed actions.",
175
187
  "recallErrors": [],
176
188
  "leakedSecrets": [],
189
+ "hasEvidenceForDecision": false,
190
+ "lineageTextMatched": false,
177
191
  "requiredEvidenceMatched": false
178
192
  },
179
193
  {
@@ -184,11 +198,11 @@
184
198
  "decision": "block",
185
199
  "decisionCorrect": true,
186
200
  "riskScore": 0.85,
187
- "passed": false,
188
- "latencyMs": 0.421,
201
+ "passed": true,
202
+ "latencyMs": 0.322,
189
203
  "evidenceCount": 1,
190
204
  "evidenceIds": [
191
- "01KRHV0XD9H0KTNY150TDNZ45F"
205
+ "01KSRXCP5QE5HDWCC6T278MZFJ"
192
206
  ],
193
207
  "recommendedActions": [
194
208
  "Review retrieved memory before acting."
@@ -196,7 +210,9 @@
196
210
  "summary": "Retrieved policy-like memory with lexical overlap, but without Audrey Guard lineage.",
197
211
  "recallErrors": [],
198
212
  "leakedSecrets": [],
199
- "requiredEvidenceMatched": false
213
+ "hasEvidenceForDecision": true,
214
+ "lineageTextMatched": false,
215
+ "requiredEvidenceMatched": true
200
216
  },
201
217
  {
202
218
  "system": "Vector Only",
@@ -206,11 +222,11 @@
206
222
  "decision": "block",
207
223
  "decisionCorrect": true,
208
224
  "riskScore": 0.85,
209
- "passed": false,
210
- "latencyMs": 0.646,
225
+ "passed": true,
226
+ "latencyMs": 0.508,
211
227
  "evidenceCount": 1,
212
228
  "evidenceIds": [
213
- "01KRHV0XDQJJ3RJ24MEREZTWBB"
229
+ "01KSRXCP63JE2K5CC3CMMWRZVM"
214
230
  ],
215
231
  "recommendedActions": [
216
232
  "Review retrieved memory before acting."
@@ -218,7 +234,9 @@
218
234
  "summary": "Retrieved policy-like memory with lexical overlap, but without Audrey Guard lineage.",
219
235
  "recallErrors": [],
220
236
  "leakedSecrets": [],
221
- "requiredEvidenceMatched": false
237
+ "hasEvidenceForDecision": true,
238
+ "lineageTextMatched": false,
239
+ "requiredEvidenceMatched": true
222
240
  },
223
241
  {
224
242
  "system": "FTS Only",
@@ -229,13 +247,15 @@
229
247
  "decisionCorrect": false,
230
248
  "riskScore": 0,
231
249
  "passed": false,
232
- "latencyMs": 0.509,
250
+ "latencyMs": 0.428,
233
251
  "evidenceCount": 0,
234
252
  "evidenceIds": [],
235
253
  "recommendedActions": [],
236
254
  "summary": "No memory signal found by this baseline.",
237
255
  "recallErrors": [],
238
256
  "leakedSecrets": [],
257
+ "hasEvidenceForDecision": false,
258
+ "lineageTextMatched": false,
239
259
  "requiredEvidenceMatched": false
240
260
  }
241
261
  ]
@@ -254,10 +274,10 @@
254
274
  "decisionCorrect": true,
255
275
  "riskScore": 0.55,
256
276
  "passed": true,
257
- "latencyMs": 3.463,
277
+ "latencyMs": 3.184,
258
278
  "evidenceCount": 1,
259
279
  "evidenceIds": [
260
- "failure:Bash:2026-05-13T23:33:47.603Z"
280
+ "failure:Bash:2026-05-29T03:45:33.404Z"
261
281
  ],
262
282
  "recommendedActions": [
263
283
  "Before re-running Bash, check what changed since the last failure."
@@ -265,6 +285,8 @@
265
285
  "summary": "Caution: 1 memory signal, 1 medium severity found before acting.",
266
286
  "recallErrors": [],
267
287
  "leakedSecrets": [],
288
+ "hasEvidenceForDecision": true,
289
+ "lineageTextMatched": true,
268
290
  "requiredEvidenceMatched": true
269
291
  },
270
292
  {
@@ -276,13 +298,15 @@
276
298
  "decisionCorrect": false,
277
299
  "riskScore": 0,
278
300
  "passed": false,
279
- "latencyMs": 0.007,
301
+ "latencyMs": 0.005,
280
302
  "evidenceCount": 0,
281
303
  "evidenceIds": [],
282
304
  "recommendedActions": [],
283
305
  "summary": "No memory baseline always allows proposed actions.",
284
306
  "recallErrors": [],
285
307
  "leakedSecrets": [],
308
+ "hasEvidenceForDecision": false,
309
+ "lineageTextMatched": false,
286
310
  "requiredEvidenceMatched": false
287
311
  },
288
312
  {
@@ -293,11 +317,11 @@
293
317
  "decision": "warn",
294
318
  "decisionCorrect": true,
295
319
  "riskScore": 0.55,
296
- "passed": false,
297
- "latencyMs": 0.082,
320
+ "passed": true,
321
+ "latencyMs": 0.071,
298
322
  "evidenceCount": 1,
299
323
  "evidenceIds": [
300
- "01KRHV0XFM7T2FZHATHJKY7D8S"
324
+ "01KSRXCP7QG82ZMEVDA0WPBDGS"
301
325
  ],
302
326
  "recommendedActions": [
303
327
  "Check the recent failed event before repeating a similar action."
@@ -305,7 +329,9 @@
305
329
  "summary": "Recent-window baseline found a failed Bash event.",
306
330
  "recallErrors": [],
307
331
  "leakedSecrets": [],
308
- "requiredEvidenceMatched": false
332
+ "hasEvidenceForDecision": true,
333
+ "lineageTextMatched": false,
334
+ "requiredEvidenceMatched": true
309
335
  },
310
336
  {
311
337
  "system": "Vector Only",
@@ -315,11 +341,11 @@
315
341
  "decision": "warn",
316
342
  "decisionCorrect": true,
317
343
  "riskScore": 0.35,
318
- "passed": false,
319
- "latencyMs": 0.533,
344
+ "passed": true,
345
+ "latencyMs": 0.523,
320
346
  "evidenceCount": 1,
321
347
  "evidenceIds": [
322
- "01KRHV0XG1FT5R9QVJPK0GWCRZ"
348
+ "01KSRXCP85A8VZCV4YFYWDBZY4"
323
349
  ],
324
350
  "recommendedActions": [
325
351
  "Treat retrieved memory as advisory context."
@@ -327,7 +353,9 @@
327
353
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
328
354
  "recallErrors": [],
329
355
  "leakedSecrets": [],
330
- "requiredEvidenceMatched": false
356
+ "hasEvidenceForDecision": true,
357
+ "lineageTextMatched": false,
358
+ "requiredEvidenceMatched": true
331
359
  },
332
360
  {
333
361
  "system": "FTS Only",
@@ -338,13 +366,15 @@
338
366
  "decisionCorrect": false,
339
367
  "riskScore": 0,
340
368
  "passed": false,
341
- "latencyMs": 0.524,
369
+ "latencyMs": 0.457,
342
370
  "evidenceCount": 0,
343
371
  "evidenceIds": [],
344
372
  "recommendedActions": [],
345
373
  "summary": "No memory signal found by this baseline.",
346
374
  "recallErrors": [],
347
375
  "leakedSecrets": [],
376
+ "hasEvidenceForDecision": false,
377
+ "lineageTextMatched": false,
348
378
  "requiredEvidenceMatched": false
349
379
  }
350
380
  ]
@@ -363,10 +393,10 @@
363
393
  "decisionCorrect": true,
364
394
  "riskScore": 0.55,
365
395
  "passed": true,
366
- "latencyMs": 3.097,
396
+ "latencyMs": 2.916,
367
397
  "evidenceCount": 1,
368
398
  "evidenceIds": [
369
- "failure:Bash:2026-05-13T23:33:47.677Z"
399
+ "failure:Bash:2026-05-29T03:45:33.469Z"
370
400
  ],
371
401
  "recommendedActions": [
372
402
  "Before re-running Bash, check what changed since the last failure."
@@ -374,6 +404,8 @@
374
404
  "summary": "Caution: 1 memory signal, 1 medium severity found before acting.",
375
405
  "recallErrors": [],
376
406
  "leakedSecrets": [],
407
+ "hasEvidenceForDecision": true,
408
+ "lineageTextMatched": true,
377
409
  "requiredEvidenceMatched": true
378
410
  },
379
411
  {
@@ -385,13 +417,15 @@
385
417
  "decisionCorrect": false,
386
418
  "riskScore": 0,
387
419
  "passed": false,
388
- "latencyMs": 0.01,
420
+ "latencyMs": 0.008,
389
421
  "evidenceCount": 0,
390
422
  "evidenceIds": [],
391
423
  "recommendedActions": [],
392
424
  "summary": "No memory baseline always allows proposed actions.",
393
425
  "recallErrors": [],
394
426
  "leakedSecrets": [],
427
+ "hasEvidenceForDecision": false,
428
+ "lineageTextMatched": false,
395
429
  "requiredEvidenceMatched": false
396
430
  },
397
431
  {
@@ -402,11 +436,11 @@
402
436
  "decision": "warn",
403
437
  "decisionCorrect": true,
404
438
  "riskScore": 0.55,
405
- "passed": false,
406
- "latencyMs": 0.069,
439
+ "passed": true,
440
+ "latencyMs": 0.079,
407
441
  "evidenceCount": 1,
408
442
  "evidenceIds": [
409
- "01KRHV0XHWDZY3FFYNYY79JHR0"
443
+ "01KSRXCP9QC1E626F1EMNFSYVM"
410
444
  ],
411
445
  "recommendedActions": [
412
446
  "Check the recent failed event before repeating a similar action."
@@ -414,7 +448,9 @@
414
448
  "summary": "Recent-window baseline found a failed Bash event.",
415
449
  "recallErrors": [],
416
450
  "leakedSecrets": [],
417
- "requiredEvidenceMatched": false
451
+ "hasEvidenceForDecision": true,
452
+ "lineageTextMatched": false,
453
+ "requiredEvidenceMatched": true
418
454
  },
419
455
  {
420
456
  "system": "Vector Only",
@@ -424,11 +460,11 @@
424
460
  "decision": "warn",
425
461
  "decisionCorrect": true,
426
462
  "riskScore": 0.35,
427
- "passed": false,
428
- "latencyMs": 0.457,
463
+ "passed": true,
464
+ "latencyMs": 0.427,
429
465
  "evidenceCount": 1,
430
466
  "evidenceIds": [
431
- "01KRHV0XJAZH9TEAX0HXHS8CYD"
467
+ "01KSRXCPA32S387Y36NHQRFNPT"
432
468
  ],
433
469
  "recommendedActions": [
434
470
  "Treat retrieved memory as advisory context."
@@ -436,7 +472,9 @@
436
472
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
437
473
  "recallErrors": [],
438
474
  "leakedSecrets": [],
439
- "requiredEvidenceMatched": false
475
+ "hasEvidenceForDecision": true,
476
+ "lineageTextMatched": false,
477
+ "requiredEvidenceMatched": true
440
478
  },
441
479
  {
442
480
  "system": "FTS Only",
@@ -447,13 +485,15 @@
447
485
  "decisionCorrect": false,
448
486
  "riskScore": 0,
449
487
  "passed": false,
450
- "latencyMs": 0.471,
488
+ "latencyMs": 0.43,
451
489
  "evidenceCount": 0,
452
490
  "evidenceIds": [],
453
491
  "recommendedActions": [],
454
492
  "summary": "No memory signal found by this baseline.",
455
493
  "recallErrors": [],
456
494
  "leakedSecrets": [],
495
+ "hasEvidenceForDecision": false,
496
+ "lineageTextMatched": false,
457
497
  "requiredEvidenceMatched": false
458
498
  }
459
499
  ]
@@ -472,11 +512,11 @@
472
512
  "decisionCorrect": true,
473
513
  "riskScore": 0.2,
474
514
  "passed": true,
475
- "latencyMs": 3.393,
515
+ "latencyMs": 3.161,
476
516
  "evidenceCount": 2,
477
517
  "evidenceIds": [
478
- "01KRHV0XKCBJJXKWKSQW5NGZGJ",
479
- "failure:Bash:2026-05-13T23:33:47.754Z"
518
+ "01KSRXCPAXZX9BGBD93N5CDDCM",
519
+ "failure:Bash:2026-05-29T03:45:33.531Z"
480
520
  ],
481
521
  "recommendedActions": [
482
522
  "This exact action has succeeded since its last failure; proceed with normal validation.",
@@ -485,6 +525,8 @@
485
525
  "summary": "Allowed: this exact Bash action has succeeded since the prior failure. Caution: 1 memory signal, 1 medium severity found before acting.",
486
526
  "recallErrors": [],
487
527
  "leakedSecrets": [],
528
+ "hasEvidenceForDecision": true,
529
+ "lineageTextMatched": true,
488
530
  "requiredEvidenceMatched": true
489
531
  },
490
532
  {
@@ -495,15 +537,17 @@
495
537
  "decision": "allow",
496
538
  "decisionCorrect": true,
497
539
  "riskScore": 0,
498
- "passed": false,
499
- "latencyMs": 0.008,
540
+ "passed": true,
541
+ "latencyMs": 0.007,
500
542
  "evidenceCount": 0,
501
543
  "evidenceIds": [],
502
544
  "recommendedActions": [],
503
545
  "summary": "No memory baseline always allows proposed actions.",
504
546
  "recallErrors": [],
505
547
  "leakedSecrets": [],
506
- "requiredEvidenceMatched": false
548
+ "hasEvidenceForDecision": true,
549
+ "lineageTextMatched": false,
550
+ "requiredEvidenceMatched": true
507
551
  },
508
552
  {
509
553
  "system": "Recent Window",
@@ -514,10 +558,10 @@
514
558
  "decisionCorrect": false,
515
559
  "riskScore": 0.55,
516
560
  "passed": false,
517
- "latencyMs": 0.098,
561
+ "latencyMs": 0.077,
518
562
  "evidenceCount": 1,
519
563
  "evidenceIds": [
520
- "01KRHV0XMBZEH7TP2QT34DTB45"
564
+ "01KSRXCPBRH43HFGR41QC4C6S1"
521
565
  ],
522
566
  "recommendedActions": [
523
567
  "Check the recent failed event before repeating a similar action."
@@ -525,7 +569,9 @@
525
569
  "summary": "Recent-window baseline found a failed Bash event.",
526
570
  "recallErrors": [],
527
571
  "leakedSecrets": [],
528
- "requiredEvidenceMatched": false
572
+ "hasEvidenceForDecision": true,
573
+ "lineageTextMatched": false,
574
+ "requiredEvidenceMatched": true
529
575
  },
530
576
  {
531
577
  "system": "Vector Only",
@@ -536,10 +582,10 @@
536
582
  "decisionCorrect": false,
537
583
  "riskScore": 0.35,
538
584
  "passed": false,
539
- "latencyMs": 0.532,
585
+ "latencyMs": 0.451,
540
586
  "evidenceCount": 1,
541
587
  "evidenceIds": [
542
- "01KRHV0XMSE6G3K0N1AD76K374"
588
+ "01KSRXCPC5FRNJEG2MV4DA0M6B"
543
589
  ],
544
590
  "recommendedActions": [
545
591
  "Treat retrieved memory as advisory context."
@@ -547,7 +593,9 @@
547
593
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
548
594
  "recallErrors": [],
549
595
  "leakedSecrets": [],
550
- "requiredEvidenceMatched": false
596
+ "hasEvidenceForDecision": true,
597
+ "lineageTextMatched": false,
598
+ "requiredEvidenceMatched": true
551
599
  },
552
600
  {
553
601
  "system": "FTS Only",
@@ -557,15 +605,17 @@
557
605
  "decision": "allow",
558
606
  "decisionCorrect": true,
559
607
  "riskScore": 0,
560
- "passed": false,
561
- "latencyMs": 0.514,
608
+ "passed": true,
609
+ "latencyMs": 0.44,
562
610
  "evidenceCount": 0,
563
611
  "evidenceIds": [],
564
612
  "recommendedActions": [],
565
613
  "summary": "No memory signal found by this baseline.",
566
614
  "recallErrors": [],
567
615
  "leakedSecrets": [],
568
- "requiredEvidenceMatched": false
616
+ "hasEvidenceForDecision": true,
617
+ "lineageTextMatched": false,
618
+ "requiredEvidenceMatched": true
569
619
  }
570
620
  ]
571
621
  },
@@ -583,7 +633,7 @@
583
633
  "decisionCorrect": true,
584
634
  "riskScore": 0.85,
585
635
  "passed": true,
586
- "latencyMs": 2.909,
636
+ "latencyMs": 2.647,
587
637
  "evidenceCount": 1,
588
638
  "evidenceIds": [
589
639
  "recall:episodic:recall.vector_counts"
@@ -596,6 +646,8 @@
596
646
  "summary": "Blocked: 2 memory signals, 2 high severity found before acting.",
597
647
  "recallErrors": [],
598
648
  "leakedSecrets": [],
649
+ "hasEvidenceForDecision": true,
650
+ "lineageTextMatched": true,
599
651
  "requiredEvidenceMatched": true
600
652
  },
601
653
  {
@@ -607,13 +659,15 @@
607
659
  "decisionCorrect": false,
608
660
  "riskScore": 0,
609
661
  "passed": false,
610
- "latencyMs": 0.008,
662
+ "latencyMs": 0.01,
611
663
  "evidenceCount": 0,
612
664
  "evidenceIds": [],
613
665
  "recommendedActions": [],
614
666
  "summary": "No memory baseline always allows proposed actions.",
615
667
  "recallErrors": [],
616
668
  "leakedSecrets": [],
669
+ "hasEvidenceForDecision": false,
670
+ "lineageTextMatched": false,
617
671
  "requiredEvidenceMatched": false
618
672
  },
619
673
  {
@@ -624,11 +678,11 @@
624
678
  "decision": "block",
625
679
  "decisionCorrect": true,
626
680
  "riskScore": 0.85,
627
- "passed": false,
628
- "latencyMs": 0.195,
681
+ "passed": true,
682
+ "latencyMs": 0.153,
629
683
  "evidenceCount": 1,
630
684
  "evidenceIds": [
631
- "01KRHV0XPQPW9GYR5M3TKX3BMS"
685
+ "01KSRXCPDRK36MH6YDNH3JKEXF"
632
686
  ],
633
687
  "recommendedActions": [
634
688
  "Review retrieved memory before acting."
@@ -636,7 +690,9 @@
636
690
  "summary": "Retrieved policy-like memory with lexical overlap, but without Audrey Guard lineage.",
637
691
  "recallErrors": [],
638
692
  "leakedSecrets": [],
639
- "requiredEvidenceMatched": false
693
+ "hasEvidenceForDecision": true,
694
+ "lineageTextMatched": false,
695
+ "requiredEvidenceMatched": true
640
696
  },
641
697
  {
642
698
  "system": "Vector Only",
@@ -647,7 +703,7 @@
647
703
  "decisionCorrect": false,
648
704
  "riskScore": 0.55,
649
705
  "passed": false,
650
- "latencyMs": 0.347,
706
+ "latencyMs": 0.304,
651
707
  "evidenceCount": 0,
652
708
  "evidenceIds": [],
653
709
  "recommendedActions": [
@@ -662,6 +718,8 @@
662
718
  }
663
719
  ],
664
720
  "leakedSecrets": [],
721
+ "hasEvidenceForDecision": false,
722
+ "lineageTextMatched": false,
665
723
  "requiredEvidenceMatched": false
666
724
  },
667
725
  {
@@ -673,13 +731,15 @@
673
731
  "decisionCorrect": false,
674
732
  "riskScore": 0,
675
733
  "passed": false,
676
- "latencyMs": 0.427,
734
+ "latencyMs": 0.376,
677
735
  "evidenceCount": 0,
678
736
  "evidenceIds": [],
679
737
  "recommendedActions": [],
680
738
  "summary": "No memory signal found by this baseline.",
681
739
  "recallErrors": [],
682
740
  "leakedSecrets": [],
741
+ "hasEvidenceForDecision": false,
742
+ "lineageTextMatched": false,
683
743
  "requiredEvidenceMatched": false
684
744
  }
685
745
  ]
@@ -698,11 +758,11 @@
698
758
  "decisionCorrect": true,
699
759
  "riskScore": 0.85,
700
760
  "passed": true,
701
- "latencyMs": 2.024,
761
+ "latencyMs": 1.934,
702
762
  "evidenceCount": 2,
703
763
  "evidenceIds": [
704
764
  "recall:fts:recall.fts_lookup",
705
- "01KRHV0XR0C1AF66E8C87BRDRK"
765
+ "01KSRXCPEXC1RDR4VFSV3ZV759"
706
766
  ],
707
767
  "recommendedActions": [
708
768
  "Do not proceed until the high-severity memory warning is addressed.",
@@ -712,6 +772,8 @@
712
772
  "summary": "Blocked: 2 memory signals, 2 high severity found before acting.",
713
773
  "recallErrors": [],
714
774
  "leakedSecrets": [],
775
+ "hasEvidenceForDecision": true,
776
+ "lineageTextMatched": true,
715
777
  "requiredEvidenceMatched": true
716
778
  },
717
779
  {
@@ -723,13 +785,15 @@
723
785
  "decisionCorrect": false,
724
786
  "riskScore": 0,
725
787
  "passed": false,
726
- "latencyMs": 0.007,
788
+ "latencyMs": 0.006,
727
789
  "evidenceCount": 0,
728
790
  "evidenceIds": [],
729
791
  "recommendedActions": [],
730
792
  "summary": "No memory baseline always allows proposed actions.",
731
793
  "recallErrors": [],
732
794
  "leakedSecrets": [],
795
+ "hasEvidenceForDecision": false,
796
+ "lineageTextMatched": false,
733
797
  "requiredEvidenceMatched": false
734
798
  },
735
799
  {
@@ -741,10 +805,10 @@
741
805
  "decisionCorrect": false,
742
806
  "riskScore": 0.35,
743
807
  "passed": false,
744
- "latencyMs": 0.126,
808
+ "latencyMs": 0.105,
745
809
  "evidenceCount": 1,
746
810
  "evidenceIds": [
747
- "01KRHV0XRX3N2Q68CQSDFY9BA7"
811
+ "01KSRXCPFQ579DG3V402TKWYPM"
748
812
  ],
749
813
  "recommendedActions": [
750
814
  "Treat retrieved memory as advisory context."
@@ -752,7 +816,9 @@
752
816
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
753
817
  "recallErrors": [],
754
818
  "leakedSecrets": [],
755
- "requiredEvidenceMatched": false
819
+ "hasEvidenceForDecision": true,
820
+ "lineageTextMatched": false,
821
+ "requiredEvidenceMatched": true
756
822
  },
757
823
  {
758
824
  "system": "Vector Only",
@@ -763,10 +829,10 @@
763
829
  "decisionCorrect": false,
764
830
  "riskScore": 0.35,
765
831
  "passed": false,
766
- "latencyMs": 0.467,
832
+ "latencyMs": 0.347,
767
833
  "evidenceCount": 1,
768
834
  "evidenceIds": [
769
- "01KRHV0XSBVXJJ3ZT6GYZQZ2BY"
835
+ "01KSRXCPG3Q8K0YSYA2SAVRPMM"
770
836
  ],
771
837
  "recommendedActions": [
772
838
  "Treat retrieved memory as advisory context."
@@ -774,7 +840,9 @@
774
840
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
775
841
  "recallErrors": [],
776
842
  "leakedSecrets": [],
777
- "requiredEvidenceMatched": false
843
+ "hasEvidenceForDecision": true,
844
+ "lineageTextMatched": false,
845
+ "requiredEvidenceMatched": true
778
846
  },
779
847
  {
780
848
  "system": "FTS Only",
@@ -785,7 +853,7 @@
785
853
  "decisionCorrect": false,
786
854
  "riskScore": 0.55,
787
855
  "passed": false,
788
- "latencyMs": 0.256,
856
+ "latencyMs": 0.13,
789
857
  "evidenceCount": 0,
790
858
  "evidenceIds": [],
791
859
  "recommendedActions": [
@@ -800,7 +868,9 @@
800
868
  }
801
869
  ],
802
870
  "leakedSecrets": [],
803
- "requiredEvidenceMatched": true
871
+ "hasEvidenceForDecision": false,
872
+ "lineageTextMatched": true,
873
+ "requiredEvidenceMatched": false
804
874
  }
805
875
  ]
806
876
  },
@@ -818,11 +888,11 @@
818
888
  "decisionCorrect": true,
819
889
  "riskScore": 0.9,
820
890
  "passed": true,
821
- "latencyMs": 2.879,
891
+ "latencyMs": 2.599,
822
892
  "evidenceCount": 2,
823
893
  "evidenceIds": [
824
- "01KRHV0XT8ZD1431EA3P176C84",
825
- "failure:Bash:2026-05-13T23:33:47.976Z"
894
+ "01KSRXCPGV1X3H49QBRCN72084",
895
+ "failure:Bash:2026-05-29T03:45:33.723Z"
826
896
  ],
827
897
  "recommendedActions": [
828
898
  "Do not repeat the exact failed action until the prior error is understood or the command is changed.",
@@ -831,6 +901,8 @@
831
901
  "summary": "Blocked: this exact Bash action failed before. Caution: 1 memory signal, 1 medium severity found before acting.",
832
902
  "recallErrors": [],
833
903
  "leakedSecrets": [],
904
+ "hasEvidenceForDecision": true,
905
+ "lineageTextMatched": true,
834
906
  "requiredEvidenceMatched": true
835
907
  },
836
908
  {
@@ -842,13 +914,15 @@
842
914
  "decisionCorrect": false,
843
915
  "riskScore": 0,
844
916
  "passed": false,
845
- "latencyMs": 0.007,
917
+ "latencyMs": 0.005,
846
918
  "evidenceCount": 0,
847
919
  "evidenceIds": [],
848
920
  "recommendedActions": [],
849
921
  "summary": "No memory baseline always allows proposed actions.",
850
922
  "recallErrors": [],
851
923
  "leakedSecrets": [],
924
+ "hasEvidenceForDecision": false,
925
+ "lineageTextMatched": false,
852
926
  "requiredEvidenceMatched": false
853
927
  },
854
928
  {
@@ -860,10 +934,10 @@
860
934
  "decisionCorrect": false,
861
935
  "riskScore": 0.55,
862
936
  "passed": false,
863
- "latencyMs": 0.072,
937
+ "latencyMs": 0.062,
864
938
  "evidenceCount": 1,
865
939
  "evidenceIds": [
866
- "01KRHV0XV6HNP678SEPD3N30BB"
940
+ "01KSRXCPHPYBHWZKFJ5XCHY1X6"
867
941
  ],
868
942
  "recommendedActions": [
869
943
  "Check the recent failed event before repeating a similar action."
@@ -871,7 +945,9 @@
871
945
  "summary": "Recent-window baseline found a failed Bash event.",
872
946
  "recallErrors": [],
873
947
  "leakedSecrets": [],
874
- "requiredEvidenceMatched": false
948
+ "hasEvidenceForDecision": true,
949
+ "lineageTextMatched": false,
950
+ "requiredEvidenceMatched": true
875
951
  },
876
952
  {
877
953
  "system": "Vector Only",
@@ -882,10 +958,10 @@
882
958
  "decisionCorrect": false,
883
959
  "riskScore": 0.35,
884
960
  "passed": false,
885
- "latencyMs": 0.451,
961
+ "latencyMs": 0.396,
886
962
  "evidenceCount": 1,
887
963
  "evidenceIds": [
888
- "01KRHV0XVM0E0SG23G9MZPGSED"
964
+ "01KSRXCPJ2NXZ1VNNKPQ5RH818"
889
965
  ],
890
966
  "recommendedActions": [
891
967
  "Treat retrieved memory as advisory context."
@@ -893,7 +969,9 @@
893
969
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
894
970
  "recallErrors": [],
895
971
  "leakedSecrets": [],
896
- "requiredEvidenceMatched": false
972
+ "hasEvidenceForDecision": true,
973
+ "lineageTextMatched": false,
974
+ "requiredEvidenceMatched": true
897
975
  },
898
976
  {
899
977
  "system": "FTS Only",
@@ -904,13 +982,15 @@
904
982
  "decisionCorrect": false,
905
983
  "riskScore": 0,
906
984
  "passed": false,
907
- "latencyMs": 0.431,
985
+ "latencyMs": 0.35,
908
986
  "evidenceCount": 0,
909
987
  "evidenceIds": [],
910
988
  "recommendedActions": [],
911
989
  "summary": "No memory signal found by this baseline.",
912
990
  "recallErrors": [],
913
991
  "leakedSecrets": [],
992
+ "hasEvidenceForDecision": false,
993
+ "lineageTextMatched": false,
914
994
  "requiredEvidenceMatched": false
915
995
  }
916
996
  ]
@@ -929,11 +1009,11 @@
929
1009
  "decisionCorrect": true,
930
1010
  "riskScore": 0.85,
931
1011
  "passed": true,
932
- "latencyMs": 2.629,
1012
+ "latencyMs": 2.391,
933
1013
  "evidenceCount": 2,
934
1014
  "evidenceIds": [
935
- "01KRHV0XWHVTFB5Q7NVEJ6PYSA",
936
- "01KRHV0XWFX8H82KAABRSMBEZY"
1015
+ "01KSRXCPJTXVN9X36WASHM2QY6",
1016
+ "01KSRXCPJV1JQBFZ19K6H796AG"
937
1017
  ],
938
1018
  "recommendedActions": [
939
1019
  "Do not proceed until the high-severity memory warning is addressed.",
@@ -942,6 +1022,8 @@
942
1022
  "summary": "Blocked: 2 memory signals, 2 high severity found before acting.",
943
1023
  "recallErrors": [],
944
1024
  "leakedSecrets": [],
1025
+ "hasEvidenceForDecision": true,
1026
+ "lineageTextMatched": true,
945
1027
  "requiredEvidenceMatched": true
946
1028
  },
947
1029
  {
@@ -953,13 +1035,15 @@
953
1035
  "decisionCorrect": false,
954
1036
  "riskScore": 0,
955
1037
  "passed": false,
956
- "latencyMs": 0.007,
1038
+ "latencyMs": 0.004,
957
1039
  "evidenceCount": 0,
958
1040
  "evidenceIds": [],
959
1041
  "recommendedActions": [],
960
1042
  "summary": "No memory baseline always allows proposed actions.",
961
1043
  "recallErrors": [],
962
1044
  "leakedSecrets": [],
1045
+ "hasEvidenceForDecision": false,
1046
+ "lineageTextMatched": false,
963
1047
  "requiredEvidenceMatched": false
964
1048
  },
965
1049
  {
@@ -970,12 +1054,12 @@
970
1054
  "decision": "block",
971
1055
  "decisionCorrect": true,
972
1056
  "riskScore": 0.85,
973
- "passed": false,
974
- "latencyMs": 0.125,
1057
+ "passed": true,
1058
+ "latencyMs": 0.106,
975
1059
  "evidenceCount": 2,
976
1060
  "evidenceIds": [
977
- "01KRHV0XXJ3Z1K7DMJEWP3HWY7",
978
- "01KRHV0XXGRTMH80WYV6D42VHX"
1061
+ "01KSRXCPKNY5BNX2TH3M407J48",
1062
+ "01KSRXCPKMTBHPCWYJWJ3REV9J"
979
1063
  ],
980
1064
  "recommendedActions": [
981
1065
  "Review retrieved memory before acting."
@@ -983,7 +1067,9 @@
983
1067
  "summary": "Retrieved policy-like memory with lexical overlap, but without Audrey Guard lineage.",
984
1068
  "recallErrors": [],
985
1069
  "leakedSecrets": [],
986
- "requiredEvidenceMatched": false
1070
+ "hasEvidenceForDecision": true,
1071
+ "lineageTextMatched": false,
1072
+ "requiredEvidenceMatched": true
987
1073
  },
988
1074
  {
989
1075
  "system": "Vector Only",
@@ -993,12 +1079,12 @@
993
1079
  "decision": "block",
994
1080
  "decisionCorrect": true,
995
1081
  "riskScore": 0.85,
996
- "passed": false,
997
- "latencyMs": 0.442,
1082
+ "passed": true,
1083
+ "latencyMs": 0.4,
998
1084
  "evidenceCount": 2,
999
1085
  "evidenceIds": [
1000
- "01KRHV0XXXCP5GB55SPAMC2B09",
1001
- "01KRHV0XXZSQCH0W7ZSFY54BDA"
1086
+ "01KSRXCPM08WEJAJ579D9KS053",
1087
+ "01KSRXCPM1V6CVS8380AN3F39Y"
1002
1088
  ],
1003
1089
  "recommendedActions": [
1004
1090
  "Review retrieved memory before acting."
@@ -1006,7 +1092,9 @@
1006
1092
  "summary": "Retrieved policy-like memory with lexical overlap, but without Audrey Guard lineage.",
1007
1093
  "recallErrors": [],
1008
1094
  "leakedSecrets": [],
1009
- "requiredEvidenceMatched": false
1095
+ "hasEvidenceForDecision": true,
1096
+ "lineageTextMatched": false,
1097
+ "requiredEvidenceMatched": true
1010
1098
  },
1011
1099
  {
1012
1100
  "system": "FTS Only",
@@ -1017,13 +1105,15 @@
1017
1105
  "decisionCorrect": false,
1018
1106
  "riskScore": 0,
1019
1107
  "passed": false,
1020
- "latencyMs": 0.458,
1108
+ "latencyMs": 0.378,
1021
1109
  "evidenceCount": 0,
1022
1110
  "evidenceIds": [],
1023
1111
  "recommendedActions": [],
1024
1112
  "summary": "No memory signal found by this baseline.",
1025
1113
  "recallErrors": [],
1026
1114
  "leakedSecrets": [],
1115
+ "hasEvidenceForDecision": false,
1116
+ "lineageTextMatched": false,
1027
1117
  "requiredEvidenceMatched": false
1028
1118
  }
1029
1119
  ]
@@ -1042,31 +1132,32 @@
1042
1132
  "decisionCorrect": true,
1043
1133
  "riskScore": 0.85,
1044
1134
  "passed": true,
1045
- "latencyMs": 29.711,
1046
- "evidenceCount": 13,
1135
+ "latencyMs": 21.17,
1136
+ "evidenceCount": 12,
1047
1137
  "evidenceIds": [
1048
- "01KRHV0YFDERDNPYS8JG019DXV",
1049
- "01KRHV0YF5AACS4RJJAPW2YNPZ",
1050
- "01KRHV0YDFFQ5SVS6GSH4PKNJ6",
1051
- "01KRHV0YAKHEN7XS8TJZQJG3JW",
1052
- "01KRHV0Y8PGE2S0B37B3ECNPES",
1053
- "01KRHV0Y8D6C8CHE2MQ6C0RB2D",
1054
- "01KRHV0Y7EN8M2KZYSNV2S659G",
1055
- "01KRHV0Y6ADQ4VY5MKWHMTBE2V",
1056
- "01KRHV0Y61MS7FKZHH2H0R5CS3",
1057
- "01KRHV0Y3E8DKZNPNHFBKNEQXQ",
1058
- "01KRHV0Y2QSJ9BMQGST1D2CBG2",
1059
- "01KRHV0Y1A0S18SHKGCN00K1J6",
1060
- "01KRHV0Y0MWQGN3QAWME8F5554"
1138
+ "01KSRXCQ4DK284E35ZKNYDXWBQ",
1139
+ "01KSRXCQ3H1TVR4E552DQVV9MG",
1140
+ "01KSRXCQ39QKSSNZWEFZBHMNT9",
1141
+ "01KSRXCPYP6VKM8AZC7KZ4SN6W",
1142
+ "01KSRXCPVWWCPWE3M38G6VM1BG",
1143
+ "01KSRXCPV7YMCBAT0602VZ3DQG",
1144
+ "01KSRXCPTM8GHZXKXNKH5FMRG6",
1145
+ "01KSRXCPSNJTZHJK1MWE6WNNYW",
1146
+ "01KSRXCPS3K2GR6MFXTMTDEKD3",
1147
+ "01KSRXCPS3K2GR6MFXTMTDEKD2",
1148
+ "01KSRXCPRGC2EN41NQD4MYJ1Q1",
1149
+ "01KSRXCPNG135506TFPF1WMAVB"
1061
1150
  ],
1062
1151
  "recommendedActions": [
1063
1152
  "Do not proceed until the high-severity memory warning is addressed.",
1064
1153
  "Apply this must-follow rule before acting.",
1065
1154
  "Treat this as uncertain context and verify before relying on it."
1066
1155
  ],
1067
- "summary": "Blocked: 13 memory signals, 1 high severity, 12 medium severity found before acting.",
1156
+ "summary": "Blocked: 12 memory signals, 1 high severity, 11 medium severity found before acting.",
1068
1157
  "recallErrors": [],
1069
1158
  "leakedSecrets": [],
1159
+ "hasEvidenceForDecision": true,
1160
+ "lineageTextMatched": true,
1070
1161
  "requiredEvidenceMatched": true
1071
1162
  },
1072
1163
  {
@@ -1078,13 +1169,15 @@
1078
1169
  "decisionCorrect": false,
1079
1170
  "riskScore": 0,
1080
1171
  "passed": false,
1081
- "latencyMs": 0.014,
1172
+ "latencyMs": 0.011,
1082
1173
  "evidenceCount": 0,
1083
1174
  "evidenceIds": [],
1084
1175
  "recommendedActions": [],
1085
1176
  "summary": "No memory baseline always allows proposed actions.",
1086
1177
  "recallErrors": [],
1087
1178
  "leakedSecrets": [],
1179
+ "hasEvidenceForDecision": false,
1180
+ "lineageTextMatched": false,
1088
1181
  "requiredEvidenceMatched": false
1089
1182
  },
1090
1183
  {
@@ -1095,11 +1188,11 @@
1095
1188
  "decision": "block",
1096
1189
  "decisionCorrect": true,
1097
1190
  "riskScore": 0.85,
1098
- "passed": false,
1099
- "latencyMs": 0.475,
1191
+ "passed": true,
1192
+ "latencyMs": 0.421,
1100
1193
  "evidenceCount": 1,
1101
1194
  "evidenceIds": [
1102
- "01KRHV0ZNZBPXBC3HBT7FDYKQN"
1195
+ "01KSRXCR6FARVQ7ATWYWC5QAF9"
1103
1196
  ],
1104
1197
  "recommendedActions": [
1105
1198
  "Review retrieved memory before acting."
@@ -1107,7 +1200,9 @@
1107
1200
  "summary": "Retrieved policy-like memory with lexical overlap, but without Audrey Guard lineage.",
1108
1201
  "recallErrors": [],
1109
1202
  "leakedSecrets": [],
1110
- "requiredEvidenceMatched": false
1203
+ "hasEvidenceForDecision": true,
1204
+ "lineageTextMatched": false,
1205
+ "requiredEvidenceMatched": true
1111
1206
  },
1112
1207
  {
1113
1208
  "system": "Vector Only",
@@ -1118,14 +1213,14 @@
1118
1213
  "decisionCorrect": false,
1119
1214
  "riskScore": 0.35,
1120
1215
  "passed": false,
1121
- "latencyMs": 1.362,
1216
+ "latencyMs": 1.551,
1122
1217
  "evidenceCount": 5,
1123
1218
  "evidenceIds": [
1124
- "01KRHV0ZXZBPYCREN1DV87M33S",
1125
- "01KRHV100XKC09N7VQRRX2WK2A",
1126
- "01KRHV103RQB958BA9WSHGJNJF",
1127
- "01KRHV0ZVSQKJVY4TJ1RP15CJX",
1128
- "01KRHV1015PBEKW0RNV9CY3AHJ"
1219
+ "01KSRXCRC5YBFBKT1RM4SPXRZZ",
1220
+ "01KSRXCR9R09K2J5HM1BGN1PSW",
1221
+ "01KSRXCRJKF9PWQG7YRGGK1TP6",
1222
+ "01KSRXCRGTW1V1VGWWT869D36Q",
1223
+ "01KSRXCRP3KVXPGD7WMNS3KWKF"
1129
1224
  ],
1130
1225
  "recommendedActions": [
1131
1226
  "Treat retrieved memory as advisory context."
@@ -1133,7 +1228,9 @@
1133
1228
  "summary": "Retrieved related memory, but no controller converted it into a strict guard decision.",
1134
1229
  "recallErrors": [],
1135
1230
  "leakedSecrets": [],
1136
- "requiredEvidenceMatched": false
1231
+ "hasEvidenceForDecision": true,
1232
+ "lineageTextMatched": false,
1233
+ "requiredEvidenceMatched": true
1137
1234
  },
1138
1235
  {
1139
1236
  "system": "FTS Only",
@@ -1144,20 +1241,22 @@
1144
1241
  "decisionCorrect": false,
1145
1242
  "riskScore": 0,
1146
1243
  "passed": false,
1147
- "latencyMs": 0.778,
1244
+ "latencyMs": 0.717,
1148
1245
  "evidenceCount": 0,
1149
1246
  "evidenceIds": [],
1150
1247
  "recommendedActions": [],
1151
1248
  "summary": "No memory signal found by this baseline.",
1152
1249
  "recallErrors": [],
1153
1250
  "leakedSecrets": [],
1251
+ "hasEvidenceForDecision": false,
1252
+ "lineageTextMatched": false,
1154
1253
  "requiredEvidenceMatched": false
1155
1254
  }
1156
1255
  ]
1157
1256
  }
1158
1257
  ],
1159
1258
  "artifactRedactionSweep": {
1160
- "checkedAt": "2026-05-13T23:33:51.244Z",
1259
+ "checkedAt": "2026-05-29T03:45:36.646Z",
1161
1260
  "filesChecked": [
1162
1261
  "benchmarks/output/guardbench-manifest.json",
1163
1262
  "benchmarks/output/guardbench-raw.json",