@principles/core 1.270.5 → 1.272.0

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 (188) hide show
  1. package/dist/runtime-v2/__tests__/admission-gate.test.js +23 -6
  2. package/dist/runtime-v2/__tests__/admission-gate.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/adversarial-loop.test.js +22 -0
  4. package/dist/runtime-v2/__tests__/adversarial-loop.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/context-payload-validation.test.js +1 -1
  6. package/dist/runtime-v2/__tests__/context-payload-validation.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js +20 -0
  8. package/dist/runtime-v2/__tests__/evaluator-repair-loop.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/evidence-guards.test.js +2 -2
  10. package/dist/runtime-v2/__tests__/evidence-guards.test.js.map +1 -1
  11. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js +1 -1
  12. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js.map +1 -1
  13. package/dist/runtime-v2/__tests__/governance-experience.test.js +19 -0
  14. package/dist/runtime-v2/__tests__/governance-experience.test.js.map +1 -1
  15. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js +3 -3
  16. package/dist/runtime-v2/__tests__/pain-evidence-contract.test.js.map +1 -1
  17. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js +1 -1
  18. package/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js.map +1 -1
  19. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js +26 -5
  20. package/dist/runtime-v2/__tests__/rollout-reviewer-verdict-paths.test.js.map +1 -1
  21. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts +2 -0
  22. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.d.ts.map +1 -0
  23. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js +243 -0
  24. package/dist/runtime-v2/__tests__/rollout-rule-candidate-contract.test.js.map +1 -0
  25. package/dist/runtime-v2/admission-gate.d.ts +8 -1
  26. package/dist/runtime-v2/admission-gate.d.ts.map +1 -1
  27. package/dist/runtime-v2/admission-gate.js +14 -0
  28. package/dist/runtime-v2/admission-gate.js.map +1 -1
  29. package/dist/runtime-v2/context-payload.d.ts +9 -3
  30. package/dist/runtime-v2/context-payload.d.ts.map +1 -1
  31. package/dist/runtime-v2/context-payload.js +3 -1
  32. package/dist/runtime-v2/context-payload.js.map +1 -1
  33. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js +2 -2
  34. package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js.map +1 -1
  35. package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts +1 -1
  36. package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts.map +1 -1
  37. package/dist/runtime-v2/evidence-triage/observation-resolver.js +2 -2
  38. package/dist/runtime-v2/evidence-triage/observation-resolver.js.map +1 -1
  39. package/dist/runtime-v2/evidence-triage/types.d.ts +1 -1
  40. package/dist/runtime-v2/evidence-triage/types.d.ts.map +1 -1
  41. package/dist/runtime-v2/evolution/evolution-types.d.ts +8 -4
  42. package/dist/runtime-v2/evolution/evolution-types.d.ts.map +1 -1
  43. package/dist/runtime-v2/evolution/evolution-types.js +3 -1
  44. package/dist/runtime-v2/evolution/evolution-types.js.map +1 -1
  45. package/dist/runtime-v2/governance-experience-contract.d.ts +16 -16
  46. package/dist/runtime-v2/governance-experience-contract.d.ts.map +1 -1
  47. package/dist/runtime-v2/governance-experience-contract.js +4 -1
  48. package/dist/runtime-v2/governance-experience-contract.js.map +1 -1
  49. package/dist/runtime-v2/governance-experience.d.ts.map +1 -1
  50. package/dist/runtime-v2/governance-experience.js +30 -8
  51. package/dist/runtime-v2/governance-experience.js.map +1 -1
  52. package/dist/runtime-v2/index.d.ts +11 -1
  53. package/dist/runtime-v2/index.d.ts.map +1 -1
  54. package/dist/runtime-v2/index.js +7 -0
  55. package/dist/runtime-v2/index.js.map +1 -1
  56. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts +2 -0
  57. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.d.ts.map +1 -0
  58. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js +114 -0
  59. package/dist/runtime-v2/internalization/__tests__/artificer-code-bearing.test.js.map +1 -0
  60. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts +2 -0
  61. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.d.ts.map +1 -0
  62. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js +256 -0
  63. package/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js.map +1 -0
  64. package/dist/runtime-v2/internalization/__tests__/evaluator-prompt-builder.test.js +1 -1
  65. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js +15 -14
  66. package/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js.map +1 -1
  67. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts +2 -0
  68. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.d.ts.map +1 -0
  69. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js +56 -0
  70. package/dist/runtime-v2/internalization/__tests__/owner-decision-architecture.test.js.map +1 -0
  71. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts +2 -0
  72. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.d.ts.map +1 -0
  73. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js +229 -0
  74. package/dist/runtime-v2/internalization/__tests__/owner-decision-review.test.js.map +1 -0
  75. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts +2 -0
  76. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.d.ts.map +1 -0
  77. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js +1054 -0
  78. package/dist/runtime-v2/internalization/__tests__/owner-decision.test.js.map +1 -0
  79. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts +2 -0
  80. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.d.ts.map +1 -0
  81. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js +328 -0
  82. package/dist/runtime-v2/internalization/__tests__/owner-override-resume.test.js.map +1 -0
  83. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts +2 -0
  84. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.d.ts.map +1 -0
  85. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js +187 -0
  86. package/dist/runtime-v2/internalization/__tests__/rule-activation-contract.test.js.map +1 -0
  87. package/dist/runtime-v2/internalization/artificer-code-bearing.d.ts +39 -0
  88. package/dist/runtime-v2/internalization/artificer-code-bearing.d.ts.map +1 -0
  89. package/dist/runtime-v2/internalization/artificer-code-bearing.js +33 -0
  90. package/dist/runtime-v2/internalization/artificer-code-bearing.js.map +1 -0
  91. package/dist/runtime-v2/internalization/evaluator-output.d.ts +63 -2
  92. package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  93. package/dist/runtime-v2/internalization/evaluator-output.js +139 -2
  94. package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  95. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts +54 -2
  96. package/dist/runtime-v2/internalization/evaluator-prompt-builder.d.ts.map +1 -1
  97. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js +49 -2
  98. package/dist/runtime-v2/internalization/evaluator-prompt-builder.js.map +1 -1
  99. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +45 -8
  100. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  101. package/dist/runtime-v2/internalization/evaluator-runner.js +465 -43
  102. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  103. package/dist/runtime-v2/internalization/index.d.ts +2 -0
  104. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  105. package/dist/runtime-v2/internalization/index.js +1 -0
  106. package/dist/runtime-v2/internalization/index.js.map +1 -1
  107. package/dist/runtime-v2/internalization/internalization-orchestrator.d.ts.map +1 -1
  108. package/dist/runtime-v2/internalization/internalization-orchestrator.js +10 -54
  109. package/dist/runtime-v2/internalization/internalization-orchestrator.js.map +1 -1
  110. package/dist/runtime-v2/internalization/internalization-transition-decision.d.ts +7 -1
  111. package/dist/runtime-v2/internalization/internalization-transition-decision.d.ts.map +1 -1
  112. package/dist/runtime-v2/internalization/internalization-transition-decision.js +9 -2
  113. package/dist/runtime-v2/internalization/internalization-transition-decision.js.map +1 -1
  114. package/dist/runtime-v2/internalization/owner-decision-review.d.ts +98 -0
  115. package/dist/runtime-v2/internalization/owner-decision-review.d.ts.map +1 -0
  116. package/dist/runtime-v2/internalization/owner-decision-review.js +287 -0
  117. package/dist/runtime-v2/internalization/owner-decision-review.js.map +1 -0
  118. package/dist/runtime-v2/internalization/owner-resolution-service.d.ts +100 -0
  119. package/dist/runtime-v2/internalization/owner-resolution-service.d.ts.map +1 -0
  120. package/dist/runtime-v2/internalization/owner-resolution-service.js +385 -0
  121. package/dist/runtime-v2/internalization/owner-resolution-service.js.map +1 -0
  122. package/dist/runtime-v2/internalization/owner-retry.d.ts +12 -0
  123. package/dist/runtime-v2/internalization/owner-retry.d.ts.map +1 -1
  124. package/dist/runtime-v2/internalization/owner-retry.js +23 -0
  125. package/dist/runtime-v2/internalization/owner-retry.js.map +1 -1
  126. package/dist/runtime-v2/internalization/owner-review.d.ts +199 -0
  127. package/dist/runtime-v2/internalization/owner-review.d.ts.map +1 -0
  128. package/dist/runtime-v2/internalization/owner-review.js +470 -0
  129. package/dist/runtime-v2/internalization/owner-review.js.map +1 -0
  130. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts +5 -1
  131. package/dist/runtime-v2/internalization/peer-runner-contracts.d.ts.map +1 -1
  132. package/dist/runtime-v2/internalization/peer-runner-contracts.js.map +1 -1
  133. package/dist/runtime-v2/internalization/pitask-metadata.d.ts +84 -0
  134. package/dist/runtime-v2/internalization/pitask-metadata.d.ts.map +1 -1
  135. package/dist/runtime-v2/internalization/pitask-metadata.js +166 -0
  136. package/dist/runtime-v2/internalization/pitask-metadata.js.map +1 -1
  137. package/dist/runtime-v2/internalization/revision-reopen.d.ts +56 -0
  138. package/dist/runtime-v2/internalization/revision-reopen.d.ts.map +1 -0
  139. package/dist/runtime-v2/internalization/revision-reopen.js +144 -0
  140. package/dist/runtime-v2/internalization/revision-reopen.js.map +1 -0
  141. package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts +25 -0
  142. package/dist/runtime-v2/internalization/rollout-reviewer-runner.d.ts.map +1 -1
  143. package/dist/runtime-v2/internalization/rollout-reviewer-runner.js +202 -23
  144. package/dist/runtime-v2/internalization/rollout-reviewer-runner.js.map +1 -1
  145. package/dist/runtime-v2/internalization/rule-activation-contract.d.ts +35 -0
  146. package/dist/runtime-v2/internalization/rule-activation-contract.d.ts.map +1 -0
  147. package/dist/runtime-v2/internalization/rule-activation-contract.js +36 -0
  148. package/dist/runtime-v2/internalization/rule-activation-contract.js.map +1 -0
  149. package/dist/runtime-v2/pain-signal-bridge.d.ts +2 -0
  150. package/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
  151. package/dist/runtime-v2/pain-signal-bridge.js +4 -3
  152. package/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
  153. package/dist/runtime-v2/pain-to-principle-service.d.ts +1 -0
  154. package/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
  155. package/dist/runtime-v2/pain-to-principle-service.js +1 -0
  156. package/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
  157. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js +6 -6
  158. package/dist/runtime-v2/runner/__tests__/pain-signal-bridge-admission.test.js.map +1 -1
  159. package/dist/runtime-v2/store/context/sqlite-context-assembler.d.ts.map +1 -1
  160. package/dist/runtime-v2/store/context/sqlite-context-assembler.js +25 -5
  161. package/dist/runtime-v2/store/context/sqlite-context-assembler.js.map +1 -1
  162. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js +39 -9
  163. package/dist/runtime-v2/store/context/sqlite-context-assembler.test.js.map +1 -1
  164. package/dist/runtime-v2/store/runtime-state-manager.d.ts +12 -0
  165. package/dist/runtime-v2/store/runtime-state-manager.d.ts.map +1 -1
  166. package/dist/runtime-v2/store/runtime-state-manager.js +17 -0
  167. package/dist/runtime-v2/store/runtime-state-manager.js.map +1 -1
  168. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts +2 -0
  169. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.d.ts.map +1 -0
  170. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js +114 -0
  171. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store-cas.test.js.map +1 -0
  172. package/dist/runtime-v2/store/task/memory-task-store.d.ts +1 -0
  173. package/dist/runtime-v2/store/task/memory-task-store.d.ts.map +1 -1
  174. package/dist/runtime-v2/store/task/memory-task-store.js +8 -0
  175. package/dist/runtime-v2/store/task/memory-task-store.js.map +1 -1
  176. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts +20 -0
  177. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts.map +1 -1
  178. package/dist/runtime-v2/store/task/sqlite-task-store.js +81 -0
  179. package/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
  180. package/dist/runtime-v2/store/task/task-store.d.ts +9 -0
  181. package/dist/runtime-v2/store/task/task-store.d.ts.map +1 -1
  182. package/dist/runtime-v2/store/workspace-isolation.test.js +1 -0
  183. package/dist/runtime-v2/store/workspace-isolation.test.js.map +1 -1
  184. package/dist/runtime-v2/task-status.d.ts +2 -1
  185. package/dist/runtime-v2/task-status.d.ts.map +1 -1
  186. package/dist/runtime-v2/task-status.js +5 -1
  187. package/dist/runtime-v2/task-status.js.map +1 -1
  188. package/package.json +1 -1
