opencode-go hard-coded targetFormat: claude per model, so every client format was force-routed to /messages (Codex/OpenAI clients paid a lossy Responses->OpenAI->Claude double translation). Declare the existing upstream multi-endpoint transports [openai, claude, openai-responses] and guard per model via registry supportedFormats: kimi/glm/mimo only support /chat/completions, minimax/qwen add /messages, deepseek adds /responses. Undeclared models keep the upstream default. Drop the bespoke OpenCodeGoExecutor (its shared _lastModel cache could cross auth headers between concurrent requests); DefaultExecutor already consumes runtimeTransport and injects reasoning content. |
||
|---|---|---|
| .. | ||
| chatCore | ||
| embeddingProviders | ||
| fetch | ||
| imageProviders | ||
| search | ||
| ttsProviders | ||
| chatCore.js | ||
| embeddingsCore.js | ||
| imageGenerationCore.js | ||
| responsesHandler.js | ||
| sttCore.js | ||
| ttsCore.js | ||
| videoCore.js | ||