@principles/core 1.124.0 → 1.125.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 (126) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +5 -1
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +115 -21
  4. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js.map +1 -1
  6. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js +7 -6
  7. package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js.map +1 -1
  8. package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.js.map +1 -1
  10. package/dist/runtime-v2/cli/diagnose.d.ts +2 -2
  11. package/dist/runtime-v2/cli/diagnose.d.ts.map +1 -1
  12. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +3 -3
  13. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
  14. package/dist/runtime-v2/config/pd-config-defaults.js +3 -3
  15. package/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
  16. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts +1 -64
  17. package/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
  18. package/dist/runtime-v2/diagnostician-prompt-builder.js +0 -186
  19. package/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
  20. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +13 -7
  21. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  22. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +3 -3
  23. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  24. package/dist/runtime-v2/index.d.ts +8 -7
  25. package/dist/runtime-v2/index.d.ts.map +1 -1
  26. package/dist/runtime-v2/index.js +8 -5
  27. package/dist/runtime-v2/index.js.map +1 -1
  28. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +108 -105
  29. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  30. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js +3 -3
  31. package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js.map +1 -1
  32. package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts.map +1 -1
  33. package/dist/runtime-v2/internalization/split-diagnostician-runner.js +121 -52
  34. package/dist/runtime-v2/internalization/split-diagnostician-runner.js.map +1 -1
  35. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js +28 -21
  36. package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js.map +1 -1
  37. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +10 -1
  38. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  39. package/dist/runtime-v2/pain-signal-runtime-factory.js +42 -40
  40. package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  41. package/dist/runtime-v2/runner/__tests__/diagnose.test.js.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.d.ts +0 -2
  44. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.d.ts.map +0 -1
  45. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.js +0 -122
  46. package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.js.map +0 -1
  47. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.d.ts +0 -2
  48. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.d.ts.map +0 -1
  49. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.js +0 -169
  50. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.js.map +0 -1
  51. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.d.ts +0 -2
  52. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.d.ts.map +0 -1
  53. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js +0 -462
  54. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js.map +0 -1
  55. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts +0 -13
  56. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts.map +0 -1
  57. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js +0 -97
  58. package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js.map +0 -1
  59. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.d.ts +0 -2
  60. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.d.ts.map +0 -1
  61. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.js +0 -378
  62. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.js.map +0 -1
  63. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.d.ts +0 -2
  64. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.d.ts.map +0 -1
  65. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js +0 -682
  66. package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js.map +0 -1
  67. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.d.ts +0 -2
  68. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.d.ts.map +0 -1
  69. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.js +0 -286
  70. package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.js.map +0 -1
  71. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.d.ts +0 -2
  72. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.d.ts.map +0 -1
  73. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.js +0 -320
  74. package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.js.map +0 -1
  75. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.d.ts +0 -2
  76. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.d.ts.map +0 -1
  77. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.js +0 -261
  78. package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.js.map +0 -1
  79. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.d.ts +0 -2
  80. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.d.ts.map +0 -1
  81. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.js +0 -405
  82. package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.js.map +0 -1
  83. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.d.ts +0 -2
  84. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.d.ts.map +0 -1
  85. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.js +0 -347
  86. package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.js.map +0 -1
  87. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.d.ts +0 -2
  88. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.d.ts.map +0 -1
  89. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.js +0 -186
  90. package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.js.map +0 -1
  91. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.d.ts +0 -2
  92. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.d.ts.map +0 -1
  93. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.js +0 -355
  94. package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.js.map +0 -1
  95. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.d.ts +0 -2
  96. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.d.ts.map +0 -1
  97. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js +0 -486
  98. package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js.map +0 -1
  99. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.d.ts +0 -2
  100. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.d.ts.map +0 -1
  101. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.js +0 -171
  102. package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.js.map +0 -1
  103. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.d.ts +0 -2
  104. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.d.ts.map +0 -1
  105. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js +0 -175
  106. package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js.map +0 -1
  107. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.d.ts +0 -2
  108. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.d.ts.map +0 -1
  109. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.js +0 -276
  110. package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.js.map +0 -1
  111. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.d.ts +0 -2
  112. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.d.ts.map +0 -1
  113. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.js +0 -272
  114. package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.js.map +0 -1
  115. package/dist/runtime-v2/runner/__tests__/start-run-input.test.d.ts +0 -2
  116. package/dist/runtime-v2/runner/__tests__/start-run-input.test.d.ts.map +0 -1
  117. package/dist/runtime-v2/runner/__tests__/start-run-input.test.js +0 -67
  118. package/dist/runtime-v2/runner/__tests__/start-run-input.test.js.map +0 -1
  119. package/dist/runtime-v2/runner/diagnostician-runner-options.d.ts +0 -57
  120. package/dist/runtime-v2/runner/diagnostician-runner-options.d.ts.map +0 -1
  121. package/dist/runtime-v2/runner/diagnostician-runner-options.js +0 -21
  122. package/dist/runtime-v2/runner/diagnostician-runner-options.js.map +0 -1
  123. package/dist/runtime-v2/runner/diagnostician-runner.d.ts +0 -89
  124. package/dist/runtime-v2/runner/diagnostician-runner.d.ts.map +0 -1
  125. package/dist/runtime-v2/runner/diagnostician-runner.js +0 -470
  126. package/dist/runtime-v2/runner/diagnostician-runner.js.map +0 -1
