summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/session/index.ts12
-rw-r--r--packages/tui/internal/app/app.go2
2 files changed, 10 insertions, 4 deletions
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index e918f2af1..7cb244001 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 ecf95ff98..b293e5b0b 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 {