@cogitator-ai/cli 0.3.6 → 0.3.13

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.
@@ -0,0 +1,270 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { existsSync, mkdirSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
4
+ import { resolve, basename } from 'node:path';
5
+ import { log } from '../utils/logger.js';
6
+ const GLOBAL_SKILLS_DIR = resolve(process.env.HOME ?? '~', '.cogitator/skills');
7
+ const LOCAL_SKILLS_DIR = resolve(process.cwd(), 'skills');
8
+ async function discoverSkills() {
9
+ const skills = [];
10
+ for (const dir of [LOCAL_SKILLS_DIR, GLOBAL_SKILLS_DIR]) {
11
+ if (!existsSync(dir))
12
+ continue;
13
+ const location = dir === LOCAL_SKILLS_DIR ? 'local' : 'global';
14
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
15
+ if (!entry.isDirectory())
16
+ continue;
17
+ const skillDir = resolve(dir, entry.name);
18
+ const hasSkillFile = existsSync(resolve(skillDir, 'skill.ts')) || existsSync(resolve(skillDir, 'skill.js'));
19
+ if (hasSkillFile) {
20
+ skills.push({ name: entry.name, location, path: skillDir });
21
+ }
22
+ }
23
+ }
24
+ return skills;
25
+ }
26
+ export const skillCommand = new Command('skill').description('Manage agent skills');
27
+ skillCommand
28
+ .command('list')
29
+ .description('List installed skills')
30
+ .action(async () => {
31
+ const skills = await discoverSkills();
32
+ if (skills.length === 0) {
33
+ log.info('No skills installed');
34
+ log.dim(' cogitator skill create <name> Create a new skill');
35
+ log.dim(' cogitator skill add <path> Install from path');
36
+ return;
37
+ }
38
+ console.log();
39
+ console.log(chalk.bold(' Installed Skills'));
40
+ console.log();
41
+ for (const skill of skills) {
42
+ const badge = skill.location === 'local' ? chalk.blue(' local') : chalk.dim(' global');
43
+ console.log(` ${chalk.green('●')} ${chalk.bold(skill.name)}${badge}`);
44
+ console.log(` ${chalk.dim(skill.path)}`);
45
+ }
46
+ console.log();
47
+ console.log(chalk.dim(` ${skills.length} skill${skills.length !== 1 ? 's' : ''} found`));
48
+ console.log();
49
+ });
50
+ skillCommand
51
+ .command('add <source>')
52
+ .description('Install a skill from a local path or directory')
53
+ .option('-g, --global', 'Install globally', false)
54
+ .action(async (source, options) => {
55
+ const sourcePath = resolve(process.cwd(), source);
56
+ if (!existsSync(sourcePath)) {
57
+ log.error(`Source not found: ${sourcePath}`);
58
+ process.exit(1);
59
+ }
60
+ const name = basename(sourcePath);
61
+ const targetDir = options.global ? GLOBAL_SKILLS_DIR : LOCAL_SKILLS_DIR;
62
+ const targetPath = resolve(targetDir, name);
63
+ if (existsSync(targetPath)) {
64
+ log.error(`Skill "${name}" already exists at ${targetPath}`);
65
+ log.dim('Remove it first: cogitator skill remove ' + name);
66
+ process.exit(1);
67
+ }
68
+ if (!existsSync(targetDir)) {
69
+ mkdirSync(targetDir, { recursive: true });
70
+ }
71
+ const { cpSync } = await import('node:fs');
72
+ cpSync(sourcePath, targetPath, { recursive: true });
73
+ log.success(`Skill "${name}" installed to ${options.global ? 'global' : 'local'} skills`);
74
+ log.dim(targetPath);
75
+ });
76
+ skillCommand
77
+ .command('remove <name>')
78
+ .description('Remove an installed skill')
79
+ .option('-g, --global', 'Remove from global skills', false)
80
+ .action((name, options) => {
81
+ const dirs = options.global ? [GLOBAL_SKILLS_DIR] : [LOCAL_SKILLS_DIR, GLOBAL_SKILLS_DIR];
82
+ for (const dir of dirs) {
83
+ const skillPath = resolve(dir, name);
84
+ if (existsSync(skillPath)) {
85
+ rmSync(skillPath, { recursive: true, force: true });
86
+ log.success(`Skill "${name}" removed from ${skillPath}`);
87
+ return;
88
+ }
89
+ }
90
+ log.error(`Skill "${name}" not found`);
91
+ log.dim('Run "cogitator skill list" to see installed skills');
92
+ });
93
+ skillCommand
94
+ .command('create <name>')
95
+ .description('Scaffold a new skill')
96
+ .option('-g, --global', 'Create in global skills directory', false)
97
+ .option('-t, --template <type>', 'Template type (basic, device, api)', 'basic')
98
+ .action((name, options) => {
99
+ const targetDir = options.global ? GLOBAL_SKILLS_DIR : LOCAL_SKILLS_DIR;
100
+ const skillDir = resolve(targetDir, name);
101
+ if (existsSync(skillDir)) {
102
+ log.error(`Skill "${name}" already exists at ${skillDir}`);
103
+ process.exit(1);
104
+ }
105
+ mkdirSync(resolve(skillDir, 'tools'), { recursive: true });
106
+ const templates = getTemplate(name, options.template);
107
+ writeFileSync(resolve(skillDir, 'skill.ts'), templates.skill);
108
+ writeFileSync(resolve(skillDir, 'tools', `${name}.ts`), templates.tool);
109
+ log.success(`Skill "${name}" created at ${skillDir}`);
110
+ console.log();
111
+ log.dim(' Files:');
112
+ log.dim(` ${skillDir}/skill.ts`);
113
+ log.dim(` ${skillDir}/tools/${name}.ts`);
114
+ console.log();
115
+ log.dim(' Next steps:');
116
+ log.dim(' 1. Edit the tool implementation');
117
+ log.dim(' 2. Update skill.ts with instructions');
118
+ log.dim(` 3. Add to your agent's skills array`);
119
+ console.log();
120
+ });
121
+ skillCommand
122
+ .command('validate [path]')
123
+ .description('Validate a skill definition')
124
+ .action(async (path) => {
125
+ const skillPath = path ? resolve(process.cwd(), path) : process.cwd();
126
+ const skillFile = existsSync(resolve(skillPath, 'skill.ts'))
127
+ ? resolve(skillPath, 'skill.ts')
128
+ : existsSync(resolve(skillPath, 'skill.js'))
129
+ ? resolve(skillPath, 'skill.js')
130
+ : null;
131
+ if (!skillFile) {
132
+ log.error('No skill.ts or skill.js found');
133
+ log.dim(`Searched in: ${skillPath}`);
134
+ process.exit(1);
135
+ }
136
+ log.step(`Validating ${chalk.dim(skillFile)}`);
137
+ try {
138
+ const mod = await import(`file://${skillFile}`);
139
+ const skill = mod.default ?? mod.skill;
140
+ if (!skill) {
141
+ log.error('Skill file must export a default or named "skill" export');
142
+ process.exit(1);
143
+ }
144
+ const issues = [];
145
+ if (!skill.name || typeof skill.name !== 'string') {
146
+ issues.push('Missing or invalid "name" field');
147
+ }
148
+ if (!skill.tools || !Array.isArray(skill.tools)) {
149
+ issues.push('Missing or invalid "tools" array');
150
+ }
151
+ if (skill.env && Array.isArray(skill.env)) {
152
+ for (const envVar of skill.env) {
153
+ if (!process.env[envVar]) {
154
+ issues.push(`Environment variable not set: ${envVar}`);
155
+ }
156
+ }
157
+ }
158
+ if (issues.length > 0) {
159
+ log.warn(`Found ${issues.length} issue${issues.length !== 1 ? 's' : ''}:`);
160
+ for (const issue of issues) {
161
+ console.log(` ${chalk.yellow('!')} ${issue}`);
162
+ }
163
+ process.exit(1);
164
+ }
165
+ log.success('Skill is valid');
166
+ console.log(` ${chalk.bold('Name')} ${skill.name}`);
167
+ console.log(` ${chalk.bold('Tools')} ${skill.tools.length}`);
168
+ if (skill.instructions) {
169
+ console.log(` ${chalk.bold('Instructions')} ${skill.instructions.length} chars`);
170
+ }
171
+ }
172
+ catch (err) {
173
+ log.error(`Failed to load skill: ${err instanceof Error ? err.message : String(err)}`);
174
+ process.exit(1);
175
+ }
176
+ });
177
+ function getTemplate(name, template) {
178
+ const camelName = name.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
179
+ if (template === 'device') {
180
+ return {
181
+ skill: `import { defineSkill } from '@cogitator-ai/core';
182
+ import { ${camelName}Tool } from './tools/${name}.js';
183
+
184
+ export default defineSkill({
185
+ name: '${name}',
186
+ version: '1.0.0',
187
+ description: 'Device control skill',
188
+ tools: [${camelName}Tool],
189
+ instructions: \`Use the ${name} tool when the user asks to interact with their device.\`,
190
+ });
191
+ `,
192
+ tool: `import { tool } from '@cogitator-ai/core';
193
+ import { z } from 'zod';
194
+ import { execSync } from 'node:child_process';
195
+
196
+ export const ${camelName}Tool = tool({
197
+ name: '${name}',
198
+ description: 'Interact with the device',
199
+ parameters: z.object({
200
+ action: z.string().describe('The action to perform'),
201
+ }),
202
+ execute: async ({ action }) => {
203
+ return { action, result: 'not implemented' };
204
+ },
205
+ });
206
+ `,
207
+ };
208
+ }
209
+ if (template === 'api') {
210
+ return {
211
+ skill: `import { defineSkill } from '@cogitator-ai/core';
212
+ import { ${camelName}Tool } from './tools/${name}.js';
213
+
214
+ export default defineSkill({
215
+ name: '${name}',
216
+ version: '1.0.0',
217
+ description: 'API integration skill',
218
+ tools: [${camelName}Tool],
219
+ env: ['${name.toUpperCase().replace(/-/g, '_')}_API_KEY'],
220
+ instructions: \`Use the ${name} tool to interact with the ${name} API.\`,
221
+ });
222
+ `,
223
+ tool: `import { tool } from '@cogitator-ai/core';
224
+ import { z } from 'zod';
225
+
226
+ export const ${camelName}Tool = tool({
227
+ name: '${name}',
228
+ description: 'Call the ${name} API',
229
+ parameters: z.object({
230
+ query: z.string().describe('The query to send'),
231
+ }),
232
+ execute: async ({ query }) => {
233
+ const apiKey = process.env.${name.toUpperCase().replace(/-/g, '_')}_API_KEY;
234
+ if (!apiKey) throw new Error('API key not configured');
235
+
236
+ return { query, result: 'not implemented' };
237
+ },
238
+ });
239
+ `,
240
+ };
241
+ }
242
+ return {
243
+ skill: `import { defineSkill } from '@cogitator-ai/core';
244
+ import { ${camelName}Tool } from './tools/${name}.js';
245
+
246
+ export default defineSkill({
247
+ name: '${name}',
248
+ version: '1.0.0',
249
+ description: 'A custom skill',
250
+ tools: [${camelName}Tool],
251
+ instructions: \`Use the ${name} tool when appropriate.\`,
252
+ });
253
+ `,
254
+ tool: `import { tool } from '@cogitator-ai/core';
255
+ import { z } from 'zod';
256
+
257
+ export const ${camelName}Tool = tool({
258
+ name: '${name}',
259
+ description: 'TODO: describe what this tool does',
260
+ parameters: z.object({
261
+ input: z.string().describe('The input to process'),
262
+ }),
263
+ execute: async ({ input }) => {
264
+ return { input, result: 'not implemented' };
265
+ },
266
+ });
267
+ `,
268
+ };
269
+ }
270
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- /**
2
- * cogitator up - start Docker services
3
- */
4
1
  import { Command } from 'commander';
