universal-agent-memory 1.0.17 → 1.0.18
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/benchmark.d.ts +6 -6
- package/dist/bin/cli.js +3 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/cli/model.d.ts +15 -0
- package/dist/cli/model.d.ts.map +1 -0
- package/dist/cli/model.js +270 -0
- package/dist/cli/model.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/models/executor.d.ts +130 -0
- package/dist/models/executor.d.ts.map +1 -0
- package/dist/models/executor.js +383 -0
- package/dist/models/executor.js.map +1 -0
- package/dist/models/index.d.ts +15 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +17 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/planner.d.ts +71 -0
- package/dist/models/planner.d.ts.map +1 -0
- package/dist/models/planner.js +344 -0
- package/dist/models/planner.js.map +1 -0
- package/dist/models/router.d.ts +75 -0
- package/dist/models/router.d.ts.map +1 -0
- package/dist/models/router.js +344 -0
- package/dist/models/router.js.map +1 -0
- package/dist/models/types.d.ts +370 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +181 -0
- package/dist/models/types.js.map +1 -0
- package/dist/types/config.d.ts +598 -38
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +75 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/coordination.d.ts +7 -7
- package/package.json +1 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Planner
|
|
3
|
+
*
|
|
4
|
+
* Tier 1 of the Multi-Model Architecture.
|
|
5
|
+
* Responsible for:
|
|
6
|
+
* - Task decomposition into subtasks
|
|
7
|
+
* - Dependency analysis
|
|
8
|
+
* - Model assignment for each subtask
|
|
9
|
+
* - Quality assurance routing
|
|
10
|
+
*/
|
|
11
|
+
import { randomUUID } from 'crypto';
|
|
12
|
+
// UUID generator
|
|
13
|
+
const uuidv4 = () => randomUUID();
|
|
14
|
+
const DEFAULT_OPTIONS = {
|
|
15
|
+
maxSubtasks: 10,
|
|
16
|
+
maxDepth: 3,
|
|
17
|
+
enableParallelization: true,
|
|
18
|
+
estimateTokenBudget: true,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Task Planner - decomposes tasks and creates execution plans
|
|
22
|
+
*/
|
|
23
|
+
export class TaskPlanner {
|
|
24
|
+
router;
|
|
25
|
+
config;
|
|
26
|
+
options;
|
|
27
|
+
constructor(router, config, options = {}) {
|
|
28
|
+
this.router = router;
|
|
29
|
+
this.config = config;
|
|
30
|
+
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create an execution plan for a task
|
|
34
|
+
*/
|
|
35
|
+
createPlan(taskDescription) {
|
|
36
|
+
const planId = uuidv4();
|
|
37
|
+
// Classify the overall task
|
|
38
|
+
const classification = this.router.classifyTask(taskDescription);
|
|
39
|
+
// Decompose if needed
|
|
40
|
+
const subtasks = classification.requiresPlanning
|
|
41
|
+
? this.decomposeTask(taskDescription, classification.complexity)
|
|
42
|
+
: [this.createSingleSubtask(taskDescription, classification)];
|
|
43
|
+
// Build dependency graph
|
|
44
|
+
const dependencies = this.analyzeDependencies(subtasks);
|
|
45
|
+
// Assign models to subtasks
|
|
46
|
+
const modelAssignments = this.assignModels(subtasks);
|
|
47
|
+
// Estimate cost and duration
|
|
48
|
+
const estimatedCost = this.estimateTotalCost(subtasks, modelAssignments);
|
|
49
|
+
const estimatedDuration = this.estimateDuration(subtasks, dependencies);
|
|
50
|
+
return {
|
|
51
|
+
id: planId,
|
|
52
|
+
originalTask: taskDescription,
|
|
53
|
+
subtasks,
|
|
54
|
+
dependencies,
|
|
55
|
+
modelAssignments,
|
|
56
|
+
estimatedCost,
|
|
57
|
+
estimatedDuration,
|
|
58
|
+
created: new Date(),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Decompose a complex task into subtasks
|
|
63
|
+
*/
|
|
64
|
+
decomposeTask(taskDescription, complexity) {
|
|
65
|
+
const subtasks = [];
|
|
66
|
+
const lowerTask = taskDescription.toLowerCase();
|
|
67
|
+
// Analysis/understanding phase
|
|
68
|
+
if (complexity === 'high' || complexity === 'critical') {
|
|
69
|
+
subtasks.push({
|
|
70
|
+
id: uuidv4(),
|
|
71
|
+
title: 'Analyze requirements',
|
|
72
|
+
description: `Understand the requirements and constraints for: ${taskDescription}`,
|
|
73
|
+
type: 'planning',
|
|
74
|
+
complexity: 'medium',
|
|
75
|
+
inputs: ['task_description'],
|
|
76
|
+
outputs: ['requirements_analysis', 'constraints_list'],
|
|
77
|
+
constraints: ['Must identify all edge cases', 'Must note dependencies'],
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// Design phase for architectural tasks
|
|
81
|
+
if (lowerTask.includes('architecture') || lowerTask.includes('design') || lowerTask.includes('refactor')) {
|
|
82
|
+
subtasks.push({
|
|
83
|
+
id: uuidv4(),
|
|
84
|
+
title: 'Design solution',
|
|
85
|
+
description: 'Create detailed design for the solution including interfaces, patterns, and structure',
|
|
86
|
+
type: 'planning',
|
|
87
|
+
complexity: 'high',
|
|
88
|
+
inputs: ['requirements_analysis'],
|
|
89
|
+
outputs: ['design_document', 'interface_definitions'],
|
|
90
|
+
constraints: ['Must follow SOLID principles', 'Must be testable'],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// Implementation phase
|
|
94
|
+
subtasks.push({
|
|
95
|
+
id: uuidv4(),
|
|
96
|
+
title: 'Implement solution',
|
|
97
|
+
description: 'Write the code implementing the required functionality',
|
|
98
|
+
type: 'coding',
|
|
99
|
+
complexity: complexity === 'critical' ? 'high' : complexity,
|
|
100
|
+
inputs: subtasks.length > 0 ? ['design_document'] : ['task_description'],
|
|
101
|
+
outputs: ['source_code'],
|
|
102
|
+
constraints: ['Must have proper error handling', 'Must be well-typed'],
|
|
103
|
+
});
|
|
104
|
+
// Testing phase
|
|
105
|
+
if (complexity !== 'low') {
|
|
106
|
+
subtasks.push({
|
|
107
|
+
id: uuidv4(),
|
|
108
|
+
title: 'Write tests',
|
|
109
|
+
description: 'Create unit tests and integration tests for the implementation',
|
|
110
|
+
type: 'coding',
|
|
111
|
+
complexity: 'medium',
|
|
112
|
+
inputs: ['source_code'],
|
|
113
|
+
outputs: ['test_code'],
|
|
114
|
+
constraints: ['Must achieve >80% coverage', 'Must test edge cases'],
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
// Review phase for critical tasks
|
|
118
|
+
if (complexity === 'critical' || lowerTask.includes('security')) {
|
|
119
|
+
subtasks.push({
|
|
120
|
+
id: uuidv4(),
|
|
121
|
+
title: 'Security review',
|
|
122
|
+
description: 'Review code for security vulnerabilities and best practices',
|
|
123
|
+
type: 'review',
|
|
124
|
+
complexity: 'high',
|
|
125
|
+
inputs: ['source_code'],
|
|
126
|
+
outputs: ['security_report', 'recommendations'],
|
|
127
|
+
constraints: ['Must check OWASP top 10', 'Must verify input validation'],
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
// Documentation for significant changes
|
|
131
|
+
if (complexity === 'high' || complexity === 'critical') {
|
|
132
|
+
subtasks.push({
|
|
133
|
+
id: uuidv4(),
|
|
134
|
+
title: 'Update documentation',
|
|
135
|
+
description: 'Update documentation to reflect the changes',
|
|
136
|
+
type: 'documentation',
|
|
137
|
+
complexity: 'low',
|
|
138
|
+
inputs: ['source_code', 'design_document'],
|
|
139
|
+
outputs: ['documentation'],
|
|
140
|
+
constraints: ['Must include usage examples', 'Must document breaking changes'],
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return subtasks;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Create a single subtask for simple tasks
|
|
147
|
+
*/
|
|
148
|
+
createSingleSubtask(taskDescription, classification) {
|
|
149
|
+
return {
|
|
150
|
+
id: uuidv4(),
|
|
151
|
+
title: 'Execute task',
|
|
152
|
+
description: taskDescription,
|
|
153
|
+
type: classification.taskType,
|
|
154
|
+
complexity: classification.complexity,
|
|
155
|
+
inputs: ['task_description'],
|
|
156
|
+
outputs: ['result'],
|
|
157
|
+
constraints: [],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Analyze dependencies between subtasks
|
|
162
|
+
*/
|
|
163
|
+
analyzeDependencies(subtasks) {
|
|
164
|
+
const dependencies = new Map();
|
|
165
|
+
// Build output-to-subtask mapping
|
|
166
|
+
const outputProducers = new Map();
|
|
167
|
+
for (const subtask of subtasks) {
|
|
168
|
+
for (const output of subtask.outputs) {
|
|
169
|
+
outputProducers.set(output, subtask.id);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Find dependencies based on inputs
|
|
173
|
+
for (const subtask of subtasks) {
|
|
174
|
+
const deps = [];
|
|
175
|
+
for (const input of subtask.inputs) {
|
|
176
|
+
const producer = outputProducers.get(input);
|
|
177
|
+
if (producer && producer !== subtask.id) {
|
|
178
|
+
deps.push(producer);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (deps.length > 0) {
|
|
182
|
+
dependencies.set(subtask.id, [...new Set(deps)]);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return dependencies;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Assign models to subtasks based on routing
|
|
189
|
+
*/
|
|
190
|
+
assignModels(subtasks) {
|
|
191
|
+
const assignments = new Map();
|
|
192
|
+
for (const subtask of subtasks) {
|
|
193
|
+
const selection = this.router.selectModel(subtask.complexity, subtask.type, [] // Could extract keywords from description
|
|
194
|
+
);
|
|
195
|
+
assignments.set(subtask.id, selection.model.id);
|
|
196
|
+
}
|
|
197
|
+
return assignments;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Estimate total cost for the plan
|
|
201
|
+
*/
|
|
202
|
+
estimateTotalCost(subtasks, assignments) {
|
|
203
|
+
let totalCost = 0;
|
|
204
|
+
for (const subtask of subtasks) {
|
|
205
|
+
const modelId = assignments.get(subtask.id);
|
|
206
|
+
const model = modelId ? this.router.getModel(modelId) : undefined;
|
|
207
|
+
if (model) {
|
|
208
|
+
// Estimate tokens based on complexity
|
|
209
|
+
const tokenMultiplier = {
|
|
210
|
+
low: 1,
|
|
211
|
+
medium: 2,
|
|
212
|
+
high: 4,
|
|
213
|
+
critical: 6,
|
|
214
|
+
};
|
|
215
|
+
const baseTokens = 5000;
|
|
216
|
+
const estimatedTokens = baseTokens * tokenMultiplier[subtask.complexity];
|
|
217
|
+
totalCost += this.router.estimateCost(model, estimatedTokens, estimatedTokens / 2);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return totalCost;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Estimate duration considering parallelization
|
|
224
|
+
*/
|
|
225
|
+
estimateDuration(subtasks, dependencies) {
|
|
226
|
+
if (!this.options.enableParallelization) {
|
|
227
|
+
// Sequential execution
|
|
228
|
+
return subtasks.reduce((total, subtask) => {
|
|
229
|
+
const baseTime = 30000; // 30 seconds base
|
|
230
|
+
const multiplier = {
|
|
231
|
+
low: 1,
|
|
232
|
+
medium: 2,
|
|
233
|
+
high: 4,
|
|
234
|
+
critical: 6,
|
|
235
|
+
};
|
|
236
|
+
return total + baseTime * multiplier[subtask.complexity];
|
|
237
|
+
}, 0);
|
|
238
|
+
}
|
|
239
|
+
// Parallel execution - find critical path
|
|
240
|
+
const subtaskDurations = new Map();
|
|
241
|
+
for (const subtask of subtasks) {
|
|
242
|
+
const baseTime = 30000;
|
|
243
|
+
const multiplier = {
|
|
244
|
+
low: 1,
|
|
245
|
+
medium: 2,
|
|
246
|
+
high: 4,
|
|
247
|
+
critical: 6,
|
|
248
|
+
};
|
|
249
|
+
subtaskDurations.set(subtask.id, baseTime * multiplier[subtask.complexity]);
|
|
250
|
+
}
|
|
251
|
+
// Calculate earliest completion time for each subtask
|
|
252
|
+
const completionTimes = new Map();
|
|
253
|
+
const queue = subtasks.filter(s => !dependencies.has(s.id)).map(s => s.id);
|
|
254
|
+
while (queue.length > 0) {
|
|
255
|
+
const subtaskId = queue.shift();
|
|
256
|
+
const deps = dependencies.get(subtaskId) || [];
|
|
257
|
+
const maxDepTime = deps.length > 0
|
|
258
|
+
? Math.max(...deps.map(d => completionTimes.get(d) || 0))
|
|
259
|
+
: 0;
|
|
260
|
+
completionTimes.set(subtaskId, maxDepTime + (subtaskDurations.get(subtaskId) || 0));
|
|
261
|
+
// Add dependent subtasks to queue
|
|
262
|
+
for (const subtask of subtasks) {
|
|
263
|
+
const subtaskDeps = dependencies.get(subtask.id) || [];
|
|
264
|
+
if (subtaskDeps.includes(subtaskId) && !completionTimes.has(subtask.id)) {
|
|
265
|
+
const allDepsComplete = subtaskDeps.every(d => completionTimes.has(d));
|
|
266
|
+
if (allDepsComplete) {
|
|
267
|
+
queue.push(subtask.id);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return Math.max(...Array.from(completionTimes.values()), 0);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Get execution order respecting dependencies
|
|
276
|
+
*/
|
|
277
|
+
getExecutionOrder(plan) {
|
|
278
|
+
const levels = [];
|
|
279
|
+
const completed = new Set();
|
|
280
|
+
const remaining = new Set(plan.subtasks.map(s => s.id));
|
|
281
|
+
while (remaining.size > 0) {
|
|
282
|
+
const currentLevel = [];
|
|
283
|
+
for (const subtaskId of remaining) {
|
|
284
|
+
const deps = plan.dependencies.get(subtaskId) || [];
|
|
285
|
+
const allDepsComplete = deps.every(d => completed.has(d));
|
|
286
|
+
if (allDepsComplete) {
|
|
287
|
+
currentLevel.push(subtaskId);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (currentLevel.length === 0 && remaining.size > 0) {
|
|
291
|
+
// Circular dependency or bug - just add remaining
|
|
292
|
+
currentLevel.push(...remaining);
|
|
293
|
+
remaining.clear();
|
|
294
|
+
}
|
|
295
|
+
for (const id of currentLevel) {
|
|
296
|
+
remaining.delete(id);
|
|
297
|
+
completed.add(id);
|
|
298
|
+
}
|
|
299
|
+
if (currentLevel.length > 0) {
|
|
300
|
+
levels.push(currentLevel);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return levels;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Visualize the plan as text
|
|
307
|
+
*/
|
|
308
|
+
visualizePlan(plan) {
|
|
309
|
+
const lines = [
|
|
310
|
+
`=== Execution Plan: ${plan.id.slice(0, 8)} ===`,
|
|
311
|
+
`Task: ${plan.originalTask.slice(0, 80)}${plan.originalTask.length > 80 ? '...' : ''}`,
|
|
312
|
+
`Estimated Cost: $${plan.estimatedCost.toFixed(4)}`,
|
|
313
|
+
`Estimated Duration: ${Math.round(plan.estimatedDuration / 1000)}s`,
|
|
314
|
+
'',
|
|
315
|
+
'Subtasks:',
|
|
316
|
+
];
|
|
317
|
+
const executionOrder = this.getExecutionOrder(plan);
|
|
318
|
+
let level = 1;
|
|
319
|
+
for (const levelTasks of executionOrder) {
|
|
320
|
+
lines.push(` Level ${level} (parallel):`);
|
|
321
|
+
for (const taskId of levelTasks) {
|
|
322
|
+
const subtask = plan.subtasks.find(s => s.id === taskId);
|
|
323
|
+
const modelId = plan.modelAssignments.get(taskId);
|
|
324
|
+
if (subtask) {
|
|
325
|
+
lines.push(` - [${subtask.complexity.toUpperCase()}] ${subtask.title}`);
|
|
326
|
+
lines.push(` Type: ${subtask.type}, Model: ${modelId || 'default'}`);
|
|
327
|
+
const deps = plan.dependencies.get(taskId);
|
|
328
|
+
if (deps && deps.length > 0) {
|
|
329
|
+
lines.push(` Depends on: ${deps.map(d => plan.subtasks.find(s => s.id === d)?.title || d).join(', ')}`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
level++;
|
|
334
|
+
}
|
|
335
|
+
return lines.join('\n');
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Create a planner instance
|
|
340
|
+
*/
|
|
341
|
+
export function createPlanner(router, config, options) {
|
|
342
|
+
return new TaskPlanner(router, config, options);
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=planner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/models/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Router
|
|
3
|
+
*
|
|
4
|
+
* Routes tasks to appropriate models based on:
|
|
5
|
+
* - Task complexity and type
|
|
6
|
+
* - Routing rules configuration
|
|
7
|
+
* - Cost optimization strategy
|
|
8
|
+
* - Available model capabilities
|
|
9
|
+
*/
|
|
10
|
+
import { ModelConfig, MultiModelConfig, TaskClassificationResult, TaskComplexity, ModelSelection, RoutingRule, ModelRole } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Model Router - routes tasks to appropriate models
|
|
13
|
+
*/
|
|
14
|
+
export declare class ModelRouter {
|
|
15
|
+
private config;
|
|
16
|
+
private models;
|
|
17
|
+
private routingRules;
|
|
18
|
+
private roleAssignments;
|
|
19
|
+
constructor(config: MultiModelConfig);
|
|
20
|
+
private initializeModels;
|
|
21
|
+
private initializeRoles;
|
|
22
|
+
/**
|
|
23
|
+
* Classify a task to determine complexity and type
|
|
24
|
+
*/
|
|
25
|
+
classifyTask(taskDescription: string): TaskClassificationResult;
|
|
26
|
+
/**
|
|
27
|
+
* Select the appropriate model for a task
|
|
28
|
+
*/
|
|
29
|
+
selectModel(complexity: TaskComplexity, taskType: string, keywords: string[]): ModelSelection;
|
|
30
|
+
private buildReasoning;
|
|
31
|
+
/**
|
|
32
|
+
* Estimate cost for a model invocation
|
|
33
|
+
*/
|
|
34
|
+
estimateCost(model: ModelConfig, inputTokens: number, outputTokens: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Get model by ID
|
|
37
|
+
*/
|
|
38
|
+
getModel(modelId: string): ModelConfig | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Get model for a specific role
|
|
41
|
+
*/
|
|
42
|
+
getModelForRole(role: ModelRole): ModelConfig | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Get all configured models
|
|
45
|
+
*/
|
|
46
|
+
getAllModels(): ModelConfig[];
|
|
47
|
+
/**
|
|
48
|
+
* Get routing analysis for debugging
|
|
49
|
+
*/
|
|
50
|
+
analyzeRouting(taskDescription: string): {
|
|
51
|
+
classification: TaskClassificationResult;
|
|
52
|
+
matchedRules: Array<{
|
|
53
|
+
rule: RoutingRule;
|
|
54
|
+
matched: boolean;
|
|
55
|
+
reason: string;
|
|
56
|
+
}>;
|
|
57
|
+
costComparison: Array<{
|
|
58
|
+
model: string;
|
|
59
|
+
cost: number;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a router instance from config
|
|
65
|
+
*/
|
|
66
|
+
export declare function createRouter(config: MultiModelConfig): ModelRouter;
|
|
67
|
+
/**
|
|
68
|
+
* Default router with cost-optimized settings
|
|
69
|
+
*/
|
|
70
|
+
export declare function createCostOptimizedRouter(): ModelRouter;
|
|
71
|
+
/**
|
|
72
|
+
* Default router with performance-first settings
|
|
73
|
+
*/
|
|
74
|
+
export declare function createPerformanceRouter(): ModelRouter;
|
|
75
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/models/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,WAAW,EAEX,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,WAAW,EAEX,SAAS,EACV,MAAM,YAAY,CAAC;AAgCpB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,eAAe,CAAyB;gBAEpC,MAAM,EAAE,gBAAgB;IAgBpC,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,wBAAwB;IAmE/D;;OAEG;IACH,WAAW,CACT,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,cAAc;IA8DjB,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAMnF;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS;IAKzD;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;OAEG;IACH,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG;QACvC,cAAc,EAAE,wBAAwB,CAAC;QACzC,YAAY,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7E,cAAc,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD;CAuDF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAElE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,CAkBvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,WAAW,CAYrD"}
|