(error: unknown)
| 245 | ] as const; |
| 246 | |
| 247 | export function isRecoverableRequestStructureError(error: unknown): boolean { |
| 248 | if (isToolExchangeAdjacencyError(error)) return true; |
| 249 | if (!(error instanceof APIStatusError)) return false; |
| 250 | if (error instanceof APIContextOverflowError) return false; |
| 251 | if (error.statusCode !== 400 && error.statusCode !== 422) return false; |
| 252 | const lowerMessage = error.message.toLowerCase(); |
| 253 | return STRUCTURAL_REQUEST_MESSAGE_PATTERNS.some((pattern) => pattern.test(lowerMessage)); |
| 254 | } |
| 255 | |
| 256 | export function isProviderRateLimitError(error: unknown): boolean { |
| 257 | if (error instanceof APIProviderRateLimitError) return true; |
no test coverage detected