diff --git a/mise.toml b/mise.toml index c2dafda..5d6a90e 100644 --- a/mise.toml +++ b/mise.toml @@ -1,2 +1,4 @@ [tools] bun = "1.2.10" +node = "22.13.1" +"npm:@withgraphite/graphite-cli" = "1.5.3" diff --git a/package.json b/package.json index 998eb49..86729a2 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "build": "bun build.ts", "build:bin": "bun build.ts compile", "lint": "bun biome check .", + "format": "bun biome format --write .", "prepack": "bun run build" }, "devDependencies": { diff --git a/src/index.ts b/src/index.ts index e72b3b4..738f392 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,103 +8,103 @@ import pkgJson from "../package.json"; import { loadEnv, log } from "./utils"; async function main() { - const notifier = updateNotifier({ pkg: pkgJson }); - if (notifier.update) { - log("a new version is available", { - current: notifier.update.current, - latest: notifier.update.latest, - }); - } + const notifier = updateNotifier({ pkg: pkgJson }); + if (notifier.update) { + log("a new version is available", { + current: notifier.update.current, + latest: notifier.update.latest, + }); + } - const envResult = loadEnv(); - if (!envResult.ok) { - const errors = envResult.error.flatten(); - log("missing or malformed environment variables", errors.fieldErrors); - process.exit(1); - } + const envResult = loadEnv(); + if (!envResult.ok) { + const errors = envResult.error.flatten(); + log("missing or malformed environment variables", errors.fieldErrors); + process.exit(1); + } - const { ROVER_HOST, ROVER_API_KEY } = envResult.data; - const SSE_URL = `${ROVER_HOST}/mcp/sse`; + const { ROVER_HOST, ROVER_API_KEY } = envResult.data; + const SSE_URL = `${ROVER_HOST}/mcp/sse`; - const getCommonHeaders = () => ({ - authorization: `Bearer ${ROVER_API_KEY}`, - }); + const getCommonHeaders = () => ({ + authorization: `Bearer ${ROVER_API_KEY}`, + }); - const createClientTransport = () => { - return new SSEClientTransport(new URL(SSE_URL), { - eventSourceInit: { - fetch(url, init) { - return fetch(url, { - ...init, - headers: { - ...init?.headers, - ...getCommonHeaders(), - }, - }); - }, - }, - requestInit: { - headers: getCommonHeaders(), - }, - }); - }; - const client = new Client({ - name: "rover-mcp-proxy", - version: pkgJson.version, - }); + const createClientTransport = () => { + return new SSEClientTransport(new URL(SSE_URL), { + eventSourceInit: { + fetch(url, init) { + return fetch(url, { + ...init, + headers: { + ...init?.headers, + ...getCommonHeaders(), + }, + }); + }, + }, + requestInit: { + headers: getCommonHeaders(), + }, + }); + }; + const client = new Client({ + name: "rover-mcp-proxy", + version: pkgJson.version, + }); - log("connecting to Rover", { sse: SSE_URL }); - try { - await client.connect(createClientTransport()); - } catch (error) { - log("failed to connect", { - error: error instanceof Error ? error.message : String(error), - }); - process.exit(1); - } + log("connecting to Rover", { sse: SSE_URL }); + try { + await client.connect(createClientTransport()); + } catch (error) { + log("failed to connect", { + error: error instanceof Error ? error.message : String(error), + }); + process.exit(1); + } - const serverInfo = client.getServerVersion(); - if (!serverInfo) { - log("connected but server info missing"); - process.exit(1); - } + const serverInfo = client.getServerVersion(); + if (!serverInfo) { + log("connected but server info missing"); + process.exit(1); + } - const serverCapabilities = client.getServerCapabilities(); - if (!serverCapabilities) { - log("connected but server capabilities missing"); - process.exit(1); - } + const serverCapabilities = client.getServerCapabilities(); + if (!serverCapabilities) { + log("connected but server capabilities missing"); + process.exit(1); + } - log("connected", { - info: serverInfo, - capabilities: serverCapabilities, - }); + log("connected", { + info: serverInfo, + capabilities: serverCapabilities, + }); - const serverTransport = new StdioServerTransport(); - const server = new McpServer( - { - name: serverInfo.name, - version: serverInfo.version, - }, - { - capabilities: serverCapabilities, - }, - ); - await server.connect(serverTransport); + const serverTransport = new StdioServerTransport(); + const server = new McpServer( + { + name: serverInfo.name, + version: serverInfo.version, + }, + { + capabilities: serverCapabilities, + }, + ); + await server.connect(serverTransport); - log("starting proxy"); - try { - await proxyServer({ - server: server.server, - client: client, - serverCapabilities, - }); - } catch (error) { - log("failed to run proxy", { - error: error instanceof Error ? error.message : String(error), - }); - process.exit(1); - } + log("starting proxy"); + try { + await proxyServer({ + server: server.server, + client: client, + serverCapabilities, + }); + } catch (error) { + log("failed to run proxy", { + error: error instanceof Error ? error.message : String(error), + }); + process.exit(1); + } } main();