@kosuke-ai/cli 0.0.12 → 0.0.13

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,419 @@
1
+ /**
2
+ * Ship command - Implement a ticket from tickets.json
3
+ *
4
+ * This command takes a ticket ID, implements it following CLAUDE.md rules,
5
+ * runs linting and fixing, and optionally performs a review step.
6
+ *
7
+ * Usage:
8
+ * kosuke ship --ticket=SCHEMA-1 # Implement ticket (local only)
9
+ * kosuke ship --ticket=BACKEND-2 --review # Implement with review
10
+ * kosuke ship --ticket=FRONTEND-1 --commit # Implement and commit to current branch
11
+ * kosuke ship --ticket=BACKEND-3 --pr # Implement and create PR (new branch)
12
+ * kosuke ship --ticket=SCHEMA-1 --tickets=path/to/tickets.json
13
+ */
14
+ import { readFileSync, writeFileSync, existsSync } from 'fs';
15
+ import { join } from 'path';
16
+ import { runAgent, formatCostBreakdown } from '../utils/claude-agent.js';
17
+ import { ensureRepoReady } from '../utils/repository-manager.js';
18
+ import { runWithPR } from '../utils/pr-orchestrator.js';
19
+ import { commitAndPushCurrentBranch } from '../utils/git.js';
20
+ import { reviewCore } from './review.js';
21
+ import { runComprehensiveLinting } from '../utils/validator.js';
22
+ /**
23
+ * Load tickets from file
24
+ */
25
+ function loadTicketsFile(ticketsPath) {
26
+ if (!existsSync(ticketsPath)) {
27
+ throw new Error(`Tickets file not found: ${ticketsPath}\n` +
28
+ `Please generate tickets first using: kosuke tickets`);
29
+ }
30
+ try {
31
+ const content = readFileSync(ticketsPath, 'utf-8');
32
+ return JSON.parse(content);
33
+ }
34
+ catch (error) {
35
+ throw new Error(`Failed to parse tickets file: ${error instanceof Error ? error.message : String(error)}`);
36
+ }
37
+ }
38
+ /**
39
+ * Save tickets to file
40
+ */
41
+ function saveTicketsFile(ticketsPath, ticketsData) {
42
+ writeFileSync(ticketsPath, JSON.stringify(ticketsData, null, 2), 'utf-8');
43
+ }
44
+ /**
45
+ * Find ticket by ID
46
+ */
47
+ function findTicket(ticketsData, ticketId) {
48
+ return ticketsData.tickets.find((t) => t.id === ticketId);
49
+ }
50
+ /**
51
+ * Update ticket status in file
52
+ */
53
+ function updateTicketStatus(ticketsPath, ticketId, status, error) {
54
+ const ticketsData = loadTicketsFile(ticketsPath);
55
+ const ticket = findTicket(ticketsData, ticketId);
56
+ if (!ticket) {
57
+ console.warn(`⚠️ Ticket ${ticketId} not found, skipping status update`);
58
+ return;
59
+ }
60
+ ticket.status = status;
61
+ if (error) {
62
+ ticket.error = error;
63
+ }
64
+ else {
65
+ delete ticket.error;
66
+ }
67
+ saveTicketsFile(ticketsPath, ticketsData);
68
+ }
69
+ /**
70
+ * Load CLAUDE.md rules
71
+ */
72
+ function loadClaudeRules(cwd = process.cwd()) {
73
+ const claudePath = join(cwd, 'CLAUDE.md');
74
+ if (!existsSync(claudePath)) {
75
+ throw new Error(`CLAUDE.md not found in workspace root.\n` +
76
+ `Please ensure CLAUDE.md exists at: ${claudePath}`);
77
+ }
78
+ return readFileSync(claudePath, 'utf-8');
79
+ }
80
+ /**
81
+ * Build system prompt for ticket implementation
82
+ */
83
+ function buildImplementationPrompt(ticket, claudeRules, repoPath) {
84
+ return `You are an expert software engineer implementing a feature ticket.
85
+
86
+ **Your Task:**
87
+ Implement the following ticket according to the project's coding standards and architecture patterns.
88
+
89
+ **Ticket Information:**
90
+ - ID: ${ticket.id}
91
+ - Title: ${ticket.title}
92
+ - Description:
93
+ ${ticket.description}
94
+
95
+ **Project Rules (CLAUDE.md):**
96
+ ${claudeRules}
97
+
98
+ **Context:**
99
+ You have access to the kosuke-template repository at: ${repoPath}
100
+ Use this to understand implementation patterns, but DO NOT copy code directly.
101
+ Adapt patterns to fit the current project's needs.
102
+
103
+ **Implementation Requirements:**
104
+ 1. Follow ALL guidelines in CLAUDE.md
105
+ 2. Use appropriate patterns from kosuke-template as reference
106
+ 3. Write clean, well-documented code
107
+ 4. Ensure TypeScript type safety
108
+ 5. Add error handling where appropriate
109
+ 6. Make the implementation production-ready
110
+
111
+ **Critical Instructions:**
112
+ - Read relevant files in the current workspace to understand the codebase
113
+ - Implement ALL requirements from the ticket description
114
+ - Use search_replace or write tools to create/modify files
115
+ - Ensure acceptance criteria are met
116
+ - Do not make assumptions - ask for clarification if needed through comments
117
+
118
+ Begin by exploring the current codebase, then implement the ticket systematically.`;
119
+ }
120
+ /**
121
+ * Build system prompt for review
122
+ */
123
+ function buildReviewPrompt(ticket, claudeRules) {
124
+ return `You are a senior code reviewer ensuring compliance with project standards.
125
+
126
+ **Your Task:**
127
+ Review the implementation of ticket ${ticket.id} and ensure it follows CLAUDE.md rules.
128
+
129
+ **Ticket Context:**
130
+ - ID: ${ticket.id}
131
+ - Title: ${ticket.title}
132
+
133
+ **Project Rules (CLAUDE.md):**
134
+ ${claudeRules}
135
+
136
+ **Review Requirements:**
137
+ 1. Check compliance with CLAUDE.md guidelines
138
+ 2. Verify code quality and best practices
139
+ 3. Ensure TypeScript type safety
140
+ 4. Check error handling
141
+ 5. Verify naming conventions
142
+ 6. Check for security issues
143
+ 7. Ensure proper documentation
144
+
145
+ **If Issues Found:**
146
+ - Use search_replace or write tools to FIX them immediately
147
+ - Don't just report issues - FIX them!
148
+ - Make minimal necessary changes
149
+ - Ensure fixes don't break functionality
150
+
151
+ **Critical Instructions:**
152
+ - Read the files that were recently modified for this ticket
153
+ - Identify any violations of CLAUDE.md rules
154
+ - Fix ALL issues found
155
+ - Ensure the code is production-ready after your review
156
+
157
+ Begin by reading recent changes and reviewing them against the standards.`;
158
+ }
159
+ /**
160
+ * Core ship logic (git-agnostic, reusable)
161
+ */
162
+ export async function shipCore(options) {
163
+ const { ticket: ticketId, review = false, ticketsFile = 'tickets.json' } = options;
164
+ const cwd = process.cwd();
165
+ const ticketsPath = join(cwd, ticketsFile);
166
+ // 1. Load and validate ticket
167
+ console.log('📋 Loading ticket...');
168
+ const ticketsData = loadTicketsFile(ticketsPath);
169
+ const ticket = findTicket(ticketsData, ticketId);
170
+ if (!ticket) {
171
+ throw new Error(`Ticket ${ticketId} not found in ${ticketsFile}\n` +
172
+ `Available tickets: ${ticketsData.tickets.map((t) => t.id).join(', ')}`);
173
+ }
174
+ if (ticket.status === 'Done') {
175
+ throw new Error(`Ticket ${ticketId} is already marked as Done.\n` +
176
+ `If you want to re-implement it, manually change its status to "Todo" in ${ticketsFile}`);
177
+ }
178
+ console.log(` ✅ Loaded ticket: ${ticket.id} - ${ticket.title}\n`);
179
+ // 2. Update status to InProgress
180
+ console.log('📝 Updating ticket status to InProgress...');
181
+ updateTicketStatus(ticketsPath, ticketId, 'InProgress');
182
+ console.log(' ✅ Status updated\n');
183
+ // 3. Load CLAUDE.md rules
184
+ console.log('📖 Loading CLAUDE.md rules...');
185
+ const claudeRules = loadClaudeRules(cwd);
186
+ console.log(` ✅ Loaded rules (${claudeRules.length} characters)\n`);
187
+ // 4. Fetch kosuke-template for context
188
+ console.log('📥 Fetching kosuke-template for context...');
189
+ const repoInfo = await ensureRepoReady('Kosuke-Org/kosuke-template');
190
+ console.log(` ✅ Template repository ready at ${repoInfo.localPath}\n`);
191
+ // Track metrics
192
+ let totalInputTokens = 0;
193
+ let totalOutputTokens = 0;
194
+ let totalCacheCreationTokens = 0;
195
+ let totalCacheReadTokens = 0;
196
+ let totalCost = 0;
197
+ let implementationFixCount = 0;
198
+ let reviewFixCount = 0;
199
+ try {
200
+ // 5. Implementation phase
201
+ console.log(`\n${'='.repeat(60)}`);
202
+ console.log(`🚀 Phase 1: Implementation`);
203
+ console.log(`${'='.repeat(60)}\n`);
204
+ const systemPrompt = buildImplementationPrompt(ticket, claudeRules, repoInfo.localPath);
205
+ const implementationResult = await runAgent(`Implement ticket ${ticketId}: ${ticket.title}`, {
206
+ systemPrompt,
207
+ cwd,
208
+ maxTurns: 40,
209
+ verbosity: 'normal',
210
+ });
211
+ implementationFixCount = implementationResult.fixCount;
212
+ totalInputTokens += implementationResult.tokensUsed.input;
213
+ totalOutputTokens += implementationResult.tokensUsed.output;
214
+ totalCacheCreationTokens += implementationResult.tokensUsed.cacheCreation;
215
+ totalCacheReadTokens += implementationResult.tokensUsed.cacheRead;
216
+ totalCost += implementationResult.cost;
217
+ console.log(`\n✨ Implementation completed (${implementationFixCount} changes made)`);
218
+ console.log(`💰 Implementation cost: ${formatCostBreakdown(implementationResult)}`);
219
+ // 6. Linting phase
220
+ console.log(`\n${'='.repeat(60)}`);
221
+ console.log(`🔧 Phase 2: Linting & Quality Checks`);
222
+ console.log(`${'='.repeat(60)}\n`);
223
+ const lintResult = await runComprehensiveLinting();
224
+ console.log(`\n✅ Linting completed (${lintResult.fixCount} fixes applied)`);
225
+ // 7. Review phase (if review flag is set)
226
+ let reviewPerformed = false;
227
+ if (review) {
228
+ console.log(`\n${'='.repeat(60)}`);
229
+ console.log(`🔍 Phase 3: Pre-Review (Full Context)`);
230
+ console.log(`${'='.repeat(60)}\n`);
231
+ const reviewSystemPrompt = buildReviewPrompt(ticket, claudeRules);
232
+ const reviewResult = await runAgent(`Review implementation of ticket ${ticketId} against CLAUDE.md rules`, {
233
+ systemPrompt: reviewSystemPrompt,
234
+ cwd,
235
+ maxTurns: 25,
236
+ verbosity: 'normal',
237
+ });
238
+ reviewFixCount = reviewResult.fixCount;
239
+ totalInputTokens += reviewResult.tokensUsed.input;
240
+ totalOutputTokens += reviewResult.tokensUsed.output;
241
+ totalCacheCreationTokens += reviewResult.tokensUsed.cacheCreation;
242
+ totalCacheReadTokens += reviewResult.tokensUsed.cacheRead;
243
+ totalCost += reviewResult.cost;
244
+ console.log(`\n✨ Pre-Review completed (${reviewFixCount} issues fixed)`);
245
+ console.log(`💰 Review cost: ${formatCostBreakdown(reviewResult)}`);
246
+ // Run linting again after review fixes
247
+ if (reviewFixCount > 0) {
248
+ console.log('\n🔧 Running linting after review fixes...');
249
+ await runComprehensiveLinting();
250
+ }
251
+ reviewPerformed = true;
252
+ }
253
+ // 8. Update status to Done
254
+ console.log('\n📝 Updating ticket status to Done...');
255
+ updateTicketStatus(ticketsPath, ticketId, 'Done');
256
+ console.log(' ✅ Ticket marked as Done\n');
257
+ return {
258
+ ticketId,
259
+ success: true,
260
+ implementationFixCount,
261
+ lintFixCount: lintResult.fixCount,
262
+ reviewPerformed,
263
+ reviewFixCount,
264
+ gitDiffReviewed: false,
265
+ gitDiffReviewFixCount: 0,
266
+ tokensUsed: {
267
+ input: totalInputTokens,
268
+ output: totalOutputTokens,
269
+ cacheCreation: totalCacheCreationTokens,
270
+ cacheRead: totalCacheReadTokens,
271
+ },
272
+ cost: totalCost,
273
+ };
274
+ }
275
+ catch (error) {
276
+ // Update ticket status to Error
277
+ const errorMessage = error instanceof Error ? error.message : String(error);
278
+ console.error(`\n❌ Implementation failed: ${errorMessage}`);
279
+ updateTicketStatus(ticketsPath, ticketId, 'Error', errorMessage);
280
+ return {
281
+ ticketId,
282
+ success: false,
283
+ implementationFixCount,
284
+ lintFixCount: 0,
285
+ reviewPerformed: false,
286
+ reviewFixCount,
287
+ gitDiffReviewed: false,
288
+ gitDiffReviewFixCount: 0,
289
+ tokensUsed: {
290
+ input: totalInputTokens,
291
+ output: totalOutputTokens,
292
+ cacheCreation: totalCacheCreationTokens,
293
+ cacheRead: totalCacheReadTokens,
294
+ },
295
+ cost: totalCost,
296
+ error: errorMessage,
297
+ };
298
+ }
299
+ }
300
+ /**
301
+ * Review git diff after implementation
302
+ */
303
+ async function reviewGitDiff() {
304
+ console.log(`\n${'='.repeat(60)}`);
305
+ console.log(`🔍 Reviewing Git Diff Against CLAUDE.md`);
306
+ console.log(`${'='.repeat(60)}\n`);
307
+ const result = await reviewCore({});
308
+ return {
309
+ fixCount: result.fixesApplied,
310
+ cost: result.cost,
311
+ tokensUsed: result.tokensUsed,
312
+ };
313
+ }
314
+ /**
315
+ * Main ship command
316
+ */
317
+ export async function shipCommand(options) {
318
+ const { ticket: ticketId, commit = false, pr = false } = options;
319
+ console.log(`🚢 Shipping Ticket: ${ticketId}\n`);
320
+ try {
321
+ // Validate environment
322
+ if (!process.env.ANTHROPIC_API_KEY) {
323
+ throw new Error('ANTHROPIC_API_KEY environment variable is required');
324
+ }
325
+ // Validate mutually exclusive flags
326
+ if (commit && pr) {
327
+ throw new Error('Cannot use --commit and --pr together.\n' +
328
+ 'Use --commit to push to current branch, or --pr to create a new branch with pull request.');
329
+ }
330
+ if (pr && !process.env.GITHUB_TOKEN) {
331
+ throw new Error('GITHUB_TOKEN environment variable is required for --pr flag');
332
+ }
333
+ if (commit && !process.env.GITHUB_TOKEN) {
334
+ throw new Error('GITHUB_TOKEN environment variable is required for --commit flag');
335
+ }
336
+ // If --pr flag is provided, wrap with PR workflow
337
+ if (pr) {
338
+ let diffReviewCost = 0;
339
+ let diffReviewFixCount = 0;
340
+ const { result: shipResult, prInfo } = await runWithPR({
341
+ branchPrefix: `feat/ticket-${ticketId}`,
342
+ baseBranch: options.baseBranch,
343
+ commitMessage: `feat: implement ${ticketId}`,
344
+ prTitle: `feat: Implement ${ticketId}`,
345
+ prBody: `## 🎫 Ticket Implementation
346
+
347
+ Implements ticket **${ticketId}** from tickets.json.
348
+
349
+ ### 📋 Details
350
+ - Implementation fixes: ${0} (will be filled by result)
351
+ - Linting fixes: ${0}
352
+ - Review performed: ${options.review ? 'Yes' : 'No'}
353
+
354
+ ---
355
+
356
+ 🤖 *Generated by Kosuke CLI (\`kosuke ship --ticket=${ticketId} ${options.review ? '--review ' : ''}--pr\`)*`,
357
+ }, async () => {
358
+ // Run core implementation
359
+ const result = await shipCore(options);
360
+ // Review git diff before committing
361
+ const diffReview = await reviewGitDiff();
362
+ diffReviewCost = diffReview.cost;
363
+ diffReviewFixCount = diffReview.fixCount;
364
+ return result;
365
+ });
366
+ // Display summary with updated values
367
+ console.log('\n✅ Ship completed successfully!');
368
+ console.log(`📊 Implementation fixes: ${shipResult.implementationFixCount}`);
369
+ console.log(`🔧 Linting fixes: ${shipResult.lintFixCount}`);
370
+ if (shipResult.reviewPerformed) {
371
+ console.log(`🔍 Pre-review fixes: ${shipResult.reviewFixCount}`);
372
+ }
373
+ console.log(`🔍 Git diff review fixes: ${diffReviewFixCount}`);
374
+ console.log(`💰 Total cost: $${(shipResult.cost + diffReviewCost).toFixed(4)}`);
375
+ console.log(`🔗 PR: ${prInfo.prUrl}`);
376
+ }
377
+ else if (commit) {
378
+ // Run core logic
379
+ const result = await shipCore(options);
380
+ if (!result.success) {
381
+ throw new Error(result.error || 'Ship failed');
382
+ }
383
+ // Review git diff before committing
384
+ const diffReview = await reviewGitDiff();
385
+ // Commit and push to current branch
386
+ console.log('\n📝 Committing and pushing to current branch...');
387
+ await commitAndPushCurrentBranch(`feat: implement ${ticketId}`);
388
+ console.log(' ✅ Changes committed and pushed\n');
389
+ console.log('\n✅ Ship completed successfully!');
390
+ console.log(`📊 Implementation fixes: ${result.implementationFixCount}`);
391
+ console.log(`🔧 Linting fixes: ${result.lintFixCount}`);
392
+ if (result.reviewPerformed) {
393
+ console.log(`🔍 Pre-review fixes: ${result.reviewFixCount}`);
394
+ }
395
+ console.log(`🔍 Git diff review fixes: ${diffReview.fixCount}`);
396
+ console.log(`💰 Total cost: $${(result.cost + diffReview.cost).toFixed(4)}`);
397
+ }
398
+ else {
399
+ // Run core logic without any git operations
400
+ const result = await shipCore(options);
401
+ if (!result.success) {
402
+ throw new Error(result.error || 'Ship failed');
403
+ }
404
+ console.log('\n✅ Ship completed successfully!');
405
+ console.log(`📊 Implementation fixes: ${result.implementationFixCount}`);
406
+ console.log(`🔧 Linting fixes: ${result.lintFixCount}`);
407
+ if (result.reviewPerformed) {
408
+ console.log(`🔍 Review fixes: ${result.reviewFixCount}`);
409
+ }
410
+ console.log(`💰 Total cost: $${result.cost.toFixed(4)}`);
411
+ console.log('\nℹ️ Changes applied locally. Use --commit to push or --pr to create a pull request.');
412
+ }
413
+ }
414
+ catch (error) {
415
+ console.error('\n❌ Ship failed:', error);
416
+ throw error;
417
+ }
418
+ }
419
+ //# sourceMappingURL=ship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship.js","sourceRoot":"","sources":["../../../kosuke/commands/ship.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,8 @@ export interface Ticket {
72
72
  title: string;
