@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 +0 -0
- package/package.json +1 -1
- package/dist/__tests__/docker.test.d.ts +0 -2
- package/dist/__tests__/docker.test.d.ts.map +0 -1
- package/dist/__tests__/docker.test.js +0 -68
- package/dist/__tests__/docker.test.js.map +0 -1
- package/dist/__tests__/init.test.d.ts +0 -2
- package/dist/__tests__/init.test.d.ts.map +0 -1
- package/dist/__tests__/init.test.js +0 -135
- package/dist/__tests__/init.test.js.map +0 -1
- package/dist/__tests__/models.test.d.ts +0 -2
- package/dist/__tests__/models.test.d.ts.map +0 -1
- package/dist/__tests__/models.test.js +0 -39
- package/dist/__tests__/models.test.js.map +0 -1
- package/dist/__tests__/run.test.d.ts +0 -2
- package/dist/__tests__/run.test.d.ts.map +0 -1
- package/dist/__tests__/run.test.js +0 -65
- package/dist/__tests__/run.test.js.map +0 -1
package/dist/index.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -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 +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 +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 +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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"}
|