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

tweak: better error message if no primary agents are enabled

Aiden Cline 2 месяцев назад
Родитель
Сommit
9caaae6a18
2 измененных файлов с 13 добавлено и 1 удалено
  1. 2 1
      packages/opencode/src/cli/error.ts
  2. 11 0
      packages/opencode/src/config/config.ts

+ 2 - 1
packages/opencode/src/cli/error.ts

@@ -32,7 +32,8 @@ export function FormatError(input: unknown) {
   }
   if (Config.InvalidError.isInstance(input))
     return [
-      `Config file at ${input.data.path} is invalid` + (input.data.message ? `: ${input.data.message}` : ""),
+      `Configuration is invalid${input.data.path && input.data.path !== "config" ? ` at ${input.data.path}` : ""}` +
+        (input.data.message ? `: ${input.data.message}` : ""),
       ...(input.data.issues?.map((issue) => "↳ " + issue.message + " " + issue.path.join(".")) ?? []),
     ].join("\n")
 

+ 11 - 0
packages/opencode/src/config/config.ts

@@ -141,6 +141,17 @@ export namespace Config {
 
     if (!result.keybinds) result.keybinds = Info.shape.keybinds.parse({})
 
+    // Only validate if user has configured agents - if none configured, built-in agents will be used
+    if (Object.keys(result.agent).length > 0) {
+      const primaryAgents = Object.values(result.agent).filter((a) => a.mode !== "subagent" && !a.hidden && !a.disable)
+      if (primaryAgents.length === 0) {
+        throw new InvalidError({
+          path: "config",
+          message: "No primary agents are available. Please configure at least one agent with mode 'primary' or 'all'.",
+        })
+      }
+    }
+
     return {
       config: result,
       directories,