@@ -0,0 +1,256 @@
1
+ /**
2
+ * PRI-634 R1/R2 — evaluator deterministic gate authority 集成回归。
3
+ *
4
+ * 事故复现(链 48371236):生产装配缺 gateDeps(A1)且 evaluator 输出合法
5
+ * V1 shape 时(A2),`isEvaluatorOutputV2()` 使 adversarial replay 结构性
6
+ * 跳过 → 产出 succeeded + adversarialResult=null → 链上永远没有合法
7
+ * pi-rule-* 产物。
8
+ *
9
+ * R1(authority regression 守卫):code-bearing Artificer artifact + 合法
10
+ * V1-shaped evaluator output(approved)→ **必须**进入 deterministic gate
11
+ * (evaluateInSandbox 被调用),adversarialResult.passed=true 写回产物。
12
+ *
13
+ * R2(wiring regression 守卫):code-bearing + approved 但 gateDeps 未注入
14
+ * → **不得** succeeded + adversarialResult=null;必须 fail-loud
15
+ * (capability_missing,permanent error)。
16
+ *
17
+ * R3(终态不变量守卫):code-bearing + approved 且 gateDeps 已注入时,
18
+ * runAdversarialReplay **必须**产出 adversarialResult;无论何种成因导致
19
+ * gate 没跑成(merged cases 为空 / 无 positive case / 产物不可解析 /
20
+ * conversion drift …),都不得以 succeeded 结束 → fail-loud
21
+ * (input_invalid,permanent)。R1 管「要不要跑」,R3 管「跑了有没有结果」,
22
+ * 二者合一才封死终态;R2 只是 wiring 缺失这一个成因的特例。
23
+ *
24
+ * 另覆盖 A3 可观测性:静默退化路径现在发 adversarial_replay_skipped 事件。
25
+ */
26
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
27
+ import * as fs from 'node:fs';
28
+ import * as path from 'node:path';
29
+ import * as os from 'node:os';
30
+ import { RuntimeStateManager } from '../../store/runtime-state-manager.js';
31
+ import { EvaluatorRunner } from '../evaluator-runner.js';
32
+ import { DefaultEvaluatorValidator } from '../evaluator-output.js';
33
+ import { StoreEventEmitter } from '../../store/event-emitter.js';
34
+ import { SqliteConnection } from '../../store/sqlite-connection.js';
35
+ import { SqlitePIArtifactStore } from '../../store/artifact/sqlite-pi-artifact-store.js';
36
+ import { createPITaskDiagnosticJson } from '../pitask-metadata.js';
37
+ let workspaceDir;
38
+ let stateManager;
39
+ let emitter;
40
+ let emitted;
41
+ const ARTIFICER_ID = 'artificer-gate-auth';
42
+ const EVAL_ID = 'evaluator-gate-auth';
43
+ const ARTIFICER_ART = 'pi-art-artificer-gate-auth';
44
+ beforeEach(async () => {
45
+ workspaceDir = fs.mkdtempSync(path.join(os.tmpdir(), 'pd-gate-auth-'));
46
+ stateManager = new RuntimeStateManager({ workspaceDir });
47
+ await stateManager.initialize();
48
+ emitter = new StoreEventEmitter();
49
+ emitted = [];
50
+ // 所有 telemetry 事件都会 emit('telemetry', event)(event-emitter.ts);
51
+ // 具体 eventType 事件用 onEventType 监听。这里收集全量便于断言。
52
+ emitter.onTelemetry((event) => {
53
+ emitted.push({ eventType: event.eventType, payload: event.payload });
54
+ });
55
+ });
56
+ afterEach(async () => {
57
+ await stateManager.close();
58
+ try {
59
+ fs.rmSync(workspaceDir, { recursive: true, force: true });
60
+ }
61
+ catch { /* temp */ }
62
+ });
63
+ function meta(o = {}) {
64
+ return createPITaskDiagnosticJson({
65
+ dependencyTaskIds: [], channel: 'prompt', timeoutMs: 300_000,
66
+ inputArtifactRefs: [], outputArtifactRefs: [], ...o,
67
+ });
68
+ }
69
+ async function mkTask(id, kind, deps) {
70
+ await stateManager.createTask({ taskId: id, taskKind: kind, status: 'pending', attemptCount: 0, maxAttempts: 3, diagnosticJson: meta({ correlationId: 'gate-auth', dependencyTaskIds: deps }) });
71
+ }
72
+ async function succeed(id) {
73
+ await stateManager.acquireLease({ taskId: id, owner: 'gate-auth', runtimeKind: 'test-double' });
74
+ await stateManager.markTaskSucceeded(id);
75
+ }
76
+ function codeBearingArtificerContent(overrides = {}) {
77
+ return JSON.stringify({
78
+ implementationCode: 'function evaluate(input, helpers) { return { decision: "allow", matched: false }; }',
79
+ goldenTraceCases: [
80
+ { caseId: 'c-neg', kind: 'negative', toolName: 'edit_file', params: { path: '/etc/passwd' }, expectedDecision: 'block' },
81
+ { caseId: 'c-pos', kind: 'positive', toolName: 'edit_file', params: { path: '/project/src/safe.ts' }, expectedDecision: 'allow' },
82
+ ],
83
+ affectedTools: ['edit_file'],
84
+ ...overrides,
85
+ });
86
+ }
87
+ /** 纯 V1 shape:只有评估字段,没有任何 V2 字段(adversarialCases/codeReview/…) */
88
+ function v1EvaluatorOutput(decision) {
89
+ return {
90
+ taskId: EVAL_ID,
91
+ sourceArtificerArtifactId: ARTIFICER_ART,
92
+ evaluation: {
93
+ decision,
94
+ summary: 'gate-auth',
95
+ score: 0.9,
96
+ strengths: [],
97
+ concerns: [],
98
+ requiredChanges: decision === 'needs_revision' ? ['必须改 X'] : [],
99
+ },
100
+ sourceTrace: { artificerArtifactId: ARTIFICER_ART },
101
+ risks: [],
102
+ generatedAt: new Date().toISOString(),
103
+ };
104
+ }
105
+ function scriptedAdapter(payload) {
106
+ return {
107
+ startRun: async () => ({ runId: 'run-gate-auth', runtimeKind: 'test-double', startedAt: new Date().toISOString() }),
108
+ pollRun: async () => ({ status: 'succeeded', runId: 'run-gate-auth' }),
109
+ fetchOutput: async () => ({ runId: 'run-gate-auth', payload }),
110
+ cancelRun: async () => undefined,
111
+ };
112
+ }
113
+ function makeGateDepsStub(calls) {
114
+ return {
115
+ evaluateInSandbox: (_code, _trace) => {
116
+ calls.count += 1;
117
+ return { success: true, failedCases: [], executionTimeMs: 1, forbiddenPatternViolations: [] };
118
+ },
119
+ };
120
+ }
121
+ async function seedLineage(artificerContent) {
122
+ await mkTask(ARTIFICER_ID, 'artificer', []);
123
+ await succeed(ARTIFICER_ID);
124
+ await mkTask(EVAL_ID, 'evaluator', [ARTIFICER_ID]);
125
+ const store = new SqlitePIArtifactStore(new SqliteConnection(workspaceDir));
126
+ await store.upsertArtifact({
127
+ artifactId: ARTIFICER_ART, artifactKind: 'principle', sourceTaskId: ARTIFICER_ID,
128
+ lineageArtifactIds: [], validationStatus: 'validated',
129
+ contentJson: artificerContent,
130
+ createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(),
131
+ });
132
+ return store;
133
+ }
134
+ function makeRunner(store, options = {}) {
135
+ return new EvaluatorRunner({
136
+ stateManager, runtimeAdapter: scriptedAdapter(options.payload ?? v1EvaluatorOutput('approved')),
137
+ eventEmitter: emitter, artifactStore: store, validator: new DefaultEvaluatorValidator(),
138
+ }, { owner: 'gate-auth', runtimeKind: 'test-double', pollIntervalMs: 5, timeoutMs: 5_000, ...options });
139
+ }
140
+ describe('PRI-634 R1: code-bearing + V1-shaped approved output must run the deterministic gate', () => {
141
+ it('evaluateInSandbox 被调用,adversarialResult.passed=true 写回产物,task succeeded', async () => {
142
+ const store = await seedLineage(codeBearingArtificerContent());
143
+ const calls = { count: 0 };
144
+ const runner = makeRunner(store, { gateDeps: makeGateDepsStub(calls) });
145
+ const result = await runner.run(EVAL_ID);
146
+ expect(result.status).toBe('succeeded');
147
+ expect(calls.count).toBeGreaterThan(0); // R1: gate 必须真正运行
148
+ const artifacts = await store.listBySourceTaskId(EVAL_ID);
149
+ const principle = artifacts.find((a) => a.artifactKind === 'principle');
150
+ expect(principle).toBeDefined();
151
+ if (!principle)
152
+ return;
153
+ const parsed = JSON.parse(principle.contentJson);
154
+ expect(parsed.adversarialResult?.passed).toBe(true);
155
+ expect((await stateManager.getTask(EVAL_ID))?.status).toBe('succeeded');
156
+ });
157
+ });
158
+ describe('PRI-634 R2: code-bearing without gateDeps must fail loud, never succeed un-gated', () => {
159
+ it('run 返回 failed(capability_missing),task 落 failed,不产出 succeeded', async () => {
160
+ const store = await seedLineage(codeBearingArtificerContent());
161
+ const runner = makeRunner(store, {}); // 故意不注入 gateDeps
162
+ const result = await runner.run(EVAL_ID);
163
+ expect(result.status).toBe('failed');
164
+ const task = await stateManager.getTask(EVAL_ID);
165
+ expect(task?.status).toBe('failed');
166
+ expect(task?.lastError).toBe('capability_missing');
167
+ // 可观测性:缺 gateDeps 的 skip 事件必须发出(A3)
168
+ expect(emitted.some((e) => e.eventType === 'evaluator_adversarial_replay_skipped' && e.payload.reason === 'gate_deps_not_injected')).toBe(true);
169
+ });
170
+ });
171
+ describe('PRI-634 legacy path: non-code-bearing Artificer keeps V1 behavior', () => {
172
+ it('非 code-bearing(无 implementationCode)+ V1 approved + 无 gateDeps → 走 legacy succeeded(不 fail)', async () => {
173
+ const store = await seedLineage(JSON.stringify({
174
+ analysis: '非 code-bearing artificer 产物(纯分析)',
175
+ goldenTraceCases: [
176
+ { caseId: 'c-neg', kind: 'negative', toolName: 'edit_file', params: { path: '/etc/passwd' }, expectedDecision: 'block' },
177
+ { caseId: 'c-pos', kind: 'positive', toolName: 'edit_file', params: { path: '/project/src/safe.ts' }, expectedDecision: 'allow' },
178
+ ],
179
+ }));
180
+ const runner = makeRunner(store, {});
181
+ const result = await runner.run(EVAL_ID);
182
+ // authority 迁移后 legacy 语义不变:非 code-bearing 不要求 gate,无 gateDeps 也 succeed
183
+ expect(result.status).toBe('succeeded');
184
+ const task = await stateManager.getTask(EVAL_ID);
185
+ expect(task?.status).toBe('succeeded');
186
+ });
187
+ });
188
+ // ── PRI-634 R3(终态不变量)──
189
+ // R1 只保证「code-bearing + approved 会去调 gate」;R3 补上另一半:
190
+ // 「调了但没产出 adversarialResult」同样不允许以 succeeded 结束。二者合一
191
+ // 才真正封死链 48371236 的终态(approved + gate 未执行 +
192
+ // adversarialResult=null + 永无 pi-rule-*)。R2 只覆盖 wiring 缺失这一因,
193
+ // R3 覆盖其余所有成因(cases 为空 / 无 positive case / 产物不可解析 /
194
+ // conversion drift …)—— 封的是终态,不是某个具体成因。
195
+ describe('PRI-634 R3: code-bearing + approved 若 gate 未产出 adversarialResult 必须 fail-loud', () => {
196
+ it('affectedTools 缺失 + positive case 无 path → merged cases 为空 → failed(input_invalid),不得 succeeded', async () => {
197
+ // positive case 保持结构合法(params 允许空对象),但无 path → v2 cases
198
+ // 生成失败(no_path_param_for_v2_adversarial_cases)+ V1 无 LLM cases →
199
+ // merged 为空 → no_adversarial_cases_after_merge。
200
+ //
201
+ // 这正是 Owner 复核指出的逃逸路径:旧断言 succeeded 与文件顶部 R1 契约
202
+ // (「必须进入 deterministic gate」)自相矛盾,等于给洞发通行证。
203
+ const store = await seedLineage(codeBearingArtificerContent({
204
+ affectedTools: undefined,
205
+ goldenTraceCases: [
206
+ { caseId: 'c-neg', kind: 'negative', toolName: 'edit_file', params: { path: '/etc/passwd' }, expectedDecision: 'block' },
207
+ { caseId: 'c-pos', kind: 'positive', toolName: 'edit_file', params: {}, expectedDecision: 'allow' },
208
+ ],
209
+ }));
210
+ const calls = { count: 0 };
211
+ const runner = makeRunner(store, { gateDeps: makeGateDepsStub(calls) });
212
+ const result = await runner.run(EVAL_ID);
213
+ // 终态守卫:gate 没跑成 → 必须 fail-loud,而不是 succeeded + null
214
+ expect(result.status).toBe('failed');
215
+ expect(calls.count).toBe(0);
216
+ // permanent(input_invalid 已在 permanentErrorCategories),不重试烧 LLM budget;
217
+ // 与 R2 的 capability_missing 区分:gate 已正确装配,是上游产物派生不出 gate 输入
218
+ const task = await stateManager.getTask(EVAL_ID);
219
+ expect(task?.status).toBe('failed');
220
+ expect(task?.lastError).toBe('input_invalid');
221
+ // A3 可观测性保留:skip 事件仍要发
222
+ expect(emitted.some((e) => e.eventType === 'evaluator_adversarial_replay_skipped' && e.payload.reason === 'no_adversarial_cases_after_merge')).toBe(true);
223
+ });
224
+ it('反向对照:非 code-bearing(无 implementationCode)+ V2 output → 同样 skip,但走 legacy succeeded(R3 不误伤)', async () => {
225
+ // A2 明确保留的 legacy 语义:V2-shaped output over a non-code-bearing
226
+ // artifact 仍尝试 replay,失败则带 telemetry 降级,不升级为失败。
227
+ // 若此例也 failed,说明 R3 的作用域收窄错了。
228
+ const store = await seedLineage(JSON.stringify({
229
+ analysis: '非 code-bearing artificer 产物(纯分析)',
230
+ goldenTraceCases: [
231
+ { caseId: 'c-neg', kind: 'negative', toolName: 'edit_file', params: { path: '/etc/passwd' }, expectedDecision: 'block' },
232
+ { caseId: 'c-pos', kind: 'positive', toolName: 'edit_file', params: { path: '/project/src/safe.ts' }, expectedDecision: 'allow' },
233
+ ],
234
+ }));
235
+ const calls = { count: 0 };
236
+ // V2-shaped output:带合法 codeReview,无 adversarialCases →
237
+ // outputWantsGate=true 会进入 replay,但因缺 implementationCode 而 skip
238
+ const runner = makeRunner(store, {
239
+ gateDeps: makeGateDepsStub(calls),
240
+ payload: {
241
+ ...v1EvaluatorOutput('approved'),
242
+ codeReview: {
243
+ intentConsistency: { aligned: true, explanation: '与原则意图一致' },
244
+ scopePrecision: { verdict: 'precise', explanation: '范围精确' },
245
+ traceCoverage: { sufficient: true, gaps: [], explanation: '覆盖充分' },
246
+ summary: 'code review passed',
247
+ },
248
+ },
249
+ });
250
+ const result = await runner.run(EVAL_ID);
251
+ expect(result.status).toBe('succeeded');
252
+ expect(calls.count).toBe(0);
253
+ expect(emitted.some((e) => e.eventType === 'evaluator_adversarial_replay_skipped' && e.payload.reason === 'artificer_artifact_has_no_implementation_code')).toBe(true);
254
+ });
255
+ });
256
+ //# sourceMappingURL=evaluator-gate-authority.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator-gate-authority.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@ describe('EvaluatorPromptBuilder', () => {
55
55
  expect(promptInput.promptContractVersion).toBe(EVALUATOR_PROMPT_CONTRACT_VERSION);
