Part of #166; one-off debt surfaced by RFC-0033 §4.1.
Compared provider_registry.json against models.dev api.json on 2026-09-04:
- 27 rows present on both sides disagree on
base_url. Some are real drift (claudinio and digitalocean lack /v1, fastrouter moved to go.fastrouter.ai/api/v1); some are aimux deliberately choosing the OpenAI-compatible endpoint where models.dev lists the native one (deepseek).
- 116 models.dev providers are absent from aimux.
Work
- Go through the 27 disagreements: fix the rows that are wrong; add
"note": "..." to rows where aimux's choice is intentional so the weekly report stops flagging them.
- Go through the 116 missing providers: add the OpenAI-compatible ones as rows (one line each, then
gen_provider_names.py and gen_providers_doc.py); list the ones that need a protocol implementation as candidates for track B.
- Every changed or added row gets a cassette derived via
generate_thin_wrapper_cassettes.py so conformance_test.rs covers it.
Depends on the sync-report script for the exact lists (or reproduce with a 20-line one-off against https://models.dev/api.json).
Part of #166; one-off debt surfaced by RFC-0033 §4.1.
Compared
provider_registry.jsonagainst models.devapi.jsonon 2026-09-04:base_url. Some are real drift (claudinioanddigitaloceanlack/v1,fastroutermoved togo.fastrouter.ai/api/v1); some are aimux deliberately choosing the OpenAI-compatible endpoint where models.dev lists the native one (deepseek).Work
"note": "..."to rows where aimux's choice is intentional so the weekly report stops flagging them.gen_provider_names.pyandgen_providers_doc.py); list the ones that need a protocol implementation as candidates for track B.generate_thin_wrapper_cassettes.pysoconformance_test.rscovers it.Depends on the sync-report script for the exact lists (or reproduce with a 20-line one-off against
https://models.dev/api.json).