48 lines · 2.0 KB · Swift
RawDownload
import Foundation public enum DeepSeekProviderDescriptor {    public static let descriptor: ProviderDescriptor = Self.makeDescriptor()     static func makeDescriptor() -> ProviderDescriptor {        ProviderDescriptor(            id: .deepseek,            metadata: ProviderMetadata(                id: .deepseek,                displayName: "DeepSeek",                sessionLabel: "Balance",                weeklyLabel: "Balance",                opusLabel: nil,                supportsOpus: false,                supportsCredits: false,                creditsHint: "",                toggleTitle: "Show DeepSeek usage",                cliName: "deepseek",                defaultEnabled: false,                isPrimaryProvider: false,                usesAccountFallback: false,                browserCookieOrder: nil,                dashboardURL: "https://platform.deepseek.com/usage",                statusPageURL: nil,                statusLinkURL: "https://status.deepseek.com"),            branding: ProviderBranding(                iconStyle: .deepseek,                iconResourceName: "ProviderIcon-deepseek",                color: ProviderColor(red: 0.32, green: 0.49, blue: 0.94)),            tokenCost: ProviderTokenCostConfig(                supportsTokenCost: false,                noDataMessage: { "DeepSeek per-day cost history is not available via API." }),            fetchPlan: .apiToken(                strategyID: "deepseek.api",                resolveToken: { ProviderTokenResolver.deepseekToken(environment: $0) },                missingCredentialsError: { DeepSeekUsageError.missingCredentials },                loadUsage: { apiKey, context in                    try await DeepSeekUsageFetcher.fetchUsage(                        apiKey: apiKey,                        includeOptionalUsage: context.includeOptionalUsage).toUsageSnapshot()                }),            cli: ProviderCLIConfig(                name: "deepseek",                aliases: ["deep-seek", "ds"],                versionDetector: nil))    }}