[eric] drop (Pro/Max) suffix from cc/ model labels — group header already disambiguates from OpenSwarm Pro proxy;

.gitattributes: split mcp-bundles vendored pattern into two
This commit is contained in:
ciregenz
2026-04-29 00:46:17 -04:00
parent 9be2d87f73
commit f755548b93
3 changed files with 11 additions and 5 deletions
+6 -1
View File
@@ -1 +1,6 @@
backend/mcp-bundles/** linguist-vendored # Vendored MCP server bundles (esbuild output of upstream npm packages).
# Two patterns because Linguist's pathspec handling of bare `**` is
# inconsistent — `dir/*` covers files at the root, `dir/**/*` covers
# anything nested. Together they exclude all 3 bundles from language stats.
backend/mcp-bundles/* linguist-vendored
backend/mcp-bundles/**/* linguist-vendored
+2 -1
View File
@@ -406,7 +406,8 @@ async def list_models():
# Always show the OpenSwarm Pro group. Then layer on whatever # Always show the OpenSwarm Pro group. Then layer on whatever
# alternate Anthropic credentials the user has (claude-sub via cc/, # alternate Anthropic credentials the user has (claude-sub via cc/,
# api-key via direct). Both variants live under "Anthropic" — the # api-key via direct). Both variants live under "Anthropic" — the
# labels disambiguate ("(Pro/Max)" vs "(API key)"). # group header disambiguates against "OpenSwarm Pro"; api-key
# variants keep an "(API key)" suffix to distinguish from cc/.
result["OpenSwarm Pro"] = _serialize(adaptive) result["OpenSwarm Pro"] = _serialize(adaptive)
anth_alternates: list[dict] = [] anth_alternates: list[dict] = []
if has_claude_sub: if has_claude_sub:
+3 -3
View File
@@ -75,11 +75,11 @@ BUILTIN_MODELS: dict[str, list[dict[str, Any]]] = {
# BOTH openswarm-pro active AND the 9Router `claude` subscription # BOTH openswarm-pro active AND the 9Router `claude` subscription
# connected — so the model picker can offer a per-call choice between # connected — so the model picker can offer a per-call choice between
# the managed OpenSwarm proxy and their own Claude subscription. # the managed OpenSwarm proxy and their own Claude subscription.
{"value": "sonnet-cc", "label": "Claude Sonnet 4.6 (Pro/Max)", "context_window": 1_000_000, {"value": "sonnet-cc", "label": "Claude Sonnet 4.6", "context_window": 1_000_000,
"model_id": "claude-sonnet-4-6", "router_model_id": "cc/claude-sonnet-4-6", "api": "anthropic", "reasoning": True, "route": "cc"}, "model_id": "claude-sonnet-4-6", "router_model_id": "cc/claude-sonnet-4-6", "api": "anthropic", "reasoning": True, "route": "cc"},
{"value": "opus-cc", "label": "Claude Opus 4.6 (Pro/Max)", "context_window": 1_000_000, {"value": "opus-cc", "label": "Claude Opus 4.6", "context_window": 1_000_000,
"model_id": "claude-opus-4-6", "router_model_id": "cc/claude-opus-4-6", "api": "anthropic", "reasoning": True, "route": "cc"}, "model_id": "claude-opus-4-6", "router_model_id": "cc/claude-opus-4-6", "api": "anthropic", "reasoning": True, "route": "cc"},
{"value": "haiku-cc", "label": "Claude Haiku 4.5 (Pro/Max)", "context_window": 200_000, {"value": "haiku-cc", "label": "Claude Haiku 4.5", "context_window": 200_000,
"model_id": "claude-haiku-4-5", "router_model_id": "cc/claude-haiku-4-5-20251001", "api": "anthropic", "reasoning": True, "route": "cc"}, "model_id": "claude-haiku-4-5", "router_model_id": "cc/claude-haiku-4-5-20251001", "api": "anthropic", "reasoning": True, "route": "cc"},
{"value": "sonnet-api", "label": "Claude Sonnet 4.6 (API key)", "context_window": 1_000_000, {"value": "sonnet-api", "label": "Claude Sonnet 4.6 (API key)", "context_window": 1_000_000,