@kosuke-ai/cli 0.0.23 → 0.0.25

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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for file discovery utilities
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=file-discovery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-discovery.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/file-discovery.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Tests for file discovery utilities
3
+ */
4
+ import { describe, it, expect } from 'vitest';
5
+ import { discoverFiles } from '@/kosuke/utils/file-discovery';
6
+ describe('discoverFiles', () => {
7
+ it('should return an array of files', async () => {
8
+ const files = await discoverFiles();
9
+ expect(Array.isArray(files)).toBe(true);
10
+ expect(files.length).toBeGreaterThan(0);
11
+ });
12
+ it('should discover TypeScript files by default', async () => {
13
+ const files = await discoverFiles();
14
+ // Should find at least some .ts files
15
+ const tsFiles = files.filter((f) => f.endsWith('.ts'));
16
+ expect(tsFiles.length).toBeGreaterThan(0);
17
+ });
18
+ it('should respect file type filters', async () => {
19
+ const files = await discoverFiles({ types: ['ts'] });
20
+ // All files should be .ts files
21
+ expect(files.every((f) => f.endsWith('.ts'))).toBe(true);
22
+ });
23
+ it('should filter out node_modules', async () => {
24
+ const files = await discoverFiles();
25
+ // Should not include any files from node_modules
26
+ expect(files.some((f) => f.includes('node_modules'))).toBe(false);
27
+ });
28
+ it('should filter out dist directory', async () => {
29
+ const files = await discoverFiles();
30
+ // Should not include any files from dist
31
+ expect(files.some((f) => f.includes('dist/'))).toBe(false);
32
+ });
33
+ it('should support scope filtering', async () => {
34
+ const files = await discoverFiles({ scope: 'kosuke' });
35
+ // All files should be under kosuke directory
36
+ expect(files.every((f) => f.startsWith('kosuke/'))).toBe(true);
37
+ });
38
+ it('should return unique files', async () => {
39
+ const files = await discoverFiles();
40
+ // Should not have duplicates
41
+ const uniqueFiles = [...new Set(files)];
42
+ expect(files.length).toBe(uniqueFiles.length);
43
+ });
44
+ it('should return sorted files', async () => {
45
+ const files = await discoverFiles();
46
+ // Should be sorted alphabetically
47
+ const sortedFiles = [...files].sort();
48
+ expect(files).toEqual(sortedFiles);
49
+ });
50
+ });
51
+ //# sourceMappingURL=file-discovery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-discovery.test.js","sourceRoot":"","sources":["../../../__tests__/utils/file-discovery.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for logger noLogs functionality
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=logger-nologs.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-nologs.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/logger-nologs.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Tests for logger noLogs functionality
3
+ */
4
+ import { describe, it, expect } from 'vitest';
5
+ import { logger } from '../../kosuke/utils/logger.js';
6
+ describe('Logger noLogs flag', () => {
7
+ it('should create context with noLogs=false by default', () => {
8
+ const context = logger.createContext('ship');
9
+ expect(context.noLogs).toBe(false);
10
+ });
11
+ it('should create context with noLogs=true when specified', () => {
12
+ const context = logger.createContext('ship', { noLogs: true });
13
+ expect(context.noLogs).toBe(true);
14
+ });
15
+ it('should not call API when noLogs is true', async () => {
16
+ const context = logger.createContext('test', { noLogs: true });
17
+ // Should not throw even if env vars are missing
18
+ await expect(logger.complete(context, 'success')).resolves.not.toThrow();
19
+ });
20
+ it('should respect noLogs flag in context', async () => {
21
+ const context = logger.createContext('review', { noLogs: true });
22
+ context.tokensInput = 100;
23
+ context.tokensOutput = 200;
24
+ // Should complete without making API calls
25
+ await expect(logger.complete(context, 'success')).resolves.not.toThrow();
26
+ });
27
+ it('should handle noLogs with error status', async () => {
28
+ const context = logger.createContext('ship', { noLogs: true });
29
+ const error = new Error('Test error');
30
+ // Should not throw even with error status and noLogs
31
+ await expect(logger.complete(context, 'error', error)).resolves.not.toThrow();
32
+ });
33
+ });
34
+ //# sourceMappingURL=logger-nologs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-nologs.test.js","sourceRoot":"","sources":["../../../__tests__/utils/logger-nologs.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/D,gDAAgD;QAChD,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC1B,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;QAE3B,2CAA2C;QAC3C,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAEtC,qDAAqD;QACrD,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for CLI logger utility
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=logger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/logger.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Tests for CLI logger utility
3
+ */
4
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
5
+ describe('logger', () => {
6
+ beforeEach(() => {
7
+ // Clear any module cache
8
+ vi.resetModules();
9
+ // Suppress console warnings in tests
10
+ vi.spyOn(console, 'warn').mockImplementation(() => { });
11
+ });
12
+ afterEach(() => {
13
+ vi.restoreAllMocks();
14
+ });
15
+ describe('calculateCost', () => {
16
+ it('should calculate cost correctly with input and output tokens only', async () => {
17
+ const { logger } = await import('@/kosuke/utils/logger');
18
+ const cost = logger.calculateCost(1000000, 1000000);
19
+ // $3 (input) + $15 (output) = $18
20
+ expect(cost).toBe('18.000000');
21
+ });
22
+ it('should calculate cost correctly with cache tokens', async () => {
23
+ const { logger } = await import('@/kosuke/utils/logger');
24
+ const cost = logger.calculateCost(1000000, 1000000, 1000000, 1000000);
25
+ // $3 (input) + $15 (output) + $3.75 (cache write) + $0.30 (cache read) = $22.05
26
+ expect(cost).toBe('22.050000');
27
+ });
28
+ it('should handle zero tokens', async () => {
29
+ const { logger } = await import('@/kosuke/utils/logger');
30
+ const cost = logger.calculateCost(0, 0, 0, 0);
31
+ expect(cost).toBe('0.000000');
32
+ });
33
+ it('should handle small token amounts', async () => {
34
+ const { logger } = await import('@/kosuke/utils/logger');
35
+ const cost = logger.calculateCost(1000, 500);
36
+ // (1000/1M * $3) + (500/1M * $15) = $0.003 + $0.0075 = $0.0105
37
+ expect(cost).toBe('0.010500');
38
+ });
39
+ });
40
+ describe('createContext', () => {
41
+ it('should create a new context with correct initial values', async () => {
42
+ const { logger } = await import('@/kosuke/utils/logger');
43
+ const context = logger.createContext('ship');
44
+ expect(context.command).toBe('ship');
45
+ expect(context.tokensInput).toBe(0);
46
+ expect(context.tokensOutput).toBe(0);
47
+ expect(context.tokensCacheCreation).toBe(0);
48
+ expect(context.tokensCacheRead).toBe(0);
49
+ expect(context.inferenceTimeMs).toBe(0);
50
+ expect(context.fixesApplied).toBe(0);
51
+ expect(context.testsRun).toBe(0);
52
+ expect(context.testsPassed).toBe(0);
53
+ expect(context.testsFailed).toBe(0);
54
+ expect(context.iterations).toBe(0);
55
+ expect(context.filesModified).toEqual([]);
56
+ expect(context.startTime).toBeGreaterThan(0);
57
+ expect(context.startedAt).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/);
58
+ });
59
+ it('should support all command types', async () => {
60
+ const { logger } = await import('@/kosuke/utils/logger');
61
+ const commands = ['ship', 'test', 'review', 'getcode', 'tickets'];
62
+ commands.forEach((command) => {
63
+ const context = logger.createContext(command);
64
+ expect(context.command).toBe(command);
65
+ });
66
+ });
67
+ });
68
+ describe('trackTokens', () => {
69
+ it('should accumulate token usage', async () => {
70
+ const { logger } = await import('@/kosuke/utils/logger');
71
+ const context = logger.createContext('ship');
72
+ logger.trackTokens(context, {
73
+ input: 1000,
74
+ output: 500,
75
+ cacheCreation: 100,
76
+ cacheRead: 50,
77
+ });
78
+ expect(context.tokensInput).toBe(1000);
79
+ expect(context.tokensOutput).toBe(500);
80
+ expect(context.tokensCacheCreation).toBe(100);
81
+ expect(context.tokensCacheRead).toBe(50);
82
+ // Track more tokens
83
+ logger.trackTokens(context, {
84
+ input: 2000,
85
+ output: 1000,
86
+ cacheCreation: 200,
87
+ cacheRead: 100,
88
+ });
89
+ expect(context.tokensInput).toBe(3000);
90
+ expect(context.tokensOutput).toBe(1500);
91
+ expect(context.tokensCacheCreation).toBe(300);
92
+ expect(context.tokensCacheRead).toBe(150);
93
+ });
94
+ });
95
+ describe('isEnabled', () => {
96
+ it('should return false when environment variables are not set', async () => {
97
+ // Stub environment variables before importing
98
+ vi.stubEnv('KOSUKE_BASE_URL', '');
99
+ vi.stubEnv('KOSUKE_API_KEY', '');
100
+ vi.stubEnv('KOSUKE_PROJECT_ID', '');
101
+ // Import logger with stubbed env
102
+ const { logger } = await import('@/kosuke/utils/logger.js');
103
+ expect(logger.isEnabled()).toBe(false);
104
+ });
105
+ it('should return true when all environment variables are set', async () => {
106
+ // Stub environment variables before importing
107
+ vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
108
+ vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
109
+ vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
110
+ // Import logger with stubbed env
111
+ const { logger } = await import('@/kosuke/utils/logger.js');
112
+ expect(logger.isEnabled()).toBe(true);
113
+ });
114
+ });
115
+ describe('getProjectContext', () => {
116
+ it('should return null when logging is disabled', async () => {
117
+ // Stub environment variables before importing
118
+ vi.stubEnv('KOSUKE_BASE_URL', '');
119
+ vi.stubEnv('KOSUKE_API_KEY', '');
120
+ vi.stubEnv('KOSUKE_PROJECT_ID', '');
121
+ // Import logger with no env vars
122
+ const { logger } = await import('@/kosuke/utils/logger');
123
+ const context = logger.getProjectContext();
124
+ expect(context).toBeNull();
125
+ });
126
+ it('should return project context when logging is enabled', async () => {
127
+ // Stub environment variables before importing
128
+ vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
129
+ vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
130
+ vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
131
+ // Import logger with stubbed env
132
+ const { logger } = await import('@/kosuke/utils/logger.js');
133
+ const context = logger.getProjectContext();
134
+ expect(context).toEqual({ projectId: 'test-project-id' });
135
+ });
136
+ });
137
+ describe('logCommand', () => {
138
+ it('should not throw when logging is disabled', async () => {
139
+ vi.stubEnv('KOSUKE_BASE_URL', '');
140
+ vi.stubEnv('KOSUKE_API_KEY', '');
141
+ vi.stubEnv('KOSUKE_PROJECT_ID', '');
142
+ const { logger } = await import('@/kosuke/utils/logger');
143
+ const context = logger.createContext('ship');
144
+ await expect(logger.complete(context, 'success')).resolves.not.toThrow();
145
+ });
146
+ it('should not throw when API call fails', async () => {
147
+ vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
148
+ vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
149
+ vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
150
+ // Mock fetch to throw an error
151
+ global.fetch = vi.fn().mockRejectedValue(new Error('Network error'));
152
+ const { logger } = await import('@/kosuke/utils/logger');
153
+ const context = logger.createContext('ship');
154
+ await expect(logger.complete(context, 'success')).resolves.not.toThrow();
155
+ });
156
+ });
157
+ describe('cost calculation edge cases', () => {
158
+ it('should handle very large token counts', async () => {
159
+ const { logger } = await import('@/kosuke/utils/logger');
160
+ const cost = logger.calculateCost(100000000, 50000000);
161
+ // (100M/1M * $3) + (50M/1M * $15) = $300 + $750 = $1050
162
+ expect(cost).toBe('1050.000000');
163
+ });
164
+ it('should format decimals correctly', async () => {
165
+ const { logger } = await import('@/kosuke/utils/logger');
166
+ const cost = logger.calculateCost(333, 666);
167
+ // Should have exactly 6 decimal places
168
+ expect(cost).toMatch(/^\d+\.\d{6}$/);
169
+ });
170
+ it('should handle fractional token costs', async () => {
171
+ const { logger } = await import('@/kosuke/utils/logger');
172
+ const cost = logger.calculateCost(1, 1, 1, 1);
173
+ // Very small amounts should still be calculated
174
+ const numericCost = parseFloat(cost);
175
+ expect(numericCost).toBeGreaterThan(0);
176
+ expect(numericCost).toBeLessThan(0.001);
177
+ });
178
+ });
179
+ describe('context mutation', () => {
180
+ it('should allow direct mutation of context fields', async () => {
181
+ const { logger } = await import('@/kosuke/utils/logger');
182
+ const context = logger.createContext('test');
183
+ context.testsRun = 10;
184
+ context.testsPassed = 8;
185
+ context.testsFailed = 2;
186
+ context.fixesApplied = 5;
187
+ context.iterations = 3;
188
+ context.filesModified = ['file1.ts', 'file2.ts'];
189
+ expect(context.testsRun).toBe(10);
190
+ expect(context.testsPassed).toBe(8);
191
+ expect(context.testsFailed).toBe(2);
192
+ expect(context.fixesApplied).toBe(5);
193
+ expect(context.iterations).toBe(3);
194
+ expect(context.filesModified).toEqual(['file1.ts', 'file2.ts']);
195
+ });
196
+ });
197
+ describe('complete', () => {
198
+ it('should calculate execution time', async () => {
199
+ vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
200
+ vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
201
+ vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
202
+ // Mock fetch to avoid actual API calls
203
+ global.fetch = vi.fn().mockResolvedValue({
204
+ ok: true,
205
+ json: async () => ({}),
206
+ });
207
+ const { logger } = await import('@/kosuke/utils/logger');
208
+ const context = logger.createContext('ship');
209
+ const startTime = Date.now();
210
+ // Simulate some work
211
+ await new Promise((resolve) => setTimeout(resolve, 100));
212
+ await logger.complete(context, 'success');
213
+ const executionTime = Date.now() - startTime;
214
+ expect(executionTime).toBeGreaterThanOrEqual(100);
215
+ });
216
+ it('should handle error status with error message', async () => {
217
+ vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
218
+ vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
219
+ vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
220
+ // Mock fetch to throw an error
221
+ global.fetch = vi.fn().mockRejectedValue(new Error('Network error'));
222
+ const { logger } = await import('@/kosuke/utils/logger');
223
+ const context = logger.createContext('ship');
224
+ const error = new Error('Test error message');
225
+ await expect(logger.complete(context, 'error', error)).resolves.not.toThrow();
226
+ });
227
+ it('should handle cancelled status', async () => {
228
+ vi.stubEnv('KOSUKE_BASE_URL', 'https://example.com');
229
+ vi.stubEnv('KOSUKE_API_KEY', 'test-api-key');
230
+ vi.stubEnv('KOSUKE_PROJECT_ID', 'test-project-id');
231
+ // Mock fetch to avoid actual API calls
232
+ global.fetch = vi.fn().mockResolvedValue({
233
+ ok: true,
234
+ json: async () => ({}),
235
+ });
236
+ const { logger } = await import('@/kosuke/utils/logger');
237
+ const context = logger.createContext('ship');
238
+ await expect(logger.complete(context, 'cancelled')).resolves.not.toThrow();
239
+ });
240
+ });
241
+ });
242
+ //# sourceMappingURL=logger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../__tests__/utils/logger.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for validation utilities
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.test.d.ts","sourceRoot":"","sources":["../../../__tests__/utils/validator.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Tests for validation utilities
3
+ */
4
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
5
+ import { execSync } from 'child_process';
6
+ import { existsSync, readFileSync } from 'fs';
7
+ // Mock modules
8
+ vi.mock('child_process', () => ({
9
+ execSync: vi.fn(),
10
+ }));
11
+ vi.mock('fs', () => ({
12
+ existsSync: vi.fn(),
13
+ readFileSync: vi.fn(),
14
+ }));
15
+ describe('validator utilities', () => {
16
+ beforeEach(() => {
17
+ vi.clearAllMocks();
18
+ });
19
+ describe('exports', () => {
20
+ it('should export validation functions', async () => {
21
+ const validatorModule = await import('@/kosuke/utils/validator');
22
+ expect(typeof validatorModule.runLint).toBe('function');
23
+ expect(typeof validatorModule.runTypecheck).toBe('function');
24
+ expect(typeof validatorModule.runFormat).toBe('function');
25
+ expect(typeof validatorModule.detectPackageManager).toBe('function');
26
+ expect(typeof validatorModule.readPackageJsonScripts).toBe('function');
27
+ });
28
+ });
29
+ describe('detectPackageManager', () => {
30
+ it('should detect bun from lockfile', async () => {
31
+ const mockExistsSync = vi.mocked(existsSync);
32
+ mockExistsSync.mockImplementation((path) => {
33
+ return String(path).includes('bun.lockb');
34
+ });
35
+ const { detectPackageManager } = await import('@/kosuke/utils/validator');
36
+ const result = detectPackageManager('/test/path');
37
+ expect(result).toBe('bun');
38
+ });
39
+ it('should detect pnpm from lockfile', async () => {
40
+ const mockExistsSync = vi.mocked(existsSync);
41
+ mockExistsSync.mockImplementation((path) => {
42
+ return String(path).includes('pnpm-lock.yaml');
43
+ });
44
+ const { detectPackageManager } = await import('@/kosuke/utils/validator');
45
+ const result = detectPackageManager('/test/path');
46
+ expect(result).toBe('pnpm');
47
+ });
48
+ it('should detect yarn from lockfile', async () => {
49
+ const mockExistsSync = vi.mocked(existsSync);
50
+ mockExistsSync.mockImplementation((path) => {
51
+ return String(path).includes('yarn.lock');
52
+ });
53
+ const { detectPackageManager } = await import('@/kosuke/utils/validator');
54
+ const result = detectPackageManager('/test/path');
55
+ expect(result).toBe('yarn');
56
+ });
57
+ it('should detect npm from lockfile', async () => {
58
+ const mockExistsSync = vi.mocked(existsSync);
59
+ mockExistsSync.mockImplementation((path) => {
60
+ return String(path).includes('package-lock.json');
61
+ });
62
+ const { detectPackageManager } = await import('@/kosuke/utils/validator');
63
+ const result = detectPackageManager('/test/path');
64
+ expect(result).toBe('npm');
65
+ });
66
+ it('should default to npm if no lockfile found', async () => {
67
+ const mockExistsSync = vi.mocked(existsSync);
68
+ mockExistsSync.mockReturnValue(false);
69
+ const { detectPackageManager } = await import('@/kosuke/utils/validator');
70
+ const result = detectPackageManager('/test/path');
71
+ expect(result).toBe('npm');
72
+ });
73
+ });
74
+ describe('readPackageJsonScripts', () => {
75
+ it('should read scripts from package.json', async () => {
76
+ const mockExistsSync = vi.mocked(existsSync);
77
+ const mockReadFileSync = vi.mocked(readFileSync);
78
+ mockExistsSync.mockReturnValue(true);
79
+ mockReadFileSync.mockReturnValue(JSON.stringify({
80
+ scripts: {
81
+ format: 'prettier --write .',
82
+ lint: 'eslint .',
83
+ typecheck: 'tsc --noEmit',
84
+ },
85
+ }));
86
+ const { readPackageJsonScripts } = await import('@/kosuke/utils/validator');
87
+ const result = readPackageJsonScripts('/test/path');
88
+ expect(result).toEqual({
89
+ format: 'prettier --write .',
90
+ lint: 'eslint .',
91
+ typecheck: 'tsc --noEmit',
92
+ });
93
+ });
94
+ it('should return null if package.json does not exist', async () => {
95
+ const mockExistsSync = vi.mocked(existsSync);
96
+ mockExistsSync.mockReturnValue(false);
97
+ const { readPackageJsonScripts } = await import('@/kosuke/utils/validator');
98
+ const result = readPackageJsonScripts('/test/path');
99
+ expect(result).toBeNull();
100
+ });
101
+ it('should return null if package.json has no scripts', async () => {
102
+ const mockExistsSync = vi.mocked(existsSync);
103
+ const mockReadFileSync = vi.mocked(readFileSync);
104
+ mockExistsSync.mockReturnValue(true);
105
+ mockReadFileSync.mockReturnValue(JSON.stringify({}));
106
+ const { readPackageJsonScripts } = await import('@/kosuke/utils/validator');
107
+ const result = readPackageJsonScripts('/test/path');
108
+ expect(result).toBeNull();
109
+ });
110
+ });
111
+ describe('runFormat', () => {
112
+ it('should handle successful execution', async () => {
113
+ const mockExecSync = vi.mocked(execSync);
114
+ const mockExistsSync = vi.mocked(existsSync);
115
+ const mockReadFileSync = vi.mocked(readFileSync);
116
+ mockExistsSync.mockReturnValue(true);
117
+ mockReadFileSync.mockReturnValue(JSON.stringify({
118
+ scripts: { format: 'prettier --write .' },
119
+ }));
120
+ mockExecSync.mockReturnValue('success output');
121
+ const { runFormat } = await import('@/kosuke/utils/validator');
122
+ const result = await runFormat();
123
+ expect(result.success).toBe(true);
124
+ expect(result.output).toBe('success output');
125
+ });
126
+ it('should return warning if format script is missing', async () => {
127
+ const mockExistsSync = vi.mocked(existsSync);
128
+ const mockReadFileSync = vi.mocked(readFileSync);
129
+ mockExistsSync.mockReturnValue(true);
130
+ mockReadFileSync.mockReturnValue(JSON.stringify({
131
+ scripts: { lint: 'eslint .' },
132
+ }));
133
+ const { runFormat } = await import('@/kosuke/utils/validator');
134
+ const result = await runFormat();
135
+ expect(result.success).toBe(true);
136
+ expect(result.warning).toBeDefined();
137
+ expect(result.warning).toContain('format');
138
+ });
139
+ it('should handle execution errors', async () => {
140
+ const mockExecSync = vi.mocked(execSync);
141
+ const mockExistsSync = vi.mocked(existsSync);
142
+ const mockReadFileSync = vi.mocked(readFileSync);
143
+ mockExistsSync.mockReturnValue(true);
144
+ mockReadFileSync.mockReturnValue(JSON.stringify({
145
+ scripts: { format: 'prettier --write .' },
146
+ }));
147
+ const error = new Error('Command failed');
148
+ error.stdout = 'error output';
149
+ mockExecSync.mockImplementation(() => {
150
+ throw error;
151
+ });
152
+ const { runFormat } = await import('@/kosuke/utils/validator');
153
+ const result = await runFormat();
154
+ expect(result.success).toBe(false);
155
+ expect(result.error).toBeDefined();
156
+ });
157
+ });
158
+ describe('runLint', () => {
159
+ it('should handle successful execution', async () => {
160
+ const mockExecSync = vi.mocked(execSync);
161
+ const mockExistsSync = vi.mocked(existsSync);
162
+ const mockReadFileSync = vi.mocked(readFileSync);
163
+ mockExistsSync.mockReturnValue(true);
164
+ mockReadFileSync.mockReturnValue(JSON.stringify({
165
+ scripts: { lint: 'eslint .' },
166
+ }));
167
+ mockExecSync.mockReturnValue('success output');
168
+ const { runLint } = await import('@/kosuke/utils/validator');
169
+ const result = await runLint();
170
+ expect(result.success).toBe(true);
171
+ expect(result.output).toBe('success output');
172
+ });
173
+ it('should return warning if lint script is missing', async () => {
174
+ const mockExistsSync = vi.mocked(existsSync);
175
+ const mockReadFileSync = vi.mocked(readFileSync);
176
+ mockExistsSync.mockReturnValue(true);
177
+ mockReadFileSync.mockReturnValue(JSON.stringify({
178
+ scripts: { format: 'prettier --write .' },
179
+ }));
180
+ const { runLint } = await import('@/kosuke/utils/validator');
181
+ const result = await runLint();
182
+ expect(result.success).toBe(true);
183
+ expect(result.warning).toBeDefined();
184
+ expect(result.warning).toContain('lint');
185
+ });
186
+ it('should handle execution errors', async () => {
187
+ const mockExecSync = vi.mocked(execSync);
188
+ const mockExistsSync = vi.mocked(existsSync);
189
+ const mockReadFileSync = vi.mocked(readFileSync);
190
+ mockExistsSync.mockReturnValue(true);
191
+ mockReadFileSync.mockReturnValue(JSON.stringify({
192
+ scripts: { lint: 'eslint .' },
193
+ }));
194
+ const error = new Error('Command failed');
195
+ error.stdout = 'error output';
196
+ mockExecSync.mockImplementation(() => {
197
+ throw error;
198
+ });
199
+ const { runLint } = await import('@/kosuke/utils/validator');
200
+ const result = await runLint();
201
+ expect(result.success).toBe(false);
202
+ expect(result.error).toBeDefined();
203
+ });
204
+ });
205
+ });
206
+ //# sourceMappingURL=validator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.test.js","sourceRoot":"","sources":["../../../__tests__/utils/validator.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/requirements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyND;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyIhG;AAiSD;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAazD"}
1
+ {"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/requirements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsBH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsPD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAuKhG;AAiSD;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAazD"}
@@ -56,17 +56,32 @@ Present the application structure as visual wireframes using markdown. For each
56
56
  - User interactions
