packages/chat-preprocess-cli/src/errors.ts

export const PREPROCESS_ERROR_CODES = { EMPTY_README: 'PREPROCESS_EMPTY_README', README_TRUNCATED: 'PREPROCESS_README_TRUNCATED', PDF_UNREADABLE: 'PREPROCESS_PDF_UNREADABLE', PDF_EMPTY: 'PREPROCESS_PDF_EMPTY', PDF_NOT_FOUND: 'PREPROCESS_PDF_NOT_FOUND', PROFILE_REQUIRED: 'PREPROCESS_PROFILE_REQUIRED', PROFILE_INVALID: 'PREPROCESS_PROFILE_INVALID', GIST_UNAVAILABLE: 'PREPROCESS_GIST_UNAVAILABLE', REPO_NOT_FOUND: 'PREPROCESS_REPO_NOT_FOUND', LLM_RATE_LIMIT: 'PREPROCESS_LLM_RATE_LIMIT', LLM_TIMEOUT: 'PREPROCESS_LLM_TIMEOUT', LLM_INVALID_RESPONSE: 'PREPROCESS_LLM_INVALID_RESPONSE', LLM_REFUSED: 'PREPROCESS_LLM_REFUSED', EMBED_RATE_LIMIT: 'PREPROCESS_EMBED_RATE_LIMIT', EMBED_TIMEOUT: 'PREPROCESS_EMBED_TIMEOUT', EMBED_DIMENSION_MISMATCH: 'PREPROCESS_EMBED_DIMENSION_MISMATCH', NO_PROJECTS: 'PREPROCESS_NO_PROJECTS', NO_RESUME: 'PREPROCESS_NO_RESUME', INVALID_LINKS: 'PREPROCESS_INVALID_LINKS', INCOMPLETE_EMBEDDINGS: 'PREPROCESS_INCOMPLETE_EMBEDDINGS', RESUME_SOURCE_INVALID: 'PREPROCESS_RESUME_SOURCE_INVALID', RESUME_FIELD_INVALID: 'PREPROCESS_RESUME_FIELD_INVALID', } as const;

type PreprocessErrorCode = (typeof PREPROCESS_ERROR_CODES)[keyof typeof PREPROCESS_ERROR_CODES];

export class PreprocessError extends Error { code: PreprocessErrorCode;

constructor(code: PreprocessErrorCode, message: string) { super(message); this.code = code; this.name = 'PreprocessError'; } }