databao-context-engine 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl

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 (86) hide show
  1. databao_context_engine/__init__.py +18 -6
  2. databao_context_engine/build_sources/__init__.py +4 -0
  3. databao_context_engine/build_sources/{internal/build_runner.py → build_runner.py} +27 -23
  4. databao_context_engine/build_sources/build_service.py +53 -0
  5. databao_context_engine/build_sources/build_wiring.py +84 -0
  6. databao_context_engine/build_sources/export_results.py +41 -0
  7. databao_context_engine/build_sources/{internal/plugin_execution.py → plugin_execution.py} +3 -7
  8. databao_context_engine/cli/add_datasource_config.py +41 -15
  9. databao_context_engine/cli/commands.py +12 -43
  10. databao_context_engine/cli/info.py +2 -2
  11. databao_context_engine/databao_context_engine.py +137 -0
  12. databao_context_engine/databao_context_project_manager.py +96 -6
  13. databao_context_engine/datasources/add_config.py +34 -0
  14. databao_context_engine/{datasource_config → datasources}/check_config.py +18 -7
  15. databao_context_engine/datasources/datasource_context.py +93 -0
  16. databao_context_engine/{project → datasources}/datasource_discovery.py +17 -16
  17. databao_context_engine/{project → datasources}/types.py +64 -15
  18. databao_context_engine/init_project.py +25 -3
  19. databao_context_engine/introspection/property_extract.py +59 -30
  20. databao_context_engine/llm/errors.py +2 -8
  21. databao_context_engine/llm/install.py +13 -20
  22. databao_context_engine/llm/service.py +1 -3
  23. databao_context_engine/mcp/all_results_tool.py +2 -2
  24. databao_context_engine/mcp/mcp_runner.py +4 -2
  25. databao_context_engine/mcp/mcp_server.py +1 -4
  26. databao_context_engine/mcp/retrieve_tool.py +3 -11
  27. databao_context_engine/plugin_loader.py +111 -0
  28. databao_context_engine/pluginlib/build_plugin.py +25 -9
  29. databao_context_engine/pluginlib/config.py +16 -2
  30. databao_context_engine/plugins/databases/athena_introspector.py +85 -22
  31. databao_context_engine/plugins/databases/base_introspector.py +5 -3
  32. databao_context_engine/plugins/databases/clickhouse_introspector.py +22 -11
  33. databao_context_engine/plugins/databases/duckdb_introspector.py +1 -1
  34. databao_context_engine/plugins/databases/introspection_scope.py +11 -9
  35. databao_context_engine/plugins/databases/introspection_scope_matcher.py +2 -5
  36. databao_context_engine/plugins/databases/mssql_introspector.py +26 -17
  37. databao_context_engine/plugins/databases/mysql_introspector.py +23 -12
  38. databao_context_engine/plugins/databases/postgresql_introspector.py +2 -2
  39. databao_context_engine/plugins/databases/snowflake_introspector.py +43 -10
  40. databao_context_engine/plugins/plugin_loader.py +43 -42
  41. databao_context_engine/plugins/resources/parquet_introspector.py +2 -3
  42. databao_context_engine/project/info.py +31 -2
  43. databao_context_engine/project/init_project.py +16 -7
  44. databao_context_engine/project/layout.py +3 -3
  45. databao_context_engine/retrieve_embeddings/__init__.py +3 -0
  46. databao_context_engine/retrieve_embeddings/{internal/export_results.py → export_results.py} +2 -2
  47. databao_context_engine/retrieve_embeddings/{internal/retrieve_runner.py → retrieve_runner.py} +5 -9
  48. databao_context_engine/retrieve_embeddings/{internal/retrieve_service.py → retrieve_service.py} +3 -17
  49. databao_context_engine/retrieve_embeddings/retrieve_wiring.py +49 -0
  50. databao_context_engine/{serialisation → serialization}/yaml.py +1 -1
  51. databao_context_engine/services/chunk_embedding_service.py +23 -11
  52. databao_context_engine/services/factories.py +1 -46
  53. databao_context_engine/services/persistence_service.py +11 -11
  54. databao_context_engine/storage/connection.py +11 -7
  55. databao_context_engine/storage/exceptions/exceptions.py +2 -2
  56. databao_context_engine/storage/migrate.py +2 -4
  57. databao_context_engine/storage/migrations/V01__init.sql +6 -31
  58. databao_context_engine/storage/models.py +2 -23
  59. databao_context_engine/storage/repositories/chunk_repository.py +16 -12
  60. databao_context_engine/storage/repositories/factories.py +1 -12
  61. databao_context_engine/storage/repositories/vector_search_repository.py +8 -13
  62. databao_context_engine/system/properties.py +4 -2
  63. databao_context_engine-0.1.3.dist-info/METADATA +75 -0
  64. {databao_context_engine-0.1.2.dist-info → databao_context_engine-0.1.3.dist-info}/RECORD +68 -77
  65. databao_context_engine/build_sources/internal/build_service.py +0 -77
  66. databao_context_engine/build_sources/internal/build_wiring.py +0 -52
  67. databao_context_engine/build_sources/internal/export_results.py +0 -43
  68. databao_context_engine/build_sources/public/api.py +0 -4
  69. databao_context_engine/databao_engine.py +0 -85
  70. databao_context_engine/datasource_config/__init__.py +0 -0
  71. databao_context_engine/datasource_config/add_config.py +0 -50
  72. databao_context_engine/datasource_config/datasource_context.py +0 -60
  73. databao_context_engine/project/runs.py +0 -39
  74. databao_context_engine/retrieve_embeddings/internal/__init__.py +0 -0
  75. databao_context_engine/retrieve_embeddings/internal/retrieve_wiring.py +0 -29
  76. databao_context_engine/retrieve_embeddings/public/__init__.py +0 -0
  77. databao_context_engine/retrieve_embeddings/public/api.py +0 -3
  78. databao_context_engine/serialisation/__init__.py +0 -0
  79. databao_context_engine/services/run_name_policy.py +0 -8
  80. databao_context_engine/storage/repositories/datasource_run_repository.py +0 -136
  81. databao_context_engine/storage/repositories/run_repository.py +0 -157
  82. databao_context_engine-0.1.2.dist-info/METADATA +0 -187
  83. /databao_context_engine/{build_sources/internal → datasources}/__init__.py +0 -0
  84. /databao_context_engine/{build_sources/public → serialization}/__init__.py +0 -0
  85. {databao_context_engine-0.1.2.dist-info → databao_context_engine-0.1.3.dist-info}/WHEEL +0 -0
  86. {databao_context_engine-0.1.2.dist-info → databao_context_engine-0.1.3.dist-info}/entry_points.txt +0 -0
@@ -1,24 +1,28 @@
1
1
  import logging
2
2
  from contextlib import contextmanager
3
3
  from pathlib import Path
4
+ from typing import Iterator
4
5
 
5
6
  import duckdb
6
-
7
- from databao_context_engine.system.properties import get_db_path
7
+ from duckdb import DuckDBPyConnection
8
8
 
9
9
  logger = logging.getLogger(__name__)
10
10
 
11
11
 
12
12
  @contextmanager
