@kosuke-ai/cli 0.0.56 → 1.0.0
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 +31 -448
- package/dist/commands/auth.js +117 -0
- package/dist/generated/commands/deploy/cancel.js +17 -0
- package/dist/generated/commands/deploy/messages.js +17 -0
- package/dist/generated/commands/deploy/run.js +60 -0
- package/dist/generated/commands/index.js +132 -0
- package/dist/generated/commands/preview/get.js +25 -0
- package/dist/generated/commands/preview/health.js +25 -0
- package/dist/generated/commands/preview/reset.js +27 -0
- package/dist/generated/commands/preview/share-create.js +36 -0
- package/dist/generated/commands/preview/share-delete.js +26 -0
- package/dist/generated/commands/preview/share-get.js +26 -0
- package/dist/generated/commands/preview/shared.js +17 -0
- package/dist/generated/commands/projects/create.js +37 -0
- package/dist/generated/commands/projects/delete.js +17 -0
- package/dist/generated/commands/projects/env-vars-add.js +21 -0
- package/dist/generated/commands/projects/env-vars-remove.js +21 -0
- package/dist/generated/commands/projects/get.js +17 -0
- package/dist/generated/commands/projects/list.js +15 -0
- package/dist/generated/commands/projects/services-add.js +87 -0
- package/dist/generated/commands/projects/services-list.js +18 -0
- package/dist/generated/commands/projects/services-remove.js +19 -0
- package/dist/generated/commands/projects/services-update.js +81 -0
- package/dist/generated/commands/projects/settings-get.js +18 -0
- package/dist/generated/commands/projects/settings-import.js +91 -0
- package/dist/generated/commands/projects/settings-update.js +77 -0
- package/dist/generated/commands/projects/skills.js +35 -0
- package/dist/generated/commands/projects/update.js +27 -0
- package/dist/generated/commands/sessions/activate.js +18 -0
- package/dist/generated/commands/sessions/checklist-generate.js +19 -0
- package/dist/generated/commands/sessions/checklist-get.js +19 -0
- package/dist/generated/commands/sessions/comments-add.js +63 -0
- package/dist/generated/commands/sessions/comments-delete.js +20 -0
- package/dist/generated/commands/sessions/comments-list.js +19 -0
- package/dist/generated/commands/sessions/comments-update.js +23 -0
- package/dist/generated/commands/sessions/create.js +126 -0
- package/dist/generated/commands/sessions/delete.js +18 -0
- package/dist/generated/commands/sessions/diff-files.js +19 -0
- package/dist/generated/commands/sessions/diff-patch.js +86 -0
- package/dist/generated/commands/sessions/edit-prompt.js +59 -0
- package/dist/generated/commands/sessions/files-get.js +27 -0
- package/dist/generated/commands/sessions/files-list.js +19 -0
- package/dist/generated/commands/sessions/files-write.js +41 -0
- package/dist/generated/commands/sessions/get.js +18 -0
- package/dist/generated/commands/sessions/git-commit-message.js +19 -0
- package/dist/generated/commands/sessions/git-commit.js +29 -0
- package/dist/generated/commands/sessions/git-push.js +19 -0
- package/dist/generated/commands/sessions/git-state.js +19 -0
- package/dist/generated/commands/sessions/jobs-cancel.js +20 -0
- package/dist/generated/commands/sessions/jobs-get.js +20 -0
- package/dist/generated/commands/sessions/list.js +81 -0
- package/dist/generated/commands/sessions/messages.js +18 -0
- package/dist/generated/commands/sessions/search.js +23 -0
- package/dist/generated/commands/sessions/send.js +98 -0
- package/dist/generated/commands/sessions/update.js +72 -0
- package/dist/generated/commands/workspaces/access-status.js +29 -0
- package/dist/generated/commands/workspaces/ai-provider-get.js +18 -0
- package/dist/generated/commands/workspaces/ai-provider-remove.js +42 -0
- package/dist/generated/commands/workspaces/ai-provider-set.js +21 -0
- package/dist/generated/commands/workspaces/credits.js +17 -0
- package/dist/generated/commands/workspaces/get.js +17 -0
- package/dist/generated/commands/workspaces/getting-started-get.js +18 -0
- package/dist/generated/commands/workspaces/getting-started-update.js +32 -0
- package/dist/generated/commands/workspaces/list.js +15 -0
- package/dist/generated/commands/workspaces/members.js +25 -0
- package/dist/generated/commands/workspaces/sandbox-limit.js +17 -0
- package/dist/generated/commands/workspaces/stop-sandboxes.js +27 -0
- package/dist/generated/commands/workspaces/usage.js +32 -0
- package/dist/index.js +5 -516
- package/dist/program.js +46 -0
- package/dist/runtime/attach.js +139 -0
- package/dist/runtime/attachments.js +58 -0
- package/dist/runtime/client.js +12 -0
- package/dist/runtime/config.js +49 -0
- package/dist/runtime/credentials.js +24 -0
- package/dist/runtime/descriptor.js +7 -0
- package/dist/runtime/invoke.js +152 -0
- package/dist/runtime/runtime.js +41 -0
- package/dist/runtime/version.js +5 -0
- package/openapi.json +5222 -0
- package/package.json +21 -79
- package/LICENSE +0 -21
- package/claude.costs.json +0 -34
- package/dist/__tests__/utils/file-discovery.test.d.ts +0 -5
- package/dist/__tests__/utils/file-discovery.test.d.ts.map +0 -1
- package/dist/__tests__/utils/file-discovery.test.js +0 -51
- package/dist/__tests__/utils/file-discovery.test.js.map +0 -1
- package/dist/__tests__/utils/logger-nologs.test.d.ts +0 -5
- package/dist/__tests__/utils/logger-nologs.test.d.ts.map +0 -1
- package/dist/__tests__/utils/logger-nologs.test.js +0 -34
- package/dist/__tests__/utils/logger-nologs.test.js.map +0 -1
- package/dist/__tests__/utils/logger.test.d.ts +0 -5
- package/dist/__tests__/utils/logger.test.d.ts.map +0 -1
- package/dist/__tests__/utils/logger.test.js +0 -243
- package/dist/__tests__/utils/logger.test.js.map +0 -1
- package/dist/__tests__/utils/validator.test.d.ts +0 -5
- package/dist/__tests__/utils/validator.test.d.ts.map +0 -1
- package/dist/__tests__/utils/validator.test.js +0 -206
- package/dist/__tests__/utils/validator.test.js.map +0 -1
- package/dist/index.d.ts +0 -35
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kosuke/commands/analyse.d.ts +0 -15
- package/dist/kosuke/commands/analyse.d.ts.map +0 -1
- package/dist/kosuke/commands/analyse.js +0 -273
- package/dist/kosuke/commands/analyse.js.map +0 -1
- package/dist/kosuke/commands/build.d.ts +0 -35
- package/dist/kosuke/commands/build.d.ts.map +0 -1
- package/dist/kosuke/commands/build.js +0 -659
- package/dist/kosuke/commands/build.js.map +0 -1
- package/dist/kosuke/commands/getcode.d.ts +0 -29
- package/dist/kosuke/commands/getcode.d.ts.map +0 -1
- package/dist/kosuke/commands/getcode.js +0 -221
- package/dist/kosuke/commands/getcode.js.map +0 -1
- package/dist/kosuke/commands/lint.d.ts +0 -21
- package/dist/kosuke/commands/lint.d.ts.map +0 -1
- package/dist/kosuke/commands/lint.js +0 -321
- package/dist/kosuke/commands/lint.js.map +0 -1
- package/dist/kosuke/commands/migrate.d.ts +0 -38
- package/dist/kosuke/commands/migrate.d.ts.map +0 -1
- package/dist/kosuke/commands/migrate.js +0 -284
- package/dist/kosuke/commands/migrate.js.map +0 -1
- package/dist/kosuke/commands/plan.d.ts +0 -28
- package/dist/kosuke/commands/plan.d.ts.map +0 -1
- package/dist/kosuke/commands/plan.js +0 -630
- package/dist/kosuke/commands/plan.js.map +0 -1
- package/dist/kosuke/commands/requirements.d.ts +0 -52
- package/dist/kosuke/commands/requirements.d.ts.map +0 -1
- package/dist/kosuke/commands/requirements.js +0 -615
- package/dist/kosuke/commands/requirements.js.map +0 -1
- package/dist/kosuke/commands/review.d.ts +0 -26
- package/dist/kosuke/commands/review.d.ts.map +0 -1
- package/dist/kosuke/commands/review.js +0 -303
- package/dist/kosuke/commands/review.js.map +0 -1
- package/dist/kosuke/commands/serve.d.ts +0 -9
- package/dist/kosuke/commands/serve.d.ts.map +0 -1
- package/dist/kosuke/commands/serve.js +0 -17
- package/dist/kosuke/commands/serve.js.map +0 -1
- package/dist/kosuke/commands/ship.d.ts +0 -37
- package/dist/kosuke/commands/ship.d.ts.map +0 -1
- package/dist/kosuke/commands/ship.js +0 -375
- package/dist/kosuke/commands/ship.js.map +0 -1
- package/dist/kosuke/commands/sync-rules.d.ts +0 -9
- package/dist/kosuke/commands/sync-rules.d.ts.map +0 -1
- package/dist/kosuke/commands/sync-rules.js +0 -379
- package/dist/kosuke/commands/sync-rules.js.map +0 -1
- package/dist/kosuke/commands/test.d.ts +0 -42
- package/dist/kosuke/commands/test.d.ts.map +0 -1
- package/dist/kosuke/commands/test.js +0 -540
- package/dist/kosuke/commands/test.js.map +0 -1
- package/dist/kosuke/commands/tickets.d.ts +0 -43
- package/dist/kosuke/commands/tickets.d.ts.map +0 -1
- package/dist/kosuke/commands/tickets.js +0 -499
- package/dist/kosuke/commands/tickets.js.map +0 -1
- package/dist/kosuke/serve/middleware/error-handler.d.ts +0 -14
- package/dist/kosuke/serve/middleware/error-handler.d.ts.map +0 -1
- package/dist/kosuke/serve/middleware/error-handler.js +0 -42
- package/dist/kosuke/serve/middleware/error-handler.js.map +0 -1
- package/dist/kosuke/serve/middleware/validation.d.ts +0 -13
- package/dist/kosuke/serve/middleware/validation.d.ts.map +0 -1
- package/dist/kosuke/serve/middleware/validation.js +0 -38
- package/dist/kosuke/serve/middleware/validation.js.map +0 -1
- package/dist/kosuke/serve/routes/build.d.ts +0 -6
- package/dist/kosuke/serve/routes/build.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/build.js +0 -226
- package/dist/kosuke/serve/routes/build.js.map +0 -1
- package/dist/kosuke/serve/routes/health.d.ts +0 -6
- package/dist/kosuke/serve/routes/health.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/health.js +0 -11
- package/dist/kosuke/serve/routes/health.js.map +0 -1
- package/dist/kosuke/serve/routes/plan.d.ts +0 -6
- package/dist/kosuke/serve/routes/plan.d.ts.map +0 -1
- package/dist/kosuke/serve/routes/plan.js +0 -106
- package/dist/kosuke/serve/routes/plan.js.map +0 -1
- package/dist/kosuke/serve/server.d.ts +0 -16
- package/dist/kosuke/serve/server.d.ts.map +0 -1
- package/dist/kosuke/serve/server.js +0 -67
- package/dist/kosuke/serve/server.js.map +0 -1
- package/dist/kosuke/serve/validation/build.d.ts +0 -41
- package/dist/kosuke/serve/validation/build.d.ts.map +0 -1
- package/dist/kosuke/serve/validation/build.js +0 -20
- package/dist/kosuke/serve/validation/build.js.map +0 -1
- package/dist/kosuke/serve/validation/plan.d.ts +0 -26
- package/dist/kosuke/serve/validation/plan.d.ts.map +0 -1
- package/dist/kosuke/serve/validation/plan.js +0 -15
- package/dist/kosuke/serve/validation/plan.js.map +0 -1
- package/dist/kosuke/types.d.ts +0 -469
- package/dist/kosuke/types.d.ts.map +0 -1
- package/dist/kosuke/types.js +0 -5
- package/dist/kosuke/types.js.map +0 -1
- package/dist/kosuke/utils/batch-creator.d.ts +0 -14
- package/dist/kosuke/utils/batch-creator.d.ts.map +0 -1
- package/dist/kosuke/utils/batch-creator.js +0 -76
- package/dist/kosuke/utils/batch-creator.js.map +0 -1
- package/dist/kosuke/utils/claude-agent.d.ts +0 -145
- package/dist/kosuke/utils/claude-agent.d.ts.map +0 -1
- package/dist/kosuke/utils/claude-agent.js +0 -504
- package/dist/kosuke/utils/claude-agent.js.map +0 -1
- package/dist/kosuke/utils/constants.d.ts +0 -40
- package/dist/kosuke/utils/constants.d.ts.map +0 -1
- package/dist/kosuke/utils/constants.js +0 -54
- package/dist/kosuke/utils/constants.js.map +0 -1
- package/dist/kosuke/utils/file-discovery.d.ts +0 -15
- package/dist/kosuke/utils/file-discovery.d.ts.map +0 -1
- package/dist/kosuke/utils/file-discovery.js +0 -80
- package/dist/kosuke/utils/file-discovery.js.map +0 -1
- package/dist/kosuke/utils/git.d.ts +0 -41
- package/dist/kosuke/utils/git.d.ts.map +0 -1
- package/dist/kosuke/utils/git.js +0 -145
- package/dist/kosuke/utils/git.js.map +0 -1
- package/dist/kosuke/utils/github.d.ts +0 -17
- package/dist/kosuke/utils/github.d.ts.map +0 -1
- package/dist/kosuke/utils/github.js +0 -22
- package/dist/kosuke/utils/github.js.map +0 -1
- package/dist/kosuke/utils/interactive-input.d.ts +0 -22
- package/dist/kosuke/utils/interactive-input.d.ts.map +0 -1
- package/dist/kosuke/utils/interactive-input.js +0 -124
- package/dist/kosuke/utils/interactive-input.js.map +0 -1
- package/dist/kosuke/utils/logger.d.ts +0 -161
- package/dist/kosuke/utils/logger.d.ts.map +0 -1
- package/dist/kosuke/utils/logger.js +0 -234
- package/dist/kosuke/utils/logger.js.map +0 -1
- package/dist/kosuke/utils/playwright-mcp-client.d.ts +0 -46
- package/dist/kosuke/utils/playwright-mcp-client.d.ts.map +0 -1
- package/dist/kosuke/utils/playwright-mcp-client.js +0 -135
- package/dist/kosuke/utils/playwright-mcp-client.js.map +0 -1
- package/dist/kosuke/utils/pr-orchestrator.d.ts +0 -49
- package/dist/kosuke/utils/pr-orchestrator.d.ts.map +0 -1
- package/dist/kosuke/utils/pr-orchestrator.js +0 -154
- package/dist/kosuke/utils/pr-orchestrator.js.map +0 -1
- package/dist/kosuke/utils/repository-manager.d.ts +0 -13
- package/dist/kosuke/utils/repository-manager.d.ts.map +0 -1
- package/dist/kosuke/utils/repository-manager.js +0 -94
- package/dist/kosuke/utils/repository-manager.js.map +0 -1
- package/dist/kosuke/utils/repository-resolver.d.ts +0 -12
- package/dist/kosuke/utils/repository-resolver.d.ts.map +0 -1
- package/dist/kosuke/utils/repository-resolver.js +0 -186
- package/dist/kosuke/utils/repository-resolver.js.map +0 -1
- package/dist/kosuke/utils/tickets-manager.d.ts +0 -64
- package/dist/kosuke/utils/tickets-manager.d.ts.map +0 -1
- package/dist/kosuke/utils/tickets-manager.js +0 -331
- package/dist/kosuke/utils/tickets-manager.js.map +0 -1
- package/dist/kosuke/utils/validator.d.ts +0 -45
- package/dist/kosuke/utils/validator.d.ts.map +0 -1
- package/dist/kosuke/utils/validator.js +0 -248
- package/dist/kosuke/utils/validator.js.map +0 -1
- package/dist/lib.d.ts +0 -96
- package/dist/lib.d.ts.map +0 -1
- package/dist/lib.js +0 -95
- package/dist/lib.js.map +0 -1
- package/dist/package.json +0 -99
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../kosuke/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getcode.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/getcode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAwC/D;AAkDD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqCzF;AAsCD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D3E"}
|
|
@@ -1,221 +0,0 @@
|
|
|
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
|
-
import { logger, setupCancellationHandler } from '../utils/logger.js';
|
|
17
|
-
/**
|
|
18
|
-
* Parse arguments for getcode command
|
|
19
|
-
* Handles multiple argument patterns:
|
|
20
|
-
* kosuke getcode "query"
|
|
21
|
-
* kosuke getcode "owner/repo" "query"
|
|
22
|
-
* kosuke getcode --template "query"
|
|
23
|
-
*/
|
|
24
|
-
export function parseGetCodeArgs(args) {
|
|
25
|
-
const flags = {
|
|
26
|
-
template: args.includes('--template') || args.includes('-t'),
|
|
27
|
-
output: args.find((arg) => arg.startsWith('--output='))?.split('=')[1],
|
|
28
|
-
noLogs: args.includes('--no-logs'),
|
|
29
|
-
};
|
|
30
|
-
// Remove flags from args to get positional arguments
|
|
31
|
-
const positionalArgs = args.filter((arg) => !arg.startsWith('--') && !arg.startsWith('-') && arg !== 'getcode');
|
|
32
|
-
// Determine repo and query based on number of positional args
|
|
33
|
-
let repo;
|
|
34
|
-
let query;
|
|
35
|
-
if (positionalArgs.length === 0) {
|
|
36
|
-
throw new Error('Missing query argument.\n' +
|
|
37
|
-
'Usage:\n' +
|
|
38
|
-
' kosuke getcode "query"\n' +
|
|
39
|
-
' kosuke getcode "owner/repo" "query"\n' +
|
|
40
|
-
' kosuke getcode --template "query"');
|
|
41
|
-
}
|
|
42
|
-
else if (positionalArgs.length === 1) {
|
|
43
|
-
// Single argument: treat as query
|
|
44
|
-
query = positionalArgs[0];
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
// Two or more arguments: first is repo, second is query
|
|
48
|
-
repo = positionalArgs[0];
|
|
49
|
-
query = positionalArgs[1];
|
|
50
|
-
}
|
|
51
|
-
return {
|
|
52
|
-
repo,
|
|
53
|
-
query,
|
|
54
|
-
template: flags.template,
|
|
55
|
-
output: flags.output,
|
|
56
|
-
noLogs: flags.noLogs,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Build system prompt for code exploration
|
|
61
|
-
*/
|
|
62
|
-
function buildExplorationSystemPrompt(repoName, repoPath) {
|
|
63
|
-
return `You are an expert code exploration agent analyzing the repository: ${repoName}
|
|
64
|
-
|
|
65
|
-
**Your Purpose:**
|
|
66
|
-
Users will ask you to find reference implementations they can learn from and adapt for
|
|
67
|
-
their own projects. Your job is to provide COMPLETE, USABLE code examples with full context.
|
|
68
|
-
|
|
69
|
-
**When a user asks about a feature/implementation:**
|
|
70
|
-
|
|
71
|
-
1. **Locate ALL relevant files** - Find the complete implementation, not just snippets
|
|
72
|
-
2. **Show COMPLETE code** - Include entire files or substantial sections, never truncate
|
|
73
|
-
3. **Include dependencies** - Show imports, types, configurations, utilities used
|
|
74
|
-
4. **Explain architecture** - How components connect, data flow, design patterns
|
|
75
|
-
5. **Provide context** - Related files, setup requirements, usage examples
|
|
76
|
-
|
|
77
|
-
**Response Structure:**
|
|
78
|
-
|
|
79
|
-
1. **Overview** - What you found and where it's located
|
|
80
|
-
2. **Complete Code Snippets** - Full, copy-ready implementations with file paths
|
|
81
|
-
3. **Implementation Details** - How it works, key patterns, important decisions
|
|
82
|
-
4. **Dependencies & Setup** - Required imports, configurations, related utilities
|
|
83
|
-
5. **Usage Examples** - How the feature is actually used in the codebase
|
|
84
|
-
|
|
85
|
-
**Critical Rules:**
|
|
86
|
-
- NEVER truncate code - show complete implementations
|
|
87
|
-
- ALWAYS include file paths in code blocks
|
|
88
|
-
- ALWAYS show imports and type definitions
|
|
89
|
-
- ALWAYS explain what makes this implementation work
|
|
90
|
-
- If a feature spans multiple files, show ALL of them
|
|
91
|
-
- Include configuration, setup, and initialization code
|
|
92
|
-
|
|
93
|
-
**Format all code snippets as:**
|
|
94
|
-
\`\`\`language
|
|
95
|
-
// Complete implementation from: path/to/file.ext
|
|
96
|
-
[full code here]
|
|
97
|
-
\`\`\`
|
|
98
|
-
|
|
99
|
-
Your goal: Provide reference implementations so complete that users can understand and
|
|
100
|
-
adapt them immediately.
|
|
101
|
-
|
|
102
|
-
**Repository Details:**
|
|
103
|
-
- Name: ${repoName}
|
|
104
|
-
- Local Path: ${repoPath}`;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Core getcode logic (can be used programmatically by other commands)
|
|
108
|
-
*/
|
|
109
|
-
export async function getCodeCore(options) {
|
|
110
|
-
const { repo, query, template = false } = options;
|
|
111
|
-
console.log('🔍 Resolving repository...');
|
|
112
|
-
// Resolve repository (infer if needed)
|
|
113
|
-
const repoIdentifier = await resolveRepository(repo, query, template, process.env.GITHUB_TOKEN);
|
|
114
|
-
console.log(` ✅ Repository: ${repoIdentifier}\n`);
|
|
115
|
-
// Ensure repository is ready (clone or update)
|
|
116
|
-
console.log('📥 Preparing repository...');
|
|
117
|
-
const repoInfo = await ensureRepoReady(repoIdentifier);
|
|
118
|
-
// Explore code with Claude
|
|
119
|
-
console.log(`🤖 Exploring code with Claude...\n`);
|
|
120
|
-
const systemPrompt = buildExplorationSystemPrompt(repoIdentifier, repoInfo.localPath);
|
|
121
|
-
const agentResult = await runAgent(query, {
|
|
122
|
-
systemPrompt,
|
|
123
|
-
cwd: repoInfo.localPath,
|
|
124
|
-
maxTurns: 20,
|
|
125
|
-
verbosity: 'normal',
|
|
126
|
-
settingSources: [], // Don't load CLAUDE.md from external repos
|
|
127
|
-
});
|
|
128
|
-
console.log(`\n✅ Exploration complete!\n`);
|
|
129
|
-
return {
|
|
130
|
-
repository: repoIdentifier,
|
|
131
|
-
query,
|
|
132
|
-
response: agentResult.response,
|
|
133
|
-
filesReferenced: Array.from(agentResult.filesReferenced),
|
|
134
|
-
tokensUsed: agentResult.tokensUsed,
|
|
135
|
-
cost: agentResult.cost,
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Format exploration result for display
|
|
140
|
-
*/
|
|
141
|
-
function formatExplorationResult(result) {
|
|
142
|
-
const header = `# Code from ${result.repository}
|
|
143
|
-
|
|
144
|
-
**Query:** ${result.query}
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
`;
|
|
149
|
-
const footer = `
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Token Usage
|
|
154
|
-
|
|
155
|
-
- **Input:** ${result.tokensUsed.input.toLocaleString()} tokens
|
|
156
|
-
- **Output:** ${result.tokensUsed.output.toLocaleString()} tokens${result.tokensUsed.cacheCreation > 0
|
|
157
|
-
? `\n- **Cache Creation:** ${result.tokensUsed.cacheCreation.toLocaleString()} tokens`
|
|
158
|
-
: ''}${result.tokensUsed.cacheRead > 0
|
|
159
|
-
? `\n- **Cache Read:** ${result.tokensUsed.cacheRead.toLocaleString()} tokens`
|
|
160
|
-
: ''}
|
|
161
|
-
- **Cost:** $${result.cost.toFixed(4)}
|
|
162
|
-
|
|
163
|
-
${result.filesReferenced.length > 0 ? `**Files Referenced:** ${result.filesReferenced.join(', ')}` : ''}
|
|
164
|
-
`;
|
|
165
|
-
return header + result.response + footer;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Main getcode command
|
|
169
|
-
*/
|
|
170
|
-
export async function getCodeCommand(options) {
|
|
171
|
-
const { noLogs = false } = options;
|
|
172
|
-
console.log('🚀 Starting Code Exploration...\n');
|
|
173
|
-
// Initialize logging context
|
|
174
|
-
const logContext = logger.createContext('getcode', { noLogs });
|
|
175
|
-
const cleanupHandler = setupCancellationHandler(logContext);
|
|
176
|
-
try {
|
|
177
|
-
// Validate environment
|
|
178
|
-
if (!process.env.ANTHROPIC_API_KEY) {
|
|
179
|
-
throw new Error('ANTHROPIC_API_KEY environment variable is required');
|
|
180
|
-
}
|
|
181
|
-
// Execute core logic
|
|
182
|
-
const result = await getCodeCore(options);
|
|
183
|
-
// Track metrics
|
|
184
|
-
logger.trackTokens(logContext, result.tokensUsed);
|
|
185
|
-
logContext.filesModified = result.filesReferenced;
|
|
186
|
-
// Display cost breakdown
|
|
187
|
-
const costBreakdown = formatCostBreakdown({
|
|
188
|
-
cost: result.cost,
|
|
189
|
-
tokensUsed: result.tokensUsed,
|
|
190
|
-
fixCount: 0,
|
|
191
|
-
response: '',
|
|
192
|
-
filesReferenced: new Set(result.filesReferenced),
|
|
193
|
-
});
|
|
194
|
-
console.log(`💰 Cost: ${costBreakdown}\n`);
|
|
195
|
-
// Format and display result
|
|
196
|
-
const formattedOutput = formatExplorationResult(result);
|
|
197
|
-
// Save to file if --output flag is provided
|
|
198
|
-
if (options.output) {
|
|
199
|
-
writeFileSync(options.output, formattedOutput, 'utf-8');
|
|
200
|
-
console.log(`📄 Output saved to: ${options.output}\n`);
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
// Display to stdout
|
|
204
|
-
console.log('─'.repeat(60));
|
|
205
|
-
console.log(formattedOutput);
|
|
206
|
-
console.log('─'.repeat(60));
|
|
207
|
-
}
|
|
208
|
-
console.log('\n✅ Code exploration completed successfully!');
|
|
209
|
-
// Log successful execution
|
|
210
|
-
await logger.complete(logContext, 'success');
|
|
211
|
-
cleanupHandler();
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
console.error('\n❌ Code exploration failed:', error);
|
|
215
|
-
// Log failed execution
|
|
216
|
-
await logger.complete(logContext, 'error', error);
|
|
217
|
-
cleanupHandler();
|
|
218
|
-
throw error;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=getcode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getcode.js","sourceRoot":"","sources":["../../../kosuke/commands/getcode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lint command - Comprehensive code quality validation and fixing
|
|
3
|
-
*
|
|
4
|
-
* Strategy: Run all validation steps (format, lint, typecheck, test, knip),
|
|
5
|
-
* give errors to Claude, let it fix them
|
|
6
|
-
*/
|
|
7
|
-
import type { LintOptions } from '../types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Run Claude to fix code quality errors
|
|
10
|
-
* Exported so other commands can use it
|
|
11
|
-
*/
|
|
12
|
-
export declare function fixCodeQualityErrors(stepName: string, errors: string, cwd?: string): Promise<boolean>;
|
|
13
|
-
/**
|
|
14
|
-
* Legacy export for backward compatibility
|
|
15
|
-
*/
|
|
16
|
-
export declare function fixLintErrors(lintErrors: string, cwd?: string): Promise<boolean>;
|
|
17
|
-
/**
|
|
18
|
-
* Main lint command (now runs comprehensive validation)
|
|
19
|
-
*/
|
|
20
|
-
export declare function lintCommand(options?: LintOptions): Promise<void>;
|
|
21
|
-
//# sourceMappingURL=lint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/lint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA2I/C;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,OAAO,CAAC,CA0ClB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAElB;AA6GD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF1E"}
|
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lint command - Comprehensive code quality validation and fixing
|
|
3
|
-
*
|
|
4
|
-
* Strategy: Run all validation steps (format, lint, typecheck, test, knip),
|
|
5
|
-
* give errors to Claude, let it fix them
|
|
6
|
-
*/
|
|
7
|
-
import { execSync } from 'child_process';
|
|
8
|
-
import { runAgent } from '../utils/claude-agent.js';
|
|
9
|
-
import { runWithPR } from '../utils/pr-orchestrator.js';
|
|
10
|
-
import { detectPackageManager, readPackageJsonScripts, runFormat, runLint, runTypecheck, } from '../utils/validator.js';
|
|
11
|
-
/**
|
|
12
|
-
* Run tests using package.json test script
|
|
13
|
-
*/
|
|
14
|
-
async function runTests(cwd = process.cwd()) {
|
|
15
|
-
const { readPackageJsonScripts, detectPackageManager } = await import('../utils/validator.js');
|
|
16
|
-
const scripts = readPackageJsonScripts(cwd);
|
|
17
|
-
if (!scripts || !scripts.test) {
|
|
18
|
-
return {
|
|
19
|
-
success: true,
|
|
20
|
-
warning: '⚠️ No test script found in package.json. Skipping tests.',
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
const packageManager = detectPackageManager(cwd);
|
|
24
|
-
const command = `${packageManager} run test`;
|
|
25
|
-
try {
|
|
26
|
-
const output = execSync(command, {
|
|
27
|
-
cwd,
|
|
28
|
-
encoding: 'utf-8',
|
|
29
|
-
stdio: 'pipe',
|
|
30
|
-
});
|
|
31
|
-
return { success: true, output };
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
const err = error;
|
|
35
|
-
return {
|
|
36
|
-
success: false,
|
|
37
|
-
error: `$ ${command}\n\n${err.stdout || err.stderr || err.message}`,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Run knip to check for unused exports
|
|
43
|
-
*/
|
|
44
|
-
async function runKnip(cwd = process.cwd()) {
|
|
45
|
-
const { readPackageJsonScripts, detectPackageManager } = await import('../utils/validator.js');
|
|
46
|
-
const scripts = readPackageJsonScripts(cwd);
|
|
47
|
-
if (!scripts || !scripts.knip) {
|
|
48
|
-
return {
|
|
49
|
-
success: true,
|
|
50
|
-
warning: '⚠️ No knip script found in package.json. Skipping knip check.',
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
const packageManager = detectPackageManager(cwd);
|
|
54
|
-
const command = `${packageManager} run knip`;
|
|
55
|
-
try {
|
|
56
|
-
const output = execSync(command, {
|
|
57
|
-
cwd,
|
|
58
|
-
encoding: 'utf-8',
|
|
59
|
-
stdio: 'pipe',
|
|
60
|
-
});
|
|
61
|
-
return { success: true, output };
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
const err = error;
|
|
65
|
-
return {
|
|
66
|
-
success: false,
|
|
67
|
-
error: `$ ${command}\n\n${err.stdout || err.stderr || err.message}`,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Build command-specific system prompt for fixing errors
|
|
73
|
-
*/
|
|
74
|
-
function buildFixSystemPrompt(stepName, cwd) {
|
|
75
|
-
const packageManager = detectPackageManager(cwd);
|
|
76
|
-
const scripts = readPackageJsonScripts(cwd);
|
|
77
|
-
// Map step names to commands
|
|
78
|
-
const commandMap = {
|
|
79
|
-
'🎨 Format': scripts?.format ? `${packageManager} run format` : 'prettier --write .',
|
|
80
|
-
'🔍 Lint': scripts?.lint ? `${packageManager} run lint` : 'eslint . --fix',
|
|
81
|
-
'🔎 TypeCheck': scripts?.typecheck ? `${packageManager} run typecheck` : 'tsc --noEmit',
|
|
82
|
-
'🧪 Tests': scripts?.test ? `${packageManager} run test` : '',
|
|
83
|
-
'🔪 Knip': scripts?.knip ? `${packageManager} run knip` : '',
|
|
84
|
-
};
|
|
85
|
-
const fixCommand = commandMap[stepName] || '';
|
|
86
|
-
const commandGuidance = fixCommand
|
|
87
|
-
? `\n\n**Available Commands:**
|
|
88
|
-
- Package Manager: ${packageManager}
|
|
89
|
-
- Fix Command: \`${fixCommand}\`
|
|
90
|
-
- You can run this command to verify your fixes, but you MUST fix the issues in the code files first.
|
|
91
|
-
`
|
|
92
|
-
: '';
|
|
93
|
-
return `You are a code quality expert specialized in fixing ${stepName} errors.
|
|
94
|
-
|
|
95
|
-
Your task is to analyze errors and fix them according to the project's quality standards.
|
|
96
|
-
${commandGuidance}
|
|
97
|
-
**CRITICAL REQUIREMENTS:**
|
|
98
|
-
- You MUST use the search_replace or write tools to fix ALL errors
|
|
99
|
-
- Simply identifying issues without fixing them is NOT acceptable
|
|
100
|
-
- Focus ONLY on fixing the specific errors provided. Do not make unnecessary changes.
|
|
101
|
-
- Follow the project's coding guidelines (CLAUDE.md will be loaded automatically)
|
|
102
|
-
- Use ${packageManager} commands (NOT npm) if you need to run any commands
|
|
103
|
-
- Make minimal, surgical fixes - don't refactor unrelated code`;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Run Claude to fix code quality errors
|
|
107
|
-
* Exported so other commands can use it
|
|
108
|
-
*/
|
|
109
|
-
export async function fixCodeQualityErrors(stepName, errors, cwd = process.cwd()) {
|
|
110
|
-
console.log(`\n🤖 Using Claude to fix ${stepName} errors...\n`);
|
|
111
|
-
// Build command-specific system prompt
|
|
112
|
-
const systemPrompt = buildFixSystemPrompt(stepName, cwd);
|
|
113
|
-
// User prompt
|
|
114
|
-
const promptText = `The following ${stepName} errors need to be fixed:
|
|
115
|
-
|
|
116
|
-
\`\`\`
|
|
117
|
-
${errors}
|
|
118
|
-
\`\`\`
|
|
119
|
-
|
|
120
|
-
**Your task:**
|
|
121
|
-
1. Analyze each error carefully
|
|
122
|
-
2. Read the files that have errors
|
|
123
|
-
3. **IMMEDIATELY FIX each error using search_replace or write tools**
|
|
124
|
-
4. Make minimal changes - only fix what's broken
|
|
125
|
-
5. Ensure your fixes don't introduce new issues
|
|
126
|
-
6. Follow the project's coding guidelines
|
|
127
|
-
|
|
128
|
-
**IMPORTANT:**
|
|
129
|
-
- Don't just describe errors - FIX them!
|
|
130
|
-
- Every error you identify MUST be fixed
|
|
131
|
-
- Use the project's coding standards
|
|
132
|
-
|
|
133
|
-
Start by reading the files with errors and fixing them one by one.`;
|
|
134
|
-
try {
|
|
135
|
-
const result = await runAgent(promptText, {
|
|
136
|
-
systemPrompt,
|
|
137
|
-
maxTurns: 20,
|
|
138
|
-
cwd,
|
|
139
|
-
verbosity: 'normal',
|
|
140
|
-
});
|
|
141
|
-
console.log(`\n✨ Claude completed (${result.fixCount} fixes applied)`);
|
|
142
|
-
return result.fixCount > 0;
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
console.error('\n❌ Error during Claude fixing:', error);
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Legacy export for backward compatibility
|
|
151
|
-
*/
|
|
152
|
-
export async function fixLintErrors(lintErrors, cwd = process.cwd()) {
|
|
153
|
-
return fixCodeQualityErrors('linting', lintErrors, cwd);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Core comprehensive validation and fixing logic (git-agnostic)
|
|
157
|
-
* Used internally by lintCommand
|
|
158
|
-
*/
|
|
159
|
-
async function fixLintErrorsCore(cwd = process.cwd()) {
|
|
160
|
-
console.log('🔍 Running comprehensive code quality checks...\n');
|
|
161
|
-
// Define all validation steps
|
|
162
|
-
const validationSteps = [
|
|
163
|
-
{ name: '🎨 Format', run: () => runFormat(cwd), fixable: true },
|
|
164
|
-
{ name: '🔍 Lint', run: () => runLint(cwd), fixable: true },
|
|
165
|
-
{ name: '🔎 TypeCheck', run: () => runTypecheck(cwd), fixable: true },
|
|
166
|
-
{ name: '🧪 Tests', run: () => runTests(cwd), fixable: true },
|
|
167
|
-
{ name: '🔪 Knip', run: () => runKnip(cwd), fixable: true },
|
|
168
|
-
];
|
|
169
|
-
const stepsFixed = [];
|
|
170
|
-
let totalAttempts = 0;
|
|
171
|
-
let totalFixes = 0;
|
|
172
|
-
// Run each validation step
|
|
173
|
-
for (const step of validationSteps) {
|
|
174
|
-
console.log(`\n${'='.repeat(60)}`);
|
|
175
|
-
console.log(`Running: ${step.name}`);
|
|
176
|
-
console.log(`${'='.repeat(60)}\n`);
|
|
177
|
-
let result = await step.run();
|
|
178
|
-
// Handle warnings (non-blocking)
|
|
179
|
-
if (result.warning) {
|
|
180
|
-
console.log(result.warning);
|
|
181
|
-
console.log(`✅ ${step.name} - SKIPPED\n`);
|
|
182
|
-
continue;
|
|
183
|
-
}
|
|
184
|
-
// Handle success
|
|
185
|
-
if (result.success) {
|
|
186
|
-
console.log(`✅ ${step.name} - PASSED\n`);
|
|
187
|
-
continue;
|
|
188
|
-
}
|
|
189
|
-
// Handle errors
|
|
190
|
-
console.log(`❌ ${step.name} - FAILED:\n`);
|
|
191
|
-
console.log(result.error);
|
|
192
|
-
if (!step.fixable) {
|
|
193
|
-
console.log(`\n⚠️ ${step.name} errors cannot be auto-fixed by Claude`);
|
|
194
|
-
throw new Error(`${step.name} validation failed`);
|
|
195
|
-
}
|
|
196
|
-
// Attempt to fix errors with Claude (max 3 attempts per step)
|
|
197
|
-
let attemptCount = 0;
|
|
198
|
-
const maxAttempts = 3;
|
|
199
|
-
while (!result.success && attemptCount < maxAttempts) {
|
|
200
|
-
attemptCount++;
|
|
201
|
-
totalAttempts++;
|
|
202
|
-
console.log(`\n${'='.repeat(60)}`);
|
|
203
|
-
console.log(`🔄 ${step.name} Fix Attempt ${attemptCount}/${maxAttempts}`);
|
|
204
|
-
console.log(`${'='.repeat(60)}`);
|
|
205
|
-
const fixApplied = await fixCodeQualityErrors(step.name, result.error || '', cwd);
|
|
206
|
-
if (!fixApplied) {
|
|
207
|
-
console.log(`\n⚠️ No fixes were applied by Claude for ${step.name}`);
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
totalFixes++;
|
|
211
|
-
// Verify fixes by running validation again
|
|
212
|
-
console.log(`\n🔍 Verifying ${step.name} fixes...\n`);
|
|
213
|
-
result = await step.run();
|
|
214
|
-
if (result.success) {
|
|
215
|
-
console.log(`✅ ${step.name} - All errors fixed!\n`);
|
|
216
|
-
stepsFixed.push(step.name);
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
const errorLines = result.error?.split('\n').length || 0;
|
|
221
|
-
console.log(`\n⚠️ Some ${step.name} errors remain (${errorLines} lines):`);
|
|
222
|
-
console.log(result.error);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
// Check if step still has errors after attempts
|
|
226
|
-
if (!result.success) {
|
|
227
|
-
console.error(`\n❌ Could not fix all ${step.name} errors after ${maxAttempts} attempts`);
|
|
228
|
-
console.log('\nRemaining errors:');
|
|
229
|
-
console.log(result.error);
|
|
230
|
-
throw new Error(`${step.name} errors remain after maximum attempts`);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
console.log('\n' + '='.repeat(60));
|
|
234
|
-
console.log('✅ All validation steps passed!');
|
|
235
|
-
console.log('='.repeat(60));
|
|
236
|
-
return {
|
|
237
|
-
success: true,
|
|
238
|
-
attempts: totalAttempts,
|
|
239
|
-
fixesApplied: totalFixes,
|
|
240
|
-
stepsFixed,
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Main lint command (now runs comprehensive validation)
|
|
245
|
-
*/
|
|
246
|
-
export async function lintCommand(options = {}) {
|
|
247
|
-
console.log('🚀 Starting Kosuke Code Quality Check & Fix...\n');
|
|
248
|
-
try {
|
|
249
|
-
// Validate environment
|
|
250
|
-
if (!process.env.ANTHROPIC_API_KEY) {
|
|
251
|
-
throw new Error('ANTHROPIC_API_KEY environment variable is required');
|
|
252
|
-
}
|
|
253
|
-
// Resolve directory
|
|
254
|
-
const { resolve } = await import('path');
|
|
255
|
-
const { existsSync, statSync } = await import('fs');
|
|
256
|
-
const cwd = options.directory ? resolve(options.directory) : process.cwd();
|
|
257
|
-
// Validate directory if provided
|
|
258
|
-
if (options.directory) {
|
|
259
|
-
if (!existsSync(cwd)) {
|
|
260
|
-
throw new Error(`Directory not found: ${cwd}\n` +
|
|
261
|
-
`Please provide a valid directory using --directory=<path>\n` +
|
|
262
|
-
`Example: kosuke lint --directory=./my-project`);
|
|
263
|
-
}
|
|
264
|
-
const stats = statSync(cwd);
|
|
265
|
-
if (!stats.isDirectory()) {
|
|
266
|
-
throw new Error(`Path is not a directory: ${cwd}\n` + `Please provide a valid directory path.`);
|
|
267
|
-
}
|
|
268
|
-
console.log(`📁 Using project directory: ${cwd}\n`);
|
|
269
|
-
}
|
|
270
|
-
// If --pr flag is provided, wrap with PR workflow
|
|
271
|
-
if (options.pr) {
|
|
272
|
-
const { result: fixResult, prInfo } = await runWithPR({
|
|
273
|
-
branchPrefix: 'fix/kosuke-quality',
|
|
274
|
-
baseBranch: options.baseBranch,
|
|
275
|
-
commitMessage: 'chore: fix code quality issues',
|
|
276
|
-
prTitle: 'chore: Fix code quality issues',
|
|
277
|
-
prBody: `## 🔧 Automated Code Quality Fixes
|
|
278
|
-
|
|
279
|
-
This PR contains automated fixes for code quality issues detected by comprehensive validation.
|
|
280
|
-
|
|
281
|
-
### 📋 Validation Steps Performed
|
|
282
|
-
- 🎨 **Format**: Code formatting check
|
|
283
|
-
- 🔍 **Lint**: ESLint validation
|
|
284
|
-
- 🔎 **TypeCheck**: TypeScript type checking
|
|
285
|
-
- 🧪 **Tests**: Unit/integration tests
|
|
286
|
-
- 🔪 **Knip**: Unused exports detection
|
|
287
|
-
|
|
288
|
-
### ✅ Result
|
|
289
|
-
All validation steps passed! Code quality issues have been automatically fixed by Claude.
|
|
290
|
-
|
|
291
|
-
---
|
|
292
|
-
|
|
293
|
-
🤖 *Generated by Kosuke CLI (\`kosuke lint --pr\`)*`,
|
|
294
|
-
cwd,
|
|
295
|
-
}, () => fixLintErrorsCore(cwd));
|
|
296
|
-
console.log('\n✅ Code quality check complete!');
|
|
297
|
-
console.log(`📊 Attempts: ${fixResult.attempts}`);
|
|
298
|
-
console.log(`🔧 Fixes applied: ${fixResult.fixesApplied}`);
|
|
299
|
-
if (fixResult.stepsFixed.length > 0) {
|
|
300
|
-
console.log(`🎯 Steps fixed: ${fixResult.stepsFixed.join(', ')}`);
|
|
301
|
-
}
|
|
302
|
-
console.log(`🔗 PR: ${prInfo.prUrl}`);
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
// Run core logic without PR
|
|
306
|
-
const result = await fixLintErrorsCore(cwd);
|
|
307
|
-
console.log('\n✅ Code quality check complete!');
|
|
308
|
-
console.log(`📊 Attempts: ${result.attempts}`);
|
|
309
|
-
console.log(`🔧 Fixes applied: ${result.fixesApplied}`);
|
|
310
|
-
if (result.stepsFixed.length > 0) {
|
|
311
|
-
console.log(`🎯 Steps fixed: ${result.stepsFixed.join(', ')}`);
|
|
312
|
-
}
|
|
313
|
-
console.log('\nℹ️ Changes applied locally. Use --pr flag to create a pull request.');
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
catch (error) {
|
|
317
|
-
console.error('\n❌ Code quality check failed:', error);
|
|
318
|
-
throw error;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
//# sourceMappingURL=lint.js.map
|