# opengenesishq/eastgenesis architecture

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

- Interactive diagram: https://gitdiagram.com/opengenesishq/eastgenesis
- Repository: https://github.com/opengenesishq/eastgenesis

## Overview

EastGenesis is a local-first Electron AI assistant whose central workflow is task submission, automatic model selection, and a provider-backed response. The graph also preserves documented product branches for browser research, Office generation, development tools, MCP integration, and routing configuration. Source excerpts show session-engine creation, runtime routing/recovery, provider credential handling, and routing-preview validation; some cross-layer product links are documented in the README rather than demonstrated in sampled call sites.

Main entry points: [`src/main/openaiEngine.ts`](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/openaiEngine.ts) (Model Turn Runtime), [`src/main/providers.ts`](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/providers.ts) (Provider Profiles), [`src/main/session-engine-creation.ts`](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/session-engine-creation.ts) (Session Engine Setup), [`src/main/engines.ts`](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/engines.ts) (Model Providers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_conversation["Conversation Runtime"]
  node_session["Session Engine Setup"]
  node_engine["Model Turn Runtime<br/>[openaiEngine.ts]"]
  node_transcript[("Conversation History<br/>[transcript.ts]")]
  node_task["Task Orchestration<br/>[dag-scheduler.ts]"]
  node_memory[("Memory Management<br/>[memory-manager.ts]")]
end

subgraph group_routing["Routing and Providers"]
  node_routingpreview["Routing Preview"]
  node_routingtypes["Routing Policy Parser"]
  node_providerprofiles[("Provider Profiles<br/>[providers.ts]")]
  node_authorization["Provider Authorization"]
  node_billing["Billing Queries"]
  node_modelproviders["Model Providers<br/>[engines.ts]"]
end

subgraph group_tools["Assistant Capabilities"]
  node_browser["Browser and Search<br/>[browser-manager.ts]"]
  node_office["Office Generation"]
  node_devtools["Development Tools<br/>[git-tools.ts]"]
  node_mcp["MCP Integration"]
end

subgraph group_desktop["Desktop Interface"]
  node_app["Conversation UI<br/>[App.tsx]"]
  node_preload["Desktop Bridge<br/>[index.ts]"]
  node_ipc["Session Query IPC"]
  node_routingui["Routing Controls"]
end

node_user(("User"))

node_user -->|"submits task"| node_app
node_app -.->|"uses desktop API"| node_preload
node_preload -->|"invokes session query"| node_ipc
node_ipc -.->|"selects session runtime"| node_session
node_session -->|"creates engine"| node_engine
node_engine -->|"replays history"| node_transcript
node_engine -->|"routes model turn"| node_modelproviders
node_modelproviders -.->|"uses provider profiles"| node_providerprofiles
node_user -->|"sets routing intent"| node_routingui
node_routingui -->|"parses policy"| node_routingtypes
node_routingpreview -.->|"validates policy input"| node_routingtypes
node_providerprofiles -->|"authorizes provider"| node_authorization
node_providerprofiles -->|"queries billing"| node_billing
node_user -->|"browses and searches"| node_browser
node_user -->|"requests documents"| node_office
node_user -->|"uses development tools"| node_devtools
node_user -->|"connects MCP tools"| node_mcp
node_engine -.->|"coordinates tasks"| node_task
node_engine -.->|"uses task memory"| node_memory

click node_app "https://github.com/opengenesishq/eastgenesis/blob/main/src/renderer/src/App.tsx"
click node_preload "https://github.com/opengenesishq/eastgenesis/blob/main/src/preload/index.ts"
click node_ipc "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/ipc/session-query-handlers.ts"
click node_session "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/session-engine-creation.ts"
click node_engine "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/openaiEngine.ts"
click node_transcript "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/transcript.ts"
click node_routingui "https://github.com/opengenesishq/eastgenesis/blob/main/src/renderer/src/components/composer/SessionRoutingFields.tsx"
click node_routingpreview "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/routing-service/routing-preview-context.ts"
click node_routingtypes "https://github.com/opengenesishq/eastgenesis/blob/main/src/shared/routing-policy-parser.ts"
click node_providerprofiles "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/providers.ts"
click node_authorization "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/provider/providerAuthorizationService.ts"
click node_billing "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/provider/providerBillingQueryService.ts"
click node_modelproviders "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/engines.ts"
click node_browser "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/browser/browser-manager.ts"
click node_office "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/agent/tools/office-creation-tools.ts"
click node_devtools "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/agent/tools/git-tools.ts"
click node_mcp "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/mcp/mcp-oauth-service.ts"
click node_task "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/agent/dag-scheduler.ts"
click node_memory "https://github.com/opengenesishq/eastgenesis/blob/main/src/main/memory/memory-manager.ts"

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_session,node_engine,node_transcript,node_task,node_memory,node_user toneBlue
class node_routingpreview,node_routingtypes,node_providerprofiles,node_authorization,node_billing,node_modelproviders toneAmber
class node_browser,node_office,node_devtools,node_mcp toneMint
class node_app,node_preload,node_ipc,node_routingui toneRose
```

## Components

### Conversation Runtime

- [Session Engine Setup](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/session-engine-creation.ts): `src/main/session-engine-creation.ts`
- [Model Turn Runtime](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/openaiEngine.ts): `src/main/openaiEngine.ts`
- [Conversation History](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/transcript.ts): `src/main/transcript.ts`
- [Task Orchestration](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/agent/dag-scheduler.ts): `src/main/agent/dag-scheduler.ts`
- [Memory Management](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/memory/memory-manager.ts): `src/main/memory/memory-manager.ts`

### Routing and Providers

- [Routing Preview](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/routing-service/routing-preview-context.ts): `src/main/routing-service/routing-preview-context.ts`
- [Routing Policy Parser](https://github.com/opengenesishq/eastgenesis/blob/main/src/shared/routing-policy-parser.ts): `src/shared/routing-policy-parser.ts`
- [Provider Profiles](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/providers.ts): `src/main/providers.ts`
- [Provider Authorization](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/provider/providerAuthorizationService.ts): `src/main/provider/providerAuthorizationService.ts`
- [Billing Queries](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/provider/providerBillingQueryService.ts): `src/main/provider/providerBillingQueryService.ts`
- [Model Providers](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/engines.ts): `src/main/engines.ts`

### Assistant Capabilities

- [Browser and Search](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/browser/browser-manager.ts): `src/main/browser/browser-manager.ts`
- [Office Generation](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/agent/tools/office-creation-tools.ts): `src/main/agent/tools/office-creation-tools.ts`
- [Development Tools](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/agent/tools/git-tools.ts): `src/main/agent/tools/git-tools.ts`
- [MCP Integration](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/mcp/mcp-oauth-service.ts): `src/main/mcp/mcp-oauth-service.ts`

### Desktop Interface

- [Conversation UI](https://github.com/opengenesishq/eastgenesis/blob/main/src/renderer/src/App.tsx): `src/renderer/src/App.tsx`
- [Desktop Bridge](https://github.com/opengenesishq/eastgenesis/blob/main/src/preload/index.ts): `src/preload/index.ts`
- [Session Query IPC](https://github.com/opengenesishq/eastgenesis/blob/main/src/main/ipc/session-query-handlers.ts): `src/main/ipc/session-query-handlers.ts`
- [Routing Controls](https://github.com/opengenesishq/eastgenesis/blob/main/src/renderer/src/components/composer/SessionRoutingFields.tsx): `src/renderer/src/components/composer/SessionRoutingFields.tsx`

### Other components

- **User**

## Connections

- User → Conversation UI: submits task (evidence: `README.md`)
- Conversation UI → Desktop Bridge: uses desktop API
- Desktop Bridge → Session Query IPC: invokes session query
- Session Query IPC → Session Engine Setup: selects session runtime
- Session Engine Setup → Model Turn Runtime: creates engine (evidence: `src/main/session-engine-creation.ts`)
- Model Turn Runtime → Conversation History: replays history (evidence: `src/main/openaiEngine.ts`)
- Model Turn Runtime → Model Providers: routes model turn (evidence: `src/main/openaiEngine.ts`)
- Model Providers → Provider Profiles: uses provider profiles
- User → Routing Controls: sets routing intent (evidence: `README.md`)
- Routing Controls → Routing Policy Parser: parses policy (evidence: `src/renderer/src/components/composer/SessionRoutingFields.tsx`)
- Routing Preview → Routing Policy Parser: validates policy input
- Provider Profiles → Provider Authorization: authorizes provider (evidence: `src/main/provider/providerAuthorizationService.ts`)
- Provider Profiles → Billing Queries: queries billing (evidence: `src/main/provider/providerBillingQueryService.ts`)
- User → Browser and Search: browses and searches (evidence: `README.md`)
- User → Office Generation: requests documents (evidence: `README.md`)
- User → Development Tools: uses development tools (evidence: `README.md`)
- User → MCP Integration: connects MCP tools (evidence: `README.md`)
- Model Turn Runtime → Task Orchestration: coordinates tasks
- Model Turn Runtime → Memory Management: uses task memory
