@cogitator-ai/self-modifying 17.0.18 → 19.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.
Files changed (84) hide show
  1. package/README.md +114 -50
  2. package/dist/architecture-evolution/capability-analyzer.d.ts.map +1 -1
  3. package/dist/architecture-evolution/capability-analyzer.js +38 -37
  4. package/dist/architecture-evolution/capability-analyzer.js.map +1 -1
  5. package/dist/architecture-evolution/index.d.ts +2 -2
  6. package/dist/architecture-evolution/index.d.ts.map +1 -1
  7. package/dist/architecture-evolution/index.js +1 -1
  8. package/dist/architecture-evolution/index.js.map +1 -1
  9. package/dist/architecture-evolution/parameter-optimizer.d.ts +5 -4
  10. package/dist/architecture-evolution/parameter-optimizer.d.ts.map +1 -1
  11. package/dist/architecture-evolution/parameter-optimizer.js +36 -31
  12. package/dist/architecture-evolution/parameter-optimizer.js.map +1 -1
  13. package/dist/architecture-evolution/prompts.d.ts +21 -2
  14. package/dist/architecture-evolution/prompts.d.ts.map +1 -1
  15. package/dist/architecture-evolution/prompts.js +150 -36
  16. package/dist/architecture-evolution/prompts.js.map +1 -1
  17. package/dist/constraints/modification-validator.d.ts +1 -0
  18. package/dist/constraints/modification-validator.d.ts.map +1 -1
  19. package/dist/constraints/modification-validator.js +30 -14
  20. package/dist/constraints/modification-validator.js.map +1 -1
  21. package/dist/index.d.ts +4 -4
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/meta-reasoning/meta-reasoner.d.ts +3 -0
  26. package/dist/meta-reasoning/meta-reasoner.d.ts.map +1 -1
  27. package/dist/meta-reasoning/meta-reasoner.js +101 -33
  28. package/dist/meta-reasoning/meta-reasoner.js.map +1 -1
  29. package/dist/meta-reasoning/prompts.d.ts +10 -14
  30. package/dist/meta-reasoning/prompts.d.ts.map +1 -1
  31. package/dist/meta-reasoning/prompts.js +109 -1
  32. package/dist/meta-reasoning/prompts.js.map +1 -1
  33. package/dist/self-modifying-agent.d.ts +83 -17
  34. package/dist/self-modifying-agent.d.ts.map +1 -1
  35. package/dist/self-modifying-agent.js +557 -444
  36. package/dist/self-modifying-agent.js.map +1 -1
  37. package/dist/tool-generation/gap-analyzer.d.ts +0 -1
  38. package/dist/tool-generation/gap-analyzer.d.ts.map +1 -1
  39. package/dist/tool-generation/gap-analyzer.js +14 -14
  40. package/dist/tool-generation/gap-analyzer.js.map +1 -1
  41. package/dist/tool-generation/index.d.ts +3 -3
  42. package/dist/tool-generation/index.d.ts.map +1 -1
  43. package/dist/tool-generation/index.js +2 -2
  44. package/dist/tool-generation/index.js.map +1 -1
  45. package/dist/tool-generation/prompts.d.ts +1 -0
  46. package/dist/tool-generation/prompts.d.ts.map +1 -1
  47. package/dist/tool-generation/prompts.js +33 -8
  48. package/dist/tool-generation/prompts.js.map +1 -1
  49. package/dist/tool-generation/tool-generator.d.ts +5 -5
  50. package/dist/tool-generation/tool-generator.d.ts.map +1 -1
  51. package/dist/tool-generation/tool-generator.js +41 -28
  52. package/dist/tool-generation/tool-generator.js.map +1 -1
  53. package/dist/tool-generation/tool-sandbox.d.ts +9 -6
  54. package/dist/tool-generation/tool-sandbox.d.ts.map +1 -1
  55. package/dist/tool-generation/tool-sandbox.js +257 -157
  56. package/dist/tool-generation/tool-sandbox.js.map +1 -1
  57. package/dist/tool-generation/tool-validator.d.ts +3 -8
  58. package/dist/tool-generation/tool-validator.d.ts.map +1 -1
  59. package/dist/tool-generation/tool-validator.js +53 -54
  60. package/dist/tool-generation/tool-validator.js.map +1 -1
  61. package/dist/utils/llm-helper.d.ts.map +1 -1
  62. package/dist/utils/llm-helper.js +1 -0
  63. package/dist/utils/llm-helper.js.map +1 -1
  64. package/package.json +11 -18
  65. package/src/__tests__/component-regressions.test.ts +599 -0
  66. package/src/__tests__/meta-reasoning.test.ts +5 -1
  67. package/src/__tests__/sandbox-security.test.ts +186 -0
  68. package/src/__tests__/self-modifying-agent.test.ts +363 -1
  69. package/src/architecture-evolution/capability-analyzer.ts +56 -40
  70. package/src/architecture-evolution/index.ts +2 -0
  71. package/src/architecture-evolution/parameter-optimizer.ts +52 -34
  72. package/src/architecture-evolution/prompts.ts +179 -41
  73. package/src/constraints/modification-validator.ts +30 -14
  74. package/src/index.ts +14 -0
  75. package/src/meta-reasoning/meta-reasoner.ts +105 -40
  76. package/src/meta-reasoning/prompts.ts +129 -15
  77. package/src/self-modifying-agent.ts +764 -489
  78. package/src/tool-generation/gap-analyzer.ts +19 -18
  79. package/src/tool-generation/index.ts +13 -3
  80. package/src/tool-generation/prompts.ts +41 -8
  81. package/src/tool-generation/tool-generator.ts +59 -33
  82. package/src/tool-generation/tool-sandbox.ts +306 -175
  83. package/src/tool-generation/tool-validator.ts +66 -63
  84. 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 { Cogitator, Agent } from '@cogitator-ai/core';
