@kosuke-ai/cli 0.0.35 โ†’ 0.0.37

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.
@@ -1,27 +1,47 @@
1
1
  /**
2
- * Ship command - Implement a ticket from tickets.json
2
+ * Ship Core - Ticket-agnostic implementation engine
3
3
  *
4
- * This command takes a ticket ID, implements it following CLAUDE.md rules,
5
- * runs linting, and optionally performs code review with ticket context.
4
+ * This module provides the core implementation logic for tickets.
5
+ * It is designed to be called programmatically with ticket data,
6
+ * making it independent of tickets.json or any ticket management system.
6
7
  *
7
- * Usage:
8
- * kosuke ship --ticket=SCHEMA-1 # Implement ticket (local only)
9
- * kosuke ship --ticket=BACKEND-2 --review # Implement with code review
10
- * kosuke ship --ticket=FRONTEND-1 --commit # Implement and commit to current branch
11
- * kosuke ship --ticket=BACKEND-3 --review --commit # Implement, review, then commit
12
- * kosuke ship --ticket=FRONTEND-1 --test # Implement and run tests
13
- * kosuke ship --ticket=SCHEMA-1 --tickets=path/to/tickets.json
14
- * kosuke ship --ticket=SCHEMA-1 --db-url=postgres://user:pass@host:5432/db
8
+ * Features:
9
+ * - Implements tickets following CLAUDE.md rules
10
+ * - Runs comprehensive linting
11
+ * - Optionally performs code review with ticket context
12
+ * - Does NOT manage ticket lifecycle (status updates, commits, etc.)
13
+ *
14
+ * Usage (Programmatic):
15
+ * import { shipCore } from './commands/ship.js';
16
+ *
17
+ * const result = await shipCore({
18
+ * ticketData: { id: 'SCHEMA-1', title: '...', description: '...' },
19
+ * review: true,
20
+ * directory: './my-project',
21
+ * });
22
+ *
23
+ * Note: The CLI command 'kosuke ship' is deprecated.
24
+ * Use 'kosuke build' instead for complete ticket workflow.
15
25
  */
16
26
  import { existsSync, statSync } from 'fs';
17
- import { join, resolve } from 'path';
27
+ import { resolve } from 'path';
18
28
  import { formatCostBreakdown, runAgent } from '../utils/claude-agent.js';
19
- import { commitAndPushCurrentBranch } from '../utils/git.js';
20
- import { logger, setupCancellationHandler } from '../utils/logger.js';
21
- import { findTicket, loadTicketsFile, updateTicketStatus } from '../utils/tickets-manager.js';
22
29
  import { runComprehensiveLinting } from '../utils/validator.js';
23
30
  import { reviewCore } from './review.js';
24
- import { testCore } from './test.js';
31
+ /**
32
+ * Validate ticket data has all required fields
33
+ */
34
+ function validateTicketData(ticketData) {
35
+ if (!ticketData.id || typeof ticketData.id !== 'string') {
36
+ throw new Error('Invalid ticket: id is required and must be a string');
37
+ }
38
+ if (!ticketData.title || typeof ticketData.title !== 'string') {
39
+ throw new Error('Invalid ticket: title is required and must be a string');
40
+ }
41
+ if (!ticketData.description || typeof ticketData.description !== 'string') {
42
+ throw new Error('Invalid ticket: description is required and must be a string');
43
+ }
44
+ }
25
45
  /**
26
46
  * Build system prompt for ticket implementation
27
47
  */
