@kosuke-ai/cli 0.0.1 → 0.0.2

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.
package/README.md CHANGED
@@ -74,6 +74,30 @@ kosuke analyse --types=ts,tsx
74
74
  kosuke analyse --dry-run
75
75
  ```
76
76
 
77
+ ### `kosuke lint`
78
+
79
+ Use Claude AI to automatically fix linting errors in your codebase. Runs the lint command from package.json, analyzes the errors, and applies fixes.
80
+
81
+ **Options:**
82
+ - `--dry-run` - Report errors only, don't fix them
83
+ - `--no-pr` - Fix locally without creating PR
84
+
85
+ **Examples:**
86
+ ```bash
87
+ # Fix all linting errors and create PR
88
+ kosuke lint
89
+
90
+ # Preview what errors would be fixed
91
+ kosuke lint --dry-run
92
+
93
+ # Fix errors locally without creating PR
94
+ kosuke lint --no-pr
95
+ ```
96
+
97
+ **Requirements:**
98
+ - Your `package.json` must have a `lint` script (e.g., `"lint": "eslint . --fix"`)
99
+ - The lint script should support the `--fix` flag for auto-fixing
100
+
77
101
  ## Configuration
78
102
 
79
103
  ### `.kosukeignore`
@@ -116,17 +140,4 @@ npm run dev <command>
116
140
  # Link for local testing
117
141
  npm link
118
142
  kosuke <command>
119
- ```
120
-
121
- ## License
122
-
123
- ISC
124
-
125
- ## Support
126
-
127
- - Issues: https://github.com/Kosuke-Org/kosuke-cli/issues
128
- - Homepage: https://github.com/Kosuke-Org/kosuke-cli
129
-
130
- ## Author
131
-
132
- filippo.pedrazzini@kosuke.ai
143
+ ```
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@
17
17
  import 'dotenv/config';
18
18
  import { syncRulesCommand } from './kosuke/commands/sync-rules.js';
19
19
  import { analyseCommand } from './kosuke/commands/analyse.js';
20
+ import { lintCommand } from './kosuke/commands/lint.js';
20
21
  async function main() {
21
22
  const args = process.argv.slice(2);
22
23
  const command = args[0];
@@ -43,6 +44,14 @@ async function main() {
43
44
  await analyseCommand(options);
44
45
  break;
45
46
  }
47
+ case 'lint': {
48
+ const options = {
49
+ dryRun: args.includes('--dry-run'),
50
+ noPr: args.includes('--no-pr'),
51
+ };
52
+ await lintCommand(options);
53
+ break;
54
+ }
46
55
  default:
47
56
  console.error(`āŒ Unknown command: ${command}\n`);
48
57
  showHelp();
@@ -87,6 +96,19 @@ COMMANDS:
87
96
  kosuke analyse --types=ts,tsx
88
97
  kosuke analyse --dry-run
89
98
 
99
+ lint
100
+ Use Claude AI to automatically fix linting errors
101
+ Creates a PR with all lint fixes
102
+
103
+ Options:
104
+ --dry-run Report errors only, don't fix them
105
+ --no-pr Fix locally without creating PR
106
+
107
+ Examples:
108
+ kosuke lint
109
+ kosuke lint --dry-run
110
+ kosuke lint --no-pr
111
+
90
112
  ENVIRONMENT VARIABLES:
91
113
 
92
114
  ANTHROPIC_API_KEY Required for Claude API access
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBACrC,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAClC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpE,KAAK,EAAE,IAAI;yBACR,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAC1C,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACf,EAAE,KAAK,CAAC,GAAG,CAAC;iBACf,CAAC;gBACF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC;gBACjD,QAAQ,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBACrC,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAClC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpE,KAAK,EAAE,IAAI;yBACR,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAC1C,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACf,EAAE,KAAK,CAAC,GAAG,CAAC;iBACf,CAAC;gBACF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG;oBACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAClC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;iBAC/B,CAAC;gBACF,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC;gBACjD,QAAQ,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyse.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/analyse.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AA4O9D;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHhF"}
1
+ {"version":3,"file":"analyse.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/analyse.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAiR9D;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJhF"}
@@ -14,18 +14,25 @@ import { join } from 'path';
14
14
  import { discoverFiles } from '../utils/file-discovery.js';
15
15
  import { createBatches } from '../utils/batch-creator.js';
16
16
  import { runLint, runTypecheck } from '../utils/validator.js';
17
- import { createBranch, commit, push, reset, getCurrentRepo } from '../utils/git.js';
17
+ import { createBranch, commit, push, reset, getCurrentRepo, getCurrentBranch } from '../utils/git.js';
18
18
  import { createPullRequest } from '../utils/github.js';
19
19
  /**
20
20
  * Calculate cost based on Claude Sonnet 4.5 pricing
21
- * $3 per million input tokens, $15 per million output tokens
21
+ * - $3 per million input tokens
22
+ * - $15 per million output tokens
23
+ * - $3.75 per million cache creation tokens (input + 25% overhead)
24
+ * - $0.30 per million cache read tokens (90% discount from input)
22
25
  */
23
- function calculateCost(inputTokens, outputTokens) {
26
+ function calculateCost(inputTokens, outputTokens, cacheCreationTokens = 0, cacheReadTokens = 0) {
24
27
  const INPUT_COST_PER_MILLION = 3.0;
25
28
  const OUTPUT_COST_PER_MILLION = 15.0;
29
+ const CACHE_CREATION_COST_PER_MILLION = 3.75; // Input cost + 25% overhead
30
+ const CACHE_READ_COST_PER_MILLION = 0.30; // 90% discount from input cost
26
31
  const inputCost = (inputTokens / 1000000) * INPUT_COST_PER_MILLION;
27
32
  const outputCost = (outputTokens / 1000000) * OUTPUT_COST_PER_MILLION;
28
- return inputCost + outputCost;
33
+ const cacheCreationCost = (cacheCreationTokens / 1000000) * CACHE_CREATION_COST_PER_MILLION;
34
+ const cacheReadCost = (cacheReadTokens / 1000000) * CACHE_READ_COST_PER_MILLION;
35
+ return inputCost + outputCost + cacheCreationCost + cacheReadCost;
29
36
  }
30
37
  /**
31
38
  * Run Claude analysis on a single batch
@@ -71,6 +78,8 @@ Start by reading CLAUDE.md, then analyze the batch files.`;
71
78
  let fixCount = 0;
