@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 +25 -14
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/kosuke/commands/analyse.d.ts.map +1 -1
- package/dist/kosuke/commands/analyse.js +86 -23
- package/dist/kosuke/commands/analyse.js.map +1 -1
- package/dist/kosuke/commands/lint.d.ts +15 -0
- package/dist/kosuke/commands/lint.d.ts.map +1 -0
- package/dist/kosuke/commands/lint.js +199 -0
- package/dist/kosuke/commands/lint.js.map +1 -0
- package/dist/kosuke/utils/git.d.ts +4 -0
- package/dist/kosuke/utils/git.d.ts.map +1 -1
- package/dist/kosuke/utils/git.js +40 -0
- package/dist/kosuke/utils/git.js.map +1 -1
- package/package.json +1 -1
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;
|
|
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;
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
- **š°
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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:
|
|
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
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAgB,MAAM,gCAAgC,CAAC;AACrE,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAYvD;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,WAAmB,EACnB,YAAoB,EACpB,sBAA8B,CAAC,EAC/B,kBAA0B,CAAC;IAE3B,MAAM,sBAAsB,GAAG,GAAG,CAAC;IACnC,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACrC,MAAM,+BAA+B,GAAG,IAAI,CAAC,CAAC,4BAA4B;IAC1E,MAAM,2BAA2B,GAAG,IAAI,CAAC,CAAC,+BAA+B;IAEzE,MAAM,SAAS,GAAG,CAAC,WAAW,GAAG,OAAS,CAAC,GAAG,sBAAsB,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,OAAS,CAAC,GAAG,uBAAuB,CAAC;IACxE,MAAM,iBAAiB,GAAG,CAAC,mBAAmB,GAAG,OAAS,CAAC,GAAG,+BAA+B,CAAC;IAC9F,MAAM,aAAa,GAAG,CAAC,eAAe,GAAG,OAAS,CAAC,GAAG,2BAA2B,CAAC;IAElF,OAAO,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,KAAY,EAAE,cAAsB;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEnC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEpC,yCAAyC;IACzC,MAAM,YAAY,GAAG;;;;;;qDAM8B,CAAC;IAEpD,iCAAiC;IACjC,MAAM,UAAU,GAAG,iBAAiB,KAAK,CAAC,KAAK,CAAC,MAAM;;EAEtD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;uBAStB,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;;0DAEG,CAAC;IAEzD,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,mBAAmB;QAC1B,YAAY;QACZ,QAAQ,EAAE,EAAE;QACZ,GAAG,EAAE,aAAa;QAClB,cAAc,EAAE,mBAAmB;KACpC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAE9D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,yCAAyC;QACzC,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC/C,2CAA2C;wBAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC/B,IACE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;4BAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;4BACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAClB,CAAC;4BACD,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;4BAC9D,QAAQ,EAAE,CAAC;4BACX,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,KAAK,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/D,4DAA4D;gBAC5D,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEtE,yDAAyD;gBACzD,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;gBAC/C,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;gBACjD,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;gBACtE,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAE5F,oFAAoF;QACpF,MAAM,KAAK,GAAU,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI;YACJ,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,sBAAsB;YACnC,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,QAAQ,iBAAiB,CAAC,CAAC;QAE1E,gCAAgC;QAChC,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,YAAY,GAAG,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACrF,IAAI,mBAAmB,GAAG,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACxG,IAAI,eAAe,GAAG,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAE/F,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEtF,OAAO;YACL,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAChC,WAAW;YACX,YAAY;YACZ,mBAAmB;YACnB,eAAe;YACf,IAAI;SACL,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa;IAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,MAAM,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,yBAAyB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEhC,MAAM,eAAe,GAAG,MAAM,YAAY,EAAE,CAAC;IAC7C,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,+BAA+B,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAgB,EAChB,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,iBAAyB,EACzB,wBAAgC,EAChC,oBAA4B,EAC5B,UAAkB;IAElB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC;IAE/C,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,sCAAsC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9D,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAA4B,CAC7B,CAAC;IAEF,MAAM,MAAM,GAAG;;;;;2BAKU,OAAO,CAAC,MAAM;wBACjB,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;uBACpD,UAAU;wBACT,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;;;sBAGtB,gBAAgB,CAAC,cAAc,EAAE;uBAChC,iBAAiB,CAAC,cAAc,EAAE;4BAC7B,wBAAwB,CAAC,cAAc,EAAE;2BAC1C,oBAAoB,CAAC,cAAc,EAAE;;;;;EAK9D,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,OAAO,KAAK,QAAQ,CAAC;SACrD,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;CAoBZ,CAAC;IAEA,mCAAmC;IACnC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC;QACpC,KAAK;QACL,IAAI;QACJ,KAAK,EAAE,yBAAyB,IAAI,GAAG;QACvC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAA0B,EAAE;IAC/D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAExD,IAAI,CAAC;QACH,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,uBAAuB;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,iBAAiB;QACjB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAE3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC;QAEtD,mCAAmC;QACnC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,8DAA8D;QAC9D,MAAM,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,IAAI,CAAC,CAAC;QAE/C,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,2BAA2B,SAAS,EAAE,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,IAAI,CAAC,CAAC;QACnD,MAAM,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE3C,8CAA8C;QAC9C,MAAM,gBAAgB,GAAY,EAAE,CAAC;QACrC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,wBAAwB,GAAG,CAAC,CAAC;QACjC,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAE7D,sCAAsC;YACtC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAExD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,mBAAmB;gBACnB,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;gBAEtC,IAAI,OAAO,EAAE,CAAC;oBACZ,eAAe;oBACf,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,iBAAiB,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,eAAe,CAAC,CAAC;wBAClF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;wBAEtC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC7B,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;wBAClC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;wBACzB,gBAAgB,IAAI,MAAM,CAAC,WAAW,CAAC;wBACvC,iBAAiB,IAAI,MAAM,CAAC,YAAY,CAAC;wBACzC,wBAAwB,IAAI,MAAM,CAAC,mBAAmB,CAAC;wBACvD,oBAAoB,IAAI,MAAM,CAAC,eAAe,CAAC;oBACjD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;wBACrD,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;wBAC5C,MAAM,KAAK,EAAE,CAAC;oBAChB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,8BAA8B;oBAC9B,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;oBAC/D,MAAM,KAAK,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,gCAAgC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,qDAAqD,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7G,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpH,CAAC;QAED,YAAY;QACZ,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,eAAe,CACnB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,CACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,6CAA6C,UAAU,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,gBAAgB,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,QAAQ,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -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;
|
|
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"}
|
package/dist/kosuke/utils/git.js
CHANGED
|
@@ -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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"}
|