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.
- package/README.md +35 -17
- 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 +214 -87
- package/dist/commands/run.js.map +1 -1
- package/dist/core/action-executor.d.ts +25 -0
- package/dist/core/action-executor.d.ts.map +1 -1
- package/dist/core/action-executor.js +68 -2
- package/dist/core/action-executor.js.map +1 -1
- package/dist/core/checkpoint-manager.d.ts +55 -8
- package/dist/core/checkpoint-manager.d.ts.map +1 -1
- package/dist/core/checkpoint-manager.js +282 -94
- package/dist/core/checkpoint-manager.js.map +1 -1
- package/dist/core/config-schema.d.ts +13 -1
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +27 -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 +39 -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/index.d.ts +4 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/loop-state.d.ts +8 -0
- package/dist/core/loop-state.d.ts.map +1 -1
- package/dist/core/loop-state.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 +86 -3
- package/dist/core/progress-tracker.d.ts.map +1 -1
- package/dist/core/progress-tracker.js +257 -2
- package/dist/core/progress-tracker.js.map +1 -1
- package/dist/core/prompt-examples.d.ts +7 -3
- package/dist/core/prompt-examples.d.ts.map +1 -1
- package/dist/core/prompt-examples.js +30 -5
- package/dist/core/prompt-examples.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 +2 -1
|
@@ -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
|
-
|
|
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,23 @@ 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
|
+
// Full verbosity: include raw response if available
|
|
282
|
+
if (this.verbosity === 'full' && iter.rawResponse) {
|
|
283
|
+
md += `\n**Agent Response**:\n`;
|
|
284
|
+
md += `> ${iter.rawResponse.replace(/\n/g, '\n> ')}\n`;
|
|
285
|
+
}
|
|
286
|
+
// Full verbosity: include actions executed if available
|
|
287
|
+
if (this.verbosity === 'full' && iter.actions && iter.actions.length > 0) {
|
|
288
|
+
md += `\n**Actions Executed**:\n`;
|
|
289
|
+
for (const action of iter.actions) {
|
|
290
|
+
const actionStatus = action.success ? '✓' : '✗';
|
|
291
|
+
md += `${actionStatus} [${action.type}]`;
|
|
292
|
+
if (action.summary) {
|
|
293
|
+
md += ` ${action.summary}`;
|
|
294
|
+
}
|
|
295
|
+
md += '\n';
|
|
296
|
+
}
|
|
297
|
+
}
|
|
112
298
|
md += `\n`;
|
|
113
299
|
return md;
|
|
114
300
|
}
|
|
@@ -194,5 +380,74 @@ export class ProgressTracker {
|
|
|
194
380
|
// File doesn't exist
|
|
195
381
|
}
|
|
196
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Load previous task results from progress file for context injection.
|
|
385
|
+
* Returns a formatted summary of previous task attempts.
|
|
386
|
+
*/
|
|
387
|
+
async loadPreviousTaskResults() {
|
|
388
|
+
const filePath = this.getProgressFilePath();
|
|
389
|
+
try {
|
|
390
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
391
|
+
// Extract iteration log section if it exists
|
|
392
|
+
const iterationLogMatch = content.match(/### Iteration Log\n\n([\s\S]*?)(?=\n## |$)/);
|
|
393
|
+
const taskResultsMatch = content.match(/### Task Results\n\n([\s\S]*?)(?=\n## |$)/);
|
|
394
|
+
const parts = [];
|
|
395
|
+
if (iterationLogMatch?.[1]) {
|
|
396
|
+
parts.push('## Previous Iteration Progress\n' + iterationLogMatch[1].trim());
|
|
397
|
+
}
|
|
398
|
+
if (taskResultsMatch?.[1]) {
|
|
399
|
+
parts.push('## Previous Task Results\n' + taskResultsMatch[1].trim());
|
|
400
|
+
}
|
|
401
|
+
return parts.join('\n\n');
|
|
402
|
+
}
|
|
403
|
+
catch {
|
|
404
|
+
return '';
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Append a task result to the progress file.
|
|
409
|
+
* Used to track multi-task execution progress.
|
|
410
|
+
*/
|
|
411
|
+
async appendTaskResult(task, status, attempt, summary, error) {
|
|
412
|
+
const filePath = this.getProgressFilePath();
|
|
413
|
+
const dir = path.dirname(filePath);
|
|
414
|
+
await fs.mkdir(dir, { recursive: true });
|
|
415
|
+
const timestamp = new Date().toISOString();
|
|
416
|
+
const statusEmoji = status === 'completed' ? '✅' : status === 'stuck' ? '🔄' : '❌';
|
|
417
|
+
let entry = `\n#### ${statusEmoji} Task: ${task.title}\n\n`;
|
|
418
|
+
entry += `- **ID**: ${task.id}\n`;
|
|
419
|
+
entry += `- **Status**: ${status}\n`;
|
|
420
|
+
entry += `- **Attempt**: ${attempt}\n`;
|
|
421
|
+
entry += `- **Timestamp**: ${timestamp}\n`;
|
|
422
|
+
if (summary) {
|
|
423
|
+
entry += `- **Summary**: ${summary}\n`;
|
|
424
|
+
}
|
|
425
|
+
if (error) {
|
|
426
|
+
entry += `- **Error**: ${error}\n`;
|
|
427
|
+
}
|
|
428
|
+
entry += '\n';
|
|
429
|
+
try {
|
|
430
|
+
// Check if file exists
|
|
431
|
+
let content = '';
|
|
432
|
+
try {
|
|
433
|
+
content = await fs.readFile(filePath, 'utf-8');
|
|
434
|
+
}
|
|
435
|
+
catch {
|
|
436
|
+
// File doesn't exist, create with header
|
|
437
|
+
content = '# Ralph Progress Log\n\n## Task Results\n';
|
|
438
|
+
}
|
|
439
|
+
// If Task Results section doesn't exist, add it
|
|
440
|
+
if (!content.includes('## Task Results')) {
|
|
441
|
+
content += '\n## Task Results\n';
|
|
442
|
+
}
|
|
443
|
+
// Append the entry at the end
|
|
444
|
+
content += entry;
|
|
445
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
446
|
+
debug(`Appended task result for ${task.id} to ${filePath}`);
|
|
447
|
+
}
|
|
448
|
+
catch (err) {
|
|
449
|
+
debug(`Failed to append task result: ${err instanceof Error ? err.message : String(err)}`);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
197
452
|
}
|
|
198
453
|
//# sourceMappingURL=progress-tracker.js.map
|
|
@@ -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,22 @@ 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";
|
|
28
32
|
/**
|
|
29
33
|
* All examples combined for inclusion in prompts
|
|
30
34
|
*/
|
|
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";
|
|
35
|
+
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";
|
|
32
36
|
/**
|
|
33
37
|
* Minimal examples (for context-constrained situations)
|
|
34
38
|
*/
|
|
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";
|
|
39
|
+
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
40
|
/**
|
|
37
41
|
* Format instructions for ACTION blocks
|
|
38
42
|
*/
|
|
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 (
|
|
43
|
+
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## 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\n";
|
|
40
44
|
/**
|
|
41
45
|
* Get prompt examples based on model strength
|
|
42
46
|
*/
|
|
@@ -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,
|
|
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,YAAY,yqCAexB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,0fA8B5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,wsCAmD/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,13 @@ 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`;
|
|
57
64
|
/**
|
|
58
65
|
* All examples combined for inclusion in prompts
|
|
59
66
|
*/
|
|
@@ -67,8 +74,11 @@ ${EDIT_EXAMPLE}
|
|
|
67
74
|
### Example: Run a command to test
|
|
68
75
|
${EXECUTE_EXAMPLE}
|
|
69
76
|
|
|
70
|
-
### Example: Mark task complete
|
|
77
|
+
### Example: Mark task complete (ONLY when tests pass!)
|
|
71
78
|
${COMPLETE_EXAMPLE}
|
|
79
|
+
|
|
80
|
+
### Example: Report when stuck (be honest if you can't complete!)
|
|
81
|
+
${STUCK_EXAMPLE}
|
|
72
82
|
`;
|
|
73
83
|
/**
|
|
74
84
|
* Minimal examples (for context-constrained situations)
|
|
@@ -94,9 +104,15 @@ Example EXECUTE:
|
|
|
94
104
|
[ACTION:EXECUTE]
|
|
95
105
|
command: ./file.sh
|
|
96
106
|
|
|
97
|
-
Example COMPLETE:
|
|
107
|
+
Example COMPLETE (only when tests pass!):
|
|
98
108
|
[ACTION:COMPLETE]
|
|
99
109
|
reason: Task done, tests pass
|
|
110
|
+
|
|
111
|
+
Example STUCK (when you cannot complete):
|
|
112
|
+
[ACTION:STUCK]
|
|
113
|
+
attempted: Tried X approach
|
|
114
|
+
blocker: Error Y prevents completion
|
|
115
|
+
suggestion: Try Z instead
|
|
100
116
|
`;
|
|
101
117
|
/**
|
|
102
118
|
* Format instructions for ACTION blocks
|
|
@@ -132,17 +148,26 @@ path: <relative file path>
|
|
|
132
148
|
command: <shell command>
|
|
133
149
|
\`\`\`
|
|
134
150
|
|
|
135
|
-
**[ACTION:COMPLETE]** - Mark task as done (
|
|
151
|
+
**[ACTION:COMPLETE]** - Mark task as done (ONLY when all tests pass!)
|
|
136
152
|
\`\`\`
|
|
137
153
|
[ACTION:COMPLETE]
|
|
138
154
|
reason: <brief explanation of why task is complete>
|
|
139
155
|
\`\`\`
|
|
140
156
|
|
|
157
|
+
**[ACTION:STUCK]** - Report inability to complete (be honest!)
|
|
158
|
+
\`\`\`
|
|
159
|
+
[ACTION:STUCK]
|
|
160
|
+
attempted: <what you tried>
|
|
161
|
+
blocker: <what prevents completion>
|
|
162
|
+
suggestion: <what might help>
|
|
163
|
+
\`\`\`
|
|
164
|
+
|
|
141
165
|
## Important Rules
|
|
142
166
|
1. Use EXACT text for [OLD] blocks - must match file contents precisely
|
|
143
167
|
2. Use [ACTION:EXECUTE] to run tests before marking complete
|
|
144
|
-
3. Only use [ACTION:COMPLETE] when
|
|
145
|
-
4.
|
|
168
|
+
3. Only use [ACTION:COMPLETE] when ALL tests pass with exit code 0
|
|
169
|
+
4. Use [ACTION:STUCK] if you cannot complete - honesty is critical!
|
|
170
|
+
5. One action per block - you can include multiple blocks
|
|
146
171
|
`;
|
|
147
172
|
/**
|
|
148
173
|
* 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;
|
|
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,YAAY,GAAG;;EAE1B,cAAc;;;EAGd,YAAY;;;EAGZ,eAAe;;;EAGf,gBAAgB;;;EAGhB,aAAa;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDlC,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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/**
|
|
9
9
|
* Action types that the AI can request
|
|
10
10
|
*/
|
|
11
|
-
export type ActionType = 'CREATE' | 'EDIT' | 'DELETE' | 'EXECUTE' | 'COMPLETE';
|
|
11
|
+
export type ActionType = 'CREATE' | 'EDIT' | 'DELETE' | 'EXECUTE' | 'COMPLETE' | 'STUCK';
|
|
12
12
|
/**
|
|
13
13
|
* Base action interface
|
|
14
14
|
*/
|
|
@@ -54,10 +54,19 @@ export interface CompleteAction extends BaseAction {
|
|
|
54
54
|
type: 'COMPLETE';
|
|
55
55
|
reason: string;
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Signal that the agent is stuck and cannot proceed
|
|
59
|
+
*/
|
|
60
|
+
export interface StuckAction extends BaseAction {
|
|
61
|
+
type: 'STUCK';
|
|
62
|
+
attempted: string;
|
|
63
|
+
blocker: string;
|
|
64
|
+
suggestion?: string;
|
|
65
|
+
}
|
|
57
66
|
/**
|
|
58
67
|
* Union type of all actions
|
|
59
68
|
*/
|
|
60
|
-
export type Action = CreateAction | EditAction | DeleteAction | ExecuteAction | CompleteAction;
|
|
69
|
+
export type Action = CreateAction | EditAction | DeleteAction | ExecuteAction | CompleteAction | StuckAction;
|
|
61
70
|
/**
|
|
62
71
|
* Result of parsing a response
|
|
63
72
|
*/
|
|
@@ -79,10 +88,18 @@ export declare function parseResponse(response: string): ParseResult;
|
|
|
79
88
|
* Check if a response contains a COMPLETE action
|
|
80
89
|
*/
|
|
81
90
|
export declare function hasCompleteAction(result: ParseResult): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Check if a response contains a STUCK action
|
|
93
|
+
*/
|
|
94
|
+
export declare function hasStuckAction(result: ParseResult): boolean;
|
|
82
95
|
/**
|
|
83
96
|
* Get the COMPLETE action if present
|
|
84
97
|
*/
|
|
85
98
|
export declare function getCompleteAction(result: ParseResult): CompleteAction | null;
|
|
99
|
+
/**
|
|
100
|
+
* Get the STUCK action if present
|
|
101
|
+
*/
|
|
102
|
+
export declare function getStuckAction(result: ParseResult): StuckAction | null;
|
|
86
103
|
/**
|
|
87
104
|
* Filter actions by type
|
|
88
105
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-parser.d.ts","sourceRoot":"","sources":["../../src/core/response-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"response-parser.d.ts","sourceRoot":"","sources":["../../src/core/response-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAE7G;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yDAAyD;IACzD,UAAU,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA8C3D;AA4LD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAG5E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAGtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GACd,CAAC,EAAE,CAEL"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/**
|
|
9
9
|
* Action block pattern - matches [ACTION:TYPE] blocks
|
|
10
10
|
*/
|
|
11
|
-
const ACTION_BLOCK_PATTERN = /\[ACTION:(CREATE|EDIT|DELETE|EXECUTE|COMPLETE)\]([\s\S]*?)(?=\[ACTION:|$)/gi;
|
|
11
|
+
const ACTION_BLOCK_PATTERN = /\[ACTION:(CREATE|EDIT|DELETE|EXECUTE|COMPLETE|STUCK)\]([\s\S]*?)(?=\[ACTION:|$)/gi;
|
|
12
12
|
/**
|
|
13
13
|
* Parse an AI response to extract structured actions
|
|
14
14
|
*/
|
|
@@ -69,6 +69,8 @@ function parseActionBody(type, body, raw) {
|
|
|
69
69
|
return parseExecuteAction(body, raw);
|
|
70
70
|
case 'COMPLETE':
|
|
71
71
|
return parseCompleteAction(body, raw);
|
|
72
|
+
case 'STUCK':
|
|
73
|
+
return parseStuckAction(body, raw);
|
|
72
74
|
default:
|
|
73
75
|
return null;
|
|
74
76
|
}
|
|
@@ -187,12 +189,49 @@ function parseCompleteAction(body, raw) {
|
|
|
187
189
|
raw,
|
|
188
190
|
};
|
|
189
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Parse a STUCK action
|
|
194
|
+
* Expected format:
|
|
195
|
+
* attempted: what was tried
|
|
196
|
+
* blocker: what is preventing completion
|
|
197
|
+
* suggestion: optional suggestion for next steps
|
|
198
|
+
*/
|
|
199
|
+
function parseStuckAction(body, raw) {
|
|
200
|
+
const attemptedMatch = body.match(/^attempted:\s*(.+)$/m);
|
|
201
|
+
if (!attemptedMatch?.[1]) {
|
|
202
|
+
throw new Error('Missing attempted field');
|
|
203
|
+
}
|
|
204
|
+
const attempted = attemptedMatch[1].trim();
|
|
205
|
+
const blockerMatch = body.match(/^blocker:\s*(.+)$/m);
|
|
206
|
+
if (!blockerMatch?.[1]) {
|
|
207
|
+
throw new Error('Missing blocker field');
|
|
208
|
+
}
|
|
209
|
+
const blocker = blockerMatch[1].trim();
|
|
210
|
+
const suggestionMatch = body.match(/^suggestion:\s*(.+)$/m);
|
|
211
|
+
const suggestion = suggestionMatch?.[1]?.trim();
|
|
212
|
+
const result = {
|
|
213
|
+
type: 'STUCK',
|
|
214
|
+
attempted,
|
|
215
|
+
blocker,
|
|
216
|
+
raw,
|
|
217
|
+
};
|
|
218
|
+
if (suggestion) {
|
|
219
|
+
result.suggestion = suggestion;
|
|
220
|
+
}
|
|
221
|
+
return result;
|
|
222
|
+
}
|
|
190
223
|
/**
|
|
191
224
|
* Check if a response contains a COMPLETE action
|
|
192
225
|
*/
|
|
193
226
|
export function hasCompleteAction(result) {
|
|
194
227
|
return result.actions.some((a) => a.type === 'COMPLETE');
|
|
195
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Check if a response contains a STUCK action
|
|
231
|
+
*/
|
|
232
|
+
export function hasStuckAction(result) {
|
|
233
|
+
return result.actions.some((a) => a.type === 'STUCK');
|
|
234
|
+
}
|
|
196
235
|
/**
|
|
197
236
|
* Get the COMPLETE action if present
|
|
198
237
|
*/
|
|
@@ -200,6 +239,13 @@ export function getCompleteAction(result) {
|
|
|
200
239
|
const action = result.actions.find((a) => a.type === 'COMPLETE');
|
|
201
240
|
return action?.type === 'COMPLETE' ? action : null;
|
|
202
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Get the STUCK action if present
|
|
244
|
+
*/
|
|
245
|
+
export function getStuckAction(result) {
|
|
246
|
+
const action = result.actions.find((a) => a.type === 'STUCK');
|
|
247
|
+
return action?.type === 'STUCK' ? action : null;
|
|
248
|
+
}
|
|
203
249
|
/**
|
|
204
250
|
* Filter actions by type
|
|
205
251
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-parser.js","sourceRoot":"","sources":["../../src/core/response-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"response-parser.js","sourceRoot":"","sources":["../../src/core/response-parser.ts"],"names":[],"mappings":"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"}
|