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(),