summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJeon Suyeol <[email protected]>2025-12-19 01:35:40 +0900
committerGitHub <[email protected]>2025-12-18 10:35:40 -0600
commit4bf882ba81ffba016357f75b8b1ea1a36f813433 (patch)
tree8c012c213747a8fd9a206782b6731a0ad33a207e
parentd5dcc55a477aba36c5122fd6f603ab2283be44dc (diff)
downloadopencode-4bf882ba81ffba016357f75b8b1ea1a36f813433.tar.gz
opencode-4bf882ba81ffba016357f75b8b1ea1a36f813433.zip
fix(command): validate model before executing slash command (#5740)
-rw-r--r--packages/opencode/src/session/prompt.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index ff5194d55..cbb3eedf3 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -1333,6 +1333,20 @@ export namespace SessionPrompt {
if (input.model) return Provider.parseModel(input.model)
return await lastModel(input.sessionID)
})()
+
+ try {
+ await Provider.getModel(model.providerID, model.modelID)
+ } catch (e) {
+ if (Provider.ModelNotFoundError.isInstance(e)) {
+ const { providerID, modelID, suggestions } = e.data
+ const hint = suggestions?.length ? ` Did you mean: ${suggestions.join(", ")}?` : ""
+ Bus.publish(Session.Event.Error, {
+ sessionID: input.sessionID,
+ error: new NamedError.Unknown({ message: `Model not found: ${providerID}/${modelID}.${hint}` }).toObject(),
+ })
+ }
+ throw e
+ }
const agent = await Agent.get(agentName)
const parts =