audrey 0.17.0 → 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 (191) hide show
  1. package/README.md +129 -374
  2. package/dist/mcp-server/config.d.ts +20 -0
  3. package/dist/mcp-server/config.d.ts.map +1 -0
  4. package/dist/mcp-server/config.js +125 -0
  5. package/dist/mcp-server/config.js.map +1 -0
  6. package/dist/mcp-server/index.d.ts +100 -0
  7. package/dist/mcp-server/index.d.ts.map +1 -0
  8. package/dist/mcp-server/index.js +1113 -0
  9. package/dist/mcp-server/index.js.map +1 -0
  10. package/dist/src/adaptive.d.ts +7 -0
  11. package/dist/src/adaptive.d.ts.map +1 -0
  12. package/dist/src/adaptive.js +49 -0
  13. package/dist/src/adaptive.js.map +1 -0
  14. package/dist/src/affect.d.ts +19 -0
  15. package/dist/src/affect.d.ts.map +1 -0
  16. package/dist/src/affect.js +72 -0
  17. package/dist/src/affect.js.map +1 -0
  18. package/dist/src/audrey.d.ts +140 -0
  19. package/dist/src/audrey.d.ts.map +1 -0
  20. package/dist/src/audrey.js +564 -0
  21. package/dist/src/audrey.js.map +1 -0
  22. package/dist/src/capsule.d.ts +68 -0
  23. package/dist/src/capsule.d.ts.map +1 -0
  24. package/dist/src/capsule.js +311 -0
  25. package/dist/src/capsule.js.map +1 -0
  26. package/dist/src/causal.d.ts +28 -0
  27. package/dist/src/causal.d.ts.map +1 -0
  28. package/dist/src/causal.js +65 -0
  29. package/dist/src/causal.js.map +1 -0
  30. package/dist/src/confidence.d.ts +12 -0
  31. package/dist/src/confidence.d.ts.map +1 -0
  32. package/dist/src/confidence.js +63 -0
  33. package/dist/src/confidence.js.map +1 -0
  34. package/dist/src/consolidate.d.ts +8 -0
  35. package/dist/src/consolidate.d.ts.map +1 -0
  36. package/dist/src/consolidate.js +218 -0
  37. package/dist/src/consolidate.js.map +1 -0
  38. package/dist/src/context.d.ts +3 -0
  39. package/dist/src/context.d.ts.map +1 -0
  40. package/dist/src/context.js +19 -0
  41. package/dist/src/context.js.map +1 -0
  42. package/dist/src/db.d.ts +12 -0
  43. package/dist/src/db.d.ts.map +1 -0
  44. package/dist/src/db.js +380 -0
  45. package/dist/src/db.js.map +1 -0
  46. package/dist/src/decay.d.ts +7 -0
  47. package/dist/src/decay.d.ts.map +1 -0
  48. package/dist/src/decay.js +68 -0
  49. package/dist/src/decay.js.map +1 -0
  50. package/dist/src/embedding.d.ts +57 -0
  51. package/dist/src/embedding.d.ts.map +1 -0
  52. package/dist/src/embedding.js +254 -0
  53. package/dist/src/embedding.js.map +1 -0
  54. package/dist/src/encode.d.ts +15 -0
  55. package/dist/src/encode.d.ts.map +1 -0
  56. package/dist/src/encode.js +36 -0
  57. package/dist/src/encode.js.map +1 -0
  58. package/dist/src/events.d.ts +69 -0
  59. package/dist/src/events.d.ts.map +1 -0
  60. package/dist/src/events.js +149 -0
  61. package/dist/src/events.js.map +1 -0
  62. package/dist/src/export.d.ts +3 -0
  63. package/dist/src/export.d.ts.map +1 -0
  64. package/dist/src/export.js +46 -0
  65. package/dist/src/export.js.map +1 -0
  66. package/dist/src/forget.d.ts +11 -0
  67. package/dist/src/forget.d.ts.map +1 -0
  68. package/dist/src/forget.js +105 -0
  69. package/dist/src/forget.js.map +1 -0
  70. package/dist/src/fts.d.ts +34 -0
  71. package/dist/src/fts.d.ts.map +1 -0
  72. package/dist/src/fts.js +117 -0
  73. package/dist/src/fts.js.map +1 -0
  74. package/dist/src/hybrid-recall.d.ts +37 -0
  75. package/dist/src/hybrid-recall.d.ts.map +1 -0
  76. package/dist/src/hybrid-recall.js +213 -0
  77. package/dist/src/hybrid-recall.js.map +1 -0
  78. package/dist/src/import.d.ts +4 -0
  79. package/dist/src/import.d.ts.map +1 -0
  80. package/dist/src/import.js +127 -0
  81. package/dist/src/import.js.map +1 -0
  82. package/dist/src/index.d.ts +22 -0
  83. package/dist/src/index.d.ts.map +1 -0
  84. package/{src → dist/src}/index.js +5 -13
  85. package/dist/src/index.js.map +1 -0
  86. package/dist/src/interference.d.ts +13 -0
  87. package/dist/src/interference.d.ts.map +1 -0
  88. package/dist/src/interference.js +45 -0
  89. package/dist/src/interference.js.map +1 -0
  90. package/dist/src/introspect.d.ts +4 -0
  91. package/dist/src/introspect.d.ts.map +1 -0
  92. package/dist/src/introspect.js +40 -0
  93. package/dist/src/introspect.js.map +1 -0
  94. package/dist/src/llm.d.ts +38 -0
  95. package/dist/src/llm.d.ts.map +1 -0
  96. package/dist/src/llm.js +167 -0
  97. package/dist/src/llm.js.map +1 -0
  98. package/dist/src/migrate.d.ts +6 -0
  99. package/dist/src/migrate.d.ts.map +1 -0
  100. package/dist/src/migrate.js +51 -0
  101. package/dist/src/migrate.js.map +1 -0
  102. package/dist/src/promote.d.ts +40 -0
  103. package/dist/src/promote.d.ts.map +1 -0
  104. package/dist/src/promote.js +200 -0
  105. package/dist/src/promote.js.map +1 -0
  106. package/dist/src/prompts.d.ts +16 -0
  107. package/dist/src/prompts.d.ts.map +1 -0
  108. package/{src → dist/src}/prompts.js +172 -203
  109. package/dist/src/prompts.js.map +1 -0
  110. package/dist/src/recall.d.ts +9 -0
  111. package/dist/src/recall.d.ts.map +1 -0
  112. package/dist/src/recall.js +432 -0
  113. package/dist/src/recall.js.map +1 -0
  114. package/dist/src/redact.d.ts +27 -0
  115. package/dist/src/redact.d.ts.map +1 -0
  116. package/dist/src/redact.js +228 -0
  117. package/dist/src/redact.js.map +1 -0
  118. package/dist/src/rollback.d.ts +8 -0
  119. package/dist/src/rollback.d.ts.map +1 -0
  120. package/dist/src/rollback.js +33 -0
  121. package/dist/src/rollback.js.map +1 -0
  122. package/dist/src/routes.d.ts +7 -0
  123. package/dist/src/routes.d.ts.map +1 -0
  124. package/dist/src/routes.js +226 -0
  125. package/dist/src/routes.js.map +1 -0
  126. package/dist/src/rules-compiler.d.ts +20 -0
  127. package/dist/src/rules-compiler.d.ts.map +1 -0
  128. package/dist/src/rules-compiler.js +143 -0
  129. package/dist/src/rules-compiler.js.map +1 -0
  130. package/dist/src/server.d.ts +12 -0
  131. package/dist/src/server.d.ts.map +1 -0
  132. package/dist/src/server.js +22 -0
  133. package/dist/src/server.js.map +1 -0
  134. package/dist/src/tool-trace.d.ts +37 -0
  135. package/dist/src/tool-trace.d.ts.map +1 -0
  136. package/dist/src/tool-trace.js +142 -0
  137. package/dist/src/tool-trace.js.map +1 -0
  138. package/dist/src/types.d.ts +446 -0
  139. package/dist/src/types.d.ts.map +1 -0
  140. package/dist/src/types.js +6 -0
  141. package/dist/src/types.js.map +1 -0
  142. package/dist/src/ulid.d.ts +3 -0
  143. package/dist/src/ulid.d.ts.map +1 -0
  144. package/dist/src/ulid.js +11 -0
  145. package/dist/src/ulid.js.map +1 -0
  146. package/dist/src/utils.d.ts +10 -0
  147. package/dist/src/utils.d.ts.map +1 -0
  148. package/dist/src/utils.js +41 -0
  149. package/dist/src/utils.js.map +1 -0
  150. package/dist/src/validate.d.ts +22 -0
  151. package/dist/src/validate.d.ts.map +1 -0
  152. package/dist/src/validate.js +109 -0
  153. package/dist/src/validate.js.map +1 -0
  154. package/docs/production-readiness.md +28 -0
  155. package/examples/fintech-ops-demo.js +1 -1
  156. package/examples/healthcare-ops-demo.js +1 -1
  157. package/examples/stripe-demo.js +1 -1
  158. package/package.json +34 -13
  159. package/benchmarks/baselines.js +0 -169
  160. package/benchmarks/cases.js +0 -421
  161. package/benchmarks/reference-results.js +0 -70
  162. package/benchmarks/report.js +0 -255
  163. package/benchmarks/run.js +0 -514
  164. package/mcp-server/config.js +0 -133
  165. package/mcp-server/index.js +0 -1265
  166. package/mcp-server/serve.js +0 -482
  167. package/src/adaptive.js +0 -53
  168. package/src/affect.js +0 -64
  169. package/src/audrey.js +0 -642
  170. package/src/causal.js +0 -95
  171. package/src/confidence.js +0 -120
  172. package/src/consolidate.js +0 -281
  173. package/src/context.js +0 -15
  174. package/src/db.js +0 -391
  175. package/src/decay.js +0 -84
  176. package/src/embedding.js +0 -260
  177. package/src/encode.js +0 -69
  178. package/src/export.js +0 -67
  179. package/src/forget.js +0 -111
  180. package/src/fts.js +0 -134
  181. package/src/import.js +0 -273
  182. package/src/interference.js +0 -51
  183. package/src/introspect.js +0 -48
  184. package/src/llm.js +0 -249
  185. package/src/migrate.js +0 -58
  186. package/src/recall.js +0 -573
  187. package/src/rollback.js +0 -42
  188. package/src/ulid.js +0 -18
  189. package/src/utils.js +0 -63
  190. package/src/validate.js +0 -172
  191. package/types/index.d.ts +0 -434
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Hybrid retrieval: vector KNN + FTS5 BM25, fused via Reciprocal Rank Fusion.
3
+ *
4
+ * RRF is the simplest fusion that tends to hold up in practice:
5
+ * score(d) = sum_i 1 / (k + rank_i(d))
6
+ * where each `i` is a retriever (vector, FTS) and `k` is a smoothing constant
7
+ * (60 is the classic default). Documents that show up in only one retriever
8
+ * still contribute; documents in both get additive boosts without either
9
+ * retriever dominating.
10
+ *
11
+ * This module does NOT re-implement confidence scoring — vector candidates
12
+ * arrive already scored; FTS-only candidates get an enrichment pass that
13
+ * loads the underlying row and computes a reduced "base confidence" from
14
+ * source reliability / support ratio. That's intentionally simpler than the
15
+ * full KNN confidence pipeline for v1; the demo gets what it needs and the
16
+ * capsule's categorization layer does the heavy interpretive lifting.
17
+ */
18
+ import { searchFTSEpisodes, searchFTSSemantics, searchFTSProcedures, sanitizeFTSQuery, } from './fts.js';
19
+ import { sourceReliability } from './confidence.js';
20
+ const RRF_K = 60;
21
+ const VECTOR_WEIGHT = 0.3;
22
+ const FTS_WEIGHT = 0.7;
23
+ export function ftsIdsByType(db, query, types, limit) {
24
+ const sanitized = sanitizeFTSQuery(query);
25
+ const out = new Map();
26
+ if (!sanitized)
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
+ }
41
+ }
42
+ catch {
43
+ // FTS tables may not exist on very old DBs. Return whatever we collected so far.
44
+ }
45
+ return out;
46
+ }
47
+ function loadFtsOnlyEpisode(db, id, includePrivate, filters) {
48
+ const row = db.prepare(`
49
+ SELECT id, content, source, source_reliability, created_at, superseded_by, "private", tags
50
+ FROM episodes WHERE id = ?
51
+ `).get(id);
52
+ if (!row)
53
+ return null;
54
+ if (row.superseded_by)
55
+ return null;
56
+ if (!includePrivate && row.private)
57
+ return null;
58
+ if (filters && !passesFilters(row, filters))
59
+ return null;
60
+ return {
61
+ id: row.id,
62
+ content: row.content,
63
+ type: 'episodic',
64
+ confidence: row.source_reliability ?? sourceReliability(row.source),
65
+ score: 0,
66
+ source: row.source,
67
+ createdAt: row.created_at,
68
+ };
69
+ }
70
+ function loadFtsOnlySemantic(db, id, includeDormant, filters) {
71
+ const row = db.prepare(`
72
+ SELECT id, content, state, evidence_count, supporting_count, contradicting_count, created_at
73
+ FROM semantics WHERE id = ?
74
+ `).get(id);
75
+ if (!row)
76
+ return null;
77
+ const allowed = includeDormant
78
+ ? ['active', 'context_dependent', 'dormant']
79
+ : ['active', 'context_dependent'];
80
+ if (!allowed.includes(row.state))
81
+ return null;
82
+ if (filters && !passesDateFilters(row.created_at, filters))
83
+ return null;
84
+ const denom = Math.max(1, row.evidence_count ?? 0);
85
+ const confidence = Math.min(1, (row.supporting_count ?? 0) / denom);
86
+ return {
87
+ id: row.id,
88
+ content: row.content,
89
+ type: 'semantic',
90
+ confidence,
91
+ score: 0,
92
+ source: 'consolidation',
93
+ state: row.state,
94
+ createdAt: row.created_at,
95
+ };
96
+ }
97
+ function loadFtsOnlyProcedural(db, id, includeDormant, filters) {
98
+ const row = db.prepare(`
99
+ SELECT id, content, state, success_count, failure_count, created_at
100
+ FROM procedures WHERE id = ?
101
+ `).get(id);
102
+ if (!row)
103
+ return null;
104
+ const allowed = includeDormant
105
+ ? ['active', 'context_dependent', 'dormant']
106
+ : ['active', 'context_dependent'];
107
+ if (!allowed.includes(row.state))
108
+ return null;
109
+ if (filters && !passesDateFilters(row.created_at, filters))
110
+ return null;
111
+ const denom = Math.max(1, (row.success_count ?? 0) + (row.failure_count ?? 0));
112
+ const confidence = Math.min(1, (row.success_count ?? 0) / denom);
113
+ return {
114
+ id: row.id,
115
+ content: row.content,
116
+ type: 'procedural',
117
+ confidence,
118
+ score: 0,
119
+ source: 'consolidation',
120
+ state: row.state,
121
+ createdAt: row.created_at,
122
+ };
123
+ }
124
+ function passesDateFilters(createdAt, filters) {
125
+ if (!createdAt)
126
+ return true;
127
+ if (filters.after && createdAt <= filters.after)
128
+ return false;
129
+ if (filters.before && createdAt >= filters.before)
130
+ return false;
131
+ return true;
132
+ }
133
+ function passesFilters(row, filters) {
134
+ if (!passesDateFilters(row.created_at, filters))
135
+ return false;
136
+ if (filters.sources?.length && !filters.sources.includes(row.source))
137
+ return false;
138
+ if (filters.tags?.length) {
139
+ let rowTags = [];
140
+ try {
141
+ const parsed = row.tags ? JSON.parse(row.tags) : [];
142
+ if (Array.isArray(parsed))
143
+ rowTags = parsed.map(String);
144
+ }
145
+ catch {
146
+ rowTags = [];
147
+ }
148
+ if (!filters.tags.some(t => rowTags.includes(t)))
149
+ return false;
150
+ }
151
+ return true;
152
+ }
153
+ export function fuseResults(db, input) {
154
+ const { vectorResults, ftsIds, mode } = input;
155
+ const includePrivate = input.includePrivate ?? false;
156
+ const includeDormant = input.includeDormant ?? false;
157
+ const minConfidence = input.minConfidence ?? 0;
158
+ if (mode === 'vector')
159
+ return vectorResults;
160
+ const ranksByTypeId = new Map();
161
+ for (let i = 0; i < vectorResults.length; i++) {
162
+ const r = vectorResults[i];
163
+ ranksByTypeId.set(r.id, { vrank: i + 1, type: r.type });
164
+ }
165
+ for (const [type, ids] of ftsIds.entries()) {
166
+ for (let i = 0; i < ids.length; i++) {
167
+ const id = ids[i];
168
+ const existing = ranksByTypeId.get(id);
169
+ if (existing) {
170
+ existing.frank = i + 1;
171
+ }
172
+ else {
173
+ ranksByTypeId.set(id, { frank: i + 1, type });
174
+ }
175
+ }
176
+ }
177
+ const vectorById = new Map(vectorResults.map(r => [r.id, r]));
178
+ const fused = [];
179
+ for (const [id, ranks] of ranksByTypeId.entries()) {
180
+ const existing = vectorById.get(id);
181
+ if (mode === 'keyword' && ranks.frank === undefined)
182
+ continue;
183
+ let result = existing ?? null;
184
+ if (!result) {
185
+ if (ranks.type === 'episodic')
186
+ result = loadFtsOnlyEpisode(db, id, includePrivate, input.filters);
187
+ else if (ranks.type === 'semantic')
188
+ result = loadFtsOnlySemantic(db, id, includeDormant, input.filters);
189
+ else if (ranks.type === 'procedural')
190
+ result = loadFtsOnlyProcedural(db, id, includeDormant, input.filters);
191
+ if (!result)
192
+ continue;
193
+ if (result.confidence < minConfidence)
194
+ continue;
195
+ }
196
+ const vrank = ranks.vrank;
197
+ const frank = ranks.frank;
198
+ const rrf = (vrank !== undefined ? 1 / (RRF_K + vrank) : 0) +
199
+ (frank !== undefined ? 1 / (RRF_K + frank) : 0);
200
+ let fusedScore;
201
+ if (mode === 'keyword') {
202
+ fusedScore = frank !== undefined ? 1 / (RRF_K + frank) : 0;
203
+ }
204
+ else {
205
+ const baseScore = result.score ?? 0;
206
+ fusedScore = baseScore * VECTOR_WEIGHT + rrf * FTS_WEIGHT;
207
+ }
208
+ fused.push({ ...result, score: fusedScore });
209
+ }
210
+ fused.sort((a, b) => b.score - a.score);
211
+ return fused;
212
+ }
213
+ //# sourceMappingURL=hybrid-recall.js.map
@@ -0,0 +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"}
@@ -0,0 +1,4 @@
1
+ import Database from 'better-sqlite3';
2
+ import type { EmbeddingProvider } from './types.js';
3
+ export declare function importMemories(db: Database.Database, embeddingProvider: EmbeddingProvider, snapshot: any): Promise<void>;
4
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,127 @@
1
+ import { insertFTSEpisode, insertFTSSemantic, insertFTSProcedure } from './fts.js';
2
+ function jsonOrNull(value) {
3
+ return value == null ? null : JSON.stringify(value);
4
+ }
5
+ function isDatabaseEmpty(db) {
6
+ const tables = [
7
+ 'episodes',
8
+ 'semantics',
9
+ 'procedures',
10
+ 'causal_links',
11
+ 'contradictions',
12
+ 'consolidation_runs',
13
+ 'consolidation_metrics',
14
+ ];
15
+ return tables.every(table => db.prepare(`SELECT COUNT(*) AS c FROM ${table}`).get().c === 0);
16
+ }
17
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18
+ export async function importMemories(db, embeddingProvider, snapshot) {
19
+ if (!isDatabaseEmpty(db)) {
20
+ throw new Error('Cannot import into a database that is not empty');
21
+ }
22
+ const episodes = snapshot.episodes || [];
23
+ const semantics = snapshot.semantics || [];
24
+ const procedures = snapshot.procedures || [];
25
+ const causalLinks = snapshot.causalLinks || [];
26
+ const contradictions = snapshot.contradictions || [];
27
+ const consolidationRuns = snapshot.consolidationRuns || [];
28
+ const consolidationMetrics = snapshot.consolidationMetrics || [];
29
+ const episodeVectors = episodes.length > 0
30
+ ? await embeddingProvider.embedBatch(episodes.map((ep) => ep.content))
31
+ : [];
32
+ const semanticVectors = semantics.length > 0
33
+ ? await embeddingProvider.embedBatch(semantics.map((sem) => sem.content))
34
+ : [];
35
+ const procedureVectors = procedures.length > 0
36
+ ? await embeddingProvider.embedBatch(procedures.map((proc) => proc.content))
37
+ : [];
38
+ const insertEpisode = db.prepare(`
39
+ INSERT INTO episodes (id, content, embedding, source, source_reliability, salience, context, affect, tags,
40
+ causal_trigger, causal_consequence, created_at, embedding_model, embedding_version,
41
+ supersedes, superseded_by, consolidated, "private")
42
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
43
+ `);
44
+ const insertVecEpisode = db.prepare('INSERT INTO vec_episodes(id, embedding, source, consolidated) VALUES (?, ?, ?, ?)');
45
+ const insertSemantic = db.prepare(`
46
+ INSERT INTO semantics (id, content, embedding, state, conditions, evidence_episode_ids,
47
+ evidence_count, supporting_count, contradicting_count, source_type_diversity,
48
+ consolidation_checkpoint, embedding_model, embedding_version, consolidation_model,
49
+ consolidation_prompt_hash, created_at, last_reinforced_at, retrieval_count, challenge_count,
50
+ interference_count, salience)
51
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
52
+ `);
53
+ const insertVecSemantic = db.prepare('INSERT INTO vec_semantics(id, embedding, state) VALUES (?, ?, ?)');
54
+ const insertProcedure = db.prepare(`
55
+ INSERT INTO procedures (id, content, embedding, state, trigger_conditions, evidence_episode_ids,
56
+ success_count, failure_count, embedding_model, embedding_version, created_at, last_reinforced_at,
57
+ retrieval_count, interference_count, salience)
58
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
59
+ `);
60
+ const insertVecProcedure = db.prepare('INSERT INTO vec_procedures(id, embedding, state) VALUES (?, ?, ?)');
61
+ const insertCausalLink = db.prepare(`
62
+ INSERT INTO causal_links (id, cause_id, effect_id, link_type, mechanism, confidence, evidence_count, created_at)
63
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
64
+ `);
65
+ const insertContradiction = db.prepare(`
66
+ INSERT INTO contradictions (id, claim_a_id, claim_a_type, claim_b_id, claim_b_type,
67
+ state, resolution, resolved_at, reopened_at, reopen_evidence_id, created_at)
68
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
69
+ `);
70
+ const insertConsolidationRun = db.prepare(`
71
+ INSERT INTO consolidation_runs (id, checkpoint_cursor, input_episode_ids, output_memory_ids,
72
+ confidence_deltas, consolidation_model, consolidation_prompt_hash, started_at, completed_at, status)
73
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
74
+ `);
75
+ const insertConsolidationMetric = db.prepare(`
76
+ INSERT INTO consolidation_metrics (id, run_id, min_cluster_size, similarity_threshold,
77
+ episodes_evaluated, clusters_found, principles_extracted, created_at)
78
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
79
+ `);
80
+ const upsertConfig = db.prepare(`
81
+ INSERT INTO audrey_config (key, value) VALUES (?, ?)
82
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value
83
+ `);
84
+ const writeImport = db.transaction(() => {
85
+ for (let i = 0; i < episodes.length; i++) {
86
+ const ep = episodes[i];
87
+ const embeddingBuffer = embeddingProvider.vectorToBuffer(episodeVectors[i]);
88
+ insertEpisode.run(ep.id, ep.content, embeddingBuffer, ep.source, ep.source_reliability, ep.salience ?? 0.5, jsonOrNull(ep.context ?? {}), jsonOrNull(ep.affect ?? {}), jsonOrNull(ep.tags), ep.causal_trigger ?? null, ep.causal_consequence ?? null, ep.created_at, embeddingProvider.modelName, embeddingProvider.modelVersion, ep.supersedes ?? null, ep.superseded_by ?? null, ep.consolidated ?? 0, ep.private ?? 0);
89
+ insertVecEpisode.run(ep.id, embeddingBuffer, ep.source, BigInt(ep.consolidated ?? 0));
90
+ insertFTSEpisode(db, ep.id, ep.content, ep.tags ?? null);
91
+ }
92
+ for (let i = 0; i < semantics.length; i++) {
93
+ const sem = semantics[i];
94
+ const embeddingBuffer = embeddingProvider.vectorToBuffer(semanticVectors[i]);
95
+ insertSemantic.run(sem.id, sem.content, embeddingBuffer, sem.state, sem.conditions ?? null, jsonOrNull(sem.evidence_episode_ids || []), sem.evidence_count ?? 0, sem.supporting_count ?? 0, sem.contradicting_count ?? 0, sem.source_type_diversity ?? 0, sem.consolidation_checkpoint ?? null, embeddingProvider.modelName, embeddingProvider.modelVersion, sem.consolidation_model ?? null, sem.consolidation_prompt_hash ?? null, sem.created_at, sem.last_reinforced_at ?? null, sem.retrieval_count ?? 0, sem.challenge_count ?? 0, sem.interference_count ?? 0, sem.salience ?? 0.5);
96
+ insertVecSemantic.run(sem.id, embeddingBuffer, sem.state);
97
+ insertFTSSemantic(db, sem.id, sem.content);
98
+ }
99
+ for (let i = 0; i < procedures.length; i++) {
100
+ const proc = procedures[i];
101
+ const embeddingBuffer = embeddingProvider.vectorToBuffer(procedureVectors[i]);
102
+ insertProcedure.run(proc.id, proc.content, embeddingBuffer, proc.state, proc.trigger_conditions ?? null, jsonOrNull(proc.evidence_episode_ids || []), proc.success_count ?? 0, proc.failure_count ?? 0, embeddingProvider.modelName, embeddingProvider.modelVersion, proc.created_at, proc.last_reinforced_at ?? null, proc.retrieval_count ?? 0, proc.interference_count ?? 0, proc.salience ?? 0.5);
103
+ insertVecProcedure.run(proc.id, embeddingBuffer, proc.state);
104
+ insertFTSProcedure(db, proc.id, proc.content);
105
+ }
106
+ for (const link of causalLinks) {
107
+ insertCausalLink.run(link.id, link.cause_id, link.effect_id, link.link_type ?? 'causal', link.mechanism ?? null, link.confidence ?? null, link.evidence_count ?? 1, link.created_at);
108
+ }
109
+ for (const contradiction of contradictions) {
110
+ insertContradiction.run(contradiction.id, contradiction.claim_a_id, contradiction.claim_a_type, contradiction.claim_b_id, contradiction.claim_b_type, contradiction.state, contradiction.resolution ?? null, contradiction.resolved_at ?? null, contradiction.reopened_at ?? null, contradiction.reopen_evidence_id ?? null, contradiction.created_at);
111
+ }
112
+ for (const run of consolidationRuns) {
113
+ insertConsolidationRun.run(run.id, run.checkpoint_cursor ?? null, jsonOrNull(run.input_episode_ids || []), jsonOrNull(run.output_memory_ids || []), jsonOrNull(run.confidence_deltas), run.consolidation_model ?? null, run.consolidation_prompt_hash ?? null, run.started_at ?? null, run.completed_at ?? null, run.status);
114
+ }
115
+ for (const metric of consolidationMetrics) {
116
+ insertConsolidationMetric.run(metric.id, metric.run_id, metric.min_cluster_size, metric.similarity_threshold, metric.episodes_evaluated, metric.clusters_found, metric.principles_extracted, metric.created_at);
117
+ }
118
+ for (const [key, value] of Object.entries((snapshot.config || {}))) {
119
+ if (key === 'dimensions')
120
+ continue;
121
+ upsertConfig.run(key, String(value));
122
+ }
123
+ });
124
+ writeImport();
125
+ }
126
+ /* eslint-enable @typescript-eslint/no-explicit-any */
127
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export { Audrey } from './audrey.js';
2
+ export { startServer } from './server.js';
3
+ export type { ServerOptions } from './server.js';
4
+ export { createApp } from './routes.js';
5
+ export type { AppOptions } from './routes.js';
6
+ export { computeConfidence, sourceReliability, salienceModifier, DEFAULT_SOURCE_RELIABILITY, DEFAULT_WEIGHTS, DEFAULT_HALF_LIVES } from './confidence.js';
7
+ export { createEmbeddingProvider, MockEmbeddingProvider, LocalEmbeddingProvider, OpenAIEmbeddingProvider, GeminiEmbeddingProvider, } from './embedding.js';
8
+ export { createLLMProvider, MockLLMProvider, AnthropicLLMProvider, OpenAILLMProvider } from './llm.js';
9
+ export { createDatabase, closeDatabase, readStoredDimensions } from './db.js';
10
+ export { recall, recallStream } from './recall.js';
11
+ export { addCausalLink, getCausalChain, articulateCausalLink } from './causal.js';
12
+ export { buildPrincipleExtractionPrompt, buildContradictionDetectionPrompt, buildCausalArticulationPrompt, buildContextResolutionPrompt, } from './prompts.js';
13
+ export { exportMemories } from './export.js';
14
+ export { importMemories } from './import.js';
15
+ export { suggestConsolidationParams } from './adaptive.js';
16
+ export { reembedAll } from './migrate.js';
17
+ export { forgetMemory, forgetByQuery, purgeMemories } from './forget.js';
18
+ export { applyInterference, interferenceModifier } from './interference.js';
19
+ export { contextMatchRatio, contextModifier } from './context.js';
20
+ export { arousalSalienceBoost, affectSimilarity, moodCongruenceModifier, detectResonance } from './affect.js';
21
+ export type { Affect, AudreyConfig, CausalLinkRow, CausalLinkType, CausalParams, ChatMessage, ConfidenceConfig, ConfidenceWeights, ComputeConfidenceParams, ConsolidationMetricRow, ConsolidationOptions, ConsolidationResult, ConsolidationRunRow, ConsolidationStatus, ContradictionCounts, ContradictionRow, ContradictionState, ContextConfig, Database, DecayResult, DreamResult, EmbeddingConfig, EmbeddingProvider, EncodeParams, EpisodeRow, EpisodicProvenance, ExtractedPrinciple, ForgetResult, GreetingOptions, GreetingResult, HalfLives, InterferenceConfig, IntrospectResult, LLMCompletionOptions, LLMCompletionResult, LLMConfig, LLMProvider, MemoryState, MemoryStatusResult, MemoryType, ProceduralProvenance, ProceduralRow, PurgeResult, RecallOptions, RecallResult, ReembedCounts, ReflectMemory, ReflectResult, ResonanceConfig, SemanticProvenance, SemanticRow, SourceReliabilityMap, SourceType, TruthResolution, AffectConfig, } from './types.js';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1J,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9G,YAAY,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC"}
@@ -1,22 +1,13 @@
1
1
  export { Audrey } from './audrey.js';
