databao-context-engine 0.6.1.dev1__tar.gz → 0.6.3__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 (181) hide show
  1. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/PKG-INFO +2 -1
  2. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/pyproject.toml +7 -2
  3. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/__init__.py +2 -2
  4. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/build_sources/__init__.py +8 -1
  5. databao_context_engine-0.6.3/src/databao_context_engine/build_sources/build_runner.py +433 -0
  6. databao_context_engine-0.6.3/src/databao_context_engine/build_sources/build_service.py +212 -0
  7. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/build_sources/build_wiring.py +54 -21
  8. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/build_sources/plugin_execution.py +0 -7
  9. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/build_sources/types.py +7 -0
  10. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/cli/commands.py +1 -15
  11. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/databao_context_domain_manager.py +40 -7
  12. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/databao_context_engine.py +1 -0
  13. databao_context_engine-0.6.3/src/databao_context_engine/datasources/config_wizard.py +178 -0
  14. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/datasources/datasource_context.py +49 -11
  15. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/introspection/property_extract.py +2 -5
  16. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/descriptions/ollama.py +10 -1
  17. databao_context_engine-0.6.3/src/databao_context_engine/llm/descriptions/provider.py +45 -0
  18. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/service.py +0 -29
  19. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/pluginlib/build_plugin.py +17 -0
  20. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/pluginlib/config.py +1 -1
  21. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/athena/athena_introspector.py +23 -12
  22. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/base_db_plugin.py +9 -0
  23. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/base_introspector.py +59 -9
  24. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/bigquery/bigquery_introspector.py +12 -1
  25. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/clickhouse/clickhouse_introspector.py +18 -1
  26. databao_context_engine-0.6.3/src/databao_context_engine/plugins/databases/context_enricher.py +156 -0
  27. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/databases_types.py +53 -0
  28. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/duckdb/duckdb_introspector.py +20 -2
  29. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/introspection_model_builder.py +1 -0
  30. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mssql/mssql_introspector.py +13 -4
  31. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mysql/mysql_introspector.py +27 -6
  32. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/postgresql/postgresql_introspector.py +19 -4
  33. databao_context_engine-0.6.3/src/databao_context_engine/plugins/databases/sampling_scope.py +99 -0
  34. databao_context_engine-0.6.3/src/databao_context_engine/plugins/databases/sampling_scope_matcher.py +117 -0
  35. databao_context_engine-0.6.3/src/databao_context_engine/plugins/databases/snowflake/snowflake_introspector.py +640 -0
  36. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/sqlite/sqlite_introspector.py +9 -2
  37. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/plugin_loader.py +4 -0
  38. databao_context_engine-0.6.3/src/databao_context_engine/progress/progress.py +137 -0
  39. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/init_project.py +14 -0
  40. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/layout.py +5 -0
  41. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/search_context/chunk_search_repository.py +60 -25
  42. databao_context_engine-0.6.3/src/databao_context_engine/search_context/search_runner.py +36 -0
  43. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/search_context/search_service.py +7 -7
  44. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/search_context/search_wiring.py +11 -1
  45. databao_context_engine-0.6.3/src/databao_context_engine/services/chunk_embedding_service.py +98 -0
  46. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/services/factories.py +3 -6
  47. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/services/models.py +0 -1
  48. databao_context_engine-0.6.3/src/databao_context_engine/services/persistence_service.py +161 -0
  49. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/migrate.py +42 -3
  50. databao_context_engine-0.6.3/src/databao_context_engine/storage/migrations/V03__add_indexed_datasource_table.py +12 -0
  51. databao_context_engine-0.6.3/src/databao_context_engine/storage/migrations/V03__add_indexed_datasource_table.sql +32 -0
  52. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/models.py +10 -0
  53. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/repositories/chunk_repository.py +52 -7
  54. databao_context_engine-0.6.3/src/databao_context_engine/storage/repositories/datasource_context_repository.py +108 -0
  55. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/repositories/embedding_repository.py +21 -0
  56. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/repositories/factories.py +5 -0
  57. databao_context_engine-0.6.1.dev1/src/databao_context_engine/build_sources/build_runner.py +0 -222
  58. databao_context_engine-0.6.1.dev1/src/databao_context_engine/build_sources/build_service.py +0 -104
  59. databao_context_engine-0.6.1.dev1/src/databao_context_engine/datasources/config_wizard.py +0 -103
  60. databao_context_engine-0.6.1.dev1/src/databao_context_engine/llm/descriptions/provider.py +0 -10
  61. databao_context_engine-0.6.1.dev1/src/databao_context_engine/plugins/databases/snowflake/snowflake_introspector.py +0 -327
  62. databao_context_engine-0.6.1.dev1/src/databao_context_engine/services/chunk_embedding_service.py +0 -205
  63. databao_context_engine-0.6.1.dev1/src/databao_context_engine/services/persistence_service.py +0 -104
  64. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/LICENSE.md +0 -0
  65. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/README.md +0 -0
  66. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/build_sources/export_results.py +0 -0
  67. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/cli/__init__.py +0 -0
  68. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/cli/datasources.py +0 -0
  69. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/cli/info.py +0 -0
  70. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/config/__init__.py +0 -0
  71. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/config/log_config.yaml +0 -0
  72. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/config/logging.py +0 -0
  73. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/datasources/__init__.py +0 -0
  74. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/datasources/check_config.py +0 -0
  75. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/datasources/datasource_discovery.py +0 -0
  76. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/datasources/execute_sql_query.py +0 -0
  77. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/datasources/sql_read_only.py +0 -0
  78. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/datasources/types.py +0 -0
  79. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/event_journal/__init__.py +0 -0
  80. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/event_journal/writer.py +0 -0
  81. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/generate_configs_schemas.py +0 -0
  82. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/init_domain.py +0 -0
  83. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/introspection/__init__.py +0 -0
  84. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/__init__.py +0 -0
  85. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/api.py +0 -0
  86. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/config.py +0 -0
  87. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/descriptions/__init__.py +0 -0
  88. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/embeddings/__init__.py +0 -0
  89. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/embeddings/ollama.py +0 -0
  90. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/embeddings/provider.py +0 -0
  91. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/errors.py +0 -0
  92. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/factory.py +0 -0
  93. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/install.py +0 -0
  94. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/prompts/__init__.py +0 -0
  95. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/prompts/ollama.py +0 -0
  96. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/prompts/provider.py +0 -0
  97. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/llm/runtime.py +0 -0
  98. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/main.py +0 -0
  99. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/mcp/__init__.py +0 -0
  100. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/mcp/mcp_runner.py +0 -0
  101. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/mcp/mcp_server.py +0 -0
  102. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/perf/core.py +0 -0
  103. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/pluginlib/__init__.py +0 -0
  104. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/pluginlib/plugin_utils.py +0 -0
  105. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/pluginlib/sql/__init__.py +0 -0
  106. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/pluginlib/sql/sql_types.py +0 -0
  107. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/__init__.py +0 -0
  108. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/__init__.py +0 -0
  109. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/athena/__init__.py +0 -0
  110. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/athena/athena_db_plugin.py +0 -0
  111. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/athena/config_file.py +0 -0
  112. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/bigquery/__init__.py +0 -0
  113. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/bigquery/bigquery_db_plugin.py +0 -0
  114. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/bigquery/config_file.py +0 -0
  115. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/clickhouse/__init__.py +0 -0
  116. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/clickhouse/clickhouse_db_plugin.py +0 -0
  117. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/clickhouse/config_file.py +0 -0
  118. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/database_chunker.py +0 -0
  119. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/duckdb/__init__.py +0 -0
  120. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/duckdb/config_file.py +0 -0
  121. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/duckdb/duckdb_db_plugin.py +0 -0
  122. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/introspection_scope.py +0 -0
  123. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/introspection_scope_matcher.py +0 -0
  124. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mssql/__init__.py +0 -0
  125. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mssql/config_file.py +0 -0
  126. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mssql/mssql_db_plugin.py +0 -0
  127. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mysql/__init__.py +0 -0
  128. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mysql/config_file.py +0 -0
  129. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/mysql/mysql_db_plugin.py +0 -0
  130. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/postgresql/__init__.py +0 -0
  131. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/postgresql/config_file.py +0 -0
  132. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/postgresql/postgresql_db_plugin.py +0 -0
  133. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/snowflake/__init__.py +0 -0
  134. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/snowflake/config_file.py +0 -0
  135. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/snowflake/snowflake_db_plugin.py +0 -0
  136. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/sqlite/__init__.py +0 -0
  137. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/sqlite/config_file.py +0 -0
  138. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/databases/sqlite/sqlite_db_plugin.py +0 -0
  139. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/dbt/__init__.py +0 -0
  140. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/dbt/context_filtering.py +0 -0
  141. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/dbt/dbt_chunker.py +0 -0
  142. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/dbt/dbt_context_extractor.py +0 -0
  143. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/dbt/dbt_plugin.py +0 -0
  144. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/dbt/types.py +0 -0
  145. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/dbt/types_artifacts.py +0 -0
  146. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/duckdb_tools.py +0 -0
  147. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/files/__init__.py +0 -0
  148. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/files/docling_chunker.py +0 -0
  149. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/files/pdf_plugin.py +0 -0
  150. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/files/unstructured_files_plugin.py +0 -0
  151. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/resources/__init__.py +0 -0
  152. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/resources/parquet_chunker.py +0 -0
  153. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/resources/parquet_introspector.py +0 -0
  154. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/resources/parquet_plugin.py +0 -0
  155. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/plugins/resources/types.py +0 -0
  156. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/__init__.py +0 -0
  157. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/info.py +0 -0
  158. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/project_config.py +0 -0
  159. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/resources/examples/src/databases/example_postgres.yaml +0 -0
  160. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/resources/examples/src/files/documentation.md +0 -0
  161. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/project/resources/examples/src/files/notes.txt +0 -0
  162. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/py.typed +0 -0
  163. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/search_context/__init__.py +0 -0
  164. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/serialization/__init__.py +0 -0
  165. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/serialization/yaml.py +0 -0
  166. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/services/__init__.py +0 -0
  167. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/services/embedding_shard_resolver.py +0 -0
  168. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/services/table_name_policy.py +0 -0
  169. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/__init__.py +0 -0
  170. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/connection.py +0 -0
  171. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/exceptions/__init__.py +0 -0
  172. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/exceptions/exceptions.py +0 -0
  173. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/migrations/V01__init.sql +0 -0
  174. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/migrations/V02__add_keyword_index_text.sql +0 -0
  175. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/repositories/__init__.py +0 -0
  176. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/repositories/embedding_model_registry_repository.py +0 -0
  177. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/storage/transaction.py +0 -0
  178. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/system/__init__.py +0 -0
  179. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/system/properties.py +0 -0
  180. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/templating/__init__.py +0 -0
  181. {databao_context_engine-0.6.1.dev1 → databao_context_engine-0.6.3}/src/databao_context_engine/templating/renderer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databao-context-engine
