@mycodemap/mycodemap 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +307 -243
  3. package/dist/ai/claude.d.ts +38 -0
  4. package/dist/ai/claude.d.ts.map +1 -0
  5. package/dist/ai/claude.js +169 -0
  6. package/dist/ai/claude.js.map +1 -0
  7. package/dist/ai/codex.d.ts +38 -0
  8. package/dist/ai/codex.d.ts.map +1 -0
  9. package/dist/ai/codex.js +169 -0
  10. package/dist/ai/codex.js.map +1 -0
  11. package/dist/ai/factory.d.ts +48 -0
  12. package/dist/ai/factory.d.ts.map +1 -0
  13. package/dist/ai/factory.js +95 -0
  14. package/dist/ai/factory.js.map +1 -0
  15. package/dist/ai/index.d.ts +12 -0
  16. package/dist/ai/index.d.ts.map +1 -0
  17. package/dist/ai/index.js +29 -0
  18. package/dist/ai/index.js.map +1 -0
  19. package/dist/ai/provider.d.ts +70 -0
  20. package/dist/ai/provider.d.ts.map +1 -0
  21. package/dist/ai/provider.js +31 -0
  22. package/dist/ai/provider.js.map +1 -0
  23. package/dist/ai/subagent-caller.d.ts +90 -0
  24. package/dist/ai/subagent-caller.d.ts.map +1 -0
  25. package/dist/ai/subagent-caller.js +280 -0
  26. package/dist/ai/subagent-caller.js.map +1 -0
  27. package/dist/ai/types.d.ts +70 -0
  28. package/dist/ai/types.d.ts.map +1 -0
  29. package/dist/ai/types.js +5 -0
  30. package/dist/ai/types.js.map +1 -0
  31. package/dist/cli/commands/analyze-options.d.ts +36 -0
  32. package/dist/cli/commands/analyze-options.d.ts.map +1 -0
  33. package/dist/cli/commands/analyze-options.js +147 -0
  34. package/dist/cli/commands/analyze-options.js.map +1 -0
  35. package/dist/cli/commands/analyze.d.ts +93 -4
  36. package/dist/cli/commands/analyze.d.ts.map +1 -1
  37. package/dist/cli/commands/analyze.js +592 -176
  38. package/dist/cli/commands/analyze.js.map +1 -1
  39. package/dist/cli/commands/ci.d.ts +47 -1
  40. package/dist/cli/commands/ci.d.ts.map +1 -1
  41. package/dist/cli/commands/ci.js +208 -1
  42. package/dist/cli/commands/ci.js.map +1 -1
  43. package/dist/cli/commands/design.d.ts +47 -0
  44. package/dist/cli/commands/design.d.ts.map +1 -0
  45. package/dist/cli/commands/design.js +268 -0
  46. package/dist/cli/commands/design.js.map +1 -0
  47. package/dist/cli/commands/export.d.ts.map +1 -1
  48. package/dist/cli/commands/export.js +2 -2
  49. package/dist/cli/commands/export.js.map +1 -1
  50. package/dist/cli/commands/generate.d.ts +8 -2
  51. package/dist/cli/commands/generate.d.ts.map +1 -1
  52. package/dist/cli/commands/generate.js +151 -22
  53. package/dist/cli/commands/generate.js.map +1 -1
  54. package/dist/cli/commands/init.d.ts.map +1 -1
  55. package/dist/cli/commands/init.js +2 -13
  56. package/dist/cli/commands/init.js.map +1 -1
  57. package/dist/cli/commands/server.d.ts.map +1 -1
  58. package/dist/cli/commands/server.js +2 -5
  59. package/dist/cli/commands/server.js.map +1 -1
  60. package/dist/cli/commands/ship/checker.d.ts.map +1 -1
  61. package/dist/cli/commands/ship/checker.js +0 -3
  62. package/dist/cli/commands/ship/checker.js.map +1 -1
  63. package/dist/cli/commands/ship/pipeline.d.ts.map +1 -1
  64. package/dist/cli/commands/ship/pipeline.js +8 -1
  65. package/dist/cli/commands/ship/pipeline.js.map +1 -1
  66. package/dist/cli/commands/ship/publisher.d.ts +9 -1
  67. package/dist/cli/commands/ship/publisher.d.ts.map +1 -1
  68. package/dist/cli/commands/ship/publisher.js +149 -6
  69. package/dist/cli/commands/ship/publisher.js.map +1 -1
  70. package/dist/cli/commands/ship/rules/quality-rules.d.ts +0 -1
  71. package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -1
  72. package/dist/cli/commands/ship/rules/quality-rules.js +4 -76
  73. package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -1
  74. package/dist/cli/commands/workflow.js +4 -4
  75. package/dist/cli/commands/workflow.js.map +1 -1
  76. package/dist/cli/config-loader.d.ts +31 -0
  77. package/dist/cli/config-loader.d.ts.map +1 -0
  78. package/dist/cli/config-loader.js +235 -0
  79. package/dist/cli/config-loader.js.map +1 -0
  80. package/dist/cli/design-contract-loader.d.ts +15 -0
  81. package/dist/cli/design-contract-loader.d.ts.map +1 -0
  82. package/dist/cli/design-contract-loader.js +175 -0
  83. package/dist/cli/design-contract-loader.js.map +1 -0
  84. package/dist/cli/design-contract-schema.d.ts +11 -0
  85. package/dist/cli/design-contract-schema.d.ts.map +1 -0
  86. package/dist/cli/design-contract-schema.js +75 -0
  87. package/dist/cli/design-contract-schema.js.map +1 -0
  88. package/dist/cli/design-handoff-builder.d.ts +15 -0
  89. package/dist/cli/design-handoff-builder.d.ts.map +1 -0
  90. package/dist/cli/design-handoff-builder.js +345 -0
  91. package/dist/cli/design-handoff-builder.js.map +1 -0
  92. package/dist/cli/design-scope-resolver.d.ts +8 -0
  93. package/dist/cli/design-scope-resolver.d.ts.map +1 -0
  94. package/dist/cli/design-scope-resolver.js +712 -0
  95. package/dist/cli/design-scope-resolver.js.map +1 -0
  96. package/dist/cli/design-verification-builder.d.ts +8 -0
  97. package/dist/cli/design-verification-builder.d.ts.map +1 -0
  98. package/dist/cli/design-verification-builder.js +369 -0
  99. package/dist/cli/design-verification-builder.js.map +1 -0
  100. package/dist/cli/index.js +20 -63
  101. package/dist/cli/index.js.map +1 -1
  102. package/dist/cli/removed-commands.d.ts +9 -0
  103. package/dist/cli/removed-commands.d.ts.map +1 -0
  104. package/dist/cli/removed-commands.js +48 -0
  105. package/dist/cli/removed-commands.js.map +1 -0
  106. package/dist/cli/storage-runtime.d.ts +8 -0
  107. package/dist/cli/storage-runtime.d.ts.map +1 -0
  108. package/dist/cli/storage-runtime.js +14 -0
  109. package/dist/cli/storage-runtime.js.map +1 -0
  110. package/dist/cli/tree-sitter-check.d.ts.map +1 -1
  111. package/dist/cli/tree-sitter-check.js +0 -1
  112. package/dist/cli/tree-sitter-check.js.map +1 -1
  113. package/dist/cli-new/commands/export.d.ts.map +1 -1
  114. package/dist/cli-new/commands/export.js +2 -2
  115. package/dist/cli-new/commands/export.js.map +1 -1
  116. package/dist/cli-new/commands/query.d.ts.map +1 -1
  117. package/dist/cli-new/commands/query.js +5 -4
  118. package/dist/cli-new/commands/query.js.map +1 -1
  119. package/dist/cli-new/commands/server.d.ts.map +1 -1
  120. package/dist/cli-new/commands/server.js +2 -6
  121. package/dist/cli-new/commands/server.js.map +1 -1
  122. package/dist/cli-new/index.d.ts.map +1 -1
  123. package/dist/cli-new/index.js +0 -2
  124. package/dist/cli-new/index.js.map +1 -1
  125. package/dist/core/analyzer.d.ts.map +1 -1
  126. package/dist/core/analyzer.js +7 -39
  127. package/dist/core/analyzer.js.map +1 -1
  128. package/dist/core/file-discovery.d.ts +17 -0
  129. package/dist/core/file-discovery.d.ts.map +1 -0
  130. package/dist/core/file-discovery.js +75 -0
  131. package/dist/core/file-discovery.js.map +1 -0
  132. package/dist/core/global-index.d.ts +5 -0
  133. package/dist/core/global-index.d.ts.map +1 -1
  134. package/dist/core/global-index.js +71 -21
  135. package/dist/core/global-index.js.map +1 -1
  136. package/dist/generator/ai-overview.d.ts +51 -0
  137. package/dist/generator/ai-overview.d.ts.map +1 -0
  138. package/dist/generator/ai-overview.js +160 -0
  139. package/dist/generator/ai-overview.js.map +1 -0
  140. package/dist/generator/index.d.ts.map +1 -1
  141. package/dist/generator/index.js +8 -0
  142. package/dist/generator/index.js.map +1 -1
  143. package/dist/infrastructure/parser/implementations/GoParser.d.ts +2 -5
  144. package/dist/infrastructure/parser/implementations/GoParser.d.ts.map +1 -1
  145. package/dist/infrastructure/parser/implementations/GoParser.js +2 -5
  146. package/dist/infrastructure/parser/implementations/GoParser.js.map +1 -1
  147. package/dist/infrastructure/parser/implementations/PythonParser.d.ts +1 -5
  148. package/dist/infrastructure/parser/implementations/PythonParser.d.ts.map +1 -1
  149. package/dist/infrastructure/parser/implementations/PythonParser.js +1 -5
  150. package/dist/infrastructure/parser/implementations/PythonParser.js.map +1 -1
  151. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts +1 -5
  152. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts.map +1 -1
  153. package/dist/infrastructure/parser/implementations/TypeScriptParser.js +1 -5
  154. package/dist/infrastructure/parser/implementations/TypeScriptParser.js.map +1 -1
  155. package/dist/infrastructure/storage/StorageFactory.d.ts +12 -6
  156. package/dist/infrastructure/storage/StorageFactory.d.ts.map +1 -1
  157. package/dist/infrastructure/storage/StorageFactory.js +59 -43
  158. package/dist/infrastructure/storage/StorageFactory.js.map +1 -1
  159. package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts.map +1 -1
  160. package/dist/infrastructure/storage/adapters/FileSystemStorage.js +24 -137
  161. package/dist/infrastructure/storage/adapters/FileSystemStorage.js.map +1 -1
  162. package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts +10 -18
  163. package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts.map +1 -1
  164. package/dist/infrastructure/storage/adapters/KuzuDBStorage.js +103 -146
  165. package/dist/infrastructure/storage/adapters/KuzuDBStorage.js.map +1 -1
  166. package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts +0 -1
  167. package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts.map +1 -1
  168. package/dist/infrastructure/storage/adapters/MemoryStorage.js +16 -136
  169. package/dist/infrastructure/storage/adapters/MemoryStorage.js.map +1 -1
  170. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts +9 -17
  171. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts.map +1 -1
  172. package/dist/infrastructure/storage/adapters/Neo4jStorage.js +78 -138
  173. package/dist/infrastructure/storage/adapters/Neo4jStorage.js.map +1 -1
  174. package/dist/infrastructure/storage/graph-helpers.d.ts +16 -0
  175. package/dist/infrastructure/storage/graph-helpers.d.ts.map +1 -0
  176. package/dist/infrastructure/storage/graph-helpers.js +161 -0
  177. package/dist/infrastructure/storage/graph-helpers.js.map +1 -0
  178. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  179. package/dist/interface/config/index.d.ts +10 -1
  180. package/dist/interface/config/index.d.ts.map +1 -1
  181. package/dist/interface/types/design-contract.d.ts +68 -0
  182. package/dist/interface/types/design-contract.d.ts.map +1 -0
  183. package/dist/interface/types/design-contract.js +7 -0
  184. package/dist/interface/types/design-contract.js.map +1 -0
  185. package/dist/interface/types/design-handoff.d.ts +68 -0
  186. package/dist/interface/types/design-handoff.d.ts.map +1 -0
  187. package/dist/interface/types/design-handoff.js +4 -0
  188. package/dist/interface/types/design-handoff.js.map +1 -0
  189. package/dist/interface/types/design-mapping.d.ts +51 -0
  190. package/dist/interface/types/design-mapping.d.ts.map +1 -0
  191. package/dist/interface/types/design-mapping.js +4 -0
  192. package/dist/interface/types/design-mapping.js.map +1 -0
  193. package/dist/interface/types/design-verification.d.ts +49 -0
  194. package/dist/interface/types/design-verification.d.ts.map +1 -0
  195. package/dist/interface/types/design-verification.js +4 -0
  196. package/dist/interface/types/design-verification.js.map +1 -0
  197. package/dist/interface/types/index.d.ts +17 -0
  198. package/dist/interface/types/index.d.ts.map +1 -1
  199. package/dist/interface/types/storage.d.ts +1 -4
  200. package/dist/interface/types/storage.d.ts.map +1 -1
  201. package/dist/orchestrator/ai-feed-generator.d.ts +210 -0
  202. package/dist/orchestrator/ai-feed-generator.d.ts.map +1 -0
  203. package/dist/orchestrator/ai-feed-generator.js +377 -0
  204. package/dist/orchestrator/ai-feed-generator.js.map +1 -0
  205. package/dist/orchestrator/confidence.d.ts +9 -9
  206. package/dist/orchestrator/confidence.d.ts.map +1 -1
  207. package/dist/orchestrator/confidence.js +44 -67
  208. package/dist/orchestrator/confidence.js.map +1 -1
  209. package/dist/orchestrator/file-header-scanner.d.ts.map +1 -1
  210. package/dist/orchestrator/file-header-scanner.js +22 -31
  211. package/dist/orchestrator/file-header-scanner.js.map +1 -1
  212. package/dist/orchestrator/intent-router.d.ts +2 -11
  213. package/dist/orchestrator/intent-router.d.ts.map +1 -1
  214. package/dist/orchestrator/intent-router.js +58 -49
  215. package/dist/orchestrator/intent-router.js.map +1 -1
  216. package/dist/orchestrator/tool-orchestrator.d.ts.map +1 -1
  217. package/dist/orchestrator/tool-orchestrator.js +6 -4
  218. package/dist/orchestrator/tool-orchestrator.js.map +1 -1
  219. package/dist/orchestrator/types.d.ts +113 -2
  220. package/dist/orchestrator/types.d.ts.map +1 -1
  221. package/dist/orchestrator/types.js +29 -0
  222. package/dist/orchestrator/types.js.map +1 -1
  223. package/dist/orchestrator/workflow/config.d.ts +4 -12
  224. package/dist/orchestrator/workflow/config.d.ts.map +1 -1
  225. package/dist/orchestrator/workflow/config.js +4 -6
  226. package/dist/orchestrator/workflow/config.js.map +1 -1
  227. package/dist/orchestrator/workflow/git-analyzer.d.ts.map +1 -1
  228. package/dist/orchestrator/workflow/git-analyzer.js +9 -19
  229. package/dist/orchestrator/workflow/git-analyzer.js.map +1 -1
  230. package/dist/orchestrator/workflow/phase-inheritance.d.ts.map +1 -1
  231. package/dist/orchestrator/workflow/phase-inheritance.js +14 -23
  232. package/dist/orchestrator/workflow/phase-inheritance.js.map +1 -1
  233. package/dist/orchestrator/workflow/result-fusion.d.ts.map +1 -1
  234. package/dist/orchestrator/workflow/result-fusion.js +9 -11
  235. package/dist/orchestrator/workflow/result-fusion.js.map +1 -1
  236. package/dist/orchestrator/workflow/templates.d.ts +4 -1
  237. package/dist/orchestrator/workflow/templates.d.ts.map +1 -1
  238. package/dist/orchestrator/workflow/templates.js +49 -207
  239. package/dist/orchestrator/workflow/templates.js.map +1 -1
  240. package/dist/orchestrator/workflow/test-linker.d.ts.map +1 -1
  241. package/dist/orchestrator/workflow/test-linker.js +12 -24
  242. package/dist/orchestrator/workflow/test-linker.js.map +1 -1
  243. package/dist/orchestrator/workflow/types.d.ts +11 -8
  244. package/dist/orchestrator/workflow/types.d.ts.map +1 -1
  245. package/dist/orchestrator/workflow/types.js +8 -1
  246. package/dist/orchestrator/workflow/types.js.map +1 -1
  247. package/dist/orchestrator/workflow/visualizer.d.ts.map +1 -1
  248. package/dist/orchestrator/workflow/visualizer.js +7 -9
  249. package/dist/orchestrator/workflow/visualizer.js.map +1 -1
  250. package/dist/orchestrator/workflow/workflow-context.d.ts.map +1 -1
  251. package/dist/orchestrator/workflow/workflow-context.js +3 -5
  252. package/dist/orchestrator/workflow/workflow-context.js.map +1 -1
  253. package/dist/orchestrator/workflow/workflow-orchestrator.d.ts +0 -4
  254. package/dist/orchestrator/workflow/workflow-orchestrator.d.ts.map +1 -1
  255. package/dist/orchestrator/workflow/workflow-orchestrator.js +7 -99
  256. package/dist/orchestrator/workflow/workflow-orchestrator.js.map +1 -1
  257. package/dist/parser/index.d.ts.map +1 -1
  258. package/dist/parser/index.js +2 -2
  259. package/dist/parser/index.js.map +1 -1
  260. package/dist/plugins/index.d.ts +5 -3
  261. package/dist/plugins/index.d.ts.map +1 -1
  262. package/dist/plugins/index.js +19 -8
  263. package/dist/plugins/index.js.map +1 -1
  264. package/dist/plugins/plugin-loader.d.ts +21 -6
  265. package/dist/plugins/plugin-loader.d.ts.map +1 -1
  266. package/dist/plugins/plugin-loader.js +170 -54
  267. package/dist/plugins/plugin-loader.js.map +1 -1
  268. package/dist/plugins/plugin-registry.d.ts +7 -4
  269. package/dist/plugins/plugin-registry.d.ts.map +1 -1
  270. package/dist/plugins/plugin-registry.js +62 -14
  271. package/dist/plugins/plugin-registry.js.map +1 -1
  272. package/dist/plugins/types.d.ts +16 -6
  273. package/dist/plugins/types.d.ts.map +1 -1
  274. package/dist/plugins/types.js +2 -0
  275. package/dist/plugins/types.js.map +1 -1
  276. package/dist/server/handlers/AnalysisHandler.d.ts +16 -2
  277. package/dist/server/handlers/AnalysisHandler.d.ts.map +1 -1
  278. package/dist/server/handlers/AnalysisHandler.js +31 -47
  279. package/dist/server/handlers/AnalysisHandler.js.map +1 -1
  280. package/dist/server/routes/api.d.ts.map +1 -1
  281. package/dist/server/routes/api.js +31 -12
  282. package/dist/server/routes/api.js.map +1 -1
  283. package/docs/AI_ASSISTANT_SETUP.md +3 -1
  284. package/docs/SETUP_GUIDE.md +41 -17
  285. package/docs/ai-guide/COMMANDS.md +179 -102
  286. package/docs/ai-guide/INTEGRATION.md +23 -21
  287. package/docs/ai-guide/OUTPUT.md +621 -10
  288. package/docs/ai-guide/PATTERNS.md +77 -18
  289. package/docs/ai-guide/PROMPTS.md +24 -18
  290. package/docs/ai-guide/QUICKSTART.md +35 -19
  291. package/docs/ai-guide/README.md +22 -4
  292. package/docs/archive/test-report-symbol-search.md +384 -0
  293. package/docs/archive/test-scenario-4-complexity-analysis.md +460 -0
  294. package/docs/archive/test_report_scenario5.md +615 -0
  295. package/docs/archive/test_scenario_3_impact_analysis_report.md +520 -0
  296. package/docs/product-specs/DESIGN_CONTRACT_TEMPLATE.md +79 -0
  297. package/docs/product-specs/MVP3-ARCHITECTURE-COMPARISON.md +159 -434
  298. package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-PRD.md +169 -261
  299. package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-TECH-PRD.md +201 -1259
  300. package/docs/product-specs/README.md +9 -1
  301. package/docs/rules/architecture-guardrails.md +1 -2
  302. package/docs/rules/engineering-with-codex-openai.md +20 -10
  303. package/docs/rules/validation.md +29 -4
  304. package/mycodemap.config.schema.json +76 -5
  305. package/package.json +1 -1
  306. package/scripts/experiments/arcadedb-http-smoke.mjs +90 -0
  307. package/scripts/sync-analyze-docs.js +500 -0
  308. package/scripts/validate-ai-docs.js +54 -1
  309. package/scripts/validate-docs.js +992 -25
