diff --git a/src/shared/components/UsageStats.js b/src/shared/components/UsageStats.js index b5b75062..e29c5ca3 100644 --- a/src/shared/components/UsageStats.js +++ b/src/shared/components/UsageStats.js @@ -4,11 +4,19 @@ import { useState, useEffect, useMemo, useCallback, useRef } from "react"; import { useSearchParams, useRouter } from "next/navigation"; import { FREE_PROVIDERS, AI_PROVIDERS, getProviderByAlias } from "@/shared/constants/providers"; +// Resolve a provider key (built-in id, alias, or custom node id like +// "openai-compatible-chat-096baf9a-...") to a human-friendly name. +// Module-level so standalone components (RecentRequests) can use it too. +function resolveProviderLabel(providerId) { + if (!providerId) return "Unknown Provider"; + const known = getProviderByAlias(providerId) || AI_PROVIDERS[providerId] || FREE_PROVIDERS[providerId]; + return known?.name || known?.uiAlias || known?.alias || providerId; +} + // Keep providers without serviceKinds (default LLM) or with "llm" in serviceKinds function isLLMProvider(id) { const p = AI_PROVIDERS[id]; - if (!p?.serviceKinds) return true; - return p.serviceKinds.includes("llm"); + if (!p?.serviceKinds) return true; return p.serviceKinds.includes("llm"); } import Badge from "./Badge"; import Card from "./Card"; @@ -104,7 +112,7 @@ function RecentRequests({ requests = [] }) { className="py-1.5 font-mono truncate max-w-[80px] text-text-muted" title={r.provider} > - {getProviderLabel(r.provider) || "—"} + {resolveProviderLabel(r.provider) || "—"}