目标
在 Studio 前端实现一个固定在右侧、全局可见、可收缩/展开的 AI Chat 面板(参考 VS Code Copilot Chat),支持流式对话体验。
功能需求
- 右侧全局浮动 chat 面板,收起时贴边 48px 展开按钮,展开宽度约 380px
- 支持快捷键
Ctrl+Shift+I / Cmd+Shift+I 展开/收起 panel
- 支持 stream 输出,对接
/api/v1/ai/chat(Vercel Data Stream Protocol)
- 消息历史持久化到 localStorage(会话内容仅前端留存)
- UI合并���
<SidebarProvider> 下,与左侧 sidebar 并列
- Chat 直接采用
@ai-sdk/react/useChat,无需自定义后端协议,需在 package.json 增加依赖(ai、@ai-sdk/react)
- 仅实现基础文本 chat(不含Agent,不含NLQ、元数据等),后续支持独立 issue 跟踪
实施建议与架构
- 主要新增
components/AiChatPanel.tsx,负责面板 UI 与状态
hooks/use-ai-chat-panel.ts 用于存储面板显示/隐藏、快捷键和消息持久化逻辑
- 需适配项目 tailwind 变量(右侧阴影、暗色/亮色切换、动画)
- Chat 列表和输入框 UX 参照 VS Code Copilot Chat
- 需完善基础单测
参考
受影响范围
apps/studio/src/App.tsx (入口挂载 ChatPanel)
apps/studio/src/components/(新增 AiChatPanel 组件)
apps/studio/package.json(新增依赖)
目标
在 Studio 前端实现一个固定在右侧、全局可见、可收缩/展开的 AI Chat 面板(参考 VS Code Copilot Chat),支持流式对话体验。
功能需求
Ctrl+Shift+I/Cmd+Shift+I展开/收起 panel/api/v1/ai/chat(Vercel Data Stream Protocol)<SidebarProvider>下,与左侧 sidebar 并列@ai-sdk/react/useChat,无需自定义后端协议,需在package.json增加依赖(ai、@ai-sdk/react)实施建议与架构
components/AiChatPanel.tsx,负责面板 UI 与状态hooks/use-ai-chat-panel.ts用于存储面板显示/隐藏、快捷键和消息持久化逻辑参考
受影响范围
apps/studio/src/App.tsx(入口挂载 ChatPanel)apps/studio/src/components/(新增 AiChatPanel 组件)apps/studio/package.json(新增依赖)