40 lines · 1.3 KB · Swift
RawDownload
import Foundation public enum CodebuffUsageError: LocalizedError, Sendable, Equatable {    case missingCredentials    case unauthorized    case endpointNotFound    case serviceUnavailable(Int)    case apiError(Int)    case networkError(String)    case parseFailed(String)     public static let missingToken: CodebuffUsageError = .missingCredentials     public var errorDescription: String? {        switch self {        case .missingCredentials:            "Codebuff API token not configured. Set CODEBUFF_API_KEY or run `codebuff login` to " +                "populate ~/.config/manicode/credentials.json."        case .unauthorized:            "Unauthorized. Please sign in to Codebuff again."        case .endpointNotFound:            "Codebuff usage endpoint not found."        case let .serviceUnavailable(status):            "Codebuff API is temporarily unavailable (status \(status))."        case let .apiError(status):            "Codebuff API returned an unexpected status (\(status))."        case let .networkError(message):            "Codebuff API error: \(message)"        case let .parseFailed(message):            "Could not parse Codebuff usage: \(message)"        }    }     public var isAuthRelated: Bool {        switch self {        case .unauthorized, .missingCredentials: true        default: false        }    }}