No login path covers a Meta/Muse subscription today: chatgpt_oauth.rs and xai_oauth.rs serve only their own issuers, oauth.rs loads OpenAI/Codex only. Interop research (local machine): the Muse CLI performs RFC 8628 device flow against https://auth.meta.com (/oidc/device/authorization/, /oidc/device/token/), client_id 1031625952748946 (env-overridable via MUSE_AUTH_URL/MUSE_CLIENT_ID), access_token used as Bearer against https://api.meta.ai/v1; the subscription token itself lives in the OS keychain, so file-consent reuse is a dead end. Implement codewhale auth muse-device mirroring xai_oauth.rs device_code_login + owned-generation activation, then wire the Meta provider to the stored Bearer.
No login path covers a Meta/Muse subscription today: chatgpt_oauth.rs and xai_oauth.rs serve only their own issuers, oauth.rs loads OpenAI/Codex only. Interop research (local machine): the Muse CLI performs RFC 8628 device flow against https://auth.meta.com (/oidc/device/authorization/, /oidc/device/token/), client_id 1031625952748946 (env-overridable via MUSE_AUTH_URL/MUSE_CLIENT_ID), access_token used as Bearer against https://api.meta.ai/v1; the subscription token itself lives in the OS keychain, so file-consent reuse is a dead end. Implement codewhale auth muse-device mirroring xai_oauth.rs device_code_login + owned-generation activation, then wire the Meta provider to the stored Bearer.