@mycodemap/mycodemap 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +164 -6
- package/README.md +407 -141
- package/dist/cli/commands/ci.d.ts +7 -1
- package/dist/cli/commands/ci.d.ts.map +1 -1
- package/dist/cli/commands/ci.js +38 -0
- package/dist/cli/commands/ci.js.map +1 -1
- package/dist/cli/commands/cycles.d.ts.map +1 -1
- package/dist/cli/commands/cycles.js +2 -0
- package/dist/cli/commands/cycles.js.map +1 -1
- package/dist/cli/commands/export.d.ts +6 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +108 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +96 -0
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +3 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +5 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +189 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/report.d.ts +12 -0
- package/dist/cli/commands/report.d.ts.map +1 -0
- package/dist/cli/commands/report.js +158 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/server.d.ts +9 -0
- package/dist/cli/commands/server.d.ts.map +1 -0
- package/dist/cli/commands/server.js +68 -0
- package/dist/cli/commands/server.js.map +1 -0
- package/dist/cli/commands/watch-foreground.d.ts.map +1 -1
- package/dist/cli/commands/watch-foreground.js +2 -0
- package/dist/cli/commands/watch-foreground.js.map +1 -1
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js +2 -0
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/first-run-guide.d.ts +23 -0
- package/dist/cli/first-run-guide.d.ts.map +1 -0
- package/dist/cli/first-run-guide.js +83 -0
- package/dist/cli/first-run-guide.js.map +1 -0
- package/dist/cli/index.js +85 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/platform-check.d.ts +21 -0
- package/dist/cli/platform-check.d.ts.map +1 -0
- package/dist/cli/platform-check.js +94 -0
- package/dist/cli/platform-check.js.map +1 -0
- package/dist/cli/tree-sitter-check.d.ts +35 -0
- package/dist/cli/tree-sitter-check.d.ts.map +1 -0
- package/dist/cli/tree-sitter-check.js +133 -0
- package/dist/cli/tree-sitter-check.js.map +1 -0
- package/dist/cli/utils/sanitize.d.ts +54 -0
- package/dist/cli/utils/sanitize.d.ts.map +1 -0
- package/dist/cli/utils/sanitize.js +131 -0
- package/dist/cli/utils/sanitize.js.map +1 -0
- package/dist/cli-new/commands/export.d.ts +15 -0
- package/dist/cli-new/commands/export.d.ts.map +1 -0
- package/dist/cli-new/commands/export.js +107 -0
- package/dist/cli-new/commands/export.js.map +1 -0
- package/dist/cli-new/commands/query.d.ts +14 -0
- package/dist/cli-new/commands/query.d.ts.map +1 -0
- package/dist/cli-new/commands/query.js +120 -0
- package/dist/cli-new/commands/query.js.map +1 -0
- package/dist/cli-new/commands/server.d.ts +13 -0
- package/dist/cli-new/commands/server.d.ts.map +1 -0
- package/dist/cli-new/commands/server.js +94 -0
- package/dist/cli-new/commands/server.js.map +1 -0
- package/dist/cli-new/index.d.ts +11 -0
- package/dist/cli-new/index.d.ts.map +1 -0
- package/dist/cli-new/index.js +63 -0
- package/dist/cli-new/index.js.map +1 -0
- package/dist/cli-new/types/index.d.ts +88 -0
- package/dist/cli-new/types/index.d.ts.map +1 -0
- package/dist/cli-new/types/index.js +7 -0
- package/dist/cli-new/types/index.js.map +1 -0
- package/dist/domain/entities/CodeGraph.d.ts +134 -0
- package/dist/domain/entities/CodeGraph.d.ts.map +1 -0
- package/dist/domain/entities/CodeGraph.js +316 -0
- package/dist/domain/entities/CodeGraph.js.map +1 -0
- package/dist/domain/entities/Dependency.d.ts +78 -0
- package/dist/domain/entities/Dependency.d.ts.map +1 -0
- package/dist/domain/entities/Dependency.js +132 -0
- package/dist/domain/entities/Dependency.js.map +1 -0
- package/dist/domain/entities/Module.d.ts +75 -0
- package/dist/domain/entities/Module.d.ts.map +1 -0
- package/dist/domain/entities/Module.js +151 -0
- package/dist/domain/entities/Module.js.map +1 -0
- package/dist/domain/entities/Project.d.ts +50 -0
- package/dist/domain/entities/Project.d.ts.map +1 -0
- package/dist/domain/entities/Project.js +99 -0
- package/dist/domain/entities/Project.js.map +1 -0
- package/dist/domain/entities/Symbol.d.ts +75 -0
- package/dist/domain/entities/Symbol.d.ts.map +1 -0
- package/dist/domain/entities/Symbol.js +130 -0
- package/dist/domain/entities/Symbol.js.map +1 -0
- package/dist/domain/events/DomainEvent.d.ts +76 -0
- package/dist/domain/events/DomainEvent.d.ts.map +1 -0
- package/dist/domain/events/DomainEvent.js +153 -0
- package/dist/domain/events/DomainEvent.js.map +1 -0
- package/dist/domain/index.d.ts +10 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +18 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/repositories/CodeGraphRepository.d.ts +58 -0
- package/dist/domain/repositories/CodeGraphRepository.d.ts.map +1 -0
- package/dist/domain/repositories/CodeGraphRepository.js +37 -0
- package/dist/domain/repositories/CodeGraphRepository.js.map +1 -0
- package/dist/domain/services/CodeGraphBuilder.d.ts +50 -0
- package/dist/domain/services/CodeGraphBuilder.d.ts.map +1 -0
- package/dist/domain/services/CodeGraphBuilder.js +121 -0
- package/dist/domain/services/CodeGraphBuilder.js.map +1 -0
- package/dist/infrastructure/parser/implementations/GoParser.d.ts +25 -0
- package/dist/infrastructure/parser/implementations/GoParser.d.ts.map +1 -0
- package/dist/infrastructure/parser/implementations/GoParser.js +158 -0
- package/dist/infrastructure/parser/implementations/GoParser.js.map +1 -0
- package/dist/infrastructure/parser/implementations/PythonParser.d.ts +30 -0
- package/dist/infrastructure/parser/implementations/PythonParser.d.ts.map +1 -0
- package/dist/infrastructure/parser/implementations/PythonParser.js +201 -0
- package/dist/infrastructure/parser/implementations/PythonParser.js.map +1 -0
- package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts +63 -0
- package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts.map +1 -0
- package/dist/infrastructure/parser/implementations/TypeScriptParser.js +420 -0
- package/dist/infrastructure/parser/implementations/TypeScriptParser.js.map +1 -0
- package/dist/infrastructure/parser/index.d.ts +13 -0
- package/dist/infrastructure/parser/index.d.ts.map +1 -0
- package/dist/infrastructure/parser/index.js +32 -0
- package/dist/infrastructure/parser/index.js.map +1 -0
- package/dist/infrastructure/parser/interfaces/ParserBase.d.ts +124 -0
- package/dist/infrastructure/parser/interfaces/ParserBase.d.ts.map +1 -0
- package/dist/infrastructure/parser/interfaces/ParserBase.js +200 -0
- package/dist/infrastructure/parser/interfaces/ParserBase.js.map +1 -0
- package/dist/infrastructure/parser/registry/ParserRegistry.d.ts +68 -0
- package/dist/infrastructure/parser/registry/ParserRegistry.d.ts.map +1 -0
- package/dist/infrastructure/parser/registry/ParserRegistry.js +116 -0
- package/dist/infrastructure/parser/registry/ParserRegistry.js.map +1 -0
- package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts +44 -0
- package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts.map +1 -0
- package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js +129 -0
- package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js.map +1 -0
- package/dist/infrastructure/repositories/index.d.ts +3 -0
- package/dist/infrastructure/repositories/index.d.ts.map +1 -0
- package/dist/infrastructure/repositories/index.js +7 -0
- package/dist/infrastructure/repositories/index.js.map +1 -0
- package/dist/infrastructure/storage/StorageFactory.d.ts +53 -0
- package/dist/infrastructure/storage/StorageFactory.d.ts.map +1 -0
- package/dist/infrastructure/storage/StorageFactory.js +150 -0
- package/dist/infrastructure/storage/StorageFactory.js.map +1 -0
- package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts +52 -0
- package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts.map +1 -0
- package/dist/infrastructure/storage/adapters/FileSystemStorage.js +315 -0
- package/dist/infrastructure/storage/adapters/FileSystemStorage.js.map +1 -0
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts +52 -0
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts.map +1 -0
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.js +235 -0
- package/dist/infrastructure/storage/adapters/KuzuDBStorage.js.map +1 -0
- package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts +37 -0
- package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts.map +1 -0
- package/dist/infrastructure/storage/adapters/MemoryStorage.js +229 -0
- package/dist/infrastructure/storage/adapters/MemoryStorage.js.map +1 -0
- package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts +49 -0
- package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts.map +1 -0
- package/dist/infrastructure/storage/adapters/Neo4jStorage.js +222 -0
- package/dist/infrastructure/storage/adapters/Neo4jStorage.js.map +1 -0
- package/dist/infrastructure/storage/index.d.ts +6 -0
- package/dist/infrastructure/storage/index.d.ts.map +1 -0
- package/dist/infrastructure/storage/index.js +13 -0
- package/dist/infrastructure/storage/index.js.map +1 -0
- package/dist/infrastructure/storage/interfaces/StorageBase.d.ts +76 -0
- package/dist/infrastructure/storage/interfaces/StorageBase.d.ts.map +1 -0
- package/dist/infrastructure/storage/interfaces/StorageBase.js +116 -0
- package/dist/infrastructure/storage/interfaces/StorageBase.js.map +1 -0
- package/dist/interface/config/index.d.ts +102 -0
- package/dist/interface/config/index.d.ts.map +1 -0
- package/dist/interface/config/index.js +7 -0
- package/dist/interface/config/index.js.map +1 -0
- package/dist/interface/types/index.d.ts +425 -0
- package/dist/interface/types/index.d.ts.map +1 -0
- package/dist/interface/types/index.js +8 -0
- package/dist/interface/types/index.js.map +1 -0
- package/dist/interface/types/parser.d.ts +103 -0
- package/dist/interface/types/parser.d.ts.map +1 -0
- package/dist/interface/types/parser.js +7 -0
- package/dist/interface/types/parser.js.map +1 -0
- package/dist/interface/types/storage.d.ts +98 -0
- package/dist/interface/types/storage.d.ts.map +1 -0
- package/dist/interface/types/storage.js +7 -0
- package/dist/interface/types/storage.js.map +1 -0
- package/dist/orchestrator/test-linker.js +1 -1
- package/dist/orchestrator/test-linker.js.map +1 -1
- package/dist/server/CodeMapServer.d.ts +51 -0
- package/dist/server/CodeMapServer.d.ts.map +1 -0
- package/dist/server/CodeMapServer.js +146 -0
- package/dist/server/CodeMapServer.js.map +1 -0
- package/dist/server/handlers/AnalysisHandler.d.ts +82 -0
- package/dist/server/handlers/AnalysisHandler.d.ts.map +1 -0
- package/dist/server/handlers/AnalysisHandler.js +196 -0
- package/dist/server/handlers/AnalysisHandler.js.map +1 -0
- package/dist/server/handlers/QueryHandler.d.ts +57 -0
- package/dist/server/handlers/QueryHandler.d.ts.map +1 -0
- package/dist/server/handlers/QueryHandler.js +260 -0
- package/dist/server/handlers/QueryHandler.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +13 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/routes/api.d.ts +8 -0
- package/dist/server/routes/api.d.ts.map +1 -0
- package/dist/server/routes/api.js +372 -0
- package/dist/server/routes/api.js.map +1 -0
- package/dist/server/types/index.d.ts +171 -0
- package/dist/server/types/index.d.ts.map +1 -0
- package/dist/server/types/index.js +7 -0
- package/dist/server/types/index.js.map +1 -0
- package/dist/types/index.d.ts +6 -372
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +9 -3
- package/dist/types/index.js.map +1 -1
- package/docs/AI_ASSISTANT_SETUP.md +811 -0
- package/docs/PUBLISHING.md +162 -0
- package/docs/README.md +37 -0
- package/docs/SETUP_GUIDE.md +493 -0
- package/docs/ai-guide/COMMANDS.md +369 -0
- package/docs/ai-guide/INTEGRATION.md +513 -0
- package/docs/ai-guide/OUTPUT.md +465 -0
- package/docs/ai-guide/PATTERNS.md +409 -0
- package/docs/ai-guide/PROMPTS.md +414 -0
- package/docs/ai-guide/QUICKSTART.md +114 -0
- package/docs/ai-guide/README.md +66 -0
- package/docs/archive/AI_INTEGRATION_GUIDE_ARCHIVED.md +391 -0
- package/docs/archive/ARCHIVE.md +39 -0
- package/docs/archive/MYCLAUDE_GUIDE.md +305 -0
- package/docs/archive/PUBLISH_NPM_DESIGN_V1.md +1699 -0
- package/docs/archive/PUBLISH_NPM_DESIGN_V2.md +396 -0
- package/docs/archive/README.md +29 -0
- package/docs/archive/TASK_DESIGN_COVERAGE_REPORT.md +320 -0
- package/docs/archive/TEST_SUMMARY.md +140 -0
- package/docs/archive/comprehensive_test_report.md +337 -0
- package/docs/archive/design-docs/CI_GATEWAY_DESIGN.md +790 -0
- package/docs/archive/design-docs/PUBLISH_NPM_DESIGN_FINAL.md +491 -0
- package/docs/archive/design-docs/REFACTOR_ARCHITECTURE_OVERVIEW.md +558 -0
- package/docs/archive/design-docs/REFACTOR_CONFIDENCE_DESIGN.md +250 -0
- package/docs/archive/design-docs/REFACTOR_GIT_ANALYZER_DESIGN.md +791 -0
- package/docs/archive/design-docs/REFACTOR_ORCHESTRATOR_DESIGN.md +1071 -0
- package/docs/archive/design-docs/REFACTOR_RESULT_FUSION_DESIGN.md +321 -0
- package/docs/archive/design-docs/REFACTOR_TEST_LINKER_DESIGN.md +317 -0
- package/docs/archive/myclaude.md +1084 -0
- package/docs/archive/plans/2026-03-14-go-language-support-design.md +92 -0
- package/docs/archive/product-specs/REFACTOR_REQUIREMENTS.md +976 -0
- package/docs/archive/scenario-2-deps-analysis.md +353 -0
- package/docs/archive/test-report-symbol-search.md +384 -0
- package/docs/archive/test-scenario-4-complexity-analysis.md +460 -0
- package/docs/archive/test_report_scenario5.md +615 -0
- package/docs/archive/test_scenario_3_impact_analysis_report.md +520 -0
- package/docs/design-docs/README.md +26 -0
- package/docs/exec-plans/MVP3-IMPLEMENTATION-ROADMAP.md +524 -0
- package/docs/exec-plans/README.md +29 -0
- package/docs/exec-plans/active/.gitkeep +0 -0
- package/docs/exec-plans/completed/.gitkeep +0 -0
- package/docs/exec-plans/completed/2026-03-03-deps-path-extension-fix.md +186 -0
- package/docs/exec-plans/completed/2026-03-03-post-task-plan.md +135 -0
- package/docs/exec-plans/completed/harness-engineering-rollout.md +184 -0
- package/docs/exec-plans/tech-debt/.gitkeep +0 -0
- package/docs/exec-plans/tech-debt/2026-03-15-lint-guardrail-gap.md +30 -0
- package/docs/generated/README.md +19 -0
- package/docs/product-specs/MVP3-ARCHITECTURE-COMPARISON.md +504 -0
- package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-PRD.md +322 -0
- package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-TECH-PRD.md +1374 -0
- package/docs/product-specs/README.md +22 -0
- package/docs/references/README.md +15 -0
- package/docs/references/tmp.md +527 -0
- package/docs/rules/README.md +16 -0
- package/docs/rules/architecture-guardrails.md +349 -0
- package/docs/rules/code-quality-redlines.md +321 -0
- package/docs/rules/deployment.md +23 -0
- package/docs/rules/engineering-with-codex-openai.md +202 -0
- package/docs/rules/testing.md +73 -0
- package/docs/rules/validation.md +39 -0
- package/examples/README.md +61 -0
- package/examples/claude/codemap-skill.md +94 -0
- package/examples/codex/codemap-agent.md +66 -0
- package/examples/copilot/copilot-instructions.md +24 -0
- package/examples/kimi/codemap-skill.md +92 -0
- package/package.json +22 -7
|
@@ -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)
|