57
57
  - Data displayed
58
58
 
59
- ## Clarification Questions
60
- 1. [Question 1 - be specific]
61
- 2. [Question 2 - be specific]
62
- 3. [Question 3 - be specific]
59
+ ## Clarification Questions & MVP Recommendations
60
+
61
+ For each clarification needed, provide BOTH a question AND a recommended approach for MVP:
62
+
63
+ 1. **[Question topic]**
64
+ - Question: [Specific question]
65
+ - šŸ’” MVP Recommendation: [Simple, practical approach that reduces scope]
66
+
67
+ 2. **[Question topic]**
68
+ - Question: [Specific question]
69
+ - šŸ’” MVP Recommendation: [Simple, practical approach that reduces scope]
70
+
71
+ 3. **[Question topic]**
72
+ - Question: [Specific question]
73
+ - šŸ’” MVP Recommendation: [Simple, practical approach that reduces scope]
74
+
63
75
  ...
76
+
77
+ **Quick Response Option:** The user can reply "go for recommendations" or "use recommendations" to accept all MVP recommendations at once.
64
78
  ---
65
79
 
66
80
  2. **Iterative Refinement**: As the user answers questions:
67
- - Acknowledge their answers
68
- - Update your understanding based on new information
69
- - Ask follow-up questions for any remaining ambiguities
81
+ - If user says "go for recommendations" or "use recommendations", immediately accept ALL MVP recommendations and proceed to creating docs.md
82
+ - If user provides specific answers, acknowledge them and update your understanding
83
+ - Ask follow-up questions ONLY for remaining ambiguities
84
+ - Always prioritize simplicity and MVP scope
70
85
  - Continue the conversation until EVERYTHING is crystal clear
