speccore 5.69.4 → 5.69.5

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.
@@ -7,6 +7,8 @@ export interface PrOptions {
7
7
  interactive?: boolean;
8
8
  prompt?: boolean;
9
9
  response?: string;
10
+ confirm?: boolean;
11
+ commit?: boolean;
10
12
  }
11
13
  export declare function prCommand(options: PrOptions): Promise<void>;
12
14
  //# sourceMappingURL=pr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEjE"}
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoIjE"}
@@ -2,182 +2,139 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prCommand = prCommand;
4
4
  /**
5
- * pr — 自动创建 Pull Request + 链接 Task
5
+ * pr — AI 辅助:总结变更 + 检查分析对齐 + 安全提交
6
+ * 🔒 AI 命令,通过 --prompt/--response 协作
6
7
  */
7
8
  const fs_extra_1 = require("fs-extra");
8
9
  const path_1 = require("path");
9
10
  const child_process_1 = require("child_process");
10
11
  const logger_1 = require("../utils/logger");
11
12
  const context_1 = require("../core/context");
12
- const readline_1 = require("readline");
13
- const prompt_builder_1 = require("../core/prompt-builder");
14
- function promptUser(q) {
15
- const rl = (0, readline_1.createInterface)({ input: process.stdin, output: process.stdout });
16
- return new Promise(r => rl.question(`${q} `, a => { rl.close(); r(a.trim()); }));
17
- }
18
13
  async function prCommand(options) {
19
- // ── Prompt 模式 ──
14
+ // ── Prompt 模式:输出分析 Prompt 给 AI ──
20
15
  if (options.prompt) {
21
16
  const iter = options.iteration || await (0, context_1.getDefaultIteration)();
22
- const prompt = await (0, prompt_builder_1.buildPrompt)('analyze', { iteration: iter, task: options.task });
23
- process.stdout.write((0, prompt_builder_1.formatPrompt)(prompt));
24
- process.exitCode = 10;
25
- return;
26
- }
27
- // ── Response 模式 ──
28
- if (options.response && options.task) {
29
- logger_1.logger.success(`✅ PR 描述已生成:\n${options.response}`);
30
- return;
31
- }
32
- const iteration = await (0, context_1.getDefaultIteration)(options.iteration);
33
- if (!iteration) {
34
- logger_1.logger.error('No active iteration');
35
- return;
36
- }
37
- const iterDir = `Iteration-${iteration}`;
38
- let taskId = options.task;
39
- if (!taskId) {
40
- const branch = (0, child_process_1.execSync)('git branch --show-current', { encoding: 'utf-8' }).trim();
41
- const match = branch.match(/feature\/(Task-\d+)/);
42
- if (match)
43
- taskId = match[1];
44
- }
45
- if (!taskId) {
46
- logger_1.logger.error('请用 --task 指定任务');
47
- return;
48
- }
49
- const fs = require('fs');
50
- const entries = fs.readdirSync(iterDir, { withFileTypes: true });
51
- const taskEntry = entries.find((e) => e.isDirectory() && e.name.startsWith(taskId));
52
- if (!taskEntry) {
53
- logger_1.logger.error(`Task 未找到: ${taskId}`);
54
- return;
55
- }
56
- const taskName = taskEntry.name;
57
- const backendDir = (0, path_1.join)(iterDir, taskName, 'backend');
58
- try {
59
- const branch = (0, child_process_1.execSync)('git branch --show-current', { encoding: 'utf-8' }).trim();
60
- // ── Interactive mode ──
61
- if (options.interactive) {
62
- await interactivePrFlow(branch, backendDir, taskName, iteration, options);
17
+ if (!iter) {
18
+ logger_1.logger.error('No active iteration');
19
+ process.exit(11);
63
20
  return;
64
21
  }
65
- // ── Auto mode ──
66
- const spinner = new logger_1.Spinner(`创建 PR: ${taskName}`);
67
- spinner.start();
68
- (0, child_process_1.execSync)(`git push -u origin "${branch}" 2>/dev/null`, { stdio: 'pipe' });
69
- const title = options.title || taskName;
70
- const body = await buildPrBody(backendDir, taskName, iteration);
71
- const base = options.base || 'main';
72
- const draftFlag = options.draft ? ' --draft' : '';
73
- const result = (0, child_process_1.execSync)(`gh pr create --base "${base}" --head "${branch}" --title "${title}" --body "${body}"${draftFlag}`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
74
- spinner.stop(`✅ PR 已创建: ${result}`);
75
- await updateTaskMd(backendDir, result);
76
- logger_1.logger.info(`\n 📄 ${result}`);
77
- logger_1.logger.info(' 💡 审查通过后: speccore lifecycle --task=' + taskId + ' --status=done\n');
78
- }
79
- catch (error) {
80
- logger_1.logger.error(`PR 创建失败: ${error}`);
81
- logger_1.logger.info(' 💡 请确保已安装 gh CLI: brew install gh && gh auth login');
82
- }
83
- }
84
- // ── 分步交互 ──
85
- async function interactivePrFlow(branch, backendDir, taskName, iteration, options) {
86
- // 1. 预览变更
87
- logger_1.logger.info('📋 当前变更:');
88
- logger_1.logger.info('');
89
- const status = (0, child_process_1.execSync)('git status --short', { encoding: 'utf-8' }).trim();
90
- if (!status) {
91
- logger_1.logger.info(' (无变更)');
22
+ const taskId = options.task || 'current';
23
+ // 收集变更信息
24
+ const changedFiles = (0, child_process_1.execSync)('git diff --name-only HEAD', { encoding: 'utf-8' }).trim();
25
+ const stagedFiles = (0, child_process_1.execSync)('git diff --cached --name-only', { encoding: 'utf-8' }).trim();
26
+ const diff = (0, child_process_1.execSync)('git diff HEAD', { encoding: 'utf-8', maxBuffer: 50 * 1024 * 1024 }).trim();
27
+ // 读取分析文档
28
+ let analysis = '';
29
+ if (taskId !== 'current') {
30
+ const iterDir = (0, path_1.join)(process.cwd(), `Iteration-${iter}`);
31
+ try {
32
+ const fs = require('fs');
33
+ const entries = fs.readdirSync(iterDir, { withFileTypes: true });
34
+ const taskEntry = entries.find((e) => e.isDirectory() && e.name.includes(taskId));
35
+ if (taskEntry) {
36
+ const analysisPath = (0, path_1.join)(iterDir, taskEntry.name, 'ANALYSIS.md');
37
+ if (await (0, fs_extra_1.pathExists)(analysisPath)) {
38
+ analysis = await (0, fs_extra_1.readFile)(analysisPath, 'utf-8');
39
+ }
40
+ }
41
+ }
42
+ catch { }
43
+ }
44
+ // 构建 Prompt
45
+ const prompt = [
46
+ '# SpecCore PR 变更分析 + 安全检查',
47
+ '',
48
+ '## 你的任务',
49
+ '1. 分析下面的 git 变更,用中文生成一条简洁的 commit 信息(< 72 字)',
50
+ '2. 对照 ANALYSIS.md 中的需求/分析内容,判断当前变更是否对齐分析范围',
51
+ '3. 返回 JSON 格式结果',
52
+ '',
53
+ '## 变更文件',
54
+ changedFiles || '(无变更文件)',
55
+ '',
56
+ '## 暂存文件',
57
+ stagedFiles || '(无暂存文件)',
58
+ '',
59
+ '## 变更差异 (diff)',
60
+ diff ? `\`\`\`\n${diff.slice(0, 8000)}\n\`\`\`` : '(无差异)',
61
+ '',
62
+ '## 分析文档 (ANALYSIS.md)',
63
+ analysis ? `\`\`\`\n${analysis.slice(0, 3000)}\n\`\`\`` : '(无可用分析文档,跳过对照检查)',
64
+ '',
65
+ '## 输出格式',
66
+ '请返回如下 JSON:',
67
+ '```json',
68
+ '{',
69
+ ' "commitMsg": "提交信息(中文,<72字)",',
70
+ ' "analysisMatch": true|false,',
71
+ ' "mismatchReason": "不匹配原因(仅 analysisMatch=false 时填写)",',
72
+ ' "recommendation": "建议:auto-commit 或 confirm-first"',
73
+ '}',
74
+ '```',
75
+ '',
76
+ '## 规则',
77
+ '- analysisMatch=true:变更内容符合分析范围,可以直接提交',
78
+ '- analysisMatch=false:变更超出分析范围,建议用户先确认',
79
+ '- 若无分析文档,analysisMatch 填 true,但 recommend 填 "confirm-first"',
80
+ ].join('\n');
81
+ process.stdout.write(`[SPECCORE_PROMPT]\n${prompt}\n[/SPECCORE_PROMPT]`);
82
+ process.exitCode = 10;
92
83
  return;
93
84
  }
94
- logger_1.logger.info(status);
95
- logger_1.logger.info('');
96
- // 2. 选文件 → add
97
- const addAns = await promptUser(`提交哪些文件? [a]全部 [p]挑选 [s]跳过提交: `);
98
- if (addAns === 's') {
99
- logger_1.logger.info('跳过提交,直接推送已有 commit...');
100
- }
101
- else if (addAns === 'p') {
102
- const files = await promptUser('输入文件路径(空格分隔): ');
103
- const selected = files.split(/\s+/).filter(Boolean);
104
- if (selected.length > 0) {
105
- (0, child_process_1.execSync)(`git add ${selected.join(' ')}`, { stdio: 'pipe' });
106
- logger_1.logger.info(`✅ 已添加 ${selected.length} 个文件`);
85
+ // ── Response 模式:AI 返回结果,CLI 执行提交 ──
86
+ if (options.response) {
87
+ try {
88
+ const result = JSON.parse(options.response);
89
+ const commitMsg = result.commitMsg || 'Auto commit by SpecCore';
90
+ const analysisMatch = result.analysisMatch !== false;
91
+ const userConfirm = options.confirm;
92
+ // 如果分析不匹配且用户未要求确认,提示并返回
93
+ if (!analysisMatch && !userConfirm) {
94
+ process.stdout.write(`[SPECCORE_CONFIRM_NEEDED]\n不匹配原因: ${result.mismatchReason || '未知'}\n建议先确认再提交。使用 --confirm 强制执行。\n[/SPECCORE_CONFIRM_NEEDED]`);
95
+ process.exitCode = 11;
96
+ return;
97
+ }
98
+ // 安全提交
99
+ const staged = (0, child_process_1.execSync)('git diff --cached --name-only', { encoding: 'utf-8' }).trim();
100
+ if (!staged) {
101
+ (0, child_process_1.execSync)('git add -A', { stdio: 'pipe' });
102
+ logger_1.logger.info('✅ 已暂存全部变更');
103
+ }
104
+ (0, child_process_1.execSync)(`git commit -m "${commitMsg.replace(/"/g, '\\"')}"`, { stdio: 'pipe' });
105
+ logger_1.logger.success(`✅ 已提交: ${commitMsg}`);
106
+ // 推送
107
+ const branch = (0, child_process_1.execSync)('git branch --show-current', { encoding: 'utf-8' }).trim();
108
+ if (branch !== 'main' && branch !== 'master') {
109
+ (0, child_process_1.execSync)(`git push -u origin "${branch}"`, { stdio: 'pipe' });
110
+ logger_1.logger.success(`✅ 已推送: ${branch}`);
111
+ }
112
+ // 输出结果
113
+ process.stdout.write(`[SPECCORE_RESULT]\n${JSON.stringify({ committed: true, message: commitMsg, branch, analysisMatch })}\n[/SPECCORE_RESULT]`);
107
114
  }
108
- }
109
- else {
110
- (0, child_process_1.execSync)('git add .', { stdio: 'pipe' });
111
- logger_1.logger.info('✅ 已添加全部文件');
112
- }
113
- // 3. commit(如果有 staged 文件)
114
- const staged = (0, child_process_1.execSync)('git diff --cached --name-only', { encoding: 'utf-8' }).trim();
115
- if (staged) {
116
- logger_1.logger.info(`\n📦 待提交:\n${staged}\n`);
117
- const commitAns = await promptUser('是否 commit? [y/n]: ');
118
- if (commitAns === 'y') {
119
- const msg = await promptUser(`Commit 信息(默认: ${taskName}): `);
120
- (0, child_process_1.execSync)(`git commit -m "${msg || taskName}"`, { stdio: 'pipe' });
121
- logger_1.logger.info('✅ 已 commit');
115
+ catch (e) {
116
+ logger_1.logger.error(`解析失败: ${e}`);
117
+ process.exitCode = 1;
122
118
  }
123
- }
124
- // 4. 推送
125
- const pushAns = await promptUser('\n推送到 origin? [y/n]: ');
126
- if (pushAns !== 'y') {
127
- logger_1.logger.info('已取消推送');
128
- return;
129
- }
130
- (0, child_process_1.execSync)(`git push -u origin "${branch}"`, { stdio: 'pipe' });
131
- logger_1.logger.info(`✅ 已推送 ${branch}`);
132
- // 5. 创建 PR
133
- const prAns = await promptUser('\n创建 PR? [y/n]: ');
134
- if (prAns !== 'y') {
135
- logger_1.logger.info('已跳过 PR 创建');
136
119
  return;
137
120
  }
138
- const spinner = new logger_1.Spinner('创建 PR');
121
+ // ── 默认模式:轻量级直接提交(无分析对照)──
122
+ const branch = (0, child_process_1.execSync)('git branch --show-current', { encoding: 'utf-8' }).trim();
123
+ const spinner = new logger_1.Spinner('提交变更...');
139
124
  spinner.start();
140
- const title = options.title || taskName;
141
- const body = await buildPrBody(backendDir, taskName, iteration);
142
- const base = options.base || 'main';
143
- const draftFlag = options.draft ? ' --draft' : '';
144
- const result = (0, child_process_1.execSync)(`gh pr create --base "${base}" --head "${branch}" --title "${title}" --body "${body}"${draftFlag}`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
145
- spinner.stop(`✅ PR 已创建: ${result}`);
146
- await updateTaskMd(backendDir, result);
147
- logger_1.logger.info(`\n 📄 ${result}\n`);
148
- }
149
- async function updateTaskMd(backendDir, prUrl) {
150
- const taskMdPath = (0, path_1.join)(backendDir, 'TASK.md');
151
- if (!(await (0, fs_extra_1.pathExists)(taskMdPath)))
152
- return;
153
- let md = await (0, fs_extra_1.readFile)(taskMdPath, 'utf-8');
154
- if (!md.includes('## PR')) {
155
- md += `\n\n## PR\n\n| URL | 状态 |\n| :--- | :--- |\n| ${prUrl} | 🔄 待审查 |\n`;
156
- }
157
- else {
158
- md = md.replace('| :--- | :--- |\n', `| :--- | :--- |\n| ${prUrl} | 🔄 待审查 |\n`);
159
- }
160
- await require('fs-extra').writeFile(taskMdPath, md);
161
- }
162
- async function buildPrBody(backendDir, taskName, iteration) {
163
- let body = `## ${taskName}\n\n`;
164
- // Add REQ summary
165
- const reqPath = (0, path_1.join)(backendDir, 'REQ.md');
166
- if (await (0, fs_extra_1.pathExists)(reqPath)) {
167
- const req = await (0, fs_extra_1.readFile)(reqPath, 'utf-8');
168
- const desc = req.match(/## 需求描述\n([\s\S]*?)(?=\n##|\n\|\|$)/);
169
- if (desc)
170
- body += `### 📋 需求\n${desc[1].trim()}\n\n`;
125
+ try {
126
+ (0, child_process_1.execSync)('git add -A', { stdio: 'pipe' });
127
+ const msg = options.title || `SpecCore auto commit`;
128
+ (0, child_process_1.execSync)(`git commit -m "${msg}"`, { stdio: 'pipe' });
129
+ spinner.stop(`✅ 已提交: ${msg}`);
130
+ if (branch !== 'main' && branch !== 'master') {
131
+ (0, child_process_1.execSync)(`git push -u origin "${branch}"`, { stdio: 'pipe' });
132
+ logger_1.logger.info(`✅ 已推送: ${branch}`);
133
+ }
171
134
  }
172
- // Add test status
173
- const testPath = (0, path_1.join)(backendDir, 'TEST.md');
174
- if (await (0, fs_extra_1.pathExists)(testPath)) {
175
- const test = await (0, fs_extra_1.readFile)(testPath, 'utf-8');
176
- const total = (test.match(/\[[ x]\]/g) || []).length;
177
- const checked = (test.match(/\[x\]/gi) || []).length;
178
- body += `### 🧪 测试\n${checked}/${total} 项完成\n\n`;
135
+ catch (error) {
136
+ spinner.fail('提交失败');
137
+ logger_1.logger.error(String(error));
179
138
  }
180
- body += `---\n> 由 SpecCore 自动生成 | 迭代: ${iteration}`;
181
- return body;
182
139
  }
183
140
  //# sourceMappingURL=pr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccore",
3
- "version": "5.69.4",
3
+ "version": "5.69.5",
4
4
  "description": "SpecCore - Code by Spec, Not by Vibe.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",