import { GitForkIcon, StarIcon } from "lucide-react" import { type GithubRepoToolPart } from "@/tools" import { safeHttpUrl } from "@/lib/utils" import { Spinner } from "@/components/ui/spinner" const formatCount = new Intl.NumberFormat("en", { notation: "compact", maximumFractionDigits: 1, }).format export function GithubRepoPart({ part }: { part: GithubRepoToolPart }) { switch (part.state) { case "input-streaming": case "input-available": return (
Looking up {part.input?.repo ?? "repository"}…
) case "output-available": if ("error" in part.output) { return (
{part.output.error}
) } return ( {part.output.repo} {formatCount(part.output.stars)} {formatCount(part.output.forks)} {part.output.language} ) case "output-error": return (
Repository lookup failed: {part.errorText}
) default: return null } }