import CodexBarCore import Foundation extension UsageStore { func tokenSnapshot(for provider: UsageProvider) -> CostUsageTokenSnapshot? { self.tokenSnapshots[provider] } func tokenError(for provider: UsageProvider) -> String? { self.tokenErrors[provider] } func tokenLastAttemptAt(for provider: UsageProvider) -> Date? { self.lastTokenFetchAt[provider] } func isTokenRefreshInFlight(for provider: UsageProvider) -> Bool { self.tokenRefreshInFlight.contains(provider) } nonisolated static func costUsageCacheDirectory( fileManager: FileManager = .default) -> URL { let root = fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first! return root .appendingPathComponent("CodexBar", isDirectory: true) .appendingPathComponent("cost-usage", isDirectory: true) } nonisolated static func tokenCostNoDataMessage(for provider: UsageProvider) -> String { ProviderDescriptorRegistry.descriptor(for: provider).tokenCost.noDataMessage() } }