audrey 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +303 -429
  3. package/SECURITY.md +3 -3
  4. package/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +3 -3
  5. package/benchmarks/output/external/guardbench-external-dry-run.json +1 -1
  6. package/benchmarks/output/external/guardbench-external-evidence.json +1 -1
  7. package/benchmarks/output/guardbench-conformance-card.json +11 -11
  8. package/benchmarks/output/guardbench-raw.json +105 -104
  9. package/benchmarks/output/guardbench-summary.json +169 -167
  10. package/benchmarks/output/leaderboard/guardbench-leaderboard.json +5 -5
  11. package/benchmarks/output/leaderboard/guardbench-leaderboard.md +2 -2
  12. package/benchmarks/output/submission-bundle/guardbench-conformance-card.json +11 -11
  13. package/benchmarks/output/submission-bundle/guardbench-raw.json +105 -104
  14. package/benchmarks/output/submission-bundle/guardbench-summary.json +169 -167
  15. package/benchmarks/output/submission-bundle/submission-manifest.json +11 -11
  16. package/benchmarks/output/submission-bundle/validation-report.json +1 -1
  17. package/benchmarks/output/summary.json +58 -58
  18. package/benchmarks/public-paths.mjs +14 -1
  19. package/dist/mcp-server/config.d.ts +4 -1
  20. package/dist/mcp-server/config.d.ts.map +1 -1
  21. package/dist/mcp-server/config.js +47 -7
  22. package/dist/mcp-server/config.js.map +1 -1
  23. package/dist/mcp-server/hooks.d.ts +41 -0
  24. package/dist/mcp-server/hooks.d.ts.map +1 -0
  25. package/dist/mcp-server/hooks.js +313 -0
  26. package/dist/mcp-server/hooks.js.map +1 -0
  27. package/dist/mcp-server/index.d.ts +8 -354
  28. package/dist/mcp-server/index.d.ts.map +1 -1
  29. package/dist/mcp-server/index.js +593 -565
  30. package/dist/mcp-server/index.js.map +1 -1
  31. package/dist/mcp-server/tool-schemas.d.ts +341 -0
  32. package/dist/mcp-server/tool-schemas.d.ts.map +1 -0
  33. package/dist/mcp-server/tool-schemas.js +248 -0
  34. package/dist/mcp-server/tool-schemas.js.map +1 -0
  35. package/dist/mcp-server/tool-validation.d.ts +17 -0
  36. package/dist/mcp-server/tool-validation.d.ts.map +1 -0
  37. package/dist/mcp-server/tool-validation.js +41 -0
  38. package/dist/mcp-server/tool-validation.js.map +1 -0
  39. package/dist/src/action-key.d.ts +1 -0
  40. package/dist/src/action-key.d.ts.map +1 -1
  41. package/dist/src/action-key.js +11 -13
  42. package/dist/src/action-key.js.map +1 -1
  43. package/dist/src/affect.d.ts +1 -0
  44. package/dist/src/affect.d.ts.map +1 -1
  45. package/dist/src/affect.js +9 -4
  46. package/dist/src/affect.js.map +1 -1
  47. package/dist/src/audrey.d.ts +11 -3
  48. package/dist/src/audrey.d.ts.map +1 -1
  49. package/dist/src/audrey.js +59 -25
  50. package/dist/src/audrey.js.map +1 -1
  51. package/dist/src/autopilot.d.ts +32 -0
  52. package/dist/src/autopilot.d.ts.map +1 -0
  53. package/dist/src/autopilot.js +997 -0
  54. package/dist/src/autopilot.js.map +1 -0
  55. package/dist/src/capsule.d.ts +2 -0
  56. package/dist/src/capsule.d.ts.map +1 -1
  57. package/dist/src/capsule.js +27 -12
  58. package/dist/src/capsule.js.map +1 -1
  59. package/dist/src/consolidate.d.ts +1 -1
  60. package/dist/src/consolidate.d.ts.map +1 -1
  61. package/dist/src/consolidate.js +14 -8
  62. package/dist/src/consolidate.js.map +1 -1
  63. package/dist/src/controller.d.ts +2 -0
  64. package/dist/src/controller.d.ts.map +1 -1
  65. package/dist/src/controller.js +18 -11
  66. package/dist/src/controller.js.map +1 -1
  67. package/dist/src/db.d.ts.map +1 -1
  68. package/dist/src/db.js +121 -33
  69. package/dist/src/db.js.map +1 -1
  70. package/dist/src/decay.d.ts +2 -1
  71. package/dist/src/decay.d.ts.map +1 -1
  72. package/dist/src/decay.js +14 -10
  73. package/dist/src/decay.js.map +1 -1
  74. package/dist/src/embedding.d.ts.map +1 -1
  75. package/dist/src/embedding.js.map +1 -1
  76. package/dist/src/encode.d.ts.map +1 -1
  77. package/dist/src/encode.js +4 -2
  78. package/dist/src/encode.js.map +1 -1
  79. package/dist/src/events.d.ts +2 -0
  80. package/dist/src/events.d.ts.map +1 -1
  81. package/dist/src/events.js +15 -1
  82. package/dist/src/events.js.map +1 -1
  83. package/dist/src/feedback.d.ts +1 -0
  84. package/dist/src/feedback.d.ts.map +1 -1
  85. package/dist/src/feedback.js +13 -9
  86. package/dist/src/feedback.js.map +1 -1
  87. package/dist/src/forget.d.ts.map +1 -1
  88. package/dist/src/forget.js.map +1 -1
  89. package/dist/src/impact.d.ts +1 -1
  90. package/dist/src/impact.d.ts.map +1 -1
  91. package/dist/src/impact.js +40 -30
  92. package/dist/src/impact.js.map +1 -1
  93. package/dist/src/import.d.ts.map +1 -1
  94. package/dist/src/import.js +13 -9
  95. package/dist/src/import.js.map +1 -1
  96. package/dist/src/index.d.ts +2 -0
  97. package/dist/src/index.d.ts.map +1 -1
  98. package/dist/src/index.js +1 -0
  99. package/dist/src/index.js.map +1 -1
  100. package/dist/src/interference.d.ts +2 -1
  101. package/dist/src/interference.d.ts.map +1 -1
  102. package/dist/src/interference.js +44 -17
  103. package/dist/src/interference.js.map +1 -1
  104. package/dist/src/llm.d.ts.map +1 -1
  105. package/dist/src/llm.js +12 -1
  106. package/dist/src/llm.js.map +1 -1
  107. package/dist/src/migrate.d.ts.map +1 -1
  108. package/dist/src/migrate.js +9 -9
  109. package/dist/src/migrate.js.map +1 -1
  110. package/dist/src/preflight.d.ts +2 -0
  111. package/dist/src/preflight.d.ts.map +1 -1
  112. package/dist/src/preflight.js +29 -12
  113. package/dist/src/preflight.js.map +1 -1
  114. package/dist/src/promote.d.ts +1 -0
  115. package/dist/src/promote.d.ts.map +1 -1
  116. package/dist/src/promote.js +12 -8
  117. package/dist/src/promote.js.map +1 -1
  118. package/dist/src/recall.d.ts.map +1 -1
  119. package/dist/src/recall.js +152 -100
  120. package/dist/src/recall.js.map +1 -1
  121. package/dist/src/reflexes.d.ts.map +1 -1
  122. package/dist/src/reflexes.js.map +1 -1
  123. package/dist/src/rollback.d.ts.map +1 -1
  124. package/dist/src/rollback.js.map +1 -1
  125. package/dist/src/routes.d.ts +1 -0
  126. package/dist/src/routes.d.ts.map +1 -1
  127. package/dist/src/routes.js +73 -20
  128. package/dist/src/routes.js.map +1 -1
  129. package/dist/src/server.d.ts +1 -0
  130. package/dist/src/server.d.ts.map +1 -1
  131. package/dist/src/server.js +2 -2
  132. package/dist/src/server.js.map +1 -1
  133. package/dist/src/types.d.ts +1 -0
  134. package/dist/src/types.d.ts.map +1 -1
  135. package/dist/src/utils.d.ts +2 -0
  136. package/dist/src/utils.d.ts.map +1 -1
  137. package/dist/src/utils.js +18 -0
  138. package/dist/src/utils.js.map +1 -1
  139. package/dist/src/validate.d.ts +1 -0
  140. package/dist/src/validate.d.ts.map +1 -1
  141. package/dist/src/validate.js +19 -10
  142. package/dist/src/validate.js.map +1 -1
  143. package/docs/AUDREY_PAPER_OUTLINE.md +6 -3
  144. package/docs/PRODUCTION_BACKLOG.md +47 -30
  145. package/docs/paper/06-implementation.md +5 -3
  146. package/docs/paper/07-evaluation.md +5 -5
  147. package/docs/paper/08-discussion-limitations.md +1 -1
  148. package/docs/paper/audrey-paper-v1.md +11 -9
  149. package/docs/paper/evidence-ledger.md +8 -8
  150. package/docs/paper/output/arxiv/arxiv-manifest.json +4 -4
  151. package/docs/paper/output/arxiv/main.tex +11 -9
  152. package/docs/paper/output/arxiv-compile-report.json +3 -3
  153. package/docs/paper/output/submission-bundle/README.md +303 -429
  154. package/docs/paper/output/submission-bundle/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +3 -3
  155. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-dry-run.json +1 -1
  156. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-evidence.json +1 -1
  157. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-conformance-card.json +11 -11
  158. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-raw.json +105 -104
  159. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-summary.json +169 -167
  160. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.json +5 -5
  161. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.md +2 -2
  162. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/submission-manifest.json +11 -11
  163. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/validation-report.json +1 -1
  164. package/docs/paper/output/submission-bundle/benchmarks/output/summary.json +45 -45
  165. package/docs/paper/output/submission-bundle/docs/AUDREY_PAPER_OUTLINE.md +6 -3
  166. package/docs/paper/output/submission-bundle/docs/paper/06-implementation.md +5 -3
  167. package/docs/paper/output/submission-bundle/docs/paper/07-evaluation.md +5 -5
  168. package/docs/paper/output/submission-bundle/docs/paper/08-discussion-limitations.md +1 -1
  169. package/docs/paper/output/submission-bundle/docs/paper/audrey-paper-v1.md +11 -9
  170. package/docs/paper/output/submission-bundle/docs/paper/evidence-ledger.md +8 -8
  171. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/arxiv-manifest.json +4 -4
  172. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/main.tex +11 -9
  173. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv-compile-report.json +3 -3
  174. package/docs/paper/output/submission-bundle/package.json +5 -2
  175. package/docs/paper/output/submission-bundle/paper-submission-manifest.json +41 -41
  176. package/package.json +5 -2
  177. package/scripts/audit-release-completion.mjs +8 -8
  178. package/scripts/finalize-release.mjs +1 -1
  179. package/scripts/prepare-release-cut.mjs +1 -1
  180. package/scripts/publish-release-bundle.mjs +8 -4
  181. package/scripts/publish-release-github-api.mjs +1 -1
  182. package/scripts/sync-paper-artifacts.mjs +4 -5
  183. package/scripts/verify-release-readiness.mjs +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-validation.js","sourceRoot":"","sources":["../../mcp-server/tool-validation.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB;IACpB,cAAc;IACd,aAAa;IACb,WAAW;IACX,iBAAiB;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAE3D,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,qCAAqC,yBAAyB,aAAa,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,EAAW,EAAE,KAAc;IACjE,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAClD,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA0C,OAAO,CAAC,GAAG;IACrF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,wCAAwC,eAAe,qDAAqD,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,QAA2B;IAC3E,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACrD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -2,6 +2,7 @@ export interface GuardActionFingerprintInput {
2
2
  tool?: string;
3
3
  command?: string;
4
4
  action: string;
5
+ actionDigest?: string;
5
6
  cwd?: string;
6
7
  files?: string[];
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"action-key.d.ts","sourceRoot":"","sources":["../../src/action-key.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAqCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,2BAA2B,GAAG,MAAM,CAkB1E"}
1
+ {"version":3,"file":"action-key.d.ts","sourceRoot":"","sources":["../../src/action-key.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAyBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,2BAA2B,GAAG,MAAM,CAuB1E"}
@@ -1,20 +1,11 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { existsSync, realpathSync } from 'node:fs';
3
3
  import { isAbsolute, normalize, resolve } from 'node:path';
4
- import { redact, truncateRedactedText } from './redact.js';
5
- function compact(value, max = 2000, redactions = []) {
6
- if (!value)
7
- return undefined;
8
- const text = value.replace(/\s+/g, ' ').trim();
9
- if (text.length <= max)
10
- return text;
11
- return truncateRedactedText(text, max, redactions);
12
- }
4
+ import { redact } from './redact.js';
13
5
  function redactedText(value) {
14
6
  if (!value)
15
7
  return undefined;
16
- const result = redact(value);
17
- return compact(result.text, 2000, result.redactions);
8
+ return redact(value).text.replace(/\s+/g, ' ').trim();
18
9
  }
19
10
  function normalizePathForKey(value, base) {
20
11
  if (!value)
@@ -38,7 +29,9 @@ function normalizePathForKey(value, base) {
38
29
  export function guardActionKey(action) {
39
30
  const tool = action.tool ?? 'unknown';
40
31
  const commandOrAction = action.command ?? action.action;
41
- const safeCommand = redactedText(commandOrAction) ?? commandOrAction;
32
+ const actionIdentity = action.actionDigest
33
+ ? `digest:${action.actionDigest.trim().toLowerCase()}`
34
+ : (redactedText(commandOrAction) ?? commandOrAction);
42
35
  const cwd = normalizePathForKey(action.cwd);
43
36
  const files = [...(action.files ?? [])]
44
37
  .map(file => file.trim())
@@ -47,7 +40,12 @@ export function guardActionKey(action) {
47
40
  .sort()
48
41
  .join('\n');
49
42
  return createHash('sha256')
50
- .update([tool.toLowerCase(), safeCommand.replace(/\s+/g, ' ').trim().toLowerCase(), cwd, files].join('\n'))
43
+ .update([
44
+ tool.toLowerCase(),
45
+ actionIdentity.replace(/\s+/g, ' ').trim().toLowerCase(),
46
+ cwd,
47
+ files,
48
+ ].join('\n'))
51
49
  .digest('hex');
52
50
  }
53
51
  //# sourceMappingURL=action-key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-key.js","sourceRoot":"","sources":["../../src/action-key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-key.js","sourceRoot":"","sources":["../../src/action-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrC,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAyB,EAAE,IAAa;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IACnF,IAAI,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC;SAC1B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBACpC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;iBACxB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;IACtC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;IACxD,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY;QACxC,CAAC,CAAC,UAAU,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;QACtD,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;SACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;SACzD,IAAI,EAAE;SACN,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CACL;QACE,IAAI,CAAC,WAAW,EAAE;QAClB,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QACxD,GAAG;QACH,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
@@ -15,6 +15,7 @@ export declare function moodCongruenceModifier(encodingAffect: Partial<Affect> |
15
15
  export declare function detectResonance(db: Database.Database, embeddingProvider: EmbeddingProvider, episodeId: string, params: {
16
16
  content: string;
17
17
  affect?: Affect;
18
+ agent?: string;
18
19
  }, config?: ResonanceConfig, embedding?: {
19
20
  vector?: number[];
20
21
  buffer?: Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"affect.d.ts","sourceRoot":"","sources":["../../src/affect.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI/E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAS7F;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EACtC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EACrC,MAAM,SAAM,GACX,MAAM,CAKR;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5C,MAAM,GAAE,eAAoB,EAC5B,SAAS,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,eAAe,EAAE,CAAC,CA0D5B"}
1
+ {"version":3,"file":"affect.d.ts","sourceRoot":"","sources":["../../src/affect.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7E,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI/E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAS7F;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EACtC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EACrC,MAAM,SAAM,GACX,MAAM,CAKR;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5D,MAAM,GAAE,eAAoB,EAC5B,SAAS,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,eAAe,EAAE,CAAC,CAoE5B"}
@@ -1,3 +1,4 @@
1
+ import { requireAgent } from './utils.js';
1
2
  export function arousalSalienceBoost(arousal) {
2
3
  if (arousal === undefined || arousal === null)
3
4
  return 0;
@@ -32,17 +33,21 @@ export async function detectResonance(db, embeddingProvider, episodeId, params,
32
33
  return [];
33
34
  const buffer = embedding?.buffer ??
34
35
  embeddingProvider.vectorToBuffer(embedding?.vector ?? (await embeddingProvider.embed(content)));
36
+ const agent = requireAgent(params.agent ??
37
+ db.prepare('SELECT agent FROM episodes WHERE id = ?').get(episodeId)?.agent, 'default');
35
38
  const matches = db
36
39
  .prepare(`
37
- SELECT e.*, (1.0 - v.distance) AS similarity
40
+ SELECT e.*, (1.0 - vec_distance_cosine(v.embedding, ?)) AS similarity
38
41
  FROM vec_episodes v
39
42
  JOIN episodes e ON e.id = v.id
40
- WHERE v.embedding MATCH ?
41
- AND k = ?
43
+ WHERE v.agent = ?
42
44
  AND e.id != ?
43
45
  AND e.superseded_by IS NULL
46
+ AND e.agent = ?
47
+ ORDER BY similarity DESC
48
+ LIMIT ?
44
49
  `)
45
- .all(buffer, k, episodeId);
50
+ .all(buffer, agent, episodeId, agent, k);
46
51
  const resonances = [];
47
52
  for (const match of matches) {
48
53
  if (match.similarity < threshold)
@@ -1 +1 @@
1
- {"version":3,"file":"affect.js","sourceRoot":"","sources":["../../src/affect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"affect.js","sourceRoot":"","sources":["../../src/affect.ts"],"names":[],"mappings":"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"}
@@ -119,21 +119,25 @@ export declare class Audrey extends EventEmitter {
119
119
  decay(options?: {
120
120
  dormantThreshold?: number;
121
121
  halfLives?: Partial<HalfLives>;
122
+ agent?: string;
122
123
  }): DecayResult;
123
124
  rollback(runId: string): {
124
125
  rolledBackMemories: number;
125
126
  restoredEpisodes: number;
126
127
  };
127
- resolveTruth(contradictionId: string): Promise<TruthResolution>;
128
- _loadClaimContent(claimId: string, claimType: string): string;
128
+ resolveTruth(contradictionId: string, options?: {
129
+ agent?: string;
130
+ }): Promise<TruthResolution>;
131
+ _loadClaimContent(claimId: string, claimType: string, agent?: string): string;
129
132
  consolidationHistory(): ConsolidationRunRow[];
130
133
  introspect(): IntrospectResult;
131
134
  memoryStatus(): MemoryStatusResult;
132
- greeting({ context, recentLimit, principleLimit, identityLimit, scope, }?: GreetingOptions): Promise<GreetingResult>;
135
+ greeting({ context, recentLimit, principleLimit, identityLimit, scope, agent, }?: GreetingOptions): Promise<GreetingResult>;
133
136
  dream(options?: {
134
137
  minClusterSize?: number;
135
138
  similarityThreshold?: number;
136
139
  dormantThreshold?: number;
140
+ agent?: string;
137
141
  }): Promise<DreamResult>;
138
142
  export(): object;
139
143
  import(snapshot: unknown): Promise<void>;
@@ -148,6 +152,8 @@ export declare class Audrey extends EventEmitter {
148
152
  impact(options?: {
149
153
  windowDays?: number;
150
154
  limit?: number;
155
+ scope?: RecallOptions['scope'];
156
+ agent?: string;
151
157
  }): ImpactReport;
152
158
  forget(id: string, options?: {
153
159
  purge?: boolean;
@@ -166,6 +172,8 @@ export declare class Audrey extends EventEmitter {
166
172
  recentFailures(options?: {
167
173
  since?: string;
168
174
  limit?: number;
175
+ actorAgent?: string;
176
+ scope?: RecallOptions['scope'];
169
177
  }): FailurePattern[];
170
178
  capsule(query: string, options?: CapsuleOptions): Promise<MemoryCapsule>;
171
179
  preflight(action: string, options?: PreflightOptions): Promise<MemoryPreflight>;
@@ -1 +1 @@
1
- {"version":3,"file":"audrey.d.ts","sourceRoot":"","sources":["../../src/audrey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audrey.d.ts","sourceRoot":"","sources":["../../src/audrey.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ import { beforeAction as guardBeforeAction, afterAction as guardAfterAction, } f
28
28
  import { findPromotionCandidates, } from './promote.js';
29
29
  import { renderAllRules } from './rules-compiler.js';
30
30
  import { insertEvent } from './events.js';
31
+ import { requireAgent, resolveMemoryScope } from './utils.js';
31
32
  import { mkdirSync, writeFileSync, existsSync } from 'node:fs';
32
33
  import { dirname, join, resolve as pathResolve, relative, isAbsolute as pathIsAbsolute, } from 'node:path';
33
34
  import { ProfileRecorder } from './profile.js';
@@ -165,7 +166,7 @@ export class Audrey extends EventEmitter {
165
166
  if (!Number.isInteger(minEpisodes) || minEpisodes < 1) {
166
167
  throw new Error(`minEpisodes must be a positive integer, got: ${minEpisodes}`);
167
168
  }
168
- this.agent = agent;
169
+ this.agent = requireAgent(agent);
169
170
  this.dataDir = dataDir;
170
171
  this.embeddingProvider = createEmbeddingProvider(embedding);
171
172
  const { db, migrated } = createDatabase(dataDir, {
@@ -400,7 +401,7 @@ export class Audrey extends EventEmitter {
400
401
  await this._ensureMigrated();
401
402
  const encodeParams = {
402
403
  ...params,
403
- agent: params.agent ?? this.agent,
404
+ agent: requireAgent(params.agent, this.agent),
404
405
  arousalWeight: this.affectConfig.arousalWeight,
405
406
  };
406
407
  let encodedVector;
@@ -422,8 +423,8 @@ export class Audrey extends EventEmitter {
422
423
  const encodedEmbedding = { vector: encodedVector, buffer: encodedBuffer };
423
424
  this.emit('encode', { id, ...params });
424
425
  const postEncodeTask = profile
425
- ? profile.measureSync('encode.enqueue_background', () => this._enqueuePostEncode(id, params, encodedEmbedding))
426
- : this._enqueuePostEncode(id, params, encodedEmbedding);
426
+ ? profile.measureSync('encode.enqueue_background', () => this._enqueuePostEncode(id, encodeParams, encodedEmbedding))
427
+ : this._enqueuePostEncode(id, encodeParams, encodedEmbedding);
427
428
  if (params.waitForConsolidation) {
428
429
  if (profile)
429
430
  await profile.measure('encode.wait_for_consolidation', () => postEncodeTask);
@@ -494,7 +495,7 @@ export class Audrey extends EventEmitter {
494
495
  }
495
496
  const normalized = paramsList.map(params => ({
496
497
  ...params,
497
- agent: params.agent ?? this.agent,
498
+ agent: requireAgent(params.agent, this.agent),
498
499
  arousalWeight: this.affectConfig.arousalWeight,
499
500
  }));
500
501
  const vectors = await this.embeddingProvider.embedBatch(normalized.map(params => params.content));
@@ -517,7 +518,7 @@ export class Audrey extends EventEmitter {
517
518
  ids.push(id);
518
519
  this.emit('encode', { id, ...paramsList[i] });
519
520
  const encodedEmbedding = { vector: encodedVector, buffer: encodedBuffer };
520
- tasks.push(this._enqueuePostEncode(id, paramsList[i], encodedEmbedding));
521
+ tasks.push(this._enqueuePostEncode(id, encodeParams, encodedEmbedding));
521
522
  }
522
523
  if (paramsList.some(p => p.waitForConsolidation)) {
523
524
  await Promise.all(tasks);
@@ -571,11 +572,10 @@ export class Audrey extends EventEmitter {
571
572
  }
572
573
  async consolidate(options = {}) {
573
574
  await this._ensureMigrated();
574
- // Use ?? throughout so 0 / '' are not silently replaced with the default.
575
575
  const result = await runConsolidation(this.db, this.embeddingProvider, {
576
576
  minClusterSize: options.minClusterSize ?? this.consolidationConfig.minEpisodes,
577
577
  similarityThreshold: options.similarityThreshold ?? 0.8,
578
- agent: options.agent ?? this.agent,
578
+ agent: requireAgent(options.agent, this.agent),
579
579
  extractPrinciple: options.extractPrinciple,
580
580
  llmProvider: options.llmProvider ?? this.llmProvider ?? undefined,
581
581
  });
@@ -588,6 +588,7 @@ export class Audrey extends EventEmitter {
588
588
  const result = applyDecay(this.db, {
589
589
  dormantThreshold: options.dormantThreshold ?? this.decayConfig.dormantThreshold,
590
590
  halfLives: options.halfLives ?? this.confidenceConfig.halfLives,
591
+ agent: requireAgent(options.agent, this.agent),
591
592
  });
592
593
  this.emit('decay', result);
593
594
  return result;
@@ -597,7 +598,7 @@ export class Audrey extends EventEmitter {
597
598
  this.emit('rollback', { runId, ...result });
598
599
  return result;
599
600
  }
600
- async resolveTruth(contradictionId) {
601
+ async resolveTruth(contradictionId, options = {}) {
601
602
  if (!this.llmProvider) {
602
603
  throw new Error('resolveTruth requires an LLM provider');
603
604
  }
@@ -606,8 +607,16 @@ export class Audrey extends EventEmitter {
606
607
  .get(contradictionId);
607
608
  if (!contradiction)
608
609
  throw new Error(`Contradiction not found: ${contradictionId}`);
609
- const claimA = this._loadClaimContent(contradiction.claim_a_id, contradiction.claim_a_type);
610
- const claimB = this._loadClaimContent(contradiction.claim_b_id, contradiction.claim_b_type);
610
+ const agent = requireAgent(options.agent, this.agent);
611
+ let claimA;
612
+ let claimB;
613
+ try {
614
+ claimA = this._loadClaimContent(contradiction.claim_a_id, contradiction.claim_a_type, agent);
615
+ claimB = this._loadClaimContent(contradiction.claim_b_id, contradiction.claim_b_type, agent);
616
+ }
617
+ catch {
618
+ throw new Error(`Contradiction not found: ${contradictionId}`);
619
+ }
611
620
  const messages = buildContextResolutionPrompt(claimA, claimB);
612
621
  const result = (await this.llmProvider.json(messages));
613
622
  const now = new Date().toISOString();
@@ -637,15 +646,21 @@ export class Audrey extends EventEmitter {
637
646
  }
638
647
  return result;
639
648
  }
640
- _loadClaimContent(claimId, claimType) {
649
+ _loadClaimContent(claimId, claimType, agent) {
650
+ const agentClause = agent ? ' AND agent = ?' : '';
651
+ const params = agent ? [claimId, agent] : [claimId];
641
652
  if (claimType === 'semantic') {
642
- const row = this.db.prepare('SELECT content FROM semantics WHERE id = ?').get(claimId);
653
+ const row = this.db
654
+ .prepare(`SELECT content FROM semantics WHERE id = ?${agentClause}`)
655
+ .get(...params);
643
656
  if (!row)
644
657
  throw new Error(`Semantic memory not found: ${claimId}`);
645
658
  return row.content;
646
659
  }
647
660
  else if (claimType === 'episodic') {
648
- const row = this.db.prepare('SELECT content FROM episodes WHERE id = ?').get(claimId);
661
+ const row = this.db
662
+ .prepare(`SELECT content FROM episodes WHERE id = ?${agentClause}`)
663
+ .get(...params);
649
664
  if (!row)
650
665
  throw new Error(`Episode not found: ${claimId}`);
651
666
  return row.content;
@@ -719,9 +734,11 @@ export class Audrey extends EventEmitter {
719
734
  last_recall_errors: this._lastRecallErrors,
720
735
  };
721
736
  }
722
- async greeting({ context, recentLimit = 10, principleLimit = 5, identityLimit = 5, scope = 'agent', } = {}) {
723
- const agentClause = scope === 'agent' ? 'AND agent = ?' : '';
724
- const agentParam = scope === 'agent' ? [this.agent] : [];
737
+ async greeting({ context, recentLimit = 10, principleLimit = 5, identityLimit = 5, scope = 'agent', agent = this.agent, } = {}) {
738
+ const memoryScope = resolveMemoryScope(scope, 'agent');
739
+ const memoryAgent = requireAgent(agent, this.agent);
740
+ const agentClause = memoryScope === 'agent' ? 'AND agent = ?' : '';
741
+ const agentParam = memoryScope === 'agent' ? [memoryAgent] : [];
725
742
  const recent = this.db
726
743
  .prepare(`SELECT id, content, source, tags, salience, created_at FROM episodes WHERE "private" = 0 ${agentClause} ORDER BY created_at DESC LIMIT ?`)
727
744
  .all(...agentParam, recentLimit);
@@ -762,18 +779,26 @@ export class Audrey extends EventEmitter {
762
779
  }
763
780
  const result = { recent, principles, mood, unresolved, identity };
764
781
  if (context) {
765
- result.contextual = await this.recall(context, { limit: 5, includePrivate: true, scope });
782
+ result.contextual = await this.recall(context, {
783
+ limit: 5,
784
+ includePrivate: true,
785
+ scope: memoryScope,
786
+ agent: memoryAgent,
787
+ });
766
788
  }
767
789
  return result;
768
790
  }
769
791
  async dream(options = {}) {
770
792
  await this._ensureMigrated();
793
+ const agent = requireAgent(options.agent, this.agent);
771
794
  const consolidation = await this.consolidate({
772
795
  minClusterSize: options.minClusterSize,
773
796
  similarityThreshold: options.similarityThreshold,
797
+ agent,
774
798
  });
775
799
  const decay = this.decay({
776
800
  dormantThreshold: options.dormantThreshold,
801
+ agent,
777
802
  });
778
803
  const stats = this.introspect();
779
804
  const result = {
@@ -814,11 +839,12 @@ export class Audrey extends EventEmitter {
814
839
  return suggestParamsFn(this.db);
815
840
  }
816
841
  validate(input) {
842
+ input = { ...input, agent: requireAgent(input.agent, this.agent) };
817
843
  let preflightMetadata = null;
818
844
  if (input.preflightEventId) {
819
845
  const preflightEvent = this.db
820
- .prepare('SELECT event_type, metadata FROM memory_events WHERE id = ?')
821
- .get(input.preflightEventId);
846
+ .prepare('SELECT event_type, metadata FROM memory_events WHERE id = ? AND actor_agent = ?')
847
+ .get(input.preflightEventId, input.agent);
822
848
  if (!preflightEvent) {
823
849
  throw new ValidateLineageError('PREFLIGHT_NOT_FOUND', `preflight_event_id ${input.preflightEventId} was not found`);
824
850
  }
@@ -866,7 +892,7 @@ export class Audrey extends EventEmitter {
866
892
  insertEvent(this.db, {
867
893
  eventType: 'Validate',
868
894
  source: 'memory_validate',
869
- actorAgent: this.agent,
895
+ actorAgent: input.agent,
870
896
  outcome: eventOutcome,
871
897
  redactionState: 'clean',
872
898
  metadata: {
@@ -885,7 +911,9 @@ export class Audrey extends EventEmitter {
885
911
  return result;
886
912
  }
887
913
  impact(options = {}) {
888
- return buildImpactReport(this.db, options.windowDays ?? 7, options.limit ?? 5);
914
+ const scope = resolveMemoryScope(options.scope, 'agent');
915
+ const agent = scope === 'agent' ? requireAgent(options.agent, this.agent) : undefined;
916
+ return buildImpactReport(this.db, options.windowDays ?? 7, options.limit ?? 5, agent);
889
917
  }
890
918
  forget(id, options = {}) {
891
919
  const result = forgetMemory(this.db, id, options);
@@ -935,7 +963,7 @@ export class Audrey extends EventEmitter {
935
963
  observeTool(input) {
936
964
  const result = observeTool(this.db, {
937
965
  ...input,
938
- actorAgent: input.actorAgent ?? this.agent,
966
+ actorAgent: requireAgent(input.actorAgent, this.agent),
939
967
  });
940
968
  this.emit('tool-observed', result.event);
941
969
  return result;
@@ -947,7 +975,12 @@ export class Audrey extends EventEmitter {
947
975
  return countEvents(this.db, query);
948
976
  }
949
977
  recentFailures(options = {}) {
950
- return recentFailures(this.db, options);
978
+ const scope = resolveMemoryScope(options.scope, 'agent');
979
+ return recentFailures(this.db, {
980
+ since: options.since,
981
+ limit: options.limit,
982
+ ...(scope === 'agent' ? { actorAgent: requireAgent(options.actorAgent, this.agent) } : {}),
983
+ });
951
984
  }
952
985
  async capsule(query, options = {}) {
953
986
  const capsule = await buildCapsule(this, query, options);
@@ -975,7 +1008,7 @@ export class Audrey extends EventEmitter {
975
1008
  return report;
976
1009
  }
977
1010
  findPromotionCandidates(options = {}) {
978
- return findPromotionCandidates(this.db, options);
1011
+ return findPromotionCandidates(this.db, { ...options, agent: options.agent ?? this.agent });
979
1012
  }
980
1013
  async promote(options = {}) {
981
1014
  const target = options.target ?? 'claude-rules';
@@ -987,6 +1020,7 @@ export class Audrey extends EventEmitter {
987
1020
  minEvidence: options.minEvidence,
988
1021
  limit: options.limit,
989
1022
  target,
1023
+ agent: this.agent,
990
1024
  });
991
1025
  const dryRun = options.dryRun ?? !options.yes;
992
1026
  const projectDir = pathResolve(options.projectDir ?? process.cwd());