audrey 0.16.1 → 0.20.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 (188) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +146 -724
  3. package/dist/mcp-server/config.d.ts +20 -0
  4. package/dist/mcp-server/config.d.ts.map +1 -0
  5. package/dist/mcp-server/config.js +125 -0
  6. package/dist/mcp-server/config.js.map +1 -0
  7. package/dist/mcp-server/index.d.ts +100 -0
  8. package/dist/mcp-server/index.d.ts.map +1 -0
  9. package/dist/mcp-server/index.js +1113 -0
  10. package/dist/mcp-server/index.js.map +1 -0
  11. package/dist/src/adaptive.d.ts +7 -0
  12. package/dist/src/adaptive.d.ts.map +1 -0
  13. package/dist/src/adaptive.js +49 -0
  14. package/dist/src/adaptive.js.map +1 -0
  15. package/dist/src/affect.d.ts +19 -0
  16. package/dist/src/affect.d.ts.map +1 -0
  17. package/dist/src/affect.js +72 -0
  18. package/dist/src/affect.js.map +1 -0
  19. package/dist/src/audrey.d.ts +140 -0
  20. package/dist/src/audrey.d.ts.map +1 -0
  21. package/dist/src/audrey.js +564 -0
  22. package/dist/src/audrey.js.map +1 -0
  23. package/dist/src/capsule.d.ts +68 -0
  24. package/dist/src/capsule.d.ts.map +1 -0
  25. package/dist/src/capsule.js +311 -0
  26. package/dist/src/capsule.js.map +1 -0
  27. package/dist/src/causal.d.ts +28 -0
  28. package/dist/src/causal.d.ts.map +1 -0
  29. package/dist/src/causal.js +65 -0
  30. package/dist/src/causal.js.map +1 -0
  31. package/dist/src/confidence.d.ts +12 -0
  32. package/dist/src/confidence.d.ts.map +1 -0
  33. package/dist/src/confidence.js +63 -0
  34. package/dist/src/confidence.js.map +1 -0
  35. package/dist/src/consolidate.d.ts +8 -0
  36. package/dist/src/consolidate.d.ts.map +1 -0
  37. package/dist/src/consolidate.js +218 -0
  38. package/dist/src/consolidate.js.map +1 -0
  39. package/dist/src/context.d.ts +3 -0
  40. package/dist/src/context.d.ts.map +1 -0
  41. package/dist/src/context.js +19 -0
  42. package/dist/src/context.js.map +1 -0
  43. package/dist/src/db.d.ts +12 -0
  44. package/dist/src/db.d.ts.map +1 -0
  45. package/dist/src/db.js +380 -0
  46. package/dist/src/db.js.map +1 -0
  47. package/dist/src/decay.d.ts +7 -0
  48. package/dist/src/decay.d.ts.map +1 -0
  49. package/dist/src/decay.js +68 -0
  50. package/dist/src/decay.js.map +1 -0
  51. package/dist/src/embedding.d.ts +57 -0
  52. package/dist/src/embedding.d.ts.map +1 -0
  53. package/dist/src/embedding.js +254 -0
  54. package/dist/src/embedding.js.map +1 -0
  55. package/dist/src/encode.d.ts +15 -0
  56. package/dist/src/encode.d.ts.map +1 -0
  57. package/dist/src/encode.js +36 -0
  58. package/dist/src/encode.js.map +1 -0
  59. package/dist/src/events.d.ts +69 -0
  60. package/dist/src/events.d.ts.map +1 -0
  61. package/dist/src/events.js +149 -0
  62. package/dist/src/events.js.map +1 -0
  63. package/dist/src/export.d.ts +3 -0
  64. package/dist/src/export.d.ts.map +1 -0
  65. package/dist/src/export.js +46 -0
  66. package/dist/src/export.js.map +1 -0
  67. package/dist/src/forget.d.ts +11 -0
  68. package/dist/src/forget.d.ts.map +1 -0
  69. package/dist/src/forget.js +105 -0
  70. package/dist/src/forget.js.map +1 -0
  71. package/dist/src/fts.d.ts +34 -0
  72. package/dist/src/fts.d.ts.map +1 -0
  73. package/dist/src/fts.js +117 -0
  74. package/dist/src/fts.js.map +1 -0
  75. package/dist/src/hybrid-recall.d.ts +37 -0
  76. package/dist/src/hybrid-recall.d.ts.map +1 -0
  77. package/dist/src/hybrid-recall.js +213 -0
  78. package/dist/src/hybrid-recall.js.map +1 -0
  79. package/dist/src/import.d.ts +4 -0
  80. package/dist/src/import.d.ts.map +1 -0
  81. package/dist/src/import.js +127 -0
  82. package/dist/src/import.js.map +1 -0
  83. package/dist/src/index.d.ts +22 -0
  84. package/dist/src/index.d.ts.map +1 -0
  85. package/{src → dist/src}/index.js +5 -13
  86. package/dist/src/index.js.map +1 -0
  87. package/dist/src/interference.d.ts +13 -0
  88. package/dist/src/interference.d.ts.map +1 -0
  89. package/dist/src/interference.js +45 -0
  90. package/dist/src/interference.js.map +1 -0
  91. package/dist/src/introspect.d.ts +4 -0
  92. package/dist/src/introspect.d.ts.map +1 -0
  93. package/dist/src/introspect.js +40 -0
  94. package/dist/src/introspect.js.map +1 -0
  95. package/dist/src/llm.d.ts +38 -0
  96. package/dist/src/llm.d.ts.map +1 -0
  97. package/dist/src/llm.js +167 -0
  98. package/dist/src/llm.js.map +1 -0
  99. package/dist/src/migrate.d.ts +6 -0
  100. package/dist/src/migrate.d.ts.map +1 -0
  101. package/dist/src/migrate.js +51 -0
  102. package/dist/src/migrate.js.map +1 -0
  103. package/dist/src/promote.d.ts +40 -0
  104. package/dist/src/promote.d.ts.map +1 -0
  105. package/dist/src/promote.js +200 -0
  106. package/dist/src/promote.js.map +1 -0
  107. package/dist/src/prompts.d.ts +16 -0
  108. package/dist/src/prompts.d.ts.map +1 -0
  109. package/{src → dist/src}/prompts.js +172 -203
  110. package/dist/src/prompts.js.map +1 -0
  111. package/dist/src/recall.d.ts +9 -0
  112. package/dist/src/recall.d.ts.map +1 -0
  113. package/dist/src/recall.js +432 -0
  114. package/dist/src/recall.js.map +1 -0
  115. package/dist/src/redact.d.ts +27 -0
  116. package/dist/src/redact.d.ts.map +1 -0
  117. package/dist/src/redact.js +228 -0
  118. package/dist/src/redact.js.map +1 -0
  119. package/dist/src/rollback.d.ts +8 -0
  120. package/dist/src/rollback.d.ts.map +1 -0
  121. package/dist/src/rollback.js +33 -0
  122. package/dist/src/rollback.js.map +1 -0
  123. package/dist/src/routes.d.ts +7 -0
  124. package/dist/src/routes.d.ts.map +1 -0
  125. package/dist/src/routes.js +226 -0
  126. package/dist/src/routes.js.map +1 -0
  127. package/dist/src/rules-compiler.d.ts +20 -0
  128. package/dist/src/rules-compiler.d.ts.map +1 -0
  129. package/dist/src/rules-compiler.js +143 -0
  130. package/dist/src/rules-compiler.js.map +1 -0
  131. package/dist/src/server.d.ts +12 -0
  132. package/dist/src/server.d.ts.map +1 -0
  133. package/dist/src/server.js +22 -0
  134. package/dist/src/server.js.map +1 -0
  135. package/dist/src/tool-trace.d.ts +37 -0
  136. package/dist/src/tool-trace.d.ts.map +1 -0
  137. package/dist/src/tool-trace.js +142 -0
  138. package/dist/src/tool-trace.js.map +1 -0
  139. package/dist/src/types.d.ts +446 -0
  140. package/dist/src/types.d.ts.map +1 -0
  141. package/dist/src/types.js +6 -0
  142. package/dist/src/types.js.map +1 -0
  143. package/dist/src/ulid.d.ts +3 -0
  144. package/dist/src/ulid.d.ts.map +1 -0
  145. package/dist/src/ulid.js +11 -0
  146. package/dist/src/ulid.js.map +1 -0
  147. package/dist/src/utils.d.ts +10 -0
  148. package/dist/src/utils.d.ts.map +1 -0
  149. package/dist/src/utils.js +41 -0
  150. package/dist/src/utils.js.map +1 -0
  151. package/dist/src/validate.d.ts +22 -0
  152. package/dist/src/validate.d.ts.map +1 -0
  153. package/dist/src/validate.js +109 -0
  154. package/dist/src/validate.js.map +1 -0
  155. package/docs/assets/benchmarks/local-benchmark.svg +45 -0
  156. package/docs/assets/benchmarks/operations-benchmark.svg +45 -0
  157. package/docs/assets/benchmarks/published-memory-standards.svg +50 -0
  158. package/docs/benchmarking.md +151 -0
  159. package/docs/production-readiness.md +124 -0
  160. package/examples/fintech-ops-demo.js +67 -0
  161. package/examples/healthcare-ops-demo.js +67 -0
  162. package/examples/stripe-demo.js +105 -0
  163. package/package.json +53 -13
  164. package/mcp-server/config.js +0 -80
  165. package/mcp-server/index.js +0 -729
  166. package/src/adaptive.js +0 -53
  167. package/src/affect.js +0 -64
  168. package/src/audrey.js +0 -604
  169. package/src/causal.js +0 -95
  170. package/src/confidence.js +0 -120
  171. package/src/consolidate.js +0 -265
  172. package/src/context.js +0 -15
  173. package/src/db.js +0 -370
  174. package/src/decay.js +0 -84
  175. package/src/embedding.js +0 -256
  176. package/src/encode.js +0 -63
  177. package/src/export.js +0 -67
  178. package/src/forget.js +0 -111
  179. package/src/import.js +0 -245
  180. package/src/interference.js +0 -51
  181. package/src/introspect.js +0 -48
  182. package/src/llm.js +0 -246
  183. package/src/migrate.js +0 -58
  184. package/src/recall.js +0 -352
  185. package/src/rollback.js +0 -42
  186. package/src/ulid.js +0 -18
  187. package/src/utils.js +0 -38
  188. package/src/validate.js +0 -172
