@mycodemap/mycodemap 0.1.1 → 0.3.4

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 (328) hide show
  1. package/CHANGELOG.md +163 -0
  2. package/README.md +241 -67
  3. package/dist/cli/commands/ci.d.ts +7 -1
  4. package/dist/cli/commands/ci.d.ts.map +1 -1
  5. package/dist/cli/commands/ci.js +38 -0
  6. package/dist/cli/commands/ci.js.map +1 -1
  7. package/dist/cli/commands/export.d.ts +6 -0
  8. package/dist/cli/commands/export.d.ts.map +1 -0
  9. package/dist/cli/commands/export.js +108 -0
  10. package/dist/cli/commands/export.js.map +1 -0
  11. package/dist/cli/commands/generate.d.ts.map +1 -1
  12. package/dist/cli/commands/generate.js +96 -0
  13. package/dist/cli/commands/generate.js.map +1 -1
  14. package/dist/cli/commands/server.d.ts +9 -0
  15. package/dist/cli/commands/server.d.ts.map +1 -0
  16. package/dist/cli/commands/server.js +68 -0
  17. package/dist/cli/commands/server.js.map +1 -0
  18. package/dist/cli/commands/ship/analyzer.d.ts +26 -0
  19. package/dist/cli/commands/ship/analyzer.d.ts.map +1 -0
  20. package/dist/cli/commands/ship/analyzer.js +143 -0
  21. package/dist/cli/commands/ship/analyzer.js.map +1 -0
  22. package/dist/cli/commands/ship/checker.d.ts +20 -0
  23. package/dist/cli/commands/ship/checker.d.ts.map +1 -0
  24. package/dist/cli/commands/ship/checker.js +86 -0
  25. package/dist/cli/commands/ship/checker.js.map +1 -0
  26. package/dist/cli/commands/ship/index.d.ts +17 -0
  27. package/dist/cli/commands/ship/index.d.ts.map +1 -0
  28. package/dist/cli/commands/ship/index.js +51 -0
  29. package/dist/cli/commands/ship/index.js.map +1 -0
  30. package/dist/cli/commands/ship/monitor.d.ts +19 -0
  31. package/dist/cli/commands/ship/monitor.d.ts.map +1 -0
  32. package/dist/cli/commands/ship/monitor.js +105 -0
  33. package/dist/cli/commands/ship/monitor.js.map +1 -0
  34. package/dist/cli/commands/ship/pipeline.d.ts +23 -0
  35. package/dist/cli/commands/ship/pipeline.d.ts.map +1 -0
  36. package/dist/cli/commands/ship/pipeline.js +146 -0
  37. package/dist/cli/commands/ship/pipeline.js.map +1 -0
  38. package/dist/cli/commands/ship/publisher.d.ts +11 -0
  39. package/dist/cli/commands/ship/publisher.d.ts.map +1 -0
  40. package/dist/cli/commands/ship/publisher.js +75 -0
  41. package/dist/cli/commands/ship/publisher.js.map +1 -0
  42. package/dist/cli/commands/ship/rules/confidence-rules.d.ts +48 -0
  43. package/dist/cli/commands/ship/rules/confidence-rules.d.ts.map +1 -0
  44. package/dist/cli/commands/ship/rules/confidence-rules.js +122 -0
  45. package/dist/cli/commands/ship/rules/confidence-rules.js.map +1 -0
  46. package/dist/cli/commands/ship/rules/quality-rules.d.ts +25 -0
  47. package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -0
  48. package/dist/cli/commands/ship/rules/quality-rules.js +134 -0
  49. package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -0
  50. package/dist/cli/commands/ship/rules/version-rules.d.ts +24 -0
  51. package/dist/cli/commands/ship/rules/version-rules.d.ts.map +1 -0
  52. package/dist/cli/commands/ship/rules/version-rules.js +75 -0
  53. package/dist/cli/commands/ship/rules/version-rules.js.map +1 -0
  54. package/dist/cli/commands/ship/versioner.d.ts +12 -0
  55. package/dist/cli/commands/ship/versioner.d.ts.map +1 -0
  56. package/dist/cli/commands/ship/versioner.js +92 -0
  57. package/dist/cli/commands/ship/versioner.js.map +1 -0
  58. package/dist/cli/index.js +31 -1
  59. package/dist/cli/index.js.map +1 -1
  60. package/dist/cli-new/commands/export.d.ts +15 -0
  61. package/dist/cli-new/commands/export.d.ts.map +1 -0
  62. package/dist/cli-new/commands/export.js +107 -0
  63. package/dist/cli-new/commands/export.js.map +1 -0
  64. package/dist/cli-new/commands/query.d.ts +14 -0
  65. package/dist/cli-new/commands/query.d.ts.map +1 -0
  66. package/dist/cli-new/commands/query.js +120 -0
  67. package/dist/cli-new/commands/query.js.map +1 -0
  68. package/dist/cli-new/commands/server.d.ts +13 -0
  69. package/dist/cli-new/commands/server.d.ts.map +1 -0
  70. package/dist/cli-new/commands/server.js +94 -0
  71. package/dist/cli-new/commands/server.js.map +1 -0
  72. package/dist/cli-new/index.d.ts +11 -0
  73. package/dist/cli-new/index.d.ts.map +1 -0
  74. package/dist/cli-new/index.js +63 -0
  75. package/dist/cli-new/index.js.map +1 -0
  76. package/dist/cli-new/types/index.d.ts +88 -0
  77. package/dist/cli-new/types/index.d.ts.map +1 -0
  78. package/dist/cli-new/types/index.js +7 -0
  79. package/dist/cli-new/types/index.js.map +1 -0
  80. package/dist/domain/entities/CodeGraph.d.ts +134 -0
  81. package/dist/domain/entities/CodeGraph.d.ts.map +1 -0
  82. package/dist/domain/entities/CodeGraph.js +316 -0
  83. package/dist/domain/entities/CodeGraph.js.map +1 -0
  84. package/dist/domain/entities/Dependency.d.ts +78 -0
  85. package/dist/domain/entities/Dependency.d.ts.map +1 -0
  86. package/dist/domain/entities/Dependency.js +132 -0
  87. package/dist/domain/entities/Dependency.js.map +1 -0
  88. package/dist/domain/entities/Module.d.ts +75 -0
  89. package/dist/domain/entities/Module.d.ts.map +1 -0
  90. package/dist/domain/entities/Module.js +151 -0
  91. package/dist/domain/entities/Module.js.map +1 -0
  92. package/dist/domain/entities/Project.d.ts +50 -0
  93. package/dist/domain/entities/Project.d.ts.map +1 -0
  94. package/dist/domain/entities/Project.js +99 -0
  95. package/dist/domain/entities/Project.js.map +1 -0
  96. package/dist/domain/entities/Symbol.d.ts +75 -0
  97. package/dist/domain/entities/Symbol.d.ts.map +1 -0
  98. package/dist/domain/entities/Symbol.js +130 -0
  99. package/dist/domain/entities/Symbol.js.map +1 -0
  100. package/dist/domain/events/DomainEvent.d.ts +76 -0
  101. package/dist/domain/events/DomainEvent.d.ts.map +1 -0
  102. package/dist/domain/events/DomainEvent.js +153 -0
  103. package/dist/domain/events/DomainEvent.js.map +1 -0
  104. package/dist/domain/index.d.ts +10 -0
  105. package/dist/domain/index.d.ts.map +1 -0
  106. package/dist/domain/index.js +18 -0
  107. package/dist/domain/index.js.map +1 -0
  108. package/dist/domain/repositories/CodeGraphRepository.d.ts +58 -0
  109. package/dist/domain/repositories/CodeGraphRepository.d.ts.map +1 -0
  110. package/dist/domain/repositories/CodeGraphRepository.js +37 -0
  111. package/dist/domain/repositories/CodeGraphRepository.js.map +1 -0
  112. package/dist/domain/services/CodeGraphBuilder.d.ts +50 -0
  113. package/dist/domain/services/CodeGraphBuilder.d.ts.map +1 -0
  114. package/dist/domain/services/CodeGraphBuilder.js +121 -0
  115. package/dist/domain/services/CodeGraphBuilder.js.map +1 -0
  116. package/dist/infrastructure/parser/implementations/GoParser.d.ts +25 -0
  117. package/dist/infrastructure/parser/implementations/GoParser.d.ts.map +1 -0
  118. package/dist/infrastructure/parser/implementations/GoParser.js +158 -0
  119. package/dist/infrastructure/parser/implementations/GoParser.js.map +1 -0
  120. package/dist/infrastructure/parser/implementations/PythonParser.d.ts +30 -0
  121. package/dist/infrastructure/parser/implementations/PythonParser.d.ts.map +1 -0
  122. package/dist/infrastructure/parser/implementations/PythonParser.js +201 -0
  123. package/dist/infrastructure/parser/implementations/PythonParser.js.map +1 -0
  124. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts +63 -0
  125. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts.map +1 -0
  126. package/dist/infrastructure/parser/implementations/TypeScriptParser.js +420 -0
  127. package/dist/infrastructure/parser/implementations/TypeScriptParser.js.map +1 -0
  128. package/dist/infrastructure/parser/index.d.ts +13 -0
  129. package/dist/infrastructure/parser/index.d.ts.map +1 -0
  130. package/dist/infrastructure/parser/index.js +32 -0
  131. package/dist/infrastructure/parser/index.js.map +1 -0
  132. package/dist/infrastructure/parser/interfaces/ParserBase.d.ts +124 -0
  133. package/dist/infrastructure/parser/interfaces/ParserBase.d.ts.map +1 -0
  134. package/dist/infrastructure/parser/interfaces/ParserBase.js +200 -0
  135. package/dist/infrastructure/parser/interfaces/ParserBase.js.map +1 -0
  136. package/dist/infrastructure/parser/registry/ParserRegistry.d.ts +68 -0
  137. package/dist/infrastructure/parser/registry/ParserRegistry.d.ts.map +1 -0
  138. package/dist/infrastructure/parser/registry/ParserRegistry.js +116 -0
  139. package/dist/infrastructure/parser/registry/ParserRegistry.js.map +1 -0
  140. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts +44 -0
  141. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts.map +1 -0
  142. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js +129 -0
  143. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js.map +1 -0
  144. package/dist/infrastructure/repositories/index.d.ts +3 -0
  145. package/dist/infrastructure/repositories/index.d.ts.map +1 -0
  146. package/dist/infrastructure/repositories/index.js +7 -0
  147. package/dist/infrastructure/repositories/index.js.map +1 -0
  148. package/dist/infrastructure/storage/StorageFactory.d.ts +53 -0
  149. package/dist/infrastructure/storage/StorageFactory.d.ts.map +1 -0
  150. package/dist/infrastructure/storage/StorageFactory.js +150 -0
  151. package/dist/infrastructure/storage/StorageFactory.js.map +1 -0
  152. package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts +52 -0
  153. package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts.map +1 -0
  154. package/dist/infrastructure/storage/adapters/FileSystemStorage.js +315 -0
  155. package/dist/infrastructure/storage/adapters/FileSystemStorage.js.map +1 -0
  156. package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts +52 -0
  157. package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts.map +1 -0
  158. package/dist/infrastructure/storage/adapters/KuzuDBStorage.js +235 -0
  159. package/dist/infrastructure/storage/adapters/KuzuDBStorage.js.map +1 -0
  160. package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts +37 -0
  161. package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts.map +1 -0
  162. package/dist/infrastructure/storage/adapters/MemoryStorage.js +229 -0
  163. package/dist/infrastructure/storage/adapters/MemoryStorage.js.map +1 -0
  164. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts +49 -0
  165. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts.map +1 -0
  166. package/dist/infrastructure/storage/adapters/Neo4jStorage.js +222 -0
  167. package/dist/infrastructure/storage/adapters/Neo4jStorage.js.map +1 -0
  168. package/dist/infrastructure/storage/index.d.ts +6 -0
  169. package/dist/infrastructure/storage/index.d.ts.map +1 -0
  170. package/dist/infrastructure/storage/index.js +13 -0
  171. package/dist/infrastructure/storage/index.js.map +1 -0
  172. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts +76 -0
  173. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts.map +1 -0
  174. package/dist/infrastructure/storage/interfaces/StorageBase.js +116 -0
  175. package/dist/infrastructure/storage/interfaces/StorageBase.js.map +1 -0
  176. package/dist/interface/config/index.d.ts +102 -0
  177. package/dist/interface/config/index.d.ts.map +1 -0
  178. package/dist/interface/config/index.js +7 -0
  179. package/dist/interface/config/index.js.map +1 -0
  180. package/dist/interface/types/index.d.ts +425 -0
  181. package/dist/interface/types/index.d.ts.map +1 -0
  182. package/dist/interface/types/index.js +8 -0
  183. package/dist/interface/types/index.js.map +1 -0
  184. package/dist/interface/types/parser.d.ts +103 -0
  185. package/dist/interface/types/parser.d.ts.map +1 -0
  186. package/dist/interface/types/parser.js +7 -0
  187. package/dist/interface/types/parser.js.map +1 -0
  188. package/dist/interface/types/storage.d.ts +98 -0
  189. package/dist/interface/types/storage.d.ts.map +1 -0
  190. package/dist/interface/types/storage.js +7 -0
  191. package/dist/interface/types/storage.js.map +1 -0
  192. package/dist/orchestrator/test-linker.js +1 -1
  193. package/dist/orchestrator/test-linker.js.map +1 -1
  194. package/dist/server/CodeMapServer.d.ts +51 -0
  195. package/dist/server/CodeMapServer.d.ts.map +1 -0
  196. package/dist/server/CodeMapServer.js +146 -0
  197. package/dist/server/CodeMapServer.js.map +1 -0
  198. package/dist/server/handlers/AnalysisHandler.d.ts +82 -0
  199. package/dist/server/handlers/AnalysisHandler.d.ts.map +1 -0
  200. package/dist/server/handlers/AnalysisHandler.js +196 -0
  201. package/dist/server/handlers/AnalysisHandler.js.map +1 -0
  202. package/dist/server/handlers/QueryHandler.d.ts +57 -0
  203. package/dist/server/handlers/QueryHandler.d.ts.map +1 -0
  204. package/dist/server/handlers/QueryHandler.js +260 -0
  205. package/dist/server/handlers/QueryHandler.js.map +1 -0
  206. package/dist/server/index.d.ts +7 -0
  207. package/dist/server/index.d.ts.map +1 -0
  208. package/dist/server/index.js +13 -0
  209. package/dist/server/index.js.map +1 -0
  210. package/dist/server/routes/api.d.ts +8 -0
  211. package/dist/server/routes/api.d.ts.map +1 -0
  212. package/dist/server/routes/api.js +372 -0
  213. package/dist/server/routes/api.js.map +1 -0
  214. package/dist/server/types/index.d.ts +171 -0
  215. package/dist/server/types/index.d.ts.map +1 -0
  216. package/dist/server/types/index.js +7 -0
  217. package/dist/server/types/index.js.map +1 -0
  218. package/dist/types/index.d.ts +6 -372
  219. package/dist/types/index.d.ts.map +1 -1
  220. package/dist/types/index.js +9 -3
  221. package/dist/types/index.js.map +1 -1
  222. package/docs/AI_ASSISTANT_SETUP.md +68 -0
  223. package/docs/PUBLISHING.md +472 -0
  224. package/docs/README.md +37 -0
  225. package/docs/SETUP_GUIDE.md +91 -5
  226. package/docs/ai-guide/COMMANDS.md +403 -0
  227. package/docs/ai-guide/INTEGRATION.md +513 -0
  228. package/docs/ai-guide/OUTPUT.md +465 -0
  229. package/docs/ai-guide/PATTERNS.md +409 -0
  230. package/docs/ai-guide/PROMPTS.md +414 -0
  231. package/docs/ai-guide/QUICKSTART.md +114 -0
  232. package/docs/ai-guide/README.md +66 -0
  233. package/docs/archive/AI_INTEGRATION_GUIDE_ARCHIVED.md +7 -1
  234. package/docs/archive/ARCHIVE.md +39 -0
  235. package/docs/archive/MYCLAUDE_GUIDE.md +305 -0
  236. package/docs/archive/PUBLISH_NPM_DESIGN_V1.md +6 -0
  237. package/docs/archive/PUBLISH_NPM_DESIGN_V2.md +6 -0
  238. package/docs/archive/README.md +29 -0
  239. package/docs/archive/TASK_DESIGN_COVERAGE_REPORT.md +6 -0
  240. package/docs/archive/TEST_SUMMARY.md +140 -0
  241. package/docs/archive/comprehensive_test_report.md +337 -0
  242. package/docs/{CI_GATEWAY_DESIGN.md → archive/design-docs/CI_GATEWAY_DESIGN.md} +6 -0
  243. package/docs/{PUBLISH_NPM_DESIGN_FINAL.md → archive/design-docs/PUBLISH_NPM_DESIGN_FINAL.md} +7 -1
  244. package/docs/{REFACTOR_ARCHITECTURE_OVERVIEW.md → archive/design-docs/REFACTOR_ARCHITECTURE_OVERVIEW.md} +8 -2
  245. package/docs/{REFACTOR_CONFIDENCE_DESIGN.md → archive/design-docs/REFACTOR_CONFIDENCE_DESIGN.md} +6 -0
  246. package/docs/{REFACTOR_GIT_ANALYZER_DESIGN.md → archive/design-docs/REFACTOR_GIT_ANALYZER_DESIGN.md} +8 -2
  247. package/docs/{REFACTOR_ORCHESTRATOR_DESIGN.md → archive/design-docs/REFACTOR_ORCHESTRATOR_DESIGN.md} +6 -0
  248. package/docs/{REFACTOR_RESULT_FUSION_DESIGN.md → archive/design-docs/REFACTOR_RESULT_FUSION_DESIGN.md} +6 -0
  249. package/docs/{REFACTOR_TEST_LINKER_DESIGN.md → archive/design-docs/REFACTOR_TEST_LINKER_DESIGN.md} +6 -0
  250. package/docs/archive/myclaude.md +1084 -0
  251. package/docs/archive/plans/2026-03-14-go-language-support-design.md +92 -0
  252. package/docs/{REFACTOR_REQUIREMENTS.md → archive/product-specs/REFACTOR_REQUIREMENTS.md} +11 -5
  253. package/docs/archive/scenario-2-deps-analysis.md +353 -0
  254. package/docs/design-docs/README.md +26 -0
  255. package/docs/exec-plans/MVP3-IMPLEMENTATION-ROADMAP.md +524 -0
  256. package/docs/exec-plans/README.md +29 -0
  257. package/docs/exec-plans/active/.gitkeep +0 -0
  258. package/docs/exec-plans/completed/.gitkeep +0 -0
  259. package/docs/{plans/POST_TASK_PLAN.md → exec-plans/completed/2026-03-03-post-task-plan.md} +9 -3
  260. package/docs/exec-plans/completed/harness-engineering-rollout.md +184 -0
  261. package/docs/exec-plans/tech-debt/.gitkeep +0 -0
  262. package/docs/exec-plans/tech-debt/2026-03-15-lint-guardrail-gap.md +30 -0
  263. package/docs/generated/README.md +19 -0
  264. package/docs/product-specs/MVP3-ARCHITECTURE-COMPARISON.md +504 -0
  265. package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-PRD.md +322 -0
  266. package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-TECH-PRD.md +1374 -0
  267. package/docs/product-specs/README.md +22 -0
  268. package/docs/references/README.md +15 -0
  269. package/docs/references/tmp.md +527 -0
  270. package/docs/rules/README.md +16 -0
  271. package/docs/rules/architecture-guardrails.md +349 -0
  272. package/docs/rules/code-quality-redlines.md +321 -0
  273. package/docs/rules/deployment.md +23 -0
  274. package/docs/rules/engineering-with-codex-openai.md +202 -0
  275. package/docs/rules/pre-release-checklist.md +426 -0
  276. package/docs/rules/testing.md +73 -0
  277. package/docs/rules/validation.md +39 -0
  278. package/package.json +26 -7
  279. package/scripts/.githooks/commit-msg +31 -0
  280. package/scripts/.githooks/pre-commit +55 -0
  281. package/scripts/benchmark.ts +209 -0
  282. package/scripts/hooks/commit-msg +24 -0
  283. package/scripts/hooks/install-hooks.sh +29 -0
  284. package/scripts/hooks/pre-commit +60 -0
  285. package/scripts/pre-release-check.js +717 -0
  286. package/scripts/release.sh +142 -0
  287. package/scripts/run-benchmark.sh +29 -0
  288. package/scripts/validate-ai-docs.js +294 -0
  289. package/scripts/validate-docs.js +238 -0
  290. package/scripts/validate-pack.js +86 -0
  291. package/dist/ai/claude.d.ts +0 -38
  292. package/dist/ai/claude.d.ts.map +0 -1
  293. package/dist/ai/claude.js +0 -169
  294. package/dist/ai/claude.js.map +0 -1
  295. package/dist/ai/codex.d.ts +0 -38
  296. package/dist/ai/codex.d.ts.map +0 -1
  297. package/dist/ai/codex.js +0 -169
  298. package/dist/ai/codex.js.map +0 -1
  299. package/dist/ai/factory.d.ts +0 -48
  300. package/dist/ai/factory.d.ts.map +0 -1
  301. package/dist/ai/factory.js +0 -95
  302. package/dist/ai/factory.js.map +0 -1
  303. package/dist/ai/index.d.ts +0 -12
  304. package/dist/ai/index.d.ts.map +0 -1
  305. package/dist/ai/index.js +0 -29
  306. package/dist/ai/index.js.map +0 -1
  307. package/dist/ai/provider.d.ts +0 -70
  308. package/dist/ai/provider.d.ts.map +0 -1
  309. package/dist/ai/provider.js +0 -31
  310. package/dist/ai/provider.js.map +0 -1
  311. package/dist/ai/subagent-caller.d.ts +0 -90
  312. package/dist/ai/subagent-caller.d.ts.map +0 -1
  313. package/dist/ai/subagent-caller.js +0 -280
  314. package/dist/ai/subagent-caller.js.map +0 -1
  315. package/dist/ai/types.d.ts +0 -70
  316. package/dist/ai/types.d.ts.map +0 -1
  317. package/dist/ai/types.js +0 -5
  318. package/dist/ai/types.js.map +0 -1
  319. package/dist/generator/ai-overview.d.ts +0 -51
  320. package/dist/generator/ai-overview.d.ts.map +0 -1
  321. package/dist/generator/ai-overview.js +0 -160
  322. package/dist/generator/ai-overview.js.map +0 -1
  323. package/dist/orchestrator/ai-feed-generator.d.ts +0 -210
  324. package/dist/orchestrator/ai-feed-generator.d.ts.map +0 -1
  325. package/dist/orchestrator/ai-feed-generator.js +0 -377
  326. package/dist/orchestrator/ai-feed-generator.js.map +0 -1
  327. package/docs/OMC_TEAM_DEBUG_REPORT.md +0 -285
  328. /package/docs/{plans/archive → exec-plans/completed}/2026-03-03-deps-path-extension-fix.md +0 -0
