@ariso-ai/ivan 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.
Files changed (150) hide show
  1. package/README.md +412 -0
  2. package/dist/agent.d.ts +11 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +48 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/config/config.d.ts +20 -0
  7. package/dist/config/config.d.ts.map +1 -0
  8. package/dist/config/config.js +187 -0
  9. package/dist/config/config.js.map +1 -0
  10. package/dist/config.d.ts +46 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +414 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/database/database.d.ts +12 -0
  15. package/dist/database/database.d.ts.map +1 -0
  16. package/dist/database/database.js +45 -0
  17. package/dist/database/database.js.map +1 -0
  18. package/dist/database/migration.d.ts +11 -0
  19. package/dist/database/migration.d.ts.map +1 -0
  20. package/dist/database/migration.js +64 -0
  21. package/dist/database/migration.js.map +1 -0
  22. package/dist/database/migrations/001_create_jobs_table.d.ts +3 -0
  23. package/dist/database/migrations/001_create_jobs_table.d.ts.map +1 -0
  24. package/dist/database/migrations/001_create_jobs_table.js +14 -0
  25. package/dist/database/migrations/001_create_jobs_table.js.map +1 -0
  26. package/dist/database/migrations/001_initial_schema.d.ts +3 -0
  27. package/dist/database/migrations/001_initial_schema.d.ts.map +1 -0
  28. package/dist/database/migrations/001_initial_schema.js +66 -0
  29. package/dist/database/migrations/001_initial_schema.js.map +1 -0
  30. package/dist/database/migrations/002_create_tasks_table.d.ts +3 -0
  31. package/dist/database/migrations/002_create_tasks_table.d.ts.map +1 -0
  32. package/dist/database/migrations/002_create_tasks_table.js +16 -0
  33. package/dist/database/migrations/002_create_tasks_table.js.map +1 -0
  34. package/dist/database/migrations/003_add_log_to_tasks.d.ts +3 -0
  35. package/dist/database/migrations/003_add_log_to_tasks.d.ts.map +1 -0
  36. package/dist/database/migrations/003_add_log_to_tasks.js +11 -0
  37. package/dist/database/migrations/003_add_log_to_tasks.js.map +1 -0
  38. package/dist/database/migrations/004_add_branch_to_tasks.d.ts +3 -0
  39. package/dist/database/migrations/004_add_branch_to_tasks.d.ts.map +1 -0
  40. package/dist/database/migrations/004_add_branch_to_tasks.js +11 -0
  41. package/dist/database/migrations/004_add_branch_to_tasks.js.map +1 -0
  42. package/dist/database/migrations/005_add_type_to_tasks.d.ts +3 -0
  43. package/dist/database/migrations/005_add_type_to_tasks.d.ts.map +1 -0
  44. package/dist/database/migrations/005_add_type_to_tasks.js +11 -0
  45. package/dist/database/migrations/005_add_type_to_tasks.js.map +1 -0
  46. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.d.ts +3 -0
  47. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.d.ts.map +1 -0
  48. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.js +15 -0
  49. package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.js.map +1 -0
  50. package/dist/database/migrations/006_add_comment_url_to_tasks.d.ts +3 -0
  51. package/dist/database/migrations/006_add_comment_url_to_tasks.d.ts.map +1 -0
  52. package/dist/database/migrations/006_add_comment_url_to_tasks.js +14 -0
  53. package/dist/database/migrations/006_add_comment_url_to_tasks.js.map +1 -0
  54. package/dist/database/migrations/007_add_commit_to_tasks.d.ts +3 -0
  55. package/dist/database/migrations/007_add_commit_to_tasks.d.ts.map +1 -0
  56. package/dist/database/migrations/007_add_commit_to_tasks.js +13 -0
  57. package/dist/database/migrations/007_add_commit_to_tasks.js.map +1 -0
  58. package/dist/database/migrations/008_add_lint_and_test_task_type.d.ts +3 -0
  59. package/dist/database/migrations/008_add_lint_and_test_task_type.d.ts.map +1 -0
  60. package/dist/database/migrations/008_add_lint_and_test_task_type.js +42 -0
  61. package/dist/database/migrations/008_add_lint_and_test_task_type.js.map +1 -0
  62. package/dist/database/migrations/index.d.ts +3 -0
  63. package/dist/database/migrations/index.d.ts.map +1 -0
  64. package/dist/database/migrations/index.js +19 -0
  65. package/dist/database/migrations/index.js.map +1 -0
  66. package/dist/database/types.d.ts +34 -0
  67. package/dist/database/types.d.ts.map +1 -0
  68. package/dist/database/types.js +2 -0
  69. package/dist/database/types.js.map +1 -0
  70. package/dist/database.d.ts +13 -0
  71. package/dist/database.d.ts.map +1 -0
  72. package/dist/database.js +32 -0
  73. package/dist/database.js.map +1 -0
  74. package/dist/index.d.ts +3 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +285 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/scripts/task-executor.d.ts +3 -0
  79. package/dist/scripts/task-executor.d.ts.map +1 -0
  80. package/dist/scripts/task-executor.js +139 -0
  81. package/dist/scripts/task-executor.js.map +1 -0
  82. package/dist/scripts/task-planner.d.ts +3 -0
  83. package/dist/scripts/task-planner.d.ts.map +1 -0
  84. package/dist/scripts/task-planner.js +81 -0
  85. package/dist/scripts/task-planner.js.map +1 -0
  86. package/dist/services/address-executor.d.ts +13 -0
  87. package/dist/services/address-executor.d.ts.map +1 -0
  88. package/dist/services/address-executor.js +202 -0
  89. package/dist/services/address-executor.js.map +1 -0
  90. package/dist/services/address-task-executor.d.ts +19 -0
  91. package/dist/services/address-task-executor.d.ts.map +1 -0
  92. package/dist/services/address-task-executor.js +736 -0
  93. package/dist/services/address-task-executor.js.map +1 -0
  94. package/dist/services/claude-cli-executor.d.ts +14 -0
  95. package/dist/services/claude-cli-executor.d.ts.map +1 -0
  96. package/dist/services/claude-cli-executor.js +241 -0
  97. package/dist/services/claude-cli-executor.js.map +1 -0
  98. package/dist/services/claude-executor.d.ts +14 -0
  99. package/dist/services/claude-executor.d.ts.map +1 -0
  100. package/dist/services/claude-executor.js +274 -0
  101. package/dist/services/claude-executor.js.map +1 -0
  102. package/dist/services/claude-planner.d.ts +15 -0
  103. package/dist/services/claude-planner.d.ts.map +1 -0
  104. package/dist/services/claude-planner.js +107 -0
  105. package/dist/services/claude-planner.js.map +1 -0
  106. package/dist/services/docker-orchestrator.d.ts +11 -0
  107. package/dist/services/docker-orchestrator.d.ts.map +1 -0
  108. package/dist/services/docker-orchestrator.js +85 -0
  109. package/dist/services/docker-orchestrator.js.map +1 -0
  110. package/dist/services/executor-factory.d.ts +14 -0
  111. package/dist/services/executor-factory.d.ts.map +1 -0
  112. package/dist/services/executor-factory.js +14 -0
  113. package/dist/services/executor-factory.js.map +1 -0
  114. package/dist/services/git-manager.d.ts +36 -0
  115. package/dist/services/git-manager.d.ts.map +1 -0
  116. package/dist/services/git-manager.js +728 -0
  117. package/dist/services/git-manager.js.map +1 -0
  118. package/dist/services/index.d.ts +9 -0
  119. package/dist/services/index.d.ts.map +1 -0
  120. package/dist/services/index.js +9 -0
  121. package/dist/services/index.js.map +1 -0
  122. package/dist/services/job-manager.d.ts +30 -0
  123. package/dist/services/job-manager.d.ts.map +1 -0
  124. package/dist/services/job-manager.js +337 -0
  125. package/dist/services/job-manager.js.map +1 -0
  126. package/dist/services/openai-service.d.ts +14 -0
  127. package/dist/services/openai-service.d.ts.map +1 -0
  128. package/dist/services/openai-service.js +186 -0
  129. package/dist/services/openai-service.js.map +1 -0
  130. package/dist/services/pr-service.d.ts +31 -0
  131. package/dist/services/pr-service.d.ts.map +1 -0
  132. package/dist/services/pr-service.js +291 -0
  133. package/dist/services/pr-service.js.map +1 -0
  134. package/dist/services/repository-manager.d.ts +12 -0
  135. package/dist/services/repository-manager.d.ts.map +1 -0
  136. package/dist/services/repository-manager.js +101 -0
  137. package/dist/services/repository-manager.js.map +1 -0
  138. package/dist/services/task-executor.d.ts +20 -0
  139. package/dist/services/task-executor.d.ts.map +1 -0
  140. package/dist/services/task-executor.js +717 -0
  141. package/dist/services/task-executor.js.map +1 -0
  142. package/dist/types/non-interactive-config.d.ts +28 -0
  143. package/dist/types/non-interactive-config.d.ts.map +1 -0
  144. package/dist/types/non-interactive-config.js +2 -0
  145. package/dist/types/non-interactive-config.js.map +1 -0
  146. package/dist/web-server.d.ts +16 -0
  147. package/dist/web-server.d.ts.map +1 -0
  148. package/dist/web-server.js +488 -0
  149. package/dist/web-server.js.map +1 -0
  150. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-task-executor.js","sourceRoot":"","sources":["../../src/services/address-task-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IClaudeExecutor } from './executor-factory.js';
