universal-agent-memory 0.6.2 → 0.6.3

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 (69) hide show
  1. package/dist/benchmarks/agents/naive-agent.d.ts +60 -0
  2. package/dist/benchmarks/agents/naive-agent.d.ts.map +1 -0
  3. package/dist/benchmarks/agents/naive-agent.js +144 -0
  4. package/dist/benchmarks/agents/naive-agent.js.map +1 -0
  5. package/dist/benchmarks/agents/uam-agent.d.ts +167 -0
  6. package/dist/benchmarks/agents/uam-agent.d.ts.map +1 -0
  7. package/dist/benchmarks/agents/uam-agent.js +386 -0
  8. package/dist/benchmarks/agents/uam-agent.js.map +1 -0
  9. package/dist/benchmarks/benchmark.d.ts +328 -0
  10. package/dist/benchmarks/benchmark.d.ts.map +1 -0
  11. package/dist/benchmarks/benchmark.js +104 -0
  12. package/dist/benchmarks/benchmark.js.map +1 -0
  13. package/dist/benchmarks/execution-verifier.d.ts +41 -0
  14. package/dist/benchmarks/execution-verifier.d.ts.map +1 -0
  15. package/dist/benchmarks/execution-verifier.js +301 -0
  16. package/dist/benchmarks/execution-verifier.js.map +1 -0
  17. package/dist/benchmarks/hierarchical-prompting.d.ts +37 -0
  18. package/dist/benchmarks/hierarchical-prompting.d.ts.map +1 -0
  19. package/dist/benchmarks/hierarchical-prompting.js +260 -0
  20. package/dist/benchmarks/hierarchical-prompting.js.map +1 -0
  21. package/dist/benchmarks/improved-benchmark.d.ts +88 -0
  22. package/dist/benchmarks/improved-benchmark.d.ts.map +1 -0
  23. package/dist/benchmarks/improved-benchmark.js +533 -0
  24. package/dist/benchmarks/improved-benchmark.js.map +1 -0
  25. package/dist/benchmarks/index.d.ts +10 -0
  26. package/dist/benchmarks/index.d.ts.map +1 -0
  27. package/dist/benchmarks/index.js +10 -0
  28. package/dist/benchmarks/index.js.map +1 -0
  29. package/dist/benchmarks/multi-turn-agent.d.ts +44 -0
  30. package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -0
  31. package/dist/benchmarks/multi-turn-agent.js +235 -0
  32. package/dist/benchmarks/multi-turn-agent.js.map +1 -0
  33. package/dist/benchmarks/runner.d.ts +2 -0
  34. package/dist/benchmarks/runner.d.ts.map +1 -0
  35. package/dist/benchmarks/runner.js +2 -0
  36. package/dist/benchmarks/runner.js.map +1 -0
  37. package/dist/benchmarks/tasks.d.ts +19 -0
  38. package/dist/benchmarks/tasks.d.ts.map +1 -0
  39. package/dist/benchmarks/tasks.js +371 -0
  40. package/dist/benchmarks/tasks.js.map +1 -0
  41. package/dist/index.d.ts +5 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +4 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/memory/backends/qdrant-cloud.d.ts +1 -1
  46. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -1
  47. package/dist/memory/backends/qdrant-cloud.js +6 -4
  48. package/dist/memory/backends/qdrant-cloud.js.map +1 -1
  49. package/dist/memory/dynamic-retrieval.d.ts +26 -0
  50. package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
  51. package/dist/memory/dynamic-retrieval.js +378 -0
  52. package/dist/memory/dynamic-retrieval.js.map +1 -0
  53. package/dist/memory/embeddings.d.ts +82 -0
  54. package/dist/memory/embeddings.d.ts.map +1 -0
  55. package/dist/memory/embeddings.js +297 -0
  56. package/dist/memory/embeddings.js.map +1 -0
  57. package/dist/memory/task-classifier.d.ts +33 -0
  58. package/dist/memory/task-classifier.d.ts.map +1 -0
  59. package/dist/memory/task-classifier.js +277 -0
  60. package/dist/memory/task-classifier.js.map +1 -0
  61. package/dist/utils/rate-limiter.d.ts +62 -0
  62. package/dist/utils/rate-limiter.d.ts.map +1 -0
  63. package/dist/utils/rate-limiter.js +150 -0
  64. package/dist/utils/rate-limiter.js.map +1 -0
  65. package/dist/utils/validate-json.d.ts +52 -0
  66. package/dist/utils/validate-json.d.ts.map +1 -0
  67. package/dist/utils/validate-json.js +99 -0
  68. package/dist/utils/validate-json.js.map +1 -0
  69. package/package.json +2 -1