3
- Version: 0.6.1.dev1
3
+ Version: 0.6.3
4
4
  Summary: Semantic context for your LLMs — generated automatically
5
5
  License-Expression: Apache-2.0 AND LicenseRef-Additional-Terms
6
6
  License-File: LICENSE.md
@@ -13,6 +13,7 @@ Requires-Dist: pydantic>=2.12.4
13
13
  Requires-Dist: jinja2>=3.1.6
14
14
  Requires-Dist: sqlparse>=0.5.5
15
15
  Requires-Dist: pyarrow>=19.0.1
16
+ Requires-Dist: xxhash>=3.6.0
16
17
  Requires-Dist: pyathena>=3.25.0 ; extra == 'athena'
17
18
  Requires-Dist: google-cloud-bigquery>=3.40.1 ; extra == 'bigquery'
18
19
  Requires-Dist: clickhouse-connect>=0.10.0 ; extra == 'clickhouse'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "databao-context-engine"
3
- version = "0.6.1.dev1"
3
+ version = "0.6.3"
4
4
  description = "Semantic context for your LLMs — generated automatically"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -15,7 +15,8 @@ dependencies = [
15
15
  "pydantic>=2.12.4",
16
16
  "jinja2>=3.1.6",
17
17
  "sqlparse>=0.5.5",
18
- "pyarrow>=19.0.1"
18
+ "pyarrow>=19.0.1",
19
+ "xxhash>=3.6.0",
19
20
  ]
