197 lines · 8.9 KB · Swift
RawDownload
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),    ]}