72
79
  let inputTokens = 0;
73
80
  let outputTokens = 0;
81
+ let cacheCreationTokens = 0;
82
+ let cacheReadTokens = 0;
74
83
  // Display Claude's reasoning and actions
75
84
  for await (const message of responseStream) {
76
85
  if (message.type === 'assistant') {
@@ -97,12 +106,17 @@ Start by reading CLAUDE.md, then analyze the batch files.`;
97
106
  }
98
107
  // Track token usage from the response
99
108
  if (message.type === 'result' && message.subtype === 'success') {
109
+ // Log the complete usage object to see all available fields
110
+ console.log('šŸ“Š Usage data:', JSON.stringify(message.usage, null, 2));
111
+ // Capture all token types including cache-related tokens
100
112
  inputTokens += message.usage.input_tokens || 0;
101
113
  outputTokens += message.usage.output_tokens || 0;
114
+ cacheCreationTokens += message.usage.cache_creation_input_tokens || 0;
115
+ cacheReadTokens += message.usage.cache_read_input_tokens || 0;
102
116
  }
103
117
  }
104
118
  // Calculate cost for this batch
105
- const cost = calculateCost(inputTokens, outputTokens);
119
+ const cost = calculateCost(inputTokens, outputTokens, cacheCreationTokens, cacheReadTokens);
106
120
  // Return placeholder fixes (real fix tracking would require parsing Claude's edits)
107
121
  const fixes = batch.files.map((file) => ({
108
122
  file,
@@ -111,11 +125,23 @@ Start by reading CLAUDE.md, then analyze the batch files.`;
111
125
  linesChanged: 0,
112
126
  }));
113
127
  console.log(`\n ✨ Batch analysis complete (${fixCount} fixes applied)`);
