Files
makelore/README.md
2026-07-29 17:22:35 +08:00

89 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 请求头和服务标识,以兼容现有安装与服务。它们是内部技术契约,不是对外品牌名称。
本仓库只描述当前产品状态,不保存旧产品的任务记录、设计过程、工作日志或迁移历史。