@kosuke-ai/cli 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +51 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/kosuke/commands/analyse.d.ts.map +1 -1
  6. package/dist/kosuke/commands/analyse.js +52 -94
  7. package/dist/kosuke/commands/analyse.js.map +1 -1
  8. package/dist/kosuke/commands/getcode.d.ts +29 -0
  9. package/dist/kosuke/commands/getcode.d.ts.map +1 -0
  10. package/dist/kosuke/commands/getcode.js +204 -0
  11. package/dist/kosuke/commands/getcode.js.map +1 -0
  12. package/dist/kosuke/commands/lint.d.ts +5 -0
  13. package/dist/kosuke/commands/lint.d.ts.map +1 -1
  14. package/dist/kosuke/commands/lint.js +21 -39
  15. package/dist/kosuke/commands/lint.js.map +1 -1
  16. package/dist/kosuke/commands/requirements.d.ts.map +1 -1
  17. package/dist/kosuke/commands/requirements.js +1 -18
  18. package/dist/kosuke/commands/requirements.js.map +1 -1
  19. package/dist/kosuke/commands/sync-rules.d.ts.map +1 -1
  20. package/dist/kosuke/commands/sync-rules.js +56 -48
  21. package/dist/kosuke/commands/sync-rules.js.map +1 -1
  22. package/dist/kosuke/commands/tickets.d.ts +24 -0
  23. package/dist/kosuke/commands/tickets.d.ts.map +1 -0
  24. package/dist/kosuke/commands/tickets.js +298 -0
  25. package/dist/kosuke/commands/tickets.js.map +1 -0
  26. package/dist/kosuke/types.d.ts +50 -0
  27. package/dist/kosuke/types.d.ts.map +1 -1
  28. package/dist/kosuke/utils/claude-agent.d.ts +57 -0
  29. package/dist/kosuke/utils/claude-agent.d.ts.map +1 -0
  30. package/dist/kosuke/utils/claude-agent.js +177 -0
  31. package/dist/kosuke/utils/claude-agent.js.map +1 -0
  32. package/dist/kosuke/utils/repository-manager.d.ts +13 -0
  33. package/dist/kosuke/utils/repository-manager.d.ts.map +1 -0
  34. package/dist/kosuke/utils/repository-manager.js +94 -0
  35. package/dist/kosuke/utils/repository-manager.js.map +1 -0
  36. package/dist/kosuke/utils/repository-resolver.d.ts +12 -0
  37. package/dist/kosuke/utils/repository-resolver.d.ts.map +1 -0
  38. package/dist/kosuke/utils/repository-resolver.js +186 -0
  39. package/dist/kosuke/utils/repository-resolver.js.map +1 -0
  40. package/dist/kosuke/utils/validator.d.ts +19 -7
  41. package/dist/kosuke/utils/validator.d.ts.map +1 -1
  42. package/dist/kosuke/utils/validator.js +103 -16
  43. package/dist/kosuke/utils/validator.js.map +1 -1
  44. package/dist/lib.d.ts +25 -4
  45. package/dist/lib.d.ts.map +1 -1
  46. package/dist/lib.js +22 -3
  47. package/dist/lib.js.map +1 -1
  48. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -7,12 +7,16 @@
7
7
  * analyse Analyze and fix code quality issues
8
8
  * lint Fix linting errors with Claude AI
9
9
  * requirements Interactive requirements gathering
10
+ * getcode Explore GitHub repositories and fetch code
11
+ * tickets Generate implementation tickets from requirements
10
12
  *
11
13
  * Usage:
12
14
  * bun run kosuke sync-rules
13
15
  * bun run kosuke analyse
14
16
  * bun run kosuke lint
15
17
  * bun run kosuke requirements
18
+ * bun run kosuke getcode "query"
19
+ * bun run kosuke tickets
16
20
  *
17
21
  * Environment Variables:
18
22
  * ANTHROPIC_API_KEY - Required for Claude API
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -7,12 +7,16 @@
7
7
  * analyse Analyze and fix code quality issues
8
8
  * lint Fix linting errors with Claude AI
9
9
  * requirements Interactive requirements gathering
10
+ * getcode Explore GitHub repositories and fetch code
11
+ * tickets Generate implementation tickets from requirements
10
12
  *