73
73
  description: string;
74
74
  estimatedEffort: number;
75
- status: 'Todo' | 'Done';
75
+ status: 'Todo' | 'InProgress' | 'Done' | 'Error';
76
+ error?: string;
76
77
  }
77
78
  export interface TicketsResult {
78
79
  schemaTickets: Ticket[];
@@ -87,5 +88,48 @@ export interface TicketsResult {
87
88
  };
88
89
  cost: number;
89
90
  }
91
+ export interface ShipOptions {
92
+ ticket: string;
93
+ review?: boolean;
94
+ commit?: boolean;
95
+ pr?: boolean;
96
+ baseBranch?: string;
97
+ ticketsFile?: string;
98
+ }
99
+ export interface BuildOptions {
100
+ ticketsFile?: string;
101
+ }
102
+ export interface ReviewOptions {
103
+ }
104
+ export interface ShipResult {
105
+ ticketId: string;
106
+ success: boolean;
107
+ implementationFixCount: number;
108
+ lintFixCount: number;
109
+ reviewPerformed: boolean;
110
+ reviewFixCount: number;
111
+ gitDiffReviewed: boolean;
112
+ gitDiffReviewFixCount: number;
113
+ tokensUsed: {
114
+ input: number;
115
+ output: number;
116
+ cacheCreation: number;
117
+ cacheRead: number;
118
+ };
119
+ cost: number;
120
+ error?: string;
121
+ }
122
+ export interface ReviewResult {
123
+ success: boolean;
124
+ issuesFound: number;
125
+ fixesApplied: number;
126
+ tokensUsed: {
127
+ input: number;
128
+ output: number;
129
+ cacheCreation: number;
130
+ cacheRead: number;
131
+ };
132
+ cost: number;
133
+ }
90
134
  export {};