13
- def open_duckdb_connection(db_path: str | Path | None = None):
14
- """
15
- Open a DuckDB connection with vector search enabled and close on exist.
16
- Loads the vss extension and enables HNSW experimental persistence.
13
+ def open_duckdb_connection(db_path: str | Path) -> Iterator[DuckDBPyConnection]:
14
+ """Open a DuckDB connection with vector search enabled and close on exist.
15
+
16
+ It also loads the vss extension and enables HNSW experimental persistence on the DuckDB.
17
17
 
18
18
  Usage:
19
19
  with open_duckdb_connection() as conn:
20
+
21
+ Yields:
22
+ The opened DuckDB connection.
23
+
20
24
  """
21
- path = str(db_path or get_db_path())
25
+ path = str(db_path)
22
26
  conn = duckdb.connect(path)
23
27
  logger.debug(f"Connected to DuckDB database at {path}")
24
28
 
@@ -1,6 +1,6 @@
1
1
  class RepositoryError(Exception):
2
- """Base exception for repository errors"""
2
+ """Base exception for repository errors."""
3
3
 
4
4
 
5
5
  class IntegrityError(RepositoryError):
6
- """Raised when a DB constraint is violated"""
6
+ """Raised when a DB constraint is violated."""
@@ -8,12 +8,10 @@ from typing import LiteralString
8
8
 
9
9
  import duckdb
10
10
 
11
- from databao_context_engine.system.properties import get_db_path
12
-
13
11
  logger = logging.getLogger(__name__)
14
12
 
15
13
 
16
- def migrate(db_path: str | Path | None = None, migration_files: list[Path] | None = None) -> None:
14
+ def migrate(db_path: str | Path, migration_files: list[Path] | None = None) -> None:
17
15
  if migration_files is None:
18
16
  migration_files = [
19
17
  migration
@@ -21,7 +19,7 @@ def migrate(db_path: str | Path | None = None, migration_files: list[Path] | Non
21
19
  if isinstance(migration, Path) and ".sql" == migration.suffix
22
20
  ]
23
21
 
24
- db = Path(db_path or get_db_path()).expanduser().resolve()
22
+ db = Path(db_path).expanduser().resolve()
25
23
  db.parent.mkdir(parents=True, exist_ok=True)
26
24
  logger.debug("Running migrations on database: %s", db)
27
25
 
@@ -2,36 +2,15 @@ INSTALL vss;
2
2
  LOAD vss;
3
3
  SET hnsw_enable_experimental_persistence = true;
4
4
 
5
- CREATE SEQUENCE IF NOT EXISTS run_id_seq START 1;
6
- CREATE SEQUENCE IF NOT EXISTS datasource_run_id_seq START 1;
7
5
  CREATE SEQUENCE IF NOT EXISTS chunk_id_seq START 1;
8
6
 
9
- CREATE TABLE IF NOT EXISTS run (
10
- run_id BIGINT PRIMARY KEY DEFAULT nextval('run_id_seq'),
11
- project_id TEXT NOT NULL,
12
- started_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
13
- ended_at TIMESTAMP,
14
- nemory_version TEXT,
15
- run_name TEXT NOT NULL,
16
- );
17
-
18
- CREATE TABLE IF NOT EXISTS datasource_run (
19
- datasource_run_id BIGINT PRIMARY KEY DEFAULT nextval('datasource_run_id_seq'),
20
- run_id BIGINT NOT NULL REFERENCES run(run_id),
21
- plugin TEXT NOT NULL,
22
- source_id TEXT NOT NULL,
23
- storage_directory TEXT NOT NULL,
24
- created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
25
- full_type TEXT NOT NULL,
26
- );
27
-
28
7
  CREATE TABLE IF NOT EXISTS chunk (
29
- chunk_id BIGINT PRIMARY KEY DEFAULT nextval('chunk_id_seq'),
30
- datasource_run_id BIGINT NOT NULL REFERENCES datasource_run(datasource_run_id),
31
- embeddable_text TEXT NOT NULL,
32
- display_text TEXT,
33
- created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
34
- generated_description TEXT,
8
+ chunk_id BIGINT PRIMARY KEY DEFAULT nextval('chunk_id_seq'),
9
+ full_type TEXT NOT NULL,
10
+ datasource_id TEXT NOT NULL,
11
+ embeddable_text TEXT NOT NULL,
12
+ display_text TEXT,
13
+ created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
35
14
  );
36
15
 
37
16
  CREATE TABLE IF NOT EXISTS embedding_model_registry (
@@ -57,7 +36,3 @@ OR IGNORE INTO
57
36
  embedding_model_registry(embedder, model_id, dim, table_name)
58
37
  VALUES
59
38
  ('ollama', 'nomic-embed-text:v1.5', 768, 'embedding_ollama__nomic_embed_text_v1_5__768');
60
-
61
- CREATE INDEX IF NOT EXISTS idx_datasource_run_run ON datasource_run(run_id);
62
- CREATE INDEX IF NOT EXISTS idx_datasource_run_plugin_run ON datasource_run(plugin, run_id);
63
- CREATE INDEX IF NOT EXISTS idx_chunk_datasource_run ON chunk(datasource_run_id);
@@ -4,34 +4,13 @@ from datetime import datetime
4
4
  from typing import Optional
5
5
 
6
6
 
7
- @dataclass(frozen=True)
8
- class RunDTO:
9
- run_id: int
10
- run_name: str
11
- project_id: str
12
- started_at: datetime
13
- ended_at: Optional[datetime]
14
- nemory_version: str
15
-
16
-
17
- @dataclass(frozen=True)
18
- class DatasourceRunDTO:
19
- datasource_run_id: int
20
- run_id: int
21
- plugin: str
22
- full_type: str
23
- source_id: str
24
- storage_directory: str
25
- created_at: datetime
26
-
27
-
28
7
  @dataclass(frozen=True)
29
8
  class ChunkDTO:
30
9
  chunk_id: int
31
- datasource_run_id: int
10
+ full_type: str
11
+ datasource_id: str
32
12
  embeddable_text: str
33
13
  display_text: Optional[str]
34
- generated_description: str
35
14
  created_at: datetime
36
15
 
37
16
 
@@ -14,22 +14,22 @@ class ChunkRepository:
14
14
  def create(
15
15
  self,
16
16
  *,
17
- datasource_run_id: int,
17
+ full_type: str,
18
+ datasource_id: str,
18
19
  embeddable_text: str,
19
20
  display_text: Optional[str],
20
- generated_description: str,
21
21
  ) -> ChunkDTO:
22
22
  try:
23
23
  row = self._conn.execute(
24
24
  """
25
25
  INSERT INTO
26
- chunk(datasource_run_id, embeddable_text, display_text, generated_description)
26
+ chunk(full_type, datasource_id, embeddable_text, display_text)
27
27
  VALUES
28
28
  (?, ?, ?, ?)
29
29
  RETURNING
30
30
  *
