# mohammednoordehalvi/noor-ai-studio architecture

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

- Interactive diagram: https://gitdiagram.com/mohammednoordehalvi/noor-ai-studio
- Repository: https://github.com/mohammednoordehalvi/noor-ai-studio

## Overview

Noor AI Studio is a local desktop command center for coordinating AI-assisted project work. Its main workflow is: a user creates a Project Head mission, Noor inspects the project and proposes a dependency-aware plan, the user approves it, specialists execute through configured providers, and Noor validates the work and offers reversible review. The README also describes Shared Room conversations, provider management, project tools, and manual Antigravity handoff. Several source excerpts are partial, so links for unsampled UI and runtime details rely on README statements or the SOURCE INDEX rather than inspection of those implementations.

Main entry points: [`src/lib/project-head.cjs`](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/project-head.cjs) (Mission lifecycle), [`renderer/app.js`](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/renderer/app.js) (Command center UI), [`src/main.cjs`](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/main.cjs) (Desktop IPC runtime), [`src/lib/providers.cjs`](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/providers.cjs) (Provider manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop experience"]
  node_renderer["Command center UI<br/>[app.js]"]
  node_palette["Command palette<br/>[command-palette.js]"]
  node_main["Desktop IPC runtime<br/>[main.cjs]"]
  node_preload["Renderer bridge<br/>[preload.cjs]"]
end

subgraph group_missions["Project Head missions"]
  node_head["Mission lifecycle<br/>[project-head.cjs]"]
  node_inspect["Project inspection"]
  node_planning["Plan prompts"]
  node_taskgraph["Task dependencies<br/>[task-graph.cjs]"]
  node_policy["Approval policy<br/>[command-policy.cjs]"]
  node_checkpoint["Edit checkpoints"]
end

subgraph group_ai["AI collaboration"]
  node_orchestrator["Agent orchestration<br/>[orchestrator.cjs]"]
  node_providers["Provider manager<br/>[providers.cjs]"]
  node_router["Specialist routing"]
  node_models["Model registry<br/>[model-registry.cjs]"]
  node_shared[("Shared Room journal<br/>[shared-context.cjs]")]
end

subgraph group_project["Project tools and safety"]
  node_files["Project file safety<br/>[fs-utils.cjs]"]
  node_backups["Backup and restore<br/>[backup.cjs]"]
  node_commands["Process utilities<br/>[process-utils.cjs]"]
end

subgraph group_state["Local state"]
  node_store[("Application state<br/>[store.cjs]")]
  node_atomic["Atomic file writes<br/>[atomic-file.cjs]"]
end

node_user(("User"))

node_user -->|"uses"| node_renderer
node_renderer -.->|"requests actions"| node_preload
node_preload -.->|"bridges IPC"| node_main
node_main -->|"dispatches mission actions"| node_head
node_main -->|"dispatches room and run actions"| node_orchestrator
node_main -.->|"manages providers"| node_providers
node_main -.->|"loads state"| node_store
node_main -->|"manages contexts"| node_shared
node_head -->|"inspects project"| node_inspect
node_head -->|"builds plan prompts"| node_planning
node_head -->|"normalizes dependencies"| node_taskgraph
node_head -->|"selects specialists"| node_router
node_head -->|"applies approval modes"| node_policy
node_head -->|"protects edits"| node_checkpoint
node_head -->|"delegates work"| node_orchestrator
node_orchestrator -->|"requests provider work"| node_providers
node_orchestrator -->|"reads and appends context"| node_shared
node_orchestrator -->|"snapshots and reviews edits"| node_backups
node_router -->|"labels providers"| node_shared
node_providers -->|"uses model definitions"| node_models
node_providers -->|"runs local processes"| node_commands
node_shared -->|"writes index atomically"| node_atomic
node_store -->|"migrates model IDs"| node_models
node_store -->|"writes state atomically"| node_atomic
node_backups -->|"snapshots project files"| node_files
node_backups -->|"writes backup atomically"| node_atomic
node_checkpoint -->|"creates and restores snapshots"| node_backups
node_renderer -->|"offers command navigation"| node_palette
node_renderer -.->|"supports project file tools"| node_files
node_renderer -.->|"offers terminal and validation"| node_commands
node_renderer -->|"configures connected providers"| node_providers
node_providers -.->|"connects to model services"| node_user

click node_renderer "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/renderer/app.js"
click node_palette "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/renderer/command-palette.js"
click node_main "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/main.cjs"
click node_preload "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/preload.cjs"
click node_head "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/project-head.cjs"
click node_inspect "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/project-inspector.cjs"
click node_planning "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/project-head-prompt.cjs"
click node_taskgraph "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/task-graph.cjs"
click node_policy "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/command-policy.cjs"
click node_checkpoint "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/checkpoint-manager.cjs"
click node_orchestrator "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/orchestrator.cjs"
click node_providers "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/providers.cjs"
click node_router "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/provider-router.cjs"
click node_models "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/model-registry.cjs"
click node_shared "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/shared-context.cjs"
click node_files "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/fs-utils.cjs"
click node_backups "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/backup.cjs"
click node_commands "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/process-utils.cjs"
click node_store "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/store.cjs"
click node_atomic "https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/atomic-file.cjs"

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_renderer,node_palette,node_main,node_preload,node_user toneBlue
class node_head,node_inspect,node_planning,node_taskgraph,node_policy,node_checkpoint toneAmber
class node_orchestrator,node_providers,node_router,node_models,node_shared toneMint
class node_files,node_backups,node_commands toneRose
class node_store,node_atomic toneIndigo
```

## Components

### Desktop experience

- [Command center UI](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/renderer/app.js): `renderer/app.js`
- [Command palette](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/renderer/command-palette.js): `renderer/command-palette.js`
- [Desktop IPC runtime](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/main.cjs): `src/main.cjs`
- [Renderer bridge](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/preload.cjs): `src/preload.cjs`

### Project Head missions

- [Mission lifecycle](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/project-head.cjs): `src/lib/project-head.cjs`
- [Project inspection](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/project-inspector.cjs): `src/lib/project-inspector.cjs`
- [Plan prompts](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/project-head-prompt.cjs): `src/lib/project-head-prompt.cjs`
- [Task dependencies](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/task-graph.cjs): `src/lib/task-graph.cjs`
- [Approval policy](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/command-policy.cjs): `src/lib/command-policy.cjs`
- [Edit checkpoints](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/checkpoint-manager.cjs): `src/lib/checkpoint-manager.cjs`

### AI collaboration

- [Agent orchestration](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/orchestrator.cjs): `src/lib/orchestrator.cjs`
- [Provider manager](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/providers.cjs): `src/lib/providers.cjs`
- [Specialist routing](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/provider-router.cjs): `src/lib/provider-router.cjs`
- [Model registry](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/model-registry.cjs): `src/lib/model-registry.cjs`
- [Shared Room journal](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/shared-context.cjs): `src/lib/shared-context.cjs`

### Project tools and safety

- [Project file safety](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/fs-utils.cjs): `src/lib/fs-utils.cjs`
- [Backup and restore](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/backup.cjs): `src/lib/backup.cjs`
- [Process utilities](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/process-utils.cjs): `src/lib/process-utils.cjs`

### Local state

- [Application state](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/store.cjs): `src/lib/store.cjs`
- [Atomic file writes](https://github.com/mohammednoordehalvi/noor-ai-studio/blob/main/src/lib/atomic-file.cjs): `src/lib/atomic-file.cjs`

### Other components

- **User**

## Connections

- User → Command center UI: uses (evidence: `README.md`)
- Command center UI → Renderer bridge: requests actions
- Renderer bridge → Desktop IPC runtime: bridges IPC
- Desktop IPC runtime → Mission lifecycle: dispatches mission actions (evidence: `src/main.cjs`)
- Desktop IPC runtime → Agent orchestration: dispatches room and run actions (evidence: `src/main.cjs`)
- Desktop IPC runtime → Provider manager: manages providers (evidence: `src/main.cjs`)
- Desktop IPC runtime → Application state: loads state (evidence: `src/main.cjs`)
- Desktop IPC runtime → Shared Room journal: manages contexts (evidence: `src/main.cjs`)
- Mission lifecycle → Project inspection: inspects project (evidence: `src/lib/project-head.cjs`)
- Mission lifecycle → Plan prompts: builds plan prompts (evidence: `src/lib/project-head.cjs`)
- Mission lifecycle → Task dependencies: normalizes dependencies (evidence: `src/lib/project-head.cjs`)
- Mission lifecycle → Specialist routing: selects specialists (evidence: `src/lib/project-head.cjs`)
- Mission lifecycle → Approval policy: applies approval modes (evidence: `src/lib/project-head.cjs`)
- Mission lifecycle → Edit checkpoints: protects edits (evidence: `src/lib/project-head.cjs`)
- Mission lifecycle → Agent orchestration: delegates work (evidence: `src/lib/project-head.cjs`)
- Agent orchestration → Provider manager: requests provider work (evidence: `src/lib/orchestrator.cjs`)
- Agent orchestration → Shared Room journal: reads and appends context (evidence: `src/lib/orchestrator.cjs`)
- Agent orchestration → Backup and restore: snapshots and reviews edits (evidence: `src/lib/orchestrator.cjs`)
- Specialist routing → Shared Room journal: labels providers (evidence: `src/lib/provider-router.cjs`)
- Provider manager → Model registry: uses model definitions (evidence: `src/lib/providers.cjs`)
- Provider manager → Process utilities: runs local processes (evidence: `src/lib/providers.cjs`)
- Shared Room journal → Atomic file writes: writes index atomically (evidence: `src/lib/shared-context.cjs`)
- Application state → Model registry: migrates model IDs (evidence: `src/lib/store.cjs`)
- Application state → Atomic file writes: writes state atomically (evidence: `src/lib/store.cjs`)
- Backup and restore → Project file safety: snapshots project files (evidence: `src/lib/backup.cjs`)
- Backup and restore → Atomic file writes: writes backup atomically (evidence: `src/lib/backup.cjs`)
- Edit checkpoints → Backup and restore: creates and restores snapshots (evidence: `src/lib/checkpoint-manager.cjs`)
- Command center UI → Command palette: offers command navigation (evidence: `README.md`)
- Command center UI → Project file safety: supports project file tools
- Command center UI → Process utilities: offers terminal and validation
- Command center UI → Provider manager: configures connected providers (evidence: `README.md`)
- Provider manager → User: connects to model services (evidence: `README.md`)