@@ -1,405 +0,0 @@
1
- /**
2
- * E2E m5-05 — DiagnosticianCommitter full chain verification.
3
- *
4
- * Verifies all 4 E2E hard-gate criteria (E2EV-01 through E2EV-04):
5
- * E2EV-01: Happy path — full chain traversable
6
- * E2EV-02: Idempotency — same task twice → one artifact, same commitId
7
- * E2EV-03: Failure path — mid-transaction failure → no orphaned rows, task NOT succeeded
8
- * E2EV-04: Traceability — full chain via SQL + CLI function visibility
9
- *
10
- * Based on dual-track-e2e.test.ts pattern (D-01).
11
- * Test file per D-03 — phase boundaries kept clean.
12
- * Scenario structure per D-02.
13
- */
14
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
15
- import * as fs from 'fs';
16
- import * as path from 'path';
17
- import * as os from 'os';
18
- import { randomUUID } from 'node:crypto';
19
- import { RuntimeStateManager } from '../../store/runtime-state-manager.js';
20
- import { SqliteContextAssembler } from '../../store/context/sqlite-context-assembler.js';
21
- import { SqliteHistoryQuery } from '../../store/history/sqlite-history-query.js';
22
- import { StoreEventEmitter } from '../../store/event-emitter.js';
23
- import { DiagnosticianRunner } from '../diagnostician-runner.js';
24
- import { PassThroughValidator } from '../diagnostician-validator.js';
25
- import { SqliteDiagnosticianCommitter } from '../../store/commit/diagnostician-committer.js';
26
- import { TestDoubleRuntimeAdapter } from '../../adapter/test-double-runtime-adapter.js';
27
- import { PDRuntimeError } from '../../error-categories.js';
28
- import { candidateList } from '../../cli/diagnose.js';
29
- // Typed status constant for SQL query parameters (avoids magic strings)
30
- const PENDING_STATUS = 'pending';
31
- // ── Test fixtures ──────────────────────────────────────────────────────────────
32
- /**
33
- * Create DiagnosticianOutputV1 with >= 2 principle recommendations.
34
- * Per D-07 and E2EV-01 specific: output.recommendations includes >= 2 kind='principle' items.
35
- */
36
- function makeDiagnosticianOutputWithCandidates(_taskId) {
37
- return {
38
- valid: true,
39
- diagnosisId: `diag-m5e2e-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
40
- summary: 'E2E m5-05 test diagnosis summary',
41
- rootCause: 'E2E m5-05 root cause — missing validation before tool call',
42
- violatedPrinciples: [],
43
- evidence: [],
44
- recommendations: [
45
- { kind: 'principle', description: 'Always validate tool arguments before execution to prevent silent failures' },
46
- { kind: 'principle', description: 'Log all tool invocations with argument summaries for traceability' },
47
- { kind: 'rule', description: 'Use schema validation for external inputs' },
48
- ],
49
- confidence: 0.92,
50
- };
51
- }
52
- /** Standard output without principle candidates (for failure injection scenarios). */
53
- function _makeDiagnosticianOutput(_taskId) {
54
- return {
55
- valid: true,
56
- diagnosisId: `diag-m5e2e-std-${Date.now()}`,
57
- summary: 'Standard E2E test diagnosis summary',
58
- rootCause: 'Test root cause analysis',
59
- violatedPrinciples: [],
60
- evidence: [],
61
- recommendations: [],
62
- confidence: 0.85,
63
- };
64
- }
65
- function makeDiagnosticianTaskInput(options) {
66
- const { taskId, workspaceDir, diagnostic } = options;
67
- const diagnosticJson = JSON.stringify({
68
- workspaceDir,
69
- reasonSummary: diagnostic?.reasonSummary ?? 'E2E m5-05 test task',
70
- sourcePainId: diagnostic?.sourcePainId,
71
- severity: diagnostic?.severity,
72
- source: diagnostic?.source,
73
- });
74
- return {
75
- taskId,
76
- taskKind: 'diagnostician',
77
- status: 'pending',
78
- attemptCount: 0,
79
- maxAttempts: 3,
80
- diagnosticJson,
81
- };
82
- }
83
- // ── Test setup ─────────────────────────────────────────────────────────────────
84
- const TMP_ROOT = path.join(os.tmpdir(), `pd-e2e-m5-05-${process.pid}`);
85
- describe('E2E m5-05', () => {
86
- // eslint-disable-next-line @typescript-eslint/init-declarations
87
- let testDir;
88
- // eslint-disable-next-line @typescript-eslint/init-declarations
89
- let stateManager;
90
- // eslint-disable-next-line @typescript-eslint/init-declarations
91
- let contextAssembler;
92
- // eslint-disable-next-line @typescript-eslint/init-declarations
93
- let historyQuery;
94
- // eslint-disable-next-line @typescript-eslint/init-declarations
95
- let eventEmitter;
96
- // eslint-disable-next-line @typescript-eslint/init-declarations
97
- let sqliteConn;
98
- beforeEach(async () => {
99
- testDir = path.join(TMP_ROOT, `e2e-${Date.now()}-${Math.random().toString(36).slice(2)}`);
100
- fs.mkdirSync(testDir, { recursive: true });
101
- stateManager = new RuntimeStateManager({ workspaceDir: testDir });
102
- await stateManager.initialize();
103
- sqliteConn = stateManager.connection;
104
- historyQuery = new SqliteHistoryQuery(sqliteConn);
105
- const taskStore = stateManager.taskStore;
106
- const runStore = stateManager.runStore;
107
- contextAssembler = new SqliteContextAssembler(taskStore, historyQuery, runStore);
108
- eventEmitter = new StoreEventEmitter();
109
- });
110
- afterEach(() => {
111
- stateManager.close();
112
- try {
113
- fs.rmSync(TMP_ROOT, { recursive: true, force: true });
114
- }
115
- catch {
116
- // ignore cleanup errors on Windows
117
- }
118
- });
119
- /**
120
- * Build a DiagnosticianRunner wired with REAL SqliteDiagnosticianCommitter.
121
- * Per D-04: real committer so full artifact + candidate pipeline runs.
122
- * pollIntervalMs: 50, timeoutMs: 3000 per D-19.
123
- */
124
- function createRunner(runtimeAdapter, validator = new PassThroughValidator()) {
125
- const committer = new SqliteDiagnosticianCommitter(sqliteConn);
126
- return new DiagnosticianRunner({
127
- stateManager,
128
- contextAssembler,
129
- runtimeAdapter,
130
- eventEmitter,
131
- validator,
132
- committer,
133
- }, {
134
- owner: 'e2e-m5-05-runner',
135
- runtimeKind: 'test-double',
136
- pollIntervalMs: 50,
137
- timeoutMs: 3000,
138
- });
139
- }
140
- // ═══════════════════════════════════════════════════════════════
141
- // SCENARIO 1: Happy Path — Full chain (E2EV-01)
142
- // ═══════════════════════════════════════════════════════════════
143
- // Verifies D-04, D-05, D-06, D-07
144
- describe('Scenario 1: Happy Path (E2EV-01)', () => {
145
- it('completes full chain: task -> run -> output -> artifact -> candidates -> resultRef', async () => {
146
- const taskId = randomUUID();
147
- // Create task
148
- await stateManager.createTask(makeDiagnosticianTaskInput({
149
- taskId,
150
- workspaceDir: testDir,
151
- diagnostic: {
152
- reasonSummary: 'E2EV-01 happy path test',
153
- sourcePainId: 'pain-e2ev01-001',
154
- severity: 'high',
155
- source: 'e2e-test',
156
- },
157
- }));
158
- // Configure adapter with output containing >= 2 kind='principle' recommendations (D-07)
159
- const output = makeDiagnosticianOutputWithCandidates(taskId);
160
- const runtimeAdapter = new TestDoubleRuntimeAdapter({
161
- onPollRun: () => ({
162
- runId: 'td-poll-1',
163
- status: 'succeeded',
164
- startedAt: new Date().toISOString(),
165
- endedAt: new Date().toISOString(),
166
- }),
167
- onFetchOutput: () => ({
168
- runId: 'td-fetch-1',
169
- payload: output,
170
- }),
171
- });
172
- const runner = createRunner(runtimeAdapter);
173
- const result = await runner.run(taskId);
174
- // E2EV-01 assertion 1: result.status === 'succeeded'
175
- expect(result.status).toBe('succeeded');
176
- // E2EV-01 assertion 2: task.resultRef starts with 'commit://' (D-05)
177
- const task = await stateManager.getTask(taskId);
178
- expect(task).not.toBeNull();
179
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
180
- expect(task.resultRef).toMatch(/^commit:\/\/.+/);
181
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
182
- const commitId = task.resultRef.replace('commit://', '');
183
- // E2EV-01 assertion 3: task status is 'succeeded'
184
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
185
- expect(task.status).toBe('succeeded');
186
- // E2EV-01 assertion 3b: run's output_payload matches committed output (updateRunOutput was called)
187
- const db = sqliteConn.getDb();
188
- const runsForTask = db.prepare('SELECT run_id, output_payload FROM runs WHERE task_id = ?').all(taskId);
189
- expect(runsForTask.length).toBeGreaterThan(0);
190
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
191
- const latestRun = runsForTask[runsForTask.length - 1];
192
- expect(latestRun.output_payload).not.toBeNull();
193
- const parsedOutput = JSON.parse(latestRun.output_payload);
194
- expect(parsedOutput.diagnosisId).toBe(output.diagnosisId);
195
- expect(parsedOutput.summary).toBe(output.summary);
196
- // E2EV-01 assertion 4: artifact row exists in DB (D-06)
197
- const artifactRow = db.prepare('SELECT * FROM artifacts WHERE task_id = ?').get(taskId);
198
- expect(artifactRow).toBeDefined();
199
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
200
- expect(artifactRow.artifact_kind).toBe('diagnostician_output');
201
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
202
- expect(artifactRow.task_id).toBe(taskId);
203
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
204
- const artifactId = artifactRow.artifact_id;
205
- // E2EV-01 assertion 5: candidates exist in DB (D-07)
206
- // Output has 2 kind='principle' recommendations → expect 2 candidate rows
207
- const candidateRows = db.prepare('SELECT * FROM principle_candidates WHERE artifact_id = ? AND status = ? AND recommendation_kind = ?').all(artifactId, PENDING_STATUS, 'principle');
208
- expect(candidateRows).toHaveLength(2);
209
- expect(candidateRows.every((c) => c.description.length > 0)).toBe(true);
210
- // E2EV-01 assertion 6: commit row links task to artifact
211
- const commitRow = db.prepare('SELECT * FROM commits WHERE commit_id = ?').get(commitId);
212
- expect(commitRow).toBeDefined();
213
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
214
- expect(commitRow.artifact_id).toBe(artifactId);
215
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
216
- expect(commitRow.task_id).toBe(taskId);
217
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
218
- expect(commitRow.status).toBe('committed');
219
- });
220
- });
221
- // ═══════════════════════════════════════════════════════════════
222
- // SCENARIO 2: Idempotency — Same taskId+runId committed twice (E2EV-02)
223
- // ═══════════════════════════════════════════════════════════════
224
- // Verifies D-08, D-09
225
- // Note: runner.run() cannot be called twice on a succeeded task (lease_conflict).
226
- // Idempotency is tested at the committer level by calling commit() twice with same
227
- // taskId+runId and verifying same commitId is returned.
228
- describe('Scenario 2: Idempotency (E2EV-02)', () => {
229
- it('committing the same task twice produces one artifact, no duplicates, same commitId', async () => {
230
- const taskId = randomUUID();
231
- const runId = 'td-poll-idem';
232
- await stateManager.createTask(makeDiagnosticianTaskInput({
233
- taskId,
234
- workspaceDir: testDir,
235
- diagnostic: { reasonSummary: 'E2EV-02 idempotency test' },
236
- }));
237
- // Also create a run record so the committer doesn't fail FK constraint
238
- const db = sqliteConn.getDb();
239
- const now = new Date().toISOString();
240
- db.prepare(`
241
- INSERT INTO runs (run_id, task_id, runtime_kind, execution_status, started_at, attempt_number, created_at, updated_at)
242
- VALUES (?, ?, ?, 'running', ?, 1, ?, ?)
243
- `).run(runId, taskId, 'test-double', now, now, now);
244
- const output = makeDiagnosticianOutputWithCandidates(taskId);
245
- const committer = new SqliteDiagnosticianCommitter(sqliteConn);
246
- const idempotencyKey = `${taskId}:${runId}`;
247
- // First commit
248
- const result1 = await committer.commit({ runId, taskId, output, idempotencyKey });
249
- expect(result1.candidateCount).toBe(3); // 2 principles + 1 rule
250
- const firstCommitId = result1.commitId;
251
- // Second commit with same taskId+runId — idempotency should return same result
252
- const result2 = await committer.commit({ runId, taskId, output, idempotencyKey });
253
- expect(result2.commitId).toBe(firstCommitId); // E2EV-02 assertion 1: same commitId (D-09)
254
- expect(result2.candidateCount).toBe(3);
255
- // E2EV-02 assertion 2: only one artifact row exists
256
- const artifactCount = db.prepare('SELECT COUNT(*) as cnt FROM artifacts WHERE task_id = ?').get(taskId);
257
- expect(artifactCount.cnt).toBe(1);
258
- // E2EV-02 assertion 3: only 3 candidate rows (no duplicates on re-commit)
259
- const artifactRow = db.prepare('SELECT artifact_id FROM artifacts WHERE task_id = ?').get(taskId);
260
- const candidateCount = db.prepare('SELECT COUNT(*) as cnt FROM principle_candidates WHERE artifact_id = ?').get(artifactRow.artifact_id);
261
- expect(candidateCount.cnt).toBe(3);
262
- });
263
- });
264
- // ═══════════════════════════════════════════════════════════════
265
- // SCENARIO 3: Failure Path — Mid-transaction failure (E2EV-03)
266
- // ═══════════════════════════════════════════════════════════════
267
- // Verifies D-10, D-11, D-12, D-13
268
- describe('Scenario 3: Failure Path (E2EV-03)', () => {
269
- it('commit failure leaves no orphaned rows, task NOT succeeded, error is artifact_commit_failed', async () => {
270
- const taskId = randomUUID();
271
- await stateManager.createTask(makeDiagnosticianTaskInput({
272
- taskId,
273
- workspaceDir: testDir,
274
- diagnostic: { reasonSummary: 'E2EV-03 failure path test' },
275
- }));
276
- const output = makeDiagnosticianOutputWithCandidates(taskId);
277
- const runtimeAdapter = new TestDoubleRuntimeAdapter({
278
- onPollRun: () => ({
279
- runId: 'td-poll-fail',
280
- status: 'succeeded',
281
- startedAt: new Date().toISOString(),
282
- endedAt: new Date().toISOString(),
283
- }),
284
- onFetchOutput: () => ({ runId: 'td-fetch-fail', payload: output }),
285
- });
286
- // Committer wrapper that throws after artifact insert (D-10)
287
- // Uses db.transaction() so the artifact insert rolls back on throw
288
- const failingCommitter = {
289
- commit: async (input) => {
290
- const db = sqliteConn.getDb();
291
- const artifactId = `fail-artifact-${Date.now()}`;
292
- const now = new Date().toISOString();
293
- db.transaction(() => {
294
- db.prepare(`
295
- INSERT INTO artifacts (artifact_id, run_id, task_id, artifact_kind, content_json, created_at)
296
- VALUES (?, ?, ?, ?, ?, ?)
297
- `).run(artifactId, input.runId, input.taskId, 'diagnostician_output', JSON.stringify(input.output), now);
298
- throw new PDRuntimeError('artifact_commit_failed', 'Simulated mid-transaction failure for E2EV-03');
299
- })();
300
- // Never reached
301
- return { commitId: '', artifactId: '', candidateCount: 0 };
302
- },
303
- };
304
- const runner = new DiagnosticianRunner({
305
- stateManager,
306
- contextAssembler,
307
- runtimeAdapter,
308
- eventEmitter,
309
- validator: new PassThroughValidator(),
310
- committer: failingCommitter,
311
- }, {
312
- owner: 'e2e-m5-05-runner',
313
- runtimeKind: 'test-double',
314
- pollIntervalMs: 50,
315
- timeoutMs: 3000,
316
- });
317
- const result = await runner.run(taskId);
318
- // E2EV-03 assertion 1: result.status is NOT 'succeeded' (D-11)
319
- expect(result.status).not.toBe('succeeded');
320
- // E2EV-03 assertion 2: error is artifact_commit_failed (D-13)
321
- expect(result.errorCategory).toBe('artifact_commit_failed');
322
- // E2EV-03 assertion 3: task status is NOT 'succeeded'
323
- const task = await stateManager.getTask(taskId);
324
- expect(task).not.toBeNull();
325
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
326
- expect(task.status).not.toBe('succeeded');
327
- // E2EV-03 assertion 4: no orphaned artifact rows (D-12)
328
- const db = sqliteConn.getDb();
329
- const artifactRows = db.prepare('SELECT * FROM artifacts WHERE task_id = ?').all(taskId);
330
- expect(artifactRows.length).toBe(0); // Transaction rolled back, no orphaned artifacts
331
- });
332
- });
333
- // ═══════════════════════════════════════════════════════════════
334
- // SCENARIO 4: Traceability — Full chain + CLI visibility (E2EV-04)
335
- // ═══════════════════════════════════════════════════════════════
336
- // Verifies D-14, D-15, D-16, D-17
337
- describe('Scenario 4: Traceability + CLI Visibility (E2EV-04)', () => {
338
- it('full chain traversable via SQL + candidateList CLI function shows candidates', async () => {
339
- const taskId = randomUUID();
340
- await stateManager.createTask(makeDiagnosticianTaskInput({
341
- taskId,
342
- workspaceDir: testDir,
343
- diagnostic: {
344
- reasonSummary: 'E2EV-04 traceability test',
345
- sourcePainId: 'pain-e2ev04-001',
346
- severity: 'critical',
347
- source: 'e2e-test',
348
- },
349
- }));
350
- const output = makeDiagnosticianOutputWithCandidates(taskId);
351
- const runtimeAdapter = new TestDoubleRuntimeAdapter({
352
- onPollRun: () => ({
353
- runId: 'td-poll-trace',
354
- status: 'succeeded',
355
- startedAt: new Date().toISOString(),
356
- endedAt: new Date().toISOString(),
357
- }),
358
- onFetchOutput: () => ({ runId: 'td-fetch-trace', payload: output }),
359
- });
360
- const runner = createRunner(runtimeAdapter);
361
- const result = await runner.run(taskId);
362
- expect(result.status).toBe('succeeded');
363
- // E2EV-04 Step 1: task.resultRef = 'commit://<commitId>' (D-14)
364
- const task = await stateManager.getTask(taskId);
365
- expect(task).not.toBeNull();
366
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
367
- expect(task.resultRef).toMatch(/^commit:\/\/.+/);
368
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
369
- const commitId = task.resultRef.replace('commit://', '');
370
- // E2EV-04 Step 2: Direct SQL — commit -> artifact (D-15)
371
- const db = sqliteConn.getDb();
372
- const commitRow = db.prepare('SELECT * FROM commits WHERE commit_id = ?').get(commitId);
373
- expect(commitRow).toBeDefined();
374
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
375
- expect(commitRow.commit_id).toBe(commitId); // commitId in DB matches resultRef
376
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
377
- expect(commitRow.status).toBe('committed');
378
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
379
- const artifactId = commitRow.artifact_id;
380
- // E2EV-04 Step 3: Direct SQL — artifact row (D-15)
381
- const artifactRow = db.prepare('SELECT * FROM artifacts WHERE artifact_id = ?').get(artifactId);
382
- expect(artifactRow).toBeDefined();
383
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
384
- expect(artifactRow.artifact_kind).toBe('diagnostician_output');
385
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
386
- expect(artifactRow.task_id).toBe(taskId);
387
- // E2EV-04 Step 4: Direct SQL — candidates (D-16)
388
- const candidateRows = db.prepare('SELECT * FROM principle_candidates WHERE artifact_id = ?').all(artifactId);
389
- expect(candidateRows.length).toBeGreaterThanOrEqual(2);
390
- expect(candidateRows.every((c) => c.status === PENDING_STATUS)).toBe(true);
391
- // E2EV-04 Step 5: CLI visibility via candidateList function (D-17)
392
- const listResult = await candidateList({ taskId, stateManager });
393
- expect(listResult.candidates.length).toBeGreaterThanOrEqual(2);
394
- expect(listResult.taskId).toBe(taskId);
395
- // E2EV-04 Step 6: Each candidate has required fields
396
- for (const candidate of listResult.candidates) {
397
- expect(candidate.candidateId.length).toBeGreaterThan(0);
398
- expect(candidate.title.length).toBeGreaterThan(0);
399
- expect(candidate.description.length).toBeGreaterThan(0);
400
- expect(['pending', 'consumed', 'expired']).toContain(candidate.status);
401
- }
402
- });
403
- });
404
- });
405
- //# sourceMappingURL=m5-05-e2e.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"m5-05-e2e.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/runner/__tests__/m5-05-e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=m6-06-e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"m6-06-e2e.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/runner/__tests__/m6-06-e2e.test.ts"],"names":[],"mappings":""}