feat(models): add paid tencent/hy3-preview route on OpenRouter (#21077)

Add tencent/hy3-preview (without :free suffix) as a paid model route
alongside the existing free variant. This allows seamless transition
when the model moves from free to paid on OpenRouter — both routes
coexist so neither side's timing causes breakage.

Changes:
- models.py: add ("tencent/hy3-preview", "") to OPENROUTER_MODELS
- model-catalog.json: add paid variant entry
- tests: add assertions for paid route presence

The :free entry can be removed in a follow-up PR once OpenRouter
confirms the free route is deprecated.

Co-authored-by: simonweng <simonweng@tencent.com>
This commit is contained in:
Contentment003111 2026-05-07 21:34:48 +08:00 committed by GitHub
parent f9b4b8af34
commit 2c1921241c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 2 deletions

View file

@ -192,13 +192,19 @@ class TestTencentTokenhubCanonicalProvider:
class TestTencentInOpenRouterAndNous:
"""tencent/hy3-preview:free should appear in OpenRouter and Nous curated lists."""
"""tencent/hy3-preview:free and tencent/hy3-preview should appear in OpenRouter and Nous curated lists."""
def test_in_openrouter_fallback(self):
from hermes_cli.models import OPENROUTER_MODELS
ids = [mid for mid, _ in OPENROUTER_MODELS]
assert "tencent/hy3-preview:free" in ids
def test_paid_in_openrouter_fallback(self):
"""tencent/hy3-preview (paid, no :free suffix) should also be in OpenRouter list."""
from hermes_cli.models import OPENROUTER_MODELS
ids = [mid for mid, _ in OPENROUTER_MODELS]
assert "tencent/hy3-preview" in ids
def test_in_nous_provider_models(self):
from hermes_cli.models import _PROVIDER_MODELS
assert "tencent/hy3-preview" in _PROVIDER_MODELS["nous"]
@ -420,7 +426,7 @@ class TestTencentTokenhubCLIDispatch:
class TestTencentTokenhubModelCatalogJSON:
"""Verify tencent/hy3-preview:free is present in the website model-catalog.json."""
"""Verify tencent/hy3-preview:free and tencent/hy3-preview are present in the website model-catalog.json."""
def test_in_model_catalog_json(self):
catalog_path = os.path.join(
@ -445,6 +451,7 @@ class TestTencentTokenhubModelCatalogJSON:
for model in provider_entry.get("models", []):
all_ids.add(model.get("id", ""))
assert "tencent/hy3-preview:free" in all_ids
assert "tencent/hy3-preview" in all_ids
# =============================================================================