@geeseeker/easyai-dev 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <h1 align="center">🤖 easyAI</h1>
2
+ <h1 align="center">🤖 easyAI-Dev</h1>
3
3
  <p align="center">
4
4
  <strong>让用户以纯客户的视角进行软件开发</strong><br>
5
5
  用户只需提需求、审批方案、验收结果。
@@ -21,13 +21,13 @@ easyAI 是一个为 [Antigravity IDE](https://antigravity.google/) 打造的 **A
21
21
 
22
22
  ### 核心特性
23
23
 
24
- | 特性 | 说明 |
25
- |------|------|
26
- | 🎯 **角色驱动** | PM 管需求和验收,Worker 管编码和测试 |
24
+ | 特性 | 说明 |
25
+ | --------------- | ---------------------------------------------------- |
26
+ | 🎯 **角色驱动** | PM 管需求和验收,Worker 管编码和测试 |
27
27
  | 📋 **任务管理** | 完整的任务生命周期:创建 → 分配 → 执行 → 验收 → 归档 |
28
- | 🧠 **记忆系统** | journal 日志 + Artifacts 沉淀,跨会话不丢失上下文 |
29
- | 🛡️ **反幻觉** | 第三方 API 必须查文档,禁止凭记忆编码 |
30
- | ✅ **TDD 铁律** | 所有新功能必须先写测试,Worker 无法跳过 |
28
+ | 🧠 **记忆系统** | journal 日志 + Artifacts 沉淀,跨会话不丢失上下文 |
29
+ | 🛡️ **反幻觉** | 第三方 API 必须查文档,禁止凭记忆编码 |
30
+ | ✅ **TDD 铁律** | 所有新功能必须先写测试,Worker 无法跳过 |
31
31
  | 🔧 **MCP 集成** | 19 个工具 + 5 个数据源,通过 MCP 协议与 IDE 深度集成 |
32
32
 
33
33
  ---
@@ -28,6 +28,7 @@ import { register as registerContextBudget } from "./tools/context-budget.js";
28
28
  import { register as registerSpecValidate } from "./tools/spec-validate.js";
29
29
  import { register as registerPlanValidate } from "./tools/plan-validate.js";
30
30
  import { register as registerConflictCheck } from "./tools/conflict-check.js";
31
+ import { registerFrameworkInit, registerFrameworkCheck, registerFrameworkUpdate, } from "./tools/framework-tools.js";
31
32
  // 资源模块导入
32
33
  import { register as registerStatusResource } from "./resources/status-resource.js";
33
34
  import { register as registerTaskContextResource } from "./resources/task-context-resource.js";
@@ -99,6 +100,9 @@ registerContextBudget(server);
99
100
  registerSpecValidate(server);
100
101
  registerPlanValidate(server);
101
102
  registerConflictCheck(server);
103
+ registerFrameworkInit(server);
104
+ registerFrameworkCheck(server);
105
+ registerFrameworkUpdate(server);
102
106
  // ============================================
103
107
  // 注册所有资源模块
104
108
  // ============================================
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 框架管理工具 — framework_init / framework_check / framework_update
3
+ *
4
+ * 让 AI 通过 MCP 工具直接执行框架初始化、检查和更新,
5
+ * 用户无需离开 IDE,无需使用命令行。
6
+ */
7
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ /**
9
+ * 注册 framework_init 工具
10
+ */
11
+ export declare function registerFrameworkInit(server: McpServer): void;
12
+ /**
13
+ * 注册 framework_check 工具
14
+ */
15
+ export declare function registerFrameworkCheck(server: McpServer): void;
16
+ /**
17
+ * 注册 framework_update 工具
18
+ */
19
+ export declare function registerFrameworkUpdate(server: McpServer): void;
20
+ //# sourceMappingURL=framework-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework-tools.d.ts","sourceRoot":"","sources":["../../src/tools/framework-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqHpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyI7D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkG9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+H/D"}
@@ -0,0 +1,412 @@
1
+ /**
2
+ * 框架管理工具 — framework_init / framework_check / framework_update
3
+ *
4
+ * 让 AI 通过 MCP 工具直接执行框架初始化、检查和更新,
5
+ * 用户无需离开 IDE,无需使用命令行。
6
+ */
7
+ import { z } from "zod";
8
+ import * as fs from "node:fs";
9
+ import * as path from "node:path";
10
+ import { fileURLToPath } from "node:url";
11
+ import { execSync } from "node:child_process";
12
+ // ============ 常量 ============
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = path.dirname(__filename);
15
+ // skeleton 在 npm 包中的位置:lib/server/tools/ → 向上 3 级 → skeleton/
16
+ const SKELETON_DIR = path.resolve(__dirname, "..", "..", "..", "skeleton");
17
+ // 框架版本(与 package.json 保持一致)
18
+ const FRAMEWORK_VERSION = "3.0.0";
19
+ // 必需目录
20
+ const REQUIRED_DIRS = [
21
+ ".agents/rules",
22
+ ".agents/workflows",
23
+ ".agents/skills",
24
+ ".trellis/config",
25
+ ".trellis/spec",
26
+ ".trellis/tasks",
27
+ ".trellis/workspace",
28
+ ".docs/requirements",
29
+ ".docs/design",
30
+ ".docs/guides",
31
+ ".docs/notes",
32
+ ".docs/archive",
33
+ ];
34
+ // 必需文件
35
+ const REQUIRED_FILES = [
36
+ ".agents/rules/project-identity.md",
37
+ ".agents/rules/anti-hallucination.md",
38
+ ".agents/rules/coding-standards.md",
39
+ ".agents/workflows/pm.md",
40
+ ".agents/workflows/worker.md",
41
+ ".trellis/config/config.yaml",
42
+ ".easyai-version",
43
+ ];
44
+ // ============ 工具函数 ============
45
+ /**
46
+ * 递归复制目录
47
+ */
48
+ function copyDirSync(src, dest, noOverwrite = false) {
49
+ const logs = [];
50
+ fs.mkdirSync(dest, { recursive: true });
51
+ const entries = fs.readdirSync(src, { withFileTypes: true });
52
+ for (const entry of entries) {
53
+ const srcPath = path.join(src, entry.name);
54
+ const destPath = path.join(dest, entry.name);
55
+ if (entry.isDirectory()) {
56
+ logs.push(...copyDirSync(srcPath, destPath, noOverwrite));
57
+ }
58
+ else {
59
+ if (noOverwrite && fs.existsSync(destPath)) {
60
+ logs.push(`⊘ 跳过(已存在): ${entry.name}`);
61
+ continue;
62
+ }
63
+ fs.copyFileSync(srcPath, destPath);
64
+ }
65
+ }
66
+ return logs;
67
+ }
68
+ /**
69
+ * 合并 .gitignore
70
+ */
71
+ function mergeGitignore(targetDir) {
72
+ const skeletonGitignore = path.join(SKELETON_DIR, ".gitignore");
73
+ const targetGitignore = path.join(targetDir, ".gitignore");
74
+ if (!fs.existsSync(skeletonGitignore)) {
75
+ return "⊘ skeleton 中无 .gitignore";
76
+ }
77
+ const skeletonLines = fs
78
+ .readFileSync(skeletonGitignore, "utf-8")
79
+ .split("\n")
80
+ .map((l) => l.trim())
81
+ .filter((l) => l && !l.startsWith("#"));
82
+ if (!fs.existsSync(targetGitignore)) {
83
+ fs.copyFileSync(skeletonGitignore, targetGitignore);
84
+ return "✓ .gitignore 已创建";
85
+ }
86
+ const existingLines = fs
87
+ .readFileSync(targetGitignore, "utf-8")
88
+ .split("\n")
89
+ .map((l) => l.trim());
90
+ const newLines = skeletonLines.filter((l) => !existingLines.includes(l));
91
+ if (newLines.length > 0) {
92
+ fs.appendFileSync(targetGitignore, "\n\n# easyAI 框架\n" + newLines.join("\n") + "\n");
93
+ return `✓ .gitignore 已追加 ${newLines.length} 条规则`;
94
+ }
95
+ return "⊘ .gitignore 无需更新";
96
+ }
97
+ // ============ 注册工具 ============
98
+ /**
99
+ * 注册 framework_init 工具
100
+ */
101
+ export function registerFrameworkInit(server) {
102
+ server.tool("framework_init", "在指定目录初始化 easyAI 框架。复制 .agents/、.trellis/、.docs/ 骨架到项目中。" +
103
+ "支持新项目和已有项目集成(不覆盖已有的 README.md 和 .gitignore)。", {
104
+ targetDir: z
105
+ .string()
106
+ .describe("目标项目目录的绝对路径。默认为当前工作目录。")
107
+ .optional(),
108
+ }, async ({ targetDir: inputDir }) => {
109
+ try {
110
+ const targetDir = inputDir || process.cwd();
111
+ const resolvedDir = path.resolve(targetDir);
112
+ // 检查 skeleton 是否存在
113
+ if (!fs.existsSync(SKELETON_DIR)) {
114
+ return {
115
+ content: [
116
+ {
117
+ type: "text",
118
+ text: JSON.stringify({
119
+ success: false,
120
+ error: `骨架目录不存在: ${SKELETON_DIR}`,
121
+ }),
122
+ },
123
+ ],
124
+ isError: true,
125
+ };
126
+ }
127
+ // 检查是否已初始化
128
+ const agentsDir = path.join(resolvedDir, ".agents");
129
+ const trellisDir = path.join(resolvedDir, ".trellis");
130
+ if (fs.existsSync(agentsDir) && fs.existsSync(trellisDir)) {
131
+ return {
132
+ content: [
133
+ {
134
+ type: "text",
135
+ text: JSON.stringify({
136
+ success: false,
137
+ error: "项目已初始化过(.agents/ 和 .trellis/ 已存在)。" +
138
+ "如需更新框架,请使用 framework_update 工具。",
139
+ }),
140
+ },
141
+ ],
142
+ };
143
+ }
144
+ // 检测是否是已有项目
145
+ fs.mkdirSync(resolvedDir, { recursive: true });
146
+ const isExisting = fs.readdirSync(resolvedDir).filter((f) => !f.startsWith("."))
147
+ .length > 0;
148
+ const logs = [];
149
+ logs.push(isExisting ? "模式: 集成到已有项目" : "模式: 新项目初始化");
150
+ // 复制 .agents/
151
+ const agentsSrc = path.join(SKELETON_DIR, ".agents");
152
+ if (fs.existsSync(agentsSrc)) {
153
+ copyDirSync(agentsSrc, path.join(resolvedDir, ".agents"));
154
+ logs.push("✓ .agents/ — 规则 + 工作流 + Skills");
155
+ }
156
+ // 复制 .trellis/
157
+ const trellisSrc = path.join(SKELETON_DIR, ".trellis");
158
+ if (fs.existsSync(trellisSrc)) {
159
+ copyDirSync(trellisSrc, path.join(resolvedDir, ".trellis"));
160
+ logs.push("✓ .trellis/ — 配置 + 规范 + 任务骨架");
161
+ }
162
+ // 复制 .docs/
163
+ const docsSrc = path.join(SKELETON_DIR, ".docs");
164
+ if (fs.existsSync(docsSrc)) {
165
+ copyDirSync(docsSrc, path.join(resolvedDir, ".docs"));
166
+ logs.push("✓ .docs/ — 文档空间");
167
+ }
168
+ // 合并 .gitignore
169
+ logs.push(mergeGitignore(resolvedDir));
170
+ // README.md(不覆盖已有)
171
+ const readmeSrc = path.join(SKELETON_DIR, "README.md");
172
+ const readmeDest = path.join(resolvedDir, "README.md");
173
+ if (fs.existsSync(readmeSrc) && !fs.existsSync(readmeDest)) {
174
+ fs.copyFileSync(readmeSrc, readmeDest);
175
+ logs.push("✓ README.md 已创建");
176
+ }
177
+ else if (fs.existsSync(readmeDest)) {
178
+ logs.push("⊘ README.md 已存在,跳过");
179
+ }
180
+ // 版本清单
181
+ fs.writeFileSync(path.join(resolvedDir, ".easyai-version"), `${FRAMEWORK_VERSION}\n`);
182
+ logs.push(`✓ .easyai-version — v${FRAMEWORK_VERSION}`);
183
+ return {
184
+ content: [
185
+ {
186
+ type: "text",
187
+ text: JSON.stringify({
188
+ success: true,
189
+ version: FRAMEWORK_VERSION,
190
+ targetDir: resolvedDir,
191
+ logs,
192
+ nextStep: "框架初始化完成!输入 /pm 启动项目经理,开始开发。",
193
+ }),
194
+ },
195
+ ],
196
+ };
197
+ }
198
+ catch (error) {
199
+ return {
200
+ content: [
201
+ {
202
+ type: "text",
203
+ text: JSON.stringify({
204
+ success: false,
205
+ error: error instanceof Error ? error.message : String(error),
206
+ }),
207
+ },
208
+ ],
209
+ isError: true,
210
+ };
211
+ }
212
+ });
213
+ }
214
+ /**
215
+ * 注册 framework_check 工具
216
+ */
217
+ export function registerFrameworkCheck(server) {
218
+ server.tool("framework_check", "检查当前项目的 easyAI 框架完整性。验证必需目录、文件、版本和 Git 状态。", {
219
+ targetDir: z
220
+ .string()
221
+ .describe("目标项目目录的绝对路径。默认为当前工作目录。")
222
+ .optional(),
223
+ }, async ({ targetDir: inputDir }) => {
224
+ try {
225
+ const targetDir = inputDir || process.cwd();
226
+ const resolvedDir = path.resolve(targetDir);
227
+ const results = {
228
+ dirs: [],
229
+ files: [],
230
+ version: { installed: null, latest: FRAMEWORK_VERSION, upToDate: false },
231
+ git: { initialized: false },
232
+ summary: { missing: 0, warnings: 0, total: 0 },
233
+ };
234
+ // 检查目录
235
+ for (const dir of REQUIRED_DIRS) {
236
+ const exists = fs.existsSync(path.join(resolvedDir, dir));
237
+ results.dirs.push({ path: dir, exists });
238
+ if (!exists)
239
+ results.summary.missing++;
240
+ }
241
+ // 检查文件
242
+ for (const file of REQUIRED_FILES) {
243
+ const exists = fs.existsSync(path.join(resolvedDir, file));
244
+ results.files.push({ path: file, exists });
245
+ if (!exists)
246
+ results.summary.missing++;
247
+ }
248
+ // 检查版本
249
+ const versionFile = path.join(resolvedDir, ".easyai-version");
250
+ if (fs.existsSync(versionFile)) {
251
+ const installed = fs.readFileSync(versionFile, "utf-8").trim();
252
+ results.version.installed = installed;
253
+ results.version.upToDate = installed === FRAMEWORK_VERSION;
254
+ if (!results.version.upToDate)
255
+ results.summary.warnings++;
256
+ }
257
+ else {
258
+ results.summary.missing++;
259
+ }
260
+ // 检查 Git
261
+ try {
262
+ execSync("git rev-parse --is-inside-work-tree", {
263
+ cwd: resolvedDir,
264
+ stdio: "pipe",
265
+ });
266
+ results.git.initialized = true;
267
+ }
268
+ catch {
269
+ results.git.initialized = false;
270
+ results.summary.warnings++;
271
+ }
272
+ results.summary.total =
273
+ REQUIRED_DIRS.length + REQUIRED_FILES.length + 1;
274
+ return {
275
+ content: [
276
+ {
277
+ type: "text",
278
+ text: JSON.stringify(results, null, 2),
279
+ },
280
+ ],
281
+ };
282
+ }
283
+ catch (error) {
284
+ return {
285
+ content: [
286
+ {
287
+ type: "text",
288
+ text: JSON.stringify({
289
+ success: false,
290
+ error: error instanceof Error ? error.message : String(error),
291
+ }),
292
+ },
293
+ ],
294
+ isError: true,
295
+ };
296
+ }
297
+ });
298
+ }
299
+ /**
300
+ * 注册 framework_update 工具
301
+ */
302
+ export function registerFrameworkUpdate(server) {
303
+ server.tool("framework_update", "更新 easyAI 框架到最新版本。只更新 .agents/ 和 .trellis/spec/," +
304
+ "不覆盖用户数据(.trellis/config/、tasks/、workspace/、.docs/)。" +
305
+ "更新前会自动备份旧文件。", {
306
+ targetDir: z
307
+ .string()
308
+ .describe("目标项目目录的绝对路径。默认为当前工作目录。")
309
+ .optional(),
310
+ }, async ({ targetDir: inputDir }) => {
311
+ try {
312
+ const targetDir = inputDir || process.cwd();
313
+ const resolvedDir = path.resolve(targetDir);
314
+ // 确认已初始化
315
+ if (!fs.existsSync(path.join(resolvedDir, ".agents"))) {
316
+ return {
317
+ content: [
318
+ {
319
+ type: "text",
320
+ text: JSON.stringify({
321
+ success: false,
322
+ error: "项目未初始化,请先使用 framework_init 工具。",
323
+ }),
324
+ },
325
+ ],
326
+ };
327
+ }
328
+ // 检查版本
329
+ const versionFile = path.join(resolvedDir, ".easyai-version");
330
+ let installedVersion = "unknown";
331
+ if (fs.existsSync(versionFile)) {
332
+ installedVersion = fs.readFileSync(versionFile, "utf-8").trim();
333
+ }
334
+ if (installedVersion === FRAMEWORK_VERSION) {
335
+ return {
336
+ content: [
337
+ {
338
+ type: "text",
339
+ text: JSON.stringify({
340
+ success: true,
341
+ message: `框架已是最新版本 (v${FRAMEWORK_VERSION})`,
342
+ updated: false,
343
+ }),
344
+ },
345
+ ],
346
+ };
347
+ }
348
+ const logs = [];
349
+ logs.push(`更新: v${installedVersion} → v${FRAMEWORK_VERSION}`);
350
+ // 更新 .agents/(完整替换,先备份)
351
+ const agentsSrc = path.join(SKELETON_DIR, ".agents");
352
+ const agentsDest = path.join(resolvedDir, ".agents");
353
+ if (fs.existsSync(agentsSrc) && fs.existsSync(agentsDest)) {
354
+ const backupName = `.agents.bak.${Date.now()}`;
355
+ fs.renameSync(agentsDest, path.join(resolvedDir, backupName));
356
+ copyDirSync(agentsSrc, agentsDest);
357
+ logs.push(`✓ .agents/ 已更新(备份: ${backupName})`);
358
+ }
359
+ // 更新 .trellis/spec/(完整替换,先备份)
360
+ const specSrc = path.join(SKELETON_DIR, ".trellis", "spec");
361
+ const specDest = path.join(resolvedDir, ".trellis", "spec");
362
+ if (fs.existsSync(specSrc) && fs.existsSync(specDest)) {
363
+ const backupName = `spec.bak.${Date.now()}`;
364
+ fs.renameSync(specDest, path.join(resolvedDir, ".trellis", backupName));
365
+ copyDirSync(specSrc, specDest);
366
+ logs.push("✓ .trellis/spec/ 已更新");
367
+ }
368
+ // 更新版本
369
+ fs.writeFileSync(versionFile, `${FRAMEWORK_VERSION}\n`);
370
+ logs.push(`✓ .easyai-version → v${FRAMEWORK_VERSION}`);
371
+ // 未修改的内容
372
+ const preserved = [
373
+ ".trellis/config/config.yaml",
374
+ ".trellis/tasks/",
375
+ ".trellis/workspace/",
376
+ ".docs/",
377
+ "README.md",
378
+ ".gitignore",
379
+ ];
380
+ return {
381
+ content: [
382
+ {
383
+ type: "text",
384
+ text: JSON.stringify({
385
+ success: true,
386
+ updated: true,
387
+ fromVersion: installedVersion,
388
+ toVersion: FRAMEWORK_VERSION,
389
+ logs,
390
+ preserved,
391
+ }),
392
+ },
393
+ ],
394
+ };
395
+ }
396
+ catch (error) {
397
+ return {
398
+ content: [
399
+ {
400
+ type: "text",
401
+ text: JSON.stringify({
402
+ success: false,
403
+ error: error instanceof Error ? error.message : String(error),
404
+ }),
405
+ },
406
+ ],
407
+ isError: true,
408
+ };
409
+ }
410
+ });
411
+ }
412
+ //# sourceMappingURL=framework-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework-tools.js","sourceRoot":"","sources":["../../src/tools/framework-tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geeseeker/easyai-dev",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "easyAI — 让用户以纯客户的视角进行软件开发",
5
5
  "type": "module",
6
6
  "bin": {