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.
- package/dist/benchmarks/improved-benchmark.d.ts.map +1 -1
- package/dist/benchmarks/improved-benchmark.js +3 -1
- package/dist/benchmarks/improved-benchmark.js.map +1 -1
- package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -1
- package/dist/benchmarks/multi-turn-agent.js +6 -2
- package/dist/benchmarks/multi-turn-agent.js.map +1 -1
- package/dist/bin/cli.js +4 -1
- package/dist/bin/cli.js.map +1 -1
- package/dist/cli/update.d.ts +3 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +155 -11
- package/dist/cli/update.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/memory/backends/factory.d.ts.map +1 -1
- package/dist/memory/backends/factory.js +1 -0
- package/dist/memory/backends/factory.js.map +1 -1
- package/dist/memory/backends/qdrant-cloud.d.ts +14 -1
- package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -1
- package/dist/memory/backends/qdrant-cloud.js +59 -4
- package/dist/memory/backends/qdrant-cloud.js.map +1 -1
- package/dist/memory/dynamic-retrieval.d.ts +62 -1
- package/dist/memory/dynamic-retrieval.d.ts.map +1 -1
- package/dist/memory/dynamic-retrieval.js +154 -32
- package/dist/memory/dynamic-retrieval.js.map +1 -1
- package/dist/memory/embeddings.d.ts +25 -2
- package/dist/memory/embeddings.d.ts.map +1 -1
- package/dist/memory/embeddings.js +72 -2
- package/dist/memory/embeddings.js.map +1 -1
- package/dist/memory/memory-consolidator.d.ts +36 -0
- package/dist/memory/memory-consolidator.d.ts.map +1 -1
- package/dist/memory/memory-consolidator.js +166 -0
- package/dist/memory/memory-consolidator.js.map +1 -1
- package/dist/memory/multi-view-memory.d.ts +134 -0
- package/dist/memory/multi-view-memory.d.ts.map +1 -0
- package/dist/memory/multi-view-memory.js +420 -0
- package/dist/memory/multi-view-memory.js.map +1 -0
- package/dist/memory/semantic-compression.d.ts +77 -0
- package/dist/memory/semantic-compression.d.ts.map +1 -0
- package/dist/memory/semantic-compression.js +344 -0
- package/dist/memory/semantic-compression.js.map +1 -0
- package/dist/memory/speculative-cache.d.ts +3 -0
- package/dist/memory/speculative-cache.d.ts.map +1 -1
- package/dist/memory/speculative-cache.js +2 -0
- package/dist/memory/speculative-cache.js.map +1 -1
- package/dist/utils/dijkstra.d.ts +17 -0
- package/dist/utils/dijkstra.d.ts.map +1 -0
- package/dist/utils/dijkstra.js +91 -0
- package/dist/utils/dijkstra.js.map +1 -0
- package/dist/utils/validate-json.d.ts +3 -4
- package/dist/utils/validate-json.d.ts.map +1 -1
- package/dist/utils/validate-json.js +31 -31
- package/dist/utils/validate-json.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import type { MemoryBackend, MemoryEntry } from './base.js';
|
|
2
2
|
interface QdrantCloudBackendConfig {
|
|
3
3
|
url: string;
|
|
4
|
-
apiKey
|
|
4
|
+
apiKey?: string;
|
|
5
5
|
collection: string;
|
|
6
|
+
projectId?: string;
|
|
7
|
+
vectorSize?: number;
|
|
6
8
|
}
|
|
7
9
|
export declare class QdrantCloudBackend implements MemoryBackend {
|
|
8
10
|
private client;
|
|
9
11
|
private collection;
|
|
12
|
+
private projectId;
|
|
13
|
+
private vectorSize;
|
|
14
|
+
private collectionVerified;
|
|
10
15
|
constructor(config: QdrantCloudBackendConfig);
|
|
11
16
|
isConfigured(): Promise<boolean>;
|
|
12
17
|
store(entry: MemoryEntry): Promise<void>;
|
|
@@ -14,6 +19,14 @@ export declare class QdrantCloudBackend implements MemoryBackend {
|
|
|
14
19
|
getRecent(limit?: number): Promise<MemoryEntry[]>;
|
|
15
20
|
prune(olderThan: Date): Promise<number>;
|
|
16
21
|
private ensureCollection;
|
|
22
|
+
/**
|
|
23
|
+
* Get the actual collection name being used (may differ from config if dimension mismatch)
|
|
24
|
+
*/
|
|
25
|
+
getCollectionName(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Get vector dimensions
|
|
28
|
+
*/
|
|
29
|
+
getVectorSize(): number;
|
|
17
30
|
}
|
|
18
31
|
export {};
|
|
19
32
|
//# sourceMappingURL=qdrant-cloud.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qdrant-cloud.d.ts","sourceRoot":"","sources":["../../../src/memory/backends/qdrant-cloud.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"qdrant-cloud.d.ts","sourceRoot":"","sources":["../../../src/memory/backends/qdrant-cloud.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI5D,UAAU,wBAAwB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqBD,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAkB;gBAEhC,MAAM,EAAE,wBAAwB;IActC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAShC,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBxC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAuB5D,SAAS,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkB7C,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YAuB/B,gBAAgB;IAqC9B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB"}
|
|
@@ -1,16 +1,38 @@
|
|
|
1
1
|
import { QdrantClient } from '@qdrant/js-client-rest';
|
|
2
2
|
import { getEmbeddingService } from '../embeddings.js';
|
|
3
|
+
import { createHash } from 'crypto';
|
|
4
|
+
/**
|
|
5
|
+
* Generate a safe collection name from project ID
|
|
6
|
+
* Qdrant collection names must be alphanumeric with underscores
|
|
7
|
+
*/
|
|
8
|
+
function sanitizeCollectionName(base, projectId) {
|
|
9
|
+
if (!projectId)
|
|
10
|
+
return base;
|
|
11
|
+
// Create a short hash of the project ID for uniqueness
|
|
12
|
+
const hash = createHash('sha256').update(projectId).digest('hex').slice(0, 8);
|
|
13
|
+
// Sanitize project name (take last path component, remove special chars)
|
|
14
|
+
const projectName = projectId
|
|
15
|
+
.split(/[/\\]/).pop() || projectId
|
|
16
|
+
.replace(/[^a-zA-Z0-9_-]/g, '_')
|
|
17
|
+
.slice(0, 32);
|
|
18
|
+
return `${base}_${projectName}_${hash}`;
|
|
19
|
+
}
|
|
3
20
|
export class QdrantCloudBackend {
|
|
4
21
|
client;
|
|
5
22
|
collection;
|
|
23
|
+
projectId;
|
|
24
|
+
vectorSize;
|
|
25
|
+
collectionVerified = false;
|
|
6
26
|
constructor(config) {
|
|
7
27
|
const apiKey = config.apiKey || process.env.QDRANT_API_KEY;
|
|
8
28
|
const url = config.url || process.env.QDRANT_URL;
|
|
9
|
-
if (!url
|
|
10
|
-
throw new Error('Qdrant
|
|
29
|
+
if (!url) {
|
|
30
|
+
throw new Error('Qdrant URL required (QDRANT_URL env var or config)');
|
|
11
31
|
}
|
|
12
32
|
this.client = new QdrantClient({ url, apiKey });
|
|
13
|
-
this.
|
|
33
|
+
this.projectId = config.projectId || process.cwd();
|
|
34
|
+
this.collection = sanitizeCollectionName(config.collection, this.projectId);
|
|
35
|
+
this.vectorSize = config.vectorSize || 768; // Default to Ollama's nomic-embed-text size
|
|
14
36
|
}
|
|
15
37
|
async isConfigured() {
|
|
16
38
|
try {
|
|
@@ -101,13 +123,46 @@ export class QdrantCloudBackend {
|
|
|
101
123
|
return ids.length;
|
|
102
124
|
}
|
|
103
125
|
async ensureCollection() {
|
|
126
|
+
if (this.collectionVerified)
|
|
127
|
+
return;
|
|
104
128
|
const collections = await this.client.getCollections();
|
|
105
129
|
const exists = collections.collections.some((c) => c.name === this.collection);
|
|
106
130
|
if (!exists) {
|
|
131
|
+
// Create collection with correct vector size
|
|
107
132
|
await this.client.createCollection(this.collection, {
|
|
108
|
-
vectors: { size:
|
|
133
|
+
vectors: { size: this.vectorSize, distance: 'Cosine' },
|
|
109
134
|
});
|
|
135
|
+
this.collectionVerified = true;
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// Check if existing collection has correct dimensions
|
|
139
|
+
const collectionInfo = await this.client.getCollection(this.collection);
|
|
140
|
+
const currentSize = collectionInfo.config?.params?.vectors?.size;
|
|
141
|
+
if (currentSize && currentSize !== this.vectorSize) {
|
|
142
|
+
// Create new collection with correct dimensions (append suffix)
|
|
143
|
+
const newCollectionName = `${this.collection}_v${this.vectorSize}`;
|
|
144
|
+
const newExists = collections.collections.some((c) => c.name === newCollectionName);
|
|
145
|
+
if (!newExists) {
|
|
146
|
+
await this.client.createCollection(newCollectionName, {
|
|
147
|
+
vectors: { size: this.vectorSize, distance: 'Cosine' },
|
|
148
|
+
});
|
|
149
|
+
console.log(`[Qdrant] Created new collection ${newCollectionName} with ${this.vectorSize} dimensions`);
|
|
150
|
+
}
|
|
151
|
+
this.collection = newCollectionName;
|
|
110
152
|
}
|
|
153
|
+
this.collectionVerified = true;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get the actual collection name being used (may differ from config if dimension mismatch)
|
|
157
|
+
*/
|
|
158
|
+
getCollectionName() {
|
|
159
|
+
return this.collection;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get vector dimensions
|
|
163
|
+
*/
|
|
164
|
+
getVectorSize() {
|
|
165
|
+
return this.vectorSize;
|
|
111
166
|
}
|
|
112
167
|
}
|
|
113
168
|
//# sourceMappingURL=qdrant-cloud.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qdrant-cloud.js","sourceRoot":"","sources":["../../../src/memory/backends/qdrant-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"qdrant-cloud.js","sourceRoot":"","sources":["../../../src/memory/backends/qdrant-cloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,54 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Retrieves relevant memories based on task content, not static context.
|
|
5
5
|
* Implements semantic search with fallback to keyword matching.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Adaptive retrieval depth based on query complexity
|
|
9
|
+
* - Context budget management to prevent overflow
|
|
10
|
+
* - Speculative prefetch for common patterns
|
|
6
11
|
*/
|
|
7
12
|
import { type TaskClassification } from './task-classifier.js';
|
|
13
|
+
/**
|
|
14
|
+
* Query complexity levels for adaptive retrieval
|
|
15
|
+
*/
|
|
16
|
+
export type QueryComplexity = 'simple' | 'moderate' | 'complex';
|
|
17
|
+
/**
|
|
18
|
+
* Retrieval depth configuration
|
|
19
|
+
*/
|
|
20
|
+
export interface RetrievalDepthConfig {
|
|
21
|
+
simple: {
|
|
22
|
+
shortTerm: number;
|
|
23
|
+
sessionMem: number;
|
|
24
|
+
longTerm: number;
|
|
25
|
+
patterns: number;
|
|
26
|
+
};
|
|
27
|
+
moderate: {
|
|
28
|
+
shortTerm: number;
|
|
29
|
+
sessionMem: number;
|
|
30
|
+
longTerm: number;
|
|
31
|
+
patterns: number;
|
|
32
|
+
};
|
|
33
|
+
complex: {
|
|
34
|
+
shortTerm: number;
|
|
35
|
+
sessionMem: number;
|
|
36
|
+
longTerm: number;
|
|
37
|
+
patterns: number;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Measure query complexity to determine retrieval depth
|
|
42
|
+
* Based on SimpleMem's adaptive query-aware retrieval
|
|
43
|
+
*/
|
|
44
|
+
export declare function measureQueryComplexity(query: string): QueryComplexity;
|
|
45
|
+
/**
|
|
46
|
+
* Get retrieval limits based on query complexity
|
|
47
|
+
*/
|
|
48
|
+
export declare function getRetrievalDepth(complexity: QueryComplexity, config?: RetrievalDepthConfig): {
|
|
49
|
+
shortTerm: number;
|
|
50
|
+
sessionMem: number;
|
|
51
|
+
longTerm: number;
|
|
52
|
+
patterns: number;
|
|
53
|
+
};
|
|
8
54
|
export interface RetrievedMemory {
|
|
9
55
|
content: string;
|
|
10
56
|
type: 'lesson' | 'gotcha' | 'pattern' | 'context' | 'example';
|
|
@@ -18,9 +64,24 @@ export interface DynamicMemoryContext {
|
|
|
18
64
|
gotchas: string[];
|
|
19
65
|
projectContext: string;
|
|
20
66
|
formattedContext: string;
|
|
67
|
+
queryComplexity: QueryComplexity;
|
|
68
|
+
tokenBudget: {
|
|
69
|
+
used: number;
|
|
70
|
+
remaining: number;
|
|
71
|
+
total: number;
|
|
72
|
+
};
|
|
73
|
+
compressionStats?: {
|
|
74
|
+
ratio: number;
|
|
75
|
+
sourceTokens: number;
|
|
76
|
+
compressedTokens: number;
|
|
77
|
+
};
|
|
21
78
|
}
|
|
22
79
|
/**
|
|
23
80
|
* Main function to retrieve task-specific memory context
|
|
81
|
+
* Now with adaptive retrieval depth and context budget management
|
|
24
82
|
*/
|
|
25
|
-
export declare function retrieveDynamicMemoryContext(taskInstruction: string, projectRoot?: string
|
|
83
|
+
export declare function retrieveDynamicMemoryContext(taskInstruction: string, projectRoot?: string, options?: {
|
|
84
|
+
maxTokens?: number;
|
|
85
|
+
useSemanticCompression?: boolean;
|
|
86
|
+
}): Promise<DynamicMemoryContext>;
|
|
26
87
|
//# sourceMappingURL=dynamic-retrieval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/dynamic-retrieval.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dynamic-retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/dynamic-retrieval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAgE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI7H;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACxF;AAQD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAiDrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,eAAe,EAC3B,MAAM,GAAE,oBAA+C,GACtD;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAE/E;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,kBAAkB,CAAC;IACnC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CACtF;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,eAAe,EAAE,MAAM,EACvB,WAAW,GAAE,MAAsB,EACnC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC7B,GACL,OAAO,CAAC,oBAAoB,CAAC,CAuG/B"}
|
|
@@ -3,79 +3,195 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Retrieves relevant memories based on task content, not static context.
|
|
5
5
|
* Implements semantic search with fallback to keyword matching.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Adaptive retrieval depth based on query complexity
|
|
9
|
+
* - Context budget management to prevent overflow
|
|
10
|
+
* - Speculative prefetch for common patterns
|
|
6
11
|
*/
|
|
7
12
|
import { existsSync, readFileSync } from 'fs';
|
|
8
13
|
import { join } from 'path';
|
|
9
14
|
import { execSync } from 'child_process';
|
|
10
15
|
import { classifyTask, extractTaskEntities, getSuggestedMemoryQueries } from './task-classifier.js';
|
|
16
|
+
import { ContextBudget } from './context-compressor.js';
|
|
17
|
+
import { compressToSemanticUnits } from './semantic-compression.js';
|
|
18
|
+
const DEFAULT_RETRIEVAL_DEPTHS = {
|
|
19
|
+
simple: { shortTerm: 3, sessionMem: 2, longTerm: 3, patterns: 2 },
|
|
20
|
+
moderate: { shortTerm: 5, sessionMem: 4, longTerm: 5, patterns: 4 },
|
|
21
|
+
complex: { shortTerm: 8, sessionMem: 6, longTerm: 10, patterns: 6 },
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Measure query complexity to determine retrieval depth
|
|
25
|
+
* Based on SimpleMem's adaptive query-aware retrieval
|
|
26
|
+
*/
|
|
27
|
+
export function measureQueryComplexity(query) {
|
|
28
|
+
let score = 0;
|
|
29
|
+
// Length-based scoring (lower thresholds)
|
|
30
|
+
const wordCount = query.split(/\s+/).length;
|
|
31
|
+
if (wordCount > 30)
|
|
32
|
+
score += 1.5;
|
|
33
|
+
else if (wordCount > 12)
|
|
34
|
+
score += 0.75;
|
|
35
|
+
else if (wordCount > 6)
|
|
36
|
+
score += 0.25;
|
|
37
|
+
// Technical terms increase complexity
|
|
38
|
+
const techPatterns = [
|
|
39
|
+
/debug|fix|error|exception|bug/i,
|
|
40
|
+
/implement|refactor|optimize|build/i,
|
|
41
|
+
/configure|setup|install|deploy/i,
|
|
42
|
+
/security|vulnerability|cve|auth/i,
|
|
43
|
+
/performance|memory|cpu|latency/i,
|
|
44
|
+
/database|query|migration|schema/i,
|
|
45
|
+
/test|coverage|mock|spec/i,
|
|
46
|
+
];
|
|
47
|
+
for (const pattern of techPatterns) {
|
|
48
|
+
if (pattern.test(query))
|
|
49
|
+
score += 0.4;
|
|
50
|
+
}
|
|
51
|
+
// Multiple entities/files increase complexity
|
|
52
|
+
const fileMatches = query.match(/[\w./\\-]+\.(ts|js|py|json|yaml|sh|sql)/gi);
|
|
53
|
+
if (fileMatches) {
|
|
54
|
+
score += fileMatches.length * 0.3;
|
|
55
|
+
}
|
|
56
|
+
// Multi-step tasks are complex
|
|
57
|
+
if (/and then|after that|followed by|step \d|first.*then|also|additionally/i.test(query)) {
|
|
58
|
+
score += 1;
|
|
59
|
+
}
|
|
60
|
+
// Questions about "why" or "how" are moderate
|
|
61
|
+
if (/^(why|how|what caused|explain)/i.test(query)) {
|
|
62
|
+
score += 0.5;
|
|
63
|
+
}
|
|
64
|
+
// Multiple actions in one query
|
|
65
|
+
const actionWords = query.match(/\b(fix|implement|configure|debug|create|update|delete|add|remove)\b/gi);
|
|
66
|
+
if (actionWords && actionWords.length > 1) {
|
|
67
|
+
score += actionWords.length * 0.3;
|
|
68
|
+
}
|
|
69
|
+
if (score >= 2)
|
|
70
|
+
return 'complex';
|
|
71
|
+
if (score >= 1)
|
|
72
|
+
return 'moderate';
|
|
73
|
+
return 'simple';
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get retrieval limits based on query complexity
|
|
77
|
+
*/
|
|
78
|
+
export function getRetrievalDepth(complexity, config = DEFAULT_RETRIEVAL_DEPTHS) {
|
|
79
|
+
return config[complexity];
|
|
80
|
+
}
|
|
11
81
|
/**
|
|
12
82
|
* Main function to retrieve task-specific memory context
|
|
83
|
+
* Now with adaptive retrieval depth and context budget management
|
|
13
84
|
*/
|
|
14
|
-
export async function retrieveDynamicMemoryContext(taskInstruction, projectRoot = process.cwd()) {
|
|
85
|
+
export async function retrieveDynamicMemoryContext(taskInstruction, projectRoot = process.cwd(), options = {}) {
|
|
86
|
+
const { maxTokens = 4000, useSemanticCompression = true } = options;
|
|
15
87
|
// Step 1: Classify the task
|
|
16
88
|
const classification = classifyTask(taskInstruction);
|
|
17
|
-
// Step 2:
|
|
89
|
+
// Step 2: Measure query complexity for adaptive retrieval
|
|
90
|
+
const queryComplexity = measureQueryComplexity(taskInstruction);
|
|
91
|
+
const retrievalDepth = getRetrievalDepth(queryComplexity);
|
|
92
|
+
// Step 3: Initialize context budget
|
|
93
|
+
const budget = new ContextBudget(maxTokens);
|
|
94
|
+
// Step 4: Extract entities from task
|
|
18
95
|
const entities = extractTaskEntities(taskInstruction);
|
|
19
|
-
// Step
|
|
96
|
+
// Step 5: Get suggested memory queries
|
|
20
97
|
const suggestedQueries = getSuggestedMemoryQueries(classification);
|
|
21
|
-
// Step
|
|
22
|
-
const memories = await queryAllMemorySources(taskInstruction, classification, entities, suggestedQueries, projectRoot);
|
|
23
|
-
// Step
|
|
24
|
-
|
|
98
|
+
// Step 6: Query all memory sources with adaptive limits
|
|
99
|
+
const memories = await queryAllMemorySources(taskInstruction, classification, entities, suggestedQueries, projectRoot, retrievalDepth);
|
|
100
|
+
// Step 7: Apply semantic compression if enabled and we have many memories
|
|
101
|
+
let compressionStats;
|
|
102
|
+
let processedMemories = memories;
|
|
103
|
+
if (useSemanticCompression && memories.length > 5) {
|
|
104
|
+
const memoryData = memories.map(m => ({
|
|
105
|
+
content: m.content,
|
|
106
|
+
type: m.type,
|
|
107
|
+
importance: Math.round(m.relevance * 10),
|
|
108
|
+
}));
|
|
109
|
+
const compressed = compressToSemanticUnits(memoryData);
|
|
110
|
+
compressionStats = {
|
|
111
|
+
ratio: compressed.overallRatio,
|
|
112
|
+
sourceTokens: compressed.totalSourceTokens,
|
|
113
|
+
compressedTokens: compressed.totalCompressedTokens,
|
|
114
|
+
};
|
|
115
|
+
// Replace memories with compressed versions if significant savings
|
|
116
|
+
if (compressed.overallRatio > 1.5) {
|
|
117
|
+
processedMemories = compressed.units.flatMap(unit => unit.atomicFacts.map(fact => ({
|
|
118
|
+
content: fact.content,
|
|
119
|
+
type: fact.type === 'gotcha' ? 'gotcha' :
|
|
120
|
+
fact.type === 'lesson' ? 'lesson' :
|
|
121
|
+
fact.type === 'pattern' ? 'pattern' : 'context',
|
|
122
|
+
relevance: fact.actionability,
|
|
123
|
+
source: 'semantic-compression',
|
|
124
|
+
})));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Step 8: Extract patterns and gotchas
|
|
128
|
+
const patterns = processedMemories
|
|
25
129
|
.filter(m => m.type === 'pattern')
|
|
26
|
-
.map(m => m.content)
|
|
27
|
-
|
|
130
|
+
.map(m => m.content)
|
|
131
|
+
.slice(0, retrievalDepth.patterns);
|
|
132
|
+
const gotchas = processedMemories
|
|
28
133
|
.filter(m => m.type === 'gotcha')
|
|
29
|
-
.map(m => m.content)
|
|
30
|
-
|
|
134
|
+
.map(m => m.content)
|
|
135
|
+
.slice(0, retrievalDepth.patterns);
|
|
136
|
+
// Step 9: Get project-specific context
|
|
31
137
|
const projectContext = await getProjectContext(classification, projectRoot);
|
|
32
|
-
// Step
|
|
33
|
-
const formattedContext = formatContextWithRecencyBias(classification,
|
|
138
|
+
// Step 10: Format context with budget allocation
|
|
139
|
+
const { content: formattedContext } = budget.allocate('main', formatContextWithRecencyBias(classification, processedMemories, patterns, gotchas, projectContext));
|
|
34
140
|
return {
|
|
35
141
|
classification,
|
|
36
|
-
relevantMemories:
|
|
142
|
+
relevantMemories: processedMemories,
|
|
37
143
|
patterns,
|
|
38
144
|
gotchas,
|
|
39
145
|
projectContext,
|
|
40
146
|
formattedContext,
|
|
147
|
+
queryComplexity,
|
|
148
|
+
tokenBudget: {
|
|
149
|
+
used: budget.usage().used,
|
|
150
|
+
remaining: budget.remaining(),
|
|
151
|
+
total: maxTokens,
|
|
152
|
+
},
|
|
153
|
+
compressionStats,
|
|
41
154
|
};
|
|
42
155
|
}
|
|
43
156
|
/**
|
|
44
157
|
* Query all memory sources for relevant information
|
|
158
|
+
* Uses adaptive retrieval depth to limit queries based on complexity
|
|
45
159
|
*/
|
|
46
|
-
async function queryAllMemorySources(taskInstruction, classification, entities, suggestedQueries, projectRoot) {
|
|
160
|
+
async function queryAllMemorySources(taskInstruction, classification, entities, suggestedQueries, projectRoot, depth) {
|
|
47
161
|
const memories = [];
|
|
48
|
-
// Source 1: Short-term SQLite memory
|
|
49
|
-
const shortTermMemories = await queryShortTermMemory(classification, entities, projectRoot);
|
|
162
|
+
// Source 1: Short-term SQLite memory (limited by depth)
|
|
163
|
+
const shortTermMemories = await queryShortTermMemory(classification, entities, projectRoot, depth.shortTerm);
|
|
50
164
|
memories.push(...shortTermMemories);
|
|
51
|
-
// Source 2: Session memories (
|
|
52
|
-
const sessionMemories = await querySessionMemory(taskInstruction, projectRoot);
|
|
165
|
+
// Source 2: Session memories (limited by depth)
|
|
166
|
+
const sessionMemories = await querySessionMemory(taskInstruction, projectRoot, depth.sessionMem);
|
|
53
167
|
memories.push(...sessionMemories);
|
|
54
|
-
// Source 3: Long-term prepopulated memory
|
|
55
|
-
const longTermMemories = await queryLongTermMemory(suggestedQueries, projectRoot);
|
|
168
|
+
// Source 3: Long-term prepopulated memory (limited by depth)
|
|
169
|
+
const longTermMemories = await queryLongTermMemory(suggestedQueries, projectRoot, depth.longTerm);
|
|
56
170
|
memories.push(...longTermMemories);
|
|
57
171
|
// Source 4: CLAUDE.md sections relevant to task
|
|
58
172
|
const claudeMdMemories = await queryCLAUDEMd(classification, projectRoot);
|
|
59
173
|
memories.push(...claudeMdMemories);
|
|
60
|
-
// Source 5: Category-specific patterns from droids
|
|
61
|
-
const droidPatterns = getCategoryPatterns(classification);
|
|
174
|
+
// Source 5: Category-specific patterns from droids (limited by depth)
|
|
175
|
+
const droidPatterns = getCategoryPatterns(classification, depth.patterns);
|
|
62
176
|
memories.push(...droidPatterns);
|
|
63
177
|
// Deduplicate and sort by relevance
|
|
64
178
|
const uniqueMemories = deduplicateMemories(memories);
|
|
65
|
-
|
|
179
|
+
const maxTotal = depth.shortTerm + depth.sessionMem + depth.longTerm + depth.patterns;
|
|
180
|
+
return uniqueMemories.sort((a, b) => b.relevance - a.relevance).slice(0, maxTotal);
|
|
66
181
|
}
|
|
67
182
|
/**
|
|
68
183
|
* Query short-term SQLite memory
|
|
69
184
|
*/
|
|
70
|
-
async function queryShortTermMemory(classification, entities, projectRoot) {
|
|
185
|
+
async function queryShortTermMemory(classification, entities, projectRoot, limit = 5) {
|
|
71
186
|
const dbPath = join(projectRoot, 'agents/data/memory/short_term.db');
|
|
72
187
|
if (!existsSync(dbPath))
|
|
73
188
|
return [];
|
|
74
189
|
const memories = [];
|
|
190
|
+
const perKeywordLimit = Math.max(1, Math.ceil(limit / 3));
|
|
75
191
|
try {
|
|
76
192
|
// Query by category keywords
|
|
77
193
|
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
|
|
194
|
+
const result = execSync(`sqlite3 "${dbPath}" "SELECT type, content FROM memories WHERE content LIKE '%${keyword}%' ORDER BY id DESC LIMIT ${perKeywordLimit};"`, { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
79
195
|
if (result) {
|
|
80
196
|
for (const line of result.split('\n')) {
|
|
81
197
|
const [type, content] = line.split('|');
|
|
@@ -116,14 +232,14 @@ async function queryShortTermMemory(classification, entities, projectRoot) {
|
|
|
116
232
|
/**
|
|
117
233
|
* Query session memories for recent decisions
|
|
118
234
|
*/
|
|
119
|
-
async function querySessionMemory(_taskInstruction, projectRoot) {
|
|
235
|
+
async function querySessionMemory(_taskInstruction, projectRoot, limit = 5) {
|
|
120
236
|
const dbPath = join(projectRoot, 'agents/data/memory/short_term.db');
|
|
121
237
|
if (!existsSync(dbPath))
|
|
122
238
|
return [];
|
|
123
239
|
const memories = [];
|
|
124
240
|
try {
|
|
125
241
|
// 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
|
|
242
|
+
const result = execSync(`sqlite3 "${dbPath}" "SELECT type, content FROM session_memories WHERE importance >= 7 ORDER BY id DESC LIMIT ${limit};"`, { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
127
243
|
if (result) {
|
|
128
244
|
for (const line of result.split('\n')) {
|
|
129
245
|
const [type, content] = line.split('|');
|
|
@@ -146,7 +262,7 @@ async function querySessionMemory(_taskInstruction, projectRoot) {
|
|
|
146
262
|
/**
|
|
147
263
|
* Query long-term prepopulated memory
|
|
148
264
|
*/
|
|
149
|
-
async function queryLongTermMemory(queries, projectRoot) {
|
|
265
|
+
async function queryLongTermMemory(queries, projectRoot, _limit = 5) {
|
|
150
266
|
const memoryPath = join(projectRoot, 'agents/data/memory/long_term_prepopulated.json');
|
|
151
267
|
if (!existsSync(memoryPath))
|
|
152
268
|
return [];
|
|
@@ -156,9 +272,13 @@ async function queryLongTermMemory(queries, projectRoot) {
|
|
|
156
272
|
const allMemories = data.memories || data.lessons || data || [];
|
|
157
273
|
// Simple keyword matching for now (semantic search would be better)
|
|
158
274
|
for (const query of queries.slice(0, 5)) {
|
|
275
|
+
if (memories.length >= _limit)
|
|
276
|
+
break;
|
|
159
277
|
const queryLower = query.toLowerCase();
|
|
160
278
|
const queryWords = queryLower.split(/\s+/);
|
|
161
279
|
for (const mem of allMemories) {
|
|
280
|
+
if (memories.length >= _limit)
|
|
281
|
+
break;
|
|
162
282
|
const content = (mem.content || mem.text || JSON.stringify(mem)).toLowerCase();
|
|
163
283
|
const matchCount = queryWords.filter(w => content.includes(w)).length;
|
|
164
284
|
if (matchCount >= 2) {
|
|
@@ -235,7 +355,7 @@ async function queryCLAUDEMd(classification, projectRoot) {
|
|
|
235
355
|
/**
|
|
236
356
|
* Get category-specific patterns from droid knowledge
|
|
237
357
|
*/
|
|
238
|
-
function getCategoryPatterns(classification) {
|
|
358
|
+
function getCategoryPatterns(classification, limit = 4) {
|
|
239
359
|
const patterns = [];
|
|
240
360
|
const categoryPatterns = {
|
|
241
361
|
'sysadmin': [
|
|
@@ -276,7 +396,8 @@ function getCategoryPatterns(classification) {
|
|
|
276
396
|
],
|
|
277
397
|
};
|
|
278
398
|
const relevantPatterns = categoryPatterns[classification.category] || [];
|
|
279
|
-
|
|
399
|
+
const patternLimit = Math.max(1, Math.ceil(limit * 0.6));
|
|
400
|
+
for (const pattern of relevantPatterns.slice(0, patternLimit)) {
|
|
280
401
|
patterns.push({
|
|
281
402
|
content: pattern,
|
|
282
403
|
type: 'pattern',
|
|
@@ -291,7 +412,8 @@ function getCategoryPatterns(classification) {
|
|
|
291
412
|
'Empty array reduce needs initial value',
|
|
292
413
|
'Map.get() returns undefined for missing keys',
|
|
293
414
|
];
|
|
294
|
-
|
|
415
|
+
const gotchaLimit = Math.max(1, limit - patternLimit);
|
|
416
|
+
for (const gotcha of commonGotchas.slice(0, gotchaLimit)) {
|
|
295
417
|
patterns.push({
|
|
296
418
|
content: gotcha,
|
|
297
419
|
type: 'gotcha',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-retrieval.js","sourceRoot":"","sources":["../../src/memory/dynamic-retrieval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dynamic-retrieval.js","sourceRoot":"","sources":["../../src/memory/dynamic-retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
* Embedding Service for UAM Memory System
|
|
3
3
|
*
|
|
4
4
|
* Provides text embedding generation for semantic memory retrieval.
|
|
5
|
-
* Supports multiple backends: OpenAI, local transformers, or simple TF-IDF fallback.
|
|
5
|
+
* Supports multiple backends: Ollama (local), OpenAI, local transformers, or simple TF-IDF fallback.
|
|
6
|
+
*
|
|
7
|
+
* Priority order:
|
|
8
|
+
* 1. Ollama (if running with nomic-embed-text or similar)
|
|
9
|
+
* 2. OpenAI (if API key available)
|
|
10
|
+
* 3. Local sentence-transformers (if installed)
|
|
11
|
+
* 4. TF-IDF fallback (always available)
|
|
6
12
|
*/
|
|
7
13
|
export interface EmbeddingProvider {
|
|
8
14
|
name: string;
|
|
@@ -11,6 +17,21 @@ export interface EmbeddingProvider {
|
|
|
11
17
|
embedBatch(texts: string[]): Promise<number[][]>;
|
|
12
18
|
isAvailable(): Promise<boolean>;
|
|
13
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Ollama Embeddings Provider (LOCAL - NO API COSTS)
|
|
22
|
+
* Uses nomic-embed-text (768 dimensions) or other embedding models
|
|
23
|
+
*/
|
|
24
|
+
export declare class OllamaEmbeddingProvider implements EmbeddingProvider {
|
|
25
|
+
name: string;
|
|
26
|
+
dimensions: number;
|
|
27
|
+
private endpoint;
|
|
28
|
+
private model;
|
|
29
|
+
private available;
|
|
30
|
+
constructor(endpoint?: string, model?: string);
|
|
31
|
+
isAvailable(): Promise<boolean>;
|
|
32
|
+
embed(text: string): Promise<number[]>;
|
|
33
|
+
embedBatch(texts: string[]): Promise<number[][]>;
|
|
34
|
+
}
|
|
14
35
|
/**
|
|
15
36
|
* OpenAI Embeddings Provider
|
|
16
37
|
* Uses text-embedding-3-small (1536 dimensions) or text-embedding-ada-002
|
|
@@ -72,13 +93,15 @@ export declare class TFIDFEmbeddingProvider implements EmbeddingProvider {
|
|
|
72
93
|
/**
|
|
73
94
|
* Embedding Service - Main interface for UAM memory system
|
|
74
95
|
* Automatically selects best available provider
|
|
96
|
+
*
|
|
97
|
+
* Priority: Ollama (local, free) > OpenAI > Local transformers > TF-IDF fallback
|
|
75
98
|
*/
|
|
76
99
|
export declare class EmbeddingService {
|
|
77
100
|
private provider;
|
|
78
101
|
private providers;
|
|
79
102
|
private cache;
|
|
80
103
|
private cacheMaxSize;
|
|
81
|
-
constructor();
|
|
104
|
+
constructor(ollamaEndpoint?: string, ollamaModel?: string);
|
|
82
105
|
initialize(): Promise<void>;
|
|
83
106
|
embed(text: string): Promise<number[]>;
|
|
84
107
|
embedBatch(texts: string[]): Promise<number[][]>;
|