AGENTS.md · git:20260326.199fc1a · 2026-03-26 · sha256 2f9fa9b0c965c3b9

AGENTS.md git:20260326.199fc1aA

Immutable. This exact content is served forever at /api/v1/blob/2f9fa9b0c965c3b9.

# AGENTS.md

This file provides guidance to Codex (Codex.ai/code) when working with code in this repository.

## 项目概述

DevMaster 是一个基于 Electron 33 + Vue 3 + Express 5 的跨平台桌面开发管理工具。用于可视化管理本地项目、执行脚本、监控进程资源、集成 AI 辅助功能。

## 常用命令

```bash
# 开发模式(同时启动 server:3000 + client:2118)
npm run dev

# 仅启动后端(带 --watch 自动重载)
npm run server

# 仅启动前端
npm run client

# 前端构建
cd client && npm run build

# Electron 桌面应用启动
npm start

# 打包桌面安装程序(Windows NSIS / macOS DMG)
npm run dist
```

**注意:** 项目无测试套件,无 ESLint 配置。

## 架构

### 整体结构:Electron 三层架构

```
main.js (Electron 主进程)
  ├── server/index.js (Express 后端,端口自动分配)
  └── client/dist/ (Vue 3 前端,生产环境由 Express 静态托管)
```

- **Electron 主进程** (`main.js`):创建 BrowserWindow,启动内嵌 Express 服务器,端口使用 `0` 自动分配可用端口。
- **开发模式**下前端独立运行在 2118 端口,通过 Socket.io 连接后端 3000 端口。

### 前后端通信

所有前后端交互通过 **Socket.io** 实现,不使用 REST API。

关键 Socket 事件:
- `scan-dir` / `open-folder-dialog` — 项目扫描与目录选择
- `start-task` / `stop-task` — 脚本执行与进程管理
- `git:get-diff` / `git:commit` — Git 操作
- `config:load` / `config:save` — 持久化配置(存储于 `~/.devmaster-config.json`)
- `proxy:Codex` — AI 代理请求
- `monitor:update` — 进程资源监控广播(每 2 秒)

### 后端核心 (`server/index.js`)

单文件服务器,职责:
1. **项目扫描**:递归扫描目录查找 `package.json`(深度限制 4 层),自动检测包管理器(npm/pnpm/yarn)
2. **进程管理**:通过 `node-pty` 启动子进程,用 `pidusage` + `pidtree` 监控资源
3. **Git 操作**:执行 `git diff`、`git status`、`git commit`
4. **AI 集成**:代理转发请求至 OpenAI 兼容 API
5. **静态文件服务**:生产环境托管 `client/dist/`

跨平台进程终止:Windows 用 `taskkill /pid /T /F`,Unix 用 `SIGKILL`。

### 前端核心 (`client/src/`)

- **框架**:Vue 3 + Vue Router 4(Hash 模式,兼容 Electron)
- **构建**:Vite(rolldown-vite)
- **样式**:Tailwind CSS 4 + 深色主题
- **终端**:xterm.js 渲染进程输出
- **Socket 连接**:`utils/socket.ts` 中根据 `import.meta.env.DEV` 判断连接地址
- **AI 工具**:`utils/ai.ts` 提供 `callKuyepClaude()` 调用 AI API

### 监控模块 (`server/utils/monitor.js`)

独立模块,聚合父子进程的 CPU/内存使用率,通过 Socket.io 广播给前端。

## 技术栈要点

- **包管理器**:项目使用 pnpm(有 `pnpm-lock.yaml`),但 npm 也可用
- **NPM 镜像**:`.npmrc` 配置了 npmmirror.com 中国镜像
- **Node 版本**:要求 >= 20,推荐 v22 LTS
- **TypeScript**:仅前端使用,后端为纯 JavaScript
- **Electron 安全设置**:`contextIsolation: true`,`nodeIntegration: false`

## CI/CD

GitHub Actions(`.github/workflows/build.yml`):
- 触发:push 到 main 或 `v*` tag
- 矩阵构建:Windows + macOS
- 产出:上传至 GitHub Releases