universal-agent-memory 0.6.2 → 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.
Files changed (85) hide show
  1. package/dist/benchmarks/agents/naive-agent.d.ts +60 -0
  2. package/dist/benchmarks/agents/naive-agent.d.ts.map +1 -0
  3. package/dist/benchmarks/agents/naive-agent.js +144 -0
  4. package/dist/benchmarks/agents/naive-agent.js.map +1 -0
  5. package/dist/benchmarks/agents/uam-agent.d.ts +167 -0
  6. package/dist/benchmarks/agents/uam-agent.d.ts.map +1 -0
  7. package/dist/benchmarks/agents/uam-agent.js +386 -0
  8. package/dist/benchmarks/agents/uam-agent.js.map +1 -0
  9. package/dist/benchmarks/benchmark.d.ts +328 -0
  10. package/dist/benchmarks/benchmark.d.ts.map +1 -0
  11. package/dist/benchmarks/benchmark.js +104 -0
  12. package/dist/benchmarks/benchmark.js.map +1 -0
  13. package/dist/benchmarks/execution-verifier.d.ts +41 -0
  14. package/dist/benchmarks/execution-verifier.d.ts.map +1 -0
  15. package/dist/benchmarks/execution-verifier.js +342 -0
  16. package/dist/benchmarks/execution-verifier.js.map +1 -0
  17. package/dist/benchmarks/hierarchical-prompting.d.ts +37 -0
  18. package/dist/benchmarks/hierarchical-prompting.d.ts.map +1 -0
  19. package/dist/benchmarks/hierarchical-prompting.js +260 -0
  20. package/dist/benchmarks/hierarchical-prompting.js.map +1 -0
  21. package/dist/benchmarks/improved-benchmark.d.ts +88 -0
  22. package/dist/benchmarks/improved-benchmark.d.ts.map +1 -0
  23. package/dist/benchmarks/improved-benchmark.js +533 -0
  24. package/dist/benchmarks/improved-benchmark.js.map +1 -0
  25. package/dist/benchmarks/index.d.ts +10 -0
  26. package/dist/benchmarks/index.d.ts.map +1 -0
  27. package/dist/benchmarks/index.js +10 -0
  28. package/dist/benchmarks/index.js.map +1 -0
  29. package/dist/benchmarks/multi-turn-agent.d.ts +44 -0
  30. package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -0
  31. package/dist/benchmarks/multi-turn-agent.js +235 -0
  32. package/dist/benchmarks/multi-turn-agent.js.map +1 -0
  33. package/dist/benchmarks/runner.d.ts +2 -0
  34. package/dist/benchmarks/runner.d.ts.map +1 -0
  35. package/dist/benchmarks/runner.js +2 -0
  36. package/dist/benchmarks/runner.js.map +1 -0
  37. package/dist/benchmarks/tasks.d.ts +19 -0
  38. package/dist/benchmarks/tasks.d.ts.map +1 -0
  39. package/dist/benchmarks/tasks.js +371 -0
  40. package/dist/benchmarks/tasks.js.map +1 -0
  41. package/dist/index.d.ts +14 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +11 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/memory/backends/qdrant-cloud.d.ts +1 -1
  46. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -1
  47. package/dist/memory/backends/qdrant-cloud.js +6 -4
  48. package/dist/memory/backends/qdrant-cloud.js.map +1 -1
  49. package/dist/memory/context-compressor.d.ts +66 -0
  50. package/dist/memory/context-compressor.d.ts.map +1 -0
  51. package/dist/memory/context-compressor.js +250 -0
  52. package/dist/memory/context-compressor.js.map +1 -0
  53. package/dist/memory/dynamic-retrieval.d.ts +26 -0
  54. package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
  55. package/dist/memory/dynamic-retrieval.js +378 -0
  56. package/dist/memory/dynamic-retrieval.js.map +1 -0
  57. package/dist/memory/embeddings.d.ts +93 -0
  58. package/dist/memory/embeddings.d.ts.map +1 -0
  59. package/dist/memory/embeddings.js +391 -0
  60. package/dist/memory/embeddings.js.map +1 -0
  61. package/dist/memory/hierarchical-memory.d.ts +116 -0
  62. package/dist/memory/hierarchical-memory.d.ts.map +1 -0
  63. package/dist/memory/hierarchical-memory.js +299 -0
  64. package/dist/memory/hierarchical-memory.js.map +1 -0
  65. package/dist/memory/memory-consolidator.d.ts +88 -0
  66. package/dist/memory/memory-consolidator.d.ts.map +1 -0
  67. package/dist/memory/memory-consolidator.js +348 -0
  68. package/dist/memory/memory-consolidator.js.map +1 -0
  69. package/dist/memory/speculative-cache.d.ts +89 -0
  70. package/dist/memory/speculative-cache.d.ts.map +1 -0
  71. package/dist/memory/speculative-cache.js +259 -0
  72. package/dist/memory/speculative-cache.js.map +1 -0
  73. package/dist/memory/task-classifier.d.ts +33 -0
  74. package/dist/memory/task-classifier.d.ts.map +1 -0
  75. package/dist/memory/task-classifier.js +277 -0
  76. package/dist/memory/task-classifier.js.map +1 -0
  77. package/dist/utils/rate-limiter.d.ts +62 -0
  78. package/dist/utils/rate-limiter.d.ts.map +1 -0
  79. package/dist/utils/rate-limiter.js +150 -0
  80. package/dist/utils/rate-limiter.js.map +1 -0
  81. package/dist/utils/validate-json.d.ts +52 -0
  82. package/dist/utils/validate-json.d.ts.map +1 -0
  83. package/dist/utils/validate-json.js +99 -0
  84. package/dist/utils/validate-json.js.map +1 -0
  85. package/package.json +2 -1
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Improved Benchmark Runner for UAM
3
+ *
4
+ * Integrates all improvements:
5
+ * - Dynamic memory retrieval
6
+ * - Task classification and routing
7
+ * - Multi-turn agent loop
8
+ * - Hierarchical prompting
9
+ * - Execution verification
10
+ */
11
+ import { type TaskClassification } from '../memory/task-classifier.js';
12
+ import { type VerificationResult } from './execution-verifier.js';
13
+ interface ModelConfig {
14
+ id: string;
15
+ name: string;
16
+ apiModel: string;
17
+ }
18
+ interface BenchmarkTask {
19
+ id: string;
20
+ name: string;
21
+ description: string;
22
+ prompt: string;
23
+ difficulty: 'easy' | 'medium' | 'hard';
24
+ category: string;
25
+ expectedPatterns: string[];
26
+ }
27
+ interface TaskResult {
28
+ taskId: string;
29
+ modelId: string;
30
+ success: boolean;
31
+ latencyMs: number;
32
+ turnsUsed: number;
33
+ memoryUsed: boolean;
34
+ classification: TaskClassification;
35
+ verification: VerificationResult;
36
+ errors: string[];
37
+ }
38
+ interface ModelResult {
39
+ modelId: string;
40
+ modelName: string;
41
+ tasksRun: number;
42
+ tasksSucceeded: number;
43
+ successRate: number;
44
+ avgLatencyMs: number;
45
+ avgTurns: number;
46
+ results: TaskResult[];
47
+ }
48
+ interface BenchmarkReport {
49
+ timestamp: string;
50
+ config: {
51
+ maxTurns: number;
52
+ useMemory: boolean;
53
+ useHierarchicalPrompting: boolean;
54
+ };
55
+ models: ModelResult[];
56
+ comparison: {
57
+ bestOverall: string;
58
+ fastestModel: string;
59
+ byDifficulty: Record<string, {
60
+ model: string;
61
+ successRate: number;
62
+ }>;
63
+ byCategory: Record<string, {
64
+ model: string;
65
+ successRate: number;
66
+ }>;
67
+ };
68
+ memoryImpact?: {
69
+ withMemory: ModelResult[];
70
+ withoutMemory: ModelResult[];
71
+ improvement: Record<string, {
72
+ successDelta: number;
73
+ speedup: number;
74
+ }>;
75
+ };
76
+ }
77
+ declare const MODELS: ModelConfig[];
78
+ declare const BENCHMARK_TASKS: BenchmarkTask[];
79
+ export declare function runImprovedBenchmark(options?: {
80
+ apiKey?: string;
81
+ models?: string[];
82
+ compareMemory?: boolean;
83
+ maxTurns?: number;
84
+ useHierarchicalPrompting?: boolean;
85
+ verbose?: boolean;
86
+ }): Promise<BenchmarkReport>;
87
+ export { MODELS, BENCHMARK_TASKS };
88
+ //# sourceMappingURL=improved-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improved-benchmark.d.ts","sourceRoot":"","sources":["../../src/benchmarks/improved-benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIrF,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAUvF,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,kBAAkB,CAAC;IACnC,YAAY,EAAE,kBAAkB,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,wBAAwB,EAAE,OAAO,CAAC;KACnC,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACpE,CAAC;IACF,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,WAAW,EAAE,CAAC;QAC1B,aAAa,EAAE,WAAW,EAAE,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxE,CAAC;CACH;AAMD,QAAA,MAAM,MAAM,EAAE,WAAW,EAIxB,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,aAAa,EA0GnC,CAAC;AAoVF,wBAAsB,oBAAoB,CAAC,OAAO,GAAE;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GAAG,OAAO,CAAC,eAAe,CAAC,CAmHhC;AAuBD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,533 @@
1
+ /**
2
+ * Improved Benchmark Runner for UAM
3
+ *
4
+ * Integrates all improvements:
5
+ * - Dynamic memory retrieval
6
+ * - Task classification and routing
7
+ * - Multi-turn agent loop
8
+ * - Hierarchical prompting
9
+ * - Execution verification
10
+ */
11
+ import { writeFileSync, existsSync, readFileSync } from 'fs';
12
+ import { join, dirname } from 'path';
13
+ import { fileURLToPath } from 'url';
14
+ import { execSync } from 'child_process';
15
+ import { classifyTask } from '../memory/task-classifier.js';
16
+ import { retrieveDynamicMemoryContext } from '../memory/dynamic-retrieval.js';
17
+ import { executeWithMultiTurn } from './multi-turn-agent.js';
18
+ import { buildHierarchicalPrompt } from './hierarchical-prompting.js';
19
+ import { verifyBenchmarkTask } from './execution-verifier.js';
20
+ const __filename = fileURLToPath(import.meta.url);
21
+ const __dirname = dirname(__filename);
22
+ const PROJECT_ROOT = join(__dirname, '../..');
23
+ // ============================================================================
24
+ // Configuration
25
+ // ============================================================================
26
+ const MODELS = [
27
+ { id: 'opus-4.5', name: 'Claude Opus 4.5', apiModel: 'claude-opus-4-5-20251101' },
28
+ { id: 'glm-4.7', name: 'GLM 4.7', apiModel: 'glm-4.7' },
29
+ { id: 'gpt-5.2-codex', name: 'GPT 5.2 Codex', apiModel: 'gpt-5.2-codex' },
30
+ ];
31
+ const BENCHMARK_TASKS = [
32
+ {
33
+ id: 'task-001-code-generation',
34
+ name: 'TypeScript Function Generation',
35
+ description: 'Generate a well-typed TypeScript function',
36
+ prompt: `Write a TypeScript function called 'calculateAverage' that:
37
+ 1. Takes an array of numbers as input
38
+ 2. Returns the arithmetic mean
39
+ 3. Handles empty arrays (return 0)
40
+ 4. Has proper type annotations
41
+
42
+ Return ONLY the function code, no explanations.`,
43
+ difficulty: 'easy',
44
+ category: 'coding',
45
+ expectedPatterns: ['function calculateAverage', 'number[]', ': number', 'length', 'return'],
46
+ },
47
+ {
48
+ id: 'task-002-bug-fix',
49
+ name: 'Bug Detection and Fix',
50
+ description: 'Identify and fix a bug in code',
51
+ prompt: `Find and fix the bug in this TypeScript code:
52
+
53
+ function sumPositive(nums: number[]): number {
54
+ let sum = 0;
55
+ for (let i = 0; i <= nums.length; i++) {
56
+ if (nums[i] > 0) {
57
+ sum += nums[i];
58
+ }
59
+ }
60
+ return sum;
61
+ }
62
+
63
+ Return ONLY the corrected function code.`,
64
+ difficulty: 'easy',
65
+ category: 'debugging',
66
+ expectedPatterns: ['i < nums.length', 'function sumPositive', 'return sum'],
67
+ },
68
+ {
69
+ id: 'task-003-pattern-implementation',
70
+ name: 'Design Pattern Implementation',
71
+ description: 'Implement a singleton pattern',
72
+ prompt: `Implement a TypeScript singleton class called 'ConfigManager' that:
73
+ 1. Has a private constructor
74
+ 2. Has a static getInstance() method
75
+ 3. Has get(key: string) and set(key: string, value: any) methods
76
+ 4. Stores configuration in a private Map
77
+
78
+ Return ONLY the class code.`,
79
+ difficulty: 'medium',
80
+ category: 'coding',
81
+ expectedPatterns: ['class ConfigManager', 'private constructor', 'static getInstance', 'Map'],
82
+ },
83
+ {
84
+ id: 'task-004-refactoring',
85
+ name: 'Code Refactoring',
86
+ description: 'Refactor code for better maintainability',
87
+ prompt: `Refactor this code to use the Strategy pattern:
88
+
89
+ function processOrder(order: any) {
90
+ if (order.type === 'digital') {
91
+ order.status = 'delivered';
92
+ } else if (order.type === 'physical') {
93
+ order.status = 'shipped';
94
+ } else if (order.type === 'subscription') {
95
+ order.status = 'active';
96
+ }
97
+ return order;
98
+ }
99
+
100
+ Return the refactored TypeScript code with interfaces and classes.`,
101
+ difficulty: 'medium',
102
+ category: 'coding',
103
+ expectedPatterns: ['interface', 'class', 'implements', 'process'],
104
+ },
105
+ {
106
+ id: 'task-005-algorithm',
107
+ name: 'Algorithm Implementation',
108
+ description: 'Implement Dijkstra\'s algorithm',
109
+ prompt: `Implement a TypeScript function 'findShortestPath' using Dijkstra's algorithm:
110
+
111
+ 1. Input: weighted graph as adjacency list Map<string, Map<string, number>>
112
+ 2. Input: start node (string), end node (string)
113
+ 3. Output: { path: string[], distance: number } or null if no path
114
+ 4. Handle disconnected nodes
115
+
116
+ Return ONLY the function code with type definitions.`,
117
+ difficulty: 'hard',
118
+ category: 'coding',
119
+ expectedPatterns: ['function findShortestPath', 'Map<string', 'distance', 'path', 'while'],
120
+ },
121
+ {
122
+ id: 'task-006-error-handling',
123
+ name: 'Comprehensive Error Handling',
124
+ description: 'Implement robust error handling',
125
+ prompt: `Create a TypeScript async function 'fetchWithRetry' that:
126
+
127
+ 1. Takes url: string, retryConfig?: { maxRetries: number; backoffMs: number; }
128
+ 2. Implements exponential backoff retry logic
129
+ 3. Handles network errors and HTTP errors
130
+ 4. Returns Promise<Response> or throws custom error
131
+
132
+ Return ONLY the function code with types.`,
133
+ difficulty: 'hard',
134
+ category: 'coding',
135
+ expectedPatterns: ['async function fetchWithRetry', 'retry', 'catch', 'throw'],
136
+ },
137
+ ];
138
+ // ============================================================================
139
+ // Benchmark Runner
140
+ // ============================================================================
141
+ async function runTaskForModel(task, model, config) {
142
+ const startTime = Date.now();
143
+ // Step 1: Classify the task
144
+ const classification = classifyTask(task.prompt);
145
+ if (config.verbose) {
146
+ console.log(` Category: ${classification.category} (${(classification.confidence * 100).toFixed(0)}% confidence)`);
147
+ }
148
+ // Step 2: Get memory context if enabled
149
+ let memoryContext = '';
150
+ if (config.useMemory) {
151
+ try {
152
+ const dynamicContext = await retrieveDynamicMemoryContext(task.prompt, PROJECT_ROOT);
153
+ memoryContext = dynamicContext.formattedContext;
154
+ if (config.verbose) {
155
+ console.log(` Memory: ${dynamicContext.relevantMemories.length} memories retrieved`);
156
+ }
157
+ }
158
+ catch (error) {
159
+ if (config.verbose) {
160
+ console.log(` Memory: Failed to retrieve (${error})`);
161
+ }
162
+ }
163
+ }
164
+ // Step 3: Build prompt
165
+ let finalPrompt;
166
+ if (config.useHierarchicalPrompting) {
167
+ finalPrompt = buildHierarchicalPrompt(task.prompt, classification, memoryContext);
168
+ }
169
+ else {
170
+ finalPrompt = memoryContext ? memoryContext + '\n\n' + task.prompt : task.prompt;
171
+ }
172
+ // Step 4: Execute with multi-turn if needed
173
+ let success = false;
174
+ let response = '';
175
+ let turnsUsed = 1;
176
+ let verification;
177
+ const errors = [];
178
+ if (config.maxTurns > 1) {
179
+ // Use multi-turn agent
180
+ const multiTurnResult = await executeWithMultiTurn(task.id, task.prompt, {
181
+ maxTurns: config.maxTurns,
182
+ model: model.apiModel,
183
+ apiKey: config.apiKey,
184
+ useMemory: config.useMemory,
185
+ projectRoot: PROJECT_ROOT,
186
+ verbose: config.verbose,
187
+ });
188
+ success = multiTurnResult.success;
189
+ response = multiTurnResult.finalResponse;
190
+ turnsUsed = multiTurnResult.totalTurns;
191
+ verification = multiTurnResult.turns[multiTurnResult.turns.length - 1]?.verification || {
192
+ success: false,
193
+ executionSucceeded: false,
194
+ testsRun: 0,
195
+ testsPassed: 0,
196
+ errors: ['No verification data'],
197
+ output: '',
198
+ executionTimeMs: 0,
199
+ };
200
+ for (const turn of multiTurnResult.turns) {
201
+ errors.push(...turn.verification.errors);
202
+ }
203
+ }
204
+ else {
205
+ // Single-shot execution
206
+ try {
207
+ response = await executeSingleShot(finalPrompt, model.apiModel, config.apiKey);
208
+ verification = await verifyBenchmarkTask(task.id, response);
209
+ success = verification.success;
210
+ errors.push(...verification.errors);
211
+ }
212
+ catch (error) {
213
+ verification = {
214
+ success: false,
215
+ executionSucceeded: false,
216
+ testsRun: 0,
217
+ testsPassed: 0,
218
+ errors: [`Execution failed: ${error}`],
219
+ output: '',
220
+ executionTimeMs: 0,
221
+ };
222
+ errors.push(`Execution failed: ${error}`);
223
+ }
224
+ }
225
+ const latencyMs = Date.now() - startTime;
226
+ return {
227
+ taskId: task.id,
228
+ modelId: model.id,
229
+ success,
230
+ latencyMs,
231
+ turnsUsed,
232
+ memoryUsed: config.useMemory,
233
+ classification,
234
+ verification,
235
+ errors: [...new Set(errors)].slice(0, 5),
236
+ };
237
+ }
238
+ async function executeSingleShot(prompt, model, apiKey) {
239
+ const tmpDir = '/tmp/uam-benchmark';
240
+ const promptFile = join(tmpDir, `prompt-${Date.now()}.txt`);
241
+ if (!existsSync(tmpDir)) {
242
+ execSync(`mkdir -p ${tmpDir}`, { encoding: 'utf-8' });
243
+ }
244
+ writeFileSync(promptFile, prompt, 'utf-8');
245
+ try {
246
+ const result = execSync(`FACTORY_API_KEY="${apiKey}" droid exec --model "${model}" --auto medium -f "${promptFile}"`, {
247
+ encoding: 'utf-8',
248
+ timeout: 300000,
249
+ maxBuffer: 10 * 1024 * 1024,
250
+ env: { ...process.env, FACTORY_API_KEY: apiKey },
251
+ });
252
+ execSync(`rm "${promptFile}"`, { encoding: 'utf-8' });
253
+ return result.trim();
254
+ }
255
+ catch (error) {
256
+ try {
257
+ execSync(`rm "${promptFile}"`, { encoding: 'utf-8' });
258
+ }
259
+ catch { }
260
+ throw error;
261
+ }
262
+ }
263
+ async function runBenchmarkForModel(model, tasks, config) {
264
+ const memoryLabel = config.useMemory ? 'with UAM' : 'without UAM';
265
+ console.log(`\n${'='.repeat(60)}`);
266
+ console.log(`Running: ${model.name} (${memoryLabel})`);
267
+ console.log(`${'='.repeat(60)}`);
268
+ const results = [];
269
+ for (const task of tasks) {
270
+ console.log(` [${task.difficulty.toUpperCase()}] ${task.name}...`);
271
+ const result = await runTaskForModel(task, model, config);
272
+ results.push(result);
273
+ if (result.success) {
274
+ console.log(` ✓ Success (${result.latencyMs}ms, ${result.turnsUsed} turn${result.turnsUsed > 1 ? 's' : ''})`);
275
+ }
276
+ else {
277
+ console.log(` ✗ Failed: ${result.errors[0] || 'Unknown error'}`);
278
+ }
279
+ // Delay between tasks
280
+ await new Promise(r => setTimeout(r, 1000));
281
+ }
282
+ const succeeded = results.filter(r => r.success).length;
283
+ const avgLatency = results.reduce((sum, r) => sum + r.latencyMs, 0) / results.length;
284
+ const avgTurns = results.reduce((sum, r) => sum + r.turnsUsed, 0) / results.length;
285
+ return {
286
+ modelId: model.id,
287
+ modelName: model.name,
288
+ tasksRun: tasks.length,
289
+ tasksSucceeded: succeeded,
290
+ successRate: (succeeded / tasks.length) * 100,
291
+ avgLatencyMs: Math.round(avgLatency),
292
+ avgTurns: Math.round(avgTurns * 10) / 10,
293
+ results,
294
+ };
295
+ }
296
+ function generateComparison(modelResults) {
297
+ const sorted = [...modelResults].sort((a, b) => b.successRate - a.successRate);
298
+ const fastest = [...modelResults].sort((a, b) => a.avgLatencyMs - b.avgLatencyMs);
299
+ const byDifficulty = {};
300
+ const byCategory = {};
301
+ for (const diff of ['easy', 'medium', 'hard']) {
302
+ let bestModel = '';
303
+ let bestRate = 0;
304
+ for (const modelResult of modelResults) {
305
+ const diffTasks = modelResult.results.filter(r => {
306
+ const task = BENCHMARK_TASKS.find(t => t.id === r.taskId);
307
+ return task?.difficulty === diff;
308
+ });
309
+ if (diffTasks.length > 0) {
310
+ const rate = (diffTasks.filter(t => t.success).length / diffTasks.length) * 100;
311
+ if (rate > bestRate) {
312
+ bestRate = rate;
313
+ bestModel = modelResult.modelName;
314
+ }
315
+ }
316
+ }
317
+ byDifficulty[diff] = { model: bestModel, successRate: bestRate };
318
+ }
319
+ // By category
320
+ const categories = [...new Set(BENCHMARK_TASKS.map(t => t.category))];
321
+ for (const cat of categories) {
322
+ let bestModel = '';
323
+ let bestRate = 0;
324
+ for (const modelResult of modelResults) {
325
+ const catTasks = modelResult.results.filter(r => {
326
+ const task = BENCHMARK_TASKS.find(t => t.id === r.taskId);
327
+ return task?.category === cat;
328
+ });
329
+ if (catTasks.length > 0) {
330
+ const rate = (catTasks.filter(t => t.success).length / catTasks.length) * 100;
331
+ if (rate > bestRate) {
332
+ bestRate = rate;
333
+ bestModel = modelResult.modelName;
334
+ }
335
+ }
336
+ }
337
+ byCategory[cat] = { model: bestModel, successRate: bestRate };
338
+ }
339
+ return {
340
+ bestOverall: sorted[0]?.modelName || 'N/A',
341
+ fastestModel: fastest[0]?.modelName || 'N/A',
342
+ byDifficulty,
343
+ byCategory,
344
+ };
345
+ }
346
+ function generateMarkdownReport(report) {
347
+ const lines = [
348
+ '# Improved UAM Benchmark Results',
349
+ '',
350
+ `**Generated:** ${report.timestamp}`,
351
+ `**Configuration:**`,
352
+ `- Max Turns: ${report.config.maxTurns}`,
353
+ `- Memory Enabled: ${report.config.useMemory}`,
354
+ `- Hierarchical Prompting: ${report.config.useHierarchicalPrompting}`,
355
+ '',
356
+ '---',
357
+ '',
358
+ '## Executive Summary',
359
+ '',
360
+ '| Model | Success Rate | Avg Latency | Avg Turns |',
361
+ '|-------|--------------|-------------|-----------|',
362
+ ];
363
+ for (const model of report.models) {
364
+ lines.push(`| ${model.modelName} | ${model.successRate.toFixed(1)}% | ${model.avgLatencyMs}ms | ${model.avgTurns} |`);
365
+ }
366
+ lines.push('', '---', '', '## Comparison', '');
367
+ lines.push(`- **Best Overall:** ${report.comparison.bestOverall}`);
368
+ lines.push(`- **Fastest Model:** ${report.comparison.fastestModel}`);
369
+ lines.push('', '### By Difficulty', '');
370
+ lines.push('| Difficulty | Best Model | Success Rate |');
371
+ lines.push('|------------|------------|--------------|');
372
+ for (const [diff, data] of Object.entries(report.comparison.byDifficulty)) {
373
+ lines.push(`| ${diff} | ${data.model} | ${data.successRate.toFixed(1)}% |`);
374
+ }
375
+ lines.push('', '### By Category', '');
376
+ lines.push('| Category | Best Model | Success Rate |');
377
+ lines.push('|----------|------------|--------------|');
378
+ for (const [cat, data] of Object.entries(report.comparison.byCategory)) {
379
+ lines.push(`| ${cat} | ${data.model} | ${data.successRate.toFixed(1)}% |`);
380
+ }
381
+ if (report.memoryImpact) {
382
+ lines.push('', '---', '', '## UAM Memory Impact', '');
383
+ lines.push('| Model | Without UAM | With UAM | Improvement |');
384
+ lines.push('|-------|-------------|----------|-------------|');
385
+ for (const withMem of report.memoryImpact.withMemory) {
386
+ const without = report.memoryImpact.withoutMemory.find(r => r.modelId === withMem.modelId);
387
+ const imp = report.memoryImpact.improvement[withMem.modelId];
388
+ if (without && imp) {
389
+ const sign = imp.successDelta >= 0 ? '+' : '';
390
+ lines.push(`| ${withMem.modelName} | ${without.successRate.toFixed(1)}% | ${withMem.successRate.toFixed(1)}% | ${sign}${imp.successDelta.toFixed(1)}% |`);
391
+ }
392
+ }
393
+ }
394
+ lines.push('', '---', '', '## Detailed Results', '');
395
+ for (const model of report.models) {
396
+ lines.push(`### ${model.modelName}`, '');
397
+ lines.push('| Task | Difficulty | Success | Latency | Turns | Category |');
398
+ lines.push('|------|------------|---------|---------|-------|----------|');
399
+ for (const result of model.results) {
400
+ const task = BENCHMARK_TASKS.find(t => t.id === result.taskId);
401
+ const status = result.success ? '✓' : '✗';
402
+ lines.push(`| ${task?.name || result.taskId} | ${task?.difficulty} | ${status} | ${result.latencyMs}ms | ${result.turnsUsed} | ${result.classification.category} |`);
403
+ }
404
+ lines.push('');
405
+ }
406
+ lines.push('---', '', '**Report Generated by UAM Improved Benchmark**');
407
+ return lines.join('\n');
408
+ }
409
+ // ============================================================================
410
+ // Main Entry Point
411
+ // ============================================================================
412
+ export async function runImprovedBenchmark(options = {}) {
413
+ const apiKey = options.apiKey || process.env.FACTORY_API_KEY || process.env.DROID_API_KEY;
414
+ if (!apiKey) {
415
+ throw new Error('API key required (FACTORY_API_KEY or DROID_API_KEY)');
416
+ }
417
+ const modelsToTest = options.models
418
+ ? MODELS.filter(m => options.models.includes(m.id))
419
+ : MODELS;
420
+ const compareMemory = options.compareMemory ?? true;
421
+ const maxTurns = options.maxTurns ?? 2;
422
+ const useHierarchicalPrompting = options.useHierarchicalPrompting ?? true;
423
+ const verbose = options.verbose ?? false;
424
+ console.log('\n' + '█'.repeat(60));
425
+ console.log(' UAM IMPROVED BENCHMARK');
426
+ console.log('█'.repeat(60));
427
+ console.log(`\nModels: ${modelsToTest.map(m => m.name).join(', ')}`);
428
+ console.log(`Tasks: ${BENCHMARK_TASKS.length}`);
429
+ console.log(`Max Turns: ${maxTurns}`);
430
+ console.log(`Memory Comparison: ${compareMemory}`);
431
+ console.log(`Hierarchical Prompting: ${useHierarchicalPrompting}`);
432
+ const withoutMemoryResults = [];
433
+ const withMemoryResults = [];
434
+ // Run without memory first (if comparing)
435
+ if (compareMemory) {
436
+ console.log('\n' + '█'.repeat(60));
437
+ console.log(' PHASE 1: WITHOUT UAM MEMORY');
438
+ console.log('█'.repeat(60));
439
+ for (const model of modelsToTest) {
440
+ const result = await runBenchmarkForModel(model, BENCHMARK_TASKS, {
441
+ useMemory: false,
442
+ useHierarchicalPrompting: false,
443
+ maxTurns: 1,
444
+ apiKey,
445
+ verbose,
446
+ });
447
+ withoutMemoryResults.push(result);
448
+ }
449
+ }
450
+ // Run with memory (and all improvements)
451
+ console.log('\n' + '█'.repeat(60));
452
+ console.log(' PHASE 2: WITH UAM IMPROVEMENTS');
453
+ console.log('█'.repeat(60));
454
+ for (const model of modelsToTest) {
455
+ const result = await runBenchmarkForModel(model, BENCHMARK_TASKS, {
456
+ useMemory: true,
457
+ useHierarchicalPrompting,
458
+ maxTurns,
459
+ apiKey,
460
+ verbose,
461
+ });
462
+ withMemoryResults.push(result);
463
+ }
464
+ // Calculate improvement
465
+ const improvement = {};
466
+ if (compareMemory) {
467
+ for (const model of modelsToTest) {
468
+ const without = withoutMemoryResults.find(r => r.modelId === model.id);
469
+ const withMem = withMemoryResults.find(r => r.modelId === model.id);
470
+ if (without && withMem) {
471
+ improvement[model.id] = {
472
+ successDelta: withMem.successRate - without.successRate,
473
+ speedup: without.avgLatencyMs > 0 ? without.avgLatencyMs / withMem.avgLatencyMs : 1,
474
+ };
475
+ }
476
+ }
477
+ }
478
+ const report = {
479
+ timestamp: new Date().toISOString(),
480
+ config: {
481
+ maxTurns,
482
+ useMemory: true,
483
+ useHierarchicalPrompting,
484
+ },
485
+ models: withMemoryResults,
486
+ comparison: generateComparison(withMemoryResults),
487
+ memoryImpact: compareMemory ? {
488
+ withMemory: withMemoryResults,
489
+ withoutMemory: withoutMemoryResults,
490
+ improvement,
491
+ } : undefined,
492
+ };
493
+ // Generate and save report
494
+ const markdown = generateMarkdownReport(report);
495
+ const reportPath = join(PROJECT_ROOT, 'IMPROVED_BENCHMARK_RESULTS.md');
496
+ writeFileSync(reportPath, markdown);
497
+ console.log(`\nReport saved to: ${reportPath}`);
498
+ // Print summary
499
+ console.log('\n' + '='.repeat(60));
500
+ console.log(' BENCHMARK COMPLETE');
501
+ console.log('='.repeat(60));
502
+ if (compareMemory) {
503
+ console.log('\n--- Memory Impact ---');
504
+ for (const [modelId, imp] of Object.entries(improvement)) {
505
+ const model = modelsToTest.find(m => m.id === modelId);
506
+ const sign = imp.successDelta >= 0 ? '+' : '';
507
+ console.log(` ${model?.name}: ${sign}${imp.successDelta.toFixed(1)}% success`);
508
+ }
509
+ }
510
+ console.log(`\nBest Overall: ${report.comparison.bestOverall}`);
511
+ return report;
512
+ }
513
+ // CLI entry
514
+ if (process.argv[1]?.includes('improved-benchmark')) {
515
+ const envPath = join(PROJECT_ROOT, '.env');
516
+ if (existsSync(envPath)) {
517
+ const envContent = readFileSync(envPath, 'utf-8');
518
+ for (const line of envContent.split('\n')) {
519
+ const [key, ...valueParts] = line.split('=');
520
+ if (key && valueParts.length > 0) {
521
+ process.env[key.trim()] = valueParts.join('=').trim();
522
+ }
523
+ }
524
+ }
525
+ runImprovedBenchmark({ verbose: true })
526
+ .then(() => process.exit(0))
527
+ .catch(err => {
528
+ console.error('Benchmark failed:', err);
529
+ process.exit(1);
530
+ });
531
+ }
532
+ export { MODELS, BENCHMARK_TASKS };
533
+ //# sourceMappingURL=improved-benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"improved-benchmark.js","sourceRoot":"","sources":["../../src/benchmarks/improved-benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAA2B,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAA2B,MAAM,yBAAyB,CAAC;AAEvF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAkE9C,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,MAAM,GAAkB;IAC5B,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,0BAA0B,EAAE;IACjF,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;IACvD,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE;CAC1E,CAAC;AAEF,MAAM,eAAe,GAAoB;IACvC;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,2CAA2C;QACxD,MAAM,EAAE;;;;;;gDAMoC;QAC5C,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,gBAAgB,EAAE,CAAC,2BAA2B,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;KAC5F;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,gCAAgC;QAC7C,MAAM,EAAE;;;;;;;;;;;;yCAY6B;QACrC,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,CAAC;KAC5E;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,+BAA+B;QAC5C,MAAM,EAAE;;;;;;4BAMgB;QACxB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;QAClB,gBAAgB,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,CAAC;KAC9F;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,0CAA0C;QACvD,MAAM,EAAE;;;;;;;;;;;;;mEAauD;QAC/D,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;QAClB,gBAAgB,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC;KAClE;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE;;;;;;;qDAOyC;QACjD,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,gBAAgB,EAAE,CAAC,2BAA2B,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;KAC3F;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE;;;;;;;0CAO8B;QACtC,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,gBAAgB,EAAE,CAAC,+BAA+B,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;KAC/E;CACF,CAAC;AAEF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,KAAK,UAAU,eAAe,CAC5B,IAAmB,EACnB,KAAkB,EAClB,MAMC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,4BAA4B;IAC5B,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,iBAAiB,cAAc,CAAC,QAAQ,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACxH,CAAC;IAED,wCAAwC;IACxC,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,4BAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACrF,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC;YAEhD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,eAAe,cAAc,CAAC,gBAAgB,CAAC,MAAM,qBAAqB,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,WAAmB,CAAC;IACxB,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACpC,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACnF,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,YAAgC,CAAC;IACrC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACxB,uBAAuB;QACvB,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACvE,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,KAAK,CAAC,QAAQ;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QAEH,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;QAClC,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC;QACzC,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;QACvC,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,IAAI;YACtF,OAAO,EAAE,KAAK;YACd,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,CAAC,sBAAsB,CAAC;YAChC,MAAM,EAAE,EAAE;YACV,eAAe,EAAE,CAAC;SACnB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/E,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,GAAG;gBACb,OAAO,EAAE,KAAK;gBACd,kBAAkB,EAAE,KAAK;gBACzB,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE,CAAC,qBAAqB,KAAK,EAAE,CAAC;gBACtC,MAAM,EAAE,EAAE;gBACV,eAAe,EAAE,CAAC;aACnB,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAEzC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,OAAO;QACP,SAAS;QACT,SAAS;QACT,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,cAAc;QACd,YAAY;QACZ,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;IAC5E,MAAM,MAAM,GAAG,oBAAoB,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,YAAY,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CACrB,oBAAoB,MAAM,yBAAyB,KAAK,uBAAuB,UAAU,GAAG,EAC5F;YACE,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC3B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE;SACjD,CACF,CAAC;QAEF,QAAQ,CAAC,OAAO,UAAU,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,QAAQ,CAAC,OAAO,UAAU,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,KAAkB,EAClB,KAAsB,EACtB,MAMC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,SAAS,QAAQ,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,sBAAsB;QACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAEnF,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG;QAC7C,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACpC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE;QACxC,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,YAA2B;IACrD,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;IAElF,MAAM,YAAY,GAA2D,EAAE,CAAC;IAChF,MAAM,UAAU,GAA2D,EAAE,CAAC;IAE9E,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9C,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1D,OAAO,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;gBAChF,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;oBACpB,QAAQ,GAAG,IAAI,CAAC;oBAChB,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IACnE,CAAC;IAED,cAAc;IACd,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1D,OAAO,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;gBAC9E,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;oBACpB,QAAQ,GAAG,IAAI,CAAC;oBAChB,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IAED,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,KAAK;QAC1C,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,KAAK;QAC5C,YAAY;QACZ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAuB;IACrD,MAAM,KAAK,GAAa;QACtB,kCAAkC;QAClC,EAAE;QACF,kBAAkB,MAAM,CAAC,SAAS,EAAE;QACpC,oBAAoB;QACpB,gBAAgB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QACxC,qBAAqB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QAC9C,6BAA6B,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;QACrE,EAAE;QACF,KAAK;QACL,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,oDAAoD;QACpD,oDAAoD;KACrD,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,YAAY,QAAQ,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACxH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAErE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAE/D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,SAAS,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5J,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAE3E,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,MAAM,IAAI,EAAE,UAAU,MAAM,MAAM,MAAM,MAAM,CAAC,SAAS,QAAQ,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvK,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,gDAAgD,CAAC,CAAC;IAExE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAOvC,EAAE;IACJ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC1F,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM;QACjC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,MAAM,CAAC;IAEX,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,MAAM,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,IAAI,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAEzC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,UAAU,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,aAAa,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,2BAA2B,wBAAwB,EAAE,CAAC,CAAC;IAEnE,MAAM,oBAAoB,GAAkB,EAAE,CAAC;IAC/C,MAAM,iBAAiB,GAAkB,EAAE,CAAC;IAE5C,0CAA0C;IAC1C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE;gBAChE,SAAS,EAAE,KAAK;gBAChB,wBAAwB,EAAE,KAAK;gBAC/B,QAAQ,EAAE,CAAC;gBACX,MAAM;gBACN,OAAO;aACR,CAAC,CAAC;YACH,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE;YAChE,SAAS,EAAE,IAAI;YACf,wBAAwB;YACxB,QAAQ;YACR,MAAM;YACN,OAAO;SACR,CAAC,CAAC;QACH,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAA8D,EAAE,CAAC;IAClF,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;gBACvB,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;oBACtB,YAAY,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;oBACvD,OAAO,EAAE,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;iBACpF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAoB;QAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE;YACN,QAAQ;YACR,SAAS,EAAE,IAAI;YACf,wBAAwB;SACzB;QACD,MAAM,EAAE,iBAAiB;QACzB,UAAU,EAAE,kBAAkB,CAAC,iBAAiB,CAAC;QACjD,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;YAC5B,UAAU,EAAE,iBAAiB;YAC7B,aAAa,EAAE,oBAAoB;YACnC,WAAW;SACZ,CAAC,CAAC,CAAC,SAAS;KACd,CAAC;IAEF,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC,CAAC;IACvE,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;IAEhD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,YAAY;AACZ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACpC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Terminal-Bench Adapter for UAM - Index
3
+ *
4
+ * Exports everything needed for benchmarking
5
+ */
6
+ export * from './benchmark.js';
7
+ export * from './agents/naive-agent.js';
8
+ export * from './agents/uam-agent.js';
9
+ export * from './tasks.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/benchmarks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}