5
2
  export declare const upCommand: Command;
6
3
  export declare const downCommand: Command;
@@ -1 +1 @@
1
- {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,SAAS,SAgGlB,CAAC;AAEL,eAAO,MAAM,WAAW,SAyBpB,CAAC"}
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuGpC,eAAO,MAAM,SAAS,SAiHlB,CAAC;AAEL,eAAO,MAAM,WAAW,SAyBpB,CAAC"}
@@ -1,19 +1,117 @@
1
- /**
2
- * cogitator up - start Docker services
3
- */
4
1
  import { Command } from 'commander';
5
2
  import { execSync, spawn } from 'node:child_process';
6
- import { dirname } from 'node:path';
3
+ import { existsSync, readFileSync } from 'node:fs';
4
+ import { dirname, resolve as resolvePath } from 'node:path';
7
5
  import ora from 'ora';
8
6
  import chalk from 'chalk';
7
+ import { parse as parseYaml } from 'yaml';
8
+ import { AssistantConfigSchema, RuntimeBuilder } from '@cogitator-ai/channels';
9
9
  import { log } from '../utils/logger.js';
10
10
  import { findDockerCompose, checkDocker } from '../utils/docker.js';
11
+ function loadDotenv(env) {
12
+ if (!existsSync('.env'))
13
+ return;
14
+ const content = readFileSync('.env', 'utf-8');
15
+ for (const line of content.split('\n')) {
16
+ const match = /^([^#=]+)=(.*)$/.exec(line);
17
+ if (match)
18
+ env[match[1].trim()] = match[2].trim();
19
+ }
20
+ }
21
+ const RESTART_EXIT_CODE = 78;
22
+ async function startFromConfig(configPath) {
23
+ const raw = parseYaml(readFileSync(configPath, 'utf-8'));
24
+ const config = AssistantConfigSchema.parse(raw);
25
+ const env = { ...process.env };
26
+ loadDotenv(env);
27
+ log.info(`Loading ${configPath}...`);
28
+ const spinner = ora('Building runtime...').start();
29
+ const { stringify } = await import('yaml');
30
+ const resolvedPath = resolvePath(configPath);
31
+ const builder = new RuntimeBuilder(config, env, {
32
+ configPath: resolvedPath,
33
+ configHelpers: {
34
+ parseYaml,
35
+ stringifyYaml: (o) => stringify(o, { lineWidth: 120 }),
36
+ validateConfig: (o) => AssistantConfigSchema.parse(o),
37
+ },
38
+ });
39
+ const runtime = await builder.build();
40
+ spinner.succeed('Runtime built');
41
+ const channelTypes = Object.keys(config.channels).filter((k) => config.channels[k] !== undefined);
42
+ await runtime.gateway.start();
43
+ if (runtime.scheduler)
44
+ runtime.scheduler.start();
45
+ console.log();
46
+ log.success(`Assistant "${config.name}" is running`);
47
+ console.log();
48
+ log.dim(' Model: ' + config.llm.model);
49
+ if (channelTypes.length > 0) {
50
+ log.dim(' Channels: ' + channelTypes.join(', '));
51
+ }
52
+ log.dim(' Memory: ' + config.memory.adapter);
53
+ console.log();
54
+ log.dim('Press Ctrl+C to stop');
55
+ const shutdown = async () => {
56
+ console.log();
57
+ try {
58
+ const stopSpinner = ora('Shutting down...').start();
59
+ await runtime.cleanup();
60
+ stopSpinner.succeed('Stopped');
61
+ }
62
+ catch {
63
+ await runtime.cleanup().catch(() => { });
64
+ console.log('Stopped');
65
+ }
66
+ process.exit(0);
67
+ };
68
+ process.on('SIGINT', () => void shutdown());
69
+ process.on('SIGTERM', () => void shutdown());
70
+ }
71
+ function startWithAutoRestart(configPath) {
72
+ const resolvedConfig = resolvePath(configPath);
73
+ const loop = () => {
74
+ const child = spawn(process.execPath, [process.argv[1], 'up', '--no-restart-loop'], {
75
+ stdio: 'inherit',
76
+ env: { ...process.env, __COGITATOR_CONFIG: resolvedConfig },
77
+ });
78
+ child.on('exit', (code) => {
79
+ if (code === RESTART_EXIT_CODE) {
80
+ log.info('Restarting with updated config...');
81
+ console.log();
82
+ loop();
83
+ }
84
+ else {
85
+ process.exit(code ?? 0);
86
+ }
87
+ });
88
+ };
89
+ loop();
90
+ }
11
91
  export const upCommand = new Command('up')
12
- .description('Start Docker services (Redis, Postgres, Ollama)')
92
+ .description('Start assistant from cogitator.yml or Docker services')
13
93
  .option('-d, --detach', 'Run in background (default)', true)
14
94
  .option('--no-detach', 'Run in foreground')
15
95
  .option('--pull', 'Pull latest images before starting')
96
+ .option('--no-restart-loop', 'Internal flag for auto-restart subprocess')
16
97
  .action(async (options) => {
98
+ const configPath = ['cogitator.yml', 'cogitator.yaml'].find((f) => existsSync(f));
99
+ if (configPath) {
100
+ if (options.restartLoop === false) {
101
+ await startFromConfig(configPath);
102
+ }
103
+ else {
104
+ const raw = parseYaml(readFileSync(configPath, 'utf-8'));
105
+ const config = AssistantConfigSchema.parse(raw);
106
+ if (config.capabilities.selfConfig) {
107
+ startWithAutoRestart(configPath);
108
+ }
109
+ else {
110
+ await startFromConfig(configPath);
111
+ }
112
+ }
113
+ return;
114
+ }
17
115
  log.info('Starting Cogitator services...');
18
116
  if (!checkDocker()) {
19
117
  log.error('Docker is not installed or not running');
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const wizardCommand: Command;
3
+ //# sourceMappingURL=wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/commands/wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsHpC,eAAO,MAAM,aAAa,SA4YtB,CAAC"}