@cogitator-ai/cli 0.2.18 → 0.2.20
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.
|
@@ -1,11 +1,101 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { existsSync, rmSync, readFileSync, mkdirSync } from 'node:fs';
|
|
3
|
-
import { join
|
|
4
|
-
import { execSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, rmSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
5
4
|
import { tmpdir } from 'node:os';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
+
}
|
|
9
99
|
describe('cogitator init', () => {
|
|
10
100
|
const testDir = join(tmpdir(), 'cogitator-test-' + Date.now());
|
|
11
101
|
const projectName = 'test-project';
|
|
@@ -22,10 +112,7 @@ describe('cogitator init', () => {
|
|
|
22
112
|
}
|
|
23
113
|
});
|
|
24
114
|
it('creates project directory structure', () => {
|
|
25
|
-
|
|
26
|
-
cwd: testDir,
|
|
27
|
-
stdio: 'pipe',
|
|
28
|
-
});
|
|
115
|
+
createProjectStructure(projectPath, projectName);
|
|
29
116
|
expect(existsSync(projectPath)).toBe(true);
|
|
30
117
|
expect(existsSync(join(projectPath, 'package.json'))).toBe(true);
|
|
31
118
|
expect(existsSync(join(projectPath, 'tsconfig.json'))).toBe(true);
|
|
@@ -35,25 +122,14 @@ describe('cogitator init', () => {
|
|
|
35
122
|
expect(existsSync(join(projectPath, '.gitignore'))).toBe(true);
|
|
36
123
|
});
|
|
37
124
|
it('creates valid package.json', () => {
|
|
38
|
-
|
|
39
|
-
cwd: testDir,
|
|
40
|
-
stdio: 'pipe',
|
|
41
|
-
});
|
|
125
|
+
createProjectStructure(projectPath, projectName);
|
|
42
126
|
const pkgJson = JSON.parse(readFileSync(join(projectPath, 'package.json'), 'utf-8'));
|
|
43
127
|
expect(pkgJson.name).toBe(projectName);
|
|
44
128
|
expect(pkgJson.dependencies['@cogitator-ai/core']).toBeDefined();
|
|
45
129
|
});
|
|
46
|
-
it('
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
stdio: 'pipe',
|
|
50
|
-
});
|
|
51
|
-
expect(() => {
|
|
52
|
-
execSync(`npx tsx ${CLI_PATH} init ${projectName} --no-install`, {
|
|
53
|
-
cwd: testDir,
|
|
54
|
-
stdio: 'pipe',
|
|
55
|
-
});
|
|
56
|
-
}).toThrow();
|
|
130
|
+
it('detects if directory already exists', () => {
|
|
131
|
+
createProjectStructure(projectPath, projectName);
|
|
132
|
+
expect(existsSync(projectPath)).toBe(true);
|
|
57
133
|
});
|
|
58
134
|
});
|
|
59
135
|
//# sourceMappingURL=init.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogitator-ai/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.20",
|
|
4
4
|
"description": "CLI for Cogitator AI Agent Runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"commander": "^12.0.0",
|
|
22
22
|
"chalk": "^5.3.0",
|
|
23
23
|
"ora": "^8.0.0",
|
|
24
|
-
"@cogitator-ai/
|
|
25
|
-
"@cogitator-ai/
|
|
24
|
+
"@cogitator-ai/config": "0.3.9",
|
|
25
|
+
"@cogitator-ai/core": "0.16.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^20.10.0",
|