@kosuke-ai/cli 0.0.55 → 0.0.57

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 (105) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +85 -5
  4. package/dist/index.js.map +1 -1
  5. package/dist/kosuke/commands/analyse.d.ts.map +1 -1
  6. package/dist/kosuke/commands/analyse.js +42 -11
  7. package/dist/kosuke/commands/analyse.js.map +1 -1
  8. package/dist/kosuke/commands/build.d.ts.map +1 -1
  9. package/dist/kosuke/commands/build.js +7 -5
  10. package/dist/kosuke/commands/build.js.map +1 -1
  11. package/dist/kosuke/commands/fix.d.ts +21 -0
  12. package/dist/kosuke/commands/fix.d.ts.map +1 -0
  13. package/dist/kosuke/commands/fix.js +256 -0
  14. package/dist/kosuke/commands/fix.js.map +1 -0
  15. package/dist/kosuke/commands/getcode.d.ts.map +1 -1
  16. package/dist/kosuke/commands/getcode.js +33 -6
  17. package/dist/kosuke/commands/getcode.js.map +1 -1
  18. package/dist/kosuke/commands/lint.d.ts.map +1 -1
  19. package/dist/kosuke/commands/lint.js +25 -4
  20. package/dist/kosuke/commands/lint.js.map +1 -1
  21. package/dist/kosuke/commands/migrate.d.ts.map +1 -1
  22. package/dist/kosuke/commands/migrate.js +2 -1
  23. package/dist/kosuke/commands/migrate.js.map +1 -1
  24. package/dist/kosuke/commands/plan.d.ts +2 -2
  25. package/dist/kosuke/commands/plan.d.ts.map +1 -1
  26. package/dist/kosuke/commands/plan.js +98 -44
  27. package/dist/kosuke/commands/plan.js.map +1 -1
  28. package/dist/kosuke/commands/requirements.d.ts.map +1 -1
  29. package/dist/kosuke/commands/requirements.js +3 -2
  30. package/dist/kosuke/commands/requirements.js.map +1 -1
  31. package/dist/kosuke/commands/ship.d.ts.map +1 -1
  32. package/dist/kosuke/commands/ship.js +2 -1
  33. package/dist/kosuke/commands/ship.js.map +1 -1
  34. package/dist/kosuke/commands/sync-rules.d.ts.map +1 -1
  35. package/dist/kosuke/commands/sync-rules.js +41 -5
  36. package/dist/kosuke/commands/sync-rules.js.map +1 -1
  37. package/dist/kosuke/commands/test.d.ts.map +1 -1
  38. package/dist/kosuke/commands/test.js +3 -2
  39. package/dist/kosuke/commands/test.js.map +1 -1
  40. package/dist/kosuke/commands/tickets.d.ts +6 -6
  41. package/dist/kosuke/commands/tickets.d.ts.map +1 -1
  42. package/dist/kosuke/commands/tickets.js +593 -216
  43. package/dist/kosuke/commands/tickets.js.map +1 -1
  44. package/dist/kosuke/commands/validate-tickets.d.ts +23 -0
  45. package/dist/kosuke/commands/validate-tickets.d.ts.map +1 -0
  46. package/dist/kosuke/commands/validate-tickets.js +360 -0
  47. package/dist/kosuke/commands/validate-tickets.js.map +1 -0
  48. package/dist/kosuke/serve/middleware/error-handler.d.ts +5 -4
  49. package/dist/kosuke/serve/middleware/error-handler.d.ts.map +1 -1
  50. package/dist/kosuke/serve/middleware/error-handler.js +20 -12
  51. package/dist/kosuke/serve/middleware/error-handler.js.map +1 -1
  52. package/dist/kosuke/serve/middleware/validation.d.ts +2 -2
  53. package/dist/kosuke/serve/middleware/validation.d.ts.map +1 -1
  54. package/dist/kosuke/serve/middleware/validation.js +3 -4
  55. package/dist/kosuke/serve/middleware/validation.js.map +1 -1
  56. package/dist/kosuke/serve/routes/build.d.ts +2 -2
  57. package/dist/kosuke/serve/routes/build.d.ts.map +1 -1
  58. package/dist/kosuke/serve/routes/build.js +10 -8
  59. package/dist/kosuke/serve/routes/build.js.map +1 -1
  60. package/dist/kosuke/serve/routes/health.d.ts +2 -2
  61. package/dist/kosuke/serve/routes/health.d.ts.map +1 -1
  62. package/dist/kosuke/serve/routes/health.js +2 -2
  63. package/dist/kosuke/serve/routes/health.js.map +1 -1
  64. package/dist/kosuke/serve/routes/plan.d.ts +2 -2
  65. package/dist/kosuke/serve/routes/plan.d.ts.map +1 -1
  66. package/dist/kosuke/serve/routes/plan.js +10 -8
  67. package/dist/kosuke/serve/routes/plan.js.map +1 -1
  68. package/dist/kosuke/serve/server.d.ts +4 -4
  69. package/dist/kosuke/serve/server.d.ts.map +1 -1
  70. package/dist/kosuke/serve/server.js +24 -20
  71. package/dist/kosuke/serve/server.js.map +1 -1
  72. package/dist/kosuke/types.d.ts +97 -27
  73. package/dist/kosuke/types.d.ts.map +1 -1
  74. package/dist/kosuke/utils/claude-agent.d.ts +0 -5
  75. package/dist/kosuke/utils/claude-agent.d.ts.map +1 -1
  76. package/dist/kosuke/utils/claude-agent.js +3 -118
  77. package/dist/kosuke/utils/claude-agent.js.map +1 -1
  78. package/dist/kosuke/utils/constants.d.ts +40 -0
  79. package/dist/kosuke/utils/constants.d.ts.map +1 -0
  80. package/dist/kosuke/utils/constants.js +54 -0
  81. package/dist/kosuke/utils/constants.js.map +1 -0
  82. package/dist/kosuke/utils/json-parser.d.ts +14 -0
  83. package/dist/kosuke/utils/json-parser.d.ts.map +1 -0
  84. package/dist/kosuke/utils/json-parser.js +40 -0
  85. package/dist/kosuke/utils/json-parser.js.map +1 -0
  86. package/dist/kosuke/utils/logger.d.ts +1 -1
  87. package/dist/kosuke/utils/logger.d.ts.map +1 -1
  88. package/dist/kosuke/utils/logger.js +4 -3
  89. package/dist/kosuke/utils/logger.js.map +1 -1
  90. package/dist/kosuke/utils/playwright-mcp-client.d.ts.map +1 -1
  91. package/dist/kosuke/utils/playwright-mcp-client.js +2 -1
  92. package/dist/kosuke/utils/playwright-mcp-client.js.map +1 -1
  93. package/dist/kosuke/utils/repository-manager.d.ts.map +1 -1
  94. package/dist/kosuke/utils/repository-manager.js +1 -1
  95. package/dist/kosuke/utils/repository-manager.js.map +1 -1
  96. package/dist/kosuke/utils/tickets-manager.d.ts +3 -33
  97. package/dist/kosuke/utils/tickets-manager.d.ts.map +1 -1
  98. package/dist/kosuke/utils/tickets-manager.js +12 -237
  99. package/dist/kosuke/utils/tickets-manager.js.map +1 -1
  100. package/dist/lib.d.ts +32 -24
  101. package/dist/lib.d.ts.map +1 -1
  102. package/dist/lib.js +29 -20
  103. package/dist/lib.js.map +1 -1
  104. package/dist/package.json +2 -3
  105. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../../kosuke/commands/tickets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../../kosuke/commands/tickets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Validate-tickets command - Validate and fix ticket structure using Claude
