@cogitator-ai/cli 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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Cogitator Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # @cogitator-ai/cli
2
+
3
+ Command-line interface for the Cogitator AI agent runtime.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add -g @cogitator-ai/cli
9
+ ```
10
+
11
+ ## Commands
12
+
13
+ ### Initialize a new project
14
+
15
+ ```bash
16
+ cogitator init my-project
17
+ cd my-project
18
+ ```
19
+
20
+ ### Start development services
21
+
22
+ ```bash
23
+ cogitator up
24
+ ```
25
+
26
+ Starts Redis, PostgreSQL, and Ollama via Docker Compose.
27
+
28
+ ### Stop services
29
+
30
+ ```bash
31
+ cogitator down
32
+ ```
33
+
34
+ ### Run an agent
35
+
36
+ ```bash
37
+ cogitator run "Hello, what can you help me with?"
38
+ ```
39
+
40
+ With a specific model:
41
+
42
+ ```bash
43
+ cogitator run -m ollama/gemma3:4b "Explain quantum computing"
44
+ ```
45
+
46
+ Interactive mode:
47
+
48
+ ```bash
49
+ cogitator run
50
+ ```
51
+
52
+ ## Project Structure
53
+
54
+ After `cogitator init`, your project will have:
55
+
56
+ ```
57
+ my-project/
58
+ ├── package.json
59
+ ├── cogitator.yml # Configuration
60
+ ├── agent.ts # Your agent definition
61
+ └── docker-compose.yml # Local services
62
+ ```
63
+
64
+ ## Documentation
65
+
66
+ See the [Cogitator documentation](https://github.com/eL1fe/cogitator) for full API reference.
67
+
68
+ ## License
69
+
70
+ MIT
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=init.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { existsSync, rmSync, readFileSync, mkdirSync } from 'node:fs';
3
+ import { join, dirname } from 'node:path';
4
+ import { execSync } from 'node:child_process';
5
+ import { tmpdir } from 'node:os';
6
+ import { fileURLToPath } from 'node:url';
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const CLI_PATH = join(__dirname, '../../dist/index.js');
9
+ describe('cogitator init', () => {
10
+ const testDir = join(tmpdir(), 'cogitator-test-' + Date.now());
11
+ const projectName = 'test-project';
12
+ const projectPath = join(testDir, projectName);
13
+ beforeEach(() => {
14
+ if (existsSync(testDir)) {
15
+ rmSync(testDir, { recursive: true, force: true });
16
+ }
17
+ mkdirSync(testDir, { recursive: true });
18
+ });
19
+ afterEach(() => {
20
+ if (existsSync(testDir)) {
21
+ rmSync(testDir, { recursive: true, force: true });
22
+ }
23
+ });
24
+ it('creates project directory structure', () => {
25
+ execSync(`node ${CLI_PATH} init ${projectName} --no-install`, {
26
+ cwd: testDir,
27
+ stdio: 'pipe',
28
+ });
29
+ expect(existsSync(projectPath)).toBe(true);
30
+ expect(existsSync(join(projectPath, 'package.json'))).toBe(true);
31
+ expect(existsSync(join(projectPath, 'tsconfig.json'))).toBe(true);
32
+ expect(existsSync(join(projectPath, 'cogitator.yml'))).toBe(true);
33
+ expect(existsSync(join(projectPath, 'src/agent.ts'))).toBe(true);
34
+ expect(existsSync(join(projectPath, 'docker-compose.yml'))).toBe(true);
35
+ expect(existsSync(join(projectPath, '.gitignore'))).toBe(true);
36
+ });
37
+ it('creates valid package.json', () => {
38
+ execSync(`node ${CLI_PATH} init ${projectName} --no-install`, {
39
+ cwd: testDir,
40
+ stdio: 'pipe',
41
+ });
42
+ const pkgJson = JSON.parse(readFileSync(join(projectPath, 'package.json'), 'utf-8'));
43
+ expect(pkgJson.name).toBe(projectName);
44
+ expect(pkgJson.dependencies['@cogitator-ai/core']).toBeDefined();
45
+ });
46
+ it('fails if directory already exists', () => {
47
+ execSync(`node ${CLI_PATH} init ${projectName} --no-install`, {
48
+ cwd: testDir,
49
+ stdio: 'pipe',
50
+ });
51
+ expect(() => {
52
+ execSync(`node ${CLI_PATH} init ${projectName} --no-install`, {
53
+ cwd: testDir,
54
+ stdio: 'pipe',
55
+ });
56
+ }).toThrow();
57
+ });
58
+ });
59
+ //# sourceMappingURL=init.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * cogitator init <name> - scaffold new project
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const initCommand: Command;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,WAAW,SAiMpB,CAAC"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * cogitator init <name> - scaffold new project
3
+ */
4
+ import { Command } from 'commander';
5
+ import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
6
+ import { join, resolve } from 'node:path';
7
+ import { execSync } from 'node:child_process';
8
+ import ora from 'ora';
9
+ import chalk from 'chalk';
10
+ import { log, printBanner } from '../utils/logger';
11
+ export const initCommand = new Command('init')
12
+ .description('Create a new Cogitator project')
13
+ .argument('<name>', 'Project name')
14
+ .option('--no-install', 'Skip dependency installation')
15
+ .action(async (name, options) => {
16
+ printBanner();
17
+ const projectPath = resolve(process.cwd(), name);
18
+ if (existsSync(projectPath)) {
19
+ log.error(`Directory "${name}" already exists`);
20
+ process.exit(1);
21
+ }
22
+ log.info(`Creating project: ${chalk.bold(name)}`);
23
+ const spinner = ora('Setting up project structure...').start();
24
+ try {
25
+ mkdirSync(join(projectPath, 'src'), { recursive: true });
26
+ writeFileSync(join(projectPath, 'package.json'), JSON.stringify({
27
+ name,
28
+ version: '0.1.0',
29
+ type: 'module',
30
+ scripts: {
31
+ dev: 'tsx watch src/agent.ts',
32
+ start: 'tsx src/agent.ts',
33
+ build: 'tsc',
34
+ },
35
+ dependencies: {
36
+ '@cogitator-ai/core': '^0.1.0',
37
+ '@cogitator-ai/config': '^0.1.0',
38
+ zod: '^3.22.4',
39
+ },
40
+ devDependencies: {
41
+ '@types/node': '^20.10.0',
42
+ tsx: '^4.7.0',
43
+ typescript: '^5.3.0',
44
+ },
45
+ }, null, 2));
46
+ writeFileSync(join(projectPath, 'tsconfig.json'), JSON.stringify({
47
+ compilerOptions: {
48
+ target: 'ES2022',
49
+ module: 'NodeNext',
50
+ moduleResolution: 'NodeNext',
51
+ strict: true,
52
+ esModuleInterop: true,
53
+ skipLibCheck: true,
54
+ outDir: './dist',
55
+ rootDir: './src',
56
+ },
57
+ include: ['src/**/*'],
58
+ }, null, 2));
59
+ writeFileSync(join(projectPath, 'cogitator.yml'), `# Cogitator Configuration
60
+ llm:
61
+ defaultProvider: ollama
62
+ providers:
63
+ ollama:
64
+ baseUrl: http://localhost:11434
65
+
66
+ memory:
67
+ adapter: memory
68
+ `);
69
+ writeFileSync(join(projectPath, 'src', 'agent.ts'), `import { Cogitator, Agent, tool } from '@cogitator-ai/core';
70
+ import { z } from 'zod';
71
+
72
+ const greet = tool({
73
+ name: 'greet',
74
+ description: 'Greet someone by name',
75
+ parameters: z.object({
76
+ name: z.string().describe('Name to greet'),
77
+ }),
78
+ execute: async ({ name }) => \`Hello, \${name}! 👋\`,
79
+ });
80
+
81
+ const agent = new Agent({
82
+ id: 'my-agent',
83
+ name: 'My Agent',
84
+ model: 'ollama/llama3.1:8b',
85
+ instructions: 'You are a helpful assistant. Use the greet tool when asked to greet someone.',
86
+ tools: [greet],
87
+ });
88
+
89
+ const cog = new Cogitator();
90
+
91
+ const result = await cog.run(agent, {
92
+ input: 'Hello! Can you greet Alex?',
93
+ });
94
+
95
+ console.log('Agent:', result.output);
96
+
97
+ await cog.close();
98
+ `);
99
+ writeFileSync(join(projectPath, 'docker-compose.yml'), `name: ${name}
100
+
101
+ services:
102
+ redis:
103
+ image: redis:7-alpine
104
+ ports:
105
+ - "6379:6379"
106
+ volumes:
107
+ - redis-data:/data
108
+
109
+ postgres:
110
+ image: pgvector/pgvector:pg16
111
+ ports:
112
+ - "5432:5432"
113
+ environment:
114
+ POSTGRES_USER: cogitator
115
+ POSTGRES_PASSWORD: cogitator
116
+ POSTGRES_DB: cogitator
117
+ volumes:
118
+ - postgres-data:/var/lib/postgresql/data
119
+
120
+ ollama:
121
+ image: ollama/ollama:latest
122
+ ports:
123
+ - "11434:11434"
124
+ volumes:
125
+ - ollama-data:/root/.ollama
126
+
127
+ volumes:
128
+ redis-data:
129
+ postgres-data:
130
+ ollama-data:
131
+ `);
132
+ writeFileSync(join(projectPath, '.gitignore'), `node_modules/
133
+ dist/
134
+ .env
135
+ *.log
136
+ `);
137
+ spinner.succeed('Project structure created');
138
+ if (options.install) {
139
+ const installSpinner = ora('Installing dependencies...').start();
140
+ try {
141
+ execSync('pnpm install', { cwd: projectPath, stdio: 'pipe' });
142
+ installSpinner.succeed('Dependencies installed');
143
+ }
144
+ catch {
145
+ installSpinner.warn('Could not install dependencies. Run pnpm install manually.');
146
+ }
147
+ }
148
+ console.log();
149
+ log.success(`Project "${name}" created successfully!`);
150
+ console.log();
151
+ log.dim('Next steps:');
152
+ console.log();
153
+ console.log(` cd ${name}`);
154
+ if (!options.install) {
155
+ console.log(' pnpm install');
156
+ }
157
+ console.log(' cogitator up # Start Docker services');
158
+ console.log(' pnpm dev # Run your agent');
159
+ console.log();
160
+ }
161
+ catch (error) {
162
+ spinner.fail('Failed to create project');
163
+ log.error(error instanceof Error ? error.message : String(error));
164
+ process.exit(1);
165
+ }
166
+ });
167
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * cogitator run [message] - run agent
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const runCommand: Command;
6
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2GpC,eAAO,MAAM,UAAU,SAsEnB,CAAC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * cogitator run [message] - run agent
3
+ */
4
+ import { Command } from 'commander';
5
+ import { existsSync, readFileSync } from 'node:fs';
6
+ import { resolve } from 'node:path';
7
+ import { createInterface } from 'node:readline';
8
+ import chalk from 'chalk';
9
+ import { log, printBanner } from '../utils/logger';
10
+ import { Cogitator, Agent } from '@cogitator-ai/core';
11
+ import { loadConfig } from '@cogitator-ai/config';
12
+ async function getOllamaModels() {
13
+ try {
14
+ const res = await fetch('http://localhost:11434/api/tags');
15
+ if (!res.ok)
16
+ return [];
17
+ const data = (await res.json());
18
+ return data.models.map((m) => m.name);
19
+ }
20
+ catch {
21
+ return [];
22
+ }
23
+ }
24
+ async function detectModel() {
25
+ const models = await getOllamaModels();
26
+ if (models.length === 0)
27
+ 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
+ }
33
+ return `ollama/${models[0]}`;
34
+ }
35
+ function findConfig(configPath) {
36
+ if (existsSync(configPath)) {
37
+ return resolve(configPath);
38
+ }
39
+ const names = ['cogitator.yml', 'cogitator.yaml', 'cogitator.json'];
40
+ for (const name of names) {
41
+ if (existsSync(name)) {
42
+ return resolve(name);
43
+ }
44
+ }
45
+ return null;
46
+ }
47
+ async function runInteractive(cog, agent, stream) {
48
+ const rl = createInterface({
49
+ input: process.stdin,
50
+ output: process.stdout,
51
+ });
52
+ const threadId = `thread_${Date.now()}`;
53
+ console.log(chalk.dim('Interactive mode. Type "exit" or Ctrl+C to quit.\n'));
54
+ const prompt = () => {
55
+ rl.question(chalk.cyan('> '), async (input) => {
56
+ const trimmed = input.trim();
57
+ if (!trimmed) {
58
+ prompt();
59
+ return;
60
+ }
61
+ if (trimmed.toLowerCase() === 'exit' || trimmed.toLowerCase() === 'quit') {
62
+ console.log(chalk.dim('\nGoodbye!'));
63
+ rl.close();
64
+ await cog.close();
65
+ process.exit(0);
66
+ }
67
+ try {
68
+ if (stream) {
69
+ process.stdout.write(chalk.green('→ '));
70
+ await cog.run(agent, {
71
+ input: trimmed,
72
+ threadId,
73
+ stream: true,
74
+ onToken: (token) => process.stdout.write(token),
75
+ });
76
+ console.log('\n');
77
+ }
78
+ else {
79
+ const result = await cog.run(agent, { input: trimmed, threadId });
80
+ console.log(chalk.green('→'), result.output);
81
+ console.log();
82
+ }
83
+ }
84
+ catch (error) {
85
+ log.error(error instanceof Error ? error.message : String(error));
86
+ }
87
+ prompt();
88
+ });
89
+ };
90
+ prompt();
91
+ }
92
+ export const runCommand = new Command('run')
93
+ .description('Run agent with a message')
94
+ .argument('[message]', 'Message to send to agent')
95
+ .option('-c, --config <path>', 'Config file path', 'cogitator.yml')
96
+ .option('-m, --model <model>', 'Model to use (e.g. ollama/gemma3:4b)')
97
+ .option('-i, --interactive', 'Interactive mode')
98
+ .option('-s, --stream', 'Stream response tokens', true)
99
+ .option('--no-stream', 'Disable streaming')
100
+ .action(async (message, options) => {
101
+ let config = {};
102
+ const configPath = findConfig(options.config);
103
+ if (configPath) {
104
+ log.dim(`Using config: ${configPath}`);
105
+ try {
106
+ const raw = readFileSync(configPath, 'utf-8');
107
+ if (configPath.endsWith('.json')) {
108
+ config = JSON.parse(raw);
109
+ }
110
+ else {
111
+ config = loadConfig();
112
+ }
113
+ }
114
+ catch {
115
+ }
116
+ }
117
+ let model = options.model;
118
+ if (!model) {
119
+ model = (await detectModel()) ?? undefined;
120
+ if (!model) {
121
+ log.error('No model specified and no Ollama models found');
122
+ log.dim('Use -m to specify a model, e.g.: cogitator run -m ollama/gemma3:4b "Hello"');
123
+ log.dim('Or start Ollama and pull a model: ollama pull gemma3:4b');
124
+ process.exit(1);
125
+ }
126
+ log.dim(`Auto-detected model: ${model}`);
127
+ }
128
+ const cog = new Cogitator(config);
129
+ const agent = new Agent({
130
+ id: 'cli-agent',
131
+ name: 'CLI Agent',
132
+ model,
133
+ instructions: 'You are a helpful AI assistant. Respond concisely and accurately.',
134
+ });
135
+ if (options.interactive || !message) {
136
+ printBanner();
137
+ await runInteractive(cog, agent, options.stream);
138
+ return;
139
+ }
140
+ try {
141
+ if (options.stream) {
142
+ await cog.run(agent, {
143
+ input: message,
144
+ stream: true,
145
+ onToken: (token) => process.stdout.write(token),
146
+ });
147
+ console.log();
148
+ }
149
+ else {
150
+ const result = await cog.run(agent, { input: message });
151
+ console.log(result.output);
152
+ }
153
+ }
154
+ catch (error) {
155
+ log.error(error instanceof Error ? error.message : String(error));
156
+ process.exit(1);
157
+ }
158
+ finally {
159
+ await cog.close();
160
+ }
161
+ });
162
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * cogitator up - start Docker services
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const upCommand: Command;
6
+ export declare const downCommand: Command;
7
+ //# sourceMappingURL=up.d.ts.map
@@ -0,0 +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;AAoCpC,eAAO,MAAM,SAAS,SAgGlB,CAAC;AAEL,eAAO,MAAM,WAAW,SAyBpB,CAAC"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * cogitator up - start Docker services
3
+ */
4
+ import { Command } from 'commander';
5
+ import { existsSync } from 'node:fs';
6
+ import { execSync, spawn } from 'node:child_process';
7
+ import { resolve, dirname } from 'node:path';
8
+ import ora from 'ora';
9
+ import chalk from 'chalk';
10
+ import { log } from '../utils/logger';
11
+ function findDockerCompose() {
12
+ if (existsSync('docker-compose.yml')) {
13
+ return resolve('docker-compose.yml');
14
+ }
15
+ if (existsSync('docker-compose.yaml')) {
16
+ return resolve('docker-compose.yaml');
17
+ }
18
+ let dir = process.cwd();
19
+ for (let i = 0; i < 5; i++) {
20
+ const parent = resolve(dir, '..');
21
+ if (parent === dir)
22
+ break;
23
+ dir = parent;
24
+ if (existsSync(resolve(dir, 'docker-compose.yml'))) {
25
+ return resolve(dir, 'docker-compose.yml');
26
+ }
27
+ }
28
+ return null;
29
+ }
30
+ function checkDocker() {
31
+ try {
32
+ execSync('docker --version', { stdio: 'pipe' });
33
+ return true;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ export const upCommand = new Command('up')
40
+ .description('Start Docker services (Redis, Postgres, Ollama)')
41
+ .option('-d, --detach', 'Run in background (default)', true)
42
+ .option('--no-detach', 'Run in foreground')
43
+ .option('--pull', 'Pull latest images before starting')
44
+ .action(async (options) => {
45
+ log.info('Starting Cogitator services...');
46
+ if (!checkDocker()) {
47
+ log.error('Docker is not installed or not running');
48
+ log.dim('Install Docker: https://docs.docker.com/get-docker/');
49
+ process.exit(1);
50
+ }
51
+ const composePath = findDockerCompose();
52
+ if (!composePath) {
53
+ log.error('No docker-compose.yml found');
54
+ log.dim('Run "cogitator init <name>" to create a project with Docker setup');
55
+ process.exit(1);
56
+ }
57
+ const composeDir = dirname(composePath);
58
+ log.dim(`Using: ${composePath}`);
59
+ if (options.pull) {
60
+ const pullSpinner = ora('Pulling latest images...').start();
61
+ try {
62
+ execSync('docker compose pull', { cwd: composeDir, stdio: 'pipe' });
63
+ pullSpinner.succeed('Images pulled');
64
+ }
65
+ catch (error) {
66
+ pullSpinner.fail('Failed to pull images');
67
+ log.error(error instanceof Error ? error.message : String(error));
68
+ }
69
+ }
70
+ const spinner = ora('Starting services...').start();
71
+ try {
72
+ const args = ['compose', 'up'];
73
+ if (options.detach) {
74
+ args.push('-d');
75
+ }
76
+ if (options.detach) {
77
+ execSync(['docker', ...args].join(' '), { cwd: composeDir, stdio: 'pipe' });
78
+ spinner.succeed('Services started');
79
+ await new Promise((r) => setTimeout(r, 2000));
80
+ const status = execSync('docker compose ps --format json', {
81
+ cwd: composeDir,
82
+ encoding: 'utf-8',
83
+ });
84
+ console.log();
85
+ log.success('Cogitator services are running:');
86
+ console.log();
87
+ try {
88
+ const services = status
89
+ .trim()
90
+ .split('\n')
91
+ .filter(Boolean)
92
+ .map((line) => JSON.parse(line));
93
+ for (const svc of services) {
94
+ const stateIcon = svc.State === 'running' ? chalk.green('●') : chalk.yellow('○');
95
+ console.log(` ${stateIcon} ${svc.Name} - ${svc.Status}`);
96
+ }
97
+ }
98
+ catch {
99
+ console.log(status);
100
+ }
101
+ console.log();
102
+ log.dim('Connection info:');
103
+ console.log(' Redis: redis://localhost:6379');
104
+ console.log(' Postgres: postgresql://cogitator:cogitator@localhost:5432/cogitator');
105
+ console.log(' Ollama: http://localhost:11434');
106
+ console.log();
107
+ log.dim('Commands:');
108
+ console.log(' cogitator down - Stop services');
109
+ console.log(' docker compose logs -f - View logs');
110
+ console.log();
111
+ }
112
+ else {
113
+ spinner.stop();
114
+ const proc = spawn('docker', args, {
115
+ cwd: composeDir,
116
+ stdio: 'inherit',
117
+ });
118
+ proc.on('exit', (code) => process.exit(code ?? 0));
119
+ }
120
+ }
121
+ catch (error) {
122
+ spinner.fail('Failed to start services');
123
+ log.error(error instanceof Error ? error.message : String(error));
124
+ process.exit(1);
125
+ }
126
+ });
127
+ export const downCommand = new Command('down')
128
+ .description('Stop Docker services')
129
+ .option('-v, --volumes', 'Remove volumes (deletes data)')
130
+ .action((options) => {
131
+ const composePath = findDockerCompose();
132
+ if (!composePath) {
133
+ log.error('No docker-compose.yml found');
134
+ process.exit(1);
135
+ }
136
+ const composeDir = dirname(composePath);
137
+ const spinner = ora('Stopping services...').start();
138
+ try {
139
+ const args = ['compose', 'down'];
140
+ if (options.volumes) {
141
+ args.push('-v');
142
+ }
143
+ execSync(['docker', ...args].join(' '), { cwd: composeDir, stdio: 'pipe' });
144
+ spinner.succeed('Services stopped');
145
+ }
146
+ catch (error) {
147
+ spinner.fail('Failed to stop services');
148
+ log.error(error instanceof Error ? error.message : String(error));
149
+ process.exit(1);
150
+ }
151
+ });
152
+ //# sourceMappingURL=up.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Cogitator CLI
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;GAEG"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Cogitator CLI
4
+ */
5
+ import { Command } from 'commander';
6
+ import { initCommand } from './commands/init';
7
+ import { upCommand, downCommand } from './commands/up';
8
+ import { runCommand } from './commands/run';
9
+ const program = new Command()
10
+ .name('cogitator')
11
+ .description('Cogitator AI Agent Runtime CLI')
12
+ .version('0.1.0');
13
+ program.addCommand(initCommand);
14
+ program.addCommand(upCommand);
15
+ program.addCommand(downCommand);
16
+ program.addCommand(runCommand);
17
+ program.parse();
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CLI Logger with colored output
3
+ */
4
+ export declare const log: {
5
+ info: (msg: string) => void;
6
+ success: (msg: string) => void;
7
+ warn: (msg: string) => void;
8
+ error: (msg: string) => void;
9
+ step: (msg: string) => void;
10
+ dim: (msg: string) => void;
11
+ };
12
+ export declare function printBanner(): void;
13
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,GAAG;gBACF,MAAM;mBACH,MAAM;gBACT,MAAM;iBACL,MAAM;gBACP,MAAM;eACP,MAAM;CAClB,CAAC;AAEF,wBAAgB,WAAW,SAU1B"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * CLI Logger with colored output
3
+ */
4
+ import chalk from 'chalk';
5
+ export const log = {
6
+ info: (msg) => console.log(chalk.blue('ℹ'), msg),
7
+ success: (msg) => console.log(chalk.green('✓'), msg),
8
+ warn: (msg) => console.log(chalk.yellow('⚠'), msg),
9
+ error: (msg) => console.log(chalk.red('✗'), msg),
10
+ step: (msg) => console.log(chalk.cyan('→'), msg),
11
+ dim: (msg) => console.log(chalk.dim(msg)),
12
+ };
13
+ export function printBanner() {
14
+ console.log(chalk.bold.cyan(`
15
+ ___ _ _ _
16
+ / __\\___ __ _(_) |_ __ _| |_ ___ _ __
17
+ / / / _ \\ / _\` | | __/ _\` | __/ _ \\| '__|
18
+ / /__| (_) | (_| | | || (_| | || (_) | |
19
+ \\____/\\___/ \\__, |_|\\__\\__,_|\\__\\___/|_|
20
+ |___/
21
+ `));
22
+ console.log(chalk.dim(' AI Agent Runtime v0.1.0\n'));
23
+ }
24
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACxD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAC5D,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAC1D,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACxD,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACxD,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;CAO7B,CAAC,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;AACxD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@cogitator-ai/cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for Cogitator AI Agent Runtime",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "cogitator": "./dist/index.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "dependencies": {
21
+ "commander": "^12.0.0",
22
+ "chalk": "^5.3.0",
23
+ "ora": "^8.0.0",
24
+ "@cogitator-ai/core": "0.1.0",
25
+ "@cogitator-ai/config": "0.1.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^20.10.0",
29
+ "typescript": "^5.3.0",
30
+ "vitest": "^1.0.0"
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/eL1fe/cogitator.git",
35
+ "directory": "packages/cli"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "license": "MIT",
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "dev": "tsc --watch",
44
+ "clean": "rm -rf dist",
45
+ "typecheck": "tsc --noEmit",
46
+ "test": "vitest run",
47
+ "test:watch": "vitest"
48
+ }
49
+ }