ghcralph 0.1.2 → 0.1.4

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 (39) hide show
  1. package/README.md +23 -16
  2. package/dist/commands/run.d.ts.map +1 -1
  3. package/dist/commands/run.js +66 -19
  4. package/dist/commands/run.js.map +1 -1
  5. package/dist/core/action-executor.d.ts +13 -0
  6. package/dist/core/action-executor.d.ts.map +1 -1
  7. package/dist/core/action-executor.js +32 -0
  8. package/dist/core/action-executor.js.map +1 -1
  9. package/dist/core/checkpoint-manager.d.ts +50 -11
  10. package/dist/core/checkpoint-manager.d.ts.map +1 -1
  11. package/dist/core/checkpoint-manager.js +287 -187
  12. package/dist/core/checkpoint-manager.js.map +1 -1
  13. package/dist/core/config-schema.d.ts +9 -1
  14. package/dist/core/config-schema.d.ts.map +1 -1
  15. package/dist/core/config-schema.js +14 -0
  16. package/dist/core/config-schema.js.map +1 -1
  17. package/dist/core/context-builder.d.ts.map +1 -1
  18. package/dist/core/context-builder.js +61 -16
  19. package/dist/core/context-builder.js.map +1 -1
  20. package/dist/core/index.d.ts +4 -4
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +1 -1
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/core/loop-engine.d.ts +6 -1
  25. package/dist/core/loop-engine.d.ts.map +1 -1
  26. package/dist/core/loop-engine.js +72 -4
  27. package/dist/core/loop-engine.js.map +1 -1
  28. package/dist/core/loop-state.d.ts +8 -0
  29. package/dist/core/loop-state.d.ts.map +1 -1
  30. package/dist/core/loop-state.js.map +1 -1
  31. package/dist/core/progress-tracker.d.ts +73 -3
  32. package/dist/core/progress-tracker.d.ts.map +1 -1
  33. package/dist/core/progress-tracker.js +192 -2
  34. package/dist/core/progress-tracker.js.map +1 -1
  35. package/dist/core/prompt-examples.d.ts +11 -3
  36. package/dist/core/prompt-examples.d.ts.map +1 -1
  37. package/dist/core/prompt-examples.js +47 -5
  38. package/dist/core/prompt-examples.js.map +1 -1
  39. package/package.json +2 -1
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Progress Tracker
3
3
  *
4
- * Creates and maintains Markdown-based progress artifacts
4
+ * Creates and maintains Markdown-based progress artifacts.
5
+ * Uses in-memory accumulation to preserve full task history across a run.
5
6
  */
6
- import type { FullLoopState } from './loop-state.js';
7
+ import type { FullLoopState, IterationRecord } from './loop-state.js';
8
+ import type { ProgressVerbosity } from './config-schema.js';
7
9
  /**
8
10
  * Session data for JSON output
9
11
  */
@@ -27,13 +29,81 @@ export interface SessionData {
27
29
  }>;
28
30
  lastCheckpoint?: string;
29
31
  }
32
+ /**
33
+ * Completed task result for history tracking
34
+ */
35
+ export interface TaskResult {
36
+ taskId: string;
37
+ taskTitle: string;
38
+ status: 'completed' | 'failed' | 'stuck';
39
+ attempt: number;
40
+ iterationCount: number;
41
+ tokensUsed: number;
42
+ startedAt: Date;
43
+ completedAt: Date;
44
+ summary?: string;
45
+ error?: string;
46
+ iterations: IterationRecord[];
47
+ }
48
+ /**
49
+ * Run session tracking all tasks in a multi-task execution
50
+ */
51
+ export interface RunSession {
52
+ startTime: Date;
53
+ branch?: string | undefined;
54
+ totalTasks?: number | undefined;
55
+ completedTasks: TaskResult[];
56
+ currentTask?: {
57
+ taskId: string;
58
+ taskTitle: string;
59
+ taskNumber: number;
60
+ state: FullLoopState;
61
+ } | undefined;
62
+ }
30
63
  /**
31
64
  * Progress Tracker class
65
+ *
66
+ * Maintains in-memory accumulation of all task results across a run,
67
+ * persisting full history to the progress file after each task.
32
68
  */