11
13
  * Usage:
12
14
  * bun run kosuke sync-rules
13
15
  * bun run kosuke analyse
14
16
  * bun run kosuke lint
15
17
  * bun run kosuke requirements
18
+ * bun run kosuke getcode "query"
19
+ * bun run kosuke tickets
16
20
  *
17
21
  * Environment Variables:
18
22
  * ANTHROPIC_API_KEY - Required for Claude API
@@ -23,6 +27,8 @@ import { syncRulesCommand } from './kosuke/commands/sync-rules.js';
23
27
  import { analyseCommand } from './kosuke/commands/analyse.js';
24
28
  import { lintCommand } from './kosuke/commands/lint.js';
25
29
  import { requirementsCommand } from './kosuke/commands/requirements.js';
30
+ import { getCodeCommand, parseGetCodeArgs } from './kosuke/commands/getcode.js';
31
+ import { ticketsCommand } from './kosuke/commands/tickets.js';
26
32
  async function main() {
27
33
  const args = process.argv.slice(2);
28
34
  const command = args[0];
@@ -66,6 +72,20 @@ async function main() {
66
72
  await requirementsCommand();
67
73
  break;
68
74
  }
75
+ case 'getcode': {
76
+ const options = parseGetCodeArgs(args);
77
+ await getCodeCommand(options);
78
+ break;
79
+ }
80
+ case 'tickets': {
81
+ const options = {
82
+ path: args.find((arg) => arg.startsWith('--path='))?.split('=')[1],
83
+ output: args.find((arg) => arg.startsWith('--output='))?.split('=')[1],
84
+ template: args.find((arg) => arg.startsWith('--template='))?.split('=')[1],
85
+ };
86
+ await ticketsCommand(options);
87
+ break;
88
+ }
69
89
  default:
70
90
  console.error(`āŒ Unknown command: ${command}\n`);
71
91
  showHelp();
@@ -136,6 +156,37 @@ COMMANDS:
136
156
  Examples:
137
157
  kosuke requirements
138
158
 
159
+ getcode [repo] "<query>" [options]
160
+ Explore GitHub repositories and fetch code implementations
161
+ Uses Claude Code Agent to find and explain code
162
+
163
+ Options:
164
+ --template, -t Use kosuke-template repository
165
+ --output=<file> Save output to file
166
+
167
+ Examples:
168
+ kosuke getcode "facebook/react" "How does reconciliation work?"
169
+ kosuke getcode "How is routing implemented in Next.js?"
170
+ kosuke getcode --template "What authentication system is used?"
171
+ kosuke getcode -t "Show me pagination examples"
172
+
173
+ tickets [options]
174
+ Generate implementation tickets from requirements document
175
+ Analyzes requirements and creates structured tickets in three phases:
176
+ 1. Schema tickets (database design)
177
+ 2. Backend tickets (API, services, business logic)
178
+ 3. Frontend tickets (pages, components, UI)
179
+
180
+ Options:
181
+ --path=<file> Path to requirements document (default: docs.md)
182
+ --output=<file> Output file for tickets (default: tickets.json)
183
+ --template=<repo> Custom template repository (default: kosuke-template)
184
+
185
+ Examples:
186
+ kosuke tickets # Use docs.md
187
+ kosuke tickets --path=requirements.md # Custom requirements file
188
+ kosuke tickets --output=my-tickets.json # Custom output file
189
+
139
190
  WORKFLOW:
140
191
 
141
192
  By default, all commands apply changes locally without git operations.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;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;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChF,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,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/E,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,OAAO,GAAG;oBACd,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAChF,CAAC;gBACF,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/E,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,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAChF,CAAC;gBACF,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,mBAAmB,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACtE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC3E,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGb,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;AASH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AA4R9D;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkFhF"}
1
+ {"version":3,"file":"analyse.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/analyse.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AA0O9D;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkFhF"}
@@ -7,31 +7,14 @@
7
7
  * - Validate after each batch, commit locally
8
8
  * - If --pr flag: Push all commits and create single PR
9
9
  */
10
- import { query } from '@anthropic-ai/claude-agent-sdk';
11
10
  import { readFileSync } from 'fs';
12
11
  import { join } from 'path';
13
12
  import { discoverFiles } from '../utils/file-discovery.js';
14
13
  import { createBatches } from '../utils/batch-creator.js';
15
14
  import { runLint, runTypecheck } from '../utils/validator.js';
16
15
  import { runWithPRBatched } from '../utils/pr-orchestrator.js';
17
- /**
18
- * Calculate cost based on Claude Sonnet 4.5 pricing
19
- * - $3 per million input tokens
20
- * - $15 per million output tokens
21
- * - $3.75 per million cache creation tokens (input + 25% overhead)
22
- * - $0.30 per million cache read tokens (90% discount from input)
23
- */
24
- function calculateCost(inputTokens, outputTokens, cacheCreationTokens = 0, cacheReadTokens = 0) {
25
- const INPUT_COST_PER_MILLION = 3.0;
26
- const OUTPUT_COST_PER_MILLION = 15.0;
27
- const CACHE_CREATION_COST_PER_MILLION = 3.75;
28
- const CACHE_READ_COST_PER_MILLION = 0.3;
29
- const inputCost = (inputTokens / 1000000) * INPUT_COST_PER_MILLION;
30
- const outputCost = (outputTokens / 1000000) * OUTPUT_COST_PER_MILLION;
31
- const cacheCreationCost = (cacheCreationTokens / 1000000) * CACHE_CREATION_COST_PER_MILLION;
32
- const cacheReadCost = (cacheReadTokens / 1000000) * CACHE_READ_COST_PER_MILLION;
33
- return inputCost + outputCost + cacheCreationCost + cacheReadCost;
34
- }
16
+ import { runAgent, formatCostBreakdown } from '../utils/claude-agent.js';
17
+ import { fixLintErrors } from './lint.js';
35
18
  /**
36
19
  * Run Claude analysis on a single batch
37
20
  */
@@ -42,15 +25,18 @@ async function analyzeBatch(batch, _claudeMdRules) {
42
25
  console.log(`${'='.repeat(60)}\n`);
43
26
  const workspaceRoot = process.cwd();
44
27
  // System prompt: Just point to CLAUDE.md
45
- const systemPrompt = `You are a code quality analyzer for this repository.
28
+ const systemPrompt = `You are a code quality analyzer and fixer for this repository.
46
29
 
47
- Your task is to analyze specific files for code quality issues and fix them according to the rules in CLAUDE.md.
30
+ Your task is to analyze specific files for code quality issues and IMMEDIATELY FIX them according to the rules in CLAUDE.md.
48
31
 
49
- IMPORTANT: You will ONLY be given access to a specific batch of files. Do NOT explore the entire repository.
32
+ CRITICAL REQUIREMENTS:
33
+ - You MUST use the search_replace or write tools to fix ALL violations you find
34
+ - Simply identifying issues without fixing them is NOT acceptable
35
+ - You will ONLY be given access to a specific batch of files. Do NOT explore the entire repository.
50
36
 
51
37
  The rules you must follow are provided in CLAUDE.md.`;
52
38
  // User prompt: Simple and direct
53
- const promptText = `Analyze these ${batch.files.length} files for code quality issues:
39
+ const promptText = `Analyze and FIX code quality issues in these ${batch.files.length} files:
54
40
 
55
41
  ${batch.files.map((f) => `- ${f}`).join('\n')}
56
42
 
@@ -58,61 +44,25 @@ ${batch.files.map((f) => `- ${f}`).join('\n')}
58
44
  1. Read CLAUDE.md to understand all the rules and best practices
59
45
  2. Read ONLY the files listed above (these are the files in this batch)
60
46
  3. Check each file against the CLAUDE.md rules
61
- 4. Fix any violations you find
47
+ 4. **IMMEDIATELY FIX any violations you find using search_replace or write tools**
62
48
  5. Do NOT explore or modify other files outside this batch
63
49
 
50
+ **IMPORTANT:**
51
+ - Don't just describe issues - FIX them!
52
+ - Use search_replace for targeted fixes
53
+ - Use write for complete file rewrites if needed
54
+ - Every violation you identify MUST be fixed
55
+
64
56
  **Rules reference:** ${join(workspaceRoot, 'CLAUDE.md')}
65
57
 
66
- Start by reading CLAUDE.md, then analyze the batch files.`;
67
- const options = {
68
- model: 'claude-sonnet-4-5',
69
- systemPrompt,
70
- maxTurns: 15,
71
- cwd: workspaceRoot,
72
- permissionMode: 'bypassPermissions',
73
- };
58
+ Start by reading CLAUDE.md, then analyze and fix the batch files.`;
74
59
  try {
75
- const responseStream = query({ prompt: promptText, options });
76
- let fixCount = 0;
77
- let inputTokens = 0;
78
- let outputTokens = 0;
79
- let cacheCreationTokens = 0;
80
- let cacheReadTokens = 0;
81
- // Display Claude's reasoning and actions
82
- for await (const message of responseStream) {
83
- if (message.type === 'assistant') {
84
- const content = message.message.content;
85
- for (const block of content) {
86
- if (block.type === 'text' && block.text.trim()) {
87
- // Only show key insights, not every detail
88
- const text = block.text.trim();
89
- if (text.includes('violation') ||
90
- text.includes('fix') ||
91
- text.includes('issue') ||
92
- text.includes('āœ…') ||
93
- text.includes('āŒ')) {
94
- console.log(` šŸ’­ ${text}`);
95
- }
96
- }
97
- else if (block.type === 'tool_use') {
98
- if (block.name === 'write' || block.name === 'search_replace') {
99
- fixCount++;
100
- console.log(` šŸ”§ Applying fix ${fixCount}...`);
101
- }
102
- }
103
- }
104
- }
105
- // Track token usage from the response
106
- if (message.type === 'result' && message.subtype === 'success') {
107
- // Capture all token types including cache-related tokens
108
- inputTokens += message.usage.input_tokens || 0;
109
- outputTokens += message.usage.output_tokens || 0;
110
- cacheCreationTokens += message.usage.cache_creation_input_tokens || 0;
111
- cacheReadTokens += message.usage.cache_read_input_tokens || 0;
112
- }
113
- }
114
- // Calculate cost for this batch
115
- const cost = calculateCost(inputTokens, outputTokens, cacheCreationTokens, cacheReadTokens);
60
+ const result = await runAgent(promptText, {
61
+ systemPrompt,
62
+ maxTurns: 15,
63
+ cwd: workspaceRoot,
64
+ verbosity: 'normal',
65
+ });
116
66
  // Return placeholder fixes (real fix tracking would require parsing Claude's edits)
117
67
  const fixes = batch.files.map((file) => ({
118
68
  file,
@@ -120,26 +70,16 @@ Start by reading CLAUDE.md, then analyze the batch files.`;
120
70
  description: 'Quality improvements',
121
71
  linesChanged: 0,
122
72
  }));
