46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
|
|
import { DELEGATE_TASK_ERROR_PATTERNS, type DetectedError } from "./patterns"
|
||
|
|
|
||
|
|
function extractAvailableList(output: string): string | null {
|
||
|
|
const availableMatch = output.match(/Available[^:]*:\s*(.+)$/m)
|
||
|
|
return availableMatch ? availableMatch[1].trim() : null
|
||
|
|
}
|
||
|
|
|
||
|
|
export function buildRetryGuidance(errorInfo: DetectedError): string {
|
||
|
|
const pattern = DELEGATE_TASK_ERROR_PATTERNS.find(
|
||
|
|
(p) => p.errorType === errorInfo.errorType
|
||
|
|
)
|
||
|
|
|
||
|
|
if (!pattern) {
|
||
|
|
return `[task ERROR] Fix the error and retry with correct parameters.`
|
||
|
|
}
|
||
|
|
|
||
|
|
let guidance = `
|
||
|
|
[task CALL FAILED - IMMEDIATE RETRY REQUIRED]
|
||
|
|
|
||
|
|
**Error Type**: ${errorInfo.errorType}
|
||
|
|
**Fix**: ${pattern.fixHint}
|
||
|
|
`
|
||
|
|
|
||
|
|
const availableList = extractAvailableList(errorInfo.originalOutput)
|
||
|
|
if (availableList) {
|
||
|
|
guidance += `\n**Available Options**: ${availableList}\n`
|
||
|
|
}
|
||
|
|
|
||
|
|
guidance += `
|
||
|
|
**Action**: Retry task NOW with corrected parameters.
|
||
|
|
|
||
|
|
Example of CORRECT call:
|
||
|
|
\`\`\`
|
||
|
|
task(
|
||
|
|
description="Task description",
|
||
|
|
prompt="Detailed prompt...",
|
||
|
|
category="unspecified-low", // OR subagent_type="explore"
|
||
|
|
run_in_background=false,
|
||
|
|
load_skills=[]
|
||
|
|
)
|
||
|
|
\`\`\`
|
||
|
|
`
|
||
|
|
|
||
|
|
return guidance
|
||
|
|
}
|