Makelore 2.0 initial clean snapshot

This commit is contained in:
inman
2026-07-29 17:22:35 +08:00
commit b8ca3f8eea
694 changed files with 139782 additions and 0 deletions

88
README.md Normal file
View File

@@ -0,0 +1,88 @@
# Makelore 2.0
**一念成光,万物可创。**
Makelore 是一个面向软件与视觉创作的 AI 桌面工作台。当前版本为 `2.0.0`,包含两个产品模块:
- `Makelore CodeAI 编程`:管理本地项目、项目 Agent、会话、文件上下文、代码变更和运行时。
- `Makelore CanvasAI 绘画`以项目、Agent 和对话组织云端视觉创作。
作品广场、素材广场、发布上传和云部署页面不属于 Makelore 2.0 工作台。项目成果预览 `/deliverables` 继续保留。
## 当前产品状态
- 桌面技术栈Electron、React 19、Vite、TypeScript、Zustand、Tailwind CSS。
- AI 编程运行时Electron Main 管理项目内声明的 `opencode-ai` 依赖Renderer 不直接启动或调用运行时。
- 后端边界Renderer 通过 Main 所有的 Host API 访问认证、模型、同步、更新、语音、图像与运行时能力。
- AI 绘画:生产环境使用云端工作区契约;上游不可用时展示明确的不可用状态。未打包开发环境可使用隔离的本地适配器。
- 视觉系统:单一浅色主题,品牌蓝 `#3A5578`、星火橙 `#F26A3D`、白色画布与低饱和蓝灰层级。
- 品牌资产:生产 SVG、PNG、应用图标、托盘图标与安装器视觉位于 [`resources/brand/`](resources/brand/README.md) 和 `resources/icons/`
## 安装与开发
项目使用 `package.json` 中固定版本的 pnpm。
```bash
pnpm install --frozen-lockfile
pnpm run dev
```
启动仅供开发使用的本地图像工作区:
```bash
pnpm run dev:image-workspace:local
```
该模式只允许在未打包应用中启用,使用独立开发数据,并保持与生产界面相同的工作区结构。
## 质量检查
```bash
pnpm run typecheck
pnpm run lint:check
pnpm test
pnpm run build:vite
```
Electron E2E
```bash
pnpm run test:e2e
```
## 打包
```bash
pnpm run package:mac
pnpm run package:win
pnpm run package:linux
```
各平台打包脚本会先准备目标平台所需的 Python 与运行时资源,产物写入忽略的 `release/` 目录。
## 代码结构
| 路径 | 职责 |
| --- | --- |
| `src/` | React Renderer、页面、组件和状态管理 |
| `electron/` | Electron Main、Preload、Host API、运行时与系统能力 |
| `shared/` | Main 与 Renderer 共享的契约和项目配置 |
| `.opencode/` | 随产品提供的当前 Agent 与 Skill 定义 |
| `resources/` | 品牌、图标、项目模板和打包资源 |
| `scripts/` | 运行时准备、图标生成、打包与验证脚本 |
| `tests/` | Vitest、Electron runtime 与 Playwright 测试 |
## 架构约束
- Renderer 的后端调用统一经过 `src/lib/host-api.ts``src/lib/api-client.ts`
- Renderer 不直接调用 Electron IPC 或本地运行时 HTTP 地址。
- Electron Main 负责认证、秘密存储、运行时生命周期、代理、同步和系统集成。
- AI 编程项目配置以项目内 `.niancode/project.json` 为准;项目文件和会话保持本地。
- AI 绘画使用独立的云端工作区边界,不回退到 AI 编程项目数据。
- Agent 配置是项目所有的;稳定 id 用于保持会话兼容,显示名称可以修改。
## 兼容标识
Makelore 2.0 继续保留既有 `niancode` 包名、应用 id、协议、数据目录、环境变量、API 请求头和服务标识,以兼容现有安装与服务。它们是内部技术契约,不是对外品牌名称。
本仓库只描述当前产品状态,不保存旧产品的任务记录、设计过程、工作日志或迁移历史。