#!/usr/bin/env node // Build the repository-level lsp-tools-mcp package used by codex-lsp. import { execSync } from "node:child_process"; import { existsSync } from "node:fs"; import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; const __dirname = dirname(fileURLToPath(import.meta.url)); const lspToolsDir = join(__dirname, "..", "..", "..", "..", "..", "lsp-tools-mcp"); const packageJson = join(lspToolsDir, "package.json"); const distCli = join(lspToolsDir, "dist", "cli.js"); const force = process.argv.includes("--force"); if (!force && existsSync(distCli)) { process.exit(0); } if (!existsSync(packageJson)) { console.error( `lsp-tools-mcp package metadata is missing at ${packageJson}; build packages/lsp-tools-mcp before codex-lsp`, ); process.exit(1); } console.log("Installing repository lsp-tools-mcp dependencies..."); execSync("npm ci", { cwd: lspToolsDir, stdio: "inherit" }); console.log("Building repository lsp-tools-mcp..."); execSync("npm run build", { cwd: lspToolsDir, stdio: "inherit" }); console.log("Done.");