UNPKG

mlld

Version:

mlld: a modular prompt scripting language

1 lines 80.8 kB
{"version":3,"sources":["../core/errors/MlldError.ts","../core/errors/MlldParseError.ts","../core/errors/MlldResolutionError.ts","../core/errors/MlldInterpreterError.ts","../core/errors/MlldImportError.ts","../core/errors/MlldFileSystemError.ts","../core/errors/MlldFileNotFoundError.ts","../core/errors/MlldOutputError.ts","../core/errors/MlldDirectiveError.ts","../core/errors/PathValidationError.ts","../core/errors/DataEvaluationError.ts","../core/errors/VariableRedefinitionError.ts","../core/errors/MlldCommandExecutionError.ts","../core/errors/MlldDependencyError.ts","../core/errors/MlldConditionError.ts","../core/errors/ResolverError.ts","../core/errors/MlldWhenExpressionError.ts","../core/errors/messages/paths.ts","../core/errors/FieldAccessError.ts","../core/errors/VariableResolutionError.ts","../core/errors/index.ts"],"names":["ErrorSeverity","MlldError","Error","constructor","message","options","cause","code","severity","details","sourceLocation","env","name","captureStackTrace","canBeWarning","getSourceContext","undefined","filePath","source","getSource","line","formatSourceContext","lines","split","lineNum","length","column","pointer","repeat","contextStart","Math","max","contextEnd","min","result","i","lineNumber","String","padStart","marker","toString","formatLocationForError","sourceContext","toJSON","MlldParseError","position","locationStr","start","location","end","Fatal","context","Object","setPrototypeOf","prototype","MlldResolutionError","formatMessage","msg","value","variableName","variableType","fieldPath","MlldInterpreterError","nodeType","isPreciseLocation","Recoverable","fullCauseMessage","getFullCauseMessage","nodeCount","state","error","MlldImportError","importChainStr","importChain","join","isCyclic","includes","MlldFileSystemError","command","cwd","MlldFileNotFoundError","MlldOutputError","format","MlldDirectiveError","directiveKind","PathErrorCode","PathValidationError","DataEvaluationError","dataPath","originalError","VariableRedefinitionError","newLocation","enhancedMessage","existingLocation","locStr","suggestion","Critical","variableRedefinitionContext","forSameFile","forImportConflict","importPath","isExistingImported","MlldCommandExecutionError","create","exitCode","duration","additionalContext","stdout","stderr","workingDirectory","process","directiveType","MlldDependencyError","missing","mismatched","getFormattedMessage","push","nodePackages","filter","p","pythonPackages","MlldConditionError","modifier","ResolverErrorCode","ResolverError","notFound","reference","contextMsg","operation","unsupportedCapability","resolverName","capability","missingCapability","invalidFormat","supportedFormats","suggestedFormat","resolutionFailed","nameProtected","isVariable","type","parts","availableResolvers","getSuggestions","suggestions","startsWith","MlldWhenExpressionError","PathErrorMessages","EMPTY_PATH","NULL_BYTE","INVALID_PATH","FILE_NOT_FOUND","PATH_NOT_FOUND","NOT_A_FILE","NOT_A_DIRECTORY","CONTAINS_DOT_SEGMENTS","INVALID_PATH_FORMAT","RAW_ABSOLUTE_PATH","OUTSIDE_BASE_DIR","validation","rawAbsolutePath","slashesWithoutPathVariable","dotSegments","fileAccess","fileNotFound","directoryNotFound","permissionDenied","circular","circularImport","FieldAccessError","ResolutionErrorCode","FIELD_ACCESS_ERROR","VariableResolutionError"],"mappings":"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","file":"chunk-YMCO2JI3.mjs","sourcesContent":["/**\n * Defines the severity levels for Mlld errors.\n */\nexport enum ErrorSeverity {\n  /** The operation can potentially continue */\n  Recoverable = 'recoverable',\n  /** The operation cannot continue */\n  Fatal = 'fatal',\n  /** Informational message, not strictly an error */\n  Info = 'info',\n  /** Warning message */\n  Warning = 'warning',\n}\n\nimport { SourceLocation } from '@core/types';\n\nimport type { DirectiveTrace } from '@core/types/trace';\nimport type { Environment } from '@interpreter/env/Environment';\n\n/**\n * Base interface for Mlld error details.\n * Specific error types should extend this.\n */\nexport interface BaseErrorDetails {\n  directiveTrace?: DirectiveTrace[]; // Optional directive trace\n  [key: string]: any; // Allow arbitrary context\n}\n\n/**\n * Options for creating a MlldError instance.\n */\nexport interface MlldErrorOptions {\n  code: string;\n  severity: ErrorSeverity;\n  details?: BaseErrorDetails;\n  sourceLocation?: SourceLocation;\n  cause?: unknown;\n  env?: Environment; // Optional environment for source access\n}\n\nimport { formatLocationForError } from '@core/utils/locationFormatter';\n\n/**\n * Base class for all custom Mlld errors.\n * Provides structure for error codes, severity, details, and source location.\n */\nexport class MlldError extends Error {\n  /** A unique code identifying the type of error */\n  public readonly code: string;\n  /** The severity level of the error */\n  public readonly severity: ErrorSeverity;\n  /** Additional context-specific details about the error */\n  public readonly details?: BaseErrorDetails;\n  /** Optional source location where the error occurred */\n  public readonly sourceLocation?: SourceLocation;\n  /** Optional environment for source access */\n  private readonly env?: Environment;\n\n  constructor(\n    message: string,\n    options: {\n      code: string;\n      severity: ErrorSeverity;\n      details?: BaseErrorDetails;\n      sourceLocation?: SourceLocation;\n      cause?: unknown; // Allow chaining errors\n      env?: Environment; // Optional environment for source access\n    }\n  ) {\n    super(message, { cause: options.cause });\n    this.name = this.constructor.name; // Set the error name to the class name\n    this.code = options.code;\n    this.severity = options.severity;\n    this.details = options.details;\n    this.sourceLocation = options.sourceLocation;\n    this.env = options.env;\n\n    // Standard way to maintain stack trace in V8\n    if (Error.captureStackTrace) {\n      Error.captureStackTrace(this, this.constructor);\n    }\n  }\n\n  /**\n   * Determines if the error represents a condition that could potentially be\n   * treated as a warning rather than a fatal error, based on its severity.\n   * Recoverable errors and explicit warnings can potentially be warnings.\n   * \n   * @returns {boolean} True if the error severity allows it to be a warning, false otherwise.\n   */\n  public canBeWarning(): boolean {\n    return (\n      this.severity === ErrorSeverity.Recoverable || \n      this.severity === ErrorSeverity.Warning\n    );\n  }\n\n  /**\n   * Get source context for error display\n   */\n  private getSourceContext(): string | undefined {\n    if (!this.sourceLocation || !this.env) {\n      return undefined;\n    }\n    \n    const filePath = this.sourceLocation.filePath;\n    if (!filePath) {\n      return undefined;\n    }\n    \n    const source = this.env.getSource(filePath);\n    if (!source || !this.sourceLocation.line) {\n      return undefined;\n    }\n    \n    return this.formatSourceContext(source);\n  }\n  \n  /**\n   * Format source context with visual indicators\n   */\n  private formatSourceContext(source: string): string {\n    const lines = source.split('\\n');\n    const lineNum = this.sourceLocation!.line! - 1; // Convert to 0-based index\n    \n    if (lineNum < 0 || lineNum >= lines.length) {\n      return '';\n    }\n    \n    const errorLine = lines[lineNum];\n    const column = this.sourceLocation!.column || 1;\n    const pointer = ' '.repeat(column - 1) + '^';\n    \n    // Include surrounding context (2 lines before/after)\n    const contextStart = Math.max(0, lineNum - 2);\n    const contextEnd = Math.min(lines.length - 1, lineNum + 2);\n    \n    let result = '';\n    for (let i = contextStart; i <= contextEnd; i++) {\n      const lineNumber = String(i + 1).padStart(4, ' ');\n      const marker = i === lineNum ? '>' : ' ';\n      result += `${marker} ${lineNumber} | ${lines[i]}\\n`;\n      \n      if (i === lineNum && this.sourceLocation!.column) {\n        result += `       | ${pointer}\\n`;\n      }\n    }\n    \n    return result;\n  }\n\n  /**\n   * Provides a string representation including code and severity.\n   */\n  public toString(): string {\n    let result = `[${this.code}] ${this.message}`;\n    \n    if (this.sourceLocation) {\n      result += ` at ${formatLocationForError(this.sourceLocation)}`;\n    }\n    \n    result += ` (Severity: ${this.severity})`;\n    \n    const sourceContext = this.getSourceContext();\n    if (sourceContext) {\n      result += '\\n\\n' + sourceContext;\n    }\n    \n    return result;\n  }\n\n  /**\n   * Serializes the error to JSON with formatted location string.\n   */\n  public toJSON(): Record<string, any> {\n    const result: Record<string, any> = {\n      name: this.name,\n      message: this.message,\n      code: this.code,\n      severity: this.severity,\n    };\n\n    if (this.details) {\n      result.details = this.details;\n    }\n\n    if (this.sourceLocation) {\n      result.sourceLocation = formatLocationForError(this.sourceLocation);\n    }\n\n    return result;\n  }\n} ","import type { Location, Position } from '@core/types/index';\nimport { MlldError, ErrorSeverity } from '@core/errors/MlldError';\nimport { formatLocationForError } from '@core/utils/locationFormatter';\n\ninterface SerializedParseError {\n  name: string;\n  message: string;\n  code: string;\n  severity: ErrorSeverity;\n  location?: Location;\n  sourceLocation?: string;\n  filePath?: string;\n  cause?: string;\n  details?: any;\n}\n\nexport interface MlldParseErrorOptions {\n  cause?: Error;\n  severity?: ErrorSeverity;\n  context?: any;\n  filePath?: string; // Add filePath to options\n  peggyFormatted?: string; // Add this for Peggy's formatted output\n}\n\n/**\n * Error thrown when parsing Mlld content fails\n */\nexport class MlldParseError extends MlldError {\n  /**\n   * Location information for where the error occurred\n   */\n  public readonly location?: Location;\n  // Explicitly store the cause passed in options\n  public readonly cause?: unknown;\n\n  constructor(\n    message: string, \n    position?: Position | Location,\n    options: MlldParseErrorOptions = {}\n  ) {\n    // Format message with location if available\n    const locationStr = position ? \n      ` at line ${('line' in position ? position.line : position.start.line)}, ` +\n      `column ${('column' in position ? position.column : position.start.column)}` +\n      (('filePath' in position && position.filePath) ? ` in ${position.filePath}` : '')\n      : '';\n    \n    // Convert Position to Location if needed\n    let location: Location | undefined;\n    let filePath: string | undefined;\n    \n    if (position) {\n      if ('line' in position) {\n        // It's a Position\n        location = {\n          start: position,\n          end: position,\n          filePath: undefined\n        };\n      } else {\n        // It's already a Location\n        location = position;\n      }\n      \n      // Store filePath separately for easier access\n      filePath = location?.filePath as string | undefined;\n    }\n    \n    // Parse errors are typically fatal, but can be overridden\n    const severity = options.severity || ErrorSeverity.Fatal;\n    \n    super(`Parse error: ${message}${locationStr}`, {\n      // Pass filePath via details, not directly\n      code: 'PARSE_ERROR', // Assign a default code or get from options if needed\n      severity,\n      details: {\n        ...(options.context as Record<string, unknown>), // Keep existing context details\n        filePath: options.filePath || filePath\n      } as Record<string, unknown>,\n      sourceLocation: location, // Use sourceLocation for the parsed location\n      cause: options.cause\n    });\n    \n    this.name = 'MlldParseError';\n    this.location = location; // Keep this for direct access if needed\n    this.cause = options.cause; // Store the cause\n\n    // Ensure proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, MlldParseError.prototype);\n  }\n\n  /**\n   * Custom serialization to avoid circular references and include only essential info\n   */\n  toJSON(): SerializedParseError {\n    const cause = this.cause;\n    return {\n      name: this.name,\n      message: this.message,\n      code: this.code,\n      severity: this.severity,\n      location: this.location,\n      sourceLocation: this.sourceLocation ? formatLocationForError(this.sourceLocation) : undefined,\n      filePath: (this.details as Record<string, unknown>)?.filePath as string | undefined,\n      cause: cause instanceof Error ? cause.message : String(cause),\n      details: this.details\n    } as SerializedParseError;\n  }\n} ","import { MlldError, ErrorSeverity, BaseErrorDetails, ErrorSourceLocation } from './MlldError';\nimport { Location } from '@core/types/index';\n\n/**\n * Represents details specific to general resolution errors.\n */\nexport interface MlldResolutionErrorDetails extends BaseErrorDetails {\n  value?: any; // The value being resolved\n  context?: any; // The resolution context or relevant parts\n}\n\nexport interface ResolutionErrorDetails {\n  value?: string;\n  context?: string;\n  location?: Location;\n  variableName?: string;\n  variableType?: 'text' | 'data' | 'path' | 'command';\n  fieldPath?: string;\n  contentPreview?: string;\n  error?: string;\n  availableHeadings?: string;\n  suggestions?: string;\n  // Additional properties used in VariableReferenceResolver\n  variable?: string;\n  field?: string;\n  path?: string;\n  index?: number;\n  length?: number;\n  type?: string;\n}\n\nexport interface MlldResolutionErrorOptions {\n  details?: ResolutionErrorDetails;\n  code?: string;\n  cause?: Error;\n  severity?: ErrorSeverity;\n  filePath?: string;\n}\n\n/**\n * General error thrown during the resolution process for various reasons\n * not covered by more specific error types (like VariableResolutionError or PathValidationError).\n */\nexport class MlldResolutionError extends MlldError {\n  constructor(\n    message: string,\n    options: {\n      code: string; // e.g., E_RESOLVE_FAIL, E_INVALID_CONTEXT, E_TYPE_NOT_ALLOWED\n      details?: MlldResolutionErrorDetails;\n      severity?: ErrorSeverity;\n      sourceLocation?: ErrorSourceLocation;\n      cause?: unknown;\n    }\n  ) {\n    super(message, {\n      code: options.code,\n      severity: options.severity || ErrorSeverity.Fatal,\n      details: options.details,\n      sourceLocation: options.sourceLocation,\n      cause: options.cause,\n    });\n  }\n\n  /**\n   * Get a formatted error message including details\n   */\n  formatMessage(): string {\n    let msg = `Resolution error: ${this.message}`;\n    if (this.details?.value) {\n      msg += `\\nValue: ${this.details.value}`;\n    }\n    if (this.details?.context) {\n      msg += `\\nContext: ${this.details.context}`;\n    }\n    if (this.details?.variableName) {\n      msg += `\\nVariable: ${this.details.variableName}`;\n      if (this.details.variableType) {\n        msg += ` (${this.details.variableType})`;\n      }\n    }\n    if (this.details?.fieldPath) {\n      msg += `\\nField path: ${this.details.fieldPath}`;\n    }\n    return msg;\n  }\n} ","import { MlldError, ErrorSeverity } from '@core/errors/MlldError';\nimport { formatLocationForError } from '@core/utils/locationFormatter';\nimport { SourceLocation, isPreciseLocation } from '@core/types';\n\ninterface SerializedInterpreterError {\n  name: string;\n  message: string;\n  nodeType: string;\n  location?: SourceLocation;\n  sourceLocation?: string;\n  filePath?: string;\n  cause?: string;\n  fullCauseMessage?: string;\n  severity: ErrorSeverity;\n  code?: string;\n  context?: {\n    filePath?: string;\n    nodeType?: string;\n    nodeCount?: number;\n  };\n}\n\nexport interface InterpreterErrorContext {\n  filePath?: string;\n  nodeType?: string;\n  location?: SourceLocation;\n  parentFilePath?: string;\n  childFilePath?: string;\n  state?: {\n    filePath?: string;\n    nodeCount?: number;\n  };\n}\n\nexport interface MlldInterpreterErrorOptions {\n  cause?: Error;\n  context?: InterpreterErrorContext;\n  severity?: ErrorSeverity;\n  code?: string;\n}\n\n/**\n * Error thrown during interpretation of Mlld content\n */\nexport class MlldInterpreterError extends MlldError {\n  public readonly nodeType: string;\n  public readonly location?: SourceLocation;\n  public readonly context?: InterpreterErrorContext;\n  public readonly cause?: unknown;\n\n  constructor(\n    message: string,\n    nodeType: string,\n    location?: SourceLocation,\n    options: MlldInterpreterErrorOptions = {}\n  ) {\n    // Format message with location if available\n    const locationStr = location && isPreciseLocation(location)\n      ? ` at line ${location.line}, column ${location.column}${location.filePath ? ` in ${location.filePath}` : ''}`\n      : location?.filePath ? ` in ${location.filePath}` : '';\n    \n    // Interpreter errors are typically recoverable by default, but can be overridden\n    const severity = options.severity || ErrorSeverity.Recoverable;\n    const filePath = location?.filePath || options.context?.filePath;\n    \n    super(`Interpreter error (${nodeType}): ${message}${locationStr}`, {\n      code: options.code || 'INTERPRETATION_FAILED',\n      cause: options.cause,\n      severity,\n      details: {\n        ...options.context,\n        filePath: filePath,\n        nodeType: nodeType\n      },\n      sourceLocation: location\n    });\n    \n    this.name = 'MlldInterpreterError';\n    this.nodeType = nodeType;\n    this.location = location;\n    this.context = options.context;\n    this.cause = options.cause;\n    \n    // Ensure proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, MlldInterpreterError.prototype);\n  }\n\n  /**\n   * Custom serialization to avoid circular references and include only essential info\n   */\n  toJSON(): SerializedInterpreterError {\n    const cause = this.cause;\n    return {\n      name: this.name,\n      message: this.message,\n      nodeType: this.nodeType,\n      location: this.location,\n      sourceLocation: this.sourceLocation ? formatLocationForError(this.sourceLocation) : undefined,\n      filePath: this.location?.filePath,\n      cause: cause instanceof Error ? cause.message : String(cause),\n      fullCauseMessage: cause instanceof Error ? this.getFullCauseMessage(cause) : undefined,\n      severity: this.severity,\n      code: this.code,\n      context: this.context ? {\n        filePath: this.context.filePath,\n        nodeType: this.context.nodeType,\n        nodeCount: this.context.state?.nodeCount\n      } : undefined\n    };\n  }\n\n  /**\n   * Get the full cause message chain\n   */\n  private getFullCauseMessage(error: Error): string {\n    if (!error) return '';\n    \n    let message = error.message || 'Unknown error';\n    if ('cause' in error) {\n      const cause = error.cause as unknown;\n      if (cause instanceof Error) {\n        message += ` -> ${this.getFullCauseMessage(cause)}`;\n      }\n    }\n    \n    return message;\n  }\n} ","import { MlldError, ErrorSeverity } from '@core/errors/MlldError';\n\nexport interface ImportErrorDetails {\n  importChain?: string[];\n  filePath?: string;\n  cause?: Error;\n  variableName?: string;\n  // Additional fields for enhanced circular import detection\n  maxDepth?: number;\n  fileName?: string;\n  count?: number;\n}\n\nexport interface MlldImportErrorOptions {\n  code?: string;\n  details?: ImportErrorDetails;\n  cause?: Error;\n  severity?: ErrorSeverity;\n  context?: any;\n}\n\n/**\n * Error thrown when import operations fail\n */\nexport class MlldImportError extends MlldError {\n  public readonly details?: ImportErrorDetails;\n\n  constructor(\n    message: string,\n    options: MlldImportErrorOptions = {}\n  ) {\n    const importChainStr = options.details?.importChain \n      ? ` (chain: ${options.details.importChain.join(' → ')})`\n      : '';\n    \n    // Circular imports are fatal, other import errors are typically recoverable\n    const isCyclic = options.code === 'CIRCULAR_IMPORT' || message.includes('circular');\n    const severity = options.severity || (isCyclic ? ErrorSeverity.Fatal : ErrorSeverity.Recoverable);\n    \n    super(`Import error${options.code ? ` (${options.code})` : ''}: ${message}${importChainStr}`, {\n      code: options.code || 'IMPORT_FAILED',\n      cause: options.cause || options.details?.cause,\n      severity,\n      details: {\n        ...options.context,\n        filePath: options.details?.filePath,\n        importChain: options.details?.importChain,\n        variableName: options.details?.variableName\n      }\n    });\n    \n    this.name = 'MlldImportError';\n    this.details = options.details;\n    \n    // Ensure proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, MlldImportError.prototype);\n  }\n} ","import { MlldError, ErrorSeverity, type BaseErrorDetails, type ErrorSourceLocation } from '@core/errors/MlldError';\nimport { formatLocationForError } from '@core/utils/locationFormatter';\n\n// Define options specific to FileSystemError, without extending MlldErrorOptions\nexport interface MlldFileSystemErrorOptions { \n  command?: string;\n  cwd?: string;\n  // Include optional properties handled by MlldError constructor logic\n  severity?: ErrorSeverity; \n  code?: string; \n  details?: BaseErrorDetails;\n  sourceLocation?: ErrorSourceLocation;\n  cause?: unknown;\n}\n\n/**\n * Error thrown when file system operations fail\n */\nexport class MlldFileSystemError extends MlldError {\n  public readonly command?: string;\n  public readonly cwd?: string;\n  public readonly cause?: unknown;\n\n  constructor(message: string, options: MlldFileSystemErrorOptions = {}) {\n    // File system errors are typically fatal by default\n    const severity = options.severity || ErrorSeverity.Fatal;\n    const code = options.code || 'FILE_SYSTEM_ERROR';\n    \n    super(message, {\n      severity: severity,\n      code: code,\n      details: options.details,\n      sourceLocation: options.sourceLocation,\n      cause: options.cause\n    });\n    \n    this.name = 'MlldFileSystemError';\n    this.command = options.command;\n    this.cwd = options.cwd;\n    this.cause = options.cause;\n    \n    // Ensure proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, MlldFileSystemError.prototype);\n  }\n\n  toJSON() {\n    const cause = this.cause;\n    return {\n      name: this.name,\n      message: this.message,\n      code: this.code,\n      severity: this.severity,\n      command: this.command,\n      cwd: this.cwd,\n      filePath: this.details?.filePath,\n      cause: cause instanceof Error ? cause.message : String(cause),\n      details: this.details,\n      sourceLocation: this.sourceLocation ? formatLocationForError(this.sourceLocation) : undefined\n    };\n  }\n} ","import { MlldError, ErrorSeverity, BaseErrorDetails, ErrorSourceLocation } from './MlldError';\n\n/**\n * Represents details specific to file not found errors.\n */\nexport interface MlldFileNotFoundErrorDetails extends BaseErrorDetails {\n  filePath: string; // The path that was not found\n  operation?: string; // e.g., 'read', 'write', 'import'\n}\n\nexport interface MlldFileNotFoundErrorOptions {\n  cause?: Error;\n  severity?: ErrorSeverity;\n  context?: any;\n}\n\n/**\n * Error thrown when a required file cannot be found.\n */\nexport class MlldFileNotFoundError extends MlldError {\n  constructor(\n    message: string,\n    options: {\n      details: MlldFileNotFoundErrorDetails;\n      severity?: ErrorSeverity;\n      sourceLocation?: ErrorSourceLocation;\n      cause?: unknown; // Often wraps a system error like ENOENT\n    }\n  ) {\n    super(message, {\n      code: 'E_FILE_NOT_FOUND', // Standard error code\n      severity: options.severity || ErrorSeverity.Fatal, // Usually fatal if the file is required\n      details: options.details,\n      sourceLocation: options.sourceLocation,\n      cause: options.cause,\n    });\n  }\n} ","import { MlldError, ErrorSeverity } from '@core/errors/MlldError';\n\nexport interface MlldOutputErrorOptions {\n  cause?: Error;\n  severity?: ErrorSeverity;\n  context?: any;\n}\n\n/**\n * Error thrown when output generation fails\n */\nexport class MlldOutputError extends MlldError {\n  public readonly format: string;\n\n  constructor(\n    message: string,\n    format: string,\n    options: MlldOutputErrorOptions = {}\n  ) {\n    // Output errors are typically recoverable by default\n    const severity = options.severity || ErrorSeverity.Recoverable;\n    \n    super(`Output error (${format}): ${message}`, {\n      code: 'OUTPUT_GENERATION_FAILED',\n      cause: options.cause,\n      severity,\n      details: {\n        ...options.context,\n        format\n      }\n    });\n    \n    this.name = 'MlldOutputError';\n    this.format = format;\n    \n    // Ensure proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, MlldOutputError.prototype);\n  }\n} ","import { MlldError, ErrorSeverity } from '@core/errors/MlldError';\nimport type { Environment } from '@interpreter/env/Environment';\n\nexport interface DirectiveLocation {\n  line: number;\n  column: number;\n  filePath?: string;\n}\n\nexport interface MlldDirectiveErrorOptions {\n  location?: DirectiveLocation;\n  code?: string;\n  cause?: Error;\n  severity?: ErrorSeverity;\n  context?: any;\n  env?: Environment;\n}\n\nexport class MlldDirectiveError extends MlldError {\n  public readonly directiveKind: string;\n  public readonly location?: DirectiveLocation;\n\n  constructor(\n    message: string,\n    directiveKind: string,\n    options: MlldDirectiveErrorOptions = {}\n  ) {\n    const locationStr = options.location \n      ? ` at line ${options.location.line}, column ${options.location.column}${options.location.filePath ? ` in ${options.location.filePath}` : ''}`\n      : '';\n    \n    super(`Directive error (${directiveKind}): ${message}${locationStr}`, {\n      code: options.code || 'VALIDATION_FAILED',\n      cause: options.cause,\n      severity: options.severity || ErrorSeverity.Recoverable, // Default to recoverable for directive errors\n      // Pass context and filePath via details\n      details: {\n        ...options.context,\n        directiveKind,\n        filePath: options.location?.filePath, // Add filePath to details\n        // Keep location in details as well if needed for context\n        location: options.location \n      },\n      // Pass location as sourceLocation\n      sourceLocation: options.location,\n      // Pass environment for source access\n      env: options.env\n    });\n    \n    this.name = 'MlldDirectiveError';\n    this.directiveKind = directiveKind;\n    this.location = options.location;\n    \n    // Ensure proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, MlldDirectiveError.prototype);\n  }\n} ","import { MlldError, ErrorSeverity, BaseErrorDetails, ErrorSourceLocation } from './MlldError';\nimport type { PathValidationContext } from '@core/types/paths';\n\nexport enum PathErrorCode {\n  INVALID_PATH = 'INVALID_PATH',\n  PATH_NOT_FOUND = 'PATH_NOT_FOUND',\n  NOT_A_FILE = 'NOT_A_FILE',\n  NOT_A_DIRECTORY = 'NOT_A_DIRECTORY',\n  OUTSIDE_BASE_DIR = 'OUTSIDE_BASE_DIR',\n  INVALID_VARIABLE = 'INVALID_VARIABLE',\n  NULL_BYTE = 'NULL_BYTE',\n  INVALID_CHARS = 'INVALID_CHARS'\n}\n\nexport interface PathValidationErrorOptions {\n  cause?: Error;\n  severity?: ErrorSeverity;\n  context?: any;\n}\n\n/**\n * Represents details specific to path validation errors.\n */\nexport interface PathValidationErrorDetails extends BaseErrorDetails {\n  pathString: string; // The original path string that failed validation\n  validationContext?: Partial<PathValidationContext>;\n  ruleFailed?: string; // e.g., 'allowAbsolute', 'maxLength', 'pattern', 'mustExist'\n  reason?: string; // More specific reason, e.g., \"Path traversal detected\"\n}\n\n/**\n * Error thrown when path validation fails according to specified rules.\n */\nexport class PathValidationError extends MlldError {\n  constructor(\n    message: string,\n    options: {\n      code: string; // e.g., E_PATH_INVALID, E_PATH_FORBIDDEN, E_PATH_NOT_FOUND\n      details: PathValidationErrorDetails;\n      severity?: ErrorSeverity;\n      sourceLocation?: ErrorSourceLocation;\n      cause?: unknown;\n    }\n  ) {\n    super(message, {\n      code: options.code,\n      severity: options.severity || ErrorSeverity.Fatal, // Path errors are often fatal\n      details: options.details,\n      sourceLocation: options.sourceLocation,\n      cause: options.cause,\n    });\n  }\n} ","import { MlldError } from './MlldError';\n\n/**\n * Error thrown when evaluating complex data values fails.\n * This can happen when embedded directives, variable references, or templates\n * within @data directives fail to evaluate.\n */\nexport class DataEvaluationError extends MlldError {\n  constructor(\n    public dataPath: string,\n    public originalError: Error\n  ) {\n    super(\n      `Failed to evaluate data at ${dataPath}: ${originalError.message}`,\n      'DATA_EVALUATION_ERROR',\n      undefined\n    );\n    this.name = 'DataEvaluationError';\n  }\n}","import { MlldInterpreterError, MlldInterpreterErrorOptions } from './MlldInterpreterError';\nimport { ErrorSeverity } from './MlldError';\nimport { formatLocationForError } from '@core/utils/locationFormatter';\nimport { SourceLocation } from '@core/types';\n\nexport interface VariableRedefinitionContext {\n  variableName: string;\n  existingLocation?: SourceLocation;\n  newLocation?: SourceLocation;\n  filePath?: string;\n  suggestion?: string;\n}\n\nexport interface VariableRedefinitionErrorOptions extends MlldInterpreterErrorOptions {\n  context?: VariableRedefinitionContext;\n}\n\n/**\n * Error thrown when attempting to redefine an immutable variable\n */\nexport class VariableRedefinitionError extends MlldInterpreterError {\n  public readonly variableRedefinitionContext?: VariableRedefinitionContext;\n\n  constructor(\n    message: string,\n    options: VariableRedefinitionErrorOptions = {}\n  ) {\n    const context = options.context;\n    const location = context?.newLocation;\n    \n    // Build enhanced error message with locations\n    let enhancedMessage = message; // Use the specific message passed to constructor\n    \n    if (context?.existingLocation) {\n      const locStr = formatLocationForError(context.existingLocation);\n      enhancedMessage += `. Originally defined at ${locStr}`;\n    }\n    \n    if (context?.suggestion) {\n      enhancedMessage += `. ${context.suggestion}`;\n    }\n\n    super(\n      enhancedMessage,\n      'variable-redefinition',\n      location,\n      {\n        ...options,\n        code: 'VARIABLE_REDEFINITION',\n        severity: options.severity || ErrorSeverity.Critical\n      }\n    );\n\n    this.name = 'VariableRedefinitionError';\n    this.variableRedefinitionContext = context;\n\n    // Ensure proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, VariableRedefinitionError.prototype);\n  }\n\n  /**\n   * Create error for same-file redefinition\n   */\n  static forSameFile(\n    variableName: string,\n    existingLocation: SourceLocation,\n    newLocation: SourceLocation\n  ): VariableRedefinitionError {\n    return new VariableRedefinitionError(\n      `Variable '${variableName}' is already defined and cannot be redefined`,\n      {\n        context: {\n          variableName,\n          existingLocation,\n          newLocation,\n          filePath: newLocation?.filePath,\n          suggestion: 'Variables in mlld are immutable by design. Use a different variable name or remove one of the definitions.'\n        }\n      }\n    );\n  }\n\n  /**\n   * Create error for import conflict\n   */\n  static forImportConflict(\n    variableName: string,\n    existingLocation: SourceLocation,\n    newLocation: SourceLocation,\n    importPath?: string,\n    isExistingImported?: boolean\n  ): VariableRedefinitionError {\n    let message: string;\n    let suggestion: string;\n    \n    if (isExistingImported) {\n      message = `Variable '${variableName}' is already imported and cannot be redefined locally`;\n      suggestion = importPath\n        ? `Consider using import aliases: @import { ${variableName} as ${variableName}Imported } from \"${importPath}\"`\n        : 'Consider using import aliases or a different variable name';\n    } else {\n      message = `Variable '${variableName}' is already defined locally and cannot be imported`;\n      suggestion = `Consider using import aliases: @import { ${variableName} as ${variableName}Imported } from the import file`;\n    }\n\n    return new VariableRedefinitionError(\n      message,\n      {\n        context: {\n          variableName,\n          existingLocation,\n          newLocation,\n          filePath: newLocation?.filePath,\n          suggestion\n        }\n      }\n    );\n  }\n}","import { MlldError, ErrorSeverity } from './MlldError';\nimport type { SourceLocation } from '@core/types';\nimport type { Environment } from '@interpreter/env/Environment';\n\nexport interface CommandExecutionDetails {\n  command: string;\n  exitCode: number;\n  duration: number;\n  stdout?: string;\n  stderr?: string;\n  workingDirectory: string;\n  directiveType?: string;\n}\n\nexport class MlldCommandExecutionError extends MlldError {\n  constructor(\n    message: string,\n    sourceLocation?: SourceLocation,\n    details?: CommandExecutionDetails,\n    env?: Environment\n  ) {\n    super(message, {\n      code: 'COMMAND_EXECUTION_FAILED',\n      severity: ErrorSeverity.Recoverable,\n      sourceLocation,\n      details,\n      env\n    });\n  }\n\n  /**\n   * Creates a command execution error with enhanced context\n   */\n  static create(\n    command: string,\n    exitCode: number,\n    duration: number,\n    sourceLocation?: SourceLocation,\n    additionalContext?: {\n      stdout?: string;\n      stderr?: string;\n      workingDirectory: string;\n      directiveType?: string;\n      env?: Environment;\n    }\n  ): MlldCommandExecutionError {\n    const message = `Command execution failed: ${command}`;\n    \n    return new MlldCommandExecutionError(message, sourceLocation, {\n      command,\n      exitCode,\n      duration,\n      stdout: additionalContext?.stdout,\n      stderr: additionalContext?.stderr,\n      workingDirectory: additionalContext?.workingDirectory || process.cwd(),\n      directiveType: additionalContext?.directiveType || 'run'\n    }, additionalContext?.env);\n  }\n}","import { MlldError } from './MlldError';\nimport type { SourceLocation } from '@core/types';\n\n/**\n * Error thrown when required dependencies are not satisfied\n */\nexport class MlldDependencyError extends MlldError {\n  constructor(\n    message: string,\n    public readonly missing: string[],\n    public readonly mismatched: string[],\n    location?: SourceLocation\n  ) {\n    super(message, location);\n    this.name = 'MlldDependencyError';\n  }\n  \n  /**\n   * Get a formatted error message with installation instructions\n   */\n  getFormattedMessage(): string {\n    const lines: string[] = [this.message];\n    \n    if (this.missing.length > 0) {\n      lines.push('');\n      lines.push('To install missing packages:');\n      \n      // Group by package manager\n      const nodePackages = this.missing.filter(p => p.includes('@'));\n      const pythonPackages = this.missing.filter(p => !p.includes('@'));\n      \n      if (nodePackages.length > 0) {\n        lines.push(`  npm install ${nodePackages.join(' ')}`);\n      }\n      \n      if (pythonPackages.length > 0) {\n        lines.push(`  pip install ${pythonPackages.join(' ')}`);\n      }\n    }\n    \n    if (this.mismatched.length > 0) {\n      lines.push('');\n      lines.push('Version mismatches detected. Update packages to satisfy constraints.');\n    }\n    \n    return lines.join('\\n');\n  }\n}","import { MlldDirectiveError } from './MlldDirectiveError';\n\nexport interface ErrorSummary {\n  type: string;\n  count: number;\n  firstExample: {\n    conditionIndex: number;\n    message: string;\n    details?: any;\n  };\n}\n\nexport class MlldConditionError extends MlldDirectiveError {\n  public readonly details: {\n    exitCode?: number;\n    stderr?: string;\n    stdout?: string;\n    command?: string;\n    conditionIndex?: number;\n    modifier?: 'first' | 'all' | 'any';\n    originalError?: Error;\n    errors?: ErrorSummary[];\n  };\n\n  constructor(\n    message: string,\n    modifier?: 'first' | 'all' | 'any',\n    location?: { line: number; column: number; filePath?: string },\n    details: {\n      exitCode?: number;\n      stderr?: string;\n      stdout?: string;\n      command?: string;\n      conditionIndex?: number;\n      originalError?: Error;\n      errors?: ErrorSummary[];\n    } = {}\n  ) {\n    super(message, 'when', {\n      location,\n      code: 'CONDITION_ERROR',\n      context: { modifier, ...details }\n    });\n    \n    this.details = { ...details, modifier };\n    this.name = 'MlldConditionError';\n    \n    // Ensure proper prototype chain\n    Object.setPrototypeOf(this, MlldConditionError.prototype);\n  }\n}","import { MlldError, ErrorSeverity, BaseErrorDetails } from '@core/errors/MlldError';\nimport { ResolutionContext } from '@core/resolvers/types';\n\n/**\n * Error codes for resolver operations\n */\nexport enum ResolverErrorCode {\n  NOT_FOUND = 'E_RESOLVER_NOT_FOUND',\n  UNSUPPORTED_CONTEXT = 'E_RESOLVER_UNSUPPORTED_CONTEXT',\n  UNSUPPORTED_CAPABILITY = 'E_RESOLVER_UNSUPPORTED_CAPABILITY', \n  READONLY = 'E_RESOLVER_READONLY',\n  INVALID_FORMAT = 'E_RESOLVER_INVALID_FORMAT',\n  RESOLUTION_FAILED = 'E_RESOLVER_RESOLUTION_FAILED',\n  NAME_PROTECTED = 'E_RESOLVER_NAME_PROTECTED',\n  GENERIC = 'E_RESOLVER_ERROR'\n}\n\n/**\n * Error details for resolver operations\n */\nexport interface ResolverErrorDetails extends BaseErrorDetails {\n  /**\n   * The resolver that generated the error\n   */\n  resolverName?: string;\n  \n  /**\n   * The reference that failed to resolve\n   */\n  reference?: string;\n  \n  /**\n   * The context where resolution was attempted\n   */\n  context?: ResolutionContext;\n  \n  /**\n   * The operation that failed\n   */\n  operation?: 'resolve' | 'write' | 'list' | 'validate';\n  \n  /**\n   * Capability that was required but not supported\n   */\n  missingCapability?: string;\n  \n  /**\n   * Available resolvers that could handle the context\n   */\n  availableResolvers?: string[];\n  \n  /**\n   * Suggested format if format was invalid\n   */\n  suggestedFormat?: string;\n  \n  /**\n   * Original error if wrapping another error\n   */\n  originalError?: Error;\n}\n\n/**\n * Error thrown by resolver operations\n */\nexport class ResolverError extends MlldError {\n  public readonly details: ResolverErrorDetails;\n\n  constructor(\n    message: string, \n    code: ResolverErrorCode = ResolverErrorCode.GENERIC,\n    details: ResolverErrorDetails = {}\n  ) {\n    super(message, {\n      code,\n      severity: details.originalError ? ErrorSeverity.Fatal : ErrorSeverity.Recoverable,\n      details,\n      cause: details.originalError\n    });\n    this.details = details;\n    this.name = 'ResolverError';\n  }\n\n  /**\n   * Create error for missing resolver\n   */\n  static notFound(reference: string, context?: ResolutionContext): ResolverError {\n    const contextMsg = context ? ` in ${context} context` : '';\n    return new ResolverError(\n      `No resolver found for reference '${reference}'${contextMsg}`,\n      { reference, context, operation: 'resolve' }\n    );\n  }\n\n  /**\n   * Create error for unsupported capability\n   */\n  static unsupportedCapability(\n    resolverName: string, \n    capability: string, \n    context?: ResolutionContext\n  ): ResolverError {\n    return new ResolverError(\n      `Resolver '${resolverName}' does not support ${capability}`,\n      { \n        resolverName, \n        context, \n        missingCapability: capability,\n        operation: 'validate' \n      }\n    );\n  }\n\n  /**\n   * Create error for invalid format\n   */\n  static invalidFormat(\n    resolverName: string, \n    format: string, \n    supportedFormats: string[]\n  ): ResolverError {\n    const suggestedFormat = supportedFormats[0] || 'default';\n    return new ResolverError(\n      `Resolver '${resolverName}' does not support format '${format}'. Supported formats: ${supportedFormats.join(', ')}`,\n      {\n        resolverName,\n        operation: 'resolve',\n        suggestedFormat\n      }\n    );\n  }\n\n  /**\n   * Create error for resolution failure\n   */\n  static resolutionFailed(\n    resolverName: string, \n    reference: string, \n    originalError: Error\n  ): ResolverError {\n    return new ResolverError(\n      `${resolverName} failed to resolve '${reference}': ${originalError.message}`,\n      {\n        resolverName,\n        reference,\n        operation: 'resolve',\n        originalError\n      }\n    );\n  }\n\n  /**\n   * Create error for name protection violation\n   */\n  static nameProtected(name: string, isVariable: boolean = true): ResolverError {\n    const type = isVariable ? 'variable' : 'import alias';\n    return new ResolverError(\n      `Cannot use '${name}' as ${type} name - it is a reserved resolver name`,\n      {\n        reference: name,\n        operation: 'validate'\n      }\n    );\n  }\n\n  /**\n   * Get formatted error message with attribution\n   */\n  getFormattedMessage(): string {\n    const parts: string[] = [this.message];\n    \n    if (this.details.resolverName) {\n      parts.push(`Resolver: ${this.details.resolverName}`);\n    }\n    \n    if (this.details.context) {\n      parts.push(`Context: ${this.details.context}`);\n    }\n    \n    if (this.details.missingCapability) {\n      parts.push(`Missing capability: ${this.details.missingCapability}`);\n    }\n    \n    if (this.details.availableResolvers && this.details.availableResolvers.length > 0) {\n      parts.push(`Available resolvers: ${this.details.availableResolvers.join(', ')}`);\n    }\n    \n    if (this.details.suggestedFormat) {\n      parts.push(`💡 Try using format: ${this.details.suggestedFormat}`);\n    }\n    \n    return parts.join('\\n  ');\n  }\n\n  /**\n   * Get helpful suggestions based on error type\n   */\n  getSuggestions(): string[] {\n    const suggestions: string[] = [];\n    \n    if (this.details.operation === 'resolve' && !this.details.resolverName) {\n      suggestions.push('Check that the module or resolver is installed');\n      suggestions.push('Verify the reference syntax is correct');\n      if (this.details.reference?.startsWith('@')) {\n        suggestions.push('For modules, use: @author/module');\n        suggestions.push('For built-in resolvers, use: @TIME, @DEBUG, @INPUT, or @PROJECTPATH');\n      }\n    }\n    \n    if (this.details.missingCapability === 'supportsImports') {\n      suggestions.push(`This resolver can only be used in path contexts, not imports`);\n      suggestions.push(`Try using it with @path directive instead`);\n    }\n    \n    if (this.details.missingCapability === 'supportsPaths') {\n      suggestions.push(`This resolver can only be used in import contexts, not paths`);\n      suggestions.push(`Try using it with @import directive instead`);\n    }\n    \n    if (this.details.operation === 'validate' && this.message.includes('reserved resolver name')) {\n      suggestions.push('Choose a different name that doesn\\'t conflict with built-in resolvers');\n      suggestions.push('Built-in resolver names: TIME, DEBUG, INPUT, PROJECTPATH');\n    }\n    \n    return suggestions;\n  }\n}","/**\n * Error thrown when evaluating when expressions\n */\n\nimport { MlldError } from './MlldError';\nimport type { SourceLocation } from '../types';\n\nexport interface WhenExpressionErrorDetails {\n  conditionIndex?: number;\n  phase?: 'condition' | 'action';\n  originalError?: Error;\n  errors?: Error[];\n}\n\nexport class MlldWhenExpressionError extends MlldError {\n  public readonly details?: WhenExpressionErrorDetails;\n\n  constructor(\n    message: string,\n    location?: SourceLocation,\n    details?: WhenExpressionErrorDetails\n  ) {\n    super(message, 'E_WHEN_EXPRESSION', location);\n    this.details = details;\n    this.name = 'MlldWhenExpressionError';\n  }\n}","import { ErrorSeverity } from '@core/errors/index';\n\n/**\n * Standard error messages for path-related errors\n */\nexport const PathErrorMessages = {\n  // Basic validation errors\n  EMPTY_PATH: 'Path cannot be empty',\n  NULL_BYTE: 'Path contains null bytes which is a security risk',\n  INVALID_PATH: 'Invalid path format',\n  FILE_NOT_FOUND: 'File not found: {path}',\n  PATH_NOT_FOUND: 'Path not found: {path}',\n  \n  // File type validation errors\n  NOT_A_FILE: 'Path is not a file: {path}',\n  NOT_A_DIRECTORY: 'Path is not a directory: {path}',\n  \n  // Mlld-specific path rule errors\n  CONTAINS_DOT_SEGMENTS: 'Path cannot contain . or .. segments',\n  INVALID_PATH_FORMAT: 'Invalid path format - paths with slashes must use $. or $~',\n  RAW_ABSOLUTE_PATH: 'Raw absolute paths are not allowed - use $. or $~ instead',\n  OUTSIDE_BASE_DIR: 'Path is outside of the base directory',\n\n  /**\n   * Error for path validation issues\n   */\n  validation: {\n    /**\n     * Guidance message for raw absolute paths\n     */\n    rawAbsolutePath: {\n      message: 'For better cross-platform portability, consider using path variables like $. or $PROJECTPATH for project-relative paths and $~ or $HOMEPATH for home-relative paths. Raw absolute paths are allowed but may not work across different environments.',\n      code: 'PATH_GUIDANCE',\n      severity: 'info' as ErrorSeverity\n    },\n\n    /**\n     * Guidance message for paths with slashes but no path variable\n     */\n    slashesWithoutPathVariable: {\n      message: 'For better cross-platform portability, consider using path variables like $. or $PROJECTPATH for project-relative paths and $~ or $HOMEPATH for home-relative paths. Standard paths are allowed but may not work across different environments.',\n      code: 'PATH_GUIDANCE',\n      severity: 'info' as ErrorSeverity\n    },\n\n    /**\n     * Guidance message for paths with dot segments\n     */\n    dotSegments: {\n      message: 'For better cross-platform portability, consider using path variables like $. or $PROJECTPATH for project-relative paths and $~ or $HOMEPATH for home-relative paths. Relative paths with dot segments are allowed but may not work across different environments.',\n      code: 'PATH_GUIDANCE',\n      severity: 'info' as ErrorSeverity\n    }\n  },\n\n  /**\n   * Error messages for file access issues\n   */\n  fileAccess: {\n    /**\n     * Error message for file not found\n     */\n    fileNotFound: {\n      message: 'File not found: {filePath}',\n      code: 'FILE_NOT_FOUND',\n      severity: 'recoverable' as ErrorSeverity\n    },\n\n    /**\n     * Error message for directory not found\n     */\n    directoryNotFound: {\n      message: 'Directory not found: {dirPath}',\n      code: 'DIRECTORY_NOT_FOUND',\n      severity: 'recoverable' as ErrorSeverity\n    },\n\n    /**\n     * Error message for permission issues\n     */\n    permissionDenied: {\n      message: 'Permission denied when accessing file: {filePath}',\n      code: 'PERMISSION_DENIED',\n      severity: 'recoverable' as ErrorSeverity\n    }\n  },\n\n  /**\n   * Error messages for circular dependency issues\n   */\n  circular: {\n    /**\n     * Error message for circular imports\n     */\n    circularImport: {\n      message: 'Circular import detected in file: {filePath}',\n      code: 'CIRCULAR_IMPORT',\n      severity: 'recoverable' as ErrorSeverity\n    }\n  }\n};\n","import { MlldError, ErrorSeverity } from './MlldError';\nimport { ResolutionErrorCode } from './index';\nimport type { Field as AstField } from '@core/types/common';\n\n/**\n * Details specific to field access errors.\n */\nexport interface FieldAccessErrorDetails {\n  /** The base object or value being accessed */\n  baseValue: unknown;\n  /** The sequence of field/index accesses attempted */\n  fieldAccessChain: AstField[];\n  /** The index in the chain where the access failed */\n  failedAtIndex: number;\n  /** The specific field/index key that failed */\n  failedKey: string | number;\n}\n\n/**\n * Error class for issues encountered during field access (e.g., accessing a property on null/undefined, invalid index).\n */\nexport class FieldAccessError extends MlldError {\n  public details: FieldAccessErrorDetails;\n\n  constructor(message: string, details: FieldAccessErrorDetails, cause?: unknown) {\n    super(message, {\n        code: ResolutionErrorCode.FIELD_ACCESS_ERROR,\n        severity: ErrorSeverity.Recoverable,\n        details: details,\n        cause: cause\n    });\n    this.name = 'FieldAccessError';\n    this.details = details;\n  }\n} ","import { MlldError, ErrorSeverity, BaseErrorDetails, ErrorSourceLocation } from './MlldError';\nimport type { VariableType, ResolutionContext } from '@core/types/index';\n\n/**\n * Represents details specific to variable resolution errors.\n */\nexport interface VariableResolutionErrorDetails extends BaseErrorDetails {\n  variableName: string;\n  variableType?: VariableType;\n  resolutionContext?: Partial<ResolutionContext>; // Include relevant context if available\n  availableVariables?: string[]; // Potentially list available vars for debugging\n}\n\n/**\n * Error thrown when resolving a variable fails\n * (e.g., variable not found, type mismatch, circular reference).\n */\nexport class VariableResolutionError extends MlldError {\n  constructor(\n    message: string,\n    options: {\n      code: string; // Specific code like E_VAR_NOT_FOUND, E_CIRCULAR_REF, E_TYPE_MISMATCH\n      details: VariableResolutionErrorDetails;\n      severity?: ErrorSeverity; // Defaults to Recoverable? Might depend on code\n      sourceLocation?: ErrorSourceLocation;\n      cause?: unknown;\n    }\n  ) {\n    super(message, {\n      code: options.code,\n      severity: options.severity || ErrorSeverity.Recoverable,\n      details: options.details,\n      sourceLocation: options.sourceLocation,\n      cause: options.cause,\n    });\n  }\n} ","/**\n * Central export point for Mlld error types.\n */\n\n// Export all error types from the errors directory\nexport { MlldError, ErrorSeverity } from './MlldError';\nexport { MlldParseError } from './MlldParseError';\nexport { MlldResolutionError } from './MlldResolutionError';\nexport { MlldInterpreterError } from './MlldInterpreterError';\nexport { MlldImportError } from './MlldImportError';\nexport { MlldFileSystemError } from './MlldFileSystemError';\nexport { MlldFileNotFoundError } from './MlldFileNotFoundError';\nexport { MlldOutputError } from './MlldOutputError';\nexport { MlldDirectiveError } from './MlldDirectiveError';\nexport { PathValidationError } from './PathValidationError';\nexport { DataEvaluationError } from './DataEvaluationError';\nexport { VariableRedefinitionError } from './VariableRedefinitionError';\nexport { MlldCommandExecutionError } from './MlldCommandExecutionError';\nexport type { CommandExecutionDetails } from './MlldCommandExecutionError';\nexport { MlldDependencyError } from './MlldDependencyError';\nexport { MlldConditionError } from './MlldConditionError';\nexport { ResolverError, ResolverErrorCode } from './ResolverError';\nexport type { ResolverErrorDetails } from './ResolverError';\nexport { MlldWhenExpressionError } from './MlldWhenExpressionError';\nexport type { WhenExpressionErrorDetails } from './MlldWhenExpressionError';\n\n// Export error message collections\nexport * from './messages/index'; \n\n// Add exports for specific errors as they are created:\nexport * from './FieldAccessError';\nexport * from './VariableResolutionError';\nexport * from './PathValidationError';\nexport * from './MlldResolutionError';\nexport * from './MlldFileNotFoundError';\nexport * from './DataEvaluationError';\n// ... other specific errors \n\n// Define and export shared error codes\nexport enum ResolutionErrorCode {\n  FIELD_ACCESS_ERROR = 'FIELD_ACCESS_ERROR',\n  VARIABLE_NOT_FOUND = 'VARIABLE_NOT_FOUND',\n  INVALID_VARIABLE_TYPE = 'INVALID_VARIABLE_TYPE',\n  CIRCULAR_REFERENCE = 'CIRCULAR_REFERENCE',\n  MAX_DEPTH_EXCEEDED = 'MAX_DEPTH_EXCEEDED',\n  SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE',\n  STRINGIFY_FAILED = 'STRINGIFY_FAILED',\n  // Add other relevant codes from MlldResolutionError, VariableResolutionError etc.\n  // E.g., from MlldResolutionError.ts\n  E_PARSE_FAILED = 'E_PARSE_FAILED',\n  E_RESOLVE_CONTENT_FAILED = 'E_RESOLVE_CONTENT_FAILED',\n  E_RESOLVE_TEXT_FAILED = 'E_RESOLVE_TEXT_FAILED',\n  E_RESOLVE_DATA_FAILED = 'E_RESOLVE_DATA_FAILED',\n  E_RESOLVE_INVALID_PATH_TYPE = 'E_RESOLVE_INVALID_PATH_TYPE',\n  E_UNSUPPORTED_TYPE = 'E_UNSUPPORTED_TYPE',\n  E_COMMAND_FAILED = 'E_COMMAND_FAILED',\n  E_COMMAND_TYPE_UNSUPPORTED = 'E_COMMAND_TYPE_UNSUPPORTED',\n  E_SECTION_NOT_FOUND = 'E_SECTION_NOT_FOUND',\n  E_SECTION_EXTRACTION_FAILED = 'E_SECTION_EXTRACTION_FAILED',\n  // E.g., from VariableResolutionError.ts\n  E_VAR_NOT_FOUND = 'E_VAR_NOT_FOUND', // Duplicate of VARIABLE_NOT_FOUND, choose one\n  E_UNEXPECTED_TYPE = 'E_UNEXPECTED_TYPE', // Maybe different from INVALID_VARIABLE_TYPE?\n  E_PATH_VALIDATION_FAILED = 'E_PATH_VALIDATION_FAILED',\n}\n\n// TODO: Consolidate ErrorCode usage across all error types.\n// Other files might have their own enums (PathErrorCode, DirectiveErrorCode etc.)\n// that could potentially be merged or referenced here. "]}