# todayyuec/luckytri architecture

> Architecture diagram of the GitHub repository todayyuec/luckytri, 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/todayyuec/luckytri
- Repository: https://github.com/todayyuec/luckytri

## Overview

LuckyTri is a local, persistent conversational companion: messages arrive through OneBot, are interpreted and answered by the conversation runtime, while a separate mind subsystem sustains identity, relationships, attention, and life over time. The WebUI exposes conversations and the companion’s records, settings, and runtime state. README documents these capabilities; the excerpts show API mounting, mind composition, model request handling, and selected frontend behavior, but do not expose all runtime wiring, so uncertain internal links are omitted.

Main entry points: [`studio-web/src/api.ts`](https://github.com/todayyuec/luckytri/blob/main/studio-web/src/api.ts) (UI API client), [`server/app.js`](https://github.com/todayyuec/luckytri/blob/main/server/app.js) (HTTP application), [`server/core/orchestrator.js`](https://github.com/todayyuec/luckytri/blob/main/server/core/orchestrator.js) (Conversation orchestration), [`server/channels/gateway.js`](https://github.com/todayyuec/luckytri/blob/main/server/channels/gateway.js) (Channel gateway)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_conversation["Conversation runtime"]
  node_gateway["Channel gateway<br/>[gateway.js]"]
  node_orchestrator["Conversation orchestration<br/>[orchestrator.js]"]
  node_response["Response generation"]
  node_models["Model requests<br/>[model-manager.js]"]
  node_sessions["Sessions and messages<br/>[sessions.js]"]
end

subgraph group_mind["Persistent mind"]
  node_mind["Mind coordination<br/>[index.js]"]
  node_nature["Identity and nature<br/>[nature.js]"]
  node_attention["Attention and choice<br/>[attention.js]"]
  node_relationships["People and bonds<br/>[bonds.js]"]
  node_self["Self and thoughts<br/>[self.js]"]
  node_life["Time and continuity<br/>[life.js]"]
end

subgraph group_knowledge["Knowledge and vision"]
  node_knowledge["Knowledge manager<br/>[manager.js]"]
  node_vision["Image understanding<br/>[vision-manager.js]"]
end

subgraph group_management["Management API"]
  node_app["HTTP application<br/>[app.js]"]
  node_mindapi["Mind API<br/>[api.js]"]
  node_knowledgeapi["Knowledge API<br/>[api.js]"]
  node_coreapi["Conversation API<br/>[api.js]"]
  node_studioapi["Studio settings API<br/>[settings.js]"]
  node_managementapi["Management API<br/>[management.js]"]
end

subgraph group_interface["Web interface"]
  node_ui["Studio application<br/>[App.vue]"]
  node_uiapi["UI API client<br/>[api.ts]"]
  node_chats["Conversation pages"]
  node_heart["Inner-life pages"]
  node_people["People pages"]
  node_lifeui["Life pages"]
  node_memoryui["Memory pages"]
  node_systemui["System pages"]
end

node_user(("Chat participant"))
node_onebot{{"OneBot 11 endpoint"}}
node_store[("Local data store<br/>[store.js]")]

node_user -->|"sends messages"| node_onebot
node_onebot -->|"delivers events"| node_gateway
node_gateway -->|"routes messages"| node_orchestrator
node_orchestrator -->|"requests reply"| node_response
node_response -->|"requests completion"| node_models
node_models -->|"returns completion"| node_response
node_response -->|"returns reply"| node_orchestrator
node_orchestrator -->|"dispatches reply"| node_gateway
node_gateway -->|"sends reply"| node_onebot
node_app -->|"mounts routes"| node_coreapi
node_app -->|"mounts routes"| node_mindapi
node_app -->|"mounts routes"| node_knowledgeapi
node_app -->|"mounts routes"| node_studioapi
node_app -->|"mounts routes"| node_managementapi
node_ui -->|"uses client"| node_uiapi
node_uiapi -->|"calls API"| node_app
node_mindapi -->|"serves mind data"| node_mind
node_knowledgeapi -->|"serves knowledge"| node_knowledge
node_coreapi -->|"serves conversations"| node_orchestrator
node_chats -->|"requests data"| node_uiapi
node_heart -->|"requests data"| node_uiapi
node_people -->|"requests data"| node_uiapi
node_lifeui -->|"requests data"| node_uiapi
node_memoryui -->|"requests data"| node_uiapi
node_systemui -->|"requests data"| node_uiapi

click node_gateway "https://github.com/todayyuec/luckytri/blob/main/server/channels/gateway.js"
click node_orchestrator "https://github.com/todayyuec/luckytri/blob/main/server/core/orchestrator.js"
click node_response "https://github.com/todayyuec/luckytri/blob/main/server/core/response-generator.js"
click node_models "https://github.com/todayyuec/luckytri/blob/main/server/core/model-manager.js"
click node_sessions "https://github.com/todayyuec/luckytri/blob/main/server/core/sessions.js"
click node_mind "https://github.com/todayyuec/luckytri/blob/main/server/mind/index.js"
click node_nature "https://github.com/todayyuec/luckytri/blob/main/server/mind/nature.js"
click node_attention "https://github.com/todayyuec/luckytri/blob/main/server/mind/attention.js"
click node_relationships "https://github.com/todayyuec/luckytri/blob/main/server/mind/bonds.js"
click node_self "https://github.com/todayyuec/luckytri/blob/main/server/mind/self.js"
click node_life "https://github.com/todayyuec/luckytri/blob/main/server/mind/life.js"
click node_knowledge "https://github.com/todayyuec/luckytri/blob/main/server/knowledge/manager.js"
click node_vision "https://github.com/todayyuec/luckytri/blob/main/server/core/vision-manager.js"
click node_store "https://github.com/todayyuec/luckytri/blob/main/server/store.js"
click node_app "https://github.com/todayyuec/luckytri/blob/main/server/app.js"
click node_mindapi "https://github.com/todayyuec/luckytri/blob/main/server/mind/api.js"
click node_knowledgeapi "https://github.com/todayyuec/luckytri/blob/main/server/knowledge/api.js"
click node_coreapi "https://github.com/todayyuec/luckytri/blob/main/server/core/api.js"
click node_studioapi "https://github.com/todayyuec/luckytri/blob/main/server/studio/settings.js"
click node_managementapi "https://github.com/todayyuec/luckytri/blob/main/server/studio/management.js"
click node_ui "https://github.com/todayyuec/luckytri/blob/main/studio-web/src/App.vue"
click node_uiapi "https://github.com/todayyuec/luckytri/blob/main/studio-web/src/api.ts"
click node_chats "https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/chats"
click node_heart "https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/heart"
click node_people "https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/people"
click node_lifeui "https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/life"
click node_memoryui "https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/memory"
click node_systemui "https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/system"

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_gateway,node_orchestrator,node_response,node_models,node_sessions toneBlue
class node_mind,node_nature,node_attention,node_relationships,node_self,node_life,node_store toneAmber
class node_knowledge,node_vision toneMint
class node_app,node_mindapi,node_knowledgeapi,node_coreapi,node_studioapi,node_managementapi toneRose
class node_ui,node_uiapi,node_chats,node_heart,node_people,node_lifeui,node_memoryui,node_systemui,node_user,node_onebot toneIndigo
```

## Components

### Conversation runtime

- [Channel gateway](https://github.com/todayyuec/luckytri/blob/main/server/channels/gateway.js): `server/channels/gateway.js`
- [Conversation orchestration](https://github.com/todayyuec/luckytri/blob/main/server/core/orchestrator.js): `server/core/orchestrator.js`
- [Response generation](https://github.com/todayyuec/luckytri/blob/main/server/core/response-generator.js): `server/core/response-generator.js`
- [Model requests](https://github.com/todayyuec/luckytri/blob/main/server/core/model-manager.js): `server/core/model-manager.js`
- [Sessions and messages](https://github.com/todayyuec/luckytri/blob/main/server/core/sessions.js): `server/core/sessions.js`

### Persistent mind

- [Mind coordination](https://github.com/todayyuec/luckytri/blob/main/server/mind/index.js): `server/mind/index.js`
- [Identity and nature](https://github.com/todayyuec/luckytri/blob/main/server/mind/nature.js): `server/mind/nature.js`
- [Attention and choice](https://github.com/todayyuec/luckytri/blob/main/server/mind/attention.js): `server/mind/attention.js`
- [People and bonds](https://github.com/todayyuec/luckytri/blob/main/server/mind/bonds.js): `server/mind/bonds.js`
- [Self and thoughts](https://github.com/todayyuec/luckytri/blob/main/server/mind/self.js): `server/mind/self.js`
- [Time and continuity](https://github.com/todayyuec/luckytri/blob/main/server/mind/life.js): `server/mind/life.js`

### Knowledge and vision

- [Knowledge manager](https://github.com/todayyuec/luckytri/blob/main/server/knowledge/manager.js): `server/knowledge/manager.js`
- [Image understanding](https://github.com/todayyuec/luckytri/blob/main/server/core/vision-manager.js): `server/core/vision-manager.js`

### Management API

- [HTTP application](https://github.com/todayyuec/luckytri/blob/main/server/app.js): `server/app.js`
- [Mind API](https://github.com/todayyuec/luckytri/blob/main/server/mind/api.js): `server/mind/api.js`
- [Knowledge API](https://github.com/todayyuec/luckytri/blob/main/server/knowledge/api.js): `server/knowledge/api.js`
- [Conversation API](https://github.com/todayyuec/luckytri/blob/main/server/core/api.js): `server/core/api.js`
- [Studio settings API](https://github.com/todayyuec/luckytri/blob/main/server/studio/settings.js): `server/studio/settings.js`
- [Management API](https://github.com/todayyuec/luckytri/blob/main/server/studio/management.js): `server/studio/management.js`

### Web interface

- [Studio application](https://github.com/todayyuec/luckytri/blob/main/studio-web/src/App.vue): `studio-web/src/App.vue`
- [UI API client](https://github.com/todayyuec/luckytri/blob/main/studio-web/src/api.ts): `studio-web/src/api.ts`
- [Conversation pages](https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/chats): `studio-web/src/pages/chats`
- [Inner-life pages](https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/heart): `studio-web/src/pages/heart`
- [People pages](https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/people): `studio-web/src/pages/people`
- [Life pages](https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/life): `studio-web/src/pages/life`
- [Memory pages](https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/memory): `studio-web/src/pages/memory`
- [System pages](https://github.com/todayyuec/luckytri/tree/main/studio-web/src/pages/system): `studio-web/src/pages/system`

### Other components

- **Chat participant**
- **OneBot 11 endpoint**
- [Local data store](https://github.com/todayyuec/luckytri/blob/main/server/store.js): `server/store.js`

## Connections

- Chat participant → OneBot 11 endpoint: sends messages
- OneBot 11 endpoint → Channel gateway: delivers events
- Channel gateway → Conversation orchestration: routes messages
- Conversation orchestration → Response generation: requests reply
- Response generation → Model requests: requests completion
- Model requests → Response generation: returns completion
- Response generation → Conversation orchestration: returns reply
- Conversation orchestration → Channel gateway: dispatches reply
- Channel gateway → OneBot 11 endpoint: sends reply
- HTTP application → Conversation API: mounts routes
- HTTP application → Mind API: mounts routes
- HTTP application → Knowledge API: mounts routes
- HTTP application → Studio settings API: mounts routes
- HTTP application → Management API: mounts routes
- Studio application → UI API client: uses client
- UI API client → HTTP application: calls API
- Mind API → Mind coordination: serves mind data
- Knowledge API → Knowledge manager: serves knowledge
- Conversation API → Conversation orchestration: serves conversations
- Conversation pages → UI API client: requests data
- Inner-life pages → UI API client: requests data
- People pages → UI API client: requests data
- Life pages → UI API client: requests data
- Memory pages → UI API client: requests data
- System pages → UI API client: requests data
