@kosuke-ai/cli 0.0.43 → 0.0.45

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 (86) hide show
  1. package/README.md +94 -1
  2. package/claude.costs.json +34 -0
  3. package/dist/index.js +55 -9
  4. package/dist/index.js.map +1 -1
  5. package/dist/kosuke/commands/build.d.ts +5 -1
  6. package/dist/kosuke/commands/build.d.ts.map +1 -1
  7. package/dist/kosuke/commands/build.js +300 -4
  8. package/dist/kosuke/commands/build.js.map +1 -1
  9. package/dist/kosuke/commands/migrate.d.ts +6 -1
  10. package/dist/kosuke/commands/migrate.d.ts.map +1 -1
  11. package/dist/kosuke/commands/migrate.js +124 -37
  12. package/dist/kosuke/commands/migrate.js.map +1 -1
  13. package/dist/kosuke/commands/plan.d.ts +4 -20
  14. package/dist/kosuke/commands/plan.d.ts.map +1 -1
  15. package/dist/kosuke/commands/plan.js +471 -679
  16. package/dist/kosuke/commands/plan.js.map +1 -1
  17. package/dist/kosuke/commands/requirements.js +2 -2
  18. package/dist/kosuke/commands/requirements.js.map +1 -1
  19. package/dist/kosuke/commands/review.d.ts +6 -1
  20. package/dist/kosuke/commands/review.d.ts.map +1 -1
  21. package/dist/kosuke/commands/review.js +168 -68
  22. package/dist/kosuke/commands/review.js.map +1 -1
  23. package/dist/kosuke/commands/serve.d.ts +9 -0
  24. package/dist/kosuke/commands/serve.d.ts.map +1 -0
  25. package/dist/kosuke/commands/serve.js +17 -0
  26. package/dist/kosuke/commands/serve.js.map +1 -0
  27. package/dist/kosuke/commands/ship.d.ts +6 -1
  28. package/dist/kosuke/commands/ship.d.ts.map +1 -1
  29. package/dist/kosuke/commands/ship.js +226 -67
  30. package/dist/kosuke/commands/ship.js.map +1 -1
  31. package/dist/kosuke/commands/test.d.ts +11 -6
  32. package/dist/kosuke/commands/test.d.ts.map +1 -1
  33. package/dist/kosuke/commands/test.js +438 -105
  34. package/dist/kosuke/commands/test.js.map +1 -1
  35. package/dist/kosuke/commands/tickets.d.ts +7 -15
  36. package/dist/kosuke/commands/tickets.d.ts.map +1 -1
  37. package/dist/kosuke/commands/tickets.js +17 -61
  38. package/dist/kosuke/commands/tickets.js.map +1 -1
  39. package/dist/kosuke/serve/middleware/error-handler.d.ts +13 -0
  40. package/dist/kosuke/serve/middleware/error-handler.d.ts.map +1 -0
  41. package/dist/kosuke/serve/middleware/error-handler.js +34 -0
  42. package/dist/kosuke/serve/middleware/error-handler.js.map +1 -0
  43. package/dist/kosuke/serve/middleware/validation.d.ts +13 -0
  44. package/dist/kosuke/serve/middleware/validation.d.ts.map +1 -0
  45. package/dist/kosuke/serve/middleware/validation.js +39 -0
  46. package/dist/kosuke/serve/middleware/validation.js.map +1 -0
  47. package/dist/kosuke/serve/routes/build.d.ts +6 -0
  48. package/dist/kosuke/serve/routes/build.d.ts.map +1 -0
  49. package/dist/kosuke/serve/routes/build.js +224 -0
  50. package/dist/kosuke/serve/routes/build.js.map +1 -0
  51. package/dist/kosuke/serve/routes/health.d.ts +6 -0
  52. package/dist/kosuke/serve/routes/health.d.ts.map +1 -0
  53. package/dist/kosuke/serve/routes/health.js +11 -0
  54. package/dist/kosuke/serve/routes/health.js.map +1 -0
  55. package/dist/kosuke/serve/routes/plan.d.ts +6 -0
  56. package/dist/kosuke/serve/routes/plan.d.ts.map +1 -0
  57. package/dist/kosuke/serve/routes/plan.js +104 -0
  58. package/dist/kosuke/serve/routes/plan.js.map +1 -0
  59. package/dist/kosuke/serve/server.d.ts +16 -0
  60. package/dist/kosuke/serve/server.d.ts.map +1 -0
  61. package/dist/kosuke/serve/server.js +63 -0
  62. package/dist/kosuke/serve/server.js.map +1 -0
  63. package/dist/kosuke/serve/validation/build.d.ts +41 -0
  64. package/dist/kosuke/serve/validation/build.d.ts.map +1 -0
  65. package/dist/kosuke/serve/validation/build.js +20 -0
  66. package/dist/kosuke/serve/validation/build.js.map +1 -0
  67. package/dist/kosuke/serve/validation/plan.d.ts +26 -0
  68. package/dist/kosuke/serve/validation/plan.d.ts.map +1 -0
  69. package/dist/kosuke/serve/validation/plan.js +15 -0
  70. package/dist/kosuke/serve/validation/plan.js.map +1 -0
  71. package/dist/kosuke/types.d.ts +217 -1
  72. package/dist/kosuke/types.d.ts.map +1 -1
  73. package/dist/kosuke/utils/claude-agent.d.ts +82 -6
  74. package/dist/kosuke/utils/claude-agent.d.ts.map +1 -1
  75. package/dist/kosuke/utils/claude-agent.js +381 -180
  76. package/dist/kosuke/utils/claude-agent.js.map +1 -1
  77. package/dist/kosuke/utils/playwright-mcp-client.d.ts +45 -0
  78. package/dist/kosuke/utils/playwright-mcp-client.d.ts.map +1 -0
  79. package/dist/kosuke/utils/playwright-mcp-client.js +131 -0
  80. package/dist/kosuke/utils/playwright-mcp-client.js.map +1 -0
  81. package/dist/lib.d.ts +4 -4
  82. package/dist/lib.d.ts.map +1 -1
  83. package/dist/lib.js +2 -1
  84. package/dist/lib.js.map +1 -1
  85. package/dist/package.json +7 -3
  86. package/package.json +7 -3
