feat(llm): add GPT-6 Astra, Gemini 3.8 Flash and the current Claude models

- OpenAI: gpt-6-astra
- Google: gemini-3.8-flash and gemini-3.5-flash-lite
- Anthropic: claude-opus-5 and claude-fable-5-1
- models taken out of the picker stay valid through LEGACY_MODELS, so configs
  that name them run without an unknown-model warning
This commit is contained in:
Yijia-Xiao
2026-09-14 18:09:33 +00:00
parent 9b4c741d33
commit 673abb3c68
3 changed files with 31 additions and 9 deletions

View File

@@ -60,7 +60,7 @@ class TestEffortGate:
@pytest.mark.parametrize(
"model",
# Claude 5 family uses single-number version IDs; all are effort-capable.
["claude-sonnet-5", "claude-fable-5", "claude-mythos-5"],
["claude-sonnet-5", "claude-fable-5", "claude-mythos-5", "claude-opus-5", "claude-fable-5-1"],
)
def test_claude_5_family_receives_effort(self, monkeypatch, model):
captured = _capture_kwargs(monkeypatch)

View File

@@ -53,3 +53,14 @@ class ModelValidationTests(unittest.TestCase):
client.get_llm()
self.assertEqual(caught, [])
def test_legacy_ids_stay_valid_without_being_offered():
from tradingagents.llm_clients.model_catalog import LEGACY_MODELS, MODEL_OPTIONS
from tradingagents.llm_clients.validators import validate_model
for provider, ids in LEGACY_MODELS.items():
offered = {v for opts in MODEL_OPTIONS[provider].values() for _, v in opts}
for model in ids:
assert validate_model(provider, model), model
assert model not in offered, f"{model} is legacy but still in the picker"