--- name: vault_profile_dispatch kind: function lang: py domain: infra version: "1.0.0" purity: impure signature: "def vault_profile_dispatch(vault_path: str, rel_path: str, kind: str, db_path: str | None = None) -> dict" description: "CLI dispatcher que enruta un archivo del vault al profiler correcto segun su tipo (csv/pdf/md). Thin wrapper sobre vault_csv_profile, vault_pdf_extract y vault_knowledge_parse. Usable desde Go via os/exec para procesar archivos en bulk." tags: [vault, profile, dispatch, profiler, csv, pdf, md, infra] uses_functions: - vault_csv_profile_py_datascience - vault_pdf_extract_py_datascience - vault_knowledge_parse_py_infra uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] params: - name: vault_path desc: "Ruta absoluta a la raiz del vault." - name: rel_path desc: "Ruta relativa del archivo dentro del vault." - name: kind desc: "Tipo de profiler: csv | pdf | md." - name: db_path desc: "Override de la ruta a vault_index.db. Default: /vault_index.db." output: "Dict con resultado del profiler correspondiente. Para csv: {rel_path, cols, n_rows, encoding, date_min, date_max, persisted}. Para pdf: {rel_path, page_count, text_len, extracted_to, persisted}. Para md: resultado de vault_knowledge_parse." tested: false tests: [] test_file_path: "" file_path: "python/functions/infra/vault_profile_dispatch.py" --- ## Ejemplo ```bash # Desde CLI python3 python/functions/infra/vault_profile_dispatch.py \ --vault /home/lucas/vaults/turismo_spain \ --rel-path data/raw/report.csv \ --kind csv # Desde Go via os/exec (patron usado en fn vault profile) python3 vault_profile_dispatch.py --vault --rel-path

--kind csv ``` ## Notas Disenado para ser invocado desde Go via `os/exec`. Imprime resultado como JSON a stdout. Codigos de salida: 0=exito, 1=args faltantes, 2=kind desconocido, 3=error del profiler. Detecta automaticamente el PYTHONPATH mirando `FN_REGISTRY_ROOT` o subiendo desde su propia ubicacion.