# noirwolvex/jarvis- architecture

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

- Interactive diagram: https://gitdiagram.com/noirwolvex/jarvis-
- Repository: https://github.com/noirwolvex/jarvis-

## Overview

JARVIS is a Windows-first desktop AI agent with two distinct control surfaces: the Python agent for real desktop missions and a Next.js control center that defaults to deterministic simulation, with optional hybrid and native-daemon modes. The main mission path accepts a dashboard request, routes it to the Python worker in hybrid mode, and uses agent planning, permissions, tools, and verification to act on the desktop. The graph also preserves simulation and Rust execution as separate paths. Python orchestration and most runtime wiring are based on the README; unsampled implementation details are not inferred.

Main entry points: [`core/agent.py`](https://github.com/noirwolvex/jarvis-/blob/main/core/agent.py) (Task Agent), [`core/tools.py`](https://github.com/noirwolvex/jarvis-/blob/main/core/tools.py) (Tool Registry), [`services/runtime/src/runtime.ts`](https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/runtime.ts) (Simulation Runtime), [`apps/control-center/src/app/api/control/route.ts`](https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/app/api/control/route.ts) (Control API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dashboard["Control Center"]
  node_dashboard_ui["Mission Dashboard<br/>[control-center.tsx]"]
  node_control_api["Control API<br/>[route.ts]"]
  node_hybrid_control["Hybrid Control<br/>[hybrid-control.ts]"]
  node_control_service["Control Service<br/>[control-service.ts]"]
end

subgraph group_agent["Python Agent"]
  node_python_worker["Mission Worker"]
  node_agent_bridge["Agent Bridge"]
  node_agent_core["Task Agent<br/>[agent.py]"]
  node_orchestrator["Task Orchestrator<br/>[orchestrator.py]"]
  node_skills["Skills<br/>[skills.py]"]
  node_permissions["Permission Engine<br/>[permissions.py]"]
  node_tool_registry["Tool Registry<br/>[tools.py]"]
  node_memory[("Persistent Memory<br/>[memory.py]")]
end

subgraph group_execution["Execution Backends"]
  node_desktop_tools["Desktop Tools"]
  node_browser_tools["Browser Tools"]
  node_chrome_session["Chrome CDP<br/>[chrome_cdp.py]"]
  node_filesystem_tools["Filesystem Tools"]
  node_daemon_client["Daemon Client<br/>[daemon-client.ts]"]
  node_rust_daemon["Rust Execution Daemon<br/>[dispatcher.rs]"]
end

subgraph group_simulation["Simulation Runtime"]
  node_simulation_runtime["Simulation Runtime<br/>[runtime.ts]"]
  node_scheduler["Mission Scheduler<br/>[scheduler.ts]"]
  node_runtime_state[("Simulation State<br/>[state.ts]")]
  node_runtime_events["Event Stream<br/>[events.ts]"]
end

node_user(("Operator"))

node_user -->|"submits mission"| node_dashboard_ui
node_dashboard_ui -->|"sends control"| node_control_api
node_control_api -->|"routes hybrid requests"| node_hybrid_control
node_control_api -->|"routes simulation or native"| node_control_service
node_hybrid_control -->|"submits mission"| node_python_worker
node_python_worker -->|"runs mission"| node_agent_bridge
node_agent_bridge -->|"builds agent"| node_agent_core
node_agent_core -->|"tracks task"| node_orchestrator
node_agent_core -->|"uses guidance"| node_skills
node_agent_core -->|"checks actions"| node_permissions
node_agent_core -->|"dispatches tools"| node_tool_registry
node_agent_core -->|"reads and writes"| node_memory
node_tool_registry -->|"dispatches"| node_desktop_tools
node_tool_registry -->|"dispatches"| node_browser_tools
node_tool_registry -->|"dispatches"| node_filesystem_tools
node_browser_tools -.->|"uses session"| node_chrome_session
node_desktop_tools -.->|"uses native engine"| node_daemon_client
node_daemon_client -->|"sends TLS actions"| node_rust_daemon
node_control_service -->|"creates simulation"| node_simulation_runtime
node_simulation_runtime -->|"schedules missions"| node_scheduler
node_simulation_runtime -->|"updates state"| node_runtime_state
node_simulation_runtime -->|"emits events"| node_runtime_events
node_control_service -->|"requests native actions"| node_daemon_client

click node_dashboard_ui "https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/components/control-center.tsx"
click node_control_api "https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/app/api/control/route.ts"
click node_hybrid_control "https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/lib/hybrid-control.ts"
click node_control_service "https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/lib/control-service.ts"
click node_python_worker "https://github.com/noirwolvex/jarvis-/blob/main/core/full_access_worker.py"
click node_agent_bridge "https://github.com/noirwolvex/jarvis-/blob/main/core/full_access_bridge.py"
click node_agent_core "https://github.com/noirwolvex/jarvis-/blob/main/core/agent.py"
click node_orchestrator "https://github.com/noirwolvex/jarvis-/blob/main/core/orchestrator.py"
click node_skills "https://github.com/noirwolvex/jarvis-/blob/main/core/skills.py"
click node_permissions "https://github.com/noirwolvex/jarvis-/blob/main/core/permissions.py"
click node_tool_registry "https://github.com/noirwolvex/jarvis-/blob/main/core/tools.py"
click node_desktop_tools "https://github.com/noirwolvex/jarvis-/blob/main/core/desktop_control_tools.py"
click node_browser_tools "https://github.com/noirwolvex/jarvis-/blob/main/core/browser_tab_tools.py"
click node_chrome_session "https://github.com/noirwolvex/jarvis-/blob/main/core/chrome_cdp.py"
click node_filesystem_tools "https://github.com/noirwolvex/jarvis-/blob/main/core/filesystem_tools.py"
click node_memory "https://github.com/noirwolvex/jarvis-/blob/main/core/memory.py"
click node_daemon_client "https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/lib/daemon-client.ts"
click node_rust_daemon "https://github.com/noirwolvex/jarvis-/blob/main/daemon/rust/src/dispatcher.rs"
click node_simulation_runtime "https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/runtime.ts"
click node_scheduler "https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/scheduler.ts"
click node_runtime_state "https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/state.ts"
click node_runtime_events "https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/events.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_dashboard_ui,node_control_api,node_hybrid_control,node_control_service toneBlue
class node_python_worker,node_agent_bridge,node_agent_core,node_orchestrator,node_skills,node_permissions,node_tool_registry,node_memory toneAmber
class node_desktop_tools,node_browser_tools,node_chrome_session,node_filesystem_tools,node_daemon_client,node_rust_daemon toneMint
class node_simulation_runtime,node_scheduler,node_runtime_state,node_runtime_events toneRose
class node_user toneIndigo
```

## Components

### Control Center

- [Mission Dashboard](https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/components/control-center.tsx): `apps/control-center/src/components/control-center.tsx`
- [Control API](https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/app/api/control/route.ts): `apps/control-center/src/app/api/control/route.ts`
- [Hybrid Control](https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/lib/hybrid-control.ts): `apps/control-center/src/lib/hybrid-control.ts`
- [Control Service](https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/lib/control-service.ts): `apps/control-center/src/lib/control-service.ts`

### Python Agent

- [Mission Worker](https://github.com/noirwolvex/jarvis-/blob/main/core/full_access_worker.py): `core/full_access_worker.py`
- [Agent Bridge](https://github.com/noirwolvex/jarvis-/blob/main/core/full_access_bridge.py): `core/full_access_bridge.py`
- [Task Agent](https://github.com/noirwolvex/jarvis-/blob/main/core/agent.py): `core/agent.py`
- [Task Orchestrator](https://github.com/noirwolvex/jarvis-/blob/main/core/orchestrator.py): `core/orchestrator.py`
- [Skills](https://github.com/noirwolvex/jarvis-/blob/main/core/skills.py): `core/skills.py`
- [Permission Engine](https://github.com/noirwolvex/jarvis-/blob/main/core/permissions.py): `core/permissions.py`
- [Tool Registry](https://github.com/noirwolvex/jarvis-/blob/main/core/tools.py): `core/tools.py`
- [Persistent Memory](https://github.com/noirwolvex/jarvis-/blob/main/core/memory.py): `core/memory.py`

### Execution Backends

- [Desktop Tools](https://github.com/noirwolvex/jarvis-/blob/main/core/desktop_control_tools.py): `core/desktop_control_tools.py`
- [Browser Tools](https://github.com/noirwolvex/jarvis-/blob/main/core/browser_tab_tools.py): `core/browser_tab_tools.py`
- [Chrome CDP](https://github.com/noirwolvex/jarvis-/blob/main/core/chrome_cdp.py): `core/chrome_cdp.py`
- [Filesystem Tools](https://github.com/noirwolvex/jarvis-/blob/main/core/filesystem_tools.py): `core/filesystem_tools.py`
- [Daemon Client](https://github.com/noirwolvex/jarvis-/blob/main/apps/control-center/src/lib/daemon-client.ts): `apps/control-center/src/lib/daemon-client.ts`
- [Rust Execution Daemon](https://github.com/noirwolvex/jarvis-/blob/main/daemon/rust/src/dispatcher.rs): `daemon/rust/src/dispatcher.rs`

### Simulation Runtime

- [Simulation Runtime](https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/runtime.ts): `services/runtime/src/runtime.ts`
- [Mission Scheduler](https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/scheduler.ts): `services/runtime/src/scheduler.ts`
- [Simulation State](https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/state.ts): `services/runtime/src/state.ts`
- [Event Stream](https://github.com/noirwolvex/jarvis-/blob/main/services/runtime/src/events.ts): `services/runtime/src/events.ts`

### Other components

- **Operator**

## Connections

- Operator → Mission Dashboard: submits mission
- Mission Dashboard → Control API: sends control
- Control API → Hybrid Control: routes hybrid requests
- Control API → Control Service: routes simulation or native
- Hybrid Control → Mission Worker: submits mission
- Mission Worker → Agent Bridge: runs mission
- Agent Bridge → Task Agent: builds agent
- Task Agent → Task Orchestrator: tracks task
- Task Agent → Skills: uses guidance
- Task Agent → Permission Engine: checks actions
- Task Agent → Tool Registry: dispatches tools
- Task Agent → Persistent Memory: reads and writes
- Tool Registry → Desktop Tools: dispatches
- Tool Registry → Browser Tools: dispatches
- Tool Registry → Filesystem Tools: dispatches
- Browser Tools → Chrome CDP: uses session
- Desktop Tools → Daemon Client: uses native engine
- Daemon Client → Rust Execution Daemon: sends TLS actions
- Control Service → Simulation Runtime: creates simulation
- Simulation Runtime → Mission Scheduler: schedules missions
- Simulation Runtime → Simulation State: updates state
- Simulation Runtime → Event Stream: emits events
- Control Service → Daemon Client: requests native actions
