universal-agent-memory 0.7.0 → 0.7.2

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 (56) hide show
  1. package/dist/benchmarks/improved-benchmark.d.ts.map +1 -1
  2. package/dist/benchmarks/improved-benchmark.js +3 -1
  3. package/dist/benchmarks/improved-benchmark.js.map +1 -1
  4. package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -1
  5. package/dist/benchmarks/multi-turn-agent.js +6 -2
  6. package/dist/benchmarks/multi-turn-agent.js.map +1 -1
  7. package/dist/bin/cli.js +4 -1
  8. package/dist/bin/cli.js.map +1 -1
  9. package/dist/cli/update.d.ts +3 -0
  10. package/dist/cli/update.d.ts.map +1 -1
  11. package/dist/cli/update.js +155 -11
  12. package/dist/cli/update.js.map +1 -1
  13. package/dist/index.d.ts +8 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +9 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/memory/backends/factory.d.ts.map +1 -1
  18. package/dist/memory/backends/factory.js +1 -0
  19. package/dist/memory/backends/factory.js.map +1 -1
  20. package/dist/memory/backends/qdrant-cloud.d.ts +14 -1
  21. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -1
  22. package/dist/memory/backends/qdrant-cloud.js +59 -4
  23. package/dist/memory/backends/qdrant-cloud.js.map +1 -1
  24. package/dist/memory/dynamic-retrieval.d.ts +62 -1
  25. package/dist/memory/dynamic-retrieval.d.ts.map +1 -1
  26. package/dist/memory/dynamic-retrieval.js +154 -32
  27. package/dist/memory/dynamic-retrieval.js.map +1 -1
  28. package/dist/memory/embeddings.d.ts +25 -2
  29. package/dist/memory/embeddings.d.ts.map +1 -1
  30. package/dist/memory/embeddings.js +72 -2
  31. package/dist/memory/embeddings.js.map +1 -1
  32. package/dist/memory/memory-consolidator.d.ts +36 -0
  33. package/dist/memory/memory-consolidator.d.ts.map +1 -1
  34. package/dist/memory/memory-consolidator.js +166 -0
  35. package/dist/memory/memory-consolidator.js.map +1 -1
  36. package/dist/memory/multi-view-memory.d.ts +134 -0
  37. package/dist/memory/multi-view-memory.d.ts.map +1 -0
  38. package/dist/memory/multi-view-memory.js +420 -0
  39. package/dist/memory/multi-view-memory.js.map +1 -0
  40. package/dist/memory/semantic-compression.d.ts +77 -0
  41. package/dist/memory/semantic-compression.d.ts.map +1 -0
  42. package/dist/memory/semantic-compression.js +344 -0
  43. package/dist/memory/semantic-compression.js.map +1 -0
  44. package/dist/memory/speculative-cache.d.ts +3 -0
  45. package/dist/memory/speculative-cache.d.ts.map +1 -1
  46. package/dist/memory/speculative-cache.js +2 -0
  47. package/dist/memory/speculative-cache.js.map +1 -1
  48. package/dist/utils/dijkstra.d.ts +17 -0
  49. package/dist/utils/dijkstra.d.ts.map +1 -0
  50. package/dist/utils/dijkstra.js +91 -0
  51. package/dist/utils/dijkstra.js.map +1 -0
  52. package/dist/utils/validate-json.d.ts +3 -4
  53. package/dist/utils/validate-json.d.ts.map +1 -1
  54. package/dist/utils/validate-json.js +31 -31
  55. package/dist/utils/validate-json.js.map +1 -1
  56. package/package.json +1 -1
