86 lines · 3.6 KB · Swift
RawDownload
import CodexBarCoreimport Foundation extension SettingsStore {    private static let alibabaAutoEnableAppliedKey = "alibabaCodingPlanAutoEnableApplied"     var alibabaCodingPlanAPIRegion: AlibabaCodingPlanAPIRegion {        get {            let raw = self.configSnapshot.providerConfig(for: .alibaba)?.region            return AlibabaCodingPlanAPIRegion(rawValue: raw ?? "") ?? .international        }        set {            self.updateProviderConfig(provider: .alibaba) { entry in                entry.region = newValue.rawValue            }        }    }     var alibabaCodingPlanCookieHeader: String {        get { self.configSnapshot.providerConfig(for: .alibaba)?.sanitizedCookieHeader ?? "" }        set {            self.updateProviderConfig(provider: .alibaba) { entry in                entry.cookieHeader = self.normalizedConfigValue(newValue)            }            self.logSecretUpdate(provider: .alibaba, field: "cookieHeader", value: newValue)        }    }     var alibabaCodingPlanCookieSource: ProviderCookieSource {        get { self.resolvedCookieSource(provider: .alibaba, fallback: .auto) }        set {            self.updateProviderConfig(provider: .alibaba) { entry in                entry.cookieSource = newValue            }            self.logProviderModeChange(provider: .alibaba, field: "cookieSource", value: newValue.rawValue)        }    }     var alibabaCodingPlanAPIToken: String {        get { self.configSnapshot.providerConfig(for: .alibaba)?.sanitizedAPIKey ?? "" }        set {            self.updateProviderConfig(provider: .alibaba) { entry in                entry.apiKey = self.normalizedConfigValue(newValue)            }            let hasToken = !newValue.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty            if hasToken,               let metadata = ProviderDescriptorRegistry.metadata[.alibaba],               !self.isProviderEnabled(provider: .alibaba, metadata: metadata)            {                self.setProviderEnabled(provider: .alibaba, metadata: metadata, enabled: true)            }            self.logSecretUpdate(provider: .alibaba, field: "apiKey", value: newValue)        }    }     func ensureAlibabaCodingPlanAPITokenLoaded() {}     func ensureAlibabaProviderAutoEnabledIfNeeded(        environment: [String: String] = ProcessInfo.processInfo.environment)    {        guard self.userDefaults.bool(forKey: Self.alibabaAutoEnableAppliedKey) == false else { return }         let hasConfigToken = self.configSnapshot.providerConfig(for: .alibaba)?.sanitizedAPIKey != nil        let shouldUseEnvironmentToken = !Self.isRunningTests || self.userDefaults === UserDefaults.standard        let hasEnvironmentToken = shouldUseEnvironmentToken &&            AlibabaCodingPlanSettingsReader.apiToken(environment: environment) != nil        guard hasConfigToken || hasEnvironmentToken else { return }         if let metadata = ProviderDescriptorRegistry.metadata[.alibaba],           !self.isProviderEnabled(provider: .alibaba, metadata: metadata)        {            self.setProviderEnabled(provider: .alibaba, metadata: metadata, enabled: true)        }         self.userDefaults.set(true, forKey: Self.alibabaAutoEnableAppliedKey)    }} extension SettingsStore {    func alibabaCodingPlanSettingsSnapshot() -> ProviderSettingsSnapshot.AlibabaCodingPlanProviderSettings {        ProviderSettingsSnapshot.AlibabaCodingPlanProviderSettings(            cookieSource: self.alibabaCodingPlanCookieSource,            manualCookieHeader: self.alibabaCodingPlanCookieHeader,            apiRegion: self.alibabaCodingPlanAPIRegion)    }}