123
- console.log(`\n ✨ Batch analysis complete (${fixCount} fixes applied)`);
124
- // Build detailed cost breakdown
125
- const tokenBreakdown = [];
126
- if (inputTokens > 0)
127
- tokenBreakdown.push(`${inputTokens.toLocaleString()} input`);
128
- if (outputTokens > 0)
129
- tokenBreakdown.push(`${outputTokens.toLocaleString()} output`);
130
- if (cacheCreationTokens > 0)
131
- tokenBreakdown.push(`${cacheCreationTokens.toLocaleString()} cache write`);
132
- if (cacheReadTokens > 0)
133
- tokenBreakdown.push(`${cacheReadTokens.toLocaleString()} cache read`);
134
- console.log(` šŸ’° Cost: $${cost.toFixed(4)} (${tokenBreakdown.join(' + ')} tokens)`);
73
+ console.log(`\n ✨ Batch analysis complete (${result.fixCount} fixes applied)`);
74
+ console.log(` šŸ’° Cost: ${formatCostBreakdown(result)}`);
135
75
  return {
136
76
  batch,
137
- fixes: fixCount > 0 ? fixes : [],
138
- inputTokens,
139
- outputTokens,
140
- cacheCreationTokens,
141
- cacheReadTokens,
142
- cost,
77
+ fixes: result.fixCount > 0 ? fixes : [],
78
+ inputTokens: result.tokensUsed.input,
79
+ outputTokens: result.tokensUsed.output,
80
+ cacheCreationTokens: result.tokensUsed.cacheCreation,
81
+ cacheReadTokens: result.tokensUsed.cacheRead,
82
+ cost: result.cost,
143
83
  skipped: false,
144
84
  };