3
+ *
4
+ * Validates tickets.json structure and optionally fixes issues.
5
+ * In normal mode, auto-fixes issues and saves back to file.
6
+ * In strict mode, reports issues without fixing (useful for CI/CD).
7
+ *
8
+ * Usage:
9
+ * kosuke validate-tickets # Auto-fix mode (current directory)
10
+ * kosuke validate-tickets --directory=./idealista-clone # Auto-fix mode (specific directory)
11
+ * kosuke validate-tickets --tickets=./path/to/tickets.json # Custom tickets file
12
+ * kosuke validate-tickets --directory=./project --strict # Strict mode (fail on issues)
13
+ */
14
+ import type { ValidateTicketsOptions, ValidateTicketsStreamEvent } from '../types.js';
15
+ /**
16
+ * Core validation logic - streaming version (exported for programmatic use)
17
+ */
18
+ export declare function validateTicketsCoreStream(options: ValidateTicketsOptions): AsyncGenerator<ValidateTicketsStreamEvent, void, void>;
19
+ /**
20
+ * CLI wrapper for validate-tickets command
21
+ */
22
+ export declare function validateTicketsCommand(options: ValidateTicketsOptions): Promise<void>;
23
+ //# sourceMappingURL=validate-tickets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-tickets.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/validate-tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAU,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAwD9F;;GAEG;AACH,wBAAuB,yBAAyB,CAC9C,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,CAAC,CAqOxD;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoG3F"}
@@ -0,0 +1,360 @@
1
+ /**
2
+ * Validate-tickets command - Validate and fix ticket structure using Claude
3
+ *
4
+ * Validates tickets.json structure and optionally fixes issues.
5
+ * In normal mode, auto-fixes issues and saves back to file.
6
+ * In strict mode, reports issues without fixing (useful for CI/CD).
7
+ *
8
+ * Usage:
9
+ * kosuke validate-tickets # Auto-fix mode (current directory)
10
+ * kosuke validate-tickets --directory=./idealista-clone # Auto-fix mode (specific directory)
11
+ * kosuke validate-tickets --tickets=./path/to/tickets.json # Custom tickets file
12
+ * kosuke validate-tickets --directory=./project --strict # Strict mode (fail on issues)
13
+ */
14
+ import { existsSync, statSync } from 'fs';
15
+ import { join, resolve } from 'path';
16
+ import { formatCostBreakdown, runAgentStream } from '../utils/claude-agent.js';
17
+ import { logger, setupCancellationHandler } from '../utils/logger.js';
18
+ import { loadTicketsFile, saveTicketsFile } from '../utils/tickets-manager.js';
19
+ /**
20
+ * Build validation prompt for structural fixes only
21
+ */
22
+ function buildValidationPrompt(tickets) {
23
+ return `You are a ticket structure validator. Fix ONLY structural issues, preserve all content.
24
+
25
+ **Tickets to Validate:**
26
+ ${JSON.stringify(tickets, null, 2)}
27
+
28
+ **STRUCTURAL RULES TO ENFORCE:**
29
+
30
+ 1. **Ticket ID Format**: {BATCH}-{TYPE}-{NUMBER}
31
+ - Examples: SCAFFOLD-SCHEMA-1, LOGIC-BACKEND-2, PLAN-FRONTEND-3
32
+ - Fix: SCAFFOLD-1 → SCAFFOLD-SCHEMA-1 (based on type field)
33
+
34
+ 2. **Batch-Specific Type Sequences**:
35
+ - **SCAFFOLD**: SCHEMA → REFACTOR → TEST (no backend/frontend/engine)
36
+ - **LOGIC**: SCHEMA → ENGINE → BACKEND → FRONTEND → TEST
37
+ - **PLAN**: SCHEMA → ENGINE → BACKEND → FRONTEND → TEST
38
+ - Fix: Remove invalid types from batch or move to correct batch
39
+
40
+ 3. **ONE Schema Per Batch**: Merge multiple schema tickets in same batch
41
+ - Fix: [LOGIC-SCHEMA-1, LOGIC-SCHEMA-2] → [LOGIC-SCHEMA-1 (merged)]
42
+ - Fix: [SCAFFOLD-SCHEMA-1, SCAFFOLD-SCHEMA-2] → [SCAFFOLD-SCHEMA-1 (merged)]
43
+
44
+ 4. **Feature-by-Feature Ordering**: For LOGIC/PLAN batches only
45
+ - Order: BACKEND → FRONTEND → TEST for each feature
46
+ - Fix: [B1, B2, F1, F2, T1, T2] → [B1, F1, T1, B2, F2, T2]
47
+ - Note: SCAFFOLD batch uses SCHEMA → REFACTOR → TEST (different pattern)
48
+
49
+ 5. **Sequential Numbering**: No gaps in numbering within batch and type
50
+ - Fix: LOGIC-BACKEND-1, LOGIC-BACKEND-5 → LOGIC-BACKEND-1, LOGIC-BACKEND-2
51
+ - Fix: SCAFFOLD-REFACTOR-1, SCAFFOLD-REFACTOR-3 → SCAFFOLD-REFACTOR-1, SCAFFOLD-REFACTOR-2
52
+
53
+ 6. **Required Fields**: id, title, description, type, estimatedEffort, status
54
+ - Fix: Add placeholders for missing fields only
55
+
56
+ **PRESERVE UNCHANGED:**
57
+ - All descriptions (don't modify content)
58
+ - All effort estimates
59
+ - All categories
60
+ - All ticket details
61
+
62
+ **OUTPUT FORMAT (CRITICAL):**
63
+ Return ONLY raw JSON object (no markdown, no text):
64
+ {"validationIssues":["issue1","issue2"],"fixedTickets":[{...}]}
65
+
66
+ START YOUR RESPONSE WITH: {
67
+ END YOUR RESPONSE WITH: }`;
68
+ }
69
+ /**
70
+ * Core validation logic - streaming version (exported for programmatic use)
71
+ */
72
+ export async function* validateTicketsCoreStream(options) {
73
+ const { directory, tickets: ticketsPath, strict = false } = options;
74
+ try {
75
+ // Resolve directory
76
+ const cwd = directory ? resolve(directory) : process.cwd();
77
+ if (!existsSync(cwd)) {
78
+ yield {
79
+ type: 'done',
80
+ data: {
81
+ status: 'error',
82
+ valid: false,
83
+ issuesFixed: 0,
84
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
85
+ cost: 0,
86
+ error: `Directory not found: ${cwd}`,
87
+ },
88
+ };
89
+ return;
90
+ }
91
+ const stats = statSync(cwd);
92
+ if (!stats.isDirectory()) {
93
+ yield {
94
+ type: 'done',
95
+ data: {
96
+ status: 'error',
97
+ valid: false,
98
+ issuesFixed: 0,
99
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
100
+ cost: 0,
101
+ error: `Path is not a directory: ${cwd}`,
102
+ },
103
+ };
104
+ return;
105
+ }
106
+ // Resolve tickets file path
107
+ const resolvedTicketsPath = ticketsPath ? resolve(cwd, ticketsPath) : join(cwd, 'tickets.json');
108
+ if (!existsSync(resolvedTicketsPath)) {
109
+ yield {
110
+ type: 'done',
111
+ data: {
112
+ status: 'error',
113
+ valid: false,
114
+ issuesFixed: 0,
115
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
116
+ cost: 0,
117
+ error: `Tickets file not found: ${resolvedTicketsPath}\nPlease generate tickets first using: kosuke tickets`,
118
+ },
119
+ };
120
+ return;
121
+ }
122
+ // Load tickets from file
123
+ const ticketsData = loadTicketsFile(resolvedTicketsPath);
124
+ const tickets = ticketsData.tickets;
125
+ // Send to Claude for structural validation
126
+ const validationPrompt = buildValidationPrompt(tickets);
127
+ const stream = runAgentStream('Validate and fix ticket structure', {
128
+ systemPrompt: validationPrompt,
129
+ maxTurns: 10,
130
+ verbosity: 'normal',
131
+ cwd,
132
+ });
133
+ let fullResponse = '';
134
+ let tokensUsed = { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 };
135
+ let cost = 0;
136
+ // Yield events from stream
137
+ for await (const event of stream) {
138
+ if (event.type === 'message') {
139
+ yield { type: 'message', data: event.data };
140
+ // Accumulate response text
141
+ const claudeMessage = event.data;
142
+ if (claudeMessage.type === 'assistant' && claudeMessage.message) {
143
+ const msg = claudeMessage.message;
144
+ if (msg.content && Array.isArray(msg.content)) {
145
+ for (const block of msg.content) {
146
+ if (block.type === 'text' && block.text) {
147
+ fullResponse += block.text;
148
+ }
149
+ else if (block.type === 'tool_use' && block.name) {
150
+ yield {
151
+ type: 'tool_call',
152
+ data: { name: block.name, input: block.input || {} },
153
+ };
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ else if (event.type === 'agent_result') {
160
+ tokensUsed = event.data.tokensUsed;
161
+ cost = event.data.cost;
162
+ }
163
+ }
164
+ // Extract JSON from response
165
+ const startIdx = fullResponse.indexOf('{');
166
+ const endIdx = fullResponse.lastIndexOf('}');
167
+ if (startIdx === -1 || endIdx === -1) {
168
+ yield {
169
+ type: 'done',
170
+ data: {
171
+ status: 'error',
172
+ valid: false,
173
+ issuesFixed: 0,
174
+ tokensUsed,
175
+ cost,
176
+ error: 'Validation failed: Could not find JSON in Claude response.\nResponse preview: ' +
177
+ fullResponse.substring(0, 200),
178
+ },
179
+ };
180
+ return;
181
+ }
182
+ const jsonStr = fullResponse.substring(startIdx, endIdx + 1);
183
+ let validationResult;
184
+ try {
185
+ validationResult = JSON.parse(jsonStr);
186
+ }
187
+ catch (parseError) {
188
+ yield {
189
+ type: 'done',
190
+ data: {
191
+ status: 'error',
192
+ valid: false,
193
+ issuesFixed: 0,
194
+ tokensUsed,
195
+ cost,
196
+ error: `Validation failed: Invalid JSON in Claude response.\nParse error: ${parseError instanceof Error ? parseError.message : String(parseError)}\nResponse preview: ${fullResponse.substring(0, 200)}`,
197
+ },
198
+ };
199
+ return;
200
+ }
201
+ // Validate structure of result
202
+ if (!validationResult.fixedTickets || !Array.isArray(validationResult.fixedTickets)) {
203
+ yield {
204
+ type: 'done',
205
+ data: {
206
+ status: 'error',
207
+ valid: false,
208
+ issuesFixed: 0,
209
+ tokensUsed,
210
+ cost,
211
+ error: 'Validation failed: Response missing fixedTickets array.\nResponse: ' +
212
+ JSON.stringify(validationResult, null, 2).substring(0, 200),
213
+ },
214
+ };
215
+ return;
216
+ }
217
+ if (validationResult.fixedTickets.length === 0) {
218
+ yield {
219
+ type: 'done',
220
+ data: {
221
+ status: 'error',
222
+ valid: false,
223
+ issuesFixed: 0,
224
+ tokensUsed,
225
+ cost,
226
+ error: 'Validation failed: No tickets in validation result',
227
+ },
228
+ };
229
+ return;
230
+ }
231
+ const issues = validationResult.validationIssues || [];
232
+ const hasIssues = issues.length > 0;
233
+ // Strict mode: report issues and exit without fixing
234
+ if (strict && hasIssues) {
235
+ yield {
236
+ type: 'done',
237
+ data: {
238
+ status: 'error',
239
+ valid: false,
240
+ issuesFixed: issues.length,
241
+ tokensUsed,
242
+ cost,
243
+ error: `Validation failed in strict mode: ${issues.length} issue(s) found`,
244
+ },
245
+ };
246
+ return;
247
+ }
248
+ // Normal mode: write fixed tickets back to file
249
+ const updatedData = {
250
+ generatedAt: ticketsData.generatedAt,
251
+ totalTickets: validationResult.fixedTickets.length,
252
+ tickets: validationResult.fixedTickets,
253
+ };
254
+ saveTicketsFile(resolvedTicketsPath, updatedData);
255
+ yield {
256
+ type: 'done',
257
+ data: {
258
+ status: 'success',
259
+ valid: true,
260
+ issuesFixed: issues.length,
261
+ tokensUsed,
262
+ cost,
263
+ },
264
+ };
265
+ }
266
+ catch (error) {
267
+ yield {
268
+ type: 'done',
269
+ data: {
270
+ status: 'error',
271
+ valid: false,
272
+ issuesFixed: 0,
273
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
274
+ cost: 0,
275
+ error: error instanceof Error ? error.message : String(error),
276
+ },
277
+ };
278
+ }
279
+ }
280
+ /**
281
+ * CLI wrapper for validate-tickets command
282
+ */
283
+ export async function validateTicketsCommand(options) {
284
+ const { noLogs = false, strict = false, directory, tickets: ticketsPath } = options;
285
+ console.log('🔍 Starting Ticket Validation...\n');
286
+ // Initialize logging context
287
+ const logContext = logger.createContext('validate-tickets', { noLogs });
288
+ const cleanupHandler = setupCancellationHandler(logContext);
289
+ try {
290
+ // Validate environment
291
+ if (!process.env.ANTHROPIC_API_KEY) {
292
+ throw new Error('ANTHROPIC_API_KEY environment variable is required');
293
+ }
294
+ // Resolve paths for display
295
+ const cwd = directory ? resolve(directory) : process.cwd();
296
+ const resolvedTicketsPath = ticketsPath ? resolve(cwd, ticketsPath) : join(cwd, 'tickets.json');
297
+ console.log(`${'─'.repeat(60)}`);
298
+ console.log('🔍 Validating ticket structure...');
299
+ console.log(`${'─'.repeat(60)}\n`);
300
+ console.log(`📁 Project directory: ${cwd}`);
301
+ console.log(`📄 Tickets file: ${resolvedTicketsPath}\n`);
302
+ // Load tickets for display
303
+ const ticketsData = loadTicketsFile(resolvedTicketsPath);
304
+ console.log(`📋 Loaded ${ticketsData.tickets.length} tickets\n`);
305
+ // Consume stream
306
+ const stream = validateTicketsCoreStream(options);
307
+ let finalResult = null;
308
+ for await (const event of stream) {
309
+ if (event.type === 'done') {
310
+ finalResult = event.data;
311
+ }
312
+ // Messages are already logged by runAgentStream with verbosity
313
+ }
314
+ if (!finalResult) {
315
+ throw new Error('Validation failed: No result received');
316
+ }
317
+ if (finalResult.status === 'error') {
318
+ throw new Error(finalResult.error || 'Validation failed');
319
+ }
320
+ // Now TypeScript knows finalResult.status === 'success'
321
+ const { valid, issuesFixed, tokensUsed, cost } = finalResult;
322
+ // Track metrics
323
+ logger.trackTokens(logContext, tokensUsed);
324
+ // Display validation results
325
+ if (issuesFixed > 0) {
326
+ console.log(`✅ Fixed ${issuesFixed} issue(s) and saved to: ${resolvedTicketsPath}\n`);
327
+ }
328
+ else {
329
+ console.log(`✅ No structural issues found\n`);
330
+ }
331
+ // Display cost breakdown
332
+ const costBreakdown = formatCostBreakdown({
333
+ cost,
334
+ tokensUsed,
335
+ fixCount: 0,
336
+ response: '',
337
+ filesReferenced: new Set(),
338
+ });
339
+ console.log(`💰 Cost: ${costBreakdown}\n`);
340
+ // Strict mode: exit with error if issues found
341
+ if (strict && !valid) {
342
+ console.log(`❌ Validation failed: ${issuesFixed} issue(s) found\n`);
343
+ await logger.complete(logContext, 'error', new Error('Validation failed in strict mode'));
344
+ cleanupHandler();
345
+ process.exit(1);
346
+ }
347
+ console.log('✅ Validation completed successfully!');
348
+ // Log successful execution
349
+ await logger.complete(logContext, 'success');
350
+ cleanupHandler();
351
+ }
352
+ catch (error) {
353
+ console.error('\n❌ Validation command failed:', error);
354
+ // Log failed execution
355
+ await logger.complete(logContext, 'error', error);
356
+ cleanupHandler();
357
+ throw error;
358
+ }
359
+ }
360
+ //# sourceMappingURL=validate-tickets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-tickets.js","sourceRoot":"","sources":["../../../kosuke/commands/validate-tickets.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Error handling middleware
3
3
  */
4
- import type { Request, Response, NextFunction } from 'express';
4
+ import type { FastifyRequest, FastifyReply } from 'fastify';
5
+ import type { FastifyError } from 'fastify';
5
6
  /**
6
7
  * 404 handler for unknown routes
7
8
  */
8
- export declare function notFoundHandler(req: Request, res: Response): void;
9
+ export declare function notFoundHandler(req: FastifyRequest, reply: FastifyReply): void;
9
10
  /**
10
- * Global error handler (must be registered last)
11
+ * Global error handler
11
12
  */
12
- export declare function errorHandler(err: Error, req: Request, res: Response, _next: NextFunction): void;
13
+ export declare function errorHandler(error: FastifyError, _req: FastifyRequest, reply: FastifyReply): void;
13
14
  //# sourceMappingURL=error-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAMjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAiB/F"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAM9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CA0BjG"}
@@ -4,31 +4,39 @@
4
4
  /**
5
5
  * 404 handler for unknown routes
6
6
  */
7
- export function notFoundHandler(req, res) {
8
- res.status(404).json({
7
+ export function notFoundHandler(req, reply) {
8
+ reply.code(404).send({
9
9
  error: 'Not Found',
10
- message: `Route ${req.method} ${req.path} not found`,
11
- availableRoutes: ['GET /health', 'POST /api/plan'],
10
+ message: `Route ${req.method} ${req.url} not found`,
11
+ availableRoutes: ['GET /health', 'POST /api/plan', 'POST /api/build'],
12
12
  });
13
13
  }
14
14
  /**
15
- * Global error handler (must be registered last)
15
+ * Global error handler
16
16
  */
17
- export function errorHandler(err, req, res, _next) {
17
+ export function errorHandler(error, _req, reply) {
18
18
  // JSON parsing errors
19
- if (err instanceof SyntaxError && 'body' in err) {
20
- res.status(400).json({
19
+ if (error.statusCode === 400 && error.code === 'FST_ERR_CTP_INVALID_MEDIA_TYPE') {
20
+ reply.code(400).send({
21
+ error: 'Invalid Content-Type',
22
+ message: 'Expected application/json',
23
+ details: error.message,
24
+ });
25
+ return;
26
+ }
27
+ if (error.statusCode === 400 && error.message.includes('JSON')) {
28
+ reply.code(400).send({
21
29
  error: 'Invalid JSON',
22
30
  message: 'Request body contains invalid JSON syntax',
23
- details: err.message,
31
+ details: error.message,
24
32
  });
25
33
  return;
26
34
  }
27
35
  // Generic error handler
28
- console.error('Server error:', err);
29
- res.status(500).json({
36
+ console.error('Server error:', error);
37
+ reply.code(error.statusCode || 500).send({
30
38
  error: 'Internal Server Error',
31
- message: err.message || 'An unexpected error occurred',
39
+ message: error.message || 'An unexpected error occurred',
32
40
  });
33
41
  }
34
42
  //# sourceMappingURL=error-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY,EAAE,GAAa;IACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,SAAS,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,YAAY;QACpD,eAAe,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACnD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAU,EAAE,GAAY,EAAE,GAAa,EAAE,KAAmB;IACvF,sBAAsB;IACtB,IAAI,GAAG,YAAY,WAAW,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,8BAA8B;KACvD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAmB,EAAE,KAAmB;IACtE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,SAAS,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY;QACnD,eAAe,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;KACtE,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAmB,EAAE,IAAoB,EAAE,KAAmB;IACzF,sBAAsB;IACtB,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,gCAAgC,EAAE,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACvC,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,8BAA8B;KACzD,CAAC,CAAC;AACL,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Generic validation middleware
3
3
  */
4
- import type { Request, Response, NextFunction } from 'express';
4
+ import type { preHandlerHookHandler } from 'fastify';
5
5
  import { z } from 'zod';
6
6
  /**
7
7
  * Generic validation middleware factory
@@ -9,5 +9,5 @@ import { z } from 'zod';
9
9
  * Validates request body against a Zod schema and returns 400 if invalid.
10
10
  * Replaces req.body with validated data on success.
11
11
  */
12
- export declare function validateRequest(schema: z.ZodSchema): (req: Request, res: Response, next: NextFunction) => void;
12
+ export declare function validateRequest(schema: z.ZodSchema): preHandlerHookHandler;
13
13
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,IACzC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CA6B/D"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,qBAAqB,CA6B1E"}
@@ -8,7 +8,7 @@
8
8
  * Replaces req.body with validated data on success.
9
9
  */
10
10
  export function validateRequest(schema) {
11
- return (req, res, next) => {
11
+ return async (req, reply) => {
12
12
  try {
13
13
  const result = schema.safeParse(req.body);
14
14
  if (!result.success) {
@@ -17,7 +17,7 @@ export function validateRequest(schema) {
17
17
  field: err.path.join('.'),
18
18
  message: err.message,
19
19
  }));
20
- res.status(400).json({
20
+ reply.code(400).send({
21
21
  error: 'Validation Error',
22
22
  message: 'Request validation failed',
23
23
  details: errors,
@@ -26,10 +26,9 @@ export function validateRequest(schema) {
26
26
  }
27
27
  // Replace req.body with validated data
28
28
  req.body = result.data;
29
- next();
30
29
  }
31
30
  catch (error) {
32
- res.status(500).json({
31
+ reply.code(500).send({
33
32
  error: 'Internal Server Error',
34
33
  message: error instanceof Error ? error.message : 'Unknown error',
35
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,yCAAyC;gBACzC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC/C,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACzB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC,CAAC;gBAEJ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,2BAA2B;oBACpC,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../kosuke/serve/middleware/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO,KAAK,EAAE,GAAmB,EAAE,KAAmB,EAAiB,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,yCAAyC;gBACzC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC/C,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACzB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC,CAAC;gBAEJ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,2BAA2B;oBACpC,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Build command SSE route
3
3
  */
4
- import type { Request, Response } from 'express';
5
- export declare function buildRoute(req: Request, res: Response): Promise<void>;
4
+ import type { FastifyRequest, FastifyReply } from 'fastify';
5
+ export declare function buildRoute(req: FastifyRequest, reply: FastifyReply): Promise<void>;
6
6
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/routes/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOjD,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2P3E"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/routes/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAO5D,wBAAsB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6PxF"}