31
31
  """,
32
- [datasource_run_id, embeddable_text, display_text, generated_description],
32
+ [full_type, datasource_id, embeddable_text, display_text],
33
33
  ).fetchone()
34
34
  if row is None:
35
35
  raise RuntimeError("chunk creation returned no object")
@@ -55,22 +55,26 @@ class ChunkRepository:
55
55
  self,
56
56
  chunk_id: int,
57
57
  *,
58
+ full_type: Optional[str] = None,
59
+ datasource_id: Optional[str] = None,
58
60
  embeddable_text: Optional[str] = None,
59
61
  display_text: Optional[str] = None,
60
- generated_description: Optional[str] = None,
61
62
  ) -> Optional[ChunkDTO]:
62
63
  sets: list[Any] = []
63
64
  params: list[Any] = []
64
65
 
66
+ if full_type is not None:
67
+ sets.append("full_type = ?")
68
+ params.append(full_type)
69
+ if datasource_id is not None:
70
+ sets.append("datasource_id = ?")
71
+ params.append(datasource_id)
65
72
  if embeddable_text is not None:
66
73
  sets.append("embeddable_text = ?")
67
74
  params.append(embeddable_text)
68
75
  if display_text is not None:
69
76
  sets.append("display_text = ?")
70
77
  params.append(display_text)
71
- if generated_description is not None:
72
- sets.append("generated_description = ?")
73
- params.append(generated_description)
74
78
 
75
79
  if not sets:
76
80
  return self.get(chunk_id)
@@ -119,12 +123,12 @@ class ChunkRepository:
119
123
 
120
124
  @staticmethod
121
125
  def _row_to_dto(row: Tuple) -> ChunkDTO:
122
- chunk_id, datasource_run_id, embeddable_text, display_text, created_at, generated_description = row
126
+ chunk_id, full_type, datasource_id, embeddable_text, display_text, created_at = row
123
127
  return ChunkDTO(
124
128
  chunk_id=int(chunk_id),
125
- datasource_run_id=int(datasource_run_id),
126
- embeddable_text=str(embeddable_text),
129
+ full_type=full_type,
130
+ datasource_id=datasource_id,
131
+ embeddable_text=embeddable_text,
127
132
  display_text=display_text,
128
- generated_description=str(generated_description),
129
133
  created_at=created_at,
130
134
  )
@@ -1,24 +1,13 @@
1
- from _duckdb import DuckDBPyConnection
1
+ from duckdb import DuckDBPyConnection
2
2
 
3
- from databao_context_engine.services.run_name_policy import RunNamePolicy
4
3
  from databao_context_engine.storage.repositories.chunk_repository import ChunkRepository
5
- from databao_context_engine.storage.repositories.datasource_run_repository import DatasourceRunRepository
6
4
  from databao_context_engine.storage.repositories.embedding_model_registry_repository import (
7
5
  EmbeddingModelRegistryRepository,
8
6
  )
9
7
  from databao_context_engine.storage.repositories.embedding_repository import EmbeddingRepository
10
- from databao_context_engine.storage.repositories.run_repository import RunRepository
11
8
  from databao_context_engine.storage.repositories.vector_search_repository import VectorSearchRepository
12
9
 
13
10
 
14
- def create_run_repository(conn: DuckDBPyConnection) -> RunRepository:
15
- return RunRepository(conn, run_name_policy=RunNamePolicy())
16
-
17
-
18
- def create_datasource_run_repository(conn: DuckDBPyConnection) -> DatasourceRunRepository:
19
- return DatasourceRunRepository(conn)
20
-
21
-
22
11
  def create_chunk_repository(conn: DuckDBPyConnection) -> ChunkRepository:
23
12
  return ChunkRepository(conn)
24
13
 
@@ -3,8 +3,8 @@ from dataclasses import dataclass
3
3
 
4
4
  import duckdb
5
5
 
6
+ from databao_context_engine.datasources.types import DatasourceId
6
7
  from databao_context_engine.pluginlib.build_plugin import DatasourceType
7
- from databao_context_engine.project.types import DatasourceId
8
8
 
9
9
 
10
10
  @dataclass(kw_only=True, frozen=True)
@@ -23,32 +23,27 @@ class VectorSearchRepository:
23
23
  self._conn = conn
24
24
 
25
25
  def get_display_texts_by_similarity(
26
- self, *, table_name: str, run_id: int, retrieve_vec: Sequence[float], dimension: int, limit: int
26
+ self, *, table_name: str, retrieve_vec: Sequence[float], dimension: int, limit: int
27
27
  ) -> list[VectorSearchResult]:
28
- """
29
- Read only similarity search on a specific embedding shard table.
30
- Returns the display text for the closest matches in a given run
31
- """
28
+ """Read only similarity search on a specific embedding shard table."""
32
29
  rows = self._conn.execute(
33
30
  f"""
34
31
  SELECT
35
32
  COALESCE(c.display_text, c.embeddable_text) AS display_text,
36
- c.embeddable_text AS embeddable_text,
33
+ c.embeddable_text,
37
34
  array_cosine_distance(e.vec, CAST(? AS FLOAT[{dimension}])) AS cosine_distance,
38
- dr.full_type,
39
- dr.source_id,
35
+ c.full_type,
36
+ c.datasource_id,
40
37
  FROM
41
38
  {table_name} e
42
39
  JOIN chunk c ON e.chunk_id = c.chunk_id
43
- JOIN datasource_run dr ON c.datasource_run_id = dr.datasource_run_id
44
40
  WHERE
45
- dr.run_id = ?
46
- AND cosine_distance < ?
41
+ cosine_distance < ?
47
42
  ORDER BY
48
43
  array_cosine_distance(e.vec, CAST(? AS FLOAT[{dimension}])) ASC
49
44
  LIMIT ?
