audrey 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +39 -12
  3. package/dist/mcp-server/codex-hooks-probe.d.ts +22 -0
  4. package/dist/mcp-server/codex-hooks-probe.d.ts.map +1 -0
  5. package/dist/mcp-server/codex-hooks-probe.js +160 -0
  6. package/dist/mcp-server/codex-hooks-probe.js.map +1 -0
  7. package/dist/mcp-server/config.d.ts +26 -2
  8. package/dist/mcp-server/config.d.ts.map +1 -1
  9. package/dist/mcp-server/config.js +52 -20
  10. package/dist/mcp-server/config.js.map +1 -1
  11. package/dist/mcp-server/hooks.d.ts +28 -0
  12. package/dist/mcp-server/hooks.d.ts.map +1 -1
  13. package/dist/mcp-server/hooks.js +91 -2
  14. package/dist/mcp-server/hooks.js.map +1 -1
  15. package/dist/mcp-server/index.d.ts +242 -2
  16. package/dist/mcp-server/index.d.ts.map +1 -1
  17. package/dist/mcp-server/index.js +806 -240
  18. package/dist/mcp-server/index.js.map +1 -1
  19. package/dist/mcp-server/tool-schemas.d.ts +32 -2
  20. package/dist/mcp-server/tool-schemas.d.ts.map +1 -1
  21. package/dist/mcp-server/tool-schemas.js +55 -0
  22. package/dist/mcp-server/tool-schemas.js.map +1 -1
  23. package/dist/src/audrey.d.ts +14 -2
  24. package/dist/src/audrey.d.ts.map +1 -1
  25. package/dist/src/audrey.js +152 -28
  26. package/dist/src/audrey.js.map +1 -1
  27. package/dist/src/autopilot.d.ts +22 -0
  28. package/dist/src/autopilot.d.ts.map +1 -1
  29. package/dist/src/autopilot.js +271 -50
  30. package/dist/src/autopilot.js.map +1 -1
  31. package/dist/src/capsule.d.ts +23 -0
  32. package/dist/src/capsule.d.ts.map +1 -1
  33. package/dist/src/capsule.js +56 -11
  34. package/dist/src/capsule.js.map +1 -1
  35. package/dist/src/confidence.d.ts +9 -1
  36. package/dist/src/confidence.d.ts.map +1 -1
  37. package/dist/src/confidence.js +16 -2
  38. package/dist/src/confidence.js.map +1 -1
  39. package/dist/src/consolidate.d.ts +4 -0
  40. package/dist/src/consolidate.d.ts.map +1 -1
  41. package/dist/src/consolidate.js +206 -34
  42. package/dist/src/consolidate.js.map +1 -1
  43. package/dist/src/controller.d.ts +17 -1
  44. package/dist/src/controller.d.ts.map +1 -1
  45. package/dist/src/controller.js +244 -128
  46. package/dist/src/controller.js.map +1 -1
  47. package/dist/src/db.d.ts.map +1 -1
  48. package/dist/src/db.js +233 -56
  49. package/dist/src/db.js.map +1 -1
  50. package/dist/src/encode.d.ts +2 -1
  51. package/dist/src/encode.d.ts.map +1 -1
  52. package/dist/src/encode.js +41 -4
  53. package/dist/src/encode.js.map +1 -1
  54. package/dist/src/events.d.ts +48 -1
  55. package/dist/src/events.d.ts.map +1 -1
  56. package/dist/src/events.js +160 -62
  57. package/dist/src/events.js.map +1 -1
  58. package/dist/src/export.d.ts.map +1 -1
  59. package/dist/src/export.js +4 -4
  60. package/dist/src/export.js.map +1 -1
  61. package/dist/src/grounding.d.ts +111 -0
  62. package/dist/src/grounding.d.ts.map +1 -0
  63. package/dist/src/grounding.js +259 -0
  64. package/dist/src/grounding.js.map +1 -0
  65. package/dist/src/hybrid-recall.d.ts +16 -7
  66. package/dist/src/hybrid-recall.d.ts.map +1 -1
  67. package/dist/src/hybrid-recall.js +22 -11
  68. package/dist/src/hybrid-recall.js.map +1 -1
  69. package/dist/src/import.d.ts +10 -0
  70. package/dist/src/import.d.ts.map +1 -1
  71. package/dist/src/import.js +122 -22
  72. package/dist/src/import.js.map +1 -1
  73. package/dist/src/llm.d.ts.map +1 -1
  74. package/dist/src/llm.js +16 -0
  75. package/dist/src/llm.js.map +1 -1
  76. package/dist/src/preflight.d.ts.map +1 -1
  77. package/dist/src/preflight.js +89 -47
  78. package/dist/src/preflight.js.map +1 -1
  79. package/dist/src/project.d.ts +4 -1
  80. package/dist/src/project.d.ts.map +1 -1
  81. package/dist/src/project.js +65 -5
  82. package/dist/src/project.js.map +1 -1
  83. package/dist/src/recall.d.ts.map +1 -1
  84. package/dist/src/recall.js +138 -13
  85. package/dist/src/recall.js.map +1 -1
  86. package/dist/src/redact.d.ts +1 -1
  87. package/dist/src/redact.d.ts.map +1 -1
  88. package/dist/src/redact.js +185 -5
  89. package/dist/src/redact.js.map +1 -1
  90. package/dist/src/routes.d.ts.map +1 -1
  91. package/dist/src/routes.js +91 -18
  92. package/dist/src/routes.js.map +1 -1
  93. package/dist/src/trust.d.ts +35 -0
  94. package/dist/src/trust.d.ts.map +1 -0
  95. package/dist/src/trust.js +77 -0
  96. package/dist/src/trust.js.map +1 -0
  97. package/dist/src/types.d.ts +24 -0
  98. package/dist/src/types.d.ts.map +1 -1
  99. package/package.json +3 -37
  100. package/benchmarks/adapter-kit.mjs +0 -20
  101. package/benchmarks/adapter-self-test.mjs +0 -170
  102. package/benchmarks/adapters/example-allow.mjs +0 -31
  103. package/benchmarks/adapters/mem0-platform.mjs +0 -274
  104. package/benchmarks/adapters/registry.json +0 -51
  105. package/benchmarks/adapters/zep-cloud.mjs +0 -304
  106. package/benchmarks/baselines.js +0 -174
  107. package/benchmarks/build-leaderboard.mjs +0 -183
  108. package/benchmarks/cases.js +0 -549
  109. package/benchmarks/create-conformance-card.mjs +0 -148
  110. package/benchmarks/create-submission-bundle.mjs +0 -190
  111. package/benchmarks/dry-run-external-adapters.mjs +0 -177
  112. package/benchmarks/guardbench.js +0 -1265
  113. package/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +0 -50
  114. package/benchmarks/output/external/guardbench-external-dry-run.json +0 -69
  115. package/benchmarks/output/external/guardbench-external-evidence.json +0 -56
  116. package/benchmarks/output/guardbench-conformance-card.json +0 -63
  117. package/benchmarks/output/guardbench-manifest.json +0 -414
  118. package/benchmarks/output/guardbench-raw.json +0 -1279
  119. package/benchmarks/output/guardbench-summary.json +0 -2123
  120. package/benchmarks/output/leaderboard/guardbench-leaderboard.json +0 -93
  121. package/benchmarks/output/leaderboard/guardbench-leaderboard.md +0 -7
  122. package/benchmarks/output/submission-bundle/guardbench-conformance-card.json +0 -63
  123. package/benchmarks/output/submission-bundle/guardbench-manifest.json +0 -414
  124. package/benchmarks/output/submission-bundle/guardbench-raw.json +0 -1279
  125. package/benchmarks/output/submission-bundle/guardbench-summary.json +0 -2123
  126. package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-registry.schema.json +0 -69
  127. package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-self-test.schema.json +0 -156
  128. package/benchmarks/output/submission-bundle/schemas/guardbench-conformance-card.schema.json +0 -184
  129. package/benchmarks/output/submission-bundle/schemas/guardbench-external-dry-run.schema.json +0 -74
  130. package/benchmarks/output/submission-bundle/schemas/guardbench-external-evidence.schema.json +0 -108
  131. package/benchmarks/output/submission-bundle/schemas/guardbench-external-run.schema.json +0 -160
  132. package/benchmarks/output/submission-bundle/schemas/guardbench-leaderboard.schema.json +0 -179
  133. package/benchmarks/output/submission-bundle/schemas/guardbench-manifest.schema.json +0 -213
  134. package/benchmarks/output/submission-bundle/schemas/guardbench-publication-verification.schema.json +0 -47
  135. package/benchmarks/output/submission-bundle/schemas/guardbench-raw.schema.json +0 -184
  136. package/benchmarks/output/submission-bundle/schemas/guardbench-submission-manifest.schema.json +0 -151
  137. package/benchmarks/output/submission-bundle/schemas/guardbench-summary.schema.json +0 -249
  138. package/benchmarks/output/submission-bundle/submission-manifest.json +0 -131
  139. package/benchmarks/output/submission-bundle/validation-report.json +0 -31
  140. package/benchmarks/output/summary.json +0 -2354
  141. package/benchmarks/perf-snapshot.js +0 -307
  142. package/benchmarks/perf.bench.js +0 -169
  143. package/benchmarks/public-paths.mjs +0 -97
  144. package/benchmarks/reference-results.js +0 -75
  145. package/benchmarks/report.js +0 -280
  146. package/benchmarks/run-external-guardbench.mjs +0 -303
  147. package/benchmarks/run.js +0 -735
  148. package/benchmarks/schemas/guardbench-adapter-registry.schema.json +0 -69
  149. package/benchmarks/schemas/guardbench-adapter-self-test.schema.json +0 -156
  150. package/benchmarks/schemas/guardbench-conformance-card.schema.json +0 -184
  151. package/benchmarks/schemas/guardbench-external-dry-run.schema.json +0 -74
  152. package/benchmarks/schemas/guardbench-external-evidence.schema.json +0 -108
  153. package/benchmarks/schemas/guardbench-external-run.schema.json +0 -160
  154. package/benchmarks/schemas/guardbench-leaderboard.schema.json +0 -179
  155. package/benchmarks/schemas/guardbench-manifest.schema.json +0 -213
  156. package/benchmarks/schemas/guardbench-publication-verification.schema.json +0 -47
  157. package/benchmarks/schemas/guardbench-raw.schema.json +0 -184
  158. package/benchmarks/schemas/guardbench-submission-manifest.schema.json +0 -151
  159. package/benchmarks/schemas/guardbench-summary.schema.json +0 -249
  160. package/benchmarks/snapshots/perf-0.22.2.json +0 -123
  161. package/benchmarks/snapshots/perf-0.23.0.json +0 -123
  162. package/benchmarks/validate-adapter-module.mjs +0 -107
  163. package/benchmarks/validate-adapter-registry.mjs +0 -145
  164. package/benchmarks/validate-adapter-self-test.mjs +0 -96
  165. package/benchmarks/validate-guardbench-artifacts.mjs +0 -400
  166. package/benchmarks/verify-external-evidence.mjs +0 -351
  167. package/benchmarks/verify-publication-artifacts.mjs +0 -309
  168. package/benchmarks/verify-submission-bundle.mjs +0 -172
  169. package/docs/AUDREY_PAPER_OUTLINE.md +0 -178
  170. package/docs/MEMORY_BENCHMARKING.md +0 -59
  171. package/docs/PRODUCTION_BACKLOG.md +0 -321
  172. package/docs/assets/audrey-feature-grid.jpg +0 -0
  173. package/docs/assets/audrey-logo.svg +0 -45
  174. package/docs/assets/audrey-wordmark.png +0 -0
  175. package/docs/paper/00-master.md +0 -48
  176. package/docs/paper/01-introduction.md +0 -27
  177. package/docs/paper/02-related-work.md +0 -47
  178. package/docs/paper/03-problem-definition.md +0 -108
  179. package/docs/paper/04-design.md +0 -164
  180. package/docs/paper/05-guardbench-spec.md +0 -412
  181. package/docs/paper/06-implementation.md +0 -115
  182. package/docs/paper/07-evaluation.md +0 -168
  183. package/docs/paper/08-discussion-limitations.md +0 -61
  184. package/docs/paper/09-conclusion.md +0 -11
  185. package/docs/paper/SUBMISSION_README.md +0 -162
  186. package/docs/paper/appendix-a-demo-transcript.md +0 -114
  187. package/docs/paper/arxiv-compile-report.schema.json +0 -116
  188. package/docs/paper/arxiv-source.schema.json +0 -61
  189. package/docs/paper/audrey-paper-v1.md +0 -1108
  190. package/docs/paper/browser-launch-plan.json +0 -209
  191. package/docs/paper/browser-launch-plan.schema.json +0 -100
  192. package/docs/paper/browser-launch-results.json +0 -86
  193. package/docs/paper/browser-launch-results.schema.json +0 -66
  194. package/docs/paper/claim-register.json +0 -138
  195. package/docs/paper/claim-register.schema.json +0 -81
  196. package/docs/paper/evidence-ledger.md +0 -103
  197. package/docs/paper/output/arxiv/README-arxiv.txt +0 -8
  198. package/docs/paper/output/arxiv/arxiv-manifest.json +0 -41
  199. package/docs/paper/output/arxiv/main.tex +0 -951
  200. package/docs/paper/output/arxiv/references.bib +0 -222
  201. package/docs/paper/output/arxiv-compile-report.json +0 -24
  202. package/docs/paper/output/submission-bundle/LICENSE +0 -21
  203. package/docs/paper/output/submission-bundle/README.md +0 -440
  204. package/docs/paper/output/submission-bundle/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +0 -50
  205. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-dry-run.json +0 -69
  206. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-evidence.json +0 -56
  207. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-conformance-card.json +0 -63
  208. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-manifest.json +0 -414
  209. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-raw.json +0 -1279
  210. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-summary.json +0 -2123
  211. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.json +0 -93
  212. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.md +0 -7
  213. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/submission-manifest.json +0 -131
  214. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/validation-report.json +0 -31
  215. package/docs/paper/output/submission-bundle/benchmarks/output/summary.json +0 -2354
  216. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-registry.schema.json +0 -69
  217. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-self-test.schema.json +0 -156
  218. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-conformance-card.schema.json +0 -184
  219. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-dry-run.schema.json +0 -74
  220. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-evidence.schema.json +0 -108
  221. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-run.schema.json +0 -160
  222. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-leaderboard.schema.json +0 -179
  223. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-manifest.schema.json +0 -213
  224. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-publication-verification.schema.json +0 -47
  225. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-raw.schema.json +0 -184
  226. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-submission-manifest.schema.json +0 -151
  227. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-summary.schema.json +0 -249
  228. package/docs/paper/output/submission-bundle/docs/AUDREY_PAPER_OUTLINE.md +0 -178
  229. package/docs/paper/output/submission-bundle/docs/paper/00-master.md +0 -48
  230. package/docs/paper/output/submission-bundle/docs/paper/01-introduction.md +0 -27
  231. package/docs/paper/output/submission-bundle/docs/paper/02-related-work.md +0 -47
  232. package/docs/paper/output/submission-bundle/docs/paper/03-problem-definition.md +0 -108
  233. package/docs/paper/output/submission-bundle/docs/paper/04-design.md +0 -164
  234. package/docs/paper/output/submission-bundle/docs/paper/05-guardbench-spec.md +0 -412
  235. package/docs/paper/output/submission-bundle/docs/paper/06-implementation.md +0 -115
  236. package/docs/paper/output/submission-bundle/docs/paper/07-evaluation.md +0 -168
  237. package/docs/paper/output/submission-bundle/docs/paper/08-discussion-limitations.md +0 -61
  238. package/docs/paper/output/submission-bundle/docs/paper/09-conclusion.md +0 -11
  239. package/docs/paper/output/submission-bundle/docs/paper/SUBMISSION_README.md +0 -162
  240. package/docs/paper/output/submission-bundle/docs/paper/appendix-a-demo-transcript.md +0 -114
  241. package/docs/paper/output/submission-bundle/docs/paper/arxiv-compile-report.schema.json +0 -116
  242. package/docs/paper/output/submission-bundle/docs/paper/arxiv-source.schema.json +0 -61
  243. package/docs/paper/output/submission-bundle/docs/paper/audrey-paper-v1.md +0 -1108
  244. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.json +0 -209
  245. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.schema.json +0 -100
  246. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.json +0 -86
  247. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.schema.json +0 -66
  248. package/docs/paper/output/submission-bundle/docs/paper/claim-register.json +0 -138
  249. package/docs/paper/output/submission-bundle/docs/paper/claim-register.schema.json +0 -81
  250. package/docs/paper/output/submission-bundle/docs/paper/evidence-ledger.md +0 -103
  251. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/README-arxiv.txt +0 -8
  252. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/arxiv-manifest.json +0 -41
  253. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/main.tex +0 -951
  254. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/references.bib +0 -222
  255. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv-compile-report.json +0 -24
  256. package/docs/paper/output/submission-bundle/docs/paper/paper-submission-bundle.schema.json +0 -70
  257. package/docs/paper/output/submission-bundle/docs/paper/publication-pack.json +0 -81
  258. package/docs/paper/output/submission-bundle/docs/paper/publication-pack.schema.json +0 -60
  259. package/docs/paper/output/submission-bundle/docs/paper/references.bib +0 -222
  260. package/docs/paper/output/submission-bundle/package.json +0 -235
  261. package/docs/paper/output/submission-bundle/paper-submission-manifest.json +0 -379
  262. package/docs/paper/paper-submission-bundle.schema.json +0 -70
  263. package/docs/paper/publication-pack.json +0 -81
  264. package/docs/paper/publication-pack.schema.json +0 -60
  265. package/docs/paper/references.bib +0 -222
  266. package/scripts/audit-release-completion.mjs +0 -440
  267. package/scripts/create-arxiv-source.mjs +0 -368
  268. package/scripts/create-paper-submission-bundle.mjs +0 -214
  269. package/scripts/finalize-release.mjs +0 -601
  270. package/scripts/prepare-release-cut.mjs +0 -277
  271. package/scripts/publish-release-bundle.mjs +0 -252
  272. package/scripts/publish-release-github-api.mjs +0 -494
  273. package/scripts/run-vitest.mjs +0 -34
  274. package/scripts/smoke-cli.js +0 -92
  275. package/scripts/sync-paper-artifacts.mjs +0 -112
  276. package/scripts/verify-arxiv-compile.mjs +0 -476
  277. package/scripts/verify-arxiv-source.mjs +0 -224
  278. package/scripts/verify-browser-launch-plan.mjs +0 -254
  279. package/scripts/verify-browser-launch-results.mjs +0 -303
  280. package/scripts/verify-paper-artifacts.mjs +0 -798
  281. package/scripts/verify-paper-claims.mjs +0 -254
  282. package/scripts/verify-paper-submission-bundle.mjs +0 -218
  283. package/scripts/verify-publication-pack.mjs +0 -210
  284. package/scripts/verify-python-package.py +0 -201
  285. package/scripts/verify-release-readiness.mjs +0 -920
