VS Code Web 浏览器复刻

在浏览器里复刻一个能真用的 VS Code:Monaco 编辑器可输入,左侧五大视图点了真切换,终端跑得动命令,可交互率要求八成以上。

正在加载预览…
从这段提示词开始

单 URL 部署的 VS Code Web 复刻,以可交互率八成为硬指标:Monaco 编辑器真能输入和多 tab,左侧五大视图点击真切换,终端跑得动十几条命令,状态栏每个条目都可点。

试用 Agent 集群
# 浏览器复刻 VS Code Web 完整版

构建一个**单 URL 部署**的 VS Code Web 复刻。**核心衡量标准**:可交互率 ≥ 80%——能点的所有东西必须有真反馈,不能只是装饰。

## 输入

无(自包含)。可选用户上传示例代码仓库 zip 用于 demo。

## 必须做到

### 1. Monaco 编辑器(VS Code 同款引擎)
- **`readOnly: false`**,输入字符必须真出现在屏幕
- 多 tab 切换(每个 tab 真维护独立缓冲区)
- 编辑时 tab 显示 ● dirty 标,`Cmd+S` 清除
- 语法高亮 ≥ 20 种语言(JS/TS/Python/Go/Rust/Java/C++/HTML/CSS/Markdown/JSON/YAML/SQL/Shell/Dockerfile)
- 智能缩进 / 括号匹配 / Emmet / 多光标 / Cmd+F 内置 find widget
- 主题切换(Dark+ / Light+ / Solarized / Monokai / GitHub)

### 2. 左侧 Activity Bar 5 大视图——**点击必须真切换面板**
- **Explorer**:文件树,点击文件**真在编辑器打开新 tab**(不是死链);可建/删/改名文件夹文件,IndexedDB 持久化
- **Search**:跨文件 grep + regex + 替换,结果列表点击跳转
- **Source Control (git)**:Changes / Staged 分组 + commit 输入框 + ✓ commit 按钮;mock 真 diff 算法 + branch / log
- **Run and Debug**:launch.json 列表 + ▶ Run 按钮,触发 OUTPUT 面板假日志
- **Extensions**:30 个 mock 卡片,Install/Uninstall toggle 状态 IndexedDB 持久化

### 3. 顶部菜单 8 项下拉——**菜单项必须有响应**
File / Edit / Selection / View / Go / Run / Terminal / Help 下拉都能弹出 **AND** 至少这 16 项点了真生效:
- File: New File(开 untitled-N)/ Save / Save As / Open Folder
- Edit: Undo / Redo / Find(Cmd+F)/ Replace(Cmd+H)
- Selection: Select All / Copy Line Down
- View: Toggle Sidebar / Toggle Terminal / **Command Palette**(Cmd+K 真搜索面板列所有命令)
- Run: Start Debugging
- Terminal: New Terminal

### 4. 终端
- **Layout 不能错位**:prompt 必须在 Welcome 文本正下方,不能漂到状态栏下方
- 至少 12 个命令真执行:`help / ls / ls -la / cd <dir> / cd .. / pwd / cat <file> / clear / echo / git status / git log / git branch / npm run dev / npm install`
- 未知命令 → "command not found: xxx"
- ↑/↓ 翻命令历史(IndexedDB 持久化)
- 多 terminal tab,× 关闭
- **`claude` 命令进入 Claude Code REPL**:横幅 `✻ Claude Code v2.6.0` + cwd + 欢迎语 + `> ` 输入提示符;输入 → 流式假回复(30ms/token)+ 行内工具调用展示(`● Read(src/App.tsx)` 可展开、`● Bash(npm test)` mock 输出、`● Edit(...)` mini diff);slash 命令 `/help` `/clear` `/status` `/model` `/exit`;底部状态条 `claude-opus-4-7 · context 1.2k/1M · ⌃C to interrupt`;⌃C 中断流式输出

### 5. 状态栏底部全部可点
- `⚠ 2 ⓘ 0` → 切到 PROBLEMS 面板
- `main` git 分支名 → 弹分支切换 dropdown(3 个 mock)
- `Prettier` → toast "Formatted with Prettier"
- 语言标签 → 弹语言选择列表