2
+ export { startServer } from './server.js';
3
+ export { createApp } from './routes.js';
2
4
  export { computeConfidence, sourceReliability, salienceModifier, DEFAULT_SOURCE_RELIABILITY, DEFAULT_WEIGHTS, DEFAULT_HALF_LIVES } from './confidence.js';
3
- export {
4
- createEmbeddingProvider,
5
- MockEmbeddingProvider,
6
- LocalEmbeddingProvider,
7
- OpenAIEmbeddingProvider,
8
- GeminiEmbeddingProvider,
9
- } from './embedding.js';
5
+ export { createEmbeddingProvider, MockEmbeddingProvider, LocalEmbeddingProvider, OpenAIEmbeddingProvider, GeminiEmbeddingProvider, } from './embedding.js';
10
6
  export { createLLMProvider, MockLLMProvider, AnthropicLLMProvider, OpenAILLMProvider } from './llm.js';
11
7
  export { createDatabase, closeDatabase, readStoredDimensions } from './db.js';
12
8
  export { recall, recallStream } from './recall.js';
13
9
  export { addCausalLink, getCausalChain, articulateCausalLink } from './causal.js';
14
- export {
15
- buildPrincipleExtractionPrompt,
16
- buildContradictionDetectionPrompt,
17
- buildCausalArticulationPrompt,
18
- buildContextResolutionPrompt,
19
- } from './prompts.js';
10
+ export { buildPrincipleExtractionPrompt, buildContradictionDetectionPrompt, buildCausalArticulationPrompt, buildContextResolutionPrompt, } from './prompts.js';
20
11
  export { exportMemories } from './export.js';
