Просмотр исходного кода

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

Jeon Suyeol 2 месяцев назад
Родитель
Сommit
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)
       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 =