@principles/core 1.186.0 → 1.187.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 (69) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +7 -1
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +134 -15
  4. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +1 -1
  5. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts +18 -0
  6. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts.map +1 -0
  7. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js +251 -0
  8. package/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js.map +1 -0
  9. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +73 -0
  10. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
  11. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts +90 -0
  12. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts.map +1 -1
  13. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js +108 -0
  14. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js.map +1 -1
  15. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +8 -0
  16. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
  17. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +66 -3
  18. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
  19. package/dist/runtime-v2/diagnostician-output.d.ts +23 -0
  20. package/dist/runtime-v2/diagnostician-output.d.ts.map +1 -1
  21. package/dist/runtime-v2/diagnostician-output.js +16 -0
  22. package/dist/runtime-v2/diagnostician-output.js.map +1 -1
  23. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts +32 -0
  24. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
  25. package/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
  26. package/dist/runtime-v2/index.d.ts +4 -2
  27. package/dist/runtime-v2/index.d.ts.map +1 -1
  28. package/dist/runtime-v2/index.js +5 -3
  29. package/dist/runtime-v2/index.js.map +1 -1
  30. package/dist/runtime-v2/intent/index.d.ts +1 -0
  31. package/dist/runtime-v2/intent/index.d.ts.map +1 -1
  32. package/dist/runtime-v2/intent/index.js +1 -0
  33. package/dist/runtime-v2/intent/index.js.map +1 -1
  34. package/dist/runtime-v2/intent/intent-doc-reader-port.d.ts +95 -0
  35. package/dist/runtime-v2/intent/intent-doc-reader-port.d.ts.map +1 -0
  36. package/dist/runtime-v2/intent/intent-doc-reader-port.js +43 -0
  37. package/dist/runtime-v2/intent/intent-doc-reader-port.js.map +1 -0
  38. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts +54 -0
  39. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts.map +1 -0
  40. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js +219 -0
  41. package/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js.map +1 -0
  42. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts +2 -0
  43. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts.map +1 -0
  44. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +360 -0
  45. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +1 -0
  46. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts +2 -0
  47. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts.map +1 -0
  48. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js +333 -0
  49. package/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js.map +1 -0
  50. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts +2 -0
  51. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts.map +1 -0
  52. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js +113 -0
  53. package/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js.map +1 -0
  54. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts +13 -0
  55. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
  56. package/dist/runtime-v2/internalization/diag-rootcause-runner.js +42 -0
  57. package/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
  58. package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
  59. package/dist/runtime-v2/internalization/diag-router-runner.js +27 -0
  60. package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
  61. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +12 -0
  62. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  63. package/dist/runtime-v2/pain-signal-runtime-factory.js +1 -1
  64. package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  65. package/dist/runtime-v2/pain-to-principle-service.d.ts +6 -0
  66. package/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
  67. package/dist/runtime-v2/pain-to-principle-service.js +2 -0
  68. package/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
  69. package/package.json +1 -1