50
45
  """,
51
- [list(retrieve_vec), run_id, self._DEFAULT_DISTANCE_THRESHOLD, list(retrieve_vec), limit],
46
+ [list(retrieve_vec), self._DEFAULT_DISTANCE_THRESHOLD, list(retrieve_vec), limit],
52
47
  ).fetchall()
53
48
 
54
49
  return [
@@ -1,6 +1,8 @@
1
1
  import os
2
2
  from pathlib import Path
3
3
 
4
+ from databao_context_engine.project.layout import get_output_dir
5
+
4
6
  # it's private, so it doesn't get imported directy. This value is mocked in tests
5
7
  _dce_path = Path(os.getenv("DATABAO_CONTEXT_ENGINE_PATH") or "~/.dce").expanduser().resolve()
6
8
 
@@ -9,5 +11,5 @@ def get_dce_path() -> Path:
9
11
  return _dce_path
10
12
 
11
13
 
12
- def get_db_path() -> Path:
13
- return get_dce_path() / "dce.duckdb"
14
+ def get_db_path(project_dir: Path) -> Path:
15
+ return get_output_dir(project_dir) / "dce.duckdb"
@@ -0,0 +1,75 @@
1
+ Metadata-Version: 2.3
2
+ Name: databao-context-engine
3
+ Version: 0.1.3
4
+ Summary: Add your description here
5
+ Requires-Dist: click>=8.3.0
6
+ Requires-Dist: duckdb>=1.4.3
7
+ Requires-Dist: pyyaml>=6.0.3
8
+ Requires-Dist: requests>=2.32.5
9
+ Requires-Dist: mcp>=1.23.3
10
+ Requires-Dist: pydantic>=2.12.4
11
+ Requires-Dist: jinja2>=3.1.6
12
+ Requires-Dist: pyathena>=3.25.0 ; extra == 'athena'
13
+ Requires-Dist: clickhouse-connect>=0.10.0 ; extra == 'clickhouse'
14
+ Requires-Dist: mssql-python>=1.0.0 ; extra == 'mssql'
15
+ Requires-Dist: pymysql>=1.1.2 ; extra == 'mysql'
16
+ Requires-Dist: asyncpg>=0.31.0 ; extra == 'postgresql'
17
+ Requires-Dist: snowflake-connector-python>=4.2.0 ; extra == 'snowflake'
18
+ Requires-Python: >=3.12
19
+ Provides-Extra: athena
20
+ Provides-Extra: clickhouse
21
+ Provides-Extra: mssql
22
+ Provides-Extra: mysql
23
+ Provides-Extra: postgresql
24
+ Provides-Extra: snowflake
25
+ Description-Content-Type: text/markdown
26
+
27
+ [![official project](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
28
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/JetBrains/databao-context-engine/blob/main/LICENSE)
29
+
30
+ [//]: # ([![PyPI version]&#40;https://img.shields.io/pypi/v/databao-context-engine.svg&#41;]&#40;https://pypi.org/project/databao-context-engine&#41;)
31
+
32
+ [//]: # ([![Python versions]&#40;https://img.shields.io/pypi/pyversions/databao-context-engine.svg&#41;]&#40;https://pypi.org/project/databao-context-engine/&#41;)
33
+
34
+
35
+ <h1 align="center">Databao Context Engine</h1>
36
+ <p align="center">
37
+ <b>Semantic context for your LLMs — generated automatically.</b><br/>
38
+ No more copying schemas. No manual documentation. Just accurate answers.
39
+ </p>
40
+ <p align="center">
41
+ <a href="https://databao.app">Website</a>
42
+
43
+ [//]: # (•)
44
+
45
+ [//]: # ( <a href="#quickstart">Quickstart</a> •)
46
+
47
+ [//]: # ( <a href="#supported-data-sources">Data Sources</a> •)
48
+
49
+ [//]: # ( <a href="#contributing">Contributing</a>)
50
+ </p>
51
+
52
+ ---
53
+
54
+ ## What is Databao Context Engine?
55
+
56
+ Databao Context Engine **automatically generates governed semantic context** from your databases, BI tools, documents, and spreadsheets.
57
+
58
+ Integrate it with any LLM to deliver **accurate, context-aware answers** — without copying schemas or writing documentation by hand.
59
+
60
+ ```
61
+ Your data sources → Context Engine → Unified semantic graph → Any LLM
62
+ ```
63
+
64
+ ## Why choose Databao Context Engine?
65
+
66
+ | Feature | What it means for you |
67
+ |----------------------------|----------------------------------------------------------------|
68
+ | **Auto-generated context** | Extracts schemas, relationships, and semantics automatically |
69
+ | **Runs locally** | Your data never leaves your environment |
70
+ | **MCP integration** | Works with Claude Desktop, Cursor, and any MCP-compatible tool |
71
+ | **Multiple sources** | Databases, dbt projects, spreadsheets, documents |
72
+ | **Built-in benchmarks** | Measure and improve context quality over time |
73
+ | **LLM agnostic** | OpenAI, Anthropic, Ollama, Gemini — use any model |
74
+ | **Governed & versioned** | Track, version, and share context across your team |
75
+ | **Dynamic or static** | Serve context via MCP server or export as artifact |
@@ -1,33 +1,32 @@
1
- databao_context_engine/__init__.py,sha256=QCHPU_RIOT76gFU6WX3ry5gO6SV807lbi1-Fvx7pLFE,1532
2
- databao_context_engine/build_sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- databao_context_engine/build_sources/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- databao_context_engine/build_sources/internal/build_runner.py,sha256=n-s_WQipPEXIt7pAZwlfDFSb9C5S5x_ZRSGR0uPqbt4,3656
5
- databao_context_engine/build_sources/internal/build_service.py,sha256=J_brFE2M5ICvY9skdPY4sH8qLYlVZybZBXlosN-_Ct4,2706
6
- databao_context_engine/build_sources/internal/build_wiring.py,sha256=ZeNL5xkL5t4stwPH5c1Nr9nFoxWF-0Hsgg645YxF9Lg,2048
7
- databao_context_engine/build_sources/internal/export_results.py,sha256=f3W_NaIvm4z1GF9pgvtaWILx5r-114EtErDglYnU79k,1736
8
- databao_context_engine/build_sources/internal/plugin_execution.py,sha256=ZCDceJD9QCQDdsHdOf7oK7tTTuE_Wwyet3jL400WvJg,2226
9
- databao_context_engine/build_sources/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- databao_context_engine/build_sources/public/api.py,sha256=mZRL5V9Z0nU8uF9mjaNrgrulU9boLdPA8-ssuO2_bIc,242
1
+ databao_context_engine/__init__.py,sha256=nYkaM5t5Y5EV-p9_Ajg62xLFHW24liMc79oKxyodGYc,1874
2
+ databao_context_engine/build_sources/__init__.py,sha256=FteGp3MvSuX_fh-Fx1pq-jOjFcjYKQSXFSll4tQffvk,224
3
+ databao_context_engine/build_sources/build_runner.py,sha256=YXU-EJoJ5nzGePrvWA8nxJl-k-PKwgShiKPHiN5ndLM,3981
4
+ databao_context_engine/build_sources/build_service.py,sha256=eywJzpvZUVrj-JYxXii_kxhTBzVUT0xfbNtdAFcpGWQ,1624
5
+ databao_context_engine/build_sources/build_wiring.py,sha256=7Jw78gCy57Zy0e5nUnAqQmPdTkW6tztlHnQmRJ1cNkE,3192
6
+ databao_context_engine/build_sources/export_results.py,sha256=E3HP4uaQKYDrmAJKFWwDT190j7ZKfO791_pjKebTMQM,1773
7
+ databao_context_engine/build_sources/plugin_execution.py,sha256=dcnnZN-JQxmpHMCVdA6pUtbJwfJRHNmaWnu1f0ySL6M,2211
11
8
  databao_context_engine/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- databao_context_engine/cli/add_datasource_config.py,sha256=TdPftFe1KP_KG8YokqxteEM_gVUts_HPwejsVXzcLVQ,5395
13
- databao_context_engine/cli/commands.py,sha256=PnG4IkuAh07rYVxHlnqbxLMbGXETwNwQrrjAu9it0Q0,7730
9
+ databao_context_engine/cli/add_datasource_config.py,sha256=ukgore2ZG1Gen2A8LCoweOxuNhcVonhT3p_nYbtyAow,6371
10
+ databao_context_engine/cli/commands.py,sha256=ntqoThbplgrHPtDy5kKna1Cz_iu8UKJQG6q7G6UmsCs,7106
14
11
  databao_context_engine/cli/datasources.py,sha256=kHbXhEnDVaYXTRAE3WeaDGohH1Y9cwyYjjcycQ8eh1U,2376
15
- databao_context_engine/cli/info.py,sha256=Fwj4haOYhnkQ5R2TvrVpw2feUe-ucuMatUxpHIWqIaw,1119
12
+ databao_context_engine/cli/info.py,sha256=xX9io82Nzl-k7Xcds8WLTGzzBYorEYh10TlFJvXquyg,1119
16
13
  databao_context_engine/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
14
  databao_context_engine/config/log_config.yaml,sha256=hH2NPumufcyig8L-7Z_DbLQ88_G2N6CAEl5fvHafeAw,360
18
15
  databao_context_engine/config/logging.py,sha256=66k7x3ftEdHx-CKqbOss4pqZfGn4nMFv7AzVPs9aVnY,1525
19
- databao_context_engine/databao_context_project_manager.py,sha256=-xV8bJ8Gjd6eAgH4CFcTT8vnBXXk85uUmJKEAjntTaw,3699
20
- databao_context_engine/databao_engine.py,sha256=EZxVoNJwmOsOdlwtCOS52M07LUg0b7usI_iMQUiz6xw,3113
21
- databao_context_engine/datasource_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- databao_context_engine/datasource_config/add_config.py,sha256=t9dnfvqU3BQYFilCBztyeneFBFPrvEwW3Z2LS8aQNlE,2112
23
- databao_context_engine/datasource_config/check_config.py,sha256=Bs4_jTovROXKk9dOiL6egSpdTRb0FG8_23xqqJx3f8I,4995
24
- databao_context_engine/datasource_config/datasource_context.py,sha256=jks73wWIF6448ZPd23a2zu_Znwf_pkJmbW0OcQ0ED1M,2403
16
+ databao_context_engine/databao_context_engine.py,sha256=_45hvUt9u0CDhhoZDjByf12jw_QjQgH_fa0DM1D2zTc,5416
17
+ databao_context_engine/databao_context_project_manager.py,sha256=NVkVEpW_82iQuBTnEoJDNFswidR6nzTP9h6m0NDCogg,7502
18
+ databao_context_engine/datasources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ databao_context_engine/datasources/add_config.py,sha256=NN6wenXWAYxC_f65HRh8NZRMO86q3tDxi5Y2mX9qiR4,1208
20
+ databao_context_engine/datasources/check_config.py,sha256=DefL4SkrdlWVjboN5KgZ4lMtqPC7Y5hTnvNtPhkMmE4,5475
21
+ databao_context_engine/datasources/datasource_context.py,sha256=fK1MEvlDwPvybqIQ_Xkw2SyZd_p2X0gPUP9hX6AfDhU,3542
22
+ databao_context_engine/datasources/datasource_discovery.py,sha256=SbqYdqg59M9f_a3TKAf4uXNm2hCDJ-U28Jw4cE-8h5g,5198
23
+ databao_context_engine/datasources/types.py,sha256=KO4AiYvh7qbMyyPmzhZDuByCHkiFSOe_SvnwrYSiw0Q,7063
25
24
  databao_context_engine/event_journal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
25
  databao_context_engine/event_journal/writer.py,sha256=abkl2SPHYzO8XAUsjbtrcXm6WQk15zWpXhYm86qb6G0,986
27
26
  databao_context_engine/generate_configs_schemas.py,sha256=OBX1Motg_d-fmZCUnDoF-3c8dYbDcTOJmhD7F0WJHH8,3017
28
- databao_context_engine/init_project.py,sha256=j5y_3sK3ug77rqBFqUEwWbQgg3aJaRbqJoumEYMMaJQ,738
27
+ databao_context_engine/init_project.py,sha256=enLvYOd5MpGYVdWly7DuLMzPLUEE6130bEuxh0YZft8,1496
29
28
  databao_context_engine/introspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- databao_context_engine/introspection/property_extract.py,sha256=kT1rS_6V8nBjrw-Vc6PtY5bcqZuXsew5eSHjS6XB0Dw,7484
29
+ databao_context_engine/introspection/property_extract.py,sha256=61cTxGBUgb9px-hA-S-e5Ex68GjNoNoN3HgwuaGK6ss,8223
31
30
  databao_context_engine/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
31
  databao_context_engine/llm/config.py,sha256=geIygR-9maeKbvmcO5J3iNZXKS4LZc7zpKYyaH8vCoI,463
33
32
  databao_context_engine/llm/descriptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -36,100 +35,92 @@ databao_context_engine/llm/descriptions/provider.py,sha256=nojEI0l55TfFuNooQwGNv
36
35
  databao_context_engine/llm/embeddings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
36
  databao_context_engine/llm/embeddings/ollama.py,sha256=GQzlMBRJGJe_xreY9-Y3REBFWWaOyKhiGQxWxrR6xfY,949
38
37
  databao_context_engine/llm/embeddings/provider.py,sha256=IVrOptwad2Fr1wf1SBOM3-7y66k08mOZnga1NA6yhbA,300
39
- databao_context_engine/llm/errors.py,sha256=7Dj2bxydWAyF03iHt4NCuxBAmutyGrqapEZavpU0Sd4,430
38
+ databao_context_engine/llm/errors.py,sha256=Y4CVHYJKkn2oHnFWVlVL1QJl4gtvW4z11V3FB9qp3Cc,402
40
39
  databao_context_engine/llm/factory.py,sha256=VSCVAWXV6d496SWDyUH4rGYGXQ3Q6yg9Ymc8C6x8EXQ,1765
41
- databao_context_engine/llm/install.py,sha256=YlOAYOGG2pIlAjeNxYjYGrlN7CSEadD_lO628i6i8DQ,6513
40
+ databao_context_engine/llm/install.py,sha256=8_rtcr-o03FyW7nieX7xE24oVhxVa_nrd97CC0hbbZs,6555
42
41
  databao_context_engine/llm/runtime.py,sha256=jf_sPDF4s_fChFj2enLcEIBXIWjSjaYNh-l6lXIgRd4,2173
43
- databao_context_engine/llm/service.py,sha256=JOI8ZbZm6XQ_ZDj8_jdfiqUOL5SAWwgwMpxbX9Zie68,5995
42
+ databao_context_engine/llm/service.py,sha256=rM_DrF2F7NylxBhtfVGporUcv91eR_nF1mF--Zxh2tc,5978
44
43
  databao_context_engine/main.py,sha256=3gWwEc9GZJUFANJtW9Fx4smVzib_sDtFkBGPILjisaI,350
45
44
  databao_context_engine/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- databao_context_engine/mcp/all_results_tool.py,sha256=1Jc6DZUgbuNSnOqDBjTiW6H-Xag5lg0QY3LdPzZFuj4,239
47
- databao_context_engine/mcp/mcp_runner.py,sha256=sBBNsr3ivJTCYdBwRo3LJdSMWVDVcjVP3v1n5MOWC6A,386
48
- databao_context_engine/mcp/mcp_server.py,sha256=tVyQlE1hJE2hWgd6D_v3Y6D9KpnvHbXk5LfRm2tgOVM,2254
49
- databao_context_engine/mcp/retrieve_tool.py,sha256=rydPXDTPvVPPUMZQuQeUcr9mzqC0MSS5em2xtHsrjKI,719
45
+ databao_context_engine/mcp/all_results_tool.py,sha256=rwd19nhydLtjxaNaYEKQuJkQwuEID0o_1YdwvvyIhls,200
46
+ databao_context_engine/mcp/mcp_runner.py,sha256=bnB2a-_P1zOlDBqpyFIq4n2hWkfwqb6G7dHb3-3Q2I0,468
47
+ databao_context_engine/mcp/mcp_server.py,sha256=p8FZxqa43ZzWuz8EYJn70RLE0a8-eoPH7Pb2QJ7mmiI,2133
48
+ databao_context_engine/mcp/retrieve_tool.py,sha256=U5K5okX7DyrKQ_-1nZ6YOP_oUjIBLEv7JFjz3f-eJMw,611
49
+ databao_context_engine/plugin_loader.py,sha256=2vq7rCNQuxQvnGqF758Ke2IzCO-11dLD2lH8BKP1b68,4829
50
50
  databao_context_engine/pluginlib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- databao_context_engine/pluginlib/build_plugin.py,sha256=icmGh_6yAyN7DSCLdjS9PPRKETNfkRsK0SzCf8IDMx8,3236
52
- databao_context_engine/pluginlib/config.py,sha256=W3ZUGY2zModUkC-H0v2-aTPiAAKDZbdz_6H8AsPnr80,1174
51
+ databao_context_engine/pluginlib/build_plugin.py,sha256=v90JU4JRqYb4BbMvx833lPVafBUOE7Bhpt8SOWdBrZU,4105
52
+ databao_context_engine/pluginlib/config.py,sha256=fAu1AuxSFI6LOoAyvwuFE5p11bOsHp9EZzn2ST8DrUI,1534
53
53
  databao_context_engine/pluginlib/plugin_utils.py,sha256=f76ksdMUG3Wy4KOytUYxLMrq9iOHytu3QF8wc5NzzJE,2471
54
54
  databao_context_engine/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  databao_context_engine/plugins/athena_db_plugin.py,sha256=53Dui_V7MunJ3jmyYEAmkZofuHtQP-Ic3bNhsxTwAyc,456
56
56
  databao_context_engine/plugins/base_db_plugin.py,sha256=uuzKSEtszKnxL-cBg5ya6TxQHq8oqlIicUbZlkoyxlI,1562
57
57
  databao_context_engine/plugins/clickhouse_db_plugin.py,sha256=4J1CNoeWPRvgmgkww7CQALxTP5D9eSLl1TpDRgwHBew,509
58
58
  databao_context_engine/plugins/databases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- databao_context_engine/plugins/databases/athena_introspector.py,sha256=k6vRBDA-GnSFvhmso2K4BXf7PdB-4yTnOst2Ih8DfNM,3900
60
- databao_context_engine/plugins/databases/base_introspector.py,sha256=eilvWrIB407N4ALo2DG88lEQ2O28wR6_iJrZHOEfU3U,5750
61
- databao_context_engine/plugins/databases/clickhouse_introspector.py,sha256=uQTimT6kjhMEacyXvfCRGaJpFXfHdHRE7uDaOpl5dXg,6105
59
+ databao_context_engine/plugins/databases/athena_introspector.py,sha256=O8CfPzj5y0gCLBAjte8bvo7F9c2PGH6ldP6uq8_0Wt4,5702
60
+ databao_context_engine/plugins/databases/base_introspector.py,sha256=aXMWJ13LdYs1pSaGIhtA8zefe-oXlmzM6X_Ur8ZbMok,5760
61
+ databao_context_engine/plugins/databases/clickhouse_introspector.py,sha256=QfXLaA6gr0pdSLiaC3Mri_JohhRGgjw1rCJxLsHJOqk,6353
62
62
  databao_context_engine/plugins/databases/database_chunker.py,sha256=dn9Mb9Sw4f8IwBe9RtukQGT0yyKLQt5i4tjvsrFh1ew,2100
63
63
  databao_context_engine/plugins/databases/databases_types.py,sha256=kYZEaFa_cnROg_n1k7tIonoC2VunLBe5SQR47GOt_8k,2579
64
- databao_context_engine/plugins/databases/duckdb_introspector.py,sha256=LPnK7HeuFJ_VSXZvqoMqeVjXFGvZAviTwc0gNQTbsjY,11440
64
+ databao_context_engine/plugins/databases/duckdb_introspector.py,sha256=ymcvEM6zodZBY92xjamyZHJBrA2Jk1sFTZetqxR80Pg,11430
65
65
  databao_context_engine/plugins/databases/introspection_model_builder.py,sha256=nfQLKVbwaWY12lnWrpCoVY2rolW263IwvWg7NkLjtk0,10350
66
- databao_context_engine/plugins/databases/introspection_scope.py,sha256=MPCcMpZaf3ENGoaxqHCS-PK9zrLFd9KFqZx4d6qzCH0,2191
67
- databao_context_engine/plugins/databases/introspection_scope_matcher.py,sha256=9Zi5csHNIXET2PVzrSF-bI1LST1sA9N6Nye2WCGpUoo,3620
68
- databao_context_engine/plugins/databases/mssql_introspector.py,sha256=giqwPPB_VuRqJJny7KnsknpzqEeqzxc3etYclcEiHro,18545
69
- databao_context_engine/plugins/databases/mysql_introspector.py,sha256=SD5QADWefbBs1a7Xutq4U0e2VhRXki68yixIUvOk8Uo,14051
70
- databao_context_engine/plugins/databases/postgresql_introspector.py,sha256=3f42ludqg6w0I9iDaubqHKFDNBEcWP3jqd1sctXzfUg,17463
71
- databao_context_engine/plugins/databases/snowflake_introspector.py,sha256=rZ6hQxWciiph8nhHVHHC1glaVoRfS6eLG2PfMtromM0,11065
66
+ databao_context_engine/plugins/databases/introspection_scope.py,sha256=0BZAAmVTiHifOzeuQkCsGKrGRnZCPHRCLqam5nQqr88,2225
67
+ databao_context_engine/plugins/databases/introspection_scope_matcher.py,sha256=gseF4j-SD-7SSPMDlDqHUOTI3tPSaOGKJgp42WDVlsY,3605
68
+ databao_context_engine/plugins/databases/mssql_introspector.py,sha256=Pnu9LpEXZn7qUH0ANHeijynamX6dLJveHrK0tOy1PII,18793
69
+ databao_context_engine/plugins/databases/mysql_introspector.py,sha256=IoiAjzUuJwkjAXPw-X7LBRfKoY3Y2WHrHzEeXNfdF9A,14504
70
+ databao_context_engine/plugins/databases/postgresql_introspector.py,sha256=tHsQNWJLHcH4GUYwmXSf5mY6XIMhvtpUbGgwmWfljpw,17489
71
+ databao_context_engine/plugins/databases/snowflake_introspector.py,sha256=6AYsJNfhT6rAJYBH7A-_ukjtLxi-0p2Dsz9b6cda4U4,12005
72
72
  databao_context_engine/plugins/duckdb_db_plugin.py,sha256=uumf9kXz6U-6QbX0i1ChHHxxvdq5_di3gTNpVDUCYdg,451
73
73
  databao_context_engine/plugins/mssql_db_plugin.py,sha256=YVor2QMDuL6XOLT8RFPOgs1Uhj1ZVYoFP5DApDJFPaE,446
74
74
  databao_context_engine/plugins/mysql_db_plugin.py,sha256=wy8HTiYuE8GTxfoc5gdrinEYv7NWHGrslzaAzruQecY,446
75
75
  databao_context_engine/plugins/parquet_plugin.py,sha256=qlpzQmiEwpb8Jma50HoIvljGV5ZiWkZU7GSiGV7M6kc,1181
76
- databao_context_engine/plugins/plugin_loader.py,sha256=_1I9npMhO26EFjBu8rOCcR13Q2qYuXUpMMcNLR-NJzQ,3952
76
+ databao_context_engine/plugins/plugin_loader.py,sha256=Nx_OYGf9t3XKb_JV4Om9fCOuL7B-qVw-peXKXHiK8G0,3861
77
77
  databao_context_engine/plugins/postgresql_db_plugin.py,sha256=PwLErcbqixsgz4Tqoift0uyerUqP_OaRzMaMAn0TE5A,486
78
78
  databao_context_engine/plugins/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
79
  databao_context_engine/plugins/resources/parquet_chunker.py,sha256=R9WCOBqpKRTVN6t5eeOm_mmnKBOxvjIiQ9zTc8vnUb4,848
80
- databao_context_engine/plugins/resources/parquet_introspector.py,sha256=HJzfBEjzAQlUI_-BLBNNMSrMLbVRPPCpjG_Fowy3_40,6175
80
+ databao_context_engine/plugins/resources/parquet_introspector.py,sha256=_nB85_cSeFAHbnYlGPP_apRFkUQ6j24Efv-KNtOF2tM,6149
81
81
  databao_context_engine/plugins/snowflake_db_plugin.py,sha256=ApiVE212DU9F4Zj1HPof6JQ66n4LUeYRRwhlTWRCxek,486
82
82
  databao_context_engine/plugins/unstructured_files_plugin.py,sha256=TWV3fluusizul2YEN-YZ-K-C3s5W-5B8353-bjP53L8,2424
83
83
  databao_context_engine/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
- databao_context_engine/project/datasource_discovery.py,sha256=uNMp5-HzmYQLzSZhc4IxtO8_ChDeyyZXdtZNGDYqII0,5015
85
- databao_context_engine/project/info.py,sha256=7cbNTxHfah-2nTcMa4wZt1M3lxgp9voiKMY7LWw4tGk,1155
86
- databao_context_engine/project/init_project.py,sha256=TAVLGX7WlIsLvd4KAsB5Qf0NOXZfXl_CknuxRzr_-5w,3736
87
- databao_context_engine/project/layout.py,sha256=Q7AyiBwPnks98IfDKXB8eCzdwnMbkg8x1wd_1xCjfVo,4291
84
+ databao_context_engine/project/info.py,sha256=XcDB2tKlsM6PCKapXEB3fLIHPSWUR3XlNjnKWLyJ92s,2313
85
+ databao_context_engine/project/init_project.py,sha256=QiLalH--BMQGB-c2WBbPAUKBinDbO0cJkmilUfqPAuI,3970
86
+ databao_context_engine/project/layout.py,sha256=7ThzqnFejMogBV8c6Mt-Md4GO-kdzYNrmhhBTalYvps,4295
88
87
  databao_context_engine/project/project_config.py,sha256=rI-Wkll7lca7RlYIaFScs5CIKIZ8uujtKRxSjibGIt8,1132
89
88
  databao_context_engine/project/resources/examples/src/databases/example_postgres.yaml,sha256=5o6jF_zR4WSvS9QcZnGW-S2FmahsjNp-tMbAkzbNabo,139
90
89
  databao_context_engine/project/resources/examples/src/files/documentation.md,sha256=k5G5lrN4S_ie2o7CBxXgLiWGIGtb3v-77c_3n4C7Lvw,1090
91
90
  databao_context_engine/project/resources/examples/src/files/notes.txt,sha256=0T1u8lIwIRwNopEsfWmqfIbhfRl-DN3XuiIN7suRAiE,3668
92
- databao_context_engine/project/runs.py,sha256=HjoIhAIy3iTQQCvGtf2j-uuoRJL_66ODCyTLOE_Popc,1733
93
- databao_context_engine/project/types.py,sha256=STCLEVd8b_Kwmv_ajwOgBheSyE8enbAfYPxjGogzRFI,4758
94
- databao_context_engine/retrieve_embeddings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
- databao_context_engine/retrieve_embeddings/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
- databao_context_engine/retrieve_embeddings/internal/export_results.py,sha256=q4ztCIEjUSA4lHq3ju1jBzSM3isEqng6m65HkitH09E,331
97
- databao_context_engine/retrieve_embeddings/internal/retrieve_runner.py,sha256=MWDWCI6C7d2rTSAKSPvNsWMpTAlg3pcoPyd7WiovLB4,1264
98
- databao_context_engine/retrieve_embeddings/internal/retrieve_service.py,sha256=EoP3SvaQzdIBKARFBj1OAHw4hz626FxFhHx74sWR4Zc,2732
99
- databao_context_engine/retrieve_embeddings/internal/retrieve_wiring.py,sha256=ZlKV6nls7yDAAdjai6Lg6LZDBEopygFGQXhh5E9HpA4,1386
100
- databao_context_engine/retrieve_embeddings/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
- databao_context_engine/retrieve_embeddings/public/api.py,sha256=cR0FnnVaLXGY0wEm3y-nCCj8NwdRWRBnuT2oFbjEfVM,135
102
- databao_context_engine/serialisation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
- databao_context_engine/serialisation/yaml.py,sha256=_NTW1qDdtX9PstCftNnzFa5B05B9ZJXjQBI6OXv0N24,1255
91
+ databao_context_engine/retrieve_embeddings/__init__.py,sha256=__aOhCc3sBfLtjxz0hlVGuSYUMRsEM3PucPYNC6LVq0,126
92
+ databao_context_engine/retrieve_embeddings/export_results.py,sha256=_IdhKPQQhK9o0uCLwRqoNTvStS3qh8UhdICfEADkFec,337
93
+ databao_context_engine/retrieve_embeddings/retrieve_runner.py,sha256=-nvsGssxEQkXoL4D02L_RDYGuvbsN0icpFmw6JF4W-s,1046
94
+ databao_context_engine/retrieve_embeddings/retrieve_service.py,sha256=KrCNEu-Yd7dZrk0jk9ZOp4yO5WNjuzg7l4CgYLMqFvI,2005
95
+ databao_context_engine/retrieve_embeddings/retrieve_wiring.py,sha256=nO_OTrbKOsvgJz_CiqZliIdCg1L3m6cWELyTI2nVZgk,2123
96
+ databao_context_engine/serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
+ databao_context_engine/serialization/yaml.py,sha256=e0xQBgDmrCspppAVyonMkVkznOjuUcOGjfNEi8Gmc74,1255
104
98
  databao_context_engine/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- databao_context_engine/services/chunk_embedding_service.py,sha256=vtnZ48QcWggfELuJgHgfSsyuvSjlrwXr9LRMC-M5xis,4427
99
+ databao_context_engine/services/chunk_embedding_service.py,sha256=Dy25u2QSSdq03v1zs2bjjm8Sze-VEd12F49gzoKXjOA,4924
106
100
  databao_context_engine/services/embedding_shard_resolver.py,sha256=6oOVm6QJb74lEIbYXijWMqISTx1VfmKQaQjdSHr8zDA,2289
107
- databao_context_engine/services/factories.py,sha256=oEKWa9zzHq8BpDNIXMmtpTL8i6MpzEAAcvd6AuMIRvc,3319
101
+ databao_context_engine/services/factories.py,sha256=IoRmJk9a7q2eszwz_zfqE2hJDOwpB76SmmmgR0DI-qY,1830
108
102
  databao_context_engine/services/models.py,sha256=wHmk4eheoSopXkCs3v2ggoDAGoTPdHYcADMZ4gdtSCI,299
109
- databao_context_engine/services/persistence_service.py,sha256=WFDr84Yw5-yKvdCaVh_UJ-_CrgwOXwEQthdrm76zqKA,2329
110
- databao_context_engine/services/run_name_policy.py,sha256=2z7HZFG-danHVTJgTTx1bUvZLMYLRKo_ZlIlwpcpIWA,229
103
+ databao_context_engine/services/persistence_service.py,sha256=Kcu4rw-TCqyHiGW1h5rYZfe3F-HZTn0tRAM4_czzEAc,2252
111
104
  databao_context_engine/services/table_name_policy.py,sha256=q0scAQ_ZoTrV8V0J6cmxvsMYxTcmUlAqEWpzZUitpLQ,567
112
105
  databao_context_engine/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- databao_context_engine/storage/connection.py,sha256=FsDJeDfQMmQbPvXUDZ2YDf_IWO9WDwPc59ADbhAgyco,870
106
+ databao_context_engine/storage/connection.py,sha256=UGnJOBJ83jDAmN3fmjVZI60qUw5cAC3YNLToJZLOhGQ,941
114
107
  databao_context_engine/storage/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
- databao_context_engine/storage/exceptions/exceptions.py,sha256=clk0OnpFqVqJTe0lXj-yNN2V7LFw30Nv1Ckz9gA-eyw,172
116
- databao_context_engine/storage/migrate.py,sha256=C2M7Kfk6yKd8LM4Pc7RFiU3TT0HaR4a1JN0l9PomQwI,4691
117
- databao_context_engine/storage/migrations/V01__init.sql,sha256=5Cf2NxnOPYFgkXFolFUFuqbYIVoMSlvuGNeuX_-KE50,2475
118
- databao_context_engine/storage/models.py,sha256=7Gs8CHlXXjbjaqfq2CS9CM0LlL-7w9Yp9exhvqsjrdY,971
108
+ databao_context_engine/storage/exceptions/exceptions.py,sha256=zwJ8n-ekMhIH-bs9dvYqQuP4VfQ9rt0jdsptoojA5oU,174
109
+ databao_context_engine/storage/migrate.py,sha256=yGt9VdSsR0g3ZxesTCWs4eyJHk9EPIuJakeRpCFWEyY,4594
110
+ databao_context_engine/storage/migrations/V01__init.sql,sha256=hJvUoPIW-rQQB5DSDrPjGJQoey9bpDRz0FFoUyTe9Qo,1368
111
+ databao_context_engine/storage/models.py,sha256=TmoeyOhrFL9mu-C43XUtqOWGhkQu2h-sZQdYCjui5HM,580
119
112
  databao_context_engine/storage/repositories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
- databao_context_engine/storage/repositories/chunk_repository.py,sha256=1I6aqYwmZybfI9aGF3hrFykPNQV9z1kNbvwUwgab8DE,3671
121
- databao_context_engine/storage/repositories/datasource_run_repository.py,sha256=k9kfAwEnEiYZoeasLzo-4AI-l8WAEUl3r9M9qVAkmVI,3952
113
+ databao_context_engine/storage/repositories/chunk_repository.py,sha256=nwDF8NeCwQJLlwtlvqILUccmWmQTfpg6Uf_WCDXm564,3681
122
114
  databao_context_engine/storage/repositories/embedding_model_registry_repository.py,sha256=g91WCflYRc5jPDbW9RBp5HxWFsSIta4n8OYNwgoLv9c,2413
123
115
  databao_context_engine/storage/repositories/embedding_repository.py,sha256=UCvr5mf2jTJgX_uMdLIMiN5NWa8Zn1U3HEr19TQRXAw,3278
124
- databao_context_engine/storage/repositories/factories.py,sha256=oA7UugL0rshMsV323h6F7yFYHHIPuZg22U1VUrFrEz8,1506
125
- databao_context_engine/storage/repositories/run_repository.py,sha256=gTlkPoESdfJJgqeHtV4ge17LGljzdRPbwIwX2ORjfkQ,4348
126
- databao_context_engine/storage/repositories/vector_search_repository.py,sha256=Y87CPreJcVVUvWmcq4YyzdpthP8K42ag5_TrpovWqCw,2187
116
+ databao_context_engine/storage/repositories/factories.py,sha256=YUkVrHyf5UV2rZ7H97Fi_n0ZYxTwXy8_w5zJnMkO8Lw,970
117
+ databao_context_engine/storage/repositories/vector_search_repository.py,sha256=D6gebioSvqWslJw5zSleEG1Inj2w8MkPfbgGZFTZDfs,1944
127
118
  databao_context_engine/storage/transaction.py,sha256=QpfE1VtgDd3_7OBzFYI3HPJJ7ESXkgCdcWukFkAjbSg,270
128
119
  databao_context_engine/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
- databao_context_engine/system/properties.py,sha256=RoEemdpD30blMyw5bRpzH0jjbS42TCODFdBpVD8jEG4,333
120
+ databao_context_engine/system/properties.py,sha256=mQ7-_PZeYSESYn1cMUQ0IK7rJEnbhc7t4WesFjAgo-Q,429
130
121
  databao_context_engine/templating/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
122
  databao_context_engine/templating/renderer.py,sha256=W2-0IGStAp6oxANmsKs_Z-UoIR6Gt_c4ILYFa3Hruo4,662
132
- databao_context_engine-0.1.2.dist-info/WHEEL,sha256=eycQt0QpYmJMLKpE3X9iDk8R04v2ZF0x82ogq-zP6bQ,79
133
- databao_context_engine-0.1.2.dist-info/entry_points.txt,sha256=5EeQJ1W8zEFh4HuF1bs2zBeoP408oiwuM9UrkJiurgI,138
134
- databao_context_engine-0.1.2.dist-info/METADATA,sha256=66akrE--e-4DKjDOAGnuXFRn_fRNrkr5a187jMifHog,5956
135
- databao_context_engine-0.1.2.dist-info/RECORD,,
123
+ databao_context_engine-0.1.3.dist-info/WHEEL,sha256=eycQt0QpYmJMLKpE3X9iDk8R04v2ZF0x82ogq-zP6bQ,79
124
+ databao_context_engine-0.1.3.dist-info/entry_points.txt,sha256=5EeQJ1W8zEFh4HuF1bs2zBeoP408oiwuM9UrkJiurgI,138
125
+ databao_context_engine-0.1.3.dist-info/METADATA,sha256=81FImIbcFo2PNXdEHjECQzrL7wCMTBpUc51Px6Fv7Go,3329
126
+ databao_context_engine-0.1.3.dist-info/RECORD,,