@principles/core 1.138.0 → 1.140.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__/internalization-integrity-remediation.test.js +108 -9
- package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/mainline-product-path.test.js +126 -45
- package/dist/runtime-v2/__tests__/mainline-product-path.test.js.map +1 -1
- package/dist/runtime-v2/internalization-chain-integrity-read-model.d.ts +4 -0
- package/dist/runtime-v2/internalization-chain-integrity-read-model.d.ts.map +1 -1
- package/dist/runtime-v2/internalization-chain-integrity-read-model.js +18 -0
- package/dist/runtime-v2/internalization-chain-integrity-read-model.js.map +1 -1
- package/dist/runtime-v2/internalization-integrity-remediation.d.ts +23 -0
- package/dist/runtime-v2/internalization-integrity-remediation.d.ts.map +1 -1
- package/dist/runtime-v2/internalization-integrity-remediation.js +475 -76
- package/dist/runtime-v2/internalization-integrity-remediation.js.map +1 -1
- package/package.json +1 -1
|
@@ -48,6 +48,8 @@ describe('InternalizationIntegrityRemediation', () => {
|
|
|
48
48
|
ended_at TEXT,
|
|
49
49
|
reason TEXT,
|
|
50
50
|
output_ref TEXT,
|
|
51
|
+
input_payload TEXT,
|
|
52
|
+
output_payload TEXT,
|
|
51
53
|
error_category TEXT,
|
|
52
54
|
attempt_number INTEGER NOT NULL DEFAULT 0,
|
|
53
55
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
@@ -205,6 +207,7 @@ describe('InternalizationIntegrityRemediation', () => {
|
|
|
205
207
|
});
|
|
206
208
|
it('does not touch non-dreamer tasks', () => {
|
|
207
209
|
insertTask({ taskId: 'diagnostician-001', taskKind: 'diagnostician', status: 'succeeded' });
|
|
210
|
+
insertRun({ runId: 'run-diag-1', taskId: 'diagnostician-001', executionStatus: 'succeeded' });
|
|
208
211
|
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
209
212
|
const result = remediation.repair({ dryRun: false });
|
|
210
213
|
expect(getTaskField('diagnostician-001', 'status')).toBe('succeeded');
|
|
@@ -213,6 +216,7 @@ describe('InternalizationIntegrityRemediation', () => {
|
|
|
213
216
|
it('does not touch dreamer tasks with artifact and successor', () => {
|
|
214
217
|
insertTask({ taskId: 'dreamer-ok', taskKind: 'dreamer', status: 'succeeded' });
|
|
215
218
|
insertArtifact({ artifactId: 'art-ok', sourceTaskId: 'dreamer-ok', kind: 'principle', content: '{"valid":true}' });
|
|
219
|
+
insertRun({ runId: 'run-dream-ok', taskId: 'dreamer-ok', executionStatus: 'succeeded' });
|
|
216
220
|
insertTask({
|
|
217
221
|
taskId: 'philosopher-ok',
|
|
218
222
|
taskKind: 'philosopher',
|
|
@@ -400,26 +404,57 @@ describe('InternalizationIntegrityRemediation', () => {
|
|
|
400
404
|
// Dry-run must NOT mutate the DB.
|
|
401
405
|
expect(getRunField('run-malf-1', 'execution_status')).toBe('queued');
|
|
402
406
|
});
|
|
403
|
-
it('confirm
|
|
407
|
+
it('confirm refuses to repair malformed run row when required fields are unrecoverable', () => {
|
|
404
408
|
insertTask({ taskId: 'malf-task-2', taskKind: 'dreamer', status: 'succeeded' });
|
|
405
409
|
insertMalformedRunRow('run-malf-2', 'malf-task-2');
|
|
406
410
|
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
407
411
|
const result = remediation.repair({ dryRun: false });
|
|
408
|
-
|
|
412
|
+
// runtime_kind='config' fails RuntimeKindSchema validation in
|
|
413
|
+
// safeUpdateRunRow pre-write check → refuse_repair with manual_intervention
|
|
409
414
|
const action = findAction(result.actions, 'malf-task-2', 'malformed_run_row');
|
|
410
415
|
expect(action).toBeDefined();
|
|
416
|
+
expect(action?.recommendedAction).toBe('manual_intervention');
|
|
417
|
+
expect(action?.action).toBe('refuse_repair');
|
|
418
|
+
// Row must NOT be mutated (we refused, not quarantined)
|
|
419
|
+
expect(getRunField('run-malf-2', 'execution_status')).toBe('queued');
|
|
420
|
+
expect(getRunField('run-malf-2', 'error_category')).toBeNull();
|
|
421
|
+
// Warnings must be emitted explaining the refusal
|
|
422
|
+
expect(result.warnings.length).toBeGreaterThanOrEqual(1);
|
|
423
|
+
});
|
|
424
|
+
it('confirm quarantines malformed run row when optional fields are invalid (recoverable)', () => {
|
|
425
|
+
insertTask({ taskId: 'malf-task-6', taskKind: 'dreamer', status: 'succeeded' });
|
|
426
|
+
// Insert a row where required fields (task_id, runtime_kind, started_at,
|
|
427
|
+
// created_at, attempt_number) are VALID, but execution_status is invalid.
|
|
428
|
+
// rowToRecord fails because execution_status='invalid_status' is not a
|
|
429
|
+
// valid RunExecutionStatus → detectMalformedRuns catches it.
|
|
430
|
+
// safeUpdateRunRow replaces execution_status with 'failed' → quarantine succeeds.
|
|
431
|
+
const d = new Database(dbPath);
|
|
432
|
+
const now = new Date().toISOString();
|
|
433
|
+
d.prepare(`INSERT OR REPLACE INTO runs (run_id, task_id, runtime_kind, started_at, attempt_number, execution_status, created_at, updated_at)
|
|
434
|
+
VALUES (?, ?, 'openclaw', ?, 1, 'invalid_status', ?, ?)`).run('run-malf-6', 'malf-task-6', now, now, now);
|
|
435
|
+
d.close();
|
|
436
|
+
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
437
|
+
const result = remediation.repair({ dryRun: false });
|
|
438
|
+
expect(result.repairedCount).toBeGreaterThanOrEqual(1);
|
|
439
|
+
const action = findAction(result.actions, 'malf-task-6', 'malformed_run_row');
|
|
440
|
+
expect(action).toBeDefined();
|
|
411
441
|
expect(action?.recommendedAction).toBe('quarantine_malformed_run');
|
|
412
|
-
// Row must be quarantined
|
|
413
|
-
expect(getRunField('run-malf-
|
|
414
|
-
expect(getRunField('run-malf-
|
|
415
|
-
const reason = getRunField('run-malf-
|
|
442
|
+
// Row must be quarantined
|
|
443
|
+
expect(getRunField('run-malf-6', 'execution_status')).toBe('failed');
|
|
444
|
+
expect(getRunField('run-malf-6', 'error_category')).toBe('storage_unavailable');
|
|
445
|
+
const reason = getRunField('run-malf-6', 'reason');
|
|
416
446
|
expect(String(reason)).toContain('quarantined');
|
|
417
|
-
// Never marked succeeded
|
|
418
|
-
expect(getRunField('run-malf-
|
|
447
|
+
// Never marked succeeded
|
|
448
|
+
expect(getRunField('run-malf-6', 'execution_status')).not.toBe('succeeded');
|
|
419
449
|
});
|
|
420
450
|
it('is idempotent — second confirm skips already-quarantined rows', () => {
|
|
421
451
|
insertTask({ taskId: 'malf-task-3', taskKind: 'dreamer', status: 'succeeded' });
|
|
422
|
-
|
|
452
|
+
// Use recoverable malformed row (invalid execution_status, valid runtime_kind)
|
|
453
|
+
const d = new Database(dbPath);
|
|
454
|
+
const now = new Date().toISOString();
|
|
455
|
+
d.prepare(`INSERT OR REPLACE INTO runs (run_id, task_id, runtime_kind, started_at, attempt_number, execution_status, created_at, updated_at)
|
|
456
|
+
VALUES (?, ?, 'openclaw', ?, 1, 'invalid_status', ?, ?)`).run('run-malf-3', 'malf-task-3', now, now, now);
|
|
457
|
+
d.close();
|
|
423
458
|
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
424
459
|
const result1 = remediation.repair({ dryRun: false });
|
|
425
460
|
const result2 = remediation.repair({ dryRun: false });
|
|
@@ -447,5 +482,69 @@ describe('InternalizationIntegrityRemediation', () => {
|
|
|
447
482
|
expect(action).toBeUndefined();
|
|
448
483
|
});
|
|
449
484
|
});
|
|
485
|
+
describe('task_succeeded_no_succeeded_run', () => {
|
|
486
|
+
it('dry-run reports task_succeeded_no_succeeded_run but does not mutate DB', () => {
|
|
487
|
+
insertTask({ taskId: 'task-no-run-1', taskKind: 'diagnostician', status: 'succeeded' });
|
|
488
|
+
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
489
|
+
const result = remediation.repair({ dryRun: true });
|
|
490
|
+
const action = findAction(result.actions, 'task-no-run-1', 'task_succeeded_no_succeeded_run');
|
|
491
|
+
expect(action).toBeDefined();
|
|
492
|
+
expect(action?.recommendedAction).toBe('supplement_succeeded_run');
|
|
493
|
+
// Check that DB is not mutated (no run inserted)
|
|
494
|
+
const d = new Database(dbPath);
|
|
495
|
+
const row = d.prepare("SELECT 1 FROM runs WHERE task_id = 'task-no-run-1'").get();
|
|
496
|
+
d.close();
|
|
497
|
+
expect(row).toBeUndefined();
|
|
498
|
+
});
|
|
499
|
+
it('confirm supplements a canonical succeeded run and is schema-valid', () => {
|
|
500
|
+
insertTask({ taskId: 'task-no-run-2', taskKind: 'diagnostician', status: 'succeeded' });
|
|
501
|
+
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
502
|
+
const result = remediation.repair({ dryRun: false });
|
|
503
|
+
expect(result.repairedCount).toBe(1);
|
|
504
|
+
const action = findAction(result.actions, 'task-no-run-2', 'task_succeeded_no_succeeded_run');
|
|
505
|
+
expect(action).toBeDefined();
|
|
506
|
+
expect(action?.recommendedAction).toBe('supplement_succeeded_run');
|
|
507
|
+
// Check that DB contains a valid succeeded run
|
|
508
|
+
const d = new Database(dbPath);
|
|
509
|
+
const run = d.prepare("SELECT * FROM runs WHERE task_id = 'task-no-run-2' AND execution_status = 'succeeded'").get();
|
|
510
|
+
d.close();
|
|
511
|
+
expect(run).toBeDefined();
|
|
512
|
+
expect(run?.runtime_kind).toBe('openclaw');
|
|
513
|
+
expect(run?.attempt_number).toBe(1);
|
|
514
|
+
expect(run?.reason).toContain('Supplemented');
|
|
515
|
+
});
|
|
516
|
+
it('is idempotent — second confirm skips already-supplemented runs', () => {
|
|
517
|
+
insertTask({ taskId: 'task-no-run-3', taskKind: 'diagnostician', status: 'succeeded' });
|
|
518
|
+
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
519
|
+
const result1 = remediation.repair({ dryRun: false });
|
|
520
|
+
const result2 = remediation.repair({ dryRun: false });
|
|
521
|
+
expect(result1.repairedCount).toBe(1);
|
|
522
|
+
expect(result2.repairedCount).toBe(0);
|
|
523
|
+
const action = findAction(result2.actions, 'task-no-run-3', 'task_succeeded_no_succeeded_run');
|
|
524
|
+
expect(action).toBeUndefined();
|
|
525
|
+
});
|
|
526
|
+
it('dry-run reports supplement_succeeded_run when succeeded task has only malformed succeeded run rows', () => {
|
|
527
|
+
insertTask({ taskId: 'task-malf-run', taskKind: 'diagnostician', status: 'succeeded' });
|
|
528
|
+
// Insert a schema-invalid succeeded run (runtime_kind='config' not in RuntimeKindSchema)
|
|
529
|
+
const d = new Database(dbPath);
|
|
530
|
+
const now = new Date().toISOString();
|
|
531
|
+
d.prepare(`INSERT OR REPLACE INTO runs (run_id, task_id, runtime_kind, started_at, attempt_number, execution_status, created_at, updated_at)
|
|
532
|
+
VALUES (?, ?, 'config', ?, 1, 'succeeded', ?, ?)`).run('run-schema-invalid', 'task-malf-run', now, now, now);
|
|
533
|
+
d.close();
|
|
534
|
+
const remediation = new InternalizationIntegrityRemediation({ workspaceDir: tmpDir });
|
|
535
|
+
const result = remediation.repair({ dryRun: true });
|
|
536
|
+
// The malformed succeeded run is not a valid succeeded run, so
|
|
537
|
+
// supplement_succeeded_run should be shown
|
|
538
|
+
const action = findAction(result.actions, 'task-malf-run', 'task_succeeded_no_succeeded_run');
|
|
539
|
+
expect(action).toBeDefined();
|
|
540
|
+
expect(action?.recommendedAction).toBe('supplement_succeeded_run');
|
|
541
|
+
// DB must NOT be mutated (dry-run)
|
|
542
|
+
const d2 = new Database(dbPath);
|
|
543
|
+
const rows = d2.prepare("SELECT execution_status FROM runs WHERE task_id = 'task-malf-run'").all();
|
|
544
|
+
expect(rows).toHaveLength(1);
|
|
545
|
+
expect(rows[0]?.execution_status).toBe('succeeded');
|
|
546
|
+
d2.close();
|
|
547
|
+
});
|
|
548
|
+
});
|
|
450
549
|
});
|
|
451
550
|
//# sourceMappingURL=internalization-integrity-remediation.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalization-integrity-remediation.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/internalization-integrity-remediation.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"internalization-integrity-remediation.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/internalization-integrity-remediation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { describe, it } from 'vitest';
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import * as os from 'node:os';
|
|
5
|
+
import { RuntimeStateManager, SqliteDiagnosticianCommitter, assertMainlineContract, } from '../index.js';
|
|
2
6
|
/**
|
|
3
7
|
* Mainline product-path test — THE LOAD-BEARING WALL of the convergence sprint.
|
|
4
8
|
*
|
|
@@ -30,58 +34,135 @@ import { describe, it } from 'vitest';
|
|
|
30
34
|
* - Create the dreamer task through `seedIntakeTask` / `handleCandidateInternalize`,
|
|
31
35
|
* never by hand-writing dependencyTaskIds (that is what full-chain-real-llm.test.ts
|
|
32
36
|
* does and why it never caught the severed-lineage bug).
|
|
33
|
-
* - Assemble the snapshot with
|
|
34
|
-
*
|
|
37
|
+
* - Assemble the snapshot with the shared reader in
|
|
38
|
+
* `packages/pd-cli/src/services/mainline-snapshot-assembler.ts` (or equivalent
|
|
39
|
+
* I/O-boundary reader) so integrity/smoke/Console share one source of truth.
|
|
35
40
|
*/
|
|
41
|
+
function createTempWorkspace() {
|
|
42
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'pri-394-product-path-'));
|
|
43
|
+
return tmpDir;
|
|
44
|
+
}
|
|
45
|
+
function removeTempWorkspace(dir) {
|
|
46
|
+
try {
|
|
47
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
48
|
+
}
|
|
49
|
+
catch { /* ignore */ }
|
|
50
|
+
}
|
|
51
|
+
function alignedReadiness() {
|
|
52
|
+
return {
|
|
53
|
+
configDoctorProfile: 'openclaw.default',
|
|
54
|
+
runtimeProbeProfile: 'openclaw.default',
|
|
55
|
+
configSource: '.pd/config.yaml',
|
|
56
|
+
probeConfigSource: '.pd/config.yaml',
|
|
57
|
+
diagnosticianReady: true,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function diagnosticianDiagnosticJson(painId) {
|
|
61
|
+
return JSON.stringify({
|
|
62
|
+
sourcePainId: painId,
|
|
63
|
+
reasonSummary: 'Repeated edits without reading instructions first',
|
|
64
|
+
source: 'test',
|
|
65
|
+
severity: 'high',
|
|
66
|
+
sessionIdHint: null,
|
|
67
|
+
agentIdHint: null,
|
|
68
|
+
provenance: 'automatic_hook',
|
|
69
|
+
provenanceReason: 'automatic hook',
|
|
70
|
+
evidence: [{ sourceRef: 'session://test', note: 'edited README before reading' }],
|
|
71
|
+
workspaceDir: null,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function validDiagnosticianOutput(painId) {
|
|
75
|
+
return {
|
|
76
|
+
valid: true,
|
|
77
|
+
diagnosisId: `diag-${painId}`,
|
|
78
|
+
summary: 'Repeated edits without reading instructions first',
|
|
79
|
+
rootCause: 'Assumption: agent assumes it knows the workspace conventions',
|
|
80
|
+
violatedPrinciples: [],
|
|
81
|
+
evidence: [{ sourceRef: 'session://test', note: 'edited README before reading' }],
|
|
82
|
+
recommendations: [{
|
|
83
|
+
kind: 'principle',
|
|
84
|
+
description: 'Read AGENTS.md and PLAN.md before editing protected files',
|
|
85
|
+
abstractedPrinciple: 'Read workspace instructions before protected edits',
|
|
86
|
+
}],
|
|
87
|
+
confidence: 0.9,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
async function seedDiagnosisToCandidate(sm, painId) {
|
|
91
|
+
const taskId = `diagnostician-${painId}`;
|
|
92
|
+
await sm.createTask({
|
|
93
|
+
taskId,
|
|
94
|
+
taskKind: 'diagnostician',
|
|
95
|
+
inputRef: painId,
|
|
96
|
+
status: 'pending',
|
|
97
|
+
attemptCount: 0,
|
|
98
|
+
maxAttempts: 3,
|
|
99
|
+
diagnosticJson: diagnosticianDiagnosticJson(painId),
|
|
100
|
+
});
|
|
101
|
+
const committer = new SqliteDiagnosticianCommitter(sm.connection);
|
|
102
|
+
await sm.acquireLease({ taskId, owner: 'test-owner', durationMs: 60_000, runtimeKind: 'openclaw' });
|
|
103
|
+
const runs = await sm.getRunsByTask(taskId);
|
|
104
|
+
const runId = runs[0]?.runId;
|
|
105
|
+
if (!runId)
|
|
106
|
+
throw new Error(`No run created for task ${taskId}`);
|
|
107
|
+
const commitResult = await committer.commit({
|
|
108
|
+
runId,
|
|
109
|
+
taskId,
|
|
110
|
+
output: validDiagnosticianOutput(painId),
|
|
111
|
+
idempotencyKey: `idem-${taskId}`,
|
|
112
|
+
});
|
|
113
|
+
await sm.markTaskSucceeded(taskId, `artifact://${commitResult.artifactId}`);
|
|
114
|
+
const candidates = await sm.getCandidatesByTaskId(taskId);
|
|
115
|
+
const [candidate] = candidates;
|
|
116
|
+
if (!candidate)
|
|
117
|
+
throw new Error('No candidate produced by diagnostician committer');
|
|
118
|
+
return { taskId, candidateId: candidate.candidateId };
|
|
119
|
+
}
|
|
36
120
|
describe('mainline product-path (load-bearing wall)', () => {
|
|
121
|
+
let workspaceDir = '';
|
|
122
|
+
let sm;
|
|
123
|
+
beforeEach(() => {
|
|
124
|
+
workspaceDir = createTempWorkspace();
|
|
125
|
+
sm = new RuntimeStateManager({ workspaceDir });
|
|
126
|
+
});
|
|
127
|
+
afterEach(async () => {
|
|
128
|
+
try {
|
|
129
|
+
await sm.close();
|
|
130
|
+
}
|
|
131
|
+
catch { /* ignore */ }
|
|
132
|
+
removeTempWorkspace(workspaceDir);
|
|
133
|
+
});
|
|
37
134
|
it.todo('PRI-C: config doctor and probe resolve the same profile from .pd/config.yaml');
|
|
38
135
|
it.todo('seeds a real pain row and runs the diagnostician via a stub runtime adapter');
|
|
39
136
|
it.todo('intake produces a candidate carrying sourceTaskId/sourceArtifactId/sourceRunId lineage');
|
|
40
137
|
it.todo('PRI-B: pd candidate internalize seeds a dreamer task whose dependencyTaskIds ' +
|
|
41
138
|
'includes the diagnosis task and whose inputArtifactRefs reference the diagnostician artifact');
|
|
42
139
|
it.todo('PRI-B: DreamerRunner.buildContext returns contextRefs.length > 0 and contextHash !== "empty"');
|
|
43
|
-
it.todo('
|
|
140
|
+
it.todo('shared reader + assertMainlineContract → overall "ok" ' +
|
|
44
141
|
'with zero violations across all stages');
|
|
45
|
-
it
|
|
142
|
+
it('a consumed candidate left without a dreamer task makes the contract report auto_consumption violation', async () => {
|
|
143
|
+
await sm.initialize();
|
|
144
|
+
const painId = 'pain-auto-consumption';
|
|
145
|
+
const { candidateId } = await seedDiagnosisToCandidate(sm, painId);
|
|
146
|
+
await sm.updateCandidateStatus(candidateId, { status: 'consumed' });
|
|
147
|
+
const snapshot = {
|
|
148
|
+
readiness: alignedReadiness(),
|
|
149
|
+
chain: {
|
|
150
|
+
painId,
|
|
151
|
+
diagnosisTask: null,
|
|
152
|
+
diagnosticianArtifact: null,
|
|
153
|
+
candidate: null,
|
|
154
|
+
dreamerTask: null,
|
|
155
|
+
dreamerContext: null,
|
|
156
|
+
successor: null,
|
|
157
|
+
principle: null,
|
|
158
|
+
},
|
|
159
|
+
consumedCandidatesMissingDreamer: [candidateId],
|
|
160
|
+
};
|
|
161
|
+
const verdict = assertMainlineContract(snapshot);
|
|
162
|
+
expect(verdict.stages.some((s) => s.stage === 'auto_consumption' && s.status === 'violation')).toBe(true);
|
|
163
|
+
const autoConsumption = verdict.stages.find((s) => s.stage === 'auto_consumption');
|
|
164
|
+
expect(autoConsumption?.reason).toContain(candidateId);
|
|
165
|
+
expect(autoConsumption?.nextAction).toBeTruthy();
|
|
166
|
+
});
|
|
46
167
|
});
|
|
47
|
-
/* ───────────────────────────────────────────────────────────────────────────
|
|
48
|
-
* Reference implementation sketch for the shared snapshot assembler.
|
|
49
|
-
* Lives here as a comment until PRI-A wiring is split into its own module so
|
|
50
|
-
* integrity-read-model, `pd mvp smoke`, and the Console chain view all import it
|
|
51
|
-
* (one source of truth — EP-02). Pseudocode, not executable yet:
|
|
52
|
-
*
|
|
53
|
-
* export async function assembleMainlineSnapshot(
|
|
54
|
-
* sm: RuntimeStateManager,
|
|
55
|
-
* painId: string,
|
|
56
|
-
* readiness: RuntimeReadinessSnapshot,
|
|
57
|
-
* ): Promise<MainlineSnapshot> {
|
|
58
|
-
* const diagnosisTask = await findDiagnosisTaskForPain(sm, painId);
|
|
59
|
-
* const artifact = diagnosisTask ? await findDiagnosticianArtifact(sm, diagnosisTask.taskId) : null;
|
|
60
|
-
* const candidate = artifact ? await sm.getCandidatesByArtifactId(artifact.artifactId)[0] : null;
|
|
61
|
-
* const dreamerTask = candidate ? await sm.getTask(`dreamer-${candidate.candidateId}-${channel}`) : null;
|
|
62
|
-
* const dreamerCtx = dreamerTask ? await new DreamerRunner(...).buildContext(dreamerTask.taskId) : null;
|
|
63
|
-
* const successor = dreamerTask ? await findSuccessor(sm, dreamerTask.taskId) : null;
|
|
64
|
-
* const principle = successor ? await findReviewablePrinciple(sm, successor.taskId) : null;
|
|
65
|
-
* return {
|
|
66
|
-
* readiness,
|
|
67
|
-
* chain: {
|
|
68
|
-
* painId,
|
|
69
|
-
* diagnosisTask: diagnosisTask && { taskId, status, hasSucceededRun: await hasSucceededRun(sm, taskId) },
|
|
70
|
-
* diagnosticianArtifact: artifact && { artifactId, sourcePainId: traceArtifactToPain(artifact) },
|
|
71
|
-
* candidate: candidate && {
|
|
72
|
-
* candidateId, status,
|
|
73
|
-
* sourceTaskId: candidate.taskId,
|
|
74
|
-
* sourceArtifactId: candidate.artifactId,
|
|
75
|
-
* sourceRunId: candidate.sourceRunId,
|
|
76
|
-
* },
|
|
77
|
-
* dreamerTask: dreamerTask && hydratePITaskRecord(dreamerTask) && {
|
|
78
|
-
* taskId, dependencyTaskIds, inputArtifactRefs,
|
|
79
|
-
* },
|
|
80
|
-
* dreamerContext: dreamerCtx && { contextHash, contextRefs },
|
|
81
|
-
* successor, principle,
|
|
82
|
-
* },
|
|
83
|
-
* consumedCandidatesMissingDreamer: await findConsumedCandidatesWithoutDreamer(sm),
|
|
84
|
-
* };
|
|
85
|
-
* }
|
|
86
|
-
* ─────────────────────────────────────────────────────────────────────────── */
|
|
87
168
|
//# sourceMappingURL=mainline-product-path.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mainline-product-path.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/mainline-product-path.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"mainline-product-path.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/mainline-product-path.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type MainlineSnapshot } from './mainline-contract.js';
|
|
1
2
|
export interface BrokenLink {
|
|
2
3
|
type: string;
|
|
3
4
|
severity: 'warning' | 'error';
|
|
@@ -22,6 +23,8 @@ export interface ChainIntegrityResult {
|
|
|
22
23
|
}
|
|
23
24
|
export interface InternalizationChainIntegrityReadModelOptions {
|
|
24
25
|
workspaceDir: string;
|
|
26
|
+
/** Optional pre-assembled mainline snapshot. When provided, its contract verdict is merged into brokenLinks. */
|
|
27
|
+
mainlineSnapshot?: MainlineSnapshot;
|
|
25
28
|
}
|
|
26
29
|
export type PIMetadataParseResult = {
|
|
27
30
|
status: 'missing';
|
|
@@ -37,6 +40,7 @@ export type PIMetadataParseResult = {
|
|
|
37
40
|
export declare function extractPIMetadata(diagJson: string | null): PIMetadataParseResult;
|
|
38
41
|
export declare class InternalizationChainIntegrityReadModel {
|
|
39
42
|
private readonly dbPath;
|
|
43
|
+
private readonly mainlineSnapshot?;
|
|
40
44
|
constructor(opts: InternalizationChainIntegrityReadModelOptions);
|
|
41
45
|
check(): ChainIntegrityResult;
|
|
42
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalization-chain-integrity-read-model.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/internalization-chain-integrity-read-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internalization-chain-integrity-read-model.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/internalization-chain-integrity-read-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;IAC3C,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,cAAc,EAAE;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,6CAA6C;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,gHAAgH;IAChH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AASD,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,GACD;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAkCN,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,qBAAqB,CA6DhF;AAED,qBAAa,sCAAsC;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAmB;gBAEzC,IAAI,EAAE,6CAA6C;IAK/D,KAAK,IAAI,oBAAoB;CA+X9B"}
|
|
@@ -2,6 +2,7 @@ import * as fs from 'fs';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import Database from 'better-sqlite3';
|
|
4
4
|
import { MVP_ENABLED_CHANNELS, ROUTE_CHANNEL_MAP, CANDIDATE_KIND_TO_ROUTE } from './internalization/intake-to-internalization-bridge.js';
|
|
5
|
+
import { assertMainlineContract } from './mainline-contract.js';
|
|
5
6
|
function readOwnProperty(obj, key) {
|
|
6
7
|
if (Object.hasOwn(obj, key)) {
|
|
7
8
|
return obj[key];
|
|
@@ -96,8 +97,10 @@ export function extractPIMetadata(diagJson) {
|
|
|
96
97
|
}
|
|
97
98
|
export class InternalizationChainIntegrityReadModel {
|
|
98
99
|
dbPath;
|
|
100
|
+
mainlineSnapshot;
|
|
99
101
|
constructor(opts) {
|
|
100
102
|
this.dbPath = path.join(opts.workspaceDir, '.pd', 'state.db');
|
|
103
|
+
this.mainlineSnapshot = opts.mainlineSnapshot;
|
|
101
104
|
}
|
|
102
105
|
check() {
|
|
103
106
|
const generatedAt = new Date().toISOString();
|
|
@@ -382,6 +385,21 @@ export class InternalizationChainIntegrityReadModel {
|
|
|
382
385
|
});
|
|
383
386
|
}
|
|
384
387
|
}
|
|
388
|
+
// Merge mainline contract verdicts when a pre-assembled snapshot is provided.
|
|
389
|
+
if (this.mainlineSnapshot) {
|
|
390
|
+
const verdict = assertMainlineContract(this.mainlineSnapshot);
|
|
391
|
+
for (const stage of verdict.stages) {
|
|
392
|
+
if (stage.status !== 'violation')
|
|
393
|
+
continue;
|
|
394
|
+
const painId = verdict.painId ?? 'unknown';
|
|
395
|
+
brokenLinks.push({
|
|
396
|
+
type: `mainline_contract_${stage.stage}`,
|
|
397
|
+
severity: 'error',
|
|
398
|
+
reason: `[painId=${painId}] ${stage.reason}`,
|
|
399
|
+
recommendedAction: stage.nextAction ?? 'Review the mainline contract output and fix the reported stage.',
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
}
|
|
385
403
|
const affectedEntities = new Set();
|
|
386
404
|
for (const link of brokenLinks) {
|
|
387
405
|
if (link.taskId)
|