ghcralph 0.1.1 → 0.1.3

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 (59) hide show
  1. package/README.md +35 -17
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +38 -8
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/run.d.ts +1 -0
  6. package/dist/commands/run.d.ts.map +1 -1
  7. package/dist/commands/run.js +214 -87
  8. package/dist/commands/run.js.map +1 -1
  9. package/dist/core/action-executor.d.ts +25 -0
  10. package/dist/core/action-executor.d.ts.map +1 -1
  11. package/dist/core/action-executor.js +68 -2
  12. package/dist/core/action-executor.js.map +1 -1
  13. package/dist/core/checkpoint-manager.d.ts +55 -8
  14. package/dist/core/checkpoint-manager.d.ts.map +1 -1
  15. package/dist/core/checkpoint-manager.js +282 -94
  16. package/dist/core/checkpoint-manager.js.map +1 -1
  17. package/dist/core/config-schema.d.ts +13 -1
  18. package/dist/core/config-schema.d.ts.map +1 -1
  19. package/dist/core/config-schema.js +27 -1
  20. package/dist/core/config-schema.js.map +1 -1
  21. package/dist/core/context-builder.d.ts.map +1 -1
  22. package/dist/core/context-builder.js +39 -1
  23. package/dist/core/context-builder.js.map +1 -1
  24. package/dist/core/git-branch-manager.d.ts +8 -0
  25. package/dist/core/git-branch-manager.d.ts.map +1 -1
  26. package/dist/core/git-branch-manager.js +28 -0
  27. package/dist/core/git-branch-manager.js.map +1 -1
  28. package/dist/core/index.d.ts +4 -4
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/core/index.js +1 -1
  31. package/dist/core/index.js.map +1 -1
  32. package/dist/core/loop-state.d.ts +8 -0
  33. package/dist/core/loop-state.d.ts.map +1 -1
  34. package/dist/core/loop-state.js.map +1 -1
  35. package/dist/core/plan-manager.d.ts +4 -0
  36. package/dist/core/plan-manager.d.ts.map +1 -1
  37. package/dist/core/progress-tracker.d.ts +86 -3
  38. package/dist/core/progress-tracker.d.ts.map +1 -1
  39. package/dist/core/progress-tracker.js +257 -2
  40. package/dist/core/progress-tracker.js.map +1 -1
  41. package/dist/core/prompt-examples.d.ts +7 -3
  42. package/dist/core/prompt-examples.d.ts.map +1 -1
  43. package/dist/core/prompt-examples.js +30 -5
  44. package/dist/core/prompt-examples.js.map +1 -1
  45. package/dist/core/response-parser.d.ts +19 -2
  46. package/dist/core/response-parser.d.ts.map +1 -1
  47. package/dist/core/response-parser.js +47 -1
  48. package/dist/core/response-parser.js.map +1 -1
  49. package/dist/integrations/copilot-agent.d.ts +11 -0
  50. package/dist/integrations/copilot-agent.d.ts.map +1 -1
  51. package/dist/integrations/copilot-agent.js +55 -0
  52. package/dist/integrations/copilot-agent.js.map +1 -1
  53. package/dist/integrations/index.d.ts +1 -1
  54. package/dist/integrations/index.d.ts.map +1 -1
  55. package/dist/utils/shell.d.ts +5 -0
  56. package/dist/utils/shell.d.ts.map +1 -1
  57. package/dist/utils/shell.js +22 -0
  58. package/dist/utils/shell.js.map +1 -1
  59. package/package.json +2 -1
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * Checkpoint Manager
3
3
  *
4
- * Manages automatic git commits after each loop iteration
4
+ * Manages automatic git commits after each loop iteration.
5
+ * Uses a mutex to prevent race conditions when multiple git operations
6
+ * are attempted concurrently.
5
7
  */
6
8
  import { exec } from 'node:child_process';
7
9
  import { promisify } from 'node:util';
10
+ import { Mutex } from 'async-mutex';
8
11
  import { debug, warn } from '../utils/index.js';
9
12
  const execAsync = promisify(exec);
10
13
  /**
@@ -17,10 +20,14 @@ const DEFAULT_CONFIG = {
17
20
  };
18
21
  /**
19
22
  * Checkpoint Manager class
23
+ *
24
+ * Provides thread-safe git operations using a mutex to prevent
25
+ * concurrent access that causes "index.lock" and "HEAD locked" errors.
20
26
  */
