// {{ display_name }} MCP server — generated by mcpify. Do not hand-edit.

export class McpifyError extends Error {
  public readonly code: string;

  constructor(message: string, code: string) {
    super(message);
    this.name = new.target.name;
    this.code = code;
  }
}

export class ConfigurationError extends McpifyError {
  constructor(message: string) {
    super(message, 'CONFIGURATION_ERROR');
  }
}

export class AuthenticationError extends McpifyError {
  constructor(message: string) {
    super(message, 'AUTHENTICATION_ERROR');
  }
}

export class ValidationError extends McpifyError {
  public readonly details?: unknown;

  constructor(message: string, details?: unknown) {
    super(message, 'VALIDATION_ERROR');
    this.details = details;
  }
}

export class NotFoundError extends McpifyError {
  constructor(message: string) {
    super(message, 'NOT_FOUND');
  }
}

export class CircuitBreakerOpenError extends McpifyError {
  constructor(message = 'circuit breaker is open') {
    super(message, 'CIRCUIT_BREAKER_OPEN');
  }
}

export class RateLimitExceededError extends McpifyError {
  constructor(message = 'rate limit exceeded') {
    super(message, 'RATE_LIMIT_EXCEEDED');
  }
}