@@ -0,0 +1,378 @@
1
+ /**
2
+ * Dynamic Memory Retrieval System for UAM
3
+ *
4
+ * Retrieves relevant memories based on task content, not static context.
5
+ * Implements semantic search with fallback to keyword matching.
6
+ */
7
+ import { existsSync, readFileSync } from 'fs';
8
+ import { join } from 'path';
9
+ import { execSync } from 'child_process';
10
+ import { classifyTask, extractTaskEntities, getSuggestedMemoryQueries } from './task-classifier.js';
11
+ /**
12
+ * Main function to retrieve task-specific memory context
13
+ */
14
+ export async function retrieveDynamicMemoryContext(taskInstruction, projectRoot = process.cwd()) {
15
+ // Step 1: Classify the task
16
+ const classification = classifyTask(taskInstruction);
17
+ // Step 2: Extract entities from task
18
+ const entities = extractTaskEntities(taskInstruction);
19
+ // Step 3: Get suggested memory queries
20
+ const suggestedQueries = getSuggestedMemoryQueries(classification);
21
+ // Step 4: Query all memory sources
22
+ const memories = await queryAllMemorySources(taskInstruction, classification, entities, suggestedQueries, projectRoot);
23
+ // Step 5: Extract patterns and gotchas
24
+ const patterns = memories
25
+ .filter(m => m.type === 'pattern')
26
+ .map(m => m.content);
27
+ const gotchas = memories
28
+ .filter(m => m.type === 'gotcha')
29
+ .map(m => m.content);
30
+ // Step 6: Get project-specific context
31
+ const projectContext = await getProjectContext(classification, projectRoot);
32
+ // Step 7: Format the context with recency bias (critical at END)
33
+ const formattedContext = formatContextWithRecencyBias(classification, memories, patterns, gotchas, projectContext);
34
+ return {
35
+ classification,
36
+ relevantMemories: memories,
37
+ patterns,
38
+ gotchas,
39
+ projectContext,
40
+ formattedContext,
41
+ };
42
+ }
43
+ /**
44
+ * Query all memory sources for relevant information
45
+ */
46
+ async function queryAllMemorySources(taskInstruction, classification, entities, suggestedQueries, projectRoot) {
47
+ const memories = [];
48
+ // Source 1: Short-term SQLite memory
49
+ const shortTermMemories = await queryShortTermMemory(classification, entities, projectRoot);
50
+ memories.push(...shortTermMemories);
51
+ // Source 2: Session memories (recent decisions)
52
+ const sessionMemories = await querySessionMemory(taskInstruction, projectRoot);
53
+ memories.push(...sessionMemories);
54
+ // Source 3: Long-term prepopulated memory
55
+ const longTermMemories = await queryLongTermMemory(suggestedQueries, projectRoot);
56
+ memories.push(...longTermMemories);
57
+ // Source 4: CLAUDE.md sections relevant to task
58
+ const claudeMdMemories = await queryCLAUDEMd(classification, projectRoot);
59
+ memories.push(...claudeMdMemories);
60
+ // Source 5: Category-specific patterns from droids
61
+ const droidPatterns = getCategoryPatterns(classification);
62
+ memories.push(...droidPatterns);
63
+ // Deduplicate and sort by relevance
64
+ const uniqueMemories = deduplicateMemories(memories);
65
+ return uniqueMemories.sort((a, b) => b.relevance - a.relevance).slice(0, 15);
66
+ }
67
+ /**
68
+ * Query short-term SQLite memory
69
+ */
70
+ async function queryShortTermMemory(classification, entities, projectRoot) {
71
+ const dbPath = join(projectRoot, 'agents/data/memory/short_term.db');
72
+ if (!existsSync(dbPath))
73
+ return [];
74
+ const memories = [];
75
+ try {
76
+ // Query by category keywords
77
+ for (const keyword of classification.keywords.slice(0, 3)) {
78
+ const result = execSync(`sqlite3 "${dbPath}" "SELECT type, content FROM memories WHERE content LIKE '%${keyword}%' ORDER BY id DESC LIMIT 3;"`, { encoding: 'utf-8', timeout: 5000 }).trim();
79
+ if (result) {
80
+ for (const line of result.split('\n')) {
81
+ const [type, content] = line.split('|');
82
+ if (content) {
83
+ memories.push({
84
+ content: content.slice(0, 500),
85
+ type: type === 'lesson' ? 'lesson' : 'context',
86
+ relevance: 0.7,
87
+ source: 'short-term-memory',
88
+ });
89
+ }
90
+ }
91
+ }
92
+ }
93
+ // Query by technology mentions
94
+ for (const tech of entities.technologies.slice(0, 2)) {
95
+ const result = execSync(`sqlite3 "${dbPath}" "SELECT type, content FROM memories WHERE content LIKE '%${tech}%' ORDER BY id DESC LIMIT 2;"`, { encoding: 'utf-8', timeout: 5000 }).trim();
96
+ if (result) {
97
+ for (const line of result.split('\n')) {
98
+ const [type, content] = line.split('|');
99
+ if (content) {
100
+ memories.push({
101
+ content: content.slice(0, 500),
102
+ type: type === 'gotcha' ? 'gotcha' : 'context',
103
+ relevance: 0.6,
104
+ source: 'short-term-memory',
105
+ });
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ catch {
112
+ // Ignore query errors
113
+ }
114
+ return memories;
115
+ }
116
+ /**
117
+ * Query session memories for recent decisions
118
+ */
119
+ async function querySessionMemory(_taskInstruction, projectRoot) {
120
+ const dbPath = join(projectRoot, 'agents/data/memory/short_term.db');
121
+ if (!existsSync(dbPath))
122
+ return [];
123
+ const memories = [];
124
+ try {
125
+ // Get recent high-importance session memories
126
+ const result = execSync(`sqlite3 "${dbPath}" "SELECT type, content FROM session_memories WHERE importance >= 7 ORDER BY id DESC LIMIT 5;"`, { encoding: 'utf-8', timeout: 5000 }).trim();
127
+ if (result) {
128
+ for (const line of result.split('\n')) {
129
+ const [type, content] = line.split('|');
130
+ if (content) {
131
+ memories.push({
132
+ content: content.slice(0, 500),
133
+ type: type === 'lesson' ? 'lesson' : type === 'decision' ? 'context' : 'pattern',
134
+ relevance: 0.8,
135
+ source: 'session-memory',
136
+ });
137
+ }
138
+ }
139
+ }
140
+ }
141
+ catch {
142
+ // Ignore query errors
143
+ }
144
+ return memories;
145
+ }
146
+ /**
147
+ * Query long-term prepopulated memory
148
+ */
149
+ async function queryLongTermMemory(queries, projectRoot) {
150
+ const memoryPath = join(projectRoot, 'agents/data/memory/long_term_prepopulated.json');
151
+ if (!existsSync(memoryPath))
152
+ return [];
153
+ const memories = [];
154
+ try {
155
+ const data = JSON.parse(readFileSync(memoryPath, 'utf-8'));
156
+ const allMemories = data.memories || data.lessons || data || [];
157
+ // Simple keyword matching for now (semantic search would be better)
158
+ for (const query of queries.slice(0, 5)) {
159
+ const queryLower = query.toLowerCase();
160
+ const queryWords = queryLower.split(/\s+/);
161
+ for (const mem of allMemories) {
162
+ const content = (mem.content || mem.text || JSON.stringify(mem)).toLowerCase();
163
+ const matchCount = queryWords.filter(w => content.includes(w)).length;
164
+ if (matchCount >= 2) {
165
+ memories.push({
166
+ content: (mem.content || mem.text || JSON.stringify(mem)).slice(0, 500),
167
+ type: mem.type || 'lesson',
168
+ relevance: matchCount / queryWords.length,
169
+ source: 'long-term-memory',
170
+ });
171
+ }
172
+ }
173
+ }
174
+ }
175
+ catch {
176
+ // Ignore parse errors
177
+ }
178
+ return memories;
179
+ }
180
+ /**
181
+ * Query CLAUDE.md for relevant sections
182
+ */
183
+ async function queryCLAUDEMd(classification, projectRoot) {
184
+ const claudeMdPath = join(projectRoot, 'CLAUDE.md');
185
+ if (!existsSync(claudeMdPath))
186
+ return [];
187
+ const memories = [];
188
+ try {
189
+ const content = readFileSync(claudeMdPath, 'utf-8');
190
+ // Extract Code Field section (always relevant)
191
+ const codeFieldMatch = content.match(/## .*CODE FIELD.*?(?=\n## |\n---\n|$)/s);
192
+ if (codeFieldMatch) {
193
+ memories.push({
194
+ content: codeFieldMatch[0].slice(0, 800),
195
+ type: 'pattern',
196
+ relevance: 0.9,
197
+ source: 'CLAUDE.md',
198
+ });
199
+ }
200
+ // Extract category-specific sections
201
+ const categorySectionMap = {
202
+ 'sysadmin': [/## .*System|Admin|Linux|Network.*?(?=\n## |\n---\n|$)/si],
203
+ 'security': [/## .*Security|Auth.*?(?=\n## |\n---\n|$)/si],
204
+ 'testing': [/## .*Test.*?(?=\n## |\n---\n|$)/si],
205
+ 'coding': [/## .*Coding|Convention|Pattern.*?(?=\n## |\n---\n|$)/si],
206
+ };
207
+ const patterns = categorySectionMap[classification.category] || [];
208
+ for (const pattern of patterns) {
209
+ const match = content.match(pattern);
210
+ if (match) {
211
+ memories.push({
212
+ content: match[0].slice(0, 600),
213
+ type: 'context',
214
+ relevance: 0.75,
215
+ source: 'CLAUDE.md',
216
+ });
217
+ }
218
+ }
219
+ // Extract gotchas/troubleshooting sections
220
+ const gotchasMatch = content.match(/## .*Troubleshoot|Gotcha|Common.*?(?=\n## |\n---\n|$)/si);
221
+ if (gotchasMatch) {
222
+ memories.push({
223
+ content: gotchasMatch[0].slice(0, 500),
224
+ type: 'gotcha',
225
+ relevance: 0.7,
226
+ source: 'CLAUDE.md',
227
+ });
228
+ }
229
+ }
230
+ catch {
231
+ // Ignore read errors
232
+ }
233
+ return memories;
234
+ }
235
+ /**
236
+ * Get category-specific patterns from droid knowledge
237
+ */
238
+ function getCategoryPatterns(classification) {
239
+ const patterns = [];
240
+ const categoryPatterns = {
241
+ 'sysadmin': [
242
+ 'Use `ip addr` instead of deprecated `ifconfig` for network info',
243
+ 'Use `ss -tlnp` instead of `netstat` for listening ports',
244
+ 'Always check `journalctl -u <service>` for service logs',
245
+ 'Use `make -j$(nproc)` for parallel kernel compilation',
246
+ ],
247
+ 'security': [
248
+ 'Never log sensitive data (passwords, tokens, keys)',
249
+ 'Use parameterized queries to prevent SQL injection',
250
+ 'Validate and sanitize all user input',
251
+ 'Check for CVE exploits before attempting complex attacks',
252
+ ],
253
+ 'ml-training': [
254
+ 'Start with smaller models (distilbert vs bert-large) for speed',
255
+ 'Use `CUDA_VISIBLE_DEVICES` to select specific GPUs',
256
+ 'Cache datasets to avoid repeated downloads',
257
+ 'Set `num_train_epochs=3` initially, increase if needed',
258
+ ],
259
+ 'debugging': [
260
+ 'Use `pip check` to detect dependency conflicts',
261
+ 'Use `git reflog` to recover lost commits',
262
+ 'Check `conda env export` before modifying environments',
263
+ 'Add verbose flags (-v, --debug) to diagnose issues',
264
+ ],
265
+ 'coding': [
266
+ 'State assumptions before writing code',
267
+ 'Handle edge cases explicitly (empty arrays, null values)',
268
+ 'Use TypeScript strict mode for better type safety',
269
+ 'Include try-catch for operations that can fail',
270
+ ],
271
+ 'testing': [
272
+ 'Test edge cases: empty input, null, undefined',
273
+ 'Use mocks for external dependencies',
274
+ 'Aim for high coverage on critical paths',
275
+ 'Run tests before committing: `npm test`',
276
+ ],
277
+ };
278
+ const relevantPatterns = categoryPatterns[classification.category] || [];
279
+ for (const pattern of relevantPatterns) {
280
+ patterns.push({
281
+ content: pattern,
282
+ type: 'pattern',
283
+ relevance: 0.85,
284
+ source: 'droid-knowledge',
285
+ });
286
+ }
287
+ // Add common gotchas
288
+ const commonGotchas = [
289
+ 'Array index: use `i < length`, not `i <= length`',
290
+ 'JSON.parse throws on invalid input - wrap in try/catch',
291
+ 'Empty array reduce needs initial value',
292
+ 'Map.get() returns undefined for missing keys',
293
+ ];
294
+ for (const gotcha of commonGotchas.slice(0, 2)) {
295
+ patterns.push({
296
+ content: gotcha,
297
+ type: 'gotcha',
298
+ relevance: 0.8,
299
+ source: 'droid-knowledge',
300
+ });
301
+ }
302
+ return patterns;
303
+ }
304
+ /**
305
+ * Get project-specific context
306
+ */
307
+ async function getProjectContext(classification, projectRoot) {
308
+ const sections = [];
309
+ // Add project structure if relevant
310
+ if (['coding', 'testing', 'debugging'].includes(classification.category)) {
311
+ try {
312
+ const pkgJsonPath = join(projectRoot, 'package.json');
313
+ if (existsSync(pkgJsonPath)) {
314
+ const pkg = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));
315
+ sections.push(`Project: ${pkg.name} v${pkg.version}`);
316
+ if (pkg.scripts) {
317
+ const scripts = Object.keys(pkg.scripts).slice(0, 5).join(', ');
318
+ sections.push(`Available scripts: ${scripts}`);
319
+ }
320
+ }
321
+ }
322
+ catch {
323
+ // Ignore
324
+ }
325
+ }
326
+ return sections.join('\n');
327
+ }
328
+ /**
329
+ * Format context with recency bias (critical info at END)
330
+ * Based on Droid's hierarchical prompting strategy
331
+ */
332
+ function formatContextWithRecencyBias(classification, memories, patterns, gotchas, projectContext) {
333
+ const sections = [];
334
+ // Section 1: Project context (less critical, at start)
335
+ if (projectContext) {
336
+ sections.push('## Project Context\n' + projectContext);
337
+ }
338
+ // Section 2: General patterns (medium priority)
339
+ if (patterns.length > 0) {
340
+ sections.push('## Relevant Patterns\n' + patterns.slice(0, 5).map(p => `- ${p}`).join('\n'));
341
+ }
342
+ // Section 3: Retrieved memories
343
+ const lessons = memories.filter(m => m.type === 'lesson').slice(0, 3);
344
+ if (lessons.length > 0) {
345
+ sections.push('## Lessons from Memory\n' + lessons.map(m => `- ${m.content}`).join('\n'));
346
+ }
347
+ // Section 4: Task classification info
348
+ sections.push(`## Task Classification
349
+ - Category: ${classification.category}
350
+ - Suggested approach: Use ${classification.suggestedDroid} patterns
351
+ - Key focus: ${classification.keywords.slice(0, 3).join(', ')}`);
352
+ // Section 5: CRITICAL - Gotchas at END (recency bias)
353
+ if (gotchas.length > 0) {
354
+ sections.push('## ⚠️ CRITICAL: Avoid These Mistakes\n' + gotchas.slice(0, 4).map(g => `- ${g}`).join('\n'));
355
+ }
356
+ // Section 6: Final reminders (most recent = highest attention)
357
+ sections.push(`## Final Reminders
358
+ - State assumptions before coding
359
+ - Handle edge cases explicitly
360
+ - Verify solution before reporting success`);
361
+ return sections.join('\n\n') + '\n\n---\n\n';
362
+ }
363
+ /**
364
+ * Deduplicate memories by content similarity
365
+ */
366
+ function deduplicateMemories(memories) {
367
+ const seen = new Set();
368
+ const unique = [];
369
+ for (const mem of memories) {
370
+ const key = mem.content.slice(0, 100).toLowerCase().replace(/\s+/g, ' ');
371
+ if (!seen.has(key)) {
372
+ seen.add(key);
373
+ unique.push(mem);
374
+ }
375
+ }
376
+ return unique;
377
+ }
378
+ //# sourceMappingURL=dynamic-retrieval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-retrieval.js","sourceRoot":"","sources":["../../src/memory/dynamic-retrieval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAA2B,MAAM,sBAAsB,CAAC;AAkB7H;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,eAAuB,EACvB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,4BAA4B;IAC5B,MAAM,cAAc,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAErD,qCAAqC;IACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAEtD,uCAAuC;IACvC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAEnE,mCAAmC;IACnC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,eAAe,EACf,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,WAAW,CACZ,CAAC;IAEF,uCAAuC;IACvC,MAAM,QAAQ,GAAG,QAAQ;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,OAAO,GAAG,QAAQ;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEvB,uCAAuC;IACvC,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAE5E,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,4BAA4B,CACnD,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,CACf,CAAC;IAEF,OAAO;QACL,cAAc;QACd,gBAAgB,EAAE,QAAQ;QAC1B,QAAQ;QACR,OAAO;QACP,cAAc;QACd,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,eAAuB,EACvB,cAAkC,EAClC,QAAgD,EAChD,gBAA0B,EAC1B,WAAmB;IAEnB,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,qCAAqC;IACrC,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAClD,cAAc,EACd,QAAQ,EACR,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAEpC,gDAAgD;IAChD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC/E,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IAElC,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAChD,gBAAgB,EAChB,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAEnC,gDAAgD;IAChD,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC1E,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAEnC,mDAAmD;IACnD,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC1D,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAEhC,oCAAoC;IACpC,MAAM,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,cAAkC,EAClC,QAAgD,EAChD,WAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,6BAA6B;QAC7B,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,QAAQ,CACrB,YAAY,MAAM,8DAA8D,OAAO,+BAA+B,EACtH,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;YAET,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,OAAO,EAAE,CAAC;wBACZ,QAAQ,CAAC,IAAI,CAAC;4BACZ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;4BAC9B,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;4BAC9C,SAAS,EAAE,GAAG;4BACd,MAAM,EAAE,mBAAmB;yBAC5B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,QAAQ,CACrB,YAAY,MAAM,8DAA8D,IAAI,+BAA+B,EACnH,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;YAET,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,OAAO,EAAE,CAAC;wBACZ,QAAQ,CAAC,IAAI,CAAC;4BACZ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;4BAC9B,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;4BAC9C,SAAS,EAAE,GAAG;4BACd,MAAM,EAAE,mBAAmB;yBAC5B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,gBAAwB,EACxB,WAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,8CAA8C;QAC9C,MAAM,MAAM,GAAG,QAAQ,CACrB,YAAY,MAAM,gGAAgG,EAClH,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,OAAO,EAAE,CAAC;oBACZ,QAAQ,CAAC,IAAI,CAAC;wBACZ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC9B,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;wBAChF,SAAS,EAAE,GAAG;wBACd,MAAM,EAAE,gBAAgB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,OAAiB,EACjB,WAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,gDAAgD,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;QAEhE,oEAAoE;QACpE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE3C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC/E,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEtE,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CAAC;wBACZ,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wBACvE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ;wBAC1B,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC,MAAM;wBACzC,MAAM,EAAE,kBAAkB;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,cAAkC,EAClC,WAAmB;IAEnB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEpD,+CAA+C;QAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC/E,IAAI,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACxC,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,GAAG;gBACd,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,MAAM,kBAAkB,GAA6B;YACnD,UAAU,EAAE,CAAC,yDAAyD,CAAC;YACvE,UAAU,EAAE,CAAC,4CAA4C,CAAC;YAC1D,SAAS,EAAE,CAAC,mCAAmC,CAAC;YAChD,QAAQ,EAAE,CAAC,wDAAwD,CAAC;SACrE,CAAC;QAEF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC/B,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC9F,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACtC,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,GAAG;gBACd,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,cAAkC;IAC7D,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,MAAM,gBAAgB,GAA6B;QACjD,UAAU,EAAE;YACV,iEAAiE;YACjE,yDAAyD;YACzD,yDAAyD;YACzD,uDAAuD;SACxD;QACD,UAAU,EAAE;YACV,oDAAoD;YACpD,oDAAoD;YACpD,sCAAsC;YACtC,0DAA0D;SAC3D;QACD,aAAa,EAAE;YACb,gEAAgE;YAChE,oDAAoD;YACpD,4CAA4C;YAC5C,wDAAwD;SACzD;QACD,WAAW,EAAE;YACX,gDAAgD;YAChD,0CAA0C;YAC1C,wDAAwD;YACxD,oDAAoD;SACrD;QACD,QAAQ,EAAE;YACR,uCAAuC;YACvC,0DAA0D;YAC1D,mDAAmD;YACnD,gDAAgD;SACjD;QACD,SAAS,EAAE;YACT,+CAA+C;YAC/C,qCAAqC;YACrC,yCAAyC;YACzC,yCAAyC;SAC1C;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzE,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,MAAM,aAAa,GAAG;QACpB,kDAAkD;QAClD,wDAAwD;QACxD,wCAAwC;QACxC,8CAA8C;KAC/C,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,cAAkC,EAClC,WAAmB;IAEnB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,oCAAoC;IACpC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACtD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3D,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,cAAkC,EAClC,QAA2B,EAC3B,QAAkB,EAClB,OAAiB,EACjB,cAAsB;IAEtB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,uDAAuD;IACvD,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC,CAAC;IACzD,CAAC;IAED,gDAAgD;IAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,gCAAgC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC;cACF,cAAc,CAAC,QAAQ;4BACT,cAAc,CAAC,cAAc;eAC1C,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/D,sDAAsD;IACtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,wCAAwC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC;;;2CAG2B,CAAC,CAAC;IAE3C,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,QAA2B;IACtD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Embedding Service for UAM Memory System
3
+ *
4
+ * Provides text embedding generation for semantic memory retrieval.
5
+ * Supports multiple backends: OpenAI, local transformers, or simple TF-IDF fallback.
6
+ */
7
+ export interface EmbeddingProvider {
8
+ name: string;
9
+ dimensions: number;
10
+ embed(text: string): Promise<number[]>;
11
+ embedBatch(texts: string[]): Promise<number[][]>;
12
+ isAvailable(): Promise<boolean>;
13
+ }
14
+ /**
15
+ * OpenAI Embeddings Provider
16
+ * Uses text-embedding-3-small (1536 dimensions) or text-embedding-ada-002
17
+ */
18
+ export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
19
+ name: string;
20
+ dimensions: number;
21
+ private apiKey;
22
+ private model;
23
+ constructor(apiKey?: string, model?: string);
24
+ isAvailable(): Promise<boolean>;
25
+ embed(text: string): Promise<number[]>;
26
+ embedBatch(texts: string[]): Promise<number[][]>;
27
+ }
28
+ /**
29
+ * Local Sentence Transformers Provider
30
+ * Uses Python sentence-transformers library for local embedding generation
31
+ */
32
+ export declare class LocalEmbeddingProvider implements EmbeddingProvider {
33
+ name: string;
34
+ dimensions: number;
35
+ private model;
36
+ private pythonPath;
37
+ constructor(model?: string, pythonPath?: string);
38
+ isAvailable(): Promise<boolean>;
39
+ embed(text: string): Promise<number[]>;
40
+ embedBatch(texts: string[]): Promise<number[][]>;
41
+ }
42
+ /**
43
+ * TF-IDF Fallback Provider
44
+ * Simple keyword-based embeddings when no ML model is available
45
+ */
46
+ export declare class TFIDFEmbeddingProvider implements EmbeddingProvider {
47
+ name: string;
48
+ dimensions: number;
49
+ private vocabulary;
50
+ private idfScores;
51
+ private documents;
52
+ isAvailable(): Promise<boolean>;
53
+ embed(text: string): Promise<number[]>;
54
+ embedBatch(texts: string[]): Promise<number[][]>;
55
+ addDocument(text: string): void;
56
+ private tokenize;
57
+ private getTokenIndex;
58
+ private updateIDF;
59
+ private normalize;
60
+ }
61
+ /**
62
+ * Embedding Service - Main interface for UAM memory system
63
+ * Automatically selects best available provider
64
+ */
65
+ export declare class EmbeddingService {
66
+ private provider;
67
+ private providers;
68
+ private cache;
69
+ private cacheMaxSize;
70
+ constructor();
71
+ initialize(): Promise<void>;
72
+ embed(text: string): Promise<number[]>;
73
+ embedBatch(texts: string[]): Promise<number[][]>;
74
+ cosineSimilarity(a: number[], b: number[]): number;
75
+ getDimensions(): number;
76
+ getProviderName(): string;
77
+ private getCacheKey;
78
+ }
79
+ export declare function getEmbeddingService(): EmbeddingService;
80
+ export declare function generateEmbedding(text: string): Promise<number[]>;
81
+ export declare function generateEmbeddings(texts: string[]): Promise<number[][]>;
82
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/memory/embeddings.ts"],"names":[],"mappings":"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"}