56
56
  });
57
57
  it('promptContractVersion value is evaluator-output-v1.prompt.v1', () => {
58
- expect(EVALUATOR_PROMPT_CONTRACT_VERSION).toBe('evaluator-output-v1.prompt.v1');
58
+ expect(EVALUATOR_PROMPT_CONTRACT_VERSION).toBe('evaluator-output-v1.prompt.v3');
59
59
  });
60
60
  it('score instruction says number not string/percentage', () => {
61
61
  expect(EVALUATOR_PROTOCOL_INSTRUCTION).toContain('NOT a string, NOT a percentage');
@@ -192,12 +192,13 @@ describe('InternalizationOrchestrator.commitNextTaskProposal — transition gate
192
192
  const result = await makeOrchestrator().commitNextTaskProposal('artificer-repair-xyz');
193
193
  expect(result.decision).toBe('revision_reopened');
194
194
  expect(result.reopenedTaskId).toBe('evaluator-cand-4-prompt');
195
- // evaluator 被更新为 pending + attemptCount 重置
196
- expect(mockStateManager.updateTask).toHaveBeenCalledWith('evaluator-cand-4-prompt', {
197
- status: 'pending', attemptCount: 0,
198
- });
195
+ // evaluator 被单次 task-row mutation 更新: pending + attemptCount 重置 + metadata
196
+ // (P1 评审修复: 单行原子写,消除 metadata/status 两写 crash 窗口)
197
+ const reopenCall1 = mockStateManager.updateTask.mock.calls.find((c) => c[0] === 'evaluator-cand-4-prompt')?.[1];
198
+ expect(reopenCall1?.status).toBe('pending');
199
+ expect(reopenCall1?.attemptCount).toBe(0);
199
200
  // dep 替换: 原 artificer dep 移除, repair 任务成为唯一 artificer dep
200
- const writtenJson = mockStateManager.updateTaskDiagnosticJson.mock.calls[0]?.[1];
201
+ const writtenJson = reopenCall1?.diagnosticJson;
201
202
  const parsed = JSON.parse(writtenJson);
202
203
  expect(parsed.pi_metadata.dependencyTaskIds).toContain('artificer-repair-xyz');
203
204
  expect(parsed.pi_metadata.dependencyTaskIds).not.toContain('artificer-cand-4-prompt');
@@ -225,9 +226,10 @@ describe('InternalizationOrchestrator.commitNextTaskProposal — transition gate
225
226
  const result = await makeOrchestrator().commitNextTaskProposal('evaluator-cand-5-prompt');
226
227
  expect(result.decision).toBe('successor_reopened');
227
228
  expect(result.reopenedTaskId).toBe('rollout_reviewer-cand-5-prompt');
228
- expect(mockStateManager.updateTask).toHaveBeenCalledWith('rollout_reviewer-cand-5-prompt', {
229
- status: 'pending', attemptCount: 0,
230
- });
229
+ const reopenCall2 = mockStateManager.updateTask.mock.calls.find((c) => c[0] === 'rollout_reviewer-cand-5-prompt')?.[1];
230
+ expect(reopenCall2?.status).toBe('pending');
231
+ expect(reopenCall2?.attemptCount).toBe(0);
232
+ expect(typeof reopenCall2?.diagnosticJson).toBe('string');
231
233
  expect(mockStateManager.createTask).not.toHaveBeenCalled();
232
234
  });
233
235
  it('无 revision 的幂等重扫: succeeded 后继存在 → successor_exists (不级联, 保持旧行为)', async () => {
@@ -266,13 +268,12 @@ describe('InternalizationOrchestrator.commitNextTaskProposal — transition gate
266
268
  const orchestrator = makeOrchestrator();
267
269
  const r1 = await orchestrator.reopenTaskForRevision('evaluator-cand-7-prompt', { reason: 'idempotent-check' });
268
270
  expect(r1.ok).toBe(true);
269
- // revisionCount pending 态仍会写为 2 (merge 最新元数据), 但状态写 pending 幂等
270
- const writtenJson = mockStateManager.updateTaskDiagnosticJson.mock.calls[0]?.[1];
271
- const parsed = JSON.parse(writtenJson);
271
+ // 单写契约: metadata + status + attemptCount 一个 UPDATE (P1 评审修复)
272
+ const call3 = mockStateManager.updateTask.mock.calls.find((c) => c[0] === 'evaluator-cand-7-prompt')?.[1];
273
+ const parsed = JSON.parse(call3?.diagnosticJson ?? '');
272
274
  expect(parsed.pi_metadata.revisionCount).toBe(2);
273
- expect(mockStateManager.updateTask).toHaveBeenCalledWith('evaluator-cand-7-prompt', {
274
- status: 'pending', attemptCount: 0,
275
- });
275
+ expect(call3?.status).toBe('pending');
276
+ expect(call3?.attemptCount).toBe(0);
276
277
  });
277
278
  });
278
279
  // ── 元数据 round-trip (新字段) ────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"internalization-transition-decision.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/internalization-transition-decision.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internalization-transition-decision.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/internalization-transition-decision.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACrH,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAGxF,2EAA2E;AAE3E,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAClH,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SACxH,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAClH,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAChI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAC/H,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SACvH,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;SACrF,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAC/F,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,+BAA+B,CAAC;gBACrC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;aAC/E,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SACtF,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAC7F,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAC9H,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SACxH,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACvC,wBAAwB;QACxB,MAAM,CAAC,+BAA+B,CAAC;YACrC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SACpH,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,0EAA0E;AAE1E,SAAS,QAAQ,CAAC,SAAS,GAA4B,EAAE;IACvD,OAAO;QACL,iBAAiB,EAAE,EAAE;QACrB,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,MAAM;QACjB,iBAAiB,EAAE,EAAE;QACrB,kBAAkB,EAAE,EAAE;QACtB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,SAEjB;IACC,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,MAAM,EAAE,SAAS,CAAC,MAA8B;QAChD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,0BAA0B,CAAC,SAAS,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,eAAuB;IACnE,OAAO;QACL,eAAe,EAAE,CAAC,sBAAsB,CAAC;QACzC,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,GAAG;QAClB,eAAe,EAAE,SAAS;QAC1B,yBAAyB,EAAE,cAAc;QACzC,qBAAqB,EAAE,eAAe;KACvC,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,sEAAsE,EAAE,GAAG,EAAE;IACpF,8DAA8D;IAC9D,IAAI,gBAAqB,CAAC;IAC1B,8DAA8D;IAC9D,IAAI,iBAAsB,CAAC;IAE3B,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,gBAAgB,GAAG;YACjB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACxC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;YACrB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAqF,EAAE,EAAE,CAAC,QAAQ,CAAC;gBAC/I,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS;aAClE,CAAC,CAAC;YACH,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAChD,wBAAwB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SAC/D,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAC/D,iBAAiB,GAAG,GAAG,CAAC,2BAA2B,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,SAAS,gBAAgB;QACvB,OAAO,IAAI,iBAAiB,CAC1B,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAClC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CACrD,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,aAAa,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC7E,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;SACrG,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,aAAa,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC7E,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC1D,gBAAgB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACtD,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,aAAa,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC7E,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;SAC/C,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,aAAa,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC7E,IAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,EAAE,CAAC;SAC3F,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,QAAQ,CAAC;YACjC,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC7E,IAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,CAAC;YAC1B,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC1E,IAAI,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,EAAE,yBAAyB,CAAC,EAAE,CAAC;SACnF,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;YAC/D,IAAI,EAAE,KAAK,sBAAsB;gBAAE,OAAO,UAAU,CAAC;YACrD,IAAI,EAAE,KAAK,yBAAyB;gBAAE,OAAO,aAAa,CAAC;YAC3D,IAAI,EAAE,KAAK,yBAAyB;gBAAE,OAAO,iBAAiB,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;QAEvF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC9D,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,WAAW,GAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,KAA8F,CAAC,IAAI,CACvJ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAC1C,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,0DAA0D;QAC1D,MAAM,WAAW,GAAG,WAAW,EAAE,cAAwB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAA6E,CAAC;QACnH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC/E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,cAAc;QAC9F,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,6CAA6C;QAC7C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,aAAa,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC7E,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;SAC1F,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,QAAQ,CAAC;YAC3B,MAAM,EAAE,gCAAgC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW;YAC3F,IAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;SACnE,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;YAC/D,IAAI,EAAE,KAAK,yBAAyB;gBAAE,OAAO,aAAa,CAAC;YAC3D,IAAI,EAAE,KAAK,gCAAgC;gBAAE,OAAO,WAAW,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACrE,MAAM,WAAW,GAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,KAA8F,CAAC,IAAI,CACvJ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gCAAgC,CACjD,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,WAAW,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,aAAa,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YAC7E,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,QAAQ,CAAC;YAC3B,MAAM,EAAE,gCAAgC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW;YAC3F,IAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;SACnE,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;YAC/D,IAAI,EAAE,KAAK,yBAAyB;gBAAE,OAAO,aAAa,CAAC;YAC3D,IAAI,EAAE,KAAK,gCAAgC;gBAAE,OAAO,WAAW,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,mDAAmD;QACnD,gBAAgB,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAA2C,EAAE,EAAE;YACnG,IAAI,KAAK,CAAC,MAAM,KAAK,gCAAgC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,aAAa,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS;YAC3E,IAAI,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC/G,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,6DAA6D;QAC7D,MAAM,KAAK,GAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,KAA8F,CAAC,IAAI,CACjJ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAC1C,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,IAAI,EAAE,CAAgD,CAAC;QACtG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,2EAA2E;AAE3E,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,sBAAsB,EAAE;gBACtB,eAAe,EAAE,CAAC,iBAAiB,CAAC;gBACpC,iBAAiB,EAAE,CAAC;gBACpB,mBAAmB,EAAE,WAAW;gBAChC,gBAAgB,EAAE,UAAU;gBAC5B,cAAc,EAAE,QAAQ;aACzB;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAChG,KAAK,IAAI,CAAC;QACV,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,aAAa,CAAC;YACrD,iBAAiB,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ;SAC/C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YACzB,WAAW,EAAE;gBACX,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI;gBACzD,iBAAiB,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE;gBAC7C,cAAc,EAAE,MAAM;aACvB;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YACvD,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;YAC7D,cAAc,EAAE,GAAG;SACN,CAAC;QAChB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;YACxD,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;gBAC1B,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW;gBAC9C,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=owner-decision-architecture.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-decision-architecture.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/owner-decision-architecture.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * PRI-629 §34 — Owner Decision 架构回归守卫(core 侧)。
3
+ *
4
+ * - effectiveDecision 只有一个 resolver (owner-review.ts);orchestrator 的
5
+ * transition 投影必须经它 (禁止旁路计算)
6
+ * - 不存在 owner decision authority 的第二张表/第二 store: ownerResolutions
7
+ * 只在 PITaskMetadata (diagnosticJson) 内,不新增 store 模块
8
+ * - ActivationDispatcher 仍是 activation 唯一 policy boundary:
9
+ * owner-review/owner-resolution-service 不得 import dispatcher 绕过门
10
+ */
11
+ import { describe, it, expect } from 'vitest';
12
+ import * as fs from 'node:fs';
13
+ import * as path from 'node:path';
14
+ import { fileURLToPath } from 'node:url';
15
+ const here = path.dirname(fileURLToPath(import.meta.url));
16
+ const coreSrc = path.resolve(here, '../../..'); // .../src/runtime-v2/internalization/__tests__ → .../src
17
+ function walk(dir, acc = []) {
18
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
19
+ const full = path.join(dir, entry.name);
20
+ if (entry.isDirectory())
21
+ walk(full, acc);
22
+ else if (entry.name.endsWith('.ts') && !entry.name.endsWith('.test.ts'))
23
+ acc.push(full);
24
+ }
25
+ return acc;
26
+ }
27
+ describe('PRI-629 §34: owner decision architecture guards', () => {
28
+ it('resolveEffectiveRunnerDecision is defined exactly once (single resolution point)', () => {
29
+ const files = walk(coreSrc);
30
+ expect(files.length).toBeGreaterThan(100);
31
+ const definers = files.filter((f) => /export function resolveEffectiveRunnerDecision/.test(fs.readFileSync(f, 'utf-8')));
32
+ expect(definers.map((f) => path.relative(coreSrc, f))).toEqual([
33
+ path.join('runtime-v2', 'internalization', 'owner-review.ts'),
34
+ ]);
35
+ });
36
+ it('transition arbitration consumes the resolver (no bypass re-implementation)', () => {
37
+ const src = fs.readFileSync(path.join(coreSrc, 'runtime-v2/internalization/internalization-transition-decision.ts'), 'utf-8');
38
+ expect(src).toContain('resolveEffectiveRunnerDecision(piTask)');
39
+ });
40
+ it('no owner-decision store/table module was added (authority stays in PITaskMetadata)', () => {
41
+ const files = walk(path.join(coreSrc, 'runtime-v2/store'));
42
+ const offenders = files.filter((f) => /owner.?decision|owner.?resolution/i.test(path.basename(f)));
43
+ expect(offenders).toEqual([]);
44
+ });
45
+ it('owner decision policy does not import the activation dispatcher (boundary intact)', () => {
46
+ for (const mod of ['owner-review.ts', 'owner-resolution-service.ts']) {
47
+ const src = fs.readFileSync(path.join(coreSrc, 'runtime-v2/internalization', mod), 'utf-8');
48
+ expect(src.includes('activation-dispatcher'), `${mod} must not import dispatcher`).toBe(false);
49
+ }
50
+ });
51
+ it('machine verdict immutability: owner-resolution paths never write runnerDecision', () => {
52
+ const src = fs.readFileSync(path.join(coreSrc, 'runtime-v2/internalization/owner-resolution-service.ts'), 'utf-8');
53
+ expect(src.includes('runnerDecision:'), 'service must not set runnerDecision').toBe(false);
54
+ });
55
+ });
56
+ //# sourceMappingURL=owner-decision-architecture.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-decision-architecture.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/owner-decision-architecture.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=owner-decision-review.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-decision-review.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/owner-decision-review.test.ts"],"names":[],"mappings":""}