ai-devkit 0.4.1 → 0.5.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/CHANGELOG.md +6 -0
- package/README.md +11 -10
- package/dist/lib/EnvironmentSelector.js +1 -1
- package/dist/lib/EnvironmentSelector.js.map +1 -1
- package/dist/lib/PhaseSelector.js +1 -1
- package/dist/lib/PhaseSelector.js.map +1 -1
- package/dist/lib/TemplateManager.d.ts +8 -1
- package/dist/lib/TemplateManager.d.ts.map +1 -1
- package/dist/lib/TemplateManager.js +71 -23
- package/dist/lib/TemplateManager.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/util/env.d.ts.map +1 -1
- package/dist/util/env.js +10 -2
- package/dist/util/env.js.map +1 -1
- package/package.json +2 -1
- package/templates/commands/capture-knowledge.md +4 -0
- package/templates/commands/check-implementation.md +4 -0
- package/templates/commands/code-review.md +4 -0
- package/templates/commands/debug.md +4 -0
- package/templates/commands/execute-plan.md +4 -0
- package/templates/commands/new-requirement.md +4 -0
- package/templates/commands/review-design.md +4 -0
- package/templates/commands/review-requirements.md +4 -0
- package/templates/commands/simplify-implementation.md +148 -0
- package/templates/commands/update-planning.md +4 -0
- package/templates/commands/writing-test.md +4 -0
- package/web/content/pages/vision.md +2 -0
- package/dist/__tests__/lib/Config.test.d.ts +0 -2
- package/dist/__tests__/lib/Config.test.d.ts.map +0 -1
- package/dist/__tests__/lib/Config.test.js +0 -281
- package/dist/__tests__/lib/Config.test.js.map +0 -1
- package/dist/__tests__/lib/EnvironmentSelector.test.d.ts +0 -2
- package/dist/__tests__/lib/EnvironmentSelector.test.d.ts.map +0 -1
- package/dist/__tests__/lib/EnvironmentSelector.test.js +0 -117
- package/dist/__tests__/lib/EnvironmentSelector.test.js.map +0 -1
- package/dist/__tests__/lib/PhaseSelector.test.d.ts +0 -2
- package/dist/__tests__/lib/PhaseSelector.test.d.ts.map +0 -1
- package/dist/__tests__/lib/PhaseSelector.test.js +0 -77
- package/dist/__tests__/lib/PhaseSelector.test.js.map +0 -1
- package/dist/__tests__/util/env.test.d.ts +0 -2
- package/dist/__tests__/util/env.test.d.ts.map +0 -1
- package/dist/__tests__/util/env.test.js +0 -166
- package/dist/__tests__/util/env.test.js.map +0 -1
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const env_1 = require("../../util/env");
|
|
4
|
-
describe('Environment Utilities', () => {
|
|
5
|
-
describe('ENVIRONMENT_DEFINITIONS', () => {
|
|
6
|
-
it('should contain all 10 environment definitions', () => {
|
|
7
|
-
expect(Object.keys(env_1.ENVIRONMENT_DEFINITIONS)).toHaveLength(10);
|
|
8
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('cursor');
|
|
9
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('claude');
|
|
10
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('github');
|
|
11
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('gemini');
|
|
12
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('codex');
|
|
13
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('windsurf');
|
|
14
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('kilocode');
|
|
15
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('amp');
|
|
16
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('opencode');
|
|
17
|
-
expect(env_1.ENVIRONMENT_DEFINITIONS).toHaveProperty('roo');
|
|
18
|
-
});
|
|
19
|
-
it('should have correct structure for cursor environment', () => {
|
|
20
|
-
const cursor = env_1.ENVIRONMENT_DEFINITIONS.cursor;
|
|
21
|
-
expect(cursor).toEqual({
|
|
22
|
-
code: 'cursor',
|
|
23
|
-
name: 'Cursor',
|
|
24
|
-
contextFileName: 'AGENTS.md',
|
|
25
|
-
commandPath: '.cursor/commands'
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
it('should have consistent structure across all environments', () => {
|
|
29
|
-
Object.values(env_1.ENVIRONMENT_DEFINITIONS).forEach(env => {
|
|
30
|
-
expect(env).toHaveProperty('code');
|
|
31
|
-
expect(env).toHaveProperty('name');
|
|
32
|
-
expect(env).toHaveProperty('contextFileName');
|
|
33
|
-
expect(env).toHaveProperty('commandPath');
|
|
34
|
-
expect(typeof env.code).toBe('string');
|
|
35
|
-
expect(typeof env.name).toBe('string');
|
|
36
|
-
expect(typeof env.contextFileName).toBe('string');
|
|
37
|
-
expect(typeof env.commandPath).toBe('string');
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
describe('ALL_ENVIRONMENT_CODES', () => {
|
|
42
|
-
it('should contain all 10 environment codes', () => {
|
|
43
|
-
expect(env_1.ALL_ENVIRONMENT_CODES).toHaveLength(10);
|
|
44
|
-
expect(env_1.ALL_ENVIRONMENT_CODES).toEqual(expect.arrayContaining([
|
|
45
|
-
'cursor', 'claude', 'github', 'gemini', 'codex',
|
|
46
|
-
'windsurf', 'kilocode', 'amp', 'opencode', 'roo'
|
|
47
|
-
]));
|
|
48
|
-
});
|
|
49
|
-
it('should be dynamically generated from ENVIRONMENT_DEFINITIONS keys', () => {
|
|
50
|
-
const expectedCodes = Object.keys(env_1.ENVIRONMENT_DEFINITIONS);
|
|
51
|
-
expect(env_1.ALL_ENVIRONMENT_CODES).toEqual(expectedCodes);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('getAllEnvironments', () => {
|
|
55
|
-
it('should return all environment definitions', () => {
|
|
56
|
-
const environments = (0, env_1.getAllEnvironments)();
|
|
57
|
-
expect(environments).toHaveLength(10);
|
|
58
|
-
expect(environments).toEqual(Object.values(env_1.ENVIRONMENT_DEFINITIONS));
|
|
59
|
-
});
|
|
60
|
-
it('should return different array instances', () => {
|
|
61
|
-
const envs1 = (0, env_1.getAllEnvironments)();
|
|
62
|
-
const envs2 = (0, env_1.getAllEnvironments)();
|
|
63
|
-
expect(envs1).not.toBe(envs2);
|
|
64
|
-
expect(envs1).toEqual(envs2);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
describe('getEnvironment', () => {
|
|
68
|
-
it('should return correct environment definition for valid codes', () => {
|
|
69
|
-
const cursor = (0, env_1.getEnvironment)('cursor');
|
|
70
|
-
expect(cursor).toBeDefined();
|
|
71
|
-
expect(cursor?.code).toBe('cursor');
|
|
72
|
-
expect(cursor?.name).toBe('Cursor');
|
|
73
|
-
const claude = (0, env_1.getEnvironment)('claude');
|
|
74
|
-
expect(claude).toBeDefined();
|
|
75
|
-
expect(claude?.code).toBe('claude');
|
|
76
|
-
expect(claude?.name).toBe('Claude Code');
|
|
77
|
-
});
|
|
78
|
-
it('should return undefined for invalid codes', () => {
|
|
79
|
-
const invalid = (0, env_1.getEnvironment)('invalid');
|
|
80
|
-
expect(invalid).toBeUndefined();
|
|
81
|
-
});
|
|
82
|
-
it('should return the same reference for repeated calls', () => {
|
|
83
|
-
const env1 = (0, env_1.getEnvironment)('cursor');
|
|
84
|
-
const env2 = (0, env_1.getEnvironment)('cursor');
|
|
85
|
-
expect(env1).toBe(env2);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
describe('getAllEnvironmentCodes', () => {
|
|
89
|
-
it('should return all environment codes', () => {
|
|
90
|
-
const codes = (0, env_1.getAllEnvironmentCodes)();
|
|
91
|
-
expect(codes).toHaveLength(10);
|
|
92
|
-
expect(codes).toEqual(env_1.ALL_ENVIRONMENT_CODES);
|
|
93
|
-
});
|
|
94
|
-
it('should return different array instances', () => {
|
|
95
|
-
const codes1 = (0, env_1.getAllEnvironmentCodes)();
|
|
96
|
-
const codes2 = (0, env_1.getAllEnvironmentCodes)();
|
|
97
|
-
expect(codes1).not.toBe(codes2);
|
|
98
|
-
expect(codes1).toEqual(codes2);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('getEnvironmentsByCodes', () => {
|
|
102
|
-
it('should return correct environments for valid codes', () => {
|
|
103
|
-
const environments = (0, env_1.getEnvironmentsByCodes)(['cursor', 'claude']);
|
|
104
|
-
expect(environments).toHaveLength(2);
|
|
105
|
-
expect(environments[0].code).toBe('cursor');
|
|
106
|
-
expect(environments[1].code).toBe('claude');
|
|
107
|
-
});
|
|
108
|
-
it('should filter out invalid codes', () => {
|
|
109
|
-
const environments = (0, env_1.getEnvironmentsByCodes)(['cursor', 'invalid', 'claude']);
|
|
110
|
-
expect(environments).toHaveLength(2);
|
|
111
|
-
expect(environments[0].code).toBe('cursor');
|
|
112
|
-
expect(environments[1].code).toBe('claude');
|
|
113
|
-
});
|
|
114
|
-
it('should return empty array for empty input', () => {
|
|
115
|
-
const environments = (0, env_1.getEnvironmentsByCodes)([]);
|
|
116
|
-
expect(environments).toHaveLength(0);
|
|
117
|
-
});
|
|
118
|
-
it('should return empty array for all invalid codes', () => {
|
|
119
|
-
const environments = (0, env_1.getEnvironmentsByCodes)(['invalid1', 'invalid2']);
|
|
120
|
-
expect(environments).toHaveLength(0);
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
describe('isValidEnvironmentCode', () => {
|
|
124
|
-
it('should return true for valid environment codes', () => {
|
|
125
|
-
expect((0, env_1.isValidEnvironmentCode)('cursor')).toBe(true);
|
|
126
|
-
expect((0, env_1.isValidEnvironmentCode)('claude')).toBe(true);
|
|
127
|
-
expect((0, env_1.isValidEnvironmentCode)('roo')).toBe(true);
|
|
128
|
-
});
|
|
129
|
-
it('should return false for invalid codes', () => {
|
|
130
|
-
expect((0, env_1.isValidEnvironmentCode)('invalid')).toBe(false);
|
|
131
|
-
expect((0, env_1.isValidEnvironmentCode)('')).toBe(false);
|
|
132
|
-
expect((0, env_1.isValidEnvironmentCode)('CURSOR')).toBe(false);
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
describe('getEnvironmentDisplayName', () => {
|
|
136
|
-
it('should return environment name for valid codes', () => {
|
|
137
|
-
expect((0, env_1.getEnvironmentDisplayName)('cursor')).toBe('Cursor');
|
|
138
|
-
expect((0, env_1.getEnvironmentDisplayName)('claude')).toBe('Claude Code');
|
|
139
|
-
expect((0, env_1.getEnvironmentDisplayName)('roo')).toBe('Roo Code');
|
|
140
|
-
});
|
|
141
|
-
it('should return code itself for invalid codes', () => {
|
|
142
|
-
expect((0, env_1.getEnvironmentDisplayName)('invalid')).toBe('invalid');
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
describe('validateEnvironmentCodes', () => {
|
|
146
|
-
it('should return valid codes array for all valid inputs', () => {
|
|
147
|
-
const result = (0, env_1.validateEnvironmentCodes)(['cursor', 'claude']);
|
|
148
|
-
expect(result).toEqual(['cursor', 'claude']);
|
|
149
|
-
});
|
|
150
|
-
it('should throw error for invalid codes', () => {
|
|
151
|
-
expect(() => {
|
|
152
|
-
(0, env_1.validateEnvironmentCodes)(['cursor', 'invalid']);
|
|
153
|
-
}).toThrow('Invalid environment codes: invalid');
|
|
154
|
-
});
|
|
155
|
-
it('should throw error with multiple invalid codes', () => {
|
|
156
|
-
expect(() => {
|
|
157
|
-
(0, env_1.validateEnvironmentCodes)(['cursor', 'invalid1', 'invalid2']);
|
|
158
|
-
}).toThrow('Invalid environment codes: invalid1, invalid2');
|
|
159
|
-
});
|
|
160
|
-
it('should return empty array for empty input', () => {
|
|
161
|
-
const result = (0, env_1.validateEnvironmentCodes)([]);
|
|
162
|
-
expect(result).toEqual([]);
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
//# sourceMappingURL=env.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../../src/__tests__/util/env.test.ts"],"names":[],"mappings":"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"}
|