2
+ export declare class ClaudeCliExecutor implements IClaudeExecutor {
3
+ private configManager;
4
+ constructor();
5
+ private checkClaudeCliInstalled;
6
+ executeTask(taskDescription: string, workingDir: string, sessionId?: string): Promise<{
7
+ log: string;
8
+ lastMessage: string;
9
+ sessionId: string;
10
+ }>;
11
+ generateTaskBreakdown(jobDescription: string, workingDir: string): Promise<string[]>;
12
+ validateClaudeCodeInstallation(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=claude-cli-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-cli-executor.d.ts","sourceRoot":"","sources":["../../src/services/claude-cli-executor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,aAAa,CAAgB;;IAMrC,OAAO,CAAC,uBAAuB;IASzB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAiJ9I,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8GpF,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;CAMtD"}
@@ -0,0 +1,241 @@
1
+ import { spawn } from 'child_process';
2
+ import chalk from 'chalk';
3
+ import { ConfigManager } from '../config.js';
4
+ import path from 'path';
5
+ import { execSync } from 'child_process';
6
+ export class ClaudeCliExecutor {
7
+ configManager;
8
+ constructor() {
9
+ this.configManager = new ConfigManager();
10
+ }
11
+ checkClaudeCliInstalled() {
12
+ try {
13
+ execSync('which claude', { stdio: 'ignore' });
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ async executeTask(taskDescription, workingDir, sessionId) {
21
+ console.log(chalk.blue(`šŸ¤– Executing task with Claude Code CLI: ${taskDescription}`));
22
+ console.log(chalk.yellow('šŸ’” Press Ctrl+C to cancel the task'));
23
+ // Check if Claude CLI is installed
24
+ if (!this.checkClaudeCliInstalled()) {
25
+ throw new Error('Claude CLI is not installed. Please install it first or use the SDK executor.');
26
+ }
27
+ try {
28
+ // Determine the original repo path (in case we're in a worktree)
29
+ let originalRepoPath = workingDir;
30
+ // Check if we're in a worktree by looking for .git file (not directory)
31
+ try {
32
+ const gitPath = path.join(workingDir, '.git');
33
+ const gitInfo = execSync(`cat "${gitPath}"`, { encoding: 'utf8' }).trim();
34
+ if (gitInfo.startsWith('gitdir:')) {
35
+ // We're in a worktree, extract the main repo path
36
+ const gitDirPath = gitInfo.replace('gitdir:', '').trim();
37
+ // Go up from .git/worktrees/<name> to get the main repo
38
+ if (gitDirPath.includes('/worktrees/')) {
39
+ originalRepoPath = path.resolve(gitDirPath, '../../..');
40
+ }
41
+ }
42
+ }
43
+ catch {
44
+ // Not a worktree or couldn't determine, use workingDir as-is
45
+ }
46
+ // Get repository-specific allowed tools using the original repo path
47
+ const allowedTools = await this.configManager.getRepoAllowedTools(originalRepoPath);
48
+ // Get the selected model
49
+ const model = this.configManager.getClaudeModel();
50
+ console.log(chalk.gray(`Working directory: ${workingDir}`));
51
+ console.log(chalk.gray(`Model: ${model}`));
52
+ if (allowedTools && allowedTools.length > 0) {
53
+ console.log(chalk.gray(`Allowed tools: ${allowedTools.join(', ')}`));
54
+ }
55
+ console.log(chalk.yellow('ā³ Starting Claude Code CLI execution...'));
56
+ let lastMessage = '';
57
+ const currentSessionId = sessionId || '';
58
+ // Build Claude CLI arguments - options must come before the prompt
59
+ const args = [
60
+ '--print', // Non-interactive mode
61
+ '--model', model,
62
+ '--permission-mode', 'bypassPermissions' // Skip permission prompts
63
+ ];
64
+ // Add allowed tools if specified
65
+ if (allowedTools && allowedTools.length > 0 && !allowedTools.includes('*')) {
66
+ args.push('--allowed-tools', ...allowedTools);
67
+ }
68
+ // Add resume flag if we have a session ID
69
+ if (sessionId) {
70
+ args.push('--resume', sessionId);
71
+ }
72
+ // Add the task description as the last argument (after all options)
73
+ args.push(taskDescription);
74
+ return new Promise((resolve, reject) => {
75
+ // Spawn the Claude CLI process with inherited stdio for real-time output
76
+ const claudeProcess = spawn('claude', args, {
77
+ cwd: workingDir,
78
+ stdio: ['ignore', 'pipe', 'pipe']
79
+ });
80
+ let fullOutput = '';
81
+ let stderr = '';
82
+ // Handle stdout - stream output in real-time
83
+ claudeProcess.stdout.on('data', (data) => {
84
+ const output = data.toString();
85
+ fullOutput += output;
86
+ // Stream output directly to console in real-time
87
+ process.stdout.write(output);
88
+ // Track the last non-empty line as lastMessage
89
+ const lines = output.split('\n').filter((line) => line.trim());
90
+ if (lines.length > 0) {
91
+ lastMessage = lines[lines.length - 1].trim();
92
+ }
93
+ });
94
+ // Handle stderr - stream in real-time as well
95
+ claudeProcess.stderr.on('data', (data) => {
96
+ const output = data.toString();
97
+ stderr += output;
98
+ // Stream stderr to console (it may contain useful status info)
99
+ process.stderr.write(chalk.gray(output));
100
+ });
101
+ // Handle process exit
102
+ claudeProcess.on('close', (code) => {
103
+ if (code === 0) {
104
+ console.log(chalk.green('āœ… Claude Code CLI execution completed'));
105
+ resolve({ log: fullOutput, lastMessage, sessionId: currentSessionId });
106
+ }
107
+ else {
108
+ console.error(chalk.red('āŒ Claude Code CLI execution failed'));
109
+ if (stderr) {
110
+ console.error(chalk.red('Error output:'), stderr);
111
+ }
112
+ reject(new Error(`Claude CLI exited with code ${code}: ${stderr}`));
113
+ }
114
+ });
115
+ // Handle process errors
116
+ claudeProcess.on('error', (error) => {
117
+ console.error(chalk.red('āŒ Failed to start Claude CLI'));
118
+ reject(new Error(`Failed to start Claude CLI: ${error.message}`));
119
+ });
120
+ // Handle Ctrl+C
121
+ const handleInterrupt = () => {
122
+ claudeProcess.kill('SIGINT');
123
+ console.log(chalk.yellow('\nāš ļø Task cancelled by user (Ctrl+C)'));
124
+ reject(new Error('Task execution cancelled by user'));
125
+ };
126
+ process.on('SIGINT', handleInterrupt);
127
+ // Clean up handler when process exits
128
+ claudeProcess.on('close', () => {
129
+ process.removeListener('SIGINT', handleInterrupt);
130
+ });
131
+ });
132
+ }
133
+ catch (error) {
134
+ const err = error;
135
+ if (err.message?.includes('cancel')) {
136
+ throw new Error('Task execution cancelled by user');
137
+ }
138
+ console.error(chalk.red('āŒ Claude Code CLI execution failed:'));
139
+ throw new Error(`Claude Code CLI execution failed: ${err.message}`);
140
+ }
141
+ }
142
+ async generateTaskBreakdown(jobDescription, workingDir) {
143
+ // Check if Claude CLI is installed
144
+ if (!this.checkClaudeCliInstalled()) {
145
+ throw new Error('Claude CLI is not installed. Please install it first or use the SDK executor.');
146
+ }
147
+ try {
148
+ const prompt = `Return a new-line separated list of tasks you would do to best accomplish the following: '${jobDescription}'. Respond with ONLY the new line separated list, do not introduce the results. Each task should be considered as something that should be opened as a pull request. do NOT include tasks like searching, finding/locating files or researching, analyzing the codebase or looking for certain parts of the code.`;
149
+ console.log(chalk.blue('šŸ¤– Generating task breakdown with Claude Code CLI...'));
150
+ console.log(chalk.yellow('šŸ’” Press Ctrl+C to cancel'));
151
+ console.log(chalk.gray(`Working directory: ${workingDir}`));
152
+ // Get the selected model for consistency
153
+ const model = this.configManager.getClaudeModel();
154
+ // Build Claude CLI arguments for task breakdown
155
+ const args = [
156
+ '--print', // Non-interactive mode
157
+ '--model', model,
158
+ '--max-turns', '1', // Only one turn needed for task breakdown
159
+ prompt
160
+ ];
161
+ return new Promise((resolve, reject) => {
162
+ // Spawn the Claude CLI process
163
+ const claudeProcess = spawn('claude', args, {
164
+ cwd: workingDir,
165
+ stdio: ['pipe', 'pipe', 'pipe']
166
+ });
167
+ let taskList = '';
168
+ let stderr = '';
169
+ // Handle stdout - stream in real-time
170
+ claudeProcess.stdout.on('data', (data) => {
171
+ const output = data.toString();
172
+ taskList += output;
173
+ // Stream output directly to console in real-time
174
+ process.stdout.write(output);
175
+ });
176
+ // Handle stderr - stream in real-time
177
+ claudeProcess.stderr.on('data', (data) => {
178
+ const output = data.toString();
179
+ stderr += output;
180
+ // Stream stderr to console
181
+ process.stderr.write(chalk.gray(output));
182
+ });
183
+ // Handle process exit
184
+ claudeProcess.on('close', (code) => {
185
+ if (code === 0) {
186
+ if (!taskList.trim()) {
187
+ reject(new Error('No task list returned from Claude Code CLI'));
188
+ return;
189
+ }
190
+ const tasks = taskList
191
+ .split('\n')
192
+ .map((task) => task.trim())
193
+ .filter((task) => task.length > 0)
194
+ .map((task) => task.replace(/^\d+\.\s*/, '')) // Remove numbering like "1. "
195
+ .map((task) => task.replace(/^-\s*/, '')); // Remove bullet points like "- "
196
+ console.log(chalk.green(`āœ… Generated ${tasks.length} tasks`));
197
+ resolve(tasks);
198
+ }
199
+ else {
200
+ console.error(chalk.red('āŒ Failed to generate task breakdown with Claude Code CLI'));
201
+ if (stderr) {
202
+ console.error(chalk.red('Error output:'), stderr);
203
+ }
204
+ reject(new Error(`Claude CLI exited with code ${code}: ${stderr}`));
205
+ }
206
+ });
207
+ // Handle process errors
208
+ claudeProcess.on('error', (error) => {
209
+ console.error(chalk.red('āŒ Failed to start Claude CLI'));
210
+ reject(new Error(`Failed to start Claude CLI: ${error.message}`));
211
+ });
212
+ // Handle Ctrl+C
213
+ const handleInterrupt = () => {
214
+ claudeProcess.kill('SIGINT');
215
+ console.log(chalk.yellow('\nāš ļø Task breakdown generation cancelled by user (Ctrl+C)'));
216
+ reject(new Error('Task breakdown generation cancelled by user'));
217
+ };
218
+ process.on('SIGINT', handleInterrupt);
219
+ // Clean up handler when process exits
220
+ claudeProcess.on('close', () => {
221
+ process.removeListener('SIGINT', handleInterrupt);
222
+ });
223
+ });
224
+ }
225
+ catch (error) {
226
+ const err = error;
227
+ if (err.message?.includes('cancel')) {
228
+ throw new Error('Task breakdown generation cancelled by user');
229
+ }
230
+ console.error(chalk.red('āŒ Failed to generate task breakdown with Claude Code CLI'));
231
+ throw new Error(`Failed to generate task breakdown: ${err.message}`);
232
+ }
233
+ }
234
+ async validateClaudeCodeInstallation() {
235
+ if (!this.checkClaudeCliInstalled()) {
236
+ throw new Error('Claude CLI is not installed. Install it from: https://docs.claude.com/en/docs/claude-code/installation');
237
+ }
238
+ console.log(chalk.green('āœ… Claude CLI is installed and ready to use'));
239
+ }
240
+ }
241
+ //# sourceMappingURL=claude-cli-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-cli-executor.js","sourceRoot":"","sources":["../../src/services/claude-cli-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IClaudeExecutor } from './executor-factory.js';
2
+ export declare class ClaudeExecutor implements IClaudeExecutor {
3
+ private configManager;
4
+ constructor();
5
+ private getApiKey;
6
+ executeTask(taskDescription: string, workingDir: string, sessionId?: string): Promise<{
7
+ log: string;
8
+ lastMessage: string;
9
+ sessionId: string;
10
+ }>;
11
+ generateTaskBreakdown(jobDescription: string, workingDir: string): Promise<string[]>;
12
+ validateClaudeCodeInstallation(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=claude-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-executor.d.ts","sourceRoot":"","sources":["../../src/services/claude-executor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,aAAa,CAAgB;;YAMvB,SAAS;IAgBjB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAoK9I,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsGpF,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;CAItD"}
@@ -0,0 +1,274 @@
1
+ import { query } from '@anthropic-ai/claude-agent-sdk';
2
+ import chalk from 'chalk';
3
+ import { ConfigManager } from '../config.js';
4
+ import path from 'path';
5
+ import { execSync } from 'child_process';
6
+ export class ClaudeExecutor {
7
+ configManager;
8
+ constructor() {
9
+ this.configManager = new ConfigManager();
10
+ }
11
+ async getApiKey() {
12
+ let config = this.configManager.getConfig();
13
+ if (!config?.anthropicApiKey || config.anthropicApiKey === '') {
14
+ // Prompt for the API key
15
+ await this.configManager.promptForMissingConfig('anthropicApiKey');
16
+ config = this.configManager.getConfig();
17
+ }
18
+ if (!config?.anthropicApiKey) {
19
+ throw new Error('Failed to obtain Anthropic API key');
20
+ }
21
+ return config.anthropicApiKey;
22
+ }
23
+ async executeTask(taskDescription, workingDir, sessionId) {
24
+ console.log(chalk.blue(`šŸ¤– Executing task with Claude Code: ${taskDescription}`));
25
+ console.log(chalk.yellow('šŸ’” Press Ctrl+C to cancel the task'));
26
+ try {
27
+ // Set the API key in environment for the SDK
28
+ process.env.ANTHROPIC_API_KEY = await this.getApiKey();
29
+ // Determine the original repo path (in case we're in a worktree)
30
+ let originalRepoPath = workingDir;
31
+ // Check if we're in a worktree by looking for .git file (not directory)
32
+ try {
33
+ const gitPath = path.join(workingDir, '.git');
34
+ const gitInfo = execSync(`cat "${gitPath}"`, { encoding: 'utf8' }).trim();
35
+ if (gitInfo.startsWith('gitdir:')) {
36
+ // We're in a worktree, extract the main repo path
37
+ const gitDirPath = gitInfo.replace('gitdir:', '').trim();
38
+ // Go up from .git/worktrees/<name> to get the main repo
39
+ if (gitDirPath.includes('/worktrees/')) {
40
+ originalRepoPath = path.resolve(gitDirPath, '../../..');
41
+ }
42
+ }
43
+ }
44
+ catch {
45
+ // Not a worktree or couldn't determine, use workingDir as-is
46
+ }
47
+ // Get repository-specific allowed tools using the original repo path
48
+ const allowedTools = await this.configManager.getRepoAllowedTools(originalRepoPath);
49
+ // Get the selected model
50
+ const model = this.configManager.getClaudeModel();
51
+ console.log(chalk.gray(`Working directory: ${workingDir}`));
52
+ console.log(chalk.gray(`Model: ${model}`));
53
+ if (allowedTools && allowedTools.length > 0) {
54
+ console.log(chalk.gray(`Allowed tools: ${allowedTools.join(', ')}`));
55
+ }
56
+ console.log(chalk.yellow('ā³ Starting Claude Code execution...'));
57
+ let result = '';
58
+ let currentResponse = '';
59
+ let lastMessage = '';
60
+ let currentSessionId = sessionId; // Move this outside the try block
61
+ const abortController = new globalThis.AbortController();
62
+ // Handle Ctrl+C
63
+ const handleInterrupt = () => {
64
+ abortController.abort();
65
+ console.log(chalk.yellow('\nāš ļø Task cancelled by user (Ctrl+C)'));
66
+ };
67
+ process.on('SIGINT', handleInterrupt);
68
+ try {
69
+ // Change to working directory
70
+ const originalDir = process.cwd();
71
+ process.chdir(workingDir);
72
+ // Execute the task using the SDK
73
+ for await (const message of query({
74
+ prompt: taskDescription,
75
+ options: {
76
+ abortController: abortController,
77
+ // 1) Point Claude at the exact worktree it should edit:
78
+ cwd: workingDir,
79
+ // 2) (Optional) If you sometimes hop folders, explicitly whitelist them:
80
+ additionalDirectories: [workingDir],
81
+ // 3) Allow edit tools in headless mode:
82
+ // Use 'acceptEdits' for safer default; 'bypassPermissions' is most permissive.
83
+ permissionMode: 'bypassPermissions',
84
+ allowedTools: allowedTools,
85
+ model: model,
86
+ // Resume from previous session if provided
87
+ resume: sessionId
88
+ }
89
+ })) {
90
+ // Handle different message types based on the SDK types
91
+ if (message.type === 'assistant') {
92
+ // Assistant messages contain the actual content
93
+ if (message.message.content) {
94
+ for (const content of message.message.content) {
95
+ if (content.type === 'text') {
96
+ console.log(content.text);
97
+ currentResponse += content.text + '\n';
98
+ lastMessage = content.text; // Also capture text responses as last message
99
+ }
100
+ else if (content.type === 'tool_use') {
101
+ console.log(chalk.gray(`Using tool: ${content.name}`));
102
+ // Add tool call to the log
103
+ const toolCall = `[Tool Call: ${content.name}]`;
104
+ if (content.input) {
105
+ const inputStr = typeof content.input === 'object'
106
+ ? JSON.stringify(content.input, null, 2)
107
+ : String(content.input);
108
+ currentResponse += `${toolCall}\n${inputStr}\n\n`;
109
+ }
110
+ else {
111
+ currentResponse += `${toolCall}\n\n`;
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ else if (message.type === 'stream_event') {
118
+ // Stream events may contain tool results
119
+ if ('event' in message && message.event?.type === 'tool_result') {
120
+ const toolResult = `[Tool Result]\n${typeof message.event.result === 'object'
121
+ ? JSON.stringify(message.event.result, null, 2)
122
+ : String(message.event.result)}\n`;
123
+ currentResponse += toolResult;
124
+ // Add separation after tool result for next Claude response
125
+ if (currentResponse.trim()) {
126
+ result += currentResponse + '\n' + '─'.repeat(80) + '\n\n';
127
+ currentResponse = '';
128
+ }
129
+ }
130
+ }
131
+ else if (message.type === 'result') {
132
+ // Final result message
133
+ if ('result' in message) {
134
+ console.log(chalk.green(`Result: ${message.result}`));
135
+ currentResponse += message.result + '\n';
136
+ lastMessage = message.result; // Capture the last message
137
+ }
138
+ }
139
+ else if (message.type === 'system') {
140
+ // System messages for initialization
141
+ if (message.subtype === 'init') {
142
+ console.log(chalk.gray(`Initialized with model: ${message.model}`));
143
+ result += `[System: Initialized with model: ${message.model}]\n\n`;
144
+ // Extract session ID from the system message if available
145
+ if ('session_id' in message && typeof message.session_id === 'string') {
146
+ currentSessionId = message.session_id;
147
+ }
148
+ }
149
+ }
150
+ else if ('session_id' in message && typeof message.session_id === 'string') {
151
+ // Capture session ID from any message that has it
152
+ currentSessionId = message.session_id;
153
+ }
154
+ }
155
+ // Add any remaining response
156
+ if (currentResponse.trim()) {
157
+ result += currentResponse + '\n' + '─'.repeat(80) + '\n\n';
158
+ }
159
+ // Restore original directory
160
+ process.chdir(originalDir);
161
+ }
162
+ finally {
163
+ process.removeListener('SIGINT', handleInterrupt);
164
+ }
165
+ console.log(chalk.green('āœ… Claude Code execution completed'));
166
+ return { log: result, lastMessage, sessionId: currentSessionId || '' };
167
+ }
168
+ catch (error) {
169
+ const err = error;
170
+ if (err.message?.includes('abort')) {
171
+ throw new Error('Task execution cancelled by user');
172
+ }
173
+ console.error(chalk.red('āŒ Claude Code execution failed:'));
174
+ throw new Error(`Claude Code execution failed: ${err.message}`);
175
+ }
176
+ }
177
+ async generateTaskBreakdown(jobDescription, workingDir) {
178
+ try {
179
+ // Set the API key in environment for the SDK
180
+ process.env.ANTHROPIC_API_KEY = await this.getApiKey();
181
+ const prompt = `Return a new-line separated list of tasks you would do to best accomplish the following: '${jobDescription}'. Respond with ONLY the new line separated list, do not introduce the results. Each task should be considered as something that should be opened as a pull request. do NOT include tasks like searching, finding/locating files or researching, analyzing the codebase or looking for certain parts of the code.`;
182
+ console.log(chalk.blue('šŸ¤– Generating task breakdown with Claude Code...'));
183
+ console.log(chalk.yellow('šŸ’” Press Ctrl+C to cancel'));
184
+ console.log(chalk.gray(`Working directory: ${workingDir}`));
185
+ let taskList = '';
186
+ const abortController = new globalThis.AbortController();
187
+ // Handle Ctrl+C
188
+ const handleInterrupt = () => {
189
+ abortController.abort();
190
+ console.log(chalk.yellow('\nāš ļø Task breakdown generation cancelled by user (Ctrl+C)'));
191
+ };
192
+ process.on('SIGINT', handleInterrupt);
193
+ try {
194
+ // Change to working directory
195
+ const originalDir = process.cwd();
196
+ process.chdir(workingDir);
197
+ // Get the selected model for consistency
198
+ const model = this.configManager.getClaudeModel();
199
+ // Generate task breakdown using the SDK in plan mode
200
+ for await (const message of query({
201
+ prompt,
202
+ options: {
203
+ abortController,
204
+ systemPrompt: 'You are a task breakdown generator. Respond only with a newline-separated list of tasks.',
205
+ cwd: workingDir,
206
+ model: model,
207
+ // Use plan mode for task breakdown
208
+ permissionMode: 'plan'
209
+ // No allowedTools restriction for task breakdown
210
+ }
211
+ })) {
212
+ // Handle different message types
213
+ if (message.type === 'assistant') {
214
+ // Assistant messages contain the actual content
215
+ if (message.message.content) {
216
+ for (const content of message.message.content) {
217
+ if (content.type === 'text') {
218
+ // Output Claude's message as it comes through
219
+ console.log(content.text);
220
+ taskList += content.text;
221
+ }
222
+ else if (content.type === 'tool_use') {
223
+ // Output tool usage information
224
+ console.log(chalk.gray(`Using tool: ${content.name}`));
225
+ }
226
+ }
227
+ }
228
+ }
229
+ else if (message.type === 'system') {
230
+ // System messages for initialization
231
+ if (message.subtype === 'init') {
232
+ console.log(chalk.gray(`Initialized with model: ${message.model} in plan mode`));
233
+ }
234
+ }
235
+ else if (message.type === 'result') {
236
+ // Final result message
237
+ if ('result' in message) {
238
+ taskList += message.result;
239
+ }
240
+ }
241
+ }
242
+ // Restore original directory
243
+ process.chdir(originalDir);
244
+ }
245
+ finally {
246
+ process.removeListener('SIGINT', handleInterrupt);
247
+ }
248
+ if (!taskList) {
249
+ throw new Error('No task list returned from Claude Code');
250
+ }
251
+ const tasks = taskList
252
+ .split('\n')
253
+ .map((task) => task.trim())
254
+ .filter((task) => task.length > 0)
255
+ .map((task) => task.replace(/^\d+\.\s*/, '')) // Remove numbering like "1. "
256
+ .map((task) => task.replace(/^-\s*/, '')); // Remove bullet points like "- "
257
+ console.log(chalk.green(`āœ… Generated ${tasks.length} tasks`));
258
+ return tasks;
259
+ }
260
+ catch (error) {
261
+ const err = error;
262
+ if (err.message?.includes('abort')) {
263
+ throw new Error('Task breakdown generation cancelled by user');
264
+ }
265
+ console.error(chalk.red('āŒ Failed to generate task breakdown with Claude Code'));
266
+ throw new Error(`Failed to generate task breakdown: ${err.message}`);
267
+ }
268
+ }
269
+ async validateClaudeCodeInstallation() {
270
+ // This will prompt for API key if missing
271
+ await this.getApiKey();
272
+ }
273
+ }
274
+ //# sourceMappingURL=claude-executor.js.map