47 lines · 1.5 KB · TypeScript
RawDownload
import { ProviderDriverKind } from "@t3tools/contracts";import { ClaudeAI, CursorIcon, Icon, OpenAI, OpenCodeIcon } from "../Icons";import { PROVIDER_OPTIONS } from "../../session-logic"; export const PROVIDER_ICON_BY_PROVIDER: Partial<Record<ProviderDriverKind, Icon>> = {  [ProviderDriverKind.make("codex")]: OpenAI,  [ProviderDriverKind.make("claudeAgent")]: ClaudeAI,  [ProviderDriverKind.make("opencode")]: OpenCodeIcon,  [ProviderDriverKind.make("cursor")]: CursorIcon,}; function isAvailableProviderOption(option: (typeof PROVIDER_OPTIONS)[number]): option is {  value: ProviderDriverKind;  label: string;  available: true;  pickerSidebarBadge?: "new" | "soon";} {  return option.available;} export const AVAILABLE_PROVIDER_OPTIONS = PROVIDER_OPTIONS.filter(isAvailableProviderOption); export type ModelEsque = {  slug: string;  name: string;  shortName?: string | undefined;  subProvider?: string | undefined;}; export function getDisplayModelName(  model: ModelEsque,  options?: { preferShortName?: boolean },): string {  if (options?.preferShortName && model.shortName) {    return model.shortName;  }  return model.name;} export function getTriggerDisplayModelName(model: ModelEsque): string {  return getDisplayModelName(model, { preferShortName: true });} export function getTriggerDisplayModelLabel(model: ModelEsque): string {  const title = getTriggerDisplayModelName(model);  return model.subProvider ? `${model.subProvider} · ${title}` : title;}