@@ -1,5 +1,6 @@
1
1
  import { guardActionKey } from './action-key.js';
2
2
  import { redact } from './redact.js';
3
+ import { controlTrustFor } from './trust.js';
3
4
  import { requireAgent, resolveMemoryScope } from './utils.js';
4
5
  const SEVERITY_SCORE = {
5
6
  info: 0.1,
@@ -7,7 +8,6 @@ const SEVERITY_SCORE = {
7
8
  medium: 0.55,
8
9
  high: 0.85,
9
10
  };
10
- const TRUSTED_CONTROL_SOURCES = new Set(['direct-observation', 'told-by-user']);
11
11
  function isNonEmptyText(value) {
12
12
  return value.trim().length > 0;
13
13
  }
@@ -26,12 +26,17 @@ function matchesToolOrAction(action, requestedTool, failedTool) {
26
26
  return Boolean((tool && (failed === tool || failed.includes(tool) || tool.includes(failed))) ||
27
27
  actionText.includes(failed));
28
28
  }
29
- function warningFromEntry(type, severity, entry, fallbackAction) {
29
+ function trustNote(trust) {
30
+ return trust === 'verified'
31
+ ? 'Trust level: verified control memory.'
32
+ : 'Trust level: legacy control memory (recorded before trust tracking existed) — severity capped, cannot force a block on its own.';
33
+ }
34
+ function warningFromEntry(type, severity, entry, fallbackAction, trust) {
30
35
  return {
31
36
  type,
32
37
  severity,
33
38
  message: shorten(entry.content),
34
- reason: entry.reason,
39
+ reason: trust ? `${entry.reason} ${trustNote(trust)}` : entry.reason,
35
40
  evidence_id: entry.memory_id,
36
41
  recommended_action: entry.recommended_action ?? fallbackAction,
37
42
  };
@@ -59,18 +64,39 @@ function addWarning(warnings, seen, warning) {
59
64
  seen.add(key);
60
65
  warnings.push(warning);
61
66
  }
62
- function warningFromTaggedRecall(result, fallbackAction) {
67
+ function warningFromTaggedRecall(result, trust, fallbackAction) {
63
68
  return {
64
69
  type: 'must_follow',
65
- severity: 'high',
70
+ severity: trust === 'verified' ? 'high' : 'medium',
66
71
  message: shorten(result.content),
67
- reason: 'Matched trusted must-follow memory through the tagged control-memory sweep.',
72
+ reason: `Matched a must-follow memory through the tagged control-memory sweep. ${trustNote(trust)}`,
68
73
  evidence_id: result.id,
69
74
  recommended_action: fallbackAction,
70
75
  };
71
76
  }
72
- function isTrustedControlMemory(result) {
73
- return TRUSTED_CONTROL_SOURCES.has(result.source);
77
+ function loadEpisodeContext(audrey, id) {
78
+ const row = audrey.db.prepare('SELECT context FROM episodes WHERE id = ?').get(id);
79
+ return row?.context ?? null;
80
+ }
81
+ // Raw recall rows carry no context column (only episodes do), so an explicit
82
+ // user-verified override recorded there is only visible for episodic matches.
83
+ // Falling back to source+createdAt alone still fails closed: it can only
84
+ // under-trust a legitimately verified memory, never fabricate trust.
85
+ function controlTrustForResult(audrey, result) {
86
+ const context = result.type === 'episodic' ? loadEpisodeContext(audrey, result.id) : null;
87
+ return controlTrustFor({ source: result.source, context, createdAt: result.createdAt });
88
+ }
89
+ // A cheap existence probe so the expensive tagged-recall sweep (embedding +
90
+ // KNN + confidence scoring) only runs when it could possibly find something.
91
+ // A false positive here just means the full sweep runs and finds nothing —
92
+ // safe. A false negative would silently hide a real must-follow memory, so
93
+ // this deliberately over-matches (unscoped, substring) rather than trying to
94
+ // mirror the recall path's exact tag/scope semantics.
95
+ function hasMustFollowTagCandidate(audrey) {
96
+ const row = audrey.db
97
+ .prepare(`SELECT 1 FROM episodes WHERE tags LIKE '%"must-follow"%' LIMIT 1`)
98
+ .get();
99
+ return Boolean(row);
74
100
  }
75
101
  function recommendationFromWarning(warning) {
76
102
  if (warning.recommended_action)
@@ -126,11 +152,16 @@ export async function buildPreflight(audrey, action, options = {}) {
126
152
  options.cwd ? `cwd:${options.cwd}` : '',
127
153
  ].filter(Boolean);
128
154
  const query = queryParts.join('\n');
155
+ // recentFailureWindowHours/failureLimit let this single capsule call answer the
156
+ // tool-failure question at the width Guard needs (see events.ts), instead
157
+ // of buildPreflight running its own separate recentFailures() scan below.
129
158
  const capsule = await audrey.capsule(query, {
130
159
  limit: options.limit ?? 12,
131
160
  budgetChars: options.budgetChars ?? 3000,
132
161
  mode: options.mode ?? 'conservative',
133
162
  recentChangeWindowHours: options.recentChangeWindowHours ?? 72,
163
+ recentFailureWindowHours: options.recentFailureWindowHours ?? 168,
164
+ failureLimit: 20,
134
165
  includeRisks: true,
135
166
  includeContradictions: true,
136
167
  scope,
@@ -170,60 +201,71 @@ export async function buildPreflight(audrey, action, options = {}) {
170
201
  recommended_action: 'Run audrey status and repair the degraded recall path before relying on Guard.',
171
202
  });
172
203
  }
204
+ // The capsule's own recall can rank a must-follow memory below its top-K
205
+ // cutoff even when one exists, so an empty must_follow section alone does
206
+ // not prove there is nothing to find — hence the fallback sweep below.
207
+ // But it is a full embed + KNN + confidence-scoring pass, so it must not
208
+ // run on every routine action just because must_follow happens to be
209
+ // empty (the common case). hasMustFollowTagCandidate() gates it on a
210
+ // cheap existence check first.
173
211
  const existingMustFollowIds = new Set(capsule.sections.must_follow.map(entry => entry.memory_id));
174
212
  if (existingMustFollowIds.size === 0) {
175
213
  try {
176
- const taggedMustFollow = await audrey.recall(query, {
177
- limit: 50,
178
- minConfidence: 0.01,
179
- tags: ['must-follow'],
180
- scope,
181
- agent,
182
- });
183
- const trustedResults = taggedMustFollow.filter(isTrustedControlMemory);
184
- for (const result of trustedResults.slice(0, 5)) {
185
- addWarning(warnings, seen, warningFromTaggedRecall(result, 'Apply this must-follow rule before acting.'));
214
+ if (hasMustFollowTagCandidate(audrey)) {
215
+ const taggedMustFollow = await audrey.recall(query, {
216
+ limit: 50,
217
+ minConfidence: 0.01,
218
+ tags: ['must-follow'],
219
+ scope,
220
+ agent,
221
+ });
222
+ const trustedResults = taggedMustFollow
223
+ .map(result => ({ result, trust: controlTrustForResult(audrey, result) }))
224
+ .filter(candidate => candidate.trust !== 'untrusted');
225
+ for (const { result, trust } of trustedResults.slice(0, 5)) {
226
+ addWarning(warnings, seen, warningFromTaggedRecall(result, trust, 'Apply this must-follow rule before acting.'));
227
+ }
186
228
  }
187
229
  }
188
- catch {
189
- // The primary capsule path already reports recall degradation. Avoid
190
- // converting a supplemental sweep failure into duplicate noise.
230
+ catch (err) {
231
+ // This sweep exists precisely because the capsule can rank a
232
+ // must-follow memory below its cutoff, so losing it silently means
233
+ // Guard misses the one control directive it was asked to enforce and
234
+ // says nothing. The capsule's own recall_errors do not cover this
235
+ // path: it has its own recall call and its own per-result context
236
+ // read, either of which can fail on their own.
237
+ addWarning(warnings, seen, {
238
+ type: 'memory_health',
239
+ severity: 'high',
240
+ message: 'Audrey could not complete the must-follow control sweep; rules may be missing.',
241
+ reason: shorten(err instanceof Error ? err.message : String(err), 220),
242
+ evidence_id: 'recall:must-follow-sweep',
243
+ recommended_action: 'Run audrey status and repair the degraded recall path before relying on Guard.',
244
+ });
191
245
  }
192
246
  }
193
- const since = new Date(Date.now() - (options.recentFailureWindowHours ?? 168) * 60 * 60 * 1000).toISOString();
194
- const recentFailures = audrey.recentFailures({
195
- since,
196
- limit: 20,
197
- scope,
198
- actorAgent: agent,
199
- ...(options.cwd ? { cwd: options.cwd } : {}),
200
- });
201
- const matchingFailures = [];
202
- for (const failure of recentFailures) {
203
- if (!matchesToolOrAction(action, options.tool, failure.tool_name))
204
- continue;
205
- matchingFailures.push(failure);
206
- const toolLabel = failure.tool_name || options.tool || 'tool';
207
- addWarning(warnings, seen, {
208
- type: 'recent_failure',
209
- severity: 'medium',
210
- message: failure.last_error_summary
211
- ? `${toolLabel} failed ${failure.failure_count}x recently: ${shorten(failure.last_error_summary, 220)}`
212
- : `${toolLabel} failed ${failure.failure_count}x recently.`,
213
- reason: 'Matched a recent failed tool event for this action.',
214
- evidence_id: `failure:${toolLabel}:${failure.last_failed_at}`,
215
- recommended_action: `Before re-running ${toolLabel}, check what changed since the last failure.`,
216
- });
217
- }
218
247
  for (const entry of capsule.sections.must_follow) {
219
- addWarning(warnings, seen, warningFromEntry('must_follow', 'high', entry, 'Apply this must-follow rule before acting.'));
248
+ // 'untrusted' control tags are not a control directive at all — the
249
+ // capsule should already exclude them from this section, but Guard's
250
+ // own anti-poisoning check must not depend on that alone.
251
+ if (entry.trust === 'untrusted')
252
+ continue;
253
+ addWarning(warnings, seen, warningFromEntry('must_follow', entry.trust === 'verified' ? 'high' : 'medium', entry, 'Apply this must-follow rule before acting.', entry.trust));
220
254
  }
255
+ // matchingFailures reuses the tool-failure patterns the capsule call above
256
+ // already fetched (recentFailureWindowHours/failureLimit sized to match Guard's
257
+ // needs) instead of running a second, separately-parameterized
258
+ // recentFailures() scan — that scan is expensive enough on a large event
259
+ // table that doubling it is material on every guarded tool call.
260
+ const matchingFailures = [];
221
261
  for (const entry of capsule.sections.risks) {
222
262
  const toolFailure = isToolFailureEntry(entry);
223
263
  if (toolFailure) {
224
264
  const failedTool = toolFromFailureEntry(entry);
225
265
  if (!matchesToolOrAction(action, options.tool, failedTool))
226
266
  continue;
267
+ if (entry.failure_pattern)
268
+ matchingFailures.push(entry.failure_pattern);
227
269
  }
228
270
  addWarning(warnings, seen, warningFromEntry(toolFailure ? 'recent_failure' : 'risk', toolFailure ? 'medium' : 'high', entry, 'Mitigate this remembered risk before proceeding.'));
229
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/preflight.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA6D9D,MAAM,cAAc,GAAsC;IACxD,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,GAAG,GAAG,GAAG;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAc,EACd,aAAiC,EACjC,UAAqC;IAErC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,aAAa,EAAE,WAAW,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAExC,OAAO,OAAO,CACZ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAmB;IACpC,OAAO,KAAK,KAAK,UAAU;QACzB,CAAC,CAAC,uCAAuC;QACzC,CAAC,CAAC,iIAAiI,CAAC;AACxI,CAAC;AAED,SAAS,gBAAgB,CACvB,IAA0B,EAC1B,QAA2B,EAC3B,KAAmB,EACnB,cAAsB,EACtB,KAAoB;IAEpB,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;QACpE,WAAW,EAAE,KAAK,CAAC,SAAS;QAC5B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,cAAc;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAmB;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAmB;IAC7C,IAAI,KAAK,CAAC,WAAW,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IACtD,uEAAuE;IACvE,sEAAsE;IACtE,4DAA4D;IAC5D,OAAO,CACL,KAAK,CAAC,MAAM,KAAK,aAAa;QAC9B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,QAA4B,EAC5B,IAAiB,EACjB,OAAyB;IAEzB,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACxE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACd,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAoB,EACpB,KAAmB,EACnB,cAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QAClD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,yEAAyE,SAAS,CAAC,KAAK,CAAC,EAAE;QACnG,WAAW,EAAE,MAAM,CAAC,EAAE;QACtB,kBAAkB,EAAE,cAAc;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,EAAU;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,EAAE,CACzC,CAAC;IACzC,OAAO,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,yEAAyE;AACzE,qEAAqE;AACrE,SAAS,qBAAqB,CAAC,MAAc,EAAE,MAAoB;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,sDAAsD;AACtD,SAAS,yBAAyB,CAAC,MAAc;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE;SAClB,OAAO,CAAC,kEAAkE,CAAC;SAC3E,GAAG,EAAE,CAAC;IACT,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAyB;IAC1D,IAAI,OAAO,CAAC,kBAAkB;QAAE,OAAO,OAAO,CAAC,kBAAkB,CAAC;IAClE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,gBAAgB;YACnB,OAAO,8DAA8D,CAAC;QACxE,KAAK,aAAa;YAChB,OAAO,6CAA6C,CAAC;QACvD,KAAK,MAAM;YACT,OAAO,iDAAiD,CAAC;QAC3D,KAAK,WAAW;YACd,OAAO,qDAAqD,CAAC;QAC/D,KAAK,eAAe;YAClB,OAAO,oEAAoE,CAAC;QAC9E,KAAK,WAAW;YACd,OAAO,mEAAmE,CAAC;QAC7E,KAAK,eAAe;YAClB,OAAO,oEAAoE,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAA2B,EAAE,QAA4B;IAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,iFAAiF,CAAC;IAC3F,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACpE,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,iBAAiB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtF,IAAI,IAAI,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC;IAClD,IAAI,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,kBAAkB,CAAC,CAAC;IACxD,OAAO,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAc,EACd,UAA4B,EAAE;IAE9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,cAAc,CAAC;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE7E,MAAM,UAAU,GAAG;QACjB,GAAG,WAAW,mBAAmB,SAAS,EAAE;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;KACxC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,gFAAgF;IAChF,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,cAAc;QACpC,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,IAAI,EAAE;QAC9D,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,IAAI,GAAG;QACjE,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,IAAI;QAClB,qBAAqB,EAAE,IAAI;QAC3B,KAAK;QACL,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KACzB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjE,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;YACzB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,sEAAsE;YAC/E,MAAM,EAAE,kCAAkC;YAC1C,kBAAkB,EAAE,kEAAkE;SACvF,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,MAAM,EAAE,mBAAmB,EAAE,CAAC;QACvC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;YACzB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,8DAA8D;YACvE,MAAM,EAAE,6CAA6C;YACrD,kBAAkB,EAAE,sDAAsD;SAC3E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QAChD,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;YACzB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,oDAAoD,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,UAAU;YAChG,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;YACnC,WAAW,EAAE,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;YAClD,kBAAkB,EAChB,gFAAgF;SACnF,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,qEAAqE;IACrE,+BAA+B;IAC/B,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAClG,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;oBAClD,KAAK,EAAE,EAAE;oBACT,aAAa,EAAE,IAAI;oBACnB,IAAI,EAAE,CAAC,aAAa,CAAC;oBACrB,KAAK;oBACL,KAAK;iBACN,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,gBAAgB;qBACpC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;qBACzE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;gBACxD,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC3D,UAAU,CACR,QAAQ,EACR,IAAI,EACJ,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,4CAA4C,CAAC,CACrF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,6DAA6D;YAC7D,mEAAmE;YACnE,qEAAqE;YACrE,kEAAkE;YAClE,kEAAkE;YAClE,+CAA+C;YAC/C,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;gBACzB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,gFAAgF;gBACzF,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;gBACtE,WAAW,EAAE,0BAA0B;gBACvC,kBAAkB,EAChB,gFAAgF;aACnF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,oEAAoE;QACpE,qEAAqE;QACrE,0DAA0D;QAC1D,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW;YAAE,SAAS;QAC1C,UAAU,CACR,QAAQ,EACR,IAAI,EACJ,gBAAgB,CACd,aAAa,EACb,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC9C,KAAK,EACL,4CAA4C,EAC5C,KAAK,CAAC,KAAK,CACZ,CACF,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,gFAAgF;IAChF,+DAA+D;IAC/D,yEAAyE;IACzE,iEAAiE;IACjE,MAAM,gBAAgB,GAAqB,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;gBAAE,SAAS;YACrE,IAAI,KAAK,CAAC,eAAe;gBAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1E,CAAC;QACD,UAAU,CACR,QAAQ,EACR,IAAI,EACJ,gBAAgB,CACd,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,EACvC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAC/B,KAAK,EACL,kDAAkD,CACnD,CACF,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAChD,UAAU,CACR,QAAQ,EACR,IAAI,EACJ,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,4CAA4C,CAAC,CAC3F,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACpD,UAAU,CACR,QAAQ,EACR,IAAI,EACJ,gBAAgB,CACd,eAAe,EACf,MAAM,EACN,KAAK,EACL,oDAAoD,CACrD,CACF,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAC3D,UAAU,CACR,QAAQ,EACR,IAAI,EACJ,gBAAgB,CACd,WAAW,EACX,QAAQ,EACR,KAAK,EACL,kEAAkE,CACnE,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EACrE,CAAC,CACF,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GACZ,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IACjF,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,kBAAkB,CAAC,OAAO,CACxB,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG;QAClB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;KACvF,CAAC;IAEF,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI;QACjC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;YACjB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;YACpD,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE;gBACR,kBAAkB,EAAE,QAAQ;gBAC5B,uBAAuB,EAAE,QAAQ,CAAC,MAAM;gBACxC,sBAAsB,EAAE,WAAW;gBACnC,uBAAuB,EAAE,SAAS;aACnC;SACF,CAAC,CAAC,KAAK;QACV,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,KAAK;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,QAAQ;QACR,OAAO;QACP,aAAa,EAAE,QAAQ,KAAK,OAAO;QACnC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACzC,QAAQ;QACR,eAAe,EAAE,gBAAgB;QACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,mBAAmB,EAAE,kBAAkB;QACvC,YAAY,EAAE,WAAW;QACzB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC"}
@@ -3,7 +3,10 @@
3
3
  *
4
4
  * A "project" is the git repository containing a working directory (falling
5
5
  * back to the directory itself when no .git is found). Namespaces hash the
6
- * canonical root so paths never leak into stored context values.
6
+ * canonical root so paths never leak into stored context values. Linked
7
+ * worktrees resolve to their shared repository root rather than their own
8
+ * checkout, so must-follow rules, failure streaks, and project facts learned
9
+ * in one worktree surface in its siblings.
7
10
  */
8
11
  export declare function canonicalDirectory(value: string): string;
9
12
  export declare function projectRoot(cwd: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAW5E"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOxD;AAwDD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa/C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAW5E"}
@@ -3,11 +3,14 @@
3
3
  *
4
4
  * A "project" is the git repository containing a working directory (falling
5
5
  * back to the directory itself when no .git is found). Namespaces hash the
6
- * canonical root so paths never leak into stored context values.
6
+ * canonical root so paths never leak into stored context values. Linked
7
+ * worktrees resolve to their shared repository root rather than their own
8
+ * checkout, so must-follow rules, failure streaks, and project facts learned
9
+ * in one worktree surface in its siblings.
7
10
  */
8
11
  import { createHash } from 'node:crypto';
9
- import { existsSync, realpathSync } from 'node:fs';
10
- import { dirname, join, resolve } from 'node:path';
12
+ import { existsSync, readFileSync, realpathSync, statSync } from 'node:fs';
13
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
11
14
  function sha256(value) {
12
15
  return createHash('sha256').update(value).digest('hex');
13
16
  }
@@ -20,11 +23,68 @@ export function canonicalDirectory(value) {
20
23
  return absolute;
21
24
  }
22
25
  }
26
+ function isDirectory(path) {
27
+ try {
28
+ return statSync(path).isDirectory();
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ const GITDIR_POINTER_PATTERN = /^gitdir:\s*(.+?)\s*$/;
35
+ /**
36
+ * A worktree's `.git` is a file containing `gitdir: <path to
37
+ * .git/worktrees/<name>>` rather than a directory, so it resolves to a
38
+ * different path per worktree unless unwound back to the shared `.git` all
39
+ * worktrees of one repository point into. Returns undefined — falling back
40
+ * to today's per-worktree behavior — on anything unparseable: a malformed
41
+ * pointer file, one whose target no longer exists, or a plain (non-worktree)
42
+ * gitdir pointer with no `worktrees/<name>` segment to unwind.
43
+ */
44
+ function resolveWorktreeCommonDir(gitFilePath, worktreeDir) {
45
+ let raw;
46
+ try {
47
+ raw = readFileSync(gitFilePath, 'utf8');
48
+ }
49
+ catch {
50
+ return undefined;
51
+ }
52
+ const pointer = raw
53
+ .split(/\r?\n/)
54
+ .map(line => line.match(GITDIR_POINTER_PATTERN)?.[1])
55
+ .find((match) => Boolean(match));
56
+ if (!pointer)
57
+ return undefined;
58
+ // Windows git writes backslash separators; normalize before resolving, or
59
+ // POSIX path.resolve treats the whole pointer as a single literal segment.
60
+ const pointerPath = pointer.replace(/\\/g, '/');
61
+ // A drive-qualified pointer is absolute even when the running platform's
62
+ // isAbsolute says otherwise. posix.isAbsolute('C:/repo/.git') is false, so
63
+ // without this the pointer gets joined onto the worktree directory and
64
+ // resolves to a concatenated path that never existed. Such a pointer is
65
+ // still unresolvable on a POSIX host — a drive letter has no meaning
66
+ // there — but it should fail by not existing, not by silently becoming a
67
+ // different path.
68
+ const driveQualified = /^[A-Za-z]:\//.test(pointerPath);
69
+ const gitDir = isAbsolute(pointerPath) || driveQualified ? pointerPath : resolve(worktreeDir, pointerPath);
70
+ if (!existsSync(gitDir))
71
+ return undefined;
72
+ const normalized = gitDir.replace(/\\/g, '/');
73
+ const worktreesIndex = normalized.lastIndexOf('/worktrees/');
74
+ if (worktreesIndex === -1)
75
+ return undefined;
76
+ return normalized.slice(0, worktreesIndex);
77
+ }
23
78
  export function projectRoot(cwd) {
24
79
  let current = canonicalDirectory(cwd);
25
80
  while (true) {
26
- if (existsSync(join(current, '.git')))
27
- return current;
81
+ const gitPath = join(current, '.git');
82
+ if (existsSync(gitPath)) {
83
+ if (isDirectory(gitPath))
84
+ return current;
85
+ const commonDir = resolveWorktreeCommonDir(gitPath, current);
86
+ return commonDir ? canonicalDirectory(dirname(commonDir)) : current;
87
+ }
28
88
  const parent = dirname(current);
29
89
  if (parent === current)
30
90
  return canonicalDirectory(cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,OAAO,WAAW,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,OAAO,CAAC,SAAiB,EAAE,EAAE;QAC3B,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC;YAC/C,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/recall.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAGjB,WAAW,EAEX,aAAa,EACb,YAAY,EACZ,aAAa,EAEd,MAAM,YAAY,CAAC;AAYpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA0GpD,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;AAglBF,wBAAuB,YAAY,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAAC,YAAY,CAAC,CAwP9B;AAED,wBAAsB,MAAM,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,CAAC,CAiBxB"}
1
+ {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/recall.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAGjB,WAAW,EAEX,aAAa,EACb,YAAY,EACZ,aAAa,EAEd,MAAM,YAAY,CAAC;AAapB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAqHpD,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;AA4pBF,wBAAuB,YAAY,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAAC,YAAY,CAAC,CAyP9B;AAED,wBAAsB,MAAM,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,CAAC,CAkBxB"}