@cogitator-ai/cli 0.1.0 → 0.2.1

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,6 @@
1
+ /**
2
+ * cogitator logs - view service logs
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const logsCommand: Command;
6
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,eAAO,MAAM,WAAW,SAuCpB,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * cogitator logs - view service logs
3
+ */
4
+ import { Command } from 'commander';
5
+ import { existsSync } from 'node:fs';
6
+ import { spawn } from 'node:child_process';
7
+ import { resolve, dirname } from 'node:path';
8
+ import { log } from '../utils/logger.js';
9
+ function findDockerCompose() {
10
+ if (existsSync('docker-compose.yml'))
11
+ return resolve('docker-compose.yml');
12
+ if (existsSync('docker-compose.yaml'))
13
+ return resolve('docker-compose.yaml');
14
+ let dir = process.cwd();
15
+ for (let i = 0; i < 5; i++) {
16
+ const parent = resolve(dir, '..');
17
+ if (parent === dir)
18
+ break;
19
+ dir = parent;
20
+ if (existsSync(resolve(dir, 'docker-compose.yml'))) {
21
+ return resolve(dir, 'docker-compose.yml');
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ export const logsCommand = new Command('logs')
27
+ .description('View logs from Docker services')
28
+ .argument('[service]', 'Service name (redis, postgres, ollama)')
29
+ .option('-f, --follow', 'Follow log output', false)
30
+ .option('-n, --tail <lines>', 'Number of lines to show', '100')
31
+ .option('-t, --timestamps', 'Show timestamps', false)
32
+ .action((service, options) => {
33
+ const composePath = findDockerCompose();
34
+ if (!composePath) {
35
+ log.error('No docker-compose.yml found');
36
+ log.dim('Run "cogitator init <name>" to create a project');
37
+ process.exit(1);
38
+ }
39
+ const composeDir = dirname(composePath);
40
+ const args = ['compose', 'logs'];
41
+ if (options.follow)
42
+ args.push('-f');
43
+ if (options.tail)
44
+ args.push('--tail', options.tail);
45
+ if (options.timestamps)
46
+ args.push('-t');
47
+ if (service) {
48
+ args.push(service);
49
+ }
50
+ const proc = spawn('docker', args, {
51
+ cwd: composeDir,
52
+ stdio: 'inherit',
53
+ });
54
+ proc.on('error', (err) => {
55
+ log.error(`Failed to run docker compose logs: ${err.message}`);
56
+ process.exit(1);
57
+ });
58
+ proc.on('exit', (code) => {
59
+ process.exit(code ?? 0);
60
+ });
61
+ });
62
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * cogitator models - list available models
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const modelsCommand: Command;
6
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCpC,eAAO,MAAM,aAAa,SAqDtB,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * cogitator models - list available models
3
+ */
4
+ import { Command } from 'commander';
5
+ import chalk from 'chalk';
6
+ import ora from 'ora';
7
+ import { log } from '../utils/logger.js';
8
+ function formatSize(bytes) {
9
+ const gb = bytes / (1024 * 1024 * 1024);
10
+ if (gb >= 1)
11
+ return `${gb.toFixed(1)} GB`;
12
+ const mb = bytes / (1024 * 1024);
13
+ return `${mb.toFixed(0)} MB`;
14
+ }
15
+ function formatDate(isoDate) {
16
+ const date = new Date(isoDate);
17
+ const now = new Date();
18
+ const diff = now.getTime() - date.getTime();
19
+ const days = Math.floor(diff / (1000 * 60 * 60 * 24));
20
+ if (days === 0)
21
+ return 'today';
22
+ if (days === 1)
23
+ return 'yesterday';
24
+ if (days < 7)
25
+ return `${days} days ago`;
26
+ if (days < 30)
27
+ return `${Math.floor(days / 7)} weeks ago`;
28
+ return `${Math.floor(days / 30)} months ago`;
29
+ }
30
+ export const modelsCommand = new Command('models')
31
+ .description('List available Ollama models')
32
+ .option('--pull <model>', 'Pull a model from Ollama registry')
33
+ .action(async (options) => {
34
+ if (options.pull) {
35
+ await pullModel(options.pull);
36
+ return;
37
+ }
38
+ const spinner = ora('Fetching models from Ollama...').start();
39
+ try {
40
+ const res = await fetch('http://localhost:11434/api/tags');
41
+ if (!res.ok) {
42
+ spinner.fail('Failed to connect to Ollama');
43
+ log.dim('Make sure Ollama is running: ollama serve');
44
+ process.exit(1);
45
+ }
46
+ const data = (await res.json());
47
+ spinner.stop();
48
+ if (data.models.length === 0) {
49
+ log.warn('No models installed');
50
+ console.log();
51
+ log.dim('Pull a model with: cogitator models --pull llama3.1:8b');
52
+ log.dim('Or directly: ollama pull llama3.1:8b');
53
+ return;
54
+ }
55
+ console.log();
56
+ log.success(`Found ${data.models.length} model(s)`);
57
+ console.log();
58
+ const sorted = data.models.sort((a, b) => b.size - a.size);
59
+ for (const model of sorted) {
60
+ const name = model.name.padEnd(25);
61
+ const size = formatSize(model.size).padStart(8);
62
+ const updated = formatDate(model.modified_at);
63
+ console.log(` ${chalk.cyan(name)} ${chalk.dim(size)} ${chalk.dim(updated)}`);
64
+ }
65
+ console.log();
66
+ log.dim('Use with: cogitator run -m ollama/<model> "message"');
67
+ }
68
+ catch {
69
+ spinner.fail('Cannot connect to Ollama');
70
+ log.dim('Start Ollama with: ollama serve');
71
+ log.dim('Or install from: https://ollama.ai');
72
+ process.exit(1);
73
+ }
74
+ });
75
+ async function pullModel(model) {
76
+ log.info(`Pulling model: ${model}`);
77
+ console.log();
78
+ try {
79
+ const res = await fetch('http://localhost:11434/api/pull', {
80
+ method: 'POST',
81
+ headers: { 'Content-Type': 'application/json' },
82
+ body: JSON.stringify({ name: model }),
83
+ });
84
+ if (!res.ok) {
85
+ log.error('Failed to start pull');
86
+ process.exit(1);
87
+ }
88
+ const reader = res.body?.getReader();
89
+ if (!reader) {
90
+ log.error('No response body');
91
+ process.exit(1);
92
+ }
93
+ const decoder = new TextDecoder();
94
+ let lastStatus = '';
95
+ while (true) {
96
+ const { done, value } = await reader.read();
97
+ if (done)
98
+ break;
99
+ const chunk = decoder.decode(value);
100
+ const lines = chunk.split('\n').filter(Boolean);
101
+ for (const line of lines) {
102
+ try {
103
+ const data = JSON.parse(line);
104
+ if (data.status !== lastStatus) {
105
+ if (data.completed && data.total) {
106
+ const pct = Math.round((data.completed / data.total) * 100);
107
+ process.stdout.write(`\r ${data.status} ${pct}%`.padEnd(60));
108
+ }
109
+ else {
110
+ process.stdout.write(`\r ${data.status}`.padEnd(60));
111
+ }
112
+ lastStatus = data.status;
113
+ }
114
+ }
115
+ catch { }
116
+ }
117
+ }
118
+ console.log();
119
+ console.log();
120
+ log.success(`Model ${model} pulled successfully`);
121
+ }
122
+ catch {
123
+ log.error('Cannot connect to Ollama');
124
+ log.dim('Make sure Ollama is running: ollama serve');
125
+ process.exit(1);
126
+ }
127
+ }
128
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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;AA+LpC,eAAO,MAAM,UAAU,SAwEnB,CAAC"}
@@ -6,7 +6,7 @@ import { existsSync, readFileSync } from 'node:fs';
6
6
  import { resolve } from 'node:path';
7
7
  import { createInterface } from 'node:readline';
8
8
  import chalk from 'chalk';
9
- import { log, printBanner } from '../utils/logger';
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
  async function getOllamaModels() {
@@ -33,6 +33,10 @@ async function detectModel() {
33
33
  return `ollama/${models[0]}`;
34
34
  }
35
35
  function findConfig(configPath) {
36
+ const envConfig = process.env.COGITATOR_CONFIG;
37
+ if (envConfig && existsSync(envConfig)) {
38
+ return resolve(envConfig);
39
+ }
36
40
  if (existsSync(configPath)) {
37
41
  return resolve(configPath);
38
42
  }
@@ -44,50 +48,110 @@ function findConfig(configPath) {
44
48
  }
45
49
  return null;
46
50
  }
47
- async function runInteractive(cog, agent, stream) {
51
+ async function runInteractive(cog, initialModel, stream) {
48
52
  const rl = createInterface({
49
53
  input: process.stdin,
50
54
  output: process.stdout,
51
55
  });
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;
56
+ const state = {
57
+ model: initialModel,
58
+ threadId: `thread_${Date.now()}`,
59
+ messageCount: 0,
60
+ };
61
+ let agent = new Agent({
62
+ id: 'cli-agent',
63
+ name: 'CLI Agent',
64
+ model: state.model,
65
+ instructions: 'You are a helpful AI assistant. Respond concisely and accurately.',
66
+ });
67
+ const modelShort = state.model.replace('ollama/', '');
68
+ console.log(chalk.dim(`Model: ${modelShort}`));
69
+ console.log(chalk.dim('Commands: /model <name>, /clear, /help, exit\n'));
70
+ const showPrompt = () => {
71
+ const prefix = state.messageCount > 0 ? `[${state.messageCount}] ` : '';
72
+ rl.question(chalk.cyan(`${prefix}> `), async (input) => {
73
+ await handleInput(input);
74
+ });
75
+ };
76
+ const handleInput = async (input) => {
77
+ const trimmed = input.trim();
78
+ if (!trimmed) {
79
+ showPrompt();
80
+ return;
81
+ }
82
+ if (trimmed.toLowerCase() === 'exit' || trimmed.toLowerCase() === 'quit') {
83
+ console.log(chalk.dim('\nGoodbye!'));
84
+ rl.close();
85
+ await cog.close();
86
+ process.exit(0);
87
+ }
88
+ if (trimmed.startsWith('/')) {
89
+ await handleCommand(trimmed);
90
+ showPrompt();
91
+ return;
92
+ }
93
+ try {
94
+ state.messageCount++;
95
+ if (stream) {
96
+ process.stdout.write(chalk.green('→ '));
97
+ await cog.run(agent, {
98
+ input: trimmed,
99
+ threadId: state.threadId,
100
+ stream: true,
101
+ onToken: (token) => process.stdout.write(token),
102
+ });
103
+ console.log('\n');
60
104
  }
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);
105
+ else {
106
+ const result = await cog.run(agent, { input: trimmed, threadId: state.threadId });
107
+ console.log(chalk.green('→'), result.output);
108
+ console.log();
66
109
  }
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');
110
+ }
111
+ catch (error) {
112
+ log.error(error instanceof Error ? error.message : String(error));
113
+ }
114
+ showPrompt();
115
+ };
116
+ const handleCommand = async (cmd) => {
117
+ const parts = cmd.slice(1).split(/\s+/);
118
+ const command = parts[0].toLowerCase();
119
+ const args = parts.slice(1);
120
+ switch (command) {
121
+ case 'model':
122
+ if (args.length === 0) {
123
+ console.log(chalk.dim(`Current model: ${state.model}`));
77
124
  }
78
125
  else {
79
- const result = await cog.run(agent, { input: trimmed, threadId });
80
- console.log(chalk.green('→'), result.output);
81
- console.log();
126
+ const newModel = args[0].includes('/') ? args[0] : `ollama/${args[0]}`;
127
+ state.model = newModel;
128
+ agent = new Agent({
129
+ id: 'cli-agent',
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}`);
82
135
  }
83
- }
84
- catch (error) {
85
- log.error(error instanceof Error ? error.message : String(error));
86
- }
87
- prompt();
88
- });
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
+ }
89
153
  };
90
- prompt();
154
+ showPrompt();
91
155
  }
92
156
  export const runCommand = new Command('run')
93
157
  .description('Run agent with a message')
@@ -111,32 +175,34 @@ export const runCommand = new Command('run')
111
175
  config = loadConfig();
112
176
  }
113
177
  }
114
- catch {
178
+ catch (err) {
179
+ log.warn(`Failed to load config: ${err instanceof Error ? err.message : String(err)}`);
115
180
  }
116
181
  }
117
- let model = options.model;
182
+ let model = options.model || process.env.COGITATOR_MODEL;
118
183
  if (!model) {
119
184
  model = (await detectModel()) ?? undefined;
120
185
  if (!model) {
121
186
  log.error('No model specified and no Ollama models found');
122
187
  log.dim('Use -m to specify a model, e.g.: cogitator run -m ollama/gemma3:4b "Hello"');
188
+ log.dim('Or set COGITATOR_MODEL environment variable');
123
189
  log.dim('Or start Ollama and pull a model: ollama pull gemma3:4b');
124
190
  process.exit(1);
125
191
  }
126
192
  log.dim(`Auto-detected model: ${model}`);
127
193
  }
128
194
  const cog = new Cogitator(config);
195
+ if (options.interactive || !message) {
196
+ printBanner();
197
+ await runInteractive(cog, model, options.stream);
198
+ return;
199
+ }
129
200
  const agent = new Agent({
130
201
  id: 'cli-agent',
131
202
  name: 'CLI Agent',
132
203
  model,
133
204
  instructions: 'You are a helpful AI assistant. Respond concisely and accurately.',
134
205
  });
135
- if (options.interactive || !message) {
136
- printBanner();
137
- await runInteractive(cog, agent, options.stream);
138
- return;
139
- }
140
206
  try {
141
207
  if (options.stream) {
142
208
  await cog.run(agent, {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * cogitator status - show service status
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const statusCommand: Command;
6
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDpC,eAAO,MAAM,aAAa,SAoEtB,CAAC"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * cogitator status - show service status
3
+ */
4
+ import { Command } from 'commander';
5
+ import { existsSync } from 'node:fs';
6
+ import { execSync } from 'node:child_process';
7
+ import { resolve, dirname } from 'node:path';
8
+ import chalk from 'chalk';
9
+ import { log } from '../utils/logger.js';
10
+ function findDockerCompose() {
11
+ if (existsSync('docker-compose.yml'))
12
+ return resolve('docker-compose.yml');
13
+ if (existsSync('docker-compose.yaml'))
14
+ return resolve('docker-compose.yaml');
15
+ let dir = process.cwd();
16
+ for (let i = 0; i < 5; i++) {
17
+ const parent = resolve(dir, '..');
18
+ if (parent === dir)
19
+ break;
20
+ dir = parent;
21
+ if (existsSync(resolve(dir, 'docker-compose.yml'))) {
22
+ return resolve(dir, 'docker-compose.yml');
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ function checkDocker() {
28
+ try {
29
+ execSync('docker info', { stdio: 'pipe' });
30
+ return true;
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
36
+ async function checkOllama() {
37
+ try {
38
+ const res = await fetch('http://localhost:11434/api/tags');
39
+ return res.ok;
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ }
45
+ export const statusCommand = new Command('status')
46
+ .alias('ps')
47
+ .description('Show status of Cogitator services')
48
+ .action(async () => {
49
+ console.log();
50
+ log.info('Cogitator Services Status');
51
+ console.log();
52
+ if (!checkDocker()) {
53
+ log.error('Docker is not running');
54
+ log.dim('Start Docker Desktop or run: sudo systemctl start docker');
55
+ process.exit(1);
56
+ }
57
+ const composePath = findDockerCompose();
58
+ if (composePath) {
59
+ const composeDir = dirname(composePath);
60
+ try {
61
+ const output = execSync('docker compose ps --format json', {
62
+ cwd: composeDir,
63
+ encoding: 'utf-8',
64
+ stdio: ['pipe', 'pipe', 'pipe'],
65
+ });
66
+ const services = output
67
+ .trim()
68
+ .split('\n')
69
+ .filter(Boolean)
70
+ .map((line) => JSON.parse(line));
71
+ if (services.length === 0) {
72
+ log.warn('No services running');
73
+ log.dim('Run "cogitator up" to start services');
74
+ }
75
+ else {
76
+ console.log(chalk.dim(' Docker Compose Services:'));
77
+ console.log();
78
+ for (const svc of services) {
79
+ const isRunning = svc.State === 'running';
80
+ const icon = isRunning ? chalk.green('●') : chalk.red('○');
81
+ const name = svc.Name.padEnd(20);
82
+ const state = isRunning ? chalk.green(svc.State) : chalk.red(svc.State);
83
+ console.log(` ${icon} ${name} ${state} ${chalk.dim(svc.Status)}`);
84
+ }
85
+ console.log();
86
+ }
87
+ }
88
+ catch {
89
+ log.dim('No docker-compose services found');
90
+ }
91
+ }
92
+ console.log(chalk.dim(' External Services:'));
93
+ console.log();
94
+ const ollamaRunning = await checkOllama();
95
+ const ollamaIcon = ollamaRunning ? chalk.green('●') : chalk.red('○');
96
+ const ollamaState = ollamaRunning ? chalk.green('running') : chalk.red('stopped');
97
+ console.log(` ${ollamaIcon} ${'Ollama'.padEnd(20)} ${ollamaState} ${chalk.dim('localhost:11434')}`);
98
+ console.log();
99
+ if (!ollamaRunning) {
100
+ log.dim('Tip: Start Ollama with "ollama serve" or via Docker');
101
+ }
102
+ });
103
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { execSync, spawn } from 'node:child_process';
7
7
  import { resolve, dirname } from 'node:path';
8
8
  import ora from 'ora';
9
9
  import chalk from 'chalk';
10
- import { log } from '../utils/logger';
10
+ import { log } from '../utils/logger.js';
11
11
  function findDockerCompose() {
12
12
  if (existsSync('docker-compose.yml')) {
13
13
  return resolve('docker-compose.yml');
@@ -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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"}