From 82aae2b5be569b330acfa470277d133f7fbc5962 Mon Sep 17 00:00:00 2001 From: Alec Gutman <44984861+Chipagosfinest@users.noreply.github.com> Date: Sat, 18 Jul 2026 12:15:35 -0700 Subject: [PATCH 1/5] Redesign usage share card --- Sources/CodexBar/ShareStatsCardView.swift | 676 +++++++++++------- Sources/CodexBar/ShareStatsPayload.swift | 106 ++- Sources/CodexBar/ShareStatsRenderer.swift | 2 +- Sources/CodexBar/SpendDashboardModel.swift | 62 ++ Tests/CodexBarTests/ShareStatsTests.swift | 51 +- .../SpendDashboardModelTests.swift | 2 + docs/screenshots/share-stats-brand-card.png | Bin 0 -> 193583 bytes 7 files changed, 575 insertions(+), 324 deletions(-) create mode 100644 docs/screenshots/share-stats-brand-card.png diff --git a/Sources/CodexBar/ShareStatsCardView.swift b/Sources/CodexBar/ShareStatsCardView.swift index 1cd70ccfe2..4a55463ed7 100644 --- a/Sources/CodexBar/ShareStatsCardView.swift +++ b/Sources/CodexBar/ShareStatsCardView.swift @@ -1,3 +1,4 @@ +import AppKit import SwiftUI struct ShareStatsCardView: View { @@ -5,342 +6,475 @@ struct ShareStatsCardView: View { let payload: ShareStatsPayload - static func providerDisplayLimit(for providerCount: Int) -> Int { - providerCount > 5 ? 4 : min(providerCount, 5) + static func activityLevel(totalTokens: Int, maximum: Int) -> Int { + guard totalTokens > 0, maximum > 0 else { return 0 } + let scaled = Int(ceil(Double(totalTokens) / Double(maximum) * 5)) + return min(5, max(1, scaled)) } - static func providerPaletteIndex( - for model: ShareStatsModelPayload, - providers: [ShareStatsProviderPayload]) -> Int? - { - providers.firstIndex { $0.provider == model.provider } + var body: some View { + ZStack { + ShareStatsBrandBackground() + HStack(spacing: 0) { + ShareStatsStory(payload: self.payload) + .frame(width: 750) + .background(ShareStatsBrand.canvas.opacity(0.78)) + ShareStatsActivity(payload: self.payload) + .frame(width: 450) + .background(ShareStatsBrand.surface.opacity(0.82)) + .overlay(alignment: .leading) { + Rectangle() + .fill(Color.white.opacity(0.12)) + .frame(width: 1) + } + } + } + .frame(width: Self.size.width, height: Self.size.height) + .clipped() + .foregroundStyle(ShareStatsBrand.primary) + .environment(\.colorScheme, .dark) } +} - private let background = Color(red: 0.078, green: 0.067, blue: 0.063) - private let primary = Color(red: 0.96, green: 0.94, blue: 0.91) - private let secondary = Color(red: 0.70, green: 0.66, blue: 0.62) - private let accent = Color(red: 0.93, green: 0.56, blue: 0.36) +private struct ShareStatsStory: View { + let payload: ShareStatsPayload var body: some View { VStack(alignment: .leading, spacing: 0) { self.header - self.hero - .padding(.top, 16) - Rectangle() - .fill(self.secondary.opacity(0.22)) - .frame(height: 1) - .padding(.vertical, 17) - self.rankings - .frame(height: 286, alignment: .top) - Spacer(minLength: 10) - self.footer + self.headline + .padding(.top, 44) + self.tokenHero + .padding(.top, 26) + self.spend + .padding(.top, 29) + self.routes + .padding(.top, 32) + Spacer(minLength: 8) + Text("\(self.payload.days) DAYS · AGGREGATED LOCALLY · NO PROMPTS SHARED") + .font(ShareStatsBrand.mono(size: 12, weight: .semibold)) + .tracking(0.4) + .foregroundStyle(ShareStatsBrand.secondary) } .padding(.horizontal, 52) - .padding(.vertical, 34) - .frame(width: Self.size.width, height: Self.size.height, alignment: .topLeading) - .background(self.background) - .foregroundStyle(self.primary) - .environment(\.colorScheme, .dark) + .padding(.top, 38) + .padding(.bottom, 28) } private var header: some View { - HStack(alignment: .center) { - HStack(spacing: 14) { - ShareStatsMark(accent: self.accent) - .frame(width: 34, height: 34) - Text("CodexBar") - .font(.system(size: 26, weight: .semibold, design: .rounded)) - } - Spacer() - Text("LOCAL SNAPSHOT") - .font(.system(size: 14, weight: .semibold, design: .rounded)) - .tracking(1.8) - .foregroundStyle(self.secondary) - .padding(.horizontal, 15) - .padding(.vertical, 9) + HStack(spacing: 10) { + Image(nsImage: NSApplication.shared.applicationIconImage) + .resizable() + .interpolation(.high) + .frame(width: 30, height: 30) + .clipShape(RoundedRectangle(cornerRadius: 7)) .overlay { - RoundedRectangle(cornerRadius: 12) - .stroke(self.secondary.opacity(0.45), lineWidth: 1) + RoundedRectangle(cornerRadius: 7) + .stroke(Color.white.opacity(0.16), lineWidth: 1) } + Text("CodexBar") + .font(.system(size: 18, weight: .semibold)) + .tracking(-0.3) } } - private var hero: some View { - HStack(alignment: .bottom, spacing: 52) { - VStack(alignment: .leading, spacing: 2) { - Text("TRACKED TOKENS · \(self.payload.days) DAYS") - .font(.system(size: 20, weight: .semibold, design: .rounded)) - .tracking(1.8) - .foregroundStyle(self.secondary) - Text(self.payload.totalTokens.map(ShareStatsFormatting.compactCount) ?? "—") - .font(.system(size: 104, weight: .semibold, design: .rounded)) - .monospacedDigit() - .lineLimit(1) - .minimumScaleFactor(0.72) - } - .frame(maxWidth: .infinity, alignment: .leading) - - VStack(alignment: .leading, spacing: 9) { - Text("EST. \(self.payload.days)-DAY SPEND") - .font(.system(size: 18, weight: .semibold, design: .rounded)) - .tracking(1.2) - .foregroundStyle(self.secondary) - ForEach(self.payload.currencies.prefix(2)) { currency in - HStack(alignment: .firstTextBaseline) { - Text("\(currency.currencyCode) · \(currency.coveredDayCount)/\(self.payload.days)d") - .font(.system(size: 17, weight: .semibold, design: .rounded)) - .foregroundStyle(self.secondary) - Spacer() - Text(currency.estimatedCost.map { - ShareStatsFormatting.currency($0, code: currency.currencyCode) - } ?? "Unavailable") - .font(.system(size: 32, weight: .semibold, design: .rounded)) - .monospacedDigit() - .lineLimit(1) - .minimumScaleFactor(0.72) - } - } - Text(self.currencySummary) - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - } - .frame(width: 390, alignment: .leading) + private var headline: some View { + HStack(spacing: 0) { + Text("You kept ") + Text("the models") + .foregroundStyle(ShareStatsBrand.aurora) + Text(" busy.") + } + .font(.system(size: 43, weight: .semibold)) + .tracking(-1.8) + } + + private var tokenHero: some View { + HStack(alignment: .lastTextBaseline, spacing: 17) { + Text(self.payload.totalTokens.map(ShareStatsFormatting.compactCount) ?? "—") + .font(.system(size: 126, weight: .bold)) + .tracking(-7) + .monospacedDigit() + .lineLimit(1) + .minimumScaleFactor(0.72) + Text("TOKENS") + .font(ShareStatsBrand.mono(size: 15, weight: .bold)) + .tracking(2) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.bottom, 11) + } + .frame(height: 106, alignment: .bottomLeading) + } + + private var spend: some View { + HStack(alignment: .firstTextBaseline, spacing: 12) { + Text(self.spendHeadline) + .font(.system(size: 32, weight: .bold)) + .tracking(-1.3) + .foregroundStyle(ShareStatsBrand.teal) + .lineLimit(1) + .minimumScaleFactor(0.72) + Text(self.spendDetail) + .font(.system(size: 14, weight: .regular)) + .foregroundStyle(ShareStatsBrand.secondary) + .lineLimit(1) + .minimumScaleFactor(0.8) + } + } + + private var spendHeadline: String { + let pricedCurrencies = self.payload.currencies.compactMap { currency -> String? in + guard let estimatedCost = currency.estimatedCost else { return nil } + return ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) + } + guard !pricedCurrencies.isEmpty else { return "—" } + let shown = pricedCurrencies.prefix(2).joined(separator: " · ") + if pricedCurrencies.count > 2 { + return "\(shown) +\(pricedCurrencies.count - 2)" + } + let isPartial = self.pricedSourceCount < self.payload.providers.count + return pricedCurrencies.count == 1 && isPartial ? "\(shown)+" : shown + } + + private var spendDetail: String { + guard self.pricedSourceCount > 0 else { + return "estimated token spend unavailable · \(self.payload.providers.count) sources tracked" } - .frame(height: 132, alignment: .bottom) + return "estimated token spend · pricing for \(self.pricedSourceCount) " + + "of \(self.payload.providers.count) sources" } - private var currencySummary: String { - let hiddenCount = self.payload.currencies.count - min(self.payload.currencies.count, 2) - return hiddenCount > 0 - ? "+\(hiddenCount) more currencies · see subscription rows" - : "\(self.payload.providers.count) subscriptions · native currencies kept separate" + private var pricedSourceCount: Int { + self.payload.providers.count { $0.estimatedCost != nil } } - private var rankings: some View { - HStack(alignment: .top, spacing: 46) { - VStack(alignment: .leading, spacing: 6) { - self.sectionHeader("SUBSCRIPTIONS", detail: "\(self.payload.providers.count) CONNECTED") + private var routes: some View { + VStack(alignment: .leading, spacing: 0) { + Rectangle() + .fill(ShareStatsBrand.rule) + .frame(height: 1) + HStack(alignment: .firstTextBaseline) { + Text("MODEL + SOURCE") + Spacer() + Text(self.routeHeaderDetail) + } + .font(ShareStatsBrand.mono(size: 13, weight: .bold)) + .tracking(0.8) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.top, 16) + .padding(.bottom, 9) + + if self.payload.topModels.isEmpty { + Text("Model breakdown unavailable") + .font(.system(size: 20, weight: .semibold)) + .foregroundStyle(ShareStatsBrand.secondary) + .frame(height: 40) + } else { ForEach( - Array(self.payload.providers.prefix(self.providerDisplayLimit).enumerated()), + Array(self.payload.topModels.prefix(3).enumerated()), id: \.offset) - { index, provider in - ShareStatsProviderRow( - rank: index + 1, - provider: provider, - days: self.payload.days, - color: ShareStatsPalette.color(at: index)) - } - if self.payload.providers.count > self.providerDisplayLimit { - Text("+\(self.payload.providers.count - self.providerDisplayLimit) more configured") - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - .padding(.leading, 20) - } - } - .frame(width: 554, alignment: .topLeading) - - VStack(alignment: .leading, spacing: 0) { - VStack(alignment: .leading, spacing: 6) { - self.sectionHeader("TOP MODELS", detail: "BY USAGE") - if self.payload.topModels.isEmpty { - Text("No model-level history in this local snapshot") - .font(.system(size: 18, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - .padding(.top, 4) - } else { - ForEach( - Array(self.payload.topModels.prefix(3).enumerated()), - id: \.offset) - { index, model in - ShareStatsModelRow( - rank: index + 1, - model: model, - color: self.color(for: model)) - } + { _, model in + HStack { + Text(model.modelName) + .font(.system(size: 20, weight: .semibold)) + .tracking(-0.3) + Spacer() + Text(model.providerName) + .font(ShareStatsBrand.mono(size: 15, weight: .semibold)) + .foregroundStyle(ShareStatsBrand.secondary) + } + .frame(height: 40) + .overlay(alignment: .bottom) { + Rectangle() + .fill(ShareStatsBrand.rule) + .frame(height: 1) } } - Text("Only aggregate usage, plan tier, and estimated spend are included.") - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - .padding(.top, 18) } - .frame(maxWidth: .infinity, alignment: .topLeading) + + HStack { + Text(self.routeOverflowDetail) + Spacer() + Text("\(self.payload.providers.count) sources tracked") + } + .font(ShareStatsBrand.mono(size: 12, weight: .semibold)) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.top, 9) } } - private var providerDisplayLimit: Int { - Self.providerDisplayLimit(for: self.payload.providers.count) + private var routeHeaderDetail: String { + guard !self.payload.topModels.isEmpty else { return "UNAVAILABLE" } + return "TOP \(min(3, self.payload.topModels.count)) OF \(self.payload.topModels.count)" } - private func color(for model: ShareStatsModelPayload) -> Color { - guard let index = Self.providerPaletteIndex(for: model, providers: self.payload.providers) else { - return self.secondary - } - return ShareStatsPalette.color(at: index) + private var routeOverflowDetail: String { + let hiddenCount = max(0, self.payload.topModels.count - 3) + return hiddenCount > 0 ? "+\(hiddenCount) more model / source pairs" : "All model / source pairs shown" } +} - private func sectionHeader(_ title: String, detail: String) -> some View { - HStack(alignment: .firstTextBaseline) { - Text(title) - .font(.system(size: 18, weight: .semibold, design: .rounded)) - .tracking(1.5) - Spacer() - Text(detail) - .font(.system(size: 16, weight: .semibold, design: .rounded)) - .tracking(1.0) - } - .foregroundStyle(self.secondary) +private struct ShareStatsActivity: View { + let payload: ShareStatsPayload + + private var calendar: Calendar { + Calendar.current } - private var footer: some View { - HStack(spacing: 12) { - Label("LOCAL · AGGREGATE ONLY", systemImage: "lock.shield") - Spacer() - Text("DATA THROUGH \(ShareStatsFormatting.dataThrough(self.payload.periodEnd).uppercased())") - } - .font(.system(size: 14, weight: .medium, design: .rounded)) - .tracking(0.7) - .foregroundStyle(self.secondary) + private var periodEnd: Date { + self.calendar.startOfDay(for: self.payload.periodEnd) } -} -private struct ShareStatsModelRow: View { - let rank: Int - let model: ShareStatsModelPayload - let color: Color + private var periodStart: Date { + self.calendar.date(byAdding: .day, value: -(self.payload.days - 1), to: self.periodEnd) + ?? self.periodEnd + } var body: some View { - HStack(spacing: 9) { - Capsule() - .fill(self.color) - .frame(width: 5, height: 34) - Text(String(format: "%02d", self.rank)) - .font(.system(size: 17, weight: .bold, design: .rounded)) - .monospacedDigit() - .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) - .frame(width: 27, alignment: .leading) - VStack(alignment: .leading, spacing: 1) { - Text(self.model.modelName) - .font(.system(size: 20, weight: .semibold, design: .rounded)) - .lineLimit(1) - .minimumScaleFactor(0.82) - Text(self.model.providerName) - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) - .lineLimit(1) + VStack(alignment: .leading, spacing: 0) { + Text( + "\(ShareStatsFormatting.shortRange(from: self.periodStart, through: self.periodEnd))" + + " · \(self.payload.days)-DAY SNAPSHOT") + .font(ShareStatsBrand.mono(size: 13, weight: .bold)) + .tracking(1) + .foregroundStyle(ShareStatsBrand.secondary) + + HStack(alignment: .lastTextBaseline, spacing: 9) { + Text(self.payload.dailyTokens.isEmpty ? "—" : "\(self.activeDayCount)") + .font(.system(size: 72, weight: .heavy)) + .tracking(-4.5) + .monospacedDigit() + .foregroundStyle(ShareStatsBrand.activeGradient) + if !self.payload.dailyTokens.isEmpty { + Text("of \(self.payload.days)") + .font(.system(size: 23, weight: .bold)) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.bottom, 7) + } } + .frame(height: 72, alignment: .bottomLeading) + .padding(.top, 18) + + Text(self.payload.dailyTokens.isEmpty ? "daily activity unavailable" : "days active") + .font(.system(size: 21, weight: .semibold)) + .padding(.top, 8) + + ShareStatsCalendar( + cells: self.calendarCells, + start: self.periodStart, + end: self.periodEnd) + .frame(maxWidth: .infinity) + .padding(.top, 24) + Spacer(minLength: 10) - Text(self.detail) - .font(.system(size: 17, weight: .medium, design: .rounded)) - .monospacedDigit() - .foregroundStyle(Color(red: 0.78, green: 0.74, blue: 0.69)) - .lineLimit(1) - } - .padding(.horizontal, 9) - .frame(height: 48) - .background(Color.white.opacity(0.035), in: RoundedRectangle(cornerRadius: 9)) - .overlay { - RoundedRectangle(cornerRadius: 9) - .stroke(Color.white.opacity(0.10), lineWidth: 1) + + HStack { + Text("DAILY TOKEN ACTIVITY") + Spacer() + Text(self.sourceCoverage) + } + .font(ShareStatsBrand.mono(size: 12, weight: .bold)) + .tracking(0.35) + .foregroundStyle(ShareStatsBrand.secondary) } + .padding(.horizontal, 38) + .padding(.top, 38) + .padding(.bottom, 29) + } + + private var activeDayCount: Int { + self.payload.dailyTokens.count { $0.totalTokens > 0 } } - private var detail: String { - if let cost = self.model.estimatedCost, cost.isFinite { - return "~\(ShareStatsFormatting.currency(cost, code: self.model.currencyCode))" + private var sourceCoverage: String { + guard self.payload.dailySourceCount > 0 else { return "NO SOURCE DATA" } + return "\(self.payload.dailySourceCount) OF \(self.payload.providers.count) SOURCES" + } + + private var calendarCells: [ShareStatsCalendarCell] { + let dailyTokens = Dictionary(uniqueKeysWithValues: self.payload.dailyTokens.map { + (self.calendar.startOfDay(for: $0.day), $0.totalTokens) + }) + let maximum = dailyTokens.values.max() ?? 0 + let leadingCount = max(0, self.calendar.component(.weekday, from: self.periodStart) - 1) + let requiredCount = leadingCount + self.payload.days + let totalCount = Int(ceil(Double(requiredCount) / 7.0)) * 7 + + return (0..= 0, + dayOffset < self.payload.days, + let day = self.calendar.date(byAdding: .day, value: dayOffset, to: self.periodStart) + else { + return ShareStatsCalendarCell(id: index, level: nil) + } + let tokens = dailyTokens[self.calendar.startOfDay(for: day)] ?? 0 + return ShareStatsCalendarCell( + id: index, + level: ShareStatsCardView.activityLevel(totalTokens: tokens, maximum: maximum)) } - return self.model.totalTokens.map(ShareStatsFormatting.compactCount) ?? "used" } } -private struct ShareStatsProviderRow: View { - let rank: Int - let provider: ShareStatsProviderPayload - let days: Int - let color: Color +private struct ShareStatsCalendarCell: Identifiable { + let id: Int + let level: Int? +} + +private struct ShareStatsCalendar: View { + let cells: [ShareStatsCalendarCell] + let start: Date + let end: Date + + private var weeks: [[ShareStatsCalendarCell]] { + stride(from: 0, to: self.cells.count, by: 7).map { startIndex in + Array(self.cells[startIndex.. String { + switch index { + case 1: "Mon" + case 3: "Wed" + case 5: "Fri" + default: "" } - return metrics.isEmpty ? "connected" : metrics.joined(separator: " · ") } } -private enum ShareStatsPalette { - static let colors = [ - Color(red: 1.00, green: 0.60, blue: 0.38), - Color(red: 0.60, green: 0.66, blue: 1.00), - Color(red: 0.38, green: 0.84, blue: 0.72), - Color(red: 0.95, green: 0.79, blue: 0.41), - Color(red: 0.44, green: 0.77, blue: 0.96), - Color(red: 0.95, green: 0.55, blue: 0.67), - ] - - static func color(at index: Int) -> Color { - self.colors[index % self.colors.count] +private struct ShareStatsBrandBackground: View { + var body: some View { + ZStack { + ShareStatsBrand.canvas + RadialGradient( + colors: [ShareStatsBrand.orange.opacity(0.42), .clear], + center: .topLeading, + startRadius: 0, + endRadius: 460) + RadialGradient( + colors: [ShareStatsBrand.violet.opacity(0.46), .clear], + center: .topTrailing, + startRadius: 0, + endRadius: 480) + RadialGradient( + colors: [ShareStatsBrand.teal.opacity(0.22), .clear], + center: .bottom, + startRadius: 0, + endRadius: 420) + RadialGradient( + colors: [ShareStatsBrand.pink.opacity(0.28), .clear], + center: .bottomTrailing, + startRadius: 0, + endRadius: 360) + } } } -private struct ShareStatsMark: View { - let accent: Color +private enum ShareStatsBrand { + static let canvas = Color(red: 10.0 / 255.0, green: 10.0 / 255.0, blue: 12.0 / 255.0) + static let surface = Color(red: 19.0 / 255.0, green: 20.0 / 255.0, blue: 24.0 / 255.0) + static let primary = Color(red: 240.0 / 255.0, green: 240.0 / 255.0, blue: 243.0 / 255.0) + static let secondary = Color(red: 182.0 / 255.0, green: 189.0 / 255.0, blue: 198.0 / 255.0) + static let orange = Color(red: 255.0 / 255.0, green: 122.0 / 255.0, blue: 26.0 / 255.0) + static let pink = Color(red: 255.0 / 255.0, green: 61.0 / 255.0, blue: 139.0 / 255.0) + static let violet = Color(red: 110.0 / 255.0, green: 90.0 / 255.0, blue: 255.0 / 255.0) + static let teal = Color(red: 22.0 / 255.0, green: 211.0 / 255.0, blue: 180.0 / 255.0) + static let rule = Color.white.opacity(0.18) - var body: some View { - HStack(alignment: .bottom, spacing: 4) { - ForEach(Array([0.38, 0.68, 1.0].enumerated()), id: \.offset) { _, height in - Capsule() - .fill(self.accent) - .frame(width: 5, height: 28 * height) - } + static let aurora = LinearGradient( + colors: [ShareStatsBrand.orange, ShareStatsBrand.pink, ShareStatsBrand.violet, ShareStatsBrand.teal], + startPoint: .leading, + endPoint: .trailing) + + static let activeGradient = LinearGradient( + colors: [ShareStatsBrand.orange, ShareStatsBrand.pink], + startPoint: .topLeading, + endPoint: .bottomTrailing) + + static func mono(size: CGFloat, weight: Font.Weight) -> Font { + .system(size: size, weight: weight, design: .monospaced) + } + + static func activity(level: Int?) -> Color { + guard let level else { return .clear } + switch level { + case 1: return self.teal.opacity(0.18) + case 2: return self.teal.opacity(0.34) + case 3: return self.teal.opacity(0.52) + case 4: return self.teal.opacity(0.74) + case 5: return self.teal.opacity(0.98) + default: return Color.white.opacity(0.055) } - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) } } diff --git a/Sources/CodexBar/ShareStatsPayload.swift b/Sources/CodexBar/ShareStatsPayload.swift index 744f41ee17..f907192deb 100644 --- a/Sources/CodexBar/ShareStatsPayload.swift +++ b/Sources/CodexBar/ShareStatsPayload.swift @@ -91,12 +91,23 @@ struct ShareStatsCurrencyPayload: Sendable, Equatable, Identifiable { } } +struct ShareStatsDailyPayload: Sendable, Equatable, Identifiable { + let day: Date + let totalTokens: Int + + var id: Date { + self.day + } +} + struct ShareStatsPayload: Sendable, Equatable { let days: Int let periodEnd: Date let providers: [ShareStatsProviderPayload] let topModels: [ShareStatsModelPayload] let currencies: [ShareStatsCurrencyPayload] + let dailyTokens: [ShareStatsDailyPayload] + let dailySourceCount: Int let totalTokens: Int? var hasShareableData: Bool { @@ -378,14 +389,35 @@ enum ShareStatsBuilder { estimatedCost: self.finiteCost($0.totalCost), coveredDayCount: $0.coveredDayCount) } + let dailyPoints = model.groups.flatMap(\.dailyTokenPoints) + let dailyPointsByDay = Dictionary(grouping: dailyPoints, by: \.day) + let dailyTokens = dailyPointsByDay + .keys + .sorted() + .compactMap { day -> ShareStatsDailyPayload? in + guard let points = dailyPointsByDay[day], + let total = self.combinedTotalTokens(points.map { Optional($0.tokens) }) + else { return nil } + return ShareStatsDailyPayload(day: day, totalTokens: total) + } + let dailySourceCount = Set(dailyPoints.map(\.sourceID)).count let totalTokens = self.combinedTotalTokens(model.groups.map(\.totalTokens)) - let periodEnd = model.groups.map(\.chartDomain.upperBound).max() ?? Date() + let periodEnd = dailyTokens.map(\.day).max() + ?? model.groups.map { group in + let bounds = group.chartDomain + return bounds.lowerBound < bounds.upperBound + ? bounds.upperBound.addingTimeInterval(-1) + : bounds.upperBound + }.max() + ?? Date() let payload = ShareStatsPayload( days: model.requestedDays, periodEnd: periodEnd, providers: providers, topModels: topModels, currencies: currencies, + dailyTokens: dailyTokens, + dailySourceCount: dailySourceCount, totalTokens: totalTokens) return payload.hasShareableData ? payload : nil } @@ -436,47 +468,51 @@ enum ShareStatsFormatting { return formatter.string(from: date) } + static func shortDay(_ date: Date, calendar: Calendar = .current) -> String { + let formatter = DateFormatter() + formatter.calendar = calendar + formatter.timeZone = calendar.timeZone + formatter.locale = .current + formatter.setLocalizedDateFormatFromTemplate("MMM d") + return formatter.string(from: date) + } + + static func shortRange(from start: Date, through end: Date, calendar: Calendar = .current) -> String { + "\(self.shortDay(start, calendar: calendar)) — \(self.shortDay(end, calendar: calendar))" + } + static func text(_ payload: ShareStatsPayload) -> String { - var lines = ["My AI subscriptions · last \(payload.days) days"] + var lines = ["You kept the models busy · last \(payload.days) days"] if let tokens = payload.totalTokens { lines.append("\(self.compactCount(tokens)) tracked tokens") } - lines.append(contentsOf: payload.currencies.map { currency in - let spend = currency.estimatedCost.map { "\(self.currency($0, code: currency.currencyCode)) estimated" } - ?? "Spend unavailable" - return "\(currency.currencyCode): \(spend) · " - + "coverage \(currency.coveredDayCount)/\(payload.days) days" - }) - lines.append(contentsOf: payload.providers.map { provider in - var metrics: [String] = [] - if let tokens = provider.totalTokens { - metrics.append("\(self.compactCount(tokens)) tokens") - } - if let cost = provider.estimatedCost { - metrics.append("~\(self.currency(cost, code: provider.currencyCode)) est") - } else { - metrics.append("Spend unavailable") - } - if provider.estimatedCost != nil, provider.coveredDayCount < payload.days { - metrics.append("\(provider.coveredDayCount)/\(payload.days) days") - } - let subscription = provider.subscriptionName.map { " · \($0)" } ?? "" - return "\(provider.providerName)\(subscription): \(metrics.joined(separator: " · "))" - }) + if !payload.dailyTokens.isEmpty { + let activeDays = payload.dailyTokens.count { $0.totalTokens > 0 } + lines.append("\(activeDays) of \(payload.days) days active") + } + let pricedCurrencies = payload.currencies.compactMap { currency in + currency.estimatedCost.map { self.currency($0, code: currency.currencyCode) } + } + let pricedSourceCount = payload.providers.count { $0.estimatedCost != nil } + if !pricedCurrencies.isEmpty { + lines.append( + "Estimated token spend: \(pricedCurrencies.joined(separator: " · "))" + + " · pricing for \(pricedSourceCount) of \(payload.providers.count) sources") + } if !payload.topModels.isEmpty { - lines.append("Top models:") - lines.append(contentsOf: payload.topModels.prefix(5).map { model in - var metrics: [String] = [] - if let tokens = model.totalTokens { - metrics.append("\(self.compactCount(tokens)) tokens") - } - if let cost = model.estimatedCost { - metrics.append("~\(self.currency(cost, code: model.currencyCode)) est") - } - return "\(model.modelName) (\(model.providerName)): \(metrics.joined(separator: " · "))" + lines.append("Top model + source pairs:") + lines.append(contentsOf: payload.topModels.prefix(3).map { model in + "\(model.modelName) · \(model.providerName)" }) + let hiddenCount = payload.topModels.count - min(3, payload.topModels.count) + if hiddenCount > 0 { + lines.append("+\(hiddenCount) more") + } } - lines.append("Generated locally by CodexBar · Data through \(self.dataThrough(payload.periodEnd))") + lines.append("\(payload.providers.count) sources tracked") + lines.append( + "Aggregated locally by CodexBar · No prompts shared · " + + "Data through \(self.dataThrough(payload.periodEnd))") return lines.joined(separator: "\n") } } diff --git a/Sources/CodexBar/ShareStatsRenderer.swift b/Sources/CodexBar/ShareStatsRenderer.swift index 7d440c8bea..02e57bbfe4 100644 --- a/Sources/CodexBar/ShareStatsRenderer.swift +++ b/Sources/CodexBar/ShareStatsRenderer.swift @@ -70,6 +70,6 @@ enum ShareStatsExporter { } private static func defaultFilename(_ payload: ShareStatsPayload) -> String { - "codexbar-subscriptions-last-\(payload.days)-days.png" + "codexbar-usage-last-\(payload.days)-days.png" } } diff --git a/Sources/CodexBar/SpendDashboardModel.swift b/Sources/CodexBar/SpendDashboardModel.swift index c3ed207f96..70bb1c1b58 100644 --- a/Sources/CodexBar/SpendDashboardModel.swift +++ b/Sources/CodexBar/SpendDashboardModel.swift @@ -61,6 +61,18 @@ struct SpendDashboardModel: Equatable, Sendable { } } + struct DailyTokenPoint: Identifiable, Equatable, Sendable { + let sourceID: String + let provider: UsageProvider + let providerName: String + let day: Date + let tokens: Int + + var id: String { + "\(self.sourceID):\(Int(self.day.timeIntervalSince1970))" + } + } + enum ModelHistoryCompleteness: Equatable, Sendable { case complete case incomplete @@ -71,6 +83,7 @@ struct SpendDashboardModel: Equatable, Sendable { let providers: [ProviderRow] let models: [ModelRow] let dailyPoints: [DailyPoint] + let dailyTokenPoints: [DailyTokenPoint] let totalTokens: Int? let totalCost: Double? let coveredDayCount: Int @@ -160,6 +173,14 @@ struct SpendDashboardModel: Equatable, Sendable { var overflowed = false } + private struct DailyTokenAccumulator { + let provider: UsageProvider + let providerName: String + var tokens: Int? + var invalid = false + var overflowed = false + } + private static func buildCurrencyGroup( currencyCode: String, inputs: [ProviderInput], @@ -181,11 +202,13 @@ struct SpendDashboardModel: Equatable, Sendable { ? ModelHistoryCompleteness.complete : ModelHistoryCompleteness.incomplete let dailyPoints = Self.dailyPoints(summaries: summaries) + let dailyTokenPoints = Self.dailyTokenPoints(summaries: summaries) return CurrencyGroup( currencyCode: currencyCode, providers: providers, models: modelSummary.rows, dailyPoints: dailyPoints, + dailyTokenPoints: dailyTokenPoints, totalTokens: Self.completeIntSum(providers.map(\.totalTokens)), totalCost: Self.completeCostSum(providers.map(\.totalCost)), coveredDayCount: Self.commonCoverageDayCount(summaries: summaries, calendar: calendar), @@ -516,6 +539,45 @@ struct SpendDashboardModel: Equatable, Sendable { } } + private static func dailyTokenPoints(summaries: [InputSummary]) -> [DailyTokenPoint] { + var aggregates: [DailyKey: DailyTokenAccumulator] = [:] + for summary in summaries where summary.totalTokens != nil { + let input = summary.input + for windowEntry in summary.entries { + let key = DailyKey(day: windowEntry.day, sourceID: input.id) + var aggregate = aggregates[key] ?? DailyTokenAccumulator( + provider: input.provider, + providerName: input.displayName, + tokens: 0) + if let tokens = Self.nonnegative(windowEntry.entry.totalTokens) { + aggregate.tokens = Self.add( + tokens, + to: aggregate.tokens, + overflowed: &aggregate.overflowed) + } else { + aggregate.invalid = true + } + aggregates[key] = aggregate + } + } + + return aggregates.compactMap { key, value in + guard !value.invalid, !value.overflowed, let tokens = value.tokens else { return nil } + return DailyTokenPoint( + sourceID: key.sourceID, + provider: value.provider, + providerName: value.providerName, + day: key.day, + tokens: tokens) + } + .sorted { + if $0.day != $1.day { + return $0.day < $1.day + } + return $0.sourceID < $1.sourceID + } + } + private static func bounds(days: Int, now: Date, calendar: Calendar) -> ClosedRange { let end = calendar.startOfDay(for: now) let start = calendar.date(byAdding: .day, value: -(days - 1), to: end) ?? end diff --git a/Tests/CodexBarTests/ShareStatsTests.swift b/Tests/CodexBarTests/ShareStatsTests.swift index adb0a24651..5cba6d1faa 100644 --- a/Tests/CodexBarTests/ShareStatsTests.swift +++ b/Tests/CodexBarTests/ShareStatsTests.swift @@ -26,13 +26,19 @@ struct ShareStatsTests { #expect(payload.providers.map(\.subscriptionName) == ["Max", "Pro 20x", "Cursor Pro"]) #expect(payload.providers.last?.estimatedCost == nil) #expect(payload.topModels.map(\.modelName).prefix(2) == ["Claude", "GPT"]) + #expect(payload.dailyTokens == [ShareStatsDailyPayload(day: Self.date, totalTokens: 500)]) + #expect(payload.dailySourceCount == 2) let text = ShareStatsFormatting.text(payload) - #expect(text.contains("GBP: £12.00 estimated · coverage 10/30 days")) - #expect(text.contains("Claude · Max: 300 tokens · ~£12.00 est · 10/30 days")) - #expect(text.contains("USD: Spend unavailable · coverage 0/30 days")) - #expect(text.contains("Cursor · Cursor Pro: Spend unavailable")) - #expect(!text.contains("£12.00 +")) + #expect(text.contains("You kept the models busy · last 30 days")) + #expect(text.contains("1 of 30 days active")) + #expect(text.contains("Estimated token spend: £12.00 · pricing for 2 of 3 sources")) + #expect(text.contains("Top model + source pairs:")) + #expect(text.contains("Claude · Claude")) + #expect(text.contains("3 sources tracked")) + #expect(text.contains("Aggregated locally by CodexBar · No prompts shared")) + #expect(!text.contains("Cursor Pro")) + #expect(!text.contains("Spend unavailable")) } @Test @@ -153,6 +159,7 @@ struct ShareStatsTests { ], models: rows, dailyPoints: [], + dailyTokenPoints: [], totalTokens: 1, totalCost: nil, coveredDayCount: 0, @@ -208,6 +215,7 @@ struct ShareStatsTests { totalCost: nil), ], dailyPoints: [], + dailyTokenPoints: [], totalTokens: 10, totalCost: -.infinity, coveredDayCount: 7, @@ -291,18 +299,11 @@ struct ShareStatsTests { } @Test @MainActor - func `provider rows leave room for overflow summary`() { - #expect(ShareStatsCardView.providerDisplayLimit(for: 5) == 5) - #expect(ShareStatsCardView.providerDisplayLimit(for: 6) == 4) - #expect(ShareStatsCardView.providerDisplayLimit(for: 12) == 4) - } - - @Test @MainActor - func `model colors use provider identity instead of decorated account name`() throws { - let payload = try #require(ShareStatsBuilder.make(model: Self.dashboard)) - let codexModel = try #require(payload.topModels.first { $0.provider == .codex }) - - #expect(ShareStatsCardView.providerPaletteIndex(for: codexModel, providers: payload.providers) == 1) + func `activity levels preserve zero and scale to five steps`() { + #expect(ShareStatsCardView.activityLevel(totalTokens: 0, maximum: 100) == 0) + #expect(ShareStatsCardView.activityLevel(totalTokens: 1, maximum: 100) == 1) + #expect(ShareStatsCardView.activityLevel(totalTokens: 50, maximum: 100) == 3) + #expect(ShareStatsCardView.activityLevel(totalTokens: 100, maximum: 100) == 5) } @Test @@ -368,6 +369,14 @@ struct ShareStatsTests { totalCost: 1), ], dailyPoints: [], + dailyTokenPoints: [ + SpendDashboardModel.DailyTokenPoint( + sourceID: "claude", + provider: .claude, + providerName: "Claude", + day: self.date, + tokens: 300), + ], totalTokens: 300, totalCost: 12, coveredDayCount: 10, @@ -403,6 +412,14 @@ struct ShareStatsTests { totalCost: 4) }, dailyPoints: [], + dailyTokenPoints: [ + SpendDashboardModel.DailyTokenPoint( + sourceID: "codex:one", + provider: .codex, + providerName: "Codex · #1", + day: self.date, + tokens: 200), + ], totalTokens: nil, totalCost: nil, coveredDayCount: 0, diff --git a/Tests/CodexBarTests/SpendDashboardModelTests.swift b/Tests/CodexBarTests/SpendDashboardModelTests.swift index 9223e633ca..398ce19e08 100644 --- a/Tests/CodexBarTests/SpendDashboardModelTests.swift +++ b/Tests/CodexBarTests/SpendDashboardModelTests.swift @@ -371,6 +371,8 @@ struct SpendDashboardModelTests { #expect(group.dailyPoints.map(\.cost) == [5, 4]) #expect(group.dailyPoints.map(\.stackStart) == [0, 5]) #expect(group.dailyPoints.map(\.stackEnd) == [5, 9]) + #expect(group.dailyTokenPoints.map(\.sourceID) == ["a", "b"]) + #expect(group.dailyTokenPoints.map(\.tokens) == [20, 10]) } @Test diff --git a/docs/screenshots/share-stats-brand-card.png b/docs/screenshots/share-stats-brand-card.png new file mode 100644 index 0000000000000000000000000000000000000000..533b6d3e7f68df27d3ef1b828e0d9370a197003e GIT binary patch literal 193583 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

TU7PH=_?fCq5`0b6u*&tQUY6a&%G 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 literal 0 HcmV?d00001 From ccc4f585970899129a13efe6af1c4fd8a8d381d9 Mon Sep 17 00:00:00 2001 From: Alec Gutman <44984861+Chipagosfinest@users.noreply.github.com> Date: Sat, 18 Jul 2026 15:41:04 -0700 Subject: [PATCH 2/5] feat: harden multi-source share stats proof --- Sources/CodexBar/ShareStatsCardView.swift | 132 +++- Sources/CodexBar/ShareStatsPayload.swift | 357 ++++++++--- Sources/CodexBar/ShareStatsRenderer.swift | 16 +- Sources/CodexBar/SpendDashboardModel.swift | 161 ++++- Tests/CodexBarTests/ShareStatsTests.swift | 573 ++++++++++++++++-- .../SpendDashboardModelTests.swift | 2 + .../share-stats-1200x630.png | Bin 0 -> 304944 bytes .../share-stats-proof/share-stats-300x158.png | Bin 0 -> 38972 bytes .../share-stats-proof/share-stats-600x315.png | Bin 0 -> 114707 bytes .../share-stats-proof/share-stats.txt | 11 + 10 files changed, 1078 insertions(+), 174 deletions(-) create mode 100644 docs/screenshots/share-stats-proof/share-stats-1200x630.png create mode 100644 docs/screenshots/share-stats-proof/share-stats-300x158.png create mode 100644 docs/screenshots/share-stats-proof/share-stats-600x315.png create mode 100644 docs/screenshots/share-stats-proof/share-stats.txt diff --git a/Sources/CodexBar/ShareStatsCardView.swift b/Sources/CodexBar/ShareStatsCardView.swift index 4a55463ed7..909ca82ae7 100644 --- a/Sources/CodexBar/ShareStatsCardView.swift +++ b/Sources/CodexBar/ShareStatsCardView.swift @@ -63,7 +63,7 @@ private struct ShareStatsStory: View { private var header: some View { HStack(spacing: 10) { - Image(nsImage: NSApplication.shared.applicationIconImage) + Image(nsImage: ShareStatsBrand.appIcon) .resizable() .interpolation(.high) .frame(width: 30, height: 30) @@ -91,13 +91,13 @@ private struct ShareStatsStory: View { private var tokenHero: some View { HStack(alignment: .lastTextBaseline, spacing: 17) { - Text(self.payload.totalTokens.map(ShareStatsFormatting.compactCount) ?? "—") + Text(self.tokenHeadline) .font(.system(size: 126, weight: .bold)) .tracking(-7) .monospacedDigit() .lineLimit(1) .minimumScaleFactor(0.72) - Text("TOKENS") + Text(self.payload.tokenCoverageIsComplete ? "TOKENS" : "KNOWN TOKENS") .font(ShareStatsBrand.mono(size: 15, weight: .bold)) .tracking(2) .foregroundStyle(ShareStatsBrand.secondary) @@ -106,6 +106,12 @@ private struct ShareStatsStory: View { .frame(height: 106, alignment: .bottomLeading) } + private var tokenHeadline: String { + guard let totalTokens = self.payload.totalTokens else { return "—" } + let value = ShareStatsFormatting.compactCount(totalTokens) + return self.payload.tokenCoverageIsComplete ? value : "≥\(value)" + } + private var spend: some View { HStack(alignment: .firstTextBaseline, spacing: 12) { Text(self.spendHeadline) @@ -125,22 +131,28 @@ private struct ShareStatsStory: View { private var spendHeadline: String { let pricedCurrencies = self.payload.currencies.compactMap { currency -> String? in guard let estimatedCost = currency.estimatedCost else { return nil } - return ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) + let knownSpend = ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) + let isPartial = currency.pricedSourceCount < currency.sourceCount + || currency.coveredDayCount < self.payload.days + return isPartial ? "≥\(knownSpend)" : knownSpend } guard !pricedCurrencies.isEmpty else { return "—" } let shown = pricedCurrencies.prefix(2).joined(separator: " · ") if pricedCurrencies.count > 2 { return "\(shown) +\(pricedCurrencies.count - 2)" } - let isPartial = self.pricedSourceCount < self.payload.providers.count - return pricedCurrencies.count == 1 && isPartial ? "\(shown)+" : shown + return shown } private var spendDetail: String { guard self.pricedSourceCount > 0 else { return "estimated token spend unavailable · \(self.payload.providers.count) sources tracked" } - return "estimated token spend · pricing for \(self.pricedSourceCount) " + let coverage = self.payload.currencies.contains { + $0.estimatedCost != nil + && ($0.pricedSourceCount < $0.sourceCount || $0.coveredDayCount < self.payload.days) + } ? "known lower bound · " : "" + return "estimated token spend · \(coverage)pricing for \(self.pricedSourceCount) " + "of \(self.payload.providers.count) sources" } @@ -154,7 +166,7 @@ private struct ShareStatsStory: View { .fill(ShareStatsBrand.rule) .frame(height: 1) HStack(alignment: .firstTextBaseline) { - Text("MODEL + SOURCE") + Text("MODEL ROUTES") Spacer() Text(self.routeHeaderDetail) } @@ -179,7 +191,7 @@ private struct ShareStatsStory: View { .font(.system(size: 20, weight: .semibold)) .tracking(-0.3) Spacer() - Text(model.providerName) + Text("via \(model.sourceName)") .font(ShareStatsBrand.mono(size: 15, weight: .semibold)) .foregroundStyle(ShareStatsBrand.secondary) } @@ -205,12 +217,26 @@ private struct ShareStatsStory: View { private var routeHeaderDetail: String { guard !self.payload.topModels.isEmpty else { return "UNAVAILABLE" } - return "TOP \(min(3, self.payload.topModels.count)) OF \(self.payload.topModels.count)" + return "\(min(3, self.payload.topModels.count)) OF \(self.payload.topModels.count) ROUTES" } private var routeOverflowDetail: String { - let hiddenCount = max(0, self.payload.topModels.count - 3) - return hiddenCount > 0 ? "+\(hiddenCount) more model / source pairs" : "All model / source pairs shown" + var details: [String] = [] + let overflowCount = max(0, self.payload.topModels.count - 3) + if overflowCount > 0 { + details.append("+\(overflowCount) more route\(overflowCount == 1 ? "" : "s")") + } + let collapsedCount = max(0, self.payload.shareableModelRouteCount - self.payload.topModels.count) + if collapsedCount > 0 { + details.append("\(collapsedCount) grouped") + } + if self.payload.hiddenModelRouteCount > 0 { + details.append("\(self.payload.hiddenModelRouteCount) private") + } + if !self.payload.modelRouteCoverageIsComplete { + details.append("partial history") + } + return details.isEmpty ? "All safe routes shown" : details.joined(separator: " · ") } } @@ -240,12 +266,12 @@ private struct ShareStatsActivity: View { .foregroundStyle(ShareStatsBrand.secondary) HStack(alignment: .lastTextBaseline, spacing: 9) { - Text(self.payload.dailyTokens.isEmpty ? "—" : "\(self.activeDayCount)") + Text(self.activeDayHeadline) .font(.system(size: 72, weight: .heavy)) .tracking(-4.5) .monospacedDigit() .foregroundStyle(ShareStatsBrand.activeGradient) - if !self.payload.dailyTokens.isEmpty { + if self.payload.dailySourceCount > 0 { Text("of \(self.payload.days)") .font(.system(size: 23, weight: .bold)) .foregroundStyle(ShareStatsBrand.secondary) @@ -255,21 +281,22 @@ private struct ShareStatsActivity: View { .frame(height: 72, alignment: .bottomLeading) .padding(.top, 18) - Text(self.payload.dailyTokens.isEmpty ? "daily activity unavailable" : "days active") + Text(self.payload.dailySourceCount == 0 ? "daily activity unavailable" : self.activeDayLabel) .font(.system(size: 21, weight: .semibold)) .padding(.top, 8) ShareStatsCalendar( cells: self.calendarCells, start: self.periodStart, - end: self.periodEnd) + end: self.periodEnd, + isPartial: !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals) .frame(maxWidth: .infinity) .padding(.top, 24) Spacer(minLength: 10) HStack { - Text("DAILY TOKEN ACTIVITY") + Text(self.payload.dailyCoverageIsComplete ? "DAILY TOKEN ACTIVITY" : "KNOWN DAILY ACTIVITY") Spacer() Text(self.sourceCoverage) } @@ -283,19 +310,35 @@ private struct ShareStatsActivity: View { } private var activeDayCount: Int { - self.payload.dailyTokens.count { $0.totalTokens > 0 } + self.payload.dailyTokens.count { ($0.totalTokens ?? 0) > 0 } + } + + private var activeDayHeadline: String { + guard self.payload.dailySourceCount > 0 else { return "—" } + let isLowerBound = !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals + return isLowerBound ? "≥\(self.activeDayCount)" : "\(self.activeDayCount)" + } + + private var activeDayLabel: String { + !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals + ? "known active days" + : "days active" } private var sourceCoverage: String { guard self.payload.dailySourceCount > 0 else { return "NO SOURCE DATA" } - return "\(self.payload.dailySourceCount) OF \(self.payload.providers.count) SOURCES" + if self.payload.dailyCoverageIsComplete { + return "FULL · \(self.payload.dailySourceCount) OF \(self.payload.providers.count) SOURCES" + } + return "PARTIAL · \(self.payload.dailyFullSourceCount) OF \(self.payload.providers.count) FULL" } private var calendarCells: [ShareStatsCalendarCell] { - let dailyTokens = Dictionary(uniqueKeysWithValues: self.payload.dailyTokens.map { - (self.calendar.startOfDay(for: $0.day), $0.totalTokens) - }) - let maximum = dailyTokens.values.max() ?? 0 + var dailyTokens: [Date: ShareStatsDailyPayload] = [:] + for point in self.payload.dailyTokens { + dailyTokens[self.calendar.startOfDay(for: point.day)] = point + } + let maximum = dailyTokens.values.compactMap(\.totalTokens).max() ?? 0 let leadingCount = max(0, self.calendar.component(.weekday, from: self.periodStart) - 1) let requiredCount = leadingCount + self.payload.days let totalCount = Int(ceil(Double(requiredCount) / 7.0)) * 7 @@ -306,12 +349,18 @@ private struct ShareStatsActivity: View { dayOffset < self.payload.days, let day = self.calendar.date(byAdding: .day, value: dayOffset, to: self.periodStart) else { - return ShareStatsCalendarCell(id: index, level: nil) + return ShareStatsCalendarCell(id: index, level: nil, isUnavailable: false) + } + let normalizedDay = self.calendar.startOfDay(for: day) + let tokens: Int? = if let recordedPoint = dailyTokens[normalizedDay] { + recordedPoint.totalTokens + } else { + self.payload.dailyCoverageIsComplete ? 0 : nil } - let tokens = dailyTokens[self.calendar.startOfDay(for: day)] ?? 0 return ShareStatsCalendarCell( id: index, - level: ShareStatsCardView.activityLevel(totalTokens: tokens, maximum: maximum)) + level: tokens.map { ShareStatsCardView.activityLevel(totalTokens: $0, maximum: maximum) }, + isUnavailable: tokens == nil) } } } @@ -319,12 +368,14 @@ private struct ShareStatsActivity: View { private struct ShareStatsCalendarCell: Identifiable { let id: Int let level: Int? + let isUnavailable: Bool } private struct ShareStatsCalendar: View { let cells: [ShareStatsCalendarCell] let start: Date let end: Date + let isPartial: Bool private var weeks: [[ShareStatsCalendarCell]] { stride(from: 0, to: self.cells.count, by: 7).map { startIndex in @@ -348,9 +399,14 @@ private struct ShareStatsCalendar: View { VStack(spacing: 8) { ForEach(week) { cell in RoundedRectangle(cornerRadius: 6) - .fill(ShareStatsBrand.activity(level: cell.level)) + .fill(cell.isUnavailable + ? Color.white.opacity(0.025) + : ShareStatsBrand.activity(level: cell.level)) .overlay { - if cell.level != nil { + if cell.isUnavailable { + RoundedRectangle(cornerRadius: 6) + .stroke(Color.white.opacity(0.16), lineWidth: 1) + } else if cell.level != nil { RoundedRectangle(cornerRadius: 6) .stroke(Color.white.opacity(0.10), lineWidth: 1) } @@ -374,10 +430,20 @@ private struct ShareStatsCalendar: View { .frame(width: self.gridWidth) HStack(spacing: 4) { + if self.isPartial { + RoundedRectangle(cornerRadius: 2) + .fill(Color.white.opacity(0.025)) + .overlay { + RoundedRectangle(cornerRadius: 2) + .stroke(Color.white.opacity(0.16), lineWidth: 1) + } + .frame(width: 11, height: 11) + Text("Unknown") + } Text("Less") - ForEach(0..<4, id: \.self) { index in + ForEach(0...5, id: \.self) { level in RoundedRectangle(cornerRadius: 2) - .fill(ShareStatsBrand.activity(level: index == 0 ? 0 : index + 1)) + .fill(ShareStatsBrand.activity(level: level)) .overlay { RoundedRectangle(cornerRadius: 2) .stroke(Color.white.opacity(0.10), lineWidth: 1) @@ -441,7 +507,13 @@ private struct ShareStatsBrandBackground: View { } } +@MainActor private enum ShareStatsBrand { + static let appIcon: NSImage = Bundle.module + .url(forResource: "Icon-classic", withExtension: "icns") + .flatMap(NSImage.init(contentsOf:)) + ?? NSApplication.shared.applicationIconImage + static let canvas = Color(red: 10.0 / 255.0, green: 10.0 / 255.0, blue: 12.0 / 255.0) static let surface = Color(red: 19.0 / 255.0, green: 20.0 / 255.0, blue: 24.0 / 255.0) static let primary = Color(red: 240.0 / 255.0, green: 240.0 / 255.0, blue: 243.0 / 255.0) diff --git a/Sources/CodexBar/ShareStatsPayload.swift b/Sources/CodexBar/ShareStatsPayload.swift index f907192deb..2da25736ac 100644 --- a/Sources/CodexBar/ShareStatsPayload.swift +++ b/Sources/CodexBar/ShareStatsPayload.swift @@ -2,6 +2,7 @@ import CodexBarCore import Foundation struct ShareStatsProviderPayload: Sendable, Equatable { + let sourceID: String let provider: UsageProvider let providerName: String let subscriptionName: String? @@ -12,8 +13,10 @@ struct ShareStatsProviderPayload: Sendable, Equatable { } struct ShareStatsModelPayload: Sendable, Equatable { + let sourceID: String let provider: UsageProvider let providerName: String + let sourceName: String let modelName: String let currencyCode: String let totalTokens: Int? @@ -21,8 +24,10 @@ struct ShareStatsModelPayload: Sendable, Equatable { } private struct ShareStatsModelFamilyKey: Hashable { + let sourceID: String let provider: UsageProvider let providerName: String + let sourceName: String let modelName: String let currencyCode: String } @@ -72,8 +77,10 @@ private struct ShareStatsModelFamilyAccumulator { let estimatedCost = self.costIncomplete ? nil : self.estimatedCost guard totalTokens != nil || estimatedCost != nil else { return nil } return ShareStatsModelPayload( + sourceID: self.key.sourceID, provider: self.key.provider, providerName: self.key.providerName, + sourceName: self.key.sourceName, modelName: self.key.modelName, currencyCode: self.key.currencyCode, totalTokens: totalTokens, @@ -85,6 +92,8 @@ struct ShareStatsCurrencyPayload: Sendable, Equatable, Identifiable { let currencyCode: String let estimatedCost: Double? let coveredDayCount: Int + let pricedSourceCount: Int + let sourceCount: Int var id: String { self.currencyCode @@ -93,7 +102,7 @@ struct ShareStatsCurrencyPayload: Sendable, Equatable, Identifiable { struct ShareStatsDailyPayload: Sendable, Equatable, Identifiable { let day: Date - let totalTokens: Int + let totalTokens: Int? var id: Date { self.day @@ -108,12 +117,28 @@ struct ShareStatsPayload: Sendable, Equatable { let currencies: [ShareStatsCurrencyPayload] let dailyTokens: [ShareStatsDailyPayload] let dailySourceCount: Int + let dailyFullSourceCount: Int + let modelRouteCount: Int + let shareableModelRouteCount: Int + let hiddenModelRouteCount: Int + let modelRouteCoverageIsComplete: Bool let totalTokens: Int? + let tokenSourceCount: Int + + var dailyCoverageIsComplete: Bool { + !self.providers.isEmpty && self.dailyFullSourceCount == self.providers.count + } + + var tokenCoverageIsComplete: Bool { + self.totalTokens != nil && self.tokenSourceCount == self.providers.count + } + + var hasUnavailableDailyTotals: Bool { + self.dailyTokens.contains { $0.totalTokens == nil } + } var hasShareableData: Bool { - !self.providers.isEmpty && self.providers.contains { provider in - provider.totalTokens != nil || provider.estimatedCost != nil - } + !self.providers.isEmpty && self.providers.contains { $0.totalTokens != nil } } } @@ -245,6 +270,11 @@ struct ShareStatsSubscriptionName: Sendable, Equatable { enum ShareStatsSanitizer { static func modelName(_ rawValue: String) -> String? { + if rawValue.trimmingCharacters(in: .whitespacesAndNewlines) + .localizedCaseInsensitiveCompare("Fable") == .orderedSame + { + return "Fable" + } guard let value = self.safeLabel( rawValue, maximumLength: 72, @@ -252,44 +282,148 @@ enum ShareStatsSanitizer { requireModelShape: true) else { return nil } - let normalized = value.lowercased() + var normalized = value.lowercased() + let pathParts = normalized.split(separator: "/", omittingEmptySubsequences: false) + if pathParts.count == 2 { + let publicPublishers: Set = [ + "alibaba", "amazon", "anthropic", "cohere", "deepseek", "fable", "google", + "meta-llama", "microsoft", "minimax", "mistralai", "moonshotai", "openai", + "perplexity", "qwen", "x-ai", "z-ai", + ] + guard publicPublishers.contains(String(pathParts[0])), !pathParts[1].isEmpty else { return nil } + normalized = String(pathParts[1]) + } else if pathParts.count > 1 { + return nil + } let regionalPrefixes = ["us.", "eu.", "apac.", "global."] let familyName = regionalPrefixes.first { normalized.hasPrefix($0) }.map { String(normalized.dropFirst($0.count)) } ?? normalized - let publicModelFamilies: [(prefixes: [String], label: String)] = [ - (["amazon.nova-", "nova-"], "Amazon Nova"), - (["anthropic.claude-", "claude-", "claude "], "Claude"), - (["chatgpt-", "gpt-"], "GPT"), - (["codex-"], "Codex"), - (["command-"], "Command"), - (["dall-e-"], "DALL-E"), - (["deepseek-"], "DeepSeek"), - (["codestral-", "devstral-", "magistral-", "mistral-", "mistral ", "mistral.", "mixtral-"], "Mistral"), - (["gemma-"], "Gemma"), - (["google.gemini-", "gemini-", "gemini "], "Gemini"), - (["glm-"], "GLM"), - (["grok-"], "Grok"), - (["kimi-", "moonshot-"], "Kimi"), - (["meta.llama", "llama-", "llama "], "Llama"), - (["minimax-"], "MiniMax"), - (["o1"], "o1"), - (["o3"], "o3"), - (["o4"], "o4"), - (["phi-"], "Phi"), - (["qwen"], "Qwen"), - (["sonar-"], "Sonar"), - (["text-embedding-"], "OpenAI Embeddings"), - (["tts-"], "OpenAI TTS"), - (["whisper-"], "Whisper"), + guard !familyName.contains("://"), !familyName.contains("\\"), !familyName.contains("/") else { return nil } + + if let suffix = self.suffix(in: familyName, after: ["chatgpt-", "gpt-"]), + let canonical = self.canonicalSuffix( + suffix, + allowedStarts: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]) + { + return "GPT-\(self.prettySuffix(canonical))" + } + if let suffix = self.suffix(in: familyName, after: ["anthropic.claude-", "claude-", "claude "]), + let canonical = self.canonicalSuffix( + suffix, + allowedStarts: ["opus", "sonnet", "haiku", "instant", "1", "2", "3", "4", "5", "6", "7", "8", "9"]) + { + return "Claude \(self.prettySuffix(canonical))" + } + + let families: [(prefixes: [String], label: String, allowedStarts: [String])] = [ + ( + ["amazon.nova-", "nova-"], + "Amazon Nova", + ["lite", "micro", "pro", "premier", "canvas", "reel", "sonic", "1", "2", "3", "4", "5"]), + (["codex-"], "Codex", ["mini", "max", "1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["command-"], "Command", ["a", "r", "light", "nightly"]), + (["dall-e-"], "DALL-E", ["2", "3"]), + (["deepseek-"], "DeepSeek", ["r", "v", "chat", "coder"]), + (["fable-"], "Fable", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["gemma-"], "Gemma", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["google.gemini-", "gemini-", "gemini "], "Gemini", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["glm-"], "GLM", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["grok-"], "Grok", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["kimi-", "moonshot-"], "Kimi", ["k", "1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["meta.llama", "llama-", "llama "], "Llama", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["minimax-"], "MiniMax", ["m", "text", "speech", "video", "image", "1", "2", "3"]), + (["phi-"], "Phi", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["qwen"], "Qwen", ["1", "2", "3", "4", "5", "6", "7", "8", "9"]), + (["sonar-"], "Sonar", ["small", "medium", "large", "pro", "reasoning", "deep"]), ] - guard !normalized.contains("://"), - !normalized.contains("/"), - !normalized.contains("\\") + for family in families { + guard let suffix = self.suffix(in: familyName, after: family.prefixes), + let canonical = self.canonicalSuffix(suffix, allowedStarts: family.allowedStarts) + else { continue } + return "\(family.label) \(self.prettySuffix(canonical))" + } + + for base in ["o1", "o3", "o4"] where familyName.hasPrefix(base) { + let tail = String(familyName.dropFirst(base.count)) + guard tail.isEmpty else { + guard tail.hasPrefix("-"), + let canonical = self.canonicalSuffix( + String(tail.dropFirst()), + allowedStarts: ["mini", "pro", "preview"]) + else { return base.uppercased() } + return "\(base.uppercased()) \(self.prettySuffix(canonical))" + } + return base.uppercased() + } + if let suffix = self.suffix(in: familyName, after: [ + "codestral-", "devstral-", "magistral-", "mistral-", "mistral ", "mistral.", "mixtral-", + ]), let canonical = self.canonicalSuffix( + suffix, + allowedStarts: ["small", "medium", "large", "1", "2", "3", "4", "5", "6", "7", "8", "9"]) + { + return "Mistral \(self.prettySuffix(canonical))" + } + if let suffix = self.suffix(in: familyName, after: ["text-embedding-"]), + let canonical = self.canonicalSuffix( + suffix, + allowedStarts: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]) + { + return "OpenAI Embeddings \(self.prettySuffix(canonical))" + } + if let suffix = self.suffix(in: familyName, after: ["tts-", "whisper-"]), + let canonical = self.canonicalSuffix( + suffix, + allowedStarts: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "large", "turbo"]) + { + return familyName.hasPrefix("tts-") + ? "OpenAI TTS \(self.prettySuffix(canonical))" + : "Whisper \(self.prettySuffix(canonical))" + } + return nil + } + + private static func suffix(in value: String, after prefixes: [String]) -> String? { + guard let prefix = prefixes.first(where: value.hasPrefix) else { return nil } + let suffix = String(value.dropFirst(prefix.count)) + return suffix.isEmpty ? nil : suffix + } + + private static func canonicalSuffix(_ value: String, allowedStarts: [String]) -> String? { + let parts = value + .replacingOccurrences(of: "_", with: "-") + .split(separator: "-") + .map(String.init) + guard let first = parts.first, + allowedStarts.contains(where: first.hasPrefix) else { return nil } - return publicModelFamilies.first { family in - family.prefixes.contains(where: familyName.hasPrefix) - }?.label + + let publicQualifiers: Set = [ + "a", "air", "canvas", "chat", "coder", "deep", "flash", "image", "instruct", + "large", "lite", "max", "medium", "micro", "mini", "nano", "nightly", "plus", + "premier", "preview", "pro", "r", "reasoning", "reel", "small", "sonic", "speech", + "text", "thinking", "turbo", "video", + ] + var canonical = [first] + for part in parts.dropFirst().prefix(4) { + let isVersion = part.range( + of: #"^(?:[vkr]?\d+(?:\.\d+)*(?::\d+)?|\d{8})$"#, + options: .regularExpression) != nil + guard isVersion || publicQualifiers.contains(part) else { break } + canonical.append(part) + } + return canonical.joined(separator: "-") + } + + private static func prettySuffix(_ value: String) -> String { + value + .replacingOccurrences(of: "_", with: "-") + .split(separator: "-") + .map { part in + let value = String(part) + return value.count <= 3 ? value.uppercased() : value.capitalized + } + .joined(separator: " ") } private static func safeLabel( @@ -328,11 +462,14 @@ enum ShareStatsBuilder { model: SpendDashboardModel, subscriptionNames: [String: ShareStatsSubscriptionName] = [:]) -> ShareStatsPayload? { + let sourceLabels = self.publicSourceLabels(model: model) let providers = model.groups.flatMap { group in group.providers.map { row in ShareStatsProviderPayload( + sourceID: row.id, provider: row.provider, - providerName: row.displayName, + providerName: sourceLabels[row.id] + ?? ProviderDescriptorRegistry.descriptor(for: row.provider).metadata.displayName, subscriptionName: subscriptionNames[row.id]?.displayName, currencyCode: group.currencyCode, totalTokens: row.totalTokens, @@ -340,28 +477,32 @@ enum ShareStatsBuilder { coveredDayCount: row.coveredDayCount) } } - let sanitizedModels = model.groups.filter { - $0.modelHistoryCompleteness == .complete - }.flatMap { group in - group.models.compactMap { row -> ShareStatsModelPayload? in - let estimatedCost = self.finiteCost(row.totalCost) - guard let modelName = ShareStatsSanitizer.modelName(row.modelName), - row.totalTokens != nil - else { return nil } - return ShareStatsModelPayload( - provider: row.provider, - providerName: row.providerName, - modelName: modelName, - currencyCode: group.currencyCode, - totalTokens: row.totalTokens, - estimatedCost: estimatedCost) - } + let observedModels = model.groups.flatMap { group in + group.tokenModels.map { (currencyCode: group.currencyCode, row: $0) } + } + let sanitizedModels = observedModels.compactMap { entry -> ShareStatsModelPayload? in + let row = entry.row + let estimatedCost = self.finiteCost(row.totalCost) + guard let modelName = ShareStatsSanitizer.modelName(row.modelName), + row.totalTokens != nil + else { return nil } + return ShareStatsModelPayload( + sourceID: row.sourceID, + provider: row.provider, + providerName: row.providerName, + sourceName: sourceLabels[row.sourceID] ?? row.providerName, + modelName: modelName, + currencyCode: entry.currencyCode, + totalTokens: row.totalTokens, + estimatedCost: estimatedCost) } var modelFamilies: [ShareStatsModelFamilyKey: ShareStatsModelFamilyAccumulator] = [:] for row in sanitizedModels { let key = ShareStatsModelFamilyKey( + sourceID: row.sourceID, provider: row.provider, providerName: row.providerName, + sourceName: row.sourceName, modelName: row.modelName, currencyCode: row.currencyCode) if var existing = modelFamilies[key] { @@ -377,38 +518,44 @@ enum ShareStatsBuilder { case (_?, nil): return true case (nil, _?): return false default: - if lhs.providerName != rhs.providerName { - return lhs.providerName < rhs.providerName + if lhs.sourceName != rhs.sourceName { + return lhs.sourceName < rhs.sourceName } return lhs.modelName < rhs.modelName } } - let currencies = model.groups.map { - ShareStatsCurrencyPayload( - currencyCode: $0.currencyCode, - estimatedCost: self.finiteCost($0.totalCost), - coveredDayCount: $0.coveredDayCount) + let currencies = model.groups.map { group in + let knownCosts = group.providers.compactMap { self.finiteCost($0.totalCost) } + return ShareStatsCurrencyPayload( + currencyCode: group.currencyCode, + estimatedCost: knownCosts.isEmpty ? nil : self.combinedKnownCost(knownCosts), + coveredDayCount: group.coveredDayCount, + pricedSourceCount: knownCosts.count, + sourceCount: group.providers.count) } let dailyPoints = model.groups.flatMap(\.dailyTokenPoints) let dailyPointsByDay = Dictionary(grouping: dailyPoints, by: \.day) let dailyTokens = dailyPointsByDay .keys .sorted() - .compactMap { day -> ShareStatsDailyPayload? in - guard let points = dailyPointsByDay[day], - let total = self.combinedTotalTokens(points.map { Optional($0.tokens) }) - else { return nil } + .map { day -> ShareStatsDailyPayload in + let points = dailyPointsByDay[day] ?? [] + let total = self.combinedTotalTokens(points.map { Optional($0.tokens) }) return ShareStatsDailyPayload(day: day, totalTokens: total) } - let dailySourceCount = Set(dailyPoints.map(\.sourceID)).count - let totalTokens = self.combinedTotalTokens(model.groups.map(\.totalTokens)) - let periodEnd = dailyTokens.map(\.day).max() - ?? model.groups.map { group in - let bounds = group.chartDomain - return bounds.lowerBound < bounds.upperBound - ? bounds.upperBound.addingTimeInterval(-1) - : bounds.upperBound - }.max() + let dailySourceCount = providers.count { $0.totalTokens != nil } + let dailyFullSourceCount = providers.count { + $0.totalTokens != nil && $0.coveredDayCount >= model.requestedDays + } + let knownTokenTotals = providers.compactMap(\.totalTokens) + let totalTokens = knownTokenTotals.isEmpty ? nil : self.combinedTotalTokens(knownTokenTotals.map(Optional.some)) + let periodEnd = model.groups.map { group in + let bounds = group.chartDomain + return bounds.lowerBound < bounds.upperBound + ? Calendar.current.date(byAdding: .day, value: -1, to: bounds.upperBound) + ?? bounds.upperBound + : bounds.upperBound + }.max() ?? Date() let payload = ShareStatsPayload( days: model.requestedDays, @@ -418,15 +565,46 @@ enum ShareStatsBuilder { currencies: currencies, dailyTokens: dailyTokens, dailySourceCount: dailySourceCount, - totalTokens: totalTokens) + dailyFullSourceCount: dailyFullSourceCount, + modelRouteCount: observedModels.count, + shareableModelRouteCount: sanitizedModels.count, + hiddenModelRouteCount: observedModels.count - sanitizedModels.count, + modelRouteCoverageIsComplete: model.groups.allSatisfy { + $0.modelTokenHistoryCompleteness == .complete + }, + totalTokens: totalTokens, + tokenSourceCount: knownTokenTotals.count) return payload.hasShareableData ? payload : nil } + private static func publicSourceLabels(model: SpendDashboardModel) -> [String: String] { + let rows = model.groups.flatMap(\.providers) + let rowsByProvider = Dictionary(grouping: rows, by: \.provider) + var labels: [String: String] = [:] + for (provider, providerRows) in rowsByProvider { + let baseName = ProviderDescriptorRegistry.descriptor(for: provider).metadata.displayName + let sortedRows = providerRows.sorted { $0.id < $1.id } + for (index, row) in sortedRows.enumerated() { + labels[row.id] = sortedRows.count == 1 ? baseName : "\(baseName) #\(index + 1)" + } + } + return labels + } + private static func finiteCost(_ value: Double?) -> Double? { guard let value, value.isFinite, value >= 0 else { return nil } return value } + private static func combinedKnownCost(_ values: [Double]) -> Double? { + var total = 0.0 + for value in values { + total += value + guard total.isFinite else { return nil } + } + return total + } + static func combinedTotalTokens(_ values: [Int?]) -> Int? { var total = 0 for value in values { @@ -484,14 +662,21 @@ enum ShareStatsFormatting { static func text(_ payload: ShareStatsPayload) -> String { var lines = ["You kept the models busy · last \(payload.days) days"] if let tokens = payload.totalTokens { - lines.append("\(self.compactCount(tokens)) tracked tokens") + let qualifier = payload.tokenCoverageIsComplete ? "" : "at least " + lines.append("\(qualifier)\(self.compactCount(tokens)) tracked tokens") } if !payload.dailyTokens.isEmpty { - let activeDays = payload.dailyTokens.count { $0.totalTokens > 0 } - lines.append("\(activeDays) of \(payload.days) days active") + let activeDays = payload.dailyTokens.count { ($0.totalTokens ?? 0) > 0 } + let qualifier = payload.dailyCoverageIsComplete && !payload.hasUnavailableDailyTotals ? "" : "at least " + lines.append("\(qualifier)\(activeDays) of \(payload.days) days active") } let pricedCurrencies = payload.currencies.compactMap { currency in - currency.estimatedCost.map { self.currency($0, code: currency.currencyCode) } + currency.estimatedCost.map { cost in + let value = self.currency(cost, code: currency.currencyCode) + let isPartial = currency.pricedSourceCount < currency.sourceCount + || currency.coveredDayCount < payload.days + return isPartial ? "≥\(value)" : value + } } let pricedSourceCount = payload.providers.count { $0.estimatedCost != nil } if !pricedCurrencies.isEmpty { @@ -500,13 +685,19 @@ enum ShareStatsFormatting { + " · pricing for \(pricedSourceCount) of \(payload.providers.count) sources") } if !payload.topModels.isEmpty { - lines.append("Top model + source pairs:") + lines.append("Top model routes:") lines.append(contentsOf: payload.topModels.prefix(3).map { model in - "\(model.modelName) · \(model.providerName)" + "\(model.modelName) via \(model.sourceName)" }) - let hiddenCount = payload.topModels.count - min(3, payload.topModels.count) - if hiddenCount > 0 { - lines.append("+\(hiddenCount) more") + let overflowCount = payload.topModels.count - min(3, payload.topModels.count) + if overflowCount > 0 { + lines.append("+\(overflowCount) more safe route summaries") + } + if payload.hiddenModelRouteCount > 0 { + lines.append("\(payload.hiddenModelRouteCount) private route names omitted") + } + if !payload.modelRouteCoverageIsComplete { + lines.append("Model route history is partial") } } lines.append("\(payload.providers.count) sources tracked") diff --git a/Sources/CodexBar/ShareStatsRenderer.swift b/Sources/CodexBar/ShareStatsRenderer.swift index 02e57bbfe4..20683101fa 100644 --- a/Sources/CodexBar/ShareStatsRenderer.swift +++ b/Sources/CodexBar/ShareStatsRenderer.swift @@ -3,16 +3,20 @@ import SwiftUI @MainActor enum ShareStatsRenderer { - static func pngData(for payload: ShareStatsPayload) -> Data? { - let size = ShareStatsCardView.size + static func pngData( + for payload: ShareStatsPayload, + pixelSize: CGSize = ShareStatsCardView.size) -> Data? + { + let logicalSize = ShareStatsCardView.size + guard pixelSize.width > 0, pixelSize.height > 0 else { return nil } let view = NSHostingView(rootView: ShareStatsCardView(payload: payload)) - view.frame = CGRect(origin: .zero, size: size) + view.frame = CGRect(origin: .zero, size: logicalSize) view.layoutSubtreeIfNeeded() guard let representation = NSBitmapImageRep( bitmapDataPlanes: nil, - pixelsWide: Int(size.width), - pixelsHigh: Int(size.height), + pixelsWide: Int(pixelSize.width.rounded()), + pixelsHigh: Int(pixelSize.height.rounded()), bitsPerSample: 8, samplesPerPixel: 4, hasAlpha: true, @@ -21,7 +25,7 @@ enum ShareStatsRenderer { bytesPerRow: 0, bitsPerPixel: 0) else { return nil } - representation.size = size + representation.size = logicalSize guard let context = NSGraphicsContext(bitmapImageRep: representation) else { return nil } view.displayIgnoringOpacity(view.bounds, in: context) return representation.representation(using: .png, properties: [:]) diff --git a/Sources/CodexBar/SpendDashboardModel.swift b/Sources/CodexBar/SpendDashboardModel.swift index 70bb1c1b58..7fcf29b1b1 100644 --- a/Sources/CodexBar/SpendDashboardModel.swift +++ b/Sources/CodexBar/SpendDashboardModel.swift @@ -35,15 +35,42 @@ struct SpendDashboardModel: Equatable, Sendable { } struct ModelRow: Identifiable, Equatable, Sendable { + struct ID: Hashable, Sendable { + let sourceID: String + let modelName: String + } + + let sourceID: String let rank: Int let provider: UsageProvider let providerName: String + let sourceName: String let modelName: String let totalTokens: Int? let totalCost: Double? - var id: String { - "\(self.provider.rawValue):\(self.modelName)" + init( + sourceID: String? = nil, + rank: Int, + provider: UsageProvider, + providerName: String, + sourceName: String? = nil, + modelName: String, + totalTokens: Int?, + totalCost: Double?) + { + self.sourceID = sourceID ?? provider.rawValue + self.rank = rank + self.provider = provider + self.providerName = providerName + self.sourceName = sourceName ?? providerName + self.modelName = modelName + self.totalTokens = totalTokens + self.totalCost = totalCost + } + + var id: ID { + ID(sourceID: self.sourceID, modelName: self.modelName) } } @@ -82,6 +109,7 @@ struct SpendDashboardModel: Equatable, Sendable { let currencyCode: String let providers: [ProviderRow] let models: [ModelRow] + let tokenModels: [ModelRow] let dailyPoints: [DailyPoint] let dailyTokenPoints: [DailyTokenPoint] let totalTokens: Int? @@ -89,6 +117,35 @@ struct SpendDashboardModel: Equatable, Sendable { let coveredDayCount: Int let chartDomain: ClosedRange let modelHistoryCompleteness: ModelHistoryCompleteness + let modelTokenHistoryCompleteness: ModelHistoryCompleteness + + init( + currencyCode: String, + providers: [ProviderRow], + models: [ModelRow], + tokenModels: [ModelRow]? = nil, + dailyPoints: [DailyPoint], + dailyTokenPoints: [DailyTokenPoint], + totalTokens: Int?, + totalCost: Double?, + coveredDayCount: Int, + chartDomain: ClosedRange, + modelHistoryCompleteness: ModelHistoryCompleteness, + modelTokenHistoryCompleteness: ModelHistoryCompleteness? = nil) + { + self.currencyCode = currencyCode + self.providers = providers + self.models = models + self.tokenModels = tokenModels ?? models + self.dailyPoints = dailyPoints + self.dailyTokenPoints = dailyTokenPoints + self.totalTokens = totalTokens + self.totalCost = totalCost + self.coveredDayCount = coveredDayCount + self.chartDomain = chartDomain + self.modelHistoryCompleteness = modelHistoryCompleteness + self.modelTokenHistoryCompleteness = modelTokenHistoryCompleteness ?? modelHistoryCompleteness + } var id: String { self.currencyCode @@ -139,12 +196,14 @@ struct SpendDashboardModel: Equatable, Sendable { } private struct ModelKey: Hashable { - let provider: UsageProvider + let sourceID: String let modelName: String } private struct ModelAccumulator { + let provider: UsageProvider let providerName: String + let sourceName: String var tokens: Int? var cost: Double? var sawTokens = false @@ -193,27 +252,30 @@ struct SpendDashboardModel: Equatable, Sendable { Self.inputSummary(input: input, bounds: bounds, calendar: calendar) } let providers = Self.providerRows(summaries) - let completeModelSummaries = summaries.filter { summary in + let completeCostModelSummaries = summaries.filter { summary in guard summary.totalCost != nil else { return false } - return Self.modelSummary(summaries: [summary]).completeness == .complete + return Self.costModelSummary(summaries: [summary]).completeness == .complete } - let modelSummary = Self.modelSummary(summaries: completeModelSummaries) - let modelHistoryCompleteness = completeModelSummaries.count == summaries.count + let costModelSummary = Self.costModelSummary(summaries: completeCostModelSummaries) + let modelHistoryCompleteness = completeCostModelSummaries.count == summaries.count ? ModelHistoryCompleteness.complete : ModelHistoryCompleteness.incomplete + let tokenModelSummary = Self.tokenModelSummary(summaries: summaries) let dailyPoints = Self.dailyPoints(summaries: summaries) let dailyTokenPoints = Self.dailyTokenPoints(summaries: summaries) return CurrencyGroup( currencyCode: currencyCode, providers: providers, - models: modelSummary.rows, + models: costModelSummary.rows, + tokenModels: tokenModelSummary.rows, dailyPoints: dailyPoints, dailyTokenPoints: dailyTokenPoints, totalTokens: Self.completeIntSum(providers.map(\.totalTokens)), totalCost: Self.completeCostSum(providers.map(\.totalCost)), coveredDayCount: Self.commonCoverageDayCount(summaries: summaries, calendar: calendar), chartDomain: Self.chartDomain(bounds: bounds, calendar: calendar), - modelHistoryCompleteness: modelHistoryCompleteness) + modelHistoryCompleteness: modelHistoryCompleteness, + modelTokenHistoryCompleteness: tokenModelSummary.completeness) } private static func inputSummary( @@ -290,8 +352,10 @@ struct SpendDashboardModel: Equatable, Sendable { coveredDayCount: entry.element.coveredDayCount) } } +} - private static func modelSummary(summaries: [InputSummary]) -> ModelSummary { +extension SpendDashboardModel { + private static func costModelSummary(summaries: [InputSummary]) -> ModelSummary { var aggregates: [ModelKey: ModelAccumulator] = [:] var completeness = ModelHistoryCompleteness.complete for summary in summaries { @@ -308,9 +372,11 @@ struct SpendDashboardModel: Equatable, Sendable { for breakdown in breakdowns { let name = breakdown.modelName.trimmingCharacters(in: .whitespacesAndNewlines) guard !name.isEmpty else { continue } - let key = ModelKey(provider: input.provider, modelName: name) + let key = ModelKey(sourceID: input.id, modelName: name) var aggregate = aggregates[key] ?? ModelAccumulator( + provider: input.provider, providerName: input.modelProviderName, + sourceName: input.displayName, tokens: 0, cost: 0) if hasCompleteTokenHistory, @@ -339,12 +405,78 @@ struct SpendDashboardModel: Equatable, Sendable { }) { completeness = .incomplete } + return ModelSummary( + rows: self.modelRows(aggregates: aggregates), + completeness: completeness) + } - let rows = aggregates.map { key, value in + private static func tokenModelSummary(summaries: [InputSummary]) -> ModelSummary { + var aggregates: [ModelKey: ModelAccumulator] = [:] + var completeness = ModelHistoryCompleteness.complete + for summary in summaries { + let input = summary.input + let hasCompleteTokenHistory = summary.totalTokens != nil && summary.entries.allSatisfy { + Self.hasCompleteModelTokenCoverage($0.entry) + } + guard hasCompleteTokenHistory else { + completeness = .incomplete + continue + } + let hasCompleteCostHistory = summary.totalCost != nil && summary.entries.allSatisfy { + Self.hasCompleteModelCostCoverage($0.entry) + } + for windowEntry in summary.entries { + let entry = windowEntry.entry + let breakdowns = entry.modelBreakdowns ?? [] + for breakdown in breakdowns { + let name = breakdown.modelName.trimmingCharacters(in: .whitespacesAndNewlines) + guard !name.isEmpty else { continue } + let key = ModelKey(sourceID: input.id, modelName: name) + var aggregate = aggregates[key] ?? ModelAccumulator( + provider: input.provider, + providerName: input.modelProviderName, + sourceName: input.displayName, + tokens: 0, + cost: 0) + if let tokens = Self.nonnegative(breakdown.totalTokens) { + aggregate.sawTokens = true + aggregate.tokens = Self.add( + tokens, + to: aggregate.tokens, + overflowed: &aggregate.overflowedTokens) + } else { + aggregate.invalidTokens = true + } + if hasCompleteCostHistory, + let cost = Self.validCost(breakdown.costUSD) + { + aggregate.sawCost = true + aggregate.cost = Self.add(cost, to: aggregate.cost, overflowed: &aggregate.overflowedCost) + } else { + aggregate.invalidCost = true + } + aggregates[key] = aggregate + } + } + } + if aggregates.values.contains(where: { + !$0.sawTokens || $0.invalidTokens || $0.overflowedTokens || $0.tokens == nil + }) { + completeness = .incomplete + } + return ModelSummary( + rows: self.modelRows(aggregates: aggregates), + completeness: completeness) + } + + private static func modelRows(aggregates: [ModelKey: ModelAccumulator]) -> [ModelRow] { + aggregates.map { key, value in ModelRow( + sourceID: key.sourceID, rank: 0, - provider: key.provider, + provider: value.provider, providerName: value.providerName, + sourceName: value.sourceName, modelName: key.modelName, totalTokens: value.sawTokens && !value.invalidTokens && !value.overflowedTokens ? value.tokens : nil, totalCost: value.sawCost && !value.invalidCost && !value.overflowedCost ? value.cost : nil) @@ -364,14 +496,15 @@ struct SpendDashboardModel: Equatable, Sendable { .enumerated() .map { rank, row in ModelRow( + sourceID: row.sourceID, rank: rank + 1, provider: row.provider, providerName: row.providerName, + sourceName: row.sourceName, modelName: row.modelName, totalTokens: row.totalTokens, totalCost: row.totalCost) } - return ModelSummary(rows: rows, completeness: completeness) } private static func hasProvenZeroCost(_ entry: CostUsageDailyReport.Entry) -> Bool { diff --git a/Tests/CodexBarTests/ShareStatsTests.swift b/Tests/CodexBarTests/ShareStatsTests.swift index 5cba6d1faa..bc7aaf3ce2 100644 --- a/Tests/CodexBarTests/ShareStatsTests.swift +++ b/Tests/CodexBarTests/ShareStatsTests.swift @@ -5,6 +5,15 @@ import Testing @testable import CodexBar struct ShareStatsTests { + private struct ProofSource { + let id: String + let provider: UsageProvider + let name: String + let model: String + let tokens: Int + let cost: Double + } + @Test func `builder preserves native currencies and unavailable spend`() throws { let subscriptionNames = try [ @@ -17,24 +26,37 @@ struct ShareStatsTests { subscriptionNames: subscriptionNames)) #expect(payload.days == 30) - #expect(payload.totalTokens == nil) + #expect(payload.totalTokens == 500) + #expect(payload.tokenSourceCount == 2) + #expect(!payload.tokenCoverageIsComplete) #expect(payload.currencies == [ - ShareStatsCurrencyPayload(currencyCode: "GBP", estimatedCost: 12, coveredDayCount: 10), - ShareStatsCurrencyPayload(currencyCode: "USD", estimatedCost: nil, coveredDayCount: 0), + ShareStatsCurrencyPayload( + currencyCode: "GBP", + estimatedCost: 12, + coveredDayCount: 10, + pricedSourceCount: 1, + sourceCount: 1), + ShareStatsCurrencyPayload( + currencyCode: "USD", + estimatedCost: 4, + coveredDayCount: 0, + pricedSourceCount: 1, + sourceCount: 2), ]) - #expect(payload.providers.map(\.providerName) == ["Claude", "Codex · #1", "Cursor"]) + #expect(payload.providers.map(\.providerName) == ["Claude", "Codex", "Cursor"]) #expect(payload.providers.map(\.subscriptionName) == ["Max", "Pro 20x", "Cursor Pro"]) #expect(payload.providers.last?.estimatedCost == nil) - #expect(payload.topModels.map(\.modelName).prefix(2) == ["Claude", "GPT"]) + #expect(payload.topModels.map(\.modelName).prefix(2) == ["Claude Sonnet 4", "GPT-5.4"]) #expect(payload.dailyTokens == [ShareStatsDailyPayload(day: Self.date, totalTokens: 500)]) #expect(payload.dailySourceCount == 2) + #expect(!payload.dailyCoverageIsComplete) let text = ShareStatsFormatting.text(payload) #expect(text.contains("You kept the models busy · last 30 days")) - #expect(text.contains("1 of 30 days active")) - #expect(text.contains("Estimated token spend: £12.00 · pricing for 2 of 3 sources")) - #expect(text.contains("Top model + source pairs:")) - #expect(text.contains("Claude · Claude")) + #expect(text.contains("at least 1 of 30 days active")) + #expect(text.contains("Estimated token spend: ≥£12.00 · ≥$4.00 · pricing for 2 of 3 sources")) + #expect(text.contains("Top model routes:")) + #expect(text.contains("Claude Sonnet 4 via Claude")) #expect(text.contains("3 sources tracked")) #expect(text.contains("Aggregated locally by CodexBar · No prompts shared")) #expect(!text.contains("Cursor Pro")) @@ -69,9 +91,12 @@ struct ShareStatsTests { subscriptionNames: subscriptionNames)) let text = ShareStatsFormatting.text(payload) - #expect(payload.topModels.map(\.modelName) == ["Claude", "GPT"]) - #expect(payload.topModels.last?.totalTokens == 400) - #expect(payload.topModels.last?.estimatedCost == 8) + #expect(payload.topModels.map(\.modelName) == ["Claude Sonnet 4", "GPT-5.4"]) + #expect(payload.topModels.last?.totalTokens == 200) + #expect(payload.topModels.last?.estimatedCost == 4) + #expect(payload.modelRouteCount == 11) + #expect(payload.shareableModelRouteCount == 2) + #expect(payload.hiddenModelRouteCount == 9) #expect(payload.providers.map(\.subscriptionName) == ["Max", nil, nil]) #expect(!text.contains("person@example.com")) #expect(!text.contains("/Users/")) @@ -116,8 +141,20 @@ struct ShareStatsTests { @Test func `bedrock regional model identifiers map to public families`() { - #expect(ShareStatsSanitizer.modelName("us.amazon.nova-2-lite-v1:0") == "Amazon Nova") - #expect(ShareStatsSanitizer.modelName("global.anthropic.claude-sonnet-4-v1:0") == "Claude") + #expect(ShareStatsSanitizer.modelName("us.amazon.nova-2-lite-v1:0") == "Amazon Nova 2 Lite V1:0") + #expect(ShareStatsSanitizer.modelName("global.anthropic.claude-sonnet-4-v1:0") == "Claude Sonnet 4 V1:0") + #expect(ShareStatsSanitizer.modelName("anthropic/claude-sonnet-4") == "Claude Sonnet 4") + #expect(ShareStatsSanitizer.modelName("openai/gpt-5.4-mini") == "GPT-5.4 Mini") + #expect(ShareStatsSanitizer.modelName("moonshotai/kimi-k2.5") == "Kimi K2.5") + #expect(ShareStatsSanitizer.modelName("Fable") == "Fable") + } + + @Test + func `public model families truncate private suffixes`() { + #expect(ShareStatsSanitizer.modelName("openai/gpt-5.4-acme-secret") == "GPT-5.4") + #expect(ShareStatsSanitizer.modelName("anthropic/claude-sonnet-4-client-x") == "Claude Sonnet 4") + #expect(ShareStatsSanitizer.modelName("z-ai/glm-4.5-orgslug") == "GLM 4.5") + #expect(ShareStatsSanitizer.modelName("acme/private-model-v2") == nil) } @Test @@ -134,14 +171,14 @@ struct ShareStatsTests { rank: 2, provider: .codex, providerName: "Codex", - modelName: "gpt-5.4-mini", + modelName: "gpt-5.4", totalTokens: 1, totalCost: Double.greatestFiniteMagnitude), SpendDashboardModel.ModelRow( rank: 3, provider: .codex, providerName: "Codex", - modelName: "gpt-5.4-nano", + modelName: "gpt-5.4", totalTokens: 5, totalCost: 5), ] @@ -176,6 +213,33 @@ struct ShareStatsTests { #expect(ShareStatsBuilder.make(model: SpendDashboardModel(requestedDays: 30, groups: [])) == nil) } + @Test + func `cost only dashboard has no share payload`() { + let group = SpendDashboardModel.CurrencyGroup( + currencyCode: "USD", + providers: [ + SpendDashboardModel.ProviderRow( + id: "codex", + rank: 1, + provider: .codex, + displayName: "Codex", + totalTokens: nil, + totalCost: 4, + coveredDayCount: 7), + ], + models: [], + dailyPoints: [], + dailyTokenPoints: [], + totalTokens: nil, + totalCost: 4, + coveredDayCount: 7, + chartDomain: Self.date...Self.date, + modelHistoryCompleteness: .complete) + + #expect(ShareStatsBuilder.make( + model: SpendDashboardModel(requestedDays: 7, groups: [group])) == nil) + } + @Test func `cost only models do not enter token usage rankings`() throws { let model = SpendDashboardModel(requestedDays: 7, groups: [ @@ -234,7 +298,7 @@ struct ShareStatsTests { } @Test - func `partial model history does not enter shared rankings`() throws { + func `complete source models remain visible when group history is partial`() throws { let group = SpendDashboardModel.CurrencyGroup( currencyCode: "USD", providers: [ @@ -257,6 +321,7 @@ struct ShareStatsTests { totalCost: 2), ], dailyPoints: [], + dailyTokenPoints: [], totalTokens: nil, totalCost: nil, coveredDayCount: 7, @@ -266,36 +331,347 @@ struct ShareStatsTests { model: SpendDashboardModel(requestedDays: 7, groups: [group]))) #expect(payload.providers.count == 1) - #expect(payload.topModels.isEmpty) + #expect(payload.topModels.map(\.modelName) == ["GPT-5.4"]) + #expect(!payload.modelRouteCoverageIsComplete) + #expect(ShareStatsFormatting.text(payload).contains("Model route history is partial")) } - @Test @MainActor - func `renderer creates social card PNG`() throws { - let payload = try #require(ShareStatsBuilder.make(model: Self.dashboard)) - let data = try #require(ShareStatsRenderer.pngData(for: payload)) + @Test + func `token complete model route survives unavailable pricing through dashboard builder`() throws { + let entry = CostUsageDailyReport.Entry( + date: Self.isoDay(Self.date), + inputTokens: nil, + outputTokens: nil, + totalTokens: 10, + costUSD: nil, + modelsUsed: nil, + modelBreakdowns: [ + .init(modelName: "anthropic/claude-sonnet-4", costUSD: nil, totalTokens: 10), + ]) + let snapshot = CostUsageTokenSnapshot( + sessionTokens: nil, + sessionCostUSD: nil, + last30DaysTokens: 10, + last30DaysCostUSD: nil, + currencyCode: "USD", + historyDays: 30, + daily: [entry], + updatedAt: Self.date) + var calendar = Calendar(identifier: .gregorian) + calendar.timeZone = TimeZone(secondsFromGMT: 0) ?? .gmt + let dashboard = SpendDashboardModel.build( + inputs: [ + .init( + id: "openrouter", + provider: .openrouter, + displayName: "OpenRouter", + snapshot: snapshot), + ], + requestedDays: 7, + now: Self.date, + calendar: calendar) + let group = try #require(dashboard.groups.first) + let payload = try #require(ShareStatsBuilder.make(model: dashboard)) + + #expect(group.models.isEmpty) + #expect(group.tokenModels.map(\.modelName) == ["anthropic/claude-sonnet-4"]) + #expect(group.tokenModels.map(\.totalTokens) == [10]) + #expect(group.tokenModels.map(\.totalCost) == [nil]) + #expect(payload.topModels.map(\.modelName) == ["Claude Sonnet 4"]) + #expect(payload.topModels.map(\.sourceName) == ["OpenRouter"]) + #expect(payload.topModels.map(\.estimatedCost) == [nil]) + } + + @Test + func `selected window keeps quiet trailing days`() throws { + let calendar = Calendar(identifier: .gregorian) + let exclusiveEnd = try #require(calendar.date(byAdding: .day, value: 7, to: Self.date)) + let expectedEnd = try #require(calendar.date(byAdding: .day, value: 6, to: Self.date)) + let group = SpendDashboardModel.CurrencyGroup( + currencyCode: "USD", + providers: [ + SpendDashboardModel.ProviderRow( + id: "codex", + rank: 1, + provider: .codex, + displayName: "Codex", + totalTokens: 10, + totalCost: 1, + coveredDayCount: 7), + ], + models: [], + dailyPoints: [], + dailyTokenPoints: [ + SpendDashboardModel.DailyTokenPoint( + sourceID: "codex", + provider: .codex, + providerName: "Codex", + day: Self.date, + tokens: 10), + ], + totalTokens: 10, + totalCost: 1, + coveredDayCount: 7, + chartDomain: Self.date...exclusiveEnd, + modelHistoryCompleteness: .complete) + let payload = try #require(ShareStatsBuilder.make( + model: SpendDashboardModel(requestedDays: 7, groups: [group]))) + + #expect(calendar.startOfDay(for: payload.periodEnd) == calendar.startOfDay(for: expectedEnd)) + #expect(payload.dailyTokens.map(\.day) == [Self.date]) + } + + @Test + func `partial daily source coverage stays explicit`() throws { + let group = SpendDashboardModel.CurrencyGroup( + currencyCode: "USD", + providers: [ + SpendDashboardModel.ProviderRow( + id: "codex", + rank: 1, + provider: .codex, + displayName: "Codex", + totalTokens: 10, + totalCost: 1, + coveredDayCount: 7), + SpendDashboardModel.ProviderRow( + id: "openrouter", + rank: 2, + provider: .openrouter, + displayName: "OpenRouter", + totalTokens: nil, + totalCost: nil, + coveredDayCount: 0), + ], + models: [], + dailyPoints: [], + dailyTokenPoints: [ + SpendDashboardModel.DailyTokenPoint( + sourceID: "codex", + provider: .codex, + providerName: "Codex", + day: Self.date, + tokens: 10), + ], + totalTokens: nil, + totalCost: nil, + coveredDayCount: 0, + chartDomain: Self.date...Self.date, + modelHistoryCompleteness: .incomplete) + let payload = try #require(ShareStatsBuilder.make( + model: SpendDashboardModel(requestedDays: 7, groups: [group]))) + + #expect(payload.dailySourceCount == 1) + #expect(payload.dailyFullSourceCount == 1) + #expect(!payload.dailyCoverageIsComplete) + #expect(ShareStatsFormatting.text(payload).contains("at least 1 of 7 days active")) + } + + @Test + func `seven of thirty covered days stay partial`() throws { + let group = SpendDashboardModel.CurrencyGroup( + currencyCode: "USD", + providers: [ + SpendDashboardModel.ProviderRow( + id: "codex", + rank: 1, + provider: .codex, + displayName: "Codex", + totalTokens: 10, + totalCost: 1, + coveredDayCount: 7), + ], + models: [], + dailyPoints: [], + dailyTokenPoints: [ + SpendDashboardModel.DailyTokenPoint( + sourceID: "codex", + provider: .codex, + providerName: "Codex", + day: Self.date, + tokens: 10), + ], + totalTokens: 10, + totalCost: 1, + coveredDayCount: 7, + chartDomain: Self.date...Self.date, + modelHistoryCompleteness: .complete) + let payload = try #require(ShareStatsBuilder.make( + model: SpendDashboardModel(requestedDays: 30, groups: [group]))) + + #expect(payload.totalTokens == 10) + #expect(payload.dailySourceCount == 1) + #expect(payload.dailyFullSourceCount == 0) + #expect(!payload.dailyCoverageIsComplete) + #expect(ShareStatsFormatting.text(payload).contains("at least 1 of 30 days active")) + } + + @Test + func `daily token overflow is unavailable rather than zero`() throws { + let group = SpendDashboardModel.CurrencyGroup( + currencyCode: "USD", + providers: [ + SpendDashboardModel.ProviderRow( + id: "codex", + rank: 1, + provider: .codex, + displayName: "Codex", + totalTokens: Int.max, + totalCost: 1, + coveredDayCount: 1), + SpendDashboardModel.ProviderRow( + id: "openrouter", + rank: 2, + provider: .openrouter, + displayName: "OpenRouter", + totalTokens: 1, + totalCost: 1, + coveredDayCount: 1), + ], + models: [], + dailyPoints: [], + dailyTokenPoints: [ + SpendDashboardModel.DailyTokenPoint( + sourceID: "codex", + provider: .codex, + providerName: "Codex", + day: Self.date, + tokens: Int.max), + SpendDashboardModel.DailyTokenPoint( + sourceID: "openrouter", + provider: .openrouter, + providerName: "OpenRouter", + day: Self.date, + tokens: 1), + ], + totalTokens: nil, + totalCost: 2, + coveredDayCount: 1, + chartDomain: Self.date...Self.date, + modelHistoryCompleteness: .complete) + let payload = try #require(ShareStatsBuilder.make( + model: SpendDashboardModel(requestedDays: 1, groups: [group]))) + + #expect(payload.dailyCoverageIsComplete) + #expect(payload.dailyTokens == [ShareStatsDailyPayload(day: Self.date, totalTokens: nil)]) + #expect(payload.hasUnavailableDailyTotals) + #expect(ShareStatsFormatting.text(payload).contains("at least 0 of 1 days active")) + } + + @Test(arguments: [1, 4, 8, 20]) @MainActor + func `same model stays distinct across many source instances`(sourceCount: Int) throws { + let providers = (0.. 8) + } + @Test + func `model route identifiers cannot collide through separators`() { + let first = SpendDashboardModel.ModelRow( + sourceID: "openrouter:team", + rank: 1, + provider: .openrouter, + providerName: "OpenRouter", + modelName: "foo", + totalTokens: 1, + totalCost: 1) + let second = SpendDashboardModel.ModelRow( + sourceID: "openrouter", + rank: 2, + provider: .openrouter, + providerName: "OpenRouter", + modelName: "team:foo", + totalTokens: 1, + totalCost: 1) + + #expect(first.id != second.id) + } + + @Test @MainActor + func `renderer creates nonblank social card PNGs at share sizes`() throws { + let payload = try #require(ShareStatsBuilder.make(model: Self.proofDashboard)) #expect(ShareStatsCardView.size == CGSize(width: 1200, height: 630)) - #expect(data.starts(with: [0x89, 0x50, 0x4E, 0x47])) - let bitmap = try #require(NSBitmapImageRep(data: data)) - #expect(bitmap.pixelsWide == 1200) - #expect(bitmap.pixelsHigh == 630) - var sampledRGB: Set = [] - for y in stride(from: 0, to: bitmap.pixelsHigh, by: 19) { - for x in stride(from: 0, to: bitmap.pixelsWide, by: 23) { - guard let color = bitmap.colorAt(x: x, y: y)?.usingColorSpace(.deviceRGB) else { continue } - let red = UInt32((color.redComponent * 255).rounded()) - let green = UInt32((color.greenComponent * 255).rounded()) - let blue = UInt32((color.blueComponent * 255).rounded()) - sampledRGB.insert((red << 16) | (green << 8) | blue) - if sampledRGB.count > 8 { - break - } - } - if sampledRGB.count > 8 { - break + #expect(payload.providers.count == 4) + #expect(payload.topModels.count == 4) + #expect(payload.dailyCoverageIsComplete) + #expect(payload.tokenCoverageIsComplete) + + let proofDirectory = ProcessInfo.processInfo.environment["CODEXBAR_SHARE_STATS_PROOF_DIR"].map { + URL(fileURLWithPath: $0, isDirectory: true) + } + if let proofDirectory { + try FileManager.default.createDirectory( + at: proofDirectory, + withIntermediateDirectories: true) + } + for (size, filename) in [ + (CGSize(width: 1200, height: 630), "share-stats-1200x630.png"), + (CGSize(width: 600, height: 315), "share-stats-600x315.png"), + (CGSize(width: 300, height: 158), "share-stats-300x158.png"), + ] { + let data = try #require(ShareStatsRenderer.pngData(for: payload, pixelSize: size)) + #expect(data.starts(with: [0x89, 0x50, 0x4E, 0x47])) + let bitmap = try #require(NSBitmapImageRep(data: data)) + #expect(bitmap.pixelsWide == Int(size.width)) + #expect(bitmap.pixelsHigh == Int(size.height)) + #expect(Self.sampledColorCount(bitmap) > 8) + #expect(Self.minimumSampledAlpha(bitmap) > 0.99) + if let proofDirectory { + try data.write(to: proofDirectory.appendingPathComponent(filename), options: .atomic) } } - #expect(sampledRGB.count > 1) + if let proofDirectory { + let accessibleText = ShareStatsFormatting.text(payload) + "\n" + try accessibleText.write( + to: proofDirectory.appendingPathComponent("share-stats.txt"), + atomically: true, + encoding: .utf8) + } } @Test @MainActor @@ -312,9 +688,49 @@ struct ShareStatsTests { #expect(ShareStatsBuilder.combinedTotalTokens([10, nil]) == nil) #expect(ShareStatsBuilder.combinedTotalTokens([10, 20]) == 30) } +} +extension ShareStatsTests { private static let date = Date(timeIntervalSince1970: 1_783_382_400) + private static func isoDay(_ date: Date) -> String { + let formatter = DateFormatter() + formatter.calendar = Calendar(identifier: .gregorian) + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = "yyyy-MM-dd" + return formatter.string(from: date) + } + + private static func sampledColorCount(_ bitmap: NSBitmapImageRep) -> Int { + var sampledRGB: Set = [] + let xStride = max(1, bitmap.pixelsWide / 50) + let yStride = max(1, bitmap.pixelsHigh / 30) + for y in stride(from: 0, to: bitmap.pixelsHigh, by: yStride) { + for x in stride(from: 0, to: bitmap.pixelsWide, by: xStride) { + guard let color = bitmap.colorAt(x: x, y: y)?.usingColorSpace(.deviceRGB) else { continue } + let red = UInt32((color.redComponent * 255).rounded()) + let green = UInt32((color.greenComponent * 255).rounded()) + let blue = UInt32((color.blueComponent * 255).rounded()) + sampledRGB.insert((red << 16) | (green << 8) | blue) + } + } + return sampledRGB.count + } + + private static func minimumSampledAlpha(_ bitmap: NSBitmapImageRep) -> CGFloat { + var minimum: CGFloat = 1 + let xStride = max(1, bitmap.pixelsWide / 50) + let yStride = max(1, bitmap.pixelsHigh / 30) + for y in stride(from: 0, to: bitmap.pixelsHigh, by: yStride) { + for x in stride(from: 0, to: bitmap.pixelsWide, by: xStride) { + guard let alpha = bitmap.colorAt(x: x, y: y)?.alphaComponent else { continue } + minimum = min(minimum, alpha) + } + } + return minimum + } + private static func subscriptionName( provider: UsageProvider, rawName: String, @@ -345,6 +761,81 @@ struct ShareStatsTests { self.dashboard(models: ["gpt-5.4"]) } + private static var proofDashboard: SpendDashboardModel { + var calendar = Calendar(identifier: .gregorian) + calendar.timeZone = TimeZone(secondsFromGMT: 0) ?? .gmt + let start = calendar.startOfDay(for: self.date) + let exclusiveEnd = calendar.date(byAdding: .day, value: 30, to: start) ?? start + let sources = [ + ProofSource(id: "codex", provider: .codex, name: "Codex", model: "gpt-5.4", tokens: 8_000_000, cost: 94), + ProofSource( + id: "openrouter", + provider: .openrouter, + name: "OpenRouter", + model: "anthropic/claude-sonnet-4", + tokens: 7_000_000, + cost: 140), + ProofSource( + id: "kimi", + provider: .kimi, + name: "Kimi", + model: "moonshotai/kimi-k2.5", + tokens: 4_000_000, + cost: 22), + ProofSource( + id: "zai", + provider: .zai, + name: "Z.ai", + model: "z-ai/glm-4.5", + tokens: 2_700_000, + cost: 18), + ] + let dailyTokenPoints = (0..<30).flatMap { dayOffset in + sources.enumerated().compactMap { index, source -> SpendDashboardModel.DailyTokenPoint? in + guard (dayOffset + index) % 5 != 0, + let day = calendar.date(byAdding: .day, value: dayOffset, to: start) + else { return nil } + return SpendDashboardModel.DailyTokenPoint( + sourceID: source.id, + provider: source.provider, + providerName: source.name, + day: day, + tokens: (index + 1) * (dayOffset + 3) * 18500) + } + } + let group = SpendDashboardModel.CurrencyGroup( + currencyCode: "USD", + providers: sources.enumerated().map { index, source in + SpendDashboardModel.ProviderRow( + id: source.id, + rank: index + 1, + provider: source.provider, + displayName: source.name, + totalTokens: source.tokens, + totalCost: source.cost, + coveredDayCount: 30) + }, + models: sources.enumerated().map { index, source in + SpendDashboardModel.ModelRow( + sourceID: source.id, + rank: index + 1, + provider: source.provider, + providerName: source.name, + sourceName: source.name, + modelName: source.model, + totalTokens: source.tokens, + totalCost: source.cost) + }, + dailyPoints: [], + dailyTokenPoints: dailyTokenPoints, + totalTokens: sources.reduce(0) { $0 + $1.tokens }, + totalCost: sources.reduce(0) { $0 + $1.cost }, + coveredDayCount: 30, + chartDomain: start...exclusiveEnd, + modelHistoryCompleteness: .complete) + return SpendDashboardModel(requestedDays: 30, groups: [group]) + } + private static func dashboard(models: [String]) -> SpendDashboardModel { SpendDashboardModel(requestedDays: 30, groups: [ SpendDashboardModel.CurrencyGroup( diff --git a/Tests/CodexBarTests/SpendDashboardModelTests.swift b/Tests/CodexBarTests/SpendDashboardModelTests.swift index 398ce19e08..6d445f1f17 100644 --- a/Tests/CodexBarTests/SpendDashboardModelTests.swift +++ b/Tests/CodexBarTests/SpendDashboardModelTests.swift @@ -374,7 +374,9 @@ struct SpendDashboardModelTests { #expect(group.dailyTokenPoints.map(\.sourceID) == ["a", "b"]) #expect(group.dailyTokenPoints.map(\.tokens) == [20, 10]) } +} +extension SpendDashboardModelTests { @Test func `invalid costs and arithmetic overflow never become spend`() throws { let invalid = SpendDashboardModel.ProviderInput( diff --git a/docs/screenshots/share-stats-proof/share-stats-1200x630.png b/docs/screenshots/share-stats-proof/share-stats-1200x630.png new file mode 100644 index 0000000000000000000000000000000000000000..6692fad6fc38015223b9fea2a82993cec511bb0e GIT binary patch literal 304944 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 CyMTm0VWsG!BA%k3=BXM*>*cJV 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%0D0p?$YTzuz1 zb`cg$u=eb6UE9uwQ;$8LvDfr7hWkwYr>rx5Tj8@yhpWetCYp6YKkq&s9jE8N zb7R?TNgOqtPkgHvS}eiK`^=5VOvaf*AwrF;@Hb$E2RlO5_H-y8`l!t~|Bfxp2 ztqB~p!!k7NTV5Zko*EfnE$Dr(U+#pkmB`JHJ6jq{*xgR;rkPJGgGnZSyUSqec0#va zy@p;!Jl1sag33uvq5ZJ|N96HZg6ka!E12FFv`siM@r`dEV8bs9PV0RxOC`M~Su;;= zmmTge5IfV>u8~}zZhJYAu`Ez-_f@OAl@-wQp+lG48groKs%L@6LD;LS;=WG(QGTA8 zFliraOZ3p|rcsUp$%YWr6Yj5r9CKxLH? znbN}z^Zp_ZCkDukie&i%6O8EsNzMo-B`A_}^AhsD=Q`Bm&Kvd@4huIV%aab3nc@&Q znP4Tl%t;LW6lI*%b-I)DVyL+d+272L4e7z0dy0WsgRcb5uuQc>V%z0_FUe`uZkoKnneSs1nTNs`@LfDo` zCGmRPo4w6pjxs`m6q$k%#s?Fu-%u~Lz*3V;vzz~f2W50{u)uSd9brQ4P2vI@KiVH5 z^4e$Gd+L8c3aQcYkzsXsDZn(I*_Xvu{Tno{Zm`T+vT!X0wRYtEEM*zq#p3WfE=47$ zu}y$ z;L>3!Z)4I+l|#_#`%7qT$|fYipA0m$OqxBN#8TpV=Y)=A!AXemC5%PUW+h4DcQ-|`We!N$%$6ahqB$>g_A6AlRIgP~7wOcH~ zWvZC2^W?6Yeh|@w9>pU{r4qn5P)~;($B_jwo_XM$0~Gg8fsF8E||nT!iNI+DLelx zkIOx3QE|`d&zCh+v6*T8;8Ewn;-PaxBK7GHwaFPN6rAh9MuscSA(G(S!)4JZp?y9z!MFp5iaYATOf3Qb8|>#|y#Q=B?m59Gae9<4%%0AHxu8d7I~tCF`I7 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 Z{|~=5wq;7q@2mg-002ovPDHLkV1lu#YL@^2 literal 0 HcmV?d00001 diff --git a/docs/screenshots/share-stats-proof/share-stats-300x158.png b/docs/screenshots/share-stats-proof/share-stats-300x158.png new file mode 100644 index 0000000000000000000000000000000000000000..71449bbfea3898a72733f741dc6320670e367245 GIT binary patch literal 38972 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/share-stats-proof/share-stats-600x315.png b/docs/screenshots/share-stats-proof/share-stats-600x315.png new file mode 100644 index 0000000000000000000000000000000000000000..1c70484daa266f616fa6f917c451f36e53adc96a GIT binary patch literal 114707 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 Date: Sat, 18 Jul 2026 22:51:18 -0700 Subject: [PATCH 3/5] ci: retry flaky arm64 job From cf1157cd40d8e168f5bad0bf1abd635ea1bba55a Mon Sep 17 00:00:00 2001 From: Alec Gutman Date: Mon, 20 Jul 2026 17:00:13 -0700 Subject: [PATCH 4/5] Preserve summary share card default --- .../CodexBar/ShareStatsClassicCardView.swift | 363 ++++++++++++++++++ Sources/CodexBar/ShareStatsPayload.swift | 63 ++- Sources/CodexBar/ShareStatsRenderer.swift | 51 ++- .../CodexBar/ShareStatsWindowController.swift | 53 ++- Tests/CodexBarTests/ShareStatsTests.swift | 48 ++- 5 files changed, 540 insertions(+), 38 deletions(-) create mode 100644 Sources/CodexBar/ShareStatsClassicCardView.swift diff --git a/Sources/CodexBar/ShareStatsClassicCardView.swift b/Sources/CodexBar/ShareStatsClassicCardView.swift new file mode 100644 index 0000000000..1499e660f5 --- /dev/null +++ b/Sources/CodexBar/ShareStatsClassicCardView.swift @@ -0,0 +1,363 @@ +import SwiftUI + +struct ShareStatsClassicCardView: View { + static let size = CGSize(width: 1200, height: 630) + + let payload: ShareStatsPayload + + static func providerDisplayLimit(for providerCount: Int) -> Int { + providerCount > 5 ? 4 : min(providerCount, 5) + } + + static func providerPaletteIndex( + for model: ShareStatsModelPayload, + providers: [ShareStatsProviderPayload]) -> Int? + { + providers.firstIndex { $0.provider == model.provider } + } + + private let background = Color(red: 0.078, green: 0.067, blue: 0.063) + private let primary = Color(red: 0.96, green: 0.94, blue: 0.91) + private let secondary = Color(red: 0.70, green: 0.66, blue: 0.62) + private let accent = Color(red: 0.93, green: 0.56, blue: 0.36) + + var body: some View { + VStack(alignment: .leading, spacing: 0) { + self.header + self.hero + .padding(.top, 16) + Rectangle() + .fill(self.secondary.opacity(0.22)) + .frame(height: 1) + .padding(.vertical, 17) + self.rankings + .frame(height: 286, alignment: .top) + Spacer(minLength: 10) + self.footer + } + .padding(.horizontal, 52) + .padding(.vertical, 34) + .frame(width: Self.size.width, height: Self.size.height, alignment: .topLeading) + .background(self.background) + .foregroundStyle(self.primary) + .environment(\.colorScheme, .dark) + } + + private var header: some View { + HStack(alignment: .center) { + HStack(spacing: 14) { + ShareStatsMark(accent: self.accent) + .frame(width: 34, height: 34) + Text("CodexBar") + .font(.system(size: 26, weight: .semibold, design: .rounded)) + } + Spacer() + Text("LOCAL SNAPSHOT") + .font(.system(size: 14, weight: .semibold, design: .rounded)) + .tracking(1.8) + .foregroundStyle(self.secondary) + .padding(.horizontal, 15) + .padding(.vertical, 9) + .overlay { + RoundedRectangle(cornerRadius: 12) + .stroke(self.secondary.opacity(0.45), lineWidth: 1) + } + } + } + + private var hero: some View { + HStack(alignment: .bottom, spacing: 52) { + VStack(alignment: .leading, spacing: 2) { + Text(self.tokenLabel) + .font(.system(size: 20, weight: .semibold, design: .rounded)) + .tracking(1.8) + .foregroundStyle(self.secondary) + Text(self.tokenHeadline) + .font(.system(size: 104, weight: .semibold, design: .rounded)) + .monospacedDigit() + .lineLimit(1) + .minimumScaleFactor(0.72) + } + .frame(maxWidth: .infinity, alignment: .leading) + + VStack(alignment: .leading, spacing: 9) { + Text("EST. \(self.payload.days)-DAY SPEND") + .font(.system(size: 18, weight: .semibold, design: .rounded)) + .tracking(1.2) + .foregroundStyle(self.secondary) + ForEach(self.payload.currencies.prefix(2)) { currency in + HStack(alignment: .firstTextBaseline) { + Text("\(currency.currencyCode) · \(currency.coveredDayCount)/\(self.payload.days)d") + .font(.system(size: 17, weight: .semibold, design: .rounded)) + .foregroundStyle(self.secondary) + Spacer() + Text(self.spendHeadline(currency)) + .font(.system(size: 32, weight: .semibold, design: .rounded)) + .monospacedDigit() + .lineLimit(1) + .minimumScaleFactor(0.72) + } + } + Text(self.currencySummary) + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + } + .frame(width: 390, alignment: .leading) + } + .frame(height: 132, alignment: .bottom) + } + + private var tokenLabel: String { + let prefix = self.payload.tokenCoverageIsComplete ? "TRACKED TOKENS" : "KNOWN TOKENS" + return "\(prefix) · \(self.payload.days) DAYS" + } + + private var tokenHeadline: String { + guard let totalTokens = self.payload.totalTokens else { return "—" } + let value = ShareStatsFormatting.compactCount(totalTokens) + return self.payload.tokenCoverageIsComplete ? value : "≥\(value)" + } + + private func spendHeadline(_ currency: ShareStatsCurrencyPayload) -> String { + guard let estimatedCost = currency.estimatedCost else { return "Unavailable" } + let value = ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) + let isPartial = currency.pricedSourceCount < currency.sourceCount + || currency.coveredDayCount < self.payload.days + return isPartial ? "≥\(value)" : value + } + + private var currencySummary: String { + let hiddenCount = self.payload.currencies.count - min(self.payload.currencies.count, 2) + return hiddenCount > 0 + ? "+\(hiddenCount) more currencies · see subscription rows" + : "\(self.payload.providers.count) subscriptions · native currencies kept separate" + } + + private var rankings: some View { + HStack(alignment: .top, spacing: 46) { + VStack(alignment: .leading, spacing: 6) { + self.sectionHeader("SUBSCRIPTIONS", detail: "\(self.payload.providers.count) CONNECTED") + ForEach( + Array(self.payload.providers.prefix(self.providerDisplayLimit).enumerated()), + id: \.offset) + { index, provider in + ShareStatsProviderRow( + rank: index + 1, + provider: provider, + days: self.payload.days, + color: ShareStatsPalette.color(at: index)) + } + if self.payload.providers.count > self.providerDisplayLimit { + Text("+\(self.payload.providers.count - self.providerDisplayLimit) more configured") + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + .padding(.leading, 20) + } + } + .frame(width: 554, alignment: .topLeading) + + VStack(alignment: .leading, spacing: 0) { + VStack(alignment: .leading, spacing: 6) { + self.sectionHeader("TOP MODELS", detail: "BY USAGE") + if self.payload.topModels.isEmpty { + Text("No model-level history in this local snapshot") + .font(.system(size: 18, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + .padding(.top, 4) + } else { + ForEach( + Array(self.payload.topModels.prefix(3).enumerated()), + id: \.offset) + { index, model in + ShareStatsModelRow( + rank: index + 1, + model: model, + color: self.color(for: model)) + } + } + } + Text("Only aggregate usage, plan tier, and estimated spend are included.") + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + .padding(.top, 18) + } + .frame(maxWidth: .infinity, alignment: .topLeading) + } + } + + private var providerDisplayLimit: Int { + Self.providerDisplayLimit(for: self.payload.providers.count) + } + + private func color(for model: ShareStatsModelPayload) -> Color { + guard let index = Self.providerPaletteIndex(for: model, providers: self.payload.providers) else { + return self.secondary + } + return ShareStatsPalette.color(at: index) + } + + private func sectionHeader(_ title: String, detail: String) -> some View { + HStack(alignment: .firstTextBaseline) { + Text(title) + .font(.system(size: 18, weight: .semibold, design: .rounded)) + .tracking(1.5) + Spacer() + Text(detail) + .font(.system(size: 16, weight: .semibold, design: .rounded)) + .tracking(1.0) + } + .foregroundStyle(self.secondary) + } + + private var footer: some View { + HStack(spacing: 12) { + Label("LOCAL · AGGREGATE ONLY", systemImage: "lock.shield") + Spacer() + Text("DATA THROUGH \(ShareStatsFormatting.dataThrough(self.payload.periodEnd).uppercased())") + } + .font(.system(size: 14, weight: .medium, design: .rounded)) + .tracking(0.7) + .foregroundStyle(self.secondary) + } +} + +private struct ShareStatsModelRow: View { + let rank: Int + let model: ShareStatsModelPayload + let color: Color + + var body: some View { + HStack(spacing: 9) { + Capsule() + .fill(self.color) + .frame(width: 5, height: 34) + Text(String(format: "%02d", self.rank)) + .font(.system(size: 17, weight: .bold, design: .rounded)) + .monospacedDigit() + .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) + .frame(width: 27, alignment: .leading) + VStack(alignment: .leading, spacing: 1) { + Text(self.model.modelName) + .font(.system(size: 20, weight: .semibold, design: .rounded)) + .lineLimit(1) + .minimumScaleFactor(0.82) + Text(self.model.sourceName) + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) + .lineLimit(1) + } + Spacer(minLength: 10) + Text(self.detail) + .font(.system(size: 17, weight: .medium, design: .rounded)) + .monospacedDigit() + .foregroundStyle(Color(red: 0.78, green: 0.74, blue: 0.69)) + .lineLimit(1) + } + .padding(.horizontal, 9) + .frame(height: 48) + .background(Color.white.opacity(0.035), in: RoundedRectangle(cornerRadius: 9)) + .overlay { + RoundedRectangle(cornerRadius: 9) + .stroke(Color.white.opacity(0.10), lineWidth: 1) + } + } + + private var detail: String { + if let cost = self.model.estimatedCost, cost.isFinite { + return "~\(ShareStatsFormatting.currency(cost, code: self.model.currencyCode))" + } + return self.model.totalTokens.map(ShareStatsFormatting.compactCount) ?? "used" + } +} + +private struct ShareStatsProviderRow: View { + let rank: Int + let provider: ShareStatsProviderPayload + let days: Int + let color: Color + + var body: some View { + HStack(spacing: 9) { + Capsule() + .fill(self.color) + .frame(width: 6, height: 30) + Text(String(format: "%02d", self.rank)) + .font(.system(size: 17, weight: .bold, design: .rounded)) + .monospacedDigit() + .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) + .frame(width: 27, alignment: .leading) + HStack(spacing: 8) { + Text(self.provider.providerName) + .font(.system(size: 20, weight: .semibold, design: .rounded)) + .lineLimit(1) + .minimumScaleFactor(0.82) + if let subscriptionName = self.provider.subscriptionName { + Text("· \(subscriptionName)") + .font(.system(size: 17, weight: .medium, design: .rounded)) + .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) + .lineLimit(1) + } + } + Spacer(minLength: 12) + Text(self.detail) + .font(.system(size: 18, weight: .medium, design: .rounded)) + .monospacedDigit() + .foregroundStyle(Color(red: 0.78, green: 0.74, blue: 0.69)) + .lineLimit(1) + .minimumScaleFactor(0.82) + } + .padding(.horizontal, 9) + .frame(height: 44) + .background(Color.white.opacity(0.035), in: RoundedRectangle(cornerRadius: 9)) + .overlay { + RoundedRectangle(cornerRadius: 9) + .stroke(Color.white.opacity(0.10), lineWidth: 1) + } + } + + private var detail: String { + var metrics: [String] = [] + if let tokens = self.provider.totalTokens { + metrics.append(ShareStatsFormatting.compactCount(tokens)) + } + if let cost = self.provider.estimatedCost, cost.isFinite { + metrics.append("~\(ShareStatsFormatting.currency(cost, code: self.provider.currencyCode))") + if self.provider.coveredDayCount < self.days { + metrics.append("\(self.provider.coveredDayCount)/\(self.days)d") + } + } else { + metrics.append("Spend unavailable") + } + return metrics.isEmpty ? "connected" : metrics.joined(separator: " · ") + } +} + +private enum ShareStatsPalette { + static let colors = [ + Color(red: 1.00, green: 0.60, blue: 0.38), + Color(red: 0.60, green: 0.66, blue: 1.00), + Color(red: 0.38, green: 0.84, blue: 0.72), + Color(red: 0.95, green: 0.79, blue: 0.41), + Color(red: 0.44, green: 0.77, blue: 0.96), + Color(red: 0.95, green: 0.55, blue: 0.67), + ] + + static func color(at index: Int) -> Color { + self.colors[index % self.colors.count] + } +} + +private struct ShareStatsMark: View { + let accent: Color + + var body: some View { + HStack(alignment: .bottom, spacing: 4) { + ForEach(Array([0.38, 0.68, 1.0].enumerated()), id: \.offset) { _, height in + Capsule() + .fill(self.accent) + .frame(width: 5, height: 28 * height) + } + } + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) + } +} diff --git a/Sources/CodexBar/ShareStatsPayload.swift b/Sources/CodexBar/ShareStatsPayload.swift index 2da25736ac..d9f874ddc3 100644 --- a/Sources/CodexBar/ShareStatsPayload.swift +++ b/Sources/CodexBar/ShareStatsPayload.swift @@ -659,7 +659,68 @@ enum ShareStatsFormatting { "\(self.shortDay(start, calendar: calendar)) — \(self.shortDay(end, calendar: calendar))" } - static func text(_ payload: ShareStatsPayload) -> String { + static func text( + _ payload: ShareStatsPayload, + style: ShareStatsCardStyle = .defaultStyle) -> String + { + switch style { + case .summary: + self.summaryText(payload) + case .modelActivity: + self.modelActivityText(payload) + } + } + + private static func summaryText(_ payload: ShareStatsPayload) -> String { + var lines = ["My AI subscriptions · last \(payload.days) days"] + if let tokens = payload.totalTokens { + let qualifier = payload.tokenCoverageIsComplete ? "" : "at least " + lines.append("\(qualifier)\(self.compactCount(tokens)) tracked tokens") + } + lines.append(contentsOf: payload.currencies.map { currency in + let spend = currency.estimatedCost.map { cost in + let value = self.currency(cost, code: currency.currencyCode) + let isPartial = currency.pricedSourceCount < currency.sourceCount + || currency.coveredDayCount < payload.days + return isPartial ? "at least \(value) estimated" : "\(value) estimated" + } ?? "Spend unavailable" + return "\(currency.currencyCode): \(spend) · " + + "coverage \(currency.coveredDayCount)/\(payload.days) days" + }) + lines.append(contentsOf: payload.providers.map { provider in + var metrics: [String] = [] + if let tokens = provider.totalTokens { + metrics.append("\(self.compactCount(tokens)) tokens") + } + if let cost = provider.estimatedCost { + metrics.append("~\(self.currency(cost, code: provider.currencyCode)) est") + } else { + metrics.append("Spend unavailable") + } + if provider.estimatedCost != nil, provider.coveredDayCount < payload.days { + metrics.append("\(provider.coveredDayCount)/\(payload.days) days") + } + let subscription = provider.subscriptionName.map { " · \($0)" } ?? "" + return "\(provider.providerName)\(subscription): \(metrics.joined(separator: " · "))" + }) + if !payload.topModels.isEmpty { + lines.append("Top models:") + lines.append(contentsOf: payload.topModels.prefix(5).map { model in + var metrics: [String] = [] + if let tokens = model.totalTokens { + metrics.append("\(self.compactCount(tokens)) tokens") + } + if let cost = model.estimatedCost { + metrics.append("~\(self.currency(cost, code: model.currencyCode)) est") + } + return "\(model.modelName) (\(model.sourceName)): \(metrics.joined(separator: " · "))" + }) + } + lines.append("Generated locally by CodexBar · Data through \(self.dataThrough(payload.periodEnd))") + return lines.joined(separator: "\n") + } + + private static func modelActivityText(_ payload: ShareStatsPayload) -> String { var lines = ["You kept the models busy · last \(payload.days) days"] if let tokens = payload.totalTokens { let qualifier = payload.tokenCoverageIsComplete ? "" : "at least " diff --git a/Sources/CodexBar/ShareStatsRenderer.swift b/Sources/CodexBar/ShareStatsRenderer.swift index 20683101fa..e9716b2167 100644 --- a/Sources/CodexBar/ShareStatsRenderer.swift +++ b/Sources/CodexBar/ShareStatsRenderer.swift @@ -1,15 +1,27 @@ import AppKit import SwiftUI +enum ShareStatsCardStyle: String, CaseIterable, Identifiable, Sendable { + case summary + case modelActivity + + static let defaultStyle: Self = .summary + + var id: Self { + self + } +} + @MainActor enum ShareStatsRenderer { static func pngData( for payload: ShareStatsPayload, + style: ShareStatsCardStyle = .defaultStyle, pixelSize: CGSize = ShareStatsCardView.size) -> Data? { let logicalSize = ShareStatsCardView.size guard pixelSize.width > 0, pixelSize.height > 0 else { return nil } - let view = NSHostingView(rootView: ShareStatsCardView(payload: payload)) + let view = NSHostingView(rootView: self.card(payload: payload, style: style)) view.frame = CGRect(origin: .zero, size: logicalSize) view.layoutSubtreeIfNeeded() @@ -31,16 +43,31 @@ enum ShareStatsRenderer { return representation.representation(using: .png, properties: [:]) } - static func image(for payload: ShareStatsPayload) -> NSImage? { - guard let data = self.pngData(for: payload) else { return nil } + static func image( + for payload: ShareStatsPayload, + style: ShareStatsCardStyle = .defaultStyle) -> NSImage? + { + guard let data = self.pngData(for: payload, style: style) else { return nil } return NSImage(data: data) } + + private static func card(payload: ShareStatsPayload, style: ShareStatsCardStyle) -> AnyView { + switch style { + case .summary: + AnyView(ShareStatsClassicCardView(payload: payload)) + case .modelActivity: + AnyView(ShareStatsCardView(payload: payload)) + } + } } @MainActor enum ShareStatsExporter { - static func copyImage(_ payload: ShareStatsPayload) -> Bool { - guard let data = ShareStatsRenderer.pngData(for: payload), + static func copyImage( + _ payload: ShareStatsPayload, + style: ShareStatsCardStyle = .defaultStyle) -> Bool + { + guard let data = ShareStatsRenderer.pngData(for: payload, style: style), let image = NSImage(data: data) else { return false } let pasteboard = NSPasteboard.general let item = NSPasteboardItem() @@ -52,12 +79,18 @@ enum ShareStatsExporter { return pasteboard.writeObjects([item]) } - static func copyText(_ payload: ShareStatsPayload) { - MenuPasteboardCopy.perform(ShareStatsFormatting.text(payload)) + static func copyText( + _ payload: ShareStatsPayload, + style: ShareStatsCardStyle = .defaultStyle) + { + MenuPasteboardCopy.perform(ShareStatsFormatting.text(payload, style: style)) } - static func saveImage(_ payload: ShareStatsPayload) -> Bool { - guard let data = ShareStatsRenderer.pngData(for: payload) else { return false } + static func saveImage( + _ payload: ShareStatsPayload, + style: ShareStatsCardStyle = .defaultStyle) -> Bool + { + guard let data = ShareStatsRenderer.pngData(for: payload, style: style) else { return false } let panel = NSSavePanel() panel.allowedContentTypes = [.png] panel.canCreateDirectories = true diff --git a/Sources/CodexBar/ShareStatsWindowController.swift b/Sources/CodexBar/ShareStatsWindowController.swift index 7a4ffe3e0f..e697595428 100644 --- a/Sources/CodexBar/ShareStatsWindowController.swift +++ b/Sources/CodexBar/ShareStatsWindowController.swift @@ -22,7 +22,7 @@ final class ShareStatsWindowController: NSWindowController, NSWindowDelegate { init(payload: ShareStatsPayload) { self.payload = payload let window = NSWindow( - contentRect: NSRect(x: 0, y: 0, width: 820, height: 565), + contentRect: NSRect(x: 0, y: 0, width: 820, height: 610), styleMask: [.titled, .closable, .miniaturizable], backing: .buffered, defer: false) @@ -53,32 +53,41 @@ final class ShareStatsWindowController: NSWindowController, NSWindowDelegate { private func installContent() { self.window?.contentViewController = NSHostingController(rootView: ShareStatsPreviewView( payload: self.payload, - copyImage: { [weak self] in + copyImage: { [weak self] style in guard let self else { return false } - return ShareStatsExporter.copyImage(self.payload) + return ShareStatsExporter.copyImage(self.payload, style: style) }, - copyText: { [weak self] in + copyText: { [weak self] style in guard let self else { return } - ShareStatsExporter.copyText(self.payload) + ShareStatsExporter.copyText(self.payload, style: style) }, - saveImage: { [weak self] in + saveImage: { [weak self] style in guard let self else { return false } - return ShareStatsExporter.saveImage(self.payload) + return ShareStatsExporter.saveImage(self.payload, style: style) })) } } private struct ShareStatsPreviewView: View { let payload: ShareStatsPayload - let copyImage: @MainActor () -> Bool - let copyText: @MainActor () -> Void - let saveImage: @MainActor () -> Bool + let copyImage: @MainActor (ShareStatsCardStyle) -> Bool + let copyText: @MainActor (ShareStatsCardStyle) -> Void + let saveImage: @MainActor (ShareStatsCardStyle) -> Bool + @State private var style: ShareStatsCardStyle = .defaultStyle @State private var statusMessage: String? var body: some View { - VStack(spacing: 20) { - ShareStatsScaledPreview(payload: self.payload) + VStack(spacing: 16) { + Picker(L("Share card style"), selection: self.$style) { + Text(L("Summary")).tag(ShareStatsCardStyle.summary) + Text(L("Model activity")).tag(ShareStatsCardStyle.modelActivity) + } + .pickerStyle(.segmented) + .frame(width: 280) + .accessibilityLabel(L("Share card style")) + + ShareStatsScaledPreview(payload: self.payload, style: self.style) .clipShape(RoundedRectangle(cornerRadius: 12)) .overlay { RoundedRectangle(cornerRadius: 12) @@ -88,21 +97,21 @@ private struct ShareStatsPreviewView: View { HStack(spacing: 12) { Button { - self.statusMessage = self.copyImage() ? L("Image copied") : L("Could not copy image") + self.statusMessage = self.copyImage(self.style) ? L("Image copied") : L("Could not copy image") } label: { Label(L("Copy Image"), systemImage: "photo.on.rectangle") } .keyboardShortcut(.defaultAction) Button { - self.copyText() + self.copyText(self.style) self.statusMessage = L("Stats copied") } label: { Label(L("Copy Stats"), systemImage: "doc.on.doc") } Button { - if self.saveImage() { + if self.saveImage(self.style) { self.statusMessage = L("Image saved") } } label: { @@ -119,20 +128,28 @@ private struct ShareStatsPreviewView: View { } } .padding(24) - .frame(minWidth: 780, minHeight: 525) + .frame(minWidth: 780, minHeight: 570) } } private struct ShareStatsScaledPreview: View { let payload: ShareStatsPayload + let style: ShareStatsCardStyle var body: some View { GeometryReader { proxy in let scale = min( proxy.size.width / ShareStatsCardView.size.width, proxy.size.height / ShareStatsCardView.size.height) - ShareStatsCardView(payload: self.payload) - .scaleEffect(scale, anchor: .topLeading) + Group { + switch self.style { + case .summary: + ShareStatsClassicCardView(payload: self.payload) + case .modelActivity: + ShareStatsCardView(payload: self.payload) + } + } + .scaleEffect(scale, anchor: .topLeading) } .aspectRatio(ShareStatsCardView.size.width / ShareStatsCardView.size.height, contentMode: .fit) } diff --git a/Tests/CodexBarTests/ShareStatsTests.swift b/Tests/CodexBarTests/ShareStatsTests.swift index bc7aaf3ce2..25bbbb47c5 100644 --- a/Tests/CodexBarTests/ShareStatsTests.swift +++ b/Tests/CodexBarTests/ShareStatsTests.swift @@ -51,7 +51,7 @@ struct ShareStatsTests { #expect(payload.dailySourceCount == 2) #expect(!payload.dailyCoverageIsComplete) - let text = ShareStatsFormatting.text(payload) + let text = ShareStatsFormatting.text(payload, style: .modelActivity) #expect(text.contains("You kept the models busy · last 30 days")) #expect(text.contains("at least 1 of 30 days active")) #expect(text.contains("Estimated token spend: ≥£12.00 · ≥$4.00 · pricing for 2 of 3 sources")) @@ -89,7 +89,8 @@ struct ShareStatsTests { let payload = try #require(ShareStatsBuilder.make( model: model, subscriptionNames: subscriptionNames)) - let text = ShareStatsFormatting.text(payload) + let text = ShareStatsFormatting.text(payload, style: .modelActivity) + let summaryText = ShareStatsFormatting.text(payload, style: .summary) #expect(payload.topModels.map(\.modelName) == ["Claude Sonnet 4", "GPT-5.4"]) #expect(payload.topModels.last?.totalTokens == 200) @@ -105,6 +106,10 @@ struct ShareStatsTests { #expect(!text.contains("abcdefabcdef")) #expect(!text.contains("intranet")) #expect(!text.contains("acme")) + #expect(!summaryText.contains("person@example.com")) + #expect(!summaryText.contains("/Users/")) + #expect(!summaryText.contains("secret project")) + #expect(!summaryText.contains("acme")) } @Test @@ -293,8 +298,8 @@ struct ShareStatsTests { #expect(payload.topModels.first?.estimatedCost == nil) #expect(payload.topModels.count == 1) #expect(payload.currencies.first?.estimatedCost == nil) - #expect(!ShareStatsFormatting.text(payload).lowercased().contains("nan")) - #expect(!ShareStatsFormatting.text(payload).lowercased().contains("inf")) + #expect(!ShareStatsFormatting.text(payload, style: .modelActivity).lowercased().contains("nan")) + #expect(!ShareStatsFormatting.text(payload, style: .modelActivity).lowercased().contains("inf")) } @Test @@ -333,7 +338,8 @@ struct ShareStatsTests { #expect(payload.providers.count == 1) #expect(payload.topModels.map(\.modelName) == ["GPT-5.4"]) #expect(!payload.modelRouteCoverageIsComplete) - #expect(ShareStatsFormatting.text(payload).contains("Model route history is partial")) + #expect(ShareStatsFormatting.text(payload, style: .modelActivity) + .contains("Model route history is partial")) } @Test @@ -464,7 +470,8 @@ struct ShareStatsTests { #expect(payload.dailySourceCount == 1) #expect(payload.dailyFullSourceCount == 1) #expect(!payload.dailyCoverageIsComplete) - #expect(ShareStatsFormatting.text(payload).contains("at least 1 of 7 days active")) + #expect(ShareStatsFormatting.text(payload, style: .modelActivity) + .contains("at least 1 of 7 days active")) } @Test @@ -503,7 +510,8 @@ struct ShareStatsTests { #expect(payload.dailySourceCount == 1) #expect(payload.dailyFullSourceCount == 0) #expect(!payload.dailyCoverageIsComplete) - #expect(ShareStatsFormatting.text(payload).contains("at least 1 of 30 days active")) + #expect(ShareStatsFormatting.text(payload, style: .modelActivity) + .contains("at least 1 of 30 days active")) } @Test @@ -555,7 +563,8 @@ struct ShareStatsTests { #expect(payload.dailyCoverageIsComplete) #expect(payload.dailyTokens == [ShareStatsDailyPayload(day: Self.date, totalTokens: nil)]) #expect(payload.hasUnavailableDailyTotals) - #expect(ShareStatsFormatting.text(payload).contains("at least 0 of 1 days active")) + #expect(ShareStatsFormatting.text(payload, style: .modelActivity) + .contains("at least 0 of 1 days active")) } @Test(arguments: [1, 4, 8, 20]) @MainActor @@ -603,6 +612,7 @@ struct ShareStatsTests { let compactPNG = try #require(ShareStatsRenderer.pngData( for: payload, + style: .modelActivity, pixelSize: CGSize(width: 300, height: 158))) let bitmap = try #require(NSBitmapImageRep(data: compactPNG)) #expect(bitmap.pixelsWide == 300) @@ -654,7 +664,10 @@ struct ShareStatsTests { (CGSize(width: 600, height: 315), "share-stats-600x315.png"), (CGSize(width: 300, height: 158), "share-stats-300x158.png"), ] { - let data = try #require(ShareStatsRenderer.pngData(for: payload, pixelSize: size)) + let data = try #require(ShareStatsRenderer.pngData( + for: payload, + style: .modelActivity, + pixelSize: size)) #expect(data.starts(with: [0x89, 0x50, 0x4E, 0x47])) let bitmap = try #require(NSBitmapImageRep(data: data)) #expect(bitmap.pixelsWide == Int(size.width)) @@ -666,7 +679,7 @@ struct ShareStatsTests { } } if let proofDirectory { - let accessibleText = ShareStatsFormatting.text(payload) + "\n" + let accessibleText = ShareStatsFormatting.text(payload, style: .modelActivity) + "\n" try accessibleText.write( to: proofDirectory.appendingPathComponent("share-stats.txt"), atomically: true, @@ -674,6 +687,21 @@ struct ShareStatsTests { } } + @Test @MainActor + func `summary card remains the default export while model activity is opt in`() throws { + let payload = try #require(ShareStatsBuilder.make(model: Self.proofDashboard)) + + #expect(ShareStatsCardStyle.defaultStyle == .summary) + #expect(ShareStatsFormatting.text(payload).hasPrefix("My AI subscriptions")) + #expect(ShareStatsFormatting.text(payload, style: .modelActivity).hasPrefix("You kept the models busy")) + + let defaultPNG = try #require(ShareStatsRenderer.pngData(for: payload)) + let summaryPNG = try #require(ShareStatsRenderer.pngData(for: payload, style: .summary)) + let activityPNG = try #require(ShareStatsRenderer.pngData(for: payload, style: .modelActivity)) + #expect(defaultPNG == summaryPNG) + #expect(defaultPNG != activityPNG) + } + @Test @MainActor func `activity levels preserve zero and scale to five steps`() { #expect(ShareStatsCardView.activityLevel(totalTokens: 0, maximum: 100) == 0) From 764a4cfeaa2aad30f4d5778718cfaf1aa24f70f0 Mon Sep 17 00:00:00 2001 From: Alec Gutman Date: Tue, 21 Jul 2026 01:29:13 -0700 Subject: [PATCH 5/5] Harden share card privacy and naming --- Sources/CodexBar/ShareStatsCardView.swift | 741 +++++++----------- .../CodexBar/ShareStatsClassicCardView.swift | 363 --------- .../ShareStatsModelActivityCardView.swift | 552 +++++++++++++ Sources/CodexBar/ShareStatsPayload.swift | 11 +- Sources/CodexBar/ShareStatsRenderer.swift | 4 +- .../CodexBar/ShareStatsWindowController.swift | 4 +- Tests/CodexBarTests/ShareStatsTests.swift | 10 +- 7 files changed, 848 insertions(+), 837 deletions(-) delete mode 100644 Sources/CodexBar/ShareStatsClassicCardView.swift create mode 100644 Sources/CodexBar/ShareStatsModelActivityCardView.swift diff --git a/Sources/CodexBar/ShareStatsCardView.swift b/Sources/CodexBar/ShareStatsCardView.swift index 909ca82ae7..f475dc1402 100644 --- a/Sources/CodexBar/ShareStatsCardView.swift +++ b/Sources/CodexBar/ShareStatsCardView.swift @@ -1,4 +1,3 @@ -import AppKit import SwiftUI struct ShareStatsCardView: View { @@ -6,104 +5,111 @@ struct ShareStatsCardView: View { let payload: ShareStatsPayload - static func activityLevel(totalTokens: Int, maximum: Int) -> Int { - guard totalTokens > 0, maximum > 0 else { return 0 } - let scaled = Int(ceil(Double(totalTokens) / Double(maximum) * 5)) - return min(5, max(1, scaled)) + static func providerDisplayLimit(for providerCount: Int) -> Int { + providerCount > 5 ? 4 : min(providerCount, 5) } - var body: some View { - ZStack { - ShareStatsBrandBackground() - HStack(spacing: 0) { - ShareStatsStory(payload: self.payload) - .frame(width: 750) - .background(ShareStatsBrand.canvas.opacity(0.78)) - ShareStatsActivity(payload: self.payload) - .frame(width: 450) - .background(ShareStatsBrand.surface.opacity(0.82)) - .overlay(alignment: .leading) { - Rectangle() - .fill(Color.white.opacity(0.12)) - .frame(width: 1) - } - } - } - .frame(width: Self.size.width, height: Self.size.height) - .clipped() - .foregroundStyle(ShareStatsBrand.primary) - .environment(\.colorScheme, .dark) + static func providerPaletteIndex( + for model: ShareStatsModelPayload, + providers: [ShareStatsProviderPayload]) -> Int? + { + providers.firstIndex { $0.provider == model.provider } } -} -private struct ShareStatsStory: View { - let payload: ShareStatsPayload + private let background = Color(red: 0.078, green: 0.067, blue: 0.063) + private let primary = Color(red: 0.96, green: 0.94, blue: 0.91) + private let secondary = Color(red: 0.70, green: 0.66, blue: 0.62) + private let accent = Color(red: 0.93, green: 0.56, blue: 0.36) var body: some View { VStack(alignment: .leading, spacing: 0) { self.header - self.headline - .padding(.top, 44) - self.tokenHero - .padding(.top, 26) - self.spend - .padding(.top, 29) - self.routes - .padding(.top, 32) - Spacer(minLength: 8) - Text("\(self.payload.days) DAYS · AGGREGATED LOCALLY · NO PROMPTS SHARED") - .font(ShareStatsBrand.mono(size: 12, weight: .semibold)) - .tracking(0.4) - .foregroundStyle(ShareStatsBrand.secondary) + self.hero + .padding(.top, 16) + Rectangle() + .fill(self.secondary.opacity(0.22)) + .frame(height: 1) + .padding(.vertical, 17) + self.rankings + .frame(height: 286, alignment: .top) + Spacer(minLength: 10) + self.footer } .padding(.horizontal, 52) - .padding(.top, 38) - .padding(.bottom, 28) + .padding(.vertical, 34) + .frame(width: Self.size.width, height: Self.size.height, alignment: .topLeading) + .background(self.background) + .foregroundStyle(self.primary) + .environment(\.colorScheme, .dark) } private var header: some View { - HStack(spacing: 10) { - Image(nsImage: ShareStatsBrand.appIcon) - .resizable() - .interpolation(.high) - .frame(width: 30, height: 30) - .clipShape(RoundedRectangle(cornerRadius: 7)) + HStack(alignment: .center) { + HStack(spacing: 14) { + ShareStatsMark(accent: self.accent) + .frame(width: 34, height: 34) + Text("CodexBar") + .font(.system(size: 26, weight: .semibold, design: .rounded)) + } + Spacer() + Text("LOCAL SNAPSHOT") + .font(.system(size: 14, weight: .semibold, design: .rounded)) + .tracking(1.8) + .foregroundStyle(self.secondary) + .padding(.horizontal, 15) + .padding(.vertical, 9) .overlay { - RoundedRectangle(cornerRadius: 7) - .stroke(Color.white.opacity(0.16), lineWidth: 1) + RoundedRectangle(cornerRadius: 12) + .stroke(self.secondary.opacity(0.45), lineWidth: 1) } - Text("CodexBar") - .font(.system(size: 18, weight: .semibold)) - .tracking(-0.3) } } - private var headline: some View { - HStack(spacing: 0) { - Text("You kept ") - Text("the models") - .foregroundStyle(ShareStatsBrand.aurora) - Text(" busy.") + private var hero: some View { + HStack(alignment: .bottom, spacing: 52) { + VStack(alignment: .leading, spacing: 2) { + Text(self.tokenLabel) + .font(.system(size: 20, weight: .semibold, design: .rounded)) + .tracking(1.8) + .foregroundStyle(self.secondary) + Text(self.tokenHeadline) + .font(.system(size: 104, weight: .semibold, design: .rounded)) + .monospacedDigit() + .lineLimit(1) + .minimumScaleFactor(0.72) + } + .frame(maxWidth: .infinity, alignment: .leading) + + VStack(alignment: .leading, spacing: 9) { + Text("EST. \(self.payload.days)-DAY SPEND") + .font(.system(size: 18, weight: .semibold, design: .rounded)) + .tracking(1.2) + .foregroundStyle(self.secondary) + ForEach(self.payload.currencies.prefix(2)) { currency in + HStack(alignment: .firstTextBaseline) { + Text("\(currency.currencyCode) · \(currency.coveredDayCount)/\(self.payload.days)d") + .font(.system(size: 17, weight: .semibold, design: .rounded)) + .foregroundStyle(self.secondary) + Spacer() + Text(self.spendHeadline(currency)) + .font(.system(size: 32, weight: .semibold, design: .rounded)) + .monospacedDigit() + .lineLimit(1) + .minimumScaleFactor(0.72) + } + } + Text(self.currencySummary) + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + } + .frame(width: 390, alignment: .leading) } - .font(.system(size: 43, weight: .semibold)) - .tracking(-1.8) + .frame(height: 132, alignment: .bottom) } - private var tokenHero: some View { - HStack(alignment: .lastTextBaseline, spacing: 17) { - Text(self.tokenHeadline) - .font(.system(size: 126, weight: .bold)) - .tracking(-7) - .monospacedDigit() - .lineLimit(1) - .minimumScaleFactor(0.72) - Text(self.payload.tokenCoverageIsComplete ? "TOKENS" : "KNOWN TOKENS") - .font(ShareStatsBrand.mono(size: 15, weight: .bold)) - .tracking(2) - .foregroundStyle(ShareStatsBrand.secondary) - .padding(.bottom, 11) - } - .frame(height: 106, alignment: .bottomLeading) + private var tokenLabel: String { + let prefix = self.payload.tokenCoverageIsComplete ? "TRACKED TOKENS" : "KNOWN TOKENS" + return "\(prefix) · \(self.payload.days) DAYS" } private var tokenHeadline: String { @@ -112,441 +118,246 @@ private struct ShareStatsStory: View { return self.payload.tokenCoverageIsComplete ? value : "≥\(value)" } - private var spend: some View { - HStack(alignment: .firstTextBaseline, spacing: 12) { - Text(self.spendHeadline) - .font(.system(size: 32, weight: .bold)) - .tracking(-1.3) - .foregroundStyle(ShareStatsBrand.teal) - .lineLimit(1) - .minimumScaleFactor(0.72) - Text(self.spendDetail) - .font(.system(size: 14, weight: .regular)) - .foregroundStyle(ShareStatsBrand.secondary) - .lineLimit(1) - .minimumScaleFactor(0.8) - } - } - - private var spendHeadline: String { - let pricedCurrencies = self.payload.currencies.compactMap { currency -> String? in - guard let estimatedCost = currency.estimatedCost else { return nil } - let knownSpend = ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) - let isPartial = currency.pricedSourceCount < currency.sourceCount - || currency.coveredDayCount < self.payload.days - return isPartial ? "≥\(knownSpend)" : knownSpend - } - guard !pricedCurrencies.isEmpty else { return "—" } - let shown = pricedCurrencies.prefix(2).joined(separator: " · ") - if pricedCurrencies.count > 2 { - return "\(shown) +\(pricedCurrencies.count - 2)" - } - return shown + private func spendHeadline(_ currency: ShareStatsCurrencyPayload) -> String { + guard let estimatedCost = currency.estimatedCost else { return "Unavailable" } + let value = ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) + let isPartial = currency.pricedSourceCount < currency.sourceCount + || currency.coveredDayCount < self.payload.days + return isPartial ? "≥\(value)" : value } - private var spendDetail: String { - guard self.pricedSourceCount > 0 else { - return "estimated token spend unavailable · \(self.payload.providers.count) sources tracked" - } - let coverage = self.payload.currencies.contains { - $0.estimatedCost != nil - && ($0.pricedSourceCount < $0.sourceCount || $0.coveredDayCount < self.payload.days) - } ? "known lower bound · " : "" - return "estimated token spend · \(coverage)pricing for \(self.pricedSourceCount) " - + "of \(self.payload.providers.count) sources" + private var currencySummary: String { + let hiddenCount = self.payload.currencies.count - min(self.payload.currencies.count, 2) + return hiddenCount > 0 + ? "+\(hiddenCount) more currencies · see subscription rows" + : "\(self.payload.providers.count) subscriptions · native currencies kept separate" } - private var pricedSourceCount: Int { - self.payload.providers.count { $0.estimatedCost != nil } - } - - private var routes: some View { - VStack(alignment: .leading, spacing: 0) { - Rectangle() - .fill(ShareStatsBrand.rule) - .frame(height: 1) - HStack(alignment: .firstTextBaseline) { - Text("MODEL ROUTES") - Spacer() - Text(self.routeHeaderDetail) - } - .font(ShareStatsBrand.mono(size: 13, weight: .bold)) - .tracking(0.8) - .foregroundStyle(ShareStatsBrand.secondary) - .padding(.top, 16) - .padding(.bottom, 9) - - if self.payload.topModels.isEmpty { - Text("Model breakdown unavailable") - .font(.system(size: 20, weight: .semibold)) - .foregroundStyle(ShareStatsBrand.secondary) - .frame(height: 40) - } else { + private var rankings: some View { + HStack(alignment: .top, spacing: 46) { + VStack(alignment: .leading, spacing: 6) { + self.sectionHeader("SUBSCRIPTIONS", detail: "\(self.payload.providers.count) CONNECTED") ForEach( - Array(self.payload.topModels.prefix(3).enumerated()), + Array(self.payload.providers.prefix(self.providerDisplayLimit).enumerated()), id: \.offset) - { _, model in - HStack { - Text(model.modelName) - .font(.system(size: 20, weight: .semibold)) - .tracking(-0.3) - Spacer() - Text("via \(model.sourceName)") - .font(ShareStatsBrand.mono(size: 15, weight: .semibold)) - .foregroundStyle(ShareStatsBrand.secondary) - } - .frame(height: 40) - .overlay(alignment: .bottom) { - Rectangle() - .fill(ShareStatsBrand.rule) - .frame(height: 1) - } + { index, provider in + ShareStatsProviderRow( + rank: index + 1, + provider: provider, + days: self.payload.days, + color: ShareStatsPalette.color(at: index)) + } + if self.payload.providers.count > self.providerDisplayLimit { + Text("+\(self.payload.providers.count - self.providerDisplayLimit) more configured") + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + .padding(.leading, 20) } } - - HStack { - Text(self.routeOverflowDetail) - Spacer() - Text("\(self.payload.providers.count) sources tracked") + .frame(width: 554, alignment: .topLeading) + + VStack(alignment: .leading, spacing: 0) { + VStack(alignment: .leading, spacing: 6) { + self.sectionHeader("TOP MODELS", detail: "BY USAGE") + if self.payload.topModels.isEmpty { + Text("No model-level history in this local snapshot") + .font(.system(size: 18, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + .padding(.top, 4) + } else { + ForEach( + Array(self.payload.topModels.prefix(3).enumerated()), + id: \.offset) + { index, model in + ShareStatsModelRow( + rank: index + 1, + model: model, + color: self.color(for: model)) + } + } + } + Text("Only aggregate usage, plan tier, and estimated spend are included.") + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(self.secondary) + .padding(.top, 18) } - .font(ShareStatsBrand.mono(size: 12, weight: .semibold)) - .foregroundStyle(ShareStatsBrand.secondary) - .padding(.top, 9) + .frame(maxWidth: .infinity, alignment: .topLeading) } } - private var routeHeaderDetail: String { - guard !self.payload.topModels.isEmpty else { return "UNAVAILABLE" } - return "\(min(3, self.payload.topModels.count)) OF \(self.payload.topModels.count) ROUTES" + private var providerDisplayLimit: Int { + Self.providerDisplayLimit(for: self.payload.providers.count) } - private var routeOverflowDetail: String { - var details: [String] = [] - let overflowCount = max(0, self.payload.topModels.count - 3) - if overflowCount > 0 { - details.append("+\(overflowCount) more route\(overflowCount == 1 ? "" : "s")") - } - let collapsedCount = max(0, self.payload.shareableModelRouteCount - self.payload.topModels.count) - if collapsedCount > 0 { - details.append("\(collapsedCount) grouped") - } - if self.payload.hiddenModelRouteCount > 0 { - details.append("\(self.payload.hiddenModelRouteCount) private") - } - if !self.payload.modelRouteCoverageIsComplete { - details.append("partial history") + private func color(for model: ShareStatsModelPayload) -> Color { + guard let index = Self.providerPaletteIndex(for: model, providers: self.payload.providers) else { + return self.secondary } - return details.isEmpty ? "All safe routes shown" : details.joined(separator: " · ") + return ShareStatsPalette.color(at: index) } -} - -private struct ShareStatsActivity: View { - let payload: ShareStatsPayload - private var calendar: Calendar { - Calendar.current + private func sectionHeader(_ title: String, detail: String) -> some View { + HStack(alignment: .firstTextBaseline) { + Text(title) + .font(.system(size: 18, weight: .semibold, design: .rounded)) + .tracking(1.5) + Spacer() + Text(detail) + .font(.system(size: 16, weight: .semibold, design: .rounded)) + .tracking(1.0) + } + .foregroundStyle(self.secondary) } - private var periodEnd: Date { - self.calendar.startOfDay(for: self.payload.periodEnd) + private var footer: some View { + HStack(spacing: 12) { + Label("LOCAL · AGGREGATE ONLY", systemImage: "lock.shield") + Spacer() + Text("DATA THROUGH \(ShareStatsFormatting.dataThrough(self.payload.periodEnd).uppercased())") + } + .font(.system(size: 14, weight: .medium, design: .rounded)) + .tracking(0.7) + .foregroundStyle(self.secondary) } +} - private var periodStart: Date { - self.calendar.date(byAdding: .day, value: -(self.payload.days - 1), to: self.periodEnd) - ?? self.periodEnd - } +private struct ShareStatsModelRow: View { + let rank: Int + let model: ShareStatsModelPayload + let color: Color var body: some View { - VStack(alignment: .leading, spacing: 0) { - Text( - "\(ShareStatsFormatting.shortRange(from: self.periodStart, through: self.periodEnd))" - + " · \(self.payload.days)-DAY SNAPSHOT") - .font(ShareStatsBrand.mono(size: 13, weight: .bold)) - .tracking(1) - .foregroundStyle(ShareStatsBrand.secondary) - - HStack(alignment: .lastTextBaseline, spacing: 9) { - Text(self.activeDayHeadline) - .font(.system(size: 72, weight: .heavy)) - .tracking(-4.5) - .monospacedDigit() - .foregroundStyle(ShareStatsBrand.activeGradient) - if self.payload.dailySourceCount > 0 { - Text("of \(self.payload.days)") - .font(.system(size: 23, weight: .bold)) - .foregroundStyle(ShareStatsBrand.secondary) - .padding(.bottom, 7) - } + HStack(spacing: 9) { + Capsule() + .fill(self.color) + .frame(width: 5, height: 34) + Text(String(format: "%02d", self.rank)) + .font(.system(size: 17, weight: .bold, design: .rounded)) + .monospacedDigit() + .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) + .frame(width: 27, alignment: .leading) + VStack(alignment: .leading, spacing: 1) { + Text(self.model.modelName) + .font(.system(size: 20, weight: .semibold, design: .rounded)) + .lineLimit(1) + .minimumScaleFactor(0.82) + Text(self.model.sourceName) + .font(.system(size: 16, weight: .medium, design: .rounded)) + .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) + .lineLimit(1) } - .frame(height: 72, alignment: .bottomLeading) - .padding(.top, 18) - - Text(self.payload.dailySourceCount == 0 ? "daily activity unavailable" : self.activeDayLabel) - .font(.system(size: 21, weight: .semibold)) - .padding(.top, 8) - - ShareStatsCalendar( - cells: self.calendarCells, - start: self.periodStart, - end: self.periodEnd, - isPartial: !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals) - .frame(maxWidth: .infinity) - .padding(.top, 24) - Spacer(minLength: 10) - - HStack { - Text(self.payload.dailyCoverageIsComplete ? "DAILY TOKEN ACTIVITY" : "KNOWN DAILY ACTIVITY") - Spacer() - Text(self.sourceCoverage) - } - .font(ShareStatsBrand.mono(size: 12, weight: .bold)) - .tracking(0.35) - .foregroundStyle(ShareStatsBrand.secondary) + Text(self.detail) + .font(.system(size: 17, weight: .medium, design: .rounded)) + .monospacedDigit() + .foregroundStyle(Color(red: 0.78, green: 0.74, blue: 0.69)) + .lineLimit(1) } - .padding(.horizontal, 38) - .padding(.top, 38) - .padding(.bottom, 29) - } - - private var activeDayCount: Int { - self.payload.dailyTokens.count { ($0.totalTokens ?? 0) > 0 } - } - - private var activeDayHeadline: String { - guard self.payload.dailySourceCount > 0 else { return "—" } - let isLowerBound = !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals - return isLowerBound ? "≥\(self.activeDayCount)" : "\(self.activeDayCount)" - } - - private var activeDayLabel: String { - !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals - ? "known active days" - : "days active" - } - - private var sourceCoverage: String { - guard self.payload.dailySourceCount > 0 else { return "NO SOURCE DATA" } - if self.payload.dailyCoverageIsComplete { - return "FULL · \(self.payload.dailySourceCount) OF \(self.payload.providers.count) SOURCES" + .padding(.horizontal, 9) + .frame(height: 48) + .background(Color.white.opacity(0.035), in: RoundedRectangle(cornerRadius: 9)) + .overlay { + RoundedRectangle(cornerRadius: 9) + .stroke(Color.white.opacity(0.10), lineWidth: 1) } - return "PARTIAL · \(self.payload.dailyFullSourceCount) OF \(self.payload.providers.count) FULL" } - private var calendarCells: [ShareStatsCalendarCell] { - var dailyTokens: [Date: ShareStatsDailyPayload] = [:] - for point in self.payload.dailyTokens { - dailyTokens[self.calendar.startOfDay(for: point.day)] = point - } - let maximum = dailyTokens.values.compactMap(\.totalTokens).max() ?? 0 - let leadingCount = max(0, self.calendar.component(.weekday, from: self.periodStart) - 1) - let requiredCount = leadingCount + self.payload.days - let totalCount = Int(ceil(Double(requiredCount) / 7.0)) * 7 - - return (0..= 0, - dayOffset < self.payload.days, - let day = self.calendar.date(byAdding: .day, value: dayOffset, to: self.periodStart) - else { - return ShareStatsCalendarCell(id: index, level: nil, isUnavailable: false) - } - let normalizedDay = self.calendar.startOfDay(for: day) - let tokens: Int? = if let recordedPoint = dailyTokens[normalizedDay] { - recordedPoint.totalTokens - } else { - self.payload.dailyCoverageIsComplete ? 0 : nil - } - return ShareStatsCalendarCell( - id: index, - level: tokens.map { ShareStatsCardView.activityLevel(totalTokens: $0, maximum: maximum) }, - isUnavailable: tokens == nil) + private var detail: String { + if let cost = self.model.estimatedCost, cost.isFinite { + return "~\(ShareStatsFormatting.currency(cost, code: self.model.currencyCode))" } + return self.model.totalTokens.map(ShareStatsFormatting.compactCount) ?? "used" } } -private struct ShareStatsCalendarCell: Identifiable { - let id: Int - let level: Int? - let isUnavailable: Bool -} - -private struct ShareStatsCalendar: View { - let cells: [ShareStatsCalendarCell] - let start: Date - let end: Date - let isPartial: Bool - - private var weeks: [[ShareStatsCalendarCell]] { - stride(from: 0, to: self.cells.count, by: 7).map { startIndex in - Array(self.cells[startIndex.. String { - switch index { - case 1: "Mon" - case 3: "Wed" - case 5: "Fri" - default: "" + private var detail: String { + var metrics: [String] = [] + if let tokens = self.provider.totalTokens { + metrics.append(ShareStatsFormatting.compactCount(tokens)) } + if let cost = self.provider.estimatedCost, cost.isFinite { + metrics.append("~\(ShareStatsFormatting.currency(cost, code: self.provider.currencyCode))") + if self.provider.coveredDayCount < self.days { + metrics.append("\(self.provider.coveredDayCount)/\(self.days)d") + } + } else { + metrics.append("Spend unavailable") + } + return metrics.isEmpty ? "connected" : metrics.joined(separator: " · ") } } -private struct ShareStatsBrandBackground: View { - var body: some View { - ZStack { - ShareStatsBrand.canvas - RadialGradient( - colors: [ShareStatsBrand.orange.opacity(0.42), .clear], - center: .topLeading, - startRadius: 0, - endRadius: 460) - RadialGradient( - colors: [ShareStatsBrand.violet.opacity(0.46), .clear], - center: .topTrailing, - startRadius: 0, - endRadius: 480) - RadialGradient( - colors: [ShareStatsBrand.teal.opacity(0.22), .clear], - center: .bottom, - startRadius: 0, - endRadius: 420) - RadialGradient( - colors: [ShareStatsBrand.pink.opacity(0.28), .clear], - center: .bottomTrailing, - startRadius: 0, - endRadius: 360) - } +private enum ShareStatsPalette { + static let colors = [ + Color(red: 1.00, green: 0.60, blue: 0.38), + Color(red: 0.60, green: 0.66, blue: 1.00), + Color(red: 0.38, green: 0.84, blue: 0.72), + Color(red: 0.95, green: 0.79, blue: 0.41), + Color(red: 0.44, green: 0.77, blue: 0.96), + Color(red: 0.95, green: 0.55, blue: 0.67), + ] + + static func color(at index: Int) -> Color { + self.colors[index % self.colors.count] } } -@MainActor -private enum ShareStatsBrand { - static let appIcon: NSImage = Bundle.module - .url(forResource: "Icon-classic", withExtension: "icns") - .flatMap(NSImage.init(contentsOf:)) - ?? NSApplication.shared.applicationIconImage +private struct ShareStatsMark: View { + let accent: Color - static let canvas = Color(red: 10.0 / 255.0, green: 10.0 / 255.0, blue: 12.0 / 255.0) - static let surface = Color(red: 19.0 / 255.0, green: 20.0 / 255.0, blue: 24.0 / 255.0) - static let primary = Color(red: 240.0 / 255.0, green: 240.0 / 255.0, blue: 243.0 / 255.0) - static let secondary = Color(red: 182.0 / 255.0, green: 189.0 / 255.0, blue: 198.0 / 255.0) - static let orange = Color(red: 255.0 / 255.0, green: 122.0 / 255.0, blue: 26.0 / 255.0) - static let pink = Color(red: 255.0 / 255.0, green: 61.0 / 255.0, blue: 139.0 / 255.0) - static let violet = Color(red: 110.0 / 255.0, green: 90.0 / 255.0, blue: 255.0 / 255.0) - static let teal = Color(red: 22.0 / 255.0, green: 211.0 / 255.0, blue: 180.0 / 255.0) - static let rule = Color.white.opacity(0.18) - - static let aurora = LinearGradient( - colors: [ShareStatsBrand.orange, ShareStatsBrand.pink, ShareStatsBrand.violet, ShareStatsBrand.teal], - startPoint: .leading, - endPoint: .trailing) - - static let activeGradient = LinearGradient( - colors: [ShareStatsBrand.orange, ShareStatsBrand.pink], - startPoint: .topLeading, - endPoint: .bottomTrailing) - - static func mono(size: CGFloat, weight: Font.Weight) -> Font { - .system(size: size, weight: weight, design: .monospaced) - } - - static func activity(level: Int?) -> Color { - guard let level else { return .clear } - switch level { - case 1: return self.teal.opacity(0.18) - case 2: return self.teal.opacity(0.34) - case 3: return self.teal.opacity(0.52) - case 4: return self.teal.opacity(0.74) - case 5: return self.teal.opacity(0.98) - default: return Color.white.opacity(0.055) + var body: some View { + HStack(alignment: .bottom, spacing: 4) { + ForEach(Array([0.38, 0.68, 1.0].enumerated()), id: \.offset) { _, height in + Capsule() + .fill(self.accent) + .frame(width: 5, height: 28 * height) + } } + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) } } diff --git a/Sources/CodexBar/ShareStatsClassicCardView.swift b/Sources/CodexBar/ShareStatsClassicCardView.swift deleted file mode 100644 index 1499e660f5..0000000000 --- a/Sources/CodexBar/ShareStatsClassicCardView.swift +++ /dev/null @@ -1,363 +0,0 @@ -import SwiftUI - -struct ShareStatsClassicCardView: View { - static let size = CGSize(width: 1200, height: 630) - - let payload: ShareStatsPayload - - static func providerDisplayLimit(for providerCount: Int) -> Int { - providerCount > 5 ? 4 : min(providerCount, 5) - } - - static func providerPaletteIndex( - for model: ShareStatsModelPayload, - providers: [ShareStatsProviderPayload]) -> Int? - { - providers.firstIndex { $0.provider == model.provider } - } - - private let background = Color(red: 0.078, green: 0.067, blue: 0.063) - private let primary = Color(red: 0.96, green: 0.94, blue: 0.91) - private let secondary = Color(red: 0.70, green: 0.66, blue: 0.62) - private let accent = Color(red: 0.93, green: 0.56, blue: 0.36) - - var body: some View { - VStack(alignment: .leading, spacing: 0) { - self.header - self.hero - .padding(.top, 16) - Rectangle() - .fill(self.secondary.opacity(0.22)) - .frame(height: 1) - .padding(.vertical, 17) - self.rankings - .frame(height: 286, alignment: .top) - Spacer(minLength: 10) - self.footer - } - .padding(.horizontal, 52) - .padding(.vertical, 34) - .frame(width: Self.size.width, height: Self.size.height, alignment: .topLeading) - .background(self.background) - .foregroundStyle(self.primary) - .environment(\.colorScheme, .dark) - } - - private var header: some View { - HStack(alignment: .center) { - HStack(spacing: 14) { - ShareStatsMark(accent: self.accent) - .frame(width: 34, height: 34) - Text("CodexBar") - .font(.system(size: 26, weight: .semibold, design: .rounded)) - } - Spacer() - Text("LOCAL SNAPSHOT") - .font(.system(size: 14, weight: .semibold, design: .rounded)) - .tracking(1.8) - .foregroundStyle(self.secondary) - .padding(.horizontal, 15) - .padding(.vertical, 9) - .overlay { - RoundedRectangle(cornerRadius: 12) - .stroke(self.secondary.opacity(0.45), lineWidth: 1) - } - } - } - - private var hero: some View { - HStack(alignment: .bottom, spacing: 52) { - VStack(alignment: .leading, spacing: 2) { - Text(self.tokenLabel) - .font(.system(size: 20, weight: .semibold, design: .rounded)) - .tracking(1.8) - .foregroundStyle(self.secondary) - Text(self.tokenHeadline) - .font(.system(size: 104, weight: .semibold, design: .rounded)) - .monospacedDigit() - .lineLimit(1) - .minimumScaleFactor(0.72) - } - .frame(maxWidth: .infinity, alignment: .leading) - - VStack(alignment: .leading, spacing: 9) { - Text("EST. \(self.payload.days)-DAY SPEND") - .font(.system(size: 18, weight: .semibold, design: .rounded)) - .tracking(1.2) - .foregroundStyle(self.secondary) - ForEach(self.payload.currencies.prefix(2)) { currency in - HStack(alignment: .firstTextBaseline) { - Text("\(currency.currencyCode) · \(currency.coveredDayCount)/\(self.payload.days)d") - .font(.system(size: 17, weight: .semibold, design: .rounded)) - .foregroundStyle(self.secondary) - Spacer() - Text(self.spendHeadline(currency)) - .font(.system(size: 32, weight: .semibold, design: .rounded)) - .monospacedDigit() - .lineLimit(1) - .minimumScaleFactor(0.72) - } - } - Text(self.currencySummary) - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - } - .frame(width: 390, alignment: .leading) - } - .frame(height: 132, alignment: .bottom) - } - - private var tokenLabel: String { - let prefix = self.payload.tokenCoverageIsComplete ? "TRACKED TOKENS" : "KNOWN TOKENS" - return "\(prefix) · \(self.payload.days) DAYS" - } - - private var tokenHeadline: String { - guard let totalTokens = self.payload.totalTokens else { return "—" } - let value = ShareStatsFormatting.compactCount(totalTokens) - return self.payload.tokenCoverageIsComplete ? value : "≥\(value)" - } - - private func spendHeadline(_ currency: ShareStatsCurrencyPayload) -> String { - guard let estimatedCost = currency.estimatedCost else { return "Unavailable" } - let value = ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) - let isPartial = currency.pricedSourceCount < currency.sourceCount - || currency.coveredDayCount < self.payload.days - return isPartial ? "≥\(value)" : value - } - - private var currencySummary: String { - let hiddenCount = self.payload.currencies.count - min(self.payload.currencies.count, 2) - return hiddenCount > 0 - ? "+\(hiddenCount) more currencies · see subscription rows" - : "\(self.payload.providers.count) subscriptions · native currencies kept separate" - } - - private var rankings: some View { - HStack(alignment: .top, spacing: 46) { - VStack(alignment: .leading, spacing: 6) { - self.sectionHeader("SUBSCRIPTIONS", detail: "\(self.payload.providers.count) CONNECTED") - ForEach( - Array(self.payload.providers.prefix(self.providerDisplayLimit).enumerated()), - id: \.offset) - { index, provider in - ShareStatsProviderRow( - rank: index + 1, - provider: provider, - days: self.payload.days, - color: ShareStatsPalette.color(at: index)) - } - if self.payload.providers.count > self.providerDisplayLimit { - Text("+\(self.payload.providers.count - self.providerDisplayLimit) more configured") - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - .padding(.leading, 20) - } - } - .frame(width: 554, alignment: .topLeading) - - VStack(alignment: .leading, spacing: 0) { - VStack(alignment: .leading, spacing: 6) { - self.sectionHeader("TOP MODELS", detail: "BY USAGE") - if self.payload.topModels.isEmpty { - Text("No model-level history in this local snapshot") - .font(.system(size: 18, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - .padding(.top, 4) - } else { - ForEach( - Array(self.payload.topModels.prefix(3).enumerated()), - id: \.offset) - { index, model in - ShareStatsModelRow( - rank: index + 1, - model: model, - color: self.color(for: model)) - } - } - } - Text("Only aggregate usage, plan tier, and estimated spend are included.") - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(self.secondary) - .padding(.top, 18) - } - .frame(maxWidth: .infinity, alignment: .topLeading) - } - } - - private var providerDisplayLimit: Int { - Self.providerDisplayLimit(for: self.payload.providers.count) - } - - private func color(for model: ShareStatsModelPayload) -> Color { - guard let index = Self.providerPaletteIndex(for: model, providers: self.payload.providers) else { - return self.secondary - } - return ShareStatsPalette.color(at: index) - } - - private func sectionHeader(_ title: String, detail: String) -> some View { - HStack(alignment: .firstTextBaseline) { - Text(title) - .font(.system(size: 18, weight: .semibold, design: .rounded)) - .tracking(1.5) - Spacer() - Text(detail) - .font(.system(size: 16, weight: .semibold, design: .rounded)) - .tracking(1.0) - } - .foregroundStyle(self.secondary) - } - - private var footer: some View { - HStack(spacing: 12) { - Label("LOCAL · AGGREGATE ONLY", systemImage: "lock.shield") - Spacer() - Text("DATA THROUGH \(ShareStatsFormatting.dataThrough(self.payload.periodEnd).uppercased())") - } - .font(.system(size: 14, weight: .medium, design: .rounded)) - .tracking(0.7) - .foregroundStyle(self.secondary) - } -} - -private struct ShareStatsModelRow: View { - let rank: Int - let model: ShareStatsModelPayload - let color: Color - - var body: some View { - HStack(spacing: 9) { - Capsule() - .fill(self.color) - .frame(width: 5, height: 34) - Text(String(format: "%02d", self.rank)) - .font(.system(size: 17, weight: .bold, design: .rounded)) - .monospacedDigit() - .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) - .frame(width: 27, alignment: .leading) - VStack(alignment: .leading, spacing: 1) { - Text(self.model.modelName) - .font(.system(size: 20, weight: .semibold, design: .rounded)) - .lineLimit(1) - .minimumScaleFactor(0.82) - Text(self.model.sourceName) - .font(.system(size: 16, weight: .medium, design: .rounded)) - .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) - .lineLimit(1) - } - Spacer(minLength: 10) - Text(self.detail) - .font(.system(size: 17, weight: .medium, design: .rounded)) - .monospacedDigit() - .foregroundStyle(Color(red: 0.78, green: 0.74, blue: 0.69)) - .lineLimit(1) - } - .padding(.horizontal, 9) - .frame(height: 48) - .background(Color.white.opacity(0.035), in: RoundedRectangle(cornerRadius: 9)) - .overlay { - RoundedRectangle(cornerRadius: 9) - .stroke(Color.white.opacity(0.10), lineWidth: 1) - } - } - - private var detail: String { - if let cost = self.model.estimatedCost, cost.isFinite { - return "~\(ShareStatsFormatting.currency(cost, code: self.model.currencyCode))" - } - return self.model.totalTokens.map(ShareStatsFormatting.compactCount) ?? "used" - } -} - -private struct ShareStatsProviderRow: View { - let rank: Int - let provider: ShareStatsProviderPayload - let days: Int - let color: Color - - var body: some View { - HStack(spacing: 9) { - Capsule() - .fill(self.color) - .frame(width: 6, height: 30) - Text(String(format: "%02d", self.rank)) - .font(.system(size: 17, weight: .bold, design: .rounded)) - .monospacedDigit() - .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) - .frame(width: 27, alignment: .leading) - HStack(spacing: 8) { - Text(self.provider.providerName) - .font(.system(size: 20, weight: .semibold, design: .rounded)) - .lineLimit(1) - .minimumScaleFactor(0.82) - if let subscriptionName = self.provider.subscriptionName { - Text("· \(subscriptionName)") - .font(.system(size: 17, weight: .medium, design: .rounded)) - .foregroundStyle(Color(red: 0.70, green: 0.66, blue: 0.62)) - .lineLimit(1) - } - } - Spacer(minLength: 12) - Text(self.detail) - .font(.system(size: 18, weight: .medium, design: .rounded)) - .monospacedDigit() - .foregroundStyle(Color(red: 0.78, green: 0.74, blue: 0.69)) - .lineLimit(1) - .minimumScaleFactor(0.82) - } - .padding(.horizontal, 9) - .frame(height: 44) - .background(Color.white.opacity(0.035), in: RoundedRectangle(cornerRadius: 9)) - .overlay { - RoundedRectangle(cornerRadius: 9) - .stroke(Color.white.opacity(0.10), lineWidth: 1) - } - } - - private var detail: String { - var metrics: [String] = [] - if let tokens = self.provider.totalTokens { - metrics.append(ShareStatsFormatting.compactCount(tokens)) - } - if let cost = self.provider.estimatedCost, cost.isFinite { - metrics.append("~\(ShareStatsFormatting.currency(cost, code: self.provider.currencyCode))") - if self.provider.coveredDayCount < self.days { - metrics.append("\(self.provider.coveredDayCount)/\(self.days)d") - } - } else { - metrics.append("Spend unavailable") - } - return metrics.isEmpty ? "connected" : metrics.joined(separator: " · ") - } -} - -private enum ShareStatsPalette { - static let colors = [ - Color(red: 1.00, green: 0.60, blue: 0.38), - Color(red: 0.60, green: 0.66, blue: 1.00), - Color(red: 0.38, green: 0.84, blue: 0.72), - Color(red: 0.95, green: 0.79, blue: 0.41), - Color(red: 0.44, green: 0.77, blue: 0.96), - Color(red: 0.95, green: 0.55, blue: 0.67), - ] - - static func color(at index: Int) -> Color { - self.colors[index % self.colors.count] - } -} - -private struct ShareStatsMark: View { - let accent: Color - - var body: some View { - HStack(alignment: .bottom, spacing: 4) { - ForEach(Array([0.38, 0.68, 1.0].enumerated()), id: \.offset) { _, height in - Capsule() - .fill(self.accent) - .frame(width: 5, height: 28 * height) - } - } - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) - } -} diff --git a/Sources/CodexBar/ShareStatsModelActivityCardView.swift b/Sources/CodexBar/ShareStatsModelActivityCardView.swift new file mode 100644 index 0000000000..072d1457d6 --- /dev/null +++ b/Sources/CodexBar/ShareStatsModelActivityCardView.swift @@ -0,0 +1,552 @@ +import AppKit +import SwiftUI + +struct ShareStatsModelActivityCardView: View { + static let size = CGSize(width: 1200, height: 630) + + let payload: ShareStatsPayload + + static func activityLevel(totalTokens: Int, maximum: Int) -> Int { + guard totalTokens > 0, maximum > 0 else { return 0 } + let scaled = Int(ceil(Double(totalTokens) / Double(maximum) * 5)) + return min(5, max(1, scaled)) + } + + var body: some View { + ZStack { + ShareStatsBrandBackground() + HStack(spacing: 0) { + ShareStatsStory(payload: self.payload) + .frame(width: 750) + .background(ShareStatsBrand.canvas.opacity(0.78)) + ShareStatsActivity(payload: self.payload) + .frame(width: 450) + .background(ShareStatsBrand.surface.opacity(0.82)) + .overlay(alignment: .leading) { + Rectangle() + .fill(Color.white.opacity(0.12)) + .frame(width: 1) + } + } + } + .frame(width: Self.size.width, height: Self.size.height) + .clipped() + .foregroundStyle(ShareStatsBrand.primary) + .environment(\.colorScheme, .dark) + } +} + +private struct ShareStatsStory: View { + let payload: ShareStatsPayload + + var body: some View { + VStack(alignment: .leading, spacing: 0) { + self.header + self.headline + .padding(.top, 44) + self.tokenHero + .padding(.top, 26) + self.spend + .padding(.top, 29) + self.routes + .padding(.top, 32) + Spacer(minLength: 8) + Text("\(self.payload.days) DAYS · AGGREGATED LOCALLY · NO PROMPTS SHARED") + .font(ShareStatsBrand.mono(size: 12, weight: .semibold)) + .tracking(0.4) + .foregroundStyle(ShareStatsBrand.secondary) + } + .padding(.horizontal, 52) + .padding(.top, 38) + .padding(.bottom, 28) + } + + private var header: some View { + HStack(spacing: 10) { + Image(nsImage: ShareStatsBrand.appIcon) + .resizable() + .interpolation(.high) + .frame(width: 30, height: 30) + .clipShape(RoundedRectangle(cornerRadius: 7)) + .overlay { + RoundedRectangle(cornerRadius: 7) + .stroke(Color.white.opacity(0.16), lineWidth: 1) + } + Text("CodexBar") + .font(.system(size: 18, weight: .semibold)) + .tracking(-0.3) + } + } + + private var headline: some View { + HStack(spacing: 0) { + Text("You kept ") + Text("the models") + .foregroundStyle(ShareStatsBrand.aurora) + Text(" busy.") + } + .font(.system(size: 43, weight: .semibold)) + .tracking(-1.8) + } + + private var tokenHero: some View { + HStack(alignment: .lastTextBaseline, spacing: 17) { + Text(self.tokenHeadline) + .font(.system(size: 126, weight: .bold)) + .tracking(-7) + .monospacedDigit() + .lineLimit(1) + .minimumScaleFactor(0.72) + Text(self.payload.tokenCoverageIsComplete ? "TOKENS" : "KNOWN TOKENS") + .font(ShareStatsBrand.mono(size: 15, weight: .bold)) + .tracking(2) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.bottom, 11) + } + .frame(height: 106, alignment: .bottomLeading) + } + + private var tokenHeadline: String { + guard let totalTokens = self.payload.totalTokens else { return "—" } + let value = ShareStatsFormatting.compactCount(totalTokens) + return self.payload.tokenCoverageIsComplete ? value : "≥\(value)" + } + + private var spend: some View { + HStack(alignment: .firstTextBaseline, spacing: 12) { + Text(self.spendHeadline) + .font(.system(size: 32, weight: .bold)) + .tracking(-1.3) + .foregroundStyle(ShareStatsBrand.teal) + .lineLimit(1) + .minimumScaleFactor(0.72) + Text(self.spendDetail) + .font(.system(size: 14, weight: .regular)) + .foregroundStyle(ShareStatsBrand.secondary) + .lineLimit(1) + .minimumScaleFactor(0.8) + } + } + + private var spendHeadline: String { + let pricedCurrencies = self.payload.currencies.compactMap { currency -> String? in + guard let estimatedCost = currency.estimatedCost else { return nil } + let knownSpend = ShareStatsFormatting.currency(estimatedCost, code: currency.currencyCode) + let isPartial = currency.pricedSourceCount < currency.sourceCount + || currency.coveredDayCount < self.payload.days + return isPartial ? "≥\(knownSpend)" : knownSpend + } + guard !pricedCurrencies.isEmpty else { return "—" } + let shown = pricedCurrencies.prefix(2).joined(separator: " · ") + if pricedCurrencies.count > 2 { + return "\(shown) +\(pricedCurrencies.count - 2)" + } + return shown + } + + private var spendDetail: String { + guard self.pricedSourceCount > 0 else { + return "estimated token spend unavailable · \(self.payload.providers.count) sources tracked" + } + let coverage = self.payload.currencies.contains { + $0.estimatedCost != nil + && ($0.pricedSourceCount < $0.sourceCount || $0.coveredDayCount < self.payload.days) + } ? "known lower bound · " : "" + return "estimated token spend · \(coverage)pricing for \(self.pricedSourceCount) " + + "of \(self.payload.providers.count) sources" + } + + private var pricedSourceCount: Int { + self.payload.providers.count { $0.estimatedCost != nil } + } + + private var routes: some View { + VStack(alignment: .leading, spacing: 0) { + Rectangle() + .fill(ShareStatsBrand.rule) + .frame(height: 1) + HStack(alignment: .firstTextBaseline) { + Text("MODEL ROUTES") + Spacer() + Text(self.routeHeaderDetail) + } + .font(ShareStatsBrand.mono(size: 13, weight: .bold)) + .tracking(0.8) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.top, 16) + .padding(.bottom, 9) + + if self.payload.topModels.isEmpty { + Text("Model breakdown unavailable") + .font(.system(size: 20, weight: .semibold)) + .foregroundStyle(ShareStatsBrand.secondary) + .frame(height: 40) + } else { + ForEach( + Array(self.payload.topModels.prefix(3).enumerated()), + id: \.offset) + { _, model in + HStack { + Text(model.modelName) + .font(.system(size: 20, weight: .semibold)) + .tracking(-0.3) + Spacer() + Text("via \(model.sourceName)") + .font(ShareStatsBrand.mono(size: 15, weight: .semibold)) + .foregroundStyle(ShareStatsBrand.secondary) + } + .frame(height: 40) + .overlay(alignment: .bottom) { + Rectangle() + .fill(ShareStatsBrand.rule) + .frame(height: 1) + } + } + } + + HStack { + Text(self.routeOverflowDetail) + Spacer() + Text("\(self.payload.providers.count) sources tracked") + } + .font(ShareStatsBrand.mono(size: 12, weight: .semibold)) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.top, 9) + } + } + + private var routeHeaderDetail: String { + guard !self.payload.topModels.isEmpty else { return "UNAVAILABLE" } + return "\(min(3, self.payload.topModels.count)) OF \(self.payload.topModels.count) ROUTES" + } + + private var routeOverflowDetail: String { + var details: [String] = [] + let overflowCount = max(0, self.payload.topModels.count - 3) + if overflowCount > 0 { + details.append("+\(overflowCount) more route\(overflowCount == 1 ? "" : "s")") + } + let collapsedCount = max(0, self.payload.shareableModelRouteCount - self.payload.topModels.count) + if collapsedCount > 0 { + details.append("\(collapsedCount) grouped") + } + if self.payload.hiddenModelRouteCount > 0 { + details.append("\(self.payload.hiddenModelRouteCount) private") + } + if !self.payload.modelRouteCoverageIsComplete { + details.append("partial history") + } + return details.isEmpty ? "All safe routes shown" : details.joined(separator: " · ") + } +} + +private struct ShareStatsActivity: View { + let payload: ShareStatsPayload + + private var calendar: Calendar { + Calendar.current + } + + private var periodEnd: Date { + self.calendar.startOfDay(for: self.payload.periodEnd) + } + + private var periodStart: Date { + self.calendar.date(byAdding: .day, value: -(self.payload.days - 1), to: self.periodEnd) + ?? self.periodEnd + } + + var body: some View { + VStack(alignment: .leading, spacing: 0) { + Text( + "\(ShareStatsFormatting.shortRange(from: self.periodStart, through: self.periodEnd))" + + " · \(self.payload.days)-DAY SNAPSHOT") + .font(ShareStatsBrand.mono(size: 13, weight: .bold)) + .tracking(1) + .foregroundStyle(ShareStatsBrand.secondary) + + HStack(alignment: .lastTextBaseline, spacing: 9) { + Text(self.activeDayHeadline) + .font(.system(size: 72, weight: .heavy)) + .tracking(-4.5) + .monospacedDigit() + .foregroundStyle(ShareStatsBrand.activeGradient) + if self.payload.dailySourceCount > 0 { + Text("of \(self.payload.days)") + .font(.system(size: 23, weight: .bold)) + .foregroundStyle(ShareStatsBrand.secondary) + .padding(.bottom, 7) + } + } + .frame(height: 72, alignment: .bottomLeading) + .padding(.top, 18) + + Text(self.payload.dailySourceCount == 0 ? "daily activity unavailable" : self.activeDayLabel) + .font(.system(size: 21, weight: .semibold)) + .padding(.top, 8) + + ShareStatsCalendar( + cells: self.calendarCells, + start: self.periodStart, + end: self.periodEnd, + isPartial: !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals) + .frame(maxWidth: .infinity) + .padding(.top, 24) + + Spacer(minLength: 10) + + HStack { + Text(self.payload.dailyCoverageIsComplete ? "DAILY TOKEN ACTIVITY" : "KNOWN DAILY ACTIVITY") + Spacer() + Text(self.sourceCoverage) + } + .font(ShareStatsBrand.mono(size: 12, weight: .bold)) + .tracking(0.35) + .foregroundStyle(ShareStatsBrand.secondary) + } + .padding(.horizontal, 38) + .padding(.top, 38) + .padding(.bottom, 29) + } + + private var activeDayCount: Int { + self.payload.dailyTokens.count { ($0.totalTokens ?? 0) > 0 } + } + + private var activeDayHeadline: String { + guard self.payload.dailySourceCount > 0 else { return "—" } + let isLowerBound = !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals + return isLowerBound ? "≥\(self.activeDayCount)" : "\(self.activeDayCount)" + } + + private var activeDayLabel: String { + !self.payload.dailyCoverageIsComplete || self.payload.hasUnavailableDailyTotals + ? "known active days" + : "days active" + } + + private var sourceCoverage: String { + guard self.payload.dailySourceCount > 0 else { return "NO SOURCE DATA" } + if self.payload.dailyCoverageIsComplete { + return "FULL · \(self.payload.dailySourceCount) OF \(self.payload.providers.count) SOURCES" + } + return "PARTIAL · \(self.payload.dailyFullSourceCount) OF \(self.payload.providers.count) FULL" + } + + private var calendarCells: [ShareStatsCalendarCell] { + var dailyTokens: [Date: ShareStatsDailyPayload] = [:] + for point in self.payload.dailyTokens { + dailyTokens[self.calendar.startOfDay(for: point.day)] = point + } + let maximum = dailyTokens.values.compactMap(\.totalTokens).max() ?? 0 + let leadingCount = max(0, self.calendar.component(.weekday, from: self.periodStart) - 1) + let requiredCount = leadingCount + self.payload.days + let totalCount = Int(ceil(Double(requiredCount) / 7.0)) * 7 + + return (0..= 0, + dayOffset < self.payload.days, + let day = self.calendar.date(byAdding: .day, value: dayOffset, to: self.periodStart) + else { + return ShareStatsCalendarCell(id: index, level: nil, isUnavailable: false) + } + let normalizedDay = self.calendar.startOfDay(for: day) + let tokens: Int? = if let recordedPoint = dailyTokens[normalizedDay] { + recordedPoint.totalTokens + } else { + self.payload.dailyCoverageIsComplete ? 0 : nil + } + return ShareStatsCalendarCell( + id: index, + level: tokens.map { ShareStatsModelActivityCardView.activityLevel(totalTokens: $0, maximum: maximum) }, + isUnavailable: tokens == nil) + } + } +} + +private struct ShareStatsCalendarCell: Identifiable { + let id: Int + let level: Int? + let isUnavailable: Bool +} + +private struct ShareStatsCalendar: View { + let cells: [ShareStatsCalendarCell] + let start: Date + let end: Date + let isPartial: Bool + + private var weeks: [[ShareStatsCalendarCell]] { + stride(from: 0, to: self.cells.count, by: 7).map { startIndex in + Array(self.cells[startIndex.. String { + switch index { + case 1: "Mon" + case 3: "Wed" + case 5: "Fri" + default: "" + } + } +} + +private struct ShareStatsBrandBackground: View { + var body: some View { + ZStack { + ShareStatsBrand.canvas + RadialGradient( + colors: [ShareStatsBrand.orange.opacity(0.42), .clear], + center: .topLeading, + startRadius: 0, + endRadius: 460) + RadialGradient( + colors: [ShareStatsBrand.violet.opacity(0.46), .clear], + center: .topTrailing, + startRadius: 0, + endRadius: 480) + RadialGradient( + colors: [ShareStatsBrand.teal.opacity(0.22), .clear], + center: .bottom, + startRadius: 0, + endRadius: 420) + RadialGradient( + colors: [ShareStatsBrand.pink.opacity(0.28), .clear], + center: .bottomTrailing, + startRadius: 0, + endRadius: 360) + } + } +} + +@MainActor +private enum ShareStatsBrand { + static let appIcon: NSImage = Bundle.module + .url(forResource: "Icon-classic", withExtension: "icns") + .flatMap(NSImage.init(contentsOf:)) + ?? NSApplication.shared.applicationIconImage + + static let canvas = Color(red: 10.0 / 255.0, green: 10.0 / 255.0, blue: 12.0 / 255.0) + static let surface = Color(red: 19.0 / 255.0, green: 20.0 / 255.0, blue: 24.0 / 255.0) + static let primary = Color(red: 240.0 / 255.0, green: 240.0 / 255.0, blue: 243.0 / 255.0) + static let secondary = Color(red: 182.0 / 255.0, green: 189.0 / 255.0, blue: 198.0 / 255.0) + static let orange = Color(red: 255.0 / 255.0, green: 122.0 / 255.0, blue: 26.0 / 255.0) + static let pink = Color(red: 255.0 / 255.0, green: 61.0 / 255.0, blue: 139.0 / 255.0) + static let violet = Color(red: 110.0 / 255.0, green: 90.0 / 255.0, blue: 255.0 / 255.0) + static let teal = Color(red: 22.0 / 255.0, green: 211.0 / 255.0, blue: 180.0 / 255.0) + static let rule = Color.white.opacity(0.18) + + static let aurora = LinearGradient( + colors: [ShareStatsBrand.orange, ShareStatsBrand.pink, ShareStatsBrand.violet, ShareStatsBrand.teal], + startPoint: .leading, + endPoint: .trailing) + + static let activeGradient = LinearGradient( + colors: [ShareStatsBrand.orange, ShareStatsBrand.pink], + startPoint: .topLeading, + endPoint: .bottomTrailing) + + static func mono(size: CGFloat, weight: Font.Weight) -> Font { + .system(size: size, weight: weight, design: .monospaced) + } + + static func activity(level: Int?) -> Color { + guard let level else { return .clear } + switch level { + case 1: return self.teal.opacity(0.18) + case 2: return self.teal.opacity(0.34) + case 3: return self.teal.opacity(0.52) + case 4: return self.teal.opacity(0.74) + case 5: return self.teal.opacity(0.98) + default: return Color.white.opacity(0.055) + } + } +} diff --git a/Sources/CodexBar/ShareStatsPayload.swift b/Sources/CodexBar/ShareStatsPayload.swift index d9f874ddc3..6077ec1080 100644 --- a/Sources/CodexBar/ShareStatsPayload.swift +++ b/Sources/CodexBar/ShareStatsPayload.swift @@ -395,7 +395,7 @@ enum ShareStatsSanitizer { .split(separator: "-") .map(String.init) guard let first = parts.first, - allowedStarts.contains(where: first.hasPrefix) + allowedStarts.contains(where: { self.isAllowedPublicStart(first, allowedStart: $0) }) else { return nil } let publicQualifiers: Set = [ @@ -415,6 +415,15 @@ enum ShareStatsSanitizer { return canonical.joined(separator: "-") } + private static func isAllowedPublicStart(_ value: String, allowedStart: String) -> Bool { + guard value.hasPrefix(allowedStart) else { return false } + let suffix = String(value.dropFirst(allowedStart.count)) + guard !suffix.isEmpty else { return true } + return suffix.range( + of: #"^(?:\d+(?:\.\d+)*|\.\d+(?:\.\d+)*)(?::\d+)?$"#, + options: .regularExpression) != nil + } + private static func prettySuffix(_ value: String) -> String { value .replacingOccurrences(of: "_", with: "-") diff --git a/Sources/CodexBar/ShareStatsRenderer.swift b/Sources/CodexBar/ShareStatsRenderer.swift index e9716b2167..f2a4c495f7 100644 --- a/Sources/CodexBar/ShareStatsRenderer.swift +++ b/Sources/CodexBar/ShareStatsRenderer.swift @@ -54,9 +54,9 @@ enum ShareStatsRenderer { private static func card(payload: ShareStatsPayload, style: ShareStatsCardStyle) -> AnyView { switch style { case .summary: - AnyView(ShareStatsClassicCardView(payload: payload)) - case .modelActivity: AnyView(ShareStatsCardView(payload: payload)) + case .modelActivity: + AnyView(ShareStatsModelActivityCardView(payload: payload)) } } } diff --git a/Sources/CodexBar/ShareStatsWindowController.swift b/Sources/CodexBar/ShareStatsWindowController.swift index e697595428..d0eb7f5586 100644 --- a/Sources/CodexBar/ShareStatsWindowController.swift +++ b/Sources/CodexBar/ShareStatsWindowController.swift @@ -144,9 +144,9 @@ private struct ShareStatsScaledPreview: View { Group { switch self.style { case .summary: - ShareStatsClassicCardView(payload: self.payload) - case .modelActivity: ShareStatsCardView(payload: self.payload) + case .modelActivity: + ShareStatsModelActivityCardView(payload: self.payload) } } .scaleEffect(scale, anchor: .topLeading) diff --git a/Tests/CodexBarTests/ShareStatsTests.swift b/Tests/CodexBarTests/ShareStatsTests.swift index 25bbbb47c5..c19bb806c6 100644 --- a/Tests/CodexBarTests/ShareStatsTests.swift +++ b/Tests/CodexBarTests/ShareStatsTests.swift @@ -159,6 +159,8 @@ struct ShareStatsTests { #expect(ShareStatsSanitizer.modelName("openai/gpt-5.4-acme-secret") == "GPT-5.4") #expect(ShareStatsSanitizer.modelName("anthropic/claude-sonnet-4-client-x") == "Claude Sonnet 4") #expect(ShareStatsSanitizer.modelName("z-ai/glm-4.5-orgslug") == "GLM 4.5") + #expect(ShareStatsSanitizer.modelName("openai/gpt-5acmeinternal") == nil) + #expect(ShareStatsSanitizer.modelName("anthropic/claude-sonnetclient") == nil) #expect(ShareStatsSanitizer.modelName("acme/private-model-v2") == nil) } @@ -704,10 +706,10 @@ struct ShareStatsTests { @Test @MainActor func `activity levels preserve zero and scale to five steps`() { - #expect(ShareStatsCardView.activityLevel(totalTokens: 0, maximum: 100) == 0) - #expect(ShareStatsCardView.activityLevel(totalTokens: 1, maximum: 100) == 1) - #expect(ShareStatsCardView.activityLevel(totalTokens: 50, maximum: 100) == 3) - #expect(ShareStatsCardView.activityLevel(totalTokens: 100, maximum: 100) == 5) + #expect(ShareStatsModelActivityCardView.activityLevel(totalTokens: 0, maximum: 100) == 0) + #expect(ShareStatsModelActivityCardView.activityLevel(totalTokens: 1, maximum: 100) == 1) + #expect(ShareStatsModelActivityCardView.activityLevel(totalTokens: 50, maximum: 100) == 3) + #expect(ShareStatsModelActivityCardView.activityLevel(totalTokens: 100, maximum: 100) == 5) } @Test