diff options
| author | adamdottv <[email protected]> | 2025-07-10 10:13:15 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-07-10 10:13:15 -0500 |
| commit | 5dc1920a4c6340aa27cef6671363e79ed876d49b (patch) | |
| tree | d8305f00840abb2fb88fbc93775b84e3925c0b3e | |
| parent | d3e5f3f3a8e1867b9ec97bc2fe69c2fa4bf6483e (diff) | |
| download | opencode-5dc1920a4c6340aa27cef6671363e79ed876d49b.tar.gz opencode-5dc1920a4c6340aa27cef6671363e79ed876d49b.zip | |
feat: mode flag in cli run command
| -rw-r--r-- | packages/opencode/src/cli/cmd/run.ts | 9 | ||||
| -rw-r--r-- | packages/opencode/src/session/index.ts | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index 218e1ea8f..55257f715 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -8,6 +8,7 @@ import { Flag } from "../../flag/flag" import { Config } from "../../config/config" import { bootstrap } from "../bootstrap" import { MessageV2 } from "../../session/message-v2" +import { Mode } from "../../session/mode" const TOOL: Record<string, [string, string]> = { todowrite: ["Todo", UI.Style.TEXT_WARNING_BOLD], @@ -52,6 +53,10 @@ export const RunCommand = cmd({ alias: ["m"], describe: "model to use in the format of provider/model", }) + .option("mode", { + type: "string", + describe: "mode to use", + }) }, handler: async (args) => { let message = args.message.join(" ") @@ -139,10 +144,14 @@ export const RunCommand = cmd({ UI.error(err) }) + // TODO: dax, should this impact model selection as well? + const mode = args.mode ? await Mode.get(args.mode) : await Mode.list().then((x) => x[0]) + const result = await Session.chat({ sessionID: session.id, providerID, modelID, + mode: mode.name, parts: [ { type: "text", diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index ea0d65911..a43cedd2c 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -284,7 +284,7 @@ export namespace Session { sessionID: string providerID: string modelID: string - mode: string + mode?: string parts: MessageV2.UserPart[] }) { const l = log.clone().tag("session", input.sessionID) |
