ethan-skill 1.2.1 → 1.5.0

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.
@@ -45,8 +45,38 @@ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
45
45
  const index_1 = require("../skills/index");
46
46
  const pipeline_1 = require("../skills/pipeline");
47
47
  const state_1 = require("../workflow/state");
48
+ const utils_1 = require("../git/utils");
48
49
  const fs = __importStar(require("fs"));
49
50
  const path = __importStar(require("path"));
51
+ const os = __importStar(require("os"));
52
+ function searchMemoryEntries(query, cwd) {
53
+ const dirs = [
54
+ path.join(cwd, '.ethan', 'memory'),
55
+ path.join(os.homedir(), '.ethan-memory'),
56
+ ];
57
+ const results = [];
58
+ const q = query.toLowerCase();
59
+ for (const dir of dirs) {
60
+ if (!fs.existsSync(dir))
61
+ continue;
62
+ try {
63
+ const files = fs.readdirSync(dir).filter((f) => f.endsWith('.json'));
64
+ for (const file of files) {
65
+ try {
66
+ const entry = JSON.parse(fs.readFileSync(path.join(dir, file), 'utf-8'));
67
+ if (entry.title.toLowerCase().includes(q) ||
68
+ entry.content.toLowerCase().includes(q) ||
69
+ (entry.tags || []).some((t) => t.toLowerCase().includes(q))) {
70
+ results.push(entry);
71
+ }
72
+ }
73
+ catch { /* skip invalid */ }
74
+ }
75
+ }
76
+ catch { /* skip unreadable dir */ }
77
+ }
78
+ return results.slice(0, 10);
79
+ }
50
80
  const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, '../../package.json'), 'utf-8'));
