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.
Files changed (45) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +11 -10
  3. package/dist/lib/EnvironmentSelector.js +1 -1
  4. package/dist/lib/EnvironmentSelector.js.map +1 -1
  5. package/dist/lib/PhaseSelector.js +1 -1
  6. package/dist/lib/PhaseSelector.js.map +1 -1
  7. package/dist/lib/TemplateManager.d.ts +8 -1
  8. package/dist/lib/TemplateManager.d.ts.map +1 -1
  9. package/dist/lib/TemplateManager.js +71 -23
  10. package/dist/lib/TemplateManager.js.map +1 -1
  11. package/dist/types.d.ts +3 -1
  12. package/dist/types.d.ts.map +1 -1
  13. package/dist/types.js.map +1 -1
  14. package/dist/util/env.d.ts.map +1 -1
  15. package/dist/util/env.js +10 -2
  16. package/dist/util/env.js.map +1 -1
  17. package/package.json +2 -1
  18. package/templates/commands/capture-knowledge.md +4 -0
  19. package/templates/commands/check-implementation.md +4 -0
  20. package/templates/commands/code-review.md +4 -0
  21. package/templates/commands/debug.md +4 -0
  22. package/templates/commands/execute-plan.md +4 -0
  23. package/templates/commands/new-requirement.md +4 -0
  24. package/templates/commands/review-design.md +4 -0
  25. package/templates/commands/review-requirements.md +4 -0
  26. package/templates/commands/simplify-implementation.md +148 -0
  27. package/templates/commands/update-planning.md +4 -0
  28. package/templates/commands/writing-test.md +4 -0
  29. package/web/content/pages/vision.md +2 -0
  30. package/dist/__tests__/lib/Config.test.d.ts +0 -2
  31. package/dist/__tests__/lib/Config.test.d.ts.map +0 -1
  32. package/dist/__tests__/lib/Config.test.js +0 -281
  33. package/dist/__tests__/lib/Config.test.js.map +0 -1
  34. package/dist/__tests__/lib/EnvironmentSelector.test.d.ts +0 -2
  35. package/dist/__tests__/lib/EnvironmentSelector.test.d.ts.map +0 -1
  36. package/dist/__tests__/lib/EnvironmentSelector.test.js +0 -117
  37. package/dist/__tests__/lib/EnvironmentSelector.test.js.map +0 -1
  38. package/dist/__tests__/lib/PhaseSelector.test.d.ts +0 -2
  39. package/dist/__tests__/lib/PhaseSelector.test.d.ts.map +0 -1
  40. package/dist/__tests__/lib/PhaseSelector.test.js +0 -77
  41. package/dist/__tests__/lib/PhaseSelector.test.js.map +0 -1
  42. package/dist/__tests__/util/env.test.d.ts +0 -2
  43. package/dist/__tests__/util/env.test.d.ts.map +0 -1
  44. package/dist/__tests__/util/env.test.js +0 -166
  45. 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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"}