From 1dba01e0577eb2012e3b6fe99b3a171875c6dab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Haris=20Gu=C5=A1i=C4=87?= Date: Fri, 17 Oct 2025 21:34:37 +0200 Subject: [PATCH] Improve typo directory error (#3247) --- packages/opencode/src/cli/error.ts | 5 +++-- packages/opencode/src/config/config.ts | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/cli/error.ts b/packages/opencode/src/cli/error.ts index 8288de1e..1bc20de3 100644 --- a/packages/opencode/src/cli/error.ts +++ b/packages/opencode/src/cli/error.ts @@ -10,8 +10,9 @@ export function FormatError(input: unknown) { `Config file at ${input.data.path} is not valid JSON(C)` + (input.data.message ? `: ${input.data.message}` : "") ) } - if (Config.DirectoryError.isInstance(input)) - return `Directory "${input.data.dir}" in ${input.data.path} is not valid. Did you mean "${input.data.suggestion}"?` + if (Config.ConfigDirectoryTypoError.isInstance(input)) { + return `Directory "${input.data.dir}" in ${input.data.path} is not valid. Use "${input.data.suggestion}" instead. This is a common typo.` + } if (Config.InvalidError.isInstance(input)) return [ `Config file at ${input.data.path} is invalid` + (input.data.message ? `: ${input.data.message}` : ""), diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 3bb608b0..23724041 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -129,7 +129,7 @@ export namespace Config { }), ) for (const item of invalid) { - throw new DirectoryError({ + throw new ConfigDirectoryTypoError({ path: dir, dir: item, suggestion: item.substring(0, item.length - 1), @@ -721,8 +721,8 @@ export namespace Config { }), ) - export const DirectoryError = NamedError.create( - "ConfigDirectoryError", + export const ConfigDirectoryTypoError = NamedError.create( + "ConfigDirectoryTypoError", z.object({ path: z.string(), dir: z.string(),