ghcralph 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -22
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +242 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run.d.ts +2 -9
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +288 -153
- package/dist/commands/run.js.map +1 -1
- package/dist/core/action-executor.d.ts +12 -0
- package/dist/core/action-executor.d.ts.map +1 -1
- package/dist/core/action-executor.js +36 -2
- package/dist/core/action-executor.js.map +1 -1
- package/dist/core/checkpoint-manager.d.ts +8 -0
- package/dist/core/checkpoint-manager.d.ts.map +1 -1
- package/dist/core/checkpoint-manager.js +101 -0
- package/dist/core/checkpoint-manager.js.map +1 -1
- package/dist/core/config-manager.d.ts.map +1 -1
- package/dist/core/config-manager.js +3 -0
- package/dist/core/config-manager.js.map +1 -1
- package/dist/core/config-schema.d.ts +11 -1
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +19 -1
- package/dist/core/config-schema.js.map +1 -1
- package/dist/core/context-builder.d.ts.map +1 -1
- package/dist/core/context-builder.js +28 -1
- package/dist/core/context-builder.js.map +1 -1
- package/dist/core/git-branch-manager.d.ts +8 -0
- package/dist/core/git-branch-manager.d.ts.map +1 -1
- package/dist/core/git-branch-manager.js +52 -0
- package/dist/core/git-branch-manager.js.map +1 -1
- package/dist/core/plan-manager.d.ts +4 -0
- package/dist/core/plan-manager.d.ts.map +1 -1
- package/dist/core/progress-tracker.d.ts +13 -0
- package/dist/core/progress-tracker.d.ts.map +1 -1
- package/dist/core/progress-tracker.js +69 -0
- package/dist/core/progress-tracker.js.map +1 -1
- package/dist/core/response-parser.d.ts +19 -2
- package/dist/core/response-parser.d.ts.map +1 -1
- package/dist/core/response-parser.js +47 -1
- package/dist/core/response-parser.js.map +1 -1
- package/dist/integrations/copilot-agent.d.ts +11 -0
- package/dist/integrations/copilot-agent.d.ts.map +1 -1
- package/dist/integrations/copilot-agent.js +57 -23
- package/dist/integrations/copilot-agent.js.map +1 -1
- package/dist/integrations/index.d.ts +1 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/utils/shell.d.ts +5 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +22 -0
- package/dist/utils/shell.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/run.js
CHANGED
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
* Execute an agentic coding loop
|
|
5
5
|
*/
|
|
6
6
|
import fs from 'node:fs/promises';
|
|
7
|
-
import
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import { execSync } from 'node:child_process';
|
|
9
|
+
import { info, success, error, warn, debug, spinner, heading, code, dim, parseNonNegativeInt } from '../utils/index.js';
|
|
10
|
+
import { waitForKeypress } from '../utils/shell.js';
|
|
8
11
|
import { CopilotAgent } from '../integrations/index.js';
|
|
9
|
-
import { LoopEngine, LocalMarkdownPlan, GitHubPlan, ProgressTracker, GitBranchManager, CheckpointManager, FileSafeguardManager, } from '../core/index.js';
|
|
12
|
+
import { LoopEngine, LocalMarkdownPlan, GitHubPlan, ProgressTracker, GitBranchManager, CheckpointManager, FileSafeguardManager, ConfigManager, } from '../core/index.js';
|
|
10
13
|
/**
|
|
11
14
|
* Format elapsed time as human-readable string
|
|
12
15
|
*/
|
|
@@ -31,6 +34,20 @@ async function readTaskFromFile(filePath) {
|
|
|
31
34
|
throw new Error(`Failed to read task file: ${filePath}`);
|
|
32
35
|
}
|
|
33
36
|
}
|
|
37
|
+
function looksLikeMarkdownPlan(content) {
|
|
38
|
+
return /^\s*-\s*\[[ xX]\]\s+.+$/m.test(content);
|
|
39
|
+
}
|
|
40
|
+
function getGitRoot() {
|
|
41
|
+
try {
|
|
42
|
+
return execSync('git rev-parse --show-toplevel', {
|
|
43
|
+
encoding: 'utf-8',
|
|
44
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
45
|
+
}).trim();
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
34
51
|
/**
|
|
35
52
|
* Create a task object from options
|
|
36
53
|
*/
|
|
@@ -72,35 +89,36 @@ function setupSignalHandlers(engine) {
|
|
|
72
89
|
};
|
|
73
90
|
process.on('SIGINT', handler);
|
|
74
91
|
process.on('SIGTERM', handler);
|
|
92
|
+
return () => {
|
|
93
|
+
process.off('SIGINT', handler);
|
|
94
|
+
process.off('SIGTERM', handler);
|
|
95
|
+
};
|
|
75
96
|
}
|
|
76
97
|
export function registerRunCommand(program) {
|
|
77
98
|
program
|
|
78
99
|
.command('run')
|
|
79
100
|
.description('Execute an agentic coding loop')
|
|
80
101
|
.option('-t, --task <description>', 'Task to execute (inline)')
|
|
81
|
-
.option('-f, --file <path>', 'Read task from file')
|
|
82
|
-
.option('-
|
|
83
|
-
.option('-g, --github <owner/repo>', 'Use GitHub Issues as plan source')
|
|
84
|
-
.option('-l, --label <label>', 'Filter GitHub issues by label')
|
|
85
|
-
.option('--milestone <name>', 'Filter GitHub issues by milestone')
|
|
86
|
-
.option('--assignee <user>', 'Filter GitHub issues by assignee')
|
|
102
|
+
.option('-f, --file <path>', 'Read task (or Markdown plan) from file')
|
|
103
|
+
.option('-g, --github', 'Use GitHub Issues as plan source (configured via .ghcralph/config.json)')
|
|
87
104
|
.option('-c, --context <glob...>', 'Include files matching glob patterns in context')
|
|
88
105
|
.option('-b, --branch <name>', 'Use or create a specific branch name')
|
|
89
106
|
.option('--force', 'Skip branch confirmation prompts')
|
|
90
|
-
.option('--no-commit', 'Disable automatic checkpoint commits')
|
|
91
107
|
.option('--unlimited', 'Allow more than 50 iterations')
|
|
92
108
|
.option('--timeout <minutes>', 'Maximum duration in minutes')
|
|
93
109
|
.option('--allow-delete', 'Allow deletion of pre-existing files')
|
|
94
|
-
.option('-n, --max-iterations <number>', 'Maximum loop iterations', '10')
|
|
95
|
-
.option('--max-tokens <number>', 'Maximum token budget', '100000')
|
|
96
|
-
.option('-m, --model <model>', 'Copilot model to use', 'gpt-4')
|
|
97
110
|
.option('--dry-run', 'Show what would happen without executing')
|
|
111
|
+
.option('--pause-between-tasks', 'Pause for human review after each task (strict Ralph mode)')
|
|
98
112
|
.addHelpText('after', `
|
|
113
|
+
Config-backed settings (set via .ghcralph/config.json or GHCRALPH_* env vars):
|
|
114
|
+
- maxIterations, maxTokens, defaultModel, autoCommit, branchPrefix
|
|
115
|
+
- githubRepo (+ optional filters: githubLabel, githubMilestone, githubAssignee)
|
|
116
|
+
|
|
99
117
|
Examples:
|
|
100
118
|
$ ghcralph run --task "Add input validation to the login form"
|
|
101
|
-
$ ghcralph run --file tasks/refactor.md
|
|
102
|
-
$ ghcralph run --
|
|
103
|
-
$ ghcralph run --github
|
|
119
|
+
$ ghcralph run --file tasks/refactor.md
|
|
120
|
+
$ ghcralph run --file TODO.md
|
|
121
|
+
$ ghcralph run --github
|
|
104
122
|
$ ghcralph run --task "Fix bug" --context "src/**/*.ts" --branch fix/login-bug
|
|
105
123
|
$ ghcralph run --task "Large refactor" --unlimited --timeout 60
|
|
106
124
|
|
|
@@ -110,34 +128,16 @@ See also:
|
|
|
110
128
|
ghcralph init Initialize Ralph in your project
|
|
111
129
|
`)
|
|
112
130
|
.action(async (options) => {
|
|
113
|
-
if (!options.task && !options.file && !options.
|
|
114
|
-
error('Please provide a task with --task, --file,
|
|
115
|
-
process.exit(1);
|
|
116
|
-
}
|
|
117
|
-
// Validate numeric inputs
|
|
118
|
-
const maxIterationsResult = parsePositiveInt(options.maxIterations, 'max-iterations');
|
|
119
|
-
if (!maxIterationsResult.valid) {
|
|
120
|
-
error(maxIterationsResult.error ?? 'Invalid max-iterations value');
|
|
131
|
+
if (!options.task && !options.file && !options.github) {
|
|
132
|
+
error('Please provide a task with --task, --file, or --github');
|
|
121
133
|
process.exit(1);
|
|
122
134
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
if (options.maxTokens) {
|
|
130
|
-
const maxTokensResult = parsePositiveInt(options.maxTokens, 'max-tokens');
|
|
131
|
-
if (!maxTokensResult.valid) {
|
|
132
|
-
error(maxTokensResult.error ?? 'Invalid max-tokens value');
|
|
133
|
-
process.exit(1);
|
|
134
|
-
}
|
|
135
|
-
if (maxTokensResult.value === undefined) {
|
|
136
|
-
error(maxTokensResult.error ?? 'Invalid max-tokens value');
|
|
137
|
-
process.exit(1);
|
|
138
|
-
}
|
|
139
|
-
maxTokens = maxTokensResult.value;
|
|
140
|
-
}
|
|
135
|
+
const gitRoot = getGitRoot();
|
|
136
|
+
const configManager = new ConfigManager(gitRoot ?? undefined);
|
|
137
|
+
const config = await configManager.load();
|
|
138
|
+
const maxIterations = config.maxIterations;
|
|
139
|
+
const maxTokens = config.maxTokens;
|
|
140
|
+
const model = config.defaultModel;
|
|
141
141
|
let maxDurationMinutes = 0;
|
|
142
142
|
if (options.timeout) {
|
|
143
143
|
const timeoutResult = parseNonNegativeInt(options.timeout, 'timeout');
|
|
@@ -156,13 +156,28 @@ See also:
|
|
|
156
156
|
error('More than 50 iterations requires --unlimited flag');
|
|
157
157
|
process.exit(1);
|
|
158
158
|
}
|
|
159
|
+
let githubRepo;
|
|
160
|
+
let githubLabel;
|
|
161
|
+
let githubMilestone;
|
|
162
|
+
let githubAssignee;
|
|
163
|
+
if (options.github) {
|
|
164
|
+
githubRepo = config.githubRepo;
|
|
165
|
+
if (!githubRepo) {
|
|
166
|
+
error('Missing GitHub repository. Set githubRepo in .ghcralph/config.json (or GHCRALPH_GITHUB_REPO)');
|
|
167
|
+
process.exit(1);
|
|
168
|
+
}
|
|
169
|
+
githubLabel = config.githubLabel;
|
|
170
|
+
githubMilestone = config.githubMilestone;
|
|
171
|
+
githubAssignee = config.githubAssignee;
|
|
172
|
+
}
|
|
159
173
|
// Create task - either from options or from plan source
|
|
160
174
|
let task;
|
|
161
175
|
let planManager = null;
|
|
176
|
+
let planFilePath;
|
|
162
177
|
try {
|
|
163
|
-
if (
|
|
178
|
+
if (githubRepo) {
|
|
164
179
|
// Parse owner/repo
|
|
165
|
-
const parts =
|
|
180
|
+
const parts = githubRepo.split('/');
|
|
166
181
|
if (parts.length !== 2) {
|
|
167
182
|
error('GitHub repository must be in format: owner/repo');
|
|
168
183
|
process.exit(1);
|
|
@@ -177,12 +192,12 @@ See also:
|
|
|
177
192
|
owner,
|
|
178
193
|
repo,
|
|
179
194
|
};
|
|
180
|
-
if (
|
|
181
|
-
ghConfig.label =
|
|
182
|
-
if (
|
|
183
|
-
ghConfig.milestone =
|
|
184
|
-
if (
|
|
185
|
-
ghConfig.assignee =
|
|
195
|
+
if (githubLabel)
|
|
196
|
+
ghConfig.label = githubLabel;
|
|
197
|
+
if (githubMilestone)
|
|
198
|
+
ghConfig.milestone = githubMilestone;
|
|
199
|
+
if (githubAssignee)
|
|
200
|
+
ghConfig.assignee = githubAssignee;
|
|
186
201
|
planManager = new GitHubPlan(ghConfig);
|
|
187
202
|
await planManager.initialize();
|
|
188
203
|
const nextTask = await planManager.getNextTask();
|
|
@@ -194,20 +209,37 @@ See also:
|
|
|
194
209
|
await planManager.startTask(task.id);
|
|
195
210
|
info(`Selected issue from GitHub: ${task.title}`);
|
|
196
211
|
}
|
|
197
|
-
else if (options.plan) {
|
|
198
|
-
// Load task from Markdown plan file
|
|
199
|
-
planManager = new LocalMarkdownPlan(options.plan);
|
|
200
|
-
await planManager.initialize();
|
|
201
|
-
const nextTask = await planManager.getNextTask();
|
|
202
|
-
if (!nextTask) {
|
|
203
|
-
success('All tasks in the plan are complete!');
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
task = nextTask;
|
|
207
|
-
info(`Selected task from plan: ${task.title}`);
|
|
208
|
-
}
|
|
209
212
|
else {
|
|
210
|
-
|
|
213
|
+
const fileArg = options.file;
|
|
214
|
+
if (fileArg) {
|
|
215
|
+
const content = await readTaskFromFile(fileArg);
|
|
216
|
+
const ext = path.extname(fileArg).toLowerCase();
|
|
217
|
+
const isMarkdown = ext === '.md' || ext === '.markdown';
|
|
218
|
+
if (isMarkdown && looksLikeMarkdownPlan(content)) {
|
|
219
|
+
planManager = new LocalMarkdownPlan(fileArg);
|
|
220
|
+
planFilePath = fileArg;
|
|
221
|
+
await planManager.initialize();
|
|
222
|
+
const nextTask = await planManager.getNextTask();
|
|
223
|
+
if (!nextTask) {
|
|
224
|
+
success('All tasks in the plan are complete!');
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
task = nextTask;
|
|
228
|
+
info(`Selected task from plan: ${task.title}`);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
task = {
|
|
232
|
+
id: `task-${Date.now()}`,
|
|
233
|
+
title: fileArg,
|
|
234
|
+
content,
|
|
235
|
+
status: 'pending',
|
|
236
|
+
source: 'local',
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
task = await createTask(options);
|
|
242
|
+
}
|
|
211
243
|
}
|
|
212
244
|
}
|
|
213
245
|
catch (err) {
|
|
@@ -218,17 +250,23 @@ See also:
|
|
|
218
250
|
console.log('');
|
|
219
251
|
console.log(heading('🤖 GitHub Copilot Ralph - Run'));
|
|
220
252
|
console.log('');
|
|
221
|
-
if (
|
|
222
|
-
console.log(` ${dim('Source:')} GitHub Issues (${code(
|
|
223
|
-
if (
|
|
224
|
-
console.log(` ${dim('Label filter:')} ${code(
|
|
253
|
+
if (githubRepo) {
|
|
254
|
+
console.log(` ${dim('Source:')} GitHub Issues (${code(githubRepo)})`);
|
|
255
|
+
if (githubLabel) {
|
|
256
|
+
console.log(` ${dim('Label filter:')} ${code(githubLabel)}`);
|
|
257
|
+
}
|
|
258
|
+
if (githubMilestone) {
|
|
259
|
+
console.log(` ${dim('Milestone filter:')} ${code(githubMilestone)}`);
|
|
260
|
+
}
|
|
261
|
+
if (githubAssignee) {
|
|
262
|
+
console.log(` ${dim('Assignee filter:')} ${code(githubAssignee)}`);
|
|
225
263
|
}
|
|
226
264
|
}
|
|
227
|
-
else if (
|
|
228
|
-
console.log(` ${dim('Plan:')} ${code(
|
|
265
|
+
else if (planFilePath) {
|
|
266
|
+
console.log(` ${dim('Plan:')} ${code(planFilePath)}`);
|
|
229
267
|
}
|
|
230
268
|
console.log(` ${dim('Task:')} ${task.title}`);
|
|
231
|
-
console.log(` ${dim('Model:')} ${code(
|
|
269
|
+
console.log(` ${dim('Model:')} ${code(model)}`);
|
|
232
270
|
console.log(` ${dim('Max iterations:')} ${maxIterations}`);
|
|
233
271
|
console.log(` ${dim('Max tokens:')} ${maxTokens.toLocaleString()}`);
|
|
234
272
|
if (options.dryRun) {
|
|
@@ -243,7 +281,7 @@ See also:
|
|
|
243
281
|
}
|
|
244
282
|
console.log('');
|
|
245
283
|
// Setup git branch isolation
|
|
246
|
-
const gitManager = new GitBranchManager();
|
|
284
|
+
const gitManager = new GitBranchManager({ branchPrefix: config.branchPrefix });
|
|
247
285
|
const isGitRepo = await gitManager.isGitRepository();
|
|
248
286
|
let branchInfo = null;
|
|
249
287
|
if (isGitRepo) {
|
|
@@ -289,11 +327,6 @@ See also:
|
|
|
289
327
|
}
|
|
290
328
|
console.log(` ${dim('Branch:')} ${code(branchInfo.branchName)}`);
|
|
291
329
|
}
|
|
292
|
-
// Create agent and engine with context configuration
|
|
293
|
-
const agent = new CopilotAgent({
|
|
294
|
-
model: options.model ?? 'gpt-4',
|
|
295
|
-
maxTokensPerRequest: 4096,
|
|
296
|
-
});
|
|
297
330
|
// Build context config, only including contextGlobs if provided
|
|
298
331
|
const contextConfig = {
|
|
299
332
|
includeGitDiff: true,
|
|
@@ -303,104 +336,206 @@ See also:
|
|
|
303
336
|
if (options.context) {
|
|
304
337
|
contextConfig.contextGlobs = options.context;
|
|
305
338
|
}
|
|
306
|
-
const engine = new LoopEngine(agent, {
|
|
307
|
-
maxIterations,
|
|
308
|
-
maxTokens,
|
|
309
|
-
maxDurationMinutes,
|
|
310
|
-
allowUnlimited: options.unlimited === true,
|
|
311
|
-
contextConfig,
|
|
312
|
-
});
|
|
313
339
|
// Create progress tracker
|
|
314
340
|
const progressTracker = new ProgressTracker(undefined, maxIterations);
|
|
315
341
|
// Create checkpoint manager for auto-commits
|
|
316
342
|
const checkpointManager = new CheckpointManager({
|
|
317
|
-
autoCommit:
|
|
343
|
+
autoCommit: config.autoCommit,
|
|
318
344
|
});
|
|
319
345
|
// Create file safeguard manager
|
|
320
346
|
const fileSafeguard = new FileSafeguardManager({
|
|
321
347
|
allowDeleteExisting: options.allowDelete === true,
|
|
322
348
|
});
|
|
323
349
|
await fileSafeguard.initialize();
|
|
324
|
-
// Setup signal handlers for graceful shutdown
|
|
325
|
-
setupSignalHandlers(engine);
|
|
326
|
-
// Setup event listeners
|
|
327
|
-
const events = engine.getEvents();
|
|
328
350
|
const startTime = new Date();
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
351
|
+
let exitCode = 0;
|
|
352
|
+
let totalTasksProcessed = 0;
|
|
353
|
+
let totalTasksCompleted = 0;
|
|
354
|
+
let totalTasksFailed = 0;
|
|
355
|
+
const maxRetriesPerTask = config.maxRetriesPerTask ?? 2;
|
|
356
|
+
const autoPush = config.autoPush ?? false;
|
|
357
|
+
// ========== MULTI-TASK ITERATION LOOP ==========
|
|
358
|
+
// This is the core fix: process ALL tasks in the plan, not just the first one
|
|
359
|
+
let currentTask = task;
|
|
360
|
+
while (currentTask) {
|
|
361
|
+
// Capture task in a const for this iteration (helps TypeScript narrowing)
|
|
362
|
+
const activeTask = currentTask;
|
|
363
|
+
totalTasksProcessed++;
|
|
364
|
+
let taskAttempt = 0;
|
|
365
|
+
let taskCompleted = false;
|
|
366
|
+
let taskFailed = false;
|
|
367
|
+
info(`\n📋 Task ${totalTasksProcessed}: ${activeTask.title}`);
|
|
368
|
+
// Retry loop for the current task (with fresh agent per attempt)
|
|
369
|
+
while (!taskCompleted && !taskFailed && taskAttempt < maxRetriesPerTask) {
|
|
370
|
+
taskAttempt++;
|
|
371
|
+
if (taskAttempt > 1) {
|
|
372
|
+
info(`\n🔄 Retry ${taskAttempt}/${maxRetriesPerTask} for task: ${activeTask.title}`);
|
|
373
|
+
}
|
|
374
|
+
// Create FRESH agent instance for each attempt (Ralph pattern core principle)
|
|
375
|
+
const agent = new CopilotAgent({
|
|
376
|
+
model,
|
|
377
|
+
maxTokensPerRequest: 4096,
|
|
378
|
+
});
|
|
379
|
+
const engine = new LoopEngine(agent, {
|
|
380
|
+
maxIterations,
|
|
381
|
+
maxTokens,
|
|
382
|
+
maxDurationMinutes,
|
|
383
|
+
allowUnlimited: options.unlimited === true,
|
|
384
|
+
contextConfig,
|
|
385
|
+
});
|
|
386
|
+
// Setup signal handlers for graceful shutdown
|
|
387
|
+
const cleanupSignalHandlers = setupSignalHandlers(engine);
|
|
388
|
+
// Setup event listeners
|
|
389
|
+
const events = engine.getEvents();
|
|
390
|
+
events.on('iterationStart', (iteration, state) => {
|
|
391
|
+
debug(`Iteration ${iteration}/${maxIterations} - Tokens: ${state.tokensUsed.toLocaleString()}`);
|
|
392
|
+
});
|
|
393
|
+
events.on('iterationEnd', (record, state) => {
|
|
394
|
+
const status = record.success ? '✓' : '✗';
|
|
395
|
+
info(`Iteration ${record.iteration}: ${status} (${record.tokensUsed.toLocaleString()} tokens)`);
|
|
396
|
+
if (record.summary) {
|
|
397
|
+
console.log(` ${dim(record.summary)}`);
|
|
398
|
+
}
|
|
399
|
+
// Create checkpoint commit after successful iterations
|
|
400
|
+
if (record.success && checkpointManager.isAutoCommitEnabled()) {
|
|
401
|
+
checkpointManager
|
|
402
|
+
.createCheckpoint(record.iteration, record.summary ?? 'iteration complete', record.tokensUsed)
|
|
403
|
+
.then((checkpoint) => {
|
|
404
|
+
if (checkpoint) {
|
|
405
|
+
debug(`Checkpoint created: ${checkpoint.commitHash.substring(0, 7)}`);
|
|
406
|
+
// Update progress with commit hash
|
|
407
|
+
state.lastCheckpoint = checkpoint.commitHash;
|
|
408
|
+
}
|
|
409
|
+
})
|
|
410
|
+
.catch(() => {
|
|
411
|
+
// Ignore checkpoint errors
|
|
412
|
+
});
|
|
347
413
|
}
|
|
348
|
-
|
|
349
|
-
.catch(() => {
|
|
350
|
-
|
|
414
|
+
// Save progress after each iteration
|
|
415
|
+
progressTracker.save(state).catch(() => {
|
|
416
|
+
// Ignore save errors
|
|
417
|
+
});
|
|
418
|
+
});
|
|
419
|
+
events.on('error', (err) => {
|
|
420
|
+
error(`Loop error: ${err.message}`);
|
|
421
|
+
});
|
|
422
|
+
events.on('warning', (type, message) => {
|
|
423
|
+
warn(`Warning: ${message}`);
|
|
351
424
|
});
|
|
425
|
+
// Run the loop for this task
|
|
426
|
+
const loopSpinner = spinner('Running agentic loop...');
|
|
427
|
+
loopSpinner.start();
|
|
428
|
+
try {
|
|
429
|
+
const finalState = await engine.start(activeTask);
|
|
430
|
+
loopSpinner.stop();
|
|
431
|
+
console.log('');
|
|
432
|
+
// Print iteration summary
|
|
433
|
+
console.log(` ${dim('Status:')} ${finalState.status}`);
|
|
434
|
+
console.log(` ${dim('Iterations:')} ${finalState.iteration}/${maxIterations}`);
|
|
435
|
+
console.log(` ${dim('Tokens used:')} ${finalState.tokensUsed.toLocaleString()}`);
|
|
436
|
+
const successfulIterations = finalState.iterations.filter((i) => i.success).length;
|
|
437
|
+
console.log(` ${dim('Successful iterations:')} ${successfulIterations}`);
|
|
438
|
+
console.log('');
|
|
439
|
+
if (finalState.status === 'completed') {
|
|
440
|
+
taskCompleted = true;
|
|
441
|
+
// Mark task as complete in plan file if using a plan
|
|
442
|
+
if (planManager) {
|
|
443
|
+
await planManager.completeTask(activeTask.id);
|
|
444
|
+
info(`Task marked as complete in plan file`);
|
|
445
|
+
}
|
|
446
|
+
// Document result in progress file
|
|
447
|
+
await progressTracker.appendTaskResult(activeTask, 'completed', taskAttempt, `Completed in ${finalState.iteration} iterations`);
|
|
448
|
+
// Create a task-level checkpoint commit
|
|
449
|
+
await checkpointManager.createTaskCheckpoint(activeTask.title, activeTask.id, `Task completed in ${finalState.iteration} iterations`);
|
|
450
|
+
// Push to remote if configured
|
|
451
|
+
if (autoPush && isGitRepo) {
|
|
452
|
+
info('Pushing changes to remote...');
|
|
453
|
+
const pushed = await gitManager.pushToRemote();
|
|
454
|
+
if (pushed) {
|
|
455
|
+
success('Changes pushed to remote');
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
success(`✓ Task completed: ${activeTask.title}`);
|
|
459
|
+
totalTasksCompleted++;
|
|
460
|
+
}
|
|
461
|
+
else if (finalState.status === 'stopped') {
|
|
462
|
+
// User requested stop - exit the entire run
|
|
463
|
+
warn('Loop was stopped by user');
|
|
464
|
+
// Document the stop
|
|
465
|
+
await progressTracker.appendTaskResult(activeTask, 'stuck', taskAttempt, 'Stopped by user');
|
|
466
|
+
// Exit the multi-task loop
|
|
467
|
+
currentTask = null;
|
|
468
|
+
continue;
|
|
469
|
+
}
|
|
470
|
+
else if (finalState.status === 'failed') {
|
|
471
|
+
warn(`✗ Task attempt ${taskAttempt} failed: ${activeTask.title}`);
|
|
472
|
+
// Document failure for learning
|
|
473
|
+
await progressTracker.appendTaskResult(activeTask, 'failed', taskAttempt, 'Loop execution failed');
|
|
474
|
+
// Create failure checkpoint
|
|
475
|
+
await checkpointManager.createFailureCheckpoint(activeTask.title, activeTask.id, taskAttempt, 'Loop execution failed');
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
catch (err) {
|
|
479
|
+
loopSpinner.fail('Loop failed');
|
|
480
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
481
|
+
error(errMsg);
|
|
482
|
+
// Document failure
|
|
483
|
+
await progressTracker.appendTaskResult(activeTask, 'failed', taskAttempt, undefined, errMsg);
|
|
484
|
+
// Create failure checkpoint
|
|
485
|
+
await checkpointManager.createFailureCheckpoint(activeTask.title, activeTask.id, taskAttempt, errMsg);
|
|
486
|
+
}
|
|
487
|
+
finally {
|
|
488
|
+
cleanupSignalHandlers();
|
|
489
|
+
await agent.destroy();
|
|
490
|
+
}
|
|
352
491
|
}
|
|
353
|
-
//
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
});
|
|
358
|
-
events.on('error', (err) => {
|
|
359
|
-
error(`Loop error: ${err.message}`);
|
|
360
|
-
});
|
|
361
|
-
events.on('warning', (type, message) => {
|
|
362
|
-
warn(`Warning: ${message}`);
|
|
363
|
-
});
|
|
364
|
-
// Run the loop
|
|
365
|
-
const loopSpinner = spinner('Running agentic loop...');
|
|
366
|
-
loopSpinner.start();
|
|
367
|
-
try {
|
|
368
|
-
const finalState = await engine.start(task);
|
|
369
|
-
loopSpinner.stop();
|
|
370
|
-
console.log('');
|
|
371
|
-
// Print summary
|
|
372
|
-
console.log(heading('📊 Summary'));
|
|
373
|
-
console.log('');
|
|
374
|
-
console.log(` ${dim('Status:')} ${finalState.status}`);
|
|
375
|
-
console.log(` ${dim('Iterations:')} ${finalState.iteration}/${maxIterations}`);
|
|
376
|
-
console.log(` ${dim('Tokens used:')} ${finalState.tokensUsed.toLocaleString()}`);
|
|
377
|
-
console.log(` ${dim('Elapsed time:')} ${formatElapsedTime(startTime)}`);
|
|
378
|
-
const successfulIterations = finalState.iterations.filter((i) => i.success).length;
|
|
379
|
-
console.log(` ${dim('Successful iterations:')} ${successfulIterations}`);
|
|
380
|
-
console.log('');
|
|
381
|
-
if (finalState.status === 'completed') {
|
|
382
|
-
// Mark task as complete in plan file if using a plan
|
|
492
|
+
// Check if all retries exhausted without completion
|
|
493
|
+
if (!taskCompleted && currentTask) {
|
|
494
|
+
taskFailed = true;
|
|
495
|
+
totalTasksFailed++;
|
|
383
496
|
if (planManager) {
|
|
384
|
-
await planManager.
|
|
385
|
-
info(`Task marked as complete in plan file`);
|
|
497
|
+
await planManager.failTask(activeTask.id);
|
|
386
498
|
}
|
|
387
|
-
|
|
499
|
+
error(`❌ Task failed after ${maxRetriesPerTask} attempts: ${activeTask.title}`);
|
|
500
|
+
exitCode = 1;
|
|
388
501
|
}
|
|
389
|
-
|
|
390
|
-
|
|
502
|
+
// Optional pause for human review (strict Ralph mode)
|
|
503
|
+
if (options.pauseBetweenTasks && planManager && !taskFailed) {
|
|
504
|
+
console.log('');
|
|
505
|
+
info('Press any key to continue to next task, or Ctrl+C to stop...');
|
|
506
|
+
await waitForKeypress();
|
|
391
507
|
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
508
|
+
// Get next task from the plan (if using a plan)
|
|
509
|
+
if (planManager) {
|
|
510
|
+
// Reload plan file to pick up any external changes
|
|
511
|
+
await planManager.reload?.();
|
|
512
|
+
currentTask = await planManager.getNextTask();
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
// Single task mode (--task flag) - exit after one task
|
|
516
|
+
currentTask = null;
|
|
398
517
|
}
|
|
399
518
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
519
|
+
// ========== FINAL SUMMARY ==========
|
|
520
|
+
console.log('');
|
|
521
|
+
console.log(heading('📊 Final Summary'));
|
|
522
|
+
console.log('');
|
|
523
|
+
console.log(` ${dim('Total tasks processed:')} ${totalTasksProcessed}`);
|
|
524
|
+
console.log(` ${dim('Tasks completed:')} ${totalTasksCompleted}`);
|
|
525
|
+
console.log(` ${dim('Tasks failed:')} ${totalTasksFailed}`);
|
|
526
|
+
console.log(` ${dim('Elapsed time:')} ${formatElapsedTime(startTime)}`);
|
|
527
|
+
console.log('');
|
|
528
|
+
if (totalTasksFailed === 0 && totalTasksCompleted > 0) {
|
|
529
|
+
success(`🎉 All ${totalTasksCompleted} tasks completed successfully!`);
|
|
530
|
+
}
|
|
531
|
+
else if (totalTasksCompleted > 0) {
|
|
532
|
+
warn(`Completed ${totalTasksCompleted} tasks, ${totalTasksFailed} failed`);
|
|
533
|
+
}
|
|
534
|
+
else if (totalTasksProcessed === 0) {
|
|
535
|
+
success('No pending tasks found - all tasks are complete!');
|
|
536
|
+
}
|
|
537
|
+
if (exitCode !== 0) {
|
|
538
|
+
process.exit(exitCode);
|
|
404
539
|
}
|
|
405
540
|
});
|
|
406
541
|
}
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1I,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,kBAAkB,CAAC;AAwB1B;;GAEG;AACH,SAAS,iBAAiB,CAAC,SAAe;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAEzC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,OAAmB;IAC3C,IAAI,OAAe,CAAC;IACpB,IAAI,KAAa,CAAC;IAElB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACvB,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;QACxB,KAAK;QACL,OAAO;QACP,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;KACzC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAkB;IAC7C,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,iBAAiB,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;SAC9D,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;SAClD,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;SACnE,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,CAAC;SACvE,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC9D,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACjE,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;SAC/D,MAAM,CAAC,yBAAyB,EAAE,iDAAiD,CAAC;SACpF,MAAM,CAAC,qBAAqB,EAAE,sCAAsC,CAAC;SACrE,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;SAC7D,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;SAChE,MAAM,CAAC,+BAA+B,EAAE,yBAAyB,EAAE,IAAI,CAAC;SACxE,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,QAAQ,CAAC;SACjE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,OAAO,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;CAazB,CAAC;SACG,MAAM,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvE,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,0BAA0B;QAC1B,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACtF,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,CAAC,mBAAmB,CAAC,KAAK,IAAI,8BAA8B,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,mBAAmB,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5C,KAAK,CAAC,mBAAmB,CAAC,KAAK,IAAI,8BAA8B,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC;QAEhD,IAAI,SAAS,GAAG,MAAM,CAAC;QACvB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC1E,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxC,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACtE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACzB,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC;QAC3C,CAAC;QAED,2BAA2B;QAC3B,IAAI,aAAa,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7C,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,wDAAwD;QACxD,IAAI,IAAU,CAAC;QACf,IAAI,WAAW,GAAuB,IAAI,CAAC;QAE3C,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,mBAAmB;gBACnB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,+BAA+B;gBAC/B,MAAM,QAAQ,GAMV;oBACF,KAAK;oBACL,IAAI;iBACL,CAAC;gBACF,IAAI,OAAO,CAAC,KAAK;oBAAE,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAClD,IAAI,OAAO,CAAC,SAAS;oBAAE,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC9D,IAAI,OAAO,CAAC,QAAQ;oBAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAE3D,WAAW,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,0BAA0B,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,IAAI,GAAG,QAAQ,CAAC;gBAChB,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,+BAA+B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,oCAAoC;gBACpC,WAAW,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,qCAAqC,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBACD,IAAI,GAAG,QAAQ,CAAC;gBAChB,IAAI,CAAC,4BAA4B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,iBAAiB,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAErE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,qCAAqC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,6BAA6B;QAC7B,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE,CAAC;QACrD,IAAI,UAAU,GAA4E,IAAI,CAAC;QAE/F,IAAI,SAAS,EAAE,CAAC;YACd,iCAAiC;YACjC,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,mBAAmB,EAAE,CAAC;YAEhE,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChD,IAAI,CAAC,yBAAyB,gBAAgB,CAAC,aAAa,uBAAuB,gBAAgB,CAAC,cAAc,kBAAkB,CAAC,CAAC;gBACtI,IAAI,CAAC,mEAAmE,CAAC,CAAC;gBAE1E,yBAAyB;gBACzB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACpB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC;oBAChD,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,CAAC,+BAA+B,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAE1D,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,kDAAkD;gBAClD,MAAM,aAAa,GAAyC,EAAE,CAAC;gBAC/D,IAAI,OAAO,CAAC,MAAM;oBAAE,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC1D,IAAI,OAAO,CAAC,KAAK;oBAAE,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAEvD,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBAEtF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,CAAC,mCAAmC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,0BAA0B,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC1D,qDAAqD;gBACrD,IAAI,CAAC,qBAAqB,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC;gBACnE,IAAI,CAAC,mEAAmE,CAAC,CAAC;gBAC1E,UAAU,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;YACtG,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;gBACpG,KAAK,CAAC,yBAAyB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,qDAAqD;QACrD,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC;YAC7B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;YAC/B,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,aAAa,GAKf;YACF,cAAc,EAAE,IAAI;YACpB,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;SAC9B,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,aAAa,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE;YACnC,aAAa;YACb,SAAS;YACT,kBAAkB;YAClB,cAAc,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;YAC1C,aAAa;SACd,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAEtE,6CAA6C;QAC7C,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC9C,UAAU,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI;SACtC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC;YAC7C,mBAAmB,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;SAClD,CAAC,CAAC;QACH,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEjC,8CAA8C;QAC9C,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE5B,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC/C,KAAK,CACH,aAAa,SAAS,IAAI,aAAa,cAAc,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CACzF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1C,IAAI,CACF,aAAa,MAAM,CAAC,SAAS,KAAK,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAC1F,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;YAED,uDAAuD;YACvD,IAAI,MAAM,CAAC,OAAO,IAAI,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBAC9D,iBAAiB;qBACd,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC;qBAC7F,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;oBACnB,IAAI,UAAU,EAAE,CAAC;wBACf,KAAK,CAAC,uBAAuB,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBACtE,mCAAmC;wBACnC,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC;oBAC/C,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE;oBACV,2BAA2B;gBAC7B,CAAC,CAAC,CAAC;YACP,CAAC;YAED,qCAAqC;YACrC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACrC,qBAAqB;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,KAAK,CAAC,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YACrC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACvD,WAAW,CAAC,KAAK,EAAE,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE5C,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,gBAAgB;YAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEzE,MAAM,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,wBAAwB,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;YAE1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACtC,qDAAqD;gBACrD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC3C,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;gBACD,KAAK,CAAC,aAAa,CAAC,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|