rowboat/apps/cli/src/application/assistant/mcp/service.ts
tusharmagar 4310b1d45d First version copilot:
- basic llm call that can perform CRUD actions over dummy workflow json files
2025-11-05 13:09:25 +05:30

24 lines
833 B
TypeScript

import fs from "fs";
import path from "path";
import { z } from "zod";
import { McpServerConfig } from "../../entities/mcp.js";
import { ensureBaseDirs, getStoragePaths } from "../services/storage.js";
export function mcpConfigPath(): string {
const base = getStoragePaths();
ensureBaseDirs(base);
return path.join(base.workDir, "mcp", "servers.json");
}
export function readMcpConfig(): z.infer<typeof McpServerConfig> {
const p = mcpConfigPath();
if (!fs.existsSync(p)) return { mcpServers: [] };
const raw = fs.readFileSync(p, "utf8");
return McpServerConfig.parse(JSON.parse(raw));
}
export function writeMcpConfig(value: z.infer<typeof McpServerConfig>): void {
const p = mcpConfigPath();
const parsed = McpServerConfig.parse(value);
fs.writeFileSync(p, JSON.stringify(parsed, null, 2) + "\n", "utf8");
}