universal-agent-memory 0.6.3 → 0.7.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.
- package/dist/benchmarks/benchmark.d.ts +12 -12
- package/dist/benchmarks/execution-verifier.d.ts.map +1 -1
- package/dist/benchmarks/execution-verifier.js +51 -10
- package/dist/benchmarks/execution-verifier.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/context-compressor.d.ts +66 -0
- package/dist/memory/context-compressor.d.ts.map +1 -0
- package/dist/memory/context-compressor.js +250 -0
- package/dist/memory/context-compressor.js.map +1 -0
- package/dist/memory/embeddings.d.ts +13 -2
- package/dist/memory/embeddings.d.ts.map +1 -1
- package/dist/memory/embeddings.js +101 -7
- package/dist/memory/embeddings.js.map +1 -1
- package/dist/memory/hierarchical-memory.d.ts +116 -0
- package/dist/memory/hierarchical-memory.d.ts.map +1 -0
- package/dist/memory/hierarchical-memory.js +299 -0
- package/dist/memory/hierarchical-memory.js.map +1 -0
- package/dist/memory/memory-consolidator.d.ts +88 -0
- package/dist/memory/memory-consolidator.d.ts.map +1 -0
- package/dist/memory/memory-consolidator.js +348 -0
- package/dist/memory/memory-consolidator.js.map +1 -0
- package/dist/memory/speculative-cache.d.ts +89 -0
- package/dist/memory/speculative-cache.d.ts.map +1 -0
- package/dist/memory/speculative-cache.js +259 -0
- package/dist/memory/speculative-cache.js.map +1 -0
- package/package.json +1 -1
|
@@ -174,6 +174,17 @@ export declare const BenchmarkResultSchema: z.ZodObject<{
|
|
|
174
174
|
};
|
|
175
175
|
}>;
|
|
176
176
|
}, "strip", z.ZodTypeAny, {
|
|
177
|
+
summary: {
|
|
178
|
+
uamSuccessRate: number;
|
|
179
|
+
naiveSuccessRate: number;
|
|
180
|
+
uamAvgDuration: number;
|
|
181
|
+
naiveAvgDuration: number;
|
|
182
|
+
improvement: {
|
|
183
|
+
memoryQueries: number;
|
|
184
|
+
successDelta: number;
|
|
185
|
+
speedup: number;
|
|
186
|
+
};
|
|
187
|
+
};
|
|
177
188
|
taskId: string;
|
|
178
189
|
taskName: string;
|
|
179
190
|
results: {
|
|
@@ -188,6 +199,7 @@ export declare const BenchmarkResultSchema: z.ZodObject<{
|
|
|
188
199
|
memoryQueries?: number | undefined;
|
|
189
200
|
tokensUsed?: number | undefined;
|
|
190
201
|
}[];
|
|
202
|
+
}, {
|
|
191
203
|
summary: {
|
|
192
204
|
uamSuccessRate: number;
|
|
193
205
|
naiveSuccessRate: number;
|
|
@@ -199,7 +211,6 @@ export declare const BenchmarkResultSchema: z.ZodObject<{
|
|
|
199
211
|
speedup: number;
|
|
200
212
|
};
|
|
201
213
|
};
|
|
202
|
-
}, {
|
|
203
214
|
taskId: string;
|
|
204
215
|
taskName: string;
|
|
205
216
|
results: {
|
|
@@ -214,17 +225,6 @@ export declare const BenchmarkResultSchema: z.ZodObject<{
|
|
|
214
225
|
memoryQueries?: number | undefined;
|
|
215
226
|
tokensUsed?: number | undefined;
|
|
216
227
|
}[];
|
|
217
|
-
summary: {
|
|
218
|
-
uamSuccessRate: number;
|
|
219
|
-
naiveSuccessRate: number;
|
|
220
|
-
uamAvgDuration: number;
|
|
221
|
-
naiveAvgDuration: number;
|
|
222
|
-
improvement: {
|
|
223
|
-
memoryQueries: number;
|
|
224
|
-
successDelta: number;
|
|
225
|
-
speedup: number;
|
|
226
|
-
};
|
|
227
|
-
};
|
|
228
228
|
}>;
|
|
229
229
|
export type BenchmarkResult = z.infer<typeof BenchmarkResultSchema>;
|
|
230
230
|
export declare const OverallBenchmarkStatsSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-verifier.d.ts","sourceRoot":"","sources":["../../src/benchmarks/execution-verifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"execution-verifier.d.ts","sourceRoot":"","sources":["../../src/benchmarks/execution-verifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA0ED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAyG7B;AAkGD;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CA4E5E,CAAC;AAEF;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,kBAAkB,CAAC,CAiB7B"}
|
|
@@ -9,6 +9,44 @@ import { writeFileSync, existsSync, mkdirSync, rmSync } from 'fs';
|
|
|
9
9
|
import { join } from 'path';
|
|
10
10
|
import { randomUUID } from 'crypto';
|
|
11
11
|
const SANDBOX_DIR = '/tmp/uam-sandbox';
|
|
12
|
+
/**
|
|
13
|
+
* Extract code from markdown code blocks
|
|
14
|
+
* Models often wrap code in ```typescript ... ``` or ```ts ... ```
|
|
15
|
+
*/
|
|
16
|
+
function extractCodeFromMarkdown(response) {
|
|
17
|
+
// Try to extract code from markdown code blocks
|
|
18
|
+
const codeBlockPatterns = [
|
|
19
|
+
/```(?:typescript|ts)\n([\s\S]*?)```/gi,
|
|
20
|
+
/```(?:javascript|js)\n([\s\S]*?)```/gi,
|
|
21
|
+
/```(?:python|py)\n([\s\S]*?)```/gi,
|
|
22
|
+
/```(?:bash|sh|shell)\n([\s\S]*?)```/gi,
|
|
23
|
+
/```\n([\s\S]*?)```/gi, // Generic code block
|
|
24
|
+
];
|
|
25
|
+
for (const pattern of codeBlockPatterns) {
|
|
26
|
+
const matches = [...response.matchAll(pattern)];
|
|
27
|
+
if (matches.length > 0) {
|
|
28
|
+
// Return all code blocks concatenated (some responses have multiple blocks)
|
|
29
|
+
return matches.map(m => m[1].trim()).join('\n\n');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// No code blocks found - check if response looks like raw code
|
|
33
|
+
const trimmed = response.trim();
|
|
34
|
+
// If it starts with typical code patterns, use as-is
|
|
35
|
+
const codeIndicators = [
|
|
36
|
+
/^(import|export|function|class|interface|type|const|let|var|async|def )/,
|
|
37
|
+
/^#!\//, // Shebang
|
|
38
|
+
/^\/\*\*/, // JSDoc
|
|
39
|
+
/^\/\//, // Comment
|
|
40
|
+
/^#[^!]/, // Python/shell comment (not shebang)
|
|
41
|
+
];
|
|
42
|
+
for (const indicator of codeIndicators) {
|
|
43
|
+
if (indicator.test(trimmed)) {
|
|
44
|
+
return trimmed;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Last resort: return as-is, let the compiler/interpreter fail with a clear error
|
|
48
|
+
return trimmed;
|
|
49
|
+
}
|
|
12
50
|
/**
|
|
13
51
|
* Create an isolated sandbox for code execution
|
|
14
52
|
*/
|
|
@@ -46,16 +84,18 @@ export async function verifyCodeExecution(code, config) {
|
|
|
46
84
|
output: '',
|
|
47
85
|
executionTimeMs: 0,
|
|
48
86
|
};
|
|
87
|
+
// Extract code from markdown if wrapped
|
|
88
|
+
const cleanCode = extractCodeFromMarkdown(code);
|
|
49
89
|
// If execution not required, just do pattern matching
|
|
50
90
|
if (!config.requiresExecution) {
|
|
51
|
-
return verifyPatterns(
|
|
91
|
+
return verifyPatterns(cleanCode, config.expectedPatterns || []);
|
|
52
92
|
}
|
|
53
93
|
const sandboxPath = createSandbox();
|
|
54
94
|
try {
|
|
55
95
|
// Write code to file
|
|
56
96
|
const filename = getFilename(config.language);
|
|
57
97
|
const filePath = join(sandboxPath, filename);
|
|
58
|
-
writeFileSync(filePath,
|
|
98
|
+
writeFileSync(filePath, cleanCode, 'utf-8');
|
|
59
99
|
// Run setup commands if any
|
|
60
100
|
if (config.setupCommands) {
|
|
61
101
|
for (const cmd of config.setupCommands) {
|
|
@@ -111,7 +151,7 @@ export async function verifyCodeExecution(code, config) {
|
|
|
111
151
|
}
|
|
112
152
|
// Verify patterns if specified
|
|
113
153
|
if (config.expectedPatterns && config.expectedPatterns.length > 0) {
|
|
114
|
-
const patternResult = verifyPatterns(
|
|
154
|
+
const patternResult = verifyPatterns(cleanCode, config.expectedPatterns);
|
|
115
155
|
if (!patternResult.success) {
|
|
116
156
|
result.errors.push(...patternResult.errors);
|
|
117
157
|
}
|
|
@@ -213,13 +253,14 @@ function getFilename(language) {
|
|
|
213
253
|
export const TASK_VERIFICATION_CONFIGS = {
|
|
214
254
|
'task-001-code-generation': {
|
|
215
255
|
language: 'typescript',
|
|
216
|
-
requiresExecution:
|
|
217
|
-
testCases: [
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
'
|
|
256
|
+
requiresExecution: false, // Pattern matching only - model output won't have test harness
|
|
257
|
+
testCases: [],
|
|
258
|
+
expectedPatterns: [
|
|
259
|
+
'function calculateAverage',
|
|
260
|
+
'number[]',
|
|
261
|
+
': number',
|
|
262
|
+
'length',
|
|
263
|
+
'return',
|
|
223
264
|
],
|
|
224
265
|
},
|
|
225
266
|
'task-002-bug-fix': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-verifier.js","sourceRoot":"","sources":["../../src/benchmarks/execution-verifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AA2BpC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,WAAmB;IACzC,IAAI,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,MAA8B;IAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAuB;QACjC,OAAO,EAAE,KAAK;QACd,kBAAkB,EAAE,KAAK;QACzB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,CAAC;KACnB,CAAC;IAEF,sDAAsD;IACtD,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"execution-verifier.js","sourceRoot":"","sources":["../../src/benchmarks/execution-verifier.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,4 +8,13 @@ export { classifyTask, extractTaskEntities, getSuggestedMemoryQueries } from './
|
|
|
8
8
|
export { retrieveDynamicMemoryContext } from './memory/dynamic-retrieval.js';
|
|
9
9
|
export type { TaskClassification } from './memory/task-classifier.js';
|
|
10
10
|
export type { DynamicMemoryContext, RetrievedMemory } from './memory/dynamic-retrieval.js';
|
|
11
|
+
export { compressMemoryEntry, compressMemoryBatch, summarizeMemories, estimateTokens, ContextBudget, } from './memory/context-compressor.js';
|
|
12
|
+
export type { CompressionResult, CompressorConfig } from './memory/context-compressor.js';
|
|
13
|
+
export { HierarchicalMemoryManager, getHierarchicalMemoryManager, calculateEffectiveImportance, } from './memory/hierarchical-memory.js';
|
|
14
|
+
export type { MemoryEntry, TieredMemory, HierarchicalConfig } from './memory/hierarchical-memory.js';
|
|
15
|
+
export { SpeculativeCache, getSpeculativeCache, } from './memory/speculative-cache.js';
|
|
16
|
+
export type { CacheEntry, CacheConfig } from './memory/speculative-cache.js';
|
|
17
|
+
export { MemoryConsolidator, getMemoryConsolidator, } from './memory/memory-consolidator.js';
|
|
18
|
+
export type { ConsolidationConfig, ConsolidationResult } from './memory/memory-consolidator.js';
|
|
19
|
+
export { ServerlessQdrantManager, getServerlessQdrantManager, initServerlessQdrant, } from './memory/serverless-qdrant.js';
|
|
11
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAG3F,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,aAAa,GACd,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE1F,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErG,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGhG,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,4 +7,11 @@ export * from './tasks/index.js';
|
|
|
7
7
|
export { getEmbeddingService, generateEmbedding, generateEmbeddings } from './memory/embeddings.js';
|
|
8
8
|
export { classifyTask, extractTaskEntities, getSuggestedMemoryQueries } from './memory/task-classifier.js';
|
|
9
9
|
export { retrieveDynamicMemoryContext } from './memory/dynamic-retrieval.js';
|
|
10
|
+
// New optimization modules
|
|
11
|
+
export { compressMemoryEntry, compressMemoryBatch, summarizeMemories, estimateTokens, ContextBudget, } from './memory/context-compressor.js';
|
|
12
|
+
export { HierarchicalMemoryManager, getHierarchicalMemoryManager, calculateEffectiveImportance, } from './memory/hierarchical-memory.js';
|
|
13
|
+
export { SpeculativeCache, getSpeculativeCache, } from './memory/speculative-cache.js';
|
|
14
|
+
export { MemoryConsolidator, getMemoryConsolidator, } from './memory/memory-consolidator.js';
|
|
15
|
+
// Serverless Qdrant
|
|
16
|
+
export { ServerlessQdrantManager, getServerlessQdrantManager, initServerlessQdrant, } from './memory/serverless-qdrant.js';
|
|
10
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AAEjC,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AAEjC,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAI7E,2BAA2B;AAC3B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,aAAa,GACd,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAGzC,oBAAoB;AACpB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Compression Module for UAM
|
|
3
|
+
*
|
|
4
|
+
* Implements semantic compression to reduce token usage while preserving meaning.
|
|
5
|
+
* Based on Acon (Agent Context Optimization) and AgentCompress research.
|
|
6
|
+
*/
|
|
7
|
+
export interface CompressionResult {
|
|
8
|
+
original: string;
|
|
9
|
+
compressed: string;
|
|
10
|
+
originalTokens: number;
|
|
11
|
+
compressedTokens: number;
|
|
12
|
+
tokenReduction: number;
|
|
13
|
+
preservedSemantics: number;
|
|
14
|
+
}
|
|
15
|
+
export interface CompressorConfig {
|
|
16
|
+
maxTokens: number;
|
|
17
|
+
minSemanticPreservation: number;
|
|
18
|
+
compressionLevel: 'light' | 'medium' | 'aggressive';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Estimate token count (rough approximation: ~4 chars per token)
|
|
22
|
+
*/
|
|
23
|
+
export declare function estimateTokens(text: string): number;
|
|
24
|
+
/**
|
|
25
|
+
* Compress a single memory entry
|
|
26
|
+
*/
|
|
27
|
+
export declare function compressMemoryEntry(content: string, config?: Partial<CompressorConfig>): CompressionResult;
|
|
28
|
+
/**
|
|
29
|
+
* Compress multiple memories into a consolidated context
|
|
30
|
+
*/
|
|
31
|
+
export declare function compressMemoryBatch(memories: Array<{
|
|
32
|
+
content: string;
|
|
33
|
+
type: string;
|
|
34
|
+
importance?: number;
|
|
35
|
+
}>, config?: Partial<CompressorConfig>): CompressionResult;
|
|
36
|
+
/**
|
|
37
|
+
* Summarize old memories into a single compressed entry
|
|
38
|
+
*/
|
|
39
|
+
export declare function summarizeMemories(memories: Array<{
|
|
40
|
+
content: string;
|
|
41
|
+
timestamp: string;
|
|
42
|
+
type: string;
|
|
43
|
+
}>, maxOutputTokens?: number): string;
|
|
44
|
+
/**
|
|
45
|
+
* Context budget manager
|
|
46
|
+
*/
|
|
47
|
+
export declare class ContextBudget {
|
|
48
|
+
private maxTokens;
|
|
49
|
+
private usedTokens;
|
|
50
|
+
private sections;
|
|
51
|
+
constructor(maxTokens?: number);
|
|
52
|
+
allocate(section: string, content: string): {
|
|
53
|
+
content: string;
|
|
54
|
+
tokens: number;
|
|
55
|
+
truncated: boolean;
|
|
56
|
+
};
|
|
57
|
+
remaining(): number;
|
|
58
|
+
usage(): {
|
|
59
|
+
total: number;
|
|
60
|
+
used: number;
|
|
61
|
+
remaining: number;
|
|
62
|
+
sections: Record<string, number>;
|
|
63
|
+
};
|
|
64
|
+
reset(): void;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=context-compressor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-compressor.d.ts","sourceRoot":"","sources":["../../src/memory/context-compressor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;CACrD;AAQD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,iBAAiB,CAqE9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACvE,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACrC,iBAAiB,CA+CnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,eAAe,GAAE,MAAY,GAC5B,MAAM,CAoCR;AAgED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,SAAS,GAAE,MAAc;IAIrC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAsBnG,SAAS,IAAI,MAAM;IAInB,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAS7F,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Compression Module for UAM
|
|
3
|
+
*
|
|
4
|
+
* Implements semantic compression to reduce token usage while preserving meaning.
|
|
5
|
+
* Based on Acon (Agent Context Optimization) and AgentCompress research.
|
|
6
|
+
*/
|
|
7
|
+
const DEFAULT_CONFIG = {
|
|
8
|
+
maxTokens: 2000,
|
|
9
|
+
minSemanticPreservation: 0.85,
|
|
10
|
+
compressionLevel: 'medium',
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Estimate token count (rough approximation: ~4 chars per token)
|
|
14
|
+
*/
|
|
15
|
+
export function estimateTokens(text) {
|
|
16
|
+
return Math.ceil(text.length / 4);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Compress a single memory entry
|
|
20
|
+
*/
|
|
21
|
+
export function compressMemoryEntry(content, config = {}) {
|
|
22
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
23
|
+
const originalTokens = estimateTokens(content);
|
|
24
|
+
if (originalTokens <= cfg.maxTokens / 4) {
|
|
25
|
+
return {
|
|
26
|
+
original: content,
|
|
27
|
+
compressed: content,
|
|
28
|
+
originalTokens,
|
|
29
|
+
compressedTokens: originalTokens,
|
|
30
|
+
tokenReduction: 0,
|
|
31
|
+
preservedSemantics: 1.0,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
let compressed = content;
|
|
35
|
+
// Level 1: Remove redundant whitespace and formatting
|
|
36
|
+
compressed = compressed.replace(/\s+/g, ' ').trim();
|
|
37
|
+
compressed = compressed.replace(/\n{3,}/g, '\n\n');
|
|
38
|
+
// Level 2: Remove common filler phrases
|
|
39
|
+
if (cfg.compressionLevel !== 'light') {
|
|
40
|
+
const fillerPatterns = [
|
|
41
|
+
/\b(basically|essentially|actually|really|very|quite|somewhat|rather)\b/gi,
|
|
42
|
+
/\b(in order to)\b/gi,
|
|
43
|
+
/\b(it is worth noting that|it should be noted that)\b/gi,
|
|
44
|
+
/\b(as a matter of fact|in fact)\b/gi,
|
|
45
|
+
/\b(at the end of the day)\b/gi,
|
|
46
|
+
/\b(the fact that)\b/gi,
|
|
47
|
+
/\b(in this case|in that case)\b/gi,
|
|
48
|
+
];
|
|
49
|
+
for (const pattern of fillerPatterns) {
|
|
50
|
+
compressed = compressed.replace(pattern, '');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Level 3: Aggressive - truncate to key sentences
|
|
54
|
+
if (cfg.compressionLevel === 'aggressive') {
|
|
55
|
+
const sentences = compressed.split(/(?<=[.!?])\s+/);
|
|
56
|
+
const maxSentences = Math.max(3, Math.ceil(sentences.length * 0.4));
|
|
57
|
+
// Keep first sentence (context), middle sentences (key info), last sentence (conclusion)
|
|
58
|
+
if (sentences.length > maxSentences) {
|
|
59
|
+
const first = sentences.slice(0, 1);
|
|
60
|
+
const middle = sentences.slice(1, -1).slice(0, maxSentences - 2);
|
|
61
|
+
const last = sentences.slice(-1);
|
|
62
|
+
compressed = [...first, ...middle, ...last].join(' ');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Clean up artifacts
|
|
66
|
+
compressed = compressed.replace(/\s{2,}/g, ' ').trim();
|
|
67
|
+
const compressedTokens = estimateTokens(compressed);
|
|
68
|
+
const tokenReduction = 1 - (compressedTokens / originalTokens);
|
|
69
|
+
// Estimate semantic preservation (based on compression ratio - rough heuristic)
|
|
70
|
+
const preservedSemantics = Math.max(0.7, 1 - (tokenReduction * 0.3));
|
|
71
|
+
return {
|
|
72
|
+
original: content,
|
|
73
|
+
compressed,
|
|
74
|
+
originalTokens,
|
|
75
|
+
compressedTokens,
|
|
76
|
+
tokenReduction,
|
|
77
|
+
preservedSemantics,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Compress multiple memories into a consolidated context
|
|
82
|
+
*/
|
|
83
|
+
export function compressMemoryBatch(memories, config = {}) {
|
|
84
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
85
|
+
// Sort by importance (descending)
|
|
86
|
+
const sorted = [...memories].sort((a, b) => (b.importance || 5) - (a.importance || 5));
|
|
87
|
+
// Group by type for structured output
|
|
88
|
+
const grouped = {};
|
|
89
|
+
for (const mem of sorted) {
|
|
90
|
+
const type = mem.type || 'general';
|
|
91
|
+
if (!grouped[type])
|
|
92
|
+
grouped[type] = [];
|
|
93
|
+
grouped[type].push(mem.content);
|
|
94
|
+
}
|
|
95
|
+
// Build consolidated context
|
|
96
|
+
const sections = [];
|
|
97
|
+
const typeOrder = ['goal', 'action', 'observation', 'thought'];
|
|
98
|
+
for (const type of typeOrder) {
|
|
99
|
+
if (grouped[type] && grouped[type].length > 0) {
|
|
100
|
+
const compressed = grouped[type].map(c => compressMemoryEntry(c, cfg).compressed);
|
|
101
|
+
sections.push(`[${type.toUpperCase()}]\n${compressed.join('\n')}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Add remaining types
|
|
105
|
+
for (const type of Object.keys(grouped)) {
|
|
106
|
+
if (!typeOrder.includes(type)) {
|
|
107
|
+
const compressed = grouped[type].map(c => compressMemoryEntry(c, cfg).compressed);
|
|
108
|
+
sections.push(`[${type.toUpperCase()}]\n${compressed.join('\n')}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const original = memories.map(m => m.content).join('\n');
|
|
112
|
+
const compressed = sections.join('\n\n');
|
|
113
|
+
const originalTokens = estimateTokens(original);
|
|
114
|
+
const compressedTokens = estimateTokens(compressed);
|
|
115
|
+
return {
|
|
116
|
+
original,
|
|
117
|
+
compressed,
|
|
118
|
+
originalTokens,
|
|
119
|
+
compressedTokens,
|
|
120
|
+
tokenReduction: 1 - (compressedTokens / originalTokens),
|
|
121
|
+
preservedSemantics: 0.9, // Batch compression preserves structure
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Summarize old memories into a single compressed entry
|
|
126
|
+
*/
|
|
127
|
+
export function summarizeMemories(memories, maxOutputTokens = 500) {
|
|
128
|
+
if (memories.length === 0)
|
|
129
|
+
return '';
|
|
130
|
+
// Group by type
|
|
131
|
+
const byType = {};
|
|
132
|
+
for (const mem of memories) {
|
|
133
|
+
if (!byType[mem.type])
|
|
134
|
+
byType[mem.type] = [];
|
|
135
|
+
byType[mem.type].push(mem.content);
|
|
136
|
+
}
|
|
137
|
+
// Create summary sections
|
|
138
|
+
const summaryParts = [];
|
|
139
|
+
for (const [type, contents] of Object.entries(byType)) {
|
|
140
|
+
// Deduplicate similar content
|
|
141
|
+
const unique = deduplicateContent(contents);
|
|
142
|
+
// Compress each unique entry
|
|
143
|
+
const compressed = unique.map(c => {
|
|
144
|
+
const result = compressMemoryEntry(c, { compressionLevel: 'aggressive' });
|
|
145
|
+
return result.compressed;
|
|
146
|
+
});
|
|
147
|
+
// Limit to most important entries
|
|
148
|
+
const maxPerType = Math.max(2, Math.floor(maxOutputTokens / (Object.keys(byType).length * 50)));
|
|
149
|
+
const limited = compressed.slice(0, maxPerType);
|
|
150
|
+
if (limited.length > 0) {
|
|
151
|
+
summaryParts.push(`${type}: ${limited.join('; ')}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const dateRange = getDateRange(memories.map(m => m.timestamp));
|
|
155
|
+
const header = `[Summary ${dateRange}]`;
|
|
156
|
+
return `${header}\n${summaryParts.join('\n')}`;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Deduplicate content using simple similarity check
|
|
160
|
+
*/
|
|
161
|
+
function deduplicateContent(contents, threshold = 0.8) {
|
|
162
|
+
const unique = [];
|
|
163
|
+
for (const content of contents) {
|
|
164
|
+
const normalizedNew = content.toLowerCase().replace(/\s+/g, ' ').trim();
|
|
165
|
+
let isDuplicate = false;
|
|
166
|
+
for (const existing of unique) {
|
|
167
|
+
const normalizedExisting = existing.toLowerCase().replace(/\s+/g, ' ').trim();
|
|
168
|
+
const similarity = jaccardSimilarity(normalizedNew, normalizedExisting);
|
|
169
|
+
if (similarity > threshold) {
|
|
170
|
+
isDuplicate = true;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (!isDuplicate) {
|
|
175
|
+
unique.push(content);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return unique;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Calculate Jaccard similarity between two strings
|
|
182
|
+
*/
|
|
183
|
+
function jaccardSimilarity(a, b) {
|
|
184
|
+
const setA = new Set(a.split(/\s+/));
|
|
185
|
+
const setB = new Set(b.split(/\s+/));
|
|
186
|
+
const intersection = new Set([...setA].filter(x => setB.has(x)));
|
|
187
|
+
const union = new Set([...setA, ...setB]);
|
|
188
|
+
return intersection.size / union.size;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get date range string
|
|
192
|
+
*/
|
|
193
|
+
function getDateRange(timestamps) {
|
|
194
|
+
if (timestamps.length === 0)
|
|
195
|
+
return 'unknown';
|
|
196
|
+
const dates = timestamps.map(t => new Date(t)).filter(d => !isNaN(d.getTime()));
|
|
197
|
+
if (dates.length === 0)
|
|
198
|
+
return 'unknown';
|
|
199
|
+
const min = new Date(Math.min(...dates.map(d => d.getTime())));
|
|
200
|
+
const max = new Date(Math.max(...dates.map(d => d.getTime())));
|
|
201
|
+
const formatDate = (d) => d.toISOString().split('T')[0];
|
|
202
|
+
if (formatDate(min) === formatDate(max)) {
|
|
203
|
+
return formatDate(min);
|
|
204
|
+
}
|
|
205
|
+
return `${formatDate(min)} to ${formatDate(max)}`;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Context budget manager
|
|
209
|
+
*/
|
|
210
|
+
export class ContextBudget {
|
|
211
|
+
maxTokens;
|
|
212
|
+
usedTokens = 0;
|
|
213
|
+
sections = new Map();
|
|
214
|
+
constructor(maxTokens = 12000) {
|
|
215
|
+
this.maxTokens = maxTokens;
|
|
216
|
+
}
|
|
217
|
+
allocate(section, content) {
|
|
218
|
+
const tokens = estimateTokens(content);
|
|
219
|
+
const available = this.maxTokens - this.usedTokens;
|
|
220
|
+
if (tokens <= available) {
|
|
221
|
+
this.usedTokens += tokens;
|
|
222
|
+
this.sections.set(section, tokens);
|
|
223
|
+
return { content, tokens, truncated: false };
|
|
224
|
+
}
|
|
225
|
+
// Need to truncate
|
|
226
|
+
const targetTokens = Math.floor(available * 0.9);
|
|
227
|
+
const targetChars = targetTokens * 4;
|
|
228
|
+
const truncated = content.slice(0, targetChars) + '... [truncated]';
|
|
229
|
+
const actualTokens = estimateTokens(truncated);
|
|
230
|
+
this.usedTokens += actualTokens;
|
|
231
|
+
this.sections.set(section, actualTokens);
|
|
232
|
+
return { content: truncated, tokens: actualTokens, truncated: true };
|
|
233
|
+
}
|
|
234
|
+
remaining() {
|
|
235
|
+
return this.maxTokens - this.usedTokens;
|
|
236
|
+
}
|
|
237
|
+
usage() {
|
|
238
|
+
return {
|
|
239
|
+
total: this.maxTokens,
|
|
240
|
+
used: this.usedTokens,
|
|
241
|
+
remaining: this.remaining(),
|
|
242
|
+
sections: Object.fromEntries(this.sections),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
reset() {
|
|
246
|
+
this.usedTokens = 0;
|
|
247
|
+
this.sections.clear();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=context-compressor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-compressor.js","sourceRoot":"","sources":["../../src/memory/context-compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,8 @@ export declare class LocalEmbeddingProvider implements EmbeddingProvider {
|
|
|
40
40
|
embedBatch(texts: string[]): Promise<number[][]>;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
* TF-IDF Fallback Provider
|
|
44
|
-
*
|
|
43
|
+
* Enhanced TF-IDF Fallback Provider with Word Vectors
|
|
44
|
+
* Improved keyword-based embeddings with semantic awareness
|
|
45
45
|
*/
|
|
46
46
|
export declare class TFIDFEmbeddingProvider implements EmbeddingProvider {
|
|
47
47
|
name: string;
|
|
@@ -49,14 +49,25 @@ export declare class TFIDFEmbeddingProvider implements EmbeddingProvider {
|
|
|
49
49
|
private vocabulary;
|
|
50
50
|
private idfScores;
|
|
51
51
|
private documents;
|
|
52
|
+
private wordVectors;
|
|
53
|
+
constructor();
|
|
52
54
|
isAvailable(): Promise<boolean>;
|
|
53
55
|
embed(text: string): Promise<number[]>;
|
|
54
56
|
embedBatch(texts: string[]): Promise<number[][]>;
|
|
55
57
|
addDocument(text: string): void;
|
|
56
58
|
private tokenize;
|
|
59
|
+
private isStopWord;
|
|
60
|
+
private getBigrams;
|
|
61
|
+
private hashString;
|
|
57
62
|
private getTokenIndex;
|
|
58
63
|
private updateIDF;
|
|
59
64
|
private normalize;
|
|
65
|
+
/**
|
|
66
|
+
* Initialize semantic word clusters for domain-specific terms
|
|
67
|
+
* Words in the same cluster get similar vector contributions
|
|
68
|
+
*/
|
|
69
|
+
private initializeSemanticClusters;
|
|
70
|
+
private generateClusterVector;
|
|
60
71
|
}
|
|
61
72
|
/**
|
|
62
73
|
* Embedding Service - Main interface for UAM memory system
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/memory/embeddings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,IAAI,SAAY;IAChB,UAAU,SAAQ;IAClB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAiC;IAK/D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAwBvD;AAED;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,IAAI,SAAW;IACf,UAAU,SAAO;IACjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;gBAEf,KAAK,GAAE,MAA2B,EAAE,UAAU,GAAE,MAAkB;IAKxE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAY/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAwBvD;AAED;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,IAAI,
|
|
1
|
+
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/memory/embeddings.ts"],"names":[],"mappings":"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"}
|