60 lines · 2.1 KB · Swift
RawDownload
import Foundation public enum ZedProviderDescriptor {    public static let descriptor: ProviderDescriptor = Self.makeDescriptor()     static func makeDescriptor() -> ProviderDescriptor {        ProviderDescriptor(            id: .zed,            metadata: ProviderMetadata(                id: .zed,                displayName: "Zed",                sessionLabel: "Edit predictions",                weeklyLabel: "Billing cycle",                opusLabel: nil,                supportsOpus: false,                supportsCredits: false,                creditsHint: "",                toggleTitle: "Show Zed usage",                cliName: "zed",                defaultEnabled: false,                isPrimaryProvider: false,                usesAccountFallback: false,                dashboardURL: nil,                statusPageURL: nil),            branding: ProviderBranding(                iconStyle: .zed,                iconResourceName: "ProviderIcon-zed",                color: ProviderColor(red: 8 / 255, green: 78 / 255, blue: 255 / 255)),            tokenCost: ProviderTokenCostConfig(                supportsTokenCost: false,                noDataMessage: { "Zed cost summary is not supported." }),            fetchPlan: ProviderFetchPlan(                sourceModes: [.auto, .api],                pipeline: ProviderFetchPipeline(resolveStrategies: { _ in                    [ZedLocalFetchStrategy()]                })),            cli: ProviderCLIConfig(                name: "zed",                versionDetector: nil))    }} struct ZedLocalFetchStrategy: ProviderFetchStrategy {    let id: String = "zed.local"    let kind: ProviderFetchKind = .localProbe     func isAvailable(_: ProviderFetchContext) async -> Bool {        true    }     func fetch(_ context: ProviderFetchContext) async throws -> ProviderFetchResult {        _ = context        let snapshot = try await ZedStatusProbe().fetch()        return self.makeResult(usage: snapshot.toUsageSnapshot(), sourceLabel: "local")    }     func shouldFallback(on _: Error, context _: ProviderFetchContext) -> Bool {        false    }}