# treyu23/operatingsystemchatgpt architecture

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

- Interactive diagram: https://gitdiagram.com/treyu23/operatingsystemchatgpt
- Repository: https://github.com/treyu23/operatingsystemchatgpt

## Overview

Live Desktop is a local-first Windows dashboard and assistant. A user interacts with the React dashboard to inspect system status, manage profile data, chat, review approvals, and use calendar and media integrations. The frontend sends API requests to the Spring controller, which delegates to assistant, system, integration, action, and persistence services. Approved actions execute only after approval (or a matching prior approval). The README documents additional capabilities whose implementation was not sampled; those are represented at the documented service boundaries. The frontend and several backend links are based on the tree and README, not inspected source.

Main entry points: [`backend/src/main/java/com/localassistant/os/web/AssistantController.java`](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/web/AssistantController.java) (API controller), [`backend/src/main/java/com/localassistant/os/service/DashboardContextService.java`](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/DashboardContextService.java) (Prompt context), [`backend/src/main/java/com/localassistant/os/service/ActionService.java`](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ActionService.java) (Approval actions), [`backend/src/main/java/com/localassistant/os/service/SystemService.java`](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/SystemService.java) (System inspection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Dashboard"]
  node_dashboard["React dashboard<br/>[App.jsx]"]
end

subgraph group_api["API and assistant"]
  node_controller["API controller"]
  node_agent["OpenAI agent<br/>[OpenAiAgent.java]"]
  node_context["Prompt context"]
  node_actions["Approval actions<br/>[ActionService.java]"]
end

subgraph group_state["Profiles and state"]
  node_state_store[("Local state<br/>[StateStore.java]")]
  node_memory["Memory service<br/>[MemoryService.java]"]
  node_profile_data["Profile data"]
  node_credentials["Protected credentials"]
end

subgraph group_desktop["Windows desktop"]
  node_system["System inspection<br/>[SystemService.java]"]
  node_sys_controls["Radio controls"]
  node_runtime["Runtime controls"]
  node_workspace["Workspace access"]
  node_media_script["Media controls script"]
  node_control_script["Radio control script"]
end

subgraph group_integrations["Connected services"]
  node_media["Media session"]
  node_calendar["iCloud Calendar"]
  node_phone["Phone Link status<br/>[SystemService.java]"]
end

node_user(("User"))
node_openai{{"OpenAI API"}}
node_icloud{{"iCloud CalDAV"}}
node_music_providers{{"Music web embeds"}}
node_phone_link{{"Phone Link"}}
node_windows{{"Windows"}}

node_user -->|"uses"| node_dashboard
node_dashboard -->|"calls API"| node_controller
node_controller -->|"requests reply"| node_agent
node_agent -.->|"sends prompt"| node_openai
node_agent -->|"gets context"| node_context
node_context -->|"reads status"| node_system
node_context -->|"reads status"| node_runtime
node_context -->|"reads events"| node_calendar
node_context -->|"reads session"| node_media
node_context -->|"lists approvals"| node_actions
node_context -->|"reads snapshot"| node_state_store
node_controller -->|"stores conversations"| node_state_store
node_controller -->|"proposes actions"| node_actions
node_controller -->|"manages memories"| node_memory
node_controller -->|"manages profile"| node_profile_data
node_controller -->|"manages keys"| node_credentials
node_controller -->|"gets system data"| node_system
node_controller -->|"gets runtime"| node_runtime
node_controller -->|"manages calendar"| node_calendar
node_controller -->|"controls playback"| node_media
node_controller -->|"accesses workspace"| node_workspace
node_actions -->|"stores actions"| node_state_store
node_actions -->|"executes remember"| node_memory
node_actions -->|"writes files"| node_workspace
node_actions -->|"sets control"| node_sys_controls
node_system -->|"reads controls"| node_sys_controls
node_sys_controls -->|"runs script"| node_control_script
node_media -->|"runs script"| node_media_script
node_control_script -->|"controls radios"| node_windows
node_media_script -->|"reads and controls"| node_windows
node_system -.->|"inspects metadata"| node_phone_link
node_calendar -.->|"uses CalDAV"| node_icloud
node_dashboard -.->|"embeds player"| node_music_providers

click node_dashboard "https://github.com/treyu23/operatingsystemchatgpt/blob/main/frontend/src/App.jsx"
click node_controller "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/web/AssistantController.java"
click node_agent "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/agent/OpenAiAgent.java"
click node_context "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/DashboardContextService.java"
click node_actions "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ActionService.java"
click node_state_store "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/store/StateStore.java"
click node_memory "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/MemoryService.java"
click node_profile_data "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ProfileDataService.java"
click node_credentials "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ProfileCredentialStore.java"
click node_system "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/SystemService.java"
click node_sys_controls "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/WindowsSystemControlService.java"
click node_runtime "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/RuntimeService.java"
click node_workspace "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/WorkspaceService.java"
click node_media "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/WindowsMediaSessionService.java"
click node_calendar "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ICloudCalendarService.java"
click node_phone "https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/SystemService.java"
click node_media_script "https://github.com/treyu23/operatingsystemchatgpt/blob/main/scripts/windows-media-session.ps1"
click node_control_script "https://github.com/treyu23/operatingsystemchatgpt/blob/main/scripts/windows-system-control.ps1"

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_user toneBlue
class node_controller,node_agent,node_context,node_actions toneAmber
class node_state_store,node_memory,node_profile_data,node_credentials,node_openai toneMint
class node_system,node_sys_controls,node_runtime,node_workspace,node_media_script,node_control_script toneRose
class node_media,node_calendar,node_phone,node_icloud,node_music_providers,node_phone_link,node_windows toneIndigo
```

## Components

### Dashboard

- [React dashboard](https://github.com/treyu23/operatingsystemchatgpt/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`

### API and assistant

- [API controller](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/web/AssistantController.java): `backend/src/main/java/com/localassistant/os/web/AssistantController.java`
- [OpenAI agent](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/agent/OpenAiAgent.java): `backend/src/main/java/com/localassistant/os/agent/OpenAiAgent.java`
- [Prompt context](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/DashboardContextService.java): `backend/src/main/java/com/localassistant/os/service/DashboardContextService.java`
- [Approval actions](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ActionService.java): `backend/src/main/java/com/localassistant/os/service/ActionService.java`

### Profiles and state

- [Local state](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/store/StateStore.java): `backend/src/main/java/com/localassistant/os/store/StateStore.java`
- [Memory service](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/MemoryService.java): `backend/src/main/java/com/localassistant/os/service/MemoryService.java`
- [Profile data](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ProfileDataService.java): `backend/src/main/java/com/localassistant/os/service/ProfileDataService.java`
- [Protected credentials](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ProfileCredentialStore.java): `backend/src/main/java/com/localassistant/os/service/ProfileCredentialStore.java`

### Windows desktop

- [System inspection](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/SystemService.java): `backend/src/main/java/com/localassistant/os/service/SystemService.java`
- [Radio controls](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/WindowsSystemControlService.java): `backend/src/main/java/com/localassistant/os/service/WindowsSystemControlService.java`
- [Runtime controls](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/RuntimeService.java): `backend/src/main/java/com/localassistant/os/service/RuntimeService.java`
- [Workspace access](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/WorkspaceService.java): `backend/src/main/java/com/localassistant/os/service/WorkspaceService.java`
- [Media controls script](https://github.com/treyu23/operatingsystemchatgpt/blob/main/scripts/windows-media-session.ps1): `scripts/windows-media-session.ps1`
- [Radio control script](https://github.com/treyu23/operatingsystemchatgpt/blob/main/scripts/windows-system-control.ps1): `scripts/windows-system-control.ps1`

### Connected services

- [Media session](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/WindowsMediaSessionService.java): `backend/src/main/java/com/localassistant/os/service/WindowsMediaSessionService.java`
- [iCloud Calendar](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/ICloudCalendarService.java): `backend/src/main/java/com/localassistant/os/service/ICloudCalendarService.java`
- [Phone Link status](https://github.com/treyu23/operatingsystemchatgpt/blob/main/backend/src/main/java/com/localassistant/os/service/SystemService.java): `backend/src/main/java/com/localassistant/os/service/SystemService.java`

### Other components

- **User**
- **OpenAI API**
- **iCloud CalDAV**
- **Music web embeds**
- **Phone Link**
- **Windows**

## Connections

- User → React dashboard: uses
- React dashboard → API controller: calls API
- API controller → OpenAI agent: requests reply
- OpenAI agent → OpenAI API: sends prompt
- OpenAI agent → Prompt context: gets context
- Prompt context → System inspection: reads status
- Prompt context → Runtime controls: reads status
- Prompt context → iCloud Calendar: reads events
- Prompt context → Media session: reads session
- Prompt context → Approval actions: lists approvals
- Prompt context → Local state: reads snapshot
- API controller → Local state: stores conversations
- API controller → Approval actions: proposes actions
- API controller → Memory service: manages memories
- API controller → Profile data: manages profile
- API controller → Protected credentials: manages keys
- API controller → System inspection: gets system data
- API controller → Runtime controls: gets runtime
- API controller → iCloud Calendar: manages calendar
- API controller → Media session: controls playback
- API controller → Workspace access: accesses workspace
- Approval actions → Local state: stores actions
- Approval actions → Memory service: executes remember
- Approval actions → Workspace access: writes files
- Approval actions → Radio controls: sets control
- System inspection → Radio controls: reads controls
- Radio controls → Radio control script: runs script
- Media session → Media controls script: runs script
- Radio control script → Windows: controls radios
- Media controls script → Windows: reads and controls
- System inspection → Phone Link: inspects metadata
- iCloud Calendar → iCloud CalDAV: uses CalDAV
- React dashboard → Music web embeds: embeds player
