这页是给外部 builder 的 静态 provider 目录。
它不是 live service 响应,也不是今天机器上“谁已经登录了”的状态页。
它更像商场的楼层总表:
现在我们已经有:
但外部 builder 还会碰到一个很实际的问题:
“我到底该用哪个 provider id?它属于 BYOK 还是 Web/Login?是不是 high-stability trio 里的?”
这页和配套 JSON,就是把这个静态目录单独拎出来。
pnpm run switchyard:cli -- provider-catalog
pnpm run switchyard:cli -- provider-catalog-schema
pnpm run switchyard:cli -- provider-entry --target chatgpt
pnpm run switchyard:cli -- provider-entry --target openai:byok
pnpm run switchyard:cli -- provider-entry --target gemini:web-login
这些命令只读静态 catalog,不依赖当前机器上谁登录了。
switchyard.catalog.provider_catalogswitchyard.catalog.provider_catalog_schemaswitchyard.catalog.provider_entry每一项至少回答四件事:
providerIdlaneproviderId + lane 的公开寻址方式authModestabilityTarget也就是说,外部 builder 至少能先分清:
BYOK 还是 Web/Login如果同一个 providerId 同时出现在两条 lane 里,比如 gemini 或 qwen:
provider-catalog 会把两条都列出来provider-entry 必须用 providerId:lane 这种复合目标来 disambiguate这页不会替代:
那些还是 runtime / service / MCP / CLI 的动态读接口负责。