@cogitator-ai/cli 0.3.16 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +159 -510
- package/dist/commands/assistant.d.ts +13 -0
- package/dist/commands/assistant.d.ts.map +1 -1
- package/dist/commands/assistant.js +64 -58
- package/dist/commands/assistant.js.map +1 -1
- package/dist/commands/build.d.ts +2 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +114 -59
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +223 -262
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +80 -42
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.d.ts +44 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +334 -265
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/logs.d.ts +1 -0
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +8 -4
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/models.d.ts +1 -1
- package/dist/commands/models.d.ts.map +1 -1
- package/dist/commands/models.js +83 -93
- package/dist/commands/models.js.map +1 -1
- package/dist/commands/run.d.ts +4 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +151 -128
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skill.d.ts +17 -0
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +203 -81
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +20 -24
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts +4 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +182 -130
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/wizard.d.ts +6 -0
- package/dist/commands/wizard.d.ts.map +1 -1
- package/dist/commands/wizard.js +301 -267
- package/dist/commands/wizard.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/daemon.d.ts +37 -0
- package/dist/utils/daemon.d.ts.map +1 -0
- package/dist/utils/daemon.js +194 -0
- package/dist/utils/daemon.js.map +1 -0
- package/dist/utils/docker.d.ts +9 -0
- package/dist/utils/docker.d.ts.map +1 -1
- package/dist/utils/docker.js +67 -12
- package/dist/utils/docker.js.map +1 -1
- package/dist/utils/env.d.ts +7 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +41 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/module-loader.d.ts +5 -0
- package/dist/utils/module-loader.d.ts.map +1 -0
- package/dist/utils/module-loader.js +52 -0
- package/dist/utils/module-loader.js.map +1 -0
- package/dist/utils/ollama.d.ts +20 -0
- package/dist/utils/ollama.d.ts.map +1 -0
- package/dist/utils/ollama.js +111 -0
- package/dist/utils/ollama.js.map +1 -0
- package/dist/utils/provider-models.d.ts +13 -0
- package/dist/utils/provider-models.d.ts.map +1 -0
- package/dist/utils/provider-models.js +78 -0
- package/dist/utils/provider-models.js.map +1 -0
- package/package.json +8 -8
package/dist/commands/run.js
CHANGED
|
@@ -2,190 +2,218 @@
|
|
|
2
2
|
* cogitator run [message] - run agent
|
|
3
3
|
*/
|
|
4
4
|
import { Command } from 'commander';
|
|
5
|
-
import { existsSync
|
|
5
|
+
import { existsSync } from 'node:fs';
|
|
6
6
|
import { resolve } from 'node:path';
|
|
7
7
|
import { createInterface } from 'node:readline';
|
|
8
8
|
import chalk from 'chalk';
|
|
9
9
|
import { log, printBanner } from '../utils/logger.js';
|
|
10
10
|
import { Cogitator, Agent } from '@cogitator-ai/core';
|
|
11
11
|
import { loadConfig } from '@cogitator-ai/config';
|
|
12
|
-
|
|
12
|
+
import { listOllamaModels, resolveOllamaUrl } from '../utils/ollama.js';
|
|
13
|
+
const CONFIG_FILE_NAMES = [
|
|
14
|
+
'cogitator.yml',
|
|
15
|
+
'cogitator.yaml',
|
|
16
|
+
'cogitator.json',
|
|
17
|
+
'.cogitator.yml',
|
|
18
|
+
'.cogitator.yaml',
|
|
19
|
+
];
|
|
20
|
+
const PREFERRED_OLLAMA_MODELS = [
|
|
21
|
+
'llama3.1:8b',
|
|
22
|
+
'llama3:8b',
|
|
23
|
+
'gemma3:4b',
|
|
24
|
+
'gemma2:9b',
|
|
25
|
+
'mistral:7b',
|
|
26
|
+
];
|
|
27
|
+
const AGENT_INSTRUCTIONS = 'You are a helpful AI assistant. Respond concisely and accurately.';
|
|
28
|
+
function createCliAgent(model) {
|
|
29
|
+
return new Agent({
|
|
30
|
+
id: 'cli-agent',
|
|
31
|
+
name: 'CLI Agent',
|
|
32
|
+
model,
|
|
33
|
+
instructions: AGENT_INSTRUCTIONS,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export function pickOllamaModel(available) {
|
|
37
|
+
if (available.length === 0)
|
|
38
|
+
return null;
|
|
39
|
+
const preferred = PREFERRED_OLLAMA_MODELS.find((m) => available.includes(m));
|
|
40
|
+
return `ollama/${preferred ?? available[0]}`;
|
|
41
|
+
}
|
|
42
|
+
async function detectOllamaModel(baseUrl, apiKey) {
|
|
13
43
|
try {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
return [];
|
|
17
|
-
const data = (await res.json());
|
|
18
|
-
return data.models.map((m) => m.name);
|
|
44
|
+
const models = await listOllamaModels(baseUrl, { apiKey, timeoutMs: 3000 });
|
|
45
|
+
return pickOllamaModel(models.map((m) => m.name));
|
|
19
46
|
}
|
|
20
47
|
catch {
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
async function detectModel() {
|
|
25
|
-
const models = await getOllamaModels();
|
|
26
|
-
if (models.length === 0)
|
|
27
48
|
return null;
|
|
28
|
-
const preferred = ['llama3.1:8b', 'llama3:8b', 'gemma3:4b', 'gemma2:9b', 'mistral:7b'];
|
|
29
|
-
for (const p of preferred) {
|
|
30
|
-
if (models.includes(p))
|
|
31
|
-
return `ollama/${p}`;
|
|
32
49
|
}
|
|
33
|
-
return `ollama/${models[0]}`;
|
|
34
50
|
}
|
|
35
|
-
export function findConfig(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
51
|
+
export function findConfig(explicitPath, env = process.env, cwd = process.cwd()) {
|
|
52
|
+
if (explicitPath) {
|
|
53
|
+
const full = resolve(cwd, explicitPath);
|
|
54
|
+
return existsSync(full) ? full : null;
|
|
39
55
|
}
|
|
40
|
-
|
|
41
|
-
|
|
56
|
+
const envConfig = env.COGITATOR_CONFIG;
|
|
57
|
+
if (envConfig) {
|
|
58
|
+
const full = resolve(cwd, envConfig);
|
|
59
|
+
return existsSync(full) ? full : null;
|
|
42
60
|
}
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
if (existsSync(
|
|
46
|
-
return
|
|
47
|
-
}
|
|
61
|
+
for (const name of CONFIG_FILE_NAMES) {
|
|
62
|
+
const full = resolve(cwd, name);
|
|
63
|
+
if (existsSync(full))
|
|
64
|
+
return full;
|
|
48
65
|
}
|
|
49
66
|
return null;
|
|
50
67
|
}
|
|
68
|
+
export function resolveRunModel(flagModel, env, config) {
|
|
69
|
+
return flagModel || env.COGITATOR_MODEL || config.llm?.defaultModel || undefined;
|
|
70
|
+
}
|
|
51
71
|
async function runInteractive(cog, initialModel, stream) {
|
|
52
|
-
const rl = createInterface({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
72
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
73
|
+
let model = initialModel;
|
|
74
|
+
let agent = createCliAgent(model);
|
|
75
|
+
let threadId = `thread_${Date.now()}`;
|
|
76
|
+
let messageCount = 0;
|
|
77
|
+
let closing = false;
|
|
78
|
+
const close = async (code) => {
|
|
79
|
+
if (closing)
|
|
80
|
+
return;
|
|
81
|
+
closing = true;
|
|
82
|
+
rl.close();
|
|
83
|
+
await cog.close().catch(() => { });
|
|
84
|
+
process.exit(code);
|
|
60
85
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
rl.on('close', () => {
|
|
87
|
+
if (!closing) {
|
|
88
|
+
console.log(chalk.dim('\nGoodbye!'));
|
|
89
|
+
void close(0);
|
|
90
|
+
}
|
|
66
91
|
});
|
|
67
|
-
|
|
68
|
-
console.log(chalk.dim(`Model: ${modelShort}`));
|
|
92
|
+
console.log(chalk.dim(`Model: ${model}`));
|
|
69
93
|
console.log(chalk.dim('Commands: /model <name>, /clear, /help, exit\n'));
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
94
|
+
const handleCommand = (cmd) => {
|
|
95
|
+
const [rawCommand = '', ...args] = cmd.slice(1).split(/\s+/);
|
|
96
|
+
const command = rawCommand.toLowerCase();
|
|
97
|
+
switch (command) {
|
|
98
|
+
case 'model':
|
|
99
|
+
if (args.length === 0) {
|
|
100
|
+
console.log(chalk.dim(`Current model: ${model}`));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
model = args[0];
|
|
104
|
+
agent = createCliAgent(model);
|
|
105
|
+
log.success(`Switched to model: ${model}`);
|
|
106
|
+
}
|
|
107
|
+
break;
|
|
108
|
+
case 'clear':
|
|
109
|
+
threadId = `thread_${Date.now()}`;
|
|
110
|
+
messageCount = 0;
|
|
111
|
+
console.log(chalk.dim('Conversation cleared'));
|
|
112
|
+
break;
|
|
113
|
+
case 'help':
|
|
114
|
+
console.log(chalk.dim('\nAvailable commands:'));
|
|
115
|
+
console.log(chalk.dim(' /model [name] - Show or change model'));
|
|
116
|
+
console.log(chalk.dim(' /clear - Clear conversation history'));
|
|
117
|
+
console.log(chalk.dim(' /help - Show this help'));
|
|
118
|
+
console.log(chalk.dim(' exit - Exit interactive mode\n'));
|
|
119
|
+
break;
|
|
120
|
+
default:
|
|
121
|
+
log.warn(`Unknown command: /${command}`);
|
|
122
|
+
log.dim('Type /help for available commands');
|
|
123
|
+
}
|
|
75
124
|
};
|
|
76
125
|
const handleInput = async (input) => {
|
|
77
126
|
const trimmed = input.trim();
|
|
78
|
-
if (!trimmed)
|
|
79
|
-
showPrompt();
|
|
127
|
+
if (!trimmed)
|
|
80
128
|
return;
|
|
81
|
-
|
|
82
|
-
if (
|
|
129
|
+
const lowered = trimmed.toLowerCase();
|
|
130
|
+
if (lowered === 'exit' || lowered === 'quit') {
|
|
83
131
|
console.log(chalk.dim('\nGoodbye!'));
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
process.exit(0);
|
|
132
|
+
await close(0);
|
|
133
|
+
return;
|
|
87
134
|
}
|
|
88
135
|
if (trimmed.startsWith('/')) {
|
|
89
|
-
|
|
90
|
-
showPrompt();
|
|
136
|
+
handleCommand(trimmed);
|
|
91
137
|
return;
|
|
92
138
|
}
|
|
139
|
+
messageCount++;
|
|
93
140
|
try {
|
|
94
|
-
state.messageCount++;
|
|
95
141
|
if (stream) {
|
|
96
142
|
process.stdout.write(chalk.green('→ '));
|
|
97
143
|
await cog.run(agent, {
|
|
98
144
|
input: trimmed,
|
|
99
|
-
threadId
|
|
145
|
+
threadId,
|
|
100
146
|
stream: true,
|
|
101
147
|
onToken: (token) => process.stdout.write(token),
|
|
102
148
|
});
|
|
103
149
|
console.log('\n');
|
|
104
150
|
}
|
|
105
151
|
else {
|
|
106
|
-
const result = await cog.run(agent, { input: trimmed, threadId
|
|
152
|
+
const result = await cog.run(agent, { input: trimmed, threadId });
|
|
107
153
|
console.log(chalk.green('→'), result.output);
|
|
108
154
|
console.log();
|
|
109
155
|
}
|
|
110
156
|
}
|
|
111
157
|
catch (error) {
|
|
158
|
+
if (stream)
|
|
159
|
+
console.log();
|
|
112
160
|
log.error(error instanceof Error ? error.message : String(error));
|
|
113
161
|
}
|
|
114
|
-
showPrompt();
|
|
115
162
|
};
|
|
116
|
-
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
name: 'CLI Agent',
|
|
131
|
-
model: state.model,
|
|
132
|
-
instructions: 'You are a helpful AI assistant. Respond concisely and accurately.',
|
|
133
|
-
});
|
|
134
|
-
log.success(`Switched to model: ${newModel}`);
|
|
135
|
-
}
|
|
136
|
-
break;
|
|
137
|
-
case 'clear':
|
|
138
|
-
state.threadId = `thread_${Date.now()}`;
|
|
139
|
-
state.messageCount = 0;
|
|
140
|
-
console.log(chalk.dim('Conversation cleared'));
|
|
141
|
-
break;
|
|
142
|
-
case 'help':
|
|
143
|
-
console.log(chalk.dim('\nAvailable commands:'));
|
|
144
|
-
console.log(chalk.dim(' /model [name] - Show or change model'));
|
|
145
|
-
console.log(chalk.dim(' /clear - Clear conversation history'));
|
|
146
|
-
console.log(chalk.dim(' /help - Show this help'));
|
|
147
|
-
console.log(chalk.dim(' exit - Exit interactive mode\n'));
|
|
148
|
-
break;
|
|
149
|
-
default:
|
|
150
|
-
log.warn(`Unknown command: /${command}`);
|
|
151
|
-
log.dim('Type /help for available commands');
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
showPrompt();
|
|
163
|
+
while (!closing) {
|
|
164
|
+
const prefix = messageCount > 0 ? `[${messageCount}] ` : '';
|
|
165
|
+
const input = await new Promise((resolveInput) => {
|
|
166
|
+
const onClose = () => resolveInput(null);
|
|
167
|
+
rl.once('close', onClose);
|
|
168
|
+
rl.question(chalk.cyan(`${prefix}> `), (answer) => {
|
|
169
|
+
rl.off('close', onClose);
|
|
170
|
+
resolveInput(answer);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
if (input === null)
|
|
174
|
+
return;
|
|
175
|
+
await handleInput(input);
|
|
176
|
+
}
|
|
155
177
|
}
|
|
156
178
|
export const runCommand = new Command('run')
|
|
157
179
|
.description('Run agent with a message')
|
|
158
180
|
.argument('[message]', 'Message to send to agent')
|
|
159
|
-
.option('-c, --config <path>', 'Config file path
|
|
181
|
+
.option('-c, --config <path>', 'Config file path (default: ./cogitator.yml)')
|
|
160
182
|
.option('-m, --model <model>', 'Model to use (e.g. ollama/gemma3:4b)')
|
|
161
183
|
.option('-i, --interactive', 'Interactive mode')
|
|
162
184
|
.option('-s, --stream', 'Stream response tokens', true)
|
|
163
185
|
.option('--no-stream', 'Disable streaming')
|
|
164
186
|
.action(async (message, options) => {
|
|
165
|
-
let config = {};
|
|
166
187
|
const configPath = findConfig(options.config);
|
|
167
|
-
if (configPath) {
|
|
168
|
-
log.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
else {
|
|
175
|
-
config = loadConfig({ configPath });
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
catch (err) {
|
|
179
|
-
log.warn(`Failed to load config: ${err instanceof Error ? err.message : String(err)}`);
|
|
180
|
-
}
|
|
188
|
+
if (options.config && !configPath) {
|
|
189
|
+
log.error(`Config file not found: ${resolve(options.config)}`);
|
|
190
|
+
process.exit(1);
|
|
191
|
+
}
|
|
192
|
+
if (!options.config && process.env.COGITATOR_CONFIG && !configPath) {
|
|
193
|
+
log.error(`COGITATOR_CONFIG points to a missing file: ${process.env.COGITATOR_CONFIG}`);
|
|
194
|
+
process.exit(1);
|
|
181
195
|
}
|
|
182
|
-
let
|
|
196
|
+
let config;
|
|
197
|
+
try {
|
|
198
|
+
config = loadConfig(configPath ? { configPath } : { skipYaml: true });
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
log.error(`Failed to load config: ${error instanceof Error ? error.message : error}`);
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
if (configPath)
|
|
205
|
+
log.dim(`Using config: ${configPath}`);
|
|
206
|
+
let model = resolveRunModel(options.model, process.env, config);
|
|
183
207
|
if (!model) {
|
|
184
|
-
|
|
208
|
+
const ollama = config.llm?.providers?.ollama;
|
|
209
|
+
const baseUrl = resolveOllamaUrl(process.env, ollama?.baseUrl);
|
|
210
|
+
model =
|
|
211
|
+
(await detectOllamaModel(baseUrl, ollama?.apiKey ?? process.env.OLLAMA_API_KEY)) ??
|
|
212
|
+
undefined;
|
|
185
213
|
if (!model) {
|
|
186
214
|
log.error('No model specified and no Ollama models found');
|
|
187
215
|
log.dim('Use -m to specify a model, e.g.: cogitator run -m ollama/gemma3:4b "Hello"');
|
|
188
|
-
log.dim('Or set COGITATOR_MODEL
|
|
216
|
+
log.dim('Or set COGITATOR_MODEL / llm.defaultModel in cogitator.yml');
|
|
189
217
|
log.dim('Or start Ollama and pull a model: ollama pull gemma3:4b');
|
|
190
218
|
process.exit(1);
|
|
191
219
|
}
|
|
@@ -197,12 +225,7 @@ export const runCommand = new Command('run')
|
|
|
197
225
|
await runInteractive(cog, model, options.stream);
|
|
198
226
|
return;
|
|
199
227
|
}
|
|
200
|
-
const agent =
|
|
201
|
-
id: 'cli-agent',
|
|
202
|
-
name: 'CLI Agent',
|
|
203
|
-
model,
|
|
204
|
-
instructions: 'You are a helpful AI assistant. Respond concisely and accurately.',
|
|
205
|
-
});
|
|
228
|
+
const agent = createCliAgent(model);
|
|
206
229
|
try {
|
|
207
230
|
if (options.stream) {
|
|
208
231
|
await cog.run(agent, {
|
|
@@ -219,10 +242,10 @@ export const runCommand = new Command('run')
|
|
|
219
242
|
}
|
|
220
243
|
catch (error) {
|
|
221
244
|
log.error(error instanceof Error ? error.message : String(error));
|
|
222
|
-
process.
|
|
245
|
+
process.exitCode = 1;
|
|
223
246
|
}
|
|
224
247
|
finally {
|
|
225
|
-
await cog.close();
|
|
248
|
+
await cog.close().catch(() => { });
|
|
226
249
|
}
|
|
227
250
|
});
|
|
228
251
|
//# sourceMappingURL=run.js.map
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/skill.d.ts
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import type { Skill } from '@cogitator-ai/types';
|
|
3
|
+
export declare const SKILL_TEMPLATES: readonly ["basic", "device", "api"];
|
|
4
|
+
export type SkillTemplate = (typeof SKILL_TEMPLATES)[number];
|
|
5
|
+
export declare function isValidSkillName(name: string): boolean;
|
|
6
|
+
export declare function isSafeSkillDirName(name: string): boolean;
|
|
7
|
+
export declare function findSkillFile(dir: string): string | null;
|
|
8
|
+
export declare function toSkill(value: unknown): {
|
|
9
|
+
skill: Skill | null;
|
|
10
|
+
issues: string[];
|
|
11
|
+
};
|
|
12
|
+
export declare function findMissingDependencies(dependencies: readonly string[], fromFile: string): string[];
|
|
2
13
|
export declare const skillCommand: Command;
|
|
14
|
+
interface TemplateFiles {
|
|
15
|
+
skill: string;
|
|
16
|
+
tool: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function getTemplate(name: string, template: SkillTemplate): TemplateFiles;
|
|
19
|
+
export {};
|
|
3
20
|
//# sourceMappingURL=skill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAe1D,OAAO,KAAK,EAAE,KAAK,EAAQ,MAAM,qBAAqB,CAAC;AAOvD,eAAO,MAAM,eAAe,qCAAsC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAU7D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAoBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMxD;AAmDD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAsCjF;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CAUV;AAED,eAAO,MAAM,YAAY,SAA0D,CAAC;AAgMpF,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,CAgGhF"}
|