# iamdineshreddy/d-orchestrator architecture

> Architecture diagram of the GitHub repository iamdineshreddy/d-orchestrator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/iamdineshreddy/d-orchestrator
- Repository: https://github.com/iamdineshreddy/d-orchestrator

## Overview

D-ORCHESTRATOR is a local-first platform for managing AI providers and routing engineering tasks to coding agents. The principal workflow runs from dashboard task creation through the API and task executor, which optimizes the prompt, selects a model, invokes a provider, and records usage and recovery state. The dashboard also supports provider/model discovery, routing, usage and budget analytics, recovery, and settings. Edges reflect excerpted calls or README capability statements; unsampled API and integration details are not inferred.

Main entry points: [`backend/app/services/provider_registry.py`](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/provider_registry.py) (Provider registry), [`backend/app/services/task_executor.py`](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/task_executor.py) (Task execution), [`backend/app/main.py`](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/main.py) (HTTP API), [`backend/app/db.py`](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/db.py) (SQLite database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Dashboard"]
  node_dashboard["Dashboard<br/>[App.tsx]"]
  node_web_api["Dashboard API client<br/>[api.ts]"]
end

subgraph group_api["API and persistence"]
  node_http_api["HTTP API<br/>[main.py]"]
  node_database[("SQLite database<br/>[db.py]")]
  node_domain_models["Domain records"]
  node_configuration["Runtime configuration<br/>[config.py]"]
end

subgraph group_orchestration["Task orchestration"]
  node_task_executor["Task execution<br/>[task_executor.py]"]
  node_model_router["Model routing<br/>[model_router.py]"]
  node_prompt_optimizer["Prompt optimization"]
  node_tokenizer["Task classification<br/>[tokenizer.py]"]
  node_usage_manager["Usage and budgets<br/>[usage_manager.py]"]
  node_checkpoint_service["Checkpoints and recovery"]
  node_git_safety["Git safety<br/>[git_safety.py]"]
end

subgraph group_providers["Model providers"]
  node_provider_registry["Provider registry"]
  node_provider_adapters["Provider adapters"]
  node_ollama["Ollama adapter<br/>[ollama.py]"]
  node_opencode["OpenCode adapter<br/>[opencode.py]"]
  node_openai_compat["OpenAI-compatible adapter<br/>[openai_compat.py]"]
  node_anthropic["Anthropic adapter<br/>[anthropic.py]"]
  node_google["Google adapter<br/>[google.py]"]
end

node_engineer(("Engineer"))
node_external_models{{"AI model services"}}

node_engineer -->|"uses"| node_dashboard
node_dashboard -->|"requests data"| node_web_api
node_web_api -->|"calls endpoints"| node_http_api
node_http_api -->|"uses sessions"| node_database
node_database -->|"reads database path"| node_configuration
node_database -->|"creates tables"| node_domain_models
node_http_api -->|"refreshes providers"| node_provider_registry
node_provider_registry -->|"creates adapters"| node_provider_adapters
node_provider_adapters -.->|"discovers and queries"| node_external_models
node_http_api -->|"runs task"| node_task_executor
node_task_executor -->|"optimizes prompt"| node_prompt_optimizer
node_task_executor -->|"selects model"| node_model_router
node_model_router -->|"classifies task"| node_tokenizer
node_task_executor -->|"gets adapter"| node_provider_registry
node_provider_registry -->|"instantiates"| node_ollama
node_provider_registry -->|"instantiates"| node_opencode
node_provider_registry -->|"instantiates"| node_openai_compat
node_provider_registry -->|"instantiates"| node_anthropic
node_provider_registry -->|"instantiates"| node_google
node_task_executor -->|"records usage"| node_usage_manager
node_task_executor -->|"loads checkpoints"| node_checkpoint_service
node_task_executor -->|"uses safety checks"| node_git_safety
node_http_api -->|"serves usage and budgets"| node_usage_manager
node_usage_manager -->|"stores usage and budgets"| node_domain_models
node_checkpoint_service -->|"stores checkpoints"| node_domain_models
node_checkpoint_service -->|"reads checkpoint directory"| node_configuration

click node_dashboard "https://github.com/iamdineshreddy/d-orchestrator/blob/main/frontend/src/App.tsx"
click node_web_api "https://github.com/iamdineshreddy/d-orchestrator/blob/main/frontend/src/api.ts"
click node_http_api "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/main.py"
click node_database "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/db.py"
click node_domain_models "https://github.com/iamdineshreddy/d-orchestrator/tree/main/backend/app/models"
click node_configuration "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/config.py"
click node_provider_registry "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/provider_registry.py"
click node_provider_adapters "https://github.com/iamdineshreddy/d-orchestrator/tree/main/backend/app/providers"
click node_task_executor "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/task_executor.py"
click node_model_router "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/model_router.py"
click node_prompt_optimizer "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/prompt_optimizer.py"
click node_tokenizer "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/tokenizer.py"
click node_usage_manager "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/usage_manager.py"
click node_checkpoint_service "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/checkpoint_service.py"
click node_git_safety "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/git_safety.py"
click node_ollama "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/ollama.py"
click node_opencode "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/opencode.py"
click node_openai_compat "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/openai_compat.py"
click node_anthropic "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/anthropic.py"
click node_google "https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/google.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_dashboard,node_web_api toneBlue
class node_http_api,node_database,node_domain_models,node_configuration toneAmber
class node_task_executor,node_model_router,node_prompt_optimizer,node_tokenizer,node_usage_manager,node_checkpoint_service,node_git_safety toneMint
class node_provider_registry,node_provider_adapters,node_ollama,node_opencode,node_openai_compat,node_anthropic,node_google toneRose
class node_engineer,node_external_models toneIndigo
```

## Components

### Dashboard

- [Dashboard](https://github.com/iamdineshreddy/d-orchestrator/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Dashboard API client](https://github.com/iamdineshreddy/d-orchestrator/blob/main/frontend/src/api.ts): `frontend/src/api.ts`

### API and persistence

- [HTTP API](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/main.py): `backend/app/main.py`
- [SQLite database](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/db.py): `backend/app/db.py`
- [Domain records](https://github.com/iamdineshreddy/d-orchestrator/tree/main/backend/app/models): `backend/app/models`
- [Runtime configuration](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/config.py): `backend/app/config.py`

### Task orchestration

- [Task execution](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/task_executor.py): `backend/app/services/task_executor.py`
- [Model routing](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/model_router.py): `backend/app/services/model_router.py`
- [Prompt optimization](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/prompt_optimizer.py): `backend/app/services/prompt_optimizer.py`
- [Task classification](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/tokenizer.py): `backend/app/services/tokenizer.py`
- [Usage and budgets](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/usage_manager.py): `backend/app/services/usage_manager.py`
- [Checkpoints and recovery](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/checkpoint_service.py): `backend/app/services/checkpoint_service.py`
- [Git safety](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/git_safety.py): `backend/app/services/git_safety.py`

### Model providers

- [Provider registry](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/services/provider_registry.py): `backend/app/services/provider_registry.py`
- [Provider adapters](https://github.com/iamdineshreddy/d-orchestrator/tree/main/backend/app/providers): `backend/app/providers`
- [Ollama adapter](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/ollama.py): `backend/app/providers/ollama.py`
- [OpenCode adapter](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/opencode.py): `backend/app/providers/opencode.py`
- [OpenAI-compatible adapter](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/openai_compat.py): `backend/app/providers/openai_compat.py`
- [Anthropic adapter](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/anthropic.py): `backend/app/providers/anthropic.py`
- [Google adapter](https://github.com/iamdineshreddy/d-orchestrator/blob/main/backend/app/providers/google.py): `backend/app/providers/google.py`

### Other components

- **Engineer**
- **AI model services**

## Connections

- Engineer → Dashboard: uses (evidence: `README.md`)
- Dashboard → Dashboard API client: requests data (evidence: `frontend/src/App.tsx`)
- Dashboard API client → HTTP API: calls endpoints (evidence: `frontend/src/api.ts`)
- HTTP API → SQLite database: uses sessions (evidence: `backend/app/main.py`)
- SQLite database → Runtime configuration: reads database path (evidence: `backend/app/db.py`)
- SQLite database → Domain records: creates tables (evidence: `backend/app/db.py`)
- HTTP API → Provider registry: refreshes providers (evidence: `backend/app/main.py`)
- Provider registry → Provider adapters: creates adapters (evidence: `backend/app/services/provider_registry.py`)
- Provider adapters → AI model services: discovers and queries
- HTTP API → Task execution: runs task (evidence: `backend/app/main.py`)
- Task execution → Prompt optimization: optimizes prompt (evidence: `backend/app/services/task_executor.py`)
- Task execution → Model routing: selects model (evidence: `backend/app/services/task_executor.py`)
- Model routing → Task classification: classifies task (evidence: `backend/app/services/model_router.py`)
- Task execution → Provider registry: gets adapter (evidence: `backend/app/services/task_executor.py`)
- Provider registry → Ollama adapter: instantiates (evidence: `backend/app/services/provider_registry.py`)
- Provider registry → OpenCode adapter: instantiates (evidence: `backend/app/services/provider_registry.py`)
- Provider registry → OpenAI-compatible adapter: instantiates (evidence: `backend/app/services/provider_registry.py`)
- Provider registry → Anthropic adapter: instantiates (evidence: `backend/app/services/provider_registry.py`)
- Provider registry → Google adapter: instantiates (evidence: `backend/app/services/provider_registry.py`)
- Task execution → Usage and budgets: records usage (evidence: `backend/app/services/task_executor.py`)
- Task execution → Checkpoints and recovery: loads checkpoints (evidence: `backend/app/services/task_executor.py`)
- Task execution → Git safety: uses safety checks (evidence: `backend/app/services/task_executor.py`)
- HTTP API → Usage and budgets: serves usage and budgets (evidence: `backend/app/main.py`)
- Usage and budgets → Domain records: stores usage and budgets (evidence: `backend/app/services/usage_manager.py`)
- Checkpoints and recovery → Domain records: stores checkpoints (evidence: `backend/app/services/checkpoint_service.py`)
- Checkpoints and recovery → Runtime configuration: reads checkpoint directory (evidence: `backend/app/services/checkpoint_service.py`)
