import { IntegrationsSelectorLightDesktop } from "./integrations-index-selector/integrations-selector-light-desktop"; import { IntegrationsSelectorDarkDesktop } from "./integrations-index-selector/integrations-selector-dark-desktop"; import { KiteIconLight, KiteIconDark, } from "./integrations-index-selector/kite-icon"; import { IntegrationsSelectorLightMobile } from "./integrations-index-selector/integrations-selector-light-mobile"; import { IntegrationsSelectorDarkMobile } from "./integrations-index-selector/integrations-selector-dark-mobile"; import { IntegrationLinkRoundedButton } from "./integration-link-button/integration-link-rounded-button"; import { ComponentType } from "react"; import { INTEGRATION_ORDER, IntegrationId, getIntegration, } from "@/lib/integrations"; import { hasIntegrationFeature } from "@/lib/integration-features"; import { AgentSpecMarkIcon, A2AIcon } from "@/lib/icons/custom-icons"; import AdkIcon from "../ui/icons/adk"; import Ag2Icon from "../ui/icons/ag2"; import CrewaiIcon from "../ui/icons/crewai"; import LanggraphIcon from "../ui/icons/langgraph"; import DeepAgentsIcon from "../ui/icons/deepagents"; import LlamaIndexIcon from "../ui/icons/llama-index"; import MastraIcon from "../ui/icons/mastra"; import AgnoIcon from "../ui/icons/agno"; import PydanticAiIcon from "../ui/icons/pydantic-ai"; import { MicrosoftIcon } from "../ui/icons/microsoft"; import { AwsStrandsIcon } from "../ui/icons/aws-strands"; // Icon mapping - component-specific const INTEGRATION_ICONS: Record< IntegrationId, ComponentType<{ className?: string }> > = { "built-in-agent": () =>
🪁
, langgraph: LanggraphIcon, deepagents: DeepAgentsIcon, adk: AdkIcon, "microsoft-agent-framework": MicrosoftIcon, "aws-strands": AwsStrandsIcon, mastra: MastraIcon, "pydantic-ai": PydanticAiIcon, "crewai-flows": CrewaiIcon, agno: AgnoIcon, ag2: Ag2Icon, "agent-spec": AgentSpecMarkIcon, llamaindex: LlamaIndexIcon, a2a: A2AIcon, }; interface Integration { id: IntegrationId; label: string; description: string; Icon: ComponentType<{ className?: string }>; href: string; } // Build integrations list from canonical order const INTEGRATIONS: Integration[] = INTEGRATION_ORDER.map((id) => { const meta = getIntegration(id); return { id, label: meta.label, description: meta.description, Icon: INTEGRATION_ICONS[id], href: meta.href, }; }); interface IntegrationsGridProps { targetPage?: string; route?: string; suppressDirectToLLM?: boolean; variant?: "default" | "simple"; } const IntegrationsGrid: React.FC