# jawadafransaneem-31/dagger-leader-ai architecture

> Architecture diagram of the GitHub repository jawadafransaneem-31/dagger-leader-ai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jawadafransaneem-31/dagger-leader-ai
- Repository: https://github.com/jawadafransaneem-31/dagger-leader-ai

## Overview

Dagger Leader is a multi-agent data-intelligence engine: a user asks a question, the workflow coordinates schema, memory, semantic, and SQL agents, validates and executes governed SQL, retries failures through healing, then explains the results. The README documents this pipeline and additional warehouse, Kafka, and dbt capabilities. Sampled code confirms the API/SDK entry points, shared state, LLM client, Snowflake connector, governance guard, and ChromaDB/Neo4j clients; some agent and workflow internals were not sampled, so uncertain wiring is omitted.

Main entry points: [`core/langgraph_workflow.py`](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/langgraph_workflow.py) (LangGraph workflow), [`core/llm_client.py`](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/llm_client.py) (LLM client), [`agents/orchestrator.py`](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/orchestrator.py) (Orchestrator), [`main.py`](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/main.py) (SDK and CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User interfaces"]
  node_api["REST API<br/>[app.py]"]
  node_sdk["SDK and CLI<br/>[main.py]"]
end

subgraph group_pipeline["Query pipeline"]
  node_workflow["LangGraph workflow"]
  node_state["Shared agent state<br/>[state.py]"]
  node_orchestrator["Orchestrator<br/>[orchestrator.py]"]
  node_schema["Schema agent<br/>[schema_agent.py]"]
  node_memory["Memory agent<br/>[memory_agent.py]"]
  node_semantic["Semantic agent<br/>[semantic_agent.py]"]
  node_sql["SQL agent<br/>[sql_agent.py]"]
  node_validator["SQL validator<br/>[validator.py]"]
  node_healer["SQL healer<br/>[healer_agent.py]"]
  node_explainer["Result explainer<br/>[explainer_agent.py]"]
end

subgraph group_context["Data context"]
  node_chroma[("Schema and memory store<br/>[chroma_client.py]")]
  node_neo4j[("Business-term graph<br/>[neo4j_client.py]")]
end

subgraph group_integrations["Data and services"]
  node_llm{{"LLM provider"}}
  node_llm_client["LLM client<br/>[llm_client.py]"]
  node_guard["SQL guardrails<br/>[sql_guard.py]"]
  node_connector["Snowflake connector<br/>[data_connector.py]"]
  node_warehouse[("Snowflake warehouse")]
  node_bigquery["BigQuery connector"]
  node_kafka["Kafka consumer<br/>[kafka_consumer.py]"]
  node_dbt["dbt runner<br/>[dbt_runner.py]"]
end

node_user(("Question asker"))

node_user -->|"submits question"| node_api
node_user -->|"asks question"| node_sdk
node_api -->|"calls query"| node_sdk
node_sdk -->|"invokes workflow"| node_workflow
node_workflow -->|"dispatches"| node_orchestrator
node_workflow -->|"dispatches"| node_schema
node_workflow -->|"dispatches"| node_memory
node_workflow -->|"dispatches"| node_semantic
node_workflow -->|"dispatches"| node_sql
node_workflow -->|"dispatches"| node_validator
node_workflow -->|"dispatches"| node_healer
node_workflow -->|"dispatches"| node_explainer
node_workflow -->|"passes state"| node_state
node_orchestrator -->|"requests completion"| node_llm_client
node_schema -->|"searches schemas"| node_chroma
node_memory -->|"retrieves memory"| node_chroma
node_semantic -->|"looks up terms"| node_neo4j
node_orchestrator -->|"uses"| node_llm_client
node_sql -->|"uses"| node_llm_client
node_healer -->|"uses"| node_llm_client
node_explainer -->|"uses"| node_llm_client
node_llm_client -->|"calls provider"| node_llm
node_validator -->|"checks SQL"| node_guard
node_workflow -->|"executes query"| node_connector
node_connector -->|"queries"| node_warehouse
node_workflow -.->|"supports source"| node_bigquery
node_workflow -.->|"supports streaming"| node_kafka
node_workflow -.->|"supports models"| node_dbt

click node_api "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/api/app.py"
click node_sdk "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/main.py"
click node_workflow "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/langgraph_workflow.py"
click node_state "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/config/core/state.py"
click node_orchestrator "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/orchestrator.py"
click node_schema "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/schema_agent.py"
click node_memory "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/memory_agent.py"
click node_semantic "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/semantic_agent.py"
click node_sql "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/sql_agent.py"
click node_validator "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/validator.py"
click node_healer "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/healer_agent.py"
click node_explainer "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/explainer_agent.py"
click node_llm_client "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/llm_client.py"
click node_chroma "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/vector_db/chroma_client.py"
click node_neo4j "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/knowledge_graph/neo4j_client.py"
click node_guard "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/governance/sql_guard.py"
click node_connector "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/data_connector.py"
click node_bigquery "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/data_sources/bigquery_connector.py"
click node_kafka "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/data_sources/kafka_consumer.py"
click node_dbt "https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/data_sources/dbt_runner.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api,node_sdk toneBlue
class node_workflow,node_state,node_orchestrator,node_schema,node_memory,node_semantic,node_sql,node_validator,node_healer,node_explainer toneAmber
class node_chroma,node_neo4j toneMint
class node_llm,node_llm_client,node_guard,node_connector,node_warehouse,node_bigquery,node_kafka,node_dbt toneRose
class node_user toneIndigo
```

## Components

### User interfaces

- [REST API](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/api/app.py): `api/app.py`
- [SDK and CLI](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/main.py): `main.py`

### Query pipeline

- [LangGraph workflow](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/langgraph_workflow.py): `core/langgraph_workflow.py`
- [Shared agent state](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/config/core/state.py): `config/core/state.py`
- [Orchestrator](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/orchestrator.py): `agents/orchestrator.py`
- [Schema agent](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/schema_agent.py): `agents/schema_agent.py`
- [Memory agent](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/memory_agent.py): `agents/memory_agent.py`
- [Semantic agent](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/semantic_agent.py): `agents/semantic_agent.py`
- [SQL agent](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/sql_agent.py): `agents/sql_agent.py`
- [SQL validator](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/validator.py): `agents/validator.py`
- [SQL healer](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/healer_agent.py): `agents/healer_agent.py`
- [Result explainer](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/agents/explainer_agent.py): `agents/explainer_agent.py`

### Data context

- [Schema and memory store](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/vector_db/chroma_client.py): `vector_db/chroma_client.py`
- [Business-term graph](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/knowledge_graph/neo4j_client.py): `knowledge_graph/neo4j_client.py`

### Data and services

- **LLM provider**
- [LLM client](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/llm_client.py): `core/llm_client.py`
- [SQL guardrails](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/governance/sql_guard.py): `governance/sql_guard.py`
- [Snowflake connector](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/core/data_connector.py): `core/data_connector.py`
- **Snowflake warehouse**
- [BigQuery connector](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/data_sources/bigquery_connector.py): `data_sources/bigquery_connector.py`
- [Kafka consumer](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/data_sources/kafka_consumer.py): `data_sources/kafka_consumer.py`
- [dbt runner](https://github.com/jawadafransaneem-31/dagger-leader-ai/blob/main/data_sources/dbt_runner.py): `data_sources/dbt_runner.py`

### Other components

- **Question asker**

## Connections

- Question asker → REST API: submits question
- Question asker → SDK and CLI: asks question
- REST API → SDK and CLI: calls query
- SDK and CLI → LangGraph workflow: invokes workflow
- LangGraph workflow → Orchestrator: dispatches
- LangGraph workflow → Schema agent: dispatches
- LangGraph workflow → Memory agent: dispatches
- LangGraph workflow → Semantic agent: dispatches
- LangGraph workflow → SQL agent: dispatches
- LangGraph workflow → SQL validator: dispatches
- LangGraph workflow → SQL healer: dispatches
- LangGraph workflow → Result explainer: dispatches
- LangGraph workflow → Shared agent state: passes state
- Orchestrator → LLM client: requests completion
- Schema agent → Schema and memory store: searches schemas
- Memory agent → Schema and memory store: retrieves memory
- Semantic agent → Business-term graph: looks up terms
- Orchestrator → LLM client: uses
- SQL agent → LLM client: uses
- SQL healer → LLM client: uses
- Result explainer → LLM client: uses
- LLM client → LLM provider: calls provider
- SQL validator → SQL guardrails: checks SQL
- LangGraph workflow → Snowflake connector: executes query
- Snowflake connector → Snowflake warehouse: queries
- LangGraph workflow → BigQuery connector: supports source
- LangGraph workflow → Kafka consumer: supports streaming
- LangGraph workflow → dbt runner: supports models
