664 lines · 26.6 KB · Swift
RawDownload
import Foundation public protocol ProviderCookieSettings: Sendable {    var cookieSource: ProviderCookieSource { get }    var manualCookieHeader: String? { get }     init(cookieSource: ProviderCookieSource, manualCookieHeader: String?)} public struct ProviderSettingsSnapshot: Sendable {    public static func make(        debugMenuEnabled: Bool = false,        debugKeepCLISessionsAlive: Bool = false,        codex: CodexProviderSettings? = nil,        claude: ClaudeProviderSettings? = nil,        cursor: CursorProviderSettings? = nil,        opencode: OpenCodeProviderSettings? = nil,        opencodego: OpenCodeProviderSettings? = nil,        alibaba: AlibabaCodingPlanProviderSettings? = nil,        alibabaTokenPlan: AlibabaTokenPlanProviderSettings? = nil,        factory: FactoryProviderSettings? = nil,        minimax: MiniMaxProviderSettings? = nil,        manus: ManusProviderSettings? = nil,        zai: ZaiProviderSettings? = nil,        copilot: CopilotProviderSettings? = nil,        kilo: KiloProviderSettings? = nil,        kimi: KimiProviderSettings? = nil,        augment: AugmentProviderSettings? = nil,        moonshot: MoonshotProviderSettings? = nil,        amp: AmpProviderSettings? = nil,        t3chat: T3ChatProviderSettings? = nil,        devin: DevinProviderSettings? = nil,        commandcode: CommandCodeProviderSettings? = nil,        ollama: OllamaProviderSettings? = nil,        jetbrains: JetBrainsProviderSettings? = nil,        windsurf: WindsurfProviderSettings? = nil,        perplexity: PerplexityProviderSettings? = nil,        mimo: MiMoProviderSettings? = nil,        abacus: AbacusProviderSettings? = nil,        mistral: MistralProviderSettings? = nil,        stepfun: StepFunProviderSettings? = nil) -> ProviderSettingsSnapshot    {        ProviderSettingsSnapshot(            debugMenuEnabled: debugMenuEnabled,            debugKeepCLISessionsAlive: debugKeepCLISessionsAlive,            codex: codex,            claude: claude,            cursor: cursor,            opencode: opencode,            opencodego: opencodego,            alibaba: alibaba,            alibabaTokenPlan: alibabaTokenPlan,            factory: factory,            minimax: minimax,            manus: manus,            zai: zai,            copilot: copilot,            kilo: kilo,            kimi: kimi,            augment: augment,            moonshot: moonshot,            amp: amp,            t3chat: t3chat,            devin: devin,            commandcode: commandcode,            ollama: ollama,            jetbrains: jetbrains,            windsurf: windsurf,            perplexity: perplexity,            mimo: mimo,            abacus: abacus,            mistral: mistral,            stepfun: stepfun)    }     public struct CodexProviderSettings: Sendable {        public let usageDataSource: CodexUsageDataSource        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?        public let managedAccountStoreUnreadable: Bool        public let managedAccountTargetUnavailable: Bool        public let profileAccountTargetUnavailable: Bool        public let openAIWebCacheScope: CookieHeaderCache.Scope?        public let dashboardAuthorityKnownOwners: [CodexDashboardKnownOwnerCandidate]         public init(            usageDataSource: CodexUsageDataSource,            cookieSource: ProviderCookieSource,            manualCookieHeader: String?,            managedAccountStoreUnreadable: Bool = false,            managedAccountTargetUnavailable: Bool = false,            profileAccountTargetUnavailable: Bool = false,            openAIWebCacheScope: CookieHeaderCache.Scope? = nil,            dashboardAuthorityKnownOwners: [CodexDashboardKnownOwnerCandidate] = [])        {            self.usageDataSource = usageDataSource            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader            self.managedAccountStoreUnreadable = managedAccountStoreUnreadable            self.managedAccountTargetUnavailable = managedAccountTargetUnavailable            self.profileAccountTargetUnavailable = profileAccountTargetUnavailable            self.openAIWebCacheScope = openAIWebCacheScope            self.dashboardAuthorityKnownOwners = dashboardAuthorityKnownOwners        }    }     public struct ClaudeProviderSettings: Sendable {        public let usageDataSource: ClaudeUsageDataSource        public let webExtrasEnabled: Bool        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?        public let organizationID: String?         public init(            usageDataSource: ClaudeUsageDataSource,            webExtrasEnabled: Bool,            cookieSource: ProviderCookieSource,            manualCookieHeader: String?,            organizationID: String? = nil)        {            self.usageDataSource = usageDataSource            self.webExtrasEnabled = webExtrasEnabled            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader            self.organizationID = organizationID        }    }     public struct CookieProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource = .auto, manualCookieHeader: String? = nil) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct CursorProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct OpenCodeProviderSettings: Sendable {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?        public let workspaceID: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?, workspaceID: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader            self.workspaceID = workspaceID        }    }     public struct AlibabaCodingPlanProviderSettings: Sendable {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?        public let apiRegion: AlibabaCodingPlanAPIRegion         public init(            cookieSource: ProviderCookieSource = .auto,            manualCookieHeader: String? = nil,            apiRegion: AlibabaCodingPlanAPIRegion = .international)        {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader            self.apiRegion = apiRegion        }    }     public struct AlibabaTokenPlanProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource = .auto, manualCookieHeader: String? = nil) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct FactoryProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct MiniMaxProviderSettings: Sendable {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?        public let apiRegion: MiniMaxAPIRegion         public init(            cookieSource: ProviderCookieSource,            manualCookieHeader: String?,            apiRegion: MiniMaxAPIRegion = .global)        {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader            self.apiRegion = apiRegion        }    }     public struct ManusProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct ZaiProviderSettings: Sendable {        public let apiRegion: ZaiAPIRegion         public init(apiRegion: ZaiAPIRegion = .global) {            self.apiRegion = apiRegion        }    }     public struct CopilotProviderSettings: Sendable {        public let apiToken: String?        public let enterpriseHost: String?        public let selectedAccountExternalIdentifier: String?        public let budgetExtrasEnabled: Bool        public let budgetCookieSource: ProviderCookieSource        public let manualBudgetCookieHeader: String?         public init(            apiToken: String? = nil,            enterpriseHost: String? = nil,            selectedAccountExternalIdentifier: String? = nil,            budgetExtrasEnabled: Bool = false,            budgetCookieSource: ProviderCookieSource = .auto,            manualBudgetCookieHeader: String? = nil)        {            self.apiToken = apiToken            self.enterpriseHost = enterpriseHost            self.selectedAccountExternalIdentifier = selectedAccountExternalIdentifier            self.budgetExtrasEnabled = budgetExtrasEnabled            self.budgetCookieSource = budgetCookieSource            self.manualBudgetCookieHeader = manualBudgetCookieHeader        }    }     public struct KiloProviderSettings: Sendable {        public let usageDataSource: KiloUsageDataSource        public let extrasEnabled: Bool         public init(usageDataSource: KiloUsageDataSource, extrasEnabled: Bool) {            self.usageDataSource = usageDataSource            self.extrasEnabled = extrasEnabled        }    }     public struct KimiProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct AugmentProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct MoonshotProviderSettings: Sendable {        public let region: MoonshotRegion?         public init(region: MoonshotRegion? = nil) {            self.region = region        }    }     public struct JetBrainsProviderSettings: Sendable {        public let ideBasePath: String?         public init(ideBasePath: String?) {            self.ideBasePath = ideBasePath        }    }     public struct AmpProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct T3ChatProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct DevinProviderSettings: Sendable {        public let cookieSource: ProviderCookieSource        public let manualBearerToken: String?        public let organization: String?         public init(cookieSource: ProviderCookieSource, manualBearerToken: String?, organization: String?) {            self.cookieSource = cookieSource            self.manualBearerToken = manualBearerToken            self.organization = organization        }    }     public struct CommandCodeProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct OllamaProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct WindsurfProviderSettings: Sendable {        public let usageDataSource: WindsurfUsageDataSource        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(            usageDataSource: WindsurfUsageDataSource,            cookieSource: ProviderCookieSource,            manualCookieHeader: String?)        {            self.usageDataSource = usageDataSource            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct PerplexityProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct MiMoProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct AbacusProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct MistralProviderSettings: ProviderCookieSettings {        public let cookieSource: ProviderCookieSource        public let manualCookieHeader: String?         public init(cookieSource: ProviderCookieSource, manualCookieHeader: String?) {            self.cookieSource = cookieSource            self.manualCookieHeader = manualCookieHeader        }    }     public struct StepFunProviderSettings: Sendable {        public let cookieSource: ProviderCookieSource        public let manualToken: String        public let username: String        public let password: String         public init(            cookieSource: ProviderCookieSource = .auto,            manualToken: String = "",            username: String = "",            password: String = "")        {            self.cookieSource = cookieSource            self.manualToken = manualToken            self.username = username            self.password = password        }    }     public let debugMenuEnabled: Bool    public let debugKeepCLISessionsAlive: Bool    public let codex: CodexProviderSettings?    public let claude: ClaudeProviderSettings?    public let cursor: CursorProviderSettings?    public let opencode: OpenCodeProviderSettings?    public let opencodego: OpenCodeProviderSettings?    public let alibaba: AlibabaCodingPlanProviderSettings?    public let alibabaTokenPlan: AlibabaTokenPlanProviderSettings?    public let factory: FactoryProviderSettings?    public let minimax: MiniMaxProviderSettings?    public let manus: ManusProviderSettings?    public let zai: ZaiProviderSettings?    public let copilot: CopilotProviderSettings?    public let kilo: KiloProviderSettings?    public let kimi: KimiProviderSettings?    public let augment: AugmentProviderSettings?    public let moonshot: MoonshotProviderSettings?    public let amp: AmpProviderSettings?    public let t3chat: T3ChatProviderSettings?    public let devin: DevinProviderSettings?    public let commandcode: CommandCodeProviderSettings?    public let ollama: OllamaProviderSettings?    public let jetbrains: JetBrainsProviderSettings?    public let windsurf: WindsurfProviderSettings?    public let perplexity: PerplexityProviderSettings?    public let mimo: MiMoProviderSettings?    public let abacus: AbacusProviderSettings?    public let mistral: MistralProviderSettings?    public let stepfun: StepFunProviderSettings?     public var jetbrainsIDEBasePath: String? {        self.jetbrains?.ideBasePath    }     public init(        debugMenuEnabled: Bool,        debugKeepCLISessionsAlive: Bool,        codex: CodexProviderSettings?,        claude: ClaudeProviderSettings?,        cursor: CursorProviderSettings?,        opencode: OpenCodeProviderSettings?,        opencodego: OpenCodeProviderSettings?,        alibaba: AlibabaCodingPlanProviderSettings?,        alibabaTokenPlan: AlibabaTokenPlanProviderSettings? = nil,        factory: FactoryProviderSettings?,        minimax: MiniMaxProviderSettings?,        manus: ManusProviderSettings?,        zai: ZaiProviderSettings?,        copilot: CopilotProviderSettings?,        kilo: KiloProviderSettings?,        kimi: KimiProviderSettings?,        augment: AugmentProviderSettings?,        moonshot: MoonshotProviderSettings? = nil,        amp: AmpProviderSettings?,        t3chat: T3ChatProviderSettings? = nil,        devin: DevinProviderSettings? = nil,        commandcode: CommandCodeProviderSettings? = nil,        ollama: OllamaProviderSettings?,        jetbrains: JetBrainsProviderSettings? = nil,        windsurf: WindsurfProviderSettings? = nil,        perplexity: PerplexityProviderSettings? = nil,        mimo: MiMoProviderSettings? = nil,        abacus: AbacusProviderSettings? = nil,        mistral: MistralProviderSettings? = nil,        stepfun: StepFunProviderSettings? = nil)    {        self.debugMenuEnabled = debugMenuEnabled        self.debugKeepCLISessionsAlive = debugKeepCLISessionsAlive        self.codex = codex        self.claude = claude        self.cursor = cursor

Lines 1–500 of 664.