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]), .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), .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), .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), .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), .stepfun: TokenAccountSupport( title: "Session tokens", subtitle: "Store multiple StepFun Oasis-Token values.", placeholder: "Oasis-Token=…", injection: .cookieHeader, requiresManualCookieSource: true, cookieName: nil), ]}
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]),
.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),
.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),
.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),
.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),
.stepfun: TokenAccountSupport(
title: "Session tokens",
subtitle: "Store multiple StepFun Oasis-Token values.",
placeholder: "Oasis-Token=…",
injection: .cookieHeader,
requiresManualCookieSource: true,
cookieName: nil),
]
}