plugin-webui-client — WebUI 前端
包名: @aalis/plugin-webui-client
源码: packages/plugin-webui-client/src/index.ts
概述
WebUI 前端静态资源挂载插件,将打包好的 React 前端文件挂载到 webui-server 的 Express 静态目录。
插件声明
typescript
meta.name = '@aalis/plugin-webui-client'
meta.provides = ['webui-client']
meta.inject = { required: ['webui-server'] }配置
无配置项。
工作方式
- 计算
../client/dist路径(相对于编译后的 JS 文件位置) - 调用
webui-server的setClientDir()将前端打包产物挂载到 Express - 对外提供
webui-client服务(暴露getClientDir())
前端技术栈
前端源码位于 packages/plugin-webui-client/src/:
- React + TypeScript
- Vite 构建
- WebSocket 实时通信(useWebSocket hook)
前端页面
| 页面 | 说明 |
|---|---|
| Chat | 实时对话、流式输出、内联工具调用展示、待办事项面板 |
| Plugins | 插件列表、启用/禁用、配置编辑 |
| Platforms | 平台连接状态监控 |
| Files | 文件管理器(拖拽上传、下载、预览) |
| Logs | 实时日志流 |
| DynamicPage | 插件注册的动态页面(技能库等) |
流恢复 (Stream Resume)
前端通过 stream_resume WebSocket 消息类型支持页面刷新后的流恢复。当用户刷新页面时,服务端将已缓冲的流式内容一次性推送,实现无缝续流体验。
动效系统
前端内置多种 CSS 动画:
msg-in— 消息入场(fade + 向上滑入)page-fade— 页面切换过渡modal-scale— 弹窗缩放入场fade-in— 通用淡入typingBounce— 打字指示器跳动cursor-blink— 光标闪烁pulse— 脉冲效果- 按钮
:active按压反馈(scale 0.97)