# yydye/internalbeyond architecture

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

- Interactive diagram: https://gitdiagram.com/yydye/internalbeyond
- Repository: https://github.com/yydye/internalbeyond

## Overview

Project-IB is a local-first personal AI companion spanning desktop/web, local services, and an Android Home Node client. Its principal workflow is a user interacting with a companion feature, which may call a configured AI provider and persist or synchronize personal data locally. The graph preserves documented product areas and separates the Home Node, Bridge, Active scheduler, and optional work-mode runtime. Some capability links come from the README; unsampled internals are represented only where the tree supports a path.

Main entry points: [`apps`](https://github.com/yydye/internalbeyond/tree/master/apps) (Desktop / web), [`services/home-node-service.js`](https://github.com/yydye/internalbeyond/blob/master/services/home-node-service.js) (Home Node service), [`services/active-message-service.js`](https://github.com/yydye/internalbeyond/blob/master/services/active-message-service.js) (Active messages), [`services/ib-bridge-service.js`](https://github.com/yydye/internalbeyond/blob/master/services/ib-bridge-service.js) (Bridge API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User experiences"]
  node_desktop["Desktop / web"]
  node_room["Room interactions"]
  node_chat["Chat and roles<br/>[model-client.js]"]
  node_social["Social network<br/>[moments.js]"]
end

subgraph group_node["Home Node"]
  node_memory["Long-term memory"]
  node_home["Home Node service"]
  node_mobilegateway["Mobile gateway<br/>[mobile-gateway.js]"]
  node_chatstore[("Chat records<br/>[chat-store.js]")]
  node_economy[("Agent economy<br/>[economy-store.js]")]
  node_qq["QQ bot integration"]
end

subgraph group_services["Local services"]
  node_bridge["Bridge API"]
  node_routes["HTTP routes<br/>[routes.js]"]
  node_voice["Voice services<br/>[voice-runtime.js]"]
  node_active["Active messages"]
  node_scheduler["Proactive scheduler<br/>[scheduler.js]"]
  node_model["AI provider client<br/>[model-client.js]"]
end

subgraph group_work["Work mode"]
  node_workhost["Work-mode host"]
  node_workui["Work-mode interface<br/>[client.js]"]
end

subgraph group_mobile["Android client"]
  node_android["Android app<br/>[MainActivity.kt]"]
  node_session["Pairing and session"]
  node_clientapi["Home Node API client<br/>[HomeNodeClient.kt]"]
  node_sync["Change synchronization<br/>[SyncEngine.kt]"]
  node_cache[("Local cache<br/>[LocalCache.kt]")]
end

node_user(("User"))
node_provider(("Configured AI provider"))

node_user -->|"uses"| node_desktop
node_desktop -->|"opens"| node_room
node_desktop -->|"starts conversation"| node_chat
node_desktop -->|"opens feed"| node_social
node_chat -->|"requests generation"| node_provider
node_desktop -->|"uses local services"| node_home
node_home -->|"persists chat"| node_chatstore
node_home -->|"assembles memory"| node_memory
node_home -->|"assembles gateway"| node_mobilegateway
node_home -->|"provides economy"| node_economy
node_desktop -->|"uses local API"| node_bridge
node_bridge -->|"dispatches requests"| node_routes
node_bridge -->|"provides voice"| node_voice
node_desktop -->|"configures proactive messages"| node_active
node_active -->|"runs schedules"| node_scheduler
node_active -->|"generates messages"| node_model
node_active -->|"schedules social activity"| node_social
node_desktop -->|"authorizes work runs"| node_workhost
node_workui -.->|"uses host"| node_workhost
node_user -->|"uses"| node_android
node_android -->|"manages connection"| node_session
node_session -->|"calls API"| node_clientapi
node_android -.->|"synchronizes changes"| node_sync
node_sync -->|"requests changes"| node_clientapi
node_sync -->|"updates cache"| node_cache
node_clientapi -->|"calls Home Node"| node_mobilegateway
node_home -.->|"supports bot transport"| node_qq

click node_desktop "https://github.com/yydye/internalbeyond/tree/master/apps"
click node_room "https://github.com/yydye/internalbeyond/tree/master/game"
click node_chat "https://github.com/yydye/internalbeyond/blob/master/active/model-client.js"
click node_social "https://github.com/yydye/internalbeyond/blob/master/active/moments.js"
click node_memory "https://github.com/yydye/internalbeyond/blob/master/services/home-node/memory-retrieval.js"
click node_home "https://github.com/yydye/internalbeyond/blob/master/services/home-node-service.js"
click node_mobilegateway "https://github.com/yydye/internalbeyond/blob/master/services/home-node/mobile-gateway.js"
click node_chatstore "https://github.com/yydye/internalbeyond/blob/master/services/home-node/chat-store.js"
click node_economy "https://github.com/yydye/internalbeyond/blob/master/services/home-node/economy-store.js"
click node_bridge "https://github.com/yydye/internalbeyond/blob/master/services/ib-bridge-service.js"
click node_routes "https://github.com/yydye/internalbeyond/blob/master/bridge/routes.js"
click node_voice "https://github.com/yydye/internalbeyond/blob/master/bridge/voice-runtime.js"
click node_active "https://github.com/yydye/internalbeyond/blob/master/services/active-message-service.js"
click node_scheduler "https://github.com/yydye/internalbeyond/blob/master/active/scheduler.js"
click node_model "https://github.com/yydye/internalbeyond/blob/master/active/model-client.js"
click node_workhost "https://github.com/yydye/internalbeyond/blob/master/services/home-node/dsh-host-adapter.js"
click node_workui "https://github.com/yydye/internalbeyond/blob/master/runtime/dsh-native-work-ui/client.js"
click node_android "https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/app/MainActivity.kt"
click node_session "https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/repository/SessionRepository.kt"
click node_clientapi "https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/api/HomeNodeClient.kt"
click node_sync "https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/sync/SyncEngine.kt"
click node_cache "https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/cache/LocalCache.kt"
click node_qq "https://github.com/yydye/internalbeyond/blob/master/services/home-node/qq-official-manager.js"

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_desktop,node_room,node_chat,node_social,node_user toneBlue
class node_memory,node_home,node_mobilegateway,node_chatstore,node_economy,node_qq toneAmber
class node_bridge,node_routes,node_voice,node_active,node_scheduler,node_model toneMint
class node_workhost,node_workui toneRose
class node_android,node_session,node_clientapi,node_sync,node_cache,node_provider toneIndigo
```

## Components

### User experiences

- [Desktop / web](https://github.com/yydye/internalbeyond/tree/master/apps): `apps`
- [Room interactions](https://github.com/yydye/internalbeyond/tree/master/game): `game`
- [Chat and roles](https://github.com/yydye/internalbeyond/blob/master/active/model-client.js): `active/model-client.js`
- [Social network](https://github.com/yydye/internalbeyond/blob/master/active/moments.js): `active/moments.js`

### Home Node

- [Long-term memory](https://github.com/yydye/internalbeyond/blob/master/services/home-node/memory-retrieval.js): `services/home-node/memory-retrieval.js`
- [Home Node service](https://github.com/yydye/internalbeyond/blob/master/services/home-node-service.js): `services/home-node-service.js`
- [Mobile gateway](https://github.com/yydye/internalbeyond/blob/master/services/home-node/mobile-gateway.js): `services/home-node/mobile-gateway.js`
- [Chat records](https://github.com/yydye/internalbeyond/blob/master/services/home-node/chat-store.js): `services/home-node/chat-store.js`
- [Agent economy](https://github.com/yydye/internalbeyond/blob/master/services/home-node/economy-store.js): `services/home-node/economy-store.js`
- [QQ bot integration](https://github.com/yydye/internalbeyond/blob/master/services/home-node/qq-official-manager.js): `services/home-node/qq-official-manager.js`

### Local services

- [Bridge API](https://github.com/yydye/internalbeyond/blob/master/services/ib-bridge-service.js): `services/ib-bridge-service.js`
- [HTTP routes](https://github.com/yydye/internalbeyond/blob/master/bridge/routes.js): `bridge/routes.js`
- [Voice services](https://github.com/yydye/internalbeyond/blob/master/bridge/voice-runtime.js): `bridge/voice-runtime.js`
- [Active messages](https://github.com/yydye/internalbeyond/blob/master/services/active-message-service.js): `services/active-message-service.js`
- [Proactive scheduler](https://github.com/yydye/internalbeyond/blob/master/active/scheduler.js): `active/scheduler.js`
- [AI provider client](https://github.com/yydye/internalbeyond/blob/master/active/model-client.js): `active/model-client.js`

### Work mode

- [Work-mode host](https://github.com/yydye/internalbeyond/blob/master/services/home-node/dsh-host-adapter.js): `services/home-node/dsh-host-adapter.js`
- [Work-mode interface](https://github.com/yydye/internalbeyond/blob/master/runtime/dsh-native-work-ui/client.js): `runtime/dsh-native-work-ui/client.js`

### Android client

- [Android app](https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/app/MainActivity.kt): `android/app/src/main/java/com/internalbeyond/mobile/app/MainActivity.kt`
- [Pairing and session](https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/repository/SessionRepository.kt): `android/app/src/main/java/com/internalbeyond/mobile/data/repository/SessionRepository.kt`
- [Home Node API client](https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/api/HomeNodeClient.kt): `android/app/src/main/java/com/internalbeyond/mobile/data/api/HomeNodeClient.kt`
- [Change synchronization](https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/sync/SyncEngine.kt): `android/app/src/main/java/com/internalbeyond/mobile/data/sync/SyncEngine.kt`
- [Local cache](https://github.com/yydye/internalbeyond/blob/master/android/app/src/main/java/com/internalbeyond/mobile/data/cache/LocalCache.kt): `android/app/src/main/java/com/internalbeyond/mobile/data/cache/LocalCache.kt`

### Other components

- **User**
- **Configured AI provider**

## Connections

- User → Desktop / web: uses (evidence: `README.md`)
- Desktop / web → Room interactions: opens (evidence: `README.md`)
- Desktop / web → Chat and roles: starts conversation (evidence: `README.md`)
- Desktop / web → Social network: opens feed (evidence: `README.md`)
- Chat and roles → Configured AI provider: requests generation (evidence: `README.md`)
- Desktop / web → Home Node service: uses local services (evidence: `README.md`)
- Home Node service → Chat records: persists chat (evidence: `services/home-node-service.js`)
- Home Node service → Long-term memory: assembles memory (evidence: `services/home-node-service.js`)
- Home Node service → Mobile gateway: assembles gateway (evidence: `services/home-node-service.js`)
- Home Node service → Agent economy: provides economy (evidence: `README.md`)
- Desktop / web → Bridge API: uses local API (evidence: `README.md`)
- Bridge API → HTTP routes: dispatches requests (evidence: `services/ib-bridge-service.js`)
- Bridge API → Voice services: provides voice (evidence: `services/ib-bridge-service.js`)
- Desktop / web → Active messages: configures proactive messages (evidence: `README.md`)
- Active messages → Proactive scheduler: runs schedules (evidence: `services/active-message-service.js`)
- Active messages → AI provider client: generates messages (evidence: `services/active-message-service.js`)
- Active messages → Social network: schedules social activity (evidence: `services/active-message-service.js`)
- Desktop / web → Work-mode host: authorizes work runs (evidence: `README.md`)
- Work-mode interface → Work-mode host: uses host
- User → Android app: uses (evidence: `README.md`)
- Android app → Pairing and session: manages connection
- Pairing and session → Home Node API client: calls API (evidence: `android/app/src/main/java/com/internalbeyond/mobile/data/repository/SessionRepository.kt`)
- Android app → Change synchronization: synchronizes changes
- Change synchronization → Home Node API client: requests changes (evidence: `android/app/src/main/java/com/internalbeyond/mobile/data/sync/SyncEngine.kt`)
- Change synchronization → Local cache: updates cache (evidence: `android/app/src/main/java/com/internalbeyond/mobile/data/sync/SyncEngine.kt`)
- Home Node API client → Mobile gateway: calls Home Node (evidence: `README.md`)
- Home Node service → QQ bot integration: supports bot transport (evidence: `services/home-node-service.js`)