@@ -29,8 +29,11 @@ import * as readline from 'readline';
29
29
  import simpleGit from 'simple-git';
30
30
  import { generateWebTestPrompt } from '../utils/prompt-generator.js';
31
31
  import { loadTicketsFile, saveTicketsFile, updateTicketStatus, } from '../utils/tickets-manager.js';
32
+ import { migrateCoreStream } from './migrate.js';
32
33
  import { migrateCore } from './migrate.js';
34
+ import { shipCoreStream } from './ship.js';
33
35
  import { shipCore } from './ship.js';
36
+ import { testCoreStream } from './test.js';
34
37
  import { testCore } from './test.js';
35
38
  /**
36
39
  * Prompt user for confirmation to continue
@@ -81,6 +84,7 @@ function getTicketsToProcess(ticketsData) {
81
84
  }
82
85
  /**
83
86
  * Commit a single ticket to current branch
87
+ * Returns the commit message
84
88
  */
85
89
  async function commitTicket(ticket, cwd) {
86
90
  const git = simpleGit(cwd);
@@ -90,7 +94,295 @@ async function commitTicket(ticket, cwd) {
90
94
  const ticketType = ticket.type || 'feat';
91
95
  const commitMessage = `${ticketType}: ${ticket.id} - ${ticket.title}`;
92
96
  await git.commit(commitMessage, ['--no-verify']);
93
- console.log(`\n āœ… Committed: ${commitMessage}\n`);
97
+ return commitMessage;
98
+ }
99
+ /**
100
+ * Streaming version of build - orchestrates all sub-commands with SSE events
101
+ */
102
+ export async function* buildCoreStream(options) {
103
+ const { directory, ticketsFile = 'tickets.json', dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', reset = false, review = true, url, headless, verbose, trace, } = options;
104
+ // 1. Validate and resolve directory
105
+ const cwd = directory ? resolve(directory) : process.cwd();
106
+ if (!existsSync(cwd)) {
107
+ yield {
108
+ type: 'done',
109
+ data: {
110
+ success: false,
111
+ ticketsProcessed: 0,
112
+ ticketsSucceeded: 0,
113
+ ticketsFailed: 0,
114
+ totalCost: 0,
115
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
116
+ },
117
+ };
118
+ return;
119
+ }
120
+ const stats = statSync(cwd);
121
+ if (!stats.isDirectory()) {
122
+ yield {
123
+ type: 'done',
124
+ data: {
125
+ success: false,
126
+ ticketsProcessed: 0,
127
+ ticketsSucceeded: 0,
128
+ ticketsFailed: 0,
129
+ totalCost: 0,
130
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
131
+ },
132
+ };
133
+ return;
134
+ }
135
+ const ticketsPath = join(cwd, ticketsFile);
136
+ // 2. Load tickets
137
+ const ticketsData = loadTicketsFile(ticketsPath);
138
+ // 3. Reset all tickets to "Todo" if --reset flag is provided
139
+ if (reset) {
140
+ ticketsData.tickets.forEach((ticket) => {
141
+ if (ticket.status !== 'Todo') {
142
+ ticket.status = 'Todo';
143
+ delete ticket.error;
144
+ }
145
+ });
146
+ saveTicketsFile(ticketsPath, ticketsData);
147
+ }
148
+ const ticketsToProcess = getTicketsToProcess(ticketsData);
149
+ if (ticketsToProcess.length === 0) {
150
+ yield {
151
+ type: 'done',
152
+ data: {
153
+ success: true,
154
+ ticketsProcessed: 0,
155
+ ticketsSucceeded: 0,
156
+ ticketsFailed: 0,
157
+ totalCost: 0,
158
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
159
+ },
160
+ };
161
+ return;
162
+ }
163
+ // Yield build started event
164
+ yield {
165
+ type: 'build_started',
166
+ data: { totalTickets: ticketsToProcess.length, ticketsFile: ticketsPath },
167
+ };
168
+ // Track cumulative metrics
169
+ let totalInputTokens = 0;
170
+ let totalOutputTokens = 0;
171
+ let totalCacheCreationTokens = 0;
172
+ let totalCacheReadTokens = 0;
173
+ let totalCost = 0;
174
+ let ticketsSucceeded = 0;
175
+ let ticketsFailed = 0;
176
+ // 4. Process each ticket sequentially
177
+ for (let i = 0; i < ticketsToProcess.length; i++) {
178
+ const ticket = ticketsToProcess[i];
179
+ // Yield ticket started
180
+ yield {
181
+ type: 'ticket_started',
182
+ data: { ticket, index: i + 1, total: ticketsToProcess.length },
183
+ };
184
+ try {
185
+ // Update status to InProgress
186
+ updateTicketStatus(ticketsPath, ticket.id, 'InProgress');
187
+ // Process ticket based on type
188
+ const isTestTicket = ticket.type === 'test';
189
+ if (isTestTicket) {
190
+ // Test ticket with retry logic (Task 6)
191
+ yield { type: 'ticket_phase', data: { phase: 'test', status: 'started' } };
192
+ const testPrompt = generateWebTestPrompt(ticket);
193
+ let testSuccess = false;
194
+ let retryCount = 0;
195
+ const maxRetries = 3;
196
+ while (!testSuccess && retryCount <= maxRetries) {
197
+ // Run test
198
+ for await (const event of testCoreStream({
199
+ prompt: testPrompt,
200
+ context: {
201
+ ticketId: ticket.id,
202
+ ticketTitle: ticket.title,
203
+ ticketDescription: ticket.description,
204
+ },
205
+ url,
206
+ headless,
207
+ verbose,
208
+ trace,
209
+ })) {
210
+ yield { type: 'test_event', data: event };
211
+ if (event.type === 'done') {
212
+ const testResult = event.data;
213
+ testSuccess = testResult.success;
214
+ // Track metrics
215
+ totalInputTokens += testResult.tokensUsed.input;
216
+ totalOutputTokens += testResult.tokensUsed.output;
217
+ totalCacheCreationTokens += testResult.tokensUsed.cacheCreation;
218
+ totalCacheReadTokens += testResult.tokensUsed.cacheRead;
219
+ totalCost += testResult.cost;
220
+ // If test failed and we have retries left, create fix ticket
221
+ if (!testSuccess && retryCount < maxRetries) {
222
+ retryCount++;
223
+ yield {
224
+ type: 'test_retry',
225
+ data: {
226
+ attempt: retryCount,
227
+ maxRetries,
228
+ error: testResult.error || 'Test failed',
229
+ },
230
+ };
231
+ // Create fix ticket
232
+ const fixTicket = {
233
+ id: `${ticket.id}-FIX-${retryCount}`,
234
+ title: `Fix ${ticket.id} test failures`,
235
+ description: `Fix the following test failures:\n\n${testResult.error}\n\nOriginal ticket:\n${ticket.description}`,
236
+ type: 'backend',
237
+ estimatedEffort: 5,
238
+ status: 'InProgress',
239
+ category: ticket.category,
240
+ };
241
+ // Run ship to fix test
242
+ for await (const shipEvent of shipCoreStream({
243
+ ticketData: fixTicket,
244
+ review: false,
245
+ directory: cwd,
246
+ dbUrl,
247
+ })) {
248
+ yield { type: 'ship_event', data: shipEvent };
249
+ if (shipEvent.type === 'done') {
250
+ const shipResult = shipEvent.data;
251
+ totalInputTokens += shipResult.tokensUsed.input;
252
+ totalOutputTokens += shipResult.tokensUsed.output;
253
+ totalCacheCreationTokens += shipResult.tokensUsed.cacheCreation;
254
+ totalCacheReadTokens += shipResult.tokensUsed.cacheRead;
255
+ totalCost += shipResult.cost;
256
+ if (!shipResult.success) {
257
+ // Fix failed, will retry test anyway
258
+ break;
259
+ }
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
266
+ if (!testSuccess) {
267
+ throw new Error(`Test failed after ${maxRetries} fix attempts`);
268
+ }
269
+ yield { type: 'ticket_phase', data: { phase: 'test', status: 'completed' } };
270
+ }
271
+ else {
272
+ // Implementation ticket - run ship
273
+ yield { type: 'ticket_phase', data: { phase: 'ship', status: 'started' } };
274
+ let shipSuccess = false;
275
+ for await (const event of shipCoreStream({
276
+ ticketData: ticket,
277
+ review,
278
+ directory: cwd,
279
+ dbUrl,
280
+ })) {
281
+ yield { type: 'ship_event', data: event };
282
+ if (event.type === 'done') {
283
+ const shipResult = event.data;
284
+ shipSuccess = shipResult.success;
285
+ totalInputTokens += shipResult.tokensUsed.input;
286
+ totalOutputTokens += shipResult.tokensUsed.output;
287
+ totalCacheCreationTokens += shipResult.tokensUsed.cacheCreation;
288
+ totalCacheReadTokens += shipResult.tokensUsed.cacheRead;
289
+ totalCost += shipResult.cost;
290
+ if (!shipSuccess) {
291
+ throw new Error(shipResult.error || 'Ship failed');
292
+ }
293
+ }
294
+ }
295
+ yield { type: 'ticket_phase', data: { phase: 'ship', status: 'completed' } };
296
+ // If schema ticket, run migrations
297
+ if (ticket.type === 'schema') {
298
+ yield { type: 'ticket_phase', data: { phase: 'migrate', status: 'started' } };
299
+ let migrateSuccess = false;
300
+ for await (const event of migrateCoreStream({
301
+ directory: cwd,
302
+ dbUrl,
303
+ context: {
304
+ ticketId: ticket.id,
305
+ ticketTitle: ticket.title,
306
+ ticketDescription: ticket.description,
307
+ },
308
+ })) {
309
+ yield { type: 'migrate_event', data: event };
310
+ if (event.type === 'done') {
311
+ const migrateResult = event.data;
312
+ migrateSuccess = migrateResult.success;
313
+ totalInputTokens += migrateResult.tokensUsed.input;
314
+ totalOutputTokens += migrateResult.tokensUsed.output;
315
+ totalCacheCreationTokens += migrateResult.tokensUsed.cacheCreation;
316
+ totalCacheReadTokens += migrateResult.tokensUsed.cacheRead;
317
+ totalCost += migrateResult.cost;
318
+ if (!migrateSuccess) {
319
+ throw new Error(migrateResult.error || 'Migration failed');
320
+ }
321
+ }
322
+ }
323
+ yield { type: 'ticket_phase', data: { phase: 'migrate', status: 'completed' } };
324
+ }
325
+ }
326
+ // Ticket succeeded
327
+ updateTicketStatus(ticketsPath, ticket.id, 'Done');
328
+ ticketsSucceeded++;
329
+ yield {
330
+ type: 'ticket_completed',
331
+ data: { ticket, result: 'success' },
332
+ };
333
+ // Auto-commit (no interactive prompts in streaming mode)
334
+ const commitMessage = await commitTicket(ticket, cwd);
335
+ yield {
336
+ type: 'ticket_committed',
337
+ data: { ticket, commitMessage },
338
+ };
339
+ // Yield progress
340
+ yield {
341
+ type: 'progress',
342
+ data: {
343
+ completed: i + 1,
344
+ total: ticketsToProcess.length,
345
+ percentage: Math.round(((i + 1) / ticketsToProcess.length) * 100),
346
+ },
347
+ };
348
+ }
349
+ catch (error) {
350
+ const errorMessage = error instanceof Error ? error.message : String(error);
351
+ // Update ticket status to Error
352
+ updateTicketStatus(ticketsPath, ticket.id, 'Error', errorMessage);
353
+ ticketsFailed++;
354
+ yield {
355
+ type: 'ticket_completed',
356
+ data: { ticket, result: 'failed' },
357
+ };
358
+ // Continue to next ticket on failure (don't stop entire build)
359
+ yield {
360
+ type: 'progress',
361
+ data: {
362
+ completed: i + 1,
363
+ total: ticketsToProcess.length,
364
+ percentage: Math.round(((i + 1) / ticketsToProcess.length) * 100),
365
+ },
366
+ };
367
+ }
368
+ }
369
+ // Yield final result
370
+ yield {
371
+ type: 'done',
372
+ data: {
373
+ success: ticketsFailed === 0,
374
+ ticketsProcessed: ticketsToProcess.length,
375
+ ticketsSucceeded,
376
+ ticketsFailed,
377
+ totalCost,
378
+ tokensUsed: {
379
+ input: totalInputTokens,
380
+ output: totalOutputTokens,
381
+ cacheCreation: totalCacheCreationTokens,
382
+ cacheRead: totalCacheReadTokens,
383
+ },
384
+ },
385
+ };
94
386
  }
95
387
  /**
96
388
  * Main build command - processes all tickets and commits each one
@@ -105,7 +397,7 @@ export async function buildCommand(options) {
105
397
  if (!process.env.GITHUB_TOKEN) {
106
398
  throw new Error('GITHUB_TOKEN environment variable is required for build command');
107
399
  }
108
- const { directory, ticketsFile = 'tickets.json', dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', reset = false, askConfirm = false, askCommit = false, review = true, url, headless, verbose, noLogs = false, } = options;
400
+ const { directory, ticketsFile = 'tickets.json', dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', reset = false, askConfirm = false, askCommit = false, review = true, url, headless, verbose, trace, noLogs = false, } = options;
109
401
  // 1. Validate and resolve directory
110
402
  const cwd = directory ? resolve(directory) : process.cwd();
111
403
  if (!existsSync(cwd)) {
@@ -179,6 +471,7 @@ export async function buildCommand(options) {
179
471
  url,
180
472
  headless,
181
473
  verbose,
474
+ trace,
182
475
  noLogs,
183
476
  });
184
477
  let retryCount = 0;
@@ -224,6 +517,7 @@ export async function buildCommand(options) {
224
517
  url,
225
518
  headless,
226
519
  verbose,
520
+ trace,
227
521
  noLogs,
228
522
  });
229
523
  }
@@ -286,7 +580,8 @@ export async function buildCommand(options) {
286
580
  // Interactive: ask before committing
287
581
  const commitConfirmed = await promptConfirmation(`\nā“ Commit ${ticket.id}?`);
288
582
  if (commitConfirmed) {
289
- await commitTicket(ticket, cwd);
583
+ const commitMessage = await commitTicket(ticket, cwd);
584
+ console.log(`\n āœ… Committed: ${commitMessage}\n`);
290
585
  }
291
586
  else {
292
587
  console.log(' ā­ļø Skipped commit for this ticket\n');
@@ -294,7 +589,8 @@ export async function buildCommand(options) {
294
589
  }
295
590
  else {
296
591
  // Default: auto-commit each ticket
297
- await commitTicket(ticket, cwd);
592
+ const commitMessage = await commitTicket(ticket, cwd);
593
+ console.log(`\n āœ… Committed: ${commitMessage}\n`);
298
594
  }
299
595
  // Ask for confirmation before proceeding to next ticket (if not last ticket)
300
596
  if (askConfirm && i < ticketsToProcess.length - 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../kosuke/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../kosuke/commands/build.ts"],"names":[],"mappings":"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"}
@@ -20,10 +20,15 @@
20
20
  * context: { ticketId, ticketTitle, ticketDescription }
21
21
  * });
22
22
  */
23
- import type { MigrateOptions, MigrateResult } from '../types.js';
23
+ import type { MigrateOptions, MigrateResult, MigrateStreamEvent } from '../types.js';
24
+ /**
25
+ * Streaming version of migrateCore - yields events for SSE integration
26
+ */
27
+ export declare function migrateCoreStream(options: MigrateOptions): AsyncGenerator<MigrateStreamEvent, void, void>;
24
28
  /**
25
29
  * Core migrate logic (reusable)
26
30
  * Applies migrations, seeds database, and validates schema changes
31
+ * Consumes migrateCoreStream and adds console logging
27
32
  */
28
33
  export declare function migrateCore(options: MigrateOptions): Promise<MigrateResult>;
29
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA+CjE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAkFjF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C3E"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAqDrF;;GAEG;AACH,wBAAuB,iBAAiB,CACtC,OAAO,EAAE,cAAc,GACtB,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,CAqHhD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAiDjF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C3E"}
@@ -22,7 +22,7 @@
22
22
  */
23
23
  import { existsSync, statSync } from 'fs';
24
24
  import { resolve } from 'path';
25
- import { formatCostBreakdown, runAgent } from '../utils/claude-agent.js';
25
+ import { formatCostBreakdown, logAssistantMessage, logToolUsage, runAgentStream, } from '../utils/claude-agent.js';
26
26
  import { logger, setupCancellationHandler } from '../utils/logger.js';
27
27
  /**
28
28
  * Build system prompt for database migration and validation
@@ -67,73 +67,160 @@ ${context ? `**Context:**\nApplying migrations for ticket ${context.ticketId}: $
67
67
  Begin by applying migrations and validating the results.`;
68
68
  }
69
69
  /**
70
- * Core migrate logic (reusable)
71
- * Applies migrations, seeds database, and validates schema changes
70
+ * Streaming version of migrateCore - yields events for SSE integration
72
71
  */
73
- export async function migrateCore(options) {
72
+ export async function* migrateCoreStream(options) {
74
73
  const { directory, dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', context, } = options;
75
74
  // 1. Validate and resolve directory
76
75
  const cwd = directory ? resolve(directory) : process.cwd();
77
76
  if (directory) {
78
77
  if (!existsSync(cwd)) {
79
- throw new Error(`Directory not found: ${cwd}\n` +
80
- `Please provide a valid directory using --directory=<path>\n` +
81
- `Example: migrateCore({ directory: './my-project' })`);
78
+ yield {
79
+ type: 'done',
80
+ data: {
81
+ success: false,
82
+ migrationsApplied: false,
83
+ seedingCompleted: false,
84
+ validationPassed: false,
85
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
86
+ cost: 0,
87
+ error: `Directory not found: ${cwd}`,
88
+ },
89
+ };
90
+ return;
82
91
  }
83
92
  const stats = statSync(cwd);
84
93
  if (!stats.isDirectory()) {
85
- throw new Error(`Path is not a directory: ${cwd}\n` + `Please provide a valid directory path.`);
94
+ yield {
95
+ type: 'done',
96
+ data: {
97
+ success: false,
98
+ migrationsApplied: false,
99
+ seedingCompleted: false,
100
+ validationPassed: false,
101
+ tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
102
+ cost: 0,
103
+ error: `Path is not a directory: ${cwd}`,
104
+ },
105
+ };
106
+ return;
86
107
  }
87
- console.log(`šŸ“ Using project directory: ${cwd}\n`);
88
108
  }
89
- console.log(`šŸ—„ļø Applying database migrations...\n`);
90
- console.log(`šŸ“Š Database URL: ${dbUrl.replace(/:[^:@]+@/, ':****@')}\n`); // Hide password
91
109
  try {
92
- // 2. Run migration and validation with Claude Code Agent
110
+ // Yield migration started event
111
+ yield {
112
+ type: 'migration_started',
113
+ data: { dbUrl: dbUrl.replace(/:[^:@]+@/, ':****@') }, // Hide password
114
+ };
115
+ // 2. Run migration and validation with Claude Code Agent (streaming)
93
116
  const systemPrompt = buildMigrationPrompt(dbUrl, context);
94
- const result = await runAgent('Apply database migrations and validate schema', {
117
+ const stream = runAgentStream('Apply database migrations and validate schema', {
95
118
  systemPrompt,
96
119
  cwd,
97
120
  maxTurns: 20,
98
121
  verbosity: 'normal',
99
122
  });
100
- console.log(`\n✨ Migration process completed`);
101
- console.log(`šŸ’° Migration cost: ${formatCostBreakdown(result)}`);
123
+ let agentResult = null;
124
+ // Yield events from stream
125
+ for await (const event of stream) {
126
+ if (event.type === 'message') {
127
+ yield { type: 'message', data: event.data };
128
+ }
129
+ else if (event.type === 'agent_result') {
130
+ agentResult = event.data;
131
+ }
132
+ }
133
+ if (!agentResult) {
134
+ throw new Error('Migration stream ended without result');
135
+ }
102
136
  // 3. Parse agent output to determine success
103
- // Success indicators: "migration" + "success" or "applied" in response
104
- const response = result.response.toLowerCase();
137
+ const response = agentResult.response.toLowerCase();
105
138
  const migrationsApplied = response.includes('migrat') && response.includes('success');
106
139
  const seedingCompleted = response.includes('seed');
107
140
  const validationPassed = response.includes('validat') && !response.includes('failed');
108
141
  const success = migrationsApplied && validationPassed;
109
- return {
110
- success,
111
- migrationsApplied,
112
- seedingCompleted,
113
- validationPassed,
114
- tokensUsed: result.tokensUsed,
115
- cost: result.cost,
142
+ yield {
143
+ type: 'done',
144
+ data: {
145
+ success,
146
+ migrationsApplied,
147
+ seedingCompleted,
148
+ validationPassed,
149
+ tokensUsed: agentResult.tokensUsed,
150
+ cost: agentResult.cost,
151
+ },
116
152
  };
117
153
  }
118
154
  catch (error) {
119
155
  const errorMessage = error instanceof Error ? error.message : String(error);
120
- console.error(`\nāŒ Migration failed: ${errorMessage}`);
121
- return {
122
- success: false,
123
- migrationsApplied: false,
124
- seedingCompleted: false,
125
- validationPassed: false,
126
- tokensUsed: {
127
- input: 0,
128
- output: 0,
129
- cacheCreation: 0,
130
- cacheRead: 0,
156
+ yield {
157
+ type: 'done',
158
+ data: {
159
+ success: false,
160
+ migrationsApplied: false,
161
+ seedingCompleted: false,
162
+ validationPassed: false,
163
+ tokensUsed: {
164
+ input: 0,
165
+ output: 0,
166
+ cacheCreation: 0,
167
+ cacheRead: 0,
168
+ },
169
+ cost: 0,
170
+ error: errorMessage,
131
171
  },
132
- cost: 0,
133
- error: errorMessage,
134
172
  };
135
173
  }
136
174
  }
175
+ /**
176
+ * Core migrate logic (reusable)
177
+ * Applies migrations, seeds database, and validates schema changes
178
+ * Consumes migrateCoreStream and adds console logging
179
+ */
180
+ export async function migrateCore(options) {
181
+ const { directory } = options;
182
+ if (directory) {
183
+ const cwd = directory ? resolve(directory) : process.cwd();
184
+ console.log(`šŸ“ Using project directory: ${cwd}\n`);
185
+ }
186
+ console.log(`šŸ—„ļø Applying database migrations...\n`);
187
+ let result = null;
188
+ // Consume the stream and add console logging
189
+ for await (const event of migrateCoreStream(options)) {
190
+ if (event.type === 'migration_started') {
191
+ console.log(`šŸ“Š Database URL: ${event.data.dbUrl}\n`);
192
+ }
193
+ else if (event.type === 'message') {
194
+ // Log Claude messages for CLI context
195
+ const msg = event.data;
196
+ if (msg.type === 'assistant' && msg.message?.content) {
197
+ for (const block of msg.message.content) {
198
+ if (block.type === 'text' && block.text) {
199
+ // Use shared logging with verbosity: 'normal'
200
+ logAssistantMessage(block.text, 'normal');
201
+ }
202
+ else if (block.type === 'tool_use' && block.name) {
203
+ // Log tool usage (logToolUsage filters file modifications internally)
204
+ const filesReferenced = new Set();
205
+ logToolUsage(block.name, block.input, filesReferenced);
206
+ }
207
+ }
208
+ }
209
+ }
210
+ else if (event.type === 'done') {
211
+ result = event.data;
212
+ console.log(`\n✨ Migration process completed`);
213
+ console.log(`šŸ’° Migration cost: ${formatCostBreakdown({
214
+ tokensUsed: result.tokensUsed,
215
+ cost: result.cost,
216
+ response: '',
217
+ fixCount: 0,
218
+ filesReferenced: new Set(),
219
+ })}`);
220
+ }
221
+ }
222
+ return result;
223
+ }
137
224
  /**
138
225
  * Main migrate command
139
226
  */