audrey 0.20.0 → 0.23.1

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 (156) hide show
  1. package/CHANGELOG.md +191 -0
  2. package/README.md +216 -117
  3. package/SECURITY.md +29 -0
  4. package/dist/mcp-server/config.d.ts +29 -4
  5. package/dist/mcp-server/config.d.ts.map +1 -1
  6. package/dist/mcp-server/config.js +100 -17
  7. package/dist/mcp-server/config.js.map +1 -1
  8. package/dist/mcp-server/index.d.ts +302 -25
  9. package/dist/mcp-server/index.d.ts.map +1 -1
  10. package/dist/mcp-server/index.js +1077 -74
  11. package/dist/mcp-server/index.js.map +1 -1
  12. package/dist/src/adaptive.d.ts.map +1 -1
  13. package/dist/src/adaptive.js +3 -1
  14. package/dist/src/adaptive.js.map +1 -1
  15. package/dist/src/affect.d.ts +4 -1
  16. package/dist/src/affect.d.ts.map +1 -1
  17. package/dist/src/affect.js +6 -4
  18. package/dist/src/affect.js.map +1 -1
  19. package/dist/src/audrey.d.ts +58 -4
  20. package/dist/src/audrey.d.ts.map +1 -1
  21. package/dist/src/audrey.js +469 -62
  22. package/dist/src/audrey.js.map +1 -1
  23. package/dist/src/capsule.d.ts +2 -1
  24. package/dist/src/capsule.d.ts.map +1 -1
  25. package/dist/src/capsule.js +14 -4
  26. package/dist/src/capsule.js.map +1 -1
  27. package/dist/src/causal.d.ts.map +1 -1
  28. package/dist/src/causal.js +20 -2
  29. package/dist/src/causal.js.map +1 -1
  30. package/dist/src/confidence.d.ts.map +1 -1
  31. package/dist/src/confidence.js +3 -0
  32. package/dist/src/confidence.js.map +1 -1
  33. package/dist/src/consolidate.d.ts +1 -0
  34. package/dist/src/consolidate.d.ts.map +1 -1
  35. package/dist/src/consolidate.js +35 -19
  36. package/dist/src/consolidate.js.map +1 -1
  37. package/dist/src/controller.d.ts +38 -0
  38. package/dist/src/controller.d.ts.map +1 -0
  39. package/dist/src/controller.js +169 -0
  40. package/dist/src/controller.js.map +1 -0
  41. package/dist/src/db.d.ts.map +1 -1
  42. package/dist/src/db.js +12 -0
  43. package/dist/src/db.js.map +1 -1
  44. package/dist/src/decay.d.ts.map +1 -1
  45. package/dist/src/decay.js +57 -50
  46. package/dist/src/decay.js.map +1 -1
  47. package/dist/src/embedding.d.ts.map +1 -1
  48. package/dist/src/embedding.js +31 -3
  49. package/dist/src/embedding.js.map +1 -1
  50. package/dist/src/encode.d.ts +9 -2
  51. package/dist/src/encode.d.ts.map +1 -1
  52. package/dist/src/encode.js +21 -8
  53. package/dist/src/encode.js.map +1 -1
  54. package/dist/src/export.d.ts.map +1 -1
  55. package/dist/src/export.js +5 -3
  56. package/dist/src/export.js.map +1 -1
  57. package/dist/src/feedback.d.ts +29 -0
  58. package/dist/src/feedback.d.ts.map +1 -0
  59. package/dist/src/feedback.js +123 -0
  60. package/dist/src/feedback.js.map +1 -0
  61. package/dist/src/forget.d.ts.map +1 -1
  62. package/dist/src/forget.js +58 -50
  63. package/dist/src/forget.js.map +1 -1
  64. package/dist/src/fts.js +1 -1
  65. package/dist/src/fts.js.map +1 -1
  66. package/dist/src/hybrid-recall.d.ts +2 -1
  67. package/dist/src/hybrid-recall.d.ts.map +1 -1
  68. package/dist/src/hybrid-recall.js +35 -26
  69. package/dist/src/hybrid-recall.js.map +1 -1
  70. package/dist/src/impact.d.ts +47 -0
  71. package/dist/src/impact.d.ts.map +1 -0
  72. package/dist/src/impact.js +146 -0
  73. package/dist/src/impact.js.map +1 -0
  74. package/dist/src/import.d.ts +177 -1
  75. package/dist/src/import.d.ts.map +1 -1
  76. package/dist/src/import.js +206 -17
  77. package/dist/src/import.js.map +1 -1
  78. package/dist/src/index.d.ts +8 -0
  79. package/dist/src/index.d.ts.map +1 -1
  80. package/dist/src/index.js +4 -0
  81. package/dist/src/index.js.map +1 -1
  82. package/dist/src/interference.d.ts +5 -2
  83. package/dist/src/interference.d.ts.map +1 -1
  84. package/dist/src/interference.js +27 -20
  85. package/dist/src/interference.js.map +1 -1
  86. package/dist/src/llm.d.ts.map +1 -1
  87. package/dist/src/llm.js +1 -0
  88. package/dist/src/llm.js.map +1 -1
  89. package/dist/src/migrate.d.ts.map +1 -1
  90. package/dist/src/migrate.js +21 -9
  91. package/dist/src/migrate.js.map +1 -1
  92. package/dist/src/preflight.d.ts +52 -0
  93. package/dist/src/preflight.d.ts.map +1 -0
  94. package/dist/src/preflight.js +221 -0
  95. package/dist/src/preflight.js.map +1 -0
  96. package/dist/src/profile.d.ts +23 -0
  97. package/dist/src/profile.d.ts.map +1 -0
  98. package/dist/src/profile.js +51 -0
  99. package/dist/src/profile.js.map +1 -0
  100. package/dist/src/promote.d.ts.map +1 -1
  101. package/dist/src/promote.js +2 -3
  102. package/dist/src/promote.js.map +1 -1
  103. package/dist/src/prompts.d.ts.map +1 -1
  104. package/dist/src/prompts.js +76 -47
  105. package/dist/src/prompts.js.map +1 -1
  106. package/dist/src/recall.d.ts +9 -6
  107. package/dist/src/recall.d.ts.map +1 -1
  108. package/dist/src/recall.js +182 -40
  109. package/dist/src/recall.js.map +1 -1
  110. package/dist/src/redact.d.ts +7 -1
  111. package/dist/src/redact.d.ts.map +1 -1
  112. package/dist/src/redact.js +94 -11
  113. package/dist/src/redact.js.map +1 -1
  114. package/dist/src/reflexes.d.ts +35 -0
  115. package/dist/src/reflexes.d.ts.map +1 -0
  116. package/dist/src/reflexes.js +87 -0
  117. package/dist/src/reflexes.js.map +1 -0
  118. package/dist/src/rollback.d.ts.map +1 -1
  119. package/dist/src/rollback.js +9 -4
  120. package/dist/src/rollback.js.map +1 -1
  121. package/dist/src/routes.d.ts +1 -0
  122. package/dist/src/routes.d.ts.map +1 -1
  123. package/dist/src/routes.js +267 -11
  124. package/dist/src/routes.js.map +1 -1
  125. package/dist/src/rules-compiler.d.ts.map +1 -1
  126. package/dist/src/rules-compiler.js +36 -6
  127. package/dist/src/rules-compiler.js.map +1 -1
  128. package/dist/src/server.d.ts +2 -1
  129. package/dist/src/server.d.ts.map +1 -1
  130. package/dist/src/server.js +42 -4
  131. package/dist/src/server.js.map +1 -1
  132. package/dist/src/tool-trace.d.ts.map +1 -1
  133. package/dist/src/tool-trace.js +42 -29
  134. package/dist/src/tool-trace.js.map +1 -1
  135. package/dist/src/types.d.ts +28 -1
  136. package/dist/src/types.d.ts.map +1 -1
  137. package/dist/src/ulid.d.ts.map +1 -1
  138. package/dist/src/ulid.js +52 -2
  139. package/dist/src/ulid.js.map +1 -1
  140. package/dist/src/utils.d.ts.map +1 -1
  141. package/dist/src/utils.js +8 -1
  142. package/dist/src/utils.js.map +1 -1
  143. package/dist/src/validate.d.ts +2 -0
  144. package/dist/src/validate.d.ts.map +1 -1
  145. package/dist/src/validate.js +60 -29
  146. package/dist/src/validate.js.map +1 -1
  147. package/docs/assets/audrey-feature-grid.jpg +0 -0
  148. package/docs/assets/audrey-logo.svg +45 -0
  149. package/docs/assets/audrey-wordmark.png +0 -0
  150. package/examples/ollama-memory-agent.js +326 -0
  151. package/package.json +35 -22
  152. package/docs/assets/benchmarks/local-benchmark.svg +0 -45
  153. package/docs/assets/benchmarks/operations-benchmark.svg +0 -45
  154. package/docs/assets/benchmarks/published-memory-standards.svg +0 -50
  155. package/docs/benchmarking.md +0 -151
  156. package/docs/production-readiness.md +0 -124
