create-principles-disciple 1.127.1 → 1.128.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 (114) hide show
  1. package/console/dist/server/config/pd-config-store.js +7 -2
  2. package/console/dist/server/models/HealthCheckModel.d.ts +4 -1
  3. package/console/dist/server/models/HealthCheckModel.js +6 -5
  4. package/console/dist/server/routes/update.js +8 -83
  5. package/console/dist/server/utils/installed-layout.d.ts +21 -0
  6. package/console/dist/server/utils/installed-layout.js +92 -0
  7. package/console/dist/server/utils/pd-backups.d.ts +9 -0
  8. package/console/dist/server/utils/pd-backups.js +5 -1
  9. package/console/dist/ui/pages/settings/UpdatePage.js +2 -1
  10. package/console/dist/web/assets/app.js +975 -824
  11. package/console/dist/web/index.html +4 -0
  12. package/core/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js +69 -0
  13. package/core/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js.map +1 -1
  14. package/core/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
  15. package/core/dist/runtime-v2/activation/production-gate-deps.js +13 -46
  16. package/core/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
  17. package/core/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.d.ts +2 -0
  18. package/core/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.d.ts.map +1 -0
  19. package/core/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.js +143 -0
  20. package/core/dist/runtime-v2/config/__tests__/pd-config-sparse-bootstrap.test.js.map +1 -0
  21. package/core/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js +44 -27
  22. package/core/dist/runtime-v2/feature-flags/__tests__/installer-config-parity.test.js.map +1 -1
  23. package/core/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js +9 -0
  24. package/core/dist/runtime-v2/internalization/__tests__/adversarial-feedback.test.js.map +1 -1
  25. package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +15 -5
  26. package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
  27. package/core/dist/runtime-v2/internalization/__tests__/context-resolution.test.d.ts +2 -0
  28. package/core/dist/runtime-v2/internalization/__tests__/context-resolution.test.d.ts.map +1 -0
  29. package/core/dist/runtime-v2/internalization/__tests__/context-resolution.test.js +377 -0
  30. package/core/dist/runtime-v2/internalization/__tests__/context-resolution.test.js.map +1 -0
  31. package/core/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.d.ts +2 -0
  32. package/core/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.d.ts.map +1 -0
  33. package/core/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js +413 -0
  34. package/core/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js.map +1 -0
  35. package/core/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js +136 -0
  36. package/core/dist/runtime-v2/internalization/__tests__/evaluator-gate-authority.test.js.map +1 -1
  37. package/core/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.js +8 -8
  38. package/core/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.js.map +1 -1
  39. package/core/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.d.ts +2 -0
  40. package/core/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.d.ts.map +1 -0
  41. package/core/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.js +340 -0
  42. package/core/dist/runtime-v2/internalization/__tests__/repair-replay-resolver.test.js.map +1 -0
  43. package/core/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.d.ts +2 -0
  44. package/core/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.d.ts.map +1 -0
  45. package/core/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js +628 -0
  46. package/core/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js.map +1 -0
  47. package/core/dist/runtime-v2/internalization/adversarial-feedback.d.ts.map +1 -1
  48. package/core/dist/runtime-v2/internalization/adversarial-feedback.js +7 -1
  49. package/core/dist/runtime-v2/internalization/adversarial-feedback.js.map +1 -1
  50. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +9 -2
  51. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
  52. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js +19 -1
  53. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
  54. package/core/dist/runtime-v2/internalization/artificer-runner.d.ts +23 -0
  55. package/core/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  56. package/core/dist/runtime-v2/internalization/artificer-runner.js +184 -16
  57. package/core/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  58. package/core/dist/runtime-v2/internalization/context-manifests.d.ts +90 -17
  59. package/core/dist/runtime-v2/internalization/context-manifests.d.ts.map +1 -1
  60. package/core/dist/runtime-v2/internalization/context-manifests.js +124 -27
  61. package/core/dist/runtime-v2/internalization/context-manifests.js.map +1 -1
  62. package/core/dist/runtime-v2/internalization/context-resolution.d.ts +189 -0
  63. package/core/dist/runtime-v2/internalization/context-resolution.d.ts.map +1 -0
  64. package/core/dist/runtime-v2/internalization/context-resolution.js +317 -0
  65. package/core/dist/runtime-v2/internalization/context-resolution.js.map +1 -0
  66. package/core/dist/runtime-v2/internalization/evaluator-output.d.ts +18 -1
  67. package/core/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  68. package/core/dist/runtime-v2/internalization/evaluator-output.js +12 -2
  69. package/core/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  70. package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts +32 -0
  71. package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  72. package/core/dist/runtime-v2/internalization/evaluator-runner.js +171 -12
  73. package/core/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  74. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts +18 -1
  75. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
  76. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +20 -0
  77. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
  78. package/core/dist/runtime-v2/internalization/repair-replay-resolver.d.ts +112 -0
  79. package/core/dist/runtime-v2/internalization/repair-replay-resolver.d.ts.map +1 -0
  80. package/core/dist/runtime-v2/internalization/repair-replay-resolver.js +332 -0
  81. package/core/dist/runtime-v2/internalization/repair-replay-resolver.js.map +1 -0
  82. package/core/dist/runtime-v2/runner/base-peer-runner.d.ts +62 -17
  83. package/core/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  84. package/core/dist/runtime-v2/runner/base-peer-runner.js +116 -10
  85. package/core/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  86. package/core/dist/telemetry-event.d.ts +2 -2
  87. package/core/dist/telemetry-event.d.ts.map +1 -1
  88. package/core/dist/telemetry-event.js +61 -0
  89. package/core/dist/telemetry-event.js.map +1 -1
  90. package/core/package.json +1 -1
  91. package/dist/installer.d.ts.map +1 -1
  92. package/dist/installer.js +16 -12
  93. package/dist/installer.js.map +1 -1
  94. package/dist/mvp-config.d.ts +22 -15
  95. package/dist/mvp-config.d.ts.map +1 -1
  96. package/dist/mvp-config.js +48 -106
  97. package/dist/mvp-config.js.map +1 -1
  98. package/host-runtime/package.json +1 -1
  99. package/install-layout/package.json +7 -3
  100. package/package.json +1 -1
  101. package/pd-cli/dist/commands/console.d.ts +13 -0
  102. package/pd-cli/dist/commands/console.d.ts.map +1 -1
  103. package/pd-cli/dist/commands/console.js +104 -0
  104. package/pd-cli/dist/commands/console.js.map +1 -1
  105. package/pd-cli/dist/commands/runtime-init.d.ts.map +1 -1
  106. package/pd-cli/dist/commands/runtime-init.js +8 -12
  107. package/pd-cli/dist/commands/runtime-init.js.map +1 -1
  108. package/pd-cli/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
  109. package/pd-cli/dist/commands/runtime-internalization-run-once.js +7 -1
  110. package/pd-cli/dist/commands/runtime-internalization-run-once.js.map +1 -1
  111. package/pd-cli/package.json +1 -1
  112. package/plugin/dist/bundle.js +449 -437
  113. package/plugin/dist/governance-audit.js +141 -141
  114. package/plugin/dist/rulehost-evidence.js +153 -153