package/src/adaptive.js DELETED
@@ -1,53 +0,0 @@
1
- export function suggestConsolidationParams(db) {
2
- const runs = db.prepare(`
3
- SELECT min_cluster_size, similarity_threshold, clusters_found, principles_extracted, episodes_evaluated
4
- FROM consolidation_metrics
5
- ORDER BY created_at DESC
6
- LIMIT 20
7
- `).all();
8
-
9
- if (runs.length === 0) {
10
- return {
11
- minClusterSize: 3,
12
- similarityThreshold: 0.85,
13
- confidence: 'no_data',
14
- };
15
- }
16
-
17
- const paramScores = new Map();
18
- for (const run of runs) {
19
- if (run.episodes_evaluated === 0) continue;
20
- const key = `${run.min_cluster_size}:${run.similarity_threshold}`;
21
- if (!paramScores.has(key)) {
22
- paramScores.set(key, {
23
- minClusterSize: run.min_cluster_size,
24
- similarityThreshold: run.similarity_threshold,
25
- yields: [],
26
- });
27
- }
28
- paramScores.get(key).yields.push(run.principles_extracted / run.episodes_evaluated);
29
- }
30
-
31
- let bestKey = null;
32
- let bestAvgYield = -1;
33
- for (const [key, data] of paramScores) {
34
- const avg = data.yields.reduce((a, b) => a + b, 0) / data.yields.length;
35
- if (avg > bestAvgYield) {
36
- bestAvgYield = avg;
37
- bestKey = key;
38
- }
39
- }
40
-
41
- if (!bestKey) {
42
- return { minClusterSize: 3, similarityThreshold: 0.85, confidence: 'no_data' };
43
- }
44
-
45
- const best = paramScores.get(bestKey);
46
- const confidence = runs.length >= 5 ? 'high' : runs.length >= 2 ? 'medium' : 'low';
47
-
48
- return {
49
- minClusterSize: best.minClusterSize,
50
- similarityThreshold: best.similarityThreshold,
51
- confidence,
52
- };
53
- }
package/src/affect.js DELETED
@@ -1,64 +0,0 @@
1
- export function arousalSalienceBoost(arousal) {
2
- if (arousal === undefined || arousal === null) return 0;
3
- // Inverted-U (Yerkes-Dodson): peaks at 0.7, Gaussian sigma=0.3
4
- return Math.exp(-Math.pow(arousal - 0.7, 2) / (2 * 0.3 * 0.3));
5
- }
6
-
7
- export function affectSimilarity(a, b) {
8
- if (!a || !b) return 0;
9
- if (a.valence === undefined || b.valence === undefined) return 0;
10
- const valenceDist = Math.abs(a.valence - b.valence);
11
- const valenceSim = 1.0 - (valenceDist / 2.0);
12
- if (a.arousal === undefined || b.arousal === undefined) return valenceSim;
13
- const arousalSim = 1.0 - Math.abs(a.arousal - b.arousal);
14
- // Valence is primary (70%), arousal secondary (30%) per Bower 1981
15
- return 0.7 * valenceSim + 0.3 * arousalSim;
16
- }
17
-
18
- export function moodCongruenceModifier(encodingAffect, retrievalMood, weight = 0.2) {
19
- if (!encodingAffect || !retrievalMood) return 1.0;
20
- const similarity = affectSimilarity(encodingAffect, retrievalMood);
21
- if (similarity === 0) return 1.0;
22
- return 1.0 + (weight * similarity);
23
- }
24
-
25
- export async function detectResonance(db, embeddingProvider, episodeId, { content, affect }, config = {}) {
26
- const { enabled = true, k = 5, threshold = 0.5, affectThreshold = 0.6 } = config;
27
- if (!enabled || !affect || affect.valence === undefined) return [];
28
-
29
- const vector = await embeddingProvider.embed(content);
30
- const buffer = embeddingProvider.vectorToBuffer(vector);
31
-
32
- const matches = db.prepare(`
33
- SELECT e.*, (1.0 - v.distance) AS similarity
34
- FROM vec_episodes v
35
- JOIN episodes e ON e.id = v.id
36
- WHERE v.embedding MATCH ?
37
- AND k = ?
38
- AND e.id != ?
39
- AND e.superseded_by IS NULL
40
- `).all(buffer, k, episodeId);
41
-
42
- const resonances = [];
43
- for (const match of matches) {
44
- if (match.similarity < threshold) continue;
45
- let priorAffect;
46
- try { priorAffect = JSON.parse(match.affect || '{}'); } catch { continue; }
47
- if (priorAffect.valence === undefined) continue;
48
-
49
- const emotionalSimilarity = affectSimilarity(affect, priorAffect);
50
- if (emotionalSimilarity < affectThreshold) continue;
51
-
52
- resonances.push({
53
- priorEpisodeId: match.id,
54
- priorContent: match.content,
55
- priorAffect,
56
- semanticSimilarity: match.similarity,
57
- emotionalSimilarity,
58
- timeDeltaDays: Math.floor((Date.now() - new Date(match.created_at).getTime()) / 86400000),
59
- priorCreatedAt: match.created_at,
60
- });
61
- }
62
-
63
- return resonances;
64
- }