Преглед изворни кода

fix(command): validate model before executing slash command (#5740)

Jeon Suyeol пре 2 месеци
родитељ
комит
4bf882ba81
1 измењених фајлова са 14 додато и 0 уклоњено
  1. 14 0
      packages/opencode/src/session/prompt.ts

+ 14 - 0
packages/opencode/src/session/prompt.ts

@@ -1333,6 +1333,20 @@ export namespace SessionPrompt {
       if (input.model) return Provider.parseModel(input.model)
       if (input.model) return Provider.parseModel(input.model)
       return await lastModel(input.sessionID)
       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 agent = await Agent.get(agentName)
 
 
     const parts =
     const parts =