@cogitator-ai/self-modifying 17.0.18 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +112 -48
- package/dist/architecture-evolution/capability-analyzer.d.ts.map +1 -1
- package/dist/architecture-evolution/capability-analyzer.js +38 -37
- package/dist/architecture-evolution/capability-analyzer.js.map +1 -1
- package/dist/architecture-evolution/index.d.ts +2 -2
- package/dist/architecture-evolution/index.d.ts.map +1 -1
- package/dist/architecture-evolution/index.js +1 -1
- package/dist/architecture-evolution/index.js.map +1 -1
- package/dist/architecture-evolution/parameter-optimizer.d.ts +5 -4
- package/dist/architecture-evolution/parameter-optimizer.d.ts.map +1 -1
- package/dist/architecture-evolution/parameter-optimizer.js +36 -31
- package/dist/architecture-evolution/parameter-optimizer.js.map +1 -1
- package/dist/architecture-evolution/prompts.d.ts +21 -2
- package/dist/architecture-evolution/prompts.d.ts.map +1 -1
- package/dist/architecture-evolution/prompts.js +150 -36
- package/dist/architecture-evolution/prompts.js.map +1 -1
- package/dist/constraints/modification-validator.d.ts +1 -0
- package/dist/constraints/modification-validator.d.ts.map +1 -1
- package/dist/constraints/modification-validator.js +30 -14
- package/dist/constraints/modification-validator.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/meta-reasoning/meta-reasoner.d.ts +3 -0
- package/dist/meta-reasoning/meta-reasoner.d.ts.map +1 -1
- package/dist/meta-reasoning/meta-reasoner.js +101 -33
- package/dist/meta-reasoning/meta-reasoner.js.map +1 -1
- package/dist/meta-reasoning/prompts.d.ts +10 -14
- package/dist/meta-reasoning/prompts.d.ts.map +1 -1
- package/dist/meta-reasoning/prompts.js +109 -1
- package/dist/meta-reasoning/prompts.js.map +1 -1
- package/dist/self-modifying-agent.d.ts +83 -17
- package/dist/self-modifying-agent.d.ts.map +1 -1
- package/dist/self-modifying-agent.js +557 -444
- package/dist/self-modifying-agent.js.map +1 -1
- package/dist/tool-generation/gap-analyzer.d.ts +0 -1
- package/dist/tool-generation/gap-analyzer.d.ts.map +1 -1
- package/dist/tool-generation/gap-analyzer.js +14 -14
- package/dist/tool-generation/gap-analyzer.js.map +1 -1
- package/dist/tool-generation/index.d.ts +3 -3
- package/dist/tool-generation/index.d.ts.map +1 -1
- package/dist/tool-generation/index.js +2 -2
- package/dist/tool-generation/index.js.map +1 -1
- package/dist/tool-generation/prompts.d.ts +1 -0
- package/dist/tool-generation/prompts.d.ts.map +1 -1
- package/dist/tool-generation/prompts.js +33 -8
- package/dist/tool-generation/prompts.js.map +1 -1
- package/dist/tool-generation/tool-generator.d.ts +5 -5
- package/dist/tool-generation/tool-generator.d.ts.map +1 -1
- package/dist/tool-generation/tool-generator.js +41 -28
- package/dist/tool-generation/tool-generator.js.map +1 -1
- package/dist/tool-generation/tool-sandbox.d.ts +9 -6
- package/dist/tool-generation/tool-sandbox.d.ts.map +1 -1
- package/dist/tool-generation/tool-sandbox.js +257 -157
- package/dist/tool-generation/tool-sandbox.js.map +1 -1
- package/dist/tool-generation/tool-validator.d.ts +3 -8
- package/dist/tool-generation/tool-validator.d.ts.map +1 -1
- package/dist/tool-generation/tool-validator.js +53 -54
- package/dist/tool-generation/tool-validator.js.map +1 -1
- package/dist/utils/llm-helper.d.ts.map +1 -1
- package/dist/utils/llm-helper.js +1 -0
- package/dist/utils/llm-helper.js.map +1 -1
- package/package.json +3 -12
- package/src/__tests__/component-regressions.test.ts +599 -0
- package/src/__tests__/meta-reasoning.test.ts +5 -1
- package/src/__tests__/sandbox-security.test.ts +186 -0
- package/src/__tests__/self-modifying-agent.test.ts +363 -1
- package/src/architecture-evolution/capability-analyzer.ts +56 -40
- package/src/architecture-evolution/index.ts +2 -0
- package/src/architecture-evolution/parameter-optimizer.ts +52 -34
- package/src/architecture-evolution/prompts.ts +179 -41
- package/src/constraints/modification-validator.ts +30 -14
- package/src/index.ts +14 -0
- package/src/meta-reasoning/meta-reasoner.ts +105 -40
- package/src/meta-reasoning/prompts.ts +129 -15
- package/src/self-modifying-agent.ts +764 -489
- package/src/tool-generation/gap-analyzer.ts +19 -18
- package/src/tool-generation/index.ts +13 -3
- package/src/tool-generation/prompts.ts +41 -8
- package/src/tool-generation/tool-generator.ts +59 -33
- package/src/tool-generation/tool-sandbox.ts +306 -175
- package/src/tool-generation/tool-validator.ts +66 -63
- package/src/utils/llm-helper.ts +1 -0
package/README.md
CHANGED
|
@@ -11,18 +11,19 @@ pnpm add @cogitator-ai/self-modifying
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
13
|
```typescript
|
|
14
|
-
import {
|
|
14
|
+
import { Agent, OllamaBackend } from '@cogitator-ai/core';
|
|
15
15
|
import { SelfModifyingAgent } from '@cogitator-ai/self-modifying';
|
|
16
16
|
|
|
17
|
-
const
|
|
17
|
+
const llm = new OllamaBackend({ baseUrl: 'http://localhost:11434' });
|
|
18
18
|
const agent = new Agent({
|
|
19
19
|
name: 'adaptive-assistant',
|
|
20
|
+
model: 'ollama/llama3.2',
|
|
20
21
|
instructions: 'Solve problems adaptively.',
|
|
21
22
|
});
|
|
22
23
|
|
|
23
24
|
const selfModifying = new SelfModifyingAgent({
|
|
24
25
|
agent,
|
|
25
|
-
llm
|
|
26
|
+
llm,
|
|
26
27
|
config: {
|
|
27
28
|
toolGeneration: { enabled: true, autoGenerate: true },
|
|
28
29
|
metaReasoning: { enabled: true },
|
|
@@ -38,6 +39,26 @@ console.log('Tools generated:', result.toolsGenerated.length);
|
|
|
38
39
|
console.log('Adaptations made:', result.adaptationsMade.length);
|
|
39
40
|
```
|
|
40
41
|
|
|
42
|
+
A provider prefix that matches the backend (`ollama/` for `OllamaBackend`) is stripped from the agent model before every call. All nested config sections are partial — omitted fields fall back to defaults.
|
|
43
|
+
|
|
44
|
+
### Agent Options
|
|
45
|
+
|
|
46
|
+
| Option | Description |
|
|
47
|
+
| ------------------------- | ------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| `agent` | The agent to run (model, instructions, tools, `temperature`, `maxTokens`, `maxIterations`) |
|
|
49
|
+
| `llm` | LLM backend used for the agent and for every self-modification step |
|
|
50
|
+
| `config` | Partial `SelfModifyingConfig`; `enabled: false` turns the wrapper into a plain tool-calling agent |
|
|
51
|
+
| `modificationConstraints` | Extra safety / capability / resource / custom constraints merged with the defaults |
|
|
52
|
+
| `availableModels` | Models architecture evolution may switch to; without it the model is never changed |
|
|
53
|
+
|
|
54
|
+
### Run Semantics
|
|
55
|
+
|
|
56
|
+
- Runs are serialized: concurrent `run()` calls on one instance execute one after another.
|
|
57
|
+
- The agent's own `temperature` and `maxTokens` form the baseline configuration.
|
|
58
|
+
- Tool calls are validated against each tool's Zod schema before execution; `toolStrategy: 'parallel'` (or `'adaptive'` with distinct tools) runs them concurrently.
|
|
59
|
+
- `reflectionDepth > 0` adds self-review passes over the final answer.
|
|
60
|
+
- A step is complete when the model returns a non-empty answer that was not truncated. Meta-reasoning only intervenes (and the step is retried, up to `maxAdaptations` times) when a step is incomplete.
|
|
61
|
+
|
|
41
62
|
## Features
|
|
42
63
|
|
|
43
64
|
- **Tool Self-Generation** — Detects missing capabilities and synthesizes new tools at runtime
|
|
@@ -56,9 +77,10 @@ When the agent encounters a task requiring capabilities it doesn't have, it can
|
|
|
56
77
|
### How It Works
|
|
57
78
|
|
|
58
79
|
1. **Gap Analysis** — LLM compares user intent with available tools, identifies missing capabilities
|
|
59
|
-
2. **Code Synthesis** — Generates
|
|
60
|
-
3. **Validation** —
|
|
61
|
-
4. **
|
|
80
|
+
2. **Code Synthesis** — Generates a plain JavaScript `execute(params)` implementation
|
|
81
|
+
3. **Validation** — Static security scanning, generated test cases in the sandbox, optional LLM review
|
|
82
|
+
4. **Constraint Check** — The tool must pass the modification constraints (sandboxing, size, depth)
|
|
83
|
+
5. **Registration** — Accepted tools are stored as `active`, used in the current run and loaded into every later run (`getGeneratedTools()` lists them)
|
|
62
84
|
|
|
63
85
|
### Configuration
|
|
64
86
|
|
|
@@ -136,6 +158,36 @@ const tools = await store.list({ status: 'active' });
|
|
|
136
158
|
const similar = await store.findSimilar('calculate interest');
|
|
137
159
|
```
|
|
138
160
|
|
|
161
|
+
### Sandbox
|
|
162
|
+
|
|
163
|
+
Generated code runs in a `worker_threads` worker inside a fresh `vm` context that contains no host objects: no `process`, `require`, timers or host constructors, and string code generation (`eval`, `Function`) is disabled. Parameters and results cross the boundary as JSON, the worker has an empty environment, and execution is bounded by `maxExecutionTime` and `maxMemory`.
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
import { ToolSandbox } from '@cogitator-ai/self-modifying';
|
|
167
|
+
|
|
168
|
+
const sandbox = new ToolSandbox({ maxExecutionTime: 2000 });
|
|
169
|
+
|
|
170
|
+
const result = await sandbox.execute(tool, { a: 1, b: 2 });
|
|
171
|
+
|
|
172
|
+
const report = await sandbox.testWithCases(tool, [
|
|
173
|
+
{ input: { a: 1, b: 2 }, expectedOutput: 3 },
|
|
174
|
+
{ input: {}, shouldThrow: true },
|
|
175
|
+
{ input: { a: 0, b: 0 }, allowThrow: true },
|
|
176
|
+
]);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
`shouldThrow` passes only when the tool itself throws; `allowThrow` accepts either a result or a thrown error, but never a timeout or crash.
|
|
180
|
+
|
|
181
|
+
### Quick Generation
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
const tool = await toolGenerator.generateQuick('Double a number', 'double_number', {
|
|
185
|
+
value: { type: 'number' },
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
The parameters are enforced in the generation prompt and during validation; `null` is returned when no valid tool could be produced.
|
|
190
|
+
|
|
139
191
|
---
|
|
140
192
|
|
|
141
193
|
## Meta-Reasoning
|
|
@@ -195,10 +247,11 @@ const selfModifying = new SelfModifyingAgent({
|
|
|
195
247
|
|
|
196
248
|
### Meta-Reasoning Process
|
|
197
249
|
|
|
198
|
-
1. **Observation** —
|
|
199
|
-
2. **
|
|
200
|
-
3. **
|
|
201
|
-
4. **
|
|
250
|
+
1. **Observation** — After an incomplete step, collect metrics (tool success, confidence, tokens, time)
|
|
251
|
+
2. **Trigger** — Only triggers listed in `triggers` fire (`confidence_drop` ≙ `on_low_confidence`, `progress_stall` ≙ `on_stagnation`, `tool_call_failed` ≙ `on_failure`); explicit requests always do
|
|
252
|
+
3. **Assessment** — LLM analyzes if reasoning is on-track; its JSON is validated and invalid values are dropped
|
|
253
|
+
4. **Adaptation** — Switch mode, adjust `temperature`/`depth`, or inject extra context; the next attempt uses it
|
|
254
|
+
5. **Rollback** — With `rollbackOnDecline`, an adaptation that did not improve the next attempt is reverted
|
|
202
255
|
|
|
203
256
|
### Direct MetaReasoner Usage
|
|
204
257
|
|
|
@@ -224,7 +277,7 @@ const observation = metaReasoner.observe(
|
|
|
224
277
|
tokensUsed: 1500,
|
|
225
278
|
timeElapsed: 5000,
|
|
226
279
|
iterationsRemaining: 7,
|
|
227
|
-
budgetRemaining:
|
|
280
|
+
budgetRemaining: 0.85, // fraction of the budget left
|
|
228
281
|
},
|
|
229
282
|
insights
|
|
230
283
|
);
|
|
@@ -250,15 +303,15 @@ const rollback = metaReasoner.rollback(runId);
|
|
|
250
303
|
|
|
251
304
|
## Architecture Evolution
|
|
252
305
|
|
|
253
|
-
Optimizes agent parameters (
|
|
306
|
+
Optimizes agent parameters (temperature, max tokens, tool strategy, reflection depth and — when `availableModels` is set — the model) using multi-armed bandit algorithms. Every run records its outcome (success, latency, tokens, answer confidence) for the configuration that was actually used, so the bandit learns across runs. LLM-proposed candidates are sanitized (ranges clamped, unknown models dropped) and candidates the LLM marks as high-risk are discarded.
|
|
254
307
|
|
|
255
308
|
### Strategies
|
|
256
309
|
|
|
257
|
-
| Strategy
|
|
258
|
-
|
|
|
259
|
-
| `ucb`
|
|
260
|
-
| `
|
|
261
|
-
| `epsilon_greedy`
|
|
310
|
+
| Strategy | Description |
|
|
311
|
+
| ------------------- | --------------------------------------------- |
|
|
312
|
+
| `ucb` | Upper Confidence Bound — balanced exploration |
|
|
313
|
+
| `thompson_sampling` | Thompson Sampling — probabilistic selection |
|
|
314
|
+
| `epsilon_greedy` | Epsilon-Greedy — random exploration |
|
|
262
315
|
|
|
263
316
|
### Configuration
|
|
264
317
|
|
|
@@ -274,14 +327,14 @@ const selfModifying = new SelfModifyingAgent({
|
|
|
274
327
|
explorationConstant: 2, // Higher = more exploration
|
|
275
328
|
},
|
|
276
329
|
// Or Thompson sampling:
|
|
277
|
-
// strategy: { type: '
|
|
330
|
+
// strategy: { type: 'thompson_sampling' },
|
|
278
331
|
// Or epsilon-greedy:
|
|
279
|
-
// strategy: { type: 'epsilon_greedy', epsilon: 0.1
|
|
332
|
+
// strategy: { type: 'epsilon_greedy', epsilon: 0.1 },
|
|
280
333
|
|
|
281
334
|
maxCandidates: 10, // Max configs to track
|
|
282
|
-
evaluationWindow: 10, //
|
|
283
|
-
minEvaluationsBeforeEvolution: 3, // Min
|
|
284
|
-
adaptationThreshold: 0.1, //
|
|
335
|
+
evaluationWindow: 10, // Evaluations per generation and for convergence metrics
|
|
336
|
+
minEvaluationsBeforeEvolution: 3, // Min evaluations per candidate before evolving
|
|
337
|
+
adaptationThreshold: 0.1, // Max score gap to the best candidate that is still adopted
|
|
285
338
|
},
|
|
286
339
|
},
|
|
287
340
|
});
|
|
@@ -294,26 +347,33 @@ import { ParameterOptimizer } from '@cogitator-ai/self-modifying';
|
|
|
294
347
|
|
|
295
348
|
const optimizer = new ParameterOptimizer({
|
|
296
349
|
llm,
|
|
350
|
+
model: 'llama3.2',
|
|
297
351
|
config: evolutionConfig,
|
|
298
352
|
baseConfig: {
|
|
299
|
-
model: '
|
|
353
|
+
model: 'llama3.2',
|
|
300
354
|
temperature: 0.7,
|
|
301
355
|
maxTokens: 4096,
|
|
302
356
|
toolStrategy: 'sequential',
|
|
303
|
-
reflectionDepth:
|
|
357
|
+
reflectionDepth: 0,
|
|
304
358
|
},
|
|
359
|
+
availableModels: ['llama3.2', 'qwen2.5:7b'],
|
|
305
360
|
});
|
|
306
361
|
|
|
307
362
|
// Optimize for a task
|
|
308
363
|
const result = await optimizer.optimize('Complex reasoning task');
|
|
309
364
|
|
|
310
365
|
console.log('Should adopt:', result.shouldAdopt);
|
|
311
|
-
console.log('Confidence:', result.confidence);
|
|
366
|
+
console.log('Confidence:', result.confidence); // mean reward of the candidate, 0.5 if unexplored
|
|
312
367
|
console.log('Recommended config:', result.recommendedConfig);
|
|
313
|
-
console.log('
|
|
368
|
+
console.log('Task profile:', result.taskProfile);
|
|
314
369
|
|
|
315
370
|
// Record outcome for learning
|
|
316
|
-
optimizer.recordOutcome(result.candidate!.id,
|
|
371
|
+
await optimizer.recordOutcome(result.candidate!.id, result.taskProfile, {
|
|
372
|
+
successRate: 1,
|
|
373
|
+
latency: 1200,
|
|
374
|
+
tokenUsage: 850,
|
|
375
|
+
qualityScore: 0.9,
|
|
376
|
+
});
|
|
317
377
|
```
|
|
318
378
|
|
|
319
379
|
### Capability Analyzer
|
|
@@ -326,7 +386,7 @@ const analyzer = new CapabilityAnalyzer({
|
|
|
326
386
|
enableLLMAnalysis: true,
|
|
327
387
|
});
|
|
328
388
|
|
|
329
|
-
const profile = await analyzer.
|
|
389
|
+
const profile = await analyzer.analyzeTask('Build a REST API with authentication');
|
|
330
390
|
|
|
331
391
|
console.log('Complexity:', profile.complexity); // 'complex'
|
|
332
392
|
console.log('Domain:', profile.domain); // 'coding'
|
|
@@ -350,22 +410,20 @@ import {
|
|
|
350
410
|
DEFAULT_RESOURCE_CONSTRAINTS,
|
|
351
411
|
} from '@cogitator-ai/self-modifying';
|
|
352
412
|
|
|
353
|
-
// Safety
|
|
354
|
-
// - no_arbitrary_code:
|
|
355
|
-
// - max_tool_complexity:
|
|
356
|
-
// - no_self_modification_loop:
|
|
413
|
+
// Safety (tool_generation / tool_creation requests only, via `appliesTo`):
|
|
414
|
+
// - no_arbitrary_code: sandboxExecution = true
|
|
415
|
+
// - max_tool_complexity: linesOfCode < 100
|
|
416
|
+
// - no_self_modification_loop: modificationDepth < 3
|
|
357
417
|
|
|
358
|
-
// Capability
|
|
359
|
-
// -
|
|
360
|
-
// - max_tool_count: At most 20 tools
|
|
361
|
-
// - required_capabilities: Core capabilities preserved
|
|
418
|
+
// Capability (tool requests):
|
|
419
|
+
// - allowed_tool_categories: math, text, utility, data allowed; system, network, file forbidden; complexity <= 100
|
|
362
420
|
|
|
363
|
-
// Resource:
|
|
364
|
-
// -
|
|
365
|
-
// - max_time_per_run: Time limit
|
|
366
|
-
// - max_cost_per_run: Cost limit
|
|
421
|
+
// Resource:
|
|
422
|
+
// - default_resource_limits: maxTokensPerRun 100000, maxCostPerRun 1.0, maxToolsActive 20
|
|
367
423
|
```
|
|
368
424
|
|
|
425
|
+
Safety rules are expressions over the request `payload` (`=`, `!=`, `<`, `<=`, `>`, `>=`, `AND`, `OR`, numbers, `true`/`false`/`null` and quoted strings). Set `appliesTo` to restrict a constraint to specific modification types; without it the constraint applies to every request.
|
|
426
|
+
|
|
369
427
|
### Modification Validator
|
|
370
428
|
|
|
371
429
|
```typescript
|
|
@@ -380,16 +438,15 @@ const validator = new ModificationValidator({
|
|
|
380
438
|
{
|
|
381
439
|
id: 'no-external-apis',
|
|
382
440
|
name: 'No External APIs',
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
severity: 'error',
|
|
441
|
+
description: 'External API calls not allowed',
|
|
442
|
+
predicate: (request) => !JSON.stringify(request.changes).includes('fetch'),
|
|
386
443
|
},
|
|
387
444
|
],
|
|
388
445
|
},
|
|
389
446
|
});
|
|
390
447
|
|
|
391
448
|
const result = await validator.validate({
|
|
392
|
-
type: '
|
|
449
|
+
type: 'tool_creation',
|
|
393
450
|
target: 'tools',
|
|
394
451
|
changes: { name: 'new-tool', code: '...' },
|
|
395
452
|
reason: 'User requested capability',
|
|
@@ -428,14 +485,14 @@ if (restored) {
|
|
|
428
485
|
}
|
|
429
486
|
|
|
430
487
|
// List checkpoints
|
|
431
|
-
const checkpoints = rollbackManager.listCheckpoints();
|
|
488
|
+
const checkpoints = await rollbackManager.listCheckpoints(agentName);
|
|
432
489
|
```
|
|
433
490
|
|
|
434
491
|
---
|
|
435
492
|
|
|
436
493
|
## Events
|
|
437
494
|
|
|
438
|
-
Subscribe to self-modification events for observability.
|
|
495
|
+
Subscribe to self-modification events for observability. Handlers are typed per event (`SelfModifyingEventDataMap`) and `on()` returns an unsubscribe function.
|
|
439
496
|
|
|
440
497
|
```typescript
|
|
441
498
|
const selfModifying = new SelfModifyingAgent({ agent, llm, config });
|
|
@@ -477,9 +534,11 @@ selfModifying.on('run_started', (e) => {
|
|
|
477
534
|
console.log('Run started:', e.runId);
|
|
478
535
|
});
|
|
479
536
|
|
|
480
|
-
selfModifying.on('run_completed', (e) => {
|
|
537
|
+
const unsubscribe = selfModifying.on('run_completed', (e) => {
|
|
481
538
|
console.log('Run completed:', e.data.success);
|
|
482
539
|
});
|
|
540
|
+
|
|
541
|
+
unsubscribe();
|
|
483
542
|
```
|
|
484
543
|
|
|
485
544
|
### Event Types
|
|
@@ -641,6 +700,11 @@ import type {
|
|
|
641
700
|
SelfModifyingEventType,
|
|
642
701
|
SelfModifyingEventHandler,
|
|
643
702
|
} from '@cogitator-ai/types';
|
|
703
|
+
import type {
|
|
704
|
+
SelfModifyingAgentConfig,
|
|
705
|
+
SelfModifyingEventDataMap,
|
|
706
|
+
TypedSelfModifyingEvent,
|
|
707
|
+
} from '@cogitator-ai/self-modifying';
|
|
644
708
|
```
|
|
645
709
|
|
|
646
710
|
---
|
|
@@ -705,7 +769,7 @@ const selfModifying = new SelfModifyingAgent({
|
|
|
705
769
|
},
|
|
706
770
|
architectureEvolution: {
|
|
707
771
|
enabled: true,
|
|
708
|
-
strategy: { type: '
|
|
772
|
+
strategy: { type: 'thompson_sampling' },
|
|
709
773
|
},
|
|
710
774
|
},
|
|
711
775
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-analyzer.d.ts","sourceRoot":"","sources":["../../src/architecture-evolution/capability-analyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capability-analyzer.d.ts","sourceRoot":"","sources":["../../src/architecture-evolution/capability-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAkBzE,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwHD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkE;IAC/F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,OAAO,GAAE,yBAA8B;IAM7C,WAAW,CACf,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,WAAW,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACzD,GACA,OAAO,CAAC,WAAW,CAAC;YA0BT,cAAc;IAyC5B,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,uBAAuB;IA6C/B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,2BAA2B;IAyBnC,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,aAAa;IAiBrB,UAAU,IAAI,IAAI;CAGnB"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
1
2
|
import { buildTaskProfilePrompt, parseTaskProfileResponse } from './prompts.js';
|
|
3
|
+
import { llmChat } from '../utils/llm-helper.js';
|
|
4
|
+
function escapeRegExp(value) {
|
|
5
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
6
|
+
}
|
|
7
|
+
function containsPhrase(text, phrase) {
|
|
8
|
+
return new RegExp(`(?:^|[^a-z0-9])${escapeRegExp(phrase)}(?:s|es|ed|ing)?(?:$|[^a-z0-9])`).test(text);
|
|
9
|
+
}
|
|
10
|
+
function tokenize(text) {
|
|
11
|
+
return text.split(/[^a-z0-9-]+/).filter(Boolean);
|
|
12
|
+
}
|
|
2
13
|
const DOMAIN_KEYWORDS = {
|
|
3
14
|
coding: [
|
|
4
15
|
'code',
|
|
@@ -119,7 +130,7 @@ export class CapabilityAnalyzer {
|
|
|
119
130
|
this.model = options.model ?? 'default';
|
|
120
131
|
}
|
|
121
132
|
async analyzeTask(taskDescription, context) {
|
|
122
|
-
const cacheKey = this.buildCacheKey(taskDescription);
|
|
133
|
+
const cacheKey = this.buildCacheKey(taskDescription, context);
|
|
123
134
|
const cached = this.profileCache.get(cacheKey);
|
|
124
135
|
if (cached && Date.now() - cached.timestamp < this.cacheTTL) {
|
|
125
136
|
return cached.profile;
|
|
@@ -149,29 +160,14 @@ export class CapabilityAnalyzer {
|
|
|
149
160
|
previousTasks: context?.previousTasks,
|
|
150
161
|
constraints: context?.constraints,
|
|
151
162
|
});
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
],
|
|
161
|
-
temperature: 0.2,
|
|
162
|
-
})
|
|
163
|
-
: await llm.chat({
|
|
164
|
-
model: this.model,
|
|
165
|
-
messages: [
|
|
166
|
-
{
|
|
167
|
-
role: 'system',
|
|
168
|
-
content: 'You are a task analysis expert. Analyze tasks and determine their characteristics.',
|
|
169
|
-
},
|
|
170
|
-
{ role: 'user', content: prompt },
|
|
171
|
-
],
|
|
172
|
-
temperature: 0.2,
|
|
173
|
-
});
|
|
174
|
-
const parsed = parseTaskProfileResponse(response.content);
|
|
163
|
+
const content = await llmChat(llm, [
|
|
164
|
+
{
|
|
165
|
+
role: 'system',
|
|
166
|
+
content: 'You are a task analysis expert. Analyze tasks and determine their characteristics.',
|
|
167
|
+
},
|
|
168
|
+
{ role: 'user', content: prompt },
|
|
169
|
+
], { model: this.model, temperature: 0.2 });
|
|
170
|
+
const parsed = parseTaskProfileResponse(content);
|
|
175
171
|
if (parsed) {
|
|
176
172
|
return parsed;
|
|
177
173
|
}
|
|
@@ -181,8 +177,7 @@ export class CapabilityAnalyzer {
|
|
|
181
177
|
}
|
|
182
178
|
analyzeHeuristically(taskDescription, availableTools) {
|
|
183
179
|
const lowerTask = taskDescription.toLowerCase();
|
|
184
|
-
const
|
|
185
|
-
const wordCount = words.length;
|
|
180
|
+
const wordCount = tokenize(lowerTask).length;
|
|
186
181
|
const domain = this.detectDomain(lowerTask);
|
|
187
182
|
const complexity = this.detectComplexity(lowerTask, wordCount);
|
|
188
183
|
const toolAnalysis = this.analyzeToolRequirements(lowerTask, availableTools);
|
|
@@ -210,7 +205,7 @@ export class CapabilityAnalyzer {
|
|
|
210
205
|
};
|
|
211
206
|
for (const [domain, keywords] of Object.entries(DOMAIN_KEYWORDS)) {
|
|
212
207
|
for (const keyword of keywords) {
|
|
213
|
-
if (task
|
|
208
|
+
if (containsPhrase(task, keyword)) {
|
|
214
209
|
scores[domain] += keyword.length > 5 ? 2 : 1;
|
|
215
210
|
}
|
|
216
211
|
}
|
|
@@ -221,7 +216,7 @@ export class CapabilityAnalyzer {
|
|
|
221
216
|
return maxDomain[0];
|
|
222
217
|
}
|
|
223
218
|
detectComplexity(task, wordCount) {
|
|
224
|
-
const taskWords = new Set(task
|
|
219
|
+
const taskWords = new Set(tokenize(task));
|
|
225
220
|
for (const [level, indicators] of Object.entries(COMPLEXITY_INDICATORS).reverse()) {
|
|
226
221
|
for (const indicator of indicators) {
|
|
227
222
|
if (taskWords.has(indicator)) {
|
|
@@ -255,13 +250,13 @@ export class CapabilityAnalyzer {
|
|
|
255
250
|
];
|
|
256
251
|
let toolMentions = 0;
|
|
257
252
|
for (const indicator of toolIndicators) {
|
|
258
|
-
if (task
|
|
253
|
+
if (containsPhrase(task, indicator)) {
|
|
259
254
|
toolMentions++;
|
|
260
255
|
}
|
|
261
256
|
}
|
|
262
257
|
if (availableTools?.length) {
|
|
263
258
|
for (const tool of availableTools) {
|
|
264
|
-
if (task
|
|
259
|
+
if (containsPhrase(task, tool.name.toLowerCase())) {
|
|
265
260
|
toolMentions += 2;
|
|
266
261
|
}
|
|
267
262
|
}
|
|
@@ -313,7 +308,7 @@ export class CapabilityAnalyzer {
|
|
|
313
308
|
estimateAccuracyRequirement(domain, task) {
|
|
314
309
|
const criticalIndicators = ['critical', 'exact', 'precise', 'must be correct', 'no errors'];
|
|
315
310
|
for (const indicator of criticalIndicators) {
|
|
316
|
-
if (task
|
|
311
|
+
if (containsPhrase(task, indicator)) {
|
|
317
312
|
return 'critical';
|
|
318
313
|
}
|
|
319
314
|
}
|
|
@@ -322,7 +317,7 @@ export class CapabilityAnalyzer {
|
|
|
322
317
|
}
|
|
323
318
|
const approximateIndicators = ['rough', 'approximate', 'estimate', 'about', 'roughly'];
|
|
324
319
|
for (const indicator of approximateIndicators) {
|
|
325
|
-
if (task
|
|
320
|
+
if (containsPhrase(task, indicator)) {
|
|
326
321
|
return 'approximate';
|
|
327
322
|
}
|
|
328
323
|
}
|
|
@@ -333,21 +328,27 @@ export class CapabilityAnalyzer {
|
|
|
333
328
|
const moderateIndicators = ['soon', 'quickly', 'fast', 'today'];
|
|
334
329
|
const relaxedIndicators = ['when possible', 'eventually', 'no rush'];
|
|
335
330
|
for (const indicator of strictIndicators) {
|
|
336
|
-
if (task
|
|
331
|
+
if (containsPhrase(task, indicator))
|
|
337
332
|
return 'strict';
|
|
338
333
|
}
|
|
339
334
|
for (const indicator of moderateIndicators) {
|
|
340
|
-
if (task
|
|
335
|
+
if (containsPhrase(task, indicator))
|
|
341
336
|
return 'moderate';
|
|
342
337
|
}
|
|
343
338
|
for (const indicator of relaxedIndicators) {
|
|
344
|
-
if (task
|
|
339
|
+
if (containsPhrase(task, indicator))
|
|
345
340
|
return 'relaxed';
|
|
346
341
|
}
|
|
347
342
|
return 'none';
|
|
348
343
|
}
|
|
349
|
-
buildCacheKey(task) {
|
|
350
|
-
|
|
344
|
+
buildCacheKey(task, context) {
|
|
345
|
+
const raw = JSON.stringify([
|
|
346
|
+
task.toLowerCase().replace(/\s+/g, ' ').trim(),
|
|
347
|
+
(context?.availableTools ?? []).map((t) => t.name).sort(),
|
|
348
|
+
context?.previousTasks ?? [],
|
|
349
|
+
context?.constraints ?? {},
|
|
350
|
+
]);
|
|
351
|
+
return createHash('sha256').update(raw).digest('hex');
|
|
351
352
|
}
|
|
352
353
|
clearCache() {
|
|
353
354
|
this.profileCache.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-analyzer.js","sourceRoot":"","sources":["../../src/architecture-evolution/capability-analyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capability-analyzer.js","sourceRoot":"","sources":["../../src/architecture-evolution/capability-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CapabilityAnalyzer, type CapabilityAnalyzerOptions } from './capability-analyzer.js';
|
|
2
2
|
export { EvolutionStrategy, type EvolutionStrategyOptions, type SelectionResult, } from './evolution-strategy.js';
|
|
3
|
-
export { ParameterOptimizer, type ParameterOptimizerOptions, type OptimizationResult, } from './parameter-optimizer.js';
|
|
4
|
-
export { buildTaskProfilePrompt, buildCandidateGenerationPrompt, buildPerformanceAnalysisPrompt, parseTaskProfileResponse, parseCandidateGenerationResponse, parsePerformanceAnalysisResponse, ARCHITECTURE_ANALYSIS_SYSTEM_PROMPT, } from './prompts.js';
|
|
3
|
+
export { ParameterOptimizer, type ParameterOptimizerOptions, type OptimizationResult, type HistoricalRecord, } from './parameter-optimizer.js';
|
|
4
|
+
export { buildTaskProfilePrompt, buildCandidateGenerationPrompt, buildPerformanceAnalysisPrompt, parseTaskProfileResponse, parseCandidateGenerationResponse, parsePerformanceAnalysisResponse, sanitizeCandidateConfig, ARCHITECTURE_ANALYSIS_SYSTEM_PROMPT, } from './prompts.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/architecture-evolution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAE3F,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/architecture-evolution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAE3F,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,EAC9B,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,mCAAmC,GACpC,MAAM,WAAW,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CapabilityAnalyzer } from './capability-analyzer.js';
|
|
2
2
|
export { EvolutionStrategy, } from './evolution-strategy.js';
|
|
3
3
|
export { ParameterOptimizer, } from './parameter-optimizer.js';
|
|
4
|
-
export { buildTaskProfilePrompt, buildCandidateGenerationPrompt, buildPerformanceAnalysisPrompt, parseTaskProfileResponse, parseCandidateGenerationResponse, parsePerformanceAnalysisResponse, ARCHITECTURE_ANALYSIS_SYSTEM_PROMPT, } from './prompts.js';
|
|
4
|
+
export { buildTaskProfilePrompt, buildCandidateGenerationPrompt, buildPerformanceAnalysisPrompt, parseTaskProfileResponse, parseCandidateGenerationResponse, parsePerformanceAnalysisResponse, sanitizeCandidateConfig, ARCHITECTURE_ANALYSIS_SYSTEM_PROMPT, } from './prompts.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/architecture-evolution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkC,MAAM,uBAAuB,CAAC;AAE3F,OAAO,EACL,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/architecture-evolution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkC,MAAM,uBAAuB,CAAC;AAE3F,OAAO,EACL,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,GAInB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,EAC9B,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,mCAAmC,GACpC,MAAM,WAAW,CAAC"}
|
|
@@ -4,16 +4,18 @@ export interface ParameterOptimizerOptions {
|
|
|
4
4
|
config: ArchitectureEvolutionConfig;
|
|
5
5
|
baseConfig: ArchitectureConfig;
|
|
6
6
|
model?: string;
|
|
7
|
+
availableModels?: string[];
|
|
7
8
|
}
|
|
8
9
|
export interface OptimizationResult {
|
|
9
10
|
recommendedConfig: ArchitectureConfig;
|
|
11
|
+
taskProfile: TaskProfile;
|
|
10
12
|
candidate: EvolutionCandidate | null;
|
|
11
13
|
metrics: EvolutionMetrics;
|
|
12
14
|
shouldAdopt: boolean;
|
|
13
15
|
confidence: number;
|
|
14
16
|
reasoning: string;
|
|
15
17
|
}
|
|
16
|
-
interface HistoricalRecord {
|
|
18
|
+
export interface HistoricalRecord {
|
|
17
19
|
taskProfile: TaskProfile;
|
|
18
20
|
config: Partial<ArchitectureConfig>;
|
|
19
21
|
score: number;
|
|
@@ -25,6 +27,7 @@ export declare class ParameterOptimizer {
|
|
|
25
27
|
private readonly config;
|
|
26
28
|
private readonly model;
|
|
27
29
|
private readonly baseConfig;
|
|
30
|
+
private readonly availableModels;
|
|
28
31
|
private readonly capabilityAnalyzer;
|
|
29
32
|
private readonly evolutionStrategy;
|
|
30
33
|
private candidates;
|
|
@@ -48,7 +51,7 @@ export declare class ParameterOptimizer {
|
|
|
48
51
|
private crossover;
|
|
49
52
|
private calculateReward;
|
|
50
53
|
private shouldEvolve;
|
|
51
|
-
private
|
|
54
|
+
private getEvaluationWindow;
|
|
52
55
|
private getRelevantHistory;
|
|
53
56
|
private mergeConfigs;
|
|
54
57
|
private calculateMetrics;
|
|
@@ -61,10 +64,8 @@ export declare class ParameterOptimizer {
|
|
|
61
64
|
confidence: number;
|
|
62
65
|
analysis: string;
|
|
63
66
|
} | null>;
|
|
64
|
-
private callLLM;
|
|
65
67
|
getCandidates(): EvolutionCandidate[];
|
|
66
68
|
getHistory(): HistoricalRecord[];
|
|
67
69
|
reset(): void;
|
|
68
70
|
}
|
|
69
|
-
export {};
|
|
70
71
|
//# sourceMappingURL=parameter-optimizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-optimizer.d.ts","sourceRoot":"","sources":["../../src/architecture-evolution/parameter-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter-optimizer.d.ts","sourceRoot":"","sources":["../../src/architecture-evolution/parameter-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAc7B,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,2BAA2B,CAAC;IACpC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;gBAE1B,OAAO,EAAE,yBAAyB;IAmBxC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkC9D,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC,IAAI,CAAC;YA6BF,yBAAyB;IAsCvC,OAAO,CAAC,uBAAuB;YAajB,MAAM;YA8BN,iBAAiB;IAqC/B,OAAO,CAAC,YAAY;IAgCpB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,iBAAiB;IAOnB,kBAAkB,IAAI,OAAO,CAAC;QAClC,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;IA6CT,aAAa,IAAI,kBAAkB,EAAE;IAIrC,UAAU,IAAI,gBAAgB,EAAE;IAIhC,KAAK,IAAI,IAAI;CAOd"}
|