71
86
 
72
87
  3. **Final Deliverable - docs.md**: Once ALL questions are answered and requirements are 100% clear, create the \`docs.md\` file. This is the FINAL DELIVERABLE that the user will review before implementation begins.
@@ -84,11 +99,14 @@ Present the application structure as visual wireframes using markdown. For each
84
99
 
85
100
  **Critical Rules:**
86
101
  - NEVER start implementation - you only gather requirements
87
- - NEVER create docs.md until ALL clarification questions are answered
88
- - ALWAYS ask specific, numbered questions for anything unclear
102
+ - NEVER create docs.md until ALL clarification questions are answered (or user accepts recommendations)
103
+ - ALWAYS provide both questions AND MVP recommendations for each clarification point
104
+ - MVP recommendations should simplify scope, reduce complexity, and focus on core features
105
+ - If user says "go for recommendations" or similar, immediately accept ALL recommendations and create docs.md
89
106
  - ALWAYS create comprehensive ASCII wireframes to visualize interfaces
90
107
  - Focus on WHAT the product should do, not HOW to code it
91
108
  - Be conversational and help the user think through edge cases
109
+ - Bias towards simplicity - this is an MVP, not a full-featured product
92
110
  - The docs.md file is your SUCCESS CRITERIA - make it comprehensive and clear
93
111
 
94
112
  **Success = User reviews docs.md and says "Yes, this is exactly what I want to build"**`;
