import { Navigate, createFileRoute } from "@tanstack/react-router" import { useQuery } from "@tanstack/react-query" import type { UsageLeaderboardPeriod, UsageLeaderboardRow } from "@/lib/api" import { AppShell, SettingsSection } from "@/components/AppShell" import { Avatar, AvatarFallback } from "@/components/ui/avatar" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { Skeleton } from "@/components/ui/skeleton" import { api } from "@/lib/api" import { useSession } from "@/lib/session" export const Route = createFileRoute("/usage")({ validateSearch: (search: Record) => ({ period: typeof search.period === "string" ? search.period : undefined, }), component: UsagePage, }) const PERIOD_LABELS: Record = { "7d": "Last 7 days", "30d": "Last 30 days", all: "All time", } function UsagePage() { const session = useSession() const period = (Route.useSearch().period as UsageLeaderboardPeriod | undefined) ?? "30d" const navigate = Route.useNavigate() const activePeriod: UsageLeaderboardPeriod = ["7d", "30d", "all"].includes( period ) ? period : "30d" const leaderboard = useQuery({ queryKey: ["usageLeaderboard", activePeriod], queryFn: () => api.usageLeaderboard(activePeriod, 10), enabled: !!session.data, }) if (session.isLoading) { return (
) } if (!session.data) return return ( navigate({ to: "/usage", search: { period: value as UsageLeaderboardPeriod }, }) } > {Object.entries(PERIOD_LABELS).map(([value, label]) => ( {label} ))} } > {leaderboard.isLoading ? (
) : leaderboard.isError ? (

Failed to load usage leaderboard: {leaderboard.error.message}

) : !leaderboard.data?.rows.length ? (
No Open SWE Agent usage has been recorded for{" "} {PERIOD_LABELS[activePeriod].toLowerCase()} yet.
) : ( )}
) } function UsageTable({ rows, totalMembers, }: { rows: Array totalMembers: number }) { return (
{rows.map((row) => ( ))}
Rank User Favorite Model Agent Runs PRs Opened Merged PRs Agent LOC
{row.rank} {row.favorite_model} {formatNumber(row.agent_runs)} {formatNumber(row.prs_opened)} {formatNumber(row.merged_prs)} {formatNumber(row.agent_loc)}
Top {Math.min(10, totalMembers)} of {formatNumber(totalMembers)} member {totalMembers === 1 ? "" : "s"}
) } function UserCell({ row }: { row: UsageLeaderboardRow }) { const initials = initialsFor(row.user.name) return (
{initials}
{row.user.name} {row.user.email ?? row.user.github_login ?? "unknown"}
) } function initialsFor(name: string): string { const parts = name.trim().split(/\s+/).filter(Boolean) if (!parts.length) return "?" const first = parts[0] ?? "?" const second = parts[1] if (!second) return first.slice(0, 2).toUpperCase() return `${first[0] ?? ""}${second[0] ?? ""}`.toUpperCase() } function formatNumber(value: number): string { return new Intl.NumberFormat().format(value) }