import Foundation extension TokenAccountSupportCatalog { static let supportByProvider: [UsageProvider: TokenAccountSupport] = [ .openai: TokenAccountSupport( title: "API keys", subtitle: "Store multiple OpenAI API keys.", placeholder: "sk-admin-...", injection: .environment(key: OpenAIAPISettingsReader.adminAPIKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil, environmentKeysToScrub: [OpenAIAPISettingsReader.projectIDEnvironmentKey]), .openrouter: TokenAccountSupport( title: "API keys", subtitle: "Store multiple OpenRouter API keys.", placeholder: "sk-or-v1-...", injection: .environment(key: OpenRouterSettingsReader.envKey), requiresManualCookieSource: false, cookieName: nil), .claude: TokenAccountSupport( title: "Claude credentials", subtitle: "Store Claude sessionKey cookies, OAuth tokens, or Anthropic Admin API keys.", placeholder: "Paste sessionKey, OAuth token, or sk-ant-admin…", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: "sessionKey"), .deepseek: TokenAccountSupport( title: "API tokens", subtitle: "Store multiple DeepSeek API keys.", placeholder: "Paste API key…", injection: .environment(key: DeepSeekSettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .deepinfra: TokenAccountSupport( title: "API tokens", subtitle: "Store multiple DeepInfra API keys.", placeholder: "Paste API key…", injection: .environment(key: DeepInfraSettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .antigravity: TokenAccountSupport( title: "Google accounts", subtitle: "Store multiple Antigravity Google OAuth accounts for quick switching.", placeholder: "Antigravity OAuth credentials JSON", injection: .environment(key: AntigravityOAuthCredentialsStore.environmentCredentialsKey), requiresManualCookieSource: false, cookieName: nil), .zai: TokenAccountSupport( title: "API tokens", subtitle: "Stored in the CodexBar config file.", placeholder: "Paste token…", injection: .environment(key: ZaiSettingsReader.apiTokenKey), requiresManualCookieSource: false, cookieName: nil), .cursor: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Cursor Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .opencode: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple OpenCode Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .opencodego: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple OpenCode Go Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .factory: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Factory Cookie or Authorization headers.", placeholder: "Cookie: … or Authorization: Bearer …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .minimax: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple MiniMax Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .manus: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Manus session_id cookies.", placeholder: "session_id=…", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: "session_id"), .augment: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Augment Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .ollama: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Ollama Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .abacus: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Abacus AI Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .mistral: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Mistral Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .qoder: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple Qoder Cookie headers.", placeholder: "Cookie: …", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), .copilot: TokenAccountSupport( title: "GitHub accounts", subtitle: "Sign in with multiple GitHub accounts via OAuth.", placeholder: "Paste GitHub token…", injection: .environment(key: "COPILOT_API_TOKEN"), requiresManualCookieSource: false, cookieName: nil), .venice: TokenAccountSupport( title: "API tokens", subtitle: "Store multiple Venice API keys.", placeholder: "Paste API key…", injection: .environment(key: VeniceSettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .elevenlabs: TokenAccountSupport( title: "API keys", subtitle: "Store multiple ElevenLabs API keys.", placeholder: "Paste API key…", injection: .environment(key: ElevenLabsSettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .neuralwatt: TokenAccountSupport( title: "API keys", subtitle: "Store multiple Neuralwatt API keys.", placeholder: "sk-...", injection: .environment(key: NeuralWattSettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil, minimumDelayBetweenAccountRefreshes: .seconds(1)), .groq: TokenAccountSupport( title: "API keys", subtitle: "Store multiple Groq API keys.", placeholder: "Paste Groq API key…", injection: .environment(key: GroqSettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .llmproxy: TokenAccountSupport( title: "API keys", subtitle: "Store multiple LLM Proxy API keys.", placeholder: "Paste proxy API key…", injection: .environment(key: LLMProxySettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .litellm: TokenAccountSupport( title: "API keys", subtitle: "Store multiple LiteLLM API keys.", placeholder: "Paste LiteLLM API key…", injection: .environment(key: LiteLLMSettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .sub2api: TokenAccountSupport( title: "Group API keys", subtitle: "Store one labeled sub2api API key for each group you want to monitor.", placeholder: "Paste sub2api API key…", injection: .environment(key: Sub2APISettingsReader.apiKeyEnvironmentKey), requiresManualCookieSource: false, cookieName: nil), .stepfun: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple StepFun Oasis-Token values.", placeholder: "Oasis-Token=…", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), ] }