Project Files
src / toolsProvider.ts
import { type Tool, type ToolsProviderController } from "@lmstudio/sdk";
import { getDataTools } from "./tools/data";
import { getSheetTools } from "./tools/sheets";
import { getFormattingTools } from "./tools/formatting";
import { getChartTools } from "./tools/charts";
import { getVbaTools } from "./tools/vba";
import { getAnalysisTools } from "./tools/analysis";
export async function toolsProvider(ctl: ToolsProviderController): Promise<Tool[]> {
// Resolve working directory at load time.
// Falls back to process.cwd() if LM Studio has no working directory configured.
let workingDir: string;
try {
workingDir = ctl.getWorkingDirectory();
} catch {
workingDir = process.cwd();
}
return [
...getDataTools(workingDir),
...getSheetTools(workingDir),
...getFormattingTools(workingDir),
...getChartTools(workingDir),
...getVbaTools(workingDir),
...getAnalysisTools(workingDir),
];
}