Metadata-Version: 2.4
Name: exmergo-dex-core
Version: 0.1.0a4
Summary: Analytics engineering for Claude Code and any agent: data warehouse exploration, dbt transformation and semantic modeling, and schema-drift maintenance on dbt.
Project-URL: Homepage, https://www.exmergo.com/dex
Project-URL: Repository, https://github.com/exmergo/dex
Author-email: "Exmergo, Inc." <support@exmergo.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: agent,analytics-engineering,claude-code,data-engineering,dbt,duckdb,osi,semantic-layer,text-to-sql
Requires-Python: >=3.11
Requires-Dist: jsonschema>=4.18
Requires-Dist: pydantic>=2
Requires-Dist: pyyaml>=6
Provides-Extra: all
Requires-Dist: databricks-sdk>=0.30; extra == 'all'
Requires-Dist: databricks-sql-connector>=3; extra == 'all'
Requires-Dist: dbt-duckdb>=1.9; extra == 'all'
Requires-Dist: duckdb>=1; extra == 'all'
Requires-Dist: google-cloud-bigquery>=3; extra == 'all'
Requires-Dist: psycopg[binary]>=3; extra == 'all'
Requires-Dist: snowflake-connector-python>=3; extra == 'all'
Requires-Dist: sqlglot>=25; extra == 'all'
Provides-Extra: bigquery
Requires-Dist: google-cloud-bigquery>=3; extra == 'bigquery'
Requires-Dist: sqlglot>=25; extra == 'bigquery'
Provides-Extra: databricks
Requires-Dist: databricks-sdk>=0.30; extra == 'databricks'
Requires-Dist: databricks-sql-connector>=3; extra == 'databricks'
Requires-Dist: sqlglot>=25; extra == 'databricks'
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff==0.15.19; extra == 'dev'
Provides-Extra: duckdb
Requires-Dist: dbt-duckdb>=1.9; extra == 'duckdb'
Requires-Dist: duckdb>=1; extra == 'duckdb'
Requires-Dist: sqlglot>=25; extra == 'duckdb'
Provides-Extra: postgres
Requires-Dist: psycopg[binary]>=3; extra == 'postgres'
Requires-Dist: sqlglot>=25; extra == 'postgres'
Provides-Extra: snowflake
Requires-Dist: snowflake-connector-python>=3; extra == 'snowflake'
Requires-Dist: sqlglot>=25; extra == 'snowflake'
Description-Content-Type: text/markdown

# exmergo-dex-core

The portable, Apache-2.0 analytics-engineering engine behind
[dex](https://github.com/exmergo/dex). All non-trivial logic lives here; the
Claude Code skills and the cross-agent `AGENTS.md` are thin wrappers that drive it
through one stable command contract.

dex is the agent-native analytics engineering toolkit: explore an unfamiliar
warehouse, transform raw data into clean dbt models and a semantic layer on top,
and maintain all of it as the data underneath changes. Read-only against your data;
every change is a reviewable diff.

## Install

```
pip install "exmergo-dex-core[duckdb]"
```

Connector client libraries live behind extras, so the zero-credential DuckDB
on-ramp installs only `duckdb` and `sqlglot`:

```
exmergo-dex-core[duckdb]       # the on-ramp and the eval/benchmark engine
exmergo-dex-core[snowflake]
exmergo-dex-core[bigquery]
exmergo-dex-core[databricks]
exmergo-dex-core[postgres]
exmergo-dex-core[all]          # every connector at once
```

## The command contract

Every subcommand prints exactly one sanitized JSON envelope to stdout and nothing
else; nothing reaches agent context except through that envelope. Credentials
never cross it, and data values cross only from profiled, PII-cleared columns,
bounded and capped by the query firewall. State persists in `.dex/`, so
subcommands are stateless and the agent orchestrates multi-step flows.

```
dex connect test --path data.duckdb
```

See [`references/command-contract.md`](../../references/command-contract.md) for
the full surface and the envelope spec.

## Status

Early and under active development; expect pre-release versions. Today the engine
runs the Explore stage on DuckDB end to end: it ranks what matters in an unfamiliar
warehouse, profiles columns selectively, flags PII, surfaces grain and
data-quality warnings, infers joins and verifies them with overlap probes
(`--verify`), and executes agent-authored ad-hoc SELECTs behind a PII-aware query
firewall (`explore query`), all read-only. Transform (dbt models and the semantic
layer) and Maintain (drift and
reconcile), and the cloud connectors (BigQuery, Snowflake, Databricks,
PostgreSQL), are in progress and report `not_implemented` until they land. The
foundations are in place: the command contract, the
canonical model and `.dex/` layout, the OSI validator against a pinned schema,
and the eval and safety spine.

## License

Apache-2.0.
