@principles/core 1.123.0 → 1.124.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 (121) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +37 -73
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
  4. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +4 -0
  5. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
  6. package/dist/runtime-v2/config/pd-config-types.d.ts +2 -0
  7. package/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  8. package/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  9. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.d.ts +2 -0
  10. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.d.ts.map +1 -0
  11. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.js +45 -0
  12. package/dist/runtime-v2/diagnostician/__tests__/diag-distiller-output.test.js.map +1 -0
  13. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.d.ts +2 -0
  14. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.d.ts.map +1 -0
  15. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +57 -0
  16. package/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +1 -0
  17. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.d.ts +2 -0
  18. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.d.ts.map +1 -0
  19. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.js +39 -0
  20. package/dist/runtime-v2/diagnostician/__tests__/distiller-prompt-builder.test.js.map +1 -0
  21. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.d.ts +2 -0
  22. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.d.ts.map +1 -0
  23. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +34 -0
  24. package/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -0
  25. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.d.ts +2 -0
  26. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.d.ts.map +1 -0
  27. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.js +57 -0
  28. package/dist/runtime-v2/diagnostician/__tests__/router-prompt-builder.test.js.map +1 -0
  29. package/dist/runtime-v2/diagnostician/diag-distiller-output.d.ts +80 -0
  30. package/dist/runtime-v2/diagnostician/diag-distiller-output.d.ts.map +1 -0
  31. package/dist/runtime-v2/diagnostician/diag-distiller-output.js +103 -0
  32. package/dist/runtime-v2/diagnostician/diag-distiller-output.js.map +1 -0
  33. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts +115 -0
  34. package/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts.map +1 -0
  35. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js +166 -0
  36. package/dist/runtime-v2/diagnostician/diag-rootcause-output.js.map +1 -0
  37. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.d.ts +134 -0
  38. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.d.ts.map +1 -0
  39. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.js +156 -0
  40. package/dist/runtime-v2/diagnostician/distiller-prompt-builder.js.map +1 -0
  41. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +96 -0
  42. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -0
  43. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +216 -0
  44. package/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -0
  45. package/dist/runtime-v2/diagnostician/router-prompt-builder.d.ts +127 -0
  46. package/dist/runtime-v2/diagnostician/router-prompt-builder.d.ts.map +1 -0
  47. package/dist/runtime-v2/diagnostician/router-prompt-builder.js +131 -0
  48. package/dist/runtime-v2/diagnostician/router-prompt-builder.js.map +1 -0
  49. package/dist/runtime-v2/index.d.ts +6 -3
  50. package/dist/runtime-v2/index.d.ts.map +1 -1
  51. package/dist/runtime-v2/index.js +1 -1
  52. package/dist/runtime-v2/index.js.map +1 -1
  53. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.d.ts +25 -0
  54. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.d.ts.map +1 -0
  55. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.js +123 -0
  56. package/dist/runtime-v2/internalization/__tests__/__fixtures__/split-pipeline-mock-outputs.js.map +1 -0
  57. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.d.ts +2 -0
  58. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.d.ts.map +1 -0
  59. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +731 -0
  60. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -0
  61. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.d.ts +2 -0
  62. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.d.ts.map +1 -0
  63. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js +437 -0
  64. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js.map +1 -0
  65. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.d.ts +2 -0
  66. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.d.ts.map +1 -0
  67. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js +336 -0
  68. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js.map +1 -0
  69. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.d.ts +2 -0
  70. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.d.ts.map +1 -0
  71. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +437 -0
  72. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +1 -0
  73. package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts +83 -0
  74. package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts.map +1 -0
  75. package/dist/runtime-v2/internalization/diag-distiller-runner.js +274 -0
  76. package/dist/runtime-v2/internalization/diag-distiller-runner.js.map +1 -0
  77. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts +73 -0
  78. package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -0
  79. package/dist/runtime-v2/internalization/diag-rootcause-runner.js +229 -0
  80. package/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -0
  81. package/dist/runtime-v2/internalization/diag-router-runner.d.ts +85 -0
  82. package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -0
  83. package/dist/runtime-v2/internalization/diag-router-runner.js +353 -0
  84. package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -0
  85. package/dist/runtime-v2/internalization/evaluator-runner.d.ts +1 -1
  86. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  87. package/dist/runtime-v2/internalization/evaluator-runner.js +1 -1
  88. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  89. package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts +66 -0
  90. package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts.map +1 -0
  91. package/dist/runtime-v2/internalization/split-diagnostician-runner.js +172 -0
  92. package/dist/runtime-v2/internalization/split-diagnostician-runner.js.map +1 -0
  93. package/dist/runtime-v2/pain-signal-bridge.d.ts +22 -3
  94. package/dist/runtime-v2/pain-signal-bridge.d.ts.map +1 -1
  95. package/dist/runtime-v2/pain-signal-bridge.js +16 -7
  96. package/dist/runtime-v2/pain-signal-bridge.js.map +1 -1
  97. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +3 -0
  98. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  99. package/dist/runtime-v2/pain-signal-runtime-factory.js +52 -24
  100. package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  101. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js +2 -2
  102. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js.map +1 -1
  103. package/dist/runtime-v2/runner/base-peer-runner.d.ts +3 -3
  104. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  105. package/dist/runtime-v2/runner/base-peer-runner.js +6 -6
  106. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  107. package/dist/runtime-v2/runner/peer-runner-types.d.ts +3 -3
  108. package/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -1
  109. package/dist/runtime-v2/store/candidate/sqlite-candidate-store.js +2 -2
  110. package/dist/runtime-v2/store/candidate/sqlite-candidate-store.js.map +1 -1
  111. package/dist/runtime-v2/types/principle-enums.d.ts +2 -2
  112. package/dist/runtime-v2/types/principle-enums.d.ts.map +1 -1
  113. package/dist/runtime-v2/types/principle-enums.js +1 -0
  114. package/dist/runtime-v2/types/principle-enums.js.map +1 -1
  115. package/dist/runtime-v2/types/principle-schema.d.ts +1 -1
  116. package/dist/runtime-v2/types/principle-tree-store.d.ts +1 -1
  117. package/dist/telemetry-event.d.ts +2 -2
  118. package/dist/telemetry-event.d.ts.map +1 -1
  119. package/dist/telemetry-event.js +1 -0
  120. package/dist/telemetry-event.js.map +1 -1
  121. package/package.json +1 -1