91
135
  //# sourceMappingURL=types.d.ts.map
@@ -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,4 +26,16 @@ export declare function push(branchName: string): Promise<void>;
26
26
  * Get the current branch name
27
27
  */
28
28
  export declare function getCurrentBranch(): Promise<string>;
29
+ /**
30
+ * Commit and push to current branch (no branch creation, no PR)
31
+ */
32
+ export declare function commitAndPushCurrentBranch(message: string): Promise<void>;
33
+ /**
34
+ * Get git diff of current changes (staged and unstaged)
35
+ */
36
+ export declare function getGitDiff(): Promise<string>;
37
+ /**
38
+ * Check if there are any uncommitted changes
39
+ */
40
+ export declare function hasUncommittedChanges(): Promise<boolean>;
29
41
  //# sourceMappingURL=git.d.ts.map
@@ -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;AAyC3C;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBvD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO7D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,GAAE,MAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAejG;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3D;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGxD"}
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;AAyC3C;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBvD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO7D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,GAAE,MAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAejG;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3D;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGxD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/E;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CASlD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG9D"}
@@ -101,4 +101,43 @@ export async function getCurrentBranch() {
101
101
  const branch = await git.revparse(['--abbrev-ref', 'HEAD']);
102
102
  return branch.trim();
103
103
  }
