speccore 8.3.21 → 8.3.26

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 (120) hide show
  1. package/README.md +7 -4
  2. package/dist/cli.js +19 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/analyze.d.ts.map +1 -1
  5. package/dist/commands/analyze.js +24 -8
  6. package/dist/commands/analyze.js.map +1 -1
  7. package/dist/commands/config.d.ts +3 -1
  8. package/dist/commands/config.d.ts.map +1 -1
  9. package/dist/commands/config.js +206 -90
  10. package/dist/commands/config.js.map +1 -1
  11. package/dist/commands/context-output.d.ts.map +1 -1
  12. package/dist/commands/context-output.js +0 -10
  13. package/dist/commands/context-output.js.map +1 -1
  14. package/dist/commands/dev.js +6 -7
  15. package/dist/commands/dev.js.map +1 -1
  16. package/dist/commands/doctor.d.ts.map +1 -1
  17. package/dist/commands/doctor.js +140 -0
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/done.js +51 -20
  20. package/dist/commands/done.js.map +1 -1
  21. package/dist/commands/execute.d.ts.map +1 -1
  22. package/dist/commands/execute.js +147 -45
  23. package/dist/commands/execute.js.map +1 -1
  24. package/dist/commands/help.js +5 -0
  25. package/dist/commands/help.js.map +1 -1
  26. package/dist/commands/init.d.ts +0 -2
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +9 -51
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/iteration/split.js +29 -17
  31. package/dist/commands/iteration/split.js.map +1 -1
  32. package/dist/commands/status-panel.d.ts.map +1 -1
  33. package/dist/commands/status-panel.js +13 -48
  34. package/dist/commands/status-panel.js.map +1 -1
  35. package/dist/commands/status.d.ts.map +1 -1
  36. package/dist/commands/status.js +32 -0
  37. package/dist/commands/status.js.map +1 -1
  38. package/dist/commands/update.d.ts.map +1 -1
  39. package/dist/commands/update.js +206 -8
  40. package/dist/commands/update.js.map +1 -1
  41. package/dist/commands/verdict.d.ts +16 -0
  42. package/dist/commands/verdict.d.ts.map +1 -0
  43. package/dist/commands/verdict.js +189 -0
  44. package/dist/commands/verdict.js.map +1 -0
  45. package/dist/commands/verify.d.ts.map +1 -1
  46. package/dist/commands/verify.js +3 -2
  47. package/dist/commands/verify.js.map +1 -1
  48. package/dist/core/analyze-engine.d.ts.map +1 -1
  49. package/dist/core/analyze-engine.js +3 -4
  50. package/dist/core/analyze-engine.js.map +1 -1
  51. package/dist/core/arbitration/arbitration-engine.d.ts +36 -0
  52. package/dist/core/arbitration/arbitration-engine.d.ts.map +1 -0
  53. package/dist/core/arbitration/arbitration-engine.js +142 -0
  54. package/dist/core/arbitration/arbitration-engine.js.map +1 -0
  55. package/dist/core/arbitration/conflict-detector.d.ts +15 -0
  56. package/dist/core/arbitration/conflict-detector.d.ts.map +1 -0
  57. package/dist/core/arbitration/conflict-detector.js +78 -0
  58. package/dist/core/arbitration/conflict-detector.js.map +1 -0
  59. package/dist/core/arbitration/conflict-types.d.ts +34 -0
  60. package/dist/core/arbitration/conflict-types.d.ts.map +1 -0
  61. package/dist/core/arbitration/conflict-types.js +8 -0
  62. package/dist/core/arbitration/conflict-types.js.map +1 -0
  63. package/dist/core/arbitration/contract-registry.d.ts +15 -0
  64. package/dist/core/arbitration/contract-registry.d.ts.map +1 -0
  65. package/dist/core/arbitration/contract-registry.js +185 -0
  66. package/dist/core/arbitration/contract-registry.js.map +1 -0
  67. package/dist/core/arbitration/contract-types.d.ts +33 -0
  68. package/dist/core/arbitration/contract-types.d.ts.map +1 -0
  69. package/dist/core/arbitration/contract-types.js +8 -0
  70. package/dist/core/arbitration/contract-types.js.map +1 -0
  71. package/dist/core/arbitration/index.d.ts +16 -0
  72. package/dist/core/arbitration/index.d.ts.map +1 -0
  73. package/dist/core/arbitration/index.js +32 -0
  74. package/dist/core/arbitration/index.js.map +1 -0
  75. package/dist/core/arbitration/l1-auto-arbiter.d.ts +19 -0
  76. package/dist/core/arbitration/l1-auto-arbiter.d.ts.map +1 -0
  77. package/dist/core/arbitration/l1-auto-arbiter.js +41 -0
  78. package/dist/core/arbitration/l1-auto-arbiter.js.map +1 -0
  79. package/dist/core/arbitration/l2-ai-arbiter.d.ts +19 -0
  80. package/dist/core/arbitration/l2-ai-arbiter.d.ts.map +1 -0
  81. package/dist/core/arbitration/l2-ai-arbiter.js +57 -0
  82. package/dist/core/arbitration/l2-ai-arbiter.js.map +1 -0
  83. package/dist/core/arbitration/l3-human-arbiter.d.ts +24 -0
  84. package/dist/core/arbitration/l3-human-arbiter.d.ts.map +1 -0
  85. package/dist/core/arbitration/l3-human-arbiter.js +65 -0
  86. package/dist/core/arbitration/l3-human-arbiter.js.map +1 -0
  87. package/dist/core/arbitration/verdict-generator.d.ts +16 -0
  88. package/dist/core/arbitration/verdict-generator.d.ts.map +1 -0
  89. package/dist/core/arbitration/verdict-generator.js +166 -0
  90. package/dist/core/arbitration/verdict-generator.js.map +1 -0
  91. package/dist/core/arbitration/verdict-types.d.ts +49 -0
  92. package/dist/core/arbitration/verdict-types.d.ts.map +1 -0
  93. package/dist/core/arbitration/verdict-types.js +8 -0
  94. package/dist/core/arbitration/verdict-types.js.map +1 -0
  95. package/dist/core/ask-config.d.ts +4 -3
  96. package/dist/core/ask-config.d.ts.map +1 -1
  97. package/dist/core/ask-config.js +79 -1
  98. package/dist/core/ask-config.js.map +1 -1
  99. package/dist/core/ask-engine.d.ts.map +1 -1
  100. package/dist/core/ask-engine.js +7 -0
  101. package/dist/core/ask-engine.js.map +1 -1
  102. package/dist/core/intent-recognition.d.ts +1 -1
  103. package/dist/core/intent-recognition.d.ts.map +1 -1
  104. package/dist/core/intent-recognition.js +10 -0
  105. package/dist/core/intent-recognition.js.map +1 -1
  106. package/dist/core/pattern-detector.d.ts +24 -0
  107. package/dist/core/pattern-detector.d.ts.map +1 -1
  108. package/dist/core/pattern-detector.js +172 -3
  109. package/dist/core/pattern-detector.js.map +1 -1
  110. package/dist/core/quality-audit.d.ts.map +1 -1
  111. package/dist/core/quality-audit.js +23 -15
  112. package/dist/core/quality-audit.js.map +1 -1
  113. package/dist/core/spec-skeleton.d.ts.map +1 -1
  114. package/dist/core/spec-skeleton.js +35 -12
  115. package/dist/core/spec-skeleton.js.map +1 -1
  116. package/dist/core/unified-config.d.ts +161 -27
  117. package/dist/core/unified-config.d.ts.map +1 -1
  118. package/dist/core/unified-config.js +856 -82
  119. package/dist/core/unified-config.js.map +1 -1
  120. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arbitration-engine.d.ts","sourceRoot":"","sources":["../../../src/core/arbitration/arbitration-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAYvE;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,GACjG,OAAO,CAAC,uBAAuB,CAAC,CAwElC"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * arbitration-engine.ts — 裁决引擎主入口