@@ -0,0 +1,340 @@
1
+ /**
2
+ * PRI-634 PR-A — repair-replay-resolver unit regressions (SPEC §21/§26/§27/§30).
3
+ *
4
+ * Covers:
5
+ * - legacy actualDecision=<errorType> normalization (readers normalize, no migration)
6
+ * - current-shape entries keep real actualDecision only when a decision existed
7
+ * - deterministic artifact authority selection: completionIntent.sourceRunId
8
+ * → pi-art-<taskId>-<runId>; fallback exactly-one; zero/many fail loud
9
+ * - adversarialResult missing / corrupt → structured failure, never blind retry
10
+ * - bounded stratified selection: errorType × expectedDecision groups,
11
+ * mismatch preference, stable order, truncation flag
12
+ * - system sentinels partition separately from real trace failures;
13
+ * forbidden patterns surface as global violations
14
+ */
15
+ import { describe, it, expect } from 'vitest';
16
+ import { resolveRepairReplayContext, selectBoundedReplayFailures, MAX_REPLAY_FAILURES_IN_REPAIR, } from '../repair-replay-resolver.js';
17
+ import { createPITaskDiagnosticJson } from '../pitask-metadata.js';
18
+ function mkTask(diagnosticJson) {
19
+ return {
20
+ taskId: 'eval-t1',
21
+ taskKind: 'evaluator',
22
+ status: 'succeeded',
23
+ attemptCount: 1,
24
+ maxAttempts: 3,
25
+ diagnosticJson,
26
+ createdAt: new Date().toISOString(),
27
+ updatedAt: new Date().toISOString(),
28
+ };
29
+ }
30
+ function intentTask(runId) {
31
+ const base = JSON.parse(createPITaskDiagnosticJson({
32
+ dependencyTaskIds: [], channel: 'prompt', timeoutMs: 300_000,
33
+ inputArtifactRefs: [], outputArtifactRefs: [],
34
+ }));
35
+ // diagnosticJson nests the metadata under the PI envelope key.
36
+ const envelopeKey = Object.keys(base).find((k) => k !== 'version');
37
+ if (envelopeKey === undefined)
38
+ throw new Error('unexpected diagnosticJson shape');
39
+ const meta = base[envelopeKey];
40
+ meta.completionIntent = {
41
+ decision: 'needs_revision',
42
+ sourceRunId: runId,
43
+ revisionEpoch: 0,
44
+ status: 'applied',
45
+ };
46
+ return mkTask(JSON.stringify(base));
47
+ }
48
+ function mkArtifact(overrides) {
49
+ return {
50
+ artifactId: 'pi-art-eval-t1-run-1',
51
+ artifactKind: 'principle',
52
+ sourceTaskId: 'eval-t1',
53
+ lineageArtifactIds: [],
54
+ validationStatus: 'pending',
55
+ contentJson: '{}',
56
+ createdAt: '2026-09-02T00:00:00.000Z',
57
+ updatedAt: '2026-09-02T00:00:00.000Z',
58
+ ...overrides,
59
+ };
60
+ }
61
+ function evaluatorArtifactWith(adversarialResult) {
62
+ return mkArtifact({
63
+ contentJson: JSON.stringify({
64
+ taskId: 'eval-t1',
65
+ evaluation: { decision: 'needs_revision', summary: 's', score: 0.5, strengths: [], concerns: [], requiredChanges: ['x'] },
66
+ adversarialResult,
67
+ }),
68
+ });
69
+ }
70
+ function depsWith(params) {
71
+ return {
72
+ artifactStore: {
73
+ getArtifactById: async (id) => params.byId?.[id] ?? params.artifacts?.find((a) => a.artifactId === id) ?? null,
74
+ listBySourceTaskId: async (taskId) => (params.artifacts ?? []).filter((a) => a.sourceTaskId === taskId),
75
+ },
76
+ getTask: async (taskId) => (params.task === undefined ? intentTask('run-1') : params.task?.taskId === taskId ? params.task : null),
77
+ };
78
+ }
79
+ describe('PRI-634 PR-A: resolveRepairReplayContext — artifact authority selection (SPEC §26)', () => {
80
+ it('resolves via completionIntent.sourceRunId → pi-art-<taskId>-<runId> even when other artifacts exist', async () => {
81
+ const authoritative = evaluatorArtifactWith({ passed: false, failedCases: [{ caseId: 'v2-unavailable', attackType: 'boundary', expectedDecision: 'allow', errorType: 'runtime_error', message: 'boom' }] });
82
+ const decoy = mkArtifact({ artifactId: 'pi-art-eval-t1-run-0', contentJson: JSON.stringify({ evaluation: { decision: 'needs_revision' } }) });
83
+ const resolution = await resolveRepairReplayContext({
84
+ sourceEvaluatorTaskId: 'eval-t1',
85
+ deps: depsWith({ task: intentTask('run-1'), artifacts: [decoy, authoritative], byId: { 'pi-art-eval-t1-run-1': authoritative } }),
86
+ });
87
+ expect(resolution.ok).toBe(true);
88
+ if (!resolution.ok)
89
+ return;
90
+ expect(resolution.context.sourceEvaluatorArtifactId).toBe('pi-art-eval-t1-run-1');
91
+ expect(resolution.context.failedCaseCount).toBe(1);
92
+ });
93
+ it('falls back to exactly-one principle artifact when the intent is absent', async () => {
94
+ const only = evaluatorArtifactWith({ passed: false, failedCases: [] });
95
+ const task = mkTask(createPITaskDiagnosticJson({
96
+ dependencyTaskIds: [], channel: 'prompt', timeoutMs: 300_000, inputArtifactRefs: [], outputArtifactRefs: [],
97
+ }));
98
+ const resolution = await resolveRepairReplayContext({
99
+ sourceEvaluatorTaskId: 'eval-t1',
100
+ deps: depsWith({ task, artifacts: [only] }),
101
+ });
102
+ expect(resolution.ok).toBe(true);
103
+ });
104
+ it('P1 review 2026-09-02: intent-named artifact missing + exactly one other-run artifact → FAIL LOUD, never cross-run fallback', async () => {
105
+ // The durable authority (completionIntent.sourceRunId) is KNOWN — a
106
+ // different run's artifact must not be silently promoted into its place.
107
+ const staleOtherRun = mkArtifact({ artifactId: 'pi-art-eval-t1-run-0', contentJson: evaluatorArtifactWith({ passed: true, failedCases: [] }).contentJson });
108
+ const resolution = await resolveRepairReplayContext({
109
+ sourceEvaluatorTaskId: 'eval-t1',
110
+ deps: depsWith({ task: intentTask('run-1'), artifacts: [staleOtherRun], byId: {} }),
111
+ });
112
+ expect(resolution.ok).toBe(false);
113
+ if (resolution.ok)
114
+ return;
115
+ expect(resolution.reason).toBe('artifact_missing');
116
+ expect(resolution.detail).toContain('refusing cross-run fallback');
117
+ expect(resolution.detail).toContain('pi-art-eval-t1-run-1');
118
+ });
119
+ it('fails loud (artifact_ambiguous) on multiple artifacts with no resolvable intent — never a positional pick', async () => {
120
+ const a = evaluatorArtifactWith({ passed: false, failedCases: [] });
121
+ const b = evaluatorArtifactWith({ passed: true, failedCases: [] });
122
+ const task = mkTask(createPITaskDiagnosticJson({
123
+ dependencyTaskIds: [], channel: 'prompt', timeoutMs: 300_000, inputArtifactRefs: [], outputArtifactRefs: [],
124
+ }));
125
+ const resolution = await resolveRepairReplayContext({
126
+ sourceEvaluatorTaskId: 'eval-t1',
127
+ deps: depsWith({ task, artifacts: [a, b] }),
128
+ });
129
+ expect(resolution.ok).toBe(false);
130
+ if (resolution.ok)
131
+ return;
132
+ expect(resolution.reason).toBe('artifact_ambiguous');
133
+ });
134
+ it('fails loud (artifact_missing) when zero principle artifacts exist', async () => {
135
+ const resolution = await resolveRepairReplayContext({
136
+ sourceEvaluatorTaskId: 'eval-t1',
137
+ deps: depsWith({ task: intentTask('run-1'), artifacts: [] }),
138
+ });
139
+ expect(resolution.ok).toBe(false);
140
+ if (resolution.ok)
141
+ return;
142
+ expect(resolution.reason).toBe('artifact_missing');
143
+ });
144
+ it('fails loud (task_missing) when the evaluator task does not exist', async () => {
145
+ const resolution = await resolveRepairReplayContext({
146
+ sourceEvaluatorTaskId: 'eval-t1',
147
+ deps: depsWith({ task: null, artifacts: [] }),
148
+ });
149
+ expect(resolution.ok).toBe(false);
150
+ if (resolution.ok)
151
+ return;
152
+ expect(resolution.reason).toBe('task_missing');
153
+ });
154
+ });
155
+ describe('PRI-634 PR-A: adversarialResult validation (SPEC §27 — no blind retry)', () => {
156
+ it('adversarial_result_missing when the artifact carries no adversarialResult', async () => {
157
+ const artifact = evaluatorArtifactWith(undefined);
158
+ // remove the key entirely
159
+ const parsed = JSON.parse(artifact.contentJson);
160
+ delete parsed.adversarialResult;
161
+ artifact.contentJson = JSON.stringify(parsed);
162
+ const resolution = await resolveRepairReplayContext({
163
+ sourceEvaluatorTaskId: 'eval-t1',
164
+ deps: depsWith({ artifacts: [artifact], byId: { [artifact.artifactId]: artifact } }),
165
+ });
166
+ expect(resolution.ok).toBe(false);
167
+ if (resolution.ok)
168
+ return;
169
+ expect(resolution.reason).toBe('adversarial_result_missing');
170
+ });
171
+ it('adversarial_result_invalid on malformed failedCases elements — never silently dropped', async () => {
172
+ const artifact = evaluatorArtifactWith({ passed: false, failedCases: [{ caseId: 42 }] });
173
+ const resolution = await resolveRepairReplayContext({
174
+ sourceEvaluatorTaskId: 'eval-t1',
175
+ deps: depsWith({ artifacts: [artifact], byId: { [artifact.artifactId]: artifact } }),
176
+ });
177
+ expect(resolution.ok).toBe(false);
178
+ if (resolution.ok)
179
+ return;
180
+ expect(resolution.reason).toBe('adversarial_result_invalid');
181
+ });
182
+ it('unparseable contentJson → adversarial_result_invalid', async () => {
183
+ const artifact = mkArtifact({ contentJson: '{not-json' });
184
+ const resolution = await resolveRepairReplayContext({
185
+ sourceEvaluatorTaskId: 'eval-t1',
186
+ deps: depsWith({ artifacts: [artifact], byId: { [artifact.artifactId]: artifact } }),
187
+ });
188
+ expect(resolution.ok).toBe(false);
189
+ if (resolution.ok)
190
+ return;
191
+ expect(resolution.reason).toBe('adversarial_result_invalid');
192
+ });
193
+ });
194
+ describe('PRI-634 PR-A: legacy normalization + partitioning (SPEC §17/§18/§21)', () => {
195
+ it('legacy actualDecision=<sandbox error enum> normalizes into errorType with actualDecision dropped', async () => {
196
+ const artifact = evaluatorArtifactWith({
197
+ passed: false,
198
+ failedCases: [
199
+ // pre-PR-A representation: actualDecision carried the errorType
200
+ { caseId: 'v2-unavailable', attackType: 'boundary', actualDecision: 'runtime_error', expectedDecision: 'allow', rationale: 'runtime_error: paramsSummary.includes is not a function' },
201
+ { caseId: 'v2-truncated', attackType: 'omission', actualDecision: 'timeout', expectedDecision: 'allow', rationale: 'timeout: Evaluation timed out' },
202
+ ],
203
+ });
204
+ const resolution = await resolveRepairReplayContext({
205
+ sourceEvaluatorTaskId: 'eval-t1',
206
+ deps: depsWith({ artifacts: [artifact], byId: { [artifact.artifactId]: artifact } }),
207
+ });
208
+ expect(resolution.ok).toBe(true);
209
+ if (!resolution.ok)
210
+ return;
211
+ expect(resolution.context.traceFailures).toHaveLength(2);
212
+ const [first, second] = resolution.context.traceFailures;
213
+ expect(first?.errorType).toBe('runtime_error');
214
+ expect(first?.actualDecision).toBeUndefined();
215
+ expect(first?.message).toBe('runtime_error: paramsSummary.includes is not a function');
216
+ expect(second?.errorType).toBe('timeout');
217
+ expect(second?.actualDecision).toBeUndefined();
218
+ });
219
+ it('legacy actualDecision=<real decision> is kept as a real decision and errorType inferred as validation_failed', async () => {
220
+ const artifact = evaluatorArtifactWith({
221
+ passed: false,
222
+ failedCases: [
223
+ { caseId: 'v2-path-boundary', attackType: 'boundary', actualDecision: 'allow', expectedDecision: 'block', rationale: 'validation_failed: Expected block but got allow' },
224
+ ],
225
+ });
226
+ const resolution = await resolveRepairReplayContext({
227
+ sourceEvaluatorTaskId: 'eval-t1',
228
+ deps: depsWith({ artifacts: [artifact], byId: { [artifact.artifactId]: artifact } }),
229
+ });
230
+ expect(resolution.ok).toBe(true);
231
+ if (!resolution.ok)
232
+ return;
233
+ const [failure] = resolution.context.traceFailures;
234
+ expect(failure?.errorType).toBe('validation_failed');
235
+ expect(failure?.actualDecision).toBe('allow');
236
+ expect(failure?.expectedDecision).toBe('block');
237
+ });
238
+ it('current-shape entries: real decision mismatch keeps actualDecision; sentinels and forbidden patterns partition disjointly', async () => {
239
+ const artifact = evaluatorArtifactWith({
240
+ passed: false,
241
+ failedCases: [
242
+ { caseId: 'v2-combination', attackType: 'inversion', expectedDecision: 'block', actualDecision: 'allow', errorType: 'validation_failed', message: 'Expected block but got allow', rationale: 'r' },
243
+ { caseId: '__compile__', attackType: 'boundary', expectedDecision: 'unknown', errorType: 'syntax_error', message: 'Unexpected token', rationale: 'r' },
244
+ { caseId: '__forbidden_pattern__', attackType: 'boundary', expectedDecision: 'block', errorType: 'forbidden_pattern', message: 'forbidden pattern detected in rule code: require', rationale: 'r' },
245
+ ],
246
+ });
247
+ const resolution = await resolveRepairReplayContext({
248
+ sourceEvaluatorTaskId: 'eval-t1',
249
+ deps: depsWith({ artifacts: [artifact], byId: { [artifact.artifactId]: artifact } }),
250
+ });
251
+ expect(resolution.ok).toBe(true);
252
+ if (!resolution.ok)
253
+ return;
254
+ const { context } = resolution;
255
+ expect(context.ran).toBe(true);
256
+ expect(context.passed).toBe(false);
257
+ expect(context.failedCaseCount).toBe(3);
258
+ expect(context.traceFailures).toHaveLength(1);
259
+ expect(context.traceFailures[0]?.caseId).toBe('v2-combination');
260
+ expect(context.traceFailures[0]?.actualDecision).toBe('allow');
261
+ // P2 review 2026-09-02: forbidden patterns count ONLY as global
262
+ // violations — never double-rendered as system failures too.
263
+ expect(context.systemFailures).toHaveLength(1);
264
+ expect(context.systemFailures[0]?.caseId).toBe('__compile__');
265
+ expect(context.globalViolations).toEqual(['forbidden pattern detected in rule code: require']);
266
+ expect(context.globalViolationCount).toBe(1);
267
+ expect(context.truncated).toBe(false);
268
+ });
269
+ });
270
+ describe('PRI-634 PR-A: bounded stratified selection (SPEC §30 + review P1/P2 2026-09-02)', () => {
271
+ const mk = (spec) => ({
272
+ caseId: spec.caseId,
273
+ errorType: spec.errorType,
274
+ expectedDecision: spec.expected,
275
+ ...(spec.actual !== undefined ? { actualDecision: spec.actual } : {}),
276
+ });
277
+ it('keeps one representative per errorType × expectedDecision group; mismatches get explicit priority', () => {
278
+ const traceFailures = [
279
+ mk({ caseId: 'a1', errorType: 'runtime_error', expected: 'allow' }),
280
+ mk({ caseId: 'a2', errorType: 'runtime_error', expected: 'allow' }),
281
+ mk({ caseId: 'b1', errorType: 'validation_failed', expected: 'allow' }),
282
+ mk({ caseId: 'b2', errorType: 'validation_failed', expected: 'allow', actual: 'block' }),
283
+ mk({ caseId: 'c1', errorType: 'validation_failed', expected: 'block', actual: 'allow' }),
284
+ ];
285
+ const { selectedTrace, truncated } = selectBoundedReplayFailures({ traceFailures, systemFailures: [], globalViolations: [], capacity: 16 });
286
+ // Mismatch representatives first (allow-axis b2, block-axis c1), then the
287
+ // remaining group rep (runtime_error×allow → a1), then stable fill (a2, b1).
288
+ expect(selectedTrace.map((f) => f.caseId)).toEqual(['b2', 'c1', 'a1', 'a2', 'b1']);
289
+ expect(truncated).toBe(false);
290
+ });
291
+ it('P1 review: capacity 2 keeps BOTH the expected-allow and expected-block mismatch — runtime errors cannot evict them', () => {
292
+ const traceFailures = [
293
+ mk({ caseId: 'r1', errorType: 'runtime_error', expected: 'allow' }),
294
+ mk({ caseId: 'r2', errorType: 'runtime_error', expected: 'allow' }),
295
+ mk({ caseId: 'r3', errorType: 'runtime_error', expected: 'allow' }),
296
+ mk({ caseId: 'm1', errorType: 'validation_failed', expected: 'allow', actual: 'block' }),
297
+ mk({ caseId: 'm2', errorType: 'validation_failed', expected: 'block', actual: 'allow' }),
298
+ ];
299
+ const { selectedTrace, truncated } = selectBoundedReplayFailures({ traceFailures, systemFailures: [], globalViolations: [], capacity: 2 });
300
+ // The exact reviewer counter-example: r1 must NOT claim a slot that
301
+ // starves m2. Both behavioral mismatches survive; raw errors fill later.
302
+ expect(selectedTrace.map((f) => f.caseId)).toEqual(['m1', 'm2']);
303
+ expect(truncated).toBe(true);
304
+ });
305
+ it('P1 review: at capacity 3 the runtime-error group representative is added after both mismatches', () => {
306
+ const traceFailures = [
307
+ mk({ caseId: 'r1', errorType: 'runtime_error', expected: 'allow' }),
308
+ mk({ caseId: 'm1', errorType: 'validation_failed', expected: 'allow', actual: 'block' }),
309
+ mk({ caseId: 'm2', errorType: 'validation_failed', expected: 'block', actual: 'allow' }),
310
+ ];
311
+ const { selectedTrace, truncated } = selectBoundedReplayFailures({ traceFailures, systemFailures: [], globalViolations: [], capacity: 3 });
312
+ expect(selectedTrace.map((f) => f.caseId)).toEqual(['m1', 'm2', 'r1']);
313
+ expect(truncated).toBe(false);
314
+ });
315
+ it('system failures first, then the global-violation representative — one shared budget', () => {
316
+ const systemFailures = [mk({ caseId: '__compile__', errorType: 'syntax_error', expected: 'unknown' })];
317
+ const traceFailures = Array.from({ length: 20 }, (_, i) => mk({ caseId: `t${i}`, errorType: 'runtime_error', expected: 'allow' }));
318
+ const globalViolations = ['forbidden pattern: require', 'forbidden pattern: eval'];
319
+ const { selectedTrace, selectedSystem, selectedGlobalViolations, truncated } = selectBoundedReplayFailures({ traceFailures, systemFailures, globalViolations, capacity: 5 });
320
+ expect(selectedSystem.map((f) => f.caseId)).toEqual(['__compile__']);
321
+ // One representative for the whole violation group (P2: bounded, no duplicates).
322
+ expect(selectedGlobalViolations).toEqual(['forbidden pattern: require']);
323
+ expect(selectedTrace).toHaveLength(3); // 5 capacity − 1 system − 1 violation
324
+ expect(truncated).toBe(true);
325
+ });
326
+ it('P2 review: global violations can never bypass the capacity bound (28 violations, tiny capacity)', () => {
327
+ const globalViolations = Array.from({ length: 28 }, (_, i) => `forbidden pattern: p${i}`);
328
+ const { selectedGlobalViolations, truncated } = selectBoundedReplayFailures({ traceFailures: [], systemFailures: [], globalViolations, capacity: 4 });
329
+ expect(selectedGlobalViolations).toHaveLength(4);
330
+ expect(truncated).toBe(true);
331
+ });
332
+ it('truncated=true when capacity omits durable failures; default cap is 16', () => {
333
+ expect(MAX_REPLAY_FAILURES_IN_REPAIR).toBe(16);
334
+ const traceFailures = Array.from({ length: 30 }, (_, i) => mk({ caseId: `t${i}`, errorType: i % 2 === 0 ? 'runtime_error' : 'validation_failed', expected: 'allow' }));
335
+ const { selectedTrace, truncated } = selectBoundedReplayFailures({ traceFailures, systemFailures: [], globalViolations: [], capacity: MAX_REPLAY_FAILURES_IN_REPAIR });
336
+ expect(selectedTrace).toHaveLength(16);
337
+ expect(truncated).toBe(true);
338
+ });
339
+ });
340
+ //# sourceMappingURL=repair-replay-resolver.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair-replay-resolver.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/repair-replay-resolver.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shared-information-plane-runner.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-information-plane-runner.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.ts"],"names":[],"mappings":""}