@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,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI Logger - Centralized logging to kosuke-core
|
|
3
|
-
*
|
|
4
|
-
* Provides automatic command execution tracking, token usage logging,
|
|
5
|
-
* and cost monitoring for all CLI commands.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Command names supported by the logger
|
|
9
|
-
*/
|
|
10
|
-
export type CommandName = 'ship' | 'test' | 'review' | 'getcode' | 'tickets' | 'migrate' | 'plan';
|
|
11
|
-
/**
|
|
12
|
-
* Execution status
|
|
13
|
-
*/
|
|
14
|
-
export type ExecutionStatus = 'success' | 'error' | 'cancelled';
|
|
15
|
-
/**
|
|
16
|
-
* CLI log data structure matching kosuke-core API schema
|
|
17
|
-
*/
|
|
18
|
-
export interface CliLogData {
|
|
19
|
-
projectId: string;
|
|
20
|
-
command: CommandName;
|
|
21
|
-
status: ExecutionStatus;
|
|
22
|
-
errorMessage?: string;
|
|
23
|
-
tokensInput: number;
|
|
24
|
-
tokensOutput: number;
|
|
25
|
-
tokensCacheCreation?: number;
|
|
26
|
-
tokensCacheRead?: number;
|
|
27
|
-
cost: string;
|
|
28
|
-
executionTimeMs: number;
|
|
29
|
-
inferenceTimeMs?: number;
|
|
30
|
-
fixesApplied?: number;
|
|
31
|
-
testsRun?: number;
|
|
32
|
-
testsPassed?: number;
|
|
33
|
-
testsFailed?: number;
|
|
34
|
-
iterations?: number;
|
|
35
|
-
filesModified?: string[];
|
|
36
|
-
cliVersion?: string;
|
|
37
|
-
metadata?: Record<string, unknown>;
|
|
38
|
-
conversationMessages?: Array<{
|
|
39
|
-
role: 'user' | 'assistant';
|
|
40
|
-
content: string;
|
|
41
|
-
timestamp: string;
|
|
42
|
-
toolCalls?: Array<{
|
|
43
|
-
name: string;
|
|
44
|
-
input: unknown;
|
|
45
|
-
output?: unknown;
|
|
46
|
-
}>;
|
|
47
|
-
}>;
|
|
48
|
-
startedAt: string;
|
|
49
|
-
completedAt: string;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Runtime logger options
|
|
53
|
-
*/
|
|
54
|
-
interface LoggerRuntimeOptions {
|
|
55
|
-
noLogs?: boolean;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Command execution context for automatic tracking
|
|
59
|
-
*/
|
|
60
|
-
export interface CommandExecutionContext {
|
|
61
|
-
command: CommandName;
|
|
62
|
-
startTime: number;
|
|
63
|
-
startedAt: string;
|
|
64
|
-
tokensInput: number;
|
|
65
|
-
tokensOutput: number;
|
|
66
|
-
tokensCacheCreation: number;
|
|
67
|
-
tokensCacheRead: number;
|
|
68
|
-
inferenceTimeMs: number;
|
|
69
|
-
fixesApplied: number;
|
|
70
|
-
testsRun: number;
|
|
71
|
-
testsPassed: number;
|
|
72
|
-
testsFailed: number;
|
|
73
|
-
iterations: number;
|
|
74
|
-
filesModified: string[];
|
|
75
|
-
noLogs: boolean;
|
|
76
|
-
conversationMessages: Array<{
|
|
77
|
-
role: 'user' | 'assistant';
|
|
78
|
-
content: string;
|
|
79
|
-
timestamp: string;
|
|
80
|
-
toolCalls?: Array<{
|
|
81
|
-
name: string;
|
|
82
|
-
input: unknown;
|
|
83
|
-
output?: unknown;
|
|
84
|
-
}>;
|
|
85
|
-
}>;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* CLI Logger class
|
|
89
|
-
*/
|
|
90
|
-
declare class CliLogger {
|
|
91
|
-
private config;
|
|
92
|
-
private cliVersion;
|
|
93
|
-
constructor();
|
|
94
|
-
/**
|
|
95
|
-
* Load configuration from environment variables
|
|
96
|
-
*/
|
|
97
|
-
private loadConfig;
|
|
98
|
-
/**
|
|
99
|
-
* Load CLI version from package.json
|
|
100
|
-
*/
|
|
101
|
-
private loadVersion;
|
|
102
|
-
/**
|
|
103
|
-
* Calculate cost from token usage
|
|
104
|
-
* Uses Claude Sonnet 4.5 pricing
|
|
105
|
-
*/
|
|
106
|
-
calculateCost(tokensInput: number, tokensOutput: number, tokensCacheCreation?: number, tokensCacheRead?: number): string;
|
|
107
|
-
/**
|
|
108
|
-
* Log command execution to kosuke-core
|
|
109
|
-
*/
|
|
110
|
-
logCommand(data: CliLogData): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* Create a new command execution context
|
|
113
|
-
*/
|
|
114
|
-
createContext(command: CommandName, options?: LoggerRuntimeOptions): CommandExecutionContext;
|
|
115
|
-
/**
|
|
116
|
-
* Track tokens from an agent result
|
|
117
|
-
*/
|
|
118
|
-
trackTokens(context: CommandExecutionContext, tokensUsed: {
|
|
119
|
-
input: number;
|
|
120
|
-
output: number;
|
|
121
|
-
cacheCreation: number;
|
|
122
|
-
cacheRead: number;
|
|
123
|
-
}): void;
|
|
124
|
-
/**
|
|
125
|
-
* Complete command execution and log it
|
|
126
|
-
*/
|
|
127
|
-
complete(context: CommandExecutionContext, status: ExecutionStatus, error?: Error): Promise<void>;
|
|
128
|
-
/**
|
|
129
|
-
* Get project context (returns null if not configured)
|
|
130
|
-
*/
|
|
131
|
-
getProjectContext(): {
|
|
132
|
-
projectId: string;
|
|
133
|
-
} | null;
|
|
134
|
-
/**
|
|
135
|
-
* Check if logging is enabled
|
|
136
|
-
*/
|
|
137
|
-
isEnabled(): boolean;
|
|
138
|
-
}
|
|
139
|
-
export declare const logger: CliLogger;
|
|
140
|
-
/**
|
|
141
|
-
* Wrapper function to automatically track command execution
|
|
142
|
-
*
|
|
143
|
-
* Example usage:
|
|
144
|
-
* ```typescript
|
|
145
|
-
* export async function shipCommand(options: ShipOptions): Promise<void> {
|
|
146
|
-
* await withCommandTracking('ship', async (ctx) => {
|
|
147
|
-
* // ... command logic ...
|
|
148
|
-
* // Track tokens from agent results
|
|
149
|
-
* logger.trackTokens(ctx, result.tokensUsed);
|
|
150
|
-
* ctx.fixesApplied += result.fixCount;
|
|
151
|
-
* }, { noLogs: options.noLogs });
|
|
152
|
-
* }
|
|
153
|
-
* ```
|
|
154
|
-
*/
|
|
155
|
-
export declare function withCommandTracking<T>(command: CommandName, fn: (context: CommandExecutionContext) => Promise<T>, options?: LoggerRuntimeOptions): Promise<T>;
|
|
156
|
-
/**
|
|
157
|
-
* Handle command cancellation (SIGINT)
|
|
158
|
-
*/
|
|
159
|
-
export declare function setupCancellationHandler(context: CommandExecutionContext): () => void;
|
|
160
|
-
export {};
|
|
161
|
-
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI Logger - Centralized logging to kosuke-core
|
|
3
|
-
*
|
|
4
|
-
* Provides automatic command execution tracking, token usage logging,
|
|
5
|
-
* and cost monitoring for all CLI commands.
|
|
6
|
-
*/
|
|
7
|
-
import { readFileSync } from 'fs';
|
|
8
|
-
import { join, dirname } from 'path';
|
|
9
|
-
import { fileURLToPath } from 'url';
|
|
10
|
-
import { KOSUKE_BASE_URL, KOSUKE_API_KEY, KOSUKE_PROJECT_ID } from './constants.js';
|
|
11
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
-
const __dirname = dirname(__filename);
|
|
13
|
-
/**
|
|
14
|
-
* CLI Logger class
|
|
15
|
-
*/
|
|
16
|
-
class CliLogger {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.config = this.loadConfig();
|
|
19
|
-
this.cliVersion = this.loadVersion();
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Load configuration from environment variables
|
|
23
|
-
*/
|
|
24
|
-
loadConfig(suppressWarning = false) {
|
|
25
|
-
const baseUrl = KOSUKE_BASE_URL;
|
|
26
|
-
const apiKey = KOSUKE_API_KEY;
|
|
27
|
-
const projectId = KOSUKE_PROJECT_ID;
|
|
28
|
-
const enabled = !!(baseUrl && apiKey && projectId);
|
|
29
|
-
if (!enabled && !suppressWarning) {
|
|
30
|
-
console.warn('⚠️ CLI logging disabled - missing KOSUKE_BASE_URL, KOSUKE_API_KEY, or KOSUKE_PROJECT_ID');
|
|
31
|
-
}
|
|
32
|
-
return {
|
|
33
|
-
baseUrl,
|
|
34
|
-
apiKey,
|
|
35
|
-
projectId,
|
|
36
|
-
enabled,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Load CLI version from package.json
|
|
41
|
-
*/
|
|
42
|
-
loadVersion() {
|
|
43
|
-
try {
|
|
44
|
-
const packagePath = join(__dirname, '..', '..', 'package.json');
|
|
45
|
-
const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
46
|
-
return packageJson.version || 'unknown';
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
return 'unknown';
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Calculate cost from token usage
|
|
54
|
-
* Uses Claude Sonnet 4.5 pricing
|
|
55
|
-
*/
|
|
56
|
-
calculateCost(tokensInput, tokensOutput, tokensCacheCreation = 0, tokensCacheRead = 0) {
|
|
57
|
-
const INPUT_COST_PER_MILLION = 3.0;
|
|
58
|
-
const OUTPUT_COST_PER_MILLION = 15.0;
|
|
59
|
-
const CACHE_CREATION_COST_PER_MILLION = 3.75;
|
|
60
|
-
const CACHE_READ_COST_PER_MILLION = 0.3;
|
|
61
|
-
const inputCost = (tokensInput / 1000000) * INPUT_COST_PER_MILLION;
|
|
62
|
-
const outputCost = (tokensOutput / 1000000) * OUTPUT_COST_PER_MILLION;
|
|
63
|
-
const cacheCreationCost = (tokensCacheCreation / 1000000) * CACHE_CREATION_COST_PER_MILLION;
|
|
64
|
-
const cacheReadCost = (tokensCacheRead / 1000000) * CACHE_READ_COST_PER_MILLION;
|
|
65
|
-
const totalCost = inputCost + outputCost + cacheCreationCost + cacheReadCost;
|
|
66
|
-
return totalCost.toFixed(6);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Log command execution to kosuke-core
|
|
70
|
-
*/
|
|
71
|
-
async logCommand(data) {
|
|
72
|
-
if (!this.config.enabled) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const controller = new AbortController();
|
|
77
|
-
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
78
|
-
const response = await fetch(`${this.config.baseUrl}/api/cli/logs`, {
|
|
79
|
-
method: 'POST',
|
|
80
|
-
headers: {
|
|
81
|
-
'Content-Type': 'application/json',
|
|
82
|
-
'x-cli-api-key': this.config.apiKey,
|
|
83
|
-
},
|
|
84
|
-
body: JSON.stringify(data),
|
|
85
|
-
signal: controller.signal,
|
|
86
|
-
});
|
|
87
|
-
clearTimeout(timeout);
|
|
88
|
-
if (!response.ok) {
|
|
89
|
-
try {
|
|
90
|
-
const error = await response.json();
|
|
91
|
-
console.warn(`⚠️ Failed to log command: ${JSON.stringify(error)}`);
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
// Response might not be JSON (e.g., HTML error page)
|
|
95
|
-
console.warn(`⚠️ Failed to log command: ${response.status} ${response.statusText}`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
// Non-blocking: log warning but don't throw
|
|
101
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
102
|
-
console.warn(`⚠️ Error logging command: ${message}`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Create a new command execution context
|
|
107
|
-
*/
|
|
108
|
-
createContext(command, options = {}) {
|
|
109
|
-
return {
|
|
110
|
-
command,
|
|
111
|
-
startTime: Date.now(),
|
|
112
|
-
startedAt: new Date().toISOString(),
|
|
113
|
-
tokensInput: 0,
|
|
114
|
-
tokensOutput: 0,
|
|
115
|
-
tokensCacheCreation: 0,
|
|
116
|
-
tokensCacheRead: 0,
|
|
117
|
-
inferenceTimeMs: 0,
|
|
118
|
-
fixesApplied: 0,
|
|
119
|
-
testsRun: 0,
|
|
120
|
-
testsPassed: 0,
|
|
121
|
-
testsFailed: 0,
|
|
122
|
-
iterations: 0,
|
|
123
|
-
filesModified: [],
|
|
124
|
-
noLogs: options.noLogs || false,
|
|
125
|
-
conversationMessages: [],
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Track tokens from an agent result
|
|
130
|
-
*/
|
|
131
|
-
trackTokens(context, tokensUsed) {
|
|
132
|
-
context.tokensInput += tokensUsed.input;
|
|
133
|
-
context.tokensOutput += tokensUsed.output;
|
|
134
|
-
context.tokensCacheCreation += tokensUsed.cacheCreation;
|
|
135
|
-
context.tokensCacheRead += tokensUsed.cacheRead;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Complete command execution and log it
|
|
139
|
-
*/
|
|
140
|
-
async complete(context, status, error) {
|
|
141
|
-
// Skip API call if noLogs is true (but still track context internally)
|
|
142
|
-
if (context.noLogs || !this.config.enabled) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
const executionTimeMs = Date.now() - context.startTime;
|
|
146
|
-
const completedAt = new Date().toISOString();
|
|
147
|
-
const logData = {
|
|
148
|
-
projectId: this.config.projectId,
|
|
149
|
-
command: context.command,
|
|
150
|
-
status,
|
|
151
|
-
errorMessage: error?.message,
|
|
152
|
-
tokensInput: context.tokensInput,
|
|
153
|
-
tokensOutput: context.tokensOutput,
|
|
154
|
-
tokensCacheCreation: context.tokensCacheCreation > 0 ? context.tokensCacheCreation : undefined,
|
|
155
|
-
tokensCacheRead: context.tokensCacheRead > 0 ? context.tokensCacheRead : undefined,
|
|
156
|
-
cost: this.calculateCost(context.tokensInput, context.tokensOutput, context.tokensCacheCreation, context.tokensCacheRead),
|
|
157
|
-
executionTimeMs,
|
|
158
|
-
inferenceTimeMs: context.inferenceTimeMs > 0 ? context.inferenceTimeMs : undefined,
|
|
159
|
-
fixesApplied: context.fixesApplied > 0 ? context.fixesApplied : undefined,
|
|
160
|
-
testsRun: context.testsRun > 0 ? context.testsRun : undefined,
|
|
161
|
-
testsPassed: context.testsPassed > 0 ? context.testsPassed : undefined,
|
|
162
|
-
testsFailed: context.testsFailed > 0 ? context.testsFailed : undefined,
|
|
163
|
-
iterations: context.iterations > 0 ? context.iterations : undefined,
|
|
164
|
-
filesModified: context.filesModified.length > 0 ? context.filesModified : undefined,
|
|
165
|
-
conversationMessages: context.conversationMessages.length > 0 ? context.conversationMessages : undefined,
|
|
166
|
-
cliVersion: this.cliVersion,
|
|
167
|
-
startedAt: context.startedAt,
|
|
168
|
-
completedAt,
|
|
169
|
-
};
|
|
170
|
-
await this.logCommand(logData);
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Get project context (returns null if not configured)
|
|
174
|
-
*/
|
|
175
|
-
getProjectContext() {
|
|
176
|
-
if (!this.config.enabled) {
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
return {
|
|
180
|
-
projectId: this.config.projectId,
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Check if logging is enabled
|
|
185
|
-
*/
|
|
186
|
-
isEnabled() {
|
|
187
|
-
return this.config.enabled;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
// Export singleton instance
|
|
191
|
-
export const logger = new CliLogger();
|
|
192
|
-
/**
|
|
193
|
-
* Wrapper function to automatically track command execution
|
|
194
|
-
*
|
|
195
|
-
* Example usage:
|
|
196
|
-
* ```typescript
|
|
197
|
-
* export async function shipCommand(options: ShipOptions): Promise<void> {
|
|
198
|
-
* await withCommandTracking('ship', async (ctx) => {
|
|
199
|
-
* // ... command logic ...
|
|
200
|
-
* // Track tokens from agent results
|
|
201
|
-
* logger.trackTokens(ctx, result.tokensUsed);
|
|
202
|
-
* ctx.fixesApplied += result.fixCount;
|
|
203
|
-
* }, { noLogs: options.noLogs });
|
|
204
|
-
* }
|
|
205
|
-
* ```
|
|
206
|
-
*/
|
|
207
|
-
export async function withCommandTracking(command, fn, options = {}) {
|
|
208
|
-
const context = logger.createContext(command, options);
|
|
209
|
-
try {
|
|
210
|
-
const result = await fn(context);
|
|
211
|
-
await logger.complete(context, 'success');
|
|
212
|
-
return result;
|
|
213
|
-
}
|
|
214
|
-
catch (error) {
|
|
215
|
-
await logger.complete(context, 'error', error);
|
|
216
|
-
throw error;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Handle command cancellation (SIGINT)
|
|
221
|
-
*/
|
|
222
|
-
export function setupCancellationHandler(context) {
|
|
223
|
-
const handler = async () => {
|
|
224
|
-
console.log('\n\n⚠️ Command cancelled by user');
|
|
225
|
-
await logger.complete(context, 'cancelled');
|
|
226
|
-
process.exit(130); // Standard exit code for SIGINT
|
|
227
|
-
};
|
|
228
|
-
process.on('SIGINT', handler);
|
|
229
|
-
// Return cleanup function
|
|
230
|
-
return () => {
|
|
231
|
-
process.off('SIGINT', handler);
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../kosuke/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Playwright MCP Client
|
|
3
|
-
* Connects to Playwright MCP server and provides tools to Claude SDK
|
|
4
|
-
*/
|
|
5
|
-
import type Anthropic from '@anthropic-ai/sdk';
|
|
6
|
-
interface PlaywrightMCPConfig {
|
|
7
|
-
port?: number;
|
|
8
|
-
verbose?: boolean;
|
|
9
|
-
trace?: boolean;
|
|
10
|
-
outputDir?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare class PlaywrightMCPClient {
|
|
13
|
-
private client;
|
|
14
|
-
private transport;
|
|
15
|
-
private mcpTools;
|
|
16
|
-
private toolCalls;
|
|
17
|
-
/**
|
|
18
|
-
* Initialize connection to Playwright MCP server
|
|
19
|
-
*/
|
|
20
|
-
connect(config?: PlaywrightMCPConfig): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Get MCP tools in Anthropic SDK format
|
|
23
|
-
*/
|
|
24
|
-
getTools(): Anthropic.Tool[];
|
|
25
|
-
/**
|
|
26
|
-
* Execute MCP tool call
|
|
27
|
-
*/
|
|
28
|
-
executeTool(name: string, input: Record<string, unknown>): Promise<unknown>;
|
|
29
|
-
/**
|
|
30
|
-
* Get tool usage statistics
|
|
31
|
-
*/
|
|
32
|
-
getToolUsage(): {
|
|
33
|
-
navigations: number;
|
|
34
|
-
clicks: number;
|
|
35
|
-
types: number;
|
|
36
|
-
extracts: number;
|
|
37
|
-
other: number;
|
|
38
|
-
total: number;
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Close MCP connection
|
|
42
|
-
*/
|
|
43
|
-
close(): Promise<void>;
|
|
44
|
-
}
|
|
45
|
-
export {};
|
|
46
|
-
//# sourceMappingURL=playwright-mcp-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-mcp-client.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/playwright-mcp-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAK/C,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,SAAS,CAAqB;IAEtC;;OAEG;IACG,OAAO,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D9D;;OAEG;IACH,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;IAI5B;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBjF;;OAEG;IACH,YAAY,IAAI;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf;IA6BD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Playwright MCP Client
|
|
3
|
-
* Connects to Playwright MCP server and provides tools to Claude SDK
|
|
4
|
-
*/
|
|
5
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
6
|
-
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
7
|
-
import { TRACES_DIR } from './constants.js';
|
|
8
|
-
export class PlaywrightMCPClient {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.client = null;
|
|
11
|
-
this.transport = null;
|
|
12
|
-
this.mcpTools = [];
|
|
13
|
-
this.toolCalls = [];
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Initialize connection to Playwright MCP server
|
|
17
|
-
*/
|
|
18
|
-
async connect(config = {}) {
|
|
19
|
-
const { port, verbose, trace, outputDir = TRACES_DIR } = config;
|
|
20
|
-
try {
|
|
21
|
-
// Start MCP client with stdio transport
|
|
22
|
-
const args = [];
|
|
23
|
-
if (port) {
|
|
24
|
-
args.push('--port', port.toString());
|
|
25
|
-
}
|
|
26
|
-
if (trace) {
|
|
27
|
-
args.push('--caps=tracing');
|
|
28
|
-
}
|
|
29
|
-
if (outputDir) {
|
|
30
|
-
args.push('--output-dir', outputDir);
|
|
31
|
-
}
|
|
32
|
-
this.transport = new StdioClientTransport({
|
|
33
|
-
command: 'npx',
|
|
34
|
-
args: ['-y', '@playwright/mcp@latest', ...args],
|
|
35
|
-
});
|
|
36
|
-
this.client = new Client({
|
|
37
|
-
name: 'kosuke-playwright-mcp-client',
|
|
38
|
-
version: '1.0.0',
|
|
39
|
-
}, {
|
|
40
|
-
capabilities: {},
|
|
41
|
-
});
|
|
42
|
-
await this.client.connect(this.transport);
|
|
43
|
-
if (verbose) {
|
|
44
|
-
console.log('✅ Connected to Playwright MCP server');
|
|
45
|
-
}
|
|
46
|
-
// Get available tools from MCP server
|
|
47
|
-
const toolsResponse = await this.client.listTools();
|
|
48
|
-
// Convert MCP tools to Anthropic SDK format
|
|
49
|
-
this.mcpTools = toolsResponse.tools.map((tool) => ({
|
|
50
|
-
name: tool.name,
|
|
51
|
-
description: tool.description,
|
|
52
|
-
input_schema: tool.inputSchema,
|
|
53
|
-
}));
|
|
54
|
-
if (verbose) {
|
|
55
|
-
console.log(`📦 Loaded ${this.mcpTools.length} MCP tools`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
throw new Error(`Failed to connect to Playwright MCP server.\n\n` +
|
|
60
|
-
`Make sure the server is running:\n` +
|
|
61
|
-
` npx @playwright/mcp@latest\n\n` +
|
|
62
|
-
`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Get MCP tools in Anthropic SDK format
|
|
67
|
-
*/
|
|
68
|
-
getTools() {
|
|
69
|
-
return this.mcpTools;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Execute MCP tool call
|
|
73
|
-
*/
|
|
74
|
-
async executeTool(name, input) {
|
|
75
|
-
if (!this.client) {
|
|
76
|
-
throw new Error('MCP client not connected');
|
|
77
|
-
}
|
|
78
|
-
// Track tool call
|
|
79
|
-
this.toolCalls.push({
|
|
80
|
-
name,
|
|
81
|
-
input,
|
|
82
|
-
timestamp: Date.now(),
|
|
83
|
-
});
|
|
84
|
-
// Execute via MCP
|
|
85
|
-
const response = await this.client.callTool({
|
|
86
|
-
name,
|
|
87
|
-
arguments: input,
|
|
88
|
-
});
|
|
89
|
-
return response.content;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Get tool usage statistics
|
|
93
|
-
*/
|
|
94
|
-
getToolUsage() {
|
|
95
|
-
const usage = {
|
|
96
|
-
navigations: 0,
|
|
97
|
-
clicks: 0,
|
|
98
|
-
types: 0,
|
|
99
|
-
extracts: 0,
|
|
100
|
-
other: 0,
|
|
101
|
-
};
|
|
102
|
-
for (const call of this.toolCalls) {
|
|
103
|
-
if (call.name.includes('navigate')) {
|
|
104
|
-
usage.navigations++;
|
|
105
|
-
}
|
|
106
|
-
else if (call.name.includes('click')) {
|
|
107
|
-
usage.clicks++;
|
|
108
|
-
}
|
|
109
|
-
else if (call.name.includes('type') || call.name.includes('fill')) {
|
|
110
|
-
usage.types++;
|
|
111
|
-
}
|
|
112
|
-
else if (call.name.includes('extract') || call.name.includes('get')) {
|
|
113
|
-
usage.extracts++;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
usage.other++;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
...usage,
|
|
121
|
-
total: this.toolCalls.length,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Close MCP connection
|
|
126
|
-
*/
|
|
127
|
-
async close() {
|
|
128
|
-
if (this.client) {
|
|
129
|
-
await this.client.close();
|
|
130
|
-
}
|
|
131
|
-
this.client = null;
|
|
132
|
-
this.transport = null;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=playwright-mcp-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-mcp-client.js","sourceRoot":"","sources":["../../../kosuke/utils/playwright-mcp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PR Orchestrator - Generic PR workflow utility
|
|
3
|
-
*
|
|
4
|
-
* Handles branch creation, commits, push, and PR creation
|
|
5
|
-
* Used across all commands that support --pr flag
|
|
6
|
-
*/
|
|
7
|
-
interface PRWorkflowOptions {
|
|
8
|
-
/** Prefix for branch name (e.g., 'quality', 'fix', 'sync') */
|
|
9
|
-
branchPrefix: string;
|
|
10
|
-
/** Base branch to create PR against (default: current branch) */
|
|
11
|
-
baseBranch?: string;
|
|
12
|
-
/** Commit message (can be function for multiple commits) */
|
|
13
|
-
commitMessage: string | ((batchIndex: number) => string);
|
|
14
|
-
/** PR title */
|
|
15
|
-
prTitle: string;
|
|
16
|
-
/** PR body (markdown) */
|
|
17
|
-
prBody: string;
|
|
18
|
-
/** Optional validation before each commit */
|
|
19
|
-
validateBeforeCommit?: () => Promise<boolean>;
|
|
20
|
-
/** Optional callback after each batch/commit */
|
|
21
|
-
onBatchComplete?: (batchIndex: number) => Promise<void>;
|
|
22
|
-
/** Number of batches to process (default: 1 for single commit) */
|
|
23
|
-
batchCount?: number;
|
|
24
|
-
/** Directory to run git operations in (default: cwd) */
|
|
25
|
-
cwd?: string;
|
|
26
|
-
}
|
|
27
|
-
interface PRWorkflowResult {
|
|
28
|
-
branchName: string;
|
|
29
|
-
prUrl: string;
|
|
30
|
-
baseBranch: string;
|
|
31
|
-
commitsCreated: number;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Execute core logic wrapped with PR workflow
|
|
35
|
-
*/
|
|
36
|
-
export declare function runWithPR<T>(options: PRWorkflowOptions, coreLogic: () => Promise<T>): Promise<{
|
|
37
|
-
result: T;
|
|
38
|
-
prInfo: PRWorkflowResult;
|
|
39
|
-
}>;
|
|
40
|
-
/**
|
|
41
|
-
* Execute core logic wrapped with PR workflow (batch mode)
|
|
42
|
-
* Supports multiple commits for batch processing
|
|
43
|
-
*/
|
|
44
|
-
export declare function runWithPRBatched<T>(options: PRWorkflowOptions, batches: Array<() => Promise<T>>): Promise<{
|
|
45
|
-
results: T[];
|
|
46
|
-
prInfo: PRWorkflowResult;
|
|
47
|
-
}>;
|
|
48
|
-
export {};
|
|
49
|
-
//# sourceMappingURL=pr-orchestrator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pr-orchestrator.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/pr-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,iBAAiB;IACzB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IAErB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAEzD,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IAEf,6CAA6C;IAC7C,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,gDAAgD;IAChD,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAiElD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAmGrD"}
|