Skip to main content
Glama

Vibe Coder MCP

by freshtechbro
errors.js•5 kB
/** * Base class for specific application errors, allowing for additional context * and tracking of the original error if applicable. */ export class AppError extends Error { /** * Creates an instance of AppError. * @param message The error message. * @param context Optional additional context. * @param originalError Optional original error. */ constructor(message, context, originalError) { super(message); // Set the name property to the class name for easier identification this.name = this.constructor.name; this.context = context; this.originalError = originalError; // Maintain stack trace (important for V8 environments like Node.js) if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } } } /** * Represents an error related to external API calls (e.g., OpenRouter, other services). * Can include the HTTP status code received from the API. */ export class ApiError extends AppError { /** * Creates an instance of ApiError. * @param message The error message. * @param statusCode Optional HTTP status code. * @param context Optional additional context. * @param originalError Optional original error (e.g., the AxiosError). */ constructor(message, statusCode, context, originalError) { super(message, context, originalError); this.name = 'ApiError'; this.statusCode = statusCode; } } // Removed the custom ValidationIssue interface again as we'll use ZodIssue directly /** * Represents an error related to input validation, typically using Zod. * Can include the specific validation issues found. */ export class ValidationError extends AppError { /** * Creates an instance of ValidationError. * @param message The error message (often from Zod's error.message). * @param validationIssues Optional array of Zod validation issues. * @param context Optional additional context. */ constructor(message, validationIssues, context) { // Include validation issues in the base context for logging/debugging const errorContext = { ...(context || {}), validationIssues }; super(message, errorContext); this.name = 'ValidationError'; this.validationIssues = validationIssues; } } /** * Represents an error that occurred during the execution of a tool's core logic, * after input validation has passed. */ export class ToolExecutionError extends AppError { /** * Creates an instance of ToolExecutionError. * @param message The error message. * @param context Optional additional context (e.g., tool name, parameters). * @param originalError Optional original error thrown by the tool's logic. */ constructor(message, context, originalError) { super(message, context, originalError); this.name = 'ToolExecutionError'; } } /** * Represents an error related to application configuration issues, * such as missing environment variables or invalid config files. */ export class ConfigurationError extends AppError { /** * Creates an instance of ConfigurationError. * @param message The error message describing the configuration issue. * @param context Optional additional context (e.g., missing variable name). */ constructor(message, context) { super(message, context); this.name = 'ConfigurationError'; } } /** * Represents an error related to parsing data, such as JSON responses from LLMs * or other structured data sources. */ export class ParsingError extends AppError { /** * Creates an instance of ParsingError. * @param message The error message describing the parsing failure. * @param context Optional additional context (e.g., raw data snippet). * @param originalError Optional original parsing error (e.g., from JSON.parse). */ constructor(message, context, originalError) { super(message, context, originalError); this.name = 'ParsingError'; } } /** * Represents an error indicating that sequential thinking failed due to * persistent LLM formatting issues (parsing or validation) after retries, * and the fallback mechanism (returning raw text) is being bypassed in favor * of explicit error propagation. */ export class FallbackError extends AppError { /** * Creates an instance of FallbackError. * @param message The error message describing the failure. * @param rawContent The raw content from the LLM that caused the failure. * @param originalError The original ParsingError or ValidationError. */ constructor(message, rawContent, originalError) { // Pass rawContent as part of the context super(message, { rawContent }, originalError); this.name = 'FallbackError'; this.rawContent = rawContent; // Also store directly for easier access if needed } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/freshtechbro/vibe-coder-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server