speccore 6.98.0 → 7.2.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.
Files changed (91) hide show
  1. package/.agents/agents/README.md +79 -0
  2. package/.agents/agents/spec-analyzer.md +41 -0
  3. package/.agents/agents/spec-architect.md +57 -0
  4. package/.agents/agents/spec-change-detector.md +55 -0
  5. package/.agents/agents/spec-clarifier.md +83 -0
  6. package/.agents/agents/spec-executor.md +41 -0
  7. package/.agents/agents/spec-gatekeeper.md +84 -0
  8. package/.agents/agents/spec-global-analyzer.md +111 -0
  9. package/.agents/agents/spec-knowledge-curator.md +54 -0
  10. package/.agents/agents/spec-reviewer.md +46 -0
  11. package/.agents/agents/spec-security-auditor.md +56 -0
  12. package/.agents/agents/spec-tester.md +120 -0
  13. package/README.md +49 -1
  14. package/dist/cli.js +59 -0
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/analyze.d.ts +6 -0
  17. package/dist/commands/analyze.d.ts.map +1 -1
  18. package/dist/commands/analyze.js +648 -53
  19. package/dist/commands/analyze.js.map +1 -1
  20. package/dist/commands/config.js +15 -4
  21. package/dist/commands/config.js.map +1 -1
  22. package/dist/commands/dev.js +30 -8
  23. package/dist/commands/dev.js.map +1 -1
  24. package/dist/commands/graph.d.ts +25 -0
  25. package/dist/commands/graph.d.ts.map +1 -0
  26. package/dist/commands/graph.js +523 -0
  27. package/dist/commands/graph.js.map +1 -0
  28. package/dist/commands/init.d.ts.map +1 -1
  29. package/dist/commands/init.js +62 -276
  30. package/dist/commands/init.js.map +1 -1
  31. package/dist/commands/iteration-from-global.js +2 -2
  32. package/dist/commands/status.d.ts.map +1 -1
  33. package/dist/commands/status.js +149 -0
  34. package/dist/commands/status.js.map +1 -1
  35. package/dist/core/ask-engine.d.ts.map +1 -1
  36. package/dist/core/ask-engine.js +12 -5
  37. package/dist/core/ask-engine.js.map +1 -1
  38. package/dist/core/change-impact-global.d.ts +20 -0
  39. package/dist/core/change-impact-global.d.ts.map +1 -0
  40. package/dist/core/change-impact-global.js +130 -0
  41. package/dist/core/change-impact-global.js.map +1 -0
  42. package/dist/core/code-graph/parser.d.ts.map +1 -1
  43. package/dist/core/code-graph/parser.js +21 -1
  44. package/dist/core/code-graph/parser.js.map +1 -1
  45. package/dist/core/dev-llm.d.ts +10 -0
  46. package/dist/core/dev-llm.d.ts.map +1 -1
  47. package/dist/core/dev-llm.js.map +1 -1
  48. package/dist/core/doc-cross-reference.d.ts +10 -0
  49. package/dist/core/doc-cross-reference.d.ts.map +1 -0
  50. package/dist/core/doc-cross-reference.js +108 -0
  51. package/dist/core/doc-cross-reference.js.map +1 -0
  52. package/dist/core/doc-quality-gate.d.ts +28 -0
  53. package/dist/core/doc-quality-gate.d.ts.map +1 -0
  54. package/dist/core/doc-quality-gate.js +209 -0
  55. package/dist/core/doc-quality-gate.js.map +1 -0
  56. package/dist/core/graph-semantic.d.ts +51 -0
  57. package/dist/core/graph-semantic.d.ts.map +1 -0
  58. package/dist/core/graph-semantic.js +371 -0
  59. package/dist/core/graph-semantic.js.map +1 -0
  60. package/dist/core/incremental-analyzer.js +1 -1
  61. package/dist/core/incremental-analyzer.js.map +1 -1
  62. package/dist/core/intent-recognition.d.ts.map +1 -1
  63. package/dist/core/intent-recognition.js +40 -0
  64. package/dist/core/intent-recognition.js.map +1 -1
  65. package/dist/core/iteration-cache.d.ts +48 -0
  66. package/dist/core/iteration-cache.d.ts.map +1 -0
  67. package/dist/core/iteration-cache.js +148 -0
  68. package/dist/core/iteration-cache.js.map +1 -0
  69. package/dist/core/knowledge-graph.d.ts +3 -0
  70. package/dist/core/knowledge-graph.d.ts.map +1 -1
  71. package/dist/core/knowledge-graph.js +190 -0
  72. package/dist/core/knowledge-graph.js.map +1 -1
  73. package/dist/core/platform-addition.js +3 -3
  74. package/dist/core/platform-addition.js.map +1 -1
  75. package/dist/core/rag-engine.d.ts +30 -0
  76. package/dist/core/rag-engine.d.ts.map +1 -1
  77. package/dist/core/rag-engine.js +78 -0
  78. package/dist/core/rag-engine.js.map +1 -1
  79. package/dist/core/semantic-locator.d.ts +42 -0
  80. package/dist/core/semantic-locator.d.ts.map +1 -0
  81. package/dist/core/semantic-locator.js +290 -0
  82. package/dist/core/semantic-locator.js.map +1 -0
  83. package/dist/core/structured-extractor.d.ts +89 -0
  84. package/dist/core/structured-extractor.d.ts.map +1 -0
  85. package/dist/core/structured-extractor.js +428 -0
  86. package/dist/core/structured-extractor.js.map +1 -0
  87. package/dist/utils/mermaid-render.d.ts +39 -0
  88. package/dist/utils/mermaid-render.d.ts.map +1 -0
  89. package/dist/utils/mermaid-render.js +284 -0
  90. package/dist/utils/mermaid-render.js.map +1 -0
  91. package/package.json +1 -1
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ /**
3
+ * mermaid-render — Mermaid 图表渲染工具
4
+ * v7.0.0+: 将 .mmd 文件或 Markdown 中的 Mermaid 代码块渲染为 HTML
5
+ *
6
+ * 用法:
7
+ * speccore graph render <file.mmd> 渲染单个 .mmd 文件
8
+ * speccore graph render --all 批量渲染 diagrams/ 目录下所有 .mmd
9
+ * speccore graph render --extract <file.md> 从 Markdown 提取 Mermaid 并渲染
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.renderMmdFile = renderMmdFile;
13
+ exports.renderFromMarkdown = renderFromMarkdown;
14
+ exports.renderAllMmdInDir = renderAllMmdInDir;
15
+ exports.renderAllMarkdownInDir = renderAllMarkdownInDir;
16
+ const fs_extra_1 = require("fs-extra");
17
+ const path_1 = require("path");
18
+ const logger_1 = require("./logger");
19
+ /** HTML 模板 */
20
+ const HTML_TEMPLATE = `<!DOCTYPE html>
21
+ <html lang="zh-CN">
22
+ <head>
23
+ <meta charset="UTF-8">
24
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
25
+ <title>{{TITLE}}</title>
26
+ <script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
27
+ <style>
28
+ * { margin: 0; padding: 0; box-sizing: border-box; }
29
+ body {
30
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
31
+ background: #f5f7fa;
32
+ padding: 40px 20px;
33
+ min-height: 100vh;
34
+ }
35
+ .container {
36
+ max-width: 1400px;
37
+ margin: 0 auto;
38
+ }
39
+ .header {
40
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
41
+ color: white;
42
+ padding: 30px 40px;
43
+ border-radius: 12px;
44
+ margin-bottom: 30px;
45
+ box-shadow: 0 4px 20px rgba(102, 126, 234, 0.3);
46
+ }
47
+ .header h1 { font-size: 24px; font-weight: 600; margin-bottom: 8px; }
48
+ .header p { opacity: 0.9; font-size: 14px; }
49
+ .diagram-card {
50
+ background: white;
51
+ border-radius: 12px;
52
+ padding: 30px;
53
+ margin-bottom: 24px;
54
+ box-shadow: 0 2px 12px rgba(0,0,0,0.06);
55
+ border: 1px solid #e8ecf1;
56
+ }
57
+ .diagram-card h2 {
58
+ font-size: 18px;
59
+ color: #1a1a2e;
60
+ margin-bottom: 20px;
61
+ padding-bottom: 12px;
62
+ border-bottom: 2px solid #f0f2f5;
63
+ }
64
+ .mermaid {
65
+ display: flex;
66
+ justify-content: center;
67
+ padding: 20px 0;
68
+ }
69
+ .mermaid svg {
70
+ max-width: 100%;
71
+ height: auto;
72
+ }
73
+ .meta {
74
+ display: flex;
75
+ gap: 20px;
76
+ margin-top: 16px;
77
+ padding-top: 16px;
78
+ border-top: 1px solid #f0f2f5;
79
+ font-size: 12px;
80
+ color: #8898aa;
81
+ }
82
+ .meta span { display: flex; align-items: center; gap: 6px; }
83
+ .empty-state {
84
+ text-align: center;
85
+ padding: 60px 20px;
86
+ color: #8898aa;
87
+ }
88
+ .empty-state svg { width: 64px; height: 64px; margin-bottom: 16px; opacity: 0.5; }
89
+ @media print {
90
+ body { background: white; padding: 20px; }
91
+ .header { box-shadow: none; border: 1px solid #e8ecf1; }
92
+ .diagram-card { box-shadow: none; break-inside: avoid; }
93
+ }
94
+ </style>
95
+ </head>
96
+ <body>
97
+ <div class="container">
98
+ <div class="header">
99
+ <h1>{{TITLE}}</h1>
100
+ <p>{{SUBTITLE}}</p>
101
+ </div>
102
+ {{DIAGRAMS}}
103
+ </div>
104
+ <script>
105
+ mermaid.initialize({
106
+ startOnLoad: true,
107
+ theme: 'default',
108
+ securityLevel: 'loose',
109
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
110
+ flowchart: { useMaxWidth: true, htmlLabels: true, curve: 'basis' },
111
+ sequence: { useMaxWidth: true, diagramMarginX: 20, diagramMarginY: 20 },
112
+ graph: { useMaxWidth: true },
113
+ });
114
+ </script>
115
+ </body>
116
+ </html>`;
117
+ /** 单张图表的 HTML 片段 */
118
+ const DIAGRAM_CARD_TEMPLATE = `
119
+ <div class="diagram-card">
120
+ <h2>{{NAME}}</h2>
121
+ <div class="mermaid">
122
+ {{CODE}}
123
+ </div>
124
+ <div class="meta">
125
+ <span>📄 来源: {{SOURCE}}</span>
126
+ <span>📐 类型: {{TYPE}}</span>
127
+ <span>🕐 生成: {{TIME}}</span>
128
+ </div>
129
+ </div>`;
130
+ /**
131
+ * 渲染单个 .mmd 文件为 HTML
132
+ */
133
+ async function renderMmdFile(filePath, options = {}) {
134
+ if (!await (0, fs_extra_1.pathExists)(filePath)) {
135
+ logger_1.logger.error(`文件不存在: ${filePath}`);
136
+ return null;
137
+ }
138
+ const content = await (0, fs_extra_1.readFile)(filePath, 'utf-8');
139
+ const fileName = (0, path_1.basename)(filePath, (0, path_1.extname)(filePath));
140
+ const title = options.title || fileName;
141
+ return generateHtml(title, [{ name: fileName, code: content, source: filePath, type: 'mmd' }]);
142
+ }
143
+ /**
144
+ * 从 Markdown 文件提取 Mermaid 代码块并渲染
145
+ */
146
+ async function renderFromMarkdown(mdFilePath, options = {}) {
147
+ if (!await (0, fs_extra_1.pathExists)(mdFilePath)) {
148
+ logger_1.logger.error(`文件不存在: ${mdFilePath}`);
149
+ return null;
150
+ }
151
+ const content = await (0, fs_extra_1.readFile)(mdFilePath, 'utf-8');
152
+ const diagrams = extractMermaidFromMarkdown(content, mdFilePath);
153
+ if (diagrams.length === 0) {
154
+ logger_1.logger.warn(`未在 ${mdFilePath} 中发现 Mermaid 图表`);
155
+ return null;
156
+ }
157
+ const fileName = (0, path_1.basename)(mdFilePath, (0, path_1.extname)(mdFilePath));
158
+ const title = options.title || `${fileName} — 图表集`;
159
+ return generateHtml(title, diagrams);
160
+ }
161
+ /**
162
+ * 批量渲染目录下所有 .mmd 文件
163
+ */
164
+ async function renderAllMmdInDir(dirPath, options = {}) {
165
+ if (!await (0, fs_extra_1.pathExists)(dirPath)) {
166
+ logger_1.logger.error(`目录不存在: ${dirPath}`);
167
+ return [];
168
+ }
169
+ const files = (await (0, fs_extra_1.readdir)(dirPath))
170
+ .filter(f => f.endsWith('.mmd'))
171
+ .sort();
172
+ const results = [];
173
+ for (const file of files) {
174
+ const filePath = (0, path_1.join)(dirPath, file);
175
+ const html = await renderMmdFile(filePath, options);
176
+ if (html) {
177
+ const outputName = file.replace('.mmd', '.html');
178
+ const outputPath = options.outputDir
179
+ ? (0, path_1.join)(options.outputDir, outputName)
180
+ : (0, path_1.join)(dirPath, outputName);
181
+ await (0, fs_extra_1.writeFile)(outputPath, html, 'utf-8');
182
+ results.push({ file, output: outputPath });
183
+ logger_1.logger.info(` ✓ ${file} → ${outputName}`);
184
+ }
185
+ }
186
+ return results;
187
+ }
188
+ /**
189
+ * 批量渲染目录下所有 Markdown 文件中的 Mermaid
190
+ */
191
+ async function renderAllMarkdownInDir(dirPath, options = {}) {
192
+ if (!await (0, fs_extra_1.pathExists)(dirPath)) {
193
+ logger_1.logger.error(`目录不存在: ${dirPath}`);
194
+ return [];
195
+ }
196
+ const files = (await (0, fs_extra_1.readdir)(dirPath))
197
+ .filter(f => f.endsWith('.md'))
198
+ .sort();
199
+ const results = [];
200
+ for (const file of files) {
201
+ const filePath = (0, path_1.join)(dirPath, file);
202
+ const html = await renderFromMarkdown(filePath, options);
203
+ if (html) {
204
+ const outputName = file.replace('.md', '-diagrams.html');
205
+ const outputPath = options.outputDir
206
+ ? (0, path_1.join)(options.outputDir, outputName)
207
+ : (0, path_1.join)(dirPath, outputName);
208
+ await (0, fs_extra_1.writeFile)(outputPath, html, 'utf-8');
209
+ results.push({ file, output: outputPath });
210
+ logger_1.logger.info(` ✓ ${file} → ${outputName}`);
211
+ }
212
+ }
213
+ return results;
214
+ }
215
+ /** 从 Markdown 提取 Mermaid 代码块 */
216
+ function extractMermaidFromMarkdown(content, sourcePath) {
217
+ const diagrams = [];
218
+ // 匹配 ```mermaid ... ``` 代码块
219
+ const pattern = /```mermaid\n([\s\S]*?)```/g;
220
+ let match;
221
+ let index = 0;
222
+ while ((match = pattern.exec(content)) !== null) {
223
+ index++;
224
+ const code = match[1].trim();
225
+ // 推断图表类型
226
+ const type = inferDiagramType(code);
227
+ diagrams.push({
228
+ name: `图表 ${index} (${type})`,
229
+ code,
230
+ source: sourcePath,
231
+ type,
232
+ });
233
+ }
234
+ return diagrams;
235
+ }
236
+ /** 推断 Mermaid 图表类型 */
237
+ function inferDiagramType(code) {
238
+ const firstLine = code.split('\n')[0]?.trim().toLowerCase() || '';
239
+ if (firstLine.includes('sequencediagram'))
240
+ return '时序图';
241
+ if (firstLine.includes('flowchart') || firstLine.includes('graph'))
242
+ return '流程图/关系图';
243
+ if (firstLine.includes('statediagram'))
244
+ return '状态图';
245
+ if (firstLine.includes('classdiagram'))
246
+ return '类图';
247
+ if (firstLine.includes('erdiagram'))
248
+ return 'ER 图';
249
+ if (firstLine.includes('gantt'))
250
+ return '甘特图';
251
+ if (firstLine.includes('pie'))
252
+ return '饼图';
253
+ if (firstLine.includes('journey'))
254
+ return '用户旅程';
255
+ return '图表';
256
+ }
257
+ /** 生成完整 HTML */
258
+ function generateHtml(title, diagrams) {
259
+ const now = new Date().toLocaleString('zh-CN');
260
+ const diagramHtml = diagrams.map((d, i) => {
261
+ // 对 Mermaid 代码进行 HTML 转义
262
+ const escapedCode = d.code
263
+ .replace(/&/g, '&amp;')
264
+ .replace(/</g, '&lt;')
265
+ .replace(/>/g, '&gt;');
266
+ return DIAGRAM_CARD_TEMPLATE
267
+ .replace('{{NAME}}', d.name)
268
+ .replace('{{CODE}}', escapedCode)
269
+ .replace('{{SOURCE}}', (0, path_1.basename)(d.source))
270
+ .replace('{{TYPE}}', d.type)
271
+ .replace('{{TIME}}', now);
272
+ }).join('\n');
273
+ const subtitle = diagrams.length > 0
274
+ ? `共 ${diagrams.length} 张图表 · ${now}`
275
+ : `生成时间: ${now}`;
276
+ return HTML_TEMPLATE
277
+ .replace('{{TITLE}}', title)
278
+ .replace('{{SUBTITLE}}', subtitle)
279
+ .replace('{{DIAGRAMS}}', diagramHtml || `
280
+ <div class="empty-state">
281
+ <p>未找到可渲染的图表</p>
282
+ </div>`);
283
+ }
284
+ //# sourceMappingURL=mermaid-render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-render.js","sourceRoot":"","sources":["../../src/utils/mermaid-render.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccore",
3
- "version": "6.98.0",
3
+ "version": "7.2.0",
4
4
  "description": "SpecCore - Code by Spec, Not by Vibe.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",