fix(models): route Union Alpha through messages

This commit is contained in:
Yags
2026-09-16 13:16:15 -04:00
committed by Teknium
parent a7691f41ec
commit 61154b6f68
2 changed files with 7 additions and 4 deletions

View File

@@ -2255,14 +2255,14 @@ def opencode_zen_free_runtime(provider_id: Optional[str], model_id: Optional[str
# Per-family (model-id prefix → api_mode) routing from OpenCode's published Zen/Go endpoint
# tables, checked in order. GPT/Codex/Grok and Muse Spark use /v1/responses (Muse Spark 503s on
# chat/completions); Claude (Zen) and MiniMax (Go) use /v1/messages, as do Qwen models on both
# relays; everything else falls through to /v1/chat/completions.
# chat/completions); Claude (Zen), MiniMax (Go), Union Alpha, and Qwen use /v1/messages;
# everything else falls through to /v1/chat/completions.
_OPENCODE_API_MODE_PREFIXES: dict[str, tuple[tuple[tuple[str, ...], str], ...]] = {
"opencode-go": (
(("gpt-", "grok-", "muse-spark"), "codex_responses"),
(("minimax-", "qwen"), "anthropic_messages")),
(("minimax-", "qwen", "union-alpha"), "anthropic_messages")),
"opencode-zen": (
(("claude-",), "anthropic_messages"), (("gpt-", "grok-", "muse-spark"), "codex_responses"),
(("claude-", "union-alpha"), "anthropic_messages"), (("gpt-", "grok-", "muse-spark"), "codex_responses"),
(("qwen",), "anthropic_messages"))}

View File

@@ -263,6 +263,9 @@ class TestCopilotNormalization:
assert opencode_model_api_mode("opencode-go", "kimi-k2.7-code") == "chat_completions"
assert opencode_model_api_mode("opencode-go", "glm-5.2") == "chat_completions"
assert opencode_model_api_mode("opencode-go", "minimax-m3") == "anthropic_messages"
# Union Alpha is exposed through /v1/messages on both relays.
assert opencode_model_api_mode("opencode-go", "union-alpha") == "anthropic_messages"
assert opencode_model_api_mode("opencode-zen", "opencode-zen/union-alpha") == "anthropic_messages"
# GPT models on Go are Responses-only (Go endpoint table).
assert opencode_model_api_mode("opencode-go", "gpt-5.6-luna") == "codex_responses"
assert opencode_model_api_mode("opencode-go", "opencode-go/gpt-5.6-luna") == "codex_responses"