universal-agent-memory 1.0.25 → 1.2.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/cli/generate.js +119 -14
- package/dist/cli/generate.js.map +1 -1
- package/dist/generators/claude-md.js +64 -4
- package/dist/generators/claude-md.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/memory/adaptive-context.d.ts +3 -1
- package/dist/memory/adaptive-context.d.ts.map +1 -1
- package/dist/memory/adaptive-context.js +71 -42
- package/dist/memory/adaptive-context.js.map +1 -1
- package/dist/memory/context-compressor.d.ts +3 -1
- package/dist/memory/context-compressor.d.ts.map +1 -1
- package/dist/memory/context-compressor.js +21 -12
- package/dist/memory/context-compressor.js.map +1 -1
- package/dist/memory/dynamic-retrieval.d.ts.map +1 -1
- package/dist/memory/dynamic-retrieval.js +96 -51
- package/dist/memory/dynamic-retrieval.js.map +1 -1
- package/dist/memory/hierarchical-memory.d.ts +15 -2
- package/dist/memory/hierarchical-memory.d.ts.map +1 -1
- package/dist/memory/hierarchical-memory.js +118 -8
- package/dist/memory/hierarchical-memory.js.map +1 -1
- package/dist/memory/model-router.d.ts +17 -0
- package/dist/memory/model-router.d.ts.map +1 -1
- package/dist/memory/model-router.js +60 -2
- package/dist/memory/model-router.js.map +1 -1
- package/dist/memory/semantic-compression.d.ts.map +1 -1
- package/dist/memory/semantic-compression.js +11 -17
- package/dist/memory/semantic-compression.js.map +1 -1
- package/dist/memory/short-term/factory.d.ts +4 -1
- package/dist/memory/short-term/factory.d.ts.map +1 -1
- package/dist/memory/short-term/indexeddb.d.ts +1 -1
- package/dist/memory/short-term/indexeddb.d.ts.map +1 -1
- package/dist/memory/short-term/indexeddb.js +1 -1
- package/dist/memory/short-term/indexeddb.js.map +1 -1
- package/dist/memory/short-term/schema.d.ts.map +1 -1
- package/dist/memory/short-term/schema.js +14 -1
- package/dist/memory/short-term/schema.js.map +1 -1
- package/dist/memory/short-term/sqlite.d.ts +9 -1
- package/dist/memory/short-term/sqlite.d.ts.map +1 -1
- package/dist/memory/short-term/sqlite.js +35 -17
- package/dist/memory/short-term/sqlite.js.map +1 -1
- package/dist/memory/speculative-cache.d.ts +1 -0
- package/dist/memory/speculative-cache.d.ts.map +1 -1
- package/dist/memory/speculative-cache.js +36 -1
- package/dist/memory/speculative-cache.js.map +1 -1
- package/dist/memory/terminal-bench-knowledge.d.ts +14 -0
- package/dist/memory/terminal-bench-knowledge.d.ts.map +1 -1
- package/dist/memory/terminal-bench-knowledge.js +82 -3
- package/dist/memory/terminal-bench-knowledge.js.map +1 -1
- package/dist/utils/string-similarity.d.ts +37 -0
- package/dist/utils/string-similarity.d.ts.map +1 -0
- package/dist/utils/string-similarity.js +114 -0
- package/dist/utils/string-similarity.js.map +1 -0
- package/package.json +1 -1
|
@@ -11,24 +11,34 @@
|
|
|
11
11
|
* 4. Estimated overhead vs available time
|
|
12
12
|
*/
|
|
13
13
|
import { classifyTask as classifyTaskType } from './task-classifier.js';
|
|
14
|
+
import { recordTaskOutcome as updateModelRouterFingerprint } from './model-router.js';
|
|
14
15
|
// Task categories that typically don't benefit from UAM context
|
|
16
|
+
// Only skip when purely in these categories with no domain overlap
|
|
17
|
+
// NOTE: 'scheduling' removed - constraint-satisfaction tasks like 'constraints-scheduling'
|
|
18
|
+
// benefit from UAM context (proven +1 task in Terminal-Bench)
|
|
15
19
|
const LOW_BENEFIT_CATEGORIES = new Set([
|
|
16
20
|
'reasoning',
|
|
17
|
-
'scheduling',
|
|
18
|
-
'constraint-satisfaction',
|
|
19
21
|
'games',
|
|
20
22
|
'pure-logic',
|
|
21
23
|
'mathematical',
|
|
22
24
|
]);
|
|
25
|
+
// Categories that should ALWAYS receive UAM context regardless of historical data
|
|
26
|
+
// These are domain-knowledge-heavy tasks where UAM has proven beneficial
|
|
27
|
+
const ALWAYS_BENEFIT_CATEGORIES = new Set([
|
|
28
|
+
'security',
|
|
29
|
+
'file-ops',
|
|
30
|
+
'sysadmin',
|
|
31
|
+
'debugging',
|
|
32
|
+
'legacy',
|
|
33
|
+
'coding',
|
|
34
|
+
'testing',
|
|
35
|
+
'ml-training',
|
|
36
|
+
]);
|
|
23
37
|
// Keywords that suggest a task won't benefit from domain knowledge
|
|
38
|
+
// Removed overly broad terms: 'schedule', 'constraint', 'optimize' - these appear in DevOps/coding tasks
|
|
24
39
|
const SKIP_UAM_KEYWORDS = [
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'calendar',
|
|
28
|
-
'meeting',
|
|
29
|
-
'constraint',
|
|
30
|
-
'satisfy',
|
|
31
|
-
'optimize',
|
|
40
|
+
'calendar meeting',
|
|
41
|
+
'meeting room',
|
|
32
42
|
'chess move',
|
|
33
43
|
'best move',
|
|
34
44
|
'game theory',
|
|
@@ -36,6 +46,8 @@ const SKIP_UAM_KEYWORDS = [
|
|
|
36
46
|
'prove that',
|
|
37
47
|
'logic puzzle',
|
|
38
48
|
'sudoku',
|
|
49
|
+
'tic tac toe',
|
|
50
|
+
'crossword',
|
|
39
51
|
];
|
|
40
52
|
// Keywords that strongly suggest UAM will help
|
|
41
53
|
const HIGH_BENEFIT_KEYWORDS = [
|
|
@@ -128,44 +140,52 @@ const TIME_CRITICAL_MAX_TOKENS = 200;
|
|
|
128
140
|
const historicalDataStore = new Map();
|
|
129
141
|
/**
|
|
130
142
|
* Classify task type from instruction text
|
|
143
|
+
* Requires stronger signals before classifying as low-benefit to avoid skipping useful context
|
|
131
144
|
*/
|
|
132
145
|
export function classifyTask(instruction) {
|
|
133
146
|
const lower = instruction.toLowerCase();
|
|
134
|
-
// Check
|
|
135
|
-
|
|
147
|
+
// Check high-benefit keywords FIRST - these always get context
|
|
148
|
+
let highBenefitMatches = 0;
|
|
149
|
+
for (const kw of HIGH_BENEFIT_KEYWORDS) {
|
|
136
150
|
if (lower.includes(kw)) {
|
|
137
|
-
|
|
138
|
-
return 'scheduling';
|
|
139
|
-
}
|
|
140
|
-
if (lower.includes('chess') || lower.includes('game') || lower.includes('move')) {
|
|
141
|
-
return 'games';
|
|
142
|
-
}
|
|
143
|
-
if (lower.includes('constraint') || lower.includes('satisfy')) {
|
|
144
|
-
return 'constraint-satisfaction';
|
|
145
|
-
}
|
|
146
|
-
if (lower.includes('prove') || lower.includes('proof') || lower.includes('logic')) {
|
|
147
|
-
return 'pure-logic';
|
|
148
|
-
}
|
|
149
|
-
if (lower.includes('sudoku') || lower.includes('puzzle')) {
|
|
150
|
-
return 'reasoning';
|
|
151
|
-
}
|
|
151
|
+
highBenefitMatches++;
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
//
|
|
155
|
-
|
|
154
|
+
// If any high-benefit keyword matches, classify by domain
|
|
155
|
+
if (highBenefitMatches > 0) {
|
|
156
|
+
if (lower.includes('password') || lower.includes('hash') || lower.includes('crack')) {
|
|
157
|
+
return 'security';
|
|
158
|
+
}
|
|
159
|
+
if (lower.includes('xss') || lower.includes('injection') || lower.includes('sanitize')) {
|
|
160
|
+
return 'security';
|
|
161
|
+
}
|
|
162
|
+
if (lower.includes('elf') || lower.includes('sqlite') || lower.includes('binary')) {
|
|
163
|
+
return 'file-ops';
|
|
164
|
+
}
|
|
165
|
+
if (lower.includes('cobol') || lower.includes('legacy') || lower.includes('modernize')) {
|
|
166
|
+
return 'legacy';
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Check skip keywords - require multi-word phrase match (not single words)
|
|
170
|
+
let skipMatches = 0;
|
|
171
|
+
for (const kw of SKIP_UAM_KEYWORDS) {
|
|
156
172
|
if (lower.includes(kw)) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
173
|
+
skipMatches++;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Only skip if we have skip signal AND no high-benefit signal
|
|
177
|
+
if (skipMatches > 0 && highBenefitMatches === 0) {
|
|
178
|
+
if (lower.includes('chess move') || lower.includes('best move') || lower.includes('game theory')) {
|
|
179
|
+
return 'games';
|
|
180
|
+
}
|
|
181
|
+
if (lower.includes('mathematical proof') || lower.includes('prove that') || lower.includes('logic puzzle')) {
|
|
182
|
+
return 'pure-logic';
|
|
183
|
+
}
|
|
184
|
+
if (lower.includes('sudoku') || lower.includes('crossword') || lower.includes('tic tac toe')) {
|
|
185
|
+
return 'reasoning';
|
|
186
|
+
}
|
|
187
|
+
if (lower.includes('calendar meeting') || lower.includes('meeting room')) {
|
|
188
|
+
return 'scheduling';
|
|
169
189
|
}
|
|
170
190
|
}
|
|
171
191
|
// Fall back to task-classifier for detailed classification
|
|
@@ -231,8 +251,9 @@ export function getHistoricalBenefit(taskType) {
|
|
|
231
251
|
}
|
|
232
252
|
/**
|
|
233
253
|
* Record task outcome for historical tracking
|
|
254
|
+
* Also updates model router fingerprints to improve future routing
|
|
234
255
|
*/
|
|
235
|
-
export function recordOutcome(taskType, usedUam, success, durationMs) {
|
|
256
|
+
export function recordOutcome(taskType, usedUam, success, durationMs, modelId) {
|
|
236
257
|
let data = historicalDataStore.get(taskType);
|
|
237
258
|
if (!data) {
|
|
238
259
|
data = {
|
|
@@ -258,6 +279,13 @@ export function recordOutcome(taskType, usedUam, success, durationMs) {
|
|
|
258
279
|
(data.avgTimeWithoutUam * (data.noUamSuccesses - 1) + durationMs) / data.noUamSuccesses;
|
|
259
280
|
}
|
|
260
281
|
}
|
|
282
|
+
// Update model router fingerprints for feedback loop
|
|
283
|
+
if (modelId) {
|
|
284
|
+
const validModelIds = ['glm-4.7', 'gpt-5.2', 'claude-opus-4.5', 'gpt-5.2-codex'];
|
|
285
|
+
if (validModelIds.includes(modelId)) {
|
|
286
|
+
updateModelRouterFingerprint(modelId, success, durationMs, taskType);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
261
289
|
}
|
|
262
290
|
/**
|
|
263
291
|
* Calculate relevance score for a section (0-1)
|
|
@@ -340,7 +368,8 @@ export function decideContextLevel(instruction, metadata = {}) {
|
|
|
340
368
|
// Factor 3: Historical benefit
|
|
341
369
|
const historicalBenefit = metadata.historical_uam_benefit ?? getHistoricalBenefit(taskType);
|
|
342
370
|
// Factor 4: Check if historical data suggests skipping UAM
|
|
343
|
-
|
|
371
|
+
// BUT never skip for categories that are proven to benefit from domain knowledge
|
|
372
|
+
if (historicalBenefit < BENEFIT_THRESHOLD && !ALWAYS_BENEFIT_CATEGORIES.has(taskType)) {
|
|
344
373
|
return {
|
|
345
374
|
level: 'none',
|
|
346
375
|
sections: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive-context.js","sourceRoot":"","sources":["../../src/memory/adaptive-context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adaptive-context.js","sourceRoot":"","sources":["../../src/memory/adaptive-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@ export interface CompressorConfig {
|
|
|
18
18
|
compressionLevel: 'light' | 'medium' | 'aggressive';
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* Estimate token count
|
|
21
|
+
* Estimate token count using improved heuristics for mixed code/prose
|
|
22
|
+
* More accurate than simple length/4: accounts for whitespace splits,
|
|
23
|
+
* special characters, camelCase, and numeric tokens.
|
|
22
24
|
*/
|
|
23
25
|
export declare function estimateTokens(text: string): number;
|
|
24
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-compressor.d.ts","sourceRoot":"","sources":["../../src/memory/context-compressor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"context-compressor.d.ts","sourceRoot":"","sources":["../../src/memory/context-compressor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,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;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBnD;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;AAqDD;;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"}
|
|
@@ -4,16 +4,34 @@
|
|
|
4
4
|
* Implements semantic compression to reduce token usage while preserving meaning.
|
|
5
5
|
* Based on Acon (Agent Context Optimization) and AgentCompress research.
|
|
6
6
|
*/
|
|
7
|
+
import { jaccardSimilarity } from '../utils/string-similarity.js';
|
|
7
8
|
const DEFAULT_CONFIG = {
|
|
8
9
|
maxTokens: 800,
|
|
9
10
|
minSemanticPreservation: 0.85,
|
|
10
11
|
compressionLevel: 'medium',
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
13
|
-
* Estimate token count
|
|
14
|
+
* Estimate token count using improved heuristics for mixed code/prose
|
|
15
|
+
* More accurate than simple length/4: accounts for whitespace splits,
|
|
16
|
+
* special characters, camelCase, and numeric tokens.
|
|
14
17
|
*/
|
|
15
18
|
export function estimateTokens(text) {
|
|
16
|
-
|
|
19
|
+
if (!text || text.length === 0)
|
|
20
|
+
return 0;
|
|
21
|
+
// Split by whitespace for base word count
|
|
22
|
+
const words = text.split(/\s+/).filter(w => w.length > 0);
|
|
23
|
+
// Special characters that typically become separate tokens
|
|
24
|
+
const specialChars = (text.match(/[{}()\[\]<>:;,."'`@#$%^&*+=|\\/?!~-]/g) || []).length;
|
|
25
|
+
// Code tokens: camelCase/snake_case boundaries add sub-word tokens
|
|
26
|
+
const codeTokens = (text.match(/[a-z][A-Z]|_[a-z]/g) || []).length;
|
|
27
|
+
// Numeric sequences often tokenize separately
|
|
28
|
+
const numbers = (text.match(/\d+/g) || []).length;
|
|
29
|
+
// Average English word is ~1.3 tokens, code identifiers ~1.5
|
|
30
|
+
const baseTokens = words.length * 1.3;
|
|
31
|
+
const specialTokens = specialChars * 0.5;
|
|
32
|
+
const extraCodeTokens = codeTokens * 0.3;
|
|
33
|
+
const numberTokens = numbers * 0.5;
|
|
34
|
+
return Math.ceil(baseTokens + specialTokens + extraCodeTokens + numberTokens);
|
|
17
35
|
}
|
|
18
36
|
/**
|
|
19
37
|
* Compress a single memory entry
|
|
@@ -177,16 +195,7 @@ function deduplicateContent(contents, threshold = 0.8) {
|
|
|
177
195
|
}
|
|
178
196
|
return unique;
|
|
179
197
|
}
|
|
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
|
-
}
|
|
198
|
+
// jaccardSimilarity imported from ../utils/string-similarity.js
|
|
190
199
|
/**
|
|
191
200
|
* Get date range string
|
|
192
201
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-compressor.js","sourceRoot":"","sources":["../../src/memory/context-compressor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"context-compressor.js","sourceRoot":"","sources":["../../src/memory/context-compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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;AAG7H,OAAO,EAAsB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
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;AAG7H,OAAO,EAAsB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIpG;;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;IACrF,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;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;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;CACxB,GACL,OAAO,CAAC,oBAAoB,CAAC,CA8H/B"}
|
|
@@ -11,16 +11,17 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { existsSync, readFileSync } from 'fs';
|
|
13
13
|
import { join } from 'path';
|
|
14
|
-
import
|
|
14
|
+
import Database from 'better-sqlite3';
|
|
15
15
|
import { classifyTask, extractTaskEntities, getSuggestedMemoryQueries } from './task-classifier.js';
|
|
16
16
|
import { ContextBudget } from './context-compressor.js';
|
|
17
17
|
import { compressToSemanticUnits } from './semantic-compression.js';
|
|
18
18
|
import { decideContextLevel } from './adaptive-context.js';
|
|
19
19
|
import { getRelevantKnowledge } from './terminal-bench-knowledge.js';
|
|
20
|
+
import { contentHash, jaccardSimilarity } from '../utils/string-similarity.js';
|
|
20
21
|
const DEFAULT_RETRIEVAL_DEPTHS = {
|
|
21
|
-
simple: { shortTerm: 3, sessionMem: 2, longTerm:
|
|
22
|
-
moderate: { shortTerm:
|
|
23
|
-
complex: { shortTerm:
|
|
22
|
+
simple: { shortTerm: 3, sessionMem: 2, longTerm: 5, patterns: 3 },
|
|
23
|
+
moderate: { shortTerm: 6, sessionMem: 5, longTerm: 8, patterns: 5 },
|
|
24
|
+
complex: { shortTerm: 10, sessionMem: 8, longTerm: 15, patterns: 8 },
|
|
24
25
|
};
|
|
25
26
|
/**
|
|
26
27
|
* Measure query complexity to determine retrieval depth
|
|
@@ -207,13 +208,24 @@ async function queryAllMemorySources(taskInstruction, classification, entities,
|
|
|
207
208
|
source: 'terminal-bench-knowledge',
|
|
208
209
|
});
|
|
209
210
|
}
|
|
210
|
-
// Deduplicate
|
|
211
|
+
// Deduplicate, sort by relevance, and apply token-budget-aware cap
|
|
211
212
|
const uniqueMemories = deduplicateMemories(memories);
|
|
212
|
-
|
|
213
|
-
|
|
213
|
+
uniqueMemories.sort((a, b) => b.relevance - a.relevance);
|
|
214
|
+
// Use token budget instead of hard count cap to maximize useful context
|
|
215
|
+
const TOKEN_BUDGET = 3000;
|
|
216
|
+
const budgeted = [];
|
|
217
|
+
let usedTokens = 0;
|
|
218
|
+
for (const mem of uniqueMemories) {
|
|
219
|
+
const memTokens = Math.ceil(mem.content.length / 4);
|
|
220
|
+
if (usedTokens + memTokens > TOKEN_BUDGET && budgeted.length > 0)
|
|
221
|
+
break;
|
|
222
|
+
budgeted.push(mem);
|
|
223
|
+
usedTokens += memTokens;
|
|
224
|
+
}
|
|
225
|
+
return budgeted;
|
|
214
226
|
}
|
|
215
227
|
/**
|
|
216
|
-
* Query short-term SQLite memory
|
|
228
|
+
* Query short-term SQLite memory using parameterized queries (secure)
|
|
217
229
|
*/
|
|
218
230
|
async function queryShortTermMemory(classification, entities, projectRoot, limit = 5) {
|
|
219
231
|
const dbPath = join(projectRoot, 'agents/data/memory/short_term.db');
|
|
@@ -221,38 +233,40 @@ async function queryShortTermMemory(classification, entities, projectRoot, limit
|
|
|
221
233
|
return [];
|
|
222
234
|
const memories = [];
|
|
223
235
|
const perKeywordLimit = Math.max(1, Math.ceil(limit / 3));
|
|
236
|
+
let db = null;
|
|
224
237
|
try {
|
|
225
|
-
|
|
238
|
+
db = new Database(dbPath, { readonly: true });
|
|
239
|
+
// Query by category keywords using parameterized queries (secure)
|
|
240
|
+
const keywordStmt = db.prepare(`
|
|
241
|
+
SELECT type, content FROM memories
|
|
242
|
+
WHERE content LIKE ?
|
|
243
|
+
ORDER BY id DESC
|
|
244
|
+
LIMIT ?
|
|
245
|
+
`);
|
|
226
246
|
for (const keyword of classification.keywords.slice(0, 3)) {
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
source: 'short-term-memory',
|
|
237
|
-
});
|
|
238
|
-
}
|
|
247
|
+
const rows = keywordStmt.all(`%${keyword}%`, perKeywordLimit);
|
|
248
|
+
for (const row of rows) {
|
|
249
|
+
if (row.content) {
|
|
250
|
+
memories.push({
|
|
251
|
+
content: row.content.slice(0, 500),
|
|
252
|
+
type: row.type === 'lesson' ? 'lesson' : 'context',
|
|
253
|
+
relevance: 0.7,
|
|
254
|
+
source: 'short-term-memory',
|
|
255
|
+
});
|
|
239
256
|
}
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
|
-
// Query by technology mentions
|
|
259
|
+
// Query by technology mentions using parameterized queries (secure)
|
|
243
260
|
for (const tech of entities.technologies.slice(0, 2)) {
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
source: 'short-term-memory',
|
|
254
|
-
});
|
|
255
|
-
}
|
|
261
|
+
const rows = keywordStmt.all(`%${tech}%`, 2);
|
|
262
|
+
for (const row of rows) {
|
|
263
|
+
if (row.content) {
|
|
264
|
+
memories.push({
|
|
265
|
+
content: row.content.slice(0, 500),
|
|
266
|
+
type: row.type === 'gotcha' ? 'gotcha' : 'context',
|
|
267
|
+
relevance: 0.6,
|
|
268
|
+
source: 'short-term-memory',
|
|
269
|
+
});
|
|
256
270
|
}
|
|
257
271
|
}
|
|
258
272
|
}
|
|
@@ -260,36 +274,46 @@ async function queryShortTermMemory(classification, entities, projectRoot, limit
|
|
|
260
274
|
catch {
|
|
261
275
|
// Ignore query errors
|
|
262
276
|
}
|
|
277
|
+
finally {
|
|
278
|
+
db?.close();
|
|
279
|
+
}
|
|
263
280
|
return memories;
|
|
264
281
|
}
|
|
265
282
|
/**
|
|
266
|
-
* Query session memories for recent decisions
|
|
283
|
+
* Query session memories for recent decisions using parameterized queries (secure)
|
|
267
284
|
*/
|
|
268
285
|
async function querySessionMemory(_taskInstruction, projectRoot, limit = 5) {
|
|
269
286
|
const dbPath = join(projectRoot, 'agents/data/memory/short_term.db');
|
|
270
287
|
if (!existsSync(dbPath))
|
|
271
288
|
return [];
|
|
272
289
|
const memories = [];
|
|
290
|
+
let db = null;
|
|
273
291
|
try {
|
|
274
|
-
|
|
275
|
-
const
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
292
|
+
db = new Database(dbPath, { readonly: true });
|
|
293
|
+
const stmt = db.prepare(`
|
|
294
|
+
SELECT type, content FROM session_memories
|
|
295
|
+
WHERE importance >= 7
|
|
296
|
+
ORDER BY id DESC
|
|
297
|
+
LIMIT ?
|
|
298
|
+
`);
|
|
299
|
+
const rows = stmt.all(limit);
|
|
300
|
+
for (const row of rows) {
|
|
301
|
+
if (row.content) {
|
|
302
|
+
memories.push({
|
|
303
|
+
content: row.content.slice(0, 500),
|
|
304
|
+
type: row.type === 'lesson' ? 'lesson' : row.type === 'decision' ? 'context' : 'pattern',
|
|
305
|
+
relevance: 0.8,
|
|
306
|
+
source: 'session-memory',
|
|
307
|
+
});
|
|
287
308
|
}
|
|
288
309
|
}
|
|
289
310
|
}
|
|
290
311
|
catch {
|
|
291
312
|
// Ignore query errors
|
|
292
313
|
}
|
|
314
|
+
finally {
|
|
315
|
+
db?.close();
|
|
316
|
+
}
|
|
293
317
|
return memories;
|
|
294
318
|
}
|
|
295
319
|
/**
|
|
@@ -516,14 +540,35 @@ function formatContextWithRecencyBias(classification, memories, patterns, gotcha
|
|
|
516
540
|
return sections.join('\n\n') + '\n\n---\n\n';
|
|
517
541
|
}
|
|
518
542
|
/**
|
|
519
|
-
* Deduplicate memories by content similarity
|
|
543
|
+
* Deduplicate memories by content hash AND semantic similarity
|
|
544
|
+
* Uses SHA-256 based content hash for exact deduplication,
|
|
545
|
+
* then Jaccard similarity for near-duplicate detection
|
|
520
546
|
*/
|
|
521
547
|
function deduplicateMemories(memories) {
|
|
522
548
|
const seen = new Set();
|
|
523
549
|
const unique = [];
|
|
550
|
+
const SIMILARITY_THRESHOLD = 0.8;
|
|
524
551
|
for (const mem of memories) {
|
|
525
|
-
|
|
526
|
-
|
|
552
|
+
// Phase 1: Exact content hash deduplication
|
|
553
|
+
const key = contentHash(mem.content);
|
|
554
|
+
if (seen.has(key))
|
|
555
|
+
continue;
|
|
556
|
+
// Phase 2: Semantic similarity check against existing unique memories
|
|
557
|
+
const contentLower = mem.content.toLowerCase();
|
|
558
|
+
let isDuplicate = false;
|
|
559
|
+
for (const existing of unique) {
|
|
560
|
+
const similarity = jaccardSimilarity(contentLower, existing.content.toLowerCase());
|
|
561
|
+
if (similarity > SIMILARITY_THRESHOLD) {
|
|
562
|
+
isDuplicate = true;
|
|
563
|
+
// Keep the one with higher relevance
|
|
564
|
+
if (mem.relevance > existing.relevance) {
|
|
565
|
+
const idx = unique.indexOf(existing);
|
|
566
|
+
unique[idx] = mem;
|
|
567
|
+
}
|
|
568
|
+
break;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
if (!isDuplicate) {
|
|
527
572
|
seen.add(key);
|
|
528
573
|
unique.push(mem);
|
|
529
574
|
}
|