33
69
  export declare class ProgressTracker {
34
70
  private projectRoot;
35
71
  private maxIterations;
36
- constructor(projectRoot?: string, maxIterations?: number);
72
+ private session;
73
+ private verbosity;
74
+ constructor(projectRoot?: string, maxIterations?: number, verbosity?: ProgressVerbosity);
75
+ /**
76
+ * Set verbosity level
77
+ */
78
+ setVerbosity(verbosity: ProgressVerbosity): void;
79
+ /**
80
+ * Get the current session (for context like task numbers in commit messages)
81
+ */
82
+ getSession(): RunSession | null;
83
+ /**
84
+ * Get the count of completed tasks in the session
85
+ */
86
+ getCompletedTaskCount(): number;
87
+ /**
88
+ * Start a new run session for multi-task execution
89
+ */
90
+ startSession(branch?: string, totalTasks?: number): void;
91
+ /**
92
+ * Set the current task being processed (for live progress display)
93
+ */
94
+ setCurrentTask(taskNumber: number, state: FullLoopState): void;
95
+ /**
96
+ * Record a completed task result and persist to file
97
+ */
98
+ recordTaskCompletion(state: FullLoopState, status: 'completed' | 'failed' | 'stuck', attempt: number, summary?: string, error?: string): Promise<void>;
99
+ /**
100
+ * Save the full session history to progress file
101
+ */
102
+ private saveFullSession;
103
+ /**
104
+ * Generate full session markdown with all task history
105
+ */
106
+ private generateFullSessionMarkdown;
37
107
  /**
38
108
  * Get the progress file path
39
109
  */
@@ -1 +1 @@
1
- {"version":3,"file":"progress-tracker.d.ts","sourceRoot":"","sources":["../../src/core/progress-tracker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAOtE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAwBD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,aAAa,CAAS;gBAElB,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,GAAE,MAAW;IAK5D;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IA8B9C;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAYzC;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW;IAuCzC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IASpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;;OAGG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IA0BhD;;;OAGG;IACG,gBAAgB,CACpB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACnC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,EACxC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAiDjB"}
1
+ {"version":3,"file":"progress-tracker.d.ts","sourceRoot":"","sources":["../../src/core/progress-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Progress Tracker
3
3
  *
4
- * Creates and maintains Markdown-based progress artifacts
4
+ * Creates and maintains Markdown-based progress artifacts.
5
+ * Uses in-memory accumulation to preserve full task history across a run.
5
6
  */
6
7
  import fs from 'node:fs/promises';
7
8
  import path from 'node:path';
@@ -32,13 +33,177 @@ function formatElapsed(startDate, endDate) {
32
33
  }
33
34
  /**
34
35
  * Progress Tracker class
36
+ *
37
+ * Maintains in-memory accumulation of all task results across a run,
38
+ * persisting full history to the progress file after each task.
35
39
  */
36
40
  export class ProgressTracker {
37
41
  projectRoot;
38
42
  maxIterations;
39
- constructor(projectRoot, maxIterations = 10) {
43
+ session = null;
44
+ verbosity;
45
+ constructor(projectRoot, maxIterations = 10, verbosity = 'standard') {
40
46
  this.projectRoot = projectRoot;
41
47
  this.maxIterations = maxIterations;
48
+ this.verbosity = verbosity;
49
+ }
50
+ /**
51
+ * Set verbosity level
52
+ */
53
+ setVerbosity(verbosity) {
54
+ this.verbosity = verbosity;
55
+ }
56
+ /**
57
+ * Get the current session (for context like task numbers in commit messages)
58
+ */
59
+ getSession() {
60
+ return this.session;
61
+ }
62
+ /**
63
+ * Get the count of completed tasks in the session
64
+ */
65
+ getCompletedTaskCount() {
66
+ return this.session?.completedTasks.length ?? 0;
67
+ }
68
+ /**
69
+ * Start a new run session for multi-task execution
70
+ */
71
+ startSession(branch, totalTasks) {
72
+ this.session = {
73
+ startTime: new Date(),
74
+ branch,
75
+ totalTasks,
76
+ completedTasks: [],
77
+ };
78
+ debug(`Started progress tracking session${branch ? ` on branch ${branch}` : ''}`);
79
+ }
80
+ /**
81
+ * Set the current task being processed (for live progress display)
82
+ */
83
+ setCurrentTask(taskNumber, state) {
84
+ if (!this.session) {
85
+ this.startSession();
86
+ }
87
+ // Session is guaranteed to exist after startSession()
88
+ const session = this.session;
89
+ session.currentTask = {
90
+ taskId: state.task.id,
91
+ taskTitle: state.task.title,
92
+ taskNumber,
93
+ state,
94
+ };
95
+ }
96
+ /**
97
+ * Record a completed task result and persist to file
98
+ */
99
+ async recordTaskCompletion(state, status, attempt, summary, error) {
100
+ if (!this.session) {
101
+ this.startSession();
102
+ }
103
+ // Session is guaranteed to exist after startSession()
104
+ const session = this.session;
105
+ const result = {
106
+ taskId: state.task.id,
107
+ taskTitle: state.task.title,
108
+ status,
109
+ attempt,
110
+ iterationCount: state.iteration,
111
+ tokensUsed: state.tokensUsed,
112
+ startedAt: state.startedAt,
113
+ completedAt: new Date(),
114
+ iterations: [...state.iterations],
115
+ };
116
+ if (summary)
117
+ result.summary = summary;
118
+ if (error)
119
+ result.error = error;
120
+ session.completedTasks.push(result);
121
+ session.currentTask = undefined;
122
+ // Persist full history to file
123
+ await this.saveFullSession();
124
+ }
125
+ /**
126
+ * Save the full session history to progress file
127
+ */
128
+ async saveFullSession() {
129
+ if (!this.session)
130
+ return;
131
+ const filePath = this.getProgressFilePath();
132
+ const dir = path.dirname(filePath);
133
+ await fs.mkdir(dir, { recursive: true });
134
+ const content = this.generateFullSessionMarkdown();
135
+ await fs.writeFile(filePath, content, 'utf-8');
136
+ debug(`Progress saved with ${this.session.completedTasks.length} task(s) to ${filePath}`);
137
+ }
138
+ /**
139
+ * Generate full session markdown with all task history
140
+ */
141
+ generateFullSessionMarkdown() {
142
+ if (!this.session)
143
+ return '';
144
+ let md = `# Ralph Progress Log\n\n`;
145
+ md += `## Run Session\n\n`;
146
+ md += `- **Started**: ${formatDate(this.session.startTime)}\n`;
147
+ if (this.session.branch) {
148
+ md += `- **Branch**: ${this.session.branch}\n`;
149
+ }
150
+ if (this.session.totalTasks) {
151
+ md += `- **Total Tasks**: ${this.session.totalTasks}\n`;
152
+ }
153
+ md += `- **Completed**: ${this.session.completedTasks.length}\n`;
154
+ md += `- **Elapsed**: ${formatElapsed(this.session.startTime)}\n`;
155
+ md += `\n---\n\n`;
156
+ // Output all completed tasks with full iteration history
157
+ for (let i = 0; i < this.session.completedTasks.length; i++) {
158
+ const task = this.session.completedTasks[i];
159
+ if (!task)
160
+ continue;
161
+ const taskNum = i + 1;
162
+ const statusEmoji = task.status === 'completed' ? '✅' : task.status === 'stuck' ? '🔄' : '❌';
163
+ md += `## Task ${taskNum}: ${task.taskTitle}\n\n`;
164
+ md += `- **ID**: ${task.taskId}\n`;
165
+ md += `- **Status**: ${statusEmoji} ${task.status}\n`;
166
+ md += `- **Attempt**: ${task.attempt}\n`;
167
+ md += `- **Iterations**: ${task.iterationCount}\n`;
168
+ md += `- **Tokens Used**: ${task.tokensUsed.toLocaleString()}\n`;
169
+ md += `- **Started**: ${formatDate(task.startedAt)}\n`;
170
+ md += `- **Completed**: ${formatDate(task.completedAt)}\n`;
171
+ md += `- **Duration**: ${formatElapsed(task.startedAt, task.completedAt)}\n`;
172
+ if (task.summary) {
173
+ md += `- **Summary**: ${task.summary}\n`;
174
+ }
175
+ if (task.error) {
176
+ md += `- **Error**: ${task.error}\n`;
177
+ }
178
+ // Include iteration log for this task
179
+ if (task.iterations.length > 0) {
180
+ md += `\n### Iteration Log\n\n`;
181
+ for (const iter of task.iterations) {
182
+ md += this.formatIteration(iter);
183
+ }
184
+ }
185
+ md += `\n---\n\n`;
186
+ }
187
+ // Include current task if in progress
188
+ if (this.session.currentTask) {
189
+ const { taskNumber, state } = this.session.currentTask;
190
+ md += `## Task ${taskNumber}: ${state.task.title} (In Progress)\n\n`;
191
+ md += `- **ID**: ${state.task.id}\n`;
192
+ md += `- **Status**: 🔄 ${this.formatStatus(state.status)}\n`;
193
+ md += `- **Iterations**: ${state.iteration}/${this.maxIterations}\n`;
194
+ md += `- **Tokens Used**: ${state.tokensUsed.toLocaleString()}\n`;
195
+ md += `- **Started**: ${formatDate(state.startedAt)}\n`;
196
+ if (state.lastCheckpoint) {
197
+ md += `- **Last Checkpoint**: \`${state.lastCheckpoint}\`\n`;
198
+ }
199
+ if (state.iterations.length > 0) {
200
+ md += `\n### Iteration Log\n\n`;
201
+ for (const iter of state.iterations) {
202
+ md += this.formatIteration(iter);
203
+ }
204
+ }
205
+ }
206
+ return md;
42
207
  }
43
208
  /**
44
209
  * Get the progress file path
@@ -97,6 +262,10 @@ export class ProgressTracker {
97
262
  formatIteration(iter) {
98
263
  const time = iter.startedAt.toLocaleTimeString();
99
264
  const status = iter.success ? '✓' : '✗';
265
+ // Minimal verbosity: just iteration header and status
266
+ if (this.verbosity === 'minimal') {
267
+ return `#### Iteration ${iter.iteration} (${time}) ${status}\n\n`;
268
+ }
100
269
  let md = `#### Iteration ${iter.iteration} (${time}) ${status}\n\n`;
101
270
  md += `- **Tokens**: ${iter.tokensUsed.toLocaleString()}\n`;
102
271
  if (iter.summary) {
@@ -109,6 +278,27 @@ export class ProgressTracker {
109
278
  const duration = iter.endedAt.getTime() - iter.startedAt.getTime();
110
279
  md += `- **Duration**: ${Math.floor(duration / 1000)}s\n`;
111
280
  }
281
+ // Standard+ verbosity: include actions executed if available
282
+ if ((this.verbosity === 'standard' || this.verbosity === 'full') && iter.actions && iter.actions.length > 0) {
283
+ md += `\n**Actions**:\n`;
284
+ for (const action of iter.actions) {
285
+ const actionStatus = action.success ? '✓' : '✗';
286
+ md += `- ${actionStatus} \`[${action.type}]\``;
287
+ if (action.summary) {
288
+ // Truncate long summaries
289
+ const truncated = action.summary.length > 60
290
+ ? action.summary.substring(0, 57) + '...'
291
+ : action.summary;
292
+ md += ` ${truncated}`;
293
+ }
294
+ md += '\n';
295
+ }
296
+ }
297
+ // Full verbosity only: include raw response
298
+ if (this.verbosity === 'full' && iter.rawResponse) {
299
+ md += `\n**Agent Response**:\n`;
300
+ md += `\`\`\`\n${iter.rawResponse}\n\`\`\`\n`;
301
+ }
112
302
  md += `\n`;
113
303
  return md;
114
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress-tracker.js","sourceRoot":"","sources":["../../src/core/progress-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress-tracker.js","sourceRoot":"","sources":["../../src/core/progress-tracker.ts"],"names":[],"mappings":"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"}
@@ -25,18 +25,26 @@ export declare const EXECUTE_EXAMPLE = "[ACTION:EXECUTE]\ncommand: npm test";
25
25
  * Example of ACTION:COMPLETE block
26
26
  */
27
27
  export declare const COMPLETE_EXAMPLE = "[ACTION:COMPLETE]\nreason: All tests pass. Calculator implements addition, subtraction, multiplication, and division.";
28
+ /**
29
+ * Example of ACTION:STUCK block (for when task cannot be completed)
30
+ */
31
+ export declare const STUCK_EXAMPLE = "[ACTION:STUCK]\nattempted: Tried 3 different approaches to fix the syntax error in case statement\nblocker: Bash case syntax requires specific quoting for * character that conflicts with shell expansion\nsuggestion: Consider using a different operator syntax or escaping approach - may need human review";
32
+ /**
33
+ * Example of COMMIT_MESSAGE block for git commit summaries
34
+ */
35
+ export declare const COMMIT_MESSAGE_EXAMPLE = "[COMMIT_MESSAGE]\nAdd division operation with error handling\n[/COMMIT_MESSAGE]";
28
36
  /**
29
37
  * All examples combined for inclusion in prompts
30
38
  */
31
- export declare const ALL_EXAMPLES = "\n### Example: Create a new file\n[ACTION:CREATE]\npath: src/calculator.sh\n```bash\n#!/bin/bash\n# Simple calculator\n\nnum1=$1\nop=$2\nnum2=$3\n\ncase $op in\n \"+\") echo $((num1 + num2)) ;;\n \"-\") echo $((num1 - num2)) ;;\n \"*\") echo $((num1 * num2)) ;;\n \"/\") echo $((num1 / num2)) ;;\nesac\n```\n\n### Example: Edit an existing file\n[ACTION:EDIT]\npath: src/calculator.sh\n[OLD]\ncase $op in\n \"+\") echo $((num1 + num2)) ;;\nesac\n[NEW]\ncase $op in\n \"+\") echo $((num1 + num2)) ;;\n \"-\") echo $((num1 - num2)) ;;\nesac\n\n### Example: Run a command to test\n[ACTION:EXECUTE]\ncommand: npm test\n\n### Example: Mark task complete\n[ACTION:COMPLETE]\nreason: All tests pass. Calculator implements addition, subtraction, multiplication, and division.\n";
39
+ export declare const ALL_EXAMPLES = "\n### Example: Create a new file\n[ACTION:CREATE]\npath: src/calculator.sh\n```bash\n#!/bin/bash\n# Simple calculator\n\nnum1=$1\nop=$2\nnum2=$3\n\ncase $op in\n \"+\") echo $((num1 + num2)) ;;\n \"-\") echo $((num1 - num2)) ;;\n \"*\") echo $((num1 * num2)) ;;\n \"/\") echo $((num1 / num2)) ;;\nesac\n```\n\n### Example: Edit an existing file\n[ACTION:EDIT]\npath: src/calculator.sh\n[OLD]\ncase $op in\n \"+\") echo $((num1 + num2)) ;;\nesac\n[NEW]\ncase $op in\n \"+\") echo $((num1 + num2)) ;;\n \"-\") echo $((num1 - num2)) ;;\nesac\n\n### Example: Run a command to test\n[ACTION:EXECUTE]\ncommand: npm test\n\n### Example: Mark task complete (ONLY when tests pass!)\n[ACTION:COMPLETE]\nreason: All tests pass. Calculator implements addition, subtraction, multiplication, and division.\n\n### Example: Report when stuck (be honest if you can't complete!)\n[ACTION:STUCK]\nattempted: Tried 3 different approaches to fix the syntax error in case statement\nblocker: Bash case syntax requires specific quoting for * character that conflicts with shell expansion\nsuggestion: Consider using a different operator syntax or escaping approach - may need human review\n\n### Example: Commit message for the iteration\n[COMMIT_MESSAGE]\nAdd division operation with error handling\n[/COMMIT_MESSAGE]\n";
32
40
  /**
33
41
  * Minimal examples (for context-constrained situations)
34
42
  */
35
- export declare const MINIMAL_EXAMPLES = "\nExample CREATE:\n[ACTION:CREATE]\npath: file.sh\n```bash\n#!/bin/bash\necho \"Hello\"\n```\n\nExample EDIT:\n[ACTION:EDIT]\npath: file.sh\n[OLD]\necho \"Hello\"\n[NEW]\necho \"Hello World\"\n\nExample EXECUTE:\n[ACTION:EXECUTE]\ncommand: ./file.sh\n\nExample COMPLETE:\n[ACTION:COMPLETE]\nreason: Task done, tests pass\n";
43
+ export declare const MINIMAL_EXAMPLES = "\nExample CREATE:\n[ACTION:CREATE]\npath: file.sh\n```bash\n#!/bin/bash\necho \"Hello\"\n```\n\nExample EDIT:\n[ACTION:EDIT]\npath: file.sh\n[OLD]\necho \"Hello\"\n[NEW]\necho \"Hello World\"\n\nExample EXECUTE:\n[ACTION:EXECUTE]\ncommand: ./file.sh\n\nExample COMPLETE (only when tests pass!):\n[ACTION:COMPLETE]\nreason: Task done, tests pass\n\nExample STUCK (when you cannot complete):\n[ACTION:STUCK]\nattempted: Tried X approach\nblocker: Error Y prevents completion\nsuggestion: Try Z instead\n";
36
44
  /**
37
45
  * Format instructions for ACTION blocks
38
46
  */
39
- export declare const FORMAT_INSTRUCTIONS = "## Output Format\n\nYou MUST respond using ONLY structured ACTION blocks. DO NOT write prose explanations.\n\nAvailable actions:\n\n**[ACTION:CREATE]** - Create a new file\n```\n[ACTION:CREATE]\npath: <relative file path>\n```<language>\n<file content>\n```\n```\n\n**[ACTION:EDIT]** - Modify an existing file \n```\n[ACTION:EDIT]\npath: <relative file path>\n[OLD]\n<exact text to find>\n[NEW]\n<replacement text>\n```\n\n**[ACTION:EXECUTE]** - Run a shell command\n```\n[ACTION:EXECUTE]\ncommand: <shell command>\n```\n\n**[ACTION:COMPLETE]** - Mark task as done (only when tests pass!)\n```\n[ACTION:COMPLETE]\nreason: <brief explanation of why task is complete>\n```\n\n## Important Rules\n1. Use EXACT text for [OLD] blocks - must match file contents precisely\n2. Use [ACTION:EXECUTE] to run tests before marking complete\n3. Only use [ACTION:COMPLETE] when verification passes\n4. One action per block - you can include multiple blocks\n";
47
+ export declare const FORMAT_INSTRUCTIONS = "## Output Format\n\nYou MUST respond using ONLY structured ACTION blocks. DO NOT write prose explanations.\n\nAvailable actions:\n\n**[ACTION:CREATE]** - Create a new file\n```\n[ACTION:CREATE]\npath: <relative file path>\n```<language>\n<file content>\n```\n```\n\n**[ACTION:EDIT]** - Modify an existing file \n```\n[ACTION:EDIT]\npath: <relative file path>\n[OLD]\n<exact text to find>\n[NEW]\n<replacement text>\n```\n\n**[ACTION:EXECUTE]** - Run a shell command\n```\n[ACTION:EXECUTE]\ncommand: <shell command>\n```\n\n**[ACTION:COMPLETE]** - Mark task as done (ONLY when all tests pass!)\n```\n[ACTION:COMPLETE]\nreason: <brief explanation of why task is complete>\n```\n\n**[ACTION:STUCK]** - Report inability to complete (be honest!)\n```\n[ACTION:STUCK]\nattempted: <what you tried>\nblocker: <what prevents completion>\nsuggestion: <what might help>\n```\n\n**[COMMIT_MESSAGE]** - Provide commit message for this iteration\n```\n[COMMIT_MESSAGE]\n<max 50 chars, imperative mood, specific>\n[/COMMIT_MESSAGE]\n```\n\n## Important Rules\n1. Use EXACT text for [OLD] blocks - must match file contents precisely\n2. Use [ACTION:EXECUTE] to run tests before marking complete\n3. Only use [ACTION:COMPLETE] when ALL tests pass with exit code 0\n4. Use [ACTION:STUCK] if you cannot complete - honesty is critical!\n5. One action per block - you can include multiple blocks\n6. Include a [COMMIT_MESSAGE] block to summarize what you did\n";
40
48
  /**
41
49
  * Get prompt examples based on model strength
42
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-examples.d.ts","sourceRoot":"","sources":["../../src/core/prompt-examples.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,iSAgBpB,CAAC;AAER;;GAEG;AACH,eAAO,MAAM,YAAY,8MAUpB,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,cAAc,2CACL,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,eAAe,wCACV,CAAC;AAEnB;;GAEG;AACH,eAAO,MAAM,gBAAgB,0HACsE,CAAC;AAEpG;;GAEG;AACH,eAAO,MAAM,YAAY,2xBAYxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,uUAwB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,s7BA0C/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAcrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAyB5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzD"}
1
+ {"version":3,"file":"prompt-examples.d.ts","sourceRoot":"","sources":["../../src/core/prompt-examples.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,iSAgBpB,CAAC;AAER;;GAEG;AACH,eAAO,MAAM,YAAY,8MAUpB,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,cAAc,2CACL,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,eAAe,wCACV,CAAC;AAEnB;;GAEG;AACH,eAAO,MAAM,gBAAgB,0HACsE,CAAC;AAEpG;;GAEG;AACH,eAAO,MAAM,aAAa,oTAG0E,CAAC;AAErG;;GAEG;AACH,eAAO,MAAM,sBAAsB,oFAEjB,CAAC;AAEnB;;GAEG;AACH,eAAO,MAAM,YAAY,2yCAkBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,0fA8B5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,q6CA2D/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAcrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAyB5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzD"}
@@ -54,6 +54,19 @@ command: npm test`;
54
54
  */
55
55
  export const COMPLETE_EXAMPLE = `[ACTION:COMPLETE]
56
56
  reason: All tests pass. Calculator implements addition, subtraction, multiplication, and division.`;
57
+ /**
58
+ * Example of ACTION:STUCK block (for when task cannot be completed)
59
+ */
60
+ export const STUCK_EXAMPLE = `[ACTION:STUCK]
61
+ attempted: Tried 3 different approaches to fix the syntax error in case statement
62
+ blocker: Bash case syntax requires specific quoting for * character that conflicts with shell expansion
63
+ suggestion: Consider using a different operator syntax or escaping approach - may need human review`;
64
+ /**
65
+ * Example of COMMIT_MESSAGE block for git commit summaries
66
+ */
67
+ export const COMMIT_MESSAGE_EXAMPLE = `[COMMIT_MESSAGE]
68
+ Add division operation with error handling
69
+ [/COMMIT_MESSAGE]`;
57
70
  /**
58
71
  * All examples combined for inclusion in prompts
59
72
  */
@@ -67,8 +80,14 @@ ${EDIT_EXAMPLE}
67
80
  ### Example: Run a command to test
68
81
  ${EXECUTE_EXAMPLE}
69
82
 
70
- ### Example: Mark task complete
83
+ ### Example: Mark task complete (ONLY when tests pass!)
71
84
  ${COMPLETE_EXAMPLE}
85
+
86
+ ### Example: Report when stuck (be honest if you can't complete!)
87
+ ${STUCK_EXAMPLE}
88
+
89
+ ### Example: Commit message for the iteration
90
+ ${COMMIT_MESSAGE_EXAMPLE}
72
91
  `;
73
92
  /**
74
93
  * Minimal examples (for context-constrained situations)
@@ -94,9 +113,15 @@ Example EXECUTE:
94
113
  [ACTION:EXECUTE]
95
114
  command: ./file.sh
96
115
 
97
- Example COMPLETE:
116
+ Example COMPLETE (only when tests pass!):
98
117
  [ACTION:COMPLETE]
99
118
  reason: Task done, tests pass
119
+
120
+ Example STUCK (when you cannot complete):
121
+ [ACTION:STUCK]
122
+ attempted: Tried X approach
123
+ blocker: Error Y prevents completion
124
+ suggestion: Try Z instead
100
125
  `;
101
126
  /**
102
127
  * Format instructions for ACTION blocks
@@ -132,17 +157,34 @@ path: <relative file path>
132
157
  command: <shell command>
133
158
  \`\`\`
134
159
 
135
- **[ACTION:COMPLETE]** - Mark task as done (only when tests pass!)
160
+ **[ACTION:COMPLETE]** - Mark task as done (ONLY when all tests pass!)
136
161
  \`\`\`
137
162
  [ACTION:COMPLETE]
138
163
  reason: <brief explanation of why task is complete>
139
164
  \`\`\`
140
165
 
166
+ **[ACTION:STUCK]** - Report inability to complete (be honest!)
167
+ \`\`\`
168
+ [ACTION:STUCK]
169
+ attempted: <what you tried>
170
+ blocker: <what prevents completion>
171
+ suggestion: <what might help>
172
+ \`\`\`
173
+
174
+ **[COMMIT_MESSAGE]** - Provide commit message for this iteration
175
+ \`\`\`
176
+ [COMMIT_MESSAGE]
177
+ <max 50 chars, imperative mood, specific>
178
+ [/COMMIT_MESSAGE]
179
+ \`\`\`
180
+
141
181
  ## Important Rules
142
182
  1. Use EXACT text for [OLD] blocks - must match file contents precisely
143
183
  2. Use [ACTION:EXECUTE] to run tests before marking complete
144
- 3. Only use [ACTION:COMPLETE] when verification passes
145
- 4. One action per block - you can include multiple blocks
184
+ 3. Only use [ACTION:COMPLETE] when ALL tests pass with exit code 0
185
+ 4. Use [ACTION:STUCK] if you cannot complete - honesty is critical!
186
+ 5. One action per block - you can include multiple blocks
187
+ 6. Include a [COMMIT_MESSAGE] block to summarize what you did
146
188
  `;
147
189
  /**
148
190
  * Get prompt examples based on model strength
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-examples.js","sourceRoot":"","sources":["../../src/core/prompt-examples.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;OAgBvB,CAAC;AAER;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;KAUvB,CAAC;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;sBACR,CAAC;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;kBACb,CAAC;AAEnB;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;mGACmE,CAAC;AAEpG;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;EAE1B,cAAc;;;EAGd,YAAY;;;EAGZ,eAAe;;;EAGf,gBAAgB;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwB/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ClC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,aAA2C;IAC3E,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,uDAAuD;YACvD,OAAO,mBAAmB,CAAC;QAC7B,KAAK,QAAQ;YACX,+CAA+C;YAC/C,OAAO,mBAAmB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;QACtE,KAAK,MAAM;YACT,2DAA2D;YAC3D,OAAO,mBAAmB,GAAG,4BAA4B,GAAG,YAAY,CAAC;QAC3E;YACE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,kDAAkD;IAClD,IACE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC5B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC3B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,IACE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;QAClC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC7B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,qEAAqE;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"prompt-examples.js","sourceRoot":"","sources":["../../src/core/prompt-examples.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;OAgBvB,CAAC;AAER;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;KAUvB,CAAC;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;sBACR,CAAC;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;kBACb,CAAC;AAEnB;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;mGACmE,CAAC;AAEpG;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;oGAGuE,CAAC;AAErG;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;kBAEpB,CAAC;AAEnB;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;EAE1B,cAAc;;;EAGd,YAAY;;;EAGZ,eAAe;;;EAGf,gBAAgB;;;EAGhB,aAAa;;;EAGb,sBAAsB;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DlC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,aAA2C;IAC3E,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,uDAAuD;YACvD,OAAO,mBAAmB,CAAC;QAC7B,KAAK,QAAQ;YACX,+CAA+C;YAC/C,OAAO,mBAAmB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;QACtE,KAAK,MAAM;YACT,2DAA2D;YAC3D,OAAO,mBAAmB,GAAG,4BAA4B,GAAG,YAAY,CAAC;QAC3E;YACE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,kDAAkD;IAClD,IACE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC5B,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC3B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,IACE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;QAClC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC7B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,qEAAqE;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghcralph",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "GitHub Copilot Ralph - A cross-platform CLI for running autonomous agentic coding loops using the Ralph Wiggum pattern with GitHub Copilot",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -77,6 +77,7 @@
77
77
  "dependencies": {
78
78
  "@github/copilot-sdk": "^0.1.17",
79
79
  "@octokit/rest": "^22.0.1",
80
+ "async-mutex": "^0.5.0",
80
81
  "chalk": "^5.6.2",
81
82
  "commander": "^14.0.2",
82
83
  "glob": "^13.0.0",