9router/open-sse/translator/helpers
Tran Hoang Nguyen 80a2bfcfd7
fix: normalize developer role to system for OpenAI-format providers (#1011)
Deepseek API (and likely other providers) reject messages with
role: 'developer' — only accept system, user, assistant, tool.
filterToOpenAIFormat() normalizes content blocks but never touched
message roles, so developer passed through unmodified and caused
400 errors (issue #773).

Fix: add one-line developer → system mapping in filterToOpenAIFormat()
before role-specific logic. This is the common normalization point
called for all targetFormat=openai providers (Deepseek, Groq, Mistral,
Perplexity, Together, Fireworks, Cerebras, xAI, NVIDIA, etc.)

Closes #773
2026-05-11 15:57:28 +07:00
..
claudeHelper.js fix: strip output_config for MiniMax (#820) 2026-05-01 16:16:01 +07:00
geminiHelper.js feat: add audio input support for Gemini translation (#913) 2026-05-07 15:51:30 +07:00
imageHelper.js fix(codex): await image URL fetches before sending to upstream (closes #575) 2026-04-17 12:15:10 +07:00
maxTokensHelper.js feat(claude-code): spoof TLS fingerprint and stabilize headers for Anthropic 2026-03-30 16:27:28 +07:00
openaiHelper.js fix: normalize developer role to system for OpenAI-format providers (#1011) 2026-05-11 15:57:28 +07:00
responsesApiHelper.js fix: skip function_call items with empty/missing name to prevent Codex 400 error (closes #444) (#487) 2026-04-04 08:51:00 +07:00
toolCallHelper.js Fix bug 2026-04-11 11:36:33 +07:00