51
81
  /**
52
82
  * 将 SkillDefinition 转换为 MCP Tool 定义
@@ -160,10 +190,97 @@ async function startMcpServer() {
160
190
  required: [],
161
191
  },
162
192
  };
193
+ const memorySearchTool = {
194
+ name: 'ethan_memory_search',
195
+ description: '在 Skill 记忆库中搜索历史工作流归档、自定义条目。支持按标题、内容、标签模糊搜索,返回最多 10 条匹配结果。',
196
+ inputSchema: {
197
+ type: 'object',
198
+ properties: {
199
+ query: {
200
+ type: 'string',
201
+ description: '搜索关键词(匹配标题、内容或标签)',
202
+ },
203
+ cwd: {
204
+ type: 'string',
205
+ description: '项目目录路径(默认使用 MCP server 启动时的工作目录)',
206
+ },
207
+ },
208
+ required: ['query'],
209
+ },
210
+ };
211
+ const estimateTool = {
212
+ name: 'ethan_estimate',
213
+ description: '根据任务描述生成研发工时估算提示词,输出乐观/正常/悲观三点估算及 T-shirt Size,辅助 Sprint 规划。',
214
+ inputSchema: {
215
+ type: 'object',
216
+ properties: {
217
+ description: {
218
+ type: 'string',
219
+ description: '任务或功能描述,越详细估算越准确',
220
+ },
221
+ style: {
222
+ type: 'string',
223
+ enum: ['hours', 'story-points', 'days'],
224
+ description: '估算单位:hours(小时)/ story-points(故事点)/ days(人天),默认 hours',
225
+ default: 'hours',
226
+ },
227
+ team: {
228
+ type: 'string',
229
+ description: '团队规模(如 "2人"),可选',
230
+ },
231
+ },
232
+ required: ['description'],
233
+ },
234
+ };
235
+ const gitCommitTool = {
236
+ name: 'ethan_git_commit',
237
+ description: '读取当前 git 仓库的 staged diff,生成符合 Conventional Commits 规范的提交信息(type(scope): subject + body)。需要在 git 项目目录中运行。',
238
+ inputSchema: {
239
+ type: 'object',
240
+ properties: {
241
+ cwd: {
242
+ type: 'string',
243
+ description: '项目目录路径(默认使用 MCP server 启动时的工作目录)',
244
+ },
245
+ hint: {
246
+ type: 'string',
247
+ description: '��外说明(如 commit 的业务背景),可选',
248
+ },
249
+ },
250
+ required: [],
251
+ },
252
+ };
253
+ const gitReviewTool = {
254
+ name: 'ethan_git_review',
255
+ description: '读取当前分支与主分支的 diff,生成 Blocker / Major / Minor 分级 Code Review 提示词。需要在 git 项目目录中运行。',
256
+ inputSchema: {
257
+ type: 'object',
258
+ properties: {
259
+ cwd: {
260
+ type: 'string',
261
+ description: '项目目录路径(默认使用 MCP server 启动时的工作目录)',
262
+ },
263
+ base: {
264
+ type: 'string',
265
+ description: '对比的基准分支,默认自动检测(main 或 master)',
266
+ },
267
+ },
268
+ required: [],
269
+ },
270
+ };
163
271
  // 注册工具列表处理器
164
272
  server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
165
273
  return {
166
- tools: [...index_1.ALL_SKILLS.map(skillToMcpTool), pipelineTool, workflowNextTool, workflowStatusTool],
274
+ tools: [
275
+ ...index_1.ALL_SKILLS.map(skillToMcpTool),
276
+ pipelineTool,
277
+ workflowNextTool,
278
+ workflowStatusTool,
279
+ memorySearchTool,
280
+ estimateTool,
281
+ gitCommitTool,
282
+ gitReviewTool,
283
+ ],
167
284
  };
168
285
  });
169
286
  // 注册工具调用处理器
@@ -309,8 +426,124 @@ async function startMcpServer() {
309
426
  content: [{ type: 'text', text: result }],
310
427
  };
311
428
  }
312
- const skill = index_1.ALL_SKILLS.find((s) => s.nameEn === name);
313
- if (!skill) {
429
+ // ── ethan_memory_search ────────────────────────────────────────────────
430
+ if (name === 'ethan_memory_search') {
431
+ const query = (args?.query || '').trim();
432
+ const cwd = args?.cwd || process.cwd();
433
+ if (!query) {
434
+ return {
435
+ content: [{ type: 'text', text: '❌ 请提供搜索关键词(query 参数不能为空)' }],
436
+ isError: true,
437
+ };
438
+ }
439
+ const entries = searchMemoryEntries(query, cwd);
440
+ if (entries.length === 0) {
441
+ return {
442
+ content: [{ type: 'text', text: `🔍 未找到与 "${query}" 相关的记忆条目。\n\n使用 \`ethan memory add\` 添加条目,或完成工作流后自动归档。` }],
443
+ };
444
+ }
445
+ let text = `# 记忆库搜索结果:"${query}"\n\n共找到 ${entries.length} 条匹配\n\n`;
446
+ entries.forEach((e, i) => {
447
+ text += `## ${i + 1}. ${e.title}\n\n`;
448
+ text += `- **���型**: ${e.type}${e.skillId ? ` · Skill: ${e.skillId}` : ''}${e.pipelineId ? ` · Pipeline: ${e.pipelineId}` : ''}\n`;
449
+ text += `- **标签**: ${e.tags.length ? e.tags.join(', ') : '无'}\n`;
450
+ text += `- **时间**: ${e.createdAt}\n\n`;
451
+ text += `${e.content}\n\n---\n\n`;
452
+ });
453
+ return { content: [{ type: 'text', text }] };
454
+ }
455
+ // ── ethan_estimate ────────────────────────────────────────────────────
456
+ if (name === 'ethan_estimate') {
457
+ const description = (args?.description || '').trim();
458
+ const style = (args?.style || 'hours');
459
+ const team = args?.team || '';
460
+ if (!description) {
461
+ return {
462
+ content: [{ type: 'text', text: '❌ 请提供任务描述(description 参数不能为空)' }],
463
+ isError: true,
464
+ };
465
+ }
466
+ const unitLabel = style === 'hours' ? '小时' : style === 'story-points' ? '故事点' : '人天';
467
+ let prompt = `# 研发工时估算\n\n`;
468
+ prompt += `## 任务描述\n\n${description}\n\n`;
469
+ if (team)
470
+ prompt += `**团队规模**:${team}\n\n`;
471
+ prompt += `## 估算要求\n\n`;
472
+ prompt += `请按以下格式输出工时估算报告(单位:${unitLabel}):\n\n`;
473
+ prompt += `1. **任务拆解**:将任务拆解为子任务,分别估算\n`;
474
+ prompt += `2. **三点估算**(每个子任务):\n`;
475
+ prompt += ` - 乐观(O):一切顺利的情况\n`;
476
+ prompt += ` - 正常(M):常规工作节奏\n`;
477
+ prompt += ` - 悲观(P):遇到阻力或不确定因素\n`;
478
+ prompt += ` - 加权平均(E = (O + 4M + P) / 6)\n`;
479
+ prompt += `3. **T-shirt Size**:XS / S / M / L / XL / XXL\n`;
480
+ prompt += `4. **风险项**:列出可能影响估算的不确定因素\n`;
481
+ prompt += `5. **总计**:所有子任务加权平均之和\n\n`;
482
+ prompt += `> 注意:估算基于正常工作节奏,不含代码审查和 QA 时间(除非任务描述中明确包含)`;
483
+ return { content: [{ type: 'text', text: prompt }] };
484
+ }
485
+ // ── ethan_git_commit ──────────────────────────────────────────────────
486
+ if (name === 'ethan_git_commit') {
487
+ const cwd = args?.cwd || process.cwd();
488
+ const hint = (args?.hint || '').trim();
489
+ if (!(0, utils_1.isGitRepo)(cwd)) {
490
+ return {
491
+ content: [{ type: 'text', text: `❌ ${cwd} 不是 git 仓库,请在 git 项目目录中运行。` }],
492
+ isError: true,
493
+ };
494
+ }
495
+ const diff = (0, utils_1.getStagedDiff)(cwd);
496
+ if (!diff.trim()) {
497
+ return {
498
+ content: [{ type: 'text', text: '⚠️ 暂存区为空(没有 staged 的文件)。请先 `git add` 需要提交的文件。' }],
499
+ };
500
+ }
501
+ const truncated = (0, utils_1.truncateDiff)(diff, 6000);
502
+ let prompt = `# 生成 Conventional Commit 提交信息\n\n`;
503
+ if (hint)
504
+ prompt += `**业务背景**:${hint}\n\n`;
505
+ prompt += `## Staged 变更\n\n\`\`\`diff\n${truncated}\n\`\`\`\n\n`;
506
+ prompt += `## 要求\n\n`;
507
+ prompt += `请根据以上 diff 生成符合 **Conventional Commits** 规范的提交信息:\n\n`;
508
+ prompt += `格式:\`type(scope): subject\`\n\n`;
509
+ prompt += `- **type**: feat | fix | refactor | perf | test | docs | chore | style | ci | build\n`;
510
+ prompt += `- **scope**: 变更模块(可选,用括号包裹)\n`;
511
+ prompt += `- **subject**: 简洁描述(英文小写,不超过 50 字符,不加句号)\n`;
512
+ prompt += `- **body**(可选):详细说明 What/Why,每行不超过 72 字符\n`;
513
+ prompt += `- **BREAKING CHANGE**(如有):在 footer 中注明\n\n`;
514
+ prompt += `请直接输出最终提交信息(可提供 2-3 个候选,按推荐度排序):`;
515
+ return { content: [{ type: 'text', text: prompt }] };
516
+ }
517
+ // ── ethan_git_review ──────────────────────────────────────────────────
518
+ if (name === 'ethan_git_review') {
519
+ const cwd = args?.cwd || process.cwd();
520
+ const base = args?.base || '';
521
+ if (!(0, utils_1.isGitRepo)(cwd)) {
522
+ return {
523
+ content: [{ type: 'text', text: `❌ ${cwd} 不是 git 仓库,请在 git 项目目录中运行。` }],
524
+ isError: true,
525
+ };
526
+ }
527
+ const diff = (0, utils_1.getBranchDiff)(cwd, base || undefined);
528
+ if (!diff.trim()) {
529
+ return {
530
+ content: [{ type: 'text', text: '⚠️ 当前分支与基准分支没有差异,无需 Code Review。' }],
531
+ };
532
+ }
533
+ const truncated = (0, utils_1.truncateDiff)(diff, 7000);
534
+ let prompt = `# Code Review — Blocker / Major / Minor\n\n`;
535
+ prompt += `## 变更 Diff\n\n\`\`\`diff\n${truncated}\n\`\`\`\n\n`;
536
+ prompt += `## 审查要求\n\n`;
537
+ prompt += `请对以上变更进行系统性 Code Review,按以下分级输出问题:\n\n`;
538
+ prompt += `### 🔴 Blocker(阻断合并)\n必须修复才能合并,如:逻辑错误、安全漏洞、数据丢失风险\n\n`;
539
+ prompt += `### 🟠 Major(强烈建议修复)\n不会直接阻断合并,但影响代码质量,如:性能问题、可维护性差、不符合最佳实践\n\n`;
540
+ prompt += `### 🟡 Minor(可以忽略)\n小改进建议,如:命名优化、注释补充、代码风格\n\n`;
541
+ prompt += `### ✅ 亮点\n值得表扬的优秀设计或实现\n\n`;
542
+ prompt += `---\n\n请逐文件审查,每个问题注明文件路径 + 行号(如可识别),并给出修改建议。`;
543
+ return { content: [{ type: 'text', text: prompt }] };
544
+ }
545
+ const skillResult = index_1.ALL_SKILLS.find((s) => s.nameEn === name);
546
+ if (!skillResult) {
314
547
  return {
315
548
  content: [
316
549
  {
@@ -323,7 +556,7 @@ async function startMcpServer() {
323
556
  }
324
557
  const context = args?.context || '';
325
558
  const format = (args?.format || 'full');
326
- const result = executeSkill(skill, context, format);
559
+ const result = executeSkill(skillResult, context, format);
327
560
  return {
328
561
  content: [
329
562
  {
@@ -333,11 +566,10 @@ async function startMcpServer() {
333
566
  ],
334
567
  };
335
568
  });
336
- // 启动 stdio transport
337
569
  const transport = new stdio_js_1.StdioServerTransport();
338
570
  await server.connect(transport);
339
571
  // MCP server 运行时不输出到 stdout(会破坏协议)
340
- process.stderr.write(`Ethan MCP Server v${pkg.version} running (${index_1.ALL_SKILLS.length} skill tools + ethan_pipeline + ethan_workflow_next + ethan_workflow_status, ${pipeline_1.PIPELINES.length} pipelines)\n`);
572
+ process.stderr.write(`Ethan MCP Server v${pkg.version} running (${index_1.ALL_SKILLS.length} skill tools + ethan_pipeline + ethan_workflow_next + ethan_workflow_status + ethan_memory_search + ethan_estimate + ethan_git_commit + ethan_git_review, ${pipeline_1.PIPELINES.length} pipelines)\n`);
341
573
  }
342
574
  // 直接运行时启动
343
575
  if (require.main === module) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 工作流会话状态管理
3
- * 持久化到 .ethan/workflow.json
3
+ * 持久化到 .ethan/workflow.json(默认)或 .ethan/sessions/<name>.json(具名会话)
4
4
  */
