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.
Files changed (269) hide show
  1. package/README.md +3 -3
  2. package/dist/context/contracts/lifecycle_knowledge_contract.d.ts.map +1 -1
  3. package/dist/context/contracts/lifecycle_knowledge_contract.js +2 -2
  4. package/dist/context/contracts/lifecycle_knowledge_contract.js.map +1 -1
  5. package/dist/core/task_context/manager.d.ts +0 -8
  6. package/dist/core/task_context/manager.d.ts.map +1 -1
  7. package/dist/core/task_context/manager.js +1 -19
  8. package/dist/core/task_context/manager.js.map +1 -1
  9. package/dist/core/task_context/state_fact_classifier.d.ts +0 -8
  10. package/dist/core/task_context/state_fact_classifier.d.ts.map +1 -1
  11. package/dist/core/task_context/state_fact_classifier.js +0 -36
  12. package/dist/core/task_context/state_fact_classifier.js.map +1 -1
  13. package/dist/domain/contracts/design_artifact_pack.d.ts +0 -1
  14. package/dist/domain/contracts/design_artifact_pack.d.ts.map +1 -1
  15. package/dist/domain/contracts/design_artifact_pack.js +1 -4
  16. package/dist/domain/contracts/design_artifact_pack.js.map +1 -1
  17. package/dist/domain/index.d.ts +1 -1
  18. package/dist/domain/index.d.ts.map +1 -1
  19. package/dist/domain/registry.d.ts +2 -2
  20. package/dist/domain/registry.d.ts.map +1 -1
  21. package/dist/domain/types.d.ts +1 -12
  22. package/dist/domain/types.d.ts.map +1 -1
  23. package/dist/domain/types.js +3 -0
  24. package/dist/domain/types.js.map +1 -1
  25. package/dist/gate/contracts/capability_registry.d.ts.map +1 -1
  26. package/dist/gate/contracts/capability_registry.js +0 -26
  27. package/dist/gate/contracts/capability_registry.js.map +1 -1
  28. package/dist/gate/contracts/control_plane_contract.d.ts +1 -1
  29. package/dist/gate/contracts/control_plane_contract.d.ts.map +1 -1
  30. package/dist/gate/contracts/control_plane_contract.js +1 -10
  31. package/dist/gate/contracts/control_plane_contract.js.map +1 -1
  32. package/dist/gate/contracts/tool_invocation_contract_registry.d.ts +1 -0
  33. package/dist/gate/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
  34. package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
  35. package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
  36. package/dist/gate/index.d.ts +0 -2
  37. package/dist/gate/index.d.ts.map +1 -1
  38. package/dist/gate/index.js +0 -1
  39. package/dist/gate/index.js.map +1 -1
  40. package/dist/server/tools/index.d.ts.map +1 -1
  41. package/dist/server/tools/index.js +1 -3
  42. package/dist/server/tools/index.js.map +1 -1
  43. package/dist/server/tools/lazy_loaders.d.ts +0 -23
  44. package/dist/server/tools/lazy_loaders.d.ts.map +1 -1
  45. package/dist/server/tools/lazy_loaders.js +2 -33
  46. package/dist/server/tools/lazy_loaders.js.map +1 -1
  47. package/dist/server/tools/middleware.d.ts +2 -5
  48. package/dist/server/tools/middleware.d.ts.map +1 -1
  49. package/dist/server/tools/middleware.js +3 -33
  50. package/dist/server/tools/middleware.js.map +1 -1
  51. package/dist/server/tools/sf_task.js +2 -7
  52. package/dist/server/tools/sf_task.js.map +1 -1
  53. package/dist/server/tools/types.d.ts +0 -2
  54. package/dist/server/tools/types.d.ts.map +1 -1
  55. package/dist/types/pipeline_types.d.ts +1 -9
  56. package/dist/types/pipeline_types.d.ts.map +1 -1
  57. package/dist/verify/audit/verifier.d.ts.map +1 -1
  58. package/dist/verify/audit/verifier.js +0 -33
  59. package/dist/verify/audit/verifier.js.map +1 -1
  60. package/dist/verify/index.d.ts +1 -4
  61. package/dist/verify/index.d.ts.map +1 -1
  62. package/dist/verify/index.js +0 -3
  63. package/dist/verify/index.js.map +1 -1
  64. package/dist/verify/types.d.ts +0 -21
  65. package/dist/verify/types.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +7 -21
  68. package/dist/context/engine/dependency_scanner.d.ts +0 -23
  69. package/dist/context/engine/dependency_scanner.d.ts.map +0 -1
  70. package/dist/context/engine/dependency_scanner.js +0 -309
  71. package/dist/context/engine/dependency_scanner.js.map +0 -1
  72. package/dist/context/engine/exploration.d.ts +0 -194
  73. package/dist/context/engine/exploration.d.ts.map +0 -1
  74. package/dist/context/engine/exploration.js +0 -712
  75. package/dist/context/engine/exploration.js.map +0 -1
  76. package/dist/context/knowledge/knowledge_acceptance_registry.d.ts +0 -42
  77. package/dist/context/knowledge/knowledge_acceptance_registry.d.ts.map +0 -1
  78. package/dist/context/knowledge/knowledge_acceptance_registry.js +0 -249
  79. package/dist/context/knowledge/knowledge_acceptance_registry.js.map +0 -1
  80. package/dist/context/knowledge/knowledge_scenario_registry.d.ts +0 -26
  81. package/dist/context/knowledge/knowledge_scenario_registry.d.ts.map +0 -1
  82. package/dist/context/knowledge/knowledge_scenario_registry.js +0 -267
  83. package/dist/context/knowledge/knowledge_scenario_registry.js.map +0 -1
  84. package/dist/context/knowledge/knowledge_sovereignty.d.ts +0 -65
  85. package/dist/context/knowledge/knowledge_sovereignty.d.ts.map +0 -1
  86. package/dist/context/knowledge/knowledge_sovereignty.js +0 -199
  87. package/dist/context/knowledge/knowledge_sovereignty.js.map +0 -1
  88. package/dist/context/team_awareness.d.ts +0 -42
  89. package/dist/context/team_awareness.d.ts.map +0 -1
  90. package/dist/context/team_awareness.js +0 -154
  91. package/dist/context/team_awareness.js.map +0 -1
  92. package/dist/context/templates/template_asset_visibility.d.ts +0 -116
  93. package/dist/context/templates/template_asset_visibility.d.ts.map +0 -1
  94. package/dist/context/templates/template_asset_visibility.js +0 -310
  95. package/dist/context/templates/template_asset_visibility.js.map +0 -1
  96. package/dist/gate/conflict_gate.d.ts +0 -53
  97. package/dist/gate/conflict_gate.d.ts.map +0 -1
  98. package/dist/gate/conflict_gate.js +0 -96
  99. package/dist/gate/conflict_gate.js.map +0 -1
  100. package/dist/gate/contracts/capability_action_advisor.d.ts +0 -34
  101. package/dist/gate/contracts/capability_action_advisor.d.ts.map +0 -1
  102. package/dist/gate/contracts/capability_action_advisor.js +0 -165
  103. package/dist/gate/contracts/capability_action_advisor.js.map +0 -1
  104. package/dist/gate/contracts/capability_state_store.d.ts +0 -121
  105. package/dist/gate/contracts/capability_state_store.d.ts.map +0 -1
  106. package/dist/gate/contracts/capability_state_store.js +0 -188
  107. package/dist/gate/contracts/capability_state_store.js.map +0 -1
  108. package/dist/gate/contracts/contract_guard.d.ts +0 -50
  109. package/dist/gate/contracts/contract_guard.d.ts.map +0 -1
  110. package/dist/gate/contracts/contract_guard.js +0 -611
  111. package/dist/gate/contracts/contract_guard.js.map +0 -1
  112. package/dist/gate/contracts/escape_report.d.ts +0 -103
  113. package/dist/gate/contracts/escape_report.d.ts.map +0 -1
  114. package/dist/gate/contracts/escape_report.js +0 -145
  115. package/dist/gate/contracts/escape_report.js.map +0 -1
  116. package/dist/gate/feasibility_checker.d.ts +0 -27
  117. package/dist/gate/feasibility_checker.d.ts.map +0 -1
  118. package/dist/gate/feasibility_checker.js +0 -114
  119. package/dist/gate/feasibility_checker.js.map +0 -1
  120. package/dist/gate/migration_guard.d.ts +0 -22
  121. package/dist/gate/migration_guard.d.ts.map +0 -1
  122. package/dist/gate/migration_guard.js +0 -277
  123. package/dist/gate/migration_guard.js.map +0 -1
  124. package/dist/gate/scope_lease.d.ts +0 -94
  125. package/dist/gate/scope_lease.d.ts.map +0 -1
  126. package/dist/gate/scope_lease.js +0 -180
  127. package/dist/gate/scope_lease.js.map +0 -1
  128. package/dist/git/git_deps.d.ts +0 -85
  129. package/dist/git/git_deps.d.ts.map +0 -1
  130. package/dist/git/git_deps.js +0 -22
  131. package/dist/git/git_deps.js.map +0 -1
  132. package/dist/git/operations.d.ts +0 -173
  133. package/dist/git/operations.d.ts.map +0 -1
  134. package/dist/git/operations.js +0 -350
  135. package/dist/git/operations.js.map +0 -1
  136. package/dist/server/tools/gate_engine.d.ts +0 -17
  137. package/dist/server/tools/gate_engine.d.ts.map +0 -1
  138. package/dist/server/tools/gate_engine.js +0 -17
  139. package/dist/server/tools/gate_engine.js.map +0 -1
  140. package/dist/server/tools/middleware/budget_check.d.ts +0 -35
  141. package/dist/server/tools/middleware/budget_check.d.ts.map +0 -1
  142. package/dist/server/tools/middleware/budget_check.js +0 -69
  143. package/dist/server/tools/middleware/budget_check.js.map +0 -1
  144. package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts +0 -16
  145. package/dist/shared/contracts/contract_registry/builtin_contracts_core.d.ts.map +0 -1
  146. package/dist/shared/contracts/contract_registry/builtin_contracts_core.js +0 -306
  147. package/dist/shared/contracts/contract_registry/builtin_contracts_core.js.map +0 -1
  148. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts +0 -16
  149. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.d.ts.map +0 -1
  150. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js +0 -304
  151. package/dist/shared/contracts/contract_registry/builtin_contracts_core_2.js.map +0 -1
  152. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts +0 -16
  153. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.d.ts.map +0 -1
  154. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js +0 -434
  155. package/dist/shared/contracts/contract_registry/builtin_contracts_extended.js.map +0 -1
  156. package/dist/shared/contracts/contract_registry/index.d.ts +0 -8
  157. package/dist/shared/contracts/contract_registry/index.d.ts.map +0 -1
  158. package/dist/shared/contracts/contract_registry/index.js +0 -7
  159. package/dist/shared/contracts/contract_registry/index.js.map +0 -1
  160. package/dist/shared/contracts/contract_registry/registry.d.ts +0 -62
  161. package/dist/shared/contracts/contract_registry/registry.d.ts.map +0 -1
  162. package/dist/shared/contracts/contract_registry/registry.js +0 -191
  163. package/dist/shared/contracts/contract_registry/registry.js.map +0 -1
  164. package/dist/shared/contracts/contract_registry/registry_internal.d.ts +0 -19
  165. package/dist/shared/contracts/contract_registry/registry_internal.d.ts.map +0 -1
  166. package/dist/shared/contracts/contract_registry/registry_internal.js +0 -54
  167. package/dist/shared/contracts/contract_registry/registry_internal.js.map +0 -1
  168. package/dist/shared/contracts/contract_registry/types.d.ts +0 -47
  169. package/dist/shared/contracts/contract_registry/types.d.ts.map +0 -1
  170. package/dist/shared/contracts/contract_registry/types.js +0 -5
  171. package/dist/shared/contracts/contract_registry/types.js.map +0 -1
  172. package/dist/shared/contracts/contract_registry/validation.d.ts +0 -25
  173. package/dist/shared/contracts/contract_registry/validation.d.ts.map +0 -1
  174. package/dist/shared/contracts/contract_registry/validation.js +0 -363
  175. package/dist/shared/contracts/contract_registry/validation.js.map +0 -1
  176. package/dist/shared/llm_gateway.d.ts +0 -186
  177. package/dist/shared/llm_gateway.d.ts.map +0 -1
  178. package/dist/shared/llm_gateway.js +0 -393
  179. package/dist/shared/llm_gateway.js.map +0 -1
  180. package/dist/verify/audit/audit_sampler.d.ts +0 -29
  181. package/dist/verify/audit/audit_sampler.d.ts.map +0 -1
  182. package/dist/verify/audit/audit_sampler.js +0 -42
  183. package/dist/verify/audit/audit_sampler.js.map +0 -1
  184. package/dist/verify/audit/debt_reporter.d.ts +0 -22
  185. package/dist/verify/audit/debt_reporter.d.ts.map +0 -1
  186. package/dist/verify/audit/debt_reporter.js +0 -107
  187. package/dist/verify/audit/debt_reporter.js.map +0 -1
  188. package/dist/verify/audit/debugger.d.ts +0 -25
  189. package/dist/verify/audit/debugger.d.ts.map +0 -1
  190. package/dist/verify/audit/debugger.js +0 -429
  191. package/dist/verify/audit/debugger.js.map +0 -1
  192. package/dist/verify/audit/degradation.d.ts +0 -62
  193. package/dist/verify/audit/degradation.d.ts.map +0 -1
  194. package/dist/verify/audit/degradation.js +0 -78
  195. package/dist/verify/audit/degradation.js.map +0 -1
  196. package/dist/verify/audit/developer_sovereignty.d.ts +0 -29
  197. package/dist/verify/audit/developer_sovereignty.d.ts.map +0 -1
  198. package/dist/verify/audit/developer_sovereignty.js +0 -137
  199. package/dist/verify/audit/developer_sovereignty.js.map +0 -1
  200. package/dist/verify/audit/failure_report.d.ts +0 -76
  201. package/dist/verify/audit/failure_report.d.ts.map +0 -1
  202. package/dist/verify/audit/failure_report.js +0 -145
  203. package/dist/verify/audit/failure_report.js.map +0 -1
  204. package/dist/verify/audit/governance_report.d.ts +0 -110
  205. package/dist/verify/audit/governance_report.d.ts.map +0 -1
  206. package/dist/verify/audit/governance_report.js +0 -194
  207. package/dist/verify/audit/governance_report.js.map +0 -1
  208. package/dist/verify/audit/mutation_audit.d.ts +0 -40
  209. package/dist/verify/audit/mutation_audit.d.ts.map +0 -1
  210. package/dist/verify/audit/mutation_audit.js +0 -154
  211. package/dist/verify/audit/mutation_audit.js.map +0 -1
  212. package/dist/verify/audit/risk_sampler.d.ts +0 -44
  213. package/dist/verify/audit/risk_sampler.d.ts.map +0 -1
  214. package/dist/verify/audit/risk_sampler.js +0 -80
  215. package/dist/verify/audit/risk_sampler.js.map +0 -1
  216. package/dist/verify/audit/runtime_safety.d.ts +0 -89
  217. package/dist/verify/audit/runtime_safety.d.ts.map +0 -1
  218. package/dist/verify/audit/runtime_safety.js +0 -209
  219. package/dist/verify/audit/runtime_safety.js.map +0 -1
  220. package/dist/verify/audit/semantic_evidence.d.ts +0 -36
  221. package/dist/verify/audit/semantic_evidence.d.ts.map +0 -1
  222. package/dist/verify/audit/semantic_evidence.js +0 -90
  223. package/dist/verify/audit/semantic_evidence.js.map +0 -1
  224. package/dist/verify/audit/test_generator.d.ts +0 -23
  225. package/dist/verify/audit/test_generator.d.ts.map +0 -1
  226. package/dist/verify/audit/test_generator.js +0 -278
  227. package/dist/verify/audit/test_generator.js.map +0 -1
  228. package/dist/verify/audit/test_quality.d.ts +0 -49
  229. package/dist/verify/audit/test_quality.d.ts.map +0 -1
  230. package/dist/verify/audit/test_quality.js +0 -684
  231. package/dist/verify/audit/test_quality.js.map +0 -1
  232. package/dist/verify/change_coordinator.d.ts +0 -45
  233. package/dist/verify/change_coordinator.d.ts.map +0 -1
  234. package/dist/verify/change_coordinator.js +0 -168
  235. package/dist/verify/change_coordinator.js.map +0 -1
  236. package/dist/verify/contracts/decision_contract.d.ts +0 -51
  237. package/dist/verify/contracts/decision_contract.d.ts.map +0 -1
  238. package/dist/verify/contracts/decision_contract.js +0 -70
  239. package/dist/verify/contracts/decision_contract.js.map +0 -1
  240. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts +0 -17
  241. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +0 -1
  242. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js +0 -428
  243. package/dist/verify/contracts/mechanism_contract_registry/contracts-audit.js.map +0 -1
  244. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts +0 -17
  245. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +0 -1
  246. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js +0 -429
  247. package/dist/verify/contracts/mechanism_contract_registry/contracts-governance.js.map +0 -1
  248. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +0 -17
  249. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +0 -1
  250. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js +0 -194
  251. package/dist/verify/contracts/mechanism_contract_registry/contracts-pipeline.js.map +0 -1
  252. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts +0 -17
  253. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +0 -1
  254. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js +0 -365
  255. package/dist/verify/contracts/mechanism_contract_registry/contracts-platform.js.map +0 -1
  256. package/dist/verify/contracts/mechanism_contract_registry/index.d.ts +0 -19
  257. package/dist/verify/contracts/mechanism_contract_registry/index.d.ts.map +0 -1
  258. package/dist/verify/contracts/mechanism_contract_registry/index.js +0 -21
  259. package/dist/verify/contracts/mechanism_contract_registry/index.js.map +0 -1
  260. package/dist/verify/contracts/mechanism_contract_registry/types.d.ts +0 -33
  261. package/dist/verify/contracts/mechanism_contract_registry/types.d.ts.map +0 -1
  262. package/dist/verify/contracts/mechanism_contract_registry/types.js +0 -5
  263. package/dist/verify/contracts/mechanism_contract_registry/types.js.map +0 -1
  264. package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts +0 -38
  265. package/dist/verify/contracts/mechanism_contract_registry/validation.d.ts.map +0 -1
  266. package/dist/verify/contracts/mechanism_contract_registry/validation.js +0 -136
  267. package/dist/verify/contracts/mechanism_contract_registry/validation.js.map +0 -1
  268. package/templates/shared/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +0 -54
  269. package/templates/shared//346/265/201/345/274/217/345/277/203/350/267/263.md +0 -64
