/** * Forgen — Domain Error Classes * * 도메인별 에러 계층: * ForgenError (base) * ├── ProviderError — AI provider 호출 실패 * ├── HookError — hook 실행 실패 * ├── ConfigError — 설정 파일 파싱/검증 실패 * ├── PackError — pack 설치/로드 실패 * ├── ForgeError — forge dimension/profile 관련 실패 * └── NonRetryableError — 재시도 불가 에러 (provider 내부 사용) */ export interface ForgenErrorOptions { code?: string; context?: Record; cause?: unknown; } /** 모든 forgen 에러의 기반 클래스 */ export declare class ForgenError extends Error { readonly code: string; readonly context: Record; constructor(message: string, options?: ForgenErrorOptions); toJSON(): Record; } export interface ProviderErrorOptions extends ForgenErrorOptions { providerName?: string; statusCode?: number; } /** AI provider 호출 실패 */ export declare class ProviderError extends ForgenError { readonly providerName: string; readonly statusCode: number | undefined; constructor(message: string, options?: ProviderErrorOptions); toJSON(): Record; } export interface HookErrorOptions extends ForgenErrorOptions { hookName?: string; eventType?: string; } /** hook 실행 실패 */ export declare class HookError extends ForgenError { readonly hookName: string; readonly eventType: string; constructor(message: string, options?: HookErrorOptions); toJSON(): Record; } export interface ConfigErrorOptions extends ForgenErrorOptions { configPath?: string; field?: string; } /** 설정 파일 파싱/검증 실패 */ export declare class ConfigError extends ForgenError { readonly configPath: string; readonly field: string | undefined; constructor(message: string, options?: ConfigErrorOptions); toJSON(): Record; } export interface PackErrorOptions extends ForgenErrorOptions { packName?: string; } /** pack 설치/로드 실패 */ export declare class PackError extends ForgenError { readonly packName: string; constructor(message: string, options?: PackErrorOptions); toJSON(): Record; } export interface ForgeErrorOptions extends ForgenErrorOptions { dimension?: string; profile?: string; } /** forge dimension/profile 관련 실패 */ export declare class ForgeError extends ForgenError { readonly dimension: string | undefined; readonly profile: string | undefined; constructor(message: string, options?: ForgeErrorOptions); toJSON(): Record; } /** 재시도 불가 에러 (401/403 등) — provider 내부에서 사용 */ export declare class NonRetryableError extends ForgenError { constructor(message: string); }