export type ErrorCode =
| "CONFIG_MISSING"
| "VALIDATION_ERROR"
| "SEND_DISABLED"
| "POLICY_VIOLATION"
| "ATTACHMENT_ERROR"
| "SMTP_ERROR"
| "UNKNOWN_ERROR";
export class ToolError extends Error {
public readonly code: ErrorCode;
constructor(code: ErrorCode, message: string) {
super(message);
this.code = code;
}
}
/**
* Return a safe error message for tool consumers.
*/
export function formatToolError(error: unknown): { code: ErrorCode; message: string } {
if (error instanceof ToolError) {
return { code: error.code, message: error.message };
}
if (error instanceof Error) {
return { code: "UNKNOWN_ERROR", message: error.message };
}
return { code: "UNKNOWN_ERROR", message: "Unexpected error." };
}