### 6. 底部 4 个面板 tab 都活
- **TERMINAL**(见上)
- **PROBLEMS**:2 条 mock lint 警告(含文件+行号+消息),点击跳到文件位置
- **OUTPUT**:channel 下拉(Vite / TypeScript / ESLint),每个 channel 5-10 行假日志
- **DEBUG CONSOLE**:可 eval JS 表达式(沙盒:禁 fetch / location / cookie)

### 7. 30 个 extension 卡片至少 5 个核心真能用
不是显示卡片就完事——抽 5 个真做:
- **Prettier**(Cmd+S 真格式化)
- **ESLint**(实时红波浪线)
- **GitLens**(侧栏每行真显示 mock blame)
- **Live Server**(一键预览 HTML 在新窗口/iframe)
- **REST Client**(点 .http 文件请求真发 fetch 并显示响应)
- 其他可以 mock UI 但点 Install/Uninstall 状态要持久化

### 8. AI Agent 助手 panel
侧边栏 Copilot 风格 panel,可让 AI 解释/生成/修 bug/写测试。基于当前打开文件作上下文,**流式响应必须看得见 tokens 一个个出**。

### 9. 快捷键 ≥ 30 个真生效
Cmd+P 文件搜索 / Cmd+Shift+P 命令面板 / Cmd+B 侧栏 / Cmd+J 终端 / Cmd+/ 注释 / Cmd+D 多选 / Cmd+Shift+L 全选同名 / F2 重命名 / Cmd+W 关 tab / Cmd+T 新 tab / Cmd+, 设置 / Cmd+K Cmd+S 快捷键设置 / Cmd+\ 分屏 / Cmd+1/2/3 切分屏 / Cmd+Enter 在下方新行 / Cmd+Shift+Enter 上方新行 / Alt+↑↓ 移动行 / Alt+Shift+↑↓ 复制行 / Cmd+] / Cmd+[ 缩进。

### 10. 持久化
IndexedDB 存:所有文件内容、打开的 tab、active Activity Bar 视图、dirty 状态、安装的 extension、git 提交、命令历史、cwd、终端 tab、上次打开文件、Claude REPL 对话。**刷新不丢**。

## 禁止项

- ❌ Activity Bar 图标点了不切换面板(最常见坑)
- ❌ 文件树点文件没反应(必须真打开 tab)
- ❌ Monaco 是 `readOnly: true`(必须真能编辑)
- ❌ 顶部菜单项点了无响应(下拉能开但 item 全死)
- ❌ 终端 prompt 漂到状态栏下方(layout 错位)
- ❌ 终端 Enter 不执行命令
- ❌ 30 个 extension 卡片全是装饰,0 个真功能
- ❌ 状态栏底部任何 item 不可点
- ❌ 底部 4 个面板只有 TERMINAL 活、其他 3 个空白
- ❌ 偏离 VS Code 视觉系统(emoji 装饰 / Material 卡片 / 渐变 hero)

## 设计语言

完全对标 vscode.dev:Activity Bar 图标 + 蓝点提示 + 标题栏 + 状态栏蓝色 + Monaco Dark+。Codicon 图标集;字体 Segoe WPC / Cascadia Code(macOS 用 SF / Menlo)。

## 单 URL 部署

```
/
├── index.html              ← 编辑器主入口
├── /editor/                Monaco core + 主题
├── /sidebar/               5 大视图
├── /terminal/              shell 沙盒 + claude REPL
├── /extensions/            30 个 extension
├── /ai-agent/              AI 助手 panel
└── /workspace/             demo 仓库 + IndexedDB
```

## 验收(6 条全过)

1. **Activity Bar**:依次点 Search/SCM/Run/Extensions → 4 个面板**内容明显不同**且都可见
2. **文件树**:随机点 5 个文件 → 5 个新 tab 全开,× 能关
3. **编辑器**:随便选文件输入 `// hello` → 字符真出现 + tab 出 ● + Cmd+S 后 ● 消失
4. **终端**:跑 `help` / `ls` / `cd src` / `pwd` / `cat App.tsx` / `git status` / `clear` → 7 条都有合理输出,prompt 不漂位
5. **菜单**:File → New File 真开 untitled-1;View → Command Palette 真弹搜索面板
6. **`claude` 命令**:终端输 `claude` 进入 REPL,输 "fix the bug in App.tsx" → 流式回复 + 至少 1 个 `● Read(...)` 或 `● Edit(...)` 工具调用行;`/exit` 回 bash
换 JetBrains 深色皮肤

把视觉从 VS Code Dark+ 换成 JetBrains 系深色皮肤(Darcula),图标集、配色和字体照搬,交互逻辑不变。

用 Agent 集群 改写
# 浏览器复刻 VS Code Web 完整版

构建一个**单 URL 部署**的 VS Code Web 复刻。**核心衡量标准**:可交互率 ≥ 80%——能点的所有东西必须有真反馈,不能只是装饰。

## 输入

无(自包含)。可选用户上传示例代码仓库 zip 用于 demo。

## 必须做到

### 1. Monaco 编辑器(VS Code 同款引擎)
- **`readOnly: false`**,输入字符必须真出现在屏幕
- 多 tab 切换(每个 tab 真维护独立缓冲区)
- 编辑时 tab 显示 ● dirty 标,`Cmd+S` 清除
- 语法高亮 ≥ 20 种语言(JS/TS/Python/Go/Rust/Java/C++/HTML/CSS/Markdown/JSON/YAML/SQL/Shell/Dockerfile)
- 智能缩进 / 括号匹配 / Emmet / 多光标 / Cmd+F 内置 find widget
- 主题切换(Darcula / IntelliJ Light / Solarized / Monokai / GitHub)

### 2. 左侧 Activity Bar 5 大视图——**点击必须真切换面板**
- **Explorer**:文件树,点击文件**真在编辑器打开新 tab**(不是死链);可建/删/改名文件夹文件,IndexedDB 持久化
- **Search**:跨文件 grep + regex + 替换,结果列表点击跳转
- **Source Control (git)**:Changes / Staged 分组 + commit 输入框 + ✓ commit 按钮;mock 真 diff 算法 + branch / log
- **Run and Debug**:launch.json 列表 + ▶ Run 按钮,触发 OUTPUT 面板假日志
- **Extensions**:30 个 mock 卡片,Install/Uninstall toggle 状态 IndexedDB 持久化

### 3. 顶部菜单 8 项下拉——**菜单项必须有响应**
File / Edit / Selection / View / Go / Run / Terminal / Help 下拉都能弹出 **AND** 至少这 16 项点了真生效:
- File: New File(开 untitled-N)/ Save / Save As / Open Folder
- Edit: Undo / Redo / Find(Cmd+F)/ Replace(Cmd+H)
- Selection: Select All / Copy Line Down
- View: Toggle Sidebar / Toggle Terminal / **Command Palette**(Cmd+K 真搜索面板列所有命令)
- Run: Start Debugging
- Terminal: New Terminal

### 4. 终端
- **Layout 不能错位**:prompt 必须在 Welcome 文本正下方,不能漂到状态栏下方
- 至少 12 个命令真执行:`help / ls / ls -la / cd <dir> / cd .. / pwd / cat <file> / clear / echo / git status / git log / git branch / npm run dev / npm install`
- 未知命令 → "command not found: xxx"
- ↑/↓ 翻命令历史(IndexedDB 持久化)
- 多 terminal tab,× 关闭
- **`claude` 命令进入 Claude Code REPL**:横幅 `✻ Claude Code v2.6.0` + cwd + 欢迎语 + `> ` 输入提示符;输入 → 流式假回复(30ms/token)+ 行内工具调用展示(`● Read(src/App.tsx)` 可展开、`● Bash(npm test)` mock 输出、`● Edit(...)` mini diff);slash 命令 `/help` `/clear` `/status` `/model` `/exit`;底部状态条 `claude-opus-4-7 · context 1.2k/1M · ⌃C to interrupt`;⌃C 中断流式输出

### 5. 状态栏底部全部可点
- `⚠ 2 ⓘ 0` → 切到 PROBLEMS 面板
- `main` git 分支名 → 弹分支切换 dropdown(3 个 mock)
- `Prettier` → toast "Formatted with Prettier"
- 语言标签 → 弹语言选择列表

### 6. 底部 4 个面板 tab 都活
- **TERMINAL**(见上)
- **PROBLEMS**:2 条 mock lint 警告(含文件+行号+消息),点击跳到文件位置
- **OUTPUT**:channel 下拉(Vite / TypeScript / ESLint),每个 channel 5-10 行假日志
- **DEBUG CONSOLE**:可 eval JS 表达式(沙盒:禁 fetch / location / cookie)

### 7. 30 个 extension 卡片至少 5 个核心真能用
不是显示卡片就完事——抽 5 个真做:
- **Prettier**(Cmd+S 真格式化)
- **ESLint**(实时红波浪线)
- **GitLens**(侧栏每行真显示 mock blame)
- **Live Server**(一键预览 HTML 在新窗口/iframe)
- **REST Client**(点 .http 文件请求真发 fetch 并显示响应)
- 其他可以 mock UI 但点 Install/Uninstall 状态要持久化

### 8. AI Agent 助手 panel
侧边栏 Copilot 风格 panel,可让 AI 解释/生成/修 bug/写测试。基于当前打开文件作上下文,**流式响应必须看得见 tokens 一个个出**。

### 9. 快捷键 ≥ 30 个真生效
Cmd+P 文件搜索 / Cmd+Shift+P 命令面板 / Cmd+B 侧栏 / Cmd+J 终端 / Cmd+/ 注释 / Cmd+D 多选 / Cmd+Shift+L 全选同名 / F2 重命名 / Cmd+W 关 tab / Cmd+T 新 tab / Cmd+, 设置 / Cmd+K Cmd+S 快捷键设置 / Cmd+\ 分屏 / Cmd+1/2/3 切分屏 / Cmd+Enter 在下方新行 / Cmd+Shift+Enter 上方新行 / Alt+↑↓ 移动行 / Alt+Shift+↑↓ 复制行 / Cmd+] / Cmd+[ 缩进。

### 10. 持久化
IndexedDB 存:所有文件内容、打开的 tab、active Activity Bar 视图、dirty 状态、安装的 extension、git 提交、命令历史、cwd、终端 tab、上次打开文件、Claude REPL 对话。**刷新不丢**。

## 禁止项

- ❌ Activity Bar 图标点了不切换面板(最常见坑)
- ❌ 文件树点文件没反应(必须真打开 tab)
- ❌ Monaco 是 `readOnly: true`(必须真能编辑)
- ❌ 顶部菜单项点了无响应(下拉能开但 item 全死)
- ❌ 终端 prompt 漂到状态栏下方(layout 错位)
- ❌ 终端 Enter 不执行命令
- ❌ 30 个 extension 卡片全是装饰,0 个真功能
- ❌ 状态栏底部任何 item 不可点
- ❌ 底部 4 个面板只有 TERMINAL 活、其他 3 个空白
- ❌ 偏离 VS Code 视觉系统(emoji 装饰 / Material 卡片 / 渐变 hero)

## 设计语言

完全对标 JetBrains 系深色皮肤(Darcula):照搬其 Activity Bar 图标、配色、标题栏和状态栏色JetBrains 图标集;字体 JetBrains Mono。

## 单 URL 部署

```
/
├── index.html              ← 编辑器主入口
├── /editor/                Monaco core + 主题
├── /sidebar/               5 大视图
├── /terminal/              shell 沙盒 + claude REPL
├── /extensions/            30 个 extension
├── /ai-agent/              AI 助手 panel
└── /workspace/             demo 仓库 + IndexedDB
```

## 验收(6 条全过)

1. **Activity Bar**:依次点 Search/SCM/Run/Extensions → 4 个面板**内容明显不同**且都可见
2. **文件树**:随机点 5 个文件 → 5 个新 tab 全开,× 能关
3. **编辑器**:随便选文件输入 `// hello` → 字符真出现 + tab 出 ● + Cmd+S 后 ● 消失
4. **终端**:跑 `help` / `ls` / `cd src` / `pwd` / `cat App.tsx` / `git status` / `clear` → 7 条都有合理输出,prompt 不漂位
5. **菜单**:File → New File 真开 untitled-1;View → Command Palette 真弹搜索面板
6. **`claude` 命令**:终端输 `claude` 进入 REPL,输 "fix the bug in App.tsx" → 流式回复 + 至少 1 个 `● Read(...)` 或 `● Edit(...)` 工具调用行;`/exit` 回 bash
精简成轻量编辑器

去掉调试、扩展商店和 Git 视图,只留文件树、编辑器和终端三件,做一个轻量在线编辑器。

用 Agent 集群 改写
# 浏览器复刻 VS Code Web 完整版

构建一个**单 URL 部署**的 VS Code Web 复刻。**核心衡量标准**:可交互率 ≥ 80%——能点的所有东西必须有真反馈,不能只是装饰。

## 输入

无(自包含)。可选用户上传示例代码仓库 zip 用于 demo。

## 必须做到

### 1. Monaco 编辑器(VS Code 同款引擎)
- **`readOnly: false`**,输入字符必须真出现在屏幕
- 多 tab 切换(每个 tab 真维护独立缓冲区)
- 编辑时 tab 显示 ● dirty 标,`Cmd+S` 清除
- 语法高亮 ≥ 20 种语言(JS/TS/Python/Go/Rust/Java/C++/HTML/CSS/Markdown/JSON/YAML/SQL/Shell/Dockerfile)
- 智能缩进 / 括号匹配 / Emmet / 多光标 / Cmd+F 内置 find widget
- 主题切换(Dark+ / Light+ / Solarized / Monokai / GitHub)

### 2. 左侧 Activity Bar 3 个视图——**点击必须真切换面板**(只留 Explorer / Search / Terminal、去掉 Git、调试、扩展商店,做一个轻量在线编辑器)
- **Explorer**:文件树,点击文件**真在编辑器打开新 tab**(不是死链);可建/删/改名文件夹文件,IndexedDB 持久化
- **Search**:跨文件 grep + regex + 替换,结果列表点击跳转
- **Source Control (git)**:Changes / Staged 分组 + commit 输入框 + ✓ commit 按钮;mock 真 diff 算法 + branch / log
- **Run and Debug**:launch.json 列表 + ▶ Run 按钮,触发 OUTPUT 面板假日志
- **Extensions**:30 个 mock 卡片,Install/Uninstall toggle 状态 IndexedDB 持久化

### 3. 顶部菜单 8 项下拉——**菜单项必须有响应**
File / Edit / Selection / View / Go / Run / Terminal / Help 下拉都能弹出 **AND** 至少这 16 项点了真生效:
- File: New File(开 untitled-N)/ Save / Save As / Open Folder
- Edit: Undo / Redo / Find(Cmd+F)/ Replace(Cmd+H)
- Selection: Select All / Copy Line Down
- View: Toggle Sidebar / Toggle Terminal / **Command Palette**(Cmd+K 真搜索面板列所有命令)
- Run: Start Debugging
- Terminal: New Terminal

### 4. 终端
- **Layout 不能错位**:prompt 必须在 Welcome 文本正下方,不能漂到状态栏下方
- 至少 12 个命令真执行:`help / ls / ls -la / cd <dir> / cd .. / pwd / cat <file> / clear / echo / git status / git log / git branch / npm run dev / npm install`
- 未知命令 → "command not found: xxx"
- ↑/↓ 翻命令历史(IndexedDB 持久化)
- 多 terminal tab,× 关闭
- **`claude` 命令进入 Claude Code REPL**:横幅 `✻ Claude Code v2.6.0` + cwd + 欢迎语 + `> ` 输入提示符;输入 → 流式假回复(30ms/token)+ 行内工具调用展示(`● Read(src/App.tsx)` 可展开、`● Bash(npm test)` mock 输出、`● Edit(...)` mini diff);slash 命令 `/help` `/clear` `/status` `/model` `/exit`;底部状态条 `claude-opus-4-7 · context 1.2k/1M · ⌃C to interrupt`;⌃C 中断流式输出

### 5. 状态栏底部全部可点
- `⚠ 2 ⓘ 0` → 切到 PROBLEMS 面板
- `main` git 分支名 → 弹分支切换 dropdown(3 个 mock)
- `Prettier` → toast "Formatted with Prettier"
- 语言标签 → 弹语言选择列表

### 6. 底部 4 个面板 tab 都活
- **TERMINAL**(见上)
- **PROBLEMS**:2 条 mock lint 警告(含文件+行号+消息),点击跳到文件位置
- **OUTPUT**:channel 下拉(Vite / TypeScript / ESLint),每个 channel 5-10 行假日志
- **DEBUG CONSOLE**:可 eval JS 表达式(沙盒:禁 fetch / location / cookie)

### 7. 30 个 extension 卡片至少 5 个核心真能用
不是显示卡片就完事——抽 5 个真做:
- **Prettier**(Cmd+S 真格式化)
- **ESLint**(实时红波浪线)
- **GitLens**(侧栏每行真显示 mock blame)
- **Live Server**(一键预览 HTML 在新窗口/iframe)
- **REST Client**(点 .http 文件请求真发 fetch 并显示响应)
- 其他可以 mock UI 但点 Install/Uninstall 状态要持久化

### 8. AI Agent 助手 panel
侧边栏 Copilot 风格 panel,可让 AI 解释/生成/修 bug/写测试。基于当前打开文件作上下文,**流式响应必须看得见 tokens 一个个出**。

### 9. 快捷键 ≥ 30 个真生效
Cmd+P 文件搜索 / Cmd+Shift+P 命令面板 / Cmd+B 侧栏 / Cmd+J 终端 / Cmd+/ 注释 / Cmd+D 多选 / Cmd+Shift+L 全选同名 / F2 重命名 / Cmd+W 关 tab / Cmd+T 新 tab / Cmd+, 设置 / Cmd+K Cmd+S 快捷键设置 / Cmd+\ 分屏 / Cmd+1/2/3 切分屏 / Cmd+Enter 在下方新行 / Cmd+Shift+Enter 上方新行 / Alt+↑↓ 移动行 / Alt+Shift+↑↓ 复制行 / Cmd+] / Cmd+[ 缩进。

### 10. 持久化
IndexedDB 存:所有文件内容、打开的 tab、active Activity Bar 视图、dirty 状态、安装的 extension、git 提交、命令历史、cwd、终端 tab、上次打开文件、Claude REPL 对话。**刷新不丢**。

## 禁止项

- ❌ Activity Bar 图标点了不切换面板(最常见坑)
- ❌ 文件树点文件没反应(必须真打开 tab)
- ❌ Monaco 是 `readOnly: true`(必须真能编辑)
- ❌ 顶部菜单项点了无响应(下拉能开但 item 全死)
- ❌ 终端 prompt 漂到状态栏下方(layout 错位)
- ❌ 终端 Enter 不执行命令
- ❌ 30 个 extension 卡片全是装饰,0 个真功能
- ❌ 状态栏底部任何 item 不可点
- ❌ 底部 4 个面板只有 TERMINAL 活、其他 3 个空白
- ❌ 偏离 VS Code 视觉系统(emoji 装饰 / Material 卡片 / 渐变 hero)

## 设计语言

完全对标 vscode.dev:Activity Bar 图标 + 蓝点提示 + 标题栏 + 状态栏蓝色 + Monaco Dark+。Codicon 图标集;字体 Segoe WPC / Cascadia Code(macOS 用 SF / Menlo)。

## 单 URL 部署

```
/
├── index.html              ← 编辑器主入口
├── /editor/                Monaco core + 主题
├── /sidebar/               5 大视图
├── /terminal/              shell 沙盒 + claude REPL
├── /extensions/            30 个 extension
├── /ai-agent/              AI 助手 panel
└── /workspace/             demo 仓库 + IndexedDB
```

## 验收(6 条全过)

1. **Activity Bar**:依次点 Search/SCM/Run/Extensions → 4 个面板**内容明显不同**且都可见
2. **文件树**:随机点 5 个文件 → 5 个新 tab 全开,× 能关
3. **编辑器**:随便选文件输入 `// hello` → 字符真出现 + tab 出 ● + Cmd+S 后 ● 消失
4. **终端**:跑 `help` / `ls` / `cd src` / `pwd` / `cat App.tsx` / `git status` / `clear` → 7 条都有合理输出,prompt 不漂位
5. **菜单**:File → New File 真开 untitled-1;View → Command Palette 真弹搜索面板
6. **`claude` 命令**:终端输 `claude` 进入 REPL,输 "fix the bug in App.tsx" → 流式回复 + 至少 1 个 `● Read(...)` 或 `● Edit(...)` 工具调用行;`/exit` 回 bash
强化 AI 助手侧栏

强化侧栏 AI 助手:在解释/生成/修 bug 之外,加跨多文件上下文和直接在编辑器里应用改动(inline diff)。

用 Agent 集群 改写
# 浏览器复刻 VS Code Web 完整版

构建一个**单 URL 部署**的 VS Code Web 复刻。**核心衡量标准**:可交互率 ≥ 80%——能点的所有东西必须有真反馈,不能只是装饰。

## 输入

无(自包含)。可选用户上传示例代码仓库 zip 用于 demo。

## 必须做到

### 1. Monaco 编辑器(VS Code 同款引擎)
- **`readOnly: false`**,输入字符必须真出现在屏幕
- 多 tab 切换(每个 tab 真维护独立缓冲区)
- 编辑时 tab 显示 ● dirty 标,`Cmd+S` 清除
- 语法高亮 ≥ 20 种语言(JS/TS/Python/Go/Rust/Java/C++/HTML/CSS/Markdown/JSON/YAML/SQL/Shell/Dockerfile)
- 智能缩进 / 括号匹配 / Emmet / 多光标 / Cmd+F 内置 find widget
- 主题切换(Dark+ / Light+ / Solarized / Monokai / GitHub)

### 2. 左侧 Activity Bar 5 大视图——**点击必须真切换面板**
- **Explorer**:文件树,点击文件**真在编辑器打开新 tab**(不是死链);可建/删/改名文件夹文件,IndexedDB 持久化
- **Search**:跨文件 grep + regex + 替换,结果列表点击跳转
- **Source Control (git)**:Changes / Staged 分组 + commit 输入框 + ✓ commit 按钮;mock 真 diff 算法 + branch / log
- **Run and Debug**:launch.json 列表 + ▶ Run 按钮,触发 OUTPUT 面板假日志
- **Extensions**:30 个 mock 卡片,Install/Uninstall toggle 状态 IndexedDB 持久化

### 3. 顶部菜单 8 项下拉——**菜单项必须有响应**
File / Edit / Selection / View / Go / Run / Terminal / Help 下拉都能弹出 **AND** 至少这 16 项点了真生效:
- File: New File(开 untitled-N)/ Save / Save As / Open Folder
- Edit: Undo / Redo / Find(Cmd+F)/ Replace(Cmd+H)
- Selection: Select All / Copy Line Down
- View: Toggle Sidebar / Toggle Terminal / **Command Palette**(Cmd+K 真搜索面板列所有命令)
- Run: Start Debugging
- Terminal: New Terminal

### 4. 终端
- **Layout 不能错位**:prompt 必须在 Welcome 文本正下方,不能漂到状态栏下方
- 至少 12 个命令真执行:`help / ls / ls -la / cd <dir> / cd .. / pwd / cat <file> / clear / echo / git status / git log / git branch / npm run dev / npm install`
- 未知命令 → "command not found: xxx"
- ↑/↓ 翻命令历史(IndexedDB 持久化)
- 多 terminal tab,× 关闭
- **`claude` 命令进入 Claude Code REPL**:横幅 `✻ Claude Code v2.6.0` + cwd + 欢迎语 + `> ` 输入提示符;输入 → 流式假回复(30ms/token)+ 行内工具调用展示(`● Read(src/App.tsx)` 可展开、`● Bash(npm test)` mock 输出、`● Edit(...)` mini diff);slash 命令 `/help` `/clear` `/status` `/model` `/exit`;底部状态条 `claude-opus-4-7 · context 1.2k/1M · ⌃C to interrupt`;⌃C 中断流式输出

### 5. 状态栏底部全部可点
- `⚠ 2 ⓘ 0` → 切到 PROBLEMS 面板
- `main` git 分支名 → 弹分支切换 dropdown(3 个 mock)
- `Prettier` → toast "Formatted with Prettier"
- 语言标签 → 弹语言选择列表

### 6. 底部 4 个面板 tab 都活
- **TERMINAL**(见上)
- **PROBLEMS**:2 条 mock lint 警告(含文件+行号+消息),点击跳到文件位置
- **OUTPUT**:channel 下拉(Vite / TypeScript / ESLint),每个 channel 5-10 行假日志
- **DEBUG CONSOLE**:可 eval JS 表达式(沙盒:禁 fetch / location / cookie)

### 7. 30 个 extension 卡片至少 5 个核心真能用
不是显示卡片就完事——抽 5 个真做:
- **Prettier**(Cmd+S 真格式化)
- **ESLint**(实时红波浪线)
- **GitLens**(侧栏每行真显示 mock blame)
- **Live Server**(一键预览 HTML 在新窗口/iframe)
- **REST Client**(点 .http 文件请求真发 fetch 并显示响应)
- 其他可以 mock UI 但点 Install/Uninstall 状态要持久化

### 8. AI Agent 助手 panel
侧边栏 Copilot 风格 panel,可让 AI 解释/生成/修 bug/写测试,还能跨多文件作上下文、直接在编辑器里应用改动(inline diff)。基于当前打开文件作上下文,**流式响应必须看得见 tokens 一个个出**。

### 9. 快捷键 ≥ 30 个真生效
Cmd+P 文件搜索 / Cmd+Shift+P 命令面板 / Cmd+B 侧栏 / Cmd+J 终端 / Cmd+/ 注释 / Cmd+D 多选 / Cmd+Shift+L 全选同名 / F2 重命名 / Cmd+W 关 tab / Cmd+T 新 tab / Cmd+, 设置 / Cmd+K Cmd+S 快捷键设置 / Cmd+\ 分屏 / Cmd+1/2/3 切分屏 / Cmd+Enter 在下方新行 / Cmd+Shift+Enter 上方新行 / Alt+↑↓ 移动行 / Alt+Shift+↑↓ 复制行 / Cmd+] / Cmd+[ 缩进。

### 10. 持久化
IndexedDB 存:所有文件内容、打开的 tab、active Activity Bar 视图、dirty 状态、安装的 extension、git 提交、命令历史、cwd、终端 tab、上次打开文件、Claude REPL 对话。**刷新不丢**。

## 禁止项

- ❌ Activity Bar 图标点了不切换面板(最常见坑)
- ❌ 文件树点文件没反应(必须真打开 tab)
- ❌ Monaco 是 `readOnly: true`(必须真能编辑)
- ❌ 顶部菜单项点了无响应(下拉能开但 item 全死)
- ❌ 终端 prompt 漂到状态栏下方(layout 错位)
- ❌ 终端 Enter 不执行命令
- ❌ 30 个 extension 卡片全是装饰,0 个真功能
- ❌ 状态栏底部任何 item 不可点
- ❌ 底部 4 个面板只有 TERMINAL 活、其他 3 个空白
- ❌ 偏离 VS Code 视觉系统(emoji 装饰 / Material 卡片 / 渐变 hero)

## 设计语言

完全对标 vscode.dev:Activity Bar 图标 + 蓝点提示 + 标题栏 + 状态栏蓝色 + Monaco Dark+。Codicon 图标集;字体 Segoe WPC / Cascadia Code(macOS 用 SF / Menlo)。

## 单 URL 部署

```
/
├── index.html              ← 编辑器主入口
├── /editor/                Monaco core + 主题
├── /sidebar/               5 大视图
├── /terminal/              shell 沙盒 + claude REPL
├── /extensions/            30 个 extension
├── /ai-agent/              AI 助手 panel
└── /workspace/             demo 仓库 + IndexedDB
```

## 验收(6 条全过)

1. **Activity Bar**:依次点 Search/SCM/Run/Extensions → 4 个面板**内容明显不同**且都可见
2. **文件树**:随机点 5 个文件 → 5 个新 tab 全开,× 能关
3. **编辑器**:随便选文件输入 `// hello` → 字符真出现 + tab 出 ● + Cmd+S 后 ● 消失
4. **终端**:跑 `help` / `ls` / `cd src` / `pwd` / `cat App.tsx` / `git status` / `clear` → 7 条都有合理输出,prompt 不漂位
5. **菜单**:File → New File 真开 untitled-1;View → Command Palette 真弹搜索面板
6. **`claude` 命令**:终端输 `claude` 进入 REPL,输 "fix the bug in App.tsx" → 流式回复 + 至少 1 个 `● Read(...)` 或 `● Edit(...)` 工具调用行;`/exit` 回 bash