diff --git a/packages/opencode/src/acp/agent.ts b/packages/opencode/src/acp/agent.ts index 77aea216b..ab9b08f38 100644 --- a/packages/opencode/src/acp/agent.ts +++ b/packages/opencode/src/acp/agent.ts @@ -34,6 +34,18 @@ import type { OpencodeClient } from "@opencode-ai/sdk" export namespace ACP { const log = Log.create({ service: "acp-agent" }) + async function getDefaultAgent(): Promise { + const cfg = await Config.get() + const defaultAgent = cfg.default_agent + + if (defaultAgent) { + return defaultAgent + } + + // Fallback to build agent + return "build" + } + export async function init({ sdk }: { sdk: OpencodeClient }) { const model = await defaultModel({ sdk }) return { @@ -475,7 +487,7 @@ export namespace ACP { description: agent.description, })) - const defaultAgentName = await Agent.getDefault() + const defaultAgentName = await getDefaultAgent() const currentModeId = availableModes.find((m) => m.name === defaultAgentName)?.id ?? availableModes[0].id const mcpServers: Record = {} @@ -578,7 +590,7 @@ export namespace ACP { if (!current) { this.sessionManager.setModel(session.id, model) } - const agent = session.modeId ?? (await Agent.getDefault()) + const agent = session.modeId ?? (await getDefaultAgent()) const parts: Array< { type: "text"; text: string } | { type: "file"; url: string; filename: string; mime: string } diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index b5e94f6ef..eedf4f323 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -10,6 +10,7 @@ import { select } from "@clack/prompts" import { createOpencodeClient, type OpencodeClient } from "@opencode-ai/sdk" import { Server } from "../../server/server" import { Provider } from "../../provider/provider" +import { Agent } from "../../agent/agent" const TOOL: Record = { todowrite: ["Todo", UI.Style.TEXT_WARNING_BOLD], diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 9b1745e92..dddc5a08b 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -15,6 +15,7 @@ import { Log } from "../util/log" import { ProviderTransform } from "@/provider/transform" import { SessionProcessor } from "./processor" import { fn } from "@/util/fn" +import { Agent } from "../agent/agent" export namespace SessionCompaction { const log = Log.create({ service: "session.compaction" }) diff --git a/packages/opencode/tsconfig.json b/packages/opencode/tsconfig.json index 9067d84fd..ab333245f 100644 --- a/packages/opencode/tsconfig.json +++ b/packages/opencode/tsconfig.json @@ -1,12 +1,13 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@tsconfig/bun/tsconfig.json", "compilerOptions": { "jsx": "preserve", "jsxImportSource": "@opentui/solid", "lib": ["ESNext", "DOM", "DOM.Iterable"], "types": [], "noUncheckedIndexedAccess": false, + "module": "ESNext", + "moduleResolution": "bundler", "customConditions": ["browser"], "paths": { "@/*": ["./src/*"],