Repository navigation
Conversation
Abacus serves third-party models through RouteLLM and was the largest multi-model relay without a sync module, so its catalog drifted while manual PRs waited on review. The public /v1/models feed is authoritative for per-token rates, context and output limits, modality kinds, tools and thinking. The module resolves base_model against the lab metadata tree, keeps lab-owned facts inherited, narrows input MIME types to the kinds RouteLLM accepts, and never invents reasoning controls. Transcription SKUs and lab media types are intentional skips; ids with no lab entry go through the missing-model issue flow. Registered in the aggregators group with an Abacus Notes section in sync.md.
First run of the Abacus sync against the public RouteLLM catalog (accessed 2026-10-29): 26 models created and one limit correction. Created: GPT-6/6.1, Claude 5.5 family, Gemini 3.8/4-argon, Grok 4.7, DeepSeek V4.1/V4 dated, GLM-5.3, Kimi K3.1 Pro, Qwen3.8, MiniMax M3.1 Flash, MiMo V2.6 Pro, Muse Spark/Wonder. qwen3.8-max gains context 262_144 from the feed (the only v1 data change). Retired ids keep their files (deleteMissing off); ids without a lab entry (route-llm-code, route-llm-code-low, abacusai/Smaug-Flash) are reported through the missing-model issue flow instead of being invented.
Action items
|
The PR reviewer flagged that feed copy for name/description is not a host delta and contradicts the sync.md note that lab-owned fields are never asserted from the feed. Drop the feed fallbacks so only authored overrides survive; new files inherit the lab name and description. Regenerate the 26 created TOMLs to remove the stub overrides.
|
Addressed the name/description finding in 8f559a3: the feed fallbacks are gone, a create now inherits the lab name and description (curated authored overrides still win), the 26 created TOMLs were regenerated without the stub overrides, and a test asserts feed copy is never written. |
Action items
|
Give the Claude Opus 5.5 fast lane and the Muse Spark 1.3 contributor tier curated display names so same-base variants stay distinguishable; the contributor description also discloses Meta's training-data term. Update qwen3.8-max's preserved header to the live 262,144 context with the access date, matching the limit override. Cite the RouteLLM docs for USD-per-token rates in the module and sync.md.
|
Round 2 addressed in 0aaf57e:
|
…urce USD rates Round-2 review findings: - muse-spark-1.3-contributor and claude-opus-5-5-fast inherit their base models' lab names, so a name-keyed UI cannot tell the tiers apart. Both get curated names kept by the sync (CURATED_LABELS), and the contributor tier gets a description disclosing Meta's prompts-and-completions training term, quoted from the feed. - qwen3.8-max's preserved header claimed RouteLLM context_length 1000000 while the synced limit is 262144; the header now states the feed value with the refresh date and explains the override. - The rate conversion now cites the cross-check that matches RouteLLM rates to the labs' documented USD prices every time one can be checked.
|
Round-2 items addressed:
|
|
No actionable findings. |
|
@rekram1-node Hope this one has a chance - we love using OpenCode but without this everyone of my collages has to create custom local setups to get it to work with the newest models |
|
No actionable findings. |
|
No actionable findings. |
|
No actionable findings. |
|
No actionable findings. |
|
No actionable findings. |
|
Updated the PR with the two ids RouteLLM added since the first pass: |
|
No actionable findings. |
|
@rekram1-node any change you could take a look - it's been two weeks now - it's all up to date |
|
Removed the entries the live RouteLLM feed no longer lists, and made the sync do this automatically. The feed now returns 87 Changes: v1 impact grows: 28 additions, 57 removals, plus the existing |
Action items
|
|
Fixed: retention is now opt-in via a new |
Action items
|
|
Guard fixed: |
Action items
|
|
Added the deletion-safety guard: a new opt-in On the low finding: the 57 ids were verified absent live on 2026-11-11 - |
Action items
|
|
Good catch on reproducibility. I replaced the deletion-ratio guard with a source-size floor: |
|
No actionable findings. |
|
Friendly nudge for @rekram1-node and @Tarquinen - I know you are both deep in other work, so no pressure at all, but this one is ready for a final look whenever you have a moment. Since the earlier pings it has grown a little and is fully green:
If either of you has a moment to look, or can point me to whoever owns catalog merges now, I would really appreciate it. I am also happy to split the 57 removals into a separate PR if that makes review easier - just say the word. |
|
No actionable findings. |
|
No actionable findings. |
Problem
Abacus (RouteLLM) is the largest multi-model relay in the catalog without a sync module. Its provider files drift while manual updates wait for review: #7901 was stale-closed, and its last catalog pass (#10776) explicitly left 32 live
text_generationids unadded. That PR also noted: "No sync module exists. The public /v1/models has rates, modalities, thinking, api_formats and context, so one is feasible."This adds that module and runs its first sync.
Change
packages/core/src/sync/providers/abacus.ts- fetcheshttps://routellm.abacus.ai/v1/models(public, no auth), syncstext_generationrows, maps per-token rates to USD/MTok, and resolvesbase_modelagainst the lab tree (full id first, then the id without its vendor prefix; two serving tiers resolve through explicit overrides and get curated labels).abacusin the sync registry and theaggregatorsgroup, with anabacus:syncscript and an "Abacus Notes" section insync.md.First run plus refresh: 28 models created, 57 removed, 1 limit correction. (26 created on 2026-10-29,
claude-fable-5-2andgemini-4-carbonadded on 2026-11-10; 57 ids the feed no longer lists removed on 2026-11-11.)Scope decisions
model_type = "text_generation"is synced. The four transcription SKUs RouteLLM files under that type are intentional skips (same decision as feat(abacus): add missing text-generation models from RouteLLM catalog #4705/feat(abacus): add text-generation models added to RouteLLM since #4705 #7901), as isgemini-nano-banana-2.1, whose lab entry istype = "image".route-llm-code,route-llm-code-low, andabacusai/Smaug-Flashhave no lab entry; they return frommissingModelIDso the issue-fixer researches full definitions instead of the sync inventing dates or weights.thinking: truesetsreasoning = true; RouteLLM documents no toggle, effort or budget control, so no controls are invented and an authored[]is preserved.image.https://abacus.ai/help/route-llm/says RouteLLM prices are in USD and/v1/modelsis the current pricing source. Conversion is x 1,000,000 to USD/MTok.deleteMissingis on, so ids/v1/modelsno longer lists are removed automatically. The 2026-11-11 pass removed 57 tracked ids (17 still active, 40 markeddeprecatedin feat(v2): migrate Abacus provider files to schema 2 #10776). Intentional skips (transcription and media SKUs) are named throughsourceIDand their hand-authored files are retained even with deletion on. Deletion is bounded byminSourceFraction: 0.5: a feed with fewer than half the local catalog's models fails before writing anything, so a truncated but schema-valid response cannot become a mass deletion. This is reproducible against the pre-migration catalog - the feed's 87 rows are 80% of the 108 tracked files, so a fresh first sync performs the 28 creates and 57 removals; only a feed under 54 rows is refused. A regression test covers both the refusal and a legitimate mass deletion. Absence was verified live on 2026-11-11: the endpoint returned 132 rows (87text_generation) and none of the 57 ids appears under anymodel_type; the October headers on those files were price refreshes, not availability claims.v1 impact
bun run v1:check upstream/devexits 1, as expected for a catalog change:deprecatedin feat(v2): migrate Abacus provider files to schema 2 #10776). This is a sourced data change and needs maintainer approval under the repo's v1 policy.abacus/qwen3.8-maxlimit.context: 1,000,000 -> 262,144, from the live feed (re-fetched 2026-10-29; the preserved header was updated to match). This is the only existing v1 field change.Verification
bun validate- passbun test packages/core/test/abacus.test.ts- 16 pass / 0 failbun models:sync abacus --dry-runafter the removal pass - 0 created / 0 updated / 0 deleted (idempotent; intentional skips retained)bun test- 14 failures, the identical list to a cleanupstream/devcheckout (pre-existing)Sources: https://routellm.abacus.ai/v1/models and https://abacus.ai/help/route-llm/ (accessed 2026-10-29; new ids re-fetched 2026-11-10; removals verified against the live feed 2026-11-11).
Refs #2687. Supersedes the closed #7901.
Note: the first run exceeds the auto-merge create/churn limits, so this PR needs a manual merge. Abacus is not added to
REVIEWED_REASONING_PROVIDERS, so sync PRs that touch reasoning still require review until a maintainer adds it.