14
+ import { Agent, OllamaBackend } from '@cogitator-ai/core';
15
15
  import { SelfModifyingAgent } from '@cogitator-ai/self-modifying';
16
16
 
17
- const cogitator = new Cogitator({ defaultModel: 'gpt-4o' });
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: cogitator.getDefaultBackend(),
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 safe TypeScript tool implementation
60
- 3. **Validation** — Security scanning + correctness testing in sandbox
61
- 4. **Registration** — Valid tools are added to the agent's toolkit
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** — Collect metrics (progress, confidence, tokens, time)
199
- 2. **Assessment** — LLM analyzes if reasoning is on-track
200
- 3. **Adaptation** — Switch mode or adjust parameters if needed
201
- 4. **Rollback** — Revert if metrics decline after adaptation
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
 
@@ -207,7 +260,7 @@ import { MetaReasoner } from '@cogitator-ai/self-modifying';
207
260
 
208
261
  const metaReasoner = new MetaReasoner({
209
262
  llm,
210
- model: 'gpt-4o',
263
+ model: 'gpt-6.1-sol',
211
264
  config: metaReasoningConfig,
212
265
  });
213
266
 
@@ -224,7 +277,7 @@ const observation = metaReasoner.observe(
224
277
  tokensUsed: 1500,
225
278
  timeElapsed: 5000,
226
279
  iterationsRemaining: 7,
227
- budgetRemaining: 8500,
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 (model, temperature, tool strategy) using multi-armed bandit algorithms.
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 | Description |
258
- | ---------------- | ---------------------------------------------- |
259
- | `ucb` | Upper Confidence Bound — balanced exploration |
260
- | `thompson` | Thompson Sampling — probabilistic selection |
261
- | `epsilon_greedy` | Epsilon-Greedy — random exploration with decay |
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: 'thompson', priorAlpha: 1, priorBeta: 1 },
330
+ // strategy: { type: 'thompson_sampling' },
278
331
  // Or epsilon-greedy:
279
- // strategy: { type: 'epsilon_greedy', epsilon: 0.1, decayRate: 0.99 },
332
+ // strategy: { type: 'epsilon_greedy', epsilon: 0.1 },
280
333
 
281
334
  maxCandidates: 10, // Max configs to track
282
- evaluationWindow: 10, // Runs to consider for metrics
283
- minEvaluationsBeforeEvolution: 3, // Min runs before switching
284
- adaptationThreshold: 0.1, // Min improvement to switch
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: 'gpt-4o',
353
+ model: 'llama3.2',
300
354
  temperature: 0.7,
301
355
  maxTokens: 4096,
302
356
  toolStrategy: 'sequential',
303
- reflectionDepth: 1,
357
+ reflectionDepth: 0,
304
358
  },
359
+ availableModels: ['llama3.2', 'qwen3:8b'],
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('Reasoning:', result.reasoning);
368
+ console.log('Task profile:', result.taskProfile);
314
369
 
315
370
  // Record outcome for learning
316
- optimizer.recordOutcome(result.candidate!.id, 0.85);
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.analyze('Build a REST API with authentication');
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: prevent dangerous operations
354
- // - no_arbitrary_code: Sandbox execution required
355
- // - max_tool_complexity: Lines of code < 100
356
- // - no_self_modification_loop: Modification depth < 3
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: prevent degradation
359
- // - min_tool_count: At least 1 tool
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: prevent runaway costs
364
- // - max_tokens_per_run: Token budget
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
- check: (mod) => !mod.changes?.usesExternalApi,
384
- errorMessage: 'External API calls not allowed',
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: 'tool_addition',
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
@@ -519,7 +578,7 @@ Adapter that normalizes LLM backend calls — uses `complete()` if available, fa
519
578
  import { llmChat } from '@cogitator-ai/self-modifying';
520
579
 
521
580
  const response = await llmChat(llm, [{ role: 'user', content: 'Analyze this data' }], {
522
- model: 'gpt-4o',
581
+ model: 'gpt-6.1-sol',
523
582
  });
524
583
  ```
525
584
 
@@ -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: 'thompson' },
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":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGzE,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;IAqD5B,OAAO,CAAC,oBAAoB;IAyB5B,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;IAIrB,UAAU,IAAI,IAAI;CAGnB"}
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 response = llm.complete
153
- ? await llm.complete({
154
- messages: [
155
- {
156
- role: 'system',
157
- content: 'You are a task analysis expert. Analyze tasks and determine their characteristics.',
158
- },
159
- { role: 'user', content: prompt },
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 words = lowerTask.split(/\s+/);
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.includes(keyword)) {
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.split(/\s+/));
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.includes(indicator)) {
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.includes(tool.name.toLowerCase())) {
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.includes(indicator)) {
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.includes(indicator)) {
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.includes(indicator))
331
+ if (containsPhrase(task, indicator))
337
332
  return 'strict';
338
333
  }
339
334
  for (const indicator of moderateIndicators) {
340
- if (task.includes(indicator))
335
+ if (containsPhrase(task, indicator))
341
336
  return 'moderate';
342
337
  }
343
338
  for (const indicator of relaxedIndicators) {
344
- if (task.includes(indicator))
339
+ if (containsPhrase(task, indicator))
345
340
  return 'relaxed';
346
341
  }
347
342
  return 'none';
348
343
  }
349
- buildCacheKey(task) {
350
- return task.slice(0, 200).toLowerCase().replace(/\s+/g, ' ').trim();
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":"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"}
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,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,EAC9B,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,mCAAmC,GACpC,MAAM,WAAW,CAAC"}
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,GAGnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,EAC9B,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,mCAAmC,GACpC,MAAM,WAAW,CAAC"}
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 getLastEvolutionTime;
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;AAU7B,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;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,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,UAAU,gBAAgB;IACxB,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,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;IAkBxC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8B9D,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;IAiCvC,OAAO,CAAC,uBAAuB;YAajB,MAAM;YA8BN,iBAAiB;IAqC/B,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,wBAAwB;IAShC,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;YA4CK,OAAO;IAUrB,aAAa,IAAI,kBAAkB,EAAE;IAIrC,UAAU,IAAI,gBAAgB,EAAE;IAIhC,KAAK,IAAI,IAAI;CAOd"}
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"}