@@ -1 +0,0 @@
1
- {"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../../src/verify/audit/debugger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAOV,YAAY,EACb,MAAM,sBAAsB,CAAC;AAic9B;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,YAAY,CAwBd"}
@@ -1,429 +0,0 @@
1
- /**
2
- * Debugger — 审计层模块。
3
- *
4
- * 职责边界:
5
- * - 负责:debugError 等 审计层职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:发布门禁、质量检查
9
- * 调用谁:index、node:crypto、logger
10
- *
11
- * 数据流:审计输入(代码/配置) → 检查 → 评分/报告
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import { createHash } from "node:crypto";
15
- import { debug } from "../../shared/logger.js";
16
- // 敏感内容模式 — 与 failure_report.ts 保持一致
17
- const SENSITIVE_PATTERNS = [
18
- /sk-[a-zA-Z0-9]{20,}/g,
19
- /\b\d{11}\b/g,
20
- /password\s*[:=]\s*\S+/gi,
21
- /secret\s*[:=]\s*\S+/gi,
22
- /api_key\s*[:=]\s*\S+/gi,
23
- /token\s*[:=]\s*\S+/gi,
24
- /raw_stdout/gi,
25
- /raw_stderr/gi,
26
- ];
27
- function redactErrorOutputForDebug(raw) {
28
- let result = raw;
29
- for (const pattern of SENSITIVE_PATTERNS) {
30
- result = result.replace(pattern, "[REDACTED]");
31
- }
32
- if (result.length > 500) {
33
- result = result.substring(0, 500) + "...[truncated]";
34
- }
35
- return result;
36
- }
37
- // TAR-003: 前 32 字符(128bit)避免碰撞
38
- function stableHashForDebug(content) {
39
- return createHash("sha256").update(content).digest("hex").substring(0, 32);
40
- }
41
- /**
42
- * 调试器 — 对错误输出执行六步调试流水线分析。
43
- *
44
- * 流水线步骤:
45
- * 1. 错误解析(parseError):将原始错误输出分类为编译错误、测试失败、运行时异常或未知类型
46
- * 2. 调用链提取(extractCallChain):从堆栈跟踪中提取项目范围内的调用链
47
- * 3. 根因分析(analyzeRootCause):基于规则引擎判定错误类型和来源阶段
48
- * 4. 修复建议(proposeFix):根据错误类型提供定向修复策略
49
- * 5. 测试补充建议(suggestTests):推荐与错误类型匹配的测试场景
50
- * 6. 结果汇总(debugError):将以上步骤的结果组装为完整的调试会话
51
- */
52
- /**
53
- * 上游阶段检测模式。
54
- * 用于判断错误是否源自需求、设计、权限、DDL 或 API 契约阶段,
55
- * 这类错误通常禁止自动修复,需人工介入。
56
- */
57
- const PHASE_ORIGIN_PATTERNS = [
58
- { pattern: /requirement|需求|spec/i, phase: "requirement" },
59
- { pattern: /design|架构|设计|DDL|表结构|接口定义/i, phase: "design" },
60
- { pattern: /permission|权限|角色|授权/i, phase: "permission" },
61
- { pattern: /migration|数据库变更|schema/i, phase: "ddl" },
62
- { pattern: /api.*contract|接口契约|swagger/i, phase: "api_contract" },
63
- ];
64
- // ── 第一步:错误解析(分类阶段) ──
65
- /** 编译错误匹配模式 — 匹配 TypeScript 编译错误、类型不匹配、模块找不到等 */
66
- const COMPILATION_PATTERNS = [
67
- /error TS\d+/,
68
- /error:/,
69
- /Cannot find/,
70
- /Type '.*' is not assignable/,
71
- ];
72
- /** 测试失败匹配模式 — 匹配测试框架输出的失败标记和断言错误 */
73
- const TEST_FAILURE_PATTERNS = [
74
- /FAIL|✕|×|AssertionError|expect\(/,
75
- /Test suite failed/,
76
- ];
77
- /** 运行时异常匹配模式 — 匹配 JavaScript/TypeScript 常见的运行时错误类型 */
78
- const RUNTIME_PATTERNS = [
79
- /Error:/,
80
- /Exception:/,
81
- /TypeError:/,
82
- /ReferenceError:/,
83
- /throw new/,
84
- ];
85
- /** 源文件行号提取正则 — 从错误输出中提取 src/ 或 ./ 开头的源文件路径和行号 */
86
- const FILE_LINE_PATTERN = /(?:src\/[^\s:(]+|\.\/[^\s:(]+)\.(?:ts|tsx|js|jsx)[\s(]*(\d+)/;
87
- /**
88
- * 解析错误输出,将其分类为编译错误、测试失败、运行时异常或未知类型。
89
- * 同时提取文件路径、行号、错误消息和堆栈帧信息。
90
- * @param errorOutput - 原始错误输出文本
91
- * @returns 解析后的错误信息
92
- */
93
- function parseError(errorOutput) {
94
- const lines = errorOutput.split("\n");
95
- const stack_frames = [];
96
- // 提取堆栈帧(格式为 "at functionName (file:line:column)")
97
- for (const line of lines) {
98
- if (/^\s*at\s+/.test(line)) {
99
- stack_frames.push(line.trim());
100
- }
101
- }
102
- // 优先级 1: 编译错误(类型定义、导入路径问题等)
103
- for (const pattern of COMPILATION_PATTERNS) {
104
- if (pattern.test(errorOutput)) {
105
- const fileLineMatch = FILE_LINE_PATTERN.exec(errorOutput);
106
- const filePathMatch = /(?:src\/[^\s:(]+|\.\/[^\s:(]+)\.(?:ts|tsx|js|jsx)/.exec(errorOutput);
107
- return {
108
- error_type: "compilation",
109
- file: filePathMatch ? filePathMatch[0] : undefined,
110
- line: fileLineMatch ? parseInt(fileLineMatch[1], 10) : undefined,
111
- message: extractErrorMessage(errorOutput),
112
- stack_frames,
113
- };
114
- }
115
- }
116
- // 优先级 2: 测试失败(断言不通过、测试套件失败等)
117
- for (const pattern of TEST_FAILURE_PATTERNS) {
118
- if (pattern.test(errorOutput)) {
119
- const testNameMatch = /✕\s+(.+)/.exec(errorOutput) || /FAIL\s+(.+)/.exec(errorOutput);
120
- const assertionMatch = /AssertionError:\s*(.+)/.exec(errorOutput);
121
- return {
122
- error_type: "test_failure",
123
- message: assertionMatch
124
- ? assertionMatch[1].trim()
125
- : testNameMatch
126
- ? testNameMatch[1].trim()
127
- : extractErrorMessage(errorOutput),
128
- stack_frames,
129
- };
130
- }
131
- }
132
- // 优先级 3: 运行时异常(TypeError、ReferenceError 等)
133
- for (const pattern of RUNTIME_PATTERNS) {
134
- if (pattern.test(errorOutput)) {
135
- const exceptionMatch = /(TypeError|ReferenceError|Error|Exception|RangeError|SyntaxError):\s*(.+)/.exec(errorOutput);
136
- return {
137
- error_type: "runtime",
138
- message: exceptionMatch
139
- ? `${exceptionMatch[1]}: ${exceptionMatch[2].trim()}`
140
- : extractErrorMessage(errorOutput),
141
- stack_frames,
142
- };
143
- }
144
- }
145
- // 兜底: 无法归类的未知错误
146
- return {
147
- error_type: "unknown",
148
- message: extractErrorMessage(errorOutput),
149
- stack_frames,
150
- };
151
- }
152
- /**
153
- * 从错误输出中提取有意义的错误消息。
154
- * 优先提取包含 error/Error/FAIL/throw 等关键词的行,回退到第一行非空内容。
155
- * 截取最大 300 字符,避免过长消息。
156
- * @param errorOutput - 原始错误输出
157
- * @returns 提取到的错误消息文本
158
- */
159
- function extractErrorMessage(errorOutput) {
160
- // 尝试提取包含错误关键词的行
161
- const lines = errorOutput.split("\n").filter((l) => l.trim().length > 0);
162
- for (const line of lines) {
163
- const trimmed = line.trim();
164
- if (/error|Error|FAIL|fail|throw|panic/i.test(trimmed)) {
165
- // 截取合理长度,防止消息过长
166
- return trimmed.length > 300 ? trimmed.substring(0, 300) + "..." : trimmed;
167
- }
168
- }
169
- // 回退:无关键词命中时,取第一行非空内容
170
- const first = lines[0]?.trim() ?? "";
171
- return first.length > 300 ? first.substring(0, 300) + "..." : first;
172
- }
173
- // ── 第二步:调用链提取 ──
174
- /** 堆栈帧正则 — 匹配格式 "at functionName (filePath:line:column)" */
175
- const STACK_FRAME_PATTERN = /at\s+(.+?)\s+\((.+?):(\d+):(\d+)\)/;
176
- /**
177
- * 从错误输出中提取调用链。
178
- * 解析标准格式的堆栈帧,可选地过滤到项目范围内的帧。
179
- * @param errorOutput - 原始错误输出
180
- * @param projectScope - 可选的项目路径范围,仅保留路径包含这些前缀的帧
181
- * @returns 调用链项列表(按调用顺序排列)
182
- */
183
- function extractCallChain(errorOutput, projectScope) {
184
- const chain = [];
185
- const scope = projectScope ?? [];
186
- const lines = errorOutput.split("\n");
187
- for (const line of lines) {
188
- const match = STACK_FRAME_PATTERN.exec(line.trim());
189
- if (!match)
190
- continue;
191
- const [, funcName, filePath, lineNum] = match;
192
- const lineNumber = parseInt(lineNum, 10);
193
- // 如果指定了项目范围,只保留范围内的帧
194
- if (scope.length > 0) {
195
- const inScope = scope.some((scopePath) => filePath.includes(scopePath));
196
- if (!inScope)
197
- continue;
198
- }
199
- chain.push({
200
- file: filePath,
201
- function: funcName,
202
- line: lineNumber,
203
- });
204
- }
205
- return chain;
206
- }
207
- // ── 第四步:根因分析 ──
208
- /**
209
- * 基于规则引擎分析错误的根因。
210
- *
211
- * 判定规则(按优先级):
212
- * 1. 上游阶段关键词匹配 → 确定性缺陷,禁止自动修复
213
- * 2. 编译错误 → 可修复(类型/导入问题)
214
- * 3. 测试失败 → 可修复(断言/数据问题)
215
- * 4. 同一错误重复 3 次以上 → 确定性缺陷
216
- * 5. 默认 → 可修复(通用错误)
217
- *
218
- * @param errorOutput - 原始错误输出
219
- * @param parsedError - 已解析的错误信息
220
- * @returns 根因分析结果(含失败类型、置信度和摘要)
221
- */
222
- function analyzeRootCause(errorOutput, parsedError) {
223
- // 规则 1: 检测上游阶段关键词(需求、设计、权限、DDL、接口契约)
224
- for (const { pattern, phase } of PHASE_ORIGIN_PATTERNS) {
225
- if (pattern.test(errorOutput)) {
226
- return {
227
- failure_type: "deterministic",
228
- phase_origin: phase,
229
- summary: `根因追溯至 ${phase} 阶段,禁止自动修复`,
230
- confidence: 0.85,
231
- };
232
- }
233
- }
234
- // 规则 2: 编译错误 → 通常可修复(类型定义或导入路径问题)
235
- if (parsedError.error_type === "compilation") {
236
- return {
237
- failure_type: "fixable",
238
- summary: "编译错误,类型定义或导入路径问题",
239
- confidence: 0.7,
240
- };
241
- }
242
- // 规则 3: 测试失败 → 通常可修复(断言条件或测试数据问题)
243
- if (parsedError.error_type === "test_failure") {
244
- return {
245
- failure_type: "fixable",
246
- summary: "测试失败,需检查断言条件或测试数据",
247
- confidence: 0.6,
248
- };
249
- }
250
- // 规则 4: 同一错误重复出现 3 次及以上 → 确定性缺陷(可能是逻辑死循环或配置错误)
251
- const errorLines = errorOutput.split("\n").filter((l) => l.trim().length > 0);
252
- const firstErrorLine = errorLines[0]?.trim() ?? "";
253
- const repeatCount = errorLines.filter((l) => l.trim() === firstErrorLine).length;
254
- if (repeatCount >= 3) {
255
- return {
256
- failure_type: "deterministic",
257
- summary: `同一错误重复出现 ${repeatCount} 次,判定为确定性缺陷`,
258
- confidence: 0.9,
259
- };
260
- }
261
- // 规则 5: 默认兜底 — 通用可修复错误
262
- return {
263
- failure_type: "fixable",
264
- summary: "通用可修复错误,需要进一步上下文分析",
265
- confidence: 0.5,
266
- };
267
- }
268
- // ── 第五步:修复建议 ──
269
- /**
270
- * 根据错误类型生成定向修复建议。
271
- *
272
- * 策略映射:
273
- * - compilation → 检查类型定义和导入路径(低风险)
274
- * - test_failure → 对比预期与实际输出(中风险)
275
- * - runtime → 添加空值检查和异常处理(中风险)
276
- * - unknown → 增加日志收集更多信息(高风险)
277
- *
278
- * @param parsedError - 已解析的错误信息
279
- * @param callChain - 调用链(用于定位相关文件)
280
- * @param _rootCause - 根因分析结果(当前版本未直接使用)
281
- * @returns 修复建议(包含描述、待检查文件、方法和风险等级)
282
- */
283
- function proposeFix(parsedError, callChain, _rootCause) {
284
- switch (parsedError.error_type) {
285
- case "compilation": {
286
- // 编译错误:定位到出错文件,从顶层依赖逐步修复
287
- const filesToCheck = [];
288
- if (parsedError.file) {
289
- filesToCheck.push(parsedError.file);
290
- }
291
- return {
292
- description: "检查类型定义和导入路径",
293
- files_to_check: filesToCheck,
294
- approach: "逐步修复类型错误,从最上层的依赖开始",
295
- risk: "low",
296
- };
297
- }
298
- case "test_failure": {
299
- // 测试失败:从调用链中提取涉及的文件,对比预期和实际输出
300
- const filesToCheck = callChain
301
- .map((item) => item.file)
302
- .filter((f, i, arr) => arr.indexOf(f) === i); // 去重
303
- return {
304
- description: "检查断言条件和测试数据",
305
- files_to_check: filesToCheck,
306
- approach: "对比预期与实际输出,定位差异根因",
307
- risk: "medium",
308
- };
309
- }
310
- case "runtime": {
311
- // 运行时异常:从调用链定位异常位置,添加防御性代码
312
- const filesToCheck = callChain
313
- .map((item) => item.file)
314
- .filter((f, i, arr) => arr.indexOf(f) === i); // 去重
315
- return {
316
- description: "定位异常抛出位置,检查边界条件",
317
- files_to_check: filesToCheck,
318
- approach: "添加空值检查和异常处理",
319
- risk: "medium",
320
- };
321
- }
322
- case "unknown":
323
- default: {
324
- // 未知错误:建议先收集更多上下文信息
325
- return {
326
- description: "收集更多错误上下文信息",
327
- files_to_check: [],
328
- approach: "增加日志输出以获取更多诊断信息",
329
- risk: "high",
330
- };
331
- }
332
- }
333
- }
334
- // ── 第六步:测试补充建议 ──
335
- /**
336
- * 根据错误类型推荐补充测试场景。
337
- * 每种错误类型对应不同的测试重点:
338
- * - compilation → 类型安全测试、编译时边界检查
339
- * - test_failure → 回归测试、等价类划分
340
- * - runtime → 空值/边界条件测试、异常处理路径
341
- * - unknown → 探索性测试
342
- * @param errorType - 已解析的错误类型
343
- * @returns 测试建议列表(含场景、覆盖范围和优先级)
344
- */
345
- function suggestTests(errorType) {
346
- switch (errorType) {
347
- case "compilation":
348
- return [
349
- {
350
- scenario: "类型安全测试",
351
- covers: "确保类型定义与实际使用一致",
352
- priority: "high",
353
- },
354
- {
355
- scenario: "编译时边界检查",
356
- covers: "验证极端类型场景和类型转换",
357
- priority: "medium",
358
- },
359
- ];
360
- case "test_failure":
361
- return [
362
- {
363
- scenario: "回归测试覆盖失败场景",
364
- covers: "防止已修复问题再次出现",
365
- priority: "high",
366
- },
367
- {
368
- scenario: "等价类划分测试",
369
- covers: "覆盖输入空间的典型和边界情况",
370
- priority: "medium",
371
- },
372
- ];
373
- case "runtime":
374
- return [
375
- {
376
- scenario: "空值/边界条件测试",
377
- covers: "验证对 undefined、null、空数组等边界值的处理",
378
- priority: "high",
379
- },
380
- {
381
- scenario: "异常处理路径测试",
382
- covers: "确保异常被正确捕获和恢复",
383
- priority: "high",
384
- },
385
- ];
386
- case "unknown":
387
- default:
388
- return [
389
- {
390
- scenario: "探索性测试用例",
391
- covers: "通过手动和自动化手段探索潜在问题区域",
392
- priority: "medium",
393
- },
394
- ];
395
- }
396
- }
397
- // ── 主入口:六步调试流水线 ──
398
- /**
399
- * 执行完整的六步调试流水线。
400
- * 依次执行错误解析、调用链提取、根因分析、修复建议和测试补充,
401
- * 将结果组装为完整的调试会话对象。
402
- * @param errorOutput - 原始错误输出文本
403
- * @param taskId - 关联的任务 ID
404
- * @param projectScope - 可选的项目路径范围(用于过滤调用链帧)
405
- * @returns 完整的调试会话对象
406
- */
407
- export function debugError(errorOutput, taskId, projectScope) {
408
- debug("调试器", `开始分析任务 ${taskId} 的错误`);
409
- const parsed_error = parseError(errorOutput);
410
- const call_chain = extractCallChain(errorOutput, projectScope);
411
- const root_cause = analyzeRootCause(errorOutput, parsed_error);
412
- const fix_proposal = proposeFix(parsed_error, call_chain, root_cause);
413
- const test_supplement = suggestTests(parsed_error.error_type);
414
- debug("调试器", `任务 ${taskId} 分析完成 — 错误类型: ${parsed_error.error_type},根因: ${root_cause.failure_type},置信度: ${root_cause.confidence}`);
415
- // 脱敏 — 不保留 raw error_output,只存脱敏摘要 + hash
416
- const redacted = redactErrorOutputForDebug(errorOutput);
417
- const hash = stableHashForDebug(errorOutput);
418
- return {
419
- task_id: taskId,
420
- error_output: redacted,
421
- error_output_hash: hash,
422
- parsed_error,
423
- call_chain,
424
- root_cause,
425
- fix_proposal,
426
- test_supplement,
427
- };
428
- }
429
- //# sourceMappingURL=debugger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../../src/verify/audit/debugger.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Degradation — 审计层模块。
3
- *
4
- * 职责边界:
5
- * - 负责:DegradedComponent 等 审计层职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:发布门禁、质量检查
9
- * 调用谁:diagnostic_registry
10
- *
11
- * 数据流:审计输入(代码/配置) → 检查 → 评分/报告
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import { type DiagnosticEvent } from "../../shared/diagnostic_registry.js";
15
- export type DegradedComponent = "verifier" | "reviewer" | "knowledge_injector" | "scope_controller" | "audit_logger" | "enforcement_guard";
16
- export interface DegradationEvent {
17
- event_id: string;
18
- task_id: string;
19
- component: DegradedComponent;
20
- previous_mode: "full" | "degraded" | "unavailable";
21
- current_mode: "full" | "degraded" | "unavailable";
22
- reason: string;
23
- user_visible_message: string;
24
- missing_capabilities: string[];
25
- risk_description: string;
26
- next_action: string;
27
- diagnostic_event: DiagnosticEvent | null;
28
- occurred_at: string;
29
- }
30
- export interface RecoveryGate {
31
- gate_id: string;
32
- task_id: string;
33
- component: DegradedComponent;
34
- checks: Array<{
35
- check_id: string;
36
- description: string;
37
- passed: boolean;
38
- }>;
39
- all_passed: boolean;
40
- evaluated_at: string;
41
- }
42
- /**
43
- * 创建降级事件。
44
- */
45
- export declare function createDegradationEvent(taskId: string, component: DegradedComponent, previousMode: "full" | "degraded" | "unavailable", reason: string, missingCapabilities: string[]): DegradationEvent | null;
46
- /**
47
- * 评估恢复门。
48
- * 从降级恢复到 full mode 必须通过所有检查。
49
- */
50
- export declare function evaluateRecoveryGate(taskId: string, component: DegradedComponent, checks: Array<{
51
- check_id: string;
52
- description: string;
53
- passed: boolean;
54
- }>): RecoveryGate;
55
- /**
56
- * 验证降级规则。
57
- */
58
- export declare function validateDegradation(event: DegradationEvent): Array<{
59
- error: string;
60
- severity: "hard_fail" | "warning";
61
- }>;
62
- //# sourceMappingURL=degradation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"degradation.d.ts","sourceRoot":"","sources":["../../../src/verify/audit/degradation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAElG,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,UAAU,GACV,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IACnD,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,EACjD,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAAE,GAC5B,gBAAgB,GAAG,IAAI,CAuBzB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GACxE,YAAY,CAUd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,CAAC,CAmBxH"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Degradation — 审计层模块。
3
- *
4
- * 职责边界:
5
- * - 负责:DegradedComponent 等 审计层职责
6
- * - 不负责:不属于本模块的职责由对应模块承担
7
- *
8
- * 被谁调用:发布门禁、质量检查
9
- * 调用谁:diagnostic_registry
10
- *
11
- * 数据流:审计输入(代码/配置) → 检查 → 评分/报告
12
- * 持久化:无持久化(纯计算/内存态)
13
- */
14
- import { createDiagnosticEvent } from "../../shared/diagnostic_registry.js";
15
- // 不可降级的组件(safety/enforcement 类)
16
- const NON_DEGRADABLE_COMPONENTS = ["enforcement_guard"];
17
- /**
18
- * 创建降级事件。
19
- */
20
- export function createDegradationEvent(taskId, component, previousMode, reason, missingCapabilities) {
21
- // safety/enforcement 类组件不可降级
22
- if (NON_DEGRADABLE_COMPONENTS.includes(component)) {
23
- return null;
24
- }
25
- const diagEvent = createDiagnosticEvent("SF-DEGRADE-0001", { component, reason });
26
- const currentMode = previousMode === "full" ? "degraded" : "unavailable";
27
- return {
28
- event_id: `de-${taskId}-${Date.now()}`,
29
- task_id: taskId,
30
- component,
31
- previous_mode: previousMode,
32
- current_mode: currentMode,
33
- reason,
34
- user_visible_message: `${component} 不可用,当前为降级模式。${reason}`,
35
- missing_capabilities: missingCapabilities,
36
- risk_description: `降级后 ${missingCapabilities.join("、")} 不可用`,
37
- next_action: "等待恢复后重新验证,或人工确认",
38
- diagnostic_event: diagEvent,
39
- occurred_at: new Date().toISOString(),
40
- };
41
- }
42
- /**
43
- * 评估恢复门。
44
- * 从降级恢复到 full mode 必须通过所有检查。
45
- */
46
- export function evaluateRecoveryGate(taskId, component, checks) {
47
- const allPassed = checks.every((c) => c.passed);
48
- return {
49
- gate_id: `rg-${taskId}-${Date.now()}`,
50
- task_id: taskId,
51
- component,
52
- checks,
53
- all_passed: allPassed,
54
- evaluated_at: new Date().toISOString(),
55
- };
56
- }
57
- /**
58
- * 验证降级规则。
59
- */
60
- export function validateDegradation(event) {
61
- const errors = [];
62
- if (event.current_mode === "degraded" || event.current_mode === "unavailable") {
63
- if (!event.user_visible_message || event.user_visible_message.trim() === "") {
64
- errors.push({
65
- error: "降级事件必须有用户可见消息",
66
- severity: "hard_fail",
67
- });
68
- }
69
- if (event.missing_capabilities.length === 0) {
70
- errors.push({
71
- error: "降级事件必须列出缺失能力",
72
- severity: "warning",
73
- });
74
- }
75
- }
76
- return errors;
77
- }
78
- //# sourceMappingURL=degradation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"degradation.js","sourceRoot":"","sources":["../../../src/verify/audit/degradation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAwB,MAAM,qCAAqC,CAAC;AAsClG,gCAAgC;AAChC,MAAM,yBAAyB,GAAwB,CAAC,mBAAmB,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,SAA4B,EAC5B,YAAiD,EACjD,MAAc,EACd,mBAA6B;IAE7B,6BAA6B;IAC7B,IAAI,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IAEzE,OAAO;QACL,QAAQ,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACtC,OAAO,EAAE,MAAM;QACf,SAAS;QACT,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,WAAW;QACzB,MAAM;QACN,oBAAoB,EAAE,GAAG,SAAS,gBAAgB,MAAM,EAAE;QAC1D,oBAAoB,EAAE,mBAAmB;QACzC,gBAAgB,EAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;QAC5D,WAAW,EAAE,iBAAiB;QAC9B,gBAAgB,EAAE,SAAS;QAC3B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,SAA4B,EAC5B,MAAyE;IAEzE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO;QACL,OAAO,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACrC,OAAO,EAAE,MAAM;QACf,SAAS;QACT,MAAM;QACN,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAuB;IACzD,MAAM,MAAM,GAAgE,EAAE,CAAC;IAE/E,IAAI,KAAK,CAAC,YAAY,KAAK,UAAU,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,29 +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 type { TaskContext } from "../../types/index.js";
15
- import type { PreDeliveryReview, VetoResult } from "../../gate/types.js";
16
- import type { GitOperations } from "../../git/git_deps.js";
17
- /** 向后兼容 re-export */
18
- export type { PreDeliveryReview, VetoResult } from "../../gate/types.js";
19
- /**
20
- * 交付前预览 — 收集 raw diff、风险摘要、证据链、回滚命令。
21
- * 使用 git_deps.GitOperations 获取真实 diff 统计和 commit/branch 信息。
22
- */
23
- export declare function preDeliveryReview(taskContext: TaskContext, gitOps: GitOperations, projectPath: string): Promise<PreDeliveryReview>;
24
- /**
25
- * 否决交付 — 开发者行使否决权。
26
- * 返回 VetoResult 记录否决事件,不修改任何状态。
27
- */
28
- export declare function vetoDelivery(taskId: string, reason: string): VetoResult;
29
- //# sourceMappingURL=developer_sovereignty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"developer_sovereignty.d.ts","sourceRoot":"","sources":["../../../src/verify/audit/developer_sovereignty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,qBAAqB;AACrB,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzE;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA8G5B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,UAAU,CASZ"}