@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.
- package/dist/runtime-v2/__tests__/architecture-regression.test.js +5 -1
- package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +115 -21
- package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/golden-path-diagnostician-e2e.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js +7 -6
- package/dist/runtime-v2/__tests__/pain-signal-bridge-retried.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/pain-signal-bridge-short-circuit.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/pain-signal-bridge-workspace-dir.test.js.map +1 -1
- package/dist/runtime-v2/cli/diagnose.d.ts +2 -2
- package/dist/runtime-v2/cli/diagnose.d.ts.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +3 -3
- package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
- package/dist/runtime-v2/config/pd-config-defaults.js +3 -3
- package/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
- package/dist/runtime-v2/diagnostician-prompt-builder.d.ts +1 -64
- package/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/diagnostician-prompt-builder.js +0 -186
- package/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +13 -7
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js +3 -3
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +8 -7
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +8 -5
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +108 -105
- package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js +3 -3
- package/dist/runtime-v2/internalization/__tests__/runnerkind-seam.test.js.map +1 -1
- package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/split-diagnostician-runner.js +121 -52
- package/dist/runtime-v2/internalization/split-diagnostician-runner.js.map +1 -1
- package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js +28 -21
- package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js.map +1 -1
- package/dist/runtime-v2/pain-signal-runtime-factory.d.ts +10 -1
- package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
- package/dist/runtime-v2/pain-signal-runtime-factory.js +42 -40
- package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
- package/dist/runtime-v2/runner/__tests__/diagnose.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.d.ts +0 -2
- package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.d.ts.map +0 -1
- package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.js +0 -122
- package/dist/runtime-v2/__tests__/diagnostician-core-grounding.test.js.map +0 -1
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.d.ts +0 -2
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.d.ts.map +0 -1
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.js +0 -169
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.integration.test.js.map +0 -1
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.d.ts +0 -2
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.d.ts.map +0 -1
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js +0 -462
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js.map +0 -1
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts +0 -13
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.d.ts.map +0 -1
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js +0 -97
- package/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-language.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.js +0 -378
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.integration.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js +0 -682
- package/dist/runtime-v2/runner/__tests__/diagnostician-runner.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.js +0 -286
- package/dist/runtime-v2/runner/__tests__/diagnostician-telemetry.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.js +0 -320
- package/dist/runtime-v2/runner/__tests__/dual-track-e2e.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.js +0 -261
- package/dist/runtime-v2/runner/__tests__/lease-expiration-recovery.integration.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.js +0 -405
- package/dist/runtime-v2/runner/__tests__/m5-05-e2e.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.js +0 -347
- package/dist/runtime-v2/runner/__tests__/m6-06-e2e.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.js +0 -186
- package/dist/runtime-v2/runner/__tests__/m6-06-legacy.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.js +0 -355
- package/dist/runtime-v2/runner/__tests__/m6-06-real-path.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js +0 -486
- package/dist/runtime-v2/runner/__tests__/m8-02-e2e.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.js +0 -171
- package/dist/runtime-v2/runner/__tests__/m9-adapter-integration.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m9-e2e.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/m9-e2e.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js +0 -175
- package/dist/runtime-v2/runner/__tests__/m9-e2e.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.js +0 -276
- package/dist/runtime-v2/runner/__tests__/max-attempts-exceeded.integration.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.js +0 -272
- package/dist/runtime-v2/runner/__tests__/retry-wait-recovery.integration.test.js.map +0 -1
- package/dist/runtime-v2/runner/__tests__/start-run-input.test.d.ts +0 -2
- package/dist/runtime-v2/runner/__tests__/start-run-input.test.d.ts.map +0 -1
- package/dist/runtime-v2/runner/__tests__/start-run-input.test.js +0 -67
- package/dist/runtime-v2/runner/__tests__/start-run-input.test.js.map +0 -1
- package/dist/runtime-v2/runner/diagnostician-runner-options.d.ts +0 -57
- package/dist/runtime-v2/runner/diagnostician-runner-options.d.ts.map +0 -1
- package/dist/runtime-v2/runner/diagnostician-runner-options.js +0 -21
- package/dist/runtime-v2/runner/diagnostician-runner-options.js.map +0 -1
- package/dist/runtime-v2/runner/diagnostician-runner.d.ts +0 -89
- package/dist/runtime-v2/runner/diagnostician-runner.d.ts.map +0 -1
- package/dist/runtime-v2/runner/diagnostician-runner.js +0 -470
- 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 +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":""}
|