@cogitator-ai/cli 0.2.19 → 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, dirname } from 'node:path';
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
- import { fileURLToPath } from 'node:url';
7
- const __dirname = dirname(fileURLToPath(import.meta.url));
8
- const CLI_PATH = join(__dirname, '../index.ts');
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
- execSync(`npx tsx ${CLI_PATH} init ${projectName} --no-install`, {
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
- execSync(`npx tsx ${CLI_PATH} init ${projectName} --no-install`, {
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('fails if directory already exists', () => {
47
- execSync(`npx tsx ${CLI_PATH} init ${projectName} --no-install`, {
48
- cwd: testDir,
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":"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"}
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.19",
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/config": "0.3.8",
25
- "@cogitator-ai/core": "0.15.0"
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",