repowiki-core 0.1.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 (157) hide show
  1. package/dist/analyzer/api-analyzer.d.ts +22 -0
  2. package/dist/analyzer/api-analyzer.d.ts.map +1 -0
  3. package/dist/analyzer/api-analyzer.js +272 -0
  4. package/dist/analyzer/api-analyzer.js.map +1 -0
  5. package/dist/analyzer/config-analyzer.d.ts +18 -0
  6. package/dist/analyzer/config-analyzer.d.ts.map +1 -0
  7. package/dist/analyzer/config-analyzer.js +200 -0
  8. package/dist/analyzer/config-analyzer.js.map +1 -0
  9. package/dist/analyzer/database-analyzer.d.ts +24 -0
  10. package/dist/analyzer/database-analyzer.d.ts.map +1 -0
  11. package/dist/analyzer/database-analyzer.js +391 -0
  12. package/dist/analyzer/database-analyzer.js.map +1 -0
  13. package/dist/analyzer/index.d.ts +10 -0
  14. package/dist/analyzer/index.d.ts.map +1 -0
  15. package/dist/analyzer/index.js +10 -0
  16. package/dist/analyzer/index.js.map +1 -0
  17. package/dist/analyzer/module-analyzer.d.ts +20 -0
  18. package/dist/analyzer/module-analyzer.d.ts.map +1 -0
  19. package/dist/analyzer/module-analyzer.js +252 -0
  20. package/dist/analyzer/module-analyzer.js.map +1 -0
  21. package/dist/analyzer/workflow-analyzer.d.ts +19 -0
  22. package/dist/analyzer/workflow-analyzer.d.ts.map +1 -0
  23. package/dist/analyzer/workflow-analyzer.js +165 -0
  24. package/dist/analyzer/workflow-analyzer.js.map +1 -0
  25. package/dist/detector/dependency-detector.d.ts +50 -0
  26. package/dist/detector/dependency-detector.d.ts.map +1 -0
  27. package/dist/detector/dependency-detector.js +326 -0
  28. package/dist/detector/dependency-detector.js.map +1 -0
  29. package/dist/detector/entrypoint-detector.d.ts +30 -0
  30. package/dist/detector/entrypoint-detector.d.ts.map +1 -0
  31. package/dist/detector/entrypoint-detector.js +240 -0
  32. package/dist/detector/entrypoint-detector.js.map +1 -0
  33. package/dist/detector/index.d.ts +10 -0
  34. package/dist/detector/index.d.ts.map +1 -0
  35. package/dist/detector/index.js +10 -0
  36. package/dist/detector/index.js.map +1 -0
  37. package/dist/detector/tech-stack-detector.d.ts +41 -0
  38. package/dist/detector/tech-stack-detector.d.ts.map +1 -0
  39. package/dist/detector/tech-stack-detector.js +300 -0
  40. package/dist/detector/tech-stack-detector.js.map +1 -0
  41. package/dist/generator/index.d.ts +9 -0
  42. package/dist/generator/index.d.ts.map +1 -0
  43. package/dist/generator/index.js +9 -0
  44. package/dist/generator/index.js.map +1 -0
  45. package/dist/generator/markdown-generator.d.ts +71 -0
  46. package/dist/generator/markdown-generator.d.ts.map +1 -0
  47. package/dist/generator/markdown-generator.js +235 -0
  48. package/dist/generator/markdown-generator.js.map +1 -0
  49. package/dist/generator/mermaid-generator.d.ts +30 -0
  50. package/dist/generator/mermaid-generator.d.ts.map +1 -0
  51. package/dist/generator/mermaid-generator.js +297 -0
  52. package/dist/generator/mermaid-generator.js.map +1 -0
  53. package/dist/generator/sidebar-generator.d.ts +10 -0
  54. package/dist/generator/sidebar-generator.d.ts.map +1 -0
  55. package/dist/generator/sidebar-generator.js +120 -0
  56. package/dist/generator/sidebar-generator.js.map +1 -0
  57. package/dist/generator/wiki-generator.d.ts +45 -0
  58. package/dist/generator/wiki-generator.d.ts.map +1 -0
  59. package/dist/generator/wiki-generator.js +217 -0
  60. package/dist/generator/wiki-generator.js.map +1 -0
  61. package/dist/index.d.ts +12 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +12 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/llm/auth-manager.d.ts +50 -0
  66. package/dist/llm/auth-manager.d.ts.map +1 -0
  67. package/dist/llm/auth-manager.js +172 -0
  68. package/dist/llm/auth-manager.js.map +1 -0
  69. package/dist/llm/index.d.ts +10 -0
  70. package/dist/llm/index.d.ts.map +1 -0
  71. package/dist/llm/index.js +9 -0
  72. package/dist/llm/index.js.map +1 -0
  73. package/dist/llm/llm-client.d.ts +132 -0
  74. package/dist/llm/llm-client.d.ts.map +1 -0
  75. package/dist/llm/llm-client.js +308 -0
  76. package/dist/llm/llm-client.js.map +1 -0
  77. package/dist/llm/prompt-manager.d.ts +67 -0
  78. package/dist/llm/prompt-manager.d.ts.map +1 -0
  79. package/dist/llm/prompt-manager.js +283 -0
  80. package/dist/llm/prompt-manager.js.map +1 -0
  81. package/dist/models/analysis-result.d.ts +425 -0
  82. package/dist/models/analysis-result.d.ts.map +1 -0
  83. package/dist/models/analysis-result.js +34 -0
  84. package/dist/models/analysis-result.js.map +1 -0
  85. package/dist/models/analysis-types.d.ts +223 -0
  86. package/dist/models/analysis-types.d.ts.map +1 -0
  87. package/dist/models/analysis-types.js +95 -0
  88. package/dist/models/analysis-types.js.map +1 -0
  89. package/dist/models/file-reference.d.ts +62 -0
  90. package/dist/models/file-reference.d.ts.map +1 -0
  91. package/dist/models/file-reference.js +34 -0
  92. package/dist/models/file-reference.js.map +1 -0
  93. package/dist/models/index.d.ts +10 -0
  94. package/dist/models/index.d.ts.map +1 -0
  95. package/dist/models/index.js +10 -0
  96. package/dist/models/index.js.map +1 -0
  97. package/dist/models/project-profile.d.ts +48 -0
  98. package/dist/models/project-profile.d.ts.map +1 -0
  99. package/dist/models/project-profile.js +26 -0
  100. package/dist/models/project-profile.js.map +1 -0
  101. package/dist/models/wiki-page.d.ts +57 -0
  102. package/dist/models/wiki-page.d.ts.map +1 -0
  103. package/dist/models/wiki-page.js +19 -0
  104. package/dist/models/wiki-page.js.map +1 -0
  105. package/dist/pipeline.d.ts +30 -0
  106. package/dist/pipeline.d.ts.map +1 -0
  107. package/dist/pipeline.js +159 -0
  108. package/dist/pipeline.js.map +1 -0
  109. package/dist/scanner/file-scanner.d.ts +27 -0
  110. package/dist/scanner/file-scanner.d.ts.map +1 -0
  111. package/dist/scanner/file-scanner.js +149 -0
  112. package/dist/scanner/file-scanner.js.map +1 -0
  113. package/dist/scanner/ignore-rules.d.ts +31 -0
  114. package/dist/scanner/ignore-rules.d.ts.map +1 -0
  115. package/dist/scanner/ignore-rules.js +98 -0
  116. package/dist/scanner/ignore-rules.js.map +1 -0
  117. package/dist/scanner/index.d.ts +8 -0
  118. package/dist/scanner/index.d.ts.map +1 -0
  119. package/dist/scanner/index.js +8 -0
  120. package/dist/scanner/index.js.map +1 -0
  121. package/dist/scanner/tree-builder.d.ts +20 -0
  122. package/dist/scanner/tree-builder.d.ts.map +1 -0
  123. package/dist/scanner/tree-builder.js +118 -0
  124. package/dist/scanner/tree-builder.js.map +1 -0
  125. package/package.json +34 -0
  126. package/src/analyzer/api-analyzer.ts +324 -0
  127. package/src/analyzer/config-analyzer.ts +209 -0
  128. package/src/analyzer/database-analyzer.ts +468 -0
  129. package/src/analyzer/index.ts +26 -0
  130. package/src/analyzer/module-analyzer.ts +308 -0
  131. package/src/analyzer/workflow-analyzer.ts +190 -0
  132. package/src/detector/dependency-detector.ts +390 -0
  133. package/src/detector/entrypoint-detector.ts +270 -0
  134. package/src/detector/index.ts +21 -0
  135. package/src/detector/tech-stack-detector.ts +377 -0
  136. package/src/generator/index.ts +36 -0
  137. package/src/generator/markdown-generator.ts +277 -0
  138. package/src/generator/mermaid-generator.ts +340 -0
  139. package/src/generator/sidebar-generator.ts +134 -0
  140. package/src/generator/wiki-generator.ts +281 -0
  141. package/src/index.ts +12 -0
  142. package/src/llm/auth-manager.ts +207 -0
  143. package/src/llm/index.ts +21 -0
  144. package/src/llm/llm-client.ts +417 -0
  145. package/src/llm/prompt-manager.ts +325 -0
  146. package/src/models/analysis-result.ts +44 -0
  147. package/src/models/analysis-types.ts +121 -0
  148. package/src/models/file-reference.ts +41 -0
  149. package/src/models/index.ts +44 -0
  150. package/src/models/project-profile.ts +29 -0
  151. package/src/models/wiki-page.ts +23 -0
  152. package/src/pipeline.ts +225 -0
  153. package/src/scanner/file-scanner.ts +192 -0
  154. package/src/scanner/ignore-rules.ts +112 -0
  155. package/src/scanner/index.ts +19 -0
  156. package/src/scanner/tree-builder.ts +156 -0
  157. package/tsconfig.json +8 -0
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @module detector/tech-stack-detector
3
+ * 技术栈探测器
4
+ *
5
+ * 通过分析项目中的配置文件(package.json、requirements.txt、docker-compose.yml 等)
6
+ * 以及文件扩展名分布,自动识别项目使用的编程语言、框架、包管理器、数据库和服务。
7
+ */
8
+ import type { FileNode } from '../models/index.js';
9
+ /** 技术栈检测结果 */
10
+ export interface TechStackResult {
11
+ /** 检测到的编程语言列表 */
12
+ languages: string[];
13
+ /** 检测到的框架列表 */
14
+ frameworks: string[];
15
+ /** 检测到的包管理器列表 */
16
+ packageManagers: string[];
17
+ /** 检测到的数据库列表 */
18
+ databases: string[];
19
+ /** 检测到的服务/中间件列表 */
20
+ services: string[];
21
+ /** 参与检测的配置文件列表 */
22
+ configFiles: string[];
23
+ }
24
+ /**
25
+ * 检测项目技术栈。
26
+ *
27
+ * 通过读取配置文件内容和分析文件扩展名分布,自动识别项目使用的
28
+ * 编程语言、框架、包管理器、数据库和服务。
29
+ *
30
+ * @param rootPath 项目根目录的绝对路径
31
+ * @param files FileScanner 输出的文件节点列表
32
+ * @returns 技术栈检测结果
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const result = await detectTechStack('/path/to/project', files);
37
+ * console.log(result.frameworks); // ['Next.js', 'FastAPI']
38
+ * ```
39
+ */
40
+ export declare function detectTechStack(rootPath: string, files: FileNode[]): Promise<TechStackResult>;
41
+ //# sourceMappingURL=tech-stack-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-stack-detector.d.ts","sourceRoot":"","sources":["../../src/detector/tech-stack-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAMnD,cAAc;AACd,MAAM,WAAW,eAAe;IAC5B,iBAAiB;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAqSD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EAAE,GAClB,OAAO,CAAC,eAAe,CAAC,CAkC1B"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * @module detector/tech-stack-detector
3
+ * 技术栈探测器
4
+ *
5
+ * 通过分析项目中的配置文件(package.json、requirements.txt、docker-compose.yml 等)
6
+ * 以及文件扩展名分布,自动识别项目使用的编程语言、框架、包管理器、数据库和服务。
7
+ */
8
+ import * as fs from 'node:fs/promises';
9
+ import * as path from 'node:path';
10
+ // ---------------------------------------------------------------------------
11
+ // 匹配规则
12
+ // ---------------------------------------------------------------------------
13
+ /** Node.js 依赖名 → 框架显示名 */
14
+ const NODE_FRAMEWORK_MAP = {
15
+ next: 'Next.js',
16
+ react: 'React',
17
+ vue: 'Vue.js',
18
+ '@angular/core': 'Angular',
19
+ vite: 'Vite',
20
+ express: 'Express',
21
+ '@nestjs/core': 'NestJS',
22
+ fastify: 'Fastify',
23
+ };
24
+ /** Python 包名关键字 → 框架显示名 */
25
+ const PYTHON_FRAMEWORK_MAP = {
26
+ fastapi: 'FastAPI',
27
+ django: 'Django',
28
+ flask: 'Flask',
29
+ langchain: 'LangChain',
30
+ langgraph: 'LangGraph',
31
+ };
32
+ /** docker-compose 服务镜像/名称关键字 → 数据库/服务显示名 */
33
+ const DOCKER_SERVICE_MAP = {
34
+ postgres: { name: 'PostgreSQL', kind: 'database' },
35
+ mysql: { name: 'MySQL', kind: 'database' },
36
+ redis: { name: 'Redis', kind: 'database' },
37
+ mongo: { name: 'MongoDB', kind: 'database' },
38
+ minio: { name: 'MinIO', kind: 'service' },
39
+ rabbitmq: { name: 'RabbitMQ', kind: 'service' },
40
+ elasticsearch: { name: 'Elasticsearch', kind: 'service' },
41
+ };
42
+ /** 锁文件 → 包管理器名称 */
43
+ const LOCKFILE_MAP = {
44
+ 'package-lock.json': 'npm',
45
+ 'yarn.lock': 'yarn',
46
+ 'pnpm-lock.yaml': 'pnpm',
47
+ };
48
+ /** 文件扩展名 → 语言名称(用于统计文件数量) */
49
+ const EXTENSION_LANGUAGE_MAP = {
50
+ '.ts': 'TypeScript',
51
+ '.tsx': 'TypeScript',
52
+ '.js': 'JavaScript',
53
+ '.jsx': 'JavaScript',
54
+ '.py': 'Python',
55
+ '.rs': 'Rust',
56
+ '.go': 'Go',
57
+ '.java': 'Java',
58
+ '.kt': 'Kotlin',
59
+ '.swift': 'Swift',
60
+ '.rb': 'Ruby',
61
+ '.php': 'PHP',
62
+ '.cs': 'C#',
63
+ '.cpp': 'C++',
64
+ '.c': 'C',
65
+ '.dart': 'Dart',
66
+ '.scala': 'Scala',
67
+ '.lua': 'Lua',
68
+ '.zig': 'Zig',
69
+ };
70
+ /** 需要达到的最低文件数量阈值,才会报告该语言 */
71
+ const LANGUAGE_FILE_THRESHOLD = 5;
72
+ // ---------------------------------------------------------------------------
73
+ // 辅助函数
74
+ // ---------------------------------------------------------------------------
75
+ /**
76
+ * 安全读取文件内容,文件不存在时返回 null。
77
+ * @param filePath 要读取的文件绝对路径
78
+ */
79
+ async function safeReadFile(filePath) {
80
+ try {
81
+ return await fs.readFile(filePath, 'utf-8');
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ }
87
+ /**
88
+ * 在文件节点列表中查找指定相对路径的文件是否存在。
89
+ * @param files 文件节点列表
90
+ * @param relativePath 待查找的相对路径
91
+ */
92
+ function hasFile(files, relativePath) {
93
+ const normalized = relativePath.replace(/\\/g, '/');
94
+ return files.some((f) => f.nodeType === 'file' && f.relativePath.replace(/\\/g, '/') === normalized);
95
+ }
96
+ /**
97
+ * 在文件节点列表中查找指定相对路径前缀的目录是否存在。
98
+ * @param files 文件节点列表
99
+ * @param dirPrefix 待查找的目录前缀(如 "agents/")
100
+ */
101
+ function hasDirectory(files, dirPrefix) {
102
+ const normalized = dirPrefix.replace(/\\/g, '/');
103
+ return files.some((f) => {
104
+ const rel = f.relativePath.replace(/\\/g, '/');
105
+ return rel === normalized.replace(/\/$/, '') || rel.startsWith(normalized);
106
+ });
107
+ }
108
+ /**
109
+ * 对结果数组进行去重。
110
+ */
111
+ function unique(arr) {
112
+ return [...new Set(arr)];
113
+ }
114
+ // ---------------------------------------------------------------------------
115
+ // 检测子流程
116
+ // ---------------------------------------------------------------------------
117
+ /**
118
+ * 从 package.json 中检测 Node.js 框架和包管理器。
119
+ */
120
+ async function detectFromPackageJson(rootPath, files, result) {
121
+ const content = await safeReadFile(path.join(rootPath, 'package.json'));
122
+ if (!content)
123
+ return;
124
+ result.configFiles.push('package.json');
125
+ let pkg;
126
+ try {
127
+ pkg = JSON.parse(content);
128
+ }
129
+ catch {
130
+ return;
131
+ }
132
+ // 合并 dependencies 和 devDependencies
133
+ const deps = {
134
+ ...(pkg.dependencies ?? {}),
135
+ ...(pkg.devDependencies ?? {}),
136
+ };
137
+ for (const [depName, frameworkName] of Object.entries(NODE_FRAMEWORK_MAP)) {
138
+ if (depName in deps) {
139
+ result.frameworks.push(frameworkName);
140
+ }
141
+ }
142
+ // 检测包管理器(通过锁文件)
143
+ for (const [lockFile, managerName] of Object.entries(LOCKFILE_MAP)) {
144
+ if (hasFile(files, lockFile)) {
145
+ result.packageManagers.push(managerName);
146
+ }
147
+ }
148
+ }
149
+ /**
150
+ * 从 requirements.txt 中检测 Python 框架。
151
+ */
152
+ async function detectFromRequirementsTxt(rootPath, result) {
153
+ const content = await safeReadFile(path.join(rootPath, 'requirements.txt'));
154
+ if (!content)
155
+ return;
156
+ result.configFiles.push('requirements.txt');
157
+ const lower = content.toLowerCase();
158
+ for (const [keyword, frameworkName] of Object.entries(PYTHON_FRAMEWORK_MAP)) {
159
+ if (lower.includes(keyword)) {
160
+ result.frameworks.push(frameworkName);
161
+ }
162
+ }
163
+ }
164
+ /**
165
+ * 从 pyproject.toml 中检测 Python 框架。
166
+ */
167
+ async function detectFromPyprojectToml(rootPath, result) {
168
+ const content = await safeReadFile(path.join(rootPath, 'pyproject.toml'));
169
+ if (!content)
170
+ return;
171
+ result.configFiles.push('pyproject.toml');
172
+ const lower = content.toLowerCase();
173
+ for (const [keyword, frameworkName] of Object.entries(PYTHON_FRAMEWORK_MAP)) {
174
+ if (lower.includes(keyword)) {
175
+ result.frameworks.push(frameworkName);
176
+ }
177
+ }
178
+ }
179
+ /**
180
+ * 从 docker-compose 配置中检测数据库和服务。
181
+ * 同时检测 docker-compose.yml 和 docker-compose.yaml 两种命名。
182
+ */
183
+ async function detectFromDockerCompose(rootPath, result) {
184
+ const candidates = ['docker-compose.yml', 'docker-compose.yaml'];
185
+ for (const fileName of candidates) {
186
+ const content = await safeReadFile(path.join(rootPath, fileName));
187
+ if (!content)
188
+ continue;
189
+ result.configFiles.push(fileName);
190
+ const lower = content.toLowerCase();
191
+ for (const [keyword, info] of Object.entries(DOCKER_SERVICE_MAP)) {
192
+ if (lower.includes(keyword)) {
193
+ if (info.kind === 'database') {
194
+ result.databases.push(info.name);
195
+ }
196
+ else {
197
+ result.services.push(info.name);
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ /**
204
+ * 通过 Cargo.toml / go.mod 检测 Rust / Go 语言。
205
+ */
206
+ async function detectFromLanguageManifests(rootPath, result) {
207
+ const cargoContent = await safeReadFile(path.join(rootPath, 'Cargo.toml'));
208
+ if (cargoContent) {
209
+ result.languages.push('Rust');
210
+ result.configFiles.push('Cargo.toml');
211
+ }
212
+ const goModContent = await safeReadFile(path.join(rootPath, 'go.mod'));
213
+ if (goModContent) {
214
+ result.languages.push('Go');
215
+ result.configFiles.push('go.mod');
216
+ }
217
+ }
218
+ /**
219
+ * 根据文件扩展名分布统计语言,仅报告文件数超过阈值的语言。
220
+ */
221
+ function detectLanguagesFromExtensions(files, result) {
222
+ const counts = new Map();
223
+ for (const file of files) {
224
+ if (file.nodeType !== 'file')
225
+ continue;
226
+ const ext = path.extname(file.relativePath).toLowerCase();
227
+ const lang = EXTENSION_LANGUAGE_MAP[ext];
228
+ if (lang) {
229
+ counts.set(lang, (counts.get(lang) ?? 0) + 1);
230
+ }
231
+ }
232
+ for (const [lang, count] of counts) {
233
+ if (count >= LANGUAGE_FILE_THRESHOLD) {
234
+ result.languages.push(lang);
235
+ }
236
+ }
237
+ }
238
+ /**
239
+ * 根据目录结构模式检测架构特征(Agent 架构、Workflow 编排等)。
240
+ */
241
+ function detectDirectoryPatterns(files, result) {
242
+ // Agent 架构:app/agents 或 agents/
243
+ if (hasDirectory(files, 'app/agents/') || hasDirectory(files, 'agents/')) {
244
+ result.frameworks.push('Agent Architecture');
245
+ }
246
+ // Workflow 编排:workflows/
247
+ if (hasDirectory(files, 'workflows/')) {
248
+ result.frameworks.push('Workflow Orchestration');
249
+ }
250
+ }
251
+ // ---------------------------------------------------------------------------
252
+ // 主入口
253
+ // ---------------------------------------------------------------------------
254
+ /**
255
+ * 检测项目技术栈。
256
+ *
257
+ * 通过读取配置文件内容和分析文件扩展名分布,自动识别项目使用的
258
+ * 编程语言、框架、包管理器、数据库和服务。
259
+ *
260
+ * @param rootPath 项目根目录的绝对路径
261
+ * @param files FileScanner 输出的文件节点列表
262
+ * @returns 技术栈检测结果
263
+ *
264
+ * @example
265
+ * ```ts
266
+ * const result = await detectTechStack('/path/to/project', files);
267
+ * console.log(result.frameworks); // ['Next.js', 'FastAPI']
268
+ * ```
269
+ */
270
+ export async function detectTechStack(rootPath, files) {
271
+ const result = {
272
+ languages: [],
273
+ frameworks: [],
274
+ packageManagers: [],
275
+ databases: [],
276
+ services: [],
277
+ configFiles: [],
278
+ };
279
+ // 并行执行所有检测子流程
280
+ await Promise.all([
281
+ detectFromPackageJson(rootPath, files, result),
282
+ detectFromRequirementsTxt(rootPath, result),
283
+ detectFromPyprojectToml(rootPath, result),
284
+ detectFromDockerCompose(rootPath, result),
285
+ detectFromLanguageManifests(rootPath, result),
286
+ ]);
287
+ // 基于文件扩展名统计语言(同步操作)
288
+ detectLanguagesFromExtensions(files, result);
289
+ // 目录模式检测(同步操作)
290
+ detectDirectoryPatterns(files, result);
291
+ // 去重
292
+ result.languages = unique(result.languages);
293
+ result.frameworks = unique(result.frameworks);
294
+ result.packageManagers = unique(result.packageManagers);
295
+ result.databases = unique(result.databases);
296
+ result.services = unique(result.services);
297
+ result.configFiles = unique(result.configFiles);
298
+ return result;
299
+ }
300
+ //# sourceMappingURL=tech-stack-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-stack-detector.js","sourceRoot":"","sources":["../../src/detector/tech-stack-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * generator 模块入口
3
+ * 负责将静态分析结果组装、排版为符合规范的 Markdown 格式 Wiki 文档,并生成 Mermaid 关系图表。
4
+ */
5
+ export { generateTable, formatSourceRef, formatSectionSource, formatDiagramSource, formatCiteBlock, formatToc, formatFileTable, wrapMermaid, formatTroubleshootingTable, assembleWikiPage, } from './markdown-generator.js';
6
+ export { generateArchitectureDiagram, generateERDiagram, generateDependencyDiagram, generateApiDiagram, generateTechStackDiagram, } from './mermaid-generator.js';
7
+ export { generateSidebar, generateHome, } from './sidebar-generator.js';
8
+ export { WikiGenerator, type WikiGeneratorConfig, type PlannedPage, } from './wiki-generator.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,eAAe,EACf,WAAW,EACX,0BAA0B,EAC1B,gBAAgB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACH,2BAA2B,EAC3B,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,eAAe,EACf,YAAY,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,WAAW,GACnB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * generator 模块入口
3
+ * 负责将静态分析结果组装、排版为符合规范的 Markdown 格式 Wiki 文档,并生成 Mermaid 关系图表。
4
+ */
5
+ export { generateTable, formatSourceRef, formatSectionSource, formatDiagramSource, formatCiteBlock, formatToc, formatFileTable, wrapMermaid, formatTroubleshootingTable, assembleWikiPage, } from './markdown-generator.js';
6
+ export { generateArchitectureDiagram, generateERDiagram, generateDependencyDiagram, generateApiDiagram, generateTechStackDiagram, } from './mermaid-generator.js';
7
+ export { generateSidebar, generateHome, } from './sidebar-generator.js';
8
+ export { WikiGenerator, } from './wiki-generator.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,eAAe,EACf,WAAW,EACX,0BAA0B,EAC1B,gBAAgB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACH,2BAA2B,EAC3B,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,eAAe,EACf,YAAY,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,aAAa,GAGhB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { type SourceReference } from '../models/index.js';
2
+ /**
3
+ * Markdown 文档生成工具集
4
+ * 提供格式化表格、源码引用链接、页面结构等工具函数
5
+ */
6
+ /**
7
+ * 生成 Markdown 表格
8
+ */
9
+ export declare function generateTable(headers: string[], rows: string[][]): string;
10
+ /**
11
+ * 生成源码引用链接
12
+ * 格式: [file.py:1-50](file://project/path/to/file.py#L1-L50)
13
+ */
14
+ export declare function formatSourceRef(ref: SourceReference, projectRoot: string): string;
15
+ /**
16
+ * 生成源码引用块(章节来源)
17
+ */
18
+ export declare function formatSectionSource(refs: SourceReference[], projectRoot: string): string;
19
+ /**
20
+ * 生成图表来源引用
21
+ */
22
+ export declare function formatDiagramSource(refs: SourceReference[], projectRoot: string): string;
23
+ /**
24
+ * 生成 <cite> 引用块,列出所有被引用的源码文件
25
+ */
26
+ export declare function formatCiteBlock(refs: SourceReference[], projectRoot: string): string;
27
+ /**
28
+ * 生成目录(Table of Contents)
29
+ */
30
+ export declare function formatToc(headings: string[]): string;
31
+ /**
32
+ * 生成文件列表表格
33
+ */
34
+ export declare function formatFileTable(files: Array<{
35
+ path: string;
36
+ description: string;
37
+ }>): string;
38
+ /**
39
+ * 包裹 Mermaid 代码块
40
+ */
41
+ export declare function wrapMermaid(code: string): string;
42
+ /**
43
+ * 生成故障排查表格
44
+ */
45
+ export declare function formatTroubleshootingTable(issues: Array<{
46
+ problem: string;
47
+ cause: string;
48
+ resolution: string;
49
+ }>): string;
50
+ /**
51
+ * 组装完整的 Wiki 页面
52
+ * 将各部分内容按照标准模板结构拼装
53
+ */
54
+ export declare function assembleWikiPage(sections: {
55
+ title: string;
56
+ citeRefs: SourceReference[];
57
+ projectRoot: string;
58
+ introduction: string;
59
+ projectStructure?: string;
60
+ projectStructureDiagram?: string;
61
+ coreComponents?: string;
62
+ architectureOverview?: string;
63
+ architectureDiagram?: string;
64
+ detailedAnalysis?: string;
65
+ dependencyAnalysis?: string;
66
+ dependencyDiagram?: string;
67
+ troubleshooting?: string;
68
+ conclusion?: string;
69
+ appendix?: string;
70
+ }): string;
71
+ //# sourceMappingURL=markdown-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-generator.d.ts","sourceRoot":"","sources":["../../src/generator/markdown-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAQzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,MAAM,GACpB,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAUxF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAUxF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBpF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAOpD;AAcD;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GACtE,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAmHT"}