mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
fix: add missing i18n keys for windsurf/copilot and apply fetch timeout to streaming requests (#748, #769)
- Add windsurf and copilot entries to toolDescriptions in all 33 locale files to fix MISSING_MESSAGE errors on the CLI Tools page (#748) - Apply FETCH_TIMEOUT_MS to streaming requests' initial fetch() call to prevent 300s TCP default timeout causing silent failures on long-running requests (#769) - Previously only non-streaming requests had timeout protection; streaming requests relied solely on stream idle detection which doesn't cover initial connection hangs
This commit is contained in:
@@ -264,13 +264,12 @@ export class BaseExecutor {
|
||||
const transformedBody = this.transformRequest(model, body, stream, credentials);
|
||||
|
||||
try {
|
||||
// For non-streaming requests, apply a fetch timeout to prevent stalled connections.
|
||||
// Streaming requests skip the timeout — they use stream idle detection instead.
|
||||
const timeoutSignal = !stream ? AbortSignal.timeout(FETCH_TIMEOUT_MS) : null;
|
||||
const combinedSignal =
|
||||
signal && timeoutSignal
|
||||
? mergeAbortSignals(signal, timeoutSignal)
|
||||
: signal || timeoutSignal;
|
||||
// Apply timeout to all requests. Non-streaming requests need this to prevent
|
||||
// stalled connections. Streaming requests also need it for the initial fetch() call
|
||||
// to prevent hanging on unresponsive providers (e.g. 300s TCP default timeout — #769).
|
||||
// Stream idle detection (STREAM_IDLE_TIMEOUT_MS) handles stalls after data starts flowing.
|
||||
const timeoutSignal = AbortSignal.timeout(FETCH_TIMEOUT_MS);
|
||||
const combinedSignal = signal ? mergeAbortSignals(signal, timeoutSignal) : timeoutSignal;
|
||||
|
||||
// Apply CLI fingerprint ordering if enabled for this provider
|
||||
let finalHeaders = headers;
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "محرر كود المؤشر AI",
|
||||
"continue": "تابع مساعد الذكاء الاصطناعي",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Продължете AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -643,7 +643,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Continue AI asistent",
|
||||
"opencode": "OpenCode AI coding agent (Terminál)",
|
||||
"kiro": "Amazon Kiro – AI poháněné IDE"
|
||||
"kiro": "Amazon Kiro – AI poháněné IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Fortsæt AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor-KI-Code-Editor",
|
||||
"continue": "Weiter AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -648,7 +648,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Continue AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Editor de código AI del cursor",
|
||||
"continue": "Continuar Asistente de IA",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Jatka AI Assistantia",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Éditeur de code AI du curseur",
|
||||
"continue": "Continuer l'Assistant IA",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "עורך קוד AI של הסמן",
|
||||
"continue": "המשך עוזר AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -489,7 +489,9 @@
|
||||
"cursor": "कर्सर एआई कोड संपादक",
|
||||
"continue": "एआई असिस्टेंट जारी रखें",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Kurzor AI kódszerkesztő",
|
||||
"continue": "Az AI-asszisztens folytatása",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Editor Kode AI Kursor",
|
||||
"continue": "Lanjutkan Asisten AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -643,7 +643,9 @@
|
||||
"cursor": "कर्सर एआई कोड संपादक",
|
||||
"continue": "एआई असिस्टेंट जारी रखें",
|
||||
"opencode": "ओपनकोड एआई कोडिंग एजेंट (टर्मिनल)",
|
||||
"kiro": "अमेज़ॅन किरो - एआई-संचालित आईडीई"
|
||||
"kiro": "अमेज़ॅन किरो - एआई-संचालित आईडीई",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Editor del codice AI del cursore",
|
||||
"continue": "Continua Assistente AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "カーソルAIコードエディター",
|
||||
"continue": "AIアシスタントを続ける",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "커서 AI 코드 편집기",
|
||||
"continue": "AI 어시스턴트 계속하기",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Editor Kod AI Kursor",
|
||||
"continue": "Teruskan AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI-code-editor",
|
||||
"continue": "Ga door met AI-assistent",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Fortsett AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Ipagpatuloy ang AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Edytor kodu AI kursora",
|
||||
"continue": "Kontynuuj Asystenta AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Editor de código com IA Cursor",
|
||||
"continue": "Assistente de IA Continue",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — IDE com IA",
|
||||
"windsurf": "Windsurf — Editor de Código com IA",
|
||||
"copilot": "GitHub Copilot — Assistente de IA"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Editor de código do cursor AI",
|
||||
"continue": "Continuar Assistente de IA",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Continuați Asistentul AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Редактор кода курсора AI",
|
||||
"continue": "Продолжить AI-помощник",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Editor kódu AI kurzora",
|
||||
"continue": "Pokračovať v Asistentovi AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Cursor AI Code Editor",
|
||||
"continue": "Fortsätt AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "ตัวแก้ไขรหัสเคอร์เซอร์ AI",
|
||||
"continue": "ดำเนินการต่อผู้ช่วย AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -641,7 +641,9 @@
|
||||
"cursor": "Cursor AI Kod Düzenleyici",
|
||||
"continue": "Continue AI Asistanı",
|
||||
"opencode": "OpenCode AI kodlama ajanı (Terminal)",
|
||||
"kiro": "Amazon Kiro - AI destekli IDE"
|
||||
"kiro": "Amazon Kiro - AI destekli IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Редактор коду Cursor AI",
|
||||
"continue": "Продовжити AI Assistant",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -571,7 +571,9 @@
|
||||
"cursor": "Trình chỉnh sửa mã AI con trỏ",
|
||||
"continue": "Tiếp tục Trợ lý AI",
|
||||
"opencode": "OpenCode AI coding agent (Terminal)",
|
||||
"kiro": "Amazon Kiro — AI-powered IDE"
|
||||
"kiro": "Amazon Kiro — AI-powered IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
@@ -627,7 +627,9 @@
|
||||
"cursor": "Cursor AI 代码编辑器",
|
||||
"continue": "继续AI助手",
|
||||
"opencode": "OpenCode AI 编码智能体(终端)",
|
||||
"kiro": "Amazon Kiro - AI 驱动 IDE"
|
||||
"kiro": "Amazon Kiro - AI 驱动 IDE",
|
||||
"windsurf": "Windsurf AI Code Editor",
|
||||
"copilot": "GitHub Copilot AI Assistant"
|
||||
},
|
||||
"guides": {
|
||||
"cursor": {
|
||||
|
||||
Reference in New Issue
Block a user