@@ -20,37 +20,34 @@ import { sourceReliability } from './confidence.js';
20
20
  const RRF_K = 60;
21
21
  const VECTOR_WEIGHT = 0.3;
22
22
  const FTS_WEIGHT = 0.7;
23
- export function ftsIdsByType(db, query, types, limit) {
23
+ export function ftsIdsByType(db, query, types, limit, agentFilter = undefined) {
24
24
  const sanitized = sanitizeFTSQuery(query);
25
25
  const out = new Map();
26
26
  if (!sanitized)
27
27
  return out;
28
- try {
29
- if (types.includes('episodic')) {
30
- const hits = searchFTSEpisodes(db, sanitized, limit);
31
- out.set('episodic', hits.map(h => h.id));
32
- }
33
- if (types.includes('semantic')) {
34
- const hits = searchFTSSemantics(db, sanitized, limit);
35
- out.set('semantic', hits.map(h => h.id));
36
- }
37
- if (types.includes('procedural')) {
38
- const hits = searchFTSProcedures(db, sanitized, limit);
39
- out.set('procedural', hits.map(h => h.id));
40
- }
28
+ if (types.includes('episodic')) {
29
+ const hits = searchFTSEpisodes(db, sanitized, limit, agentFilter ?? null);
30
+ out.set('episodic', hits.map(h => h.id));
41
31
  }
42
- catch {
43
- // FTS tables may not exist on very old DBs. Return whatever we collected so far.
32
+ if (types.includes('semantic')) {
33
+ const hits = searchFTSSemantics(db, sanitized, limit, agentFilter ?? null);
34
+ out.set('semantic', hits.map(h => h.id));
35
+ }
36
+ if (types.includes('procedural')) {
37
+ const hits = searchFTSProcedures(db, sanitized, limit, agentFilter ?? null);
38
+ out.set('procedural', hits.map(h => h.id));
44
39
  }
45
40
  return out;
46
41
  }
47
- function loadFtsOnlyEpisode(db, id, includePrivate, filters) {
42
+ function loadFtsOnlyEpisode(db, id, includePrivate, filters, agentFilter) {
48
43
  const row = db.prepare(`
49
- SELECT id, content, source, source_reliability, created_at, superseded_by, "private", tags
44
+ SELECT id, content, source, agent, source_reliability, created_at, superseded_by, "private", tags
50
45
  FROM episodes WHERE id = ?
51
46
  `).get(id);
52
47
  if (!row)
53
48
  return null;
49
+ if (agentFilter && row.agent !== agentFilter)
50
+ return null;
54
51
  if (row.superseded_by)
55
52
  return null;
56
53
  if (!includePrivate && row.private)
@@ -64,16 +61,19 @@ function loadFtsOnlyEpisode(db, id, includePrivate, filters) {
64
61
  confidence: row.source_reliability ?? sourceReliability(row.source),
65
62
  score: 0,
66
63
  source: row.source,
64
+ agent: row.agent ?? 'default',
67
65
  createdAt: row.created_at,
68
66
  };
69
67
  }
70
- function loadFtsOnlySemantic(db, id, includeDormant, filters) {
68
+ function loadFtsOnlySemantic(db, id, includeDormant, filters, agentFilter) {
71
69
  const row = db.prepare(`
72
- SELECT id, content, state, evidence_count, supporting_count, contradicting_count, created_at
70
+ SELECT id, content, agent, state, evidence_count, supporting_count, contradicting_count, created_at
73
71
  FROM semantics WHERE id = ?
74
72
  `).get(id);
75
73
  if (!row)
76
74
  return null;
75
+ if (agentFilter && row.agent !== agentFilter)
76
+ return null;
77
77
  const allowed = includeDormant
78
78
  ? ['active', 'context_dependent', 'dormant']
79
79
  : ['active', 'context_dependent'];
@@ -90,17 +90,20 @@ function loadFtsOnlySemantic(db, id, includeDormant, filters) {
90
90
  confidence,
91
91
  score: 0,
92
92
  source: 'consolidation',
93
+ agent: row.agent ?? 'default',
93
94
  state: row.state,
94
95
  createdAt: row.created_at,
95
96
  };
96
97
  }
97
- function loadFtsOnlyProcedural(db, id, includeDormant, filters) {
98
+ function loadFtsOnlyProcedural(db, id, includeDormant, filters, agentFilter) {
98
99
  const row = db.prepare(`
99
- SELECT id, content, state, success_count, failure_count, created_at
100
+ SELECT id, content, agent, state, success_count, failure_count, created_at
100
101
  FROM procedures WHERE id = ?
101
102
  `).get(id);
102
103
  if (!row)
103
104
  return null;
105
+ if (agentFilter && row.agent !== agentFilter)
106
+ return null;
104
107
  const allowed = includeDormant
105
108
  ? ['active', 'context_dependent', 'dormant']
106
109
  : ['active', 'context_dependent'];
@@ -117,6 +120,7 @@ function loadFtsOnlyProcedural(db, id, includeDormant, filters) {
117
120
  confidence,
118
121
  score: 0,
119
122
  source: 'consolidation',
123
+ agent: row.agent ?? 'default',
120
124
  state: row.state,
121
125
  createdAt: row.created_at,
122
126
  };
@@ -130,6 +134,11 @@ function passesDateFilters(createdAt, filters) {
130
134
  return false;
131
135
  return true;
132
136
  }
137
+ function matchesTagFilters(rowTags, requiredTags) {
138
+ if (!requiredTags?.length)
139
+ return true;
140
+ return requiredTags.every(tag => rowTags.includes(tag));
141
+ }
133
142
  function passesFilters(row, filters) {
134
143
  if (!passesDateFilters(row.created_at, filters))
135
144
  return false;
@@ -145,7 +154,7 @@ function passesFilters(row, filters) {
145
154
  catch {
146
155
  rowTags = [];
147
156
  }
148
- if (!filters.tags.some(t => rowTags.includes(t)))
157
+ if (!matchesTagFilters(rowTags, filters.tags))
149
158
  return false;
150
159
  }
151
160
  return true;
@@ -183,11 +192,11 @@ export function fuseResults(db, input) {
183
192
  let result = existing ?? null;
184
193
  if (!result) {
185
194
  if (ranks.type === 'episodic')
186
- result = loadFtsOnlyEpisode(db, id, includePrivate, input.filters);
195
+ result = loadFtsOnlyEpisode(db, id, includePrivate, input.filters, input.agentFilter);
187
196
  else if (ranks.type === 'semantic')
188
- result = loadFtsOnlySemantic(db, id, includeDormant, input.filters);
197
+ result = loadFtsOnlySemantic(db, id, includeDormant, input.filters, input.agentFilter);
189
198
  else if (ranks.type === 'procedural')
190
- result = loadFtsOnlyProcedural(db, id, includeDormant, input.filters);
199
+ result = loadFtsOnlyProcedural(db, id, includeDormant, input.filters, input.agentFilter);
191
200
  if (!result)
192
201
  continue;
193
202
  if (result.confidence < minConfidence)
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid-recall.js","sourceRoot":"","sources":["../../src/hybrid-recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,UAAU,GAAG,GAAG,CAAC;AAiCvB,MAAM,UAAU,YAAY,CAC1B,EAAqB,EACrB,KAAa,EACb,KAAmB,EACnB,KAAa;IAEb,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAC3B,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACtD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACvD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iFAAiF;IACnF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAqB,EAAE,EAAU,EAAE,cAAuB,EAAE,OAAgC;IACtH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGtB,CAAC,CAAC,GAAG,CAAC,EAAE,CAA8B,CAAC;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,GAAG,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAe,CAAC;QAC5E,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB,EAAE,EAAU,EAAE,cAAuB,EAAE,OAAgC;IACvH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGtB,CAAC,CAAC,GAAG,CAAC,EAAE,CAA+B,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,OAAO,GAAG,cAAc;QAC5B,CAAC,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,CAAC;QAC5C,CAAC,CAAC,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACpE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,UAAU;QAChB,UAAU;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,GAAG,CAAC,KAAc;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAqB,EAAE,EAAU,EAAE,cAAuB,EAAE,OAAgC;IACzH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGtB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAiC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,OAAO,GAAG,cAAc;QAC5B,CAAC,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,CAAC;QAC5C,CAAC,CAAC,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACjE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,YAAY;QAClB,UAAU;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,GAAG,CAAC,KAAc;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AASD,SAAS,iBAAiB,CAAC,SAAoC,EAAE,OAAoB;IACnF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAkB,EAAE,OAAoB;IAC7D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAYD,MAAM,UAAU,WAAW,CAAC,EAAqB,EAAE,KAAgB;IACjE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC;IACrD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC;IACrD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;IAE/C,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC;IAE5C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgE,CAAC;IAE9F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAuB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,KAAK,GAAmB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS;QAE9D,IAAI,MAAM,GAAwB,QAAQ,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,MAAM,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC7F,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;iBACnG,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,MAAM,GAAG,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5G,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,IAAI,MAAM,CAAC,UAAU,GAAG,aAAa;gBAAE,SAAS;QAClD,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,GAAG,GACP,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,IAAI,UAAkB,CAAC;QACvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACpC,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,GAAG,GAAG,UAAU,CAAC;QAC5D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"hybrid-recall.js","sourceRoot":"","sources":["../../src/hybrid-recall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import Database from 'better-sqlite3';
2
+ export interface ImpactRow {
3
+ id: string;
4
+ type: 'episodic' | 'semantic' | 'procedural';
5
+ content: string;
6
+ salience: number;
7
+ usage_count: number;
8
+ last_used_at: string | null;
9
+ }
10
+ export interface ImpactReport {
11
+ generatedAt: string;
12
+ windowDays: number;
13
+ totals: {
14
+ episodic: number;
15
+ semantic: number;
16
+ procedural: number;
17
+ };
18
+ validatedTotal: number;
19
+ validatedInWindow: number;
20
+ byType: {
21
+ episodic: {
22
+ validated: number;
23
+ recent: number;
24
+ };
25
+ semantic: {
26
+ validated: number;
27
+ recent: number;
28
+ challenged: number;
29
+ };
30
+ procedural: {
31
+ validated: number;
32
+ recent: number;
33
+ };
34
+ };
35
+ /** Per-outcome breakdown over the configured window, sourced from memory_events. */
36
+ outcomeBreakdownInWindow: {
37
+ helpful: number;
38
+ wrong: number;
39
+ used: number;
40
+ };
41
+ topUsed: ImpactRow[];
42
+ weakest: ImpactRow[];
43
+ recentActivity: ImpactRow[];
44
+ }
45
+ export declare function buildImpactReport(db: Database.Database, windowDays?: number, limit?: number): ImpactReport;
46
+ export declare function formatImpactReport(report: ImpactReport): string;
47
+ //# sourceMappingURL=impact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/impact.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE;QACN,QAAQ,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,QAAQ,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACpE,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD,CAAC;IACF,oFAAoF;IACpF,wBAAwB,EAAE;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,EAAE,SAAS,EAAE,CAAC;CAC7B;AAgED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,SAAI,EAAE,KAAK,SAAI,GAAG,YAAY,CA4DhG;AAOD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA8C/D"}
@@ -0,0 +1,146 @@
1
+ function rowsFromTable(db, table, type, orderBy, whereClause, limit) {
2
+ const sql = `
3
+ SELECT id, content, salience, usage_count, last_used_at
4
+ FROM ${table}
5
+ WHERE ${whereClause}
6
+ ORDER BY ${orderBy}
7
+ LIMIT ?
8
+ `;
9
+ const rows = db.prepare(sql).all(limit);
10
+ return rows.map(r => ({
11
+ id: r.id,
12
+ type,
13
+ content: r.content,
14
+ salience: r.salience ?? 0.5,
15
+ usage_count: r.usage_count ?? 0,
16
+ last_used_at: r.last_used_at,
17
+ }));
18
+ }
19
+ function topAcrossTables(db, orderBy, whereClause, limit) {
20
+ const all = [
21
+ ...rowsFromTable(db, 'episodes', 'episodic', orderBy, whereClause, limit),
22
+ ...rowsFromTable(db, 'semantics', 'semantic', orderBy, whereClause + " AND state != 'rolled_back'", limit),
23
+ ...rowsFromTable(db, 'procedures', 'procedural', orderBy, whereClause + " AND state != 'rolled_back'", limit),
24
+ ];
25
+ // Re-sort the merged list and trim. The ORDER BY clause is the same across
26
+ // all three queries so a stable lexical secondary on id keeps merges deterministic.
27
+ if (orderBy.startsWith('usage_count DESC')) {
28
+ all.sort((a, b) => (b.usage_count - a.usage_count) || a.id.localeCompare(b.id));
29
+ }
30
+ else if (orderBy.startsWith('salience ASC')) {
31
+ all.sort((a, b) => (a.salience - b.salience) || a.id.localeCompare(b.id));
32
+ }
33
+ else if (orderBy.startsWith('last_used_at DESC')) {
34
+ all.sort((a, b) => {
35
+ const aT = a.last_used_at ?? '';
36
+ const bT = b.last_used_at ?? '';
37
+ return bT.localeCompare(aT) || a.id.localeCompare(b.id);
38
+ });
39
+ }
40
+ return all.slice(0, limit);
41
+ }
42
+ export function buildImpactReport(db, windowDays = 7, limit = 5) {
43
+ const now = new Date();
44
+ const sinceISO = new Date(now.getTime() - windowDays * 86_400_000).toISOString();
45
+ const totalEp = db.prepare('SELECT COUNT(*) as c FROM episodes').get().c;
46
+ const totalSem = db.prepare("SELECT COUNT(*) as c FROM semantics WHERE state != 'rolled_back'").get().c;
47
+ const totalProc = db.prepare("SELECT COUNT(*) as c FROM procedures WHERE state != 'rolled_back'").get().c;
48
+ const validatedEp = db.prepare('SELECT COUNT(*) as c FROM episodes WHERE usage_count > 0').get().c;
49
+ const validatedSem = db.prepare("SELECT COUNT(*) as c FROM semantics WHERE usage_count > 0 AND state != 'rolled_back'").get().c;
50
+ const validatedProc = db.prepare("SELECT COUNT(*) as c FROM procedures WHERE usage_count > 0 AND state != 'rolled_back'").get().c;
51
+ const recentEp = db.prepare('SELECT COUNT(*) as c FROM episodes WHERE last_used_at >= ?').get(sinceISO).c;
52
+ const recentSem = db.prepare("SELECT COUNT(*) as c FROM semantics WHERE last_used_at >= ? AND state != 'rolled_back'").get(sinceISO).c;
53
+ const recentProc = db.prepare("SELECT COUNT(*) as c FROM procedures WHERE last_used_at >= ? AND state != 'rolled_back'").get(sinceISO).c;
54
+ const challenged = (db.prepare("SELECT SUM(challenge_count) as c FROM semantics WHERE state != 'rolled_back'").get()).c ?? 0;
55
+ // Per-outcome breakdown comes from the memory_events audit trail. Each
56
+ // memory_validate call writes a row with metadata.outcome = used|helpful|wrong.
57
+ // Cumulative counters on the memories tables can't distinguish outcomes,
58
+ // hence the audit trail.
59
+ const validateEvents = db.prepare("SELECT metadata FROM memory_events WHERE event_type = 'Validate' AND created_at >= ?").all(sinceISO);
60
+ const outcomeBreakdownInWindow = { helpful: 0, wrong: 0, used: 0 };
61
+ for (const evt of validateEvents) {
62
+ if (!evt.metadata)
63
+ continue;
64
+ try {
65
+ const meta = JSON.parse(evt.metadata);
66
+ if (meta.outcome === 'helpful')
67
+ outcomeBreakdownInWindow.helpful++;
68
+ else if (meta.outcome === 'wrong')
69
+ outcomeBreakdownInWindow.wrong++;
70
+ else if (meta.outcome === 'used')
71
+ outcomeBreakdownInWindow.used++;
72
+ }
73
+ catch {
74
+ // Skip malformed metadata silently — audit reports shouldn't fail on bad rows.
75
+ }
76
+ }
77
+ return {
78
+ generatedAt: now.toISOString(),
79
+ windowDays,
80
+ totals: {
81
+ episodic: totalEp,
82
+ semantic: totalSem,
83
+ procedural: totalProc,
84
+ },
85
+ validatedTotal: validatedEp + validatedSem + validatedProc,
86
+ validatedInWindow: recentEp + recentSem + recentProc,
87
+ byType: {
88
+ episodic: { validated: validatedEp, recent: recentEp },
89
+ semantic: { validated: validatedSem, recent: recentSem, challenged },
90
+ procedural: { validated: validatedProc, recent: recentProc },
91
+ },
92
+ outcomeBreakdownInWindow,
93
+ topUsed: topAcrossTables(db, 'usage_count DESC, id', 'usage_count > 0', limit),
94
+ weakest: topAcrossTables(db, 'salience ASC, id', 'salience IS NOT NULL', limit),
95
+ // sinceISO is generated by new Date().toISOString() so the embedded literal is
96
+ // safe; topAcrossTables doesn't accept bound params.
97
+ recentActivity: topAcrossTables(db, 'last_used_at DESC, id', `last_used_at >= '${sinceISO}'`, limit),
98
+ };
99
+ }
100
+ function truncateContent(s, max = 80) {
101
+ if (s.length <= max)
102
+ return s;
103
+ return s.slice(0, max - 1) + '…';
104
+ }
105
+ export function formatImpactReport(report) {
106
+ const lines = [];
107
+ lines.push(`Audrey Impact (${report.windowDays}-day window)`);
108
+ lines.push(`Generated: ${report.generatedAt}`);
109
+ lines.push('');
110
+ const totalMemories = report.totals.episodic + report.totals.semantic + report.totals.procedural;
111
+ lines.push(`Memories: ${totalMemories} total (${report.totals.episodic} episodic, ${report.totals.semantic} semantic, ${report.totals.procedural} procedural)`);
112
+ lines.push(`Validated: ${report.validatedTotal} all-time, ${report.validatedInWindow} in last ${report.windowDays} days`);
113
+ const o = report.outcomeBreakdownInWindow;
114
+ if (o.helpful + o.wrong + o.used > 0) {
115
+ lines.push(`Outcomes (last ${report.windowDays} days): ${o.helpful} helpful, ${o.wrong} wrong, ${o.used} used`);
116
+ }
117
+ lines.push('');
118
+ lines.push('By type:');
119
+ lines.push(` Episodic: ${report.byType.episodic.validated} validated, ${report.byType.episodic.recent} recent`);
120
+ lines.push(` Semantic: ${report.byType.semantic.validated} validated, ${report.byType.semantic.recent} recent, ${report.byType.semantic.challenged} challenges recorded`);
121
+ lines.push(` Procedural: ${report.byType.procedural.validated} validated, ${report.byType.procedural.recent} recent`);
122
+ lines.push('');
123
+ if (report.topUsed.length > 0) {
124
+ lines.push('Top validated:');
125
+ for (const r of report.topUsed) {
126
+ lines.push(` ${r.usage_count}x [${r.type}] ${truncateContent(r.content)}`);
127
+ }
128
+ lines.push('');
129
+ }
130
+ if (report.weakest.length > 0) {
131
+ lines.push('Weakest (lowest salience — candidates to review or forget):');
132
+ for (const r of report.weakest) {
133
+ lines.push(` salience=${r.salience.toFixed(2)} [${r.type}] ${truncateContent(r.content)}`);
134
+ }
135
+ lines.push('');
136
+ }
137
+ if (report.recentActivity.length > 0) {
138
+ lines.push(`Recent activity (last ${report.windowDays} days):`);
139
+ for (const r of report.recentActivity) {
140
+ const when = r.last_used_at ? r.last_used_at.replace('T', ' ').slice(0, 19) : '—';
141
+ lines.push(` ${when} [${r.type}] ${truncateContent(r.content)}`);
142
+ }
143
+ }
144
+ return lines.join('\n');
145
+ }
146
+ //# sourceMappingURL=impact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/impact.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,180 @@
1
1
  import Database from 'better-sqlite3';
2
+ import { z } from 'zod';
2
3
  import type { EmbeddingProvider } from './types.js';
3
- export declare function importMemories(db: Database.Database, embeddingProvider: EmbeddingProvider, snapshot: any): Promise<void>;
4
+ export declare const MAX_IMPORT_CONTENT_LENGTH = 50000;
5
+ export declare const MAX_IMPORT_ROWS_PER_SECTION = 25000;
6
+ export declare const MAX_IMPORT_TOTAL_CONTENT_BYTES = 25000000;
7
+ export declare const importSnapshotSchema: z.ZodObject<{
8
+ version: z.ZodString;
9
+ exportedAt: z.ZodOptional<z.ZodString>;
10
+ episodes: z.ZodArray<z.ZodObject<{
11
+ id: z.ZodString;
12
+ content: z.ZodString;
13
+ source: z.ZodEnum<{
14
+ "direct-observation": "direct-observation";
15
+ "told-by-user": "told-by-user";
16
+ "tool-result": "tool-result";
17
+ inference: "inference";
18
+ "model-generated": "model-generated";
19
+ }>;
20
+ agent: z.ZodOptional<z.ZodString>;
21
+ source_reliability: z.ZodOptional<z.ZodNumber>;
22
+ salience: z.ZodOptional<z.ZodNumber>;
23
+ context: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
24
+ affect: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
25
+ tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
26
+ causal_trigger: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
+ causal_consequence: z.ZodOptional<z.ZodNullable<z.ZodString>>;
28
+ created_at: z.ZodString;
29
+ embedding_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
+ embedding_version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
31
+ supersedes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ superseded_by: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
+ consolidated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>>;
34
+ private: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>>;
35
+ }, z.core.$strip>>;
36
+ semantics: z.ZodOptional<z.ZodArray<z.ZodObject<{
37
+ id: z.ZodString;
38
+ content: z.ZodString;
39
+ agent: z.ZodOptional<z.ZodString>;
40
+ state: z.ZodEnum<{
41
+ active: "active";
42
+ disputed: "disputed";
43
+ superseded: "superseded";
44
+ context_dependent: "context_dependent";
45
+ dormant: "dormant";
46
+ rolled_back: "rolled_back";
47
+ }>;
48
+ conditions: z.ZodOptional<z.ZodNullable<z.ZodString>>;
49
+ evidence_episode_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
50
+ evidence_count: z.ZodOptional<z.ZodNumber>;
51
+ supporting_count: z.ZodOptional<z.ZodNumber>;
52
+ contradicting_count: z.ZodOptional<z.ZodNumber>;
53
+ source_type_diversity: z.ZodOptional<z.ZodNumber>;
54
+ consolidation_checkpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
55
+ embedding_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ embedding_version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
+ consolidation_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
58
+ consolidation_prompt_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
+ created_at: z.ZodString;
60
+ last_reinforced_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
61
+ retrieval_count: z.ZodOptional<z.ZodNumber>;
62
+ challenge_count: z.ZodOptional<z.ZodNumber>;
63
+ interference_count: z.ZodOptional<z.ZodNumber>;
64
+ salience: z.ZodOptional<z.ZodNumber>;
65
+ }, z.core.$strip>>>;
66
+ procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
67
+ id: z.ZodString;
68
+ content: z.ZodString;
69
+ agent: z.ZodOptional<z.ZodString>;
70
+ state: z.ZodEnum<{
71
+ active: "active";
72
+ disputed: "disputed";
73
+ superseded: "superseded";
74
+ context_dependent: "context_dependent";
75
+ dormant: "dormant";
76
+ rolled_back: "rolled_back";
77
+ }>;
78
+ trigger_conditions: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
+ evidence_episode_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
+ success_count: z.ZodOptional<z.ZodNumber>;
81
+ failure_count: z.ZodOptional<z.ZodNumber>;
82
+ embedding_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
83
+ embedding_version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
84
+ created_at: z.ZodString;
85
+ last_reinforced_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
86
+ retrieval_count: z.ZodOptional<z.ZodNumber>;
87
+ interference_count: z.ZodOptional<z.ZodNumber>;
88
+ salience: z.ZodOptional<z.ZodNumber>;
89
+ }, z.core.$strip>>>;
90
+ causalLinks: z.ZodOptional<z.ZodArray<z.ZodObject<{
91
+ id: z.ZodString;
92
+ cause_id: z.ZodString;
93
+ effect_id: z.ZodString;
94
+ link_type: z.ZodOptional<z.ZodEnum<{
95
+ causal: "causal";
96
+ correlational: "correlational";
97
+ temporal: "temporal";
98
+ }>>;
99
+ mechanism: z.ZodOptional<z.ZodNullable<z.ZodString>>;
100
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
101
+ evidence_count: z.ZodOptional<z.ZodNumber>;
102
+ created_at: z.ZodString;
103
+ }, z.core.$strip>>>;
104
+ contradictions: z.ZodOptional<z.ZodArray<z.ZodObject<{
105
+ id: z.ZodString;
106
+ claim_a_id: z.ZodString;
107
+ claim_a_type: z.ZodString;
108
+ claim_b_id: z.ZodString;
109
+ claim_b_type: z.ZodString;
110
+ state: z.ZodEnum<{
111
+ context_dependent: "context_dependent";
112
+ open: "open";
113
+ resolved: "resolved";
114
+ reopened: "reopened";
115
+ }>;
116
+ resolution: z.ZodOptional<z.ZodNullable<z.ZodString>>;
117
+ resolved_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
118
+ reopened_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
119
+ reopen_evidence_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
120
+ created_at: z.ZodString;
121
+ }, z.core.$strip>>>;
122
+ consolidationRuns: z.ZodOptional<z.ZodArray<z.ZodObject<{
123
+ id: z.ZodString;
124
+ checkpoint_cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
125
+ input_episode_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
126
+ output_memory_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
127
+ confidence_deltas: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
128
+ consolidation_model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
129
+ consolidation_prompt_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
130
+ started_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
131
+ completed_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
132
+ status: z.ZodEnum<{
133
+ rolled_back: "rolled_back";
134
+ running: "running";
135
+ completed: "completed";
136
+ failed: "failed";
137
+ }>;
138
+ }, z.core.$strip>>>;
139
+ consolidationMetrics: z.ZodOptional<z.ZodArray<z.ZodObject<{
140
+ id: z.ZodString;
141
+ run_id: z.ZodString;
142
+ min_cluster_size: z.ZodNumber;
143
+ similarity_threshold: z.ZodNumber;
144
+ episodes_evaluated: z.ZodNumber;
145
+ clusters_found: z.ZodNumber;
146
+ principles_extracted: z.ZodNumber;
147
+ created_at: z.ZodString;
148
+ }, z.core.$strip>>>;
149
+ memoryEvents: z.ZodOptional<z.ZodArray<z.ZodObject<{
150
+ id: z.ZodString;
151
+ session_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
152
+ event_type: z.ZodString;
153
+ source: z.ZodString;
154
+ actor_agent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
155
+ tool_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
156
+ input_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
157
+ output_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
158
+ outcome: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
159
+ failed: "failed";
160
+ unknown: "unknown";
161
+ succeeded: "succeeded";
162
+ blocked: "blocked";
163
+ skipped: "skipped";
164
+ }>>>;
165
+ error_summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
166
+ cwd: z.ZodOptional<z.ZodNullable<z.ZodString>>;
167
+ file_fingerprints: z.ZodOptional<z.ZodNullable<z.ZodString>>;
168
+ redaction_state: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
169
+ unreviewed: "unreviewed";
170
+ redacted: "redacted";
171
+ clean: "clean";
172
+ quarantined: "quarantined";
173
+ }>>>;
174
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodString>>;
175
+ created_at: z.ZodString;
176
+ }, z.core.$strip>>>;
177
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
178
+ }, z.core.$strip>;
179
+ export declare function importMemories(db: Database.Database, embeddingProvider: EmbeddingProvider, rawSnapshot: unknown): Promise<void>;
4
180
  //# sourceMappingURL=import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/import.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA0BpD,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAqO9H"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/import.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,8BAA8B,WAAa,CAAC;AAkKzD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY/B,CAAC;AAsCH,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuQrI"}