3.8 KiB
3.8 KiB
Tauri / Web Reference Host 源码导航
src/ 是 LineUp 的前端实现目录。可以把它理解为三层协作:Runtime 负责连接、状态、
存储和恢复;Chat 是用户首先看见的聊天功能;Tauri 或浏览器则是装载这套程序的运行外壳。
同一份源码既可放进正式桌面窗口,也可在浏览器中用于开发和验证。
main.ts 是应用启动时的装配入口:它把 Host 侧实现、LineUpRuntime 和默认 Core App
接起来。它不负责网络收发、消息存储、同步循环或原始 Agent 消息解析;这些都由 Runtime
统一管理。
src/
├── main.ts # 启动装配入口:连接 Tauri/Web Host、Runtime 与默认 App
├── core-apps/
│ └── chat/ # 第一个可信 Core App
│ ├── chat-app-host.ts # Chat 的 Host 装配器:样式、Shell、Renderer 与 SDK
│ ├── chat-shell.ts # Chat 的 DOM Shell
│ ├── trusted-dom-renderers.ts # 已验证消息 → 可信 DOM
│ ├── renderer-registry.ts # Chat Renderer 分派
│ └── styles/ # Chat 专属样式
└── runtime/
├── app-management/ # Core App Registry、Chat SDK、App Host
├── artifacts/ # Artifact 元数据与短生命周期内容缓存
├── capabilities/ # Capability Registry、状态机、审计与执行器
├── communication/ # AppServer Transport
├── coordination/ # Runtime、Kernel、scope 路由、Tool/Task 状态
├── inventory/ # Agent 可见 Client/Tool Inventory
├── persistence/ # Conversation Store、Outbox、App Inbox
├── protocol/ # LineUp v1 解码与 golden fixture
└── surfaces/ # Surface Registry、实例、Bundle 与隔离 Host
谁可以依赖谁
core-apps/chat ──ChatRuntimeSDK──► runtime/app-management
│
Host adapters ───────────────► runtime/coordination/LineUpRuntime
│
communication · persistence · protocol · capabilities
│
surfaces / inventory / artifacts
- App 不直接导入
communication、persistence或原始协议解码模块;Chat 通过ChatRuntimeSDK接收已筛选的状态、消息和 Inbox,并以 Runtime Action 发起用户动作。 简单说,Chat 可以向 Runtime 说“请发送这段文字”,但不能自己连服务器或改数据库。 CoreAppRegistry决定默认启动哪个应用;CoreAppHostRegistry决定如何挂载这个应用。 当前注册的实现仍是chat,但main.ts不再直接导入 Chat 的样式、Renderer 或 DOM Shell。- Runtime 通过
openApp(app_scope)打开对应的 SDK 投影;openChatApp()只作为旧调用方的 兼容别名,新的 Core App Host 应使用注册表作用域打开 SDK。 runtime/coordination/lineup-runtime.ts是 Transport、Store、sync loop 和 outbox 的唯一所有者。- 每个模块的测试与实现同目录放置;
runtime/protocol/golden/保存兼容协议 fixture。 @/指向src/,由tsconfig.json与vite.config.ts共同配置。新增代码应使用该 别名,避免跨层的相对路径依赖。
未来新增 voice、whiteboard 等 Core/Installed App 时,应给它们各自的目录和 SDK
投影;不能把页面、网络连接或持久化逻辑重新堆回 main.ts。这样新应用只增加自己的体验,
不会破坏已有聊天和连接逻辑。