components/functions-view.tsx (42 lines of code) (raw):

"use client"; import { toolsList } from "@/config/tools-list"; import { Code } from "lucide-react"; import React from "react"; type ToolParameter = { type: string; description?: string; enum?: string[]; properties?: { [key: string]: string | unknown }; }; const getToolArgs = (parameters: { [key: string]: ToolParameter | undefined; }) => { return ( <div className="ml-4"> {Object.entries(parameters).map(([key, value]) => ( <div key={key} className="flex items-center text-xs space-x-2 my-1"> <span className="text-blue-500">{key}:</span> <span className="text-zinc-400">{value?.type}</span> </div> ))} </div> ); }; export default function FunctionsView() { return ( <div className="flex flex-col space-y-4"> {toolsList.map((tool) => ( <div key={tool.name} className="flex items-start gap-2"> <div className="bg-blue-100 text-blue-500 rounded-md p-1"> <Code size={16} /> </div> <div className="text-zinc-800 font-mono text-sm mt-0.5"> {tool.name}( {tool.parameters && Object.keys(tool.parameters).length > 0 ? getToolArgs(tool.parameters) : ""} ) </div> </div> ))} </div> ); }