ghcralph 0.1.1 β 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 +27 -16
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +38 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run.d.ts +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +177 -86
- 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-schema.d.ts +5 -1
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +13 -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 +28 -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 +55 -0
- 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/README.md
CHANGED
|
@@ -11,6 +11,7 @@ Run **autonomous, checkpointed coding loops** with GitHub Copilotβdesigned to
|
|
|
11
11
|
|
|
12
12
|
- πΏ **Branch isolation**: works on a `ghcralph/*` branch (never modifies `main`/`master` directly)
|
|
13
13
|
- πΎ **Automatic checkpoints**: commits after each iteration for easy rollback
|
|
14
|
+
- π **Multi-task processing**: processes ALL tasks in plan files automatically
|
|
14
15
|
- π‘οΈ **Guardrails**: iteration limits, token budgets, timeouts, circuit breaker on repeated failures
|
|
15
16
|
- π **Flexible plan sources**: GitHub Issues or local Markdown task lists
|
|
16
17
|
- π» **Cross-platform**: Windows, macOS, Linux
|
|
@@ -76,14 +77,15 @@ This approach prioritizes **safety** (automatic checkpoints, git isolation) and
|
|
|
76
77
|
|
|
77
78
|
## Key Features
|
|
78
79
|
|
|
79
|
-
- π **
|
|
80
|
+
- π **Multi-Task Loop**: Processes ALL tasks in a plan file automatically with fresh AI agent per task
|
|
80
81
|
- π **Flexible Plan Sources**: GitHub Issues or local Markdown task lists
|
|
81
82
|
- π‘οΈ **Safety First**: Git branch isolation, file deletion safeguards
|
|
82
|
-
- πΎ **Automatic Checkpoints**: Git commits after each
|
|
83
|
+
- πΎ **Automatic Checkpoints**: Git commits after each task completion for easy rollback
|
|
83
84
|
- π **Progress Tracking**: Real-time status, token usage, and session logs
|
|
84
|
-
- β‘ **Guardrails**: Iteration limits, token budgets, timeout controls
|
|
85
|
+
- β‘ **Guardrails**: Iteration limits, token budgets, timeout controls, task-level retries
|
|
85
86
|
- π§ **Highly Configurable**: Customize behavior via CLI, env vars, or config files
|
|
86
87
|
- π» **Cross-Platform**: Works on Windows, macOS, and Linux
|
|
88
|
+
- π€ **Dynamic Model Discovery**: Fetches available models from Copilot SDK
|
|
87
89
|
|
|
88
90
|
## Commands
|
|
89
91
|
|
|
@@ -157,6 +159,9 @@ ghcralph run --github
|
|
|
157
159
|
# Control iterations, tokens, and model via configuration
|
|
158
160
|
# (set maxIterations / maxTokens / defaultModel in .ghcralph/config.json)
|
|
159
161
|
|
|
162
|
+
# Pause between tasks for human review (strict Ralph mode)
|
|
163
|
+
ghcralph run --file PLAN.md --pause-between-tasks
|
|
164
|
+
|
|
160
165
|
# Specify context files
|
|
161
166
|
ghcralph run --task "Fix tests" --context "src/**/*.test.ts"
|
|
162
167
|
|
|
@@ -184,19 +189,21 @@ GitHub Copilot Ralph uses a hierarchical configuration system:
|
|
|
184
189
|
|
|
185
190
|
### Configuration Options
|
|
186
191
|
|
|
187
|
-
| Option
|
|
188
|
-
|
|
|
189
|
-
| `planSource`
|
|
190
|
-
| `maxIterations`
|
|
191
|
-
| `maxTokens`
|
|
192
|
-
| `defaultModel`
|
|
193
|
-
| `autoCommit`
|
|
194
|
-
| `branchPrefix`
|
|
195
|
-
| `
|
|
196
|
-
| `
|
|
197
|
-
| `
|
|
198
|
-
| `
|
|
199
|
-
| `
|
|
192
|
+
| Option | Default | Description |
|
|
193
|
+
| ------------------ | ----------- | ----------------------------------------------------- |
|
|
194
|
+
| `planSource` | `local` | Plan source: `github` or `local` |
|
|
195
|
+
| `maxIterations` | `10` | Maximum loop iterations per task |
|
|
196
|
+
| `maxTokens` | `100000` | Token budget per task |
|
|
197
|
+
| `defaultModel` | `gpt-4.1` | Copilot model to use (dynamically fetched from SDK) |
|
|
198
|
+
| `autoCommit` | `true` | Auto-commit after iterations |
|
|
199
|
+
| `branchPrefix` | `ghcralph/` | Prefix for GitHub Copilot Ralph branches |
|
|
200
|
+
| `maxRetriesPerTask`| `2` | Retries per task before marking as failed |
|
|
201
|
+
| `autoPush` | `false` | Auto-push to remote after each task completion |
|
|
202
|
+
| `githubRepo` | - | GitHub repository (owner/repo) for GitHub plan source |
|
|
203
|
+
| `githubLabel` | - | Default GitHub issue label filter for GitHub plan |
|
|
204
|
+
| `githubMilestone` | - | Default GitHub issue milestone filter for GitHub plan |
|
|
205
|
+
| `githubAssignee` | - | Default GitHub issue assignee filter for GitHub plan |
|
|
206
|
+
| `localPlanFile` | - | Path to local plan file |
|
|
200
207
|
|
|
201
208
|
### Environment Variables
|
|
202
209
|
|
|
@@ -208,6 +215,8 @@ export GHCRALPH_MAX_TOKENS=50000
|
|
|
208
215
|
export GHCRALPH_DEFAULT_MODEL=gpt-4.1
|
|
209
216
|
export GHCRALPH_AUTO_COMMIT=true
|
|
210
217
|
export GHCRALPH_BRANCH_PREFIX=ghcralph/
|
|
218
|
+
export GHCRALPH_MAX_RETRIES_PER_TASK=3
|
|
219
|
+
export GHCRALPH_AUTO_PUSH=true
|
|
211
220
|
export GHCRALPH_PLAN_SOURCE=local
|
|
212
221
|
export GHCRALPH_GITHUB_REPO=owner/repo
|
|
213
222
|
export GHCRALPH_GITHUB_LABEL=ralph-ready
|
|
@@ -225,6 +234,8 @@ export GHCRALPH_GITHUB_ASSIGNEE=octocat
|
|
|
225
234
|
"defaultModel": "gpt-4.1",
|
|
226
235
|
"autoCommit": true,
|
|
227
236
|
"branchPrefix": "ghcralph/",
|
|
237
|
+
"maxRetriesPerTask": 2,
|
|
238
|
+
"autoPush": false,
|
|
228
239
|
"githubRepo": "owner/repo",
|
|
229
240
|
"githubLabel": "ralph-ready",
|
|
230
241
|
"githubMilestone": "v1.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAiK3D,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsQ1D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -7,6 +7,14 @@ import { execSync } from 'node:child_process';
|
|
|
7
7
|
import { createInterface } from 'node:readline/promises';
|
|
8
8
|
import { info, success, error, warn, debug, heading, code, dim } from '../utils/index.js';
|
|
9
9
|
import { ConfigManager } from '../core/config-manager.js';
|
|
10
|
+
import { CopilotAgent } from '../integrations/copilot-agent.js';
|
|
11
|
+
// Fallback models if SDK fetch fails
|
|
12
|
+
const FALLBACK_MODELS = [
|
|
13
|
+
'gpt-4.1',
|
|
14
|
+
'claude-sonnet-4.5',
|
|
15
|
+
'gpt-5',
|
|
16
|
+
'gpt-5.2-codex',
|
|
17
|
+
];
|
|
10
18
|
/**
|
|
11
19
|
* Check if we're in a git repository
|
|
12
20
|
*/
|
|
@@ -108,6 +116,34 @@ async function promptSelect(rl, message, options, defaultValue) {
|
|
|
108
116
|
console.log(dim('Please enter a valid option number.'));
|
|
109
117
|
}
|
|
110
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Fetch available models from the Copilot SDK
|
|
121
|
+
* Falls back to hardcoded list if fetch fails
|
|
122
|
+
*/
|
|
123
|
+
async function fetchModelOptions(_currentDefault) {
|
|
124
|
+
debug('Fetching available models from Copilot SDK...');
|
|
125
|
+
try {
|
|
126
|
+
const models = await CopilotAgent.fetchAvailableModels();
|
|
127
|
+
if (models.length > 0) {
|
|
128
|
+
debug(`Found ${models.length} models from SDK`);
|
|
129
|
+
const options = models.map((m) => ({
|
|
130
|
+
label: m.name || m.id,
|
|
131
|
+
value: m.id,
|
|
132
|
+
}));
|
|
133
|
+
// Add custom option at the end
|
|
134
|
+
options.push({ label: 'Custom (enter manually)', value: '__custom__' });
|
|
135
|
+
return options;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
debug(`Failed to fetch models: ${err instanceof Error ? err.message : String(err)}`);
|
|
140
|
+
}
|
|
141
|
+
// Fallback to hardcoded list
|
|
142
|
+
debug('Using fallback model list');
|
|
143
|
+
const fallbackOptions = FALLBACK_MODELS.map(m => ({ label: m, value: m }));
|
|
144
|
+
fallbackOptions.push({ label: 'Custom (enter manually)', value: '__custom__' });
|
|
145
|
+
return fallbackOptions;
|
|
146
|
+
}
|
|
111
147
|
export function registerInitCommand(program) {
|
|
112
148
|
program
|
|
113
149
|
.command('init')
|
|
@@ -207,14 +243,8 @@ See also:
|
|
|
207
243
|
configManager.set('maxIterations', maxIterations);
|
|
208
244
|
const maxTokens = await promptNumber(rl, 'Max tokens', current.maxTokens);
|
|
209
245
|
configManager.set('maxTokens', maxTokens);
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
{ label: 'gpt-4', value: 'gpt-4' },
|
|
213
|
-
{ label: 'gpt-5', value: 'gpt-5' },
|
|
214
|
-
{ label: 'gpt-5.2-codex', value: 'gpt-5.2-codex' },
|
|
215
|
-
{ label: 'claude-sonnet-4.5', value: 'claude-sonnet-4.5' },
|
|
216
|
-
{ label: 'Custom (enter manually)', value: '__custom__' },
|
|
217
|
-
];
|
|
246
|
+
// Fetch available models dynamically from SDK
|
|
247
|
+
const modelOptions = await fetchModelOptions(current.defaultModel);
|
|
218
248
|
const selectedModel = await promptSelect(rl, 'Model', modelOptions, (modelOptions.some(o => o.value === current.defaultModel)
|
|
219
249
|
? current.defaultModel
|
|
220
250
|
: '__custom__'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/run.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA+FD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsiBzD"}
|
package/dist/commands/run.js
CHANGED
|
@@ -7,6 +7,7 @@ import fs from 'node:fs/promises';
|
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
import { execSync } from 'node:child_process';
|
|
9
9
|
import { info, success, error, warn, debug, spinner, heading, code, dim, parseNonNegativeInt } from '../utils/index.js';
|
|
10
|
+
import { waitForKeypress } from '../utils/shell.js';
|
|
10
11
|
import { CopilotAgent } from '../integrations/index.js';
|
|
11
12
|
import { LoopEngine, LocalMarkdownPlan, GitHubPlan, ProgressTracker, GitBranchManager, CheckpointManager, FileSafeguardManager, ConfigManager, } from '../core/index.js';
|
|
12
13
|
/**
|
|
@@ -107,6 +108,7 @@ export function registerRunCommand(program) {
|
|
|
107
108
|
.option('--timeout <minutes>', 'Maximum duration in minutes')
|
|
108
109
|
.option('--allow-delete', 'Allow deletion of pre-existing files')
|
|
109
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)')
|
|
110
112
|
.addHelpText('after', `
|
|
111
113
|
Config-backed settings (set via .ghcralph/config.json or GHCRALPH_* env vars):
|
|
112
114
|
- maxIterations, maxTokens, defaultModel, autoCommit, branchPrefix
|
|
@@ -325,11 +327,6 @@ See also:
|
|
|
325
327
|
}
|
|
326
328
|
console.log(` ${dim('Branch:')} ${code(branchInfo.branchName)}`);
|
|
327
329
|
}
|
|
328
|
-
// Create agent and engine with context configuration
|
|
329
|
-
const agent = new CopilotAgent({
|
|
330
|
-
model,
|
|
331
|
-
maxTokensPerRequest: 4096,
|
|
332
|
-
});
|
|
333
330
|
// Build context config, only including contextGlobs if provided
|
|
334
331
|
const contextConfig = {
|
|
335
332
|
includeGitDiff: true,
|
|
@@ -339,13 +336,6 @@ See also:
|
|
|
339
336
|
if (options.context) {
|
|
340
337
|
contextConfig.contextGlobs = options.context;
|
|
341
338
|
}
|
|
342
|
-
const engine = new LoopEngine(agent, {
|
|
343
|
-
maxIterations,
|
|
344
|
-
maxTokens,
|
|
345
|
-
maxDurationMinutes,
|
|
346
|
-
allowUnlimited: options.unlimited === true,
|
|
347
|
-
contextConfig,
|
|
348
|
-
});
|
|
349
339
|
// Create progress tracker
|
|
350
340
|
const progressTracker = new ProgressTracker(undefined, maxIterations);
|
|
351
341
|
// Create checkpoint manager for auto-commits
|
|
@@ -357,91 +347,192 @@ See also:
|
|
|
357
347
|
allowDeleteExisting: options.allowDelete === true,
|
|
358
348
|
});
|
|
359
349
|
await fileSafeguard.initialize();
|
|
360
|
-
// Setup signal handlers for graceful shutdown
|
|
361
|
-
const cleanupSignalHandlers = setupSignalHandlers(engine);
|
|
362
|
-
// Setup event listeners
|
|
363
|
-
const events = engine.getEvents();
|
|
364
350
|
const startTime = new Date();
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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
|
+
});
|
|
383
413
|
}
|
|
384
|
-
|
|
385
|
-
.catch(() => {
|
|
386
|
-
|
|
414
|
+
// Save progress after each iteration
|
|
415
|
+
progressTracker.save(state).catch(() => {
|
|
416
|
+
// Ignore save errors
|
|
417
|
+
});
|
|
387
418
|
});
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
419
|
+
events.on('error', (err) => {
|
|
420
|
+
error(`Loop error: ${err.message}`);
|
|
421
|
+
});
|
|
422
|
+
events.on('warning', (type, message) => {
|
|
423
|
+
warn(`Warning: ${message}`);
|
|
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();
|
|
423
490
|
}
|
|
424
|
-
success('Loop completed successfully');
|
|
425
|
-
}
|
|
426
|
-
else if (finalState.status === 'stopped') {
|
|
427
|
-
warn('Loop was stopped by user');
|
|
428
491
|
}
|
|
429
|
-
|
|
492
|
+
// Check if all retries exhausted without completion
|
|
493
|
+
if (!taskCompleted && currentTask) {
|
|
494
|
+
taskFailed = true;
|
|
495
|
+
totalTasksFailed++;
|
|
430
496
|
if (planManager) {
|
|
431
|
-
await planManager.failTask(
|
|
497
|
+
await planManager.failTask(activeTask.id);
|
|
432
498
|
}
|
|
433
|
-
error(
|
|
499
|
+
error(`β Task failed after ${maxRetriesPerTask} attempts: ${activeTask.title}`);
|
|
434
500
|
exitCode = 1;
|
|
435
501
|
}
|
|
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();
|
|
507
|
+
}
|
|
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;
|
|
517
|
+
}
|
|
436
518
|
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
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`);
|
|
441
533
|
}
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
await agent.destroy();
|
|
534
|
+
else if (totalTasksProcessed === 0) {
|
|
535
|
+
success('No pending tasks found - all tasks are complete!');
|
|
445
536
|
}
|
|
446
537
|
if (exitCode !== 0) {
|
|
447
538
|
process.exit(exitCode);
|