20
21
  default-optional-dependency-keys = [
21
22
  "mysql",
@@ -68,6 +69,10 @@ dev = [
68
69
  "types-pymysql>=1.1.0.20250916",
69
70
  "pytest-mock>=3.15.1",
70
71
  "asyncpg-stubs>=0.31.1",
72
+ "streamlit>=1.54.0",
73
+ "pandas>=2.3.3",
74
+ "pandas-stubs>=3.0.0.260204",
75
+ "time-machine>=3.2.0",
71
76
  ]
72
77
 
73
78
  [project.scripts]
@@ -2,6 +2,7 @@ from databao_context_engine.build_sources.types import (
2
2
  BuildDatasourceResult,
3
3
  DatasourceResult,
4
4
  DatasourceStatus,
5
+ EnrichContextResult,
5
6
  IndexDatasourceResult,
6
7
  )
7
8
  from databao_context_engine.databao_context_domain_manager import DatabaoContextDomainManager
@@ -71,7 +72,6 @@ from databao_context_engine.project.info import (
71
72
  )
72
73
  from databao_context_engine.project.init_project import InitDomainError, InitErrorReason
73
74
  from databao_context_engine.search_context.search_service import ContextSearchMode
74
- from databao_context_engine.services.chunk_embedding_service import ChunkEmbeddingMode
75
75
 
76
76
  __all__ = [
77
77
  "DatabaoContextEngine",
@@ -83,7 +83,6 @@ __all__ = [
83
83
  "DatabaoContextDomainManager",
84
84
  "UserInputCallback",
85
85
  "Choice",
86
- "ChunkEmbeddingMode",
87
86
  "ContextSearchMode",
88
87
  "DatasourceConnectionStatus",
89
88
  "DatasourceType",
@@ -108,6 +107,7 @@ __all__ = [
108
107
  "BuildDatasourceResult",
109
108
  "DatasourceResult",
110
109
  "DatasourceStatus",
110
+ "EnrichContextResult",
111
111
  "IndexDatasourceResult",
112
112
  "CheckDatasourceConnectionResult",
113
113
  "AthenaConfigFile",
@@ -1,8 +1,13 @@
1
- from databao_context_engine.build_sources.build_wiring import build_all_datasources, index_built_contexts
1
+ from databao_context_engine.build_sources.build_wiring import (
2
+ build_all_datasources,
3
+ enrich_built_contexts,
4
+ index_built_contexts,
5
+ )
2
6
  from databao_context_engine.build_sources.types import (
3
7
  BuildDatasourceResult,
4
8
  DatasourceResult,
5
9
  DatasourceStatus,
10
+ EnrichContextResult,
6
11
  IndexDatasourceResult,
7
12
  )
8
13
 
@@ -13,4 +18,6 @@ __all__ = [
13
18
  "BuildDatasourceResult",
14
19
  "index_built_contexts",
15
20
  "IndexDatasourceResult",
21
+ "enrich_built_contexts",
22
+ "EnrichContextResult",
16
23
  ]
@@ -0,0 +1,433 @@
1
+ import logging
2
+ from datetime import datetime
3
+
4
+ from pydantic import TypeAdapter
5
+
6
+ import databao_context_engine.perf.core as perf
7
+ from databao_context_engine.build_sources.build_service import BuildService
8
+ from databao_context_engine.build_sources.export_results import (
9
+ delete_all_results_file,
10
+ export_build_result,
11
+ )
12
+ from databao_context_engine.build_sources.types import (
13
+ BuildDatasourceResult,
14
+ DatasourceStatus,
15
+ EnrichContextResult,
16
+ IndexDatasourceResult,
17
+ )
18
+ from databao_context_engine.datasources.datasource_context import (
19
+ DatasourceContext,
20
+ hash_context_file,
21
+ read_datasource_type_from_context,
22
+ )
23
+ from databao_context_engine.datasources.datasource_discovery import discover_datasources, prepare_source
24
+ from databao_context_engine.datasources.types import PreparedConfig, PreparedDatasource
25
+ from databao_context_engine.pluginlib.build_plugin import DatasourceType
26
+ from databao_context_engine.plugins.plugin_loader import DatabaoContextPluginLoader
27
+ from databao_context_engine.progress.progress import ProgressCallback, ProgressEmitter, ProgressStep
28
+ from databao_context_engine.project.layout import ProjectLayout
29
+
30
+ logger = logging.getLogger(__name__)
31
+
32
+
33
+ def _build_step_plan(*, should_index: bool, should_enrich_context: bool) -> tuple[ProgressStep, ...]:
34
+ steps: list[ProgressStep] = []
35
+
36
+ steps.extend(BuildService.build_context_step_plan())
37
+
38
+ if should_enrich_context:
39
+ steps.extend(BuildService.enrich_context_step_plan())
40
+
41
+ if should_index:
42
+ steps.extend(BuildService.index_step_plan())
43
+
44
+ return tuple(steps)
45
+
46
+
47
+ @perf.perf_run(
48
+ operation="build",
49
+ attrs=lambda *, should_index, should_enrich_context, **_: {
50
+ "should_index": should_index,
51
+ "should_enrich_context": should_enrich_context,
52
+ },
53
+ )
54
+ @perf.perf_span("build.total")
55
+ def build(
56
+ *,
57
+ project_layout: ProjectLayout,
58
+ plugin_loader: DatabaoContextPluginLoader,
59
+ build_service: BuildService,
60
+ should_index: bool,
61
+ should_enrich_context: bool,
62
+ progress: ProgressCallback | None = None,
63
+ ) -> list[BuildDatasourceResult]:
64
+ """Build the context for all datasources in the project.
65
+
66
+ Unless you already have access to BuildService, this should not be called directly.
67
+ Instead, internal callers should go through the build_wiring module or directly use DatabaoContextProjectManager.build_context().
68
+
69
+ 1) Load available plugins
70
+ 2) Discover sources
71
+ 3) For each source, call process_source
72
+
73
+ Returns:
74
+ A list of per-datasource build results.
75
+ """
76
+ datasource_ids = discover_datasources(project_layout)
77
+
78
+ emitter = ProgressEmitter(progress)
79
+
80
+ if not datasource_ids:
81
+ logger.info("No sources discovered under %s", project_layout.src_dir)
82
+ emitter.operation_started(operation="build", total=0)
83
+ emitter.operation_finished(operation="build")
84
+ return []
85
+
86
+ emitter.operation_started(operation="build", total=len(datasource_ids))
87
+
88
+ results: list[BuildDatasourceResult] = []
89
+ failed = 0
90
+ skipped = 0
91
+ delete_all_results_file(project_layout)
92
+ for datasource_index, datasource_id in enumerate(datasource_ids, start=1):
93
+ emitter.datasource_started(
94
+ datasource_id=str(datasource_id),
95
+ index=datasource_index,
96
+ total=len(datasource_ids),
97
+ )
98
+ try:
99
+ result = _build_one_datasource(
100
+ project_layout=project_layout,
101
+ plugin_loader=plugin_loader,
102
+ build_service=build_service,
103
+ datasource_id=datasource_id,
104
+ should_index=should_index,
105
+ should_enrich_context=should_enrich_context,
106
+ progress=progress,
107
+ )
108
+ results.append(result)
109
+ if result.status == DatasourceStatus.SKIPPED:
110
+ skipped += 1
111
+
112
+ emitter.datasource_finished(
113
+ datasource_id=str(datasource_id),
114
+ index=datasource_index,
115
+ total=len(datasource_ids),
116
+ status=result.status.value,
117
+ error=result.error,
118
+ )
119
+ except Exception as e:
120
+ logger.debug(str(e), exc_info=True, stack_info=True)
121
+ logger.info(f"Failed to build source at ({datasource_id.relative_path_to_config_file()}): {str(e)}")
122
+
123
+ failed += 1
124
+ results.append(
125
+ BuildDatasourceResult(datasource_id=datasource_id, status=DatasourceStatus.FAILED, error=str(e))
126
+ )
127
+ emitter.datasource_finished(
128
+ datasource_id=str(datasource_id),
129
+ index=datasource_index,
130
+ total=len(datasource_ids),
131
+ status=DatasourceStatus.FAILED.value,
132
+ error=str(e),
133
+ )
134
+
135
+ ok = sum(1 for result in results if result.status == DatasourceStatus.OK)
136
+ logger.debug(
137
+ "Successfully built %d/%d datasources. %s",
138
+ ok,
139
+ len(datasource_ids),
140
+ f"Skipped {skipped}. Failed {failed}." if (skipped or failed) else "",
141
+ )
142
+
143
+ emitter.operation_finished(operation="build")
144
+ return results
145
+
146
+
147
+ @perf.perf_span(
148
+ "datasource.total",
149
+ datasource_id=lambda *, datasource_id, **_: str(datasource_id),
150
+ )
151
+ def _build_one_datasource(
152
+ *,
153
+ project_layout: ProjectLayout,
154
+ plugin_loader: DatabaoContextPluginLoader,
155
+ build_service: BuildService,
156
+ datasource_id,
157
+ should_index: bool,
158
+ should_enrich_context: bool,
159
+ progress: ProgressCallback | None = None,
160
+ ) -> BuildDatasourceResult:
161
+ prepared_source = prepare_source(project_layout, datasource_id)
162
+ if not _is_datasource_enabled(prepared_source):
163
+ logger.info(f"Skipping disabled datasource {prepared_source.datasource_id.datasource_path}")
164
+ return BuildDatasourceResult(datasource_id=datasource_id, status=DatasourceStatus.SKIPPED)
165
+
166
+ perf.set_attribute("datasource_type", prepared_source.datasource_type.full_type)
167
+
168
+ logger.info(
169
+ f'Found datasource of type "{prepared_source.datasource_type.full_type}" with name {prepared_source.datasource_id.datasource_path}'
170
+ )
171
+
172
+ plugin = plugin_loader.get_plugin_for_datasource_type(prepared_source.datasource_type)
173
+ if plugin is None:
174
+ logger.warning(
175
+ "No plugin for '%s' (datasource=%s) — skipping.",
176
+ prepared_source.datasource_type.full_type,
177
+ prepared_source.datasource_id.relative_path_to_config_file(),
178
+ )
179
+ return BuildDatasourceResult(datasource_id=datasource_id, status=DatasourceStatus.SKIPPED)
180
+
181
+ ProgressEmitter(progress).datasource_step_plan_set(
182
+ datasource_id=str(datasource_id),
183
+ step_plan=_build_step_plan(
184
+ should_index=should_index,
185
+ should_enrich_context=should_enrich_context,
186
+ ),
187
+ )
188
+
189
+ result = build_service.build_context(
190
+ prepared_source=prepared_source,
191
+ plugin=plugin,
192
+ progress=progress,
193
+ )
194
+
195
+ if should_enrich_context:
196
+ result = build_service.enrich_built_context(result, plugin, progress)
197
+
198
+ output_dir = project_layout.output_dir
199
+ context_file_path = export_build_result(output_dir, result)
200
+
201
+ perf.set_attribute("context_size_bytes", context_file_path.stat().st_size)
202
+
203
+ if should_index:
204
+ context_hash = hash_context_file(datasource_id=prepared_source.datasource_id, context_path=context_file_path)
205
+ build_service.index_built_context(
206
+ built_context=result, plugin=plugin, context_hash=context_hash, progress=progress
207
+ )
208
+
209
+ return BuildDatasourceResult(
210
+ datasource_id=datasource_id,
211
+ status=DatasourceStatus.OK,
212
+ datasource_type=DatasourceType(full_type=result.datasource_type),
213
+ context_built_at=datetime.now(),
214
+ context_file_path=context_file_path,
215
+ )
216
+
217
+
218
+ def _is_datasource_enabled(prepared_source: PreparedDatasource) -> bool:
219
+ if isinstance(prepared_source, PreparedConfig):
220
+ enabled_attribute = prepared_source.config.get("enabled", True)
221
+ return TypeAdapter(bool).validate_python(enabled_attribute)
222
+
223
+ return True
224
+
225
+
226
+ @perf.perf_run(
227
+ operation="enrich_context",
228
+ attrs=lambda *, should_index, **_: {
229
+ "should_index": should_index,
230
+ },
231
+ )
232
+ @perf.perf_span("enrich_context.total")
233
+ def run_enrich_context(
234
+ *,
235
+ project_layout: ProjectLayout,
236
+ plugin_loader: DatabaoContextPluginLoader,
237
+ build_service: BuildService,
238
+ contexts: list[DatasourceContext],
239
+ should_index: bool,
240
+ ) -> list[EnrichContextResult]:
241
+ results: list[EnrichContextResult] = []
242
+ ok = 0
243
+ skipped = 0
244
+ failed = 0
245
+
246
+ for context in contexts:
247
+ try:
248
+ logger.info(f"Enriching context for datasource {context.datasource_id}")
249
+
250
+ result = _enrich_one_context(
251
+ project_layout=project_layout,
252
+ context=context,
253
+ plugin_loader=plugin_loader,
254
+ build_service=build_service,
255
+ should_index=should_index,
256
+ )
257
+
258
+ results.append(result)
259
+ if result.status == DatasourceStatus.OK:
260
+ ok += 1
261
+ elif result.status == DatasourceStatus.SKIPPED:
262
+ skipped += 1
263
+ except Exception as e:
264
+ logger.debug(str(e), exc_info=True, stack_info=True)
265
+ logger.info(f"Failed to enrich context for datasource ({context.datasource_id}): {str(e)}")
266
+ failed += 1
267
+ results.append(
268
+ EnrichContextResult(datasource_id=context.datasource_id, status=DatasourceStatus.FAILED, error=str(e))
269
+ )
270
+
271
+ logger.debug(
272
+ "Successfully indexed %d/%d datasource(s). %s",
273
+ ok,
274
+ len(contexts),
275
+ f"Skipped {skipped}. Failed {failed}." if (skipped or failed) else "",
276
+ )
277
+
278
+ return results
279
+
280
+
281
+ @perf.perf_span(
282
+ "datasource.total",
283
+ datasource_id=lambda *, context, **_: str(context.datasource_id),
284
+ )
285
+ def _enrich_one_context(
286
+ *,
287
+ project_layout: ProjectLayout,
288
+ context: DatasourceContext,
289
+ plugin_loader: DatabaoContextPluginLoader,
290
+ build_service: BuildService,
291
+ should_index: bool,
292
+ ) -> EnrichContextResult:
293
+ perf.set_attribute("context_size_bytes", len(context.context.encode("utf-8")))
294
+
295
+ datasource_type = read_datasource_type_from_context(context)
296
+ perf.set_attribute("datasource_type", getattr(datasource_type, "full_type", datasource_type))
297
+
298
+ plugin = plugin_loader.get_plugin_for_datasource_type(datasource_type)
299
+ if plugin is None:
300
+ logger.warning(
301
+ "No plugin for datasource type '%s' — skipping context enrichment for datasource %s.",
302
+ getattr(datasource_type, "full_type", datasource_type),
303
+ context.datasource_id,
304
+ )
305
+ return EnrichContextResult(datasource_id=context.datasource_id, status=DatasourceStatus.SKIPPED)
306
+
307
+ enriched_context = build_service.enrich_datasource_context(context=context, plugin=plugin)
308
+
309
+ output_dir = project_layout.output_dir
310
+ context_file_path = export_build_result(output_dir, enriched_context)
311
+
312
+ if should_index:
313
+ context_hash = hash_context_file(datasource_id=context.datasource_id, context_path=context_file_path)
314
+ build_service.index_built_context(built_context=enriched_context, plugin=plugin, context_hash=context_hash)
315
+
316
+ return EnrichContextResult(
317
+ datasource_id=context.datasource_id,
318
+ status=DatasourceStatus.OK,
319
+ context_file_path=context_file_path,
320
+ )
321
+
322
+
323
+ @perf.perf_run(operation="index")
324
+ @perf.perf_span("index.total")
325
+ def run_indexing(
326
+ *,
327
+ project_layout: ProjectLayout,
328
+ plugin_loader: DatabaoContextPluginLoader,
329
+ build_service: BuildService,
330
+ contexts: list[DatasourceContext],
331
+ progress: ProgressCallback | None = None,
332
+ ) -> list[IndexDatasourceResult]:
333
+ """Index a list of built datasource contexts.
334
+
335
+ 1) Load available plugins
336
+ 2) Infer datasource type from context file
337
+ 3) For each context, call index_built_context
338
+
339
+ Returns:
340
+ A list of per-context indexing results.
341
+ """
342
+ emitter = ProgressEmitter(progress)
343
+ emitter.operation_started(operation="index", total=len(contexts))
344
+
345
+ results: list[IndexDatasourceResult] = []
346
+ ok = 0
347
+ skipped = 0
348
+ failed = 0
349
+
350
+ for context_index, context in enumerate(contexts, start=1):
351
+ emitter.datasource_started(
352
+ datasource_id=str(context.datasource_id),
353
+ index=context_index,
354
+ total=len(contexts),
355
+ )
356
+ try:
357
+ logger.info(f"Indexing datasource {context.datasource_id}")
358
+
359
+ result = _index_one_context(
360
+ context=context, plugin_loader=plugin_loader, build_service=build_service, progress=progress
361
+ )
362
+
363
+ results.append(result)
364
+ if result.status == DatasourceStatus.OK:
365
+ ok += 1
366
+ elif result.status == DatasourceStatus.SKIPPED:
367
+ skipped += 1
368
+
369
+ emitter.datasource_finished(
370
+ datasource_id=str(context.datasource_id),
371
+ index=context_index,
372
+ total=len(contexts),
373
+ status=result.status.value,
374
+ error=result.error,
375
+ )
376
+ except Exception as e:
377
+ logger.debug(str(e), exc_info=True, stack_info=True)
378
+ logger.info(f"Failed to build source at ({context.datasource_id}): {str(e)}")
379
+ failed += 1
380
+ results.append(
381
+ IndexDatasourceResult(datasource_id=context.datasource_id, status=DatasourceStatus.FAILED, error=str(e))
382
+ )
383
+ emitter.datasource_finished(
384
+ datasource_id=str(context.datasource_id),
385
+ index=context_index,
386
+ total=len(contexts),
387
+ status=DatasourceStatus.FAILED.value,
388
+ error=str(e),
389
+ )
390
+
391
+ logger.debug(
392
+ "Successfully indexed %d/%d datasource(s). %s",
393
+ ok,
394
+ len(contexts),
395
+ f"Skipped {skipped}. Failed {failed}." if (skipped or failed) else "",
396
+ )
397
+
398
+ emitter.operation_finished(operation="index")
399
+ return results
400
+
401
+
402
+ @perf.perf_span(
403
+ "datasource.total",
404
+ datasource_id=lambda *, context, **_: str(context.datasource_id),
405
+ )
406
+ def _index_one_context(
407
+ *,
408
+ context: DatasourceContext,
409
+ plugin_loader: DatabaoContextPluginLoader,
410
+ build_service: BuildService,
411
+ progress: ProgressCallback | None = None,
412
+ ) -> IndexDatasourceResult:
413
+ perf.set_attribute("context_size_bytes", len(context.context.encode("utf-8")))
414
+
415
+ datasource_type = read_datasource_type_from_context(context)
416
+ perf.set_attribute("datasource_type", getattr(datasource_type, "full_type", datasource_type))
417
+
418
+ plugin = plugin_loader.get_plugin_for_datasource_type(datasource_type)
419
+ if plugin is None:
420
+ logger.warning(
421
+ "No plugin for datasource type '%s' — skipping indexing for %s.",
422
+ getattr(datasource_type, "full_type", datasource_type),
423
+ context.datasource_id,
424
+ )
425
+ return IndexDatasourceResult(datasource_id=context.datasource_id, status=DatasourceStatus.SKIPPED)
426
+
427
+ ProgressEmitter(progress).datasource_step_plan_set(
428
+ datasource_id=str(context.datasource_id),
429
+ step_plan=BuildService.index_step_plan(),
430
+ )
431
+
432
+ build_service.index_datasource_context(context=context, plugin=plugin, progress=progress)
433
+ return IndexDatasourceResult(datasource_id=context.datasource_id, status=DatasourceStatus.OK)