Description
3 tools: pwd, createFile, and printAllTools
Last updated
Updated on April 19byProject Files
README
import { tool, Tool, ToolsProviderController } from "@lmstudio/sdk"; import { z } from "zod"; import { configSchematics } from "./configSchematics"; import { existsSync } from "fs"; import { writeFile } from "fs/promises"; export async function toolsProvider(ctl: ToolsProviderController) { const config = ctl.getPluginConfig(configSchematics); const tools: Tool[] = []; const createFileTool = tool({ name: "createFile", description: "Create a file with the given name and content.", parameters: { name: z.string(), content: z.string() }, implementation: async ({ name, content }) => { if (existsSync(name)) { return "Error: File already exists."; } await writeFile(name, content, "utf-8"); return "File created."; }, }); const pwdTool = tool({ name: "pwd", description: "Get the current working directory.", parameters: {}, implementation: async () => { return process.cwd(); }, }); tools.push(createFileTool); tools.push(pwdTool); const printAllToolsTool = tool({ name: "printAllTools", description: "Print all tools.", parameters: {}, implementation: async () => { return tools.map((tool) => tool.name).join(", "); }, }); tools.push(printAllToolsTool); return tools; }