import Button from "@moduletrace/twui/layout/Button"; import Row from "@moduletrace/twui/layout/Row"; import { BookOpen, Plug, Wrench } from "lucide-react"; import ExtensionAddSelect from "@/src/components/general/extension-add-select"; import useExtensions from "@/src/hooks/use-extensions"; import type { BotExtensionsPayload } from "@/src/types"; import ExtensionRow from "./extension-row"; import SettingsGroup from "./settings-group"; import SettingsList from "./settings-list"; import SettingsStatus from "./settings-status"; type Props = { owner: { bot_id: number } | { workspace_id: number }; owner_name: string; description: string; initial?: BotExtensionsPayload | null; }; /** * The MCP servers, tools and skills a bot or a workspace has, removable, * and a picker to add more. On the bot and workspace settings pages. */ export default function ExtensionsGroup({ owner, owner_name, description, initial }: Props) { const extensions = useExtensions({ owner, owner_name, initial }); const id = "bot_id" in owner ? `bot-${owner.bot_id}` : `workspace-${owner.workspace_id}`; return ( {extensions.attached.map((item) => ( extensions.remove({ kind: item.kind, id: item.id, name: item.name }) : undefined } /> ))} {extensions.can_manage ? ( ) : null} ); }