nemo-retriever 2026.8.12.dev181__tar.gz → 2026.8.13.dev182__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. {nemo_retriever-2026.8.12.dev181/src/nemo_retriever.egg-info → nemo_retriever-2026.8.13.dev182}/PKG-INFO +1 -1
  2. nemo_retriever-2026.8.13.dev182/src/nemo_retriever/_build_info.py +4 -0
  3. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/content_transforms.py +47 -28
  4. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/params/models.py +7 -1
  5. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/records.py +31 -8
  6. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/executor.py +91 -12
  7. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/ingestor_runtime.py +2 -22
  8. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingestor/branch_extraction.py +4 -0
  9. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingestor/graph_ingestor.py +23 -2
  10. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/dedup.py +40 -11
  11. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/caption/caption.py +89 -5
  12. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/txt/ray_data.py +5 -0
  13. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/store_operator.py +11 -5
  14. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/pipeline_executor.py +38 -2
  15. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182/src/nemo_retriever.egg-info}/PKG-INFO +1 -1
  16. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever.egg-info/SOURCES.txt +1 -0
  17. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_caption.py +94 -0
  18. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_compose_nim_2_contracts.py +36 -10
  19. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_dedup.py +58 -0
  20. nemo_retriever-2026.8.13.dev182/tests/test_evidence.py +23 -0
  21. nemo_retriever-2026.8.13.dev182/tests/test_executor_arrow_pandas.py +260 -0
  22. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_tracing_zipkin.py +61 -0
  23. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ingest_interface.py +70 -18
  24. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ingest_manifest.py +8 -6
  25. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ingest_plans.py +70 -28
  26. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nv_ingest_vdb_operator.py +56 -26
  27. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_params_models.py +18 -0
  28. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_pipeline_graph.py +178 -0
  29. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_local_models.py +24 -1
  30. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_pipeline_spec.py +51 -0
  31. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_store_pipeline_stages.py +51 -0
  32. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_vdb_records.py +21 -0
  33. nemo_retriever-2026.8.12.dev181/src/nemo_retriever/_build_info.py +0 -4
  34. nemo_retriever-2026.8.12.dev181/tests/test_executor_arrow_pandas.py +0 -123
  35. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/LICENSE +0 -0
  36. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/README.md +0 -0
  37. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/pyproject.toml +0 -0
  38. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/setup.cfg +0 -0
  39. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/__init__.py +0 -0
  40. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/__main__.py +0 -0
  41. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/__init__.py +0 -0
  42. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/__init__.py +0 -0
  43. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/agent.py +0 -0
  44. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/cache_propagation.py +0 -0
  45. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/__init__.py +0 -0
  46. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/base_backend.py +0 -0
  47. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/callable_backend.py +0 -0
  48. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/error_classification.py +0 -0
  49. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/errors.py +0 -0
  50. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/helpers.py +0 -0
  51. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/litellm_backend.py +0 -0
  52. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/result.py +0 -0
  53. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/llm/usage.py +0 -0
  54. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/loop.py +0 -0
  55. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/prompts/__init__.py +0 -0
  56. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/prompts/templates/00_default.j2 +0 -0
  57. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/prompts/templates/01_v0.j2 +0 -0
  58. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/prompts/templates/02_v1.j2 +0 -0
  59. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/prompts/templates/06_select_lean_v1.j2 +0 -0
  60. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/prompts/templates/selection/00_demo.j2 +0 -0
  61. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/prompts/templates/selection/01_v0.j2 +0 -0
  62. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/results.py +0 -0
  63. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/selection_agent.py +0 -0
  64. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/tools/__init__.py +0 -0
  65. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/tools/base_tool.py +0 -0
  66. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/tools/end_tools.py +0 -0
  67. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/tools/retrieve.py +0 -0
  68. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/_agentic/nemo_agent/tools/think_tool.py +0 -0
  69. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/__init__.py +0 -0
  70. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/evidence.py +0 -0
  71. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/ingest/__init__.py +0 -0
  72. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/ingest/app.py +0 -0
  73. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/ingest/graph_commands.py +0 -0
  74. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/ingest/options.py +0 -0
  75. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/ingest/service.py +0 -0
  76. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/ingest/shared.py +0 -0
  77. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/ingest_workflow.py +0 -0
  78. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/main.py +0 -0
  79. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/query/__init__.py +0 -0
  80. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/query/app.py +0 -0
  81. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/query/options.py +0 -0
  82. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/query_workflow.py +0 -0
  83. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/cli/shared.py +0 -0
  84. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/__init__.py +0 -0
  85. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/__init__.py +0 -0
  86. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/__init__.py +0 -0
  87. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/enums/__init__.py +0 -0
  88. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/enums/common.py +0 -0
  89. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/extract/__init__.py +0 -0
  90. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/mutate/__init__.py +0 -0
  91. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/mutate/deduplicate.py +0 -0
  92. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/primitives/__init__.py +0 -0
  93. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/primitives/control_message_task.py +0 -0
  94. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/primitives/ingest_control_message.py +0 -0
  95. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/primitives/tracing/__init__.py +0 -0
  96. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/primitives/tracing/logging.py +0 -0
  97. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/primitives/tracing/tagging.py +0 -0
  98. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/__init__.py +0 -0
  99. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/extract/__init__.py +0 -0
  100. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/meta/__init__.py +0 -0
  101. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/meta/base_model_noext.py +0 -0
  102. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/meta/metadata_schema.py +0 -0
  103. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/mixins.py +0 -0
  104. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/mutate/__init__.py +0 -0
  105. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/internal/schemas/mutate/mutate_image_dedup_schema.py +0 -0
  106. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/__init__.py +0 -0
  107. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/control_message/__init__.py +0 -0
  108. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/control_message/validators.py +0 -0
  109. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/converters/__init__.py +0 -0
  110. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/converters/bytetools.py +0 -0
  111. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/converters/datetools.py +0 -0
  112. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/detectors/__init__.py +0 -0
  113. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/detectors/language.py +0 -0
  114. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/exception_handlers/__init__.py +0 -0
  115. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/exception_handlers/converters.py +0 -0
  116. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/exception_handlers/decorators.py +0 -0
  117. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/exception_handlers/detectors.py +0 -0
  118. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/exception_handlers/pdf.py +0 -0
  119. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/image_processing/__init__.py +0 -0
  120. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/image_processing/clustering.py +0 -0
  121. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/image_processing/transforms.py +0 -0
  122. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/metadata/__init__.py +0 -0
  123. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/metadata/aggregators.py +0 -0
  124. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/pdf/__init__.py +0 -0
  125. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/pdf/pdfium.py +0 -0
  126. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/api/util/string_processing/__init__.py +0 -0
  127. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/config_utils.py +0 -0
  128. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/inline_text.py +0 -0
  129. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/input_files.py +0 -0
  130. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/io/__init__.py +0 -0
  131. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/io/dataframe.py +0 -0
  132. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/io/export.py +0 -0
  133. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/io/image_store.py +0 -0
  134. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/io/markdown.py +0 -0
  135. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/__init__.py +0 -0
  136. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/audio/__init__.py +0 -0
  137. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/audio/media_interface.py +0 -0
  138. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/caption/__init__.py +0 -0
  139. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/caption/model_profiles.py +0 -0
  140. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/convert/__init__.py +0 -0
  141. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/convert/to_pdf.py +0 -0
  142. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/html/__init__.py +0 -0
  143. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/html/convert.py +0 -0
  144. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/image/__init__.py +0 -0
  145. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/image/load.py +0 -0
  146. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/ocr/__init__.py +0 -0
  147. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/ocr/config.py +0 -0
  148. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/ocr/shared.py +0 -0
  149. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/page_elements/__init__.py +0 -0
  150. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/page_elements/local.py +0 -0
  151. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/page_elements/shared.py +0 -0
  152. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/parse/__init__.py +0 -0
  153. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/parse/nemotron_parse_postprocessing.py +0 -0
  154. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/pipeline/__init__.py +0 -0
  155. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/pipeline/content.py +0 -0
  156. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/pipeline/embedding.py +0 -0
  157. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/table/__init__.py +0 -0
  158. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/table/shared.py +0 -0
  159. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/table_and_chart.py +0 -0
  160. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/txt/__init__.py +0 -0
  161. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/txt/split.py +0 -0
  162. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/txt/tokenizer_provider.py +0 -0
  163. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/video/__init__.py +0 -0
  164. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/modality/video/_content_types.py +0 -0
  165. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/nvtx.py +0 -0
  166. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/params/__init__.py +0 -0
  167. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/params/utils.py +0 -0
  168. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/policy.py +0 -0
  169. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/ray_resource_hueristics.py +0 -0
  170. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/ray_runtime.py +0 -0
  171. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/remote_auth.py +0 -0
  172. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/__init__.py +0 -0
  173. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/base.py +0 -0
  174. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/collections.py +0 -0
  175. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/document.py +0 -0
  176. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/job.py +0 -0
  177. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/pipeline_spec.py +0 -0
  178. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/requests.py +0 -0
  179. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/schemas/responses.py +0 -0
  180. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/__init__.py +0 -0
  181. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/adt_vdb.py +0 -0
  182. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/factory.py +0 -0
  183. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/lancedb.py +0 -0
  184. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/lancedb_bulk.py +0 -0
  185. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/lancedb_capabilities.py +0 -0
  186. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/lancedb_collections.py +0 -0
  187. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/lancedb_schema.py +0 -0
  188. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/common/vdb/sidecar_metadata.py +0 -0
  189. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/__init__.py +0 -0
  190. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/designer.py +0 -0
  191. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/graph_pipeline_registry.py +0 -0
  192. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/operator_resolution.py +0 -0
  193. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/pipeline_graph.py +0 -0
  194. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/retriever.py +0 -0
  195. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/graph/retriever_utils.py +0 -0
  196. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/__init__.py +0 -0
  197. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/__main__.py +0 -0
  198. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/artifact_writer.py +0 -0
  199. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/artifacts.py +0 -0
  200. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/beir_runner.py +0 -0
  201. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/benchmark_registry.py +0 -0
  202. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/benchmark_specs.py +0 -0
  203. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/cli.py +0 -0
  204. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/config.py +0 -0
  205. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/contracts.py +0 -0
  206. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/dataset_paths.py +0 -0
  207. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/diff.py +0 -0
  208. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/environment.py +0 -0
  209. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/execution.py +0 -0
  210. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/helm_config.py +0 -0
  211. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/helm_manager.py +0 -0
  212. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/helm_runner.py +0 -0
  213. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/history.py +0 -0
  214. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/json_io.py +0 -0
  215. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/metric_gates.py +0 -0
  216. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/metrics.py +0 -0
  217. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/__init__.py +0 -0
  218. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/app.py +0 -0
  219. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/mcp_registry.py +0 -0
  220. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/mcp_server.py +0 -0
  221. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/mcp_tools.py +0 -0
  222. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/index.html +0 -0
  223. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/nvidia-logo.svg +0 -0
  224. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/alerts.jsx +0 -0
  225. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/analytics.jsx +0 -0
  226. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/app.jsx +0 -0
  227. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/database.jsx +0 -0
  228. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/datasets.jsx +0 -0
  229. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/designer.jsx +0 -0
  230. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/icons.jsx +0 -0
  231. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/ingestion.jsx +0 -0
  232. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/layout.jsx +0 -0
  233. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/log-viewer.jsx +0 -0
  234. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/mcp.jsx +0 -0
  235. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/models.jsx +0 -0
  236. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/presets.jsx +0 -0
  237. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/reporting.jsx +0 -0
  238. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/retrieval.jsx +0 -0
  239. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/run-detail.jsx +0 -0
  240. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/runners.jsx +0 -0
  241. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/runs.jsx +0 -0
  242. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/scheduling.jsx +0 -0
  243. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/settings.jsx +0 -0
  244. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/trigger.jsx +0 -0
  245. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/portal/static/views/utils.jsx +0 -0
  246. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/release_reference.py +0 -0
  247. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/resolution.py +0 -0
  248. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/revamp_runner.py +0 -0
  249. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/runfile.py +0 -0
  250. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/runsets.py +0 -0
  251. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/scheduler.py +0 -0
  252. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/slack.py +0 -0
  253. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/harness/vidore_access.py +0 -0
  254. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingest/__init__.py +0 -0
  255. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingest/execution.py +0 -0
  256. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingest/plan.py +0 -0
  257. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingest/service.py +0 -0
  258. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingestor/__init__.py +0 -0
  259. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingestor/core.py +0 -0
  260. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingestor/manifest.py +0 -0
  261. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingestor/plans.py +0 -0
  262. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/ingestor/results.py +0 -0
  263. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/__init__.py +0 -0
  264. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/embed_model_spec.py +0 -0
  265. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/hf_cache.py +0 -0
  266. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/hf_model_registry.py +0 -0
  267. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/inference/__init__.py +0 -0
  268. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/inference/main_text_embed.py +0 -0
  269. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/inference/runtime.py +0 -0
  270. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/inference/shared.py +0 -0
  271. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/inference/vllm.py +0 -0
  272. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/__init__.py +0 -0
  273. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/clients/__init__.py +0 -0
  274. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/clients/judge.py +0 -0
  275. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/clients/litellm.py +0 -0
  276. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/tasks/__init__.py +0 -0
  277. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/tasks/base.py +0 -0
  278. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/tasks/generic.py +0 -0
  279. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/tasks/rag_answer.py +0 -0
  280. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/tasks/summarize.py +0 -0
  281. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/text_utils.py +0 -0
  282. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/llm/types.py +0 -0
  283. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/__init__.py +0 -0
  284. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/agent_llm.py +0 -0
  285. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/llama_nemotron_embed_1b_v2_embedder.py +0 -0
  286. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/llama_nemotron_embed_1b_v2_hf_embedder.py +0 -0
  287. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/llama_nemotron_embed_vl_1b_v2_embedder.py +0 -0
  288. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_ocr_v1.py +0 -0
  289. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_ocr_v2.py +0 -0
  290. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_page_elements_v3.py +0 -0
  291. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_parse_v1_2.py +0 -0
  292. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_rerank_v2.py +0 -0
  293. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_rerank_vl_v2.py +0 -0
  294. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_rerank_vl_v2_hf.py +0 -0
  295. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_table_structure_v1.py +0 -0
  296. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/nemotron_vlm_captioner.py +0 -0
  297. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/local/parakeet_ctc_1_1b_asr.py +0 -0
  298. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/model.py +0 -0
  299. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/__init__.py +0 -0
  300. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/chat_completions.py +0 -0
  301. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/error_reporter.py +0 -0
  302. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/nim.py +0 -0
  303. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/__init__.py +0 -0
  304. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/default_values.py +0 -0
  305. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/__init__.py +0 -0
  306. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/decorators.py +0 -0
  307. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/helpers.py +0 -0
  308. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/nemotron_parse.py +0 -0
  309. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/parakeet.py +0 -0
  310. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/text_embedding.py +0 -0
  311. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/vlm.py +0 -0
  312. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/model_interface/yolox.py +0 -0
  313. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/nim_client.py +0 -0
  314. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/primitives/nim_model_interface.py +0 -0
  315. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/probe.py +0 -0
  316. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/nim/util/__init__.py +0 -0
  317. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/models/warmup_registry.py +0 -0
  318. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/__init__.py +0 -0
  319. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/abstract_operator.py +0 -0
  320. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/base.py +0 -0
  321. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/content.py +0 -0
  322. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/cpu_operator.py +0 -0
  323. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/embed/__init__.py +0 -0
  324. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/embed/cpu_operator.py +0 -0
  325. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/embed/gpu_operator.py +0 -0
  326. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/embed/operators.py +0 -0
  327. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/embed/text_embed.py +0 -0
  328. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/embedding.py +0 -0
  329. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/__init__.py +0 -0
  330. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/audio/__init__.py +0 -0
  331. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/audio/asr_actor.py +0 -0
  332. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/audio/chunk_actor.py +0 -0
  333. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/audio/cpu_actor.py +0 -0
  334. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/audio/gpu_actor.py +0 -0
  335. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/caption/__init__.py +0 -0
  336. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/html/__init__.py +0 -0
  337. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/html/ray_data.py +0 -0
  338. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/image/__init__.py +0 -0
  339. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/image/ray_data.py +0 -0
  340. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/ocr/__init__.py +0 -0
  341. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/ocr/cpu_ocr.py +0 -0
  342. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/ocr/cpu_parse.py +0 -0
  343. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/ocr/gpu_ocr.py +0 -0
  344. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/ocr/gpu_parse.py +0 -0
  345. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/ocr/ocr.py +0 -0
  346. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/page_elements/__init__.py +0 -0
  347. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/page_elements/cpu_actor.py +0 -0
  348. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/page_elements/gpu_actor.py +0 -0
  349. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/page_elements/page_elements.py +0 -0
  350. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/parse/__init__.py +0 -0
  351. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/parse/nemotron_parse.py +0 -0
  352. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/pdf/__init__.py +0 -0
  353. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/pdf/extract.py +0 -0
  354. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/pdf/split.py +0 -0
  355. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/table/__init__.py +0 -0
  356. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/table/cpu_actor.py +0 -0
  357. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/table/gpu_actor.py +0 -0
  358. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/table/table_detection.py +0 -0
  359. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/txt/__init__.py +0 -0
  360. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/video/__init__.py +0 -0
  361. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/video/audio_visual_fuser.py +0 -0
  362. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/video/frame_actor.py +0 -0
  363. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/video/ocr_actor.py +0 -0
  364. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/video/split.py +0 -0
  365. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/extract/video/text_dedup.py +0 -0
  366. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/generation/__init__.py +0 -0
  367. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/generation/base.py +0 -0
  368. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/generation/generic.py +0 -0
  369. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/generation/summarization.py +0 -0
  370. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/gpu_operator.py +0 -0
  371. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/__init__.py +0 -0
  372. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/content_operators.py +0 -0
  373. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/custom_operator.py +0 -0
  374. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/eval_operator.py +0 -0
  375. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/file_loader_operator.py +0 -0
  376. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/lancedb_write_operator.py +0 -0
  377. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/multi_type_extract_operator.py +0 -0
  378. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/react_agent_operator.py +0 -0
  379. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/rrf_aggregator_operator.py +0 -0
  380. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/scoring_operator.py +0 -0
  381. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/selection_agent_operator.py +0 -0
  382. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/subquery_operator.py +0 -0
  383. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/graph_ops/webhook_operator.py +0 -0
  384. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/operator_archetype.py +0 -0
  385. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/rerank.py +0 -0
  386. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/operators/vdb.py +0 -0
  387. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/__init__.py +0 -0
  388. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/agentic.py +0 -0
  389. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/agentic_options.py +0 -0
  390. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/evidence.py +0 -0
  391. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/options.py +0 -0
  392. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/service.py +0 -0
  393. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/shaping.py +0 -0
  394. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/query/workflow.py +0 -0
  395. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/__init__.py +0 -0
  396. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/agentic_query.py +0 -0
  397. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/app.py +0 -0
  398. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/auth.py +0 -0
  399. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/cli.py +0 -0
  400. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/client.py +0 -0
  401. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/config.py +0 -0
  402. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/errors.py +0 -0
  403. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/mcp_server.py +0 -0
  404. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/query_schema.py +0 -0
  405. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/retriever-service.yaml +0 -0
  406. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/routers/__init__.py +0 -0
  407. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/routers/admin.py +0 -0
  408. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/routers/collections.py +0 -0
  409. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/routers/dashboard.py +0 -0
  410. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/routers/ingest.py +0 -0
  411. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/routers/metrics.py +0 -0
  412. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/routers/work.py +0 -0
  413. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/service_ingestor.py +0 -0
  414. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/__init__.py +0 -0
  415. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/event_bus.py +0 -0
  416. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/job_tracker.py +0 -0
  417. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/metrics.py +0 -0
  418. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/pipeline_pool.py +0 -0
  419. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/prometheus.py +0 -0
  420. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/proxy.py +0 -0
  421. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/sidecar_store.py +0 -0
  422. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/work_queue.py +0 -0
  423. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/services/worker_result_store.py +0 -0
  424. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/tracing.py +0 -0
  425. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/utils/__init__.py +0 -0
  426. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/utils/file_type.py +0 -0
  427. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/service/vectordb_app.py +0 -0
  428. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/__init__.py +0 -0
  429. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/dev_tools/benchmarks/bird/loader.py +0 -0
  430. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/dev_tools/benchmarks/bird/setup.py +0 -0
  431. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/dev_tools/benchmarks/spider2/loader.py +0 -0
  432. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/dev_tools/benchmarks/spider2/setup.py +0 -0
  433. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/dev_tools/debug_ingest.py +0 -0
  434. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/dev_tools/duckdb_connector.py +0 -0
  435. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/__init__.py +0 -0
  436. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/dal/__init__.py +0 -0
  437. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/dal/db_dal.py +0 -0
  438. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/dal/queries_dal.py +0 -0
  439. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/dal/schemas_dal.py +0 -0
  440. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/dal/utils_dal.py +0 -0
  441. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/extract_data.py +0 -0
  442. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/indexes.py +0 -0
  443. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/model/__init__.py +0 -0
  444. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/model/neo4j_node.py +0 -0
  445. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/model/query.py +0 -0
  446. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/model/reserved_words.py +0 -0
  447. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/model/schema.py +0 -0
  448. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/parsers/__init__.py +0 -0
  449. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/parsers/query_comparator.py +0 -0
  450. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/parsers/schemas_parser.py +0 -0
  451. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/parsers/sqlglot_extractor.py +0 -0
  452. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/services/__init__.py +0 -0
  453. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/services/queries.py +0 -0
  454. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/services/schema.py +0 -0
  455. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/utils.py +0 -0
  456. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/ingestion/write_to_graph.py +0 -0
  457. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/neo4j/__init__.py +0 -0
  458. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/neo4j/neo4j_connection.py +0 -0
  459. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/operators/__init__.py +0 -0
  460. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/operators/tabular_fetch_embeddings_operator.py +0 -0
  461. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/operators/tabular_schema_extract_operator.py +0 -0
  462. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/__init__.py +0 -0
  463. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/__init__.py +0 -0
  464. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/candidates.py +0 -0
  465. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/custom_analyses.py +0 -0
  466. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/foreign_keys.py +0 -0
  467. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/graph_schemas.py +0 -0
  468. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/relevant_tables.py +0 -0
  469. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/response_formatting.py +0 -0
  470. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/data_access/semantic_search.py +0 -0
  471. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/generate_sql.py +0 -0
  472. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/llm_invoke.py +0 -0
  473. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/candidates_preparation.py +0 -0
  474. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/candidates_retrieval.py +0 -0
  475. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/entities_extraction.py +0 -0
  476. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/intent_validation.py +0 -0
  477. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/response.py +0 -0
  478. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/sql_execution.py +0 -0
  479. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/sql_from_semantic.py +0 -0
  480. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/sql_from_tables.py +0 -0
  481. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/sql_parse_validation.py +0 -0
  482. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/sql_reconstruction.py +0 -0
  483. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/agents/sql_unconstructable.py +0 -0
  484. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/base.py +0 -0
  485. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/connector_routing.py +0 -0
  486. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/main.py +0 -0
  487. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/models.py +0 -0
  488. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/prompts.py +0 -0
  489. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/state.py +0 -0
  490. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/retrieval/text_to_sql/text_to_sql_graph.py +0 -0
  491. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tabular_data/sql_database.py +0 -0
  492. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/__init__.py +0 -0
  493. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/__init__.py +0 -0
  494. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/__main__.py +0 -0
  495. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/all_actor.py +0 -0
  496. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/audio_extract_actor.py +0 -0
  497. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/common.py +0 -0
  498. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/extract_actor.py +0 -0
  499. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/ocr_actor.py +0 -0
  500. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/page_elements_actor.py +0 -0
  501. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/benchmark/split_actor.py +0 -0
  502. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/__init__.py +0 -0
  503. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/cli.py +0 -0
  504. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/config.py +0 -0
  505. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/generation.py +0 -0
  506. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/ground_truth.py +0 -0
  507. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/judging.py +0 -0
  508. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/live_retrieval.py +0 -0
  509. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/orchestrator.py +0 -0
  510. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/retrieval_loader.py +0 -0
  511. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/retrievers.py +0 -0
  512. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/runner.py +0 -0
  513. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/evaluation/scoring.py +0 -0
  514. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/recall/__init__.py +0 -0
  515. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/recall/__main__.py +0 -0
  516. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/recall/beir.py +0 -0
  517. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/recall/beir_eval.py +0 -0
  518. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/recall/core.py +0 -0
  519. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/recall/recall_eval.py +0 -0
  520. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/recall/vdb_recall.py +0 -0
  521. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/__init__.py +0 -0
  522. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/__main__.py +0 -0
  523. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/cli.py +0 -0
  524. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/configs/__init__.py +0 -0
  525. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/configs/skill_eval.yaml +0 -0
  526. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/dataset.py +0 -0
  527. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/prompts/__init__.py +0 -0
  528. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/prompts/setup_nl.j2 +0 -0
  529. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/prompts/setup_slash.j2 +0 -0
  530. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/prompts/trial_user_nl.j2 +0 -0
  531. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/prompts/trial_user_slash.j2 +0 -0
  532. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/report.py +0 -0
  533. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/runner.py +0 -0
  534. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/score.py +0 -0
  535. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/tools/skill_eval/trace_summarizer.py +0 -0
  536. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever/version.py +0 -0
  537. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever.egg-info/dependency_links.txt +0 -0
  538. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever.egg-info/entry_points.txt +0 -0
  539. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever.egg-info/requires.txt +0 -0
  540. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/src/nemo_retriever.egg-info/top_level.txt +0 -0
  541. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_actor_operators.py +0 -0
  542. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_agentic_eval.py +0 -0
  543. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_agentic_local_llm.py +0 -0
  544. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_agentic_operators.py +0 -0
  545. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_agentic_source_hygiene.py +0 -0
  546. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_asr_actor.py +0 -0
  547. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_audio_benchmark.py +0 -0
  548. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_audio_chunk_actor.py +0 -0
  549. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_audio_pipeline_batch.py +0 -0
  550. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_audio_visual_fuser.py +0 -0
  551. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_beir_evaluation.py +0 -0
  552. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_caption_model_profiles.py +0 -0
  553. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ci_workflows.py +0 -0
  554. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_collection_management_api.py +0 -0
  555. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_common_datetools.py +0 -0
  556. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_container_ffmpeg_install.py +0 -0
  557. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_cpu_module_import_safety.py +0 -0
  558. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_create_local_embedder.py +0 -0
  559. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_dashboard_static_trace_ui.py +0 -0
  560. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_doc_to_pdf_actor.py +0 -0
  561. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_embed_model_spec.py +0 -0
  562. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_embed_params.py +0 -0
  563. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_evaluation_config.py +0 -0
  564. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_evaluation_orchestrator.py +0 -0
  565. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_evaluation_retrievers.py +0 -0
  566. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_fidelity.py +0 -0
  567. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_generation_hardening.py +0 -0
  568. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_generation_tasks.py +0 -0
  569. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_graph_ingestion_error_diagnostics.py +0 -0
  570. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_graph_pipeline_registry.py +0 -0
  571. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_agentic_eval.py +0 -0
  572. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_artifacts.py +0 -0
  573. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_benchmark_registry.py +0 -0
  574. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_helm_cli.py +0 -0
  575. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_helm_nightly.py +0 -0
  576. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_nightly_git_selection.py +0 -0
  577. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_nightly_launcher.py +0 -0
  578. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_runfiles.py +0 -0
  579. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_slack.py +0 -0
  580. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_harness_vidore_access.py +0 -0
  581. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_answer_llm_generation.py +0 -0
  582. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_auth.py +0 -0
  583. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_caption_endpoint.py +0 -0
  584. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_embed_model_provider_prefix.py +0 -0
  585. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_max_upload_bytes.py +0 -0
  586. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_nemotron_parse_endpoint.py +0 -0
  587. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_nim_2_contracts.py +0 -0
  588. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_nimcache_model_profile.py +0 -0
  589. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_nimservice_resources.py +0 -0
  590. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_optional_nims_disabled_by_default.py +0 -0
  591. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_shared_results.py +0 -0
  592. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_vectordb_embed_required.py +0 -0
  593. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_helm_work_queue.py +0 -0
  594. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_hf_cache.py +0 -0
  595. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_hf_embedder_padding.py +0 -0
  596. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_hf_model_registry.py +0 -0
  597. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_html_convert.py +0 -0
  598. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_image_load.py +0 -0
  599. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ingest_empty_validation.py +0 -0
  600. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ingest_results.py +0 -0
  601. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ingest_retrieve_multimodal_pdf_integration.py +0 -0
  602. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ingest_service.py +0 -0
  603. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_inline_text_ingest.py +0 -0
  604. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_internal_auth.py +0 -0
  605. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_io_dataframe.py +0 -0
  606. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_io_image_store.py +0 -0
  607. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_io_markdown.py +0 -0
  608. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_lancedb_capabilities.py +0 -0
  609. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_lancedb_collections.py +0 -0
  610. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_lancedb_ivf_partitions.py +0 -0
  611. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_lancedb_retrieval_where.py +0 -0
  612. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_lancedb_row_metadata.py +0 -0
  613. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_lancedb_write_policy.py +0 -0
  614. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_live_rag.py +0 -0
  615. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_llm_params.py +0 -0
  616. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_media_dependency_availability.py +0 -0
  617. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_multimodal_embed.py +0 -0
  618. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemo_agent_callable_contract.py +0 -0
  619. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemo_agent_error_classification.py +0 -0
  620. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemo_agent_llm_config.py +0 -0
  621. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemo_agent_llm_helpers.py +0 -0
  622. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemotron_ocr_v2_nightly.py +0 -0
  623. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemotron_parse_v1_2.py +0 -0
  624. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemotron_rerank_v2.py +0 -0
  625. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemotron_rerank_vl_v2.py +0 -0
  626. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nemotron_rerank_vl_v2_hf.py +0 -0
  627. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nim_chat_completion_step.py +0 -0
  628. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_nim_tracing.py +0 -0
  629. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ocr_cross_page_batching.py +0 -0
  630. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_ocr_version_selection.py +0 -0
  631. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_operator_flags_and_cpu_actors.py +0 -0
  632. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_page_elements_postprocess.py +0 -0
  633. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_parakeet_ctc_hf_compat.py +0 -0
  634. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_parakeet_infer_mode.py +0 -0
  635. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_params_utils.py +0 -0
  636. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_pdf_render_params_wiring.py +0 -0
  637. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_pdf_render_scale.py +0 -0
  638. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_pipeline_image_caption_concurrency.py +0 -0
  639. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_private_agent_packaging.py +0 -0
  640. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_probe_event_recording.py +0 -0
  641. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_query_comparator.py +0 -0
  642. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_query_workflow_options.py +0 -0
  643. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_readme_typical_use.py +0 -0
  644. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_readme_video_pipeline_example.py +0 -0
  645. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_recall_core.py +0 -0
  646. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_recall_summary.py +0 -0
  647. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_remote_auth.py +0 -0
  648. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_resource_heuristics.py +0 -0
  649. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_retriever_queries.py +0 -0
  650. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_root_cli_workflow.py +0 -0
  651. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_root_query_cli.py +0 -0
  652. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_semantic_search_metadata_filter_format.py +0 -0
  653. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_agentic_query.py +0 -0
  654. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_answer_generation.py +0 -0
  655. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_caption.py +0 -0
  656. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_client_compat.py +0 -0
  657. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_ingest_async.py +0 -0
  658. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_ingest_router.py +0 -0
  659. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_ingestor_compat.py +0 -0
  660. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_job_callback_diagnostics.py +0 -0
  661. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_job_tracker.py +0 -0
  662. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_mcp.py +0 -0
  663. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_media_dependency_gate.py +0 -0
  664. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_metrics_lifecycle.py +0 -0
  665. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_packaging.py +0 -0
  666. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_pipeline_tracing.py +0 -0
  667. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_pool_metrics.py +0 -0
  668. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_pool_tracing.py +0 -0
  669. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_proxy_tracing.py +0 -0
  670. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_query_client.py +0 -0
  671. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_query_rerank.py +0 -0
  672. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_save_to_disk.py +0 -0
  673. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_sidecar.py +0 -0
  674. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_sinks.py +0 -0
  675. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_sse.py +0 -0
  676. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_tracing.py +0 -0
  677. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_vectordb_app.py +0 -0
  678. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_vectordb_evidence_integration.py +0 -0
  679. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_vectordb_hybrid_integration.py +0 -0
  680. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_work_queue.py +0 -0
  681. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_service_worker_callback.py +0 -0
  682. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_sidecar_metadata.py +0 -0
  683. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_slim_imports_no_triton.py +0 -0
  684. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_split_config.py +0 -0
  685. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_split_config_integration.py +0 -0
  686. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_sqlglot_extractor.py +0 -0
  687. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_src_documentation_snippets.py +0 -0
  688. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_table_structure.py +0 -0
  689. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_table_structure_nim_empty_bbox.py +0 -0
  690. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_tabular_pipeline.py +0 -0
  691. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_tabular_table_type.py +0 -0
  692. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_tokenizer_provider.py +0 -0
  693. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_txt_split.py +0 -0
  694. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_type_aliases.py +0 -0
  695. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_vdb_collection_contract.py +0 -0
  696. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_video_frame_actor.py +0 -0
  697. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_video_frame_ocr_actor.py +0 -0
  698. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_video_pipeline_batch.py +0 -0
  699. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_video_recall.py +0 -0
  700. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_video_text_dedup.py +0 -0
  701. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_vllm_embed.py +0 -0
  702. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_warmup_registry.py +0 -0
  703. {nemo_retriever-2026.8.12.dev181 → nemo_retriever-2026.8.13.dev182}/tests/test_webhook_operator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nemo-retriever
