feat(sse): provider-family auto combos auto/glm, auto/minimax, auto/zai, auto/mimo, auto/gemma, auto/llama, auto/gemini (#6453) - #6509
Merged
diegosouzapw merged 2 commits intoJul 7, 2026
Conversation
…ai, auto/mimo, auto/gemma, auto/llama, auto/gemini (#6453)
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Contributor
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
diegosouzapw
added a commit
that referenced
this pull request
Jul 7, 2026
…els is on (#6512) (#6518) Sync onto release/v3.8.46 (composes with #6509's virtualFactory changes). Fix a phantom regression guard: paid-model-filter-6512.test.ts lives in the vitest-only tests/unit/autoCombo scope but imported node:test, so it ran in no runner — switched to the vitest import. Now 4/4 execute (verified red without the filter).
HouMinXi
pushed a commit
to HouMinXi/OmniRoute
that referenced
this pull request
Aug 2, 2026
…ai, auto/mimo, auto/gemma, auto/llama, auto/gemini (diegosouzapw#6453) (diegosouzapw#6509) Provider-family auto combos (diegosouzapw#6453). Integrated into release/v3.8.46; vitest autoCombo suite 11/11 green.
muhamadgalihsaputra
pushed a commit
to niyatna/NiyatnaRoute
that referenced
this pull request
Sep 27, 2026
…ai, auto/mimo, auto/gemma, auto/llama, auto/gemini (diegosouzapw#6453) (diegosouzapw#6509) Provider-family auto combos (diegosouzapw#6453). Integrated into release/v3.8.46; vitest autoCombo suite 11/11 green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New routable ids
auto/<family>—auto/glm,auto/minimax,auto/mimo,auto/zai,auto/gemma,auto/llama,auto/gemini— that materialize an on-demand virtual combo spanning whatever installed backends currently expose that model family, degrading gracefully as backends rotate. This is a new axis alongside the existing task-mode (auto/best-coding) and category:tier (auto/coding:fast) combos: instead of grouping by routing intent, it groups by underlying model family.open-sse/services/autoCombo/modelFamily.ts:detectModelFamily(modelId)— prefix-based classification forglm,minimax,mimo,gemma,llama,gemini.zaialias rule: z.ai's hosted API serves the sameglm-*model ids as every other GLM backend (glmprovider, custom OpenAI/Anthropic-compatible connections, etc.), soauto/zaiis deliberately not a model-name prefix rule — it's resolved by provider id instead.auto/zaimeans "route to my z.ai backend specifically";auto/glmmeans "route to any connected provider currently serving a GLM model, z.ai included". Documented inline inmodelFamily.ts.builtinCatalog.ts::createBuiltinAutoCombo/isRecognizedBuiltinAuto) — reusescreateVirtualAutoCombo(no DB writes), extended with an optionalfamilyoverlay onAutoComboSpecalongside the existing category/tier overlay./v1/modelscatalog listing (src/app/api/v1/models/catalog.ts) alongside the existingauto/*entries via the newAUTO_FAMILY_IDSlist.auto/<family>ids fall through to the same clean "Unknown built-in auto combo" 400 error every other unrecognizedauto/*id already gets — no new error path, no raw error leakage.:free/:protier-filter precedent) — routing among a subset when partially available.Test plan
tests/unit/autoCombo/provider-family-combos.test.ts(vitest, real temp-DB backed likevirtual-auto-combo.test.ts):detectModelFamilypure classification for all 6 prefix families +nullfor unrelated ids + confirmszaiis never detected from a model id.isValidModelFamily/AUTO_FAMILY_IDSshape.auto/glmmaterializes a combo spanning BOTH aglmprovider connection and azaiprovider connection (both servingglm-5.2), excluding an unrelatedopenaiconnection.auto/zaimaterializes a combo with ONLY thezai-provider connection, even though aglmprovider connection also serves a GLM model (proves the provider-override rule).auto/minimaxexcludes a connected-but-unrelatedopenaicandidate while including only genuine minimax-family candidates.auto/<unknownfamily>rejects with the same clean "Unknown built-in auto combo" error.isRecognizedBuiltinAutorecognizes all 7 family ids.npx vitest run --config vitest.mcp.config.ts tests/unit/autoCombo/provider-family-combos.test.tsnpm run test:vitest— 242/243 passing (the 1 failure,open-sse/mcp-server/__tests__/audit.test.ts, is a pre-existing timeout flake under full-suite thread contention; passes 3/3 in isolation, file untouched by this PR).node --import tsx/esm --test tests/unit/virtual-auto-combo.test.ts tests/unit/auto-combos-enhanced-4235.test.ts tests/unit/auto-custom-provider-5873.test.ts— 14/14 passing (no regression to the existing auto-combo test suites).npm run typecheck:core— clean.npm run typecheck:noimplicit:core— the only 2 pre-existing errors (combo.ts,cliRuntime.ts) are untouched by this PR (base-red, confirmed viagit diff --stat).npx eslint --suppressions-location config/quality/eslint-suppressions.json <changed files>— clean.node scripts/check/check-file-size.mjs— no new violations on touched files (4 pre-existing base-reds elsewhere, untouched by this PR).node scripts/check/check-complexity.mjs— verified 0 NEW violations introduced by this PR's edits tovirtualFactory.ts/catalog.ts(both already had the same violated functions over the cyclomatic cap before this change; diffed base vs after via a same-directory temp-file eslint run — identical violation count, only body/line-number growth on already-flagged functions). The global count regression (2035→2048) is pre-existing repo-wide drift, not attributable to this PR's 3 touched files.npm run check:cycles— clean.Closes #6453