@@ -143,12 +161,20 @@ async function processClaudeInteraction(userInput, sessionId, isFirstRequest) {
143
161
  const blockTexts = new Map();
144
162
  // Process the async generator with streaming
145
163
  for await (const message of responseStream) {
146
- if (message.type === 'user') {
164
+ // Capture session ID from system init message
165
+ if (message.type === 'system' && message.subtype === 'init') {
147
166
  if (!newSessionId) {
148
167
  newSessionId = message.session_id;
168
+ console.log(`\nšŸ†” Session ID captured from system init: ${newSessionId}\n`);
149
169
  }
150
170
  }
151
- else if (message.type === 'assistant') {
171
+ // Also try capturing from ANY message that has a session_id
172
+ const messageWithId = message;
173
+ if (!newSessionId && messageWithId.session_id) {
174
+ newSessionId = messageWithId.session_id;
175
+ console.log(`\nšŸ†” Session ID captured from ${message.type} message: ${newSessionId}\n`);
176
+ }
177
+ if (message.type === 'assistant') {
152
178
  const content = message.message.content;
153
179
  for (let i = 0; i < content.length; i++) {
154
180
  const block = content[i];
@@ -237,13 +263,28 @@ export async function requirementsCore(options) {
237
263
  const blockTexts = new Map();
238
264
  try {
239
265
  for await (const message of responseStream) {
240
- if (message.type === 'user') {
266
+ // Debug: Log ALL message details to understand stream structure
267
+ const messageWithId = message;
268
+ console.log(`šŸ“Ø [RequirementsCore] Message received:`, JSON.stringify({
269
+ type: message.type,
270
+ subtype: messageWithId.subtype,
271
+ hasSessionId: !!messageWithId.session_id,
272
+ sessionIdValue: messageWithId.session_id || 'N/A',
273
+ keys: Object.keys(message),
274
+ }, null, 2));
275
+ // Capture session ID from system init message (first message in stream)
276
+ if (message.type === 'system' && message.subtype === 'init') {
241
277
  if (!newSessionId) {
242
278
  newSessionId = message.session_id;
243
- console.log(`šŸ†” [RequirementsCore] Captured new session ID: ${newSessionId}`);
279
+ console.log(`šŸ†” [RequirementsCore] Captured new session ID from system init: ${newSessionId}`);
244
280
  }
245
281
  }
246
- else if (message.type === 'assistant') {
282
+ // Also try capturing from ANY message that has a session_id
283
+ if (!newSessionId && messageWithId.session_id) {
284
+ newSessionId = messageWithId.session_id;
285
+ console.log(`šŸ†” [RequirementsCore] Captured session ID from ${message.type} message: ${newSessionId}`);
286
+ }
287
+ if (message.type === 'assistant') {
247
288
  const content = message.message.content;
248
289
  for (let i = 0; i < content.length; i++) {
249
290
  const block = content[i];
@@ -1 +1 @@
1
- {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../../kosuke/commands/requirements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../../kosuke/commands/requirements.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kosuke-ai/cli",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "description": "Kosuke CLI - Development automation tool for syncing rules and analyzing code quality",
5
5
  "keywords": [
6
6
  "CLI",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kosuke-ai/cli",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "description": "Kosuke CLI - Development automation tool for syncing rules and analyzing code quality",
5
5
  "keywords": [
6
6
  "CLI",