@cogitator-ai/cli 0.3.2 → 0.3.3

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/dist/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/cli",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "CLI for Cogitator AI Agent Runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=docker.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docker.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/docker.test.ts"],"names":[],"mappings":""}
@@ -1,68 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import { mkdtempSync, writeFileSync, mkdirSync, rmSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { tmpdir } from 'node:os';
5
- describe('findDockerCompose', () => {
6
- let tempDir;
7
- let originalCwd;
8
- beforeEach(() => {
9
- tempDir = mkdtempSync(join(tmpdir(), 'cli-docker-'));
10
- originalCwd = process.cwd();
11
- });
12
- afterEach(() => {
13
- process.chdir(originalCwd);
14
- rmSync(tempDir, { recursive: true, force: true });
15
- });
16
- it('finds docker-compose.yml in current dir', async () => {
17
- writeFileSync(join(tempDir, 'docker-compose.yml'), 'name: test');
18
- process.chdir(tempDir);
19
- const { findDockerCompose } = await import('../utils/docker.js');
20
- const result = findDockerCompose();
21
- expect(result).toBeTruthy();
22
- expect(result).toContain('docker-compose.yml');
23
- });
24
- it('finds docker-compose.yaml in current dir', async () => {
25
- writeFileSync(join(tempDir, 'docker-compose.yaml'), 'name: test');
26
- process.chdir(tempDir);
27
- const { findDockerCompose } = await import('../utils/docker.js');
28
- const result = findDockerCompose();
29
- expect(result).toBeTruthy();
30
- expect(result).toContain('docker-compose.yaml');
31
- });
32
- it('finds docker-compose.yml in parent directory', async () => {
33
- writeFileSync(join(tempDir, 'docker-compose.yml'), 'name: test');
34
- const subDir = join(tempDir, 'subdir');
35
- mkdirSync(subDir, { recursive: true });
36
- process.chdir(subDir);
37
- const { findDockerCompose } = await import('../utils/docker.js');
38
- const result = findDockerCompose();
39
- expect(result).toBeTruthy();
40
- expect(result).toContain('docker-compose.yml');
41
- });
42
- it('finds docker-compose.yaml in parent directory', async () => {
43
- writeFileSync(join(tempDir, 'docker-compose.yaml'), 'name: test');
44
- const subDir = join(tempDir, 'deep', 'nested');
45
- mkdirSync(subDir, { recursive: true });
46
- process.chdir(subDir);
47
- const { findDockerCompose } = await import('../utils/docker.js');
48
- const result = findDockerCompose();
49
- expect(result).toBeTruthy();
50
- expect(result).toContain('docker-compose.yaml');
51
- });
52
- it('returns null when no compose file found', async () => {
53
- process.chdir(tempDir);
54
- const { findDockerCompose } = await import('../utils/docker.js');
55
- const result = findDockerCompose();
56
- expect(result).toBeNull();
57
- });
58
- });
59
- describe('checkDocker', () => {
60
- it('returns true when docker is available', async () => {
61
- vi.mock('node:child_process', () => ({
62
- execSync: vi.fn(),
63
- }));
64
- const { checkDocker } = await import('../utils/docker.js');
65
- expect(typeof checkDocker()).toBe('boolean');
66
- });
67
- });
68
- //# sourceMappingURL=docker.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docker.test.js","sourceRoot":"","sources":["../../src/__tests__/docker.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=init.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":""}
@@ -1,135 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import { existsSync, rmSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { tmpdir } from 'node:os';
5
- function createProjectStructure(projectPath, projectName) {
6
- mkdirSync(join(projectPath, 'src'), { recursive: true });
7
- writeFileSync(join(projectPath, 'package.json'), JSON.stringify({
8
- name: projectName,
9
- version: '0.1.0',
10
- type: 'module',
11
- scripts: {
12
- dev: 'tsx watch src/agent.ts',
13
- start: 'tsx src/agent.ts',
14
- build: 'tsc',
15
- },
16
- dependencies: {
17
- '@cogitator-ai/core': '^0.1.0',
18
- '@cogitator-ai/config': '^0.1.0',
19
- zod: '^3.22.4',
20
- },
21
- devDependencies: {
22
- '@types/node': '^20.10.0',
23
- tsx: '^4.7.0',
24
- typescript: '^5.3.0',
25
- },
26
- }, null, 2));
27
- writeFileSync(join(projectPath, 'tsconfig.json'), JSON.stringify({
28
- compilerOptions: {
29
- target: 'ES2022',
30
- module: 'NodeNext',
31
- moduleResolution: 'NodeNext',
32
- strict: true,
33
- esModuleInterop: true,
34
- skipLibCheck: true,
35
- outDir: './dist',
36
- rootDir: './src',
37
- },
38
- include: ['src/**/*'],
39
- }, null, 2));
40
- writeFileSync(join(projectPath, 'cogitator.yml'), `# Cogitator Configuration
41
- llm:
42
- defaultProvider: ollama
43
- providers:
44
- ollama:
45
- baseUrl: http://localhost:11434
46
-
47
- memory:
48
- adapter: memory
49
- `);
50
- writeFileSync(join(projectPath, 'src', 'agent.ts'), `import { Cogitator, Agent, tool } from '@cogitator-ai/core';
51
- import { z } from 'zod';
52
-
53
- const greet = tool({
54
- name: 'greet',
55
- description: 'Greet someone by name',
56
- parameters: z.object({
57
- name: z.string().describe('Name to greet'),
58
- }),
59
- execute: async ({ name }) => \`Hello, \${name}!\`,
60
- });
61
-
62
- const agent = new Agent({
63
- id: 'my-agent',
64
- name: 'My Agent',
65
- model: 'ollama/llama3.1:8b',
66
- instructions: 'You are a helpful assistant.',
67
- tools: [greet],
68
- });
69
-
70
- const cog = new Cogitator();
71
- const result = await cog.run(agent, { input: 'Hello!' });
72
- console.log(result.output);
73
- await cog.close();
74
- `);
75
- writeFileSync(join(projectPath, 'docker-compose.yml'), `name: ${projectName}
76
-
77
- services:
78
- redis:
79
- image: redis:7-alpine
80
- ports:
81
- - "6379:6379"
82
-
83
- postgres:
84
- image: pgvector/pgvector:pg16
85
- ports:
86
- - "5432:5432"
87
- environment:
88
- POSTGRES_USER: cogitator
89
- POSTGRES_PASSWORD: cogitator
90
- POSTGRES_DB: cogitator
91
-
92
- ollama:
93
- image: ollama/ollama:latest
94
- ports:
95
- - "11434:11434"
96
- `);
97
- writeFileSync(join(projectPath, '.gitignore'), `node_modules/\ndist/\n.env\n*.log\n`);
98
- }
99
- describe('cogitator init', () => {
100
- const testDir = join(tmpdir(), 'cogitator-test-' + Date.now());
101
- const projectName = 'test-project';
102
- const projectPath = join(testDir, projectName);
103
- beforeEach(() => {
104
- if (existsSync(testDir)) {
105
- rmSync(testDir, { recursive: true, force: true });
106
- }
107
- mkdirSync(testDir, { recursive: true });
108
- });
109
- afterEach(() => {
110
- if (existsSync(testDir)) {
111
- rmSync(testDir, { recursive: true, force: true });
112
- }
113
- });
114
- it('creates project directory structure', () => {
115
- createProjectStructure(projectPath, projectName);
116
- expect(existsSync(projectPath)).toBe(true);
117
- expect(existsSync(join(projectPath, 'package.json'))).toBe(true);
118
- expect(existsSync(join(projectPath, 'tsconfig.json'))).toBe(true);
119
- expect(existsSync(join(projectPath, 'cogitator.yml'))).toBe(true);
120
- expect(existsSync(join(projectPath, 'src/agent.ts'))).toBe(true);
121
- expect(existsSync(join(projectPath, 'docker-compose.yml'))).toBe(true);
122
- expect(existsSync(join(projectPath, '.gitignore'))).toBe(true);
123
- });
124
- it('creates valid package.json', () => {
125
- createProjectStructure(projectPath, projectName);
126
- const pkgJson = JSON.parse(readFileSync(join(projectPath, 'package.json'), 'utf-8'));
127
- expect(pkgJson.name).toBe(projectName);
128
- expect(pkgJson.dependencies['@cogitator-ai/core']).toBeDefined();
129
- });
130
- it('detects if directory already exists', () => {
131
- createProjectStructure(projectPath, projectName);
132
- expect(existsSync(projectPath)).toBe(true);
133
- });
134
- });
135
- //# sourceMappingURL=init.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=models.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/models.test.ts"],"names":[],"mappings":""}
@@ -1,39 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { formatSize, formatDate } from '../commands/models.js';
3
- describe('formatSize', () => {
4
- it('formats bytes less than 1 GB as MB', () => {
5
- expect(formatSize(512 * 1024 * 1024)).toBe('512 MB');
6
- });
7
- it('formats bytes >= 1 GB as GB', () => {
8
- expect(formatSize(2 * 1024 * 1024 * 1024)).toBe('2.0 GB');
9
- });
10
- it('formats fractional GB', () => {
11
- expect(formatSize(1.5 * 1024 * 1024 * 1024)).toBe('1.5 GB');
12
- });
13
- it('formats small sizes as MB', () => {
14
- expect(formatSize(100 * 1024 * 1024)).toBe('100 MB');
15
- });
16
- });
17
- describe('formatDate', () => {
18
- it('returns "today" for same day', () => {
19
- const now = new Date().toISOString();
20
- expect(formatDate(now)).toBe('today');
21
- });
22
- it('returns "yesterday" for 1 day ago', () => {
23
- const yesterday = new Date(Date.now() - 1000 * 60 * 60 * 24).toISOString();
24
- expect(formatDate(yesterday)).toBe('yesterday');
25
- });
26
- it('returns "N days ago" for 2-6 days', () => {
27
- const threeDays = new Date(Date.now() - 1000 * 60 * 60 * 24 * 3).toISOString();
28
- expect(formatDate(threeDays)).toBe('3 days ago');
29
- });
30
- it('returns "N weeks ago" for 7-29 days', () => {
31
- const twoWeeks = new Date(Date.now() - 1000 * 60 * 60 * 24 * 14).toISOString();
32
- expect(formatDate(twoWeeks)).toBe('2 weeks ago');
33
- });
34
- it('returns "N months ago" for 30+ days', () => {
35
- const twoMonths = new Date(Date.now() - 1000 * 60 * 60 * 24 * 60).toISOString();
36
- expect(formatDate(twoMonths)).toBe('2 months ago');
37
- });
38
- });
39
- //# sourceMappingURL=models.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.test.js","sourceRoot":"","sources":["../../src/__tests__/models.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=run.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/run.test.ts"],"names":[],"mappings":""}
@@ -1,65 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import { mkdtempSync, writeFileSync, rmSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { tmpdir } from 'node:os';
5
- import { findConfig } from '../commands/run.js';
6
- describe('findConfig', () => {
7
- let tempDir;
8
- let originalCwd;
9
- beforeEach(() => {
10
- tempDir = mkdtempSync(join(tmpdir(), 'cli-run-'));
11
- originalCwd = process.cwd();
12
- process.chdir(tempDir);
13
- });
14
- afterEach(() => {
15
- process.chdir(originalCwd);
16
- rmSync(tempDir, { recursive: true, force: true });
17
- });
18
- it('returns the explicit config path if it exists', () => {
19
- const configPath = join(tempDir, 'my.yml');
20
- writeFileSync(configPath, 'llm:\n defaultProvider: ollama');
21
- const result = findConfig(configPath);
22
- expect(result).toBeTruthy();
23
- expect(result).toContain('my.yml');
24
- });
25
- it('returns null if explicit config path does not exist', () => {
26
- const result = findConfig(join(tempDir, 'nonexistent.yml'));
27
- expect(result).toBeNull();
28
- });
29
- it('finds cogitator.yml in current dir when default path given', () => {
30
- writeFileSync(join(tempDir, 'cogitator.yml'), 'llm:\n defaultProvider: ollama');
31
- const result = findConfig('cogitator.yml');
32
- expect(result).toBeTruthy();
33
- expect(result).toContain('cogitator.yml');
34
- });
35
- it('finds cogitator.yaml when cogitator.yml not present', () => {
36
- writeFileSync(join(tempDir, 'cogitator.yaml'), 'llm:\n defaultProvider: ollama');
37
- const result = findConfig('cogitator.yml');
38
- expect(result).toBeTruthy();
39
- expect(result).toContain('cogitator.yaml');
40
- });
41
- it('finds cogitator.json when yml not present', () => {
42
- writeFileSync(join(tempDir, 'cogitator.json'), '{"llm": {}}');
43
- const result = findConfig('cogitator.yml');
44
- expect(result).toBeTruthy();
45
- expect(result).toContain('cogitator.json');
46
- });
47
- it('uses COGITATOR_CONFIG env var when set', () => {
48
- const envConfig = join(tempDir, 'env-config.yml');
49
- writeFileSync(envConfig, 'llm:\n defaultProvider: openai');
50
- process.env.COGITATOR_CONFIG = envConfig;
51
- try {
52
- const result = findConfig('cogitator.yml');
53
- expect(result).toBeTruthy();
54
- expect(result).toContain('env-config.yml');
55
- }
56
- finally {
57
- delete process.env.COGITATOR_CONFIG;
58
- }
59
- });
60
- it('returns null when no config file found', () => {
61
- const result = findConfig('cogitator.yml');
62
- expect(result).toBeNull();
63
- });
64
- });
65
- //# sourceMappingURL=run.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.test.js","sourceRoot":"","sources":["../../src/__tests__/run.test.ts"],"names":[],"mappings":"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"}