# Data Models: ResearchLink AI All data models are Pydantic v2 BaseModel subclasses. ## IngestionInput (`schemas/inputs.py`) User-provided inputs. Requires at least one source. Key fields: `paper_pdf_path`, `paper_pdf_url`, `paper_url`, `github_url`, `bibtex`, `author_notes`, `target_output_dir`, `force_overwrite` ## ResolvedSources (`schemas/inputs.py`) After source resolution. Tracks what's available. Key fields: `local_pdf_path`, `pdf_available`, `paper_url_reachable`, `github_url_reachable` ## PaperExtraction (`schemas/paper.py`) Raw text and structure from PDF. Key fields: `full_text`, `title_candidates`, `abstract`, `section_headings`, `references_raw`, `extraction_complete`, `confidence` ## PaperMetadata (`schemas/paper.py`) Structured paper metadata. Key fields: `id`, `title`, `year`, `status`, `venue`, `authors_provisional`, `areas`, `tags`, `slug`, `verification`, `confidence` ## CitationEntry + CitationReport (`schemas/citations.py`) Per-reference and aggregate citation analysis. Key enum: `CitationStatus` — verified, needs-verification, placeholder, incomplete, conflict ## RepoAnalysis (`schemas/repository.py`) GitHub repository inspection results. Key fields: `owner`, `repo_name`, `readme_content`, `detected_language`, `detected_frameworks`, `setup_commands`, `is_likely_official_impl` ## GenerationReport (`schemas/outputs.py`) Final pipeline summary. Key fields: `slug`, `output_dir`, `files_generated`, `errors`, `warnings`, `quality_flags`, `success`, `duration_seconds`