error.ts 821 B

1234567891011121314151617181920
  1. import { Config } from "../config/config"
  2. import { MCP } from "../mcp"
  3. import { UI } from "./ui"
  4. export function FormatError(input: unknown) {
  5. if (MCP.Failed.isInstance(input))
  6. return `MCP server "${input.data.name}" failed. Note, opencode does not support MCP authentication yet.`
  7. if (Config.JsonError.isInstance(input)) {
  8. return (
  9. `Config file at ${input.data.path} is not valid JSON(C)` + (input.data.message ? `: ${input.data.message}` : "")
  10. )
  11. }
  12. if (Config.InvalidError.isInstance(input))
  13. return [
  14. `Config file at ${input.data.path} is invalid` + (input.data.message ? `: ${input.data.message}` : ""),
  15. ...(input.data.issues?.map((issue) => "↳ " + issue.message + " " + issue.path.join(".")) ?? []),
  16. ].join("\n")
  17. if (UI.CancelledError.isInstance(input)) return ""
  18. }