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

fix: display error if invalid agent is used in a command (#6578)

Lekë Dobruna пре 1 месец
родитељ
комит
3b03324578
1 измењених фајлова са 11 додато и 1 уклоњено
  1. 11 1
      packages/opencode/src/session/prompt.ts

+ 11 - 1
packages/opencode/src/session/prompt.ts

@@ -1331,7 +1331,7 @@ export namespace SessionPrompt {
       }
       if (command.agent) {
         const cmdAgent = await Agent.get(command.agent)
-        if (cmdAgent.model) {
+        if (cmdAgent?.model) {
           return cmdAgent.model
         }
       }
@@ -1353,6 +1353,16 @@ export namespace SessionPrompt {
       throw e
     }
     const agent = await Agent.get(agentName)
+    if (!agent) {
+      const available = await Agent.list().then((agents) => agents.filter((a) => !a.hidden).map((a) => a.name))
+      const hint = available.length ? ` Available agents: ${available.join(", ")}` : ""
+      const error = new NamedError.Unknown({ message: `Agent not found: "${agentName}".${hint}` })
+      Bus.publish(Session.Event.Error, {
+        sessionID: input.sessionID,
+        error: error.toObject(),
+      })
+      throw error
+    }
 
     const parts =
       (agent.mode === "subagent" && command.subtask !== false) || command.subtask === true