5
5
  import type { SkillDefinition, PipelineDefinition } from '../skills/types';
6
6
  export type StepStatus = 'pending' | 'in-progress' | 'done' | 'skipped';
@@ -14,6 +14,8 @@ export interface WorkflowStep {
14
14
  }
15
15
  export interface WorkflowSession {
16
16
  id: string;
17
+ /** 具名会话名称(可选,T12 Named Sessions) */
18
+ name?: string;
17
19
  pipelineId: string;
18
20
  pipelineName: string;
19
21
  /** 用户最初的任务上下文描述 */
@@ -24,14 +26,16 @@ export interface WorkflowSession {
24
26
  /** 是否全部完成 */
25
27
  completed: boolean;
26
28
  }
27
- /** 读取当前 session */
28
- export declare function loadSession(cwd?: string): WorkflowSession | null;
29
- /** 保存 session */
30
- export declare function saveSession(session: WorkflowSession, cwd?: string): void;
31
- /** 删除 session(reset */
32
- export declare function deleteSession(cwd?: string): void;
33
- /** 创建新 session */
34
- export declare function createSession(pipeline: PipelineDefinition, initialContext: string, cwd?: string): WorkflowSession;
29
+ /** 读取当前 session(支持具名会话) */
30
+ export declare function loadSession(cwd?: string, sessionName?: string): WorkflowSession | null;
31
+ /** 保存 session(支持具名会话) */
32
+ export declare function saveSession(session: WorkflowSession, cwd?: string, sessionName?: string): void;
33
+ /** 删除 session(reset,支持具名会话) */
34
+ export declare function deleteSession(cwd?: string, sessionName?: string): void;
35
+ /** 列出所有具名会话 */
36
+ export declare function listNamedSessions(cwd?: string): WorkflowSession[];
37
+ /** 创建新 session(支持具名会话) */
38
+ export declare function createSession(pipeline: PipelineDefinition, initialContext: string, cwd?: string, sessionName?: string): WorkflowSession;
35
39
  /** 获取当前进行中的步骤(第一个 in-progress 或 pending) */
36
40
  export declare function getCurrentStep(session: WorkflowSession): WorkflowStep | null;
37
41
  /** 获取当前步骤序号(0-based) */
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AASD,mBAAmB;AACnB,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,eAAe,GAAG,IAAI,CAU/E;AAED,iBAAiB;AACjB,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAKvF;AAED,wBAAwB;AACxB,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,IAAI,CAG/D;AAED,kBAAkB;AAClB,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,cAAc,EAAE,MAAM,EACtB,GAAG,GAAE,MAAsB,GAC1B,eAAe,CAgBjB;AAED,4CAA4C;AAC5C,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAM5E;AAED,wBAAwB;AACxB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAIpE;AAED,yCAAyC;AACzC,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAsB,GAC1B,YAAY,GAAG,IAAI,CAkBrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,eAAe,GACrB,MAAM,CAmCR;AAED,cAAc;AACd,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAG7D"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAaD,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAUrG;AAED,yBAAyB;AACzB,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,GAAE,MAAsB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAO7G;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAGrF;AAED,eAAe;AACf,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,eAAe,EAAE,CAchF;AAED,0BAA0B;AAC1B,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,cAAc,EAAE,MAAM,EACtB,GAAG,GAAE,MAAsB,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CAiBjB;AAED,4CAA4C;AAC5C,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAM5E;AAED,wBAAwB;AACxB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAIpE;AAED,yCAAyC;AACzC,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAsB,GAC1B,YAAY,GAAG,IAAI,CAkBrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,eAAe,GACrB,MAAM,CAmCR;AAED,cAAc;AACd,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAG7D"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * 工作流会话状态管理
4
- * 持久化到 .ethan/workflow.json
4
+ * 持久化到 .ethan/workflow.json(默认)或 .ethan/sessions/<name>.json(具名会话)
5
5
  */
6
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
7
  if (k2 === undefined) k2 = k;
@@ -40,6 +40,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.loadSession = loadSession;
41
41
  exports.saveSession = saveSession;
42
42
  exports.deleteSession = deleteSession;
43
+ exports.listNamedSessions = listNamedSessions;
43
44
  exports.createSession = createSession;
44
45
  exports.getCurrentStep = getCurrentStep;
45
46
  exports.getCurrentStepIndex = getCurrentStepIndex;
@@ -50,12 +51,16 @@ const fs = __importStar(require("fs"));
50
51
  const path = __importStar(require("path"));
51
52
  const WORKFLOW_DIR = '.ethan';
52
53
  const WORKFLOW_FILE = 'workflow.json';
53
- function getWorkflowPath(cwd) {
54
+ const SESSIONS_DIR = 'sessions';
55
+ function getWorkflowPath(cwd, sessionName) {
56
+ if (sessionName) {
57
+ return path.join(cwd, WORKFLOW_DIR, SESSIONS_DIR, `${sessionName}.json`);
58
+ }
54
59
  return path.join(cwd, WORKFLOW_DIR, WORKFLOW_FILE);
55
60
  }
56
- /** 读取当前 session */
57
- function loadSession(cwd = process.cwd()) {
58
- const filePath = getWorkflowPath(cwd);
61
+ /** 读取当前 session(支持具名会话) */
62
+ function loadSession(cwd = process.cwd(), sessionName) {
63
+ const filePath = getWorkflowPath(cwd, sessionName);
59
64
  try {
60
65
  if (fs.existsSync(filePath)) {
61
66
  return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
@@ -66,24 +71,45 @@ function loadSession(cwd = process.cwd()) {
66
71
  }
67
72
  return null;
68
73
  }
69
- /** 保存 session */
70
- function saveSession(session, cwd = process.cwd()) {
71
- const dir = path.join(cwd, WORKFLOW_DIR);
74
+ /** 保存 session(支持具名会话) */
75
+ function saveSession(session, cwd = process.cwd(), sessionName) {
76
+ const name = sessionName || session.name;
77
+ const filePath = getWorkflowPath(cwd, name);
78
+ const dir = path.dirname(filePath);
72
79
  if (!fs.existsSync(dir))
73
80
  fs.mkdirSync(dir, { recursive: true });
74
81
  session.updatedAt = new Date().toISOString();
75
- fs.writeFileSync(getWorkflowPath(cwd), JSON.stringify(session, null, 2), 'utf-8');
82
+ fs.writeFileSync(filePath, JSON.stringify(session, null, 2), 'utf-8');
76
83
  }
77
- /** 删除 session(reset */
78
- function deleteSession(cwd = process.cwd()) {
79
- const filePath = getWorkflowPath(cwd);
84
+ /** 删除 session(reset,支持具名会话) */
85
+ function deleteSession(cwd = process.cwd(), sessionName) {
86
+ const filePath = getWorkflowPath(cwd, sessionName);
80
87
  if (fs.existsSync(filePath))
81
88
  fs.unlinkSync(filePath);
82
89
  }
83
- /** 创建新 session */
84
- function createSession(pipeline, initialContext, cwd = process.cwd()) {
90
+ /** 列出所有具名会话 */
91
+ function listNamedSessions(cwd = process.cwd()) {
92
+ const sessionsDir = path.join(cwd, WORKFLOW_DIR, SESSIONS_DIR);
93
+ if (!fs.existsSync(sessionsDir))
94
+ return [];
95
+ return fs
96
+ .readdirSync(sessionsDir)
97
+ .filter((f) => f.endsWith('.json'))
98
+ .map((f) => {
99
+ try {
100
+ return JSON.parse(fs.readFileSync(path.join(sessionsDir, f), 'utf-8'));
101
+ }
102
+ catch {
103
+ return null;
104
+ }
105
+ })
106
+ .filter((s) => s !== null);
107
+ }
108
+ /** 创建新 session(支持具名会话) */
109
+ function createSession(pipeline, initialContext, cwd = process.cwd(), sessionName) {
85
110
  const session = {
86
111
  id: Date.now().toString(36),
112
+ name: sessionName,
87
113
  pipelineId: pipeline.id,
88
114
  pipelineName: pipeline.name,
89
115
  initialContext,
@@ -95,7 +121,7 @@ function createSession(pipeline, initialContext, cwd = process.cwd()) {
95
121
  updatedAt: new Date().toISOString(),
96
122
  completed: false,
97
123
  };
98
- saveSession(session, cwd);
124
+ saveSession(session, cwd, sessionName);
99
125
  return session;
100
126
  }
101
127
  /** 获取当前进行中的步骤(第一个 in-progress 或 pending) */
@@ -127,7 +153,7 @@ function markStepDone(session, summary, cwd = process.cwd()) {
127
153
  else {
128
154
  session.completed = true;
129
155
  }
130
- saveSession(session, cwd);
156
+ saveSession(session, cwd, session.name);
131
157
  return nextIdx < session.steps.length ? session.steps[nextIdx] : null;
132
158
  }
133
159
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ethan-skill",
3
- "version": "1.2.1",
3
+ "version": "1.5.0",
4
4
  "description": "Ethan - Your AI Workflow Assistant",
5
5
  "keywords": [
6
6
  "ai-skill",
@@ -1,6 +1,6 @@
1
- # Ethan v1.2.1
1
+ # Ethan v1.5.0
2
2
 
3
- > Auto-generated from src/skills/ | 2026-03-22T04:57:44.673Z
3
+ > Auto-generated from src/skills/ | 2026-03-22T13:51:36.266Z
4
4
  > Do not edit manually. Source: src/skills/
5
5
 
6
6
  ## Ethan
@@ -1,5 +1,5 @@
1
- # Ethan v1.2.1
2
- # Generated: 2026-03-22T04:57:44.673Z
1
+ # Ethan v1.5.0
2
+ # Generated: 2026-03-22T13:51:36.266Z
3
3
  # Source: https://github.com/aokiz-ek/smart-flow-skill
4
4
 
5
5
  Ethan。当用户输入以下触发词时,按对应 Skill 的步骤执行。
@@ -1,6 +1,6 @@
1
- # Ethan v1.2.1
1
+ # Ethan v1.5.0
2
2
 
3
- Ethan - Your AI Workflow Assistant | Generated: 2026-03-22T04:57:44.673Z
3
+ Ethan - Your AI Workflow Assistant | Generated: 2026-03-22T13:51:36.266Z
4
4
 
5
5
  ## Skills
6
6
 
@@ -1,5 +1,5 @@
1
- # Ethan v1.2.1
2
- # Generated: 2026-03-22T04:57:44.673Z
1
+ # Ethan v1.5.0
2
+ # Generated: 2026-03-22T13:51:36.266Z
3
3
  # Source: https://github.com/aokiz-ek/smart-flow-skill
4
4
 
5
5
  Ethan(Continue)。当用户输入以下触发词时,按对应 Skill 的步骤执行。
@@ -1,6 +1,6 @@
1
- # Ethan - Copilot Instructions (v1.2.1)
1
+ # Ethan - Copilot Instructions (v1.5.0)
2
2
 
3
- > Auto-generated from src/skills/ | 2026-03-22T04:57:44.673Z
3
+ > Auto-generated from src/skills/ | 2026-03-22T13:51:36.266Z
4
4
  > Do not edit manually.
5
5
 
6
6
  You are equipped with the Ethan workflow assistant. When users mention any of the trigger keywords below, execute the corresponding skill workflow precisely.
@@ -1,7 +1,7 @@
1
- # Ethan v1.2.1
1
+ # Ethan v1.5.0
2
2
 
3
3
  > 自动生成 - 请勿手动修改,源文件:src/skills/
4
- > Generated at: 2026-03-22T04:57:44.673Z
4
+ > Generated at: 2026-03-22T13:51:36.266Z
5
5
 
6
6
  ## 触发词一览
7
7
  - 需求理解:需求理解、理解需求、分析需求
@@ -4,10 +4,10 @@ globs:
4
4
  alwaysApply: true
5
5
  ---
6
6
 
7
- # Ethan v1.2.1
7
+ # Ethan v1.5.0
8
8
 
9
9
  > 自动生成 - 请勿手动修改,源文件:src/skills/
10
- > Generated at: 2026-03-22T04:57:44.673Z
10
+ > Generated at: 2026-03-22T13:51:36.266Z
11
11
 
12
12
  本 Skill 提供 10 个标准化工作流节点,通过触发词激活对应的执行流程。
13
13
 
@@ -1,6 +1,6 @@
1
- # Ethan - JetBrains AI Instructions (v1.2.1)
1
+ # Ethan - JetBrains AI Instructions (v1.5.0)
2
2
 
3
- > Auto-generated from src/skills/ | 2026-03-22T04:57:44.673Z
3
+ > Auto-generated from src/skills/ | 2026-03-22T13:51:36.266Z
4
4
  > Do not edit manually.
5
5
 
6
6
  You are equipped with the Ethan workflow assistant for JetBrains AI. When users mention any of the trigger keywords below, execute the corresponding skill workflow precisely.
@@ -1,6 +1,6 @@
1
- # Ethan v1.2.1
1
+ # Ethan v1.5.0
2
2
 
3
- > 生成时间:2026-03-22T04:57:44.673Z
3
+ > 生成时间:2026-03-22T13:51:36.266Z
4
4
 
5
5
  ## 功能说明
6
6