soloforge 1.1.44 → 1.1.46
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 +3 -3
- package/dist/context/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
- package/dist/context/contracts/lifecycle_knowledge_contract.js +2 -2
- package/dist/context/contracts/lifecycle_knowledge_contract.js.map +1 -1
- package/dist/core/task_context/manager.d.ts +0 -8
- package/dist/core/task_context/manager.d.ts.map +1 -1
- package/dist/core/task_context/manager.js +1 -19
- package/dist/core/task_context/manager.js.map +1 -1
- package/dist/core/task_context/state_fact_classifier.d.ts +0 -8
- package/dist/core/task_context/state_fact_classifier.d.ts.map +1 -1
- package/dist/core/task_context/state_fact_classifier.js +0 -36
- package/dist/core/task_context/state_fact_classifier.js.map +1 -1
- package/dist/domain/contracts/design_artifact_pack.d.ts +0 -1
- package/dist/domain/contracts/design_artifact_pack.d.ts.map +1 -1
- package/dist/domain/contracts/design_artifact_pack.js +1 -4
- package/dist/domain/contracts/design_artifact_pack.js.map +1 -1
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/registry.d.ts +2 -2
- package/dist/domain/registry.d.ts.map +1 -1
- package/dist/domain/types.d.ts +1 -12
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js +3 -0
- package/dist/domain/types.js.map +1 -1
- package/dist/gate/contracts/capability_registry.d.ts.map +1 -1
- package/dist/gate/contracts/capability_registry.js +0 -26
- package/dist/gate/contracts/capability_registry.js.map +1 -1
- package/dist/gate/contracts/control_plane_contract.d.ts +1 -1
- package/dist/gate/contracts/control_plane_contract.d.ts.map +1 -1
- package/dist/gate/contracts/control_plane_contract.js +1 -10
- package/dist/gate/contracts/control_plane_contract.js.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.d.ts +1 -0
- package/dist/gate/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
- package/dist/gate/executors/executors_annotation.d.ts.map +1 -1
- package/dist/gate/executors/executors_annotation.js +8 -1
- package/dist/gate/executors/executors_annotation.js.map +1 -1
- package/dist/gate/executors/executors_artifact.d.ts +1 -1
- package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
- package/dist/gate/executors/executors_artifact.js +18 -7
- package/dist/gate/executors/executors_artifact.js.map +1 -1
- package/dist/gate/executors/executors_deploy.d.ts.map +1 -1
- package/dist/gate/executors/executors_deploy.js +3 -2
- package/dist/gate/executors/executors_deploy.js.map +1 -1
- package/dist/gate/executors/executors_openapi_sync.d.ts.map +1 -1
- package/dist/gate/executors/executors_openapi_sync.js +15 -2
- package/dist/gate/executors/executors_openapi_sync.js.map +1 -1
- package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
- package/dist/gate/executors/executors_regex_scan.js +9 -0
- package/dist/gate/executors/executors_regex_scan.js.map +1 -1
- package/dist/gate/executors/executors_trace.d.ts.map +1 -1
- package/dist/gate/executors/executors_trace.js +12 -2
- package/dist/gate/executors/executors_trace.js.map +1 -1
- package/dist/gate/index.d.ts +0 -2
- package/dist/gate/index.d.ts.map +1 -1
- package/dist/gate/index.js +0 -1
- package/dist/gate/index.js.map +1 -1
- package/dist/server/tools/index.d.ts.map +1 -1
- package/dist/server/tools/index.js +1 -3
- package/dist/server/tools/index.js.map +1 -1
- package/dist/server/tools/lazy_loaders.d.ts +0 -23
- package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
- package/dist/server/tools/lazy_loaders.js +2 -33
- package/dist/server/tools/lazy_loaders.js.map +1 -1
- package/dist/server/tools/middleware.d.ts +2 -5
- package/dist/server/tools/middleware.d.ts.map +1 -1
- package/dist/server/tools/middleware.js +3 -33
- package/dist/server/tools/middleware.js.map +1 -1
- package/dist/server/tools/sf_task.d.ts.map +1 -1
- package/dist/server/tools/sf_task.js +9 -8
- package/dist/server/tools/sf_task.js.map +1 -1
- package/dist/server/tools/types.d.ts +0 -2
- package/dist/server/tools/types.d.ts.map +1 -1
- package/dist/types/pipeline_types.d.ts +1 -9
- package/dist/types/pipeline_types.d.ts.map +1 -1
- package/dist/verify/audit/verifier.d.ts.map +1 -1
- package/dist/verify/audit/verifier.js +0 -33
- package/dist/verify/audit/verifier.js.map +1 -1
- package/dist/verify/index.d.ts +1 -4
- package/dist/verify/index.d.ts.map +1 -1
- package/dist/verify/index.js +0 -3
- package/dist/verify/index.js.map +1 -1
- package/dist/verify/types.d.ts +0 -21
- package/dist/verify/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +7 -21
- package/dist/context/engine/dependency_scanner.d.ts +0 -23
- package/dist/context/engine/dependency_scanner.d.ts.map +0 -1
- package/dist/context/engine/dependency_scanner.js +0 -309
- package/dist/context/engine/dependency_scanner.js.map +0 -1
- package/dist/context/engine/exploration.d.ts +0 -194
- package/dist/context/engine/exploration.d.ts.map +0 -1
- package/dist/context/engine/exploration.js +0 -712
- package/dist/context/engine/exploration.js.map +0 -1
- package/dist/context/knowledge/knowledge_acceptance_registry.d.ts +0 -42
- package/dist/context/knowledge/knowledge_acceptance_registry.d.ts.map +0 -1
- package/dist/context/knowledge/knowledge_acceptance_registry.js +0 -249
- package/dist/context/knowledge/knowledge_acceptance_registry.js.map +0 -1
- package/dist/context/knowledge/knowledge_scenario_registry.d.ts +0 -26
- package/dist/context/knowledge/knowledge_scenario_registry.d.ts.map +0 -1
- package/dist/context/knowledge/knowledge_scenario_registry.js +0 -267
- package/dist/context/knowledge/knowledge_scenario_registry.js.map +0 -1
- package/dist/context/knowledge/knowledge_sovereignty.d.ts +0 -65
- package/dist/context/knowledge/knowledge_sovereignty.d.ts.map +0 -1
- package/dist/context/knowledge/knowledge_sovereignty.js +0 -199
- package/dist/context/knowledge/knowledge_sovereignty.js.map +0 -1
- package/dist/context/team_awareness.d.ts +0 -42
- package/dist/context/team_awareness.d.ts.map +0 -1
- package/dist/context/team_awareness.js +0 -154
- package/dist/context/team_awareness.js.map +0 -1
- package/dist/context/templates/template_asset_visibility.d.ts +0 -116
- package/dist/context/templates/template_asset_visibility.d.ts.map +0 -1
- package/dist/context/templates/template_asset_visibility.js +0 -310
- package/dist/context/templates/template_asset_visibility.js.map +0 -1
- package/dist/gate/conflict_gate.d.ts +0 -53
- package/dist/gate/conflict_gate.d.ts.map +0 -1
- package/dist/gate/conflict_gate.js +0 -96
- package/dist/gate/conflict_gate.js.map +0 -1
- package/dist/gate/contracts/capability_action_advisor.d.ts +0 -34
- package/dist/gate/contracts/capability_action_advisor.d.ts.map +0 -1
- package/dist/gate/contracts/capability_action_advisor.js +0 -165
- package/dist/gate/contracts/capability_action_advisor.js.map +0 -1
- package/dist/gate/contracts/capability_state_store.d.ts +0 -121
- package/dist/gate/contracts/capability_state_store.d.ts.map +0 -1
- package/dist/gate/contracts/capability_state_store.js +0 -188
- package/dist/gate/contracts/capability_state_store.js.map +0 -1
- package/dist/gate/contracts/contract_guard.d.ts +0 -50
- package/dist/gate/contracts/contract_guard.d.ts.map +0 -1
- package/dist/gate/contracts/contract_guard.js +0 -611
- package/dist/gate/contracts/contract_guard.js.map +0 -1
- package/dist/gate/contracts/escape_report.d.ts +0 -103
- package/dist/gate/contracts/escape_report.d.ts.map +0 -1
- package/dist/gate/contracts/escape_report.js +0 -145
- package/dist/gate/contracts/escape_report.js.map +0 -1
- package/dist/gate/feasibility_checker.d.ts +0 -27
- package/dist/gate/feasibility_checker.d.ts.map +0 -1
- package/dist/gate/feasibility_checker.js +0 -114
- package/dist/gate/feasibility_checker.js.map +0 -1
- package/dist/gate/migration_guard.d.ts +0 -22
- package/dist/gate/migration_guard.d.ts.map +0 -1
- package/dist/gate/migration_guard.js +0 -277
- package/dist/gate/migration_guard.js.map +0 -1
- package/dist/gate/scope_lease.d.ts +0 -94
- package/dist/gate/scope_lease.d.ts.map +0 -1
- package/dist/gate/scope_lease.js +0 -180
- package/dist/gate/scope_lease.js.map +0 -1
- package/dist/git/git_deps.d.ts +0 -85
- package/dist/git/git_deps.d.ts.map +0 -1
- package/dist/git/git_deps.js +0 -22
- package/dist/git/git_deps.js.map +0 -1
- package/dist/git/operations.d.ts +0 -173
- package/dist/git/operations.d.ts.map +0 -1
- package/dist/git/operations.js +0 -350
- package/dist/git/operations.js.map +0 -1
- package/dist/server/tools/gate_engine.d.ts +0 -17
- package/dist/server/tools/gate_engine.d.ts.map +0 -1
- package/dist/server/tools/gate_engine.js +0 -17
- package/dist/server/tools/gate_engine.js.map +0 -1
- package/dist/server/tools/middleware/budget_check.d.ts +0 -35
- package/dist/server/tools/middleware/budget_check.d.ts.map +0 -1
- package/dist/server/tools/middleware/budget_check.js +0 -69
- package/dist/server/tools/middleware/budget_check.js.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts +0 -16
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.js +0 -306
- package/dist/shared/contracts/contract_registry/builtin_contracts_core.js.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts +0 -16
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js +0 -304
- package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts +0 -16
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js +0 -434
- package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js.map +0 -1
- package/dist/shared/contracts/contract_registry/index.d.ts +0 -8
- package/dist/shared/contracts/contract_registry/index.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/index.js +0 -7
- package/dist/shared/contracts/contract_registry/index.js.map +0 -1
- package/dist/shared/contracts/contract_registry/registry.d.ts +0 -62
- package/dist/shared/contracts/contract_registry/registry.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/registry.js +0 -191
- package/dist/shared/contracts/contract_registry/registry.js.map +0 -1
- package/dist/shared/contracts/contract_registry/registry_internal.d.ts +0 -19
- package/dist/shared/contracts/contract_registry/registry_internal.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/registry_internal.js +0 -54
- package/dist/shared/contracts/contract_registry/registry_internal.js.map +0 -1
- package/dist/shared/contracts/contract_registry/types.d.ts +0 -47
- package/dist/shared/contracts/contract_registry/types.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/types.js +0 -5
- package/dist/shared/contracts/contract_registry/types.js.map +0 -1
- package/dist/shared/contracts/contract_registry/validation.d.ts +0 -25
- package/dist/shared/contracts/contract_registry/validation.d.ts.map +0 -1
- package/dist/shared/contracts/contract_registry/validation.js +0 -363
- package/dist/shared/contracts/contract_registry/validation.js.map +0 -1
- package/dist/shared/llm_gateway.d.ts +0 -186
- package/dist/shared/llm_gateway.d.ts.map +0 -1
- package/dist/shared/llm_gateway.js +0 -393
- package/dist/shared/llm_gateway.js.map +0 -1
- package/dist/verify/audit/audit_sampler.d.ts +0 -29
- package/dist/verify/audit/audit_sampler.d.ts.map +0 -1
- package/dist/verify/audit/audit_sampler.js +0 -42
- package/dist/verify/audit/audit_sampler.js.map +0 -1
- package/dist/verify/audit/debt_reporter.d.ts +0 -22
- package/dist/verify/audit/debt_reporter.d.ts.map +0 -1
- package/dist/verify/audit/debt_reporter.js +0 -107
- package/dist/verify/audit/debt_reporter.js.map +0 -1
- package/dist/verify/audit/debugger.d.ts +0 -25
- package/dist/verify/audit/debugger.d.ts.map +0 -1
- package/dist/verify/audit/debugger.js +0 -429
- package/dist/verify/audit/debugger.js.map +0 -1
- package/dist/verify/audit/degradation.d.ts +0 -62
- package/dist/verify/audit/degradation.d.ts.map +0 -1
- package/dist/verify/audit/degradation.js +0 -78
- package/dist/verify/audit/degradation.js.map +0 -1
- package/dist/verify/audit/developer_sovereignty.d.ts +0 -29
- package/dist/verify/audit/developer_sovereignty.d.ts.map +0 -1
- package/dist/verify/audit/developer_sovereignty.js +0 -137
- package/dist/verify/audit/developer_sovereignty.js.map +0 -1
- package/dist/verify/audit/failure_report.d.ts +0 -76
- package/dist/verify/audit/failure_report.d.ts.map +0 -1
- package/dist/verify/audit/failure_report.js +0 -145
- package/dist/verify/audit/failure_report.js.map +0 -1
- package/dist/verify/audit/governance_report.d.ts +0 -110
- package/dist/verify/audit/governance_report.d.ts.map +0 -1
- package/dist/verify/audit/governance_report.js +0 -194
- package/dist/verify/audit/governance_report.js.map +0 -1
- package/dist/verify/audit/mutation_audit.d.ts +0 -40
- package/dist/verify/audit/mutation_audit.d.ts.map +0 -1
- package/dist/verify/audit/mutation_audit.js +0 -154
- package/dist/verify/audit/mutation_audit.js.map +0 -1
- package/dist/verify/audit/risk_sampler.d.ts +0 -44
- package/dist/verify/audit/risk_sampler.d.ts.map +0 -1
- package/dist/verify/audit/risk_sampler.js +0 -80
- package/dist/verify/audit/risk_sampler.js.map +0 -1
- package/dist/verify/audit/runtime_safety.d.ts +0 -89
- package/dist/verify/audit/runtime_safety.d.ts.map +0 -1
- package/dist/verify/audit/runtime_safety.js +0 -209
- package/dist/verify/audit/runtime_safety.js.map +0 -1
- package/dist/verify/audit/semantic_evidence.d.ts +0 -36
- package/dist/verify/audit/semantic_evidence.d.ts.map +0 -1
- package/dist/verify/audit/semantic_evidence.js +0 -90
- package/dist/verify/audit/semantic_evidence.js.map +0 -1
- package/dist/verify/audit/test_generator.d.ts +0 -23
- package/dist/verify/audit/test_generator.d.ts.map +0 -1
- package/dist/verify/audit/test_generator.js +0 -278
- package/dist/verify/audit/test_generator.js.map +0 -1
- package/dist/verify/audit/test_quality.d.ts +0 -49
- package/dist/verify/audit/test_quality.d.ts.map +0 -1
- package/dist/verify/audit/test_quality.js +0 -684
- package/dist/verify/audit/test_quality.js.map +0 -1
- package/dist/verify/change_coordinator.d.ts +0 -45
- package/dist/verify/change_coordinator.d.ts.map +0 -1
- package/dist/verify/change_coordinator.js +0 -168
- package/dist/verify/change_coordinator.js.map +0 -1
- package/dist/verify/contracts/decision_contract.d.ts +0 -51
- package/dist/verify/contracts/decision_contract.d.ts.map +0 -1
- package/dist/verify/contracts/decision_contract.js +0 -70
- package/dist/verify/contracts/decision_contract.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js +0 -428
- package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js +0 -429
- package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js +0 -194
- package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts +0 -17
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js +0 -365
- package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/index.d.ts +0 -19
- package/dist/verify/contracts/mechanism_contract_registry/index.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/index.js +0 -21
- package/dist/verify/contracts/mechanism_contract_registry/index.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/types.d.ts +0 -33
- package/dist/verify/contracts/mechanism_contract_registry/types.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/types.js +0 -5
- package/dist/verify/contracts/mechanism_contract_registry/types.js.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts +0 -38
- package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts.map +0 -1
- package/dist/verify/contracts/mechanism_contract_registry/validation.js +0 -136
- package/dist/verify/contracts/mechanism_contract_registry/validation.js.map +0 -1
- package/templates/shared/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +0 -54
- package/templates/shared//346/265/201/345/274/217/345/277/203/350/267/263.md +0 -64
|
@@ -21,41 +21,27 @@ extra:
|
|
|
21
21
|
|
|
22
22
|
## 决策规则
|
|
23
23
|
|
|
24
|
-
- LLM Gateway Token 全局预算上限 Budget_Total = 100000(advisory,不 hard block)
|
|
25
|
-
- LLM Gateway 单任务预算上限 Task_Budget = 30000(advisory,预算耗尽返回 warning 不阻断)
|
|
26
|
-
- H1 handler 返回 h1_advisory warning,任务仍继续进入 executing
|
|
27
|
-
- 熔断触发比 Circuit_Breaker_Ratio = 0.9,超过即 advisory 告警并建议降级模型
|
|
28
|
-
- 重型操作分级 tier=heavy 自动启动流式心跳(advisory)
|
|
29
|
-
- 心跳间隔 Heartbeat_Interval = 5000 毫秒
|
|
30
24
|
- 控制流操作(classify/scope_resolve/drift_detect 等)走本地,不消耗 Token
|
|
31
|
-
- 决策流操作(intent_refinement/solution_brainstorm/code_generation
|
|
32
|
-
-
|
|
33
|
-
- 信心门限 Confidence_Threshold = 0.95,低于此值触发头脑风暴流程补充
|
|
25
|
+
- 决策流操作(intent_refinement/solution_brainstorm/code_generation 等)由客户端 AI 执行(SoloForge 引擎本身不调 LLM)
|
|
26
|
+
- 信心门限 Confidence_Threshold = 0.95,低于此值禁止直接输出执行代码,必须触发头脑风暴流程(三轨方案)展示后再执行
|
|
34
27
|
|
|
35
28
|
## 验收项
|
|
36
29
|
|
|
37
|
-
- [AC-01]
|
|
38
|
-
- [AC-02] 预算超限返回 advisory warning,不阻断任务
|
|
39
|
-
- [AC-03] 熔断后 AI 操作建议降级模型(advisory)
|
|
40
|
-
- [AC-04] 心跳在重型操作期间每 Heartbeat_Interval 毫秒输出进度
|
|
41
|
-
- [AC-05] 每次请求返回 remaining_budget 和 remaining_task_budget
|
|
30
|
+
- [AC-01] 信心门限由 gate/cep_assessment 独立实现(requiresBrainstorm / checkBrainstormGate),低置信度强制走头脑风暴流程
|
|
42
31
|
|
|
43
32
|
## 何时使用
|
|
44
33
|
|
|
45
|
-
|
|
34
|
+
信心门限:AI 决策置信度低于阈值时,禁止直接输出执行代码,必须先走头脑风暴流程展示多轨方案。
|
|
46
35
|
|
|
47
36
|
## 是否 hard block
|
|
48
37
|
|
|
49
|
-
|
|
38
|
+
信心低于阈值时禁止直接执行(强制走头脑风暴流程),但不阻断整个任务。
|
|
50
39
|
|
|
51
40
|
## 证据要求
|
|
52
41
|
|
|
53
|
-
-
|
|
54
|
-
- heartbeat 测试通过
|
|
55
|
-
-
|
|
42
|
+
- cep_assessment 头脑风暴门禁测试通过
|
|
56
43
|
|
|
57
44
|
## 人工确认/降级边界
|
|
58
45
|
|
|
59
46
|
- 此能力可被开发者决策覆盖
|
|
60
|
-
-
|
|
61
|
-
- 降级/禁用需经 治理运行时 + 人工确认
|
|
47
|
+
- 历史记录:LLM Token 预算网关(LLMGateway,含预算/熔断/heartbeat/capability CAP-006)于 2026-06 移除——原因:影子记账不准、文案误导产出收缩(如 api_specification 被压缩);真预算管控交客户端 AI 侧
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dependency Scanner — 模块模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:scanDependencies 等 模块职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:上层模块按需调用
|
|
9
|
-
* 调用谁:index、logger、helpers
|
|
10
|
-
*
|
|
11
|
-
* 数据流:输入 → scanDependencies 处理 → 输出
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import type { DependencyScanResult } from "../../types/index.js";
|
|
15
|
-
/**
|
|
16
|
-
* 扫描依赖文件中的已知漏洞 — 根据文件名自动选择解析器。
|
|
17
|
-
* 支持格式: package.json (Node.js)、pom.xml (Java/Maven)、build.gradle (Java/Gradle)。
|
|
18
|
-
* @param content - 依赖文件内容
|
|
19
|
-
* @param filename - 文件名(用于判断解析器类型)
|
|
20
|
-
* @returns 扫描结果,包含漏洞列表、未锁定版本和中文摘要
|
|
21
|
-
*/
|
|
22
|
-
export declare function scanDependencies(content: string, filename: string): DependencyScanResult;
|
|
23
|
-
//# sourceMappingURL=dependency_scanner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency_scanner.d.ts","sourceRoot":"","sources":["../../../src/context/engine/dependency_scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAqB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAuQpF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CA+FxF"}
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dependency Scanner — 模块模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:scanDependencies 等 模块职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:上层模块按需调用
|
|
9
|
-
* 调用谁:index、logger、helpers
|
|
10
|
-
*
|
|
11
|
-
* 数据流:输入 → scanDependencies 处理 → 输出
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import { debug } from "../../shared/logger.js";
|
|
15
|
-
import { safeJsonParse } from "../../shared/helpers.js";
|
|
16
|
-
/**
|
|
17
|
-
* 依赖漏洞扫描器 — 解析 package.json/pom.xml/build.gradle,基于内置漏洞规则库
|
|
18
|
-
* 检测已知漏洞和未锁定版本。纯规则驱动,零 AI 依赖,不调用外部 API。
|
|
19
|
-
*/
|
|
20
|
-
/** 内置漏洞规则库: 各语言生态的已知高风险依赖版本(包名 → 最低安全版本 → 漏洞描述) */
|
|
21
|
-
// ── 漏洞数据库(硬编码规则库,零 AI 依赖) ──
|
|
22
|
-
const VULN_DB = [
|
|
23
|
-
// Java 生态
|
|
24
|
-
{ package: "log4j-core", minSafe: "2.17.0", severity: "critical", issue: "Log4Shell RCE (CVE-2021-44228)" },
|
|
25
|
-
{ package: "fastjson", minSafe: "1.2.83", severity: "critical", issue: "反序列化远程代码执行" },
|
|
26
|
-
{ package: "jackson-databind", minSafe: "2.13.0", severity: "critical", issue: "反序列化漏洞" },
|
|
27
|
-
{ package: "shiro-core", minSafe: "1.10.0", severity: "high", issue: "认证绕过漏洞" },
|
|
28
|
-
// Node.js 生态
|
|
29
|
-
{ package: "lodash", minSafe: "4.17.21", severity: "high", issue: "原型污染 (CVE-2021-23337)" },
|
|
30
|
-
{ package: "express", minSafe: "4.18.0", severity: "medium", issue: "开放重定向" },
|
|
31
|
-
{ package: "axios", minSafe: "0.21.1", severity: "high", issue: "SSRF 漏洞" },
|
|
32
|
-
{ package: "node-fetch", minSafe: "2.6.7", severity: "medium", issue: "信息泄露" },
|
|
33
|
-
{ package: "jsonwebtoken", minSafe: "9.0.0", severity: "high", issue: "密钥验证绕过" },
|
|
34
|
-
{ package: "bcrypt", minSafe: "5.0.0", severity: "medium", issue: "轮次限制不足" },
|
|
35
|
-
{ package: "multer", minSafe: "1.4.4", severity: "medium", issue: "内存耗尽" },
|
|
36
|
-
{ package: "dompurify", minSafe: "2.3.3", severity: "high", issue: "XSS 绕过" },
|
|
37
|
-
{ package: "moment", minSafe: "2.29.4", severity: "low", issue: "ReDoS 拒绝服务" },
|
|
38
|
-
{ package: "yargs-parser", minSafe: "18.1.2", severity: "high", issue: "原型污染" },
|
|
39
|
-
{ package: "ua-parser-js", minSafe: "0.7.31", severity: "critical", issue: "供应链攻击" },
|
|
40
|
-
{ package: "event-source", minSafe: "2.0.1", severity: "high", issue: "CRLF 注入" },
|
|
41
|
-
];
|
|
42
|
-
/** 未锁定版本的正则匹配模式 — 匹配 "*"、"x"、"X" 或空字符串等无精确版本号的情况 */
|
|
43
|
-
// ── 未锁定版本标识 ──
|
|
44
|
-
const UNSCOPED_PATTERN = /^\s*[*xX]?\s*$/;
|
|
45
|
-
// ── 版本比较 ──
|
|
46
|
-
/**
|
|
47
|
-
* 比较两个 semver 风格的版本号,判断 a 是否大于 b。
|
|
48
|
-
* - 按点号分隔,逐段数值比较
|
|
49
|
-
* - 段数不足时以 0 补齐
|
|
50
|
-
* - 预发布后缀(如 -beta.1、-rc.2)在比较前被剥离
|
|
51
|
-
* @param a - 版本号 a
|
|
52
|
-
* @param b - 版本号 b
|
|
53
|
-
* @returns 当 a > b 时返回 true
|
|
54
|
-
*/
|
|
55
|
-
function semverGt(a, b) {
|
|
56
|
-
const normalize = (v) => v.replace(/-[\w.]+$/, "").split(".").map((seg) => {
|
|
57
|
-
const n = parseInt(seg, 10);
|
|
58
|
-
return Number.isNaN(n) ? 0 : n;
|
|
59
|
-
});
|
|
60
|
-
const segsA = normalize(a);
|
|
61
|
-
const segsB = normalize(b);
|
|
62
|
-
const maxLen = Math.max(segsA.length, segsB.length);
|
|
63
|
-
for (let i = 0; i < maxLen; i++) {
|
|
64
|
-
const pa = segsA[i] ?? 0;
|
|
65
|
-
const pb = segsB[i] ?? 0;
|
|
66
|
-
if (pa > pb)
|
|
67
|
-
return true;
|
|
68
|
-
if (pa < pb)
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* 检查版本字符串是否为未锁定版本(如 "*"、"latest"、"x"、空字符串)。
|
|
75
|
-
* @param version - 版本字符串
|
|
76
|
-
* @returns 未锁定时返回 true
|
|
77
|
-
*/
|
|
78
|
-
function isUnscoped(version) {
|
|
79
|
-
const trimmed = version.trim().toLowerCase();
|
|
80
|
-
return trimmed === "" || trimmed === "latest" || UNSCOPED_PATTERN.test(trimmed);
|
|
81
|
-
}
|
|
82
|
-
// ── 版本提取 ──
|
|
83
|
-
/**
|
|
84
|
-
* 从常见版本说明符中提取版本号 — 支持 ^/~/>=/<=/ 前缀。
|
|
85
|
-
* @param versionSpecifier - 版本说明符字符串
|
|
86
|
-
* @returns 提取的纯版本号(如 "1.2.3"),URL/git 引用返回 null,无法解析时返回原始值
|
|
87
|
-
*/
|
|
88
|
-
function extractVersion(versionSpecifier) {
|
|
89
|
-
const v = versionSpecifier.trim();
|
|
90
|
-
// 跳过 URL 引用和 git 引用 — 这些不参与版本扫描
|
|
91
|
-
if (/^(https?:|git[:+]|github:|file:|git@|ssh:|\/)/i.test(v)) {
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
// 跳过 workspace/file/link 等本地协议依赖 — 这些在本地解析,不可扫描
|
|
95
|
-
if (/^(workspace|file|link|portal|npm):/i.test(v)) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
// 提取纯数字版本: 剥离前缀修饰符 ^, ~, >=, <=, >, <, =
|
|
99
|
-
const match = v.match(/^[\^~>=<\s]*([\d][\d.]*)/);
|
|
100
|
-
return match ? match[1] : v;
|
|
101
|
-
}
|
|
102
|
-
// ── 漏洞匹配 ──
|
|
103
|
-
/**
|
|
104
|
-
* 检查指定包名和版本是否存在已知漏洞 — 遍历漏洞规则库进行匹配。
|
|
105
|
-
* @param pkgName - 包名(如 "lodash")
|
|
106
|
-
* @param version - 已安装版本号
|
|
107
|
-
* @returns 存在漏洞时返回漏洞详情,否则返回 undefined
|
|
108
|
-
*/
|
|
109
|
-
function checkVulnerability(pkgName, version) {
|
|
110
|
-
for (const entry of VULN_DB) {
|
|
111
|
-
if (pkgName === entry.package) {
|
|
112
|
-
// 已安装版本低于最低安全版本时判定为漏洞
|
|
113
|
-
if (!semverGt(version, entry.minSafe)) {
|
|
114
|
-
// 预发布版本检查: 标准化版本等于 minSafe 但原始版本含预发布后缀时,
|
|
115
|
-
// 按 semver 规范预发布版本 < 正式版本,因此仍视为漏洞
|
|
116
|
-
const normalizedVersion = version.replace(/-[\w.]+$/, "");
|
|
117
|
-
if (normalizedVersion === entry.minSafe && /-[\w.]+$/.test(version)) {
|
|
118
|
-
return {
|
|
119
|
-
package: pkgName,
|
|
120
|
-
installed_version: version,
|
|
121
|
-
severity: entry.severity,
|
|
122
|
-
issue: entry.issue,
|
|
123
|
-
fixed_in: entry.minSafe,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
package: pkgName,
|
|
128
|
-
installed_version: version,
|
|
129
|
-
severity: entry.severity,
|
|
130
|
-
issue: entry.issue,
|
|
131
|
-
fixed_in: entry.minSafe,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return undefined;
|
|
137
|
-
}
|
|
138
|
-
/** 解析 package.json — 提取 dependencies 和 devDependencies 中的包名和版本 */
|
|
139
|
-
function parsePackageJson(content) {
|
|
140
|
-
const deps = [];
|
|
141
|
-
const pkg = safeJsonParse(content);
|
|
142
|
-
if (!pkg)
|
|
143
|
-
return deps;
|
|
144
|
-
const extract = (obj, isDev) => {
|
|
145
|
-
if (!obj)
|
|
146
|
-
return;
|
|
147
|
-
for (const [name, ver] of Object.entries(obj)) {
|
|
148
|
-
deps.push({ name, version: ver, isDev });
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
extract(pkg.dependencies, false);
|
|
152
|
-
extract(pkg.devDependencies, true);
|
|
153
|
-
return deps;
|
|
154
|
-
}
|
|
155
|
-
/** 解析 pom.xml — 匹配 groupId/artifactId/version 三元组,支持多行格式 */
|
|
156
|
-
function parsePomXml(content) {
|
|
157
|
-
const deps = [];
|
|
158
|
-
// 匹配 <groupId>...<artifactId>...<version> 代码块,支持多行内容中的非贪婪匹配
|
|
159
|
-
const depPattern = /<groupId>\s*([\w.-]+)\s*<\/groupId>\s*<artifactId>\s*([\w.-]+)\s*<\/artifactId>\s*<version>\s*([\w.${}-]+)\s*<\/version>/g;
|
|
160
|
-
let match;
|
|
161
|
-
while ((match = depPattern.exec(content)) !== null) {
|
|
162
|
-
deps.push({
|
|
163
|
-
groupId: match[1],
|
|
164
|
-
artifactId: match[2],
|
|
165
|
-
version: match[3],
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
return deps;
|
|
169
|
-
}
|
|
170
|
-
/** 解析 build.gradle — 匹配 group:artifact:version 格式(如 'org.apache:log4j-core:2.14.1') */
|
|
171
|
-
function parseBuildGradle(content) {
|
|
172
|
-
const deps = [];
|
|
173
|
-
// 匹配 group:artifact:version 格式(如 'org.apache.logging.log4j:log4j-core:2.14.1')
|
|
174
|
-
const depPattern = /['"]([\w.-]+):([\w.-]+):([\d.]+(?:-[a-zA-Z][\w.-]*)?)['"]/g;
|
|
175
|
-
let match;
|
|
176
|
-
while ((match = depPattern.exec(content)) !== null) {
|
|
177
|
-
deps.push({
|
|
178
|
-
group: match[1],
|
|
179
|
-
artifact: match[2],
|
|
180
|
-
version: match[3],
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
return deps;
|
|
184
|
-
}
|
|
185
|
-
// ── 摘要生成 ──
|
|
186
|
-
/**
|
|
187
|
-
* 构建扫描结果摘要 — 统计漏洞数量和未锁定版本数量,生成中文摘要文本。
|
|
188
|
-
* @param total - 扫描的依赖总数
|
|
189
|
-
* @param vulnerabilities - 发现的漏洞列表
|
|
190
|
-
* @param unscoped - 未锁定版本列表
|
|
191
|
-
* @returns 中文格式的扫描摘要
|
|
192
|
-
*/
|
|
193
|
-
function buildSummary(total, vulnerabilities, unscoped) {
|
|
194
|
-
if (total === 0) {
|
|
195
|
-
return "未发现可解析的依赖项";
|
|
196
|
-
}
|
|
197
|
-
const criticalCount = vulnerabilities.filter((v) => v.severity === "critical").length;
|
|
198
|
-
const highCount = vulnerabilities.filter((v) => v.severity === "high").length;
|
|
199
|
-
const vulnParts = [];
|
|
200
|
-
if (vulnerabilities.length > 0) {
|
|
201
|
-
vulnParts.push(`发现 ${vulnerabilities.length} 个漏洞`);
|
|
202
|
-
const severityParts = [];
|
|
203
|
-
if (criticalCount > 0)
|
|
204
|
-
severityParts.push(`${criticalCount} critical`);
|
|
205
|
-
if (highCount > 0)
|
|
206
|
-
severityParts.push(`${highCount} high`);
|
|
207
|
-
if (severityParts.length > 0) {
|
|
208
|
-
vulnParts.push(`(${severityParts.join(", ")})`);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
const unscopedPart = unscoped.length > 0 ? `,${unscoped.length} 个未锁定版本` : "";
|
|
212
|
-
if (vulnParts.length > 0) {
|
|
213
|
-
return `扫描了 ${total} 个依赖,${vulnParts.join("")}${unscopedPart}`;
|
|
214
|
-
}
|
|
215
|
-
return `扫描了 ${total} 个依赖,未发现已知漏洞${unscopedPart}`;
|
|
216
|
-
}
|
|
217
|
-
// ── 主函数 ──
|
|
218
|
-
/**
|
|
219
|
-
* 扫描依赖文件中的已知漏洞 — 根据文件名自动选择解析器。
|
|
220
|
-
* 支持格式: package.json (Node.js)、pom.xml (Java/Maven)、build.gradle (Java/Gradle)。
|
|
221
|
-
* @param content - 依赖文件内容
|
|
222
|
-
* @param filename - 文件名(用于判断解析器类型)
|
|
223
|
-
* @returns 扫描结果,包含漏洞列表、未锁定版本和中文摘要
|
|
224
|
-
*/
|
|
225
|
-
export function scanDependencies(content, filename) {
|
|
226
|
-
debug("依赖扫描", `开始扫描 ${filename}`);
|
|
227
|
-
const baseName = filename.split("/").pop()?.toLowerCase() ?? "";
|
|
228
|
-
// ── 解析 package.json ──
|
|
229
|
-
if (baseName === "package.json") {
|
|
230
|
-
debug("依赖扫描", "检测到 package.json,使用 Node.js 解析器");
|
|
231
|
-
const parsed = parsePackageJson(content);
|
|
232
|
-
const vulnerabilities = [];
|
|
233
|
-
const unscoped_versions = [];
|
|
234
|
-
let scannedCount = 0;
|
|
235
|
-
for (const dep of parsed) {
|
|
236
|
-
const extracted = extractVersion(dep.version);
|
|
237
|
-
if (extracted === null)
|
|
238
|
-
continue; // URL / git 引用,跳过
|
|
239
|
-
scannedCount++;
|
|
240
|
-
if (isUnscoped(extracted)) {
|
|
241
|
-
unscoped_versions.push(`${dep.name}: ${dep.version}`);
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
const vuln = checkVulnerability(dep.name, extracted);
|
|
245
|
-
if (vuln) {
|
|
246
|
-
vulnerabilities.push(vuln);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
return {
|
|
250
|
-
file: filename,
|
|
251
|
-
dependencies_scanned: scannedCount,
|
|
252
|
-
vulnerabilities,
|
|
253
|
-
unscoped_versions,
|
|
254
|
-
summary: buildSummary(scannedCount, vulnerabilities, unscoped_versions),
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
// ── 解析 pom.xml ──
|
|
258
|
-
if (baseName === "pom.xml") {
|
|
259
|
-
debug("依赖扫描", "检测到 pom.xml,使用 Maven 解析器");
|
|
260
|
-
const parsed = parsePomXml(content);
|
|
261
|
-
const vulnerabilities = [];
|
|
262
|
-
let scannedCount = 0;
|
|
263
|
-
for (const dep of parsed) {
|
|
264
|
-
scannedCount++;
|
|
265
|
-
const vuln = checkVulnerability(dep.artifactId, dep.version);
|
|
266
|
-
if (vuln) {
|
|
267
|
-
vulnerabilities.push(vuln);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return {
|
|
271
|
-
file: filename,
|
|
272
|
-
dependencies_scanned: scannedCount,
|
|
273
|
-
vulnerabilities,
|
|
274
|
-
unscoped_versions: [],
|
|
275
|
-
summary: buildSummary(scannedCount, vulnerabilities, []),
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
// ── 解析 build.gradle ──
|
|
279
|
-
if (baseName === "build.gradle" || baseName === "build.gradle.kts") {
|
|
280
|
-
debug("依赖扫描", "检测到 build.gradle,使用 Gradle 解析器");
|
|
281
|
-
const parsed = parseBuildGradle(content);
|
|
282
|
-
const vulnerabilities = [];
|
|
283
|
-
let scannedCount = 0;
|
|
284
|
-
for (const dep of parsed) {
|
|
285
|
-
scannedCount++;
|
|
286
|
-
const vuln = checkVulnerability(dep.artifact, dep.version);
|
|
287
|
-
if (vuln) {
|
|
288
|
-
vulnerabilities.push(vuln);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
return {
|
|
292
|
-
file: filename,
|
|
293
|
-
dependencies_scanned: scannedCount,
|
|
294
|
-
vulnerabilities,
|
|
295
|
-
unscoped_versions: [],
|
|
296
|
-
summary: buildSummary(scannedCount, vulnerabilities, []),
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
// ── 不支持的文件格式,返回空结果 ──
|
|
300
|
-
debug("依赖扫描", `不支持的文件格式 ${filename}`);
|
|
301
|
-
return {
|
|
302
|
-
file: filename,
|
|
303
|
-
dependencies_scanned: 0,
|
|
304
|
-
vulnerabilities: [],
|
|
305
|
-
unscoped_versions: [],
|
|
306
|
-
summary: "不支持的依赖文件格式",
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
//# sourceMappingURL=dependency_scanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency_scanner.js","sourceRoot":"","sources":["../../../src/context/engine/dependency_scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Exploration — 模块模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:TechSolution 等 模块职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:上层模块按需调用
|
|
9
|
-
* 调用谁:index、index_manager、logger
|
|
10
|
-
*
|
|
11
|
-
* 数据流:输入 → TechSolution 处理 → 输出
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import type { ProjectConfig, ClassifyResult } from "../../types/index.js";
|
|
15
|
-
import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
|
|
16
|
-
/**
|
|
17
|
-
* 自主技术选型与方案证伪引擎 — 当人类陷入"不知道用什么"时,
|
|
18
|
-
* 以首席架构师身份主导决策,禁止"复读机"或"模糊脑暴"。
|
|
19
|
-
*
|
|
20
|
-
* 核心能力:
|
|
21
|
-
* 1. 行业基准检索: 从知识库 + 内置行业方案库中检索 3 个标准方案
|
|
22
|
-
* 2. 选型权重矩阵: [开发成本/运行性能/扩展上限/维护复杂度] 四维对比
|
|
23
|
-
* 3. 最优解宣誓: 基于项目上下文给出架构师推荐 + 规避致命缺点说明
|
|
24
|
-
* 4. 方案证伪循环: 逻辑自毁测试 + 方案边界声明
|
|
25
|
-
* 5. A/B 决策诱导: 禁止开放式提问,输出两个精确选项
|
|
26
|
-
*/
|
|
27
|
-
/** 技术方案条目 */
|
|
28
|
-
export interface TechSolution {
|
|
29
|
-
/** 方案名称 */
|
|
30
|
-
name: string;
|
|
31
|
-
/** 方案来源: industry=行业标准, knowledge=知识库, heuristic=启发式 */
|
|
32
|
-
source: "industry" | "knowledge" | "heuristic";
|
|
33
|
-
/** 一句话描述 */
|
|
34
|
-
description: string;
|
|
35
|
-
/** 四维评分 (1-5, 5=最优) */
|
|
36
|
-
ratings: SolutionRatings;
|
|
37
|
-
/** 致命缺点 */
|
|
38
|
-
fatal_weakness: string;
|
|
39
|
-
/** 适用场景 */
|
|
40
|
-
best_for: string;
|
|
41
|
-
/** 不适用场景 */
|
|
42
|
-
worst_for: string;
|
|
43
|
-
}
|
|
44
|
-
/** 四维评分 */
|
|
45
|
-
export interface SolutionRatings {
|
|
46
|
-
/** 开发成本 (5=低成本, 1=高成本) */
|
|
47
|
-
dev_cost: number;
|
|
48
|
-
/** 运行性能 (5=高性能, 1=低性能) */
|
|
49
|
-
performance: number;
|
|
50
|
-
/** 扩展上限 (5=高扩展, 1=低扩展) */
|
|
51
|
-
scalability: number;
|
|
52
|
-
/** 维护复杂度 (5=易维护, 1=难维护) */
|
|
53
|
-
maintainability: number;
|
|
54
|
-
}
|
|
55
|
-
/** 证伪结果 */
|
|
56
|
-
export interface FalsificationResult {
|
|
57
|
-
/** 方案名称 */
|
|
58
|
-
solution_name: string;
|
|
59
|
-
/** 自毁场景列表 */
|
|
60
|
-
self_destruct_scenarios: string[];
|
|
61
|
-
/** 方案边界声明 */
|
|
62
|
-
boundary_declaration: string;
|
|
63
|
-
/** 天花板描述 */
|
|
64
|
-
ceiling_description: string;
|
|
65
|
-
}
|
|
66
|
-
/** A/B 决策选项 */
|
|
67
|
-
export interface DecisionOption {
|
|
68
|
-
/** 标签 (方案 A/B) */
|
|
69
|
-
label: string;
|
|
70
|
-
/** 方案名称 */
|
|
71
|
-
solution_name: string;
|
|
72
|
-
/** 理由 */
|
|
73
|
-
reason: string;
|
|
74
|
-
/** 适合场景 */
|
|
75
|
-
suitable_for: string;
|
|
76
|
-
}
|
|
77
|
-
/** 探索输出 */
|
|
78
|
-
export interface ExplorationResult {
|
|
79
|
-
/** 探索领域 */
|
|
80
|
-
domain: string;
|
|
81
|
-
/** 行业基准方案列表 (≥3) */
|
|
82
|
-
benchmarks: TechSolution[];
|
|
83
|
-
/** 选型权重矩阵 */
|
|
84
|
-
comparison_matrix: ComparisonMatrix;
|
|
85
|
-
/** 最优解宣誓 */
|
|
86
|
-
architect_recommendation: ArchitectRecommendation;
|
|
87
|
-
/** 证伪报告 */
|
|
88
|
-
falsification_report: FalsificationResult[];
|
|
89
|
-
/** A/B 决策选项 */
|
|
90
|
-
decision_options: [DecisionOption, DecisionOption];
|
|
91
|
-
/** 方案边界声明汇总 */
|
|
92
|
-
boundary_summary: string;
|
|
93
|
-
/** 时效性信息 */
|
|
94
|
-
timeliness?: TimelinessInfo;
|
|
95
|
-
/** 契约字段: 当前项目约束和已有栈 */
|
|
96
|
-
local_constraints: string;
|
|
97
|
-
/** 契约字段: 分层证据列表 */
|
|
98
|
-
evidence_sources: EvidenceSource[];
|
|
99
|
-
/** 契约字段: 被拒绝方案及原因 */
|
|
100
|
-
rejected_options: RejectedOption[];
|
|
101
|
-
/** 契约字段: 知识过时/新方案不稳定风险 */
|
|
102
|
-
freshness_risk: string;
|
|
103
|
-
/** 契约字段: 维护/安全/许可证/迁移退出成本 */
|
|
104
|
-
adoption_risk: string;
|
|
105
|
-
/** 契约字段: spike/测试/兼容性验证/回滚路径 */
|
|
106
|
-
validation_plan: string;
|
|
107
|
-
/** 契约字段: 结论何时需重新验证 */
|
|
108
|
-
decision_expiry: string;
|
|
109
|
-
/** 默认推荐方案,可直接执行 */
|
|
110
|
-
recommended_option: string;
|
|
111
|
-
/** 为什么选它,结合代码库和约束 */
|
|
112
|
-
why_this: string;
|
|
113
|
-
/** 被放弃的方案及放弃原因 */
|
|
114
|
-
rejected_decision_options: string[];
|
|
115
|
-
/** 对备选方案公平强化 */
|
|
116
|
-
steelman_alternatives: string;
|
|
117
|
-
/** 主动攻击推荐方案,列出失败条件 */
|
|
118
|
-
attack_recommended_option: string;
|
|
119
|
-
/** 如何证明推荐方案不成立 */
|
|
120
|
-
falsification_tests: string;
|
|
121
|
-
/** 执行步骤 */
|
|
122
|
-
execution_plan: string;
|
|
123
|
-
/** 验证命令和成功标准 */
|
|
124
|
-
verification_plan: string;
|
|
125
|
-
/** 失败后如何撤回 */
|
|
126
|
-
rollback_plan: string;
|
|
127
|
-
/** 是否需要人工确认 */
|
|
128
|
-
human_confirmation_required: boolean;
|
|
129
|
-
}
|
|
130
|
-
/** 时效性信息 */
|
|
131
|
-
export interface TimelinessInfo {
|
|
132
|
-
/** 基准数据最后审核日期 */
|
|
133
|
-
last_reviewed: string;
|
|
134
|
-
/** 距今天数 */
|
|
135
|
-
days_since_review: number;
|
|
136
|
-
/** 是否需要人工复核(>180 天) */
|
|
137
|
-
stale_warning: boolean;
|
|
138
|
-
/** 提示信息 */
|
|
139
|
-
message: string;
|
|
140
|
-
}
|
|
141
|
-
/** 证据来源条目 */
|
|
142
|
-
export interface EvidenceSource {
|
|
143
|
-
/** 来源名称 */
|
|
144
|
-
name: string;
|
|
145
|
-
/** 证据分层: local_code / official_docs / standards / maintainer_sources / community_practice / trend_signal */
|
|
146
|
-
tier: "local_code" | "official_docs" | "standards" | "maintainer_sources" | "community_practice" | "trend_signal";
|
|
147
|
-
/** 可信度: high / medium / low */
|
|
148
|
-
credibility: "high" | "medium" | "low";
|
|
149
|
-
/** 来源描述 */
|
|
150
|
-
description: string;
|
|
151
|
-
}
|
|
152
|
-
/** 被拒绝方案 */
|
|
153
|
-
export interface RejectedOption {
|
|
154
|
-
/** 方案名称 */
|
|
155
|
-
name: string;
|
|
156
|
-
/** 拒绝原因 */
|
|
157
|
-
reason: string;
|
|
158
|
-
/** steelman: 公平强化该方案的优点 */
|
|
159
|
-
steelman: string;
|
|
160
|
-
}
|
|
161
|
-
/** 对比矩阵 */
|
|
162
|
-
export interface ComparisonMatrix {
|
|
163
|
-
/** 维度列表 */
|
|
164
|
-
dimensions: string[];
|
|
165
|
-
/** 各方案在各维度的得分 */
|
|
166
|
-
rows: Array<{
|
|
167
|
-
solution_name: string;
|
|
168
|
-
scores: number[];
|
|
169
|
-
total: number;
|
|
170
|
-
}>;
|
|
171
|
-
}
|
|
172
|
-
/** 架构师推荐 */
|
|
173
|
-
export interface ArchitectRecommendation {
|
|
174
|
-
/** 推荐方案 */
|
|
175
|
-
recommended: string;
|
|
176
|
-
/** 推荐理由 */
|
|
177
|
-
reason: string;
|
|
178
|
-
/** 如何规避其他方案的致命缺点 */
|
|
179
|
-
fatal_weakness_mitigation: string;
|
|
180
|
-
/** 前提条件(推荐方案生效的前提) */
|
|
181
|
-
prerequisites: string[];
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* 执行自主技术选型与方案证伪。
|
|
185
|
-
* @param params - 输入参数
|
|
186
|
-
* @returns 探索结果,包含行业基准、对比矩阵、推荐方案、证伪报告和 A/B 决策
|
|
187
|
-
*/
|
|
188
|
-
export declare function exploreSolutions(params: {
|
|
189
|
-
domain_query: string;
|
|
190
|
-
projectConfig: ProjectConfig;
|
|
191
|
-
classification?: ClassifyResult;
|
|
192
|
-
knowledgeIndex?: KnowledgeIndexManager;
|
|
193
|
-
}): ExplorationResult;
|
|
194
|
-
//# sourceMappingURL=exploration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exploration.d.ts","sourceRoot":"","sources":["../../../src/context/engine/exploration.ts"],"names":[],"mappings":"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"}
|