@@ -0,0 +1,344 @@
1
+ /**
2
+ * Semantic Compression Module for UAM
3
+ *
4
+ * Implements SimpleMem-style semantic structured compression:
5
+ * 1. Entropy-aware filtering to distill raw content into atomic facts
6
+ * 2. Coreference normalization (entity resolution)
7
+ * 3. Multi-view indexing for efficient retrieval
8
+ *
9
+ * Based on SimpleMem research (2026): 30x token reduction while maintaining F1 scores
10
+ */
11
+ import { estimateTokens } from './context-compressor.js';
12
+ const DEFAULT_CONFIG = {
13
+ maxFactsPerUnit: 10,
14
+ minActionability: 0.3,
15
+ minEntropy: 0.3, // Minimum entropy threshold
16
+ deduplicationThreshold: 0.85,
17
+ preserveHighImportance: true,
18
+ };
19
+ /**
20
+ * Calculate Shannon entropy of text (normalized 0-1)
21
+ * Higher entropy = more information content, less repetition
22
+ * Based on SimpleMem's entropy-aware filtering
23
+ */
24
+ export function calculateEntropy(text) {
25
+ const words = text.toLowerCase().split(/\s+/).filter(w => w.length > 1);
26
+ if (words.length === 0)
27
+ return 0;
28
+ // Count word frequencies
29
+ const freq = new Map();
30
+ for (const word of words) {
31
+ freq.set(word, (freq.get(word) || 0) + 1);
32
+ }
33
+ // Calculate Shannon entropy
34
+ let entropy = 0;
35
+ const total = words.length;
36
+ for (const count of freq.values()) {
37
+ const p = count / total;
38
+ entropy -= p * Math.log2(p);
39
+ }
40
+ // Normalize to 0-1 range (max entropy = log2(unique_words))
41
+ const maxEntropy = Math.log2(freq.size) || 1;
42
+ return entropy / maxEntropy;
43
+ }
44
+ /**
45
+ * Calculate information density (entropy per token)
46
+ * Helps identify high-value content worth preserving
47
+ */
48
+ export function calculateInformationDensity(text) {
49
+ const entropy = calculateEntropy(text);
50
+ // Weight by unique word ratio
51
+ const words = text.toLowerCase().split(/\s+/).filter(w => w.length > 1);
52
+ const uniqueRatio = new Set(words).size / (words.length || 1);
53
+ // Combine entropy and uniqueness
54
+ return (entropy * 0.6 + uniqueRatio * 0.4);
55
+ }
56
+ /**
57
+ * Extract atomic facts from raw content
58
+ * Distills verbose content into minimal, self-contained units
59
+ */
60
+ export function extractAtomicFacts(content, minEntropy = 0.3) {
61
+ const facts = [];
62
+ // Split into sentences
63
+ const sentences = content
64
+ .split(/(?<=[.!?])\s+/)
65
+ .map(s => s.trim())
66
+ .filter(s => s.length > 10);
67
+ for (const sentence of sentences) {
68
+ const normalized = sentence.toLowerCase();
69
+ // Skip low-entropy (repetitive) content
70
+ const entropy = calculateEntropy(sentence);
71
+ if (entropy < minEntropy && sentence.length > 50) {
72
+ continue; // Skip long repetitive sentences
73
+ }
74
+ // Determine fact type
75
+ let type = 'fact';
76
+ if (/learned|realized|discovered|found that/i.test(sentence)) {
77
+ type = 'lesson';
78
+ }
79
+ else if (/decided|chose|selected|went with/i.test(sentence)) {
80
+ type = 'decision';
81
+ }
82
+ else if (/pattern|always|usually|typically/i.test(sentence)) {
83
+ type = 'pattern';
84
+ }
85
+ else if (/careful|watch out|gotcha|avoid|don't|never/i.test(sentence)) {
86
+ type = 'gotcha';
87
+ }
88
+ // Calculate actionability (boost by entropy for high-info content)
89
+ const baseActionability = calculateActionability(sentence);
90
+ const actionability = Math.min(1, baseActionability + (entropy * 0.1));
91
+ // Determine temporality
92
+ const temporality = detectTemporality(sentence);
93
+ // Extract entities
94
+ const entities = extractEntities(sentence);
95
+ // Skip low-value sentences
96
+ if (isFillerSentence(normalized))
97
+ continue;
98
+ facts.push({
99
+ content: compressSentence(sentence),
100
+ entities,
101
+ actionability,
102
+ temporality,
103
+ type,
104
+ });
105
+ }
106
+ return facts;
107
+ }
108
+ /**
109
+ * Calculate actionability score (0-1)
110
+ * Higher = more directly usable information
111
+ */
112
+ function calculateActionability(sentence) {
113
+ let score = 0.5;
114
+ // Boost for imperative/actionable language
115
+ if (/^(use|run|execute|call|apply|implement|add|remove|fix|change)/i.test(sentence)) {
116
+ score += 0.3;
117
+ }
118
+ // Boost for code/technical specifics
119
+ if (/`[^`]+`|"[^"]+"|'[^']+'/.test(sentence)) {
120
+ score += 0.2;
121
+ }
122
+ // Boost for concrete commands/paths
123
+ if (/\.(ts|js|py|sh|json|yaml|md)\b|\/[\w/]+/.test(sentence)) {
124
+ score += 0.15;
125
+ }
126
+ // Penalty for vague language
127
+ if (/might|maybe|perhaps|possibly|somewhat|kind of/i.test(sentence)) {
128
+ score -= 0.2;
129
+ }
130
+ // Penalty for meta-commentary
131
+ if (/I think|I believe|in my opinion|it seems/i.test(sentence)) {
132
+ score -= 0.15;
133
+ }
134
+ return Math.max(0, Math.min(1, score));
135
+ }
136
+ /**
137
+ * Detect temporal relevance
138
+ */
139
+ function detectTemporality(sentence) {
140
+ if (/will|going to|should|must|need to|plan to/i.test(sentence)) {
141
+ return 'future';
142
+ }
143
+ if (/was|were|did|had|previously|earlier|before/i.test(sentence)) {
144
+ return 'past';
145
+ }
146
+ if (/is|are|currently|now|today/i.test(sentence)) {
147
+ return 'present';
148
+ }
149
+ return 'timeless';
150
+ }
151
+ /**
152
+ * Extract named entities from sentence
153
+ */
154
+ function extractEntities(sentence) {
155
+ const entities = [];
156
+ // File paths
157
+ const paths = sentence.match(/[\w./\\-]+\.(ts|js|py|json|yaml|yml|md|sh|sql)/gi);
158
+ if (paths)
159
+ entities.push(...paths);
160
+ // Function/class names (camelCase or PascalCase)
161
+ const names = sentence.match(/\b[a-z][a-zA-Z0-9]*(?:[A-Z][a-zA-Z0-9]*)+\b/g);
162
+ if (names)
163
+ entities.push(...names);
164
+ // Commands (npm, git, uam, etc)
165
+ const commands = sentence.match(/\b(npm|git|uam|docker|curl|pip|python|node)\s+\w+/gi);
166
+ if (commands)
167
+ entities.push(...commands.map(c => c.trim()));
168
+ // Quoted strings
169
+ const quoted = sentence.match(/`([^`]+)`/g);
170
+ if (quoted)
171
+ entities.push(...quoted.map(q => q.replace(/`/g, '')));
172
+ return [...new Set(entities)];
173
+ }
174
+ /**
175
+ * Detect filler sentences that add no value
176
+ */
177
+ function isFillerSentence(sentence) {
178
+ const fillerPatterns = [
179
+ /^(let me|i will|i'll|we can|we should|okay|alright|sure)/i,
180
+ /^(as mentioned|as noted|as stated|as discussed)/i,
181
+ /^(this is|that is|here is|there is) (a|the|an)?\s*(good|great|nice)/i,
182
+ /^(in conclusion|to summarize|in summary|overall)/i,
183
+ /^(i hope|hope this|hopefully)/i,
184
+ /^(thanks|thank you|please)/i,
185
+ ];
186
+ return fillerPatterns.some(p => p.test(sentence));
187
+ }
188
+ /**
189
+ * Compress a single sentence while preserving meaning
190
+ */
191
+ function compressSentence(sentence) {
192
+ let compressed = sentence;
193
+ // Remove filler phrases
194
+ const fillerPhrases = [
195
+ /\b(basically|essentially|actually|really|very|quite|somewhat|rather)\b/gi,
196
+ /\b(in order to)\b/gi,
197
+ /\b(it is worth noting that|it should be noted that)\b/gi,
198
+ /\b(as a matter of fact|in fact)\b/gi,
199
+ /\b(the fact that)\b/gi,
200
+ /\b(in this case|in that case)\b/gi,
201
+ /\b(please note that|note that)\b/gi,
202
+ ];
203
+ for (const pattern of fillerPhrases) {
204
+ compressed = compressed.replace(pattern, '');
205
+ }
206
+ // Clean up whitespace
207
+ compressed = compressed.replace(/\s+/g, ' ').trim();
208
+ return compressed;
209
+ }
210
+ /**
211
+ * Create a semantic unit from multiple memories
212
+ */
213
+ export function createSemanticUnit(memories, config = {}) {
214
+ const cfg = { ...DEFAULT_CONFIG, ...config };
215
+ // Extract facts from all memories
216
+ const allFacts = [];
217
+ let sourceTokens = 0;
218
+ for (const mem of memories) {
219
+ sourceTokens += estimateTokens(mem.content);
220
+ const facts = extractAtomicFacts(mem.content);
221
+ // Filter by actionability
222
+ const filtered = facts.filter(f => f.actionability >= cfg.minActionability ||
223
+ (cfg.preserveHighImportance && (mem.importance || 0) >= 7));
224
+ allFacts.push(...filtered);
225
+ }
226
+ // Deduplicate similar facts
227
+ const uniqueFacts = deduplicateFacts(allFacts, cfg.deduplicationThreshold);
228
+ // Sort by actionability and take top N
229
+ uniqueFacts.sort((a, b) => b.actionability - a.actionability);
230
+ const topFacts = uniqueFacts.slice(0, cfg.maxFactsPerUnit);
231
+ // Collect all entities
232
+ const allEntities = new Set();
233
+ for (const fact of topFacts) {
234
+ fact.entities.forEach(e => allEntities.add(e));
235
+ }
236
+ // Collect temporal markers
237
+ const temporalMarkers = [...new Set(topFacts
238
+ .filter(f => f.temporality !== 'timeless')
239
+ .map(f => f.temporality))];
240
+ // Calculate compressed size
241
+ const compressedContent = topFacts.map(f => f.content).join(' ');
242
+ const compressedTokens = estimateTokens(compressedContent);
243
+ return {
244
+ id: `su-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
245
+ atomicFacts: topFacts,
246
+ entities: [...allEntities],
247
+ temporalMarkers,
248
+ sourceTokens,
249
+ compressedTokens,
250
+ compressionRatio: sourceTokens / Math.max(1, compressedTokens),
251
+ };
252
+ }
253
+ /**
254
+ * Deduplicate facts by content similarity
255
+ */
256
+ function deduplicateFacts(facts, threshold) {
257
+ const unique = [];
258
+ for (const fact of facts) {
259
+ const isDuplicate = unique.some(existing => {
260
+ const similarity = jaccardSimilarity(fact.content.toLowerCase(), existing.content.toLowerCase());
261
+ return similarity > threshold;
262
+ });
263
+ if (!isDuplicate) {
264
+ unique.push(fact);
265
+ }
266
+ }
267
+ return unique;
268
+ }
269
+ /**
270
+ * Jaccard similarity between two strings
271
+ */
272
+ function jaccardSimilarity(a, b) {
273
+ const setA = new Set(a.split(/\s+/));
274
+ const setB = new Set(b.split(/\s+/));
275
+ const intersection = new Set([...setA].filter(x => setB.has(x)));
276
+ const union = new Set([...setA, ...setB]);
277
+ return intersection.size / (union.size || 1);
278
+ }
279
+ /**
280
+ * Serialize semantic unit for storage/display
281
+ */
282
+ export function serializeSemanticUnit(unit) {
283
+ const sections = [];
284
+ // Group facts by type
285
+ const byType = {};
286
+ for (const fact of unit.atomicFacts) {
287
+ if (!byType[fact.type])
288
+ byType[fact.type] = [];
289
+ byType[fact.type].push(fact);
290
+ }
291
+ // Format each section
292
+ const typeOrder = ['gotcha', 'lesson', 'decision', 'pattern', 'fact'];
293
+ for (const type of typeOrder) {
294
+ if (byType[type] && byType[type].length > 0) {
295
+ const emoji = type === 'gotcha' ? '⚠️' :
296
+ type === 'lesson' ? '💡' :
297
+ type === 'decision' ? '✓' :
298
+ type === 'pattern' ? '🔄' : '→';
299
+ sections.push(byType[type].map(f => `${emoji} ${f.content}`).join('\n'));
300
+ }
301
+ }
302
+ // Add entities if present
303
+ if (unit.entities.length > 0) {
304
+ sections.push(`[Entities: ${unit.entities.slice(0, 10).join(', ')}]`);
305
+ }
306
+ return sections.join('\n');
307
+ }
308
+ /**
309
+ * Compress batch of memories into semantic units
310
+ * Main entry point for semantic compression
311
+ */
312
+ export function compressToSemanticUnits(memories, config = {}) {
313
+ // Group memories by type for better compression
314
+ const byType = {};
315
+ for (const mem of memories) {
316
+ const type = mem.type || 'general';
317
+ if (!byType[type])
318
+ byType[type] = [];
319
+ byType[type].push(mem);
320
+ }
321
+ const units = [];
322
+ let totalSourceTokens = 0;
323
+ let totalCompressedTokens = 0;
324
+ for (const [_type, typeMemories] of Object.entries(byType)) {
325
+ // Chunk into groups of 5-10 for manageable units
326
+ const chunkSize = 7;
327
+ for (let i = 0; i < typeMemories.length; i += chunkSize) {
328
+ const chunk = typeMemories.slice(i, i + chunkSize);
329
+ const unit = createSemanticUnit(chunk, config);
330
+ units.push(unit);
331
+ totalSourceTokens += unit.sourceTokens;
332
+ totalCompressedTokens += unit.compressedTokens;
333
+ }
334
+ }
335
+ const serialized = units.map(u => serializeSemanticUnit(u)).join('\n\n---\n\n');
336
+ return {
337
+ units,
338
+ totalSourceTokens,
339
+ totalCompressedTokens,
340
+ overallRatio: totalSourceTokens / Math.max(1, totalCompressedTokens),
341
+ serialized,
342
+ };
343
+ }
344
+ //# sourceMappingURL=semantic-compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-compression.js","sourceRoot":"","sources":["../../src/memory/semantic-compression.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@
3
3
  *
4
4
  * Pre-computes likely next queries based on task patterns.
5
5
  * Reduces latency by predicting and caching memory retrievals.
6
+ *
7
+ * Enhanced with task classifier integration for smarter prefetching
6
8
  */
7
9
  export interface CacheEntry {
8
10
  query: string;
@@ -12,6 +14,7 @@ export interface CacheEntry {
12
14
  lastUsed: Date;
13
15
  createdAt: Date;
14
16
  predictedBy?: string;
17
+ taskCategory?: string;
15
18
  }
16
19
  export interface CacheConfig {
17
20
  maxEntries: number;
@@ -1 +1 @@
1
- {"version":3,"file":"speculative-cache.d.ts","sourceRoot":"","sources":["../../src/memory/speculative-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAuCD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAkC;gBAE1C,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAI7C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAoBrC;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBjE;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBnD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAehB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACzD;IAkBD;;OAEG;IACH,OAAO,IAAI,MAAM;IAejB;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAKD,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAKnF"}
1
+ {"version":3,"file":"speculative-cache.d.ts","sourceRoot":"","sources":["../../src/memory/speculative-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAuCD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAkC;gBAE1C,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAI7C;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAoBrC;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBjE;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBnD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAehB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACzD;IAkBD;;OAEG;IACH,OAAO,IAAI,MAAM;IAejB;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAKD,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAKnF"}
@@ -3,6 +3,8 @@
3
3
  *
4
4
  * Pre-computes likely next queries based on task patterns.
5
5
  * Reduces latency by predicting and caching memory retrievals.
6
+ *
7
+ * Enhanced with task classifier integration for smarter prefetching
6
8
  */
7
9
  const DEFAULT_CONFIG = {
8
10
  maxEntries: 100,
@@ -1 +1 @@
1
- {"version":3,"file":"speculative-cache.js","sourceRoot":"","sources":["../../src/memory/speculative-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speculative-cache.js","sourceRoot":"","sources":["../../src/memory/speculative-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Result type for shortest path calculation
3
+ */
4
+ export interface ShortestPathResult {
5
+ path: string[];
6
+ distance: number;
7
+ }
8
+ /**
9
+ * Finds the shortest path between two nodes in a weighted graph using Dijkstra's algorithm.
10
+ *
11
+ * @param graph - Weighted graph as adjacency list Map<node, Map<neighbor, weight>>
12
+ * @param start - Starting node
13
+ * @param end - Target node
14
+ * @returns ShortestPathResult with path and distance, or null if no path exists
15
+ */
16
+ export declare function findShortestPath(graph: Map<string, Map<string, number>>, start: string, end: string): ShortestPathResult | null;
17
+ //# sourceMappingURL=dijkstra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dijkstra.d.ts","sourceRoot":"","sources":["../../src/utils/dijkstra.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,kBAAkB,GAAG,IAAI,CAgG3B"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Finds the shortest path between two nodes in a weighted graph using Dijkstra's algorithm.
3
+ *
4
+ * @param graph - Weighted graph as adjacency list Map<node, Map<neighbor, weight>>
5
+ * @param start - Starting node
6
+ * @param end - Target node
7
+ * @returns ShortestPathResult with path and distance, or null if no path exists
8
+ */
9
+ export function findShortestPath(graph, start, end) {
10
+ // Handle edge case: start equals end
11
+ if (start === end) {
12
+ // Check if node exists in graph
13
+ if (!graph.has(start)) {
14
+ return null;
15
+ }
16
+ return { path: [start], distance: 0 };
17
+ }
18
+ // Check if both nodes exist in the graph
19
+ if (!graph.has(start) || !graph.has(end)) {
20
+ return null;
21
+ }
22
+ // Distance from start to each node
23
+ const distances = new Map();
24
+ // Previous node in optimal path
25
+ const previous = new Map();
26
+ // Unvisited nodes
27
+ const unvisited = new Set();
28
+ // Initialize distances
29
+ for (const node of graph.keys()) {
30
+ distances.set(node, node === start ? 0 : Infinity);
31
+ previous.set(node, null);
32
+ unvisited.add(node);
33
+ }
34
+ while (unvisited.size > 0) {
35
+ // Find unvisited node with smallest distance
36
+ let current = null;
37
+ let smallestDistance = Infinity;
38
+ for (const node of unvisited) {
39
+ const dist = distances.get(node) ?? Infinity;
40
+ if (dist < smallestDistance) {
41
+ smallestDistance = dist;
42
+ current = node;
43
+ }
44
+ }
45
+ // No reachable nodes left
46
+ if (current === null || smallestDistance === Infinity) {
47
+ break;
48
+ }
49
+ // Found the end node
50
+ if (current === end) {
51
+ break;
52
+ }
53
+ // Remove current from unvisited
54
+ unvisited.delete(current);
55
+ // Update distances to neighbors
56
+ const neighbors = graph.get(current);
57
+ if (neighbors) {
58
+ for (const [neighbor, weight] of neighbors) {
59
+ if (unvisited.has(neighbor)) {
60
+ const newDistance = smallestDistance + weight;
61
+ const currentDistance = distances.get(neighbor) ?? Infinity;
62
+ if (newDistance < currentDistance) {
63
+ distances.set(neighbor, newDistance);
64
+ previous.set(neighbor, current);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ // Check if end node was reached
71
+ const endDistance = distances.get(end);
72
+ if (endDistance === undefined || endDistance === Infinity) {
73
+ return null;
74
+ }
75
+ // Reconstruct path
76
+ const path = [];
77
+ let current = end;
78
+ while (current !== null) {
79
+ path.unshift(current);
80
+ current = previous.get(current) ?? null;
81
+ }
82
+ // Verify path starts with start node
83
+ if (path[0] !== start) {
84
+ return null;
85
+ }
86
+ return {
87
+ path,
88
+ distance: endDistance,
89
+ };
90
+ }
91
+ //# sourceMappingURL=dijkstra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dijkstra.js","sourceRoot":"","sources":["../../src/utils/dijkstra.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,7 @@ export declare class AppError extends Error {
25
25
  *
26
26
  * @param input - The string to validate and parse as JSON
27
27
  * @returns The parsed JSON value (object, array, string, number, boolean, or null)
28
- * @throws AppError with code 'INVALID_INPUT' if input is not a string
29
- * @throws AppError with code 'JSON_PARSE_ERROR' if the string is not valid JSON
28
+ * @throws AppError with code 'INVALID_JSON' if the string is not valid JSON
30
29
  *
31
30
  * @example
32
31
  * ```typescript
@@ -43,10 +42,10 @@ export declare class AppError extends Error {
43
42
  * validateAndParseJSON('{invalid}');
44
43
  * } catch (error) {
45
44
  * if (error instanceof AppError) {
46
- * console.log(error.code); // 'JSON_PARSE_ERROR'
45
+ * console.log(error.code); // 'INVALID_JSON'
47
46
  * }
48
47
  * }
49
48
  * ```
50
49
  */
51
- export declare function validateAndParseJSON(input: string): Promise<unknown>;
50
+ export declare function validateAndParseJSON(input: string): unknown;
52
51
  //# sourceMappingURL=validate-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-json.d.ts","sourceRoot":"","sources":["../../src/utils/validate-json.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C;;;;;;OAMG;gBAED,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYpC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiD1E"}
1
+ {"version":3,"file":"validate-json.d.ts","sourceRoot":"","sources":["../../src/utils/validate-json.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C;;;;;;OAMG;gBAED,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYpC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAmC3D"}