114
- console.log(` šŸ’° Cost: $${cost.toFixed(4)} (${inputTokens.toLocaleString()} input + ${outputTokens.toLocaleString()} output tokens)`);
128
+ // Build detailed cost breakdown
129
+ const tokenBreakdown = [];
130
+ if (inputTokens > 0)
131
+ tokenBreakdown.push(`${inputTokens.toLocaleString()} input`);
132
+ if (outputTokens > 0)
133
+ tokenBreakdown.push(`${outputTokens.toLocaleString()} output`);
134
+ if (cacheCreationTokens > 0)
135
+ tokenBreakdown.push(`${cacheCreationTokens.toLocaleString()} cache write`);
136
+ if (cacheReadTokens > 0)
137
+ tokenBreakdown.push(`${cacheReadTokens.toLocaleString()} cache read`);
138
+ console.log(` šŸ’° Cost: $${cost.toFixed(4)} (${tokenBreakdown.join(' + ')} tokens)`);
115
139
  return {
116
140
  fixes: fixCount > 0 ? fixes : [],
117
141
  inputTokens,
118
142
  outputTokens,
143
+ cacheCreationTokens,
144
+ cacheReadTokens,
119
145
  cost,
120
146
  };
121
147
  }
@@ -146,7 +172,7 @@ async function validateBatch() {
146
172
  /**
147
173
  * Create quality fixes PR
148
174
  */
149
- async function createQualityPR(batches, totalFixes, totalCost, totalInputTokens, totalOutputTokens) {
175
+ async function createQualityPR(batches, totalFixes, totalCost, totalInputTokens, totalOutputTokens, totalCacheCreationTokens, totalCacheReadTokens, baseBranch) {
150
176
  const { owner, repo } = await getCurrentRepo();
151
177
  const date = new Date().toISOString().split('T')[0];
152
178
  // Categorize by directory for summary
@@ -162,10 +188,14 @@ This PR contains automated fixes to align the codebase with **CLAUDE.md** standa
162
188
  - **Batches Processed**: ${batches.length}
163
189
  - **Files Modified**: ${batches.reduce((sum, b) => sum + b.files.length, 0)}
164
190
  - **Fixes Applied**: ${totalFixes}
165
- - **šŸ’° Estimated Cost**: $${totalCost.toFixed(4)}
166
- - Input tokens: ${totalInputTokens.toLocaleString()}
167
- - Output tokens: ${totalOutputTokens.toLocaleString()}
168
- - Model: Claude Sonnet 4.5 ($3/M input, $15/M output)
191
+ - **šŸ’° Total Cost**: $${totalCost.toFixed(4)}
192
+
193
+ ### šŸ”¢ Token Usage
194
+ - **Input tokens**: ${totalInputTokens.toLocaleString()} ($3/M)
195
+ - **Output tokens**: ${totalOutputTokens.toLocaleString()} ($15/M)
196
+ - **Cache write tokens**: ${totalCacheCreationTokens.toLocaleString()} ($3.75/M)
197
+ - **Cache read tokens**: ${totalCacheReadTokens.toLocaleString()} ($0.30/M)
198
+ - **Model**: Claude Sonnet 4.5
169
199
 
170
200
  ### šŸ“¦ Batches
171
201
 
@@ -200,7 +230,7 @@ All fixes follow the comprehensive rules in CLAUDE.md, including:
200
230
  repo,
201
231
  title: `chore: Quality Fixes (${date})`,
202
232
  head: currentBranch.trim(),
203
- base: 'main',
233
+ base: baseBranch,
204
234
  body: prBody,
205
235
  });
206
236
  console.log(`āœ… Pull request created: ${prUrl}`);
@@ -246,17 +276,22 @@ export async function analyseCommand(options = {}) {
246
276
  console.log('\nāœ… Dry run complete. Use without --dry-run to create PR.');
247
277
  return;
248
278
  }
279
+ // Get current branch for PR base (before creating new branch)
280
+ const baseBranch = await getCurrentBranch();
281
+ console.log(`šŸ“ Base branch: ${baseBranch}\n`);
249
282
  // Create working branch with unique name
250
283
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-').split('.')[0];
251
284
  const branchName = `quality/kosuke-analysis-${timestamp}`;
252
285
  console.log(`🌿 Creating branch: ${branchName}\n`);
253
- await createBranch(branchName);
286
+ await createBranch(branchName, baseBranch);
254
287
  // Process each batch with isolated Claude run
255
288
  const processedBatches = [];
256
289
  let totalFixes = 0;
257
290
  let totalCost = 0;
258
291
  let totalInputTokens = 0;
259
292
  let totalOutputTokens = 0;
293
+ let totalCacheCreationTokens = 0;
294
+ let totalCacheReadTokens = 0;
260
295
  for (const [index, batch] of batches.entries()) {
261
296
  console.log(`\nšŸ“Š Progress: ${index + 1}/${batches.length}`);
262
297
  // Analyze batch (isolated Claude run)
@@ -266,13 +301,22 @@ export async function analyseCommand(options = {}) {
266
301
  const isValid = await validateBatch();
267
302
  if (isValid) {
268
303
  // Commit batch
269
- await commit(`fix(quality): ${batch.name} - ${result.fixes.length} improvements`);
270
- console.log(` āœ… Batch committed\n`);
271
- processedBatches.push(batch);
272
- totalFixes += result.fixes.length;
273
- totalCost += result.cost;
274
- totalInputTokens += result.inputTokens;
275
- totalOutputTokens += result.outputTokens;
304
+ try {
305
+ await commit(`fix(quality): ${batch.name} - ${result.fixes.length} improvements`);
306
+ console.log(` āœ… Batch committed\n`);
307
+ processedBatches.push(batch);
308
+ totalFixes += result.fixes.length;
309
+ totalCost += result.cost;
310
+ totalInputTokens += result.inputTokens;
311
+ totalOutputTokens += result.outputTokens;
312
+ totalCacheCreationTokens += result.cacheCreationTokens;
313
+ totalCacheReadTokens += result.cacheReadTokens;
314
+ }
315
+ catch (error) {
316
+ console.error(` āŒ Failed to commit batch:`, error);
317
+ console.warn(` āš ļø Rolling back batch\n`);
318
+ await reset();
319
+ }
276
320
  }
277
321
  else {
278
322
  // Validation failed, rollback
@@ -285,16 +329,35 @@ export async function analyseCommand(options = {}) {
285
329
  }
286
330
  }
287
331
  if (processedBatches.length === 0) {
288
- console.log('āœ… No fixes needed! Codebase is already compliant.\n');
332
+ console.log('\nāœ… No fixes needed! Codebase is already compliant.\n');
333
+ console.log('ā„¹ļø Note: Created branch will not be pushed as there are no changes.');
289
334
  return;
290
335
  }
336
+ console.log(`\nšŸ“Š Summary of processed batches:`);
337
+ console.log(` āœ… Successfully processed: ${processedBatches.length}`);
338
+ console.log(` āš ļø Skipped (no changes or validation failed): ${batches.length - processedBatches.length}`);
291
339
  // Push all commits
292
340
  console.log(`\n${'='.repeat(60)}`);
293
341
  console.log('šŸ“¤ Pushing all commits...\n');
294
- await push(branchName);
342
+ try {
343
+ await push(branchName);
344
+ console.log('āœ… Commits pushed successfully\n');
345
+ }
346
+ catch (error) {
347
+ console.error('āŒ Failed to push commits:', error);
348
+ throw new Error(`Failed to push branch ${branchName}: ${error instanceof Error ? error.message : String(error)}`);
349
+ }
295
350
  // Create PR
296
351
  console.log('šŸ“‹ Creating pull request...\n');
297
- await createQualityPR(processedBatches, totalFixes, totalCost, totalInputTokens, totalOutputTokens);
352
+ try {
353
+ await createQualityPR(processedBatches, totalFixes, totalCost, totalInputTokens, totalOutputTokens, totalCacheCreationTokens, totalCacheReadTokens, baseBranch);
354
+ }
355
+ catch (error) {
356
+ console.error('āŒ Failed to create pull request:', error);
357
+ console.log(`\nā„¹ļø Changes have been pushed to branch: ${branchName}`);
358
+ console.log(` You can manually create a PR from this branch.`);
359
+ throw new Error(`Failed to create PR: ${error instanceof Error ? error.message : String(error)}`);
360
+ }
298
361
  console.log('\nāœ… Quality analysis complete!');
299
362
  console.log(`šŸ“Š Processed ${processedBatches.length}/${batches.length} batches`);
300
363
  console.log(`šŸ”§ Applied ${totalFixes} fixes`);
@@ -1 +1 @@
1
- {"version":3,"file":"analyse.js","sourceRoot":"","sources":["../../../kosuke/commands/analyse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyse.js","sourceRoot":"","sources":["../../../kosuke/commands/analyse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Lint command - Use Claude to fix linting errors
3
+ *
4
+ * Strategy: Run linter, give errors to Claude, let it fix them
5
+ */
6
+ interface LintOptions {
7
+ dryRun?: boolean;
8
+ noPr?: boolean;
9
+ }
10
+ /**
11
+ * Main lint command
12
+ */
13
+ export declare function lintCommand(options?: LintOptions): Promise<void>;
14
+ export {};
15
+ //# sourceMappingURL=lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/lint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAgFD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqI1E"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Lint command - Use Claude to fix linting errors
3
+ *
4
+ * Strategy: Run linter, give errors to Claude, let it fix them
5
+ */
6
+ import { query } from '@anthropic-ai/claude-agent-sdk';
7
+ import { runLint } from '../utils/validator.js';
8
+ import { commit, push, createBranch, getCurrentRepo } from '../utils/git.js';
9
+ import { createPullRequest } from '../utils/github.js';
10
+ /**
11
+ * Run Claude-powered lint fixing
12
+ */
13
+ async function fixLintErrors(lintErrors) {
14
+ console.log('\nšŸ¤– Using Claude to fix linting errors...\n');
15
+ const workspaceRoot = process.cwd();
16
+ // System prompt
17
+ const systemPrompt = `You are a code quality expert specialized in fixing linting errors.
18
+
19
+ Your task is to analyze linting errors and fix them according to the project's linting rules.
20
+
21
+ IMPORTANT: Focus ONLY on fixing the specific linting errors provided. Do not make unnecessary changes.`;
22
+ // User prompt
23
+ const promptText = `The following linting errors need to be fixed:
24
+
25
+ \`\`\`
26
+ ${lintErrors}
27
+ \`\`\`
28
+
29
+ **Your task:**
30
+ 1. Analyze each linting error carefully
31
+ 2. Read the files that have errors
32
+ 3. Fix each error according to the linting rules
33
+ 4. Make minimal changes - only fix what's broken
34
+ 5. Ensure your fixes don't introduce new issues
35
+
36
+ Start by reading the files with errors and fixing them one by one.`;
37
+ const options = {
38
+ model: 'claude-sonnet-4-5',
39
+ systemPrompt,
40
+ maxTurns: 20,
41
+ cwd: workspaceRoot,
42
+ permissionMode: 'bypassPermissions',
43
+ };
44
+ try {
45
+ const responseStream = query({ prompt: promptText, options });
46
+ let fixCount = 0;
47
+ // Display Claude's actions
48
+ for await (const message of responseStream) {
49
+ if (message.type === 'assistant') {
50
+ const content = message.message.content;
51
+ for (const block of content) {
52
+ if (block.type === 'text' && block.text.trim()) {
53
+ const text = block.text.trim();
54
+ // Show key insights
55
+ if (text.includes('fix') ||
56
+ text.includes('error') ||
57
+ text.includes('āœ…') ||
58
+ text.includes('āŒ')) {
59
+ console.log(` šŸ’­ ${text}`);
60
+ }
61
+ }
62
+ else if (block.type === 'tool_use') {
63
+ if (block.name === 'write' || block.name === 'search_replace') {
64
+ fixCount++;
65
+ console.log(` šŸ”§ Applying fix ${fixCount}...`);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ console.log(`\n✨ Claude completed (${fixCount} fixes applied)`);
72
+ return fixCount > 0;
73
+ }
74
+ catch (error) {
75
+ console.error('\nāŒ Error during Claude fixing:', error);
76
+ return false;
77
+ }
78
+ }
79
+ /**
80
+ * Main lint command
81
+ */
82
+ export async function lintCommand(options = {}) {
83
+ console.log('šŸš€ Starting Kosuke Lint Fix...\n');
84
+ try {
85
+ // Validate environment for PR creation
86
+ if (!options.noPr) {
87
+ if (!process.env.ANTHROPIC_API_KEY) {
88
+ throw new Error('ANTHROPIC_API_KEY environment variable is required');
89
+ }
90
+ if (!process.env.GITHUB_TOKEN) {
91
+ throw new Error('GITHUB_TOKEN environment variable is required');
92
+ }
93
+ }
94
+ // Run initial lint check
95
+ console.log('šŸ” Running linter...\n');
96
+ let lintResult = await runLint();
97
+ if (lintResult.success) {
98
+ console.log('āœ… No linting errors found! Code is clean.\n');
99
+ return;
100
+ }
101
+ console.log('āŒ Linting errors found:\n');
102
+ console.log(lintResult.error);
103
+ if (options.dryRun) {
104
+ console.log('\nšŸ” DRY RUN MODE: Not fixing errors.');
105
+ return;
106
+ }
107
+ // Create working branch
108
+ let branchName = '';
109
+ if (!options.noPr) {
110
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-').split('.')[0];
111
+ branchName = `fix/kosuke-lint-${timestamp}`;
112
+ console.log(`\n🌿 Creating branch: ${branchName}\n`);
113
+ await createBranch(branchName);
114
+ }
115
+ // Use Claude to fix errors (up to 3 attempts)
116
+ let attemptCount = 0;
117
+ const maxAttempts = 3;
118
+ while (!lintResult.success && attemptCount < maxAttempts) {
119
+ attemptCount++;
120
+ console.log(`\n${'='.repeat(60)}`);
121
+ console.log(`šŸ”„ Fix Attempt ${attemptCount}/${maxAttempts}`);
122
+ console.log(`${'='.repeat(60)}`);
123
+ const fixApplied = await fixLintErrors(lintResult.error || '');
124
+ if (!fixApplied) {
125
+ console.log('\nāš ļø No fixes were applied by Claude');
126
+ break;
127
+ }
128
+ // Verify fixes by running lint again
129
+ console.log('\nšŸ” Verifying fixes...\n');
130
+ lintResult = await runLint();
131
+ if (lintResult.success) {
132
+ console.log('āœ… All linting errors fixed!\n');
133
+ break;
134
+ }
135
+ else {
136
+ console.log(`\nāš ļø Some errors remain (${lintResult.error?.split('\n').length || 0} lines):`);
137
+ console.log(lintResult.error);
138
+ }
139
+ }
140
+ // Check final result
141
+ if (!lintResult.success) {
142
+ console.error('\nāŒ Could not fix all linting errors after 3 attempts');
143
+ console.log('\nRemaining errors:');
144
+ console.log(lintResult.error);
145
+ throw new Error('Linting errors remain after maximum attempts');
146
+ }
147
+ // Commit and push if not in no-PR mode
148
+ if (!options.noPr && branchName) {
149
+ try {
150
+ console.log('\nšŸ“ Committing fixes...\n');
151
+ await commit('chore: fix linting errors');
152
+ console.log('āœ… Changes committed\n');
153
+ console.log('šŸ“¤ Pushing changes...\n');
154
+ await push(branchName);
155
+ console.log('āœ… Changes pushed\n');
156
+ // Create PR
157
+ console.log('šŸ“‹ Creating pull request...\n');
158
+ const { owner, repo } = await getCurrentRepo();
159
+ const prBody = `## šŸ”§ Automated Lint Fixes
160
+
161
+ This PR contains automated fixes for linting errors.
162
+
163
+ ### šŸ“ˆ Summary
164
+ - **Fix Attempts**: ${attemptCount}
165
+ - **Status**: āœ… All errors fixed
166
+
167
+ ### āœ… Validation
168
+ - Linting: **PASSED**
169
+
170
+ ---
171
+
172
+ šŸ¤– *Generated by Kosuke CLI (\`kosuke lint\`)*`;
173
+ const prUrl = await createPullRequest({
174
+ owner,
175
+ repo,
176
+ title: `chore: Fix linting errors`,
177
+ head: branchName,
178
+ base: 'main',
179
+ body: prBody,
180
+ });
181
+ console.log(`āœ… Pull request created: ${prUrl}`);
182
+ }
183
+ catch (error) {
184
+ console.error('\nāŒ Failed to create PR:', error);
185
+ if (branchName) {
186
+ console.log(`\nā„¹ļø Changes may be on branch: ${branchName}`);
187
+ console.log(` You can manually create a PR from this branch.`);
188
+ }
189
+ throw error;
190
+ }
191
+ }
192
+ console.log('\nāœ… Lint fixing complete!');
193
+ }
194
+ catch (error) {
195
+ console.error('\nāŒ Lint fixing failed:', error);
196
+ throw error;
197
+ }
198
+ }
199
+ //# sourceMappingURL=lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../kosuke/commands/lint.ts"],"names":[],"mappings":"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"}
@@ -26,4 +26,8 @@ export declare function push(branchName: string): Promise<void>;
26
26
  * Reset working directory to HEAD
27
27
  */
28
28
  export declare function reset(): Promise<void>;
29
+ /**
30
+ * Get the current branch name
31
+ */
32
+ export declare function getCurrentBranch(): Promise<string>;
29
33
  //# 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;AAI3C;;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,CAG3D;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C"}
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;AA0C3C;;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,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGxD"}
@@ -3,6 +3,38 @@
3
3
  */
4
4
  import simpleGit from 'simple-git';
5
5
  const git = simpleGit();
6
+ let gitIdentityConfigured = false;
7
+ /**
8
+ * Configure git identity for commits (required in CI environments)
9
+ */
10
+ async function ensureGitIdentity() {
11
+ if (gitIdentityConfigured) {
12
+ return;
13
+ }
14
+ try {
15
+ // Check if git identity is already configured
16
+ const userName = await git.raw(['config', 'user.name']).catch(() => '');
17
+ const userEmail = await git.raw(['config', 'user.email']).catch(() => '');
18
+ if (userName.trim() && userEmail.trim()) {
19
+ gitIdentityConfigured = true;
20
+ return;
21
+ }
22
+ // Configure git identity using environment variables or defaults
23
+ const name = process.env.GIT_AUTHOR_NAME ||
24
+ process.env.GIT_COMMITTER_NAME ||
25
+ 'kosuke-bot';
26
+ const email = process.env.GIT_AUTHOR_EMAIL ||
27
+ process.env.GIT_COMMITTER_EMAIL ||
28
+ 'kosuke-bot@users.noreply.github.com';
29
+ await git.addConfig('user.name', name, false, 'local');
30
+ await git.addConfig('user.email', email, false, 'local');
31
+ console.log(`āœ… Configured git identity: ${name} <${email}>`);
32
+ gitIdentityConfigured = true;
33
+ }
34
+ catch (error) {
35
+ console.warn('āš ļø Could not configure git identity, commits may fail:', error);
36
+ }
37
+ }
6
38
  /**
7
39
  * Get current repository info from git remote
8
40
  */
@@ -54,6 +86,7 @@ export async function createBranch(branchName, baseBranch = 'main') {
54
86
  * Commit changes with a message
55
87
  */
56
88
  export async function commit(message) {
89
+ await ensureGitIdentity();
57
90
  await git.add(['-A']);
58
91
  await git.commit(message, ['--no-verify']);
59
92
  }
@@ -69,4 +102,11 @@ export async function push(branchName) {
69
102
  export async function reset() {
70
103
  await git.reset(['--hard', 'HEAD']);
71
104
  }
105
+ /**
106
+ * Get the current branch name
107
+ */
108
+ export async function getCurrentBranch() {
109
+ const branch = await git.revparse(['--abbrev-ref', 'HEAD']);
110
+ return branch.trim();
111
+ }
72
112
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,SAA6B,MAAM,YAAY,CAAC;AAGvD,MAAM,GAAG,GAAc,SAAS,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,iDAAiD;IACjD,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC;QAC/C,OAAO,KAAK,KAAK,YAAY,IAAI,IAAI,KAAK,iBAAiB,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAkB,EAAE,aAAqB,MAAM;IAChF,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAErC,gCAAgC;IAChC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IAED,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAe;IAC1C,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtB,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAkB;IAC3C,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../kosuke/utils/git.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kosuke-ai/cli",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Kosuke CLI - Development automation tool for syncing rules and analyzing code quality",
5
5
  "keywords": [
6
6
  "CLI",