@@ -0,0 +1,70 @@
1
+ import type { CodeMap } from '../types/index.js';
2
+ /**
3
+ * AI Provider 配置
4
+ */
5
+ export interface AIProviderConfig {
6
+ /** 超时时间(毫秒) */
7
+ timeout?: number;
8
+ /** 最大 token 数 */
9
+ maxTokens?: number;
10
+ /** 模型版本 */
11
+ model?: string;
12
+ }
13
+ /**
14
+ * AI 响应结果
15
+ */
16
+ export interface AIResponse {
17
+ /** 响应内容 */
18
+ content: string;
19
+ /** 使用的模型 */
20
+ model?: string;
21
+ /** 消耗的 token 数 */
22
+ usage?: {
23
+ prompt: number;
24
+ completion: number;
25
+ total: number;
26
+ };
27
+ }
28
+ /**
29
+ * AI Provider 基类
30
+ * 所有 AI Provider 都应继承此类
31
+ */
32
+ export declare abstract class AIProvider {
33
+ /** Provider 名称 */
34
+ abstract readonly name: string;
35
+ /** 默认配置 */
36
+ protected config: AIProviderConfig;
37
+ constructor(config?: AIProviderConfig);
38
+ /**
39
+ * 执行 AI 推理
40
+ * @param prompt 提示词
41
+ * @param context 上下文数据(CodeMap)
42
+ */
43
+ abstract execute(prompt: string, context?: CodeMap): Promise<AIResponse>;
44
+ /**
45
+ * 检查 Provider 是否可用
46
+ */
47
+ abstract isAvailable(): Promise<boolean>;
48
+ /**
49
+ * 获取 Provider 类型
50
+ */
51
+ getProviderType(): string;
52
+ /**
53
+ * 销毁 Provider(可选实现)
54
+ */
55
+ destroy(): void;
56
+ }
57
+ /**
58
+ * Provider 类型枚举
59
+ */
60
+ export type ProviderType = 'claude' | 'codex' | 'openai' | 'gemini';
61
+ /**
62
+ * Provider 工厂配置
63
+ */
64
+ export interface ProviderFactoryConfig {
65
+ /** 使用的 Provider 类型 */
66
+ provider?: ProviderType;
67
+ /** Provider 配置 */
68
+ config?: AIProviderConfig;
69
+ }
70
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;GAGG;AACH,8BAAsB,UAAU;IAC9B,kBAAkB;IAClB,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC,WAAW;IACX,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAEvB,MAAM,GAAE,gBAAqB;IAQzC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAExE;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sBAAsB;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kBAAkB;IAClB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B"}
@@ -0,0 +1,31 @@
1
+ // ============================================
2
+ // AI Provider 基础类型定义
3
+ // ============================================
4
+ /**
5
+ * AI Provider 基类
6
+ * 所有 AI Provider 都应继承此类
7
+ */
8
+ export class AIProvider {
9
+ /** 默认配置 */
10
+ config;
11
+ constructor(config = {}) {
12
+ this.config = {
13
+ timeout: 60000, // 默认 60 秒
14
+ maxTokens: 4000,
15
+ ...config
16
+ };
17
+ }
18
+ /**
19
+ * 获取 Provider 类型
20
+ */
21
+ getProviderType() {
22
+ return this.name;
23
+ }
24
+ /**
25
+ * 销毁 Provider(可选实现)
26
+ */
27
+ destroy() {
28
+ // 默认空实现,子类可覆盖
29
+ }
30
+ }
31
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAgC/C;;;GAGG;AACH,MAAM,OAAgB,UAAU;IAI9B,WAAW;IACD,MAAM,CAAmB;IAEnC,YAAY,SAA2B,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,KAAK,EAAE,UAAU;YAC1B,SAAS,EAAE,IAAI;YACf,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAcD;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,cAAc;IAChB,CAAC;CACF"}
@@ -0,0 +1,90 @@
1
+ import type { CodeMap } from '../types/index.js';
2
+ /**
3
+ * Subagent 输入类型
4
+ */
5
+ export interface SubagentInput {
6
+ project: CodeMap['project'];
7
+ summary: CodeMap['summary'];
8
+ modules: CodeMap['modules'];
9
+ dependencies: CodeMap['dependencies'];
10
+ requestType: 'overview' | 'analysis' | 'documentation';
11
+ options: {
12
+ includeContext: boolean;
13
+ maxModules: number;
14
+ };
15
+ }
16
+ /**
17
+ * 架构信息
18
+ */
19
+ export interface ArchitectureInfo {
20
+ pattern: string;
21
+ layers: Array<{
22
+ name: string;
23
+ responsibility: string;
24
+ modules: string[];
25
+ }>;
26
+ metrics: {
27
+ coupling: 'low' | 'medium' | 'high';
28
+ cohesion: 'low' | 'medium' | 'high';
29
+ complexity: 'low' | 'medium' | 'high';
30
+ };
31
+ }
32
+ /**
33
+ * Subagent 输出类型
34
+ */
35
+ export interface SubagentOutput {
36
+ type: string;
37
+ title: string;
38
+ content: string;
39
+ highlights: string[];
40
+ architecture?: ArchitectureInfo;
41
+ metadata: {
42
+ generatedAt: string;
43
+ model: string;
44
+ };
45
+ }
46
+ /**
47
+ * Subagent Caller 配置
48
+ */
49
+ export interface SubagentCallerConfig {
50
+ /** CLI 路径 */
51
+ cliPath?: string;
52
+ /** 超时时间(毫秒) */
53
+ timeout?: number;
54
+ /** 子 agent 名称 */
55
+ subagentName?: string;
56
+ }
57
+ /**
58
+ * Subagent Caller - 通过 Claude CLI 调用 subagent
59
+ */
60
+ export declare class SubagentCaller {
61
+ private cliPath;
62
+ private timeout;
63
+ private subagentName;
64
+ constructor(config?: SubagentCallerConfig);
65
+ /**
66
+ * 调用 subagent 生成项目概述
67
+ */
68
+ generateOverview(codeMap: CodeMap): Promise<SubagentOutput>;
69
+ /**
70
+ * 构建调用 subagent 的 prompt
71
+ */
72
+ private buildPrompt;
73
+ /**
74
+ * 执行 CLI 调用
75
+ */
76
+ private execute;
77
+ /**
78
+ * 解析 subagent 输出
79
+ */
80
+ private parseOutput;
81
+ /**
82
+ * 检查 CLI 是否可用
83
+ */
84
+ isAvailable(): Promise<boolean>;
85
+ }
86
+ /**
87
+ * 创建默认的 SubagentCaller 实例
88
+ */
89
+ export declare function createSubagentCaller(config?: SubagentCallerConfig): SubagentCaller;
90
+ //# sourceMappingURL=subagent-caller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-caller.d.ts","sourceRoot":"","sources":["../../src/ai/subagent-caller.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,eAAe,CAAC;IACvD,OAAO,EAAE;QACP,cAAc,EAAE,OAAO,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;IACH,OAAO,EAAE;QACP,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACvC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,GAAE,oBAAyB;IAQ7C;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IA8BjE;;OAEG;IACH,OAAO,CAAC,WAAW;IAkGnB;;OAEG;IACH,OAAO,CAAC,OAAO;IAyDf;;OAEG;IACH,OAAO,CAAC,WAAW;IAwDnB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAqBtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,cAAc,CAElF"}
@@ -0,0 +1,280 @@
1
+ // ============================================
2
+ // Subagent Caller - Task 工具调用封装
3
+ // ============================================
4
+ import { spawn } from 'child_process';
5
+ /**
6
+ * Subagent Caller - 通过 Claude CLI 调用 subagent
7
+ */
8
+ export class SubagentCaller {
9
+ cliPath;
10
+ timeout;
11
+ subagentName;
12
+ constructor(config = {}) {
13
+ this.cliPath = config.cliPath || 'claude';
14
+ this.timeout = config.timeout || 120000; // 默认 2 分钟
15
+ this.subagentName = config.subagentName || 'ai-generator';
16
+ // 使用 subagentName 构建提示词(用于日志或调试)
17
+ void this.subagentName;
18
+ }
19
+ /**
20
+ * 调用 subagent 生成项目概述
21
+ */
22
+ async generateOverview(codeMap) {
23
+ // 准备输入数据
24
+ const input = {
25
+ project: codeMap.project,
26
+ summary: {
27
+ totalFiles: codeMap.summary.totalFiles,
28
+ totalModules: codeMap.summary.totalModules,
29
+ totalExports: codeMap.summary.totalExports,
30
+ totalTypes: codeMap.summary.totalTypes,
31
+ totalLines: codeMap.summary.totalLines
32
+ },
33
+ modules: codeMap.modules.slice(0, 20), // 限制数量
34
+ dependencies: codeMap.dependencies,
35
+ requestType: 'overview',
36
+ options: {
37
+ includeContext: true,
38
+ maxModules: 20
39
+ }
40
+ };
41
+ // 构建 prompt
42
+ const prompt = this.buildPrompt(input);
43
+ // 调用 CLI
44
+ const result = await this.execute(prompt);
45
+ // 解析输出
46
+ return this.parseOutput(result);
47
+ }
48
+ /**
49
+ * 构建调用 subagent 的 prompt
50
+ */
51
+ buildPrompt(input) {
52
+ const contextJson = JSON.stringify(input, null, 2);
53
+ return `# AI Generator Subagent
54
+
55
+ 你是 AI Generator Subagent,负责根据 CodeMap 数据生成专业的项目概述。
56
+
57
+ ## 角色定义
58
+
59
+ 你是一位专业的软件架构师,擅长分析 TypeScript/JavaScript 项目结构,识别架构模式,并提供有价值的见解。
60
+
61
+ ## 输入数据
62
+
63
+ \`\`\`json
64
+ ${contextJson}
65
+ \`\`\`
66
+
67
+ ## 任务
68
+
69
+ 根据上述 CodeMap 数据,生成一个专业的项目概述,需要包含以下内容:
70
+
71
+ ### 1. 项目概览
72
+ - 项目名称和基本信息
73
+ - 技术栈识别
74
+ - 总体架构描述
75
+
76
+ ### 2. 统计信息
77
+ - 文件总数、代码行数、模块数量
78
+ - 导出符号数量和类型分布
79
+
80
+ ### 3. 核心模块分析
81
+ - 最重要的 5-10 个模块及其职责
82
+ - 每个模块的关键导出
83
+ - 模块间的依赖关系
84
+
85
+ ### 4. 架构特点
86
+ - 识别的架构模式(如分层、DDD、微服务等)
87
+ - 各层的职责和边界
88
+ - 依赖方向和耦合度
89
+
90
+ ### 5. 亮点模块
91
+ - 值得注意的模块或设计模式
92
+ - 可能的创新点或最佳实践
93
+
94
+ ### 6. 建议(可选)
95
+ - 潜在的改进方向
96
+ - 架构优化建议
97
+
98
+ ## 输出格式
99
+
100
+ 请返回 JSON 格式的结果,包含以下字段:
101
+
102
+ \`\`\`json
103
+ {
104
+ "type": "overview",
105
+ "title": "项目概述标题",
106
+ "content": "Markdown 格式的详细描述(支持多级标题、列表、表格等)",
107
+ "highlights": ["亮点1", "亮点2", ...],
108
+ "architecture": {
109
+ "pattern": "识别的架构模式",
110
+ "layers": [
111
+ {
112
+ "name": "层名称",
113
+ "responsibility": "职责描述",
114
+ "modules": ["模块列表"]
115
+ }
116
+ ],
117
+ "metrics": {
118
+ "coupling": "low|medium|high",
119
+ "cohesion": "low|medium|high",
120
+ "complexity": "low|medium|high"
121
+ }
122
+ },
123
+ "metadata": {
124
+ "generatedAt": "ISO 时间戳",
125
+ "model": "sonnet"
126
+ }
127
+ }
128
+ \`\`\`
129
+
130
+ ## 输出指南
131
+
132
+ 1. **准确性**: 确保分析基于实际数据,不要臆造信息
133
+ 2. **专业性**: 使用标准的软件架构术语
134
+ 3. **简洁性**: 保持内容简洁但完整,突出重点
135
+ 4. **可读性**: 使用 Markdown 格式提高可读性
136
+ 5. **实用性**: 提供有价值的架构见解和建议
137
+
138
+ ## 注意事项
139
+
140
+ - 如果某些信息无法从输入数据中确定,请标注为"未识别"或"需要更多信息"
141
+ - 优先分析依赖关系最复杂的模块
142
+ - 关注导出数量多、被依赖次数多的核心模块
143
+
144
+ 请确保返回的是有效的 JSON 格式,不要包含其他文字说明。
145
+ `;
146
+ }
147
+ /**
148
+ * 执行 CLI 调用
149
+ */
150
+ execute(prompt) {
151
+ return new Promise((resolve, reject) => {
152
+ const args = [
153
+ '-p',
154
+ '--output-format', 'json',
155
+ '--dangerously-skip-permissions'
156
+ ];
157
+ let stdout = '';
158
+ let stderr = '';
159
+ let killed = false;
160
+ const proc = spawn(this.cliPath, args, {
161
+ stdio: ['pipe', 'pipe', 'pipe']
162
+ });
163
+ // 超时处理
164
+ const timeoutId = setTimeout(() => {
165
+ killed = true;
166
+ proc.kill('SIGTERM');
167
+ reject(new Error(`Subagent 执行超时(${this.timeout / 1000}秒)`));
168
+ }, this.timeout);
169
+ proc.stdout.on('data', (data) => {
170
+ stdout += data.toString();
171
+ });
172
+ proc.stderr.on('data', (data) => {
173
+ stderr += data.toString();
174
+ });
175
+ proc.on('close', (code) => {
176
+ clearTimeout(timeoutId);
177
+ if (killed)
178
+ return;
179
+ if (code !== 0 && code !== null) {
180
+ reject(new Error(`Subagent CLI 错误: ${stderr || `exit code ${code}`}`));
181
+ return;
182
+ }
183
+ resolve(stdout);
184
+ });
185
+ proc.on('error', (error) => {
186
+ clearTimeout(timeoutId);
187
+ if (!killed) {
188
+ reject(new Error(`Subagent CLI 执行失败: ${error.message}`));
189
+ }
190
+ });
191
+ // 发送提示词
192
+ proc.stdin.write(prompt);
193
+ proc.stdin.end();
194
+ });
195
+ }
196
+ /**
197
+ * 解析 subagent 输出
198
+ */
199
+ parseOutput(stdout) {
200
+ // Claude 可能输出多行 JSON,需要找到有效的 JSON
201
+ const lines = stdout.trim().split('\n');
202
+ let jsonStr = '';
203
+ // 从后往前找有效的 JSON 对象
204
+ for (let i = lines.length - 1; i >= 0; i--) {
205
+ const line = lines[i].trim();
206
+ if (line.startsWith('{') && line.endsWith('}')) {
207
+ jsonStr = line;
208
+ break;
209
+ }
210
+ }
211
+ if (!jsonStr) {
212
+ // 如果没有 JSON,返回默认格式
213
+ return {
214
+ type: 'overview',
215
+ title: '项目概述',
216
+ content: stdout.trim(),
217
+ highlights: [],
218
+ metadata: {
219
+ generatedAt: new Date().toISOString(),
220
+ model: 'unknown'
221
+ }
222
+ };
223
+ }
224
+ try {
225
+ const parsed = JSON.parse(jsonStr);
226
+ return {
227
+ type: parsed.type || 'overview',
228
+ title: parsed.title || '项目概述',
229
+ content: parsed.content || stdout.trim(),
230
+ highlights: parsed.highlights || [],
231
+ architecture: parsed.architecture,
232
+ metadata: {
233
+ generatedAt: parsed.metadata?.generatedAt || new Date().toISOString(),
234
+ model: parsed.metadata?.model || 'sonnet'
235
+ }
236
+ };
237
+ }
238
+ catch (error) {
239
+ // 解析失败,返回原始内容
240
+ return {
241
+ type: 'overview',
242
+ title: '项目概述',
243
+ content: stdout.trim(),
244
+ highlights: [],
245
+ metadata: {
246
+ generatedAt: new Date().toISOString(),
247
+ model: 'parse-error'
248
+ }
249
+ };
250
+ }
251
+ }
252
+ /**
253
+ * 检查 CLI 是否可用
254
+ */
255
+ async isAvailable() {
256
+ return new Promise((resolve) => {
257
+ const proc = spawn(this.cliPath, ['--version'], {
258
+ stdio: 'ignore'
259
+ });
260
+ proc.on('close', (code) => {
261
+ resolve(code === 0);
262
+ });
263
+ proc.on('error', () => {
264
+ resolve(false);
265
+ });
266
+ // 2 秒超时
267
+ setTimeout(() => {
268
+ proc.kill();
269
+ resolve(false);
270
+ }, 2000);
271
+ });
272
+ }
273
+ }
274
+ /**
275
+ * 创建默认的 SubagentCaller 实例
276
+ */
277
+ export function createSubagentCaller(config) {
278
+ return new SubagentCaller(config);
279
+ }
280
+ //# sourceMappingURL=subagent-caller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-caller.js","sourceRoot":"","sources":["../../src/ai/subagent-caller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ export interface AIProviderOptions {
2
+ /** Provider 名称 */
3
+ name: string;
4
+ /** 超时时间(毫秒) */
5
+ timeout?: number;
6
+ /** 最大重试次数 */
7
+ maxRetries?: number;
8
+ /** 是否启用调试模式 */
9
+ debug?: boolean;
10
+ /** 自定义环境变量 */
11
+ env?: Record<string, string>;
12
+ }
13
+ export interface ChatRequest {
14
+ /** 提示词 */
15
+ prompt: string;
16
+ /** 额外上下文 */
17
+ context?: Record<string, unknown>;
18
+ /** 系统提示词 */
19
+ systemPrompt?: string;
20
+ /** 最大令牌数 */
21
+ maxTokens?: number;
22
+ /** 温度参数 */
23
+ temperature?: number;
24
+ }
25
+ export interface ChatResponse {
26
+ /** 响应内容 */
27
+ content: string;
28
+ /** 使用的 provider */
29
+ provider: string;
30
+ /** 消耗的令牌数 */
31
+ usage?: {
32
+ promptTokens: number;
33
+ completionTokens: number;
34
+ totalTokens: number;
35
+ };
36
+ /** 响应时间(毫秒) */
37
+ latency: number;
38
+ }
39
+ export interface ProviderStatus {
40
+ /** Provider 名称 */
41
+ name: string;
42
+ /** 是否可用 */
43
+ isAvailable: boolean;
44
+ /** 检查时间 */
45
+ checkedAt: string;
46
+ /** 错误信息(如果不可用) */
47
+ error?: string;
48
+ }
49
+ export type ProviderType = 'claude' | 'codex';
50
+ export interface ProviderInfo {
51
+ /** Provider 类型 */
52
+ type: ProviderType;
53
+ /** 显示名称 */
54
+ displayName: string;
55
+ /** 描述 */
56
+ description: string;
57
+ /** CLI 命令 */
58
+ command: string;
59
+ /** 默认参数 */
60
+ defaultArgs: string[];
61
+ }
62
+ export interface CLIResult {
63
+ /** 退出码 */
64
+ exitCode: number;
65
+ /** 标准输出 */
66
+ stdout: string;
67
+ /** 标准错误 */
68
+ stderr: string;
69
+ }
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU;IACV,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAG9C,MAAM,WAAW,YAAY;IAC3B,kBAAkB;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS;IACT,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAGD,MAAM,WAAW,SAAS;IACxB,UAAU;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,5 @@
1
+ // ============================================
2
+ // AI Provider 类型定义
3
+ // ============================================
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * [META] since:2026-03-24 | owner:cli-team | stable:false
3
+ * [WHY] 统一 analyze 的 option schema,减少 commander/help/parse 三处事实漂移
4
+ */
5
+ import type { ParseArgsConfig } from 'node:util';
6
+ import { Command } from 'commander';
7
+ type AnalyzeParseOption = {
8
+ type: 'string' | 'boolean';
9
+ short?: string;
10
+ multiple?: boolean;
11
+ default?: boolean;
12
+ };
13
+ interface AnalyzeOptionDefinition {
14
+ name: string;
15
+ flags: string;
16
+ description: string;
17
+ helpDescription: string;
18
+ docDescription?: string;
19
+ docDefaultValue?: string;
20
+ parse: AnalyzeParseOption;
21
+ defaultValue?: string;
22
+ includeInCommander?: boolean;
23
+ includeInDocs?: boolean;
24
+ }
25
+ export declare const ANALYZE_COMMAND_DESCRIPTION = "\u7EDF\u4E00\u5206\u6790\u5165\u53E3 - \u652F\u6301\u591A\u79CD\u5206\u6790\u610F\u56FE";
26
+ export declare const ANALYZE_OPTION_DEFINITIONS: readonly AnalyzeOptionDefinition[];
27
+ export declare const ANALYZE_PARSE_OPTIONS: NonNullable<ParseArgsConfig["options"]>;
28
+ export declare function applyAnalyzeCliOptions(command: Command): Command;
29
+ export declare function configureAnalyzeCommand(command: Command): Command;
30
+ export declare function renderAnalyzeHelpOptions(): string;
31
+ export declare const ANALYZE_HELP_EXAMPLES: readonly ["codemap analyze -i find -k \"SourceLocation\" --json --structured", "codemap analyze -i read -t src/index.ts --scope transitive --json", "codemap analyze -i link -t src/utils --json", "codemap analyze -i show -t src/ --output-mode human"];
32
+ export declare function renderAnalyzeHelpExamples(): string;
33
+ export declare function renderAnalyzeAfterHelpText(): string;
34
+ export declare function getAnalyzeHelpText(programName?: string): string;
35
+ export {};
36
+ //# sourceMappingURL=analyze-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-options.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analyze-options.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,2BAA2B,4FAAsB,CAAC;AAE/D,eAAO,MAAM,0BAA0B,EAAE,SAAS,uBAAuB,EA8F/D,CAAC;AAEX,eAAO,MAAM,qBAAqB,EAE7B,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAE7C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAehE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAIjE;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAUjD;AAED,eAAO,MAAM,qBAAqB,2PAKxB,CAAC;AAEX,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,kBAAkB,CAAC,WAAW,GAAE,MAAoB,GAAG,MAAM,CAO5E"}