diff --git a/packages/opencode/src/mcp/auth.ts b/packages/opencode/src/mcp/auth.ts index 0f91a35b8..399986376 100644 --- a/packages/opencode/src/mcp/auth.ts +++ b/packages/opencode/src/mcp/auth.ts @@ -1,6 +1,7 @@ import path from "path" import z from "zod" import { Global } from "../global" +import { Filesystem } from "../util/filesystem" export namespace McpAuth { export const Tokens = z.object({ @@ -53,25 +54,22 @@ export namespace McpAuth { } export async function all(): Promise> { - const file = Bun.file(filepath) - return file.json().catch(() => ({})) + return Filesystem.readJson>(filepath).catch(() => ({})) } export async function set(mcpName: string, entry: Entry, serverUrl?: string): Promise { - const file = Bun.file(filepath) const data = await all() // Always update serverUrl if provided if (serverUrl) { entry.serverUrl = serverUrl } - await Bun.write(file, JSON.stringify({ ...data, [mcpName]: entry }, null, 2), { mode: 0o600 }) + await Filesystem.writeJson(filepath, { ...data, [mcpName]: entry }, 0o600) } export async function remove(mcpName: string): Promise { - const file = Bun.file(filepath) const data = await all() delete data[mcpName] - await Bun.write(file, JSON.stringify(data, null, 2), { mode: 0o600 }) + await Filesystem.writeJson(filepath, data, 0o600) } export async function updateTokens(mcpName: string, tokens: Tokens, serverUrl?: string): Promise {