speccore 5.71.0 → 5.74.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.
- package/.agents/skills/spec-ask/SKILL.md +10 -0
- package/.agents/skills/speccore-router/SKILL.md +10 -0
- package/README.md +30 -8
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/about.d.ts.map +1 -1
- package/dist/commands/about.js +8 -1
- package/dist/commands/about.js.map +1 -1
- package/dist/commands/analyze.d.ts +3 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +120 -21
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/ask.d.ts +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +12 -5
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/change.d.ts +5 -0
- package/dist/commands/change.d.ts.map +1 -1
- package/dist/commands/change.js +588 -22
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/code-index.d.ts +18 -0
- package/dist/commands/code-index.d.ts.map +1 -0
- package/dist/commands/code-index.js +126 -0
- package/dist/commands/code-index.js.map +1 -0
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +10 -40
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/dev.d.ts +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +133 -17
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doc2spec.js +4 -4
- package/dist/commands/doc2spec.js.map +1 -1
- package/dist/commands/execute.d.ts +2 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +243 -51
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/help.js +17 -7
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/create.js +38 -6
- package/dist/commands/iteration/create.js.map +1 -1
- package/dist/commands/iteration/split.js +70 -12
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/lifecycle.d.ts.map +1 -1
- package/dist/commands/lifecycle.js +47 -23
- package/dist/commands/lifecycle.js.map +1 -1
- package/dist/commands/plan.d.ts +20 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +54 -39
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/retro.d.ts +9 -0
- package/dist/commands/retro.d.ts.map +1 -1
- package/dist/commands/retro.js +61 -15
- package/dist/commands/retro.js.map +1 -1
- package/dist/commands/status-panel.js +33 -6
- package/dist/commands/status-panel.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +25 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +22 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +158 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/welcome.d.ts.map +1 -1
- package/dist/commands/welcome.js +5 -9
- package/dist/commands/welcome.js.map +1 -1
- package/dist/core/ai-context-generator.js +2 -2
- package/dist/core/ai-context-generator.js.map +1 -1
- package/dist/core/analyze-engine.d.ts +19 -0
- package/dist/core/analyze-engine.d.ts.map +1 -1
- package/dist/core/analyze-engine.js +225 -13
- package/dist/core/analyze-engine.js.map +1 -1
- package/dist/core/ask-engine.d.ts.map +1 -1
- package/dist/core/ask-engine.js +100 -10
- package/dist/core/ask-engine.js.map +1 -1
- package/dist/core/capabilities.js +3 -3
- package/dist/core/code-index-markdown.d.ts +7 -0
- package/dist/core/code-index-markdown.d.ts.map +1 -0
- package/dist/core/code-index-markdown.js +160 -0
- package/dist/core/code-index-markdown.js.map +1 -0
- package/dist/core/code-scanner.d.ts +58 -3
- package/dist/core/code-scanner.d.ts.map +1 -1
- package/dist/core/code-scanner.js +406 -24
- package/dist/core/code-scanner.js.map +1 -1
- package/dist/core/git-integration.d.ts +10 -0
- package/dist/core/git-integration.d.ts.map +1 -1
- package/dist/core/git-integration.js +99 -2
- package/dist/core/git-integration.js.map +1 -1
- package/dist/core/inbox.d.ts +120 -0
- package/dist/core/inbox.d.ts.map +1 -0
- package/dist/core/inbox.js +377 -0
- package/dist/core/inbox.js.map +1 -0
- package/dist/core/intent-cache.d.ts.map +1 -1
- package/dist/core/intent-cache.js +8 -2
- package/dist/core/intent-cache.js.map +1 -1
- package/dist/core/intent-recognition.d.ts.map +1 -1
- package/dist/core/intent-recognition.js +4 -3
- package/dist/core/intent-recognition.js.map +1 -1
- package/dist/core/next-steps.js +1 -1
- package/dist/core/next-steps.js.map +1 -1
- package/dist/core/plan-html.js +3 -3
- package/dist/core/prompt-builder.d.ts +7 -0
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +52 -9
- package/dist/core/prompt-builder.js.map +1 -1
- package/dist/core/resolver.d.ts +52 -0
- package/dist/core/resolver.d.ts.map +1 -0
- package/dist/core/resolver.js +257 -0
- package/dist/core/resolver.js.map +1 -0
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +46 -14
- package/dist/core/state.js.map +1 -1
- package/dist/core/verify-engine.d.ts +64 -0
- package/dist/core/verify-engine.d.ts.map +1 -0
- package/dist/core/verify-engine.js +560 -0
- package/dist/core/verify-engine.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,WAAW,cAAc;IAAG,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE;AAEpF,wBAAsB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,WAAW,cAAc;IAAG,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE;AAEpF,wBAAsB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD5E;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAClD,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/B,MAAM,CAOR"}
|
package/dist/commands/welcome.js
CHANGED
|
@@ -47,14 +47,10 @@ async function welcomeCommand(_options) {
|
|
|
47
47
|
}
|
|
48
48
|
const html = renderWelcomeHtml(version, isInit, iterName, phase, taskCount);
|
|
49
49
|
const outPath = _options.output || (0, path_1.join)(process.cwd(), 'outputs', 'welcome-SpecCore.html');
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
await (0, fs_extra_1.ensureDir)((0, path_1.join)(process.cwd(), 'outputs'));
|
|
55
|
-
await (0, fs_extra_1.writeFile)(outPath, html);
|
|
56
|
-
process.stdout.write('✅ 页面已生成: file://' + outPath + '\n 预览: python3 -m http.server 8080 → http://localhost:8080/' + require('path').basename(outPath) + '\n');
|
|
57
|
-
}
|
|
50
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(process.cwd(), 'outputs'));
|
|
51
|
+
await (0, fs_extra_1.writeFile)(outPath, html);
|
|
52
|
+
process.stdout.write(`✅ 页面已生成: file://${outPath}\n`);
|
|
53
|
+
process.stdout.write(`[SPECCORE_WELCOME: ${outPath}]\n`);
|
|
58
54
|
return;
|
|
59
55
|
}
|
|
60
56
|
logger_1.logger.info('');
|
|
@@ -101,6 +97,6 @@ function renderWelcomeHtml(version, isInit, iterName, phase, taskCount) {
|
|
|
101
97
|
const now = new Date().toISOString().split('T')[0];
|
|
102
98
|
const phases = ['导入', '分析', '拆分', '计划', '执行', '交付'];
|
|
103
99
|
const doneIdx = ['doc', 'analyze', 'split', 'execute'].indexOf(phase) + (phase === 'execute' ? 1 : 0);
|
|
104
|
-
return `<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore — 项目名片</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.015) 2px,rgba(0,240,255,.015) 4px)}.stars{position:fixed;inset:0;pointer-events:none;background:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.3),transparent),radial-gradient(1.5px 1.5px at 60% 70%,rgba(14,165,233,.4),transparent)}.card{max-width:
|
|
100
|
+
return `<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore — 项目名片</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.015) 2px,rgba(0,240,255,.015) 4px)}.stars{position:fixed;inset:0;pointer-events:none;background:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.3),transparent),radial-gradient(1.5px 1.5px at 60% 70%,rgba(14,165,233,.4),transparent)}.card{max-width:800px;width:100%;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;position:relative;overflow:hidden;z-index:1}.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX 3s linear infinite}.card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX-rev 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY 3s linear infinite}.center-node{width:90px;height:90px;border-radius:50%;border:2px solid var(--cyan);display:flex;align-items:center;justify-content:center;background:rgba(14,165,233,.08);margin:24px auto;font-family:Orbitron,sans-serif;font-size:20px;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;position:relative;z-index:2}.modes-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.mode-card{border-radius:10px;padding:14px;position:relative;overflow:hidden;background:rgba(255,255,255,.02)}.mode-card.m1{border:1.5px solid var(--green)}.mode-card.m2{border:1.5px solid var(--orange)}.mode-card.m3{border:1.5px solid var(--cyan)}.mode-card.m4{border:1.5px solid var(--purple)}.mode-card .mode-title{font-weight:600;margin:6px 0;font-size:13px}.mode-card.m1 .mode-title{color:var(--green)}.mode-card.m2 .mode-title{color:var(--orange)}.mode-card.m3 .mode-title{color:var(--cyan)}.mode-card.m4 .mode-title{color:var(--purple)}.mode-card .mode-icon{font-size:18px;margin-right:4px}.mode-card .mode-desc{font-size:10px;color:var(--muted);margin:4px 0}.mode-card .mode-tag{display:inline-block;padding:2px 8px;font-size:9px;border-radius:4px;background:rgba(20,184,166,.1);color:var(--green);margin-top:6px}.mode-card.m1 .mode-tag{background:rgba(20,184,166,.08);color:var(--green)}.mode-card.m2 .mode-tag{background:rgba(249,115,22,.08);color:var(--orange)}.mode-card.m3 .mode-tag{background:rgba(14,165,233,.08);color:var(--cyan)}.mode-card.m4 .mode-tag{background:rgba(99,102,241,.08);color:var(--purple)}.status-row{display:flex;align-items:center;gap:8px;margin:8px 0;padding:10px 14px;background:rgba(14,165,233,.04);border:1px solid rgba(14,165,233,.1);border-radius:8px}.flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-start}.flow-step{display:flex;flex-direction:row;align-items:center;gap:12px;padding:10px 28px;border-radius:10px;border:none}.flow-step.done{background:rgba(20,184,166,.1)}.flow-step.pending{background:rgba(255,255,255,.04)}.flow-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:none}.flow-dot.done{background:var(--green);box-shadow:0 0 8px var(--green)}.flow-dot.pending{background:rgba(255,255,255,.15)}.flow-label{font-size:11px;color:var(--muted);white-space:nowrap}.flow-label.done{color:var(--green)}.flow-arrow{color:var(--muted);font-size:12px;text-align:center;line-height:1}.cmd-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.cmd-pill{padding:3px 10px;border-radius:4px;font-size:10px;background:rgba(14,165,233,.1);color:var(--cyan);border:1px solid rgba(14,165,233,.15)}.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}h1{font-family:'Orbitron',sans-serif;font-size:32px;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:2px;text-align:center}.sub{color:var(--muted);font-size:11px;letter-spacing:1px;text-align:center;margin-top:4px}.section-title{font-size:10px;font-weight:700;color:var(--cyan);text-transform:uppercase;letter-spacing:2px;margin:20px 0 10px}.confirm-bar{text-align:center;padding:18px;margin:24px 0 8px;background:linear-gradient(135deg,var(--cyan) 0%,#0284c7 100%);border-radius:40px;color:#fff;font-weight:600;font-size:14px;box-shadow:0 0 30px rgba(14,165,233,.3);cursor:pointer;letter-spacing:1px}.section{margin:14px 0;padding:14px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);border-radius:10px}.grid-pattern{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(14,165,233,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.03) 1px,transparent 1px);background-size:60px 60px}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes titleGlow{0%,100%{filter:drop-shadow(0 0 20px rgba(14,165,233,.4)) drop-shadow(0 0 60px rgba(14,165,233,.15))}50%{filter:drop-shadow(0 0 30px rgba(14,165,233,.7)) drop-shadow(0 0 80px rgba(14,165,233,.3))}h1,h2{animation:titleGlow 3s ease-in-out infinite}</style></head><body><div class="scanlines"></div><div class="grid-pattern"></div><div class="stars"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE</h1><div class="sub">Code by Spec, Not by Vibe · v${version}${iterName ? ' · ' + iterName : ''}</div><div class="status-row"><span>📍</span><div><div style="font-size:11px;font-weight:600">${phaseLabel}</div><div style="font-size:9px;color:var(--muted)">${isInit ? (iterName ? '当前迭代: ' + iterName + (taskCount > 0 ? ' · ' + taskCount + ' 任务' : '') : '已初始化 · 无活跃迭代') : '未初始化'}</div></div></div><div class="section-title">🔄 核心流水线</div><div class="section"><div class="flow">${phases.map((n, i) => '<div class="flow-step ' + (i < doneIdx ? 'done' : 'pending') + '"><span class="flow-dot ' + (i < doneIdx ? 'done' : 'pending') + '"></span><span class="flow-label ' + (i < doneIdx ? 'done' : '') + '">' + n + '</span></div>' + (i < 5 ? '<div class="flow-arrow">→</div>' : '')).join('')}</div></div><div class="section-title">🧠 ask — SpecCore 万能 AI 入口</div><div class="modes-grid"><div class="mode-card m1"><div class="mode-title"><span class="mode-icon">📖</span>命令解释</div><div class="mode-desc">"dashboard 怎么用"<br>"init 有哪些参数"</div><div class="mode-tag">知识库匹配</div></div><div class="mode-card m2"><div class="mode-title"><span class="mode-icon">🗺️</span>任务指引</div><div class="mode-desc">"我想做一个登录功能"<br>"怎么开始新项目"</div><div class="mode-tag">工作流生成</div></div><div class="mode-card m3"><div class="mode-title"><span class="mode-icon">🎯</span>意图匹配</div><div class="mode-desc">"查看进度" → dashboard<br>"审查代码" → validate</div><div class="mode-tag">38意图 + AI</div></div><div class="mode-card m4"><div class="mode-title"><span class="mode-icon">⚡</span>复杂编排</div><div class="mode-desc">"计划所有任务晚8点分批"<br>"做完分析→拆分→PR"</div><div class="mode-tag">Pipeline 引擎</div></div></div><div class="confirm-bar" onclick="window.location.href='speccore-ask-onboarding.html'">确认进入 · 输入 <code style="background:rgba(255,255,255,.2);padding:2px 8px;border-radius:4px">speccore ask "你的需求"</code> 开始</div><div class="section-title">━━ 常用命令 ━━</div><div class="cmd-row"><span class="cmd-pill">speccore dashboard</span><span class="cmd-pill">speccore dev --auto</span><span class="cmd-pill">speccore ask "描述"</span><span class="cmd-pill">speccore help</span></div><div class="footer">由 SpecCore 驱动 v${version} · ${now}</div></div></body></html>`;
|
|
105
101
|
}
|
|
106
102
|
//# sourceMappingURL=welcome.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAoBH,
|
|
1
|
+
{"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"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"}
|
|
@@ -169,8 +169,8 @@ ${Object.entries(modules).map(([name, files]) => `**${name}** (${files.length}
|
|
|
169
169
|
- **${scope === 'global'
|
|
170
170
|
? '.speccore/GLOBAL/ANALYSIS.md'
|
|
171
171
|
: scope === 'task'
|
|
172
|
-
? `Iteration-${iteration}/${taskId}/
|
|
173
|
-
: `Iteration-${iteration || 'current'}/
|
|
172
|
+
? `Iteration-${iteration}/030-tasks/${taskId}/00-specs/ANALYSIS.md`
|
|
173
|
+
: `Iteration-${iteration || 'current'}/020-specs/ANALYSIS.md`}**
|
|
174
174
|
|
|
175
175
|
同时参考填充同目录下的 TECH.md、TEST.md、REVIEW.md、RISK.md、DEPS.md、MONITOR.md 模板文件。
|
|
176
176
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-context-generator.js","sourceRoot":"","sources":["../../src/core/ai-context-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-context-generator.js","sourceRoot":"","sources":["../../src/core/ai-context-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,10 @@ export interface AnalyzeInput {
|
|
|
13
13
|
depth: 'quick' | 'normal' | 'deep';
|
|
14
14
|
/** 输出文件名 */
|
|
15
15
|
output?: string;
|
|
16
|
+
/** 是否读取源码内容(默认 true) */
|
|
17
|
+
readSource?: boolean;
|
|
18
|
+
/** 指定源码扫描范围(逗号分隔目录) */
|
|
19
|
+
sourceScope?: string;
|
|
16
20
|
}
|
|
17
21
|
export interface AnalysisResult {
|
|
18
22
|
/** 输出文件路径 */
|
|
@@ -29,4 +33,19 @@ export interface AnalysisResult {
|
|
|
29
33
|
};
|
|
30
34
|
}
|
|
31
35
|
export declare function runAnalysis(input: AnalyzeInput): Promise<AnalysisResult>;
|
|
36
|
+
export interface SupplementResult {
|
|
37
|
+
outputPath: string;
|
|
38
|
+
addedFiles: string[];
|
|
39
|
+
totalRead: number;
|
|
40
|
+
remainingUncovered: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 补充分析:读取已有报告,找到未覆盖的源码文件,追加到报告中
|
|
44
|
+
* 不重新生成全部文档,只追加源码内容
|
|
45
|
+
*/
|
|
46
|
+
export declare function supplementAnalysis(input: {
|
|
47
|
+
reportPath: string;
|
|
48
|
+
scope?: string;
|
|
49
|
+
maxFiles?: number;
|
|
50
|
+
}): Promise<SupplementResult | null>;
|
|
32
51
|
//# sourceMappingURL=analyze-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-engine.d.ts","sourceRoot":"","sources":["../../src/core/analyze-engine.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW;IACX,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACvC,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-engine.d.ts","sourceRoot":"","sources":["../../src/core/analyze-engine.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW;IACX,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACvC,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAMD,wBAAsB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CA6E9E;AAumCD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAsJnC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runAnalysis = runAnalysis;
|
|
4
|
+
exports.supplementAnalysis = supplementAnalysis;
|
|
4
5
|
/**
|
|
5
6
|
* analyze-engine — 统一分析引擎
|
|
6
7
|
*
|
|
@@ -13,8 +14,8 @@ exports.runAnalysis = runAnalysis;
|
|
|
13
14
|
*
|
|
14
15
|
* 输出范围 (scope):
|
|
15
16
|
* - global → .speccore/GLOBAL/ 全局架构/代码健康
|
|
16
|
-
* - iteration → Iteration-XX/
|
|
17
|
-
* - task → Iteration-XX/Task-NN/
|
|
17
|
+
* - iteration → Iteration-XX/020-specs/ 迭代级基线(默认)
|
|
18
|
+
* - task → Iteration-XX/030-tasks/Task-NN/00-specs/ 任务级独立
|
|
18
19
|
*/
|
|
19
20
|
const fs_extra_1 = require("fs-extra");
|
|
20
21
|
const path_1 = require("path");
|
|
@@ -55,7 +56,7 @@ async function runAnalysis(input) {
|
|
|
55
56
|
};
|
|
56
57
|
await scanDir(productReqDir);
|
|
57
58
|
}
|
|
58
|
-
// 兼容旧路径: 如果没有 01-产品需求/, 回退到
|
|
59
|
+
// 兼容旧路径: 如果没有 01-产品需求/, 回退到 010-requirements/REQUIREMENT.md
|
|
59
60
|
if (requirements.length === 0) {
|
|
60
61
|
const legacyReq = (0, path_1.join)(`Iteration-${input.iteration}`, '010-requirements', 'REQUIREMENT.md');
|
|
61
62
|
if (await (0, fs_extra_1.pathExists)(legacyReq)) {
|
|
@@ -212,9 +213,15 @@ async function analyzeCombined(input) {
|
|
|
212
213
|
// 代码结构分析
|
|
213
214
|
const fileStats = await scanSourceDirs(input.sources, input.depth);
|
|
214
215
|
const apiInventory = await buildApiInventory(input.sources);
|
|
215
|
-
//
|
|
216
|
+
// 确保代码索引是最新的(解耦设计:总是全量索引,分析时按 scope 筛选)
|
|
216
217
|
if (await (0, code_scanner_1.isIndexStale)()) {
|
|
217
|
-
|
|
218
|
+
logger_1.logger.info(' 🔍 索引已过期,自动重建全量代码索引...');
|
|
219
|
+
await (0, code_scanner_1.buildCodeIndex)(); // 总是全量建,不是按 scope
|
|
220
|
+
logger_1.logger.info(' ✅ 代码索引已更新(包含多端识别 + 模块分组 + git 联动分析)');
|
|
221
|
+
logger_1.logger.info(' 💡 提示:可手动运行 `speccore code-index --show` 查看索引摘要');
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
logger_1.logger.info(' 📚 使用缓存的代码索引(1 小时内已构建)');
|
|
218
225
|
}
|
|
219
226
|
// ── AI 上下文生成: 替代关键词匹配 ──
|
|
220
227
|
const aiContext = await (0, ai_context_generator_1.generateAIContext)({
|
|
@@ -228,26 +235,34 @@ async function analyzeCombined(input) {
|
|
|
228
235
|
logger_1.logger.info(` 🤖 AI 上下文已生成 → ${aiContext.promptPath}`);
|
|
229
236
|
logger_1.logger.info(` 📁 源码文件: ${aiContext.totalFiles} 个`);
|
|
230
237
|
logger_1.logger.info(` 🔗 API: ${aiContext.totalApis} 个`);
|
|
231
|
-
//
|
|
238
|
+
// 默认读取相关源码内容注入分析(除非明确关闭)
|
|
239
|
+
// 解耦设计:从完整索引中按 sourceScope 筛选,不是按 scope 建索引
|
|
232
240
|
let sourceContents = {};
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
241
|
+
const shouldReadSource = input.readSource !== false;
|
|
242
|
+
if (shouldReadSource) {
|
|
243
|
+
const limit = input.depth === 'deep' ? 20 : (input.depth === 'quick' ? 5 : 10);
|
|
244
|
+
const maxBytes = input.depth === 'deep' ? 120000 : (input.depth === 'quick' ? 30000 : 60000);
|
|
245
|
+
const rawMatches = await (0, code_scanner_1.findRelevantCode)(fullReqContent, limit, input.sourceScope);
|
|
246
|
+
sourceContents = await (0, code_scanner_1.readRelevantSource)(rawMatches, maxBytes);
|
|
247
|
+
if (Object.keys(sourceContents).length > 0) {
|
|
248
|
+
const scopeHint = input.sourceScope ? ` (范围: ${input.sourceScope})` : '';
|
|
249
|
+
logger_1.logger.info(` 📖 已读取 ${Object.keys(sourceContents).length} 个源码文件${scopeHint} (${Object.values(sourceContents).reduce((a, c) => a + c.length, 0)} 字符)`);
|
|
250
|
+
}
|
|
236
251
|
}
|
|
237
252
|
let outputPath;
|
|
238
253
|
let report;
|
|
239
254
|
if (input.scope === 'global') {
|
|
240
255
|
outputPath = (0, path_1.join)('.speccore', 'GLOBAL', input.output || 'ARCH_IMPACT.md');
|
|
241
|
-
report = buildAIEnhancedReport(input, 'global', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
|
|
256
|
+
report = await buildAIEnhancedReport(input, 'global', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
|
|
242
257
|
}
|
|
243
258
|
else if (input.scope === 'task') {
|
|
244
259
|
outputPath = (0, path_1.join)(`Iteration-${input.iteration}`, '030-tasks', input.taskId, '00-specs', input.output || 'ANALYSIS.md');
|
|
245
|
-
report = buildAIEnhancedReport(input, 'task', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
|
|
260
|
+
report = await buildAIEnhancedReport(input, 'task', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
|
|
246
261
|
}
|
|
247
262
|
else {
|
|
248
263
|
const iterDir = `Iteration-${input.iteration || 'current'}`;
|
|
249
264
|
outputPath = (0, path_1.join)(iterDir, '020-specs', input.output || 'ANALYSIS.md');
|
|
250
|
-
report = buildAIEnhancedReport(input, 'iteration', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
|
|
265
|
+
report = await buildAIEnhancedReport(input, 'iteration', { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents });
|
|
251
266
|
await writePerPlatform(iterDir, report, input.output || 'ANALYSIS.md');
|
|
252
267
|
}
|
|
253
268
|
return {
|
|
@@ -844,7 +859,7 @@ function buildTaskCodeReport(input, stats, apis, hotspots) {
|
|
|
844
859
|
r += `- [ ] API 文档已更新 (${apis.length} 个接口)\n`;
|
|
845
860
|
return r;
|
|
846
861
|
}
|
|
847
|
-
function buildAIEnhancedReport(input, scope, params) {
|
|
862
|
+
async function buildAIEnhancedReport(input, scope, params) {
|
|
848
863
|
const { issues, archImpact, fileStats, apiInventory, aiContext, sourceContents } = params;
|
|
849
864
|
const now = new Date().toISOString().split('T')[0];
|
|
850
865
|
const iter = input.iteration || 'current';
|
|
@@ -920,6 +935,60 @@ function buildAIEnhancedReport(input, scope, params) {
|
|
|
920
935
|
}
|
|
921
936
|
r += `| _其他_ | _待 AI 分析_ | — | — |\n\n`;
|
|
922
937
|
r += `> 📌 请 AI 读取上下文文件完成文件级对标\n\n`;
|
|
938
|
+
// 6.5 源码分析清单(已读 + 未覆盖,方便用户发现遗漏并补充)
|
|
939
|
+
{
|
|
940
|
+
const readFiles = Object.keys(sourceContents);
|
|
941
|
+
const fullIndex = await (0, code_scanner_1.loadFullIndex)();
|
|
942
|
+
const allIndexedFiles = fullIndex?.files?.map(f => f.path) || [];
|
|
943
|
+
const uncoveredFiles = allIndexedFiles.filter(f => !readFiles.includes(f));
|
|
944
|
+
if (readFiles.length > 0 || uncoveredFiles.length > 0) {
|
|
945
|
+
r += `## 📚 源码分析清单\n\n`;
|
|
946
|
+
// 已分析文件
|
|
947
|
+
if (readFiles.length > 0) {
|
|
948
|
+
r += `### ✅ 已分析(${readFiles.length} 个文件)\n\n`;
|
|
949
|
+
for (const [file, content] of Object.entries(sourceContents)) {
|
|
950
|
+
const lines = content.split('\n').length;
|
|
951
|
+
const size = (content.length / 1024).toFixed(1);
|
|
952
|
+
r += `- \`${file}\` (${lines} 行, ${size}KB)\n`;
|
|
953
|
+
}
|
|
954
|
+
r += `\n`;
|
|
955
|
+
}
|
|
956
|
+
// 未覆盖文件(按目录分组)
|
|
957
|
+
if (uncoveredFiles.length > 0) {
|
|
958
|
+
r += `### 📂 索引中未覆盖(${uncoveredFiles.length} 个文件)\n\n`;
|
|
959
|
+
r += `> 以下文件已在索引中,但本次分析未读取。如发现与需求相关,可补充分析。\n\n`;
|
|
960
|
+
// 按第一层目录分组
|
|
961
|
+
const grouped = {};
|
|
962
|
+
for (const f of uncoveredFiles) {
|
|
963
|
+
const parts = f.split('/');
|
|
964
|
+
const dir = parts.length >= 2 ? parts.slice(0, 2).join('/') : parts[0];
|
|
965
|
+
if (!grouped[dir])
|
|
966
|
+
grouped[dir] = [];
|
|
967
|
+
grouped[dir].push(f);
|
|
968
|
+
}
|
|
969
|
+
for (const [dir, files] of Object.entries(grouped).sort((a, b) => b[1].length - a[1].length)) {
|
|
970
|
+
r += `**${dir}** (${files.length} 个)\n`;
|
|
971
|
+
for (const f of files.slice(0, 5)) {
|
|
972
|
+
r += ` - \`${f}\`\n`;
|
|
973
|
+
}
|
|
974
|
+
if (files.length > 5) {
|
|
975
|
+
r += ` - _... 还有 ${files.length - 5} 个_\n`;
|
|
976
|
+
}
|
|
977
|
+
r += `\n`;
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
// 补充分析指引
|
|
981
|
+
r += `### 💡 如何补充分析\n\n`;
|
|
982
|
+
r += `| 场景 | 命令 |\n`;
|
|
983
|
+
r += `| :--- | :--- |\n`;
|
|
984
|
+
r += `| **追加源码(不重新生成)** | \`speccore analyze --supplement\` |\n`;
|
|
985
|
+
r += `| 指定目录追加 | \`speccore analyze --supplement --source-scope src/core\` |\n`;
|
|
986
|
+
r += `| 扩大读取量(重新分析) | \`speccore analyze --auto --depth deep\` |\n`;
|
|
987
|
+
r += `| 指定目录重新分析 | \`speccore analyze --auto --source-scope src/core,src/commands\` |\n`;
|
|
988
|
+
r += `| 查看完整代码索引 | \`speccore code-index --show\` |\n`;
|
|
989
|
+
r += `| 重建索引(代码有变动) | \`speccore code-index --full\` |\n\n`;
|
|
990
|
+
}
|
|
991
|
+
}
|
|
923
992
|
// 7. AI 深度分析指引
|
|
924
993
|
r += `## 🤖 AI 深度分析清单\n\n`;
|
|
925
994
|
r += `> **上下文文件**: \`${aiContext.promptPath}\` \n`;
|
|
@@ -986,6 +1055,149 @@ async function writePerPlatform(iterDir, report, filename) {
|
|
|
986
1055
|
// 目录不存在,静默跳过
|
|
987
1056
|
}
|
|
988
1057
|
}
|
|
1058
|
+
/**
|
|
1059
|
+
* 补充分析:读取已有报告,找到未覆盖的源码文件,追加到报告中
|
|
1060
|
+
* 不重新生成全部文档,只追加源码内容
|
|
1061
|
+
*/
|
|
1062
|
+
async function supplementAnalysis(input) {
|
|
1063
|
+
const { reportPath, scope, maxFiles = 10 } = input;
|
|
1064
|
+
// 1. 读取现有报告(不存在则自动创建初始报告,保证流程不断)
|
|
1065
|
+
let existingReport;
|
|
1066
|
+
if (!await (0, fs_extra_1.pathExists)(reportPath)) {
|
|
1067
|
+
logger_1.logger.info(' 📝 报告不存在,自动创建初始分析报告...');
|
|
1068
|
+
// 确保索引存在
|
|
1069
|
+
if (await (0, code_scanner_1.isIndexStale)()) {
|
|
1070
|
+
await (0, code_scanner_1.buildCodeIndex)();
|
|
1071
|
+
}
|
|
1072
|
+
const fullIndex = await (0, code_scanner_1.loadFullIndex)();
|
|
1073
|
+
const totalFiles = fullIndex?.files?.length || 0;
|
|
1074
|
+
const endpoints = fullIndex?.endpoints || [];
|
|
1075
|
+
const modules = fullIndex?.modules || [];
|
|
1076
|
+
// 创建初始报告骨架
|
|
1077
|
+
let initialReport = `# 需求分析报告\n\n`;
|
|
1078
|
+
initialReport += `> 由补充分析自动创建(首次分析未生成报告)\n\n`;
|
|
1079
|
+
initialReport += `## 📊 项目概览\n\n`;
|
|
1080
|
+
initialReport += `- 索引文件总数: ${totalFiles}\n`;
|
|
1081
|
+
initialReport += `- 识别端: ${endpoints.map((e) => e.name).join(', ') || '未识别'}\n`;
|
|
1082
|
+
initialReport += `- 模块数: ${modules.length}\n\n`;
|
|
1083
|
+
initialReport += `## 📚 源码分析清单\n\n`;
|
|
1084
|
+
initialReport += `### ✅ 已分析(0 个文件)\n\n`;
|
|
1085
|
+
initialReport += `> 初始报告未读取源码文件,等待补充分析填充。\n\n`;
|
|
1086
|
+
initialReport += `## 🤖 AI 深度分析清单\n\n`;
|
|
1087
|
+
initialReport += `> 待 AI 分析\n`;
|
|
1088
|
+
// 确保目录存在并写入
|
|
1089
|
+
const dir = (0, path_1.join)(process.cwd(), reportPath, '..');
|
|
1090
|
+
await (0, fs_extra_1.ensureDir)(dir);
|
|
1091
|
+
await (0, fs_extra_1.writeFile)(reportPath, initialReport);
|
|
1092
|
+
logger_1.logger.success(` ✅ 初始报告已创建: ${reportPath}`);
|
|
1093
|
+
existingReport = initialReport;
|
|
1094
|
+
}
|
|
1095
|
+
else {
|
|
1096
|
+
existingReport = await (0, fs_extra_1.readFile)(reportPath, 'utf-8');
|
|
1097
|
+
}
|
|
1098
|
+
// 2. 解析已分析文件(从 "✅ 已分析" 和 "📚 源码分析清单" 部分提取)
|
|
1099
|
+
const readFiles = new Set();
|
|
1100
|
+
const filePattern = /`((?:src|lib|app|packages|components)\/[^`]+)`/g;
|
|
1101
|
+
// 匹配整个源码分析清单区域(## 标题行到下一个 ## 标题行,不截断在 ### 子标题)
|
|
1102
|
+
// 使用 tempered greedy token 避免 multiline $ 导致的提前截断
|
|
1103
|
+
const sourceSection = existingReport.match(/## 📚 源码分析清单[^\n]*\n((?:(?!^## [^\n]*$)[\s\S])*)/m)?.[0] || '';
|
|
1104
|
+
let match;
|
|
1105
|
+
while ((match = filePattern.exec(sourceSection)) !== null) {
|
|
1106
|
+
readFiles.add(match[1]);
|
|
1107
|
+
}
|
|
1108
|
+
// 也匹配补充分析区域(可能有多个,使用 tempered greedy token)
|
|
1109
|
+
const supplementSections = existingReport.match(/### 🔄 补充分析[^\n]*\n((?:(?!^### 🔄 )[\s\S])*)/gm) || [];
|
|
1110
|
+
for (const section of supplementSections) {
|
|
1111
|
+
const tablePattern = /`((?:src|lib|app|packages|components)\/[^`]+)`/g;
|
|
1112
|
+
while ((match = tablePattern.exec(section)) !== null) {
|
|
1113
|
+
readFiles.add(match[1]);
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
logger_1.logger.info(` 📋 已分析文件: ${readFiles.size} 个`);
|
|
1117
|
+
// 3. 从索引获取所有文件,找出未覆盖的
|
|
1118
|
+
const fullIndex = await (0, code_scanner_1.loadFullIndex)();
|
|
1119
|
+
if (!fullIndex) {
|
|
1120
|
+
logger_1.logger.error('代码索引不存在,请先运行: speccore code-index --full');
|
|
1121
|
+
return null;
|
|
1122
|
+
}
|
|
1123
|
+
const scopeDirs = scope ? scope.split(',').map(s => s.trim()).filter(Boolean) : [];
|
|
1124
|
+
const uncoveredFiles = fullIndex.files
|
|
1125
|
+
.map(f => f.path)
|
|
1126
|
+
.filter(f => !readFiles.has(f))
|
|
1127
|
+
.filter(f => scopeDirs.length === 0 || scopeDirs.some(dir => f.startsWith(dir)));
|
|
1128
|
+
if (uncoveredFiles.length === 0) {
|
|
1129
|
+
logger_1.logger.success('✅ 所有索引文件都已分析过,无需补充');
|
|
1130
|
+
return { outputPath: reportPath, addedFiles: [], totalRead: readFiles.size, remainingUncovered: 0 };
|
|
1131
|
+
}
|
|
1132
|
+
// 4. 读取下一批未覆盖文件
|
|
1133
|
+
const filesToRead = uncoveredFiles.slice(0, maxFiles);
|
|
1134
|
+
logger_1.logger.info(` 📖 补充读取 ${filesToRead.length} 个文件 (剩余 ${uncoveredFiles.length - filesToRead.length} 个未覆盖)`);
|
|
1135
|
+
const newContents = {};
|
|
1136
|
+
let totalBytes = 0;
|
|
1137
|
+
const maxBytes = 60000;
|
|
1138
|
+
for (const file of filesToRead) {
|
|
1139
|
+
if (totalBytes >= maxBytes)
|
|
1140
|
+
break;
|
|
1141
|
+
try {
|
|
1142
|
+
const content = await (0, fs_extra_1.readFile)((0, path_1.join)(process.cwd(), file), 'utf-8');
|
|
1143
|
+
const bytes = Buffer.byteLength(content);
|
|
1144
|
+
if (totalBytes + bytes > maxBytes) {
|
|
1145
|
+
const remaining = maxBytes - totalBytes;
|
|
1146
|
+
const buf = Buffer.from(content, 'utf-8');
|
|
1147
|
+
newContents[file] = buf.slice(0, remaining).toString('utf-8') + '\n// ... truncated';
|
|
1148
|
+
break;
|
|
1149
|
+
}
|
|
1150
|
+
newContents[file] = content;
|
|
1151
|
+
totalBytes += bytes;
|
|
1152
|
+
}
|
|
1153
|
+
catch { }
|
|
1154
|
+
}
|
|
1155
|
+
const addedFiles = Object.keys(newContents);
|
|
1156
|
+
if (addedFiles.length === 0) {
|
|
1157
|
+
logger_1.logger.warn('未能读取任何补充文件(文件可能不存在)');
|
|
1158
|
+
return null;
|
|
1159
|
+
}
|
|
1160
|
+
// 5. 构建补充分析章节
|
|
1161
|
+
const supplementCount = (existingReport.match(/### 🔄 补充分析/g) || []).length + 1;
|
|
1162
|
+
let supplement = `\n\n---\n\n`;
|
|
1163
|
+
supplement += `### 🔄 补充分析 #${supplementCount}(${new Date().toISOString().split('T')[0]})\n\n`;
|
|
1164
|
+
supplement += `> 补充读取了以下 **${addedFiles.length}** 个源码文件(累计已分析 ${readFiles.size + addedFiles.length} / ${fullIndex.files.length} 个)\n\n`;
|
|
1165
|
+
// 文件清单表格
|
|
1166
|
+
supplement += `| 文件 | 行数 | 大小 |\n`;
|
|
1167
|
+
supplement += `| :--- | :--- | :--- |\n`;
|
|
1168
|
+
for (const [file, content] of Object.entries(newContents)) {
|
|
1169
|
+
const lines = content.split('\n').length;
|
|
1170
|
+
const size = (content.length / 1024).toFixed(1);
|
|
1171
|
+
supplement += `| \`${file}\` | ${lines} | ${size}KB |\n`;
|
|
1172
|
+
}
|
|
1173
|
+
supplement += `\n`;
|
|
1174
|
+
// 源码内容
|
|
1175
|
+
for (const [file, content] of Object.entries(newContents)) {
|
|
1176
|
+
const lang = file.split('.').pop() || '';
|
|
1177
|
+
supplement += `<details>\n<summary>📄 ${file}</summary>\n\n`;
|
|
1178
|
+
supplement += '```' + lang + '\n' + content.slice(0, 8000) + '\n```\n\n';
|
|
1179
|
+
supplement += `</details>\n\n`;
|
|
1180
|
+
}
|
|
1181
|
+
// 剩余未覆盖提示
|
|
1182
|
+
const remaining = uncoveredFiles.length - addedFiles.length;
|
|
1183
|
+
if (remaining > 0) {
|
|
1184
|
+
supplement += `> 📌 还有 **${remaining}** 个文件未覆盖\n`;
|
|
1185
|
+
supplement += `> - 再次运行 \`speccore analyze --supplement\` 继续补充\n`;
|
|
1186
|
+
supplement += `> - 或指定目录: \`speccore analyze --supplement --source-scope <目录>\`\n`;
|
|
1187
|
+
}
|
|
1188
|
+
else {
|
|
1189
|
+
supplement += `> ✅ 所有索引文件已全部覆盖!\n`;
|
|
1190
|
+
}
|
|
1191
|
+
// 6. 追加到报告并写入
|
|
1192
|
+
const updatedReport = existingReport.replace(/\n*$/, '') + supplement;
|
|
1193
|
+
await (0, fs_extra_1.writeFile)(reportPath, updatedReport);
|
|
1194
|
+
return {
|
|
1195
|
+
outputPath: reportPath,
|
|
1196
|
+
addedFiles,
|
|
1197
|
+
totalRead: readFiles.size + addedFiles.length,
|
|
1198
|
+
remainingUncovered: remaining,
|
|
1199
|
+
};
|
|
1200
|
+
}
|
|
989
1201
|
/** 从 CONSTITUTION.md 提取平台列表 */
|
|
990
1202
|
async function detectPlatformsFromConstitution() {
|
|
991
1203
|
try {
|