universal-agent-memory 0.6.1 → 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/bin/cli.js +0 -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
- package/templates/CLAUDE.template.md +51 -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"}
|