# dushu2006/arise architecture

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

- Interactive diagram: https://gitdiagram.com/dushu2006/arise
- Repository: https://github.com/dushu2006/arise

## Overview

ARISE is a Windows-first desktop agent with a local authenticated control plane. A user’s text reaches the React control room: clear commands become queued tasks, while questions receive informational answers only when a model is configured. Tasks are planned, checked by policy, run through registered tools, and independently verified; SQLite and event streams preserve task history. The product also includes capability reporting, consent-gated memory and research, and an optional voice path. Several integrations are documented but conditionally enabled or unvalidated; edges reflect only shown calls or documented composition.

Main entry points: [`src/arise/server.py`](https://github.com/dushu2006/arise/blob/main/src/arise/server.py) (Local API), [`src/arise/core/runtime.py`](https://github.com/dushu2006/arise/blob/main/src/arise/core/runtime.py) (Action Runtime), [`src/arise/core/engine.py`](https://github.com/dushu2006/arise/blob/main/src/arise/core/engine.py) (Task Engine), [`frontend/src/App.tsx`](https://github.com/dushu2006/arise/blob/main/frontend/src/App.tsx) (Control Room)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["User Interaction"]
  node_ui["Control Room<br/>[App.tsx]"]
  node_ui_api["UI API Client<br/>[api.ts]"]
  node_api["Local API<br/>[server.py]"]
end

subgraph group_orchestration["Task Orchestration"]
  node_settings["Runtime Settings<br/>[settings.py]"]
  node_engine["Task Engine<br/>[engine.py]"]
  node_intent["Intent Routing<br/>[intent.py]"]
  node_task_state["Task State<br/>[tasks.py]"]
end

subgraph group_execution["Safe Execution"]
  node_contracts["Action Contracts<br/>[contracts.py]"]
  node_policy["Policy Checks<br/>[policy.py]"]
  node_runtime["Action Runtime<br/>[runtime.py]"]
  node_resources["Resource Leases<br/>[resources.py]"]
  node_computer["Computer Actions<br/>[computer.py]"]
end

subgraph group_integrations["Providers and Adapters"]
  node_uia["Windows UIA<br/>[windows_uia.py]"]
  node_browser["Browser Actions"]
  node_perception["Perception<br/>[perception.py]"]
  node_model["Model Gateway<br/>[model_gateway.py]"]
  node_voice["Voice Pipeline<br/>[voice.py]"]
  node_memory["Local Memory<br/>[memory.py]"]
  node_research["Brave Research<br/>[brave_research.py]"]
end

subgraph group_state["Persistence and Status"]
  node_sqlite[("SQLite Store<br/>[sqlite.py]")]
  node_events["Event Records<br/>[events.py]"]
  node_capabilities["Capability Reporting<br/>[capabilities.py]"]
end

node_user(("User"))

node_user -->|"submits text"| node_ui
node_ui -->|"calls"| node_ui_api
node_ui_api -->|"HTTP requests"| node_api
node_api -->|"loads configuration"| node_settings
node_api -->|"composes"| node_engine
node_api -->|"persists tasks"| node_sqlite
node_api -->|"reports capabilities"| node_capabilities
node_api -.->|"registers conditionally"| node_memory
node_api -.->|"registers conditionally"| node_research
node_api -.->|"registers conditionally"| node_uia
node_api -.->|"registers conditionally"| node_browser
node_api -.->|"registers conditionally"| node_perception
node_engine -.->|"routes requests"| node_intent
node_engine -->|"schedules tasks"| node_task_state
node_engine -->|"dispatches actions"| node_runtime
node_engine -.->|"requests plans"| node_model
node_runtime -->|"checks actions"| node_policy
node_runtime -->|"leases resources"| node_resources
node_runtime -->|"uses computer ports"| node_computer
node_runtime -.->|"executes tools"| node_uia
node_runtime -.->|"executes tools"| node_browser
node_runtime -.->|"obtains observations"| node_perception
node_computer -->|"uses contracts"| node_contracts
node_runtime -->|"updates task state"| node_task_state
node_api -->|"streams task events"| node_events
node_api -.->|"offers gated controls"| node_voice
node_api -.->|"routes questions"| node_model

click node_ui "https://github.com/dushu2006/arise/blob/main/frontend/src/App.tsx"
click node_ui_api "https://github.com/dushu2006/arise/blob/main/frontend/src/api.ts"
click node_api "https://github.com/dushu2006/arise/blob/main/src/arise/server.py"
click node_settings "https://github.com/dushu2006/arise/blob/main/src/arise/config/settings.py"
click node_engine "https://github.com/dushu2006/arise/blob/main/src/arise/core/engine.py"
click node_intent "https://github.com/dushu2006/arise/blob/main/src/arise/core/intent.py"
click node_task_state "https://github.com/dushu2006/arise/blob/main/src/arise/core/tasks.py"
click node_contracts "https://github.com/dushu2006/arise/blob/main/src/arise/core/contracts.py"
click node_policy "https://github.com/dushu2006/arise/blob/main/src/arise/core/policy.py"
click node_runtime "https://github.com/dushu2006/arise/blob/main/src/arise/core/runtime.py"
click node_resources "https://github.com/dushu2006/arise/blob/main/src/arise/core/resources.py"
click node_computer "https://github.com/dushu2006/arise/blob/main/src/arise/core/computer.py"
click node_uia "https://github.com/dushu2006/arise/blob/main/src/arise/adapters/windows_uia.py"
click node_browser "https://github.com/dushu2006/arise/blob/main/src/arise/adapters/browser_playwright.py"
click node_perception "https://github.com/dushu2006/arise/blob/main/src/arise/adapters/perception.py"
click node_model "https://github.com/dushu2006/arise/blob/main/src/arise/core/model_gateway.py"
click node_voice "https://github.com/dushu2006/arise/blob/main/src/arise/core/voice.py"
click node_memory "https://github.com/dushu2006/arise/blob/main/src/arise/adapters/memory.py"
click node_research "https://github.com/dushu2006/arise/blob/main/src/arise/adapters/brave_research.py"
click node_sqlite "https://github.com/dushu2006/arise/blob/main/src/arise/adapters/sqlite.py"
click node_events "https://github.com/dushu2006/arise/blob/main/src/arise/core/events.py"
click node_capabilities "https://github.com/dushu2006/arise/blob/main/src/arise/core/capabilities.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_ui,node_ui_api,node_api,node_user toneBlue
class node_settings,node_engine,node_intent,node_task_state toneAmber
class node_contracts,node_policy,node_runtime,node_resources,node_computer toneMint
class node_uia,node_browser,node_perception,node_model,node_voice,node_memory,node_research toneRose
class node_sqlite,node_events,node_capabilities toneIndigo
```

## Components

### User Interaction

- [Control Room](https://github.com/dushu2006/arise/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [UI API Client](https://github.com/dushu2006/arise/blob/main/frontend/src/api.ts): `frontend/src/api.ts`
- [Local API](https://github.com/dushu2006/arise/blob/main/src/arise/server.py): `src/arise/server.py`

### Task Orchestration

- [Runtime Settings](https://github.com/dushu2006/arise/blob/main/src/arise/config/settings.py): `src/arise/config/settings.py`
- [Task Engine](https://github.com/dushu2006/arise/blob/main/src/arise/core/engine.py): `src/arise/core/engine.py`
- [Intent Routing](https://github.com/dushu2006/arise/blob/main/src/arise/core/intent.py): `src/arise/core/intent.py`
- [Task State](https://github.com/dushu2006/arise/blob/main/src/arise/core/tasks.py): `src/arise/core/tasks.py`

### Safe Execution

- [Action Contracts](https://github.com/dushu2006/arise/blob/main/src/arise/core/contracts.py): `src/arise/core/contracts.py`
- [Policy Checks](https://github.com/dushu2006/arise/blob/main/src/arise/core/policy.py): `src/arise/core/policy.py`
- [Action Runtime](https://github.com/dushu2006/arise/blob/main/src/arise/core/runtime.py): `src/arise/core/runtime.py`
- [Resource Leases](https://github.com/dushu2006/arise/blob/main/src/arise/core/resources.py): `src/arise/core/resources.py`
- [Computer Actions](https://github.com/dushu2006/arise/blob/main/src/arise/core/computer.py): `src/arise/core/computer.py`

### Providers and Adapters

- [Windows UIA](https://github.com/dushu2006/arise/blob/main/src/arise/adapters/windows_uia.py): `src/arise/adapters/windows_uia.py`
- [Browser Actions](https://github.com/dushu2006/arise/blob/main/src/arise/adapters/browser_playwright.py): `src/arise/adapters/browser_playwright.py`
- [Perception](https://github.com/dushu2006/arise/blob/main/src/arise/adapters/perception.py): `src/arise/adapters/perception.py`
- [Model Gateway](https://github.com/dushu2006/arise/blob/main/src/arise/core/model_gateway.py): `src/arise/core/model_gateway.py`
- [Voice Pipeline](https://github.com/dushu2006/arise/blob/main/src/arise/core/voice.py): `src/arise/core/voice.py`
- [Local Memory](https://github.com/dushu2006/arise/blob/main/src/arise/adapters/memory.py): `src/arise/adapters/memory.py`
- [Brave Research](https://github.com/dushu2006/arise/blob/main/src/arise/adapters/brave_research.py): `src/arise/adapters/brave_research.py`

### Persistence and Status

- [SQLite Store](https://github.com/dushu2006/arise/blob/main/src/arise/adapters/sqlite.py): `src/arise/adapters/sqlite.py`
- [Event Records](https://github.com/dushu2006/arise/blob/main/src/arise/core/events.py): `src/arise/core/events.py`
- [Capability Reporting](https://github.com/dushu2006/arise/blob/main/src/arise/core/capabilities.py): `src/arise/core/capabilities.py`

### Other components

- **User**

## Connections

- User → Control Room: submits text (evidence: `frontend/src/App.tsx`)
- Control Room → UI API Client: calls (evidence: `frontend/src/App.tsx`)
- UI API Client → Local API: HTTP requests
- Local API → Runtime Settings: loads configuration (evidence: `src/arise/server.py`)
- Local API → Task Engine: composes (evidence: `src/arise/server.py`)
- Local API → SQLite Store: persists tasks (evidence: `src/arise/server.py`)
- Local API → Capability Reporting: reports capabilities (evidence: `src/arise/server.py`)
- Local API → Local Memory: registers conditionally
- Local API → Brave Research: registers conditionally (evidence: `src/arise/server.py`)
- Local API → Windows UIA: registers conditionally (evidence: `src/arise/server.py`)
- Local API → Browser Actions: registers conditionally (evidence: `src/arise/server.py`)
- Local API → Perception: registers conditionally (evidence: `src/arise/server.py`)
- Task Engine → Intent Routing: routes requests
- Task Engine → Task State: schedules tasks (evidence: `src/arise/core/engine.py`)
- Task Engine → Action Runtime: dispatches actions (evidence: `src/arise/core/engine.py`)
- Task Engine → Model Gateway: requests plans
- Action Runtime → Policy Checks: checks actions (evidence: `src/arise/core/runtime.py`)
- Action Runtime → Resource Leases: leases resources (evidence: `src/arise/core/runtime.py`)
- Action Runtime → Computer Actions: uses computer ports (evidence: `src/arise/core/runtime.py`)
- Action Runtime → Windows UIA: executes tools
- Action Runtime → Browser Actions: executes tools
- Action Runtime → Perception: obtains observations
- Computer Actions → Action Contracts: uses contracts (evidence: `src/arise/core/computer.py`)
- Action Runtime → Task State: updates task state (evidence: `src/arise/core/runtime.py`)
- Local API → Event Records: streams task events (evidence: `src/arise/server.py`)
- Local API → Voice Pipeline: offers gated controls (evidence: `src/arise/server.py`)
- Local API → Model Gateway: routes questions (evidence: `src/arise/server.py`)
