merge: 集成共享 Agent Browser 调试能力
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

需求:将 Agent Browser 独立功能提交合并到包含 AI 设计 Workspace 的最新主线。

实现:保留双方模块初始化、Host API 路由和 README 产品说明。

# Conflicts:
#	electron/api/context.ts
This commit is contained in:
2026-07-31 14:56:45 +08:00
39 changed files with 6734 additions and 9 deletions

View File

@@ -14,6 +14,7 @@ Makelore 是一个面向软件与视觉创作的 AI 桌面工作台。当前版
- 桌面技术栈Electron、React 19、Vite、TypeScript、Zustand、Tailwind CSS。
- AI 编程运行时Electron Main 管理项目内声明的 `opencode-ai` 依赖Renderer 不直接启动或调用运行时。
- 共享开发浏览器AI 编程右侧提供项目级浏览器,用户与 Agent 查看并调试同一实时页面、Console 和 Network支持本地与公网开发地址。
- 后端边界Renderer 通过 Main 所有的 Host API 访问认证、模型、同步、更新、语音、图像与运行时能力。
- AI 绘画:每个设计项目固定一个设计 Agent。Agent 先通过持续对话收敛 Brief用户确认服务端 Quote 后才创建图片或视频任务;任务进度与对话互不阻塞,并在统一列表中展示。生产环境使用 Works Square 云端 Workspace 契约,上游不可用时明确报错。
- 视觉系统:单一浅色主题,品牌蓝 `#3A5578`、星火橙 `#F26A3D`、白色画布与低饱和蓝灰层级。
@@ -68,7 +69,7 @@ pnpm run package:linux
| `src/` | React Renderer、页面、组件和状态管理 |
| `electron/` | Electron Main、Preload、Host API、运行时与系统能力 |
| `shared/` | Main 与 Renderer 共享的契约和项目配置 |
| `.opencode/` | 随产品提供的 Skill 定义 |
| `.opencode/` | 随产品提供的 Skill 与 OpenCode 插件 |
| `resources/` | 品牌、图标和打包资源 |
| `scripts/` | 运行时准备、图标生成、打包与验证脚本 |
| `tests/` | Vitest、Electron runtime 与 Playwright 测试 |
@@ -83,6 +84,12 @@ pnpm run package:linux
- AI 绘画使用独立的云端 Workspace 边界,不回退到 AI 编程项目数据,也不向 Renderer 暴露 Provider、模型、Prompt、存储 URI 或远端登录 Token。
- AI 编程的 Agent 配置是项目所有的;稳定 id 用于保持会话兼容显示名称可以修改。AI 绘画的设计 Agent 是固定产品能力,不作为用户可增删的项目实体。
### 共享开发浏览器
- Electron Main 持有 sandboxed `WebContentsView`、项目级持久浏览器配置和 CDP 连接;被调试页面不获得 Makelore Preload、Node.js 能力或 Host API 凭证。
- 用户和 Agent 操作同一个页面。Renderer 只负责显示、收起和布局Agent 通过 Main 代理的页面级 CDP 工具导航、读取 Console/Network 和执行调试命令。
- 非 Web 协议、文件注入、跨目标及宿主级命令会被阻止。面板收起或被弹窗遮挡时隐藏原生页面并暂停 Agent 调试;该能力独立于发布和部署。
### 项目联系人与会话
- 新项目默认没有联系人或 Agent用户在项目内手动创建联系人时必须填写名称、预设头像、职责和精确的 `provider/model`,提示词与 Skill 属于后置高级设置。