@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,250 @@
|
|
|
1
|
+
# 置信度机制详细设计
|
|
2
|
+
|
|
3
|
+
> 归档时间:2026-03-15
|
|
4
|
+
> 归档原因:历史重构设计稿,数据结构与当前实现已出现偏差。
|
|
5
|
+
> 当前依据:`ARCHITECTURE.md`、`src/orchestrator/confidence.ts`、`src/orchestrator/types.ts`
|
|
6
|
+
> 状态:仅供历史对照,不作为当前执行依据。
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
> 版本: 2.4
|
|
10
|
+
> 所属模块: 编排层 - 置信度计算
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. 设计原则
|
|
15
|
+
|
|
16
|
+
**核心思路**:不预测置信度,而是基于结果质量反推置信度。
|
|
17
|
+
|
|
18
|
+
借鉴搜索引擎的 Quality Score 模式,用结果数量、质量、场景匹配度三个维度计算置信度。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. 数据结构设计
|
|
23
|
+
|
|
24
|
+
### 2.1 统一结果接口
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
// src/orchestrator/confidence.ts
|
|
28
|
+
|
|
29
|
+
interface SearchResult {
|
|
30
|
+
file: string;
|
|
31
|
+
line?: number;
|
|
32
|
+
content: string;
|
|
33
|
+
score?: number; // SearchResult 原始分数
|
|
34
|
+
toolScore?: number; // UnifiedResult 原始分数
|
|
35
|
+
relevance?: number; // UnifiedResult 归一化分数
|
|
36
|
+
matches?: number; // 匹配次数(仅 SearchResult)
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 2.2 置信度结果
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
interface ConfidenceResult {
|
|
44
|
+
score: number; // 综合置信度 0-1
|
|
45
|
+
level: 'high' | 'medium' | 'low';
|
|
46
|
+
reasons: string[]; // 置信度判断的原因
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 3. 接口设计
|
|
53
|
+
|
|
54
|
+
### 3.1 辅助函数
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
/**
|
|
58
|
+
* 获取结果的相关度分数
|
|
59
|
+
* 兼容 SearchResult 和 UnifiedResult 格式
|
|
60
|
+
*/
|
|
61
|
+
function getRelevance(result: SearchResult): number {
|
|
62
|
+
// 优先使用 UnifiedResult 字段
|
|
63
|
+
if (result.relevance !== undefined) return result.relevance;
|
|
64
|
+
if (result.toolScore !== undefined) return result.toolScore;
|
|
65
|
+
// 回退到 SearchResult 字段
|
|
66
|
+
return result.score || 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* 获取结果的匹配次数
|
|
71
|
+
*/
|
|
72
|
+
function getMatchCount(result: SearchResult): number {
|
|
73
|
+
return result.matches || 0;
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 3.2 置信度计算函数
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
/**
|
|
81
|
+
* 基于搜索结果质量计算置信度
|
|
82
|
+
* - 结果数量评分 (40%): 有结果比少好,结果多比少好
|
|
83
|
+
* - 结果质量评分 (40%): 高相关度结果占比
|
|
84
|
+
* - 场景匹配评分 (20%): 特定场景的额外验证
|
|
85
|
+
*/
|
|
86
|
+
function calculateConfidence(
|
|
87
|
+
results: SearchResult[],
|
|
88
|
+
intent: IntentType
|
|
89
|
+
): ConfidenceResult {
|
|
90
|
+
const reasons: string[] = [];
|
|
91
|
+
|
|
92
|
+
// 1. 结果数量评分 (40%)
|
|
93
|
+
const countScore = Math.min(results.length / 5, 1) * 0.4;
|
|
94
|
+
if (results.length === 0) {
|
|
95
|
+
reasons.push('无搜索结果');
|
|
96
|
+
} else if (results.length >= 3) {
|
|
97
|
+
reasons.push(`找到 ${results.length} 个相关结果`);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// 2. 结果质量评分 (40%)
|
|
101
|
+
const qualityScore = results.length > 0
|
|
102
|
+
? (results.reduce((sum, r) => sum + getRelevance(r), 0) / results.length) * 0.4
|
|
103
|
+
: 0;
|
|
104
|
+
const topRelevance = results.length > 0 ? getRelevance(results[0]) : 0;
|
|
105
|
+
if (results.length > 0 && topRelevance > 0.8) {
|
|
106
|
+
reasons.push(`最高相关度 ${(topRelevance * 100).toFixed(0)}%`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// 3. 场景特定评分 (20%)
|
|
110
|
+
let scenarioScore = 0;
|
|
111
|
+
switch (intent) {
|
|
112
|
+
case 'impact':
|
|
113
|
+
// 影响分析:需要找到依赖关系
|
|
114
|
+
scenarioScore = results.some(r => getMatchCount(r) > 1) ? 0.2 : 0;
|
|
115
|
+
if (scenarioScore > 0) reasons.push('发现多处引用');
|
|
116
|
+
break;
|
|
117
|
+
case 'search':
|
|
118
|
+
// 搜索:高质量结果给予额外加分
|
|
119
|
+
scenarioScore = topRelevance > 0.9 ? 0.2 : 0;
|
|
120
|
+
break;
|
|
121
|
+
case 'dependency':
|
|
122
|
+
// 依赖:需要结构化依赖数据
|
|
123
|
+
scenarioScore = results.length > 0 ? 0.2 : 0;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const totalScore = countScore + qualityScore + scenarioScore;
|
|
128
|
+
|
|
129
|
+
return {
|
|
130
|
+
score: totalScore,
|
|
131
|
+
level: totalScore >= 0.6 ? 'high' : totalScore >= 0.3 ? 'medium' : 'low',
|
|
132
|
+
reasons
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 4. 阈值配置
|
|
140
|
+
|
|
141
|
+
### 4.1 意图类型定义
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
type IntentType = 'impact' | 'dependency' | 'search' | 'documentation' |
|
|
145
|
+
'complexity' | 'overview' | 'refactor' | 'reference';
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 4.2 置信度阈值
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
// 置信度阈值(按 intent 区分)
|
|
152
|
+
const CONFIDENCE_THRESHOLDS: Record<IntentType, { high: number; medium: number }> = {
|
|
153
|
+
impact: { high: 0.7, medium: 0.4 }, // 结构化数据,要求高
|
|
154
|
+
dependency: { high: 0.7, medium: 0.4 }, // 结构化数据,要求高
|
|
155
|
+
search: { high: 0.5, medium: 0.25 }, // 文本搜索,容忍度较高
|
|
156
|
+
documentation: { high: 0.5, medium: 0.25 }, // 文档搜索,容忍度较高
|
|
157
|
+
complexity: { high: 0.6, medium: 0.3 },
|
|
158
|
+
overview: { high: 0.6, medium: 0.3 },
|
|
159
|
+
refactor: { high: 0.6, medium: 0.3 },
|
|
160
|
+
reference: { high: 0.5, medium: 0.25 } // 参考实现,容忍度较高
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* 获取指定 intent 的阈值
|
|
165
|
+
*/
|
|
166
|
+
function getThreshold(intent: IntentType, level: 'high' | 'medium'): number {
|
|
167
|
+
return CONFIDENCE_THRESHOLDS[intent]?.[level] ?? 0.5;
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 5. 模块依赖
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
置信度模块 (confidence.ts)
|
|
177
|
+
│
|
|
178
|
+
├── 依赖类型: SearchResult (输入)
|
|
179
|
+
├── 依赖类型: IntentType (配置)
|
|
180
|
+
├── 输出类型: ConfidenceResult
|
|
181
|
+
│
|
|
182
|
+
└── 被以下模块使用:
|
|
183
|
+
└── ToolOrchestrator (tool-orchestrator.ts)
|
|
184
|
+
└── WorkflowOrchestrator (workflow-orchestrator.ts) (v2.5 新增)
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 6. 工作流阶段的置信度指导 (v2.5 规划)
|
|
190
|
+
|
|
191
|
+
### 6.1 置信度与阶段推进
|
|
192
|
+
|
|
193
|
+
在编排层工作流中,置信度用于决定阶段推进策略:
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
// 工作流阶段的置信度要求
|
|
197
|
+
|
|
198
|
+
const PHASE_CONFIDENCE_REQUIREMENTS: Record<string, { min: number; auto: boolean; autoThreshold?: number }> = {
|
|
199
|
+
reference: { min: 0.3, auto: true, autoThreshold: 0.7 }, // >=0.7 自动推进
|
|
200
|
+
impact: { min: 0.4, auto: true, autoThreshold: 0.7 }, // >=0.7 自动推进
|
|
201
|
+
risk: { min: 0, auto: false }, // 风险评估:始终需要用户确认
|
|
202
|
+
implementation: { min: 0, auto: false }, // 代码实现:需要用户触发
|
|
203
|
+
commit: { min: 0, auto: false }, // 提交:需要用户触发
|
|
204
|
+
ci: { min: 0, auto: false } // CI:自动执行
|
|
205
|
+
};
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 6.2 置信度事件
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
// 置信度触发的工作流事件
|
|
212
|
+
|
|
213
|
+
interface ConfidenceEvent {
|
|
214
|
+
phase: string;
|
|
215
|
+
confidence: ConfidenceResult;
|
|
216
|
+
event: 'high-confidence' | 'medium-confidence' | 'low-confidence' | 'fallback-triggered';
|
|
217
|
+
recommendation: string;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// 事件处理
|
|
221
|
+
function handleConfidenceEvent(event: ConfidenceEvent): void {
|
|
222
|
+
switch (event.event) {
|
|
223
|
+
case 'high-confidence':
|
|
224
|
+
// 自动推进到下一阶段
|
|
225
|
+
workflow.proceedToNextPhase();
|
|
226
|
+
break;
|
|
227
|
+
case 'medium-confidence':
|
|
228
|
+
// 提示用户确认
|
|
229
|
+
console.log(`[WARNING] Medium confidence: ${event.confidence.reasons.join(', ')}`);
|
|
230
|
+
break;
|
|
231
|
+
case 'low-confidence':
|
|
232
|
+
// 阻止推进,要求更多分析
|
|
233
|
+
console.log(`[ERROR] Low confidence, cannot proceed: ${event.recommendation}`);
|
|
234
|
+
break;
|
|
235
|
+
case 'fallback-triggered':
|
|
236
|
+
// 记录回退事件
|
|
237
|
+
logFallbackEvent(event);
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 7. 风险与缓解
|
|
246
|
+
|
|
247
|
+
| 风险 | 影响 | 缓解措施 |
|
|
248
|
+
|------|------|----------|
|
|
249
|
+
| 置信度计算不准确 | 过度回退或回退不足 | 基于实际结果迭代调参 |
|
|
250
|
+
| 场景评分权重不合理 | 某些场景效果差 | 支持配置化权重 |
|