145
85
  }
@@ -150,13 +90,31 @@ Start by reading CLAUDE.md, then analyze the batch files.`;
150
90
  }
151
91
  /**
152
92
  * Validate fixes with lint and typecheck
93
+ * If lint fails, use Claude to fix the errors automatically
153
94
  */
154
95
  async function validateBatch() {
155
96
  console.log(` šŸ”§ Running validation...`);
156
- const lintResult = await runLint();
97
+ let lintResult = await runLint();
157
98
  if (!lintResult.success) {
158
- console.error(` āŒ Linting failed:\n${lintResult.error}`);
159
- return false;
99
+ console.log(` āš ļø Linting errors detected, attempting to fix...`);
100
+ // Try to fix lint errors with Claude (max 2 attempts)
101
+ let attempts = 0;
102
+ const maxAttempts = 2;
103
+ while (!lintResult.success && attempts < maxAttempts) {
104
+ attempts++;
105
+ console.log(`\n šŸ”„ Lint fix attempt ${attempts}/${maxAttempts}`);
106
+ const fixApplied = await fixLintErrors(lintResult.error || '');
107
+ if (!fixApplied) {
108
+ console.log(` āš ļø No fixes were applied by Claude`);
109
+ break;
110
+ }
111
+ // Re-run lint to check if errors are fixed
112
+ lintResult = await runLint();
113
+ }
114
+ if (!lintResult.success) {
115
+ console.error(` āŒ Linting failed after ${attempts} attempts:\n${lintResult.error}`);
116
+ return false;
117
+ }
160
118
  }
161
119
  console.log(` āœ… Lint passed`);
162
120
  const typecheckResult = await runTypecheck();
@@ -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,29 @@
1
+ /**
2
+ * GetCode command - Explore GitHub repositories and fetch code implementations
3
+ *
4
+ * This command uses Claude Code Agent to explore any GitHub repository and
5
+ * fetch code implementations based on natural language queries.
6
+ *
7
+ * Usage:
8
+ * kosuke getcode "owner/repo" "query" # Explicit repository
9
+ * kosuke getcode "query" # Infer from query
10
+ * kosuke getcode --template "query" # Use kosuke-template
11
+ */
12
+ import type { GetCodeOptions, CodeExplorationResult } from '../types.js';
13
+ /**
14
+ * Parse arguments for getcode command
15
+ * Handles multiple argument patterns:
16
+ * kosuke getcode "query"
17
+ * kosuke getcode "owner/repo" "query"
18
+ * kosuke getcode --template "query"
19
+ */
20
+ export declare function parseGetCodeArgs(args: string[]): GetCodeOptions;
21
+ /**
22
+ * Core getcode logic (can be used programmatically by other commands)
23
+ */
24
+ export declare function getCodeCore(options: GetCodeOptions): Promise<CodeExplorationResult>;
25
+ /**
26
+ * Main getcode command
27
+ */
28
+ export declare function getCodeCommand(options: GetCodeOptions): Promise<void>;
29
+ //# sourceMappingURL=getcode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getcode.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/getcode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAsC/D;AAkDD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoCzF;AAsCD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC3E"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * GetCode command - Explore GitHub repositories and fetch code implementations
3
+ *
4
+ * This command uses Claude Code Agent to explore any GitHub repository and
5
+ * fetch code implementations based on natural language queries.
6
+ *
7
+ * Usage:
8
+ * kosuke getcode "owner/repo" "query" # Explicit repository
9
+ * kosuke getcode "query" # Infer from query
10
+ * kosuke getcode --template "query" # Use kosuke-template
11
+ */
12
+ import { writeFileSync } from 'fs';
13
+ import { resolveRepository } from '../utils/repository-resolver.js';
14
+ import { ensureRepoReady } from '../utils/repository-manager.js';
15
+ import { runAgent, formatCostBreakdown } from '../utils/claude-agent.js';
16
+ /**
17
+ * Parse arguments for getcode command
18
+ * Handles multiple argument patterns:
19
+ * kosuke getcode "query"
20
+ * kosuke getcode "owner/repo" "query"
21
+ * kosuke getcode --template "query"
22
+ */
23
+ export function parseGetCodeArgs(args) {
24
+ const flags = {
25
+ template: args.includes('--template') || args.includes('-t'),
26
+ output: args.find((arg) => arg.startsWith('--output='))?.split('=')[1],
27
+ };
28
+ // Remove flags from args to get positional arguments
29
+ const positionalArgs = args.filter((arg) => !arg.startsWith('--') && !arg.startsWith('-') && arg !== 'getcode');
30
+ // Determine repo and query based on number of positional args
31
+ let repo;
32
+ let query;
33
+ if (positionalArgs.length === 0) {
34
+ throw new Error('Missing query argument.\n' +
35
+ 'Usage:\n' +
36
+ ' kosuke getcode "query"\n' +
37
+ ' kosuke getcode "owner/repo" "query"\n' +
38
+ ' kosuke getcode --template "query"');
39
+ }
40
+ else if (positionalArgs.length === 1) {
41
+ // Single argument: treat as query
42
+ query = positionalArgs[0];
43
+ }
44
+ else {
45
+ // Two or more arguments: first is repo, second is query
46
+ repo = positionalArgs[0];
47
+ query = positionalArgs[1];
48
+ }
49
+ return {
50
+ repo,
51
+ query,
52
+ template: flags.template,
53
+ output: flags.output,
54
+ };
55
+ }
56
+ /**
57
+ * Build system prompt for code exploration
58
+ */
59
+ function buildExplorationSystemPrompt(repoName, repoPath) {
60
+ return `You are an expert code exploration agent analyzing the repository: ${repoName}
61
+
62
+ **Your Purpose:**
63
+ Users will ask you to find reference implementations they can learn from and adapt for
64
+ their own projects. Your job is to provide COMPLETE, USABLE code examples with full context.
65
+
66
+ **When a user asks about a feature/implementation:**
67
+
68
+ 1. **Locate ALL relevant files** - Find the complete implementation, not just snippets
69
+ 2. **Show COMPLETE code** - Include entire files or substantial sections, never truncate
70
+ 3. **Include dependencies** - Show imports, types, configurations, utilities used
71
+ 4. **Explain architecture** - How components connect, data flow, design patterns
72
+ 5. **Provide context** - Related files, setup requirements, usage examples
73
+
74
+ **Response Structure:**
75
+
76
+ 1. **Overview** - What you found and where it's located
77
+ 2. **Complete Code Snippets** - Full, copy-ready implementations with file paths
78
+ 3. **Implementation Details** - How it works, key patterns, important decisions
79
+ 4. **Dependencies & Setup** - Required imports, configurations, related utilities
80
+ 5. **Usage Examples** - How the feature is actually used in the codebase
81
+
82
+ **Critical Rules:**
83
+ - NEVER truncate code - show complete implementations
84
+ - ALWAYS include file paths in code blocks
85
+ - ALWAYS show imports and type definitions
86
+ - ALWAYS explain what makes this implementation work
87
+ - If a feature spans multiple files, show ALL of them
88
+ - Include configuration, setup, and initialization code
89
+
90
+ **Format all code snippets as:**
91
+ \`\`\`language
92
+ // Complete implementation from: path/to/file.ext
93
+ [full code here]
94
+ \`\`\`
95
+
96
+ Your goal: Provide reference implementations so complete that users can understand and
97
+ adapt them immediately.
98
+
99
+ **Repository Details:**
100
+ - Name: ${repoName}
101
+ - Local Path: ${repoPath}`;
102
+ }
103
+ /**
104
+ * Core getcode logic (can be used programmatically by other commands)
105
+ */
106
+ export async function getCodeCore(options) {
107
+ const { repo, query, template = false } = options;
108
+ console.log('šŸ” Resolving repository...');
109
+ // Resolve repository (infer if needed)
110
+ const repoIdentifier = await resolveRepository(repo, query, template, process.env.GITHUB_TOKEN);
111
+ console.log(` āœ… Repository: ${repoIdentifier}\n`);
112
+ // Ensure repository is ready (clone or update)
113
+ console.log('šŸ“„ Preparing repository...');
114
+ const repoInfo = await ensureRepoReady(repoIdentifier);
115
+ // Explore code with Claude
116
+ console.log(`šŸ¤– Exploring code with Claude...\n`);
117
+ const systemPrompt = buildExplorationSystemPrompt(repoIdentifier, repoInfo.localPath);
118
+ const agentResult = await runAgent(query, {
119
+ systemPrompt,
120
+ cwd: repoInfo.localPath,
121
+ maxTurns: 20,
122
+ verbosity: 'normal',
123
+ });
124
+ console.log(`\nāœ… Exploration complete!\n`);
125
+ return {
126
+ repository: repoIdentifier,
127
+ query,
128
+ response: agentResult.response,
129
+ filesReferenced: Array.from(agentResult.filesReferenced),
130
+ tokensUsed: agentResult.tokensUsed,
131
+ cost: agentResult.cost,
132
+ };
133
+ }
134
+ /**
135
+ * Format exploration result for display
136
+ */
137
+ function formatExplorationResult(result) {
138
+ const header = `# Code from ${result.repository}
139
+
140
+ **Query:** ${result.query}
141
+
142
+ ---
143
+
144
+ `;
145
+ const footer = `
146
+
147
+ ---
148
+
149
+ ## Token Usage
150
+
151
+ - **Input:** ${result.tokensUsed.input.toLocaleString()} tokens
152
+ - **Output:** ${result.tokensUsed.output.toLocaleString()} tokens${result.tokensUsed.cacheCreation > 0
153
+ ? `\n- **Cache Creation:** ${result.tokensUsed.cacheCreation.toLocaleString()} tokens`
154
+ : ''}${result.tokensUsed.cacheRead > 0
155
+ ? `\n- **Cache Read:** ${result.tokensUsed.cacheRead.toLocaleString()} tokens`
156
+ : ''}
157
+ - **Cost:** $${result.cost.toFixed(4)}
158
+
159
+ ${result.filesReferenced.length > 0 ? `**Files Referenced:** ${result.filesReferenced.join(', ')}` : ''}
160
+ `;
161
+ return header + result.response + footer;
162
+ }
163
+ /**
164
+ * Main getcode command
165
+ */
166
+ export async function getCodeCommand(options) {
167
+ console.log('šŸš€ Starting Code Exploration...\n');
168
+ try {
169
+ // Validate environment
170
+ if (!process.env.ANTHROPIC_API_KEY) {
171
+ throw new Error('ANTHROPIC_API_KEY environment variable is required');
172
+ }
173
+ // Execute core logic
174
+ const result = await getCodeCore(options);
175
+ // Display cost breakdown
176
+ const costBreakdown = formatCostBreakdown({
177
+ cost: result.cost,
178
+ tokensUsed: result.tokensUsed,
179
+ fixCount: 0,
180
+ response: '',
181
+ filesReferenced: new Set(result.filesReferenced),
182
+ });
183
+ console.log(`šŸ’° Cost: ${costBreakdown}\n`);
184
+ // Format and display result
185
+ const formattedOutput = formatExplorationResult(result);
186
+ // Save to file if --output flag is provided
187
+ if (options.output) {
188
+ writeFileSync(options.output, formattedOutput, 'utf-8');
189
+ console.log(`šŸ“„ Output saved to: ${options.output}\n`);
190
+ }
191
+ else {
192
+ // Display to stdout
193
+ console.log('─'.repeat(60));
194
+ console.log(formattedOutput);
195
+ console.log('─'.repeat(60));
196
+ }
197
+ console.log('\nāœ… Code exploration completed successfully!');
198
+ }
199
+ catch (error) {
200
+ console.error('\nāŒ Code exploration failed:', error);
201
+ throw error;
202
+ }
203
+ }
204
+ //# sourceMappingURL=getcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getcode.js","sourceRoot":"","sources":["../../../kosuke/commands/getcode.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,11 @@
4
4
  * Strategy: Run linter, give errors to Claude, let it fix them
5
5
  */
6
6
  import type { LintOptions } from '../types.js';
7
+ /**
8
+ * Run Claude-powered lint fixing
9
+ * Exported so other commands can use it
10
+ */
11
+ export declare function fixLintErrors(lintErrors: string): Promise<boolean>;
7
12
  /**
8
13
  * Main lint command
9
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/lint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAqJ/C;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD1E"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/lint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ/C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiDxE;AAkED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD1E"}