diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index 31dc750..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(npm update:*)", - "WebFetch(domain:ai-sdk.dev)", - "mcp__ide__getDiagnostics", - "Bash(npx tsc:*)", - "WebFetch(domain:sdk.vercel.ai)", - "Bash(npm run build:*)", - "Bash(npm outdated:*)" - ], - "deny": [], - "ask": [] - } -} diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts index d074d80..5183e9b 100644 --- a/app/api/chat/route.ts +++ b/app/api/chat/route.ts @@ -72,7 +72,10 @@ When using edit_diagram tool: - Example GOOD edit: {"search": " ", "replace": " "} - Example BAD edit: Including 10+ unchanged lines just to change one attribute - For multiple changes, use separate edits: [{"search": "line1", "replace": "new1"}, {"search": "line2", "replace": "new2"}] -- CRITICAL: If edit_diagram fails because the search pattern cannot be found, fall back to using display_diagram to regenerate the entire diagram with your changes. Do NOT keep trying edit_diagram with different search patterns. +- RETRY POLICY: If edit_diagram fails because the search pattern cannot be found: + * You may retry edit_diagram up to 3 times with adjusted search patterns + * After 3 failed attempts, you MUST fall back to using display_diagram to regenerate the entire diagram + * The error message will indicate how many retries remain `; const lastMessage = messages[messages.length - 1]; diff --git a/components/chat-panel.tsx b/components/chat-panel.tsx index aa8693f..78f60da 100644 --- a/components/chat-panel.tsx +++ b/components/chat-panel.tsx @@ -98,10 +98,18 @@ export default function ChatPanel() { const errorMessage = error instanceof Error ? error.message : String(error); + // Provide detailed error with current diagram XML addToolResult({ tool: "edit_diagram", toolCallId: toolCall.toolCallId, - output: `Failed to edit diagram: ${errorMessage}`, + output: `Edit failed: ${errorMessage} + +Current diagram XML: +\`\`\`xml +${currentXml} +\`\`\` + +Please retry with an adjusted search pattern or use display_diagram if retries are exhausted.`, }); } }