@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.
@@ -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 quarantines malformed run row as failed + storage_unavailable, without deleting it', () => {
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
- expect(result.repairedCount).toBeGreaterThanOrEqual(1);
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, NOT deleted (audit history preserved).
413
- expect(getRunField('run-malf-2', 'execution_status')).toBe('failed');
414
- expect(getRunField('run-malf-2', 'error_category')).toBe('storage_unavailable');
415
- const reason = getRunField('run-malf-2', 'reason');
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 (no forging a successful run).
418
- expect(getRunField('run-malf-2', 'execution_status')).not.toBe('succeeded');
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
- insertMalformedRunRow('run-malf-3', 'malf-task-3');
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 `assembleMainlineSnapshot` below (to be implemented
34
- * as the shared reader that integrity/smoke/Console also use).
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('assembleMainlineSnapshot(stateManager, painId) + assertMainlineContract → overall "ok" ' +
140
+ it.todo('shared reader + assertMainlineContract → overall "ok" ' +
44
141
  'with zero violations across all stages');
45
- it.todo('a consumed candidate left without a dreamer task makes the contract report auto_consumption violation');
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;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAExF,EAAE,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAEvF,EAAE,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;IAElG,EAAE,CAAC,IAAI,CACL,+EAA+E;QAC7E,8FAA8F,CACjG,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAExG,EAAE,CAAC,IAAI,CACL,yFAAyF;QACvF,wCAAwC,CAC3C,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;AACnH,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAuCiF"}
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":"AAKA,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;CACtB;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;gBAEpB,IAAI,EAAE,6CAA6C;IAI/D,KAAK,IAAI,oBAAoB;CAgX9B"}
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)