import Editor from "@monaco-editor/react"; import { ChevronUp, ChevronDown, Trash2, Power } from "lucide-react"; import { useMemo } from "react"; import { extractFunctionAndRenderer, generateSchemaFromCode } from "../utils"; export interface Tool { id: number; name: string; code: string; enabled: boolean; isCollapsed?: boolean; renderer?: string; } interface ToolItemProps { tool: Tool; onToggleEnabled: () => void; onToggleCollapsed: () => void; onExpand: () => void; onDelete: () => void; onCodeChange: (newCode: string) => void; } const ToolItem: React.FC = ({ tool, onToggleEnabled, onToggleCollapsed, onDelete, onCodeChange, }) => { const { functionCode } = extractFunctionAndRenderer(tool.code); const schema = useMemo( () => generateSchemaFromCode(functionCode), [functionCode], ); return (

{schema.name}

{schema.description}
{!tool.isCollapsed && (
onCodeChange(value || "")} options={{ minimap: { enabled: false }, scrollbar: { verticalScrollbarSize: 10 }, fontSize: 14, lineDecorationsWidth: 0, lineNumbersMinChars: 3, scrollBeyondLastLine: false, }} />
)}
); }; export default ToolItem;