universal-agent-memory 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/benchmarks/agents/naive-agent.d.ts +60 -0
- package/dist/benchmarks/agents/naive-agent.d.ts.map +1 -0
- package/dist/benchmarks/agents/naive-agent.js +144 -0
- package/dist/benchmarks/agents/naive-agent.js.map +1 -0
- package/dist/benchmarks/agents/uam-agent.d.ts +167 -0
- package/dist/benchmarks/agents/uam-agent.d.ts.map +1 -0
- package/dist/benchmarks/agents/uam-agent.js +386 -0
- package/dist/benchmarks/agents/uam-agent.js.map +1 -0
- package/dist/benchmarks/benchmark.d.ts +328 -0
- package/dist/benchmarks/benchmark.d.ts.map +1 -0
- package/dist/benchmarks/benchmark.js +104 -0
- package/dist/benchmarks/benchmark.js.map +1 -0
- package/dist/benchmarks/execution-verifier.d.ts +41 -0
- package/dist/benchmarks/execution-verifier.d.ts.map +1 -0
- package/dist/benchmarks/execution-verifier.js +301 -0
- package/dist/benchmarks/execution-verifier.js.map +1 -0
- package/dist/benchmarks/hierarchical-prompting.d.ts +37 -0
- package/dist/benchmarks/hierarchical-prompting.d.ts.map +1 -0
- package/dist/benchmarks/hierarchical-prompting.js +260 -0
- package/dist/benchmarks/hierarchical-prompting.js.map +1 -0
- package/dist/benchmarks/improved-benchmark.d.ts +88 -0
- package/dist/benchmarks/improved-benchmark.d.ts.map +1 -0
- package/dist/benchmarks/improved-benchmark.js +533 -0
- package/dist/benchmarks/improved-benchmark.js.map +1 -0
- package/dist/benchmarks/index.d.ts +10 -0
- package/dist/benchmarks/index.d.ts.map +1 -0
- package/dist/benchmarks/index.js +10 -0
- package/dist/benchmarks/index.js.map +1 -0
- package/dist/benchmarks/multi-turn-agent.d.ts +44 -0
- package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -0
- package/dist/benchmarks/multi-turn-agent.js +235 -0
- package/dist/benchmarks/multi-turn-agent.js.map +1 -0
- package/dist/benchmarks/runner.d.ts +2 -0
- package/dist/benchmarks/runner.d.ts.map +1 -0
- package/dist/benchmarks/runner.js +2 -0
- package/dist/benchmarks/runner.js.map +1 -0
- package/dist/benchmarks/tasks.d.ts +19 -0
- package/dist/benchmarks/tasks.d.ts.map +1 -0
- package/dist/benchmarks/tasks.js +371 -0
- package/dist/benchmarks/tasks.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/backends/qdrant-cloud.d.ts +1 -1
- package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -1
- package/dist/memory/backends/qdrant-cloud.js +6 -4
- package/dist/memory/backends/qdrant-cloud.js.map +1 -1
- package/dist/memory/dynamic-retrieval.d.ts +26 -0
- package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
- package/dist/memory/dynamic-retrieval.js +378 -0
- package/dist/memory/dynamic-retrieval.js.map +1 -0
- package/dist/memory/embeddings.d.ts +82 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +297 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/task-classifier.d.ts +33 -0
- package/dist/memory/task-classifier.d.ts.map +1 -0
- package/dist/memory/task-classifier.js +277 -0
- package/dist/memory/task-classifier.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +62 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +150 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/validate-json.d.ts +52 -0
- package/dist/utils/validate-json.d.ts.map +1 -0
- package/dist/utils/validate-json.js +99 -0
- package/dist/utils/validate-json.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark Tasks for Terminal-Bench Adapter
|
|
3
|
+
*
|
|
4
|
+
* These tasks simulate real terminal-style scenarios that benefit from
|
|
5
|
+
* persistent memory and context awareness.
|
|
6
|
+
*
|
|
7
|
+
* Tasks are designed to test:
|
|
8
|
+
* 1. Memory of past decisions and outcomes
|
|
9
|
+
* 2. Knowledge of project structure and patterns
|
|
10
|
+
* 3. Ability to avoid repeating mistakes
|
|
11
|
+
* 4. Coordination of multi-step workflows
|
|
12
|
+
*/
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// MOCK SIMULATED ENVIRONMENT (for demonstration)
|
|
15
|
+
// ============================================================================
|
|
16
|
+
class FileSystemSimulator {
|
|
17
|
+
files = new Map();
|
|
18
|
+
writeFile(path, content) {
|
|
19
|
+
this.files.set(path, content);
|
|
20
|
+
}
|
|
21
|
+
readFile(path) {
|
|
22
|
+
return this.files.get(path) || null;
|
|
23
|
+
}
|
|
24
|
+
exists(path) {
|
|
25
|
+
return this.files.has(path);
|
|
26
|
+
}
|
|
27
|
+
listFiles(path) {
|
|
28
|
+
const prefix = path.endsWith('/') ? path : path + '/';
|
|
29
|
+
return Array.from(this.files.keys())
|
|
30
|
+
.filter(f => f.startsWith(prefix))
|
|
31
|
+
.map(f => f.slice(prefix.length));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
class TestRunnerSimulator {
|
|
35
|
+
passingTests = new Set();
|
|
36
|
+
addPassingTest(testName) {
|
|
37
|
+
this.passingTests.add(testName);
|
|
38
|
+
}
|
|
39
|
+
runTest(testName) {
|
|
40
|
+
if (this.passingTests.has(testName)) {
|
|
41
|
+
return { passed: true, output: 'All tests passed!' };
|
|
42
|
+
}
|
|
43
|
+
return { passed: false, output: `Test ${testName} failed` };
|
|
44
|
+
}
|
|
45
|
+
runAllTests() {
|
|
46
|
+
const results = Array.from(this.passingTests).map(name => ({
|
|
47
|
+
name,
|
|
48
|
+
passed: true,
|
|
49
|
+
}));
|
|
50
|
+
return {
|
|
51
|
+
passed: results.length,
|
|
52
|
+
failed: 0,
|
|
53
|
+
results,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Global simulators (shared across all tasks)
|
|
58
|
+
const fileSystem = new FileSystemSimulator();
|
|
59
|
+
const testRunner = new TestRunnerSimulator();
|
|
60
|
+
void testRunner;
|
|
61
|
+
// Initialize with some test data
|
|
62
|
+
fileSystem.writeFile('src/index.ts', 'export const VERSION = "1.0.0";');
|
|
63
|
+
fileSystem.writeFile('src/utils/helpers.ts', 'export function add(a: number, b: number): number { return a + b; }');
|
|
64
|
+
fileSystem.writeFile('package.json', JSON.stringify({
|
|
65
|
+
name: 'test-project',
|
|
66
|
+
version: '1.0.0',
|
|
67
|
+
scripts: {
|
|
68
|
+
test: 'vitest',
|
|
69
|
+
build: 'tsc',
|
|
70
|
+
lint: 'eslint src'
|
|
71
|
+
}
|
|
72
|
+
}, null, 2));
|
|
73
|
+
fileSystem.writeFile('README.md', '# Test Project\n\nThis is a test project.');
|
|
74
|
+
fileSystem.writeFile('.gitignore', 'node_modules\ndist');
|
|
75
|
+
fileSystem.writeFile('tsconfig.json', JSON.stringify({
|
|
76
|
+
compilerOptions: {
|
|
77
|
+
target: 'ES2020',
|
|
78
|
+
module: 'ESNext',
|
|
79
|
+
outDir: './dist',
|
|
80
|
+
}
|
|
81
|
+
}, null, 2));
|
|
82
|
+
// ============================================================================
|
|
83
|
+
// Benchmark Tasks
|
|
84
|
+
// ============================================================================
|
|
85
|
+
export const BENCHMARK_TASKS = [
|
|
86
|
+
{
|
|
87
|
+
id: 'task-001-memory-file-navigation',
|
|
88
|
+
name: 'Remember File Locations',
|
|
89
|
+
description: 'Agent must remember where a specific file was created in a previous task',
|
|
90
|
+
instruction: `Create a TypeScript file at src/utils/date.ts that exports a getCurrentDate() function.
|
|
91
|
+
IMPORTANT: In a previous session, we created src/utils/helpers.ts. Remember this location.`,
|
|
92
|
+
difficulty: 'easy',
|
|
93
|
+
category: 'memory',
|
|
94
|
+
estimatedMinutes: 2,
|
|
95
|
+
verify: (async () => {
|
|
96
|
+
const file = fileSystem.readFile('src/utils/date.ts');
|
|
97
|
+
const hasHelpers = fileSystem.exists('src/utils/helpers.ts');
|
|
98
|
+
if (!file)
|
|
99
|
+
return { success: false, details: { reason: 'File not created' } };
|
|
100
|
+
const hasFunction = file.includes('function getCurrentDate') || file.includes('getCurrentDate');
|
|
101
|
+
if (!hasFunction)
|
|
102
|
+
return { success: false, details: { reason: 'Missing function' } };
|
|
103
|
+
const rememberedHelpers = hasHelpers;
|
|
104
|
+
return {
|
|
105
|
+
success: true,
|
|
106
|
+
details: {
|
|
107
|
+
fileCreated: true,
|
|
108
|
+
hasFunction: true,
|
|
109
|
+
rememberedHelpers: rememberedHelpers
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}),
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
id: 'task-002-memory-pattern-application',
|
|
116
|
+
name: 'Apply Previously Learned Pattern',
|
|
117
|
+
description: 'Agent must apply a pattern used in previous tasks to similar code',
|
|
118
|
+
instruction: `Add a multiply() function to src/utils/helpers.ts following the same pattern as the existing add() function.
|
|
119
|
+
IMPORTANT: We previously defined similar utility functions here. Follow the same style.`,
|
|
120
|
+
difficulty: 'easy',
|
|
121
|
+
category: 'memory',
|
|
122
|
+
estimatedMinutes: 2,
|
|
123
|
+
verify: (async () => {
|
|
124
|
+
const file = fileSystem.readFile('src/utils/helpers.ts');
|
|
125
|
+
if (!file)
|
|
126
|
+
return { success: false, details: { reason: 'File not found' } };
|
|
127
|
+
const hasAdd = file.includes('function add') || file.includes('add(');
|
|
128
|
+
const hasMultiply = file.includes('function multiply') || file.includes('multiply(');
|
|
129
|
+
if (!hasAdd)
|
|
130
|
+
return { success: false, details: { reason: 'Original function missing' } };
|
|
131
|
+
if (!hasMultiply)
|
|
132
|
+
return { success: false, details: { reason: 'New function not added' } };
|
|
133
|
+
const hasExport = file.includes('export');
|
|
134
|
+
const hasParams = file.includes('a: number') || file.includes('number');
|
|
135
|
+
const hasReturn = file.includes('return');
|
|
136
|
+
const patternMatched = hasExport && hasParams && hasReturn;
|
|
137
|
+
return {
|
|
138
|
+
success: true,
|
|
139
|
+
details: {
|
|
140
|
+
bothPresent: true,
|
|
141
|
+
patternMatched: patternMatched
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
}),
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
id: 'task-003-memory-avoid-mistakes',
|
|
148
|
+
name: 'Avoid Repeating Previous Mistakes',
|
|
149
|
+
description: 'Agent must remember a mistake from a previous task and avoid it',
|
|
150
|
+
instruction: `Update package.json to add a new script "format" that runs "prettier --write src/".
|
|
151
|
+
IMPORTANT: Previously when adding scripts, we forgot to add commas. Don't forget the comma this time!`,
|
|
152
|
+
difficulty: 'medium',
|
|
153
|
+
category: 'memory',
|
|
154
|
+
estimatedMinutes: 2,
|
|
155
|
+
verify: (async () => {
|
|
156
|
+
const file = fileSystem.readFile('package.json');
|
|
157
|
+
if (!file)
|
|
158
|
+
return { success: false, details: { reason: 'File not found' } };
|
|
159
|
+
let packageJson;
|
|
160
|
+
try {
|
|
161
|
+
packageJson = JSON.parse(file);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return { success: false, details: { reason: 'Invalid JSON' } };
|
|
165
|
+
}
|
|
166
|
+
if (!packageJson.scripts || !packageJson.scripts.format) {
|
|
167
|
+
return { success: false, details: { reason: 'Script not added' } };
|
|
168
|
+
}
|
|
169
|
+
if (packageJson.scripts.format !== 'prettier --write src/') {
|
|
170
|
+
return { success: false, details: { reason: 'Script value incorrect' } };
|
|
171
|
+
}
|
|
172
|
+
return { success: true, details: { scriptAdded: true, correctValue: true } };
|
|
173
|
+
}),
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: 'task-004-coordination-multistep',
|
|
177
|
+
name: 'Multi-Step Task Coordination',
|
|
178
|
+
description: 'Agent must complete a task that requires multiple steps in the correct order',
|
|
179
|
+
instruction: `Complete the following steps in order:
|
|
180
|
+
1. Create src/types/index.ts with an empty interface User
|
|
181
|
+
2. Add TypeScript type exports to tsconfig.json
|
|
182
|
+
3. Run the build command to verify compilation
|
|
183
|
+
Make sure to complete steps in the correct order!`,
|
|
184
|
+
difficulty: 'medium',
|
|
185
|
+
category: 'coordination',
|
|
186
|
+
estimatedMinutes: 3,
|
|
187
|
+
verify: (async () => {
|
|
188
|
+
const typesFile = fileSystem.readFile('src/types/index.ts');
|
|
189
|
+
const step1Complete = Boolean(typesFile && typesFile.includes('interface User'));
|
|
190
|
+
const tsconfig = fileSystem.readFile('tsconfig.json');
|
|
191
|
+
let step2Complete = false;
|
|
192
|
+
try {
|
|
193
|
+
if (tsconfig) {
|
|
194
|
+
const config = JSON.parse(tsconfig);
|
|
195
|
+
step2Complete = config.compilerOptions?.declaration === true;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// ignore parse errors
|
|
200
|
+
}
|
|
201
|
+
step2Complete = step2Complete || !!tsconfig;
|
|
202
|
+
const buildRan = fileSystem.exists('dist');
|
|
203
|
+
void buildRan;
|
|
204
|
+
const allComplete = step1Complete && step2Complete;
|
|
205
|
+
return {
|
|
206
|
+
success: allComplete,
|
|
207
|
+
details: {
|
|
208
|
+
step1Complete,
|
|
209
|
+
step2Complete,
|
|
210
|
+
buildCheckSkipped: true,
|
|
211
|
+
buildRan
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
}),
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
id: 'task-005-code-quality-apply-eslint',
|
|
218
|
+
name: 'Apply Code Quality Standards',
|
|
219
|
+
description: 'Agent must remember and apply code quality standards from previous tasks',
|
|
220
|
+
instruction: `Add a TypeScript file src/services/api.ts that exports a fetchApi function.
|
|
221
|
+
IMPORTANT: Apply the same code quality standards we used for the helper functions:
|
|
222
|
+
- Type all parameters
|
|
223
|
+
- Export the function
|
|
224
|
+
- Include error handling
|
|
225
|
+
Follow the pattern from src/utils/helpers.ts.`,
|
|
226
|
+
difficulty: 'medium',
|
|
227
|
+
category: 'code-quality',
|
|
228
|
+
estimatedMinutes: 3,
|
|
229
|
+
verify: (async () => {
|
|
230
|
+
const file = fileSystem.readFile('src/services/api.ts');
|
|
231
|
+
if (!file)
|
|
232
|
+
return { success: false, details: { reason: 'File not created' } };
|
|
233
|
+
const hasFunction = file.includes('function fetchApi') || file.includes('fetchApi');
|
|
234
|
+
if (!hasFunction)
|
|
235
|
+
return { success: false, details: { reason: 'Function not found' } };
|
|
236
|
+
const hasExport = file.includes('export');
|
|
237
|
+
const hasTypes = file.includes(': ') || file.includes('string') || file.includes('number');
|
|
238
|
+
const hasErrorHandling = file.includes('try') ||
|
|
239
|
+
file.includes('catch') ||
|
|
240
|
+
file.includes('throw') ||
|
|
241
|
+
file.includes('Error');
|
|
242
|
+
const qualityApplied = hasExport && hasTypes && hasErrorHandling;
|
|
243
|
+
return {
|
|
244
|
+
success: true,
|
|
245
|
+
details: {
|
|
246
|
+
functionCreated: true,
|
|
247
|
+
exportPresent: hasExport,
|
|
248
|
+
typesPresent: hasTypes,
|
|
249
|
+
errorHandling: hasErrorHandling,
|
|
250
|
+
qualityApplied: qualityApplied
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
}),
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
id: 'task-006-testing-add-tests',
|
|
257
|
+
name: 'Add Tests for Existing Code',
|
|
258
|
+
description: 'Agent must add tests for the add() and multiply() functions',
|
|
259
|
+
instruction: `Create test file src/utils/__tests__/helpers.test.ts that tests the add() and multiply() functions from src/utils/helpers.ts.
|
|
260
|
+
Remember: These functions follow the pattern function name(a: number, b: number): number.`,
|
|
261
|
+
difficulty: 'medium',
|
|
262
|
+
category: 'testing',
|
|
263
|
+
estimatedMinutes: 3,
|
|
264
|
+
verify: (async () => {
|
|
265
|
+
const testFile = fileSystem.readFile('src/utils/__tests__/helpers.test.ts');
|
|
266
|
+
if (!testFile)
|
|
267
|
+
return { success: false, details: { reason: 'Test file not created' } };
|
|
268
|
+
const hasAddTest = testFile.includes('add(') || testFile.includes('test.*add');
|
|
269
|
+
const hasMultiplyTest = testFile.includes('multiply(') || testFile.includes('test.*multiply');
|
|
270
|
+
if (!hasAddTest)
|
|
271
|
+
return { success: false, details: { reason: 'Missing add() test' } };
|
|
272
|
+
if (!hasMultiplyTest)
|
|
273
|
+
return { success: false, details: { reason: 'Missing multiply() test' } };
|
|
274
|
+
const hasTest = testFile.includes('test(') || testFile.includes('describe(') || testFile.includes('it(');
|
|
275
|
+
const hasExpect = testFile.includes('expect(') || testFile.includes('assert');
|
|
276
|
+
const properStructure = hasTest && hasExpect;
|
|
277
|
+
return {
|
|
278
|
+
success: true,
|
|
279
|
+
details: {
|
|
280
|
+
addTest: hasAddTest,
|
|
281
|
+
multiplyTest: hasMultiplyTest,
|
|
282
|
+
testStructure: properStructure
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
}),
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
id: 'task-007-performance-optimize-imports',
|
|
289
|
+
name: 'Optimize Performance Pattern',
|
|
290
|
+
description: 'Agent must remember performance optimization patterns from previous tasks',
|
|
291
|
+
instruction: `Update src/index.ts to use lazy loading for imports.
|
|
292
|
+
IMPORTANT: Previously we used lazy imports to improve startup time. Apply that pattern here:
|
|
293
|
+
Currently it has: export const VERSION = "1.0.0";
|
|
294
|
+
Use dynamic import() for a hypothetical heavy module.`,
|
|
295
|
+
difficulty: 'hard',
|
|
296
|
+
category: 'performance',
|
|
297
|
+
estimatedMinutes: 4,
|
|
298
|
+
verify: (async () => {
|
|
299
|
+
const file = fileSystem.readFile('src/index.ts');
|
|
300
|
+
if (!file)
|
|
301
|
+
return { success: false, details: { reason: 'File not found' } };
|
|
302
|
+
const hasVersion = file.includes('VERSION');
|
|
303
|
+
const hasLazyImport = file.includes('import(') ||
|
|
304
|
+
file.includes('dynamic import') ||
|
|
305
|
+
file.includes('await import');
|
|
306
|
+
const hasErrorHandling = file.includes('try') ||
|
|
307
|
+
file.includes('catch');
|
|
308
|
+
return {
|
|
309
|
+
success: hasVersion && hasLazyImport,
|
|
310
|
+
details: {
|
|
311
|
+
hasVersion,
|
|
312
|
+
hasLazyImport,
|
|
313
|
+
hasErrorHandling: hasErrorHandling
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
}),
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
id: 'task-008-memory-cross-task-context',
|
|
320
|
+
name: 'Remember Context Across Multiple Tasks',
|
|
321
|
+
description: 'Agent must remember decisions from multiple previous tasks',
|
|
322
|
+
instruction: `Create .eslintrc.cjs file for the project.
|
|
323
|
+
IMPORTANT: Remember from previous tasks:
|
|
324
|
+
1. We want to enforce TypeScript strict mode
|
|
325
|
+
2. We use src/ as our source directory
|
|
326
|
+
3. We prefer single quotes
|
|
327
|
+
Set up the config accordingly.`,
|
|
328
|
+
difficulty: 'hard',
|
|
329
|
+
category: 'memory',
|
|
330
|
+
estimatedMinutes: 4,
|
|
331
|
+
verify: (async () => {
|
|
332
|
+
const file = fileSystem.readFile('.eslintrc.cjs');
|
|
333
|
+
if (!file)
|
|
334
|
+
return { success: false, details: { reason: 'Config file not created' } };
|
|
335
|
+
const hasTypeScript = file.includes('@typescript-eslint') ||
|
|
336
|
+
file.includes('typescript') ||
|
|
337
|
+
file.includes('parser: ');
|
|
338
|
+
const hasSourceDir = file.includes('src') ||
|
|
339
|
+
file.includes('**/*.ts') ||
|
|
340
|
+
file.includes('src/');
|
|
341
|
+
const hasQuotes = file.includes('single') ||
|
|
342
|
+
file.includes('"single"') ||
|
|
343
|
+
file.includes("'");
|
|
344
|
+
const rememberedAll = hasTypeScript && hasSourceDir && hasQuotes;
|
|
345
|
+
return {
|
|
346
|
+
success: rememberedAll,
|
|
347
|
+
details: {
|
|
348
|
+
typescriptConfig: hasTypeScript,
|
|
349
|
+
sourceDir: hasSourceDir,
|
|
350
|
+
quoteStyle: hasQuotes
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
}),
|
|
354
|
+
},
|
|
355
|
+
];
|
|
356
|
+
// ============================================================================
|
|
357
|
+
// Task Management Functions
|
|
358
|
+
// ============================================================================
|
|
359
|
+
export function getTaskById(id) {
|
|
360
|
+
return BENCHMARK_TASKS.find(task => task.id === id);
|
|
361
|
+
}
|
|
362
|
+
export function getTasksByDifficulty(difficulty) {
|
|
363
|
+
return BENCHMARK_TASKS.filter(task => task.difficulty === difficulty);
|
|
364
|
+
}
|
|
365
|
+
export function getTasksByCategory(category) {
|
|
366
|
+
return BENCHMARK_TASKS.filter(task => task.category === category);
|
|
367
|
+
}
|
|
368
|
+
export function getAllTasks() {
|
|
369
|
+
return [...BENCHMARK_TASKS];
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/benchmarks/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,9 @@ export { analyzeProject } from './analyzers/index.js';
|
|
|
3
3
|
export { generateClaudeMd } from './generators/claude-md.js';
|
|
4
4
|
export * from './coordination/index.js';
|
|
5
5
|
export * from './tasks/index.js';
|
|
6
|
+
export { getEmbeddingService, generateEmbedding, generateEmbeddings } from './memory/embeddings.js';
|
|
7
|
+
export { classifyTask, extractTaskEntities, getSuggestedMemoryQueries } from './memory/task-classifier.js';
|
|
8
|
+
export { retrieveDynamicMemoryContext } from './memory/dynamic-retrieval.js';
|
|
9
|
+
export type { TaskClassification } from './memory/task-classifier.js';
|
|
10
|
+
export type { DynamicMemoryContext, RetrievedMemory } from './memory/dynamic-retrieval.js';
|
|
6
11
|
//# 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"}
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -3,4 +3,8 @@ export { analyzeProject } from './analyzers/index.js';
|
|
|
3
3
|
export { generateClaudeMd } from './generators/claude-md.js';
|
|
4
4
|
export * from './coordination/index.js';
|
|
5
5
|
export * from './tasks/index.js';
|
|
6
|
+
// Memory system exports
|
|
7
|
+
export { getEmbeddingService, generateEmbedding, generateEmbeddings } from './memory/embeddings.js';
|
|
8
|
+
export { classifyTask, extractTaskEntities, getSuggestedMemoryQueries } from './memory/task-classifier.js';
|
|
9
|
+
export { retrieveDynamicMemoryContext } from './memory/dynamic-retrieval.js';
|
|
6
10
|
//# 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"}
|
|
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"}
|
|
@@ -10,7 +10,7 @@ export declare class QdrantCloudBackend implements MemoryBackend {
|
|
|
10
10
|
constructor(config: QdrantCloudBackendConfig);
|
|
11
11
|
isConfigured(): Promise<boolean>;
|
|
12
12
|
store(entry: MemoryEntry): Promise<void>;
|
|
13
|
-
query(
|
|
13
|
+
query(queryText: string, limit?: number): Promise<MemoryEntry[]>;
|
|
14
14
|
getRecent(limit?: number): Promise<MemoryEntry[]>;
|
|
15
15
|
prune(olderThan: Date): Promise<number>;
|
|
16
16
|
private ensureCollection;
|
|
@@ -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;AAG5D,UAAU,wBAAwB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,wBAAwB;IAYtC,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;CAU/B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { QdrantClient } from '@qdrant/js-client-rest';
|
|
2
|
+
import { getEmbeddingService } from '../embeddings.js';
|
|
2
3
|
export class QdrantCloudBackend {
|
|
3
4
|
client;
|
|
4
5
|
collection;
|
|
@@ -42,13 +43,14 @@ export class QdrantCloudBackend {
|
|
|
42
43
|
],
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
|
-
async query(
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
const queryEmbedding =
|
|
46
|
+
async query(queryText, limit = 10) {
|
|
47
|
+
// Generate real embedding for semantic search
|
|
48
|
+
const embeddingService = getEmbeddingService();
|
|
49
|
+
const queryEmbedding = await embeddingService.embed(queryText);
|
|
49
50
|
const results = await this.client.search(this.collection, {
|
|
50
51
|
vector: queryEmbedding,
|
|
51
52
|
limit,
|
|
53
|
+
score_threshold: 0.5, // Only return relevant results
|
|
52
54
|
});
|
|
53
55
|
return results.map((r) => ({
|
|
54
56
|
id: String(r.id),
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"qdrant-cloud.js","sourceRoot":"","sources":["../../../src/memory/backends/qdrant-cloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic Memory Retrieval System for UAM
|
|
3
|
+
*
|
|
4
|
+
* Retrieves relevant memories based on task content, not static context.
|
|
5
|
+
* Implements semantic search with fallback to keyword matching.
|
|
6
|
+
*/
|
|
7
|
+
import { type TaskClassification } from './task-classifier.js';
|
|
8
|
+
export interface RetrievedMemory {
|
|
9
|
+
content: string;
|
|
10
|
+
type: 'lesson' | 'gotcha' | 'pattern' | 'context' | 'example';
|
|
11
|
+
relevance: number;
|
|
12
|
+
source: string;
|
|
13
|
+
}
|
|
14
|
+
export interface DynamicMemoryContext {
|
|
15
|
+
classification: TaskClassification;
|
|
16
|
+
relevantMemories: RetrievedMemory[];
|
|
17
|
+
patterns: string[];
|
|
18
|
+
gotchas: string[];
|
|
19
|
+
projectContext: string;
|
|
20
|
+
formattedContext: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Main function to retrieve task-specific memory context
|
|
24
|
+
*/
|
|
25
|
+
export declare function retrieveDynamicMemoryContext(taskInstruction: string, projectRoot?: string): Promise<DynamicMemoryContext>;
|
|
26
|
+
//# sourceMappingURL=dynamic-retrieval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-retrieval.d.ts","sourceRoot":"","sources":["../../src/memory/dynamic-retrieval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAgE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE7H,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;CAC1B;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,eAAe,EAAE,MAAM,EACvB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAgD/B"}
|