3
- Version: 2026.8.12.dev181
3
+ Version: 2026.8.13.dev182
4
4
  Summary: A modern RAG ingestion pipeline from Nvidia
5
5
  Author-email: Jeremy Dyer <jdyer@nvidia.com>
6
6
  License-Expression: Apache-2.0
@@ -0,0 +1,4 @@
1
+ """Build metadata written by CI before packaging."""
2
+
3
+ BUILD_GIT_SHA = "1b941066053710739c6bcadf8cf96fd2da382634"
4
+ BUILD_DATE = "2026-08-13T23:47:43Z"
@@ -49,13 +49,37 @@ def _deep_copy_row(row_dict: Dict[str, Any]) -> Dict[str, Any]:
49
49
 
50
50
  out: Dict[str, Any] = {}
51
51
  for key, value in row_dict.items():
52
- if isinstance(value, (dict, list)) or _is_content_collection(value):
52
+ if isinstance(value, np.ndarray) and _is_content_collection(value):
53
+ out[key] = copy.deepcopy(value.tolist())
54
+ elif isinstance(value, (dict, list)):
53
55
  out[key] = copy.deepcopy(value)
54
56
  else:
55
57
  out[key] = value
56
58
  return out
57
59
 
58
60
 
61
+ def _normalize_bbox(value: Any) -> Any:
62
+ """Return bbox coordinates in a stable non-tensor container."""
63
+ if hasattr(value, "to_numpy") and callable(value.to_numpy):
64
+ value = value.to_numpy()
65
+ if isinstance(value, np.ndarray):
66
+ return value.tolist()
67
+ if isinstance(value, tuple):
68
+ return list(value)
69
+ return value
70
+
71
+
72
+ def _normalize_bbox_column(frame: pd.DataFrame) -> pd.DataFrame:
73
+ """Force every batch to expose bbox values as ordinary Python objects."""
74
+ values = frame.get("_bbox_xyxy_norm", pd.Series([None] * len(frame.index), index=frame.index))
75
+ frame["_bbox_xyxy_norm"] = pd.Series(
76
+ [_normalize_bbox(value) for value in values],
77
+ index=frame.index,
78
+ dtype=object,
79
+ )
80
+ return frame
81
+
82
+
59
83
  def explode_content_to_rows(
60
84
  batch_df: Any,
61
85
  *,
@@ -69,8 +93,10 @@ def explode_content_to_rows(
69
93
  text_mod = text_elements_modality or modality
70
94
  struct_mod = structured_elements_modality or modality
71
95
 
72
- if not isinstance(batch_df, pd.DataFrame) or batch_df.empty:
96
+ if not isinstance(batch_df, pd.DataFrame):
73
97
  return batch_df
98
+ if batch_df.empty:
99
+ return _normalize_bbox_column(batch_df)
74
100
 
75
101
  any_images = text_mod in IMAGE_MODALITIES or struct_mod in IMAGE_MODALITIES
76
102
 
@@ -85,7 +111,7 @@ def explode_content_to_rows(
85
111
  lambda page_image: page_image.get("stored_image_uri") if isinstance(page_image, dict) else None
86
112
  )
87
113
  batch_df["_embed_modality"] = text_mod
88
- return batch_df
114
+ return _normalize_bbox_column(batch_df)
89
115
 
90
116
  new_rows: List[Dict[str, Any]] = []
91
117
  for _, row in batch_df.iterrows():
@@ -133,8 +159,8 @@ def explode_content_to_rows(
133
159
  if item_b64:
134
160
  content_row["_image_b64"] = item_b64
135
161
  elif page_image_b64:
136
- bbox = item.get("bbox_xyxy_norm")
137
- if bbox and len(bbox) == 4:
162
+ bbox = _normalize_bbox(item.get("bbox_xyxy_norm"))
163
+ if bbox is not None and len(bbox) == 4:
138
164
  cropped_b64, _ = _crop_b64_image_by_norm_bbox(page_image_b64, bbox_xyxy_norm=bbox)
139
165
  content_row["_image_b64"] = cropped_b64
140
166
  else:
@@ -142,7 +168,7 @@ def explode_content_to_rows(
142
168
  else:
143
169
  content_row["_image_b64"] = None
144
170
  content_row["_stored_image_uri"] = item.get("stored_image_uri") or page_stored_uri
145
- content_row["_bbox_xyxy_norm"] = item.get("bbox_xyxy_norm")
171
+ content_row["_bbox_xyxy_norm"] = _normalize_bbox(item.get("bbox_xyxy_norm"))
146
172
  new_rows.append(content_row)
147
173
  exploded_any = True
148
174
 
@@ -156,7 +182,7 @@ def explode_content_to_rows(
156
182
  preserved["_bbox_xyxy_norm"] = None
157
183
  new_rows.append(preserved)
158
184
 
159
- return pd.DataFrame(new_rows).reset_index(drop=True)
185
+ return _normalize_bbox_column(pd.DataFrame(new_rows).reset_index(drop=True))
160
186
 
161
187
 
162
188
  def collapse_content_to_page_rows(
@@ -170,24 +196,17 @@ def collapse_content_to_page_rows(
170
196
  if not isinstance(batch_df, pd.DataFrame) or batch_df.empty:
171
197
  return batch_df
172
198
 
173
- batch_df = batch_df.copy()
174
- batch_df[text_column] = batch_df.apply(
175
- lambda row: _combine_text_with_content(row, text_column, content_columns),
176
- axis=1,
177
- )
178
-
179
- if modality in IMAGE_MODALITIES:
180
- if "page_image" in batch_df.columns:
181
- batch_df["_image_b64"] = batch_df["page_image"].apply(
182
- lambda page_image: inline_image_b64(page_image) if isinstance(page_image, dict) else None
183
- )
184
- else:
185
- batch_df["_image_b64"] = None
186
-
187
- if "page_image" in batch_df.columns:
188
- batch_df["_stored_image_uri"] = batch_df["page_image"].apply(
189
- lambda page_image: page_image.get("stored_image_uri") if isinstance(page_image, dict) else None
190
- )
191
-
192
- batch_df["_embed_modality"] = modality
193
- return batch_df
199
+ has_page_image = "page_image" in batch_df.columns
200
+ new_rows: List[Dict[str, Any]] = []
201
+ for _, row in batch_df.iterrows():
202
+ row_dict = _deep_copy_row(row.to_dict())
203
+ row_dict[text_column] = _combine_text_with_content(row_dict, text_column, content_columns)
204
+ page_image = row_dict.get("page_image") if has_page_image else None
205
+ if modality in IMAGE_MODALITIES:
206
+ row_dict["_image_b64"] = inline_image_b64(page_image) if isinstance(page_image, dict) else None
207
+ if has_page_image:
208
+ row_dict["_stored_image_uri"] = page_image.get("stored_image_uri") if isinstance(page_image, dict) else None
209
+ row_dict["_embed_modality"] = modality
210
+ new_rows.append(row_dict)
211
+
212
+ return _normalize_bbox_column(pd.DataFrame(new_rows).reset_index(drop=True))
@@ -516,7 +516,13 @@ class ExtractParams(_ParamsModel):
516
516
  extract_page_as_image: Optional[bool] = True
517
517
 
518
518
  # Extraction options
519
- method: str = "pdfium"
519
+ method: Literal["pdfium", "pdfium_hybrid", "ocr", "nemotron_parse", "audio"] = Field(
520
+ default="pdfium",
521
+ description=(
522
+ "Extraction method. PDF extraction supports 'pdfium', 'pdfium_hybrid', 'ocr', and "
523
+ "'nemotron_parse'; 'audio' is retained for the legacy params-driven audio path."
524
+ ),
525
+ )
520
526
  # Run PageElementDetection (layout/yolox). Required by TableStructure and
521
527
  # OCR. Safe to disable for text-only ingests.
522
528
  use_page_elements: bool = True
@@ -132,9 +132,21 @@ class RetrievalHit(TypedDict, total=False):
132
132
 
133
133
  def _embedding_from_graph_row(row: dict[str, Any], metadata: dict[str, Any]) -> Any:
134
134
  if metadata.get("embedding") is not None:
135
- return metadata["embedding"]
136
- payload = row.get("text_embeddings_1b_v2")
137
- return payload.get("embedding") if isinstance(payload, dict) else None
135
+ embedding = metadata["embedding"]
136
+ else:
137
+ payload = row.get("text_embeddings_1b_v2")
138
+ embedding = payload.get("embedding") if isinstance(payload, dict) else None
139
+
140
+ if not isinstance(embedding, list):
141
+ to_numpy = getattr(embedding, "to_numpy", None)
142
+ if callable(to_numpy):
143
+ embedding = to_numpy()
144
+ tolist = getattr(embedding, "tolist", None)
145
+ if callable(tolist):
146
+ embedding = tolist()
147
+ elif isinstance(embedding, tuple):
148
+ embedding = list(embedding)
149
+ return embedding
138
150
 
139
151
 
140
152
  def _first_str(*values: Any) -> str:
@@ -317,6 +329,13 @@ def _client_record_from_graph_row(row: dict[str, Any], *, require_embedding: boo
317
329
  return {"document_type": str(document_type), "metadata": record_metadata}
318
330
 
319
331
 
332
+ def _row_has_uploadable_content_without_embedding(row: dict[str, Any]) -> bool:
333
+ metadata = _dict_or_empty(row.get("metadata"))
334
+ if _embedding_from_graph_row(row, metadata) is not None:
335
+ return False
336
+ return bool(_text_from_graph_row(row, metadata)) or _is_image_backed_row(row)
337
+
338
+
320
339
  def to_client_vdb_records(rows: Any) -> list[list[dict[str, Any]]]:
321
340
  """Convert graph-ingest rows into the nested record shape expected by client VDBs.
322
341
 
@@ -325,6 +344,8 @@ def to_client_vdb_records(rows: Any) -> list[list[dict[str, Any]]]:
325
344
  ``if not records`` skips :meth:`~nemo_retriever.vdb.adt_vdb.VDB.run`.
326
345
  When at least one row converts, returns ``[batch]`` with a single non-empty inner list
327
346
  (never ``[[]]``, which would be truthy and could trip backends on an empty insert).
347
+ Uploadable graph content without an embedding raises ``ValueError`` when no
348
+ row survives conversion. Genuinely empty input continues to return ``[]``.
328
349
  """
329
350
  if isinstance(rows, list) and all(isinstance(batch, list) for batch in rows):
330
351
  return rows
@@ -332,14 +353,16 @@ def to_client_vdb_records(rows: Any) -> list[list[dict[str, Any]]]:
332
353
  rows = rows.to_pandas()
333
354
  if hasattr(rows, "to_dict"):
334
355
  rows = rows.to_dict("records")
356
+ graph_rows = [row for row in rows or [] if isinstance(row, dict)]
335
357
  # Walrus: bind conversion once per row — a plain ``if f(row)`` + ``f(row)`` list comp
336
358
  # would call _client_record_from_graph_row twice per row on large datasets.
337
359
  # isinstance(row, dict): plain lists are not normalized like DataFrame rows; skip None/Series/etc.
338
- inner = [
339
- record
340
- for row in rows or []
341
- if isinstance(row, dict) and (record := _client_record_from_graph_row(row)) is not None
342
- ]
360
+ inner = [record for row in graph_rows if (record := _client_record_from_graph_row(row)) is not None]
361
+ if not inner and any(_row_has_uploadable_content_without_embedding(row) for row in graph_rows):
362
+ raise ValueError(
363
+ "vdb_upload requires embedded records, but no embeddings were found. "
364
+ "Add an embed stage or provide a supported embedding column."
365
+ )
343
366
  # Preserve legacy contract: no uploadable rows → [], not [[]].
344
367
  return [inner] if inner else []
345
368
 
@@ -7,6 +7,7 @@
7
7
  from __future__ import annotations
8
8
 
9
9
  from abc import ABC, abstractmethod
10
+ import math
10
11
  from typing import Any, Dict, List, Optional, Set
11
12
  import pandas as pd
12
13
 
@@ -131,6 +132,18 @@ def _make_arrow_pandas_operator_adapter(operator_class: type) -> type[_ArrowPand
131
132
  return type(adapter_name, (_ArrowPandasOperatorAdapter,), {})
132
133
 
133
134
 
135
+ def _preserves_pandas_output(operator_class: type, operator_kwargs: dict[str, Any]) -> bool:
136
+ """Return whether an operator's heterogeneous rows should stay in pandas."""
137
+ return bool(
138
+ getattr(operator_class, "PRESERVE_PANDAS_OUTPUT", False) or operator_kwargs.get("preserve_pandas_output", False)
139
+ )
140
+
141
+
142
+ def _requires_stable_pandas_blocks(nodes: list[Node]) -> bool:
143
+ """Return whether repartitions must not promote object columns to tensors."""
144
+ return any(_preserves_pandas_output(node.operator_class, node.operator_kwargs) for node in nodes)
145
+
146
+
134
147
  def _concurrency_target(concurrency: Any) -> int:
135
148
  """Return the largest actor-pool size that resource planning can permit."""
136
149
  if isinstance(concurrency, tuple):
@@ -177,17 +190,20 @@ def preflight_executors(executors: list[Any], cluster_resources: ClusterResource
177
190
  fixed = [item for item in entries if not item[7]]
178
191
  auto = [item for item in entries if item[7]]
179
192
  fixed_cpu = sum(item[3] * item[5] for item in fixed)
193
+ source_cpu_reservation = sum(executor._source_cpu_reservation for executor in executors)
180
194
  fixed_gpu = sum(item[3] * item[6] for item in fixed)
181
195
  min_cpu = sum(item[4] * item[5] for item in auto)
182
196
  min_gpu = sum(item[4] * item[6] for item in auto)
183
- if fixed_cpu + min_cpu > available_cpus or fixed_gpu + min_gpu > available_gpus:
197
+ requested_cpu = source_cpu_reservation + fixed_cpu + min_cpu
198
+ if requested_cpu > available_cpus or fixed_gpu + min_gpu > available_gpus:
184
199
  raise ValueError(
185
200
  "Infeasible Ray CPU/GPU plan: requested at least "
186
- f"{fixed_cpu + min_cpu:g} CPUs and {fixed_gpu + min_gpu:g} GPUs, but Ray reports "
201
+ f"{requested_cpu:g} CPUs (including {source_cpu_reservation:g} for source reads) "
202
+ f"and {fixed_gpu + min_gpu:g} GPUs, but Ray reports "
187
203
  f"{available_cpus} CPUs and {available_gpus} GPUs available. "
188
204
  "Reduce explicit *_workers or node_overrides concurrency, or wait for cluster capacity."
189
205
  )
190
- used_cpu, used_gpu = fixed_cpu + min_cpu, fixed_gpu + min_gpu
206
+ used_cpu, used_gpu = source_cpu_reservation + fixed_cpu + min_cpu, fixed_gpu + min_gpu
191
207
  planned = {(id(item[0]), item[1]): item[4] for item in auto}
192
208
  while True:
193
209
  candidates = sorted(
@@ -208,9 +224,12 @@ def preflight_executors(executors: list[Any], cluster_resources: ClusterResource
208
224
  used_cpu += selected[5]
209
225
  used_gpu += selected[6]
210
226
  for executor, name, concurrency, _target, _initial, _cpu, _gpu, _auto in auto:
211
- executor._node_overrides[name]["concurrency"] = _planned_concurrency(concurrency, planned[(id(executor), name)])
227
+ executor._node_overrides.setdefault(name, {})["concurrency"] = _planned_concurrency(
228
+ concurrency, planned[(id(executor), name)]
229
+ )
212
230
  for executor in executors:
213
231
  executor._resources_preflight_complete = True
232
+ executor._preflight_source_cpu_reservation = executor._source_cpu_reservation
214
233
  executor._preflight_cluster_resources = cluster_resources
215
234
 
216
235
 
@@ -360,10 +379,19 @@ class RayDataExecutor(AbstractExecutor):
360
379
  num_gpus: float = 0,
361
380
  node_overrides: Optional[Dict[str, Dict[str, Any]]] = None,
362
381
  auto_concurrency_nodes: Optional[Set[str]] = None,
382
+ source_cpu_reservation: float = 0,
363
383
  ) -> None:
364
384
  super().__init__(graph)
385
+ source_cpu_reservation = float(source_cpu_reservation)
386
+ if not math.isfinite(source_cpu_reservation) or source_cpu_reservation < 0:
387
+ raise ValueError("source_cpu_reservation must be a finite, non-negative CPU value.")
365
388
  self._preflight_cluster_resources: ClusterResources | None = None
366
389
  self._ray_address = ray_address
390
+ self._source_cpu_reservation = source_cpu_reservation
391
+ # ``preflight_executors`` records the source reservation it budgeted.
392
+ # A filesystem input supplied later must not silently increase that
393
+ # shared plan: re-planning this executor alone would ignore its peers.
394
+ self._preflight_source_cpu_reservation: float | None = None
367
395
  self._default_batch_size = batch_size
368
396
  self._default_batch_format = batch_format
369
397
  self._default_num_cpus = num_cpus
@@ -425,15 +453,17 @@ class RayDataExecutor(AbstractExecutor):
425
453
  fixed_cpu = sum(count * cpu for _name, _concurrency, count, _initial, cpu, _gpu in fixed)
426
454
  fixed_gpu = sum(count * gpu for _name, _concurrency, count, _initial, _cpu, gpu in fixed)
427
455
  minimum_cpu = sum(initial * cpu for _name, _concurrency, _count, initial, cpu, _gpu in auto)
456
+ requested_cpu = self._source_cpu_reservation + fixed_cpu + minimum_cpu
428
457
  minimum_gpu = sum(initial * gpu for _name, _concurrency, _count, initial, _cpu, gpu in auto)
429
- if fixed_cpu + minimum_cpu > available_cpus or fixed_gpu + minimum_gpu > available_gpus:
458
+ if requested_cpu > available_cpus or fixed_gpu + minimum_gpu > available_gpus:
430
459
  raise ValueError(
431
460
  "Infeasible Ray CPU/GPU plan: requested at least "
432
- f"{fixed_cpu + minimum_cpu:g} CPUs and {fixed_gpu + minimum_gpu:g} GPUs, but Ray reports "
461
+ f"{requested_cpu:g} CPUs (including {self._source_cpu_reservation:g} for source reads) "
462
+ f"and {fixed_gpu + minimum_gpu:g} GPUs, but Ray reports "
433
463
  f"{available_cpus} CPUs and {available_gpus} GPUs available. "
434
464
  "Reduce explicit *_workers or node_overrides concurrency, or wait for cluster capacity."
435
465
  )
436
- used_cpu, used_gpu = fixed_cpu + minimum_cpu, fixed_gpu + minimum_gpu
466
+ used_cpu, used_gpu = self._source_cpu_reservation + fixed_cpu + minimum_cpu, fixed_gpu + minimum_gpu
437
467
  planned = {name: initial for name, _concurrency, _count, initial, _cpu, _gpu in auto}
438
468
  while True:
439
469
  candidates = sorted(
@@ -455,7 +485,7 @@ class RayDataExecutor(AbstractExecutor):
455
485
  used_cpu += cpu
456
486
  used_gpu += gpu
457
487
  for name, concurrency, _count, _initial, _cpu, _gpu in auto:
458
- self._node_overrides[name]["concurrency"] = _planned_concurrency(concurrency, planned[name])
488
+ self._node_overrides.setdefault(name, {})["concurrency"] = _planned_concurrency(concurrency, planned[name])
459
489
 
460
490
  @staticmethod
461
491
  def _linearize(graph: Graph) -> List[Node]:
@@ -510,21 +540,58 @@ class RayDataExecutor(AbstractExecutor):
510
540
  ctx = rd.DataContext.get_current()
511
541
  ctx.enable_rich_progress_bars = True
512
542
  ctx.use_ray_tqdm = False
543
+ is_filesystem_source = not isinstance(data, rd.Dataset)
544
+ if is_filesystem_source:
545
+ required_source_cpu_reservation = 1
546
+ if self._resources_preflight_complete:
547
+ planned_source_cpu_reservation = self._preflight_source_cpu_reservation
548
+ if (
549
+ planned_source_cpu_reservation is None
550
+ or planned_source_cpu_reservation < required_source_cpu_reservation
551
+ ):
552
+ raise ValueError(
553
+ "Filesystem inputs require 1 CPU for Ray Data source reads, but shared Ray resource "
554
+ "preflight completed without that reservation. Construct RayDataExecutor with "
555
+ "source_cpu_reservation=1 before calling preflight_executors."
556
+ )
557
+ else:
558
+ self._source_cpu_reservation = required_source_cpu_reservation
513
559
 
514
560
  cluster = self._preflight_cluster_resources or gather_cluster_resources(ray)
515
561
  available_gpus = cluster.available_gpu_count()
516
562
  resolved_graph = resolve_graph(self.graph, cluster)
563
+ nodes = self._linearize(resolved_graph)
564
+ requires_stable_pandas_blocks = _requires_stable_pandas_blocks(nodes)
517
565
 
518
566
  if isinstance(data, rd.Dataset):
519
- ds = data
567
+ ds = rd.Dataset.copy(data, _deep_copy=True) if requires_stable_pandas_blocks else data
568
+ if requires_stable_pandas_blocks:
569
+ # Ray copies this context into repartition workers. Disabling
570
+ # Arrow output and tensor promotion only on an operator actor is
571
+ # too late because Ray converts its result after the call.
572
+ ds.context.batch_to_block_arrow_format = False
573
+ ds.context.enable_tensor_extension_casting = False
520
574
  else:
521
575
  try:
522
- ds = rd.read_binary_files(input_paths, include_paths=True)
576
+ if requires_stable_pandas_blocks:
577
+ # read_binary_files snapshots the current context onto the
578
+ # new Dataset; restore the process default immediately so
579
+ # unrelated pipelines retain Ray's standard behavior.
580
+ original_arrow_format = ctx.batch_to_block_arrow_format
581
+ original_tensor_extension_casting = ctx.enable_tensor_extension_casting
582
+ ctx.batch_to_block_arrow_format = False
583
+ ctx.enable_tensor_extension_casting = False
584
+ try:
585
+ ds = rd.read_binary_files(input_paths, include_paths=True)
586
+ finally:
587
+ if requires_stable_pandas_blocks:
588
+ ctx.batch_to_block_arrow_format = original_arrow_format
589
+ ctx.enable_tensor_extension_casting = original_tensor_extension_casting
523
590
  except FileNotFoundError as exc:
524
591
  raise_input_path_not_found(input_paths or [], exc)
525
- nodes = self._linearize(resolved_graph)
526
592
  if nodes and not self._resources_preflight_complete:
527
593
  self._preflight_resources(nodes, cluster.available_cpu_count(), available_gpus)
594
+ preserve_pandas_output = False
528
595
  for node in nodes:
529
596
  overrides = dict(self._node_overrides.get(node.name, {}))
530
597
  target_num_rows_per_block = overrides.pop("target_num_rows_per_block", None)
@@ -580,7 +647,19 @@ class RayDataExecutor(AbstractExecutor):
580
647
  # offsets for sliced structs with inferred null children.
581
648
  # Compact the valid Arrow batch before that conversion.
582
649
  map_operator_class = _make_arrow_pandas_operator_adapter(node.operator_class)
583
- map_batch_format = "pyarrow"
650
+ stable_pandas_input = preserve_pandas_output
651
+ # Once an operator reshapes the dataset into heterogeneous
652
+ # object rows, keep those rows in pandas through every
653
+ # downstream map stage. Re-enabling Arrow at embedding would
654
+ # otherwise split optional bbox values into object and tensor
655
+ # schemas that Ray cannot concatenate.
656
+ preserve_pandas_output = preserve_pandas_output or _preserves_pandas_output(
657
+ node.operator_class, node.operator_kwargs
658
+ )
659
+ # The opting-in stage still needs the compacting Arrow adapter
660
+ # on its input. Its downstream consumers must not ask Ray to
661
+ # turn the intentionally preserved pandas block back into Arrow.
662
+ map_batch_format = "pandas" if stable_pandas_input else "pyarrow"
584
663
  constructor_kwargs = {
585
664
  "operator_class": node.operator_class,
586
665
  "operator_kwargs": node.operator_kwargs,
@@ -363,28 +363,6 @@ def batch_tuning_to_node_overrides(
363
363
  plan.pdf_extract_tasks if plan else None,
364
364
  )
365
365
 
366
- # Cap PDF extract concurrency so persistent actors for page-elements,
367
- # table structure, OCR, embed, and caption plus fixed pipeline tasks (DocToPdf,
368
- # PDFSplit, UDFOperator(s), ReadBinary) cannot exhaust the cluster
369
- # CPU budget.
370
- if pdf_extract_tasks is not None and cluster_resources is not None:
371
- # Conservative fixed overhead for the documented PDF flow:
372
- # ReadBinary + DocToPdf + PDFSplit + TextChunk + DedupImages +
373
- # the content-reshape UDF before embedding. Caption adds its actor
374
- # and one additional UDF.
375
- fixed_cpu_overhead = 6 + (2 if caption_params is not None else 0)
376
- non_pdf_cpu_overhead = (
377
- fixed_cpu_overhead
378
- + page_elements_concurrency * page_elements_cpus
379
- + ocr_concurrency * ocr_cpus
380
- + embed_concurrency * embed_cpus
381
- + ts_concurrency * ts_cpus
382
- )
383
- pdf_extract_tasks = min(
384
- pdf_extract_tasks,
385
- max(1, int((cluster_resources.total_cpu_count() - non_pdf_cpu_overhead) // pdf_extract_cpus)),
386
- )
387
-
388
366
  _set(PDFExtractionActor.__name__, "batch_size", pdf_bs)
389
367
  _set(PDFExtractionActor.__name__, "concurrency", pdf_extract_tasks)
390
368
  _set(PDFExtractionActor.__name__, "num_cpus", pdf_extract_cpus if pdf_extract_cpus != 1.0 else None)
@@ -578,6 +556,7 @@ def _append_ordered_transform_stages(
578
556
  content_columns=content_columns,
579
557
  ),
580
558
  name="CollapseContentToPageRows",
559
+ preserve_pandas_output=True,
581
560
  )
582
561
  else:
583
562
  graph = graph >> UDFOperator(
@@ -590,6 +569,7 @@ def _append_ordered_transform_stages(
590
569
  content_columns=content_columns,
591
570
  ),
592
571
  name="ExplodeContentToRows",
572
+ preserve_pandas_output=True,
593
573
  )
594
574
  graph = graph >> _BatchEmbedActor(params=embed_params)
595
575
 
@@ -118,6 +118,7 @@ class ExtractionBranchExecutor:
118
118
  graph,
119
119
  derived_overrides,
120
120
  default_concurrency_node_names(effective_extraction.extract_params, None, None, None),
121
+ source_cpu_reservation=1 if isinstance(input_data, list) else 0,
121
122
  )
122
123
  branch_executors.append(executor)
123
124
  branch_inputs.append((executor, input_data))
@@ -146,6 +147,7 @@ class ExtractionBranchExecutor:
146
147
  post_graph,
147
148
  post_overrides,
148
149
  default_concurrency_node_names(None, self.embed_params, self.store_params, self.caption_params),
150
+ source_cpu_reservation=0,
149
151
  )
150
152
  if hasattr(cluster_resources, "available_cpu_count"):
151
153
  preflight_executors([*branch_executors, post_executor], cluster_resources)
@@ -222,6 +224,7 @@ class ExtractionBranchExecutor:
222
224
  graph: Any,
223
225
  derived_overrides: dict[str, dict[str, Any]],
224
226
  auto_concurrency_nodes: set[str],
227
+ source_cpu_reservation: float,
225
228
  ) -> RayDataExecutor:
226
229
  return RayDataExecutor(
227
230
  graph,
@@ -231,6 +234,7 @@ class ExtractionBranchExecutor:
231
234
  num_gpus=self.num_gpus,
232
235
  node_overrides=merge_node_overrides(derived_overrides, self.node_overrides),
233
236
  auto_concurrency_nodes=auto_concurrency_nodes - set(self.node_overrides),
237
+ source_cpu_reservation=source_cpu_reservation,
234
238
  )
235
239
 
236
240
  def _inprocess_branch_input(self, branch: ExtractionBranchPlan) -> Any:
@@ -65,6 +65,7 @@ from nemo_retriever.common.params import (
65
65
  ExtractParams,
66
66
  HtmlChunkParams,
67
67
  IngestExecuteParams,
68
+ NO_API_KEY,
68
69
  StoreParams,
69
70
  TextChunkParams,
70
71
  VideoFrameParams,
@@ -382,6 +383,9 @@ def _resolve_api_key(params: Any) -> Any:
382
383
  """Auto-resolve api_key from NVIDIA_API_KEY / NGC_API_KEY if not explicitly set."""
383
384
  if params is None:
384
385
  return params
386
+ uses_no_api_key = getattr(params, "_uses_no_api_key", None)
387
+ if callable(uses_no_api_key) and uses_no_api_key("api_key"):
388
+ return params
385
389
  if not getattr(params, "api_key", None) and hasattr(params, "model_copy"):
386
390
  key = resolve_remote_api_key()
387
391
  if key:
@@ -400,7 +404,20 @@ def _coerce(params: Any, kwargs: dict[str, Any], *, default_factory: Callable[[]
400
404
  if not kwargs:
401
405
  return params
402
406
  if hasattr(params, "model_copy"):
403
- return params.model_copy(update=kwargs)
407
+ values = params.model_dump()
408
+ uses_no_api_key = getattr(params, "_uses_no_api_key", None)
409
+ api_key_env_reference = getattr(params, "_api_key_env_reference", None)
410
+ for field_name in type(params).model_fields:
411
+ if field_name in kwargs:
412
+ continue
413
+ if callable(uses_no_api_key) and uses_no_api_key(field_name):
414
+ values[field_name] = NO_API_KEY
415
+ continue
416
+ if callable(api_key_env_reference):
417
+ reference = api_key_env_reference(field_name)
418
+ if reference is not None:
419
+ values[field_name] = reference
420
+ return type(params).model_validate(values | kwargs)
404
421
  return params
405
422
 
406
423
 
@@ -1199,7 +1216,11 @@ class GraphIngestor(ingestor):
1199
1216
  if requested_columns is None
1200
1217
  else [c for c in requested_columns if c in available_columns]
1201
1218
  )
1202
- for row_index, row in batch_df.iterrows():
1219
+ # ``iterrows`` materializes the full frame through NumPy, which is
1220
+ # unsafe for Ray pickled-object columns containing empty arrays.
1221
+ row_values = batch_df.itertuples(index=False, name=None)
1222
+ for row_index, values in zip(batch_df.index, row_values):
1223
+ row = dict(zip(available_columns, values))
1203
1224
  source_identifier = cls._source_identifier_from_row(row, row_index)
1204
1225
  for column in target_columns:
1205
1226
  for record in cls._iter_stage_errors_from_value(row[column]):
@@ -5,8 +5,9 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  import hashlib
8
- from typing import Any, List, Tuple
8
+ from typing import Any, List, Optional, Tuple
9
9
 
10
+ import numpy as np
10
11
  import pandas as pd
11
12
 
12
13
  from nemo_retriever.common.api.internal.mutate.deduplicate import calculate_iou
@@ -15,19 +16,44 @@ from nemo_retriever.common.params import DedupParams
15
16
  _STRUCTURED_COLUMNS = ("table", "chart", "infographic")
16
17
 
17
18
 
19
+ def _as_element_list(value: Any) -> Optional[List[Any]]:
20
+ """Return an extracted-element cell as a plain list, or ``None`` if unsupported.
21
+
22
+ Batch mode delivers structural-element cells as one-dimensional NumPy
23
+ object arrays (Arrow list columns converted to pandas), while inprocess
24
+ mode uses Python lists.
25
+ """
26
+ if isinstance(value, list):
27
+ return value
28
+ if isinstance(value, tuple):
29
+ return list(value)
30
+ if isinstance(value, np.ndarray) and value.ndim == 1:
31
+ return value.tolist()
32
+ return None
33
+
34
+
35
+ def _as_bbox(value: Any) -> Optional[Tuple[float, ...]]:
36
+ """Return the first four bbox coordinates as a plain tuple."""
37
+ if isinstance(value, np.ndarray):
38
+ value = value.tolist()
39
+ if not isinstance(value, (list, tuple)) or len(value) < 4:
40
+ return None
41
+ return tuple(value[:4])
42
+
43
+
18
44
  def _collect_structured_bboxes(row: pd.Series) -> List[Tuple[float, ...]]:
19
45
  """Gather all bounding boxes from tables, charts, and infographics columns."""
20
46
  bboxes: List[Tuple[float, ...]] = []
21
47
  for col in _STRUCTURED_COLUMNS:
22
- items = row.get(col)
23
- if not isinstance(items, list):
48
+ items = _as_element_list(row.get(col))
49
+ if items is None:
24
50
  continue
25
51
  for item in items:
26
52
  if not isinstance(item, dict):
27
53
  continue
28
- bbox = item.get("bbox_xyxy_norm")
29
- if bbox and len(bbox) >= 4:
30
- bboxes.append(tuple(bbox[:4]))
54
+ bbox = _as_bbox(item.get("bbox_xyxy_norm"))
55
+ if bbox is not None:
56
+ bboxes.append(bbox)
31
57
  return bboxes
32
58
 
33
59
 
@@ -54,9 +80,13 @@ def dedup_images(
54
80
  if "images" not in batch_df.columns:
55
81
  return batch_df
56
82
 
83
+ # Arrow-backed columns reject assignment of a filtered Python list.
84
+ if isinstance(batch_df["images"].dtype, pd.ArrowDtype):
85
+ batch_df["images"] = batch_df["images"].astype(object)
86
+
57
87
  for row_idx, row in batch_df.iterrows():
58
- images = row.get("images")
59
- if not isinstance(images, list) or not images:
88
+ images = _as_element_list(row.get("images"))
89
+ if not images:
60
90
  continue
61
91
 
62
92
  filtered = list(images)
@@ -88,11 +118,10 @@ def dedup_images(
88
118
  if not isinstance(item, dict):
89
119
  surviving.append(item)
90
120
  continue
91
- img_bbox = item.get("bbox_xyxy_norm")
92
- if not img_bbox or len(img_bbox) < 4:
121
+ img_bbox_t = _as_bbox(item.get("bbox_xyxy_norm"))
122
+ if img_bbox_t is None:
93
123
  surviving.append(item)
94
124
  continue
95
- img_bbox_t = tuple(img_bbox[:4])
96
125
  overlaps = any(calculate_iou(img_bbox_t, sb) >= iou_threshold for sb in structured_bboxes)
97
126
  if not overlaps:
98
127
  surviving.append(item)