import { useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { Package, Wrench, Loader2, Box, Shield, X } from 'lucide-react'; import apiClient from '../../api/client'; interface Toolset { toolset_id: string; name: string; description?: string; tools: string[]; is_system: boolean; category: string; } export function ToolSettings() { const { t } = useTranslation(); const [toolsets, setToolsets] = useState([]); const [loading, setLoading] = useState(true); const [selected, setSelected] = useState(null); useEffect(() => { fetchToolsets(); }, []); const fetchToolsets = async () => { try { setLoading(true); const res = await apiClient.get('/api/v1/resource/custom-toolset'); setToolsets(res.data.toolsets || []); } catch (err) { console.error('Failed to fetch toolsets:', err); } finally { setLoading(false); } }; const systemToolsets = toolsets.filter(ts => ts.is_system); const userToolsets = toolsets.filter(ts => !ts.is_system); return (

{t('plugin.toolManagement')}

{t('plugin.toolDesc')}

{loading ? (
{t('common.loading')}
) : toolsets.length === 0 ? (
{t('plugin.toolsetEmpty')}
) : ( <> {systemToolsets.length > 0 && ( )} {userToolsets.length > 0 && ( )} )} {selected && ( setSelected(null)} /> )}
); } /* PLACEHOLDER_TOOLSET_GROUP */ function ToolsetGroup({ title, toolsets, onSelect, }: { title: string; toolsets: Toolset[]; onSelect: (ts: Toolset) => void; }) { const { t } = useTranslation(); return (

{title}

{toolsets.map((ts) => ( ))}
); } /* PLACEHOLDER_TOOLSET_MODAL */ function ToolsetModal({ toolset, onClose, }: { toolset: Toolset; onClose: () => void; }) { const { t } = useTranslation(); return (
e.stopPropagation()} >

{toolset.name}

{toolset.description && (

{toolset.description}

)}

{t('plugin.toolsetTools')}

{toolset.tools.map((tool) => (
{tool}
))}
); }