21
12
  export { importMemories } from './import.js';
22
13
  export { suggestConsolidationParams } from './adaptive.js';
@@ -25,3 +16,4 @@ export { forgetMemory, forgetByQuery, purgeMemories } from './forget.js';
25
16
  export { applyInterference, interferenceModifier } from './interference.js';
26
17
  export { contextMatchRatio, contextModifier } from './context.js';
27
18
  export { arousalSalienceBoost, affectSimilarity, moodCongruenceModifier, detectResonance } from './affect.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1J,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ import Database from 'better-sqlite3';
2
+ import type { EmbeddingProvider, InterferenceConfig } from './types.js';
3
+ export interface InterferenceHit {
4
+ id: string;
5
+ type: 'semantic' | 'procedural';
6
+ newCount: number;
7
+ similarity: number;
8
+ }
9
+ export declare function interferenceModifier(interferenceCount: number, weight?: number): number;
10
+ export declare function applyInterference(db: Database.Database, embeddingProvider: EmbeddingProvider, episodeId: string, params: {
11
+ content: string;
12
+ }, config?: InterferenceConfig): Promise<InterferenceHit[]>;
13
+ //# sourceMappingURL=interference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interference.d.ts","sourceRoot":"","sources":["../../src/interference.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,MAAM,CAE5F;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,eAAe,EAAE,CAAC,CA8C5B"}
@@ -0,0 +1,45 @@
1
+ export function interferenceModifier(interferenceCount, weight = 0.1) {
2
+ return 1 / (1 + weight * interferenceCount);
3
+ }
4
+ export async function applyInterference(db, embeddingProvider, episodeId, params, config = {}) {
5
+ const { enabled = true, k = 5, threshold = 0.6, weight = 0.1 } = config;
6
+ if (!enabled)
7
+ return [];
8
+ const vector = await embeddingProvider.embed(params.content);
9
+ const buffer = embeddingProvider.vectorToBuffer(vector);
10
+ const semanticHits = db.prepare(`
11
+ SELECT s.id, s.interference_count, (1.0 - v.distance) AS similarity
12
+ FROM vec_semantics v
13
+ JOIN semantics s ON s.id = v.id
14
+ WHERE v.embedding MATCH ?
15
+ AND k = ?
16
+ AND (v.state = 'active' OR v.state = 'context_dependent')
17
+ `).all(buffer, k);
18
+ const proceduralHits = db.prepare(`
19
+ SELECT p.id, p.interference_count, (1.0 - v.distance) AS similarity
20
+ FROM vec_procedures v
21
+ JOIN procedures p ON p.id = v.id
22
+ WHERE v.embedding MATCH ?
23
+ AND k = ?
24
+ AND (v.state = 'active' OR v.state = 'context_dependent')
25
+ `).all(buffer, k);
26
+ const affected = [];
27
+ const updateSemantic = db.prepare('UPDATE semantics SET interference_count = ? WHERE id = ?');
28
+ const updateProcedural = db.prepare('UPDATE procedures SET interference_count = ? WHERE id = ?');
29
+ for (const hit of semanticHits) {
30
+ if (hit.similarity < threshold)
31
+ continue;
32
+ const newCount = hit.interference_count + 1;
33
+ updateSemantic.run(newCount, hit.id);
34
+ affected.push({ id: hit.id, type: 'semantic', newCount, similarity: hit.similarity });
35
+ }
36
+ for (const hit of proceduralHits) {
37
+ if (hit.similarity < threshold)
38
+ continue;
39
+ const newCount = hit.interference_count + 1;
40
+ updateProcedural.run(newCount, hit.id);
41
+ affected.push({ id: hit.id, type: 'procedural', newCount, similarity: hit.similarity });
42
+ }
43
+ return affected;
44
+ }
45
+ //# sourceMappingURL=interference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interference.js","sourceRoot":"","sources":["../../src/interference.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,oBAAoB,CAAC,iBAAyB,EAAE,SAAiB,GAAG;IAClF,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,iBAAiB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAqB,EACrB,iBAAoC,EACpC,SAAiB,EACjB,MAA2B,EAC3B,SAA6B,EAAE;IAE/B,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;IAExE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAExD,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;GAO/B,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAA0E,CAAC;IAE3F,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;GAOjC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAA0E,CAAC;IAE3F,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;IAC9F,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;IAEjG,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,UAAU,GAAG,SAAS;YAAE,SAAS;QACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5C,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,UAAU,GAAG,SAAS;YAAE,SAAS;QACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5C,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import Database from 'better-sqlite3';
2
+ import type { IntrospectResult } from './types.js';
3
+ export declare function introspect(db: Database.Database): IntrospectResult;
4
+ //# sourceMappingURL=introspect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../src/introspect.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAyBnD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,gBAAgB,CAyClE"}
@@ -0,0 +1,40 @@
1
+ export function introspect(db) {
2
+ const counts = db.prepare(`
3
+ SELECT
4
+ (SELECT COUNT(*) FROM episodes) as episodic,
5
+ (SELECT COUNT(*) FROM semantics WHERE state != 'rolled_back') as semantic,
6
+ (SELECT COUNT(*) FROM procedures WHERE state != 'rolled_back') as procedural,
7
+ (SELECT COUNT(*) FROM causal_links) as causal_links,
8
+ (SELECT COUNT(*) FROM semantics WHERE state = 'dormant')
9
+ + (SELECT COUNT(*) FROM procedures WHERE state = 'dormant') as dormant
10
+ `).get();
11
+ const contradictions = db.prepare(`
12
+ SELECT
13
+ SUM(CASE WHEN state = 'open' THEN 1 ELSE 0 END) as open,
14
+ SUM(CASE WHEN state = 'resolved' THEN 1 ELSE 0 END) as resolved,
15
+ SUM(CASE WHEN state = 'context_dependent' THEN 1 ELSE 0 END) as context_dependent,
16
+ SUM(CASE WHEN state = 'reopened' THEN 1 ELSE 0 END) as reopened
17
+ FROM contradictions
18
+ `).get();
19
+ const lastRun = db.prepare(`
20
+ SELECT completed_at FROM consolidation_runs
21
+ WHERE status = 'completed' ORDER BY completed_at DESC LIMIT 1
22
+ `).get();
23
+ const totalRuns = db.prepare('SELECT COUNT(*) as count FROM consolidation_runs').get().count;
24
+ return {
25
+ episodic: counts.episodic,
26
+ semantic: counts.semantic,
27
+ procedural: counts.procedural,
28
+ causalLinks: counts.causal_links,
29
+ dormant: counts.dormant,
30
+ contradictions: {
31
+ open: contradictions?.open || 0,
32
+ resolved: contradictions?.resolved || 0,
33
+ context_dependent: contradictions?.context_dependent || 0,
34
+ reopened: contradictions?.reopened || 0,
35
+ },
36
+ lastConsolidation: lastRun?.completed_at || null,
37
+ totalConsolidationRuns: totalRuns,
38
+ };
39
+ }
40
+ //# sourceMappingURL=introspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../src/introspect.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,UAAU,CAAC,EAAqB;IAC9C,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;GAQzB,CAAC,CAAC,GAAG,EAAe,CAAC;IAEtB,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;GAOjC,CAAC,CAAC,GAAG,EAAwC,CAAC;IAE/C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAG1B,CAAC,CAAC,GAAG,EAAgC,CAAC;IACvC,MAAM,SAAS,GAAI,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,EAAe,CAAC,KAAK,CAAC;IAE3G,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE;YACd,IAAI,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC;YAC/B,QAAQ,EAAE,cAAc,EAAE,QAAQ,IAAI,CAAC;YACvC,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,IAAI,CAAC;YACzD,QAAQ,EAAE,cAAc,EAAE,QAAQ,IAAI,CAAC;SACxC;QACD,iBAAiB,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI;QAChD,sBAAsB,EAAE,SAAS;KAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { ChatMessage, LLMCompletionOptions, LLMCompletionResult, LLMConfig, LLMProvider } from './types.js';
2
+ export declare class MockLLMProvider implements LLMProvider {
3
+ responses: Record<string, unknown>;
4
+ modelName: string;
5
+ modelVersion: string;
6
+ constructor({ responses }?: Partial<LLMConfig>);
7
+ _matchPromptType(messages: ChatMessage[]): string | null;
8
+ complete(messages: ChatMessage[]): Promise<LLMCompletionResult>;
9
+ json(messages: ChatMessage[]): Promise<unknown>;
10
+ }
11
+ export declare class AnthropicLLMProvider implements LLMProvider {
12
+ apiKey: string | undefined;
13
+ model: string;
14
+ maxTokens: number;
15
+ timeout: number;
16
+ modelName: string;
17
+ modelVersion: string;
18
+ constructor({ apiKey, model, maxTokens, timeout }?: Partial<LLMConfig> & {
19
+ timeout?: number;
20
+ });
21
+ complete(messages: ChatMessage[], options?: LLMCompletionOptions): Promise<LLMCompletionResult>;
22
+ json(messages: ChatMessage[], options?: LLMCompletionOptions): Promise<unknown>;
23
+ }
24
+ export declare class OpenAILLMProvider implements LLMProvider {
25
+ apiKey: string | undefined;
26
+ model: string;
27
+ maxTokens: number;
28
+ timeout: number;
29
+ modelName: string;
30
+ modelVersion: string;
31
+ constructor({ apiKey, model, maxTokens, timeout }?: Partial<LLMConfig> & {
32
+ timeout?: number;
33
+ });
34
+ complete(messages: ChatMessage[], options?: LLMCompletionOptions): Promise<LLMCompletionResult>;
35
+ json(messages: ChatMessage[], options?: LLMCompletionOptions): Promise<unknown>;
36
+ }
37
+ export declare function createLLMProvider(config: LLMConfig): LLMProvider;
38
+ //# sourceMappingURL=llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,WAAW,EACZ,MAAM,YAAY,CAAC;AAepB,qBAAa,eAAgB,YAAW,WAAW;IACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;gBAET,EAAE,SAAc,EAAE,GAAE,OAAO,CAAC,SAAS,CAAM;IAMvD,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI;IAQlD,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAM/D,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAKtD;AAED,qBAAa,oBAAqB,YAAW,WAAW;IACtD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;gBAET,EAAE,MAAM,EAAE,KAA2B,EAAE,SAAgB,EAAE,OAAe,EAAE,GAAE,OAAO,CAAC,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;IAShI,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsCnG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ1F;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACnD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;gBAET,EAAE,MAAM,EAAE,KAAgB,EAAE,SAAgB,EAAE,OAAe,EAAE,GAAE,OAAO,CAAC,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;IASrH,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiCnG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ1F;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAWhE"}