mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-26 19:44:51 +02:00
[eric] models: gpt-5.6 sol/terra/luna + restored gpt-5.5 codex sub lanes, all live-probed on the 0.3.60 pin
This commit is contained in:
@@ -92,7 +92,21 @@ BUILTIN_MODELS: dict[str, list[dict[str, Any]]] = {
|
||||
],
|
||||
|
||||
"OpenAI": [
|
||||
# GPT-5.5 subscription entry PULLED: cx/gpt-5.5 404s on 9Router 0.3.60 (our pin), so a Codex user who picked it (the newest, top OpenAI option) 404'd every turn = "codex is broken". Same treatment as gemini-3.1-pro (no working lane = not offered). The API-key route (gpt-5.5-api below) works; restore a cx entry only after the pin moves and cx/gpt-5.5 resolves.
|
||||
# Codex sub lanes re-probed 2026-07-26: cx/gpt-5.6-{sol,terra,luna} AND the previously pulled
|
||||
# cx/gpt-5.5 all return real completions on the pinned 0.3.60 (the old 404 healed upstream;
|
||||
# the cx translator forwards to the ChatGPT Responses backend, which now serves them).
|
||||
{"value": "gpt-5.6", "label": "GPT-5.6 Sol",
|
||||
"context_window": 1_000_000, "router_model_id": "cx/gpt-5.6-sol",
|
||||
"api": "codex", "subscription_only": True, "reasoning": True},
|
||||
{"value": "gpt-5.6-terra", "label": "GPT-5.6 Terra",
|
||||
"context_window": 1_000_000, "router_model_id": "cx/gpt-5.6-terra",
|
||||
"api": "codex", "subscription_only": True, "reasoning": True},
|
||||
{"value": "gpt-5.6-luna", "label": "GPT-5.6 Luna",
|
||||
"context_window": 1_000_000, "router_model_id": "cx/gpt-5.6-luna",
|
||||
"api": "codex", "subscription_only": True, "reasoning": True},
|
||||
{"value": "gpt-5.5", "label": "GPT-5.5",
|
||||
"context_window": 1_000_000, "router_model_id": "cx/gpt-5.5",
|
||||
"api": "codex", "subscription_only": True, "reasoning": True},
|
||||
{"value": "gpt-5.4", "label": "GPT-5.4",
|
||||
"context_window": 1_000_000, "router_model_id": "cx/gpt-5.4",
|
||||
"api": "codex", "subscription_only": True, "reasoning": True},
|
||||
@@ -104,9 +118,7 @@ BUILTIN_MODELS: dict[str, list[dict[str, Any]]] = {
|
||||
# so the old Responses-only HOLD is lifted for the API-key lane: the ids ride the proven
|
||||
# cp-openai passthrough, whose scrubs prefix-match "gpt-5" (max_tokens rename, sampling strip,
|
||||
# and the reasoning_effort-with-tools drop that 5.6 still requires on /chat/completions).
|
||||
# 1M+ ctx, 128k out; $5/$30 Sol, $2.50/$15 Terra, $1/$6 Luna per 1M. The cx SUBSCRIPTION
|
||||
# entries stay pulled: 0.3.60's cx registry predates 5.6 (same 404 class as gpt-5.5's pulled
|
||||
# cx row); restore them with the 9router bump.
|
||||
# 1M+ ctx, 128k out; $5/$30 Sol, $2.50/$15 Terra, $1/$6 Luna per 1M.
|
||||
{"value": "gpt-5.6-api", "label": "GPT-5.6 Sol (API key)",
|
||||
"context_window": 1_000_000, "router_model_id": "cp-openai/gpt-5.6-sol", "model_id": "gpt-5.6-sol",
|
||||
"api": "openai", "reasoning": True, "route": "api"},
|
||||
@@ -405,6 +417,9 @@ COST_PER_1M_TOKENS: dict[tuple[str, str], tuple[float, float]] = {
|
||||
("OpenAI", "gpt-5.6-terra-api"): (2.5, 15.0),
|
||||
("OpenAI", "gpt-5.6-luna-api"): (1.0, 6.0),
|
||||
# OpenAI; Codex subscription path, user pays nothing per token
|
||||
("OpenAI", "gpt-5.6"): (0.0, 0.0),
|
||||
("OpenAI", "gpt-5.6-terra"): (0.0, 0.0),
|
||||
("OpenAI", "gpt-5.6-luna"): (0.0, 0.0),
|
||||
("OpenAI", "gpt-5.5"): (0.0, 0.0),
|
||||
("OpenAI", "gpt-5.4"): (0.0, 0.0),
|
||||
("OpenAI", "gpt-5.4-mini"): (0.0, 0.0),
|
||||
|
||||
@@ -665,18 +665,16 @@ def test_dashboard_get_strips_only_orphan_session_cards():
|
||||
def test_banned_models_not_offered():
|
||||
"""Models with no working lane stay pulled from the picker. Guard so a
|
||||
refactor can't silently re-list a model that can't run. Gemini 3.1 Pro: AG
|
||||
can't serve it, AI Studio key 429s pro-preview. gpt-5.5 (subscription):
|
||||
cx/gpt-5.5 404s on the pinned 9Router 0.3.60, so picking it broke codex
|
||||
entirely; gpt-5.5-api stays (that lane works). (Fable 5 was re-listed
|
||||
2026-07-02 after its ban lifted, so it left this list.)"""
|
||||
can't serve it, AI Studio key 429s pro-preview. (gpt-5.5's cx entry left
|
||||
this list 2026-07-26: the pinned 0.3.60's old 404 healed upstream and a
|
||||
live probe returned a real completion, so both its lanes work. Fable 5
|
||||
left 2026-07-02 after its ban lifted.)"""
|
||||
from backend.apps.agents.providers.registry import BUILTIN_MODELS
|
||||
all_values = {m["value"] for models in BUILTIN_MODELS.values() for m in models}
|
||||
for dead in ("gemini-3.1-pro", "gemini-3.1-pro-api", "gpt-5.5"):
|
||||
for dead in ("gemini-3.1-pro", "gemini-3.1-pro-api"):
|
||||
assert dead not in all_values, f"{dead} is back in the picker"
|
||||
assert "gpt-5.5-api" in all_values # the working API-key lane must survive the pull
|
||||
# No dead cx/gpt-5.5 router id survives either (a renamed entry would dodge the value check).
|
||||
all_router_ids = {m.get("router_model_id") for models in BUILTIN_MODELS.values() for m in models}
|
||||
assert "cx/gpt-5.5" not in all_router_ids
|
||||
assert "gpt-5.5-api" in all_values
|
||||
assert "gpt-5.5" in all_values # cx lane restored 2026-07-26 (live-probed)
|
||||
# No '3.1 pro' label survives in any provider group either.
|
||||
all_labels = " | ".join(m["label"].lower() for models in BUILTIN_MODELS.values() for m in models)
|
||||
assert "3.1 pro" not in all_labels
|
||||
|
||||
Reference in New Issue
Block a user