From cc66e06101484410ef4236aa40f386fa804db1e7 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sun, 24 Aug 2025 12:06:48 -0500 Subject: [PATCH] fix: command model selection (#2219) --- packages/opencode/src/session/index.ts | 12 ++++++++---- packages/tui/internal/app/app.go | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index e918f2af..7cb24400 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -1171,12 +1171,16 @@ export namespace Session { export async function command(input: CommandInput) { const command = await Command.get(input.command) - const agent = input.agent ?? command.agent ?? "build" + const agent = command.agent ?? input.agent ?? "build" + const fmtModel = (model: { providerID: string; modelID: string }) => `${model.providerID}/${model.modelID}` + const model = - input.model ?? command.model ?? - (await Agent.get(agent).then((x) => (x.model ? `${x.model.providerID}/${x.model.modelID}` : undefined))) ?? - (await Provider.defaultModel().then((x) => `${x.providerID}/${x.modelID}`)) + (command.agent && (await Agent.get(command.agent).then((x) => (x.model ? fmtModel(x.model) : undefined)))) ?? + input.model ?? + (input.agent && (await Agent.get(input.agent).then((x) => (x.model ? fmtModel(x.model) : undefined)))) ?? + fmtModel(await Provider.defaultModel()) + let template = command.template.replace("$ARGUMENTS", input.arguments) const bash = Array.from(template.matchAll(bashRegex)) diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go index ecf95ff9..b293e5b0 100644 --- a/packages/tui/internal/app/app.go +++ b/packages/tui/internal/app/app.go @@ -820,6 +820,8 @@ func (a *App) SendCommand(ctx context.Context, command string, args string) (*Ap opencode.SessionCommandParams{ Command: opencode.F(command), Arguments: opencode.F(args), + Agent: opencode.F(a.Agents[a.AgentIndex].Name), + Model: opencode.F(a.State.Provider + "/" + a.State.Model), }, ) if err != nil {