export type GenerationSubmissionErrorCode = | "generation_blocked" | "generation_idempotency_conflict" | "generation_not_found" | "generation_request_invalid" | "generation_storage_unavailable" | "model_config_stale" | "reference_invalid"; export class GenerationSubmissionError extends Error { readonly code: GenerationSubmissionErrorCode; readonly errorCategory: "gateway_balance_insufficient" | "gateway_contract_invalid" | "model_disabled" | "reference_invalid" | undefined; readonly latest: { configVersion: number; creditCost: number; modelId: string } | undefined; readonly storage: { capacityStatus: "normal" | "warning" | "critical" | "full" | "unavailable"; remainingBytes: number } | undefined; constructor( code: GenerationSubmissionErrorCode, options: { errorCategory?: "gateway_balance_insufficient" | "gateway_contract_invalid" | "model_disabled" | "reference_invalid"; latest?: { configVersion: number; creditCost: number; modelId: string }; storage?: { capacityStatus: "normal" | "warning" | "critical" | "full" | "unavailable"; remainingBytes: number }; } = {}, ) { super(code); this.code = code; this.errorCategory = options.errorCategory; this.latest = options.latest; this.storage = options.storage; } }