diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index 8c233aad6..8281ab617 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -9,7 +9,7 @@ import { fg, type KeyBinding, } from "@opentui/core" -import { createEffect, createMemo, Match, Switch, type JSX, onMount, batch } from "solid-js" +import { createEffect, createMemo, Match, Switch, type JSX, onMount } from "solid-js" import { useLocal } from "@tui/context/local" import { useTheme } from "@tui/context/theme" import { SplitBorder } from "@tui/component/border" @@ -425,7 +425,10 @@ export function Prompt(props: PromptProps) { }, body: { agent: local.agent.current().name, - model: `${local.model.current().providerID}/${local.model.current().modelID}`, + model: { + providerID: local.model.current().providerID, + modelID: local.model.current().modelID, + }, command: inputText, }, }) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 7f47a36bd..443d24046 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1085,6 +1085,12 @@ export namespace SessionPrompt { export const ShellInput = z.object({ sessionID: Identifier.schema("session"), agent: z.string(), + model: z + .object({ + providerID: z.string(), + modelID: z.string(), + }) + .optional(), command: z.string(), }) export type ShellInput = z.infer @@ -1094,7 +1100,7 @@ export namespace SessionPrompt { SessionRevert.cleanup(session) } const agent = await Agent.get(input.agent) - const model = agent.model ?? (await lastModel(input.sessionID)) + const model = input.model ?? agent.model ?? (await lastModel(input.sessionID)) const userMsg: MessageV2.User = { id: Identifier.ascending("message"), sessionID: input.sessionID, diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts index d9414d393..52cde5e58 100644 --- a/packages/sdk/js/src/gen/types.gen.ts +++ b/packages/sdk/js/src/gen/types.gen.ts @@ -2294,6 +2294,10 @@ export type SessionCommandResponse = SessionCommandResponses[keyof SessionComman export type SessionShellData = { body?: { agent: string + model?: { + providerID: string + modelID: string + } command: string } path: {