@@ -0,0 +1,322 @@
1
+ # CodeMap MVP3 架构重构产品需求文档 (PRD)
2
+
3
+ > **版本**: v1.0.0
4
+ > **状态**: Draft
5
+ > **日期**: 2026-03-17
6
+ > **负责人**: Architecture Team
7
+
8
+ ---
9
+
10
+ ## 1. 背景与目标
11
+
12
+ ### 1.1 现状痛点
13
+
14
+ | 痛点 | 影响 | 示例 |
15
+ |------|------|------|
16
+ | 层间耦合度高 | `cli/` 直接依赖 `core/analyzer`,难以测试 | CLI 命令难以 mock 分析器 |
17
+ | 存储层硬编码 | 输出只能是 JSON/Markdown,无法扩展 | 无法支持图数据库查询 |
18
+ | 语言支持受限 | 仅支持 TS/JS/Go,错失 Python/Java 用户 | 用户流失到 CodeGraphContext |
19
+ | 缺少服务层 | 业务逻辑分散在 CLI 命令中 | 难以复用核心能力 |
20
+
21
+ ### 1.2 目标
22
+
23
+ ```
24
+ ┌─────────────────────────────────────────────────────────────────┐
25
+ │ MVP3 核心目标 │
26
+ ├─────────────────────────────────────────────────────────────────┤
27
+ │ │
28
+ │ ✅ 架构清晰分层: 5 层架构,每层职责单一,接口隔离 │
29
+ │ ✅ 存储可插拔: 文件系统(默认) + 图数据库(可选) │
30
+ │ ✅ 语言扩展: 从 3 种扩展到 14 种主流语言 │
31
+ │ ✅ CLI 增强: 基础可视化 + 交互式查询 │
32
+ │ ✅ 向后兼容: 现有用户零成本迁移 │
33
+ │ │
34
+ └─────────────────────────────────────────────────────────────────┘
35
+ ```
36
+
37
+ ---
38
+
39
+ ## 2. 用户故事
40
+
41
+ ### 2.1 开发者 persona: 小李 (Python 后端工程师)
42
+
43
+ > "我是 Python 开发者,想用 CodeMap 分析我的 Django 项目,但发现不支持 Python,只能用 CodeGraphContext。"
44
+
45
+ **需求**:
46
+ - 支持 Python 代码分析
47
+ - 能看到 Django 项目的依赖关系
48
+ - 能检测循环依赖
49
+
50
+ ### 2.2 架构师 persona: 老王 (大型系统架构师)
51
+
52
+ > "我的项目有 5000+ 文件,JSON 文件太大了,查询很慢,希望能用图数据库加速查询。"
53
+
54
+ **需求**:
55
+ - 可选图数据库存储后端
56
+ - 复杂查询性能 < 100ms
57
+ - 支持跨语言调用链分析
58
+
59
+ ### 2.3 CLI 用户 persona: 小张 (命令行爱好者)
60
+
61
+ > "我喜欢在终端工作,希望能有漂亮的 CLI 可视化,比如树形目录、依赖图字符画。"
62
+
63
+ **需求**:
64
+ - CLI 字符画可视化
65
+ - 交互式命令补全
66
+ - 进度条和颜色输出
67
+
68
+ ---
69
+
70
+ ## 3. 功能需求
71
+
72
+ ### 3.1 分层架构 (Server 层引入)
73
+
74
+ ```
75
+ ┌─────────────────────────────────────────────────────────────────────────────┐
76
+ │ MVP3 分层架构 │
77
+ ├─────────────────────────────────────────────────────────────────────────────┤
78
+ │ │
79
+ │ ┌─────────────────────────────────────────────────────────────────────┐ │
80
+ │ │ Layer 5: CLI Layer │ │
81
+ │ │ - 命令解析、参数校验、输出格式化 │ │
82
+ │ │ - 仅处理 stdin/stdout/stderr │ │
83
+ │ └─────────────────────────────────────────────────────────────────────┘ │
84
+ │ │ │
85
+ │ ▼ │
86
+ │ ┌─────────────────────────────────────────────────────────────────────┐ │
87
+ │ │ Layer 4: Server Layer ⭐ 新增 │ │
88
+ │ │ - 业务逻辑编排、用例实现 │ │
89
+ │ │ - 协调 Domain 和 Infrastructure 层 │ │
90
+ │ └─────────────────────────────────────────────────────────────────────┘ │
91
+ │ │ │
92
+ │ ▼ │
93
+ │ ┌─────────────────────────────────────────────────────────────────────┐ │
94
+ │ │ Layer 3: Domain Layer │ │
95
+ │ │ - 核心业务逻辑、实体、值对象 │ │
96
+ │ │ - 分析器、依赖图构建、符号索引 │ │
97
+ │ └─────────────────────────────────────────────────────────────────────┘ │
98
+ │ │ │
99
+ │ ▼ │
100
+ │ ┌─────────────────────────────────────────────────────────────────────┐ │
101
+ │ │ Layer 2: Infrastructure Layer │ │
102
+ │ │ - 存储抽象、解析器、缓存、文件系统 │ │
103
+ │ │ - 技术实现细节 │ │
104
+ │ └─────────────────────────────────────────────────────────────────────┘ │
105
+ │ │ │
106
+ │ ▼ │
107
+ │ ┌─────────────────────────────────────────────────────────────────────┐ │
108
+ │ │ Layer 1: Interface Layer │ │
109
+ │ │ - 类型定义、配置接口、外部 API 抽象 │ │
110
+ │ └─────────────────────────────────────────────────────────────────────┘ │
111
+ │ │
112
+ └─────────────────────────────────────────────────────────────────────────────┘
113
+ ```
114
+
115
+ ### 3.2 存储抽象层 (Storage Abstraction)
116
+
117
+ ```typescript
118
+ // 用户配置示例
119
+ type StorageConfig =
120
+ | { type: 'filesystem'; path: string }
121
+ | { type: 'kuzudb'; path: string }
122
+ | { type: 'neo4j'; uri: string; username: string; password: string };
123
+
124
+ // 自动选择策略
125
+ interface AutoStorageConfig {
126
+ type: 'auto';
127
+ thresholds: {
128
+ useGraphDBWhenFileCount: number; // 默认 500
129
+ useGraphDBWhenNodeCount: number; // 默认 10000
130
+ };
131
+ }
132
+ ```
133
+
134
+ **功能需求**:
135
+
136
+ | 需求 ID | 需求描述 | 优先级 | 验收标准 |
137
+ |---------|----------|--------|----------|
138
+ | SA-01 | 文件系统存储 (默认) | P0 | 与现有 JSON/Md 输出完全兼容 |
139
+ | SA-02 | KùzuDB 嵌入式存储 | P1 | 查询性能比文件系统快 10x |
140
+ | SA-03 | Neo4j 远程存储 | P2 | 支持企业级部署 |
141
+ | SA-04 | 自动选择策略 | P1 | 根据项目规模自动选择后端 |
142
+ | SA-05 | 存储迁移工具 | P2 | FS ↔ GraphDB 双向迁移 |
143
+
144
+ ### 3.3 多语言支持 (14 种语言)
145
+
146
+ ```
147
+ ┌─────────────────────────────────────────────────────────────────┐
148
+ │ 语言支持路线图 │
149
+ ├─────────────────────────────────────────────────────────────────┤
150
+ │ │
151
+ │ Phase 1 (P0): 当前已支持 │
152
+ │ ├── TypeScript ⭐ │
153
+ │ ├── JavaScript │
154
+ │ └── Go │
155
+ │ │
156
+ │ Phase 2 (P1): 扩展语言 (MVP3 目标) │
157
+ │ ├── Python 🐍 (最高优先级) │
158
+ │ ├── Java ☕ │
159
+ │ ├── Rust 🦀 │
160
+ │ └── C/C++ │
161
+ │ │
162
+ │ Phase 3 (P2): 后续扩展 │
163
+ │ ├── C# │
164
+ │ ├── Ruby │
165
+ │ ├── PHP │
166
+ │ ├── Swift │
167
+ │ ├── Kotlin │
168
+ │ ├── Dart │
169
+ │ └── Perl │
170
+ │ │
171
+ └─────────────────────────────────────────────────────────────────┘
172
+ ```
173
+
174
+ **语言实现策略**:
175
+
176
+ | 语言 | 解析器 | 复杂度 | 优先级 |
177
+ |------|--------|--------|--------|
178
+ | Python | Tree-sitter | 中 | P0 |
179
+ | Java | Tree-sitter | 中 | P1 |
180
+ | Rust | Tree-sitter | 中 | P1 |
181
+ | C/C++ | Tree-sitter | 高 | P1 |
182
+ | C# | Tree-sitter | 中 | P2 |
183
+ | Ruby | Tree-sitter | 低 | P2 |
184
+ | PHP | Tree-sitter | 低 | P2 |
185
+ | Swift | Tree-sitter | 中 | P2 |
186
+ | Kotlin | Tree-sitter | 中 | P2 |
187
+ | Dart | Tree-sitter | 低 | P2 |
188
+ | Perl | Tree-sitter | 低 | P2 |
189
+
190
+ ### 3.4 CLI 可视化增强
191
+
192
+ ```
193
+ ┌─────────────────────────────────────────────────────────────────┐
194
+ │ CLI 可视化功能 │
195
+ ├─────────────────────────────────────────────────────────────────┤
196
+ │ │
197
+ │ 1. 树形目录可视化 (tree view) │
198
+ │ $ mycodemap viz tree --depth 3 │
199
+ │ 📁 src/ │
200
+ │ ├── 📁 cli/ │
201
+ │ │ ├── 📄 index.ts │
202
+ │ │ └── 📄 commands/ │
203
+ │ └── 📁 core/ │
204
+ │ └── 📄 analyzer.ts │
205
+ │ │
206
+ │ 2. 依赖图字符画 (ascii graph) │
207
+ │ $ mycodemap viz deps --format ascii │
208
+ │ src/index.ts │
209
+ │ ├── src/cli/index.ts │
210
+ │ ├── src/core/analyzer.ts │
211
+ │ └── src/parser/index.ts │
212
+ │ │
213
+ │ 3. 热力图 (heatmap) │
214
+ │ $ mycodemap viz heatmap --metric complexity │
215
+ │ 🔴 src/orchestrator/workflow.ts (复杂度: 45) │
216
+ │ 🟡 src/cli/commands/query.ts (复杂度: 28) │
217
+ │ 🟢 src/cache/lru-cache.ts (复杂度: 12) │
218
+ │ │
219
+ │ 4. 进度条和 Spinner │
220
+ │ $ mycodemap generate │
221
+ │ [████████████████████] 85% | 正在分析 src/core/analyzer.ts │
222
+ │ │
223
+ └─────────────────────────────────────────────────────────────────┘
224
+ ```
225
+
226
+ **CLI 可视化需求**:
227
+
228
+ | 需求 ID | 功能 | 优先级 | 说明 |
229
+ |---------|------|--------|------|
230
+ | VIZ-01 | 树形目录视图 | P1 | `--viz tree` |
231
+ | VIZ-02 | ASCII 依赖图 | P1 | `--viz deps` |
232
+ | VIZ-03 | 复杂度热力图 | P2 | `--viz heatmap` |
233
+ | VIZ-04 | 进度条/Spinner | P0 | 所有耗时命令 |
234
+ | VIZ-05 | 颜色主题 | P2 | `--theme dark/light` |
235
+ | VIZ-06 | 交互式 TUI | P2 | `mycodemap tui` |
236
+
237
+ ---
238
+
239
+ ## 4. 非功能需求
240
+
241
+ ### 4.1 性能目标
242
+
243
+ | 指标 | 当前 | MVP3 目标 | 测试场景 |
244
+ |------|------|-----------|----------|
245
+ | 首次索引 (1000 文件) | ~30s | < 20s | Fast 模式 |
246
+ | 查询响应时间 | ~500ms | < 100ms (GraphDB) | 符号查询 |
247
+ | 内存占用 | ~500MB | < 1GB | 5000 文件项目 |
248
+ | 增量更新 | ~5s | < 3s | 修改 1 个文件 |
249
+
250
+ ### 4.2 兼容性
251
+
252
+ - **向后兼容**: 现有 `codemap.config.json` 无需修改
253
+ - **输出兼容**: `AI_MAP.md` / `CONTEXT.md` 格式保持不变
254
+ - **CLI 兼容**: 所有现有命令和参数保持不变
255
+
256
+ ### 4.3 可扩展性
257
+
258
+ - **新存储后端**: 实现 `StorageAdapter` 接口即可添加
259
+ - **新语言**: 实现 `LanguageParser` 接口即可添加
260
+ - **新可视化**: 实现 `Visualizer` 接口即可添加
261
+
262
+ ---
263
+
264
+ ## 5. 发布计划
265
+
266
+ ```
267
+ ┌─────────────────────────────────────────────────────────────────┐
268
+ │ MVP3 发布路线图 │
269
+ ├─────────────────────────────────────────────────────────────────┤
270
+ │ │
271
+ │ v3.0.0-alpha (4 周) │
272
+ │ ├── 架构重构: Server 层 + 分层隔离 │
273
+ │ └── 存储抽象层基础接口 │
274
+ │ │
275
+ │ v3.0.0-beta (4 周) │
276
+ │ ├── Python 语言支持 │
277
+ │ ├── KùzuDB 存储后端 │
278
+ │ └── CLI 可视化基础功能 │
279
+ │ │
280
+ │ v3.0.0-rc (2 周) │
281
+ │ ├── Java/Rust/C/C++ 语言支持 │
282
+ │ ├── 自动存储选择策略 │
283
+ │ └── 性能优化 │
284
+ │ │
285
+ │ v3.0.0-stable │
286
+ │ └── 正式发布 │
287
+ │ │
288
+ │ v3.1.0+ │
289
+ │ └── 剩余 6 种语言 + Neo4j 后端 │
290
+ │ │
291
+ └─────────────────────────────────────────────────────────────────┘
292
+ ```
293
+
294
+ ---
295
+
296
+ ## 6. 风险与缓解
297
+
298
+ | 风险 | 概率 | 影响 | 缓解措施 |
299
+ |------|------|------|----------|
300
+ | Tree-sitter 性能瓶颈 | 中 | 高 | 预编译 grammar,Worker 线程解析 |
301
+ | KùzuDB 稳定性 | 低 | 高 | 保留文件系统作为 fallback |
302
+ | 向后兼容性破坏 | 低 | 高 | 完整集成测试,灰度发布 |
303
+ | 开发周期延期 | 中 | 中 | 分阶段发布,先核心后扩展 |
304
+
305
+ ---
306
+
307
+ ## 7. 附录
308
+
309
+ ### 7.1 术语表
310
+
311
+ | 术语 | 定义 |
312
+ |------|------|
313
+ | Server Layer | 业务逻辑层,协调 Domain 和 Infrastructure |
314
+ | Storage Abstraction | 存储抽象接口,支持多种后端实现 |
315
+ | Tree-sitter | 增量解析库,支持多语言 |
316
+ | KùzuDB | 高性能嵌入式图数据库 |
317
+
318
+ ### 7.2 参考文档
319
+
320
+ - [MVP3 Tech-PRD](./MVP3-ARCHITECTURE-REDESIGN-TECH-PRD.md)
321
+ - [Storage Abstraction Design](../design-docs/storage-abstraction.md)
322
+ - [Multi-Language Support Plan](../design-docs/multi-language-support.md)