@cogitator-ai/cli 0.3.16 → 0.5.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 +160 -511
- 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 +115 -60
- 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 +51 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +349 -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 +156 -131
- 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 +307 -271
- 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 +81 -0
- package/dist/utils/provider-models.js.map +1 -0
- package/package.json +21 -19
package/dist/commands/run.js
CHANGED
|
@@ -2,191 +2,221 @@
|
|
|
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
|
+
'qwen3:8b',
|
|
22
|
+
'qwen3.5:9b',
|
|
23
|
+
'llama3.1:8b',
|
|
24
|
+
'llama3:8b',
|
|
25
|
+
'gemma3:4b',
|
|
26
|
+
'gemma2:9b',
|
|
27
|
+
'mistral:7b',
|
|
28
|
+
];
|
|
29
|
+
const AGENT_INSTRUCTIONS = 'You are a helpful AI assistant. Respond concisely and accurately.';
|
|
30
|
+
function createCliAgent(model) {
|
|
31
|
+
return new Agent({
|
|
32
|
+
id: 'cli-agent',
|
|
33
|
+
name: 'CLI Agent',
|
|
34
|
+
model,
|
|
35
|
+
instructions: AGENT_INSTRUCTIONS,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export function pickOllamaModel(available) {
|
|
39
|
+
if (available.length === 0)
|
|
40
|
+
return null;
|
|
41
|
+
const preferred = PREFERRED_OLLAMA_MODELS.find((m) => available.includes(m));
|
|
42
|
+
return `ollama/${preferred ?? available[0]}`;
|
|
43
|
+
}
|
|
44
|
+
async function detectOllamaModel(baseUrl, apiKey) {
|
|
13
45
|
try {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
return [];
|
|
17
|
-
const data = (await res.json());
|
|
18
|
-
return data.models.map((m) => m.name);
|
|
46
|
+
const models = await listOllamaModels(baseUrl, { apiKey, timeoutMs: 3000 });
|
|
47
|
+
return pickOllamaModel(models.map((m) => m.name));
|
|
19
48
|
}
|
|
20
49
|
catch {
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
async function detectModel() {
|
|
25
|
-
const models = await getOllamaModels();
|
|
26
|
-
if (models.length === 0)
|
|
27
50
|
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
51
|
}
|
|
33
|
-
return `ollama/${models[0]}`;
|
|
34
52
|
}
|
|
35
|
-
export function findConfig(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
53
|
+
export function findConfig(explicitPath, env = process.env, cwd = process.cwd()) {
|
|
54
|
+
if (explicitPath) {
|
|
55
|
+
const full = resolve(cwd, explicitPath);
|
|
56
|
+
return existsSync(full) ? full : null;
|
|
39
57
|
}
|
|
40
|
-
|
|
41
|
-
|
|
58
|
+
const envConfig = env.COGITATOR_CONFIG;
|
|
59
|
+
if (envConfig) {
|
|
60
|
+
const full = resolve(cwd, envConfig);
|
|
61
|
+
return existsSync(full) ? full : null;
|
|
42
62
|
}
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
if (existsSync(
|
|
46
|
-
return
|
|
47
|
-
}
|
|
63
|
+
for (const name of CONFIG_FILE_NAMES) {
|
|
64
|
+
const full = resolve(cwd, name);
|
|
65
|
+
if (existsSync(full))
|
|
66
|
+
return full;
|
|
48
67
|
}
|
|
49
68
|
return null;
|
|
50
69
|
}
|
|
70
|
+
export function resolveRunModel(flagModel, env, config) {
|
|
71
|
+
return flagModel || env.COGITATOR_MODEL || config.llm?.defaultModel || undefined;
|
|
72
|
+
}
|
|
51
73
|
async function runInteractive(cog, initialModel, stream) {
|
|
52
|
-
const rl = createInterface({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
74
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
75
|
+
let model = initialModel;
|
|
76
|
+
let agent = createCliAgent(model);
|
|
77
|
+
let threadId = `thread_${Date.now()}`;
|
|
78
|
+
let messageCount = 0;
|
|
79
|
+
let closing = false;
|
|
80
|
+
const close = async (code) => {
|
|
81
|
+
if (closing)
|
|
82
|
+
return;
|
|
83
|
+
closing = true;
|
|
84
|
+
rl.close();
|
|
85
|
+
await cog.close().catch(() => { });
|
|
86
|
+
process.exit(code);
|
|
60
87
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
88
|
+
rl.on('close', () => {
|
|
89
|
+
if (!closing) {
|
|
90
|
+
console.log(chalk.dim('\nGoodbye!'));
|
|
91
|
+
void close(0);
|
|
92
|
+
}
|
|
66
93
|
});
|
|
67
|
-
|
|
68
|
-
console.log(chalk.dim(`Model: ${modelShort}`));
|
|
94
|
+
console.log(chalk.dim(`Model: ${model}`));
|
|
69
95
|
console.log(chalk.dim('Commands: /model <name>, /clear, /help, exit\n'));
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
96
|
+
const handleCommand = (cmd) => {
|
|
97
|
+
const [rawCommand = '', ...args] = cmd.slice(1).split(/\s+/);
|
|
98
|
+
const command = rawCommand.toLowerCase();
|
|
99
|
+
switch (command) {
|
|
100
|
+
case 'model':
|
|
101
|
+
if (args.length === 0) {
|
|
102
|
+
console.log(chalk.dim(`Current model: ${model}`));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
model = args[0];
|
|
106
|
+
agent = createCliAgent(model);
|
|
107
|
+
log.success(`Switched to model: ${model}`);
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
case 'clear':
|
|
111
|
+
threadId = `thread_${Date.now()}`;
|
|
112
|
+
messageCount = 0;
|
|
113
|
+
console.log(chalk.dim('Conversation cleared'));
|
|
114
|
+
break;
|
|
115
|
+
case 'help':
|
|
116
|
+
console.log(chalk.dim('\nAvailable commands:'));
|
|
117
|
+
console.log(chalk.dim(' /model [name] - Show or change model'));
|
|
118
|
+
console.log(chalk.dim(' /clear - Clear conversation history'));
|
|
119
|
+
console.log(chalk.dim(' /help - Show this help'));
|
|
120
|
+
console.log(chalk.dim(' exit - Exit interactive mode\n'));
|
|
121
|
+
break;
|
|
122
|
+
default:
|
|
123
|
+
log.warn(`Unknown command: /${command}`);
|
|
124
|
+
log.dim('Type /help for available commands');
|
|
125
|
+
}
|
|
75
126
|
};
|
|
76
127
|
const handleInput = async (input) => {
|
|
77
128
|
const trimmed = input.trim();
|
|
78
|
-
if (!trimmed)
|
|
79
|
-
showPrompt();
|
|
129
|
+
if (!trimmed)
|
|
80
130
|
return;
|
|
81
|
-
|
|
82
|
-
if (
|
|
131
|
+
const lowered = trimmed.toLowerCase();
|
|
132
|
+
if (lowered === 'exit' || lowered === 'quit') {
|
|
83
133
|
console.log(chalk.dim('\nGoodbye!'));
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
process.exit(0);
|
|
134
|
+
await close(0);
|
|
135
|
+
return;
|
|
87
136
|
}
|
|
88
137
|
if (trimmed.startsWith('/')) {
|
|
89
|
-
|
|
90
|
-
showPrompt();
|
|
138
|
+
handleCommand(trimmed);
|
|
91
139
|
return;
|
|
92
140
|
}
|
|
141
|
+
messageCount++;
|
|
93
142
|
try {
|
|
94
|
-
state.messageCount++;
|
|
95
143
|
if (stream) {
|
|
96
144
|
process.stdout.write(chalk.green('→ '));
|
|
97
145
|
await cog.run(agent, {
|
|
98
146
|
input: trimmed,
|
|
99
|
-
threadId
|
|
147
|
+
threadId,
|
|
100
148
|
stream: true,
|
|
101
149
|
onToken: (token) => process.stdout.write(token),
|
|
102
150
|
});
|
|
103
151
|
console.log('\n');
|
|
104
152
|
}
|
|
105
153
|
else {
|
|
106
|
-
const result = await cog.run(agent, { input: trimmed, threadId
|
|
154
|
+
const result = await cog.run(agent, { input: trimmed, threadId });
|
|
107
155
|
console.log(chalk.green('→'), result.output);
|
|
108
156
|
console.log();
|
|
109
157
|
}
|
|
110
158
|
}
|
|
111
159
|
catch (error) {
|
|
160
|
+
if (stream)
|
|
161
|
+
console.log();
|
|
112
162
|
log.error(error instanceof Error ? error.message : String(error));
|
|
113
163
|
}
|
|
114
|
-
showPrompt();
|
|
115
164
|
};
|
|
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();
|
|
165
|
+
while (!closing) {
|
|
166
|
+
const prefix = messageCount > 0 ? `[${messageCount}] ` : '';
|
|
167
|
+
const input = await new Promise((resolveInput) => {
|
|
168
|
+
const onClose = () => resolveInput(null);
|
|
169
|
+
rl.once('close', onClose);
|
|
170
|
+
rl.question(chalk.cyan(`${prefix}> `), (answer) => {
|
|
171
|
+
rl.off('close', onClose);
|
|
172
|
+
resolveInput(answer);
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
if (input === null)
|
|
176
|
+
return;
|
|
177
|
+
await handleInput(input);
|
|
178
|
+
}
|
|
155
179
|
}
|
|
156
180
|
export const runCommand = new Command('run')
|
|
157
181
|
.description('Run agent with a message')
|
|
158
182
|
.argument('[message]', 'Message to send to agent')
|
|
159
|
-
.option('-c, --config <path>', 'Config file path
|
|
160
|
-
.option('-m, --model <model>', 'Model to use (e.g. ollama/
|
|
183
|
+
.option('-c, --config <path>', 'Config file path (default: ./cogitator.yml)')
|
|
184
|
+
.option('-m, --model <model>', 'Model to use (e.g. ollama/qwen3:8b)')
|
|
161
185
|
.option('-i, --interactive', 'Interactive mode')
|
|
162
186
|
.option('-s, --stream', 'Stream response tokens', true)
|
|
163
187
|
.option('--no-stream', 'Disable streaming')
|
|
164
188
|
.action(async (message, options) => {
|
|
165
|
-
let config = {};
|
|
166
189
|
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
|
-
}
|
|
190
|
+
if (options.config && !configPath) {
|
|
191
|
+
log.error(`Config file not found: ${resolve(options.config)}`);
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
if (!options.config && process.env.COGITATOR_CONFIG && !configPath) {
|
|
195
|
+
log.error(`COGITATOR_CONFIG points to a missing file: ${process.env.COGITATOR_CONFIG}`);
|
|
196
|
+
process.exit(1);
|
|
181
197
|
}
|
|
182
|
-
let
|
|
198
|
+
let config;
|
|
199
|
+
try {
|
|
200
|
+
config = loadConfig(configPath ? { configPath } : { skipYaml: true });
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
log.error(`Failed to load config: ${error instanceof Error ? error.message : error}`);
|
|
204
|
+
process.exit(1);
|
|
205
|
+
}
|
|
206
|
+
if (configPath)
|
|
207
|
+
log.dim(`Using config: ${configPath}`);
|
|
208
|
+
let model = resolveRunModel(options.model, process.env, config);
|
|
183
209
|
if (!model) {
|
|
184
|
-
|
|
210
|
+
const ollama = config.llm?.providers?.ollama;
|
|
211
|
+
const baseUrl = resolveOllamaUrl(process.env, ollama?.baseUrl);
|
|
212
|
+
model =
|
|
213
|
+
(await detectOllamaModel(baseUrl, ollama?.apiKey ?? process.env.OLLAMA_API_KEY)) ??
|
|
214
|
+
undefined;
|
|
185
215
|
if (!model) {
|
|
186
216
|
log.error('No model specified and no Ollama models found');
|
|
187
|
-
log.dim('Use -m to specify a model, e.g.: cogitator run -m ollama/
|
|
188
|
-
log.dim('Or set COGITATOR_MODEL
|
|
189
|
-
log.dim('Or start Ollama and pull a model: ollama pull
|
|
217
|
+
log.dim('Use -m to specify a model, e.g.: cogitator run -m ollama/qwen3:8b "Hello"');
|
|
218
|
+
log.dim('Or set COGITATOR_MODEL / llm.defaultModel in cogitator.yml');
|
|
219
|
+
log.dim('Or start Ollama and pull a model: ollama pull qwen3:8b');
|
|
190
220
|
process.exit(1);
|
|
191
221
|
}
|
|
192
222
|
log.dim(`Auto-detected model: ${model}`);
|
|
@@ -197,12 +227,7 @@ export const runCommand = new Command('run')
|
|
|
197
227
|
await runInteractive(cog, model, options.stream);
|
|
198
228
|
return;
|
|
199
229
|
}
|
|
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
|
-
});
|
|
230
|
+
const agent = createCliAgent(model);
|
|
206
231
|
try {
|
|
207
232
|
if (options.stream) {
|
|
208
233
|
await cog.run(agent, {
|
|
@@ -219,10 +244,10 @@ export const runCommand = new Command('run')
|
|
|
219
244
|
}
|
|
220
245
|
catch (error) {
|
|
221
246
|
log.error(error instanceof Error ? error.message : String(error));
|
|
222
|
-
process.
|
|
247
|
+
process.exitCode = 1;
|
|
223
248
|
}
|
|
224
249
|
finally {
|
|
225
|
-
await cog.close();
|
|
250
|
+
await cog.close().catch(() => { });
|
|
226
251
|
}
|
|
227
252
|
});
|
|
228
253
|
//# 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"}
|