from __future__ import annotations from fastmcp import FastMCP from services.reference_data_service import ingest_reference_resumes, sync_reference_resumes_to_local def register(mcp: FastMCP) -> None: @mcp.tool() def bulk_ingest_reference_resumes( limit: int = 20, source_dir: str | None = None, force_reingest: bool = False, sync_to_local: bool = True, sync_max_files: int = 150, ) -> dict: """Bulk ingest sample resumes from a local directory into SQLite and vector index.""" sync_result = None ingest_source = source_dir if sync_to_local: sync_result = sync_reference_resumes_to_local( max_files=max(1, min(sync_max_files, 1000)), source_dir=source_dir, ) ingest_source = str(sync_result.get("target_dir")) summary = ingest_reference_resumes( limit=max(1, min(limit, 200)), source_dir=ingest_source, force_reingest=force_reingest, ) return { "status": "success", "sync": sync_result, "summary": { "source_dir": summary.source_dir, "requested_limit": summary.requested_limit, "files_seen": summary.files_seen, "ingested": summary.ingested, "skipped": summary.skipped, "failed": summary.failed, }, "failures": summary.failures[:20], }