@@ -73,17 +93,21 @@ ${ticket.description}
73
93
  Begin by exploring the current codebase, then implement the ticket systematically.`;
74
94
  }
75
95
  /**
76
- * Core ship logic (git-agnostic, reusable)
96
+ * Core ship logic (ticket-agnostic, reusable)
97
+ * Implements a ticket without managing its lifecycle (status updates, etc.)
77
98
  */
78
99
  export async function shipCore(options) {
79
- const { ticket: ticketId, review = false, test = false, ticketsFile = 'tickets.json', directory, dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', } = options;
100
+ // Validate ticket data
101
+ validateTicketData(options.ticketData);
102
+ const ticket = options.ticketData;
103
+ const { review = false, directory, dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', } = options;
80
104
  // 1. Validate and resolve directory
81
105
  const cwd = directory ? resolve(directory) : process.cwd();
82
106
  if (directory) {
83
107
  if (!existsSync(cwd)) {
84
108
  throw new Error(`Directory not found: ${cwd}\n` +
85
109
  `Please provide a valid directory using --directory=<path>\n` +
86
- `Example: kosuke ship --ticket=SCHEMA-1 --directory=./my-project`);
110
+ `Example: shipCore({ ticketData: ticket, directory: './my-project' })`);
87
111
  }
88
112
  const stats = statSync(cwd);
89
113
  if (!stats.isDirectory()) {
@@ -91,26 +115,7 @@ export async function shipCore(options) {
91
115
  }
92
116
  console.log(`๐Ÿ“ Using project directory: ${cwd}\n`);
93
117
  }
94
- const ticketsPath = join(cwd, ticketsFile);
95
- // 1. Load and validate ticket
96
- console.log('๐Ÿ“‹ Loading ticket...');
97
- const ticketsData = loadTicketsFile(ticketsPath);
98
- const ticket = findTicket(ticketsData, ticketId);
99
- if (!ticket) {
100
- throw new Error(`Ticket ${ticketId} not found in ${ticketsFile}\n` +
101
- `Available tickets: ${ticketsData.tickets.map((t) => t.id).join(', ')}`);
102
- }
103
- if (ticket.status === 'Done') {
104
- throw new Error(`Ticket ${ticketId} is already marked as Done.\n` +
105
- `If you want to re-implement it, manually change its status to "Todo" in ${ticketsFile}`);
106
- }
107
- console.log(` โœ… Loaded ticket: ${ticket.id} - ${ticket.title}\n`);
108
- // 2. Update status to InProgress
109
- console.log('๐Ÿ“ Updating ticket status to InProgress...');
110
- updateTicketStatus(ticketsPath, ticketId, 'InProgress');
111
- console.log(' โœ… Status updated\n');
112
- // 3. Context ready (using current working directory)
113
- console.log('๐Ÿ“ Working in current directory context\n');
118
+ console.log(`๐Ÿ“‹ Implementing ticket: ${ticket.id} - ${ticket.title}\n`);
114
119
  // Determine ticket type
115
120
  const isSchemaTicket = ticket.id.toUpperCase().startsWith('SCHEMA-');
116
121
  // Track metrics
@@ -122,12 +127,12 @@ export async function shipCore(options) {
122
127
  let implementationFixCount = 0;
123
128
  let reviewFixCount = 0;
124
129
  try {
125
- // 5. Implementation phase
130
+ // 2. Implementation phase
126
131
  console.log(`\n${'='.repeat(60)}`);
127
132
  console.log(`๐Ÿš€ Phase 1: Implementation`);
128
133
  console.log(`${'='.repeat(60)}\n`);
129
134
  const systemPrompt = buildImplementationPrompt(ticket, dbUrl);
130
- const implementationResult = await runAgent(`Implement ticket ${ticketId}: ${ticket.title}`, {
135
+ const implementationResult = await runAgent(`Implement ticket ${ticket.id}: ${ticket.title}`, {
131
136
  systemPrompt,
132
137
  cwd,
133
138
  maxTurns: 40,
@@ -141,13 +146,13 @@ export async function shipCore(options) {
141
146
  totalCost += implementationResult.cost;
142
147
  console.log(`\nโœจ Implementation completed (${implementationFixCount} changes made)`);
143
148
  console.log(`๐Ÿ’ฐ Implementation cost: ${formatCostBreakdown(implementationResult)}`);
144
- // 6. Linting phase
149
+ // 3. Linting phase
145
150
  console.log(`\n${'='.repeat(60)}`);
146
151
  console.log(`๐Ÿ”ง Phase 2: Linting & Quality Checks`);
147
152
  console.log(`${'='.repeat(60)}\n`);
148
153
  const lintResult = await runComprehensiveLinting(cwd);
149
154
  console.log(`\nโœ… Linting completed (${lintResult.fixCount} fixes applied)`);
150
- // 7. Review phase (if review flag is set) - SKIP for SCHEMA tickets
155
+ // 4. Review phase (if review flag is set) - SKIP for SCHEMA tickets
151
156
  if (review && !isSchemaTicket) {
152
157
  console.log(`\n${'='.repeat(60)}`);
153
158
  console.log(`๐Ÿ” Phase 3: Code Review (Git Diff)`);
@@ -171,70 +176,8 @@ export async function shipCore(options) {
171
176
  else if (review && isSchemaTicket) {
172
177
  console.log('\nโ„น๏ธ Skipping code review for SCHEMA ticket (review focuses on application code, not database migrations)');
173
178
  }
174
- // 8. Test phase (if test flag is set) - ITERATIVE
175
- let testFixCount = 0;
176
- let testIterations = 0;
177
- const maxTestRetries = 3;
178
- if (test) {
179
- console.log(`\n${'='.repeat(60)}`);
180
- console.log(`๐Ÿงช Phase ${review ? '4' : '3'}: Testing (Iterative)`);
181
- console.log(`${'='.repeat(60)}\n`);
182
- let testsPassing = false;
183
- for (let attempt = 1; attempt <= maxTestRetries; attempt++) {
184
- testIterations = attempt;
185
- console.log(`\n๐Ÿงช Test Attempt ${attempt}/${maxTestRetries}\n`);
186
- // Run atomic test
187
- const testResult = await testCore({
188
- ticket: ticketId,
189
- url: options.url,
190
- headed: options.headed,
191
- debug: options.debug,
192
- ticketsFile,
193
- directory: cwd,
194
- });
195
- totalInputTokens += testResult.tokensUsed.input;
196
- totalOutputTokens += testResult.tokensUsed.output;
197
- totalCacheCreationTokens += testResult.tokensUsed.cacheCreation;
198
- totalCacheReadTokens += testResult.tokensUsed.cacheRead;
199
- totalCost += testResult.cost;
200
- if (testResult.success) {
201
- testsPassing = true;
202
- console.log('\nโœ… Tests passed!');
203
- break;
204
- }
205
- // If not last attempt, analyze and fix
206
- if (attempt < maxTestRetries) {
207
- console.log('\n๐Ÿ” Analyzing test failures...');
208
- // Collect Docker logs for backend debugging
209
- const { LogCollector } = await import('../utils/log-collector.js');
210
- const logCollector = new LogCollector();
211
- await logCollector.collectDockerLogs('30s');
212
- const dockerLogs = logCollector.getErrors();
213
- // Analyze errors and apply fixes
214
- const { analyzeAndFix } = await import('../utils/error-analyzer.js');
215
- const fixResult = await analyzeAndFix(ticket, testResult.output, testResult.logs, dockerLogs, cwd);
216
- testFixCount += fixResult.fixesApplied;
217
- totalInputTokens += fixResult.tokensUsed.input;
218
- totalOutputTokens += fixResult.tokensUsed.output;
219
- totalCacheCreationTokens += fixResult.tokensUsed.cacheCreation;
220
- totalCacheReadTokens += fixResult.tokensUsed.cacheRead;
221
- totalCost += fixResult.cost;
222
- console.log(`\n๐Ÿ”ง Applied ${fixResult.fixesApplied} fixes`);
223
- console.log(`๐Ÿ’ฐ Fix cost: $${fixResult.cost.toFixed(4)}`);
224
- }
225
- }
226
- if (!testsPassing) {
227
- throw new Error(`Tests failed after ${maxTestRetries} attempts`);
228
- }
229
- console.log(`\nโœจ Testing completed (${testFixCount} fixes applied over ${testIterations} iterations)`);
230
- console.log(`๐Ÿ’ฐ Testing cost: $${totalCost.toFixed(4)}`);
231
- }
232
- // 9. Update status to Done
233
- console.log('\n๐Ÿ“ Updating ticket status to Done...');
234
- updateTicketStatus(ticketsPath, ticketId, 'Done');
235
- console.log(' โœ… Ticket marked as Done\n');
179
+ // 5. Return success result
236
180
  return {
237
- ticketId,
238
181
  success: true,
239
182
  implementationFixCount,
240
183
  lintFixCount: lintResult.fixCount,
@@ -249,12 +192,10 @@ export async function shipCore(options) {
249
192
  };
250
193
  }
251
194
  catch (error) {
252
- // Update ticket status to Error
195
+ // Return error result
253
196
  const errorMessage = error instanceof Error ? error.message : String(error);
254
197
  console.error(`\nโŒ Implementation failed: ${errorMessage}`);
255
- updateTicketStatus(ticketsPath, ticketId, 'Error', errorMessage);
256
198
  return {
257
- ticketId,
258
199
  success: false,
259
200
  implementationFixCount,
260
201
  lintFixCount: 0,
@@ -270,61 +211,4 @@ export async function shipCore(options) {
270
211
  };
271
212
  }
272
213
  }
273
- /**
274
- * Main ship command
275
- */
276
- export async function shipCommand(options) {
277
- const { ticket: ticketId, commit = false, directory, noLogs = false } = options;
278
- console.log(`๐Ÿšข Shipping Ticket: ${ticketId}\n`);
279
- // Resolve directory
280
- const cwd = directory ? resolve(directory) : process.cwd();
281
- // Initialize logging context
282
- const logContext = logger.createContext('ship', { noLogs });
283
- const cleanupHandler = setupCancellationHandler(logContext);
284
- try {
285
- // Validate environment
286
- if (!process.env.ANTHROPIC_API_KEY) {
287
- throw new Error('ANTHROPIC_API_KEY environment variable is required');
288
- }
289
- if (commit && !process.env.GITHUB_TOKEN) {
290
- throw new Error('GITHUB_TOKEN environment variable is required for --commit flag');
291
- }
292
- // Run core implementation
293
- const result = await shipCore(options);
294
- if (!result.success) {
295
- throw new Error(result.error || 'Ship failed');
296
- }
297
- // Track metrics
298
- logger.trackTokens(logContext, result.tokensUsed);
299
- logContext.fixesApplied =
300
- result.implementationFixCount + result.lintFixCount + result.reviewFixCount;
301
- // Commit if flag is set
302
- if (commit) {
303
- console.log('\n๐Ÿ“ Committing and pushing to current branch...');
304
- await commitAndPushCurrentBranch(`feat: implement ${ticketId}`, cwd);
305
- console.log(' โœ… Changes committed and pushed\n');
306
- }
307
- // Display summary
308
- console.log('\nโœ… Ship completed successfully!');
309
- console.log(`๐Ÿ“Š Implementation fixes: ${result.implementationFixCount}`);
310
- console.log(`๐Ÿ”ง Linting fixes: ${result.lintFixCount}`);
311
- if (result.reviewFixCount > 0) {
312
- console.log(`๐Ÿ” Review fixes: ${result.reviewFixCount}`);
313
- }
314
- console.log(`๐Ÿ’ฐ Total cost: $${result.cost.toFixed(4)}`);
315
- if (!commit) {
316
- console.log('\nโ„น๏ธ Changes applied locally. Use --commit to push to current branch.');
317
- }
318
- // Log successful execution
319
- await logger.complete(logContext, 'success');
320
- cleanupHandler();
321
- }
322
- catch (error) {
323
- console.error('\nโŒ Ship failed:', error);
324
- // Log failed execution
325
- await logger.complete(logContext, 'error', error);
326
- cleanupHandler();
327
- throw error;
328
- }
329
- }
330
214
  //# sourceMappingURL=ship.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ship.js","sourceRoot":"","sources":["../../../kosuke/commands/ship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ship.js","sourceRoot":"","sources":["../../../kosuke/commands/ship.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,OAAO,UAAU,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,MAAc,EAAE,KAAa;IAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAErE,MAAM,2BAA2B,GAAG,cAAc;QAChD,CAAC,CAAC;;;;;uCAKiC,KAAK;;;;yBAInB,KAAK;;;;CAI7B;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;QAMD,MAAM,CAAC,EAAE;WACN,MAAM,CAAC,KAAK;;EAErB,MAAM,CAAC,WAAW;;;;;;;;6CAQyB,2BAA2B;;;;;;;;;;mFAUW,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAoB;IACjD,uBAAuB;IACvB,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAClC,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,SAAS,EACT,KAAK,GAAG,sDAAsD,GAC/D,GAAG,OAAO,CAAC;IAEZ,oCAAoC;IACpC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAE3D,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,IAAI;gBAC7B,6DAA6D;gBAC7D,sEAAsE,CACzE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,4BAA4B,GAAG,IAAI,GAAG,wCAAwC,CAC/E,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAExE,wBAAwB;IACxB,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAErE,gBAAgB;IAChB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE9D,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,oBAAoB,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE;YAC5F,YAAY;YACZ,GAAG;YACH,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QAEH,sBAAsB,GAAG,oBAAoB,CAAC,QAAQ,CAAC;QACvD,gBAAgB,IAAI,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC;QAC1D,iBAAiB,IAAI,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5D,wBAAwB,IAAI,oBAAoB,CAAC,UAAU,CAAC,aAAa,CAAC;QAC1E,oBAAoB,IAAI,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC;QAClE,SAAS,IAAI,oBAAoB,CAAC,IAAI,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,iCAAiC,sBAAsB,gBAAgB,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,2BAA2B,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAEpF,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,CAAC,QAAQ,iBAAiB,CAAC,CAAC;QAE5E,oEAAoE;QACpE,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAEnC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC;gBACpC,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE;oBACP,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,WAAW,EAAE,MAAM,CAAC,KAAK;oBACzB,iBAAiB,EAAE,MAAM,CAAC,WAAW;iBACtC;aACF,CAAC,CAAC;YAEH,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC;YAC3C,gBAAgB,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;YAClD,iBAAiB,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;YACpD,wBAAwB,IAAI,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC;YAClE,oBAAoB,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;YAC1D,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC;YAE/B,OAAO,CAAC,GAAG,CACT,yBAAyB,YAAY,CAAC,WAAW,kBAAkB,cAAc,iBAAiB,CACnG,CAAC;QACJ,CAAC;aAAM,IAAI,MAAM,IAAI,cAAc,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CACT,4GAA4G,CAC7G,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,sBAAsB;YACtB,YAAY,EAAE,UAAU,CAAC,QAAQ;YACjC,cAAc;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,aAAa,EAAE,wBAAwB;gBACvC,SAAS,EAAE,oBAAoB;aAChC;YACD,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sBAAsB;QACtB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;QAE5D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,sBAAsB;YACtB,YAAY,EAAE,CAAC;YACf,cAAc;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,aAAa,EAAE,wBAAwB;gBACvC,SAAS,EAAE,oBAAoB;aAChC;YACD,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -106,14 +106,8 @@ export interface TicketsResult {
106
106
  }>;
107
107
  }
108
108
  export interface ShipOptions {
109
- ticket: string;
109
+ ticketData: Ticket;
110
110
  review?: boolean;
111
- commit?: boolean;
112
- ticketsFile?: string;
113
- test?: boolean;
114
- url?: string;
115
- headed?: boolean;
116
- debug?: boolean;
117
111
  directory?: string;
118
112
  dbUrl?: string;
119
113
  noLogs?: boolean;
@@ -123,8 +117,13 @@ export interface BuildOptions {
123
117
  ticketsFile?: string;
124
118
  dbUrl?: string;
125
119
  reset?: boolean;
126
- confirm?: boolean;
127
- noCommit?: boolean;
120
+ askConfirm?: boolean;
121
+ askCommit?: boolean;
122
+ review?: boolean;
123
+ test?: boolean;
124
+ url?: string;
125
+ headed?: boolean;
126
+ debug?: boolean;
128
127
  noLogs?: boolean;
129
128
  }
130
129
  export interface ReviewContext {
@@ -138,7 +137,6 @@ export interface ReviewOptions {
138
137
  noLogs?: boolean;
139
138
  }
140
139
  export interface ShipResult {
141
- ticketId: string;
142
140
  success: boolean;
143
141
  implementationFixCount: number;
144
142
  lintFixCount: number;
@@ -191,6 +189,26 @@ export interface TestResult {
191
189
  cost: number;
192
190
  error?: string;
193
191
  }
192
+ export interface TestRunnerOptions {
193
+ ticket: Ticket;
194
+ cwd: string;
195
+ url?: string;
196
+ headed?: boolean;
197
+ debug?: boolean;
198
+ maxRetries?: number;
199
+ }
200
+ export interface TestRunnerResult {
201
+ success: boolean;
202
+ attempts: number;
203
+ fixesApplied: number;
204
+ tokensUsed: {
205
+ input: number;
206
+ output: number;
207
+ cacheCreation: number;
208
+ cacheRead: number;
209
+ };
210
+ cost: number;
211
+ }
194
212
  export type { CommandName, ExecutionStatus, CliLogData, CommandExecutionContext, } from './utils/logger.js';
195
213
  export type { AnalysisResult, TestFailure } from './utils/error-analyzer.js';
196
214
  export type { ConsoleLog, NetworkLog, DockerLog, CollectedLogs } from './utils/log-collector.js';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../kosuke/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../kosuke/types.ts"],"names":[],"mappings":"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"}
@@ -26,10 +26,6 @@ export declare function push(branchName: string, cwd?: string): Promise<void>;
26
26
  * Get the current branch name
27
27
  */
28
28
  export declare function getCurrentBranch(cwd?: string): Promise<string>;
29
- /**
30
- * Commit and push to current branch (no branch creation, no PR)
31
- */
32
- export declare function commitAndPushCurrentBranch(message: string, cwd?: string): Promise<void>;
33
29
  /**
34
30
  * Get git diff of current changes (staged and unstaged)
35
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgD3C;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBnE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAe,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpE;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB7F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1E"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgD3C;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBnE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAe,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1E"}
@@ -112,25 +112,6 @@ export async function getCurrentBranch(cwd) {
112
112
  const branch = await git.revparse(['--abbrev-ref', 'HEAD']);
113
113
  return branch.trim();
114
114
  }
115
- /**
116
- * Commit and push to current branch (no branch creation, no PR)
117
- */
118
- export async function commitAndPushCurrentBranch(message, cwd) {
119
- const git = getGitInstance(cwd);
120
- await ensureGitIdentity(cwd);
121
- // Check if there are changes to commit
122
- const status = await git.status();
123
- if (status.files.length === 0) {
124
- console.log('โ„น๏ธ No changes to commit');
125
- return;
126
- }
127
- // Commit changes
128
- await git.add(['-A']);
129
- await git.commit(message, ['--no-verify']);
130
- // Push to current branch
131
- const currentBranch = await getCurrentBranch(cwd);
132
- await git.push('origin', currentBranch);
133
- }
134
115
  /**
135
116
  * Get git diff of current changes (staged and unstaged)
136
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Test runner utility for build command
3
+ *
4
+ * Handles iterative testing with retry logic and error analysis.
5
+ * Separated from ship command to allow build command to control testing phase.
6
+ */
7
+ import type { TestRunnerOptions, TestRunnerResult } from '../types.js';
8
+ /**
9
+ * Run tests with automatic retry and error fixing
10
+ *
11
+ * @param options - Test runner configuration
12
+ * @returns Result with success status, attempts, fixes applied, and costs
13
+ */
14
+ export declare function runTestsWithRetry(options: TestRunnerOptions): Promise<TestRunnerResult>;
15
+ //# sourceMappingURL=test-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/test-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKvE;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgG7F"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Test runner utility for build command
3
+ *
4
+ * Handles iterative testing with retry logic and error analysis.
5
+ * Separated from ship command to allow build command to control testing phase.
6
+ */
7
+ import { testCore } from '../commands/test.js';
8
+ import { LogCollector } from './log-collector.js';
9
+ import { analyzeAndFix } from './error-analyzer.js';
10
+ /**
11
+ * Run tests with automatic retry and error fixing
12
+ *
13
+ * @param options - Test runner configuration
14
+ * @returns Result with success status, attempts, fixes applied, and costs
15
+ */
16
+ export async function runTestsWithRetry(options) {
17
+ const { ticket, cwd, url, headed, debug, maxRetries = 3 } = options;
18
+ let totalInputTokens = 0;
19
+ let totalOutputTokens = 0;
20
+ let totalCacheCreationTokens = 0;
21
+ let totalCacheReadTokens = 0;
22
+ let totalCost = 0;
23
+ let totalFixesApplied = 0;
24
+ let testsPassing = false;
25
+ let attempts = 0;
26
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
27
+ attempts = attempt;
28
+ console.log(`\n๐Ÿงช Test Attempt ${attempt}/${maxRetries}\n`);
29
+ try {
30
+ // Run atomic test
31
+ const testResult = await testCore({
32
+ ticket: ticket.id,
33
+ url,
34
+ headed,
35
+ debug,
36
+ directory: cwd,
37
+ });
38
+ totalInputTokens += testResult.tokensUsed.input;
39
+ totalOutputTokens += testResult.tokensUsed.output;
40
+ totalCacheCreationTokens += testResult.tokensUsed.cacheCreation;
41
+ totalCacheReadTokens += testResult.tokensUsed.cacheRead;
42
+ totalCost += testResult.cost;
43
+ if (testResult.success) {
44
+ testsPassing = true;
45
+ console.log('\nโœ… Tests passed!');
46
+ break;
47
+ }
48
+ // If not last attempt, analyze and fix
49
+ if (attempt < maxRetries) {
50
+ console.log('\n๐Ÿ” Analyzing test failures...');
51
+ // Collect Docker logs for backend debugging
52
+ const logCollector = new LogCollector();
53
+ await logCollector.collectDockerLogs('30s');
54
+ const dockerLogs = logCollector.getErrors();
55
+ // Analyze errors and apply fixes
56
+ const fixResult = await analyzeAndFix(ticket, testResult.output, testResult.logs, dockerLogs, cwd);
57
+ totalFixesApplied += fixResult.fixesApplied;
58
+ totalInputTokens += fixResult.tokensUsed.input;
59
+ totalOutputTokens += fixResult.tokensUsed.output;
60
+ totalCacheCreationTokens += fixResult.tokensUsed.cacheCreation;
61
+ totalCacheReadTokens += fixResult.tokensUsed.cacheRead;
62
+ totalCost += fixResult.cost;
63
+ console.log(`\n๐Ÿ”ง Applied ${fixResult.fixesApplied} fixes`);
64
+ console.log(`๐Ÿ’ฐ Fix cost: $${fixResult.cost.toFixed(4)}`);
65
+ }
66
+ }
67
+ catch (error) {
68
+ const errorMessage = error instanceof Error ? error.message : String(error);
69
+ console.error(`\nโŒ Test attempt ${attempt} failed: ${errorMessage}`);
70
+ // If last attempt, throw
71
+ if (attempt === maxRetries) {
72
+ throw new Error(`Tests failed after ${maxRetries} attempts: ${errorMessage}`);
73
+ }
74
+ // Otherwise, continue to next attempt
75
+ console.log(`\nโš ๏ธ Retrying... (${maxRetries - attempt} attempts remaining)`);
76
+ }
77
+ }
78
+ if (!testsPassing) {
79
+ throw new Error(`Tests failed after ${maxRetries} attempts`);
80
+ }
81
+ return {
82
+ success: testsPassing,
83
+ attempts,
84
+ fixesApplied: totalFixesApplied,
85
+ tokensUsed: {
86
+ input: totalInputTokens,
87
+ output: totalOutputTokens,
88
+ cacheCreation: totalCacheCreationTokens,
89
+ cacheRead: totalCacheReadTokens,
90
+ },
91
+ cost: totalCost,
92
+ };
93
+ }
94
+ //# sourceMappingURL=test-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../../kosuke/utils/test-runner.ts"],"names":[],"mappings":"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"}