4
+ *
5
+ * v8.3.24+: 契约冲突裁决模型核心引擎
6
+ * 按层级路由冲突到对应的裁决器
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.getArbitrationConfig = getArbitrationConfig;
43
+ exports.runArbitration = runArbitration;
44
+ const conflict_detector_1 = require("./conflict-detector");
45
+ const l1_auto_arbiter_1 = require("./l1-auto-arbiter");
46
+ const l2_ai_arbiter_1 = require("./l2-ai-arbiter");
47
+ const l3_human_arbiter_1 = require("./l3-human-arbiter");
48
+ const verdict_generator_1 = require("./verdict-generator");
49
+ /**
50
+ * 读取 arbitration 配置(从 .speccore.yml)
51
+ * 默认: enabled=true, mode='full'
52
+ */
53
+ async function getArbitrationConfig() {
54
+ try {
55
+ const { loadConfig } = await Promise.resolve().then(() => __importStar(require('../unified-config')));
56
+ const config = await loadConfig();
57
+ return {
58
+ enabled: config.arbitration?.enabled ?? true,
59
+ mode: ['full', 'l1-only', 'report-only'].includes(config.arbitration?.mode)
60
+ ? config.arbitration.mode
61
+ : 'full',
62
+ };
63
+ }
64
+ catch { /* 静默失败 */ }
65
+ return { enabled: true, mode: 'full' };
66
+ }
67
+ /**
68
+ * 运行完整的契约冲突裁决流程
69
+ */
70
+ async function runArbitration(taskId, codePath, taskDir, options) {
71
+ const mode = options?.mode || 'full';
72
+ // 1. 检测冲突
73
+ const detection = await (0, conflict_detector_1.detectConflicts)(taskId, codePath, taskDir, options);
74
+ // 2. 按层级分组裁决(根据 mode 调整行为)
75
+ const verdicts = [];
76
+ const resolvedConflicts = [];
77
+ const pendingL2 = [];
78
+ const pendingL3 = [];
79
+ for (const conflict of detection.conflicts) {
80
+ if (conflict.contractId.startsWith('L1-')) {
81
+ // L1 始终裁决(即使是 report-only,也至少标记状态)
82
+ const result = await (0, l1_auto_arbiter_1.arbitrateL1)(conflict);
83
+ verdicts.push(result.verdict);
84
+ resolvedConflicts.push(result.conflict);
85
+ }
86
+ else if (conflict.contractId.startsWith('L2-')) {
87
+ if (mode === 'report-only') {
88
+ // report-only: 不裁决,只保留在报告中
89
+ resolvedConflicts.push(conflict);
90
+ }
91
+ else {
92
+ const result = await (0, l2_ai_arbiter_1.arbitrateL2)(conflict);
93
+ resolvedConflicts.push(result.conflict);
94
+ if (result.needsHumanConfirm && mode !== 'l1-only') {
95
+ pendingL2.push(result.conflict);
96
+ }
97
+ }
98
+ }
99
+ else if (conflict.contractId.startsWith('L3-')) {
100
+ if (mode === 'report-only') {
101
+ // report-only: 不裁决,只保留在报告中
102
+ resolvedConflicts.push(conflict);
103
+ }
104
+ else if (mode === 'l1-only') {
105
+ // l1-only: 只标记为报告,不进入 pending-review
106
+ resolvedConflicts.push(conflict);
107
+ }
108
+ else {
109
+ const result = await (0, l3_human_arbiter_1.initiateL3Arbitration)(conflict);
110
+ verdicts.push(result.verdict);
111
+ resolvedConflicts.push(result.conflict);
112
+ pendingL3.push(result.conflict);
113
+ }
114
+ }
115
+ }
116
+ // 3. 生成裁决书
117
+ const report = (0, verdict_generator_1.generateArbitrationReport)(taskId, detection, resolvedConflicts, verdicts);
118
+ // 4. 判断是否可以继续(根据 mode 调整)
119
+ // full: L1 fatal 阻断 + L3 pending 阻断 + L2 pending 阻断
120
+ // l1-only: 仅 L1 fatal 阻断,L2/L3 不阻塞
121
+ // report-only: 永不阻断,只出报告
122
+ const l1Fatal = detection.summary.fatal > 0;
123
+ const allPassed = mode === 'report-only'
124
+ ? true
125
+ : mode === 'l1-only'
126
+ ? !l1Fatal
127
+ : !l1Fatal && pendingL3.length === 0 && pendingL2.length === 0;
128
+ const canProceed = mode === 'report-only'
129
+ ? true
130
+ : mode === 'l1-only'
131
+ ? !l1Fatal
132
+ : !l1Fatal && pendingL3.length === 0;
133
+ return {
134
+ report,
135
+ allPassed,
136
+ canProceed,
137
+ pendingL2,
138
+ pendingL3,
139
+ verdicts,
140
+ };
141
+ }
142
+ //# sourceMappingURL=arbitration-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arbitration-engine.js","sourceRoot":"","sources":["../../../src/core/arbitration/arbitration-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * conflict-detector.ts — 冲突检测引擎
3
+ *
4
+ * v8.3.24+: 包装现有 verify-engine,将 CheckResult 转换为 Conflict
5
+ */
6
+ import type { ConflictDetectionResult } from './conflict-types';
7
+ /**
8
+ * 运行质量门禁并转换为冲突检测 result
9
+ */
10
+ export declare function detectConflicts(taskId: string, codePath: string, taskDir: string, options?: {
11
+ timeout?: number;
12
+ withAgents?: boolean;
13
+ projectRoot?: string;
14
+ }): Promise<ConflictDetectionResult>;
15
+ //# sourceMappingURL=conflict-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-detector.d.ts","sourceRoot":"","sources":["../../../src/core/arbitration/conflict-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAY,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE,OAAO,CAAC,uBAAuB,CAAC,CA+DlC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * conflict-detector.ts — 冲突检测引擎
4
+ *
5
+ * v8.3.24+: 包装现有 verify-engine,将 CheckResult 转换为 Conflict
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.detectConflicts = detectConflicts;
9
+ const verify_engine_1 = require("../verify-engine");
10
+ const contract_registry_1 = require("./contract-registry");
11
+ /**
12
+ * 运行质量门禁并转换为冲突检测 result
13
+ */
14
+ async function detectConflicts(taskId, codePath, taskDir, options) {
15
+ const gateResult = await (0, verify_engine_1.runQualityGate)(taskId, codePath, taskDir, options);
16
+ const conflicts = [];
17
+ let L1 = 0, L2 = 0, L3 = 0;
18
+ let fatal = 0, critical = 0, warning = 0, info = 0;
19
+ for (const check of gateResult.report.checks) {
20
+ // pass / skip 不生成冲突
21
+ if (check.status === 'pass' || check.status === 'skip')
22
+ continue;
23
+ const contractId = (0, contract_registry_1.mapCheckNameToContractId)(check.name);
24
+ if (!contractId)
25
+ continue; // 未映射的检查项跳过
26
+ const contract = (0, contract_registry_1.getContractById)(contractId);
27
+ if (!contract)
28
+ continue;
29
+ const severity = check.status === 'fail' && check.blocking
30
+ ? 'fatal'
31
+ : check.status === 'fail'
32
+ ? 'critical'
33
+ : 'warning';
34
+ const conflict = {
35
+ id: `${contract.level}-${contractId.split('-')[1]}-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
36
+ taskId,
37
+ contractId,
38
+ violation: {
39
+ contractId,
40
+ severity,
41
+ message: check.details,
42
+ evidence: check.output || check.details,
43
+ suggestedFix: undefined,
44
+ },
45
+ status: 'detected',
46
+ detectedAt: gateResult.report.timestamp,
47
+ };
48
+ conflicts.push(conflict);
49
+ if (contract.level === 'L1')
50
+ L1++;
51
+ else if (contract.level === 'L2')
52
+ L2++;
53
+ else if (contract.level === 'L3')
54
+ L3++;
55
+ if (severity === 'fatal')
56
+ fatal++;
57
+ else if (severity === 'critical')
58
+ critical++;
59
+ else if (severity === 'warning')
60
+ warning++;
61
+ else
62
+ info++;
63
+ }
64
+ return {
65
+ conflicts,
66
+ summary: {
67
+ total: conflicts.length,
68
+ L1,
69
+ L2,
70
+ L3,
71
+ fatal,
72
+ critical,
73
+ warning,
74
+ info,
75
+ },
76
+ };
77
+ }
78
+ //# sourceMappingURL=conflict-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-detector.js","sourceRoot":"","sources":["../../../src/core/arbitration/conflict-detector.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AASH,0CAoEC;AA3ED,oDAA0E;AAC1E,2DAAgF;AAGhF;;GAEG;AACI,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,QAAgB,EAChB,OAAe,EACf,OAA0E;IAE1E,MAAM,UAAU,GAAG,MAAM,IAAA,8BAAc,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE5E,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;IAEnD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,oBAAoB;QACpB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS;QAEjE,MAAM,UAAU,GAAG,IAAA,4CAAwB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU;YAAE,SAAS,CAAC,YAAY;QAEvC,MAAM,QAAQ,GAAG,IAAA,mCAAe,EAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ;YACxD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;gBACvB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,QAAQ,GAAa;YACzB,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC3G,MAAM;YACN,UAAU;YACV,SAAS,EAAE;gBACT,UAAU;gBACV,QAAQ;gBACR,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO;gBACvC,YAAY,EAAE,SAAS;aACxB;YACD,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS;SACxC,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;YAAE,EAAE,EAAE,CAAC;aAC7B,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;YAAE,EAAE,EAAE,CAAC;aAClC,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;YAAE,EAAE,EAAE,CAAC;QAEvC,IAAI,QAAQ,KAAK,OAAO;YAAE,KAAK,EAAE,CAAC;aAC7B,IAAI,QAAQ,KAAK,UAAU;YAAE,QAAQ,EAAE,CAAC;aACxC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;;YACtC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,OAAO;QACL,SAAS;QACT,OAAO,EAAE;YACP,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,EAAE;YACF,EAAE;YACF,EAAE;YACF,KAAK;YACL,QAAQ;YACR,OAAO;YACP,IAAI;SACL;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * conflict-types.ts — 冲突类型定义
3
+ *
4
+ * v8.3.24+: 契约冲突裁决模型核心类型
5
+ */
6
+ import type { ContractViolation } from './contract-types';
7
+ export type ConflictStatus = 'detected' | 'auto-fixing' | 'pending-fix' | 'pending-review' | 'resolved' | 'overridden' | 'escalated';
8
+ export interface Conflict {
9
+ id: string;
10
+ taskId: string;
11
+ contractId: string;
12
+ violation: ContractViolation;
13
+ status: ConflictStatus;
14
+ detectedAt: string;
15
+ resolvedAt?: string;
16
+ resolvedBy?: 'machine' | 'ai' | 'human';
17
+ resolution?: string;
18
+ arbiter?: string;
19
+ parentConflictId?: string;
20
+ }
21
+ export interface ConflictDetectionResult {
22
+ conflicts: Conflict[];
23
+ summary: {
24
+ total: number;
25
+ L1: number;
26
+ L2: number;
27
+ L3: number;
28
+ fatal: number;
29
+ critical: number;
30
+ warning: number;
31
+ info: number;
32
+ };
33
+ }
34
+ //# sourceMappingURL=conflict-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-types.d.ts","sourceRoot":"","sources":["../../../src/core/arbitration/conflict-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,UAAU,GACV,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * conflict-types.ts — 冲突类型定义
4
+ *
5
+ * v8.3.24+: 契约冲突裁决模型核心类型
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=conflict-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-types.js","sourceRoot":"","sources":["../../../src/core/arbitration/conflict-types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * contract-registry.ts — 契约注册表
3
+ *
4
+ * v8.3.24+: 定义所有 L1/L2/L3 契约规则,映射到现有检查项
5
+ */
6
+ import type { Contract } from './contract-types';
7
+ /** 按 ID 查找契约 */
8
+ export declare function getContractById(id: string): Contract | undefined;
9
+ /** 按层级获取契约列表 */
10
+ export declare function getContractsByLevel(level: 'L1' | 'L2' | 'L3'): Contract[];
11
+ /** 获取所有活跃契约 */
12
+ export declare function getAllActiveContracts(): Contract[];
13
+ /** CheckResult.name → Contract.id 映射 */
14
+ export declare function mapCheckNameToContractId(checkName: string): string | undefined;
15
+ //# sourceMappingURL=contract-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-registry.d.ts","sourceRoot":"","sources":["../../../src/core/arbitration/contract-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAgJjD,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEhE;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,EAAE,CAEzE;AAED,eAAe;AACf,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAElD;AAED,wCAAwC;AACxC,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoB9E"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ /**
3
+ * contract-registry.ts — 契约注册表
4
+ *
5
+ * v8.3.24+: 定义所有 L1/L2/L3 契约规则,映射到现有检查项
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getContractById = getContractById;
9
+ exports.getContractsByLevel = getContractsByLevel;
10
+ exports.getAllActiveContracts = getAllActiveContracts;
11
+ exports.mapCheckNameToContractId = mapCheckNameToContractId;
12
+ const CONTRACTS = [
13
+ // ═══════════════════════════════════════════════════════════
14
+ // L1 机器契约
15
+ // ═══════════════════════════════════════════════════════════
16
+ {
17
+ id: 'L1-compile',
18
+ name: '编译通过',
19
+ level: 'L1',
20
+ description: '代码必须能通过编译,零错误',
21
+ priority: 100,
22
+ status: 'active',
23
+ },
24
+ {
25
+ id: 'L1-test',
26
+ name: '单元测试通过',
27
+ level: 'L1',
28
+ description: '所有单元测试必须通过',
29
+ priority: 90,
30
+ status: 'active',
31
+ },
32
+ {
33
+ id: 'L1-code-exist',
34
+ name: '代码文件存在',
35
+ level: 'L1',
36
+ description: 'src/ 目录下必须有实际代码文件',
37
+ priority: 80,
38
+ status: 'active',
39
+ },
40
+ // ═══════════════════════════════════════════════════════════
41
+ // L2 规范契约
42
+ // ═══════════════════════════════════════════════════════════
43
+ {
44
+ id: 'L2-lint',
45
+ name: 'Lint 合规',
46
+ level: 'L2',
47
+ description: '代码必须符合项目 Lint 规范',
48
+ priority: 70,
49
+ status: 'active',
50
+ },
51
+ {
52
+ id: 'L2-spec-consistency',
53
+ name: 'Spec 一致性',
54
+ level: 'L2',
55
+ description: '代码实现必须与 REQ.md 中的验收标准一致',
56
+ priority: 85,
57
+ status: 'active',
58
+ },
59
+ {
60
+ id: 'L2-api-contract',
61
+ name: 'API 契约合规',
62
+ level: 'L2',
63
+ description: '接口实现必须与 API_CONTRACT.yaml 一致',
64
+ priority: 80,
65
+ status: 'active',
66
+ },
67
+ {
68
+ id: 'L2-schema',
69
+ name: 'Schema 一致性',
70
+ level: 'L2',
71
+ description: '实体字段必须与 SCHEMA.md 一致',
72
+ priority: 75,
73
+ status: 'active',
74
+ },
75
+ {
76
+ id: 'L2-dev-guide',
77
+ name: 'DEV_GUIDE 合规',
78
+ level: 'L2',
79
+ description: '改造范围必须符合 DEV_GUIDE 要求',
80
+ priority: 70,
81
+ status: 'active',
82
+ },
83
+ {
84
+ id: 'L2-test-coverage',
85
+ name: '测试用例覆盖',
86
+ level: 'L2',
87
+ description: '必须有对应测试用例覆盖',
88
+ priority: 65,
89
+ status: 'active',
90
+ },
91
+ {
92
+ id: 'L2-review',
93
+ name: '评审项合规',
94
+ level: 'L2',
95
+ description: '必须满足 REVIEW.md 中的评审项',
96
+ priority: 60,
97
+ status: 'active',
98
+ },
99
+ {
100
+ id: 'L2-error-code',
101
+ name: '错误码一致性',
102
+ level: 'L2',
103
+ description: '错误码必须与 ERROR_CODES.md 一致',
104
+ priority: 55,
105
+ status: 'active',
106
+ },
107
+ {
108
+ id: 'L2-spec-doc-quality',
109
+ name: '规格文档质量',
110
+ level: 'L2',
111
+ description: 'REQ.md/TECH.md 必须有实质内容',
112
+ priority: 50,
113
+ status: 'active',
114
+ },
115
+ // ═══════════════════════════════════════════════════════════
116
+ // L3 架构契约
117
+ // ═══════════════════════════════════════════════════════════
118
+ {
119
+ id: 'L3-security',
120
+ name: '安全合规',
121
+ level: 'L3',
122
+ description: '代码不得存在安全漏洞(SQL注入、XSS等)',
123
+ priority: 95,
124
+ status: 'active',
125
+ },
126
+ {
127
+ id: 'L3-dependency',
128
+ name: '依赖完整性',
129
+ level: 'L3',
130
+ description: '依赖必须完整,无循环依赖',
131
+ priority: 70,
132
+ status: 'active',
133
+ },
134
+ {
135
+ id: 'L3-dep-graph',
136
+ name: '知识图谱依赖一致性',
137
+ level: 'L3',
138
+ description: '上游依赖接口必须已可用',
139
+ priority: 65,
140
+ status: 'active',
141
+ },
142
+ {
143
+ id: 'L3-deploy',
144
+ name: '部署清单检查',
145
+ level: 'L3',
146
+ description: '必须满足 DEPLOY.md 中的部署项',
147
+ priority: 50,
148
+ status: 'active',
149
+ },
150
+ ];
151
+ /** 按 ID 查找契约 */
152
+ function getContractById(id) {
153
+ return CONTRACTS.find((c) => c.id === id);
154
+ }
155
+ /** 按层级获取契约列表 */
156
+ function getContractsByLevel(level) {
157
+ return CONTRACTS.filter((c) => c.level === level && c.status === 'active');
158
+ }
159
+ /** 获取所有活跃契约 */
160
+ function getAllActiveContracts() {
161
+ return CONTRACTS.filter((c) => c.status === 'active');
162
+ }
163
+ /** CheckResult.name → Contract.id 映射 */
164
+ function mapCheckNameToContractId(checkName) {
165
+ const mapping = {
166
+ '编译检查': 'L1-compile',
167
+ '单元测试': 'L1-test',
168
+ '代码文件检查': 'L1-code-exist',
169
+ 'Lint 检查': 'L2-lint',
170
+ 'Spec 一致性': 'L2-spec-consistency',
171
+ 'API 契约合规': 'L2-api-contract',
172
+ 'Schema 一致性': 'L2-schema',
173
+ 'DEV_GUIDE 合规': 'L2-dev-guide',
174
+ '测试用例覆盖': 'L2-test-coverage',
175
+ '评审项合规': 'L2-review',
176
+ '错误码一致性': 'L2-error-code',
177
+ '规格文档质量': 'L2-spec-doc-quality',
178
+ '安全扫描': 'L3-security',
179
+ '依赖检查': 'L3-dependency',
180
+ '依赖一致性': 'L3-dep-graph',
181
+ '部署项检查': 'L3-deploy',
182
+ };
183
+ return mapping[checkName];
184
+ }
185
+ //# sourceMappingURL=contract-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-registry.js","sourceRoot":"","sources":["../../../src/core/arbitration/contract-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * contract-types.ts — 契约类型定义
3
+ *
4
+ * v8.3.24+: 契约冲突裁决模型核心类型
5
+ */
6
+ export type ContractLevel = 'L1' | 'L2' | 'L3';
7
+ export type ContractStatus = 'active' | 'disabled' | 'experimental';
8
+ export interface Contract {
9
+ id: string;
10
+ name: string;
11
+ level: ContractLevel;
12
+ description: string;
13
+ priority: number;
14
+ status: ContractStatus;
15
+ }
16
+ export interface ContractViolation {
17
+ contractId: string;
18
+ severity: 'fatal' | 'critical' | 'warning' | 'info';
19
+ message: string;
20
+ location?: {
21
+ file: string;
22
+ line?: number;
23
+ };
24
+ evidence: string;
25
+ suggestedFix?: string;
26
+ }
27
+ export type CheckFunction = (codePath: string, taskDir: string, taskId: string) => Promise<ContractViolation[]>;
28
+ export type AutoFixFunction = (violation: ContractViolation, codePath: string) => Promise<{
29
+ success: boolean;
30
+ appliedChanges?: string[];
31
+ error?: string;
32
+ }>;
33
+ //# sourceMappingURL=contract-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-types.d.ts","sourceRoot":"","sources":["../../../src/core/arbitration/contract-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;AAEpE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAElC,MAAM,MAAM,eAAe,GAAG,CAC5B,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * contract-types.ts — 契约类型定义
4
+ *
5
+ * v8.3.24+: 契约冲突裁决模型核心类型
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=contract-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-types.js","sourceRoot":"","sources":["../../../src/core/arbitration/contract-types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * arbitration/index.ts — 契约冲突裁决模块统一导出
3
+ *
4
+ * v8.3.24+: Barrel export for arbitration engine
5
+ */
6
+ export * from './contract-types';
7
+ export * from './conflict-types';
8
+ export * from './verdict-types';
9
+ export * from './contract-registry';
10
+ export * from './conflict-detector';
11
+ export * from './l1-auto-arbiter';
12
+ export * from './l2-ai-arbiter';
13
+ export * from './l3-human-arbiter';
14
+ export * from './verdict-generator';
15
+ export * from './arbitration-engine';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/arbitration/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * arbitration/index.ts — 契约冲突裁决模块统一导出
4
+ *
5
+ * v8.3.24+: Barrel export for arbitration engine
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./contract-types"), exports);
23
+ __exportStar(require("./conflict-types"), exports);
24
+ __exportStar(require("./verdict-types"), exports);
25
+ __exportStar(require("./contract-registry"), exports);
26
+ __exportStar(require("./conflict-detector"), exports);
27
+ __exportStar(require("./l1-auto-arbiter"), exports);
28
+ __exportStar(require("./l2-ai-arbiter"), exports);
29
+ __exportStar(require("./l3-human-arbiter"), exports);
30
+ __exportStar(require("./verdict-generator"), exports);
31
+ __exportStar(require("./arbitration-engine"), exports);
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/arbitration/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,mDAAiC;AACjC,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,kDAAgC;AAChC,qDAAmC;AACnC,sDAAoC;AACpC,uDAAqC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * l1-auto-arbiter.ts — L1 机器契约自动裁决器
3
+ *
4
+ * v8.3.24+: 全自动裁决,无需人工参与
5
+ */
6
+ import type { Conflict } from './conflict-types';
7
+ import type { Verdict } from './verdict-types';
8
+ export interface L1ArbitrationResult {
9
+ verdict: Verdict;
10
+ conflict: Conflict;
11
+ passed: boolean;
12
+ }
13
+ /**
14
+ * L1 裁决:机器自动裁决
15
+ * 当前实现:L1 冲突(编译失败等)直接裁决为 reject,因为编译器已尝试修复
16
+ * 未来可扩展:集成 AI 自动修复循环
17
+ */
18
+ export declare function arbitrateL1(conflict: Conflict): Promise<L1ArbitrationResult>;
19
+ //# sourceMappingURL=l1-auto-arbiter.d.ts.map