mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-26 14:35:22 +08:00
a35209a6e7
Add an xAI OAuth manager using the OAuth 2.0 Device Authorization Grant with endpoints resolved from xAI's OIDC discovery document. All HTTP goes through the app-managed proxy client. - Managed provider kind xai_oauth: forced openai_responses wire format, pinned api.x.ai base URL, bearer injection gated to the xAI origin, tokens registered for log redaction, single-auth-key takeover policy. - Token cache cannot bypass account state: cache hits re-validate account usability, refresh commits run under the mutation lock with a refresh-token CAS check, and pending logins are re-checked before an account is persisted. - Refresh classification: 401/403 with any body and 400 with a non-JSON body mark the account for re-auth; 429/5xx stay transient. - Shared auth_* commands dispatch to xAI with guard types mirroring the Copilot/Codex branches.
73 lines
1.2 KiB
Rust
73 lines
1.2 KiB
Rust
#![allow(non_snake_case)]
|
|
|
|
mod auth;
|
|
mod balance;
|
|
mod codex_oauth;
|
|
mod coding_plan;
|
|
mod config;
|
|
mod copilot;
|
|
mod deeplink;
|
|
mod env;
|
|
mod failover;
|
|
mod global_proxy;
|
|
mod hermes;
|
|
mod import_export;
|
|
mod mcp;
|
|
mod misc;
|
|
mod model_fetch;
|
|
mod omo;
|
|
mod openclaw;
|
|
mod plugin;
|
|
mod profile;
|
|
mod prompt;
|
|
mod provider;
|
|
mod proxy;
|
|
mod session_manager;
|
|
mod settings;
|
|
pub mod skill;
|
|
mod stream_check;
|
|
mod subscription;
|
|
mod sync_support;
|
|
mod xai_oauth;
|
|
|
|
mod lightweight;
|
|
mod s3_sync;
|
|
mod usage;
|
|
mod webdav_sync;
|
|
mod workspace;
|
|
|
|
pub use auth::*;
|
|
pub use balance::*;
|
|
pub use codex_oauth::*;
|
|
pub use coding_plan::*;
|
|
pub use config::*;
|
|
pub use copilot::*;
|
|
pub use deeplink::*;
|
|
pub use env::*;
|
|
pub use failover::*;
|
|
pub use global_proxy::*;
|
|
pub use hermes::*;
|
|
pub use import_export::*;
|
|
pub use mcp::*;
|
|
pub use misc::*;
|
|
pub use model_fetch::*;
|
|
pub use omo::*;
|
|
pub use openclaw::*;
|
|
pub use plugin::*;
|
|
pub use profile::*;
|
|
pub use prompt::*;
|
|
pub use provider::*;
|
|
pub use proxy::*;
|
|
pub use session_manager::*;
|
|
pub use settings::*;
|
|
pub use skill::*;
|
|
pub use stream_check::*;
|
|
pub use subscription::*;
|
|
pub use xai_oauth::*;
|
|
|
|
pub use lightweight::*;
|
|
pub use s3_sync::*;
|
|
pub use usage::*;
|
|
pub use webdav_sync::*;
|
|
pub use workspace::*;
|