@@ -0,0 +1,219 @@
1
+ // ── §23.6 Positive cases (4) ────────────────────────────────────────────────
2
+ // Expect: source = action_drift | healthy_tension; evidenceStrength ≥ moderate
3
+ const POSITIVE_CASE_1 = {
4
+ id: 'pos-01-heavy-dashboard-in-mvp',
5
+ category: 'positive',
6
+ scenario: 'Agent builds a heavy analytics dashboard during MVP stage.',
7
+ flagOffDiagnosis: {
8
+ summary: 'Agent over-engineered a dashboard feature.',
9
+ rootCause: 'Design: Agent expanded scope beyond the minimal viable loop.',
10
+ intentTension: undefined,
11
+ },
12
+ flagOnExpectedIntentTension: {
13
+ source: 'action_drift',
14
+ evidenceStrength: 'moderate',
15
+ relatedIntentFields: ['current_strategic_focus', 'non_negotiables'],
16
+ evidence: [
17
+ 'INTENT says current focus is validating the smallest Pain → Principle loop.',
18
+ 'Agent designed a heavy dashboard with multiple chart types.',
19
+ 'Owner correction says the result increased review burden.',
20
+ ],
21
+ explanation: 'The work may be useful later, but it optimized presentation completeness before validating the current learning loop.',
22
+ suggestedOwnerAction: 'confirm_drift',
23
+ intentDocHash: 'sha256:fixture-pos-01',
24
+ },
25
+ ownerExpectedJudgment: 'Confirm drift — pause dashboard expansion, refocus on the minimal loop.',
26
+ };
27
+ const POSITIVE_CASE_2 = {
28
+ id: 'pos-02-large-scope-expansion',
29
+ category: 'positive',
30
+ scenario: 'Agent greatly expands task scope beyond the Owner-stated boundary.',
31
+ flagOffDiagnosis: {
32
+ summary: 'Agent expanded scope without approval.',
33
+ rootCause: 'People: Agent did not check scope boundaries before acting.',
34
+ intentTension: undefined,
35
+ },
36
+ flagOnExpectedIntentTension: {
37
+ source: 'action_drift',
38
+ evidenceStrength: 'strong',
39
+ relatedIntentFields: ['non_negotiables', 'stop_escalation'],
40
+ evidence: [
41
+ 'INTENT non_negotiables explicitly forbids autonomous scope expansion.',
42
+ 'Agent added three unrelated modules in one PR.',
43
+ 'The escalation crossed the stop_escalation boundary.',
44
+ ],
45
+ explanation: 'The action directly violated a non-negotiable boundary and crossed the stop_escalation threshold.',
46
+ suggestedOwnerAction: 'confirm_drift',
47
+ intentDocHash: 'sha256:fixture-pos-02',
48
+ },
49
+ ownerExpectedJudgment: 'Confirm drift — revert the out-of-scope modules, re-state the boundary.',
50
+ };
51
+ const POSITIVE_CASE_3 = {
52
+ id: 'pos-03-too-many-candidate-principles',
53
+ category: 'positive',
54
+ scenario: 'Agent generates an excessive number of candidate principles, increasing Owner attention load.',
55
+ flagOffDiagnosis: {
56
+ summary: 'Agent produced too many candidate principles.',
57
+ rootCause: 'Design: Principle generation lacked prioritization against Owner attention budget.',
58
+ intentTension: undefined,
59
+ },
60
+ flagOnExpectedIntentTension: {
61
+ source: 'action_drift',
62
+ evidenceStrength: 'moderate',
63
+ relatedIntentFields: ['current_strategic_focus'],
64
+ evidence: [
65
+ 'INTENT current_strategic_focus prioritizes a single validated principle.',
66
+ 'Agent emitted 7 candidate principles in one run.',
67
+ 'Owner has corrected this pattern twice before.',
68
+ ],
69
+ explanation: 'Flooding the review queue conflicts with the focus on a single validated principle.',
70
+ suggestedOwnerAction: 'confirm_drift',
71
+ intentDocHash: 'sha256:fixture-pos-03',
72
+ },
73
+ ownerExpectedJudgment: 'Confirm drift — collapse candidates into one, defer the rest.',
74
+ };
75
+ const POSITIVE_CASE_4 = {
76
+ id: 'pos-04-correct-but-wrong-stage-refactor',
77
+ category: 'positive',
78
+ scenario: 'Agent performs a technically correct but stage-inappropriate large refactor.',
79
+ flagOffDiagnosis: {
80
+ summary: 'Agent did a large refactor.',
81
+ rootCause: 'Design: Refactor was technically sound but mistimed.',
82
+ intentTension: undefined,
83
+ },
84
+ flagOnExpectedIntentTension: {
85
+ source: 'healthy_tension',
86
+ evidenceStrength: 'moderate',
87
+ relatedIntentFields: ['current_strategic_focus', 'why'],
88
+ evidence: [
89
+ 'INTENT why states the current stage is finding product-market fit, not hardening.',
90
+ 'The refactor improves code quality but does not advance the current focus.',
91
+ 'Owner acknowledged the value but deferred it.',
92
+ ],
93
+ explanation: 'Genuine strategic trade-off: the work is valuable but optimizing for the wrong stage.',
94
+ suggestedOwnerAction: 'observe',
95
+ intentDocHash: 'sha256:fixture-pos-04',
96
+ },
97
+ ownerExpectedJudgment: 'Observe — acknowledge value, defer until the focus shifts to hardening.',
98
+ };
99
+ // ── §23.7 Negative cases (4) ────────────────────────────────────────────────
100
+ // Expect: source = none; no intent_suspect; no revise_intent
101
+ const NEGATIVE_CASE_1 = {
102
+ id: 'neg-01-ordinary-test-failure',
103
+ category: 'negative',
104
+ scenario: 'An ordinary unit test failure with no INTENT relevance.',
105
+ flagOffDiagnosis: {
106
+ summary: 'A unit test failed due to a stale mock.',
107
+ rootCause: 'Tooling: Test mock was not updated after API change.',
108
+ intentTension: undefined,
109
+ },
110
+ flagOnExpectedIntentTension: null,
111
+ ownerExpectedJudgment: 'No intent tension — fix the mock and move on.',
112
+ };
113
+ const NEGATIVE_CASE_2 = {
114
+ id: 'neg-02-small-code-cleanup',
115
+ category: 'negative',
116
+ scenario: 'Small-scope code cleanup that does not touch INTENT boundaries.',
117
+ flagOffDiagnosis: {
118
+ summary: 'Agent renamed a few local variables for clarity.',
119
+ rootCause: 'Design: Minor readability improvement.',
120
+ intentTension: undefined,
121
+ },
122
+ flagOnExpectedIntentTension: null,
123
+ ownerExpectedJudgment: 'No intent tension — accept the cleanup.',
124
+ };
125
+ const NEGATIVE_CASE_3 = {
126
+ id: 'neg-03-on-focus-feature-progress',
127
+ category: 'negative',
128
+ scenario: 'Feature progress that aligns with the INTENT current focus.',
129
+ flagOffDiagnosis: {
130
+ summary: 'Agent implemented the next step of the focus feature.',
131
+ rootCause: 'Design: Aligned incremental progress.',
132
+ intentTension: undefined,
133
+ },
134
+ flagOnExpectedIntentTension: null,
135
+ ownerExpectedJudgment: 'No intent tension — continue.',
136
+ };
137
+ const NEGATIVE_CASE_4 = {
138
+ id: 'neg-04-alternative-proposal-no-intent-evidence',
139
+ category: 'negative',
140
+ scenario: 'Agent proposes an alternative approach, but there is no evidence the INTENT is stale.',
141
+ flagOffDiagnosis: {
142
+ summary: 'Agent proposed an alternative implementation.',
143
+ rootCause: 'Design: Alternative considered and rejected.',
144
+ intentTension: undefined,
145
+ },
146
+ flagOnExpectedIntentTension: null,
147
+ ownerExpectedJudgment: 'No intent tension — the proposal is valid exploration, not drift evidence.',
148
+ };
149
+ // ── §23.8 intent_suspect special cases (2) ──────────────────────────────────
150
+ // Expect: source = intent_suspect; suggestedOwnerAction = revise_intent
151
+ const INTENT_SUSPECT_CASE_1 = {
152
+ id: 'suspect-01-vague-desired-outcome',
153
+ category: 'intent_suspect',
154
+ scenario: 'INTENT Desired Outcome is too vague ("Make product better").',
155
+ flagOffDiagnosis: {
156
+ summary: 'Diagnosis could not anchor on a concrete outcome.',
157
+ rootCause: 'Assumption: Outcome statement lacked testable criteria.',
158
+ intentTension: undefined,
159
+ },
160
+ flagOnExpectedIntentTension: {
161
+ source: 'intent_suspect',
162
+ evidenceStrength: 'moderate',
163
+ relatedIntentFields: ['desired_outcome'],
164
+ evidence: [
165
+ 'INTENT desired_outcome is "Make product better".',
166
+ 'This statement admits any action as aligned.',
167
+ 'Two recent Pain signals conflicted on whether scope expansion was drift.',
168
+ ],
169
+ explanation: 'The Desired Outcome is too vague to distinguish drift from healthy exploration — the INTENT itself needs revision.',
170
+ suggestedOwnerAction: 'revise_intent',
171
+ intentDocHash: 'sha256:fixture-suspect-01',
172
+ },
173
+ ownerExpectedJudgment: 'Revise INTENT — make the desired outcome concrete and testable.',
174
+ };
175
+ const INTENT_SUSPECT_CASE_2 = {
176
+ id: 'suspect-02-intent-conflicts-with-confirmed-pain-patterns',
177
+ category: 'intent_suspect',
178
+ scenario: 'INTENT conflicts with multiple confirmed Pain patterns.',
179
+ flagOffDiagnosis: {
180
+ summary: 'Diagnosis found repeated friction with the stated focus.',
181
+ rootCause: 'Assumption: Stated focus may be outdated.',
182
+ intentTension: undefined,
183
+ },
184
+ flagOnExpectedIntentTension: {
185
+ source: 'intent_suspect',
186
+ evidenceStrength: 'strong',
187
+ relatedIntentFields: ['current_strategic_focus', 'non_negotiables'],
188
+ evidence: [
189
+ 'INTENT current_strategic_focus says "ship the minimal loop".',
190
+ 'Three confirmed Pain patterns show the minimal loop cannot unblock users.',
191
+ 'Owner has twice manually redirected around the stated focus.',
192
+ ],
193
+ explanation: 'The stated focus conflicts with confirmed field evidence — the INTENT is likely stale and should be revised.',
194
+ suggestedOwnerAction: 'revise_intent',
195
+ intentDocHash: 'sha256:fixture-suspect-02',
196
+ },
197
+ ownerExpectedJudgment: 'Revise INTENT — update the current focus to reflect field evidence.',
198
+ };
199
+ // ── Exported dataset ─────────────────────────────────────────────────────────
200
+ export const INTENT_TENSION_CASES = [
201
+ POSITIVE_CASE_1,
202
+ POSITIVE_CASE_2,
203
+ POSITIVE_CASE_3,
204
+ POSITIVE_CASE_4,
205
+ NEGATIVE_CASE_1,
206
+ NEGATIVE_CASE_2,
207
+ NEGATIVE_CASE_3,
208
+ NEGATIVE_CASE_4,
209
+ INTENT_SUSPECT_CASE_1,
210
+ INTENT_SUSPECT_CASE_2,
211
+ ];
212
+ /** Count assertions for SPEC §23.5 composition (used by the fixtures test). */
213
+ export const INTENT_TENSION_CASE_COUNTS = {
214
+ total: INTENT_TENSION_CASES.length,
215
+ positive: INTENT_TENSION_CASES.filter((c) => c.category === 'positive').length,
216
+ negative: INTENT_TENSION_CASES.filter((c) => c.category === 'negative').length,
217
+ intent_suspect: INTENT_TENSION_CASES.filter((c) => c.category === 'intent_suspect').length,
218
+ };
219
+ //# sourceMappingURL=intent-tension-cases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-tension-cases.js","sourceRoot":"","sources":["../../../../../src/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=diag-rootcause-intent-tension.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diag-rootcause-intent-tension.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,360 @@
1
+ /**
2
+ * DiagRootCauseRunner — PRI-468 INTENT.md injection integration tests.
3
+ *
4
+ * Verifies that Stage A correctly:
5
+ * 1. Does NOT inject INTENT.md when intent_engineering flag is off (byte-identical)
6
+ * 2. Injects INTENT.md when flag is on AND reader returns ok
7
+ * 3. Degrades gracefully (no INTENT, emits telemetry) when reader returns not_found
8
+ * 4. Degrades gracefully when reader returns flag_disabled
9
+ * 5. Behaves as before when no intentDocReader is provided (backward compat)
10
+ *
11
+ * ERR entries considered:
12
+ * - EP-01 / ERR-001: readResult treated as unknown, fields checked via Object.hasOwn
13
+ * - EP-02 / ERR-025: production path; no plugin imports in core test
14
+ * - EP-03 / ERR-002: every degraded path emits telemetry with reason + nextAction
15
+ * - EP-09: tests use mock readers with structured returns (no real fs in core tests)
16
+ */
17
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
18
+ import { DiagRootCauseRunner } from '../diag-rootcause-runner.js';
19
+ import { MemoryPIArtifactStore } from '../pi-artifact-store.js';
20
+ import { createPITaskDiagnosticJson } from '../pitask-metadata.js';
21
+ import { MOCK_ROOT_CAUSE_OUTPUTS } from './__fixtures__/split-pipeline-mock-outputs.js';
22
+ import { getDefaultPdConfig } from '../../config/pd-config-defaults.js';
23
+ // ── Test fixtures ────────────────────────────────────────────────────────────
24
+ const ROOTCAUSE_TASK_ID = 'diag_rootcause-001';
25
+ const RUN_ID = 'run-rootcause-001';
26
+ const OWNER = 'test-intent-owner';
27
+ const RUNTIME_KIND = 'test-double';
28
+ const INTENT_RAW = `# INTENT.md
29
+
30
+ ## 1. Why
31
+ Validate the smallest Pain → Principle loop before scaling.
32
+
33
+ ## 2. Desired Outcome
34
+ One real Pain Case reviewed by Owner within 5 minutes.
35
+
36
+ ## 3. Non-negotiables
37
+ No premature dashboards.
38
+
39
+ ## 4. Stop / Escalation
40
+ Stop if review burden increases.
41
+
42
+ ## 5. Current Strategic Focus
43
+ Tighten the learning loop.
44
+ `;
45
+ const INTENT_CONTENT_HASH = 'sha256:test-intent-hash-abc123';
46
+ const INTENT_PATH = '/workspace/.principles/INTENT.md';
47
+ function makeRootCauseTask(overrides = {}) {
48
+ return {
49
+ taskId: ROOTCAUSE_TASK_ID,
50
+ taskKind: 'diag_rootcause',
51
+ status: 'pending',
52
+ attemptCount: 0,
53
+ maxAttempts: 3,
54
+ createdAt: new Date().toISOString(),
55
+ updatedAt: new Date().toISOString(),
56
+ diagnosticJson: createPITaskDiagnosticJson({
57
+ dependencyTaskIds: [],
58
+ channel: 'prompt',
59
+ timeoutMs: 300_000,
60
+ inputArtifactRefs: [],
61
+ outputArtifactRefs: [],
62
+ }),
63
+ ...overrides,
64
+ };
65
+ }
66
+ function makeRootCauseOutput() {
67
+ return {
68
+ ...MOCK_ROOT_CAUSE_OUTPUTS.R6,
69
+ diagnosisId: 'diag-001',
70
+ taskId: ROOTCAUSE_TASK_ID,
71
+ };
72
+ }
73
+ function makeContextPayload() {
74
+ return {
75
+ sourceRefs: ['ref-1', 'ref-2'],
76
+ conversationWindow: [],
77
+ trajectorySummary: '',
78
+ painSignal: { painId: 'pain-001', painType: 'tool_failure', source: 'test', reason: 'test reason', score: 70 },
79
+ };
80
+ }
81
+ /** Build an EffectivePdConfig with intent_engineering flag on or off. */
82
+ function makeEffectiveConfig(opts) {
83
+ const base = getDefaultPdConfig();
84
+ return {
85
+ config: {
86
+ ...base,
87
+ features: {
88
+ ...base.features,
89
+ intent_engineering: {
90
+ category: 'quiet',
91
+ enabled: opts.intentEngineering === true,
92
+ },
93
+ ...(opts.coreGrounding !== undefined
94
+ ? { diagnostician_core_grounding: { category: 'quiet', enabled: opts.coreGrounding } }
95
+ : {}),
96
+ },
97
+ },
98
+ source: 'user_config',
99
+ warnings: [],
100
+ featuresChangedFromDefault: opts.intentEngineering ? ['intent_engineering'] : [],
101
+ };
102
+ }
103
+ function telemetryEventType(call) {
104
+ const event = call[0];
105
+ return event?.eventType;
106
+ }
107
+ function telemetryPayload(call) {
108
+ const event = call[0];
109
+ return event?.payload;
110
+ }
111
+ /** Create a mock IntentDocReader that returns the given result. */
112
+ function makeIntentDocReader(result) {
113
+ return {
114
+ readIntentDoc: vi.fn().mockReturnValue(result),
115
+ };
116
+ }
117
+ // ── Mock factory ─────────────────────────────────────────────────────────────
118
+ function createMockDeps(overrides = {}) {
119
+ const taskRecord = makeRootCauseTask();
120
+ const output = makeRootCauseOutput();
121
+ const _stateManager = {
122
+ acquireLease: vi.fn().mockResolvedValue(taskRecord),
123
+ getTask: vi.fn().mockResolvedValue(taskRecord),
124
+ getRunsByTask: vi.fn().mockResolvedValue([{ runId: RUN_ID, taskId: ROOTCAUSE_TASK_ID }]),
125
+ getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({
126
+ runs: [{ runId: RUN_ID, taskId: ROOTCAUSE_TASK_ID }],
127
+ degradedRuns: [],
128
+ }),
129
+ updateRunOutput: vi.fn().mockResolvedValue(undefined),
130
+ markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
131
+ markTaskFailed: vi.fn().mockResolvedValue(undefined),
132
+ markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
133
+ getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
134
+ };
135
+ const runHandle = { runId: RUN_ID, runtimeKind: RUNTIME_KIND, startedAt: new Date().toISOString() };
136
+ const succeededStatus = { status: 'succeeded', runId: RUN_ID };
137
+ const _runtimeAdapter = {
138
+ kind: vi.fn().mockReturnValue(RUNTIME_KIND),
139
+ getCapabilities: vi.fn(),
140
+ healthCheck: vi.fn(),
141
+ startRun: vi.fn().mockResolvedValue(runHandle),
142
+ pollRun: vi.fn().mockResolvedValue(succeededStatus),
143
+ fetchOutput: vi.fn().mockResolvedValue({ payload: output }),
144
+ cancelRun: vi.fn().mockResolvedValue(undefined),
145
+ fetchArtifacts: vi.fn(),
146
+ };
147
+ const _validator = {
148
+ validate: vi.fn().mockResolvedValue({ valid: true, errors: [] }),
149
+ };
150
+ const _contextAssembler = {
151
+ assemble: vi.fn().mockResolvedValue(makeContextPayload()),
152
+ };
153
+ const _eventEmitter = {
154
+ emitTelemetry: vi.fn(),
155
+ on: vi.fn(),
156
+ emit: vi.fn(),
157
+ };
158
+ return {
159
+ stateManager: _stateManager,
160
+ runtimeAdapter: _runtimeAdapter,
161
+ eventEmitter: _eventEmitter,
162
+ artifactStore: new MemoryPIArtifactStore(),
163
+ validator: _validator,
164
+ contextAssembler: _contextAssembler,
165
+ _stateManager,
166
+ _runtimeAdapter,
167
+ _validator,
168
+ _contextAssembler,
169
+ _eventEmitter,
170
+ ...overrides,
171
+ };
172
+ }
173
+ // ── Tests ────────────────────────────────────────────────────────────────────
174
+ describe('DiagRootCauseRunner — PRI-468 INTENT.md injection', () => {
175
+ beforeEach(() => {
176
+ // No global setup needed — each test creates its own deps
177
+ });
178
+ it('flag off → does NOT inject INTENT.md (byte-identical to pre-PRI-468)', async () => {
179
+ const reader = makeIntentDocReader({
180
+ ok: false, found: false, flagEnabled: false, reason: 'flag_disabled',
181
+ });
182
+ const deps = createMockDeps({ intentDocReader: reader });
183
+ const runner = new DiagRootCauseRunner(deps, {
184
+ owner: OWNER,
185
+ runtimeKind: RUNTIME_KIND,
186
+ pollIntervalMs: 10,
187
+ timeoutMs: 1000,
188
+ effectiveConfig: makeEffectiveConfig({ intentEngineering: false }),
189
+ });
190
+ await runner.run(ROOTCAUSE_TASK_ID);
191
+ // Reader should NOT have been called (flag off → short-circuit)
192
+ expect(reader.readIntentDoc).not.toHaveBeenCalled();
193
+ // Verify the prompt message does NOT contain intentDoc or PHASE 3.6
194
+ const startRunCall = deps._runtimeAdapter.startRun?.mock.calls[0];
195
+ const message = startRunCall?.[0]?.inputPayload;
196
+ expect(message).not.toContain('intentDoc');
197
+ expect(message).not.toContain('PHASE 3.6');
198
+ expect(message).not.toContain('Intent Tension Check');
199
+ });
200
+ it('flag on + reader ok → injects INTENT.md and PHASE 3.6', async () => {
201
+ const reader = makeIntentDocReader({
202
+ ok: true,
203
+ found: true,
204
+ flagEnabled: true,
205
+ doc: {
206
+ raw: INTENT_RAW,
207
+ contentHash: INTENT_CONTENT_HASH,
208
+ path: INTENT_PATH,
209
+ },
210
+ });
211
+ const deps = createMockDeps({ intentDocReader: reader });
212
+ const runner = new DiagRootCauseRunner(deps, {
213
+ owner: OWNER,
214
+ runtimeKind: RUNTIME_KIND,
215
+ pollIntervalMs: 10,
216
+ timeoutMs: 1000,
217
+ effectiveConfig: makeEffectiveConfig({ intentEngineering: true }),
218
+ });
219
+ await runner.run(ROOTCAUSE_TASK_ID);
220
+ // Reader was called
221
+ expect(reader.readIntentDoc).toHaveBeenCalledTimes(1);
222
+ // Verify the prompt message contains intentDoc and PHASE 3.6
223
+ const startRunCall = deps._runtimeAdapter.startRun?.mock.calls[0];
224
+ const message = startRunCall?.[0]?.inputPayload;
225
+ const parsed = JSON.parse(message);
226
+ expect(parsed).toHaveProperty('intentDoc');
227
+ const intentDoc = parsed.intentDoc;
228
+ expect(intentDoc.raw).toBe(INTENT_RAW);
229
+ expect(intentDoc.contentHash).toBe(INTENT_CONTENT_HASH);
230
+ expect(intentDoc.path).toBe(INTENT_PATH);
231
+ // PHASE 3.6 should be in the diagnosticInstruction
232
+ const instruction = parsed.diagnosticInstruction;
233
+ expect(instruction).toContain('PHASE 3.6');
234
+ expect(instruction).toContain('Intent Tension Check');
235
+ });
236
+ it('flag on + reader returns not_found → degrades gracefully with telemetry', async () => {
237
+ const reader = makeIntentDocReader({
238
+ ok: false,
239
+ found: false,
240
+ flagEnabled: true,
241
+ reason: 'not_found',
242
+ nextAction: 'Create .principles/INTENT.md using "pd intent init".',
243
+ });
244
+ const deps = createMockDeps({ intentDocReader: reader });
245
+ const runner = new DiagRootCauseRunner(deps, {
246
+ owner: OWNER,
247
+ runtimeKind: RUNTIME_KIND,
248
+ pollIntervalMs: 10,
249
+ timeoutMs: 1000,
250
+ effectiveConfig: makeEffectiveConfig({ intentEngineering: true }),
251
+ });
252
+ await runner.run(ROOTCAUSE_TASK_ID);
253
+ // Reader was called
254
+ expect(reader.readIntentDoc).toHaveBeenCalledTimes(1);
255
+ // Telemetry emitted with reason + nextAction (EP-03 / ERR-002)
256
+ const telemetryCall = deps._eventEmitter.emitTelemetry.mock.calls.find((call) => telemetryEventType(call) === 'diag_rootcause_intent_doc_read_failed');
257
+ expect(telemetryCall).toBeDefined();
258
+ if (!telemetryCall)
259
+ return; // type narrowing after assertion
260
+ const tp = telemetryPayload(telemetryCall);
261
+ expect(tp?.reason).toBe('not_found');
262
+ expect(tp?.nextAction).toContain('pd intent init');
263
+ // Prompt does NOT contain intentDoc or PHASE 3.6
264
+ const startRunMock = deps._runtimeAdapter.startRun;
265
+ if (!startRunMock)
266
+ throw new Error('startRun mock not configured');
267
+ const [startRunCall] = startRunMock.mock.calls;
268
+ const message = startRunCall?.[0]?.inputPayload;
269
+ const parsed = JSON.parse(message);
270
+ expect(parsed).not.toHaveProperty('intentDoc');
271
+ const instruction = parsed.diagnosticInstruction;
272
+ expect(instruction).not.toContain('PHASE 3.6');
273
+ });
274
+ it('flag on + reader returns oversized → degrades gracefully with telemetry', async () => {
275
+ const reader = makeIntentDocReader({
276
+ ok: false,
277
+ found: true,
278
+ flagEnabled: true,
279
+ reason: 'oversized',
280
+ nextAction: 'INTENT.md exceeds 32KB. Reduce content.',
281
+ });
282
+ const deps = createMockDeps({ intentDocReader: reader });
283
+ const runner = new DiagRootCauseRunner(deps, {
284
+ owner: OWNER,
285
+ runtimeKind: RUNTIME_KIND,
286
+ pollIntervalMs: 10,
287
+ timeoutMs: 1000,
288
+ effectiveConfig: makeEffectiveConfig({ intentEngineering: true }),
289
+ });
290
+ await runner.run(ROOTCAUSE_TASK_ID);
291
+ // Telemetry emitted with reason='oversized'
292
+ const telemetryCall = deps._eventEmitter.emitTelemetry.mock.calls.find((call) => telemetryEventType(call) === 'diag_rootcause_intent_doc_read_failed');
293
+ expect(telemetryCall).toBeDefined();
294
+ if (!telemetryCall)
295
+ return; // type narrowing after assertion
296
+ const tp = telemetryPayload(telemetryCall);
297
+ expect(tp?.reason).toBe('oversized');
298
+ // Prompt does NOT contain intentDoc
299
+ const startRunMock = deps._runtimeAdapter.startRun;
300
+ if (!startRunMock)
301
+ throw new Error('startRun mock not configured');
302
+ const [startRunCall] = startRunMock.mock.calls;
303
+ const message = startRunCall?.[0]?.inputPayload;
304
+ const parsed = JSON.parse(message);
305
+ expect(parsed).not.toHaveProperty('intentDoc');
306
+ });
307
+ it('no intentDocReader provided → behaves as before (backward compat)', async () => {
308
+ // No intentDocReader in deps
309
+ const deps = createMockDeps();
310
+ const runner = new DiagRootCauseRunner(deps, {
311
+ owner: OWNER,
312
+ runtimeKind: RUNTIME_KIND,
313
+ pollIntervalMs: 10,
314
+ timeoutMs: 1000,
315
+ effectiveConfig: makeEffectiveConfig({ intentEngineering: true }),
316
+ });
317
+ await runner.run(ROOTCAUSE_TASK_ID);
318
+ // Prompt does NOT contain intentDoc (no reader → no injection)
319
+ const startRunMock = deps._runtimeAdapter.startRun;
320
+ if (!startRunMock)
321
+ throw new Error('startRun mock not configured');
322
+ const [startRunCall] = startRunMock.mock.calls;
323
+ const message = startRunCall?.[0]?.inputPayload;
324
+ const parsed = JSON.parse(message);
325
+ expect(parsed).not.toHaveProperty('intentDoc');
326
+ // PHASE 3.6 NOT injected (intentGrounding downgraded to false because no reader)
327
+ const instruction = parsed.diagnosticInstruction;
328
+ expect(instruction).not.toContain('PHASE 3.6');
329
+ // No intent_doc_read_failed telemetry (we didn't even try to read)
330
+ const telemetryCall = deps._eventEmitter.emitTelemetry.mock.calls.find((call) => telemetryEventType(call) === 'diag_rootcause_intent_doc_read_failed');
331
+ expect(telemetryCall).toBeUndefined();
332
+ });
333
+ it('no effectiveConfig → flag off behavior, no reader call', async () => {
334
+ const reader = makeIntentDocReader({
335
+ ok: true,
336
+ found: true,
337
+ flagEnabled: true,
338
+ doc: { raw: INTENT_RAW, contentHash: INTENT_CONTENT_HASH, path: INTENT_PATH },
339
+ });
340
+ const deps = createMockDeps({ intentDocReader: reader });
341
+ // No effectiveConfig → flag resolution skipped, intentGrounding stays false
342
+ const runner = new DiagRootCauseRunner(deps, {
343
+ owner: OWNER,
344
+ runtimeKind: RUNTIME_KIND,
345
+ pollIntervalMs: 10,
346
+ timeoutMs: 1000,
347
+ });
348
+ await runner.run(ROOTCAUSE_TASK_ID);
349
+ // Reader NOT called (no effectiveConfig → flag not read → intentGrounding false)
350
+ expect(reader.readIntentDoc).not.toHaveBeenCalled();
351
+ const startRunMock = deps._runtimeAdapter.startRun;
352
+ if (!startRunMock)
353
+ throw new Error('startRun mock not configured');
354
+ const [startRunCall] = startRunMock.mock.calls;
355
+ const message = startRunCall?.[0]?.inputPayload;
356
+ const parsed = JSON.parse(message);
357
+ expect(parsed).not.toHaveProperty('intentDoc');
358
+ });
359
+ });
360
+ //# sourceMappingURL=diag-rootcause-intent-tension.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diag-rootcause-intent-tension.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,gFAAgF;AAEhF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAC/C,MAAM,MAAM,GAAG,mBAAmB,CAAC;AACnC,MAAM,KAAK,GAAG,mBAAmB,CAAC;AAClC,MAAM,YAAY,GAAG,aAAa,CAAC;AAEnC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;CAgBlB,CAAC;AACF,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAC7D,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAEvD,SAAS,iBAAiB,CAAC,YAAiC,EAAE;IAC5D,OAAO;QACL,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,gBAAgB;QAC1B,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,cAAc,EAAE,0BAA0B,CAAC;YACzC,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,OAAO;YAClB,iBAAiB,EAAE,EAAE;YACrB,kBAAkB,EAAE,EAAE;SACvB,CAAC;QACF,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,GAAG,uBAAuB,CAAC,EAAE;QAC7B,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,iBAAiB;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;QACL,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9B,kBAAkB,EAAE,EAAE;QACtB,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;KAC/G,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,mBAAmB,CAAC,IAA8D;IACzF,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAClC,OAAO;QACL,MAAM,EAAE;YACN,GAAG,IAAI;YACP,QAAQ,EAAE;gBACR,GAAG,IAAI,CAAC,QAAQ;gBAChB,kBAAkB,EAAE;oBAClB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,IAAI,CAAC,iBAAiB,KAAK,IAAI;iBACzC;gBACD,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;oBAClC,CAAC,CAAC,EAAE,4BAA4B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;oBACtF,CAAC,CAAC,EAAE,CAAC;aACR;SACF;QACD,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,EAAE;QACZ,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE;KACjF,CAAC;AACJ,CAAC;AAOD,SAAS,kBAAkB,CAAC,IAAwB;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;IACtD,OAAO,KAAK,EAAE,SAAS,CAAC;AAC1B,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAwB;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;IACtD,OAAO,KAAK,EAAE,OAAO,CAAC;AACxB,CAAC;AAED,mEAAmE;AACnE,SAAS,mBAAmB,CAAC,MAA2B;IACtD,OAAO;QACL,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,cAAc,CAAC,YAA8C,EAAE;IAOtE,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG;QACpB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACnD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAC9C,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACxF,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YACpD,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;YACpD,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACrD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACpD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;KACtE,CAAC;IAEF,MAAM,SAAS,GAAc,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IAC/G,MAAM,eAAe,GAAc,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAE1E,MAAM,eAAe,GAAG;QACtB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;QAC3C,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAC9C,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;QACnD,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3D,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAC/C,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;KACxB,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;KACjE,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;KAC1D,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;QACtB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QACX,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;KACd,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,aAA+C;QAC7D,cAAc,EAAE,eAAe;QAC/B,YAAY,EAAE,aAA6C;QAC3D,aAAa,EAAE,IAAI,qBAAqB,EAAE;QAC1C,SAAS,EAAE,UAAU;QACrB,gBAAgB,EAAE,iBAAiB;QACnC,aAAa;QACb,eAAe;QACf,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,UAAU,CAAC,GAAG,EAAE;QACd,0DAA0D;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe;SACrE,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC3C,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;SACnE,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEpC,gEAAgE;QAChE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEpD,oEAAoE;QACpE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,YAAsB,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE;gBACH,GAAG,EAAE,UAAU;gBACf,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,WAAW;aAClB;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC3C,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEpC,oBAAoB;QACpB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEtD,6DAA6D;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,YAAsB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAE9D,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAoC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzC,mDAAmD;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,qBAA+B,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,sDAAsD;SACnE,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC3C,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEpC,oBAAoB;QACpB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEtD,+DAA+D;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACpE,CAAC,IAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,uCAAuC,CACnG,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,iCAAiC;QAC7D,MAAM,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAEnD,iDAAiD;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,YAAsB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,qBAA+B,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,yCAAyC;SACtD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC3C,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEpC,4CAA4C;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACpE,CAAC,IAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,uCAAuC,CACnG,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,iCAAiC;QAC7D,MAAM,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErC,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,YAAsB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,6BAA6B;QAC7B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC3C,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEpC,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,YAAsB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAE/C,iFAAiF;QACjF,MAAM,WAAW,GAAG,MAAM,CAAC,qBAA+B,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE/C,mEAAmE;QACnE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACpE,CAAC,IAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,uCAAuC,CACnG,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE;SAC9E,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,4EAA4E;QAC5E,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAC3C,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEpC,iFAAiF;QACjF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,YAAsB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=diag-router-intent-tension.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diag-router-intent-tension.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.ts"],"names":[],"mappings":""}