104
+ /**
105
+ * Commit and push to current branch (no branch creation, no PR)
106
+ */
107
+ export async function commitAndPushCurrentBranch(message) {
108
+ await ensureGitIdentity();
109
+ // Check if there are changes to commit
110
+ const status = await git.status();
111
+ if (status.files.length === 0) {
112
+ console.log('ℹ️ No changes to commit');
113
+ return;
114
+ }
115
+ // Commit changes
116
+ await git.add(['-A']);
117
+ await git.commit(message, ['--no-verify']);
118
+ // Push to current branch
119
+ const currentBranch = await getCurrentBranch();
120
+ await git.push('origin', currentBranch);
121
+ }
122
+ /**
123
+ * Get git diff of current changes (staged and unstaged)
124
+ */
125
+ export async function getGitDiff() {
126
+ try {
127
+ // Get diff of both staged and unstaged changes
128
+ const diff = await git.diff(['HEAD']);
129
+ return diff;
130
+ }
131
+ catch (error) {
132
+ console.warn('⚠️ Could not get git diff:', error);
133
+ return '';
134
+ }
135
+ }
136
+ /**
137
+ * Check if there are any uncommitted changes
138
+ */
139
+ export async function hasUncommittedChanges() {
140
+ const status = await git.status();
141
+ return status.files.length > 0;
142
+ }
104
143
  //# sourceMappingURL=git.js.map
@@ -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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"}
@@ -30,5 +30,16 @@ export declare function runLint(): Promise<ValidationResult>;
30
30
  * Run TypeScript type checking using detected package manager
31
31
  */
32
32
  export declare function runTypecheck(): Promise<ValidationResult>;
33
+ /**
34
+ * Run tests using package.json test script
35
+ */
36
+ export declare function runTests(): Promise<ValidationResult>;
37
+ /**
38
+ * Run comprehensive linting and fixing
39
+ */
40
+ export declare function runComprehensiveLinting(): Promise<{
41
+ success: boolean;
42
+ fixCount: number;
43
+ }>;
33
44
  export {};
34
45
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAQxE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAsB,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAcjG;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAqC3D;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAwCzD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAqC9D"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAQxE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAsB,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAcjG;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAqC3D;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAwCzD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAqC9D;AAED;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA4B1D;AAOD;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmF/F"}