@@ -0,0 +1,336 @@
1
+ /**
2
+ * DiagRootCauseRunner — Stage A V-slice tests (PRI-372).
3
+ *
4
+ * Tests:
5
+ * 1. lease → succeed → writes PIArtifact
6
+ * 2. lease → fail → no artifact written
7
+ * 3. no dependency → runs standalone (first stage)
8
+ * 4. runtime failure → no artifact, no markTaskSucceeded
9
+ * 5. artifact write failure → retryOrFail, not markTaskSucceeded
10
+ * 6. missing taskId re-injected by postFetchTransform
11
+ * 7. present-but-empty taskId NOT overwritten by postFetchTransform
12
+ *
13
+ * ERR entries considered:
14
+ * - ERR-001: Treat parsed JSON / LLM output as unknown — validator receives unknown
15
+ * - ERR-005: No `as` bypass — all mocks use vi.fn() with typed returns
16
+ * - ERR-009: Required fields fail loud — validator checks taskId match
17
+ */
18
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
19
+ import { DiagRootCauseRunner } from '../diag-rootcause-runner.js';
20
+ import { MemoryPIArtifactStore } from '../pi-artifact-store.js';
21
+ import { createPITaskDiagnosticJson } from '../pitask-metadata.js';
22
+ import { RunnerPhase } from '../../runner/runner-phase.js';
23
+ import { MOCK_ROOT_CAUSE_OUTPUTS } from './__fixtures__/split-pipeline-mock-outputs.js';
24
+ // ── Test fixtures ──────────────────────────────────────────────────────────────
25
+ const ROOTCAUSE_TASK_ID = 'diag_rootcause-001';
26
+ const RUN_ID = 'run-rootcause-001';
27
+ const OWNER = 'test-rootcause-owner';
28
+ const RUNTIME_KIND = 'test-double';
29
+ function makeRootCauseTask(overrides = {}) {
30
+ return {
31
+ taskId: ROOTCAUSE_TASK_ID,
32
+ taskKind: 'diag_rootcause',
33
+ status: 'pending',
34
+ attemptCount: 0,
35
+ maxAttempts: 3,
36
+ createdAt: new Date().toISOString(),
37
+ updatedAt: new Date().toISOString(),
38
+ diagnosticJson: createPITaskDiagnosticJson({
39
+ dependencyTaskIds: [],
40
+ channel: 'prompt',
41
+ timeoutMs: 300_000,
42
+ inputArtifactRefs: [],
43
+ outputArtifactRefs: [],
44
+ }),
45
+ ...overrides,
46
+ };
47
+ }
48
+ /** Happy-path output using cached real LLM data (R6 fixture) with test-local taskId. */
49
+ function makeRootCauseOutput() {
50
+ return {
51
+ ...MOCK_ROOT_CAUSE_OUTPUTS.R6,
52
+ diagnosisId: 'diag-001',
53
+ taskId: ROOTCAUSE_TASK_ID,
54
+ };
55
+ }
56
+ function makeContextPayload() {
57
+ return {
58
+ sourceRefs: ['ref-1', 'ref-2'],
59
+ conversationWindow: [],
60
+ trajectorySummary: '',
61
+ painSignal: { painId: 'pain-001', painType: 'tool_failure', source: 'test', reason: 'test reason', score: 70 },
62
+ };
63
+ }
64
+ // ── Mock factory ───────────────────────────────────────────────────────────────
65
+ function createMockDeps(overrides = {}) {
66
+ const taskRecord = makeRootCauseTask();
67
+ const output = makeRootCauseOutput();
68
+ const _stateManager = {
69
+ acquireLease: vi.fn().mockResolvedValue(taskRecord),
70
+ getTask: vi.fn().mockResolvedValue(taskRecord),
71
+ getRunsByTask: vi.fn().mockResolvedValue([{ runId: RUN_ID, taskId: ROOTCAUSE_TASK_ID }]),
72
+ updateRunOutput: vi.fn().mockResolvedValue(undefined),
73
+ markTaskSucceeded: vi.fn().mockResolvedValue(undefined),
74
+ markTaskFailed: vi.fn().mockResolvedValue(undefined),
75
+ markTaskRetryWait: vi.fn().mockResolvedValue(undefined),
76
+ getRetryPolicy: vi.fn().mockReturnValue({ shouldRetry: () => false }),
77
+ };
78
+ const runHandle = { runId: RUN_ID, runtimeKind: RUNTIME_KIND, startedAt: new Date().toISOString() };
79
+ const succeededStatus = { status: 'succeeded', runId: RUN_ID };
80
+ const _runtimeAdapter = {
81
+ kind: vi.fn().mockReturnValue(RUNTIME_KIND),
82
+ getCapabilities: vi.fn(),
83
+ healthCheck: vi.fn(),
84
+ startRun: vi.fn().mockResolvedValue(runHandle),
85
+ pollRun: vi.fn().mockResolvedValue(succeededStatus),
86
+ fetchOutput: vi.fn().mockResolvedValue({ payload: output }),
87
+ cancelRun: vi.fn().mockResolvedValue(undefined),
88
+ fetchArtifacts: vi.fn(),
89
+ };
90
+ const _validator = {
91
+ validate: vi.fn().mockResolvedValue({ valid: true, errors: [] }),
92
+ };
93
+ const _contextAssembler = {
94
+ assemble: vi.fn().mockResolvedValue(makeContextPayload()),
95
+ };
96
+ const mockEventEmitter = {
97
+ emitTelemetry: vi.fn(),
98
+ on: vi.fn(),
99
+ emit: vi.fn(),
100
+ };
101
+ return {
102
+ stateManager: _stateManager,
103
+ runtimeAdapter: _runtimeAdapter,
104
+ eventEmitter: mockEventEmitter,
105
+ artifactStore: new MemoryPIArtifactStore(),
106
+ validator: _validator,
107
+ contextAssembler: _contextAssembler,
108
+ _stateManager,
109
+ _runtimeAdapter,
110
+ _validator,
111
+ _contextAssembler,
112
+ ...overrides,
113
+ };
114
+ }
115
+ // ── Tests ──────────────────────────────────────────────────────────────────────
116
+ describe('DiagRootCauseRunner V-slice', () => {
117
+ let artifactStore;
118
+ beforeEach(() => {
119
+ artifactStore = new MemoryPIArtifactStore();
120
+ });
121
+ it('lease → succeed → writes PIArtifact', async () => {
122
+ const deps = createMockDeps({ artifactStore });
123
+ const runner = new DiagRootCauseRunner(deps, {
124
+ owner: OWNER,
125
+ runtimeKind: RUNTIME_KIND,
126
+ pollIntervalMs: 10,
127
+ timeoutMs: 1000,
128
+ });
129
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
130
+ expect(result.status).toBe('succeeded');
131
+ expect(result.taskId).toBe(ROOTCAUSE_TASK_ID);
132
+ expect(result.artifactId).toBeDefined();
133
+ // Verify PIArtifact was written
134
+ const artifacts = await artifactStore.listBySourceTaskId(ROOTCAUSE_TASK_ID);
135
+ expect(artifacts).toHaveLength(1);
136
+ expect(artifacts[0]?.artifactKind).toBe('principle');
137
+ expect(artifacts[0]?.sourceTaskId).toBe(ROOTCAUSE_TASK_ID);
138
+ // Verify markTaskSucceeded called with diag-rootcause:// resultRef
139
+ expect(deps._stateManager.markTaskSucceeded).toHaveBeenCalledWith(ROOTCAUSE_TASK_ID, expect.stringContaining('diag-rootcause://'));
140
+ // Verify updateRunOutput called before markTaskSucceeded
141
+ expect(deps._stateManager.updateRunOutput).toHaveBeenCalledWith(RUN_ID, expect.any(String));
142
+ });
143
+ it('lease → fail → no artifact written', async () => {
144
+ const deps = createMockDeps({ artifactStore });
145
+ // Make validator reject the output
146
+ deps._validator.validate.mockResolvedValue({
147
+ valid: false,
148
+ errors: ['taskId mismatch'],
149
+ errorCategory: 'output_invalid',
150
+ });
151
+ const runner = new DiagRootCauseRunner(deps, {
152
+ owner: OWNER,
153
+ runtimeKind: RUNTIME_KIND,
154
+ pollIntervalMs: 10,
155
+ timeoutMs: 1000,
156
+ });
157
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
158
+ expect(result.status).toBe('failed');
159
+ // No artifact written
160
+ const artifacts = await artifactStore.listBySourceTaskId(ROOTCAUSE_TASK_ID);
161
+ expect(artifacts).toHaveLength(0);
162
+ // No markTaskSucceeded
163
+ expect(deps._stateManager.markTaskSucceeded).not.toHaveBeenCalled();
164
+ // No updateRunOutput (validation failed before succeedTask)
165
+ expect(deps._stateManager.updateRunOutput).not.toHaveBeenCalled();
166
+ });
167
+ it('no dependency → runs standalone (first stage)', async () => {
168
+ const deps = createMockDeps({ artifactStore });
169
+ // The rootcause task has no dependencies (first stage in pipeline)
170
+ const standaloneTask = makeRootCauseTask({
171
+ diagnosticJson: createPITaskDiagnosticJson({
172
+ dependencyTaskIds: [],
173
+ channel: 'prompt',
174
+ timeoutMs: 300_000,
175
+ inputArtifactRefs: [],
176
+ outputArtifactRefs: [],
177
+ }),
178
+ });
179
+ deps._stateManager.acquireLease.mockResolvedValue(standaloneTask);
180
+ deps._stateManager.getTask.mockResolvedValue(standaloneTask);
181
+ const runner = new DiagRootCauseRunner(deps, {
182
+ owner: OWNER,
183
+ runtimeKind: RUNTIME_KIND,
184
+ pollIntervalMs: 10,
185
+ timeoutMs: 1000,
186
+ });
187
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
188
+ // Should succeed without needing predecessor artifacts
189
+ expect(result.status).toBe('succeeded');
190
+ expect(result.artifactId).toBeDefined();
191
+ // ContextAssembler was called (rootcause uses it for pain context)
192
+ expect(deps._contextAssembler.assemble).toHaveBeenCalledWith(ROOTCAUSE_TASK_ID);
193
+ });
194
+ it('runtime failure → no artifact, no markTaskSucceeded', async () => {
195
+ const deps = createMockDeps({ artifactStore });
196
+ // Make the runtime adapter return a failed status
197
+ const failedStatus = { status: 'failed', runId: RUN_ID };
198
+ deps._runtimeAdapter.pollRun.mockResolvedValue(failedStatus);
199
+ const runner = new DiagRootCauseRunner(deps, {
200
+ owner: OWNER,
201
+ runtimeKind: RUNTIME_KIND,
202
+ pollIntervalMs: 10,
203
+ timeoutMs: 1000,
204
+ });
205
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
206
+ expect(result.status).toBe('failed');
207
+ // No artifact written
208
+ const artifacts = await artifactStore.listBySourceTaskId(ROOTCAUSE_TASK_ID);
209
+ expect(artifacts).toHaveLength(0);
210
+ // No markTaskSucceeded
211
+ expect(deps._stateManager.markTaskSucceeded).not.toHaveBeenCalled();
212
+ });
213
+ it('artifact write failure → retryOrFail, not markTaskSucceeded', async () => {
214
+ const failingStore = {
215
+ listBySourceTaskId: vi.fn().mockResolvedValue([]),
216
+ upsertArtifact: vi.fn().mockRejectedValue(new Error('Disk full')),
217
+ };
218
+ const deps = createMockDeps({ artifactStore: failingStore });
219
+ const runner = new DiagRootCauseRunner(deps, {
220
+ owner: OWNER,
221
+ runtimeKind: RUNTIME_KIND,
222
+ pollIntervalMs: 10,
223
+ timeoutMs: 1000,
224
+ });
225
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
226
+ expect(result.status).toBe('failed');
227
+ expect(deps._stateManager.markTaskSucceeded).not.toHaveBeenCalled();
228
+ });
229
+ it('missing taskId re-injected by postFetchTransform', async () => {
230
+ const deps = createMockDeps({ artifactStore });
231
+ // Output without taskId — postFetchTransform should inject it
232
+ const outputWithoutTaskId = { ...makeRootCauseOutput() };
233
+ delete outputWithoutTaskId.taskId;
234
+ deps._runtimeAdapter.fetchOutput.mockResolvedValue({ payload: outputWithoutTaskId });
235
+ const runner = new DiagRootCauseRunner(deps, {
236
+ owner: OWNER,
237
+ runtimeKind: RUNTIME_KIND,
238
+ pollIntervalMs: 10,
239
+ timeoutMs: 1000,
240
+ });
241
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
242
+ // taskId is re-injected, so validation should pass
243
+ expect(result.status).toBe('succeeded');
244
+ expect(result.artifactId).toBeDefined();
245
+ });
246
+ it('present-but-empty taskId NOT overwritten by postFetchTransform', async () => {
247
+ // Use the real DefaultDiagRootCauseValidator which checks taskId
248
+ const { DefaultDiagRootCauseValidator } = await import('../../diagnostician/diag-rootcause-output.js');
249
+ const realValidator = new DefaultDiagRootCauseValidator();
250
+ const depsWithRealValidator = createMockDeps({
251
+ artifactStore,
252
+ validator: realValidator,
253
+ });
254
+ // Output with taskId: '' (present but empty) — must NOT be overwritten
255
+ const emptyTaskIdOutput = makeRootCauseOutput();
256
+ emptyTaskIdOutput.taskId = '';
257
+ depsWithRealValidator._runtimeAdapter.fetchOutput.mockResolvedValue({ payload: emptyTaskIdOutput });
258
+ const runner = new DiagRootCauseRunner(depsWithRealValidator, {
259
+ owner: OWNER,
260
+ runtimeKind: RUNTIME_KIND,
261
+ pollIntervalMs: 10,
262
+ timeoutMs: 1000,
263
+ });
264
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
265
+ // Validation should fail because taskId is empty (mismatch with ROOTCAUSE_TASK_ID)
266
+ expect(result.status).toBe('failed');
267
+ // No artifact written
268
+ const artifacts = await artifactStore.listBySourceTaskId(ROOTCAUSE_TASK_ID);
269
+ expect(artifacts).toHaveLength(0);
270
+ });
271
+ it('currentPhase is Completed after successful run', async () => {
272
+ const deps = createMockDeps({ artifactStore });
273
+ const runner = new DiagRootCauseRunner(deps, {
274
+ owner: OWNER,
275
+ runtimeKind: RUNTIME_KIND,
276
+ pollIntervalMs: 10,
277
+ timeoutMs: 1000,
278
+ });
279
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
280
+ expect(result.status).toBe('succeeded');
281
+ expect(runner.currentPhase).toBe(RunnerPhase.Completed);
282
+ });
283
+ it('currentPhase is Failed after validation failure', async () => {
284
+ const deps = createMockDeps({ artifactStore });
285
+ deps._validator.validate.mockResolvedValue({
286
+ valid: false,
287
+ errors: ['taskId mismatch'],
288
+ errorCategory: 'output_invalid',
289
+ });
290
+ const runner = new DiagRootCauseRunner(deps, {
291
+ owner: OWNER,
292
+ runtimeKind: RUNTIME_KIND,
293
+ pollIntervalMs: 10,
294
+ timeoutMs: 1000,
295
+ });
296
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
297
+ expect(result.status).toBe('failed');
298
+ expect(runner.currentPhase).toBe(RunnerPhase.Failed);
299
+ });
300
+ it('succeedTask calls updateRunOutput before markTaskSucceeded', async () => {
301
+ const deps = createMockDeps({ artifactStore });
302
+ const callOrder = [];
303
+ deps._stateManager.updateRunOutput.mockImplementation(() => {
304
+ callOrder.push('updateRunOutput');
305
+ return Promise.resolve();
306
+ });
307
+ deps._stateManager.markTaskSucceeded.mockImplementation(() => {
308
+ callOrder.push('markTaskSucceeded');
309
+ return Promise.resolve();
310
+ });
311
+ const runner = new DiagRootCauseRunner(deps, {
312
+ owner: OWNER,
313
+ runtimeKind: RUNTIME_KIND,
314
+ pollIntervalMs: 10,
315
+ timeoutMs: 1000,
316
+ });
317
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
318
+ expect(result.status).toBe('succeeded');
319
+ expect(callOrder).toEqual(['updateRunOutput', 'markTaskSucceeded']);
320
+ });
321
+ it('wrong taskKind fails closed', async () => {
322
+ const wrongKindTask = makeRootCauseTask({ taskKind: 'dreamer' });
323
+ const deps = createMockDeps({ artifactStore });
324
+ deps._stateManager.acquireLease.mockResolvedValue(wrongKindTask);
325
+ const runner = new DiagRootCauseRunner(deps, {
326
+ owner: OWNER,
327
+ runtimeKind: RUNTIME_KIND,
328
+ pollIntervalMs: 10,
329
+ timeoutMs: 1000,
330
+ });
331
+ const result = await runner.run(ROOTCAUSE_TASK_ID);
332
+ expect(result.status).toBe('failed');
333
+ expect(result.errorCategory).toBe('input_invalid');
334
+ });
335
+ });
336
+ //# sourceMappingURL=diag-rootcause-runner.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diag-rootcause-runner.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=diag-router-runner.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diag-router-runner.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/internalization/__tests__/diag-router-runner.test.ts"],"names":[],"mappings":""}