@dot-ai/cli 0.5.2 → 0.7.0
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/__tests__/cli.test.js +21 -219
- package/dist/__tests__/cli.test.js.map +1 -1
- package/dist/index.js +319 -117
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/cli.test.ts +21 -272
- package/src/index.ts +340 -133
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -2,35 +2,23 @@ import { describe, it, expect, beforeEach } from 'vitest';
|
|
|
2
2
|
import { mkdtemp, mkdir, writeFile, readFile, access } from 'node:fs/promises';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
-
import { loadConfig, registerDefaults, clearProviders, createProviders, boot, enrich, } from '@dot-ai/core';
|
|
6
5
|
// ── init command logic ───────────────────────────────────────────────────────
|
|
7
6
|
async function runInit(root) {
|
|
8
7
|
const aiDir = join(root, '.ai');
|
|
9
8
|
const lines = [];
|
|
10
9
|
try {
|
|
11
|
-
await access(join(aiDir, '
|
|
12
|
-
lines.push('.ai/
|
|
10
|
+
await access(join(aiDir, 'settings.json'));
|
|
11
|
+
lines.push('.ai/settings.json already exists. Nothing to do.');
|
|
13
12
|
return lines.join('\n');
|
|
14
13
|
}
|
|
15
14
|
catch {
|
|
16
15
|
// Doesn't exist, create it
|
|
17
16
|
}
|
|
18
17
|
await mkdir(aiDir, { recursive: true });
|
|
19
|
-
await writeFile(join(aiDir, '
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
'#',
|
|
24
|
-
'# memory:',
|
|
25
|
-
'# use: "@dot-ai/provider-file-memory"',
|
|
26
|
-
'#',
|
|
27
|
-
'# skills:',
|
|
28
|
-
'# use: "@dot-ai/provider-file-skills"',
|
|
29
|
-
'#',
|
|
30
|
-
'# routing:',
|
|
31
|
-
'# use: "@dot-ai/provider-rules-routing"',
|
|
32
|
-
'',
|
|
33
|
-
].join('\n'));
|
|
18
|
+
await writeFile(join(aiDir, 'settings.json'), JSON.stringify({
|
|
19
|
+
extensions: [],
|
|
20
|
+
packages: [],
|
|
21
|
+
}, null, 2));
|
|
34
22
|
await writeFile(join(aiDir, 'AGENTS.md'), [
|
|
35
23
|
'# AGENTS.md',
|
|
36
24
|
'',
|
|
@@ -42,235 +30,49 @@ async function runInit(root) {
|
|
|
42
30
|
'',
|
|
43
31
|
].join('\n'));
|
|
44
32
|
lines.push('Created:');
|
|
45
|
-
lines.push(' .ai/
|
|
33
|
+
lines.push(' .ai/settings.json (config)');
|
|
46
34
|
lines.push(' .ai/AGENTS.md (template)');
|
|
47
|
-
lines.push('\nNext: add
|
|
35
|
+
lines.push('\nNext: add extensions to .ai/extensions/ or settings.json as needed.');
|
|
48
36
|
return lines.join('\n');
|
|
49
37
|
}
|
|
50
|
-
// ── helpers ──────────────────────────────────────────────────────────────────
|
|
51
|
-
async function setupAiDir(root) {
|
|
52
|
-
const ai = join(root, '.ai');
|
|
53
|
-
await mkdir(ai, { recursive: true });
|
|
54
|
-
await mkdir(join(ai, 'memory'), { recursive: true });
|
|
55
|
-
await mkdir(join(ai, 'skills', 'ts-standards'), { recursive: true });
|
|
56
|
-
await mkdir(join(ai, 'skills', 'code-review'), { recursive: true });
|
|
57
|
-
await mkdir(join(ai, 'tools'), { recursive: true });
|
|
58
|
-
await writeFile(join(ai, 'AGENTS.md'), '# AGENTS.md\n\nYou are Kiwi.');
|
|
59
|
-
await writeFile(join(ai, 'SOUL.md'), '# SOUL.md\n\nBe genuine.');
|
|
60
|
-
await writeFile(join(ai, 'USER.md'), '# USER.md\n\nJo, developer.');
|
|
61
|
-
await writeFile(join(ai, 'IDENTITY.md'), '# IDENTITY.md\n\nName: Kiwi');
|
|
62
|
-
await writeFile(join(ai, 'skills', 'ts-standards', 'SKILL.md'), [
|
|
63
|
-
'---',
|
|
64
|
-
'description: TypeScript coding standards',
|
|
65
|
-
'labels: [typescript, code, standards]',
|
|
66
|
-
'triggers: [auto]',
|
|
67
|
-
'---',
|
|
68
|
-
'',
|
|
69
|
-
'## TypeScript Standards',
|
|
70
|
-
'- Use strict mode',
|
|
71
|
-
].join('\n'));
|
|
72
|
-
await writeFile(join(ai, 'skills', 'code-review', 'SKILL.md'), [
|
|
73
|
-
'---',
|
|
74
|
-
'description: Code review guidelines',
|
|
75
|
-
'labels: [review, code-fix, bug]',
|
|
76
|
-
'triggers: [auto]',
|
|
77
|
-
'---',
|
|
78
|
-
'',
|
|
79
|
-
'## Code Review',
|
|
80
|
-
'- Check for edge cases',
|
|
81
|
-
].join('\n'));
|
|
82
|
-
await writeFile(join(ai, 'tools', 'eslint.yaml'), [
|
|
83
|
-
'name: eslint',
|
|
84
|
-
'description: TypeScript linter',
|
|
85
|
-
'labels: [typescript, lint, code]',
|
|
86
|
-
].join('\n'));
|
|
87
|
-
await writeFile(join(ai, 'memory', '2026-03-01.md'), [
|
|
88
|
-
'- Fixed auth middleware N+1 query bug',
|
|
89
|
-
'- Decided to use JWT for auth tokens',
|
|
90
|
-
].join('\n'));
|
|
91
|
-
await writeFile(join(ai, 'dot-ai.yml'), [
|
|
92
|
-
'# dot-ai config',
|
|
93
|
-
'memory:',
|
|
94
|
-
' use: @dot-ai/provider-file-memory',
|
|
95
|
-
` root: ${root}`,
|
|
96
|
-
'skills:',
|
|
97
|
-
' use: @dot-ai/provider-file-skills',
|
|
98
|
-
` root: ${root}`,
|
|
99
|
-
'identity:',
|
|
100
|
-
' use: @dot-ai/provider-file-identity',
|
|
101
|
-
` root: ${root}`,
|
|
102
|
-
'routing:',
|
|
103
|
-
' use: @dot-ai/provider-rules-routing',
|
|
104
|
-
'tasks:',
|
|
105
|
-
' use: @dot-ai/provider-file-tasks',
|
|
106
|
-
` root: ${root}`,
|
|
107
|
-
'tools:',
|
|
108
|
-
' use: @dot-ai/provider-file-tools',
|
|
109
|
-
` root: ${root}`,
|
|
110
|
-
].join('\n'));
|
|
111
|
-
}
|
|
112
38
|
// ── init tests ───────────────────────────────────────────────────────────────
|
|
113
39
|
describe('init command', () => {
|
|
114
40
|
let root;
|
|
115
41
|
beforeEach(async () => {
|
|
116
42
|
root = await mkdtemp(join(tmpdir(), 'dot-ai-cli-init-'));
|
|
117
43
|
});
|
|
118
|
-
it('creates .ai/
|
|
44
|
+
it('creates .ai/settings.json in empty directory', async () => {
|
|
119
45
|
await runInit(root);
|
|
120
|
-
const content = await readFile(join(root, '.ai', '
|
|
121
|
-
|
|
46
|
+
const content = await readFile(join(root, '.ai', 'settings.json'), 'utf8');
|
|
47
|
+
const parsed = JSON.parse(content);
|
|
48
|
+
expect(parsed.extensions).toEqual([]);
|
|
49
|
+
expect(parsed.packages).toEqual([]);
|
|
122
50
|
});
|
|
123
51
|
it('creates .ai/AGENTS.md in empty directory', async () => {
|
|
124
52
|
await runInit(root);
|
|
125
53
|
const content = await readFile(join(root, '.ai', 'AGENTS.md'), 'utf8');
|
|
126
54
|
expect(content).toContain('# AGENTS.md');
|
|
127
55
|
});
|
|
128
|
-
it('dot-ai.yml contains commented provider examples', async () => {
|
|
129
|
-
await runInit(root);
|
|
130
|
-
const content = await readFile(join(root, '.ai', 'dot-ai.yml'), 'utf8');
|
|
131
|
-
expect(content).toContain('@dot-ai/provider-file-memory');
|
|
132
|
-
expect(content).toContain('@dot-ai/provider-file-skills');
|
|
133
|
-
expect(content).toContain('@dot-ai/provider-rules-routing');
|
|
134
|
-
});
|
|
135
56
|
it('AGENTS.md is a template with ## Rules section', async () => {
|
|
136
57
|
await runInit(root);
|
|
137
58
|
const content = await readFile(join(root, '.ai', 'AGENTS.md'), 'utf8');
|
|
138
59
|
expect(content).toContain('## Rules');
|
|
139
60
|
});
|
|
140
|
-
it('does nothing if
|
|
61
|
+
it('does nothing if settings.json already exists', async () => {
|
|
141
62
|
await mkdir(join(root, '.ai'), { recursive: true });
|
|
142
|
-
await writeFile(join(root, '.ai', '
|
|
63
|
+
await writeFile(join(root, '.ai', 'settings.json'), '{"existing": true}\n');
|
|
143
64
|
const output = await runInit(root);
|
|
144
65
|
expect(output).toContain('already exists');
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
expect(content).toBe('# existing config\n');
|
|
66
|
+
const content = await readFile(join(root, '.ai', 'settings.json'), 'utf8');
|
|
67
|
+
expect(content).toBe('{"existing": true}\n');
|
|
148
68
|
});
|
|
149
|
-
it('works if .ai/ directory already exists without
|
|
69
|
+
it('works if .ai/ directory already exists without settings.json', async () => {
|
|
150
70
|
await mkdir(join(root, '.ai'), { recursive: true });
|
|
151
71
|
await writeFile(join(root, '.ai', 'AGENTS.md'), '# existing\n');
|
|
152
72
|
await runInit(root);
|
|
153
|
-
|
|
154
|
-
const
|
|
155
|
-
expect(
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
// ── boot command logic ────────────────────────────────────────────────────────
|
|
159
|
-
describe('boot command (core pipeline)', () => {
|
|
160
|
-
let root;
|
|
161
|
-
beforeEach(async () => {
|
|
162
|
-
clearProviders();
|
|
163
|
-
registerDefaults();
|
|
164
|
-
root = await mkdtemp(join(tmpdir(), 'dot-ai-cli-boot-'));
|
|
165
|
-
await setupAiDir(root);
|
|
166
|
-
});
|
|
167
|
-
it('loads config and creates providers', async () => {
|
|
168
|
-
const config = await loadConfig(root);
|
|
169
|
-
const providers = await createProviders(config);
|
|
170
|
-
expect(providers.memory).toBeDefined();
|
|
171
|
-
expect(providers.skills).toBeDefined();
|
|
172
|
-
expect(providers.identity).toBeDefined();
|
|
173
|
-
expect(providers.routing).toBeDefined();
|
|
174
|
-
expect(providers.tools).toBeDefined();
|
|
175
|
-
});
|
|
176
|
-
it('boot returns identities, skills, vocabulary', async () => {
|
|
177
|
-
const config = await loadConfig(root);
|
|
178
|
-
const providers = await createProviders(config);
|
|
179
|
-
const cache = await boot(providers);
|
|
180
|
-
expect(cache.identities.length).toBe(4); // AGENTS, SOUL, USER, IDENTITY
|
|
181
|
-
expect(cache.skills.length).toBe(2); // ts-standards, code-review
|
|
182
|
-
expect(cache.vocabulary.length).toBeGreaterThan(0);
|
|
183
|
-
});
|
|
184
|
-
it('vocabulary contains labels from skills and tools', async () => {
|
|
185
|
-
const config = await loadConfig(root);
|
|
186
|
-
const providers = await createProviders(config);
|
|
187
|
-
const cache = await boot(providers);
|
|
188
|
-
expect(cache.vocabulary).toContain('typescript');
|
|
189
|
-
expect(cache.vocabulary).toContain('code');
|
|
190
|
-
expect(cache.vocabulary).toContain('bug');
|
|
191
|
-
});
|
|
192
|
-
it('identities have correct types', async () => {
|
|
193
|
-
const config = await loadConfig(root);
|
|
194
|
-
const providers = await createProviders(config);
|
|
195
|
-
const cache = await boot(providers);
|
|
196
|
-
const types = cache.identities.map(i => i.type);
|
|
197
|
-
expect(types).toContain('agents');
|
|
198
|
-
expect(types).toContain('soul');
|
|
199
|
-
expect(types).toContain('user');
|
|
200
|
-
expect(types).toContain('identity');
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
// ── trace command logic ───────────────────────────────────────────────────────
|
|
204
|
-
describe('trace command (enrich pipeline)', () => {
|
|
205
|
-
let root;
|
|
206
|
-
beforeEach(async () => {
|
|
207
|
-
clearProviders();
|
|
208
|
-
registerDefaults();
|
|
209
|
-
root = await mkdtemp(join(tmpdir(), 'dot-ai-cli-trace-'));
|
|
210
|
-
await setupAiDir(root);
|
|
211
|
-
});
|
|
212
|
-
it('enrich returns labels matching prompt vocabulary', async () => {
|
|
213
|
-
const config = await loadConfig(root);
|
|
214
|
-
const providers = await createProviders(config);
|
|
215
|
-
const cache = await boot(providers);
|
|
216
|
-
const ctx = await enrich('Fix the TypeScript bug', providers, cache);
|
|
217
|
-
expect(ctx.labels.some(l => l.name === 'typescript')).toBe(true);
|
|
218
|
-
expect(ctx.labels.some(l => l.name === 'bug')).toBe(true);
|
|
219
|
-
});
|
|
220
|
-
it('enrich returns matched skills for typescript prompt', async () => {
|
|
221
|
-
const config = await loadConfig(root);
|
|
222
|
-
const providers = await createProviders(config);
|
|
223
|
-
const cache = await boot(providers);
|
|
224
|
-
const ctx = await enrich('Fix the TypeScript code', providers, cache);
|
|
225
|
-
expect(ctx.skills.some(s => s.name === 'ts-standards')).toBe(true);
|
|
226
|
-
});
|
|
227
|
-
it('enrich returns matched tools for typescript prompt', async () => {
|
|
228
|
-
const config = await loadConfig(root);
|
|
229
|
-
const providers = await createProviders(config);
|
|
230
|
-
const cache = await boot(providers);
|
|
231
|
-
const ctx = await enrich('Fix the TypeScript bug', providers, cache);
|
|
232
|
-
expect(ctx.tools.some(t => t.name === 'eslint')).toBe(true);
|
|
233
|
-
});
|
|
234
|
-
it('enrich returns memories related to prompt', async () => {
|
|
235
|
-
const config = await loadConfig(root);
|
|
236
|
-
const providers = await createProviders(config);
|
|
237
|
-
const cache = await boot(providers);
|
|
238
|
-
const ctx = await enrich('Fix the auth bug', providers, cache);
|
|
239
|
-
expect(ctx.memories.some(m => m.content.includes('auth'))).toBe(true);
|
|
240
|
-
});
|
|
241
|
-
it('enrich returns routing result', async () => {
|
|
242
|
-
const config = await loadConfig(root);
|
|
243
|
-
const providers = await createProviders(config);
|
|
244
|
-
const cache = await boot(providers);
|
|
245
|
-
const ctx = await enrich('Fix the bug', providers, cache);
|
|
246
|
-
expect(ctx.routing.model).toBeDefined();
|
|
247
|
-
expect(ctx.routing.reason).toBeDefined();
|
|
248
|
-
});
|
|
249
|
-
it('enrich returns identities from boot cache', async () => {
|
|
250
|
-
const config = await loadConfig(root);
|
|
251
|
-
const providers = await createProviders(config);
|
|
252
|
-
const cache = await boot(providers);
|
|
253
|
-
const ctx = await enrich('anything', providers, cache);
|
|
254
|
-
expect(ctx.identities.length).toBe(4);
|
|
255
|
-
});
|
|
256
|
-
it('enrich with unrelated prompt returns no matched skills', async () => {
|
|
257
|
-
const config = await loadConfig(root);
|
|
258
|
-
const providers = await createProviders(config);
|
|
259
|
-
const cache = await boot(providers);
|
|
260
|
-
// "hello world" doesn't match any known label
|
|
261
|
-
const ctx = await enrich('hello world', providers, cache);
|
|
262
|
-
expect(ctx.labels.length).toBe(0);
|
|
263
|
-
expect(ctx.skills.length).toBe(0);
|
|
264
|
-
expect(ctx.tools.length).toBe(0);
|
|
265
|
-
});
|
|
266
|
-
it('different prompts match different skills', async () => {
|
|
267
|
-
const config = await loadConfig(root);
|
|
268
|
-
const providers = await createProviders(config);
|
|
269
|
-
const cache = await boot(providers);
|
|
270
|
-
const tsCtx = await enrich('Fix TypeScript code', providers, cache);
|
|
271
|
-
const reviewCtx = await enrich('Review this code for bugs', providers, cache);
|
|
272
|
-
expect(tsCtx.skills.some(s => s.name === 'ts-standards')).toBe(true);
|
|
273
|
-
expect(reviewCtx.skills.some(s => s.name === 'code-review')).toBe(true);
|
|
73
|
+
const content = await readFile(join(root, '.ai', 'settings.json'), 'utf8');
|
|
74
|
+
const parsed = JSON.parse(content);
|
|
75
|
+
expect(parsed.extensions).toEqual([]);
|
|
274
76
|
});
|
|
275
77
|
});
|
|
276
78
|
//# sourceMappingURL=cli.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/__tests__/cli.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/__tests__/cli.test.ts"],"names":[],"mappings":"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"}
|