soloforge 1.0.0 → 1.1.1
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/README.md +4 -1
- package/dist/adapters/claude_code/claude_md.d.ts +1 -2
- package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
- package/dist/adapters/claude_code/claude_md.js +2 -76
- package/dist/adapters/claude_code/claude_md.js.map +1 -1
- package/dist/adapters/claude_code/server.d.ts +16 -0
- package/dist/adapters/claude_code/server.d.ts.map +1 -1
- package/dist/adapters/claude_code/server.js +17 -1
- package/dist/adapters/claude_code/server.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +32 -1
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +65 -30
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_config.d.ts +3 -0
- package/dist/adapters/codex/codex_config.d.ts.map +1 -0
- package/dist/adapters/codex/codex_config.js +51 -0
- package/dist/adapters/codex/codex_config.js.map +1 -0
- package/dist/adapters/codex/codex_rules.d.ts +2 -0
- package/dist/adapters/codex/codex_rules.d.ts.map +1 -0
- package/dist/adapters/codex/codex_rules.js +5 -0
- package/dist/adapters/codex/codex_rules.js.map +1 -0
- package/dist/adapters/shared/workflow_template.d.ts +3 -0
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -0
- package/dist/adapters/shared/workflow_template.js +78 -0
- package/dist/adapters/shared/workflow_template.js.map +1 -0
- package/dist/adapters/trae/trae_rules.d.ts +1 -2
- package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
- package/dist/adapters/trae/trae_rules.js +2 -75
- package/dist/adapters/trae/trae_rules.js.map +1 -1
- package/dist/bin/soloforge.js +171 -22
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/change_coordinator.d.ts +20 -5
- package/dist/engine/change_coordinator.d.ts.map +1 -1
- package/dist/engine/change_coordinator.js +36 -22
- package/dist/engine/change_coordinator.js.map +1 -1
- package/dist/engine/classifier.d.ts +7 -0
- package/dist/engine/classifier.d.ts.map +1 -1
- package/dist/engine/classifier.js +75 -3
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/code_reviewer.d.ts +37 -1
- package/dist/engine/code_reviewer.d.ts.map +1 -1
- package/dist/engine/code_reviewer.js +126 -24
- package/dist/engine/code_reviewer.js.map +1 -1
- package/dist/engine/confidence_scorer.d.ts +21 -0
- package/dist/engine/confidence_scorer.d.ts.map +1 -1
- package/dist/engine/confidence_scorer.js +19 -6
- package/dist/engine/confidence_scorer.js.map +1 -1
- package/dist/engine/contract_guard.d.ts +23 -0
- package/dist/engine/contract_guard.d.ts.map +1 -1
- package/dist/engine/contract_guard.js +152 -43
- package/dist/engine/contract_guard.js.map +1 -1
- package/dist/engine/convention_detector.d.ts +20 -0
- package/dist/engine/convention_detector.d.ts.map +1 -1
- package/dist/engine/convention_detector.js +19 -1
- package/dist/engine/convention_detector.js.map +1 -1
- package/dist/engine/debt_reporter.d.ts +5 -0
- package/dist/engine/debt_reporter.d.ts.map +1 -1
- package/dist/engine/debt_reporter.js +30 -6
- package/dist/engine/debt_reporter.js.map +1 -1
- package/dist/engine/debt_tracker.d.ts +52 -0
- package/dist/engine/debt_tracker.d.ts.map +1 -1
- package/dist/engine/debt_tracker.js +66 -1
- package/dist/engine/debt_tracker.js.map +1 -1
- package/dist/engine/debugger.d.ts +9 -0
- package/dist/engine/debugger.d.ts.map +1 -1
- package/dist/engine/debugger.js +112 -20
- package/dist/engine/debugger.js.map +1 -1
- package/dist/engine/delivery.d.ts +27 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +67 -13
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/dependency_scanner.d.ts +5 -8
- package/dist/engine/dependency_scanner.d.ts.map +1 -1
- package/dist/engine/dependency_scanner.js +46 -29
- package/dist/engine/dependency_scanner.js.map +1 -1
- package/dist/engine/evolver.d.ts +54 -0
- package/dist/engine/evolver.d.ts.map +1 -1
- package/dist/engine/evolver.js +159 -6
- package/dist/engine/evolver.js.map +1 -1
- package/dist/engine/exploration.d.ts +114 -0
- package/dist/engine/exploration.d.ts.map +1 -0
- package/dist/engine/exploration.js +414 -0
- package/dist/engine/exploration.js.map +1 -0
- package/dist/engine/failure_classifier.d.ts +28 -0
- package/dist/engine/failure_classifier.d.ts.map +1 -1
- package/dist/engine/failure_classifier.js +51 -5
- package/dist/engine/failure_classifier.js.map +1 -1
- package/dist/engine/git_deps.d.ts +29 -0
- package/dist/engine/git_deps.d.ts.map +1 -1
- package/dist/engine/git_deps.js +1 -0
- package/dist/engine/git_deps.js.map +1 -1
- package/dist/engine/impact_analyzer.d.ts +17 -0
- package/dist/engine/impact_analyzer.d.ts.map +1 -1
- package/dist/engine/impact_analyzer.js +76 -4
- package/dist/engine/impact_analyzer.js.map +1 -1
- package/dist/engine/intent_expander.d.ts +58 -0
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +173 -1
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/migration_guard.d.ts +6 -0
- package/dist/engine/migration_guard.d.ts.map +1 -1
- package/dist/engine/migration_guard.js +26 -7
- package/dist/engine/migration_guard.js.map +1 -1
- package/dist/engine/observability.d.ts +31 -7
- package/dist/engine/observability.d.ts.map +1 -1
- package/dist/engine/observability.js +88 -28
- package/dist/engine/observability.js.map +1 -1
- package/dist/engine/onboarding.d.ts +41 -1
- package/dist/engine/onboarding.d.ts.map +1 -1
- package/dist/engine/onboarding.js +83 -8
- package/dist/engine/onboarding.js.map +1 -1
- package/dist/engine/scaffolder.d.ts +10 -0
- package/dist/engine/scaffolder.d.ts.map +1 -1
- package/dist/engine/scaffolder.js +55 -10
- package/dist/engine/scaffolder.js.map +1 -1
- package/dist/engine/scope_controller.d.ts +13 -0
- package/dist/engine/scope_controller.d.ts.map +1 -1
- package/dist/engine/scope_controller.js +76 -12
- package/dist/engine/scope_controller.js.map +1 -1
- package/dist/engine/task_context.d.ts +124 -0
- package/dist/engine/task_context.d.ts.map +1 -1
- package/dist/engine/task_context.js +155 -7
- package/dist/engine/task_context.js.map +1 -1
- package/dist/engine/task_planner.d.ts +17 -0
- package/dist/engine/task_planner.d.ts.map +1 -1
- package/dist/engine/task_planner.js +51 -4
- package/dist/engine/task_planner.js.map +1 -1
- package/dist/engine/team_awareness.d.ts +17 -0
- package/dist/engine/team_awareness.d.ts.map +1 -1
- package/dist/engine/team_awareness.js +29 -11
- package/dist/engine/team_awareness.js.map +1 -1
- package/dist/engine/test_generator.d.ts +5 -4
- package/dist/engine/test_generator.d.ts.map +1 -1
- package/dist/engine/test_generator.js +22 -5
- package/dist/engine/test_generator.js.map +1 -1
- package/dist/engine/test_quality.d.ts +11 -4
- package/dist/engine/test_quality.d.ts.map +1 -1
- package/dist/engine/test_quality.js +171 -14
- package/dist/engine/test_quality.js.map +1 -1
- package/dist/engine/verifier.d.ts +41 -0
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +110 -1
- package/dist/engine/verifier.js.map +1 -1
- package/dist/git/operations.d.ts +1 -0
- package/dist/git/operations.d.ts.map +1 -1
- package/dist/git/operations.js +3 -0
- package/dist/git/operations.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts +7 -1
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +112 -37
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/loader.d.ts +31 -0
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +102 -8
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/types.d.ts +608 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/knowledge/acceptance_templates//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +19 -0
- package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +4 -0
- package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +4 -1
- package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +34 -0
- package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +66 -0
- package/templates/scaffolds/react/Form.tsx.hbs +9 -1
- package/templates/scaffolds/react/List.tsx.hbs +10 -1
- package/templates/scaffolds/react/Page.tsx.hbs +4 -1
- package/templates/scaffolds/react/service.ts.hbs +29 -0
- package/templates/scaffolds/react/types.ts.hbs +7 -1
- package/templates/scaffolds/react/use{{ModuleName}}.ts.hbs +34 -2
- package/templates/scaffolds/spring-boot/Controller.java.hbs +27 -0
- package/templates/scaffolds/spring-boot/DTO.java.hbs +7 -1
- package/templates/scaffolds/spring-boot/Entity.java.hbs +11 -1
- package/templates/scaffolds/spring-boot/ErrorCode.java.hbs +13 -1
- package/templates/scaffolds/spring-boot/Mapper.java.hbs +4 -1
- package/templates/scaffolds/spring-boot/PageResponse.java.hbs +24 -1
- package/templates/scaffolds/spring-boot/Service.java.hbs +32 -0
- package/templates/scaffolds/spring-boot/ServiceImpl.java.hbs +23 -5
- package/templates/scaffolds/spring-boot/ServiceTest.java.hbs +7 -1
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 依赖漏洞扫描器 — 解析 package.json/pom.xml/build.gradle,基于内置漏洞规则库
|
|
3
|
+
* 检测已知漏洞和未锁定版本。纯规则驱动,零 AI 依赖,不调用外部 API。
|
|
4
|
+
*/
|
|
5
|
+
/** 内置漏洞规则库: 各语言生态的已知高风险依赖版本(包名 → 最低安全版本 → 漏洞描述) */
|
|
1
6
|
// ── 漏洞数据库 (硬编码规则库,零 AI 依赖) ──
|
|
2
7
|
const VULN_DB = [
|
|
3
8
|
// Java
|
|
@@ -19,15 +24,18 @@ const VULN_DB = [
|
|
|
19
24
|
{ package: "ua-parser-js", minSafe: "0.7.31", severity: "critical", issue: "供应链攻击" },
|
|
20
25
|
{ package: "event-source", minSafe: "2.0.1", severity: "high", issue: "CRLF 注入" },
|
|
21
26
|
];
|
|
27
|
+
/** 未锁定版本的正则匹配模式 — 匹配 "*"、"x"、"X" 或空字符串等无精确版本号的情况 */
|
|
22
28
|
// ── 未锁定版本标识 ──
|
|
23
29
|
const UNSCOPED_PATTERN = /^\s*[\*xX]?\s*$/;
|
|
24
30
|
// ── 版本比较 ──
|
|
25
31
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* -
|
|
29
|
-
* -
|
|
30
|
-
*
|
|
32
|
+
* 比较两个 semver 风格的版本号,判断 a 是否大于 b。
|
|
33
|
+
* - 按点号分隔,逐段数值比较
|
|
34
|
+
* - 段数不足时以 0 补齐
|
|
35
|
+
* - 预发布后缀(如 -beta.1、-rc.2)在比较前被剥离
|
|
36
|
+
* @param a - 版本号 a
|
|
37
|
+
* @param b - 版本号 b
|
|
38
|
+
* @returns 当 a > b 时返回 true
|
|
31
39
|
*/
|
|
32
40
|
function semverGt(a, b) {
|
|
33
41
|
const normalize = (v) => v.replace(/-[\w.]+$/, "").split(".").map((seg) => {
|
|
@@ -48,7 +56,9 @@ function semverGt(a, b) {
|
|
|
48
56
|
return false;
|
|
49
57
|
}
|
|
50
58
|
/**
|
|
51
|
-
*
|
|
59
|
+
* 检查版本字符串是否为未锁定版本(如 "*"、"latest"、"x"、空字符串)。
|
|
60
|
+
* @param version - 版本字符串
|
|
61
|
+
* @returns 未锁定时返回 true
|
|
52
62
|
*/
|
|
53
63
|
function isUnscoped(version) {
|
|
54
64
|
const trimmed = version.trim().toLowerCase();
|
|
@@ -56,37 +66,38 @@ function isUnscoped(version) {
|
|
|
56
66
|
}
|
|
57
67
|
// ── 版本提取 ──
|
|
58
68
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* Returns null for URLs and git refs which should be skipped.
|
|
69
|
+
* 从常见版本说明符中提取版本号 — 支持 ^/~/>=/<=/ 前缀。
|
|
70
|
+
* @param versionSpecifier - 版本说明符字符串
|
|
71
|
+
* @returns 提取的纯版本号(如 "1.2.3"),URL/git 引用返回 null,无法解析时返回原始值
|
|
63
72
|
*/
|
|
64
73
|
function extractVersion(versionSpecifier) {
|
|
65
74
|
const v = versionSpecifier.trim();
|
|
66
|
-
//
|
|
75
|
+
// 跳过 URL 引用和 git 引用 — 这些不参与版本扫描
|
|
67
76
|
if (/^(https?:|git[:+]|github:|file:|git@|ssh:|\/)/i.test(v)) {
|
|
68
77
|
return null;
|
|
69
78
|
}
|
|
70
|
-
//
|
|
79
|
+
// 跳过 workspace/file/link 等本地协议依赖 — 这些在本地解析,不可扫描
|
|
71
80
|
if (/^(workspace|file|link|portal|npm):/i.test(v)) {
|
|
72
81
|
return null;
|
|
73
82
|
}
|
|
74
|
-
//
|
|
83
|
+
// 提取纯数字版本: 剥离前缀修饰符 ^, ~, >=, <=, >, <, =
|
|
75
84
|
const match = v.match(/^[\^~>=<\s]*([\d][\d.]*)/);
|
|
76
85
|
return match ? match[1] : v;
|
|
77
86
|
}
|
|
78
87
|
// ── 漏洞匹配 ──
|
|
79
88
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
89
|
+
* 检查指定包名和版本是否存在已知漏洞 — 遍历漏洞规则库进行匹配。
|
|
90
|
+
* @param pkgName - 包名(如 "lodash")
|
|
91
|
+
* @param version - 已安装版本号
|
|
92
|
+
* @returns 存在漏洞时返回漏洞详情,否则返回 undefined
|
|
82
93
|
*/
|
|
83
94
|
function checkVulnerability(pkgName, version) {
|
|
84
95
|
for (const entry of VULN_DB) {
|
|
85
96
|
if (pkgName === entry.package) {
|
|
86
|
-
//
|
|
97
|
+
// 已安装版本低于最低安全版本时判定为漏洞
|
|
87
98
|
if (!semverGt(version, entry.minSafe)) {
|
|
88
|
-
//
|
|
89
|
-
//
|
|
99
|
+
// 预发布版本检查: 标准化版本等于 minSafe 但原始版本含预发布后缀时,
|
|
100
|
+
// 按 semver 规范预发布版本 < 正式版本,因此仍视为漏洞
|
|
90
101
|
const normalizedVersion = version.replace(/-[\w.]+$/, "");
|
|
91
102
|
if (normalizedVersion === entry.minSafe && /-[\w.]+$/.test(version)) {
|
|
92
103
|
return {
|
|
@@ -109,6 +120,7 @@ function checkVulnerability(pkgName, version) {
|
|
|
109
120
|
}
|
|
110
121
|
return undefined;
|
|
111
122
|
}
|
|
123
|
+
/** 解析 package.json — 提取 dependencies 和 devDependencies 中的包名和版本 */
|
|
112
124
|
function parsePackageJson(content) {
|
|
113
125
|
const deps = [];
|
|
114
126
|
try {
|
|
@@ -128,10 +140,10 @@ function parsePackageJson(content) {
|
|
|
128
140
|
}
|
|
129
141
|
return deps;
|
|
130
142
|
}
|
|
143
|
+
/** 解析 pom.xml — 匹配 groupId/artifactId/version 三元组,支持多行格式 */
|
|
131
144
|
function parsePomXml(content) {
|
|
132
145
|
const deps = [];
|
|
133
|
-
//
|
|
134
|
-
// Using non-greedy match with dotAll flag for multiline content
|
|
146
|
+
// 匹配 <groupId>...<artifactId>...<version> 代码块,支持多行内容中的非贪婪匹配
|
|
135
147
|
const depPattern = /<groupId>\s*([\w.-]+)\s*<\/groupId>\s*<artifactId>\s*([\w.-]+)\s*<\/artifactId>\s*<version>\s*([\w.-]+)\s*<\/version>/g;
|
|
136
148
|
let match;
|
|
137
149
|
while ((match = depPattern.exec(content)) !== null) {
|
|
@@ -143,6 +155,7 @@ function parsePomXml(content) {
|
|
|
143
155
|
}
|
|
144
156
|
return deps;
|
|
145
157
|
}
|
|
158
|
+
/** 解析 build.gradle — 匹配 group:artifact:version 格式(如 'org.apache:log4j-core:2.14.1') */
|
|
146
159
|
function parseBuildGradle(content) {
|
|
147
160
|
const deps = [];
|
|
148
161
|
// Match group:artifact:version format, e.g. 'org.apache.logging.log4j:log4j-core:2.14.1'
|
|
@@ -158,6 +171,13 @@ function parseBuildGradle(content) {
|
|
|
158
171
|
return deps;
|
|
159
172
|
}
|
|
160
173
|
// ── 摘要生成 ──
|
|
174
|
+
/**
|
|
175
|
+
* 构建扫描结果摘要 — 统计漏洞数量和未锁定版本数量,生成中文摘要文本。
|
|
176
|
+
* @param total - 扫描的依赖总数
|
|
177
|
+
* @param vulnerabilities - 发现的漏洞列表
|
|
178
|
+
* @param unscoped - 未锁定版本列表
|
|
179
|
+
* @returns 中文格式的扫描摘要
|
|
180
|
+
*/
|
|
161
181
|
function buildSummary(total, vulnerabilities, unscoped) {
|
|
162
182
|
if (total === 0) {
|
|
163
183
|
return "未发现可解析的依赖项";
|
|
@@ -184,14 +204,11 @@ function buildSummary(total, vulnerabilities, unscoped) {
|
|
|
184
204
|
}
|
|
185
205
|
// ── 主函数 ──
|
|
186
206
|
/**
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
* -
|
|
191
|
-
*
|
|
192
|
-
* - build.gradle (Java / Gradle)
|
|
193
|
-
*
|
|
194
|
-
* Pure rule-based engine — zero AI dependencies, no external API calls.
|
|
207
|
+
* 扫描依赖文件中的已知漏洞 — 根据文件名自动选择解析器。
|
|
208
|
+
* 支持格式: package.json (Node.js)、pom.xml (Java/Maven)、build.gradle (Java/Gradle)。
|
|
209
|
+
* @param content - 依赖文件内容
|
|
210
|
+
* @param filename - 文件名(用于判断解析器类型)
|
|
211
|
+
* @returns 扫描结果,包含漏洞列表、未锁定版本和中文摘要
|
|
195
212
|
*/
|
|
196
213
|
export function scanDependencies(content, filename) {
|
|
197
214
|
const baseName = filename.split("/").pop()?.toLowerCase() ?? "";
|
|
@@ -263,7 +280,7 @@ export function scanDependencies(content, filename) {
|
|
|
263
280
|
summary: buildSummary(scannedCount, vulnerabilities, []),
|
|
264
281
|
};
|
|
265
282
|
}
|
|
266
|
-
// ──
|
|
283
|
+
// ── 不支持的文件格式,返回空结果 ──
|
|
267
284
|
return {
|
|
268
285
|
file: filename,
|
|
269
286
|
dependencies_scanned: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency_scanner.js","sourceRoot":"","sources":["../../src/engine/dependency_scanner.ts"],"names":[],"mappings":"AAEA,+BAA+B;AAE/B,MAAM,OAAO,GAKR;IACH,OAAO;IACP,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,gCAAgC,EAAE;IAC3G,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;IACrF,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzF,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC/E,UAAU;IACV,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE;IAC3F,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;IAC7E,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3E,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;IAC9E,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;IAChF,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC5E,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;IAC1E,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC7E,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;IAC9E,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/E,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;IACpF,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;CAClF,CAAC;AAEF,gBAAgB;AAEhB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,aAAa;AAEb
|
|
1
|
+
{"version":3,"file":"dependency_scanner.js","sourceRoot":"","sources":["../../src/engine/dependency_scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/evolver.d.ts
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
import type { TaskContext, FailureType, LearnResult } from "../types.js";
|
|
2
2
|
export { FailureClassifier } from "./failure_classifier.js";
|
|
3
|
+
/**
|
|
4
|
+
* 自进化引擎 — 从任务执行结果中提取经验知识,写入知识库实现持续改进。
|
|
5
|
+
*
|
|
6
|
+
* 核心流程:
|
|
7
|
+
* - 跳过 passthrough 任务
|
|
8
|
+
* - 从失败中提取决策规则(确定性失败 → 规则升级,范围不足 → 范围模式,可修复 → prompt 优化)
|
|
9
|
+
* - 从成功中提取重复模式
|
|
10
|
+
* - 基于置信度决定知识处理方式:
|
|
11
|
+
* - confidence < 0.3: 跳过(信息不足)
|
|
12
|
+
* - 0.3 <= confidence < 0.8: 暂存(等待人工审核)
|
|
13
|
+
* - confidence >= 0.8: 直接采纳
|
|
14
|
+
* - 持续同模式学习: 每重复 3 次同一模式,置信度 +0.1
|
|
15
|
+
*
|
|
16
|
+
* 机制 5: 知识防漂移自愈 — 定期对比代码库现状与 patterns 文件夹,
|
|
17
|
+
* 若 30% 以上实现偏离既定规范,主动发起"规范同步任务"。
|
|
18
|
+
*/
|
|
19
|
+
/** 漂移检测结果 */
|
|
20
|
+
export interface DriftDetectionResult {
|
|
21
|
+
/** 检测的模式总数 */
|
|
22
|
+
total_patterns: number;
|
|
23
|
+
/** 偏离规范的模式数 */
|
|
24
|
+
drifted_patterns: number;
|
|
25
|
+
/** 偏离率 (0-1) */
|
|
26
|
+
drift_ratio: number;
|
|
27
|
+
/** 是否触发同步任务(偏离率 >= 0.3) */
|
|
28
|
+
sync_required: boolean;
|
|
29
|
+
/** 偏离详情 */
|
|
30
|
+
drift_details: Array<{
|
|
31
|
+
pattern_name: string;
|
|
32
|
+
expected_rule: string;
|
|
33
|
+
detected_violation: string;
|
|
34
|
+
severity: "warning" | "critical";
|
|
35
|
+
}>;
|
|
36
|
+
/** 建议动作 */
|
|
37
|
+
recommendation: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 模式漂移检测 — 对比代码实现与知识库模式规则,检测偏离度。
|
|
41
|
+
* 使用静态规则匹配扫描代码库,不依赖 AI。
|
|
42
|
+
* @param patterns - 知识库中的模式条目
|
|
43
|
+
* @param codeFiles - 代码文件内容映射(文件路径 → 文件内容)
|
|
44
|
+
* @returns 漂移检测结果
|
|
45
|
+
*/
|
|
46
|
+
export declare function detectPatternDrift(patterns: Array<{
|
|
47
|
+
name: string;
|
|
48
|
+
body?: string;
|
|
49
|
+
}>, codeFiles: Record<string, string>): DriftDetectionResult;
|
|
50
|
+
/** 自进化输入参数 */
|
|
3
51
|
export interface EvolverInput {
|
|
4
52
|
taskContext: TaskContext;
|
|
5
53
|
result: "success" | "failure";
|
|
@@ -11,5 +59,11 @@ export interface EvolverInput {
|
|
|
11
59
|
failureType?: FailureType;
|
|
12
60
|
retryCount?: number;
|
|
13
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* 从任务执行结果中提取知识并写入知识库。
|
|
64
|
+
* @param input - 进化输入,包含任务上下文、执行结果和验证输出
|
|
65
|
+
* @param projectPath - 项目路径,用于知识文件写入
|
|
66
|
+
* @returns 学习结果,包含是否采纳、置信度、暂存路径等
|
|
67
|
+
*/
|
|
14
68
|
export declare function evolve(input: EvolverInput, projectPath: string): Promise<LearnResult>;
|
|
15
69
|
//# sourceMappingURL=evolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolver.d.ts","sourceRoot":"","sources":["../../src/engine/evolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAIzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9C,CAAC;IACF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAsB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"evolver.d.ts","sourceRoot":"","sources":["../../src/engine/evolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAIzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AAIH,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,cAAc;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW;IACX,aAAa,EAAE,KAAK,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;KAClC,CAAC,CAAC;IACH,WAAW;IACX,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,oBAAoB,CA0DtB;AA4CD,cAAc;AACd,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9C,CAAC;IACF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwE3F"}
|
package/dist/engine/evolver.js
CHANGED
|
@@ -1,9 +1,125 @@
|
|
|
1
1
|
import { scoreConfidence } from "./confidence_scorer.js";
|
|
2
2
|
import { KnowledgeWriter } from "../knowledge/writer.js";
|
|
3
3
|
export { FailureClassifier } from "./failure_classifier.js";
|
|
4
|
+
/**
|
|
5
|
+
* 模式漂移检测 — 对比代码实现与知识库模式规则,检测偏离度。
|
|
6
|
+
* 使用静态规则匹配扫描代码库,不依赖 AI。
|
|
7
|
+
* @param patterns - 知识库中的模式条目
|
|
8
|
+
* @param codeFiles - 代码文件内容映射(文件路径 → 文件内容)
|
|
9
|
+
* @returns 漂移检测结果
|
|
10
|
+
*/
|
|
11
|
+
export function detectPatternDrift(patterns, codeFiles) {
|
|
12
|
+
const driftDetails = [];
|
|
13
|
+
for (const pattern of patterns) {
|
|
14
|
+
if (!pattern.body)
|
|
15
|
+
continue;
|
|
16
|
+
// 从模式正文中提取"禁止"规则
|
|
17
|
+
const prohibitRules = extractProhibitRules(pattern.body);
|
|
18
|
+
for (const rule of prohibitRules) {
|
|
19
|
+
let violated = false;
|
|
20
|
+
let violationFile = "";
|
|
21
|
+
for (const [filePath, content] of Object.entries(codeFiles)) {
|
|
22
|
+
// 跳过测试文件和非源码文件
|
|
23
|
+
if (/\.test\.|\.spec\.|\.d\.ts/.test(filePath))
|
|
24
|
+
continue;
|
|
25
|
+
if (/node_modules|\.soloforge|dist/.test(filePath))
|
|
26
|
+
continue;
|
|
27
|
+
if (rule.pattern.test(content)) {
|
|
28
|
+
violated = true;
|
|
29
|
+
violationFile = filePath;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (violated) {
|
|
34
|
+
driftDetails.push({
|
|
35
|
+
pattern_name: pattern.name,
|
|
36
|
+
expected_rule: rule.description,
|
|
37
|
+
detected_violation: violationFile,
|
|
38
|
+
severity: rule.severity,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const totalPatterns = patterns.filter((p) => p.body).length;
|
|
44
|
+
const driftedPatterns = new Set(driftDetails.map((d) => d.pattern_name)).size;
|
|
45
|
+
const driftRatio = totalPatterns > 0 ? driftedPatterns / totalPatterns : 0;
|
|
46
|
+
const syncRequired = driftRatio >= 0.3;
|
|
47
|
+
let recommendation;
|
|
48
|
+
if (syncRequired) {
|
|
49
|
+
recommendation = `⚠ 偏离率 ${(driftRatio * 100).toFixed(0)}% 超过阈值 30%。必须发起"规范同步任务": 更新知识库规则以反映代码现状,或重构代码以符合规范`;
|
|
50
|
+
}
|
|
51
|
+
else if (driftRatio > 0) {
|
|
52
|
+
recommendation = `偏离率 ${(driftRatio * 100).toFixed(0)}%,在可接受范围内。建议关注 ${driftDetails.filter((d) => d.severity === "critical").length} 个严重偏离`;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
recommendation = "代码实现与知识库规范一致,无漂移";
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
total_patterns: totalPatterns,
|
|
59
|
+
drifted_patterns: driftedPatterns,
|
|
60
|
+
drift_ratio: driftRatio,
|
|
61
|
+
sync_required: syncRequired,
|
|
62
|
+
drift_details: driftDetails,
|
|
63
|
+
recommendation,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/** 从模式正文中提取"禁止"类规则,转为可检测的正则模式 */
|
|
67
|
+
function extractProhibitRules(body) {
|
|
68
|
+
const rules = [];
|
|
69
|
+
if (!body.includes("## 决策规则"))
|
|
70
|
+
return rules;
|
|
71
|
+
const lines = body.split("\n");
|
|
72
|
+
let inSection = false;
|
|
73
|
+
for (const line of lines) {
|
|
74
|
+
if (line.startsWith("## 决策规则")) {
|
|
75
|
+
inSection = true;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (inSection && line.startsWith("## "))
|
|
79
|
+
break;
|
|
80
|
+
if (inSection) {
|
|
81
|
+
// 提取"禁止"规则
|
|
82
|
+
const prohibitMatch = line.match(/-\s*禁止(.+)/);
|
|
83
|
+
if (prohibitMatch) {
|
|
84
|
+
const description = `禁止${prohibitMatch[1].trim()}`;
|
|
85
|
+
// 从禁止规则生成检测正则
|
|
86
|
+
const pattern = buildProhibitPattern(prohibitMatch[1]);
|
|
87
|
+
if (pattern) {
|
|
88
|
+
rules.push({ description, pattern, severity: "warning" });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return rules;
|
|
94
|
+
}
|
|
95
|
+
/** 从禁止规则描述生成检测正则 */
|
|
96
|
+
function buildProhibitPattern(ruleText) {
|
|
97
|
+
// 常见禁止模式的正则映射
|
|
98
|
+
if (/console\.log/.test(ruleText))
|
|
99
|
+
return /console\.log\s*\(/;
|
|
100
|
+
if (/eval/.test(ruleText))
|
|
101
|
+
return /\beval\s*\(/;
|
|
102
|
+
if (/innerHTML/.test(ruleText))
|
|
103
|
+
return /\.innerHTML\s*=/;
|
|
104
|
+
if (/SQL.*拼接|字符串拼接/.test(ruleText))
|
|
105
|
+
return /(SELECT|INSERT|UPDATE|DELETE).*[\+${]/;
|
|
106
|
+
if (/同步导出/.test(ruleText))
|
|
107
|
+
return /export\s*\(.*res\.write/;
|
|
108
|
+
if (/Controller.*导出|Controller.*业务/.test(ruleText))
|
|
109
|
+
return /Controller/;
|
|
110
|
+
if (/硬编码/.test(ruleText))
|
|
111
|
+
return /(?:password|secret|api[_-]?key)\s*[:=]\s*["'][^"']+["']/i;
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
4
114
|
// 跟踪重复模式学习以提升置信度(限制大小防止内存泄漏)
|
|
5
115
|
const MAX_PATTERN_TRACK_SIZE = 1000;
|
|
6
116
|
const patternLearnCount = new Map();
|
|
117
|
+
/**
|
|
118
|
+
* 从任务执行结果中提取知识并写入知识库。
|
|
119
|
+
* @param input - 进化输入,包含任务上下文、执行结果和验证输出
|
|
120
|
+
* @param projectPath - 项目路径,用于知识文件写入
|
|
121
|
+
* @returns 学习结果,包含是否采纳、置信度、暂存路径等
|
|
122
|
+
*/
|
|
7
123
|
export async function evolve(input, projectPath) {
|
|
8
124
|
const { taskContext, result, verifyOutput, failureType, retryCount } = input;
|
|
9
125
|
// 跳过 passthrough 任务的学习
|
|
@@ -25,20 +141,27 @@ export async function evolve(input, projectPath) {
|
|
|
25
141
|
hasClearRootCause: failureType !== undefined,
|
|
26
142
|
isDegraded,
|
|
27
143
|
});
|
|
28
|
-
// 持续同模式置信度提升: 每 3
|
|
144
|
+
// 持续同模式置信度提升: 每 3 次同一类型+范围的组合加 0.1,上限 1.0
|
|
29
145
|
const patternKey = `${candidate.type}:${candidate.scope.join(",")}`;
|
|
30
146
|
const count = (patternLearnCount.get(patternKey) ?? 0) + 1;
|
|
31
147
|
patternLearnCount.set(patternKey, count);
|
|
32
|
-
//
|
|
148
|
+
// 防止内存泄漏:超过上限时清理计数最低的条目(近似 LRU)
|
|
33
149
|
if (patternLearnCount.size > MAX_PATTERN_TRACK_SIZE) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
150
|
+
let minKey = null;
|
|
151
|
+
let minCount = Infinity;
|
|
152
|
+
for (const [k, v] of patternLearnCount) {
|
|
153
|
+
if (v < minCount) {
|
|
154
|
+
minCount = v;
|
|
155
|
+
minKey = k;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (minKey)
|
|
159
|
+
patternLearnCount.delete(minKey);
|
|
37
160
|
}
|
|
38
161
|
if (count > 0 && count % 3 === 0) {
|
|
39
162
|
confidence = Math.min(confidence + 0.1, 1.0);
|
|
40
163
|
}
|
|
41
|
-
//
|
|
164
|
+
// 置信度决策: < 0.3 跳过,>= 0.8 直接采纳,其余暂存等待审核
|
|
42
165
|
if (confidence < 0.3) {
|
|
43
166
|
return { task_id: taskContext.task_id, learned: false, new_knowledge: candidate, confidence, status: "skipped" };
|
|
44
167
|
}
|
|
@@ -64,6 +187,12 @@ export async function evolve(input, projectPath) {
|
|
|
64
187
|
const stagedPath = await writer.writeToStaged(entry, candidate.content);
|
|
65
188
|
return { task_id: taskContext.task_id, learned: true, new_knowledge: candidate, confidence, status: "staged", staged_path: stagedPath };
|
|
66
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* 将进化学习类型映射到知识库条目类型。
|
|
192
|
+
* rule_upgrade 和 prompt_optimization 归类为 pattern,acceptance_supplement 归类为 acceptance_template。
|
|
193
|
+
* @param t - 进化学习类型
|
|
194
|
+
* @returns 知识库条目类型
|
|
195
|
+
*/
|
|
67
196
|
function mapToKnowledgeType(t) {
|
|
68
197
|
if (t === "rule_upgrade" || t === "prompt_optimization")
|
|
69
198
|
return "pattern";
|
|
@@ -71,6 +200,13 @@ function mapToKnowledgeType(t) {
|
|
|
71
200
|
return "acceptance_template";
|
|
72
201
|
return t;
|
|
73
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* 从任务执行结果中提取知识候选。
|
|
205
|
+
* 失败时按失败类型生成不同知识: 验收遗漏 / 确定性规则升级 / 范围模式 / prompt 优化。
|
|
206
|
+
* 成功时从匹配的知识模式中提取重复模式。
|
|
207
|
+
* @param input - 进化输入
|
|
208
|
+
* @returns 知识候选对象,无法提取时返回 undefined
|
|
209
|
+
*/
|
|
74
210
|
function extractKnowledge(input) {
|
|
75
211
|
const { taskContext, result, verifyOutput, failureType } = input;
|
|
76
212
|
const scope = taskContext.classification?.affected_repos ?? ["shared"];
|
|
@@ -137,6 +273,12 @@ function extractKnowledge(input) {
|
|
|
137
273
|
}
|
|
138
274
|
return undefined;
|
|
139
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* 根据错误消息推断正确的操作建议。
|
|
278
|
+
* @param intent - 任务意图(未使用,预留参数)
|
|
279
|
+
* @param errorMsg - 错误消息
|
|
280
|
+
* @returns 正确操作描述
|
|
281
|
+
*/
|
|
140
282
|
function inferCorrectAction(intent, errorMsg) {
|
|
141
283
|
if (errorMsg.includes("编译") || errorMsg.includes("compile"))
|
|
142
284
|
return "确保编译通过";
|
|
@@ -146,6 +288,12 @@ function inferCorrectAction(intent, errorMsg) {
|
|
|
146
288
|
return "检查权限配置";
|
|
147
289
|
return "避免相同错误重试";
|
|
148
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* 根据错误消息推断缺失的修改范围。
|
|
293
|
+
* @param intent - 任务意图(未使用,预留参数)
|
|
294
|
+
* @param errorMsg - 错误消息
|
|
295
|
+
* @returns 缺失范围描述
|
|
296
|
+
*/
|
|
149
297
|
function inferMissingScope(intent, errorMsg) {
|
|
150
298
|
if (errorMsg.includes("import") || errorMsg.includes("引用"))
|
|
151
299
|
return "被引用的相关模块";
|
|
@@ -153,6 +301,11 @@ function inferMissingScope(intent, errorMsg) {
|
|
|
153
301
|
return "相关配置文件";
|
|
154
302
|
return "关联文件";
|
|
155
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* 根据错误消息推断错误类型关键词。
|
|
306
|
+
* @param errorMsg - 错误消息
|
|
307
|
+
* @returns 错误类型关键词,如 "类型" / "引用" / "语法" / "空值"
|
|
308
|
+
*/
|
|
156
309
|
function inferErrorPattern(errorMsg) {
|
|
157
310
|
if (errorMsg.includes("TypeError") || errorMsg.includes("类型错误"))
|
|
158
311
|
return "类型";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolver.js","sourceRoot":"","sources":["../../src/engine/evolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"evolver.js","sourceRoot":"","sources":["../../src/engine/evolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { ProjectConfig, ClassifyResult } from "../types.js";
|
|
2
|
+
import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
|
|
3
|
+
/**
|
|
4
|
+
* 自主技术选型与方案证伪引擎 — 当人类陷入"不知道用什么"时,
|
|
5
|
+
* 以首席架构师身份主导决策,禁止"复读机"或"模糊脑暴"。
|
|
6
|
+
*
|
|
7
|
+
* 核心能力:
|
|
8
|
+
* 1. 行业基准检索: 从知识库 + 内置行业方案库中检索 3 个标准方案
|
|
9
|
+
* 2. 选型权重矩阵: [开发成本/运行性能/扩展上限/维护复杂度] 四维对比
|
|
10
|
+
* 3. 最优解宣誓: 基于项目上下文给出架构师推荐 + 规避致命缺点说明
|
|
11
|
+
* 4. 方案证伪循环: 逻辑自毁测试 + 方案边界声明
|
|
12
|
+
* 5. A/B 决策诱导: 禁止开放式提问,输出两个精确选项
|
|
13
|
+
*/
|
|
14
|
+
/** 技术方案条目 */
|
|
15
|
+
export interface TechSolution {
|
|
16
|
+
/** 方案名称 */
|
|
17
|
+
name: string;
|
|
18
|
+
/** 方案来源: industry=行业标准, knowledge=知识库, heuristic=启发式 */
|
|
19
|
+
source: "industry" | "knowledge" | "heuristic";
|
|
20
|
+
/** 一句话描述 */
|
|
21
|
+
description: string;
|
|
22
|
+
/** 四维评分 (1-5, 5=最优) */
|
|
23
|
+
ratings: SolutionRatings;
|
|
24
|
+
/** 致命缺点 */
|
|
25
|
+
fatal_weakness: string;
|
|
26
|
+
/** 适用场景 */
|
|
27
|
+
best_for: string;
|
|
28
|
+
/** 不适用场景 */
|
|
29
|
+
worst_for: string;
|
|
30
|
+
}
|
|
31
|
+
/** 四维评分 */
|
|
32
|
+
export interface SolutionRatings {
|
|
33
|
+
/** 开发成本 (5=低成本, 1=高成本) */
|
|
34
|
+
dev_cost: number;
|
|
35
|
+
/** 运行性能 (5=高性能, 1=低性能) */
|
|
36
|
+
performance: number;
|
|
37
|
+
/** 扩展上限 (5=高扩展, 1=低扩展) */
|
|
38
|
+
scalability: number;
|
|
39
|
+
/** 维护复杂度 (5=易维护, 1=难维护) */
|
|
40
|
+
maintainability: number;
|
|
41
|
+
}
|
|
42
|
+
/** 证伪结果 */
|
|
43
|
+
export interface FalsificationResult {
|
|
44
|
+
/** 方案名称 */
|
|
45
|
+
solution_name: string;
|
|
46
|
+
/** 自毁场景列表 */
|
|
47
|
+
self_destruct_scenarios: string[];
|
|
48
|
+
/** 方案边界声明 */
|
|
49
|
+
boundary_declaration: string;
|
|
50
|
+
/** 天花板描述 */
|
|
51
|
+
ceiling_description: string;
|
|
52
|
+
}
|
|
53
|
+
/** A/B 决策选项 */
|
|
54
|
+
export interface DecisionOption {
|
|
55
|
+
/** 标签 (方案 A/B) */
|
|
56
|
+
label: string;
|
|
57
|
+
/** 方案名称 */
|
|
58
|
+
solution_name: string;
|
|
59
|
+
/** 理由 */
|
|
60
|
+
reason: string;
|
|
61
|
+
/** 适合场景 */
|
|
62
|
+
suitable_for: string;
|
|
63
|
+
}
|
|
64
|
+
/** 探索输出 */
|
|
65
|
+
export interface ExplorationResult {
|
|
66
|
+
/** 探索领域 */
|
|
67
|
+
domain: string;
|
|
68
|
+
/** 行业基准方案列表 (≥3) */
|
|
69
|
+
benchmarks: TechSolution[];
|
|
70
|
+
/** 选型权重矩阵 */
|
|
71
|
+
comparison_matrix: ComparisonMatrix;
|
|
72
|
+
/** 最优解宣誓 */
|
|
73
|
+
architect_recommendation: ArchitectRecommendation;
|
|
74
|
+
/** 证伪报告 */
|
|
75
|
+
falsification_report: FalsificationResult[];
|
|
76
|
+
/** A/B 决策选项 */
|
|
77
|
+
decision_options: [DecisionOption, DecisionOption];
|
|
78
|
+
/** 方案边界声明汇总 */
|
|
79
|
+
boundary_summary: string;
|
|
80
|
+
}
|
|
81
|
+
/** 对比矩阵 */
|
|
82
|
+
export interface ComparisonMatrix {
|
|
83
|
+
/** 维度列表 */
|
|
84
|
+
dimensions: string[];
|
|
85
|
+
/** 各方案在各维度的得分 */
|
|
86
|
+
rows: Array<{
|
|
87
|
+
solution_name: string;
|
|
88
|
+
scores: number[];
|
|
89
|
+
total: number;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
/** 架构师推荐 */
|
|
93
|
+
export interface ArchitectRecommendation {
|
|
94
|
+
/** 推荐方案 */
|
|
95
|
+
recommended: string;
|
|
96
|
+
/** 推荐理由 */
|
|
97
|
+
reason: string;
|
|
98
|
+
/** 如何规避其他方案的致命缺点 */
|
|
99
|
+
fatal_weakness_mitigation: string;
|
|
100
|
+
/** 前提条件(推荐方案生效的前提) */
|
|
101
|
+
prerequisites: string[];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 执行自主技术选型与方案证伪。
|
|
105
|
+
* @param params - 输入参数
|
|
106
|
+
* @returns 探索结果,包含行业基准、对比矩阵、推荐方案、证伪报告和 A/B 决策
|
|
107
|
+
*/
|
|
108
|
+
export declare function exploreSolutions(params: {
|
|
109
|
+
domain_query: string;
|
|
110
|
+
projectConfig: ProjectConfig;
|
|
111
|
+
classification?: ClassifyResult;
|
|
112
|
+
knowledgeIndex?: KnowledgeIndexManager;
|
|
113
|
+
}): ExplorationResult;
|
|
114
|
+
//# sourceMappingURL=exploration.d.ts.map
|