soloforge 1.1.45 → 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/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.js +2 -7
- 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
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Developer Sovereignty — 审计层模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:vetoDelivery 等 审计层职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:发布门禁、质量检查
|
|
9
|
-
* 调用谁:index、delivery、git_deps、semantic_evidence、logger
|
|
10
|
-
*
|
|
11
|
-
* 数据流:审计输入(代码/配置) → 检查 → 评分/报告
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import { buildDeliveryEvidenceChain } from "./semantic_evidence.js";
|
|
15
|
-
import { debug } from "../../shared/logger.js";
|
|
16
|
-
/**
|
|
17
|
-
* 交付前预览 — 收集 raw diff、风险摘要、证据链、回滚命令。
|
|
18
|
-
* 使用 git_deps.GitOperations 获取真实 diff 统计和 commit/branch 信息。
|
|
19
|
-
*/
|
|
20
|
-
export async function preDeliveryReview(taskContext, gitOps, projectPath) {
|
|
21
|
-
debug("开发者主权", "preDeliveryReview() 开始 — taskId:", taskContext.task_id);
|
|
22
|
-
const changedFiles = taskContext.execution?.changed_files ?? [];
|
|
23
|
-
const attemptCount = taskContext.execution?.attempt_count ?? 0;
|
|
24
|
-
const failureCount = taskContext.execution?.failure_history?.length ?? 0;
|
|
25
|
-
const risk = taskContext.classification?.risk ?? "low";
|
|
26
|
-
// Diff 摘要 — 合并 unstaged 和 cached diff(按文件)
|
|
27
|
-
const [unstaged, staged] = await Promise.all([
|
|
28
|
-
gitOps.getDiff(projectPath, { cached: false }),
|
|
29
|
-
gitOps.getDiff(projectPath, { cached: true }),
|
|
30
|
-
]);
|
|
31
|
-
const diffFiles = new Set(changedFiles);
|
|
32
|
-
// 合并by file: sum additions/deletions from both sources
|
|
33
|
-
const merged = new Map();
|
|
34
|
-
for (const h of [...unstaged, ...staged]) {
|
|
35
|
-
if (!diffFiles.has(h.file))
|
|
36
|
-
continue;
|
|
37
|
-
const existing = merged.get(h.file);
|
|
38
|
-
if (existing) {
|
|
39
|
-
existing.additions += h.additions;
|
|
40
|
-
existing.deletions += h.deletions;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
merged.set(h.file, { file_path: h.file, additions: h.additions, deletions: h.deletions });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// 未出现在 diff 输出中的变更文件,补充零计数字段
|
|
47
|
-
for (const f of changedFiles) {
|
|
48
|
-
if (!merged.has(f)) {
|
|
49
|
-
merged.set(f, { file_path: f, additions: 0, deletions: 0 });
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
const fileDetails = [...merged.values()];
|
|
53
|
-
const totalAdditions = fileDetails.reduce((s, d) => s + d.additions, 0);
|
|
54
|
-
const totalDeletions = fileDetails.reduce((s, d) => s + d.deletions, 0);
|
|
55
|
-
const diffSummary = {
|
|
56
|
-
changed_files: changedFiles,
|
|
57
|
-
additions: totalAdditions,
|
|
58
|
-
deletions: totalDeletions,
|
|
59
|
-
file_details: fileDetails,
|
|
60
|
-
};
|
|
61
|
-
// 风险摘要
|
|
62
|
-
const riskFactors = [];
|
|
63
|
-
if (risk === "high")
|
|
64
|
-
riskFactors.push(`任务风险: ${risk}`);
|
|
65
|
-
if (attemptCount > 1)
|
|
66
|
-
riskFactors.push(`多次尝试: ${attemptCount} 次`);
|
|
67
|
-
if (failureCount > 0)
|
|
68
|
-
riskFactors.push(`历史失败: ${failureCount} 次`);
|
|
69
|
-
if (changedFiles.length > 10)
|
|
70
|
-
riskFactors.push(`变更文件多: ${changedFiles.length} 个`);
|
|
71
|
-
const riskLevel = riskFactors.length === 0 ? "low" : riskFactors.length <= 2 ? "medium" : "high";
|
|
72
|
-
debug("开发者主权", "风险评估 — level:", riskLevel, "factors:", riskFactors.join(", "));
|
|
73
|
-
// 证据链
|
|
74
|
-
const chain = buildDeliveryEvidenceChain(taskContext);
|
|
75
|
-
const evidenceChain = chain
|
|
76
|
-
? {
|
|
77
|
-
requirements: chain.requirement_points,
|
|
78
|
-
coverage_summary: chain.completeness.advisory,
|
|
79
|
-
uncovered_points: chain.completeness.uncovered_points,
|
|
80
|
-
}
|
|
81
|
-
: null;
|
|
82
|
-
// 回滚命令 — 绑定真实 commit hash
|
|
83
|
-
let commitHash = "HEAD";
|
|
84
|
-
try {
|
|
85
|
-
commitHash = await gitOps.getHeadCommitHash(projectPath);
|
|
86
|
-
}
|
|
87
|
-
catch (e) {
|
|
88
|
-
debug("开发者主权", "获取commit hash失败,使用默认值 —", e);
|
|
89
|
-
}
|
|
90
|
-
const rollbackCommand = `git revert ${commitHash} --no-edit`;
|
|
91
|
-
// can_deliver advisory 逻辑: advisory 级阻断,非 hard block
|
|
92
|
-
const deliveryBlockers = [];
|
|
93
|
-
if (riskLevel === "high") {
|
|
94
|
-
deliveryBlockers.push("advisory: 高风险 — 建议交付前人工审查");
|
|
95
|
-
}
|
|
96
|
-
if (evidenceChain && evidenceChain.uncovered_points.length > 0) {
|
|
97
|
-
deliveryBlockers.push(`advisory: 个未覆盖的需求点`);
|
|
98
|
-
}
|
|
99
|
-
debug("开发者主权", "delivery blockers:", deliveryBlockers.length > 0 ? deliveryBlockers.join("; ") : "无");
|
|
100
|
-
// can_deliver 始终为 true(advisory 模式,非 hard block),但阻断信息供开发者参考
|
|
101
|
-
const canDeliver = true;
|
|
102
|
-
return {
|
|
103
|
-
task_id: taskContext.task_id,
|
|
104
|
-
diff_summary: diffSummary,
|
|
105
|
-
risk_summary: {
|
|
106
|
-
risk_level: riskLevel,
|
|
107
|
-
factors: riskFactors,
|
|
108
|
-
advisory: riskLevel === "high"
|
|
109
|
-
? "advisory: 高风险交付,建议人工审查后再继续"
|
|
110
|
-
: riskLevel === "medium"
|
|
111
|
-
? "advisory: 中等风险,交付前请审查变更"
|
|
112
|
-
: "低风险,可安全继续",
|
|
113
|
-
},
|
|
114
|
-
evidence_chain: evidenceChain,
|
|
115
|
-
rollback_command: rollbackCommand,
|
|
116
|
-
can_deliver: canDeliver,
|
|
117
|
-
delivery_blockers: deliveryBlockers,
|
|
118
|
-
advisory: deliveryBlockers.length > 0
|
|
119
|
-
? deliveryBlockers.join("; ")
|
|
120
|
-
: "确认交付前请审查 diff 和证据链",
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* 否决交付 — 开发者行使否决权。
|
|
125
|
-
* 返回 VetoResult 记录否决事件,不修改任何状态。
|
|
126
|
-
*/
|
|
127
|
-
export function vetoDelivery(taskId, reason) {
|
|
128
|
-
debug("开发者主权", "vetoDelivery() — taskId:", taskId, "原因:", reason);
|
|
129
|
-
return {
|
|
130
|
-
vetoed: true,
|
|
131
|
-
task_id: taskId,
|
|
132
|
-
reason,
|
|
133
|
-
timestamp: new Date().toISOString(),
|
|
134
|
-
advisory: "交付已被开发者否决 — 未提交或推送任何代码变更",
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=developer_sovereignty.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"developer_sovereignty.js","sourceRoot":"","sources":["../../../src/verify/audit/developer_sovereignty.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Failure Report — 审计层模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:FailureClass 等 审计层职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:发布门禁、质量检查
|
|
9
|
-
* 调用谁:diagnostic_registry、node:crypto
|
|
10
|
-
*
|
|
11
|
-
* 数据流:审计输入(代码/配置) → 检查 → 评分/报告
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import { type DiagnosticEvent } from "../../shared/diagnostic_registry.js";
|
|
15
|
-
export type FailureClass = "deterministic" | "fixable" | "scope_insufficient" | "external_side_effect" | "state_inconsistent" | "human_required" | "unknown";
|
|
16
|
-
export type RecoveryAction = "retry" | "escalate" | "expand_scope" | "require_human" | "rollback" | "abort";
|
|
17
|
-
export interface FailureReport {
|
|
18
|
-
failure_id: string;
|
|
19
|
-
task_id: string;
|
|
20
|
-
contract_id?: string;
|
|
21
|
-
failure_class: FailureClass;
|
|
22
|
-
/** 脱敏后的摘要,不含 raw output */
|
|
23
|
-
redacted_summary: string;
|
|
24
|
-
/** 稳定内容哈希,用于去重和追溯 */
|
|
25
|
-
error_output_hash: string;
|
|
26
|
-
/** 原始输出不保留,只存 evidence ref */
|
|
27
|
-
evidence_ref?: string;
|
|
28
|
-
retry_count: number;
|
|
29
|
-
retry_budget: number;
|
|
30
|
-
retry_remaining: number;
|
|
31
|
-
occurred_at: string;
|
|
32
|
-
actions_taken: string[];
|
|
33
|
-
external_side_effects?: string[];
|
|
34
|
-
diagnostic_event: DiagnosticEvent | null;
|
|
35
|
-
}
|
|
36
|
-
export interface RecoveryPolicy {
|
|
37
|
-
policy_id: string;
|
|
38
|
-
failure_class: FailureClass;
|
|
39
|
-
max_retries: number;
|
|
40
|
-
action: RecoveryAction;
|
|
41
|
-
requires_new_evidence: boolean;
|
|
42
|
-
requires_human_confirmation: boolean;
|
|
43
|
-
diagnostic_code: string;
|
|
44
|
-
}
|
|
45
|
-
export interface RecoveryAttempt {
|
|
46
|
-
attempt_id: string;
|
|
47
|
-
failure_id: string;
|
|
48
|
-
policy_id: string;
|
|
49
|
-
action: RecoveryAction;
|
|
50
|
-
new_evidence_ids: string[];
|
|
51
|
-
result: "success" | "failure" | "in_progress";
|
|
52
|
-
attempted_at: string;
|
|
53
|
-
}
|
|
54
|
-
/** 按 FailureClass 获取恢复策略 */
|
|
55
|
-
export declare function getRecoveryPolicy(failureClass: FailureClass): RecoveryPolicy | undefined;
|
|
56
|
-
/** 列出所有恢复策略 */
|
|
57
|
-
export declare function listRecoveryPolicies(): RecoveryPolicy[];
|
|
58
|
-
/** 检查是否包含敏感内容 */
|
|
59
|
-
export declare function containsSensitiveContent(content: string): boolean;
|
|
60
|
-
/** 创建失败报告(含自检: 脱敏后仍含敏感内容时强制二次脱敏) */
|
|
61
|
-
export declare function createFailureReport(taskId: string, failureClass: FailureClass, errorOutput: string, retryCount: number, retryBudget: number, contractId?: string, externalSideEffects?: string[]): FailureReport;
|
|
62
|
-
/**
|
|
63
|
-
* 判断是否允许重试。
|
|
64
|
-
* - deterministic 不允许
|
|
65
|
-
* - 超预算不允许
|
|
66
|
-
* - human_required 不允许
|
|
67
|
-
*/
|
|
68
|
-
export declare function canRetry(failureClass: FailureClass, retryCount: number, retryBudget: number): boolean;
|
|
69
|
-
/**
|
|
70
|
-
* 验证失败处理规则。
|
|
71
|
-
*/
|
|
72
|
-
export declare function validateFailureHandling(report: FailureReport): Array<{
|
|
73
|
-
error: string;
|
|
74
|
-
severity: "hard_fail" | "warning";
|
|
75
|
-
}>;
|
|
76
|
-
//# sourceMappingURL=failure_report.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"failure_report.d.ts","sourceRoot":"","sources":["../../../src/verify/audit/failure_report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAGlG,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,SAAS,GACT,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAE5G,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,YAAY,CAAC;IAC5B,2BAA2B;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,2BAA2B,EAAE,OAAO,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;CACtB;AAoBD,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS,CAExF;AAED,eAAe;AACf,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CAEvD;AAiCD,iBAAiB;AACjB,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,oCAAoC;AACpC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,aAAa,CAkCf;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAKrG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,CAAC,CAiC1H"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Failure Report — 审计层模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:FailureClass 等 审计层职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:发布门禁、质量检查
|
|
9
|
-
* 调用谁:diagnostic_registry、node:crypto
|
|
10
|
-
*
|
|
11
|
-
* 数据流:审计输入(代码/配置) → 检查 → 评分/报告
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import { createDiagnosticEvent } from "../../shared/diagnostic_registry.js";
|
|
15
|
-
import { createHash } from "node:crypto";
|
|
16
|
-
// 内置恢复策略
|
|
17
|
-
const BUILTIN_RECOVERY_POLICIES = [
|
|
18
|
-
{ policy_id: "rp-deterministic", failure_class: "deterministic", max_retries: 0, action: "escalate",
|
|
19
|
-
requires_new_evidence: true, requires_human_confirmation: true, diagnostic_code: "SF-FAILURE-0001" },
|
|
20
|
-
{ policy_id: "rp-fixable", failure_class: "fixable", max_retries: 3, action: "retry",
|
|
21
|
-
requires_new_evidence: true, requires_human_confirmation: false, diagnostic_code: "SF-FAILURE-0001" },
|
|
22
|
-
{ policy_id: "rp-scope-insufficient", failure_class: "scope_insufficient", max_retries: 1, action: "require_human",
|
|
23
|
-
requires_new_evidence: true, requires_human_confirmation: true, diagnostic_code: "SF-FAILURE-0001" },
|
|
24
|
-
{ policy_id: "rp-external-side-effect", failure_class: "external_side_effect", max_retries: 0, action: "rollback",
|
|
25
|
-
requires_new_evidence: true, requires_human_confirmation: true, diagnostic_code: "SF-FAILURE-0002" },
|
|
26
|
-
{ policy_id: "rp-state-inconsistent", failure_class: "state_inconsistent", max_retries: 0, action: "abort",
|
|
27
|
-
requires_new_evidence: true, requires_human_confirmation: true, diagnostic_code: "SF-STATE-0001" },
|
|
28
|
-
{ policy_id: "rp-human-required", failure_class: "human_required", max_retries: 0, action: "require_human",
|
|
29
|
-
requires_new_evidence: false, requires_human_confirmation: true, diagnostic_code: "SF-FAILURE-0001" },
|
|
30
|
-
{ policy_id: "rp-unknown", failure_class: "unknown", max_retries: 0, action: "escalate",
|
|
31
|
-
requires_new_evidence: true, requires_human_confirmation: true, diagnostic_code: "SF-FAILURE-0001" },
|
|
32
|
-
];
|
|
33
|
-
/** 按 FailureClass 获取恢复策略 */
|
|
34
|
-
export function getRecoveryPolicy(failureClass) {
|
|
35
|
-
return BUILTIN_RECOVERY_POLICIES.find((p) => p.failure_class === failureClass);
|
|
36
|
-
}
|
|
37
|
-
/** 列出所有恢复策略 */
|
|
38
|
-
export function listRecoveryPolicies() {
|
|
39
|
-
return [...BUILTIN_RECOVERY_POLICIES];
|
|
40
|
-
}
|
|
41
|
-
// 敏感内容模式 — raw output/secret/PII
|
|
42
|
-
const SENSITIVE_PATTERNS = [
|
|
43
|
-
/sk-[a-zA-Z0-9]{20,}/, // API key
|
|
44
|
-
/\b\d{11}\b/, // 手机号
|
|
45
|
-
/password\s*[:=]\s*\S+/i, // password=
|
|
46
|
-
/secret\s*[:=]\s*\S+/i, // secret=
|
|
47
|
-
/api_key\s*[:=]\s*\S+/i, // api_key=
|
|
48
|
-
/token\s*[:=]\s*\S+/i, // token=
|
|
49
|
-
/raw_stdout/i, // raw stdout 标记
|
|
50
|
-
/raw_stderr/i, // raw stderr 标记
|
|
51
|
-
];
|
|
52
|
-
/** 脱敏: 全局替换所有敏感内容,返回 redacted summary */
|
|
53
|
-
function redactErrorOutput(raw) {
|
|
54
|
-
let result = raw;
|
|
55
|
-
// 全局替换所有敏感模式(使用 replaceAll 语义,确保多次出现都处理)
|
|
56
|
-
for (const pattern of SENSITIVE_PATTERNS) {
|
|
57
|
-
result = result.replace(new RegExp(pattern.source, pattern.flags.includes("g") ? pattern.flags : pattern.flags + "g"), "[REDACTED]");
|
|
58
|
-
}
|
|
59
|
-
// 截断防止大段输出
|
|
60
|
-
if (result.length > 200) {
|
|
61
|
-
result = result.substring(0, 200) + "...[truncated]";
|
|
62
|
-
}
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
|
-
/** 稳定内容哈希 — TAR-003: 前 32 字符(128bit)避免碰撞 */
|
|
66
|
-
function stableHash(content) {
|
|
67
|
-
return createHash("sha256").update(content).digest("hex").substring(0, 32);
|
|
68
|
-
}
|
|
69
|
-
/** 检查是否包含敏感内容 */
|
|
70
|
-
export function containsSensitiveContent(content) {
|
|
71
|
-
return SENSITIVE_PATTERNS.some((p) => p.test(content));
|
|
72
|
-
}
|
|
73
|
-
/** 创建失败报告(含自检: 脱敏后仍含敏感内容时强制二次脱敏) */
|
|
74
|
-
export function createFailureReport(taskId, failureClass, errorOutput, retryCount, retryBudget, contractId, externalSideEffects) {
|
|
75
|
-
const policy = getRecoveryPolicy(failureClass);
|
|
76
|
-
const diagCode = policy?.diagnostic_code ?? "SF-FAILURE-0001";
|
|
77
|
-
const diagEvent = createDiagnosticEvent(diagCode, { failure_class: failureClass, retry_count: retryCount }, contractId, taskId);
|
|
78
|
-
const hash = stableHash(errorOutput);
|
|
79
|
-
let redacted = redactErrorOutput(errorOutput);
|
|
80
|
-
// 自检: 脱敏后仍含敏感内容时强制替换为占位符
|
|
81
|
-
if (containsSensitiveContent(redacted)) {
|
|
82
|
-
redacted = "[内容已全部脱敏,原始输出不可展示]";
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
failure_id: `fr-${taskId}-${hash}`,
|
|
86
|
-
task_id: taskId,
|
|
87
|
-
contract_id: contractId,
|
|
88
|
-
failure_class: failureClass,
|
|
89
|
-
redacted_summary: redacted,
|
|
90
|
-
error_output_hash: hash,
|
|
91
|
-
evidence_ref: undefined,
|
|
92
|
-
retry_count: retryCount,
|
|
93
|
-
retry_budget: retryBudget,
|
|
94
|
-
retry_remaining: Math.max(0, retryBudget - retryCount),
|
|
95
|
-
occurred_at: new Date().toISOString(),
|
|
96
|
-
actions_taken: [],
|
|
97
|
-
external_side_effects: externalSideEffects,
|
|
98
|
-
diagnostic_event: diagEvent,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* 判断是否允许重试。
|
|
103
|
-
* - deterministic 不允许
|
|
104
|
-
* - 超预算不允许
|
|
105
|
-
* - human_required 不允许
|
|
106
|
-
*/
|
|
107
|
-
export function canRetry(failureClass, retryCount, retryBudget) {
|
|
108
|
-
if (failureClass === "deterministic" || failureClass === "human_required" || failureClass === "unknown") {
|
|
109
|
-
return false;
|
|
110
|
-
}
|
|
111
|
-
return retryCount < retryBudget;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* 验证失败处理规则。
|
|
115
|
-
*/
|
|
116
|
-
export function validateFailureHandling(report) {
|
|
117
|
-
const errors = [];
|
|
118
|
-
if (report.failure_class === "deterministic" && report.retry_count > 0) {
|
|
119
|
-
errors.push({
|
|
120
|
-
error: `deterministic 失败不应重试,但已重试 ${report.retry_count} 次`,
|
|
121
|
-
severity: "hard_fail",
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
if (report.failure_class === "external_side_effect" && !report.external_side_effects) {
|
|
125
|
-
errors.push({
|
|
126
|
-
error: "external_side_effect 失败必须记录已发生动作",
|
|
127
|
-
severity: "hard_fail",
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
if (report.retry_remaining < 0) {
|
|
131
|
-
errors.push({
|
|
132
|
-
error: `重试次数超过预算: ${report.retry_count}/${report.retry_budget}`,
|
|
133
|
-
severity: "hard_fail",
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
// 红线: redacted_summary 不得包含敏感原文
|
|
137
|
-
if (containsSensitiveContent(report.redacted_summary)) {
|
|
138
|
-
errors.push({
|
|
139
|
-
error: "FailureReport redacted_summary 仍包含敏感内容(secret/PII/raw output)",
|
|
140
|
-
severity: "hard_fail",
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
return errors;
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=failure_report.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"failure_report.js","sourceRoot":"","sources":["../../../src/verify/audit/failure_report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAwB,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqDzC,SAAS;AACT,MAAM,yBAAyB,GAA8B;IAC3D,EAAE,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU;QACjG,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE;IACtG,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO;QAClF,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE;IACvG,EAAE,SAAS,EAAE,uBAAuB,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe;QAChH,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE;IACtG,EAAE,SAAS,EAAE,yBAAyB,EAAE,aAAa,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU;QAC/G,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE;IACtG,EAAE,SAAS,EAAE,uBAAuB,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO;QACxG,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE;IACpG,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe;QACxG,qBAAqB,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE;IACvG,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU;QACrF,qBAAqB,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE;CACvG,CAAC;AAEF,4BAA4B;AAC5B,MAAM,UAAU,iBAAiB,CAAC,YAA0B;IAC1D,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,YAAY,CAAC,CAAC;AACjF,CAAC;AAED,eAAe;AACf,MAAM,UAAU,oBAAoB;IAClC,OAAO,CAAC,GAAG,yBAAyB,CAAC,CAAC;AACxC,CAAC;AAED,iCAAiC;AACjC,MAAM,kBAAkB,GAAa;IACnC,qBAAqB,EAAiB,UAAU;IAChD,YAAY,EAA2B,MAAM;IAC7C,wBAAwB,EAAc,YAAY;IAClD,sBAAsB,EAAe,UAAU;IAC/C,uBAAuB,EAAc,WAAW;IAChD,qBAAqB,EAAgB,SAAS;IAC9C,aAAa,EAA0B,gBAAgB;IACvD,aAAa,EAA0B,gBAAgB;CACxD,CAAC;AAEF,yCAAyC;AACzC,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,yCAAyC;IACzC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;IACvI,CAAC;IACD,WAAW;IACX,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4CAA4C;AAC5C,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,YAA0B,EAC1B,WAAmB,EACnB,UAAkB,EAClB,WAAmB,EACnB,UAAmB,EACnB,mBAA8B;IAE9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,EAAE,eAAe,IAAI,iBAAiB,CAAC;IAC9D,MAAM,SAAS,GAAG,qBAAqB,CACrC,QAAQ,EACR,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,EACxD,UAAU,EACV,MAAM,CACP,CAAC;IAEF,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE9C,yBAAyB;IACzB,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,QAAQ,GAAG,oBAAoB,CAAC;IAClC,CAAC;IAED,OAAO;QACL,UAAU,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE;QAClC,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,YAAY;QAC3B,gBAAgB,EAAE,QAAQ;QAC1B,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,WAAW;QACzB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;QACtD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,aAAa,EAAE,EAAE;QACjB,qBAAqB,EAAE,mBAAmB;QAC1C,gBAAgB,EAAE,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,YAA0B,EAAE,UAAkB,EAAE,WAAmB;IAC1F,IAAI,YAAY,KAAK,eAAe,IAAI,YAAY,KAAK,gBAAgB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACxG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,GAAG,WAAW,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAqB;IAC3D,MAAM,MAAM,GAAgE,EAAE,CAAC;IAE/E,IAAI,MAAM,CAAC,aAAa,KAAK,eAAe,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,6BAA6B,MAAM,CAAC,WAAW,IAAI;YAC1D,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,KAAK,sBAAsB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,kCAAkC;YACzC,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,aAAa,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE;YAC/D,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;IACL,CAAC;IAED,gCAAgC;IAChC,IAAI,wBAAwB,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,+DAA+D;YACtE,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Governance Report — 审计层模块。
|
|
3
|
-
*
|
|
4
|
-
* 职责边界:
|
|
5
|
-
* - 负责:PolicySummary 等 审计层职责
|
|
6
|
-
* - 不负责:不属于本模块的职责由对应模块承担
|
|
7
|
-
*
|
|
8
|
-
* 被谁调用:发布门禁、质量检查
|
|
9
|
-
* 调用谁:audit_pool、escape_report、capability_action_advisor、risk_sampler、index、artifact_contract_registry
|
|
10
|
-
*
|
|
11
|
-
* 数据流:审计输入(代码/配置) → 检查 → 评分/报告
|
|
12
|
-
* 持久化:无持久化(纯计算/内存态)
|
|
13
|
-
*/
|
|
14
|
-
import type { AuditItem, AuditPoolStats } from "./audit_pool.js";
|
|
15
|
-
import type { EscapeReport, EscapeReportStats } from "../../gate/contracts/escape_report.js";
|
|
16
|
-
import type { ActionDecision } from "../../gate/contracts/capability_action_advisor.js";
|
|
17
|
-
import type { SamplingDecision } from "./risk_sampler.js";
|
|
18
|
-
import type { DualLayerGovernanceFinding } from "../../types/index.js";
|
|
19
|
-
import { type OutputArtifact, type ArtifactGovernanceFinding } from "../../domain/contracts/artifact_contract_registry.js";
|
|
20
|
-
import type { Conflict, Redundancy } from "../../context/config/conflicts.js";
|
|
21
|
-
import { type CorePrinciplesReport } from "./core_engineering_principles.js";
|
|
22
|
-
import { type ContractGovernanceFinding } from "../../shared/contracts/contract_registry/types.js";
|
|
23
|
-
export interface PolicySummary {
|
|
24
|
-
policy_id: string;
|
|
25
|
-
escape_count: number;
|
|
26
|
-
false_positive_count: number;
|
|
27
|
-
action: ActionDecision;
|
|
28
|
-
}
|
|
29
|
-
export interface TopFix {
|
|
30
|
-
escape_id: string;
|
|
31
|
-
policy_id: string;
|
|
32
|
-
failure_type: string;
|
|
33
|
-
fix_required: string;
|
|
34
|
-
owner: string;
|
|
35
|
-
due_date: string;
|
|
36
|
-
}
|
|
37
|
-
export interface DualLayerSummary {
|
|
38
|
-
total_mechanisms: number;
|
|
39
|
-
dual_layer_enforced_count: number;
|
|
40
|
-
hard_fail_count: number;
|
|
41
|
-
advisory_count: number;
|
|
42
|
-
findings: DualLayerGovernanceFinding[];
|
|
43
|
-
}
|
|
44
|
-
export interface GovernanceReport {
|
|
45
|
-
generated_at: string;
|
|
46
|
-
total_tasks: number;
|
|
47
|
-
audit_by_risk: Record<string, number>;
|
|
48
|
-
sampled_count: number | null;
|
|
49
|
-
total_escapes: number;
|
|
50
|
-
total_false_positives: number;
|
|
51
|
-
escape_by_type: Record<string, number>;
|
|
52
|
-
danger_policies: PolicySummary[];
|
|
53
|
-
downgrade_candidates: PolicySummary[];
|
|
54
|
-
top_fixes: TopFix[];
|
|
55
|
-
dual_layer_summary?: DualLayerSummary;
|
|
56
|
-
artifact_governance?: {
|
|
57
|
-
artifact_count: number;
|
|
58
|
-
hard_fail_count: number;
|
|
59
|
-
advisory_count: number;
|
|
60
|
-
findings: ArtifactGovernanceFinding[];
|
|
61
|
-
};
|
|
62
|
-
config_governance?: {
|
|
63
|
-
conflict_count: number;
|
|
64
|
-
redundancy_count: number;
|
|
65
|
-
conflicts: Conflict[];
|
|
66
|
-
redundancies: Redundancy[];
|
|
67
|
-
};
|
|
68
|
-
core_principles_governance?: {
|
|
69
|
-
task_level: string;
|
|
70
|
-
overall_passed: boolean;
|
|
71
|
-
principles: Array<{
|
|
72
|
-
principle_id: string;
|
|
73
|
-
status: string;
|
|
74
|
-
findings: string[];
|
|
75
|
-
}>;
|
|
76
|
-
};
|
|
77
|
-
contract_governance?: {
|
|
78
|
-
total_contracts: number;
|
|
79
|
-
hard_fail_count: number;
|
|
80
|
-
warning_count: number;
|
|
81
|
-
advisory_count: number;
|
|
82
|
-
findings: ContractGovernanceFinding[];
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 生成治理健康报告。
|
|
87
|
-
* 汇总审计池、逃逸报告、能力决策和抽样决策的统计数据,识别危险策略和降级候选。
|
|
88
|
-
* 支持双层机制、制品契约、配置优先级契约和核心原则的治理检查。
|
|
89
|
-
* @param auditStats - 审计池统计数据
|
|
90
|
-
* @param auditItems - 审计条目列表
|
|
91
|
-
* @param escapeReports - 逃逸报告列表
|
|
92
|
-
* @param escapeStats - 逃逸报告统计数据
|
|
93
|
-
* @param decisions - 能力动作决策列表
|
|
94
|
-
* @param now - 报告生成时间(可选,默认当前时间)
|
|
95
|
-
* @param sampleDecisions - 抽样决策列表(可选)
|
|
96
|
-
* @param dualLayerFindings - 双层机制发现列表(可选)
|
|
97
|
-
* @param dualLayerMechanismCount - 双层机制总数(可选)
|
|
98
|
-
* @param artifacts - 输出制品列表(可选,用于制品契约检查)
|
|
99
|
-
* @param configConflicts - 配置冲突列表(可选,来自 detectConflicts)
|
|
100
|
-
* @param configRedundancies - 配置冗余列表(可选,来自 detectRedundancies)
|
|
101
|
-
* @param corePrinciples - 核心原则遵循性报告列表(可选)
|
|
102
|
-
* @returns 完整的治理健康报告
|
|
103
|
-
*/
|
|
104
|
-
/**
|
|
105
|
-
* 生成治理健康报告。
|
|
106
|
-
* @param options - 报告选项,包含审计池和能力状态存储
|
|
107
|
-
* @returns 治理报告,包含任务统计、逃逸分析和降级建议
|
|
108
|
-
*/
|
|
109
|
-
export declare function generateReport(auditStats: AuditPoolStats, _auditItems: AuditItem[], escapeReports: EscapeReport[], escapeStats: EscapeReportStats, decisions: ActionDecision[], now?: Date, sampleDecisions?: SamplingDecision[], dualLayerFindings?: DualLayerGovernanceFinding[], dualLayerMechanismCount?: number, artifacts?: OutputArtifact[], configConflicts?: Conflict[], configRedundancies?: Redundancy[], corePrinciples?: CorePrinciplesReport[], contractFindings?: ContractGovernanceFinding[], totalRegistryContracts?: number): GovernanceReport;
|
|
110
|
-
//# sourceMappingURL=governance_report.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"governance_report.d.ts","sourceRoot":"","sources":["../../../src/verify/audit/governance_report.ts"],"names":[],"mappings":"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"}
|