21
27
  export class CheckpointManager {
22
28
  config;
23
29
  checkpoints = [];
30
+ gitMutex = new Mutex();
24
31
  constructor(config = {}) {
25
32
  this.config = { ...DEFAULT_CONFIG, ...config };
26
33
  }
@@ -50,6 +57,12 @@ export class CheckpointManager {
50
57
  * Check if there are any modified files to commit
51
58
  */
52
59
  async hasChangesToCommit() {
60
+ return this.gitMutex.runExclusive(() => this.hasChangesToCommitUnsafe());
61
+ }
62
+ /**
63
+ * Internal: Check for changes without acquiring mutex
64
+ */
65
+ async hasChangesToCommitUnsafe() {
53
66
  try {
54
67
  const { stdout } = await execAsync('git status --porcelain', { cwd: this.config.cwd });
55
68
  return stdout.trim().length > 0;
@@ -62,6 +75,12 @@ export class CheckpointManager {
62
75
  * Get list of modified files
63
76
  */
64
77
  async getModifiedFiles() {
78
+ return this.gitMutex.runExclusive(() => this.getModifiedFilesUnsafe());
79
+ }
80
+ /**
81
+ * Internal: Get modified files without acquiring mutex
82
+ */
83
+ async getModifiedFilesUnsafe() {
65
84
  try {
66
85
  const { stdout } = await execAsync('git status --porcelain', { cwd: this.config.cwd });
67
86
  return stdout
@@ -78,6 +97,12 @@ export class CheckpointManager {
78
97
  * Stage all modified files
79
98
  */
80
99
  async stageAllChanges() {
100
+ return this.gitMutex.runExclusive(() => this.stageAllChangesUnsafe());
101
+ }
102
+ /**
103
+ * Internal: Stage changes without acquiring mutex
104
+ */
105
+ async stageAllChangesUnsafe() {
81
106
  try {
82
107
  await execAsync('git add -A', { cwd: this.config.cwd });
83
108
  debug('Staged all changes');
@@ -89,74 +114,138 @@ export class CheckpointManager {
89
114
  }
90
115
  }
91
116
  /**
92
- * Create a checkpoint commit
117
+ * Create a checkpoint commit (mutex-protected)
118
+ * @param iteration - Iteration number within the current task
119
+ * @param summary - Summary of changes made
120
+ * @param tokensUsed - Tokens used in this iteration
121
+ * @param taskContext - Optional task context for "task X/Y" numbering in commit message
93
122
  */
94
- async createCheckpoint(iteration, summary, tokensUsed) {
123
+ async createCheckpoint(iteration, summary, tokensUsed, taskContext) {
95
124
  if (!this.config.autoCommit) {
96
125
  debug('Auto-commit disabled, skipping checkpoint');
97
126
  return null;
98
127
  }
99
- // Check if there are changes to commit
100
- const hasChanges = await this.hasChangesToCommit();
101
- if (!hasChanges) {
102
- debug('No changes to commit for checkpoint');
103
- return null;
104
- }
105
- // Get list of modified files before staging
106
- const filesModified = await this.getModifiedFiles();
107
- // Stage all changes
108
- const staged = await this.stageAllChanges();
109
- if (!staged) {
110
- return null;
111
- }
112
- // Build commit message
113
- const truncatedSummary = summary.length > 50
114
- ? summary.substring(0, 47) + '...'
115
- : summary;
116
- const message = `${this.config.messagePrefix} iteration ${iteration} - ${truncatedSummary}`;
117
- const fullMessage = `${message}\n\nTokens used: ${tokensUsed}\nFiles modified: ${filesModified.length}`;
118
- try {
119
- // Create commit
120
- await execAsync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: this.config.cwd });
121
- // Get commit hash
122
- const { stdout } = await execAsync('git rev-parse HEAD', { cwd: this.config.cwd });
123
- const commitHash = stdout.trim();
124
- const checkpoint = {
125
- iteration,
126
- commitHash,
127
- message,
128
- filesModified,
129
- timestamp: new Date(),
130
- tokensUsed,
131
- };
132
- this.checkpoints.push(checkpoint);
133
- debug(`Created checkpoint: ${commitHash.substring(0, 7)} - ${message}`);
134
- return checkpoint;
135
- }
136
- catch (err) {
137
- warn('Failed to create checkpoint commit: ' + (err instanceof Error ? err.message : String(err)));
138
- return null;
139
- }
128
+ // Use mutex to prevent concurrent git operations
129
+ return this.gitMutex.runExclusive(async () => {
130
+ // Check if there are changes to commit
131
+ const hasChanges = await this.hasChangesToCommitUnsafe();
132
+ if (!hasChanges) {
133
+ debug('No changes to commit for checkpoint');
134
+ return null;
135
+ }
136
+ // Get list of modified files before staging
137
+ const filesModified = await this.getModifiedFilesUnsafe();
138
+ // Stage all changes
139
+ const staged = await this.stageAllChangesUnsafe();
140
+ if (!staged) {
141
+ return null;
142
+ }
143
+ // Build commit message with optional task context
144
+ const truncatedSummary = summary.length > 40
145
+ ? summary.substring(0, 37) + '...'
146
+ : summary;
147
+ let message;
148
+ if (taskContext) {
149
+ message = `${this.config.messagePrefix} task ${taskContext.taskNumber}/${taskContext.totalTasks} iter ${iteration} - ${truncatedSummary}`;
150
+ }
151
+ else {
152
+ message = `${this.config.messagePrefix} iteration ${iteration} - ${truncatedSummary}`;
153
+ }
154
+ const fullMessage = `${message}\n\nTokens used: ${tokensUsed}\nFiles modified: ${filesModified.length}`;
155
+ try {
156
+ // Create commit
157
+ await execAsync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: this.config.cwd });
158
+ // Get commit hash
159
+ const { stdout } = await execAsync('git rev-parse HEAD', { cwd: this.config.cwd });
160
+ const commitHash = stdout.trim();
161
+ const checkpoint = {
162
+ iteration,
163
+ commitHash,
164
+ message,
165
+ filesModified,
166
+ timestamp: new Date(),
167
+ tokensUsed,
168
+ };
169
+ this.checkpoints.push(checkpoint);
170
+ debug(`Created checkpoint: ${commitHash.substring(0, 7)} - ${message}`);
171
+ return checkpoint;
172
+ }
173
+ catch (err) {
174
+ warn('Failed to create checkpoint commit: ' + (err instanceof Error ? err.message : String(err)));
175
+ return null;
176
+ }
177
+ });
140
178
  }
141
179
  /**
142
- * Rollback to a specific checkpoint
180
+ * Rollback to a specific checkpoint (mutex-protected)
143
181
  */
144
182
  async rollbackTo(commitHash) {
145
- try {
146
- // Soft reset to keep changes in working directory for review
147
- await execAsync(`git reset --soft "${commitHash}"`, { cwd: this.config.cwd });
148
- debug(`Rolled back to ${commitHash.substring(0, 7)}`);
149
- return true;
150
- }
151
- catch (err) {
152
- warn('Failed to rollback: ' + (err instanceof Error ? err.message : String(err)));
153
- return false;
154
- }
183
+ return this.gitMutex.runExclusive(async () => {
184
+ try {
185
+ // Soft reset to keep changes in working directory for review
186
+ await execAsync(`git reset --soft "${commitHash}"`, { cwd: this.config.cwd });
187
+ debug(`Rolled back to ${commitHash.substring(0, 7)}`);
188
+ return true;
189
+ }
190
+ catch (err) {
191
+ warn('Failed to rollback: ' + (err instanceof Error ? err.message : String(err)));
192
+ return false;
193
+ }
194
+ });
155
195
  }
156
196
  /**
157
- * Hard rollback to a specific checkpoint (discard changes)
197
+ * Hard rollback to a specific checkpoint (mutex-protected)
158
198
  */
159
199
  async hardRollbackTo(commitHash) {
200
+ return this.gitMutex.runExclusive(async () => {
201
+ try {
202
+ await execAsync(`git reset --hard "${commitHash}"`, { cwd: this.config.cwd });
203
+ debug(`Hard rolled back to ${commitHash.substring(0, 7)}`);
204
+ return true;
205
+ }
206
+ catch (err) {
207
+ warn('Failed to hard rollback: ' + (err instanceof Error ? err.message : String(err)));
208
+ return false;
209
+ }
210
+ });
211
+ }
212
+ /**
213
+ * Rollback by N iterations (mutex-protected)
214
+ */
215
+ async rollbackIterations(count = 1) {
216
+ return this.gitMutex.runExclusive(async () => {
217
+ if (this.checkpoints.length < count) {
218
+ warn(`Cannot rollback ${count} iterations, only ${this.checkpoints.length} checkpoints available`);
219
+ return false;
220
+ }
221
+ // Get the checkpoint to rollback to
222
+ const targetIndex = this.checkpoints.length - count - 1;
223
+ if (targetIndex < 0) {
224
+ // Rollback before first checkpoint - get parent of first checkpoint
225
+ const firstCheckpoint = this.checkpoints[0];
226
+ if (!firstCheckpoint)
227
+ return false;
228
+ try {
229
+ const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
230
+ const parentHash = stdout.trim();
231
+ // Call internal version to avoid re-acquiring mutex
232
+ return this.hardRollbackToUnsafe(parentHash);
233
+ }
234
+ catch {
235
+ warn('Cannot find parent commit for rollback');
236
+ return false;
237
+ }
238
+ }
239
+ const targetCheckpoint = this.checkpoints[targetIndex];
240
+ if (!targetCheckpoint)
241
+ return false;
242
+ return this.hardRollbackToUnsafe(targetCheckpoint.commitHash);
243
+ });
244
+ }
245
+ /**
246
+ * Internal: Hard rollback without acquiring mutex
247
+ */
248
+ async hardRollbackToUnsafe(commitHash) {
160
249
  try {
161
250
  await execAsync(`git reset --hard "${commitHash}"`, { cwd: this.config.cwd });
162
251
  debug(`Hard rolled back to ${commitHash.substring(0, 7)}`);
@@ -168,63 +257,162 @@ export class CheckpointManager {
168
257
  }
169
258
  }
170
259
  /**
171
- * Rollback by N iterations
260
+ * Get the initial commit hash before Ralph started (mutex-protected)
172
261
  */
173
- async rollbackIterations(count = 1) {
174
- if (this.checkpoints.length < count) {
175
- warn(`Cannot rollback ${count} iterations, only ${this.checkpoints.length} checkpoints available`);
176
- return false;
177
- }
178
- // Get the checkpoint to rollback to
179
- const targetIndex = this.checkpoints.length - count - 1;
180
- if (targetIndex < 0) {
181
- // Rollback before first checkpoint - get parent of first checkpoint
262
+ async getInitialCommit() {
263
+ return this.gitMutex.runExclusive(async () => {
264
+ if (this.checkpoints.length === 0) {
265
+ return null;
266
+ }
267
+ const firstCheckpoint = this.checkpoints[0];
268
+ if (!firstCheckpoint)
269
+ return null;
270
+ try {
271
+ const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
272
+ return stdout.trim();
273
+ }
274
+ catch {
275
+ return null;
276
+ }
277
+ });
278
+ }
279
+ /**
280
+ * Rollback all Ralph changes (mutex-protected)
281
+ */
282
+ async rollbackAll() {
283
+ return this.gitMutex.runExclusive(async () => {
284
+ if (this.checkpoints.length === 0) {
285
+ warn('No checkpoints to rollback');
286
+ return false;
287
+ }
182
288
  const firstCheckpoint = this.checkpoints[0];
183
289
  if (!firstCheckpoint)
184
290
  return false;
185
291
  try {
186
292
  const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
187
- const parentHash = stdout.trim();
188
- return this.hardRollbackTo(parentHash);
293
+ const initialCommit = stdout.trim();
294
+ return this.hardRollbackToUnsafe(initialCommit);
189
295
  }
190
296
  catch {
191
- warn('Cannot find parent commit for rollback');
297
+ warn('Cannot find initial commit for rollback');
192
298
  return false;
193
299
  }
194
- }
195
- const targetCheckpoint = this.checkpoints[targetIndex];
196
- if (!targetCheckpoint)
197
- return false;
198
- return this.hardRollbackTo(targetCheckpoint.commitHash);
300
+ });
199
301
  }
200
302
  /**
201
- * Get the initial commit hash before Ralph started
303
+ * Create a task completion checkpoint commit (mutex-protected)
304
+ * @param taskTitle - Title of the completed task
305
+ * @param taskId - ID of the completed task
306
+ * @param summary - Summary of the task completion
307
+ * @param taskContext - Optional task context for "task X/Y" numbering in commit message
202
308
  */
203
- async getInitialCommit() {
204
- if (this.checkpoints.length === 0) {
205
- return null;
206
- }
207
- const firstCheckpoint = this.checkpoints[0];
208
- if (!firstCheckpoint)
209
- return null;
210
- try {
211
- const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
212
- return stdout.trim();
213
- }
214
- catch {
309
+ async createTaskCheckpoint(taskTitle, taskId, summary, taskContext) {
310
+ if (!this.config.autoCommit) {
311
+ debug('Auto-commit disabled, skipping task checkpoint');
215
312
  return null;
216
313
  }
314
+ return this.gitMutex.runExclusive(async () => {
315
+ // Check if there are changes to commit
316
+ const hasChanges = await this.hasChangesToCommitUnsafe();
317
+ if (!hasChanges) {
318
+ debug('No changes to commit for task checkpoint');
319
+ return null;
320
+ }
321
+ // Get list of modified files before staging
322
+ const filesModified = await this.getModifiedFilesUnsafe();
323
+ // Stage all changes
324
+ const staged = await this.stageAllChangesUnsafe();
325
+ if (!staged) {
326
+ return null;
327
+ }
328
+ // Build commit message for task completion with optional task context
329
+ const truncatedTitle = taskTitle.length > 40
330
+ ? taskTitle.substring(0, 37) + '...'
331
+ : taskTitle;
332
+ let message;
333
+ if (taskContext) {
334
+ message = `${this.config.messagePrefix} task ${taskContext.taskNumber}/${taskContext.totalTasks} complete - ${truncatedTitle}`;
335
+ }
336
+ else {
337
+ message = `${this.config.messagePrefix} task complete - ${truncatedTitle}`;
338
+ }
339
+ const fullMessage = `${message}\n\nTask ID: ${taskId}\nSummary: ${summary}\nFiles modified: ${filesModified.length}`;
340
+ try {
341
+ // Create commit
342
+ await execAsync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: this.config.cwd });
343
+ // Get commit hash
344
+ const { stdout } = await execAsync('git rev-parse HEAD', { cwd: this.config.cwd });
345
+ const commitHash = stdout.trim();
346
+ const checkpoint = {
347
+ iteration: 0, // Task-level checkpoint, not iteration-level
348
+ commitHash,
349
+ message,
350
+ filesModified,
351
+ timestamp: new Date(),
352
+ tokensUsed: 0,
353
+ };
354
+ this.checkpoints.push(checkpoint);
355
+ debug(`Created task checkpoint: ${commitHash.substring(0, 7)} - ${message}`);
356
+ return checkpoint;
357
+ }
358
+ catch (err) {
359
+ warn('Failed to create task checkpoint commit: ' + (err instanceof Error ? err.message : String(err)));
360
+ return null;
361
+ }
362
+ });
217
363
  }
218
364
  /**
219
- * Rollback all Ralph changes (to state before Ralph started)
365
+ * Create a failure checkpoint commit (mutex-protected)
220
366
  */
221
- async rollbackAll() {
222
- const initialCommit = await this.getInitialCommit();
223
- if (!initialCommit) {
224
- warn('No checkpoints to rollback');
225
- return false;
367
+ async createFailureCheckpoint(taskTitle, taskId, attempt, error) {
368
+ if (!this.config.autoCommit) {
369
+ debug('Auto-commit disabled, skipping failure checkpoint');
370
+ return null;
226
371
  }
227
- return this.hardRollbackTo(initialCommit);
372
+ return this.gitMutex.runExclusive(async () => {
373
+ // Check if there are changes to commit
374
+ const hasChanges = await this.hasChangesToCommitUnsafe();
375
+ if (!hasChanges) {
376
+ debug('No changes to commit for failure checkpoint');
377
+ return null;
378
+ }
379
+ // Get list of modified files before staging
380
+ const filesModified = await this.getModifiedFilesUnsafe();
381
+ // Stage all changes
382
+ const staged = await this.stageAllChangesUnsafe();
383
+ if (!staged) {
384
+ return null;
385
+ }
386
+ // Build commit message for task failure
387
+ const truncatedTitle = taskTitle.length > 30
388
+ ? taskTitle.substring(0, 27) + '...'
389
+ : taskTitle;
390
+ const message = `${this.config.messagePrefix} task failed (attempt ${attempt}) - ${truncatedTitle}`;
391
+ const errorInfo = error ? `\nError: ${error.substring(0, 200)}` : '';
392
+ const fullMessage = `${message}\n\nTask ID: ${taskId}\nAttempt: ${attempt}${errorInfo}\nFiles modified: ${filesModified.length}`;
393
+ try {
394
+ // Create commit
395
+ await execAsync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: this.config.cwd });
396
+ // Get commit hash
397
+ const { stdout } = await execAsync('git rev-parse HEAD', { cwd: this.config.cwd });
398
+ const commitHash = stdout.trim();
399
+ const checkpoint = {
400
+ iteration: 0, // Task-level checkpoint
401
+ commitHash,
402
+ message,
403
+ filesModified,
404
+ timestamp: new Date(),
405
+ tokensUsed: 0,
406
+ };
407
+ this.checkpoints.push(checkpoint);
408
+ debug(`Created failure checkpoint: ${commitHash.substring(0, 7)} - ${message}`);
409
+ return checkpoint;
410
+ }
411
+ catch (err) {
412
+ warn('Failed to create failure checkpoint commit: ' + (err instanceof Error ? err.message : String(err)));
413
+ return null;
414
+ }
415
+ });
228
416
  }
229
417
  }
230
418
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../src/core/checkpoint-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../src/core/checkpoint-manager.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@
7
7
  * Plan source type
8
8
  */
9
9
  export type PlanSource = 'github' | 'local';
10
+ /**
11
+ * Progress file verbosity level
12
+ */
13
+ export type ProgressVerbosity = 'minimal' | 'standard' | 'full';
10
14
  /**
11
15
  * MCP Server configuration for custom tools
12
16
  */
@@ -52,6 +56,14 @@ export interface RalphConfiguration {
52
56
  promptTemplate?: string;
53
57
  /** MCP servers for custom tools */
54
58
  mcpServers?: MCPServerConfiguration[];
59
+ /** Maximum retries per task before marking as failed (default: 2) */
60
+ maxRetriesPerTask?: number;
61
+ /** Whether to auto-push after each task completion (default: false) */
62
+ autoPush?: boolean;
63
+ /** Push strategy: 'per-task' pushes after each task, 'per-run' pushes after all tasks complete (default: 'per-task') */
64
+ pushStrategy?: 'per-task' | 'per-run' | 'manual';
65
+ /** Progress file verbosity level: 'minimal' for CI, 'standard' for normal use, 'full' for debugging (default: 'standard') */
66
+ progressVerbosity?: ProgressVerbosity;
55
67
  }
56
68
  /**
57
69
  * Default configuration values
@@ -60,7 +72,7 @@ export declare const DEFAULT_CONFIG: RalphConfiguration;
60
72
  /**
61
73
  * Configuration keys for validation
62
74
  */
63
- export declare const CONFIG_KEYS: readonly ["planSource", "maxIterations", "maxTokens", "defaultModel", "autoCommit", "branchPrefix", "githubRepo", "githubLabel", "githubMilestone", "githubAssignee", "localPlanFile", "promptTemplate", "mcpServers"];
75
+ export declare const CONFIG_KEYS: readonly ["planSource", "maxIterations", "maxTokens", "defaultModel", "autoCommit", "branchPrefix", "githubRepo", "githubLabel", "githubMilestone", "githubAssignee", "localPlanFile", "promptTemplate", "mcpServers", "maxRetriesPerTask", "autoPush", "pushStrategy", "progressVerbosity"];
64
76
  export type ConfigKey = (typeof CONFIG_KEYS)[number];
65
77
  /**
66
78
  * Check if a string is a valid config key
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/core/config-schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,UAAU,EAAE,UAAU,CAAC;IACvB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,kBAO5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,wNAcd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,OAAO,GACb;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA+BpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAUvE"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/core/config-schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,UAAU,EAAE,UAAU,CAAC;IACvB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACtC,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wHAAwH;IACxH,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,6HAA6H;IAC7H,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,kBAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,8RAkBd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,OAAO,GACb;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA+CpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAYvE"}
@@ -13,6 +13,10 @@ export const DEFAULT_CONFIG = {
13
13
  defaultModel: 'gpt-4.1',
14
14
  autoCommit: true,
15
15
  branchPrefix: 'ghcralph/',
16
+ maxRetriesPerTask: 2,
17
+ autoPush: false,
18
+ pushStrategy: 'per-task',
19
+ progressVerbosity: 'standard',
16
20
  };
17
21
  /**
18
22
  * Configuration keys for validation
@@ -31,6 +35,10 @@ export const CONFIG_KEYS = [
31
35
  'localPlanFile',
32
36
  'promptTemplate',
33
37
  'mcpServers',
38
+ 'maxRetriesPerTask',
39
+ 'autoPush',
40
+ 'pushStrategy',
41
+ 'progressVerbosity',
34
42
  ];
35
43
  /**
36
44
  * Check if a string is a valid config key
@@ -55,8 +63,24 @@ export function validateConfigValue(key, value) {
55
63
  }
56
64
  break;
57
65
  case 'autoCommit':
66
+ case 'autoPush':
58
67
  if (typeof value !== 'boolean') {
59
- return { valid: false, error: 'autoCommit must be a boolean' };
68
+ return { valid: false, error: `${key} must be a boolean` };
69
+ }
70
+ break;
71
+ case 'maxRetriesPerTask':
72
+ if (typeof value !== 'number' || value < 1) {
73
+ return { valid: false, error: 'maxRetriesPerTask must be a positive number' };
74
+ }
75
+ break;
76
+ case 'pushStrategy':
77
+ if (value !== 'per-task' && value !== 'per-run' && value !== 'manual') {
78
+ return { valid: false, error: 'pushStrategy must be "per-task", "per-run", or "manual"' };
79
+ }
80
+ break;
81
+ case 'progressVerbosity':
82
+ if (value !== 'minimal' && value !== 'standard' && value !== 'full') {
83
+ return { valid: false, error: 'progressVerbosity must be "minimal", "standard", or "full"' };
60
84
  }
61
85
  break;
62
86
  case 'defaultModel':
@@ -80,8 +104,10 @@ export function parseConfigValue(key, value) {
80
104
  switch (key) {
81
105
  case 'maxIterations':
82
106
  case 'maxTokens':
107
+ case 'maxRetriesPerTask':
83
108
  return parseInt(value, 10);
84
109
  case 'autoCommit':
110
+ case 'autoPush':
85
111
  return value.toLowerCase() === 'true';
86
112
  default:
87
113
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/core/config-schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuDH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,UAAU,EAAE,OAAO;IACnB,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,WAAW;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,eAAe;IACf,WAAW;IACX,cAAc;IACd,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,YAAY;CACJ,CAAC;AAIX;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAgB,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAc,EACd,KAAc;IAEd,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,YAAY;YACf,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC;YAC3E,CAAC;YACD,MAAM;QACR,KAAK,eAAe,CAAC;QACrB,KAAK,WAAW;YACd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,4BAA4B,EAAE,CAAC;YACrE,CAAC;YACD,MAAM;QACR,KAAK,YAAY;YACf,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;YACjE,CAAC;YACD,MAAM;QACR,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,YAAY,CAAC;QAClB,KAAK,aAAa,CAAC;QACnB,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB,CAAC;QACtB,KAAK,eAAe;YAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,mBAAmB,EAAE,CAAC;YAC5D,CAAC;YACD,MAAM;IACV,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAc,EAAE,KAAa;IAC5D,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,eAAe,CAAC;QACrB,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;QACxC;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/core/config-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/core/context-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA+CvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,GAAG,CAAS;gBAER,MAAM,GAAE,OAAO,CAAC,oBAAoB,CAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAKpE;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,kBAAkB,GAAE,eAAe,EAAO,EAC1C,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,YAAY,CAAC;IAmHxB;;OAEG;YACW,uBAAuB;IAuCrC;;OAEG;YACW,iBAAiB;IA0D/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;YACW,UAAU;IAqBxB;;OAEG;YACW,aAAa;IAc3B;;OAEG;YACW,mBAAmB;IAcjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;CAiBvB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACtC,GAAG,CAAC,EAAE,MAAM,GACX,cAAc,CAEhB"}
1
+ {"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/core/context-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAqFvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,GAAG,CAAS;gBAER,MAAM,GAAE,OAAO,CAAC,oBAAoB,CAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAKpE;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,kBAAkB,GAAE,eAAe,EAAO,EAC1C,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,YAAY,CAAC;IAoHxB;;OAEG;YACW,uBAAuB;IAuCrC;;OAEG;YACW,iBAAiB;IA0D/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;YACW,UAAU;IAqBxB;;OAEG;YACW,aAAa;IAc3B;;OAEG;YACW,mBAAmB;IAcjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;CAiBvB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACtC,GAAG,CAAC,EAAE,MAAM,GACX,cAAc,CAEhB"}