import { Button, Panel, Spinner } from "@/shared"; import { useProjectPlugins } from "./useProjectPlugins"; export interface ProjectPluginsPanelProps { projectId: string; onAssignAgents?: () => void; } function countLabel(count: number, singular: string, plural: string): string { return `${count} ${count === 1 ? singular : plural}`; } export function ProjectPluginsPanel({ projectId, onAssignAgents, }: ProjectPluginsPanelProps) { const vm = useProjectPlugins(projectId); if (vm.loading && !vm.settings) { return ( Chargement des plugins du projet… ); } const installedIds = new Set(vm.installed.map((plugin) => plugin.id)); const missing = (vm.settings?.plugins ?? []).filter( (activation) => !installedIds.has(activation.pluginId), ); return (

Plugins du projet

Activez les plugins utilisés par ce projet, puis attribuez leurs skills et tools MCP à chaque agent.

{onAssignAgents && ( )}
{vm.error &&

{vm.error}

} {vm.installed.length === 0 && missing.length === 0 ? (

Aucun plugin installé globalement.

) : ( )}
); }