commit 152d5273a5b6fc582b057eeec5f758ae8f1f23c8
Author: Yoga <1836051468@qq.com>
Date: Fri Aug 7 13:56:25 2026 +0800
1
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..23dcb5e
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,19 @@
+# 页面标题
+VITE_APP_TITLE = 数智AI
+
+# 开发环境配置
+VITE_APP_ENV = 'development'
+
+# 管理系统/开发环境
+VITE_APP_BASE_API = '/dev-api'
+
+# 后端接口地址
+VITE_APP_BASE_URL = 'http://192.168.5.125:8000'
+
+# AnythingLLM API 密钥
+VITE_APP_ANYTHINGLLM_API_KEY = 'A3X9P8A-ZPK4K64-PDMVRB1-KJ5TXZT'
+
+# RAGFlow API 配置
+VITE_APP_RAGFLOW_API = 'http://192.168.5.125:3010'
+
+VITE_APP_RAGFLOW_API_KEY = 'ragflow-qxHWAR7qwBedQSRmc2tDtL4duwh3KSzE8md5t1Qodv0'
\ No newline at end of file
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..f1d028e
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,21 @@
+# 页面标题
+VITE_APP_TITLE = 数智AI
+
+# 生产环境配置
+VITE_APP_ENV = 'production'
+
+# 管理系统/生产环境
+VITE_APP_BASE_API = '/prod-api'
+
+# 是否在打包时开启压缩,支持 gzip 和 brotli
+VITE_BUILD_COMPRESS = gzip
+
+# 后端接口地址
+VITE_APP_BASE_URL = 'http://192.168.5.125:8000'
+
+# AnythingLLM API 密钥
+VITE_APP_ANYTHINGLLM_API_KEY = 'A3X9P8A-ZPK4K64-PDMVRB1-KJ5TXZT'
+
+# RAGFlow API 配置
+VITE_APP_RAGFLOW_API = 'http://192.168.5.125:3010'
+VITE_APP_RAGFLOW_API_KEY = 'ragflow-qxHWAR7qwBedQSRmc2tDtL4duwh3KSzE8md5t1Qodv0'
\ No newline at end of file
diff --git a/.env.staging b/.env.staging
new file mode 100644
index 0000000..b5288f6
--- /dev/null
+++ b/.env.staging
@@ -0,0 +1,21 @@
+# 页面标题
+VITE_APP_TITLE = 数智AI
+
+# 生产环境配置
+VITE_APP_ENV = 'staging'
+
+# 管理系统/生产环境
+VITE_APP_BASE_API = '/stage-api'
+
+# 是否在打包时开启压缩,支持 gzip 和 brotli
+VITE_BUILD_COMPRESS = gzip
+
+# 后端接口地址
+VITE_APP_BASE_URL = 'http://192.168.5.125:8000'
+
+# AnythingLLM API 密钥
+VITE_APP_ANYTHINGLLM_API_KEY = 'Bearer A3X9P8A-ZPK4K64-PDMVRB1-KJ5TXZT'
+
+# RAGFlow API 配置
+VITE_APP_RAGFLOW_API = 'http://192.168.5.125:3010'
+VITE_APP_RAGFLOW_API_KEY = 'ragflow-qxHWAR7qwBedQSRmc2tDtL4duwh3KSzE8md5t1Qodv0'
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..84ebbea
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+.DS_Store
+.claude
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+**/*.log
+
+tests/**/coverage/
+tests/e2e/reports
+selenium-debug.log
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.local
+
+package-lock.json
+yarn.lock
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..8564f29
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2018 RuoYi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c177bca
--- /dev/null
+++ b/README.md
@@ -0,0 +1,122 @@
+
+
+
+RuoYi v3.9.2
+基于SpringBoot+Vue3前后端分离的Java快速开发框架
+
+
+
+
+
+
+## 平台简介
+
+* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。
+* 配套后端代码仓库地址[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 或 [RuoYi-Vue-fast](https://gitcode.com/yangzongzhuan/RuoYi-Vue-fast) 版本。
+* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)
+
+# 版本对比
+
+RuoYi-Vue 前端项目的三个主要演进版本,方便你直观对比其技术栈差异(并行开发维护)。
+
+| 项目名称 | **RuoYi-Vue** | **RuoYi-Vue3** | **RuoYi-Vue3-TypeScript** |
+| :--- | :--- | :--- | :--- |
+| **前端框架** | Vue 2 | Vue 3 | Vue 3 |
+| **脚本语言** | JavaScript | JavaScript | TypeScript |
+| **构建工具** | Vue CLI | Vite | Vite |
+| **UI 组件库** | Element UI | Element Plus | Element Plus |
+| **状态管理** | Vuex | Pinia | Pinia |
+| **路由管理** | Vue Router 3 | Vue Router 4 | Vue Router 4 |
+| **核心特点** | 1. 技术栈经典稳定 2. 社区资料丰富 3. 当前维护重心已转移 | 1. 现代前端技术栈 2. 开发体验与性能更优 3. 官方主推的活跃版本 | 1. 类型加持,减少沟通成本 2. 开发时有提示,效率更高 3. 多人协作企业级开发项目 |
+| **仓库地址** | [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) | [RuoYi-Vue3](https://gitcode.com/yangzongzhuan/RuoYi-Vue3) | [RuoYi-Vue3-TypeScript](https://gitcode.com/yangzongzhuan/RuoYi-Vue3/tree/typescript) |
+
+## 前端运行
+
+```bash
+# 克隆项目
+git clone https://github.com/yangzongzhuan/RuoYi-Vue3.git
+
+# 进入项目目录
+cd RuoYi-Vue3
+
+# 安装依赖
+yarn --registry=https://registry.npmmirror.com
+
+# 启动服务
+yarn dev
+
+# 构建测试环境 yarn build:stage
+# 构建生产环境 yarn build:prod
+# 前端访问地址 http://localhost:80
+```
+
+## 内置功能
+
+1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
+2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
+3. 岗位管理:配置系统用户所属担任职务。
+4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
+5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
+6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
+7. 参数管理:对系统动态配置常用参数。
+8. 通知公告:系统通知公告信息发布维护。
+9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
+10. 登录日志:系统登录日志记录查询包含登录异常。
+11. 在线用户:当前系统中活跃用户状态监控。
+12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
+13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
+14. 系统接口:根据业务代码自动生成相关的api接口文档。
+15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
+16. 缓存监控:对系统的缓存信息查询,命令统计等。
+17. 在线构建器:拖动表单元素生成相应的HTML代码。
+18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
+
+## 在线体验
+
+- admin/admin123
+- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
+
+演示地址:http://vue.ruoyi.vip
+文档地址:http://doc.ruoyi.vip
+
+## 演示图
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## 前后端分离交流群
+
+QQ群: [](https://jq.qq.com/?_wv=1027&k=5bVB1og) [](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [](https://jq.qq.com/?_wv=1027&k=51G72yr) [](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [](https://jq.qq.com/?_wv=1027&k=SpyH2875) [](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=F58bgRa-Dp-rsQJThiJqIYv8t4-lWfXh&authKey=UmUs4CVG5OPA1whvsa4uSespOvyd8%2FAr9olEGaWAfdLmfKQk%2FVBp2YU3u2xXXt76&noverify=0&group_code=224622315) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Nxb2EQ5qozWa218Wbs7zgBnjLSNk_tVT&authKey=obBKXj6SBKgrFTJZx0AqQnIYbNOvBB2kmgwWvGhzxR67RoRr84%2Bus5OadzMcdJl5&noverify=0&group_code=287842588) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=numtK1M_I4eVd2Gvg8qtbuL8JgX42qNh&authKey=giV9XWMaFZTY%2FqPlmWbkB9g3fi0Ev5CwEtT9Tgei0oUlFFCQLDp4ozWRiVIzubIm&noverify=0&group_code=187944233) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=G6r5KGCaa3pqdbUSXNIgYloyb8e0_L0D&authKey=4w8tF1eGW7%2FedWn%2FHAypQksdrML%2BDHolQSx7094Agm7Luakj9EbfPnSTxSi2T1LQ&noverify=0&group_code=228578329) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=GsOo-OLz53J8y_9TPoO6XXSGNRTgbFxA&authKey=R7Uy%2Feq%2BZsoKNqHvRKhiXpypW7DAogoWapOawUGHokJSBIBIre2%2FoiAZeZBSLuBc&noverify=0&group_code=191164766) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=PmYavuzsOthVqfdAPbo4uAeIbu7Ttjgc&authKey=p52l8%2FXa4PS1JcEmS3VccKSwOPJUZ1ZfQ69MEKzbrooNUljRtlKjvsXf04bxNp3G&noverify=0&group_code=174569686) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=M9y5NjAl44lAL_Vh2crmEehZU_PMU6KS&authKey=ZSDz8hEREWSaPuxQV3gEwqGIaGjfRNnkB4rJjf0IvXhrSUGSGwQFmBA%2Boe8HFxyl&noverify=0&group_code=127358632) 点击按钮入群。
\ No newline at end of file
diff --git a/bin/build.bat b/bin/build.bat
new file mode 100644
index 0000000..ecbb454
--- /dev/null
+++ b/bin/build.bat
@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [Ϣ] Weḅdistļ
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+yarn build:prod
+
+pause
\ No newline at end of file
diff --git a/bin/package.bat b/bin/package.bat
new file mode 100644
index 0000000..f5b24e0
--- /dev/null
+++ b/bin/package.bat
@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [Ϣ] װWeḅnode_modulesļ
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+yarn --registry=https://registry.npmmirror.com
+
+pause
\ No newline at end of file
diff --git a/bin/run-web.bat b/bin/run-web.bat
new file mode 100644
index 0000000..d2fe397
--- /dev/null
+++ b/bin/run-web.bat
@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [Ϣ] ʹ Vite Web ̡
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+yarn dev
+
+pause
\ No newline at end of file
diff --git a/docs/superpowers/plans/2026-07-15-shuzhi-ai-chat-plan.md b/docs/superpowers/plans/2026-07-15-shuzhi-ai-chat-plan.md
new file mode 100644
index 0000000..3d7e828
--- /dev/null
+++ b/docs/superpowers/plans/2026-07-15-shuzhi-ai-chat-plan.md
@@ -0,0 +1,509 @@
+# 数智 AI 聊天页面实现计划
+
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
+
+**Goal:** 创建独立的「数智 AI」聊天页面,实现流式对话功能
+
+**Architecture:** 单文件 Vue 组件实现,组合式 API + ElementPlus 组件,左侧边栏 + 中间消息区 + 底部输入栏的三栏布局
+
+**Tech Stack:** Vue3 Composition API, ElementPlus, SCSS
+
+---
+
+## Task 1: 创建 frontend 目录结构
+
+**Files:**
+- 创建: `src/views/frontend/` (目录)
+
+- [ ] **Step 1: 创建目录**
+
+命令: `mkdir -p src/views/frontend`
+
+---
+
+## Task 2: 创建主页面组件 index.vue
+
+**Files:**
+- 创建: `src/views/frontend/index.vue`
+
+- [ ] **Step 1: 编写页面基础模板结构**
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
已处理 1m
+
{{ msg.content }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+- [ ] **Step 2: 编写 script setup 部分**
+
+```javascript
+
+```
+
+- [ ] **Step 3: 编写样式部分**
+
+```scss
+
+```
+
+---
+
+## Task 3: 添加路由配置
+
+**Files:**
+- 修改: `src/router/index.js` (在 dynamicRoutes 数组末尾添加)
+
+- [ ] **Step 1: 添加路由配置**
+
+在 `dynamicRoutes` 数组末尾添加:
+
+```javascript
+{
+ path: '/frontend',
+ component: Layout,
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/frontend/index'),
+ name: 'Frontend',
+ meta: { title: '数智 AI' }
+ }
+ ]
+}
+```
+
+---
+
+## Task 4: 验证实现
+
+- [ ] **Step 1: 检查文件是否创建成功**
+
+命令: `ls -la src/views/frontend/`
+
+- [ ] **Step 2: 验证路由配置语法**
+
+检查 `src/router/index.js` 中是否有新增的 `/frontend` 路由
+
+---
+
+## 自检清单
+
+- [ ] Spec 覆盖:所有需求点都有对应实现
+- [ ] 占位符扫描:无 TBD、TODO 等占位符
+- [ ] 类型一致性:所有方法名、变量名一致
+
+---
+
+**Plan complete and saved to `docs/superpowers/plans/2026-07-15-shuzhi-ai-chat-plan.md`**
+
+Two execution options:
+
+**1. Subagent-Driven (recommended)** - I dispatch a fresh subagent per task, review between tasks, fast iteration
+
+**2. Inline Execution** - Execute tasks in this session using executing-plans, batch execution with checkpoints
+
+**Which approach?**
diff --git a/docs/superpowers/plans/2026-07-16-shuzhi-ai-chat-frontend-implementation-plan.md b/docs/superpowers/plans/2026-07-16-shuzhi-ai-chat-frontend-implementation-plan.md
new file mode 100644
index 0000000..08e42bf
--- /dev/null
+++ b/docs/superpowers/plans/2026-07-16-shuzhi-ai-chat-frontend-implementation-plan.md
@@ -0,0 +1,1135 @@
+# 数智 AI 聊天前端页面实现计划
+
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
+
+**Goal:** 在 `src/views/frontend` 目录下实现完整的数智 AI 聊天页面,包含左侧会话列表、聊天窗口、输入区(含@引用文件)、右侧文件列表面板。
+
+**Architecture:** 采用 Vue 3 Composition API + Element Plus + SCSS,主页面 `index.vue` 整合各子组件,各组件职责单一,通过 props/emit 通信。
+
+**Tech Stack:** Vue 3, Element Plus, SCSS
+
+---
+
+## 文件结构
+
+```
+src/views/frontend/
+├── index.vue # 主页面
+└── components/
+ ├── ConversationSidebar.vue # 左侧会话列表
+ ├── ChatHeader.vue # 顶部栏
+ ├── ChatWindow.vue # 聊天消息区
+ ├── InputArea.vue # 输入区域(含@引用)
+ ├── FilePanel.vue # 右侧文件列表面板
+ ├── FileSelectModal.vue # @文件选择弹层
+ └── QuotedFiles.vue # 已引用文件区域
+```
+
+---
+
+## Task 1: 创建目录结构
+
+- [ ] **Step 1: 创建 components 目录**
+
+```bash
+mkdir -p src/views/frontend/components
+```
+
+---
+
+## Task 2: 创建 ConversationSidebar.vue(左侧会话列表)
+
+**Files:**
+- Create: `src/views/frontend/components/ConversationSidebar.vue`
+
+- [ ] **Step 1: 创建组件文件**
+
+```vue
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 3: 创建 ChatHeader.vue(顶部栏)
+
+**Files:**
+- Create: `src/views/frontend/components/ChatHeader.vue`
+
+- [ ] **Step 1: 创建组件文件**
+
+```vue
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 4: 创建 ChatWindow.vue(聊天消息区)
+
+**Files:**
+- Create: `src/views/frontend/components/ChatWindow.vue`
+
+- [ ] **Step 1: 创建组件文件**
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 5: 创建 QuotedFiles.vue(已引用文件区域)
+
+**Files:**
+- Create: `src/views/frontend/components/QuotedFiles.vue`
+
+- [ ] **Step 1: 创建组件文件**
+
+```vue
+
+
+
+
+
+
+ {{ file.name }}
+
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 6: 创建 FileSelectModal.vue(@文件选择弹层)
+
+**Files:**
+- Create: `src/views/frontend/components/FileSelectModal.vue`
+
+- [ ] **Step 1: 创建组件文件**
+
+```vue
+
+
+
+
+
+
+ {{ file.name }}
+
+
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 7: 创建 InputArea.vue(输入区域)
+
+**Files:**
+- Create: `src/views/frontend/components/InputArea.vue`
+
+- [ ] **Step 1: 创建组件文件**
+
+```vue
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 8: 创建 FilePanel.vue(右侧文件列表面板)
+
+**Files:**
+- Create: `src/views/frontend/components/FilePanel.vue`
+
+- [ ] **Step 1: 创建组件文件**
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ node.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 9: 创建 index.vue(主页面整合)
+
+**Files:**
+- Create: `src/views/frontend/index.vue`
+
+- [ ] **Step 1: 创建主页面**
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 10: 配置路由
+
+**Files:**
+- Modify: `src/router/index.js`
+
+- [ ] **Step 1: 添加前端路由**
+
+在 `dynamicRoutes` 中添加:
+
+```javascript
+{
+ path: '/frontend',
+ component: Layout,
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/frontend/index'),
+ name: 'Frontend',
+ meta: { title: '数智 AI' }
+ }
+ ]
+}
+```
+
+---
+
+## Task 11: 测试验证
+
+- [ ] **Step 1: 启动开发服务器验证**
+
+```bash
+npm run dev
+```
+
+访问 `/frontend/index` 验证:
+1. 左侧会话列表可折叠/展开
+2. 点击会话切换聊天窗口
+3. 顶部栏智能体(默认选中)和文件按钮
+4. 输入框 @ 触发文件选择弹层
+5. 点击文件按钮展开右侧文件面板
+6. 文件树可点击预览/编辑/保存
+7. 布局自适应
+
+---
+
+## 自检清单
+
+- [ ] Spec 覆盖:每个设计功能都有对应实现
+- [ ] 占位符检查:无 TBD/TODO/待实现
+- [ ] 类型一致性:组件 props/emit 命名一致
+- [ ] 组件独立:每个组件职责单一
diff --git a/docs/superpowers/plans/2026-08-04-hide-chrome-for-common-role.md b/docs/superpowers/plans/2026-08-04-hide-chrome-for-common-role.md
new file mode 100644
index 0000000..7c7479b
--- /dev/null
+++ b/docs/superpowers/plans/2026-08-04-hide-chrome-for-common-role.md
@@ -0,0 +1,270 @@
+# Hide Layout Chrome for `common` Role Implementation Plan
+
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
+
+**Goal:** Conditionally hide sidebar, navbar, tags-view, and the floating Settings button — and stretch ` ` to fill the viewport — when the logged-in user's role list contains `"common"`.
+
+**Architecture:** Add a single `isCommonUser` computed to `src/layout/index.vue` that derives from the existing Pinia `useUserStore`. Use that computed as a `v-if` gate on every chrome element and as a class binding on `.main-container`. Add one scoped SCSS rule for the fullscreen layout. No new files, no store/router/permission changes.
+
+**Tech Stack:** Vue 3 (Composition API, `
+
+
+```
+
+---
+
+## Task 2: 创建 UserInfoDialog.vue 组件
+
+**Files:**
+- Create: `src/views/frontend/components/UserInfoDialog.vue`
+
+- [ ] **Step 1: 创建文件,写入以下完整内容**
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 保存
+
+
+
+
+
+
+
+ 取消
+ 确认裁剪
+
+
+
+
+
+
+
+
+```
+
+---
+
+## Task 3: 改造 ConversationSidebar 集成 UserArea(展开态)
+
+**Files:**
+- Modify: `src/views/frontend/components/ConversationSidebar.vue`(在 `
+
+
+
+
+
+
+
+
+
+
+