mozart-router 0.1.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/LICENSE +21 -0
- package/README.md +250 -0
- package/dist/adapters/cursor.d.ts +10 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +39 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/generic.d.ts +24 -0
- package/dist/adapters/generic.d.ts.map +1 -0
- package/dist/adapters/generic.js +192 -0
- package/dist/adapters/generic.js.map +1 -0
- package/dist/adapters/hermes.d.ts +10 -0
- package/dist/adapters/hermes.d.ts.map +1 -0
- package/dist/adapters/hermes.js +170 -0
- package/dist/adapters/hermes.js.map +1 -0
- package/dist/adapters/index.d.ts +13 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +27 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/litellm.d.ts +15 -0
- package/dist/adapters/litellm.d.ts.map +1 -0
- package/dist/adapters/litellm.js +238 -0
- package/dist/adapters/litellm.js.map +1 -0
- package/dist/adapters/lmstudio.d.ts +12 -0
- package/dist/adapters/lmstudio.d.ts.map +1 -0
- package/dist/adapters/lmstudio.js +128 -0
- package/dist/adapters/lmstudio.js.map +1 -0
- package/dist/adapters/nim.d.ts +12 -0
- package/dist/adapters/nim.d.ts.map +1 -0
- package/dist/adapters/nim.js +163 -0
- package/dist/adapters/nim.js.map +1 -0
- package/dist/adapters/ollama.d.ts +12 -0
- package/dist/adapters/ollama.d.ts.map +1 -0
- package/dist/adapters/ollama.js +243 -0
- package/dist/adapters/ollama.js.map +1 -0
- package/dist/adapters/openclaw.d.ts +10 -0
- package/dist/adapters/openclaw.d.ts.map +1 -0
- package/dist/adapters/openclaw.js +197 -0
- package/dist/adapters/openclaw.js.map +1 -0
- package/dist/adapters/opencode.d.ts +10 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/adapters/opencode.js +180 -0
- package/dist/adapters/opencode.js.map +1 -0
- package/dist/adapters/openrouter.d.ts +13 -0
- package/dist/adapters/openrouter.d.ts.map +1 -0
- package/dist/adapters/openrouter.js +173 -0
- package/dist/adapters/openrouter.js.map +1 -0
- package/dist/adapters/vllm.d.ts +12 -0
- package/dist/adapters/vllm.d.ts.map +1 -0
- package/dist/adapters/vllm.js +129 -0
- package/dist/adapters/vllm.js.map +1 -0
- package/dist/api/dashboard.d.ts +3 -0
- package/dist/api/dashboard.d.ts.map +1 -0
- package/dist/api/dashboard.js +98 -0
- package/dist/api/dashboard.js.map +1 -0
- package/dist/api/mcp.d.ts +32 -0
- package/dist/api/mcp.d.ts.map +1 -0
- package/dist/api/mcp.js +215 -0
- package/dist/api/mcp.js.map +1 -0
- package/dist/api/middleware.d.ts +20 -0
- package/dist/api/middleware.d.ts.map +1 -0
- package/dist/api/middleware.js +239 -0
- package/dist/api/middleware.js.map +1 -0
- package/dist/api/server.d.ts +26 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +294 -0
- package/dist/api/server.js.map +1 -0
- package/dist/api/streaming.d.ts +19 -0
- package/dist/api/streaming.d.ts.map +1 -0
- package/dist/api/streaming.js +274 -0
- package/dist/api/streaming.js.map +1 -0
- package/dist/cli/config-init.d.ts +2 -0
- package/dist/cli/config-init.d.ts.map +1 -0
- package/dist/cli/config-init.js +73 -0
- package/dist/cli/config-init.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +618 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/context/advanced-optimizer.d.ts +12 -0
- package/dist/context/advanced-optimizer.d.ts.map +1 -0
- package/dist/context/advanced-optimizer.js +64 -0
- package/dist/context/advanced-optimizer.js.map +1 -0
- package/dist/context/optimizer.d.ts +7 -0
- package/dist/context/optimizer.d.ts.map +1 -0
- package/dist/context/optimizer.js +101 -0
- package/dist/context/optimizer.js.map +1 -0
- package/dist/core/cache.d.ts +39 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +90 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/health.d.ts +32 -0
- package/dist/core/health.d.ts.map +1 -0
- package/dist/core/health.js +92 -0
- package/dist/core/health.js.map +1 -0
- package/dist/core/inventory.d.ts +28 -0
- package/dist/core/inventory.d.ts.map +1 -0
- package/dist/core/inventory.js +106 -0
- package/dist/core/inventory.js.map +1 -0
- package/dist/core/metrics.d.ts +48 -0
- package/dist/core/metrics.d.ts.map +1 -0
- package/dist/core/metrics.js +115 -0
- package/dist/core/metrics.js.map +1 -0
- package/dist/core/mozart.d.ts +39 -0
- package/dist/core/mozart.d.ts.map +1 -0
- package/dist/core/mozart.js +156 -0
- package/dist/core/mozart.js.map +1 -0
- package/dist/core/persistence.d.ts +13 -0
- package/dist/core/persistence.d.ts.map +1 -0
- package/dist/core/persistence.js +119 -0
- package/dist/core/persistence.js.map +1 -0
- package/dist/core/plugins.d.ts +18 -0
- package/dist/core/plugins.d.ts.map +1 -0
- package/dist/core/plugins.js +110 -0
- package/dist/core/plugins.js.map +1 -0
- package/dist/core/reliability.d.ts +23 -0
- package/dist/core/reliability.d.ts.map +1 -0
- package/dist/core/reliability.js +70 -0
- package/dist/core/reliability.js.map +1 -0
- package/dist/core/session.d.ts +17 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +67 -0
- package/dist/core/session.js.map +1 -0
- package/dist/cost/dynamic-pricing.d.ts +24 -0
- package/dist/cost/dynamic-pricing.d.ts.map +1 -0
- package/dist/cost/dynamic-pricing.js +71 -0
- package/dist/cost/dynamic-pricing.js.map +1 -0
- package/dist/cost/estimator.d.ts +8 -0
- package/dist/cost/estimator.d.ts.map +1 -0
- package/dist/cost/estimator.js +48 -0
- package/dist/cost/estimator.js.map +1 -0
- package/dist/explain/engine.d.ts +6 -0
- package/dist/explain/engine.d.ts.map +1 -0
- package/dist/explain/engine.js +59 -0
- package/dist/explain/engine.js.map +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +112 -0
- package/dist/index.js.map +1 -0
- package/dist/logs/logger.d.ts +35 -0
- package/dist/logs/logger.d.ts.map +1 -0
- package/dist/logs/logger.js +73 -0
- package/dist/logs/logger.js.map +1 -0
- package/dist/logs/redactor.d.ts +6 -0
- package/dist/logs/redactor.d.ts.map +1 -0
- package/dist/logs/redactor.js +54 -0
- package/dist/logs/redactor.js.map +1 -0
- package/dist/policy/engine.d.ts +9 -0
- package/dist/policy/engine.d.ts.map +1 -0
- package/dist/policy/engine.js +55 -0
- package/dist/policy/engine.js.map +1 -0
- package/dist/policy/loader.d.ts +3 -0
- package/dist/policy/loader.d.ts.map +1 -0
- package/dist/policy/loader.js +27 -0
- package/dist/policy/loader.js.map +1 -0
- package/dist/policy/profiles.d.ts +11 -0
- package/dist/policy/profiles.d.ts.map +1 -0
- package/dist/policy/profiles.js +263 -0
- package/dist/policy/profiles.js.map +1 -0
- package/dist/policy/yaml-loader.d.ts +10 -0
- package/dist/policy/yaml-loader.d.ts.map +1 -0
- package/dist/policy/yaml-loader.js +160 -0
- package/dist/policy/yaml-loader.js.map +1 -0
- package/dist/privacy/guard.d.ts +8 -0
- package/dist/privacy/guard.d.ts.map +1 -0
- package/dist/privacy/guard.js +125 -0
- package/dist/privacy/guard.js.map +1 -0
- package/dist/routing/circuit-breaker.d.ts +23 -0
- package/dist/routing/circuit-breaker.d.ts.map +1 -0
- package/dist/routing/circuit-breaker.js +74 -0
- package/dist/routing/circuit-breaker.js.map +1 -0
- package/dist/routing/classifier.d.ts +5 -0
- package/dist/routing/classifier.d.ts.map +1 -0
- package/dist/routing/classifier.js +102 -0
- package/dist/routing/classifier.js.map +1 -0
- package/dist/routing/fallback.d.ts +27 -0
- package/dist/routing/fallback.d.ts.map +1 -0
- package/dist/routing/fallback.js +66 -0
- package/dist/routing/fallback.js.map +1 -0
- package/dist/routing/multistage.d.ts +49 -0
- package/dist/routing/multistage.d.ts.map +1 -0
- package/dist/routing/multistage.js +108 -0
- package/dist/routing/multistage.js.map +1 -0
- package/dist/routing/router.d.ts +22 -0
- package/dist/routing/router.d.ts.map +1 -0
- package/dist/routing/router.js +123 -0
- package/dist/routing/router.js.map +1 -0
- package/dist/routing/scorer.d.ts +8 -0
- package/dist/routing/scorer.d.ts.map +1 -0
- package/dist/routing/scorer.js +131 -0
- package/dist/routing/scorer.js.map +1 -0
- package/dist/skills/definitions.d.ts +10 -0
- package/dist/skills/definitions.d.ts.map +1 -0
- package/dist/skills/definitions.js +112 -0
- package/dist/skills/definitions.js.map +1 -0
- package/dist/skills/index.d.ts +3 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +14 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/types/index.d.ts +298 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +34 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/canrunit.d.ts +26 -0
- package/dist/utils/canrunit.d.ts.map +1 -0
- package/dist/utils/canrunit.js +69 -0
- package/dist/utils/canrunit.js.map +1 -0
- package/dist/utils/dealsforge.d.ts +6 -0
- package/dist/utils/dealsforge.d.ts.map +1 -0
- package/dist/utils/dealsforge.js +105 -0
- package/dist/utils/dealsforge.js.map +1 -0
- package/docs/ADAPTERS.md +129 -0
- package/docs/ARCHITECTURE.md +113 -0
- package/docs/DELEGATED_EXECUTION.md +62 -0
- package/docs/FEATURE_MATRIX.md +113 -0
- package/docs/GATEWAY_FIRST_PRINCIPLES.md +66 -0
- package/docs/INTEGRATIONS.md +94 -0
- package/docs/LIMITATIONS.md +43 -0
- package/docs/RECOMMEND_ONLY_MODE.md +82 -0
- package/docs/ROADMAP.md +70 -0
- package/docs/SECURITY.md +74 -0
- package/docs/SKILLS_AND_TOOLS.md +141 -0
- package/examples/community-adapter/TEMPLATE.md +157 -0
- package/examples/generic-tools/README.md +29 -0
- package/examples/generic-tools/mozart-tools.json +86 -0
- package/examples/hermes/README.md +29 -0
- package/examples/hermes/mozart-tool.json +48 -0
- package/examples/litellm/README.md +21 -0
- package/examples/litellm/config.yaml +39 -0
- package/examples/ollama/README.md +37 -0
- package/examples/ollama/usage.ts +59 -0
- package/examples/openclaw/README.md +26 -0
- package/examples/openclaw/mozart-skill.yaml +80 -0
- package/examples/opencode/README.md +30 -0
- package/examples/opencode/SKILL.md +47 -0
- package/examples/opencode/mozart-skill.json +64 -0
- package/examples/openrouter/README.md +21 -0
- package/examples/openrouter/config.json +14 -0
- package/package.json +53 -0
package/dist/cli/main.js
ADDED
|
@@ -0,0 +1,618 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const mozart_1 = require("../core/mozart");
|
|
5
|
+
const adapters_1 = require("../adapters");
|
|
6
|
+
const skills_1 = require("../skills");
|
|
7
|
+
const profiles_1 = require("../policy/profiles");
|
|
8
|
+
const yaml_loader_1 = require("../policy/yaml-loader");
|
|
9
|
+
const persistence_1 = require("../core/persistence");
|
|
10
|
+
const dealsforge_1 = require("../utils/dealsforge");
|
|
11
|
+
const canrunit_1 = require("../utils/canrunit");
|
|
12
|
+
const server_1 = require("../api/server");
|
|
13
|
+
const middleware_1 = require("../api/middleware");
|
|
14
|
+
const streaming_1 = require("../api/streaming");
|
|
15
|
+
const mcp_1 = require("../api/mcp");
|
|
16
|
+
const plugins_1 = require("../core/plugins");
|
|
17
|
+
const health_1 = require("../core/health");
|
|
18
|
+
const metrics_1 = require("../core/metrics");
|
|
19
|
+
const dynamic_pricing_1 = require("../cost/dynamic-pricing");
|
|
20
|
+
const config_init_1 = require("./config-init");
|
|
21
|
+
async function main() {
|
|
22
|
+
const args = process.argv.slice(2);
|
|
23
|
+
const command = args[0];
|
|
24
|
+
if (!command) {
|
|
25
|
+
printHelp();
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const mozart = new mozart_1.Mozart();
|
|
29
|
+
// Register all adapters
|
|
30
|
+
mozart.registry.registerAdapter(new adapters_1.OllamaAdapter());
|
|
31
|
+
mozart.registry.registerAdapter(new adapters_1.LiteLLMAdapter());
|
|
32
|
+
mozart.registry.registerAdapter(new adapters_1.OpenRouterAdapter());
|
|
33
|
+
mozart.registry.registerAdapter(new adapters_1.OpenCodeAdapter());
|
|
34
|
+
mozart.registry.registerAdapter(new adapters_1.OpenClawAdapter());
|
|
35
|
+
mozart.registry.registerAdapter(new adapters_1.HermesAdapter());
|
|
36
|
+
mozart.registry.registerAdapter(new adapters_1.CursorAdapter());
|
|
37
|
+
mozart.registry.registerAdapter(new adapters_1.LMStudioAdapter());
|
|
38
|
+
mozart.registry.registerAdapter(new adapters_1.VllmAdapter());
|
|
39
|
+
mozart.registry.registerAdapter(new adapters_1.NvidiaNimAdapter());
|
|
40
|
+
switch (command) {
|
|
41
|
+
case 'doctor':
|
|
42
|
+
await doctor(mozart);
|
|
43
|
+
break;
|
|
44
|
+
case 'inventory':
|
|
45
|
+
await inventory(mozart);
|
|
46
|
+
break;
|
|
47
|
+
case 'simulate':
|
|
48
|
+
await simulate(mozart, args.slice(1).join(' '));
|
|
49
|
+
break;
|
|
50
|
+
case 'route':
|
|
51
|
+
await route(mozart, args.slice(1).join(' '));
|
|
52
|
+
break;
|
|
53
|
+
case 'why':
|
|
54
|
+
await why(mozart);
|
|
55
|
+
break;
|
|
56
|
+
case 'report':
|
|
57
|
+
await report(mozart);
|
|
58
|
+
break;
|
|
59
|
+
case 'skills':
|
|
60
|
+
await listSkills();
|
|
61
|
+
break;
|
|
62
|
+
case 'init':
|
|
63
|
+
await init(args[1] || '');
|
|
64
|
+
break;
|
|
65
|
+
case 'start':
|
|
66
|
+
await start(mozart, args.slice(1));
|
|
67
|
+
break;
|
|
68
|
+
case 'stream':
|
|
69
|
+
await stream(mozart, args.slice(1));
|
|
70
|
+
break;
|
|
71
|
+
case 'proxy':
|
|
72
|
+
await proxy(mozart, args.slice(1));
|
|
73
|
+
break;
|
|
74
|
+
case 'mcp':
|
|
75
|
+
await mcp(mozart, args.slice(1));
|
|
76
|
+
break;
|
|
77
|
+
case 'sync':
|
|
78
|
+
await syncDealsforge(mozart);
|
|
79
|
+
break;
|
|
80
|
+
case 'scan-local':
|
|
81
|
+
await scanLocal(mozart);
|
|
82
|
+
break;
|
|
83
|
+
case 'policy':
|
|
84
|
+
await policy(args.slice(1));
|
|
85
|
+
break;
|
|
86
|
+
case 'reset':
|
|
87
|
+
await reset();
|
|
88
|
+
break;
|
|
89
|
+
case 'profiles':
|
|
90
|
+
await listProfiles();
|
|
91
|
+
break;
|
|
92
|
+
case 'config':
|
|
93
|
+
await configCommand(args.slice(1));
|
|
94
|
+
break;
|
|
95
|
+
case 'plugins':
|
|
96
|
+
await pluginsList();
|
|
97
|
+
break;
|
|
98
|
+
case 'metrics':
|
|
99
|
+
await metricsCommand(mozart);
|
|
100
|
+
break;
|
|
101
|
+
case 'pricing':
|
|
102
|
+
await pricingCommand(mozart, args.slice(1));
|
|
103
|
+
break;
|
|
104
|
+
case 'health':
|
|
105
|
+
await healthCommand(mozart);
|
|
106
|
+
break;
|
|
107
|
+
case 'help':
|
|
108
|
+
case '--help':
|
|
109
|
+
case '-h':
|
|
110
|
+
printHelp();
|
|
111
|
+
break;
|
|
112
|
+
default:
|
|
113
|
+
console.log(`Unknown command: ${command}`);
|
|
114
|
+
printHelp();
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// ── Core commands ──────────────────────────────────────────
|
|
119
|
+
async function doctor(mozart) {
|
|
120
|
+
console.log('Mozart Doctor — Gateway & Stack Detection\n');
|
|
121
|
+
for (const adapter of mozart.registry.listAdapters()) {
|
|
122
|
+
process.stdout.write(`Checking ${adapter.name}... `);
|
|
123
|
+
try {
|
|
124
|
+
const detection = await adapter.detect();
|
|
125
|
+
mozart.registry.recordDetection(detection);
|
|
126
|
+
if (detection.detected) {
|
|
127
|
+
console.log(`✅ ${detection.status}`);
|
|
128
|
+
for (const detail of detection.details)
|
|
129
|
+
console.log(` ${detail}`);
|
|
130
|
+
try {
|
|
131
|
+
const providers = await adapter.listProviders();
|
|
132
|
+
const models = await adapter.listModels();
|
|
133
|
+
mozart.registry.mergeFromAdapter(adapter.id, providers, models);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
console.log(' (inventory merge skipped)');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
console.log(`❌ ${detection.status}`);
|
|
141
|
+
for (const detail of detection.details)
|
|
142
|
+
console.log(` ${detail}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
console.log(`⚠️ Error: ${err}`);
|
|
147
|
+
}
|
|
148
|
+
console.log('');
|
|
149
|
+
}
|
|
150
|
+
const snapshot = mozart.getInventory();
|
|
151
|
+
console.log('Summary:');
|
|
152
|
+
console.log(` Gateways detected: ${snapshot.gateways.filter((g) => g.detected).length}`);
|
|
153
|
+
console.log(` Providers: ${snapshot.providers.length}`);
|
|
154
|
+
console.log(` Models: ${snapshot.models.length}`);
|
|
155
|
+
console.log(` Local models: ${snapshot.models.filter((m) => m.privacyLevel === 'local').length}`);
|
|
156
|
+
console.log(` Cloud models: ${snapshot.models.filter((m) => m.privacyLevel === 'cloud').length}`);
|
|
157
|
+
// Auto-discover generic OpenAI-compatible endpoints
|
|
158
|
+
console.log('\nAuto-discovering OpenAI-compatible endpoints...');
|
|
159
|
+
try {
|
|
160
|
+
const genericAdapters = await (0, adapters_1.discoverAllGenericAdapters)();
|
|
161
|
+
for (const adapter of genericAdapters) {
|
|
162
|
+
mozart.registry.registerAdapter(adapter);
|
|
163
|
+
const providers = await adapter.listProviders();
|
|
164
|
+
const models = await adapter.listModels();
|
|
165
|
+
mozart.registry.mergeFromAdapter(adapter.id, providers, models);
|
|
166
|
+
console.log(` ✅ ${adapter.name} (${models.length} models)`);
|
|
167
|
+
}
|
|
168
|
+
if (genericAdapters.length === 0) {
|
|
169
|
+
console.log(' No additional endpoints found.');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
console.log(' Auto-discovery skipped.');
|
|
174
|
+
}
|
|
175
|
+
const finalSnapshot = mozart.getInventory();
|
|
176
|
+
(0, persistence_1.saveInventory)(snapshot);
|
|
177
|
+
console.log(`\nInventory saved to ${(0, persistence_1.getMozartDir)()}/inventory.json`);
|
|
178
|
+
}
|
|
179
|
+
async function inventory(mozart) {
|
|
180
|
+
for (const adapter of mozart.registry.listAdapters()) {
|
|
181
|
+
try {
|
|
182
|
+
const detection = await adapter.detect();
|
|
183
|
+
mozart.registry.recordDetection(detection);
|
|
184
|
+
if (detection.detected) {
|
|
185
|
+
const providers = await adapter.listProviders();
|
|
186
|
+
const models = await adapter.listModels();
|
|
187
|
+
mozart.registry.mergeFromAdapter(adapter.id, providers, models);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch { /* skip */ }
|
|
191
|
+
}
|
|
192
|
+
const snapshot = mozart.getInventory();
|
|
193
|
+
console.log(JSON.stringify(snapshot, null, 2));
|
|
194
|
+
}
|
|
195
|
+
async function simulate(mozart, task) {
|
|
196
|
+
if (!task) {
|
|
197
|
+
console.log('Please provide a task. Example: mozart simulate "debug my build error"');
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
console.log(`Simulating routing for: "${task}"\n`);
|
|
201
|
+
await detectAll(mozart);
|
|
202
|
+
const result = await mozart.simulate(task);
|
|
203
|
+
printRoute(result);
|
|
204
|
+
}
|
|
205
|
+
async function route(mozart, task) {
|
|
206
|
+
if (!task) {
|
|
207
|
+
console.log('Please provide a task. Example: mozart route "write Playwright tests"');
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
console.log(`Routing task: "${task}"\n`);
|
|
211
|
+
await detectAll(mozart);
|
|
212
|
+
const result = await mozart.route(task);
|
|
213
|
+
console.log(JSON.stringify(result, null, 2));
|
|
214
|
+
}
|
|
215
|
+
async function why(mozart) {
|
|
216
|
+
await detectAll(mozart);
|
|
217
|
+
// Run a quick simulation to populate session if needed
|
|
218
|
+
if (mozart.explainLastRoute() === 'No routing decisions recorded yet.') {
|
|
219
|
+
await mozart.simulate('test task');
|
|
220
|
+
}
|
|
221
|
+
console.log(mozart.explainLastRoute());
|
|
222
|
+
}
|
|
223
|
+
async function report(mozart) {
|
|
224
|
+
await detectAll(mozart);
|
|
225
|
+
const tasks = ['debug build error', 'write tests', 'refactor auth', 'review security'];
|
|
226
|
+
for (const task of tasks) {
|
|
227
|
+
try {
|
|
228
|
+
await mozart.simulate(task);
|
|
229
|
+
}
|
|
230
|
+
catch { /* skip */ }
|
|
231
|
+
}
|
|
232
|
+
console.log(mozart.generateReport());
|
|
233
|
+
}
|
|
234
|
+
async function listSkills() {
|
|
235
|
+
console.log('Mozart Skills:\n');
|
|
236
|
+
for (const skill of skills_1.ALL_SKILLS) {
|
|
237
|
+
console.log(` ${skill.name}`);
|
|
238
|
+
console.log(` ${skill.description}`);
|
|
239
|
+
const inputs = Object.keys(skill.input);
|
|
240
|
+
if (inputs.length > 0)
|
|
241
|
+
console.log(` Inputs: ${inputs.join(', ')}`);
|
|
242
|
+
console.log('');
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
async function init(gateway) {
|
|
246
|
+
if (!gateway) {
|
|
247
|
+
console.log('Please specify a gateway: opencode, openclaw, hermes, litellm');
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const gw = gateway.replace('--gateway=', '').replace('--gateway', '');
|
|
251
|
+
console.log(`Initializing Mozart for ${gw || 'unknown'}...`);
|
|
252
|
+
console.log('\nIntegration files available in examples/ directory.');
|
|
253
|
+
console.log('See docs/INTEGRATIONS.md for full instructions.\n');
|
|
254
|
+
generateDefaultConfigFile();
|
|
255
|
+
}
|
|
256
|
+
// ── New commands ───────────────────────────────────────────
|
|
257
|
+
async function start(mozart, args) {
|
|
258
|
+
const portArg = args.find((a) => a.startsWith('--port='));
|
|
259
|
+
const port = portArg ? parseInt(portArg.split('=')[1], 10) : 4444;
|
|
260
|
+
console.log('Starting Mozart API server...');
|
|
261
|
+
await detectAll(mozart);
|
|
262
|
+
const server = await (0, server_1.startApiServer)(mozart, { port, host: '127.0.0.1' });
|
|
263
|
+
console.log('\nPress Ctrl+C to stop.');
|
|
264
|
+
process.on('SIGINT', async () => {
|
|
265
|
+
console.log('\nShutting down...');
|
|
266
|
+
await server.stop();
|
|
267
|
+
process.exit(0);
|
|
268
|
+
});
|
|
269
|
+
process.on('SIGTERM', async () => {
|
|
270
|
+
await server.stop();
|
|
271
|
+
process.exit(0);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
async function proxy(mozart, args) {
|
|
275
|
+
const portArg = args.find((a) => a.startsWith('--port='));
|
|
276
|
+
const port = portArg ? parseInt(portArg.split('=')[1], 10) : 4445;
|
|
277
|
+
const upstreamArg = args.find((a) => a.startsWith('--upstream='));
|
|
278
|
+
const upstream = upstreamArg ? upstreamArg.split('=')[1] : undefined;
|
|
279
|
+
console.log('Starting Mozart Proxy (OpenAI-compatible middleware)...');
|
|
280
|
+
await detectAll(mozart);
|
|
281
|
+
const middleware = new middleware_1.MozartMiddleware(mozart, {
|
|
282
|
+
port,
|
|
283
|
+
host: '127.0.0.1',
|
|
284
|
+
upstreamUrl: upstream,
|
|
285
|
+
});
|
|
286
|
+
await middleware.start();
|
|
287
|
+
console.log('\nConfigure your agent to use: http://127.0.0.1:' + port + '/v1');
|
|
288
|
+
console.log('Press Ctrl+C to stop.');
|
|
289
|
+
process.on('SIGINT', async () => {
|
|
290
|
+
console.log('\nShutting down...');
|
|
291
|
+
await middleware.stop();
|
|
292
|
+
process.exit(0);
|
|
293
|
+
});
|
|
294
|
+
process.on('SIGTERM', async () => {
|
|
295
|
+
await middleware.stop();
|
|
296
|
+
process.exit(0);
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
async function syncDealsforge(mozart) {
|
|
300
|
+
console.log('Syncing DealsForge data...');
|
|
301
|
+
const result = (0, dealsforge_1.syncDealsForgeData)(mozart.registry);
|
|
302
|
+
console.log(` Models added: ${result.modelsAdded}`);
|
|
303
|
+
console.log(` Providers added: ${result.providersAdded}`);
|
|
304
|
+
console.log('\nDealsForge sync complete. Run `mozart inventory` to see updated data.');
|
|
305
|
+
}
|
|
306
|
+
async function scanLocal(mozart) {
|
|
307
|
+
console.log('Scanning local capabilities...\n');
|
|
308
|
+
const capability = (0, canrunit_1.scanLocalCapability)();
|
|
309
|
+
console.log(`OS: ${capability.os} (${capability.platform}, ${capability.arch})`);
|
|
310
|
+
console.log(`CPU: ${capability.cpu.model} (${capability.cpu.cores} cores)`);
|
|
311
|
+
console.log(`RAM: ${capability.ram.totalGB} GB total, ${capability.ram.freeGB} GB free`);
|
|
312
|
+
if (capability.gpu) {
|
|
313
|
+
console.log(`GPU: ${capability.gpu.model} (${capability.gpu.vramGB ?? 'unknown'} GB VRAM)`);
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
console.log('GPU: Not detected (requires native module)');
|
|
317
|
+
}
|
|
318
|
+
console.log('\nEstimated local model capacity:');
|
|
319
|
+
const capacity = (0, canrunit_1.estimateLocalModelCapacity)(capability);
|
|
320
|
+
for (const c of capacity) {
|
|
321
|
+
console.log(` ${c.modelSize}: ${c.canRun ? '✅ Can run' : '❌ Cannot run'} (needs ~${c.vramRequired} GB VRAM)`);
|
|
322
|
+
}
|
|
323
|
+
console.log(`\nOllama available: ${capability.ollamaAvailable ? 'Yes' : 'No'}`);
|
|
324
|
+
console.log(`Local models found: ${capability.localModelCount}`);
|
|
325
|
+
}
|
|
326
|
+
async function policy(args) {
|
|
327
|
+
const subcommand = args[0];
|
|
328
|
+
if (!subcommand || subcommand === 'list') {
|
|
329
|
+
console.log('Available profiles:\n');
|
|
330
|
+
for (const profile of profiles_1.BUILTIN_PROFILES) {
|
|
331
|
+
console.log(` ${profile.name.padEnd(22)} ${profile.description}`);
|
|
332
|
+
}
|
|
333
|
+
console.log('\nUse `mozart profiles` for more details.');
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
if (subcommand === 'show') {
|
|
337
|
+
const name = args[1];
|
|
338
|
+
if (!name) {
|
|
339
|
+
console.log('Usage: mozart policy show <profile-name>');
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
const profile = (0, profiles_1.getProfile)(name);
|
|
343
|
+
if (!profile) {
|
|
344
|
+
console.log(`Profile "${name}" not found. Use "mozart policy list" to see available profiles.`);
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
console.log(JSON.stringify(profile, null, 2));
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
if (subcommand === 'set') {
|
|
351
|
+
const name = args[1];
|
|
352
|
+
if (!name) {
|
|
353
|
+
console.log('Usage: mozart policy set <profile-name>');
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
const profile = (0, profiles_1.getProfile)(name);
|
|
357
|
+
if (!profile) {
|
|
358
|
+
console.log(`Profile "${name}" not found.`);
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
const config = (0, yaml_loader_1.loadMozartConfig)().config;
|
|
362
|
+
const updated = (0, profiles_1.applyProfile)(config, name);
|
|
363
|
+
const yaml = (0, yaml_loader_1.generateDefaultConfig)();
|
|
364
|
+
(0, persistence_1.saveConfig)(yaml);
|
|
365
|
+
console.log(`Policy profile set to: ${name}`);
|
|
366
|
+
console.log(`Config saved to ${(0, persistence_1.getMozartDir)()}/config.yaml`);
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
console.log(`Unknown policy subcommand: ${subcommand}`);
|
|
370
|
+
console.log('Usage: mozart policy [list|show|set]');
|
|
371
|
+
}
|
|
372
|
+
async function listProfiles() {
|
|
373
|
+
console.log('Mozart Built-in Profiles:\n');
|
|
374
|
+
for (const profile of profiles_1.BUILTIN_PROFILES) {
|
|
375
|
+
console.log(` ${profile.name}`);
|
|
376
|
+
console.log(` ${profile.description}`);
|
|
377
|
+
console.log(` Mode: ${profile.policy.mode}`);
|
|
378
|
+
console.log(` Privacy: ${profile.policy.privacy?.mode}`);
|
|
379
|
+
console.log(` Budget: ${profile.policy.budget?.mode} (limit: $${profile.policy.budget?.dailyLimitUsd}/day)`);
|
|
380
|
+
console.log('');
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
async function reset() {
|
|
384
|
+
const readline = require('readline').createInterface({
|
|
385
|
+
input: process.stdin,
|
|
386
|
+
output: process.stdout,
|
|
387
|
+
});
|
|
388
|
+
console.log('This will clear all Mozart local data (inventory, session, config).');
|
|
389
|
+
const answer = await new Promise((resolve) => {
|
|
390
|
+
readline.question('Are you sure? [y/N] ', resolve);
|
|
391
|
+
});
|
|
392
|
+
readline.close();
|
|
393
|
+
if (answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') {
|
|
394
|
+
(0, persistence_1.clearAllData)();
|
|
395
|
+
console.log('All Mozart data cleared.');
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
console.log('Cancelled.');
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
// ── Helpers ────────────────────────────────────────────────
|
|
402
|
+
async function detectAll(mozart) {
|
|
403
|
+
for (const adapter of mozart.registry.listAdapters()) {
|
|
404
|
+
try {
|
|
405
|
+
const detection = await adapter.detect();
|
|
406
|
+
mozart.registry.recordDetection(detection);
|
|
407
|
+
if (detection.detected) {
|
|
408
|
+
const providers = await adapter.listProviders();
|
|
409
|
+
const models = await adapter.listModels();
|
|
410
|
+
mozart.registry.mergeFromAdapter(adapter.id, providers, models);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch { /* skip */ }
|
|
414
|
+
}
|
|
415
|
+
// Auto-discover any OpenAI-compatible endpoints
|
|
416
|
+
try {
|
|
417
|
+
const genericAdapters = await (0, adapters_1.discoverAllGenericAdapters)();
|
|
418
|
+
for (const adapter of genericAdapters) {
|
|
419
|
+
mozart.registry.registerAdapter(adapter);
|
|
420
|
+
const providers = await adapter.listProviders();
|
|
421
|
+
const models = await adapter.listModels();
|
|
422
|
+
mozart.registry.mergeFromAdapter(adapter.id, providers, models);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
catch { /* skip */ }
|
|
426
|
+
}
|
|
427
|
+
function printRoute(result) {
|
|
428
|
+
console.log(`Selected: ${result.selectedGateway ?? 'direct'} / ${result.selectedProvider} / ${result.selectedModel}`);
|
|
429
|
+
console.log(`Score: ${result.score}`);
|
|
430
|
+
console.log(`Confidence: ${Math.round(result.confidence * 100)}%`);
|
|
431
|
+
console.log(`Context strategy: ${result.contextStrategy}`);
|
|
432
|
+
console.log(`Estimated cost: $${result.estimatedCost.toFixed(4)}`);
|
|
433
|
+
console.log('');
|
|
434
|
+
for (const line of result.explanation)
|
|
435
|
+
console.log(` ${line}`);
|
|
436
|
+
}
|
|
437
|
+
function generateDefaultConfigFile() {
|
|
438
|
+
const config = (0, yaml_loader_1.generateDefaultConfig)();
|
|
439
|
+
(0, persistence_1.saveConfig)(config);
|
|
440
|
+
console.log(`Default config generated at ${(0, persistence_1.getMozartDir)()}/config.yaml`);
|
|
441
|
+
}
|
|
442
|
+
// ── New extended commands ──────────────────────────────────
|
|
443
|
+
async function stream(mozart, args) {
|
|
444
|
+
const portArg = args.find((a) => a.startsWith('--port='));
|
|
445
|
+
const port = portArg ? parseInt(portArg.split('=')[1], 10) : 4445;
|
|
446
|
+
console.log('Starting Mozart Streaming Middleware...');
|
|
447
|
+
await detectAll(mozart);
|
|
448
|
+
const middleware = new streaming_1.StreamingMiddleware(mozart, { port, host: '127.0.0.1' });
|
|
449
|
+
await middleware.start();
|
|
450
|
+
console.log('\nStreaming endpoint: http://127.0.0.1:' + port + '/v1/chat/completions');
|
|
451
|
+
console.log('Supports: stream=true (SSE) and stream=false (JSON)');
|
|
452
|
+
console.log('Press Ctrl+C to stop.');
|
|
453
|
+
process.on('SIGINT', async () => { await middleware.stop(); process.exit(0); });
|
|
454
|
+
process.on('SIGTERM', async () => { await middleware.stop(); process.exit(0); });
|
|
455
|
+
}
|
|
456
|
+
async function mcp(mozart, _args) {
|
|
457
|
+
console.log('Mozart MCP Server starting (stdio mode)...');
|
|
458
|
+
await detectAll(mozart);
|
|
459
|
+
const mcpServer = new mcp_1.MozartMcpServer(mozart);
|
|
460
|
+
// Read JSON-RPC from stdin, write to stdout
|
|
461
|
+
const readline = require('readline');
|
|
462
|
+
const rl = readline.createInterface({ input: process.stdin });
|
|
463
|
+
let buffer = '';
|
|
464
|
+
rl.on('line', async (line) => {
|
|
465
|
+
buffer += line;
|
|
466
|
+
try {
|
|
467
|
+
const request = JSON.parse(buffer);
|
|
468
|
+
buffer = '';
|
|
469
|
+
const response = await mcpServer.handleRequest(request);
|
|
470
|
+
process.stdout.write(JSON.stringify(response) + '\n');
|
|
471
|
+
}
|
|
472
|
+
catch {
|
|
473
|
+
// Wait for more input (incomplete JSON)
|
|
474
|
+
}
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
async function configCommand(args) {
|
|
478
|
+
if (args[0] === 'init') {
|
|
479
|
+
await (0, config_init_1.interactiveConfigInit)();
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
console.log('Usage: mozart config init');
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
async function pluginsList() {
|
|
486
|
+
const plugins = plugins_1.pluginRegistry.list();
|
|
487
|
+
if (plugins.length === 0) {
|
|
488
|
+
console.log('No plugins registered.');
|
|
489
|
+
console.log('Install plugins via: npm install mozart-router-adapter-<name>');
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
console.log('Registered plugins:');
|
|
493
|
+
for (const p of plugins) {
|
|
494
|
+
console.log(` ${p.name} v${p.version} (${p.adapters.length} adapters)`);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
async function metricsCommand(mozart) {
|
|
498
|
+
await detectAll(mozart);
|
|
499
|
+
const snapshot = mozart.getInventory();
|
|
500
|
+
const activeGateways = snapshot.gateways.filter((g) => g.detected).length;
|
|
501
|
+
// Simulate a few routes to populate metrics
|
|
502
|
+
const tasks = ['debug error', 'write tests', 'hello world'];
|
|
503
|
+
for (const task of tasks) {
|
|
504
|
+
try {
|
|
505
|
+
await mozart.simulate(task);
|
|
506
|
+
}
|
|
507
|
+
catch { /* skip */ }
|
|
508
|
+
}
|
|
509
|
+
const collector = new metrics_1.MetricsCollector();
|
|
510
|
+
// Routes have already been recorded by mozart.session
|
|
511
|
+
// (MetricsCollector is for standalone use — show what it would export)
|
|
512
|
+
const prometheus = collector.toPrometheus();
|
|
513
|
+
const json = collector.toJSON();
|
|
514
|
+
console.log('=== JSON Metrics ===');
|
|
515
|
+
console.log(JSON.stringify({
|
|
516
|
+
routes: mozart.session['routes']?.length ?? 0,
|
|
517
|
+
gateways_active: activeGateways,
|
|
518
|
+
gateways_total: snapshot.gateways.length,
|
|
519
|
+
models_total: snapshot.models.length,
|
|
520
|
+
}, null, 2));
|
|
521
|
+
console.log('\n=== Prometheus Metrics ===');
|
|
522
|
+
console.log(prometheus);
|
|
523
|
+
}
|
|
524
|
+
async function healthCommand(mozart) {
|
|
525
|
+
console.log('Provider Health Check\n');
|
|
526
|
+
await detectAll(mozart);
|
|
527
|
+
const checker = new health_1.HealthChecker({ checkIntervalMs: 60000 });
|
|
528
|
+
for (const adapter of mozart.registry.listAdapters()) {
|
|
529
|
+
checker.register(adapter);
|
|
530
|
+
}
|
|
531
|
+
const results = await checker.checkAll();
|
|
532
|
+
for (const r of results) {
|
|
533
|
+
const icon = r.status.connected ? '✅' : '❌';
|
|
534
|
+
const error = r.status.error ? ` (${r.status.error})` : '';
|
|
535
|
+
const latency = r.status.latencyMs ? ` ${r.status.latencyMs}ms` : '';
|
|
536
|
+
console.log(` ${icon} ${r.adapterName}${latency}${error}`);
|
|
537
|
+
}
|
|
538
|
+
console.log('');
|
|
539
|
+
}
|
|
540
|
+
async function pricingCommand(mozart, args) {
|
|
541
|
+
if (args[0] === 'sync') {
|
|
542
|
+
console.log('Fetching live pricing from OpenRouter...');
|
|
543
|
+
const pricing = new dynamic_pricing_1.DynamicPricing();
|
|
544
|
+
const results = await pricing.fetchOpenRouter();
|
|
545
|
+
console.log(`Fetched ${results.length} model prices from OpenRouter.`);
|
|
546
|
+
// Enrich existing models
|
|
547
|
+
const models = mozart.registry.listModels();
|
|
548
|
+
const enriched = pricing.enrichModels(models, results);
|
|
549
|
+
let updated = 0;
|
|
550
|
+
for (const model of enriched) {
|
|
551
|
+
const existing = mozart.registry.getModel(model.providerId, model.id);
|
|
552
|
+
if (existing && (existing.inputPrice !== model.inputPrice || existing.contextWindow !== model.contextWindow)) {
|
|
553
|
+
mozart.registry.addModel(model);
|
|
554
|
+
updated++;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
console.log(`Updated ${updated} models with live pricing data.`);
|
|
558
|
+
console.log(`Sample prices (per 1M tokens):`);
|
|
559
|
+
for (const r of results.slice(0, 5)) {
|
|
560
|
+
console.log(` ${r.modelId}: $${(r.inputPrice ?? 0).toFixed(2)} input / $${(r.outputPrice ?? 0).toFixed(2)} output`);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
else if (args[0] === 'list') {
|
|
564
|
+
const pricing = new dynamic_pricing_1.DynamicPricing();
|
|
565
|
+
const cached = pricing.getAllPrices();
|
|
566
|
+
if (cached.length === 0) {
|
|
567
|
+
console.log('No pricing cached. Run `mozart pricing sync` first.');
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
for (const p of cached.slice(0, 10)) {
|
|
571
|
+
console.log(` ${p.modelId}: in=$${p.inputPrice} out=$${p.outputPrice} (ctx=${p.contextWindow})`);
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
console.log('Usage: mozart pricing sync|list');
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
function printHelp() {
|
|
580
|
+
console.log(`
|
|
581
|
+
Mozart — Local orchestration and routing for AI agents.
|
|
582
|
+
|
|
583
|
+
Usage:
|
|
584
|
+
mozart doctor Detect gateways, providers, and models
|
|
585
|
+
mozart inventory Show full inventory as JSON
|
|
586
|
+
mozart simulate <task> Simulate routing for a task
|
|
587
|
+
mozart route <task> Route a task (recommend mode)
|
|
588
|
+
mozart why Explain the last routing decision
|
|
589
|
+
mozart report Show session report
|
|
590
|
+
mozart skills List available Mozart skills
|
|
591
|
+
mozart profiles List built-in policy profiles
|
|
592
|
+
mozart init --gateway <name> Generate integration files
|
|
593
|
+
|
|
594
|
+
mozart start [--port=4444] Start local HTTP API server
|
|
595
|
+
mozart stream [--port=4445] Start streaming middleware (SSE)
|
|
596
|
+
mozart proxy [--port=4445] Start OpenAI-compatible proxy/middleware
|
|
597
|
+
mozart mcp Start MCP server (stdin/stdout)
|
|
598
|
+
mozart config init Interactive config generator
|
|
599
|
+
mozart plugins List registered plugins
|
|
600
|
+
mozart metrics Export metrics (JSON + Prometheus)
|
|
601
|
+
mozart pricing sync|list Fetch live model pricing data
|
|
602
|
+
mozart health Run health check on all adapters
|
|
603
|
+
mozart sync dealsforge Sync DealsForge provider/model data
|
|
604
|
+
mozart scan-local Scan local hardware capabilities
|
|
605
|
+
mozart policy list|show|set Manage routing policies
|
|
606
|
+
mozart reset Clear all Mozart local data
|
|
607
|
+
mozart help Show this help
|
|
608
|
+
|
|
609
|
+
Protocol:
|
|
610
|
+
Do not rebuild what the gateway already does.
|
|
611
|
+
Detect it, understand it, orchestrate it.
|
|
612
|
+
`);
|
|
613
|
+
}
|
|
614
|
+
main().catch((err) => {
|
|
615
|
+
console.error('Mozart CLI error:', err);
|
|
616
|
+
process.exit(1);
|
|
617
|
+
});
|
|
618
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";;;AAEA,2CAAwC;AACxC,0CAYqB;AACrB,sCAAuC;AACvC,iDAAgF;AAChF,uDAAgF;AAChF,qDAA2G;AAC3G,oDAAyD;AACzD,gDAAoF;AACpF,0CAA+C;AAC/C,kDAAqD;AACrD,gDAAuD;AACvD,oCAA6C;AAC7C,6CAAiD;AACjD,2CAA+C;AAC/C,6CAAmD;AACnD,6DAAyD;AAEzD,+CAAsD;AAEtD,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAE5B,wBAAwB;IACxB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,wBAAa,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,yBAAc,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,4BAAiB,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,0BAAe,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,0BAAe,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,wBAAa,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,wBAAa,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,0BAAe,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,sBAAW,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,2BAAgB,EAAE,CAAC,CAAC;IAExD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QAC3C,KAAK,WAAW;YAAE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QACjD,KAAK,UAAU;YAAE,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAC,MAAM;QACxE,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAC,MAAM;QAClE,KAAK,KAAK;YAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QACrC,KAAK,QAAQ;YAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QAC3C,KAAK,QAAQ;YAAE,MAAM,UAAU,EAAE,CAAC;YAAC,MAAM;QACzC,KAAK,MAAM;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAAC,MAAM;QAC9C,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QACxD,KAAK,QAAQ;YAAE,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QAC1D,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QACxD,KAAK,KAAK;YAAE,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QACpD,KAAK,MAAM;YAAE,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QACjD,KAAK,YAAY;YAAE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QAClD,KAAK,QAAQ;YAAE,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QAClD,KAAK,OAAO;YAAE,MAAM,KAAK,EAAE,CAAC;YAAC,MAAM;QACnC,KAAK,UAAU;YAAE,MAAM,YAAY,EAAE,CAAC;YAAC,MAAM;QAC7C,KAAK,QAAQ;YAAE,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QACzD,KAAK,SAAS;YAAE,MAAM,WAAW,EAAE,CAAC;YAAC,MAAM;QAC3C,KAAK,SAAS;YAAE,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QACpD,KAAK,SAAS;YAAE,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QACnE,KAAK,QAAQ;YAAE,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM;QAClD,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YAAE,SAAS,EAAE,CAAC;YAAC,MAAM;QAC9B;YACE,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC3C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,8DAA8D;AAE9D,KAAK,UAAU,MAAM,CAAC,MAAc;IAClC,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO;oBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;oBAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAClE,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO;oBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;QAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnG,oDAAoD;IACpD,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,IAAA,qCAA0B,GAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAAC,CAAC;IAErD,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAE5C,IAAA,2BAAa,EAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAA,0BAAY,GAAE,iBAAiB,CAAC,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAc;IACrC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,IAAY;IAClD,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC7G,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,MAAc,EAAE,IAAY;IAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC5G,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC,CAAC;IACzC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,MAAc;IAC/B,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,uDAAuD;IACvD,IAAI,MAAM,CAAC,gBAAgB,EAAE,KAAK,oCAAoC,EAAE,CAAC;QACvE,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,MAAc;IAClC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACvF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,mBAAU,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,OAAe;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACvG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,SAAS,KAAK,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,yBAAyB,EAAE,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAE9D,KAAK,UAAU,KAAK,CAAC,MAAc,EAAE,IAAc;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAc,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEvC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,MAAc,EAAE,IAAc;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,UAAU,GAAG,IAAI,6BAAgB,CAAC,MAAM,EAAE;QAC9C,IAAI;QACJ,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,QAAQ;KACtB,CAAC,CAAC;IACH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,kDAAkD,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc;IAC1C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAA,+BAAkB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;AACzF,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAc;IACrC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAA,8BAAmB,GAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,GAAG,CAAC,OAAO,cAAc,UAAU,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;IACzF,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,WAAW,CAAC,CAAC;IAC9F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAA,qCAA0B,EAAC,UAAU,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,YAAY,CAAC,CAAC,YAAY,WAAW,CAAC,CAAC;IACjH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAc;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,2BAAgB,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,kEAAkE,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1H,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,cAAc,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAA,8BAAgB,GAAE,CAAC,MAAM,CAAC;QACzC,MAAM,OAAO,GAAG,IAAA,uBAAY,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAA,mCAAqB,GAAE,CAAC;QACrC,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAA,0BAAY,GAAE,cAAc,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,KAAK,MAAM,OAAO,IAAI,2BAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,aAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,OAAO,CAAC,CAAC;QAChH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC;QACnD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACnD,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QACnE,IAAA,0BAAY,GAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,8DAA8D;AAE9D,KAAK,UAAU,SAAS,CAAC,MAAc;IACrC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,IAAA,qCAA0B,GAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,MAA+L;IACjN,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,eAAe,IAAI,QAAQ,MAAM,MAAM,CAAC,gBAAgB,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACtH,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,yBAAyB;IAChC,MAAM,MAAM,GAAG,IAAA,mCAAqB,GAAE,CAAC;IACvC,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAA,0BAAY,GAAE,cAAc,CAAC,CAAC;AAC3E,CAAC;AAED,8DAA8D;AAE9D,KAAK,UAAU,MAAM,CAAC,MAAc,EAAE,IAAc;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,UAAU,GAAG,IAAI,+BAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAChF,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,yCAAyC,GAAG,IAAI,GAAG,sBAAsB,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,MAAc,EAAE,KAAe;IAChD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,qBAAe,CAAC,MAAM,CAAC,CAAC;IAE9C,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;QACnC,MAAM,IAAI,IAAI,CAAC;QACf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAc;IACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAA,mCAAqB,GAAE,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,OAAO,GAAG,wBAAc,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc;IAC1C,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAE1E,4CAA4C;IAC5C,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,0BAAgB,EAAE,CAAC;IACzC,sDAAsD;IACtD,uEAAuE;IACvE,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QAC7C,eAAe,EAAE,cAAc;QAC/B,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;QACxC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;KACrC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEb,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAc;IACzC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,sBAAa,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,IAAc;IAC1D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,gCAAc,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,gCAAgC,CAAC,CAAC;QAEvE,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7G,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,iCAAiC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,gCAAc,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC,WAAW,SAAS,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SummarizeOptions {
|
|
2
|
+
maxSummaryTokens?: number;
|
|
3
|
+
model?: string;
|
|
4
|
+
timeout?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class AdvancedContextOptimizer {
|
|
7
|
+
private ollamaAvailable;
|
|
8
|
+
private checkOllama;
|
|
9
|
+
summarize(content: string, options?: SummarizeOptions): Promise<string>;
|
|
10
|
+
private fallbackSummarize;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=advanced-optimizer.d.ts.map
|