@principles/core 1.135.0 → 1.137.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 (78) hide show
  1. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +8 -0
  2. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js +20 -3
  4. package/dist/runtime-v2/__tests__/chain-integrity-real-path.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js +12 -0
  6. package/dist/runtime-v2/__tests__/dreamer-runner-vslice.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/dreamer-runner.test.js +7 -2
  8. package/dist/runtime-v2/__tests__/dreamer-runner.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js +20 -0
  10. package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js.map +1 -1
  11. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js +4 -0
  12. package/dist/runtime-v2/__tests__/internalization-consumer-product-path.test.js.map +1 -1
  13. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js +84 -2
  14. package/dist/runtime-v2/__tests__/internalization-integrity-remediation.test.js.map +1 -1
  15. package/dist/runtime-v2/__tests__/mainline-contract.test.d.ts +2 -0
  16. package/dist/runtime-v2/__tests__/mainline-contract.test.d.ts.map +1 -0
  17. package/dist/runtime-v2/__tests__/mainline-contract.test.js +194 -0
  18. package/dist/runtime-v2/__tests__/mainline-contract.test.js.map +1 -0
  19. package/dist/runtime-v2/__tests__/mainline-product-path.test.d.ts +2 -0
  20. package/dist/runtime-v2/__tests__/mainline-product-path.test.d.ts.map +1 -0
  21. package/dist/runtime-v2/__tests__/mainline-product-path.test.js +87 -0
  22. package/dist/runtime-v2/__tests__/mainline-product-path.test.js.map +1 -0
  23. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js +4 -0
  24. package/dist/runtime-v2/__tests__/philosopher-runner-vslice.test.js.map +1 -1
  25. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js +8 -0
  26. package/dist/runtime-v2/__tests__/rollout-reviewer-runner-vslice.test.js.map +1 -1
  27. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +4 -0
  28. package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +1 -1
  29. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js +8 -0
  30. package/dist/runtime-v2/__tests__/trainer-runner-vslice.test.js.map +1 -1
  31. package/dist/runtime-v2/index.d.ts +2 -0
  32. package/dist/runtime-v2/index.d.ts.map +1 -1
  33. package/dist/runtime-v2/index.js +2 -0
  34. package/dist/runtime-v2/index.js.map +1 -1
  35. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +3 -0
  36. package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  37. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js +4 -0
  38. package/dist/runtime-v2/internalization/__tests__/diag-distiller-runner.test.js.map +1 -1
  39. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js +4 -0
  40. package/dist/runtime-v2/internalization/__tests__/diag-rootcause-runner.test.js.map +1 -1
  41. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +4 -0
  42. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +1 -1
  43. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js +4 -0
  44. package/dist/runtime-v2/internalization/__tests__/philosopher-runner-trust-boundary.test.js.map +1 -1
  45. package/dist/runtime-v2/internalization-integrity-remediation.d.ts +20 -0
  46. package/dist/runtime-v2/internalization-integrity-remediation.d.ts.map +1 -1
  47. package/dist/runtime-v2/internalization-integrity-remediation.js +122 -0
  48. package/dist/runtime-v2/internalization-integrity-remediation.js.map +1 -1
  49. package/dist/runtime-v2/mainline-contract.d.ts +138 -0
  50. package/dist/runtime-v2/mainline-contract.d.ts.map +1 -0
  51. package/dist/runtime-v2/mainline-contract.js +224 -0
  52. package/dist/runtime-v2/mainline-contract.js.map +1 -0
  53. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js +8 -0
  54. package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js.map +1 -1
  55. package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
  56. package/dist/runtime-v2/runner/base-peer-runner.js +26 -2
  57. package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
  58. package/dist/runtime-v2/store/run/memory-run-store.d.ts +2 -1
  59. package/dist/runtime-v2/store/run/memory-run-store.d.ts.map +1 -1
  60. package/dist/runtime-v2/store/run/memory-run-store.js +5 -0
  61. package/dist/runtime-v2/store/run/memory-run-store.js.map +1 -1
  62. package/dist/runtime-v2/store/run/run-store.d.ts +27 -0
  63. package/dist/runtime-v2/store/run/run-store.d.ts.map +1 -1
  64. package/dist/runtime-v2/store/run/sqlite-run-store.d.ts +22 -12
  65. package/dist/runtime-v2/store/run/sqlite-run-store.d.ts.map +1 -1
  66. package/dist/runtime-v2/store/run/sqlite-run-store.js +96 -23
  67. package/dist/runtime-v2/store/run/sqlite-run-store.js.map +1 -1
  68. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts +2 -0
  69. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.d.ts.map +1 -0
  70. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js +160 -0
  71. package/dist/runtime-v2/store/runtime-state-manager-malformed-run-tolerance.test.js.map +1 -0
  72. package/dist/runtime-v2/store/runtime-state-manager.d.ts +22 -1
  73. package/dist/runtime-v2/store/runtime-state-manager.d.ts.map +1 -1
  74. package/dist/runtime-v2/store/runtime-state-manager.js +48 -3
  75. package/dist/runtime-v2/store/runtime-state-manager.js.map +1 -1
  76. package/dist/runtime-v2/store/sqlite-run-store.test.js +131 -0
  77. package/dist/runtime-v2/store/sqlite-run-store.test.js.map +1 -1
  78. package/package.json +1 -1
@@ -3,6 +3,7 @@ import * as path from 'path';
3
3
  import Database from 'better-sqlite3';
4
4
  import { extractPIMetadata } from './internalization-chain-integrity-read-model.js';
5
5
  import { createRemediationResult, remediationAction } from './remediation-contract.js';
6
+ import { SqliteRunStore } from './store/run/sqlite-run-store.js';
6
7
  export class InternalizationIntegrityRemediation {
7
8
  dbPath;
8
9
  constructor(opts) {
@@ -16,6 +17,7 @@ export class InternalizationIntegrityRemediation {
16
17
  const brokenDreamers = this.detectBrokenDreamers();
17
18
  const stuckLeases = this.detectStuckLeases();
18
19
  const orphanedRuns = this.detectOrphanedRuns();
20
+ const malformedRuns = this.detectMalformedRuns();
19
21
  const actions = [];
20
22
  const warnings = [];
21
23
  let repairedCount = 0;
@@ -270,6 +272,65 @@ export class InternalizationIntegrityRemediation {
270
272
  }));
271
273
  }
272
274
  }
275
+ // ── 4. Quarantine malformed run rows ────────────────────────────────
276
+ // Schema-invalid historical run rows block runner recovery (resolveStoreRunId
277
+ // and the mark* completion methods tolerate them at runtime, but they stay
278
+ // in the DB forever without this pass). Quarantine is conservative:
279
+ // - mark execution_status='failed' + error_category='storage_unavailable'
280
+ // - NEVER delete the row (preserves audit history)
281
+ // - NEVER mark as succeeded (would forge a successful run)
282
+ // - idempotent: rows already 'failed' are skipped
283
+ for (const mr of malformedRuns) {
284
+ if (mr.currentStatus === 'failed') {
285
+ actions.push(remediationAction({
286
+ action: 'already_repaired',
287
+ targetId: mr.runId,
288
+ taskId: mr.taskId,
289
+ type: 'malformed_run_row',
290
+ severity: 'warning',
291
+ previousState: 'failed',
292
+ nextState: 'failed',
293
+ previousStatus: 'failed',
294
+ newStatus: 'failed',
295
+ recommendedAction: 'already_repaired',
296
+ reason: `Malformed run ${mr.runId} already quarantined (failed). Validation error: ${mr.error}`,
297
+ }));
298
+ skippedCount++;
299
+ continue;
300
+ }
301
+ if (params.dryRun) {
302
+ actions.push(remediationAction({
303
+ action: 'quarantine_malformed_run',
304
+ targetId: mr.runId,
305
+ taskId: mr.taskId,
306
+ type: 'malformed_run_row',
307
+ severity: 'warning',
308
+ previousState: mr.currentStatus ?? 'unknown',
309
+ nextState: 'failed',
310
+ previousStatus: mr.currentStatus ?? 'unknown',
311
+ newStatus: 'failed',
312
+ recommendedAction: 'quarantine_malformed_run',
313
+ reason: `Run ${mr.runId} (task ${mr.taskId}) failed schema validation — would quarantine as failed + storage_unavailable. Error: ${mr.error}`,
314
+ }));
315
+ }
316
+ else {
317
+ this.quarantineMalformedRun(mr.runId, mr.error);
318
+ repairedCount++;
319
+ actions.push(remediationAction({
320
+ action: 'quarantine_malformed_run',
321
+ targetId: mr.runId,
322
+ taskId: mr.taskId,
323
+ type: 'malformed_run_row',
324
+ severity: 'warning',
325
+ previousState: mr.currentStatus ?? 'unknown',
326
+ nextState: 'failed',
327
+ previousStatus: mr.currentStatus ?? 'unknown',
328
+ newStatus: 'failed',
329
+ recommendedAction: 'quarantine_malformed_run',
330
+ reason: `Run ${mr.runId} (task ${mr.taskId}) failed schema validation — quarantined as failed + storage_unavailable. Error: ${mr.error}`,
331
+ }));
332
+ }
333
+ }
273
334
  return createRemediationResult({
274
335
  mode: params.dryRun ? 'dry_run' : 'confirm',
275
336
  repairedCount,
@@ -413,6 +474,45 @@ export class InternalizationIntegrityRemediation {
413
474
  db.close();
414
475
  }
415
476
  }
477
+ /**
478
+ * Detect run rows that fail TypeBox schema validation against
479
+ * RunRecordSchema — the exact failure mode that throws MalformedRunError
480
+ * from SqliteRunStore and historically blocked runner recovery.
481
+ *
482
+ * Detection reuses SqliteRunStore.rowToRecord() (the SAME validation used
483
+ * by production reads — EP-01: no duplicated schema logic that can drift).
484
+ * rowToRecord throws PDRuntimeError{storage_unavailable} for invalid rows;
485
+ * we capture the validation message.
486
+ */
487
+ detectMalformedRuns() {
488
+ const db = new Database(this.dbPath, { readonly: true });
489
+ try {
490
+ const rows = db.prepare('SELECT * FROM runs').all();
491
+ const results = [];
492
+ for (const row of rows) {
493
+ try {
494
+ SqliteRunStore.rowToRecord(row);
495
+ }
496
+ catch (err) {
497
+ // rowToRecord throws PDRuntimeError{storage_unavailable} for invalid rows.
498
+ const runId = typeof row.run_id === 'string' ? row.run_id : String(row.run_id ?? 'unknown');
499
+ const taskId = typeof row.task_id === 'string' ? row.task_id : String(row.task_id ?? 'unknown');
500
+ const executionStatus = typeof row.execution_status === 'string' ? row.execution_status : null;
501
+ const msg = err instanceof Error ? err.message : String(err);
502
+ results.push({
503
+ runId,
504
+ taskId,
505
+ error: msg,
506
+ currentStatus: executionStatus,
507
+ });
508
+ }
509
+ }
510
+ return results;
511
+ }
512
+ finally {
513
+ db.close();
514
+ }
515
+ }
416
516
  // ── State readers ─────────────────────────────────────────────────────
417
517
  // Get current task status from DB
418
518
  getTaskStatus(taskId) {
@@ -496,6 +596,28 @@ export class InternalizationIntegrityRemediation {
496
596
  db.close();
497
597
  }
498
598
  }
599
+ /**
600
+ * Quarantine a schema-malformed run row: mark it failed + storage_unavailable.
601
+ *
602
+ * Conservative by design:
603
+ * - NEVER deletes the row (audit history preserved)
604
+ * - NEVER marks as succeeded (would forge a successful run)
605
+ * - The reason records the validation error so operators can trace root cause
606
+ */
607
+ quarantineMalformedRun(runId, validationError) {
608
+ const db = new Database(this.dbPath);
609
+ try {
610
+ const now = new Date().toISOString();
611
+ db.prepare(`
612
+ UPDATE runs
613
+ SET execution_status = 'failed', ended_at = ?, reason = ?, error_category = ?
614
+ WHERE run_id = ?
615
+ `).run(now, `Malformed run row quarantined by integrity-repair. Validation error: ${validationError}`, 'storage_unavailable', runId);
616
+ }
617
+ finally {
618
+ db.close();
619
+ }
620
+ }
499
621
  // ── Successor helpers (unchanged) ──────────────────────────────────────
500
622
  findExistingSuccessor(dreamerTaskId) {
501
623
  const db = new Database(this.dbPath, { readonly: true });
@@ -1 +1 @@
1
- {"version":3,"file":"internalization-integrity-remediation.js","sourceRoot":"","sources":["../../src/runtime-v2/internalization-integrity-remediation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA6BvF,MAAM,OAAO,mCAAmC;IAC7B,MAAM,CAAS;IAEhC,YAAY,IAAgD;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,MAA2B;QAChC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE/C,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,wEAAwE;QACxE,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;YAChC,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAC7B,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,EAAE,CAAC,MAAM;wBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;wBACjB,IAAI,EAAE,6BAA6B;wBACnC,QAAQ,EAAE,OAAO;wBACjB,aAAa,EAAE,WAAW;wBAC1B,SAAS,EAAE,YAAY;wBACvB,cAAc,EAAE,WAAW;wBAC3B,SAAS,EAAE,YAAY;wBACvB,iBAAiB,EAAE,SAAS;wBAC5B,MAAM,EAAE,yGAAyG;qBAClH,CAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACpD,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;wBAClC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;4BAC7B,MAAM,EAAE,kBAAkB;4BAC1B,QAAQ,EAAE,EAAE,CAAC,MAAM;4BACnB,MAAM,EAAE,EAAE,CAAC,MAAM;4BACjB,IAAI,EAAE,6BAA6B;4BACnC,QAAQ,EAAE,OAAO;4BACjB,aAAa,EAAE,aAAa;4BAC5B,SAAS,EAAE,aAAa;4BACxB,cAAc,EAAE,aAAa;4BAC7B,SAAS,EAAE,aAAa;4BACxB,iBAAiB,EAAE,kBAAkB;4BACrC,MAAM,EAAE,mBAAmB,aAAa,qBAAqB;yBAC9D,CAAC,CAAC,CAAC;wBACJ,YAAY,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC5B,aAAa,EAAE,CAAC;oBAEhB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAC7B,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,EAAE,CAAC,MAAM;wBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;wBACjB,IAAI,EAAE,6BAA6B;wBACnC,QAAQ,EAAE,OAAO;wBACjB,aAAa,EAAE,WAAW;wBAC1B,SAAS,EAAE,YAAY;wBACvB,cAAc,EAAE,WAAW;wBAC3B,SAAS,EAAE,YAAY;wBACvB,iBAAiB,EAAE,SAAS;wBAC5B,MAAM,EAAE,yGAAyG;qBAClH,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAC7B,MAAM,EAAE,uBAAuB;wBAC/B,QAAQ,EAAE,EAAE,CAAC,MAAM;wBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;wBACjB,IAAI,EAAE,+BAA+B;wBACrC,QAAQ,EAAE,SAAS;wBACnB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC;wBAC5C,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC;wBACxC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC;wBAC7C,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC;wBACxC,iBAAiB,EAAE,uBAAuB;wBAC1C,MAAM,EAAE,+FAA+F;qBACxG,CAAC,CAAC,CAAC;oBACJ,YAAY,EAAE,CAAC;gBACjB,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAC7B,MAAM,EAAE,mBAAmB;wBAC3B,QAAQ,EAAE,EAAE,CAAC,MAAM;wBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;wBACjB,IAAI,EAAE,+BAA+B;wBACrC,QAAQ,EAAE,SAAS;wBACnB,aAAa,EAAE,WAAW;wBAC1B,SAAS,EAAE,WAAW;wBACtB,cAAc,EAAE,WAAW;wBAC3B,SAAS,EAAE,WAAW;wBACtB,iBAAiB,EAAE,mBAAmB;wBACtC,MAAM,EAAE,mFAAmF;qBAC5F,CAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBAChE,IAAI,iBAAiB,EAAE,CAAC;wBACtB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;4BAC7B,MAAM,EAAE,kBAAkB;4BAC1B,QAAQ,EAAE,EAAE,CAAC,MAAM;4BACnB,MAAM,EAAE,EAAE,CAAC,MAAM;4BACjB,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,SAAS;4BACnB,aAAa,EAAE,WAAW;4BAC1B,SAAS,EAAE,WAAW;4BACtB,cAAc,EAAE,WAAW;4BAC3B,SAAS,EAAE,WAAW;4BACtB,iBAAiB,EAAE,kBAAkB;4BACrC,MAAM,EAAE,yCAAyC,iBAAiB,EAAE;4BACpE,eAAe,EAAE,iBAAiB;yBACnC,CAAC,CAAC,CAAC;wBACJ,YAAY,EAAE,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;wBACnE,aAAa,EAAE,CAAC;wBAEhB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;4BAC7B,MAAM,EAAE,mBAAmB;4BAC3B,QAAQ,EAAE,EAAE,CAAC,MAAM;4BACnB,MAAM,EAAE,EAAE,CAAC,MAAM;4BACjB,IAAI,EAAE,+BAA+B;4BACrC,QAAQ,EAAE,SAAS;4BACnB,aAAa,EAAE,WAAW;4BAC1B,SAAS,EAAE,WAAW;4BACtB,cAAc,EAAE,WAAW;4BAC3B,SAAS,EAAE,WAAW;4BACtB,iBAAiB,EAAE,mBAAmB;4BACtC,MAAM,EAAE,oCAAoC;4BAC5C,eAAe;yBAChB,CAAC,CAAC,CAAC;oBACN,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC7B,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,EAAE,CAAC,MAAM;oBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,OAAO;oBACjB,aAAa,EAAE,QAAQ;oBACvB,SAAS,EAAE,QAAQ;oBACnB,cAAc,EAAE,QAAQ;oBACxB,SAAS,EAAE,QAAQ;oBACnB,iBAAiB,EAAE,qBAAqB;oBACxC,MAAM,EAAE,yBAAyB,EAAE,CAAC,MAAM,IAAI,gBAAgB,mFAAmF;iBAClJ,CAAC,CAAC,CAAC;gBACJ,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,kFAAkF,CAAC,CAAC;gBACnH,YAAY,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC7B,MAAM,EAAE,oBAAoB;oBAC5B,QAAQ,EAAE,EAAE,CAAC,MAAM;oBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,SAAS;oBACnB,aAAa,EAAE,QAAQ;oBACvB,SAAS,EAAE,SAAS;oBACpB,cAAc,EAAE,QAAQ;oBACxB,SAAS,EAAE,SAAS;oBACpB,iBAAiB,EAAE,oBAAoB;oBACvC,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,8BAA8B,EAAE,CAAC,UAAU,IAAI,SAAS,iEAAiE;iBACnJ,CAAC,CAAC,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAC7B,MAAM,EAAE,kBAAkB;wBAC1B,QAAQ,EAAE,EAAE,CAAC,MAAM;wBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;wBACjB,IAAI,EAAE,aAAa;wBACnB,QAAQ,EAAE,SAAS;wBACnB,aAAa,EAAE,aAAa;wBAC5B,SAAS,EAAE,aAAa;wBACxB,cAAc,EAAE,aAAa;wBAC7B,SAAS,EAAE,aAAa;wBACxB,iBAAiB,EAAE,kBAAkB;wBACrC,MAAM,EAAE,mBAAmB,aAAa,qBAAqB;qBAC9D,CAAC,CAAC,CAAC;oBACJ,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC5C,aAAa,EAAE,CAAC;gBAEhB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC7B,MAAM,EAAE,oBAAoB;oBAC5B,QAAQ,EAAE,EAAE,CAAC,MAAM;oBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,SAAS;oBACnB,aAAa,EAAE,QAAQ;oBACvB,SAAS,EAAE,SAAS;oBACpB,cAAc,EAAE,QAAQ;oBACxB,SAAS,EAAE,SAAS;oBACpB,iBAAiB,EAAE,oBAAoB;oBACvC,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,8BAA8B,EAAE,CAAC,UAAU,IAAI,SAAS,8DAA8D;iBAChJ,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC7B,MAAM,EAAE,iBAAiB;oBACzB,QAAQ,EAAE,EAAE,CAAC,KAAK;oBAClB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,OAAO;oBACjB,aAAa,EAAE,SAAS;oBACxB,SAAS,EAAE,QAAQ;oBACnB,cAAc,EAAE,SAAS;oBACzB,SAAS,EAAE,QAAQ;oBACnB,iBAAiB,EAAE,iBAAiB;oBACpC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,aAAa,EAAE,CAAC,MAAM,oCAAoC,EAAE,CAAC,UAAU,IAAI,MAAM,6BAA6B;iBACtI,CAAC,CAAC,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACrD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAC7B,MAAM,EAAE,kBAAkB;wBAC1B,QAAQ,EAAE,EAAE,CAAC,KAAK;wBAClB,MAAM,EAAE,EAAE,CAAC,MAAM;wBACjB,IAAI,EAAE,mBAAmB;wBACzB,QAAQ,EAAE,SAAS;wBACnB,aAAa,EAAE,gBAAgB;wBAC/B,SAAS,EAAE,gBAAgB;wBAC3B,cAAc,EAAE,gBAAgB;wBAChC,SAAS,EAAE,gBAAgB;wBAC3B,iBAAiB,EAAE,kBAAkB;wBACrC,MAAM,EAAE,kBAAkB,gBAAgB,qBAAqB;qBAChE,CAAC,CAAC,CAAC;oBACJ,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBAChD,aAAa,EAAE,CAAC;gBAEhB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC7B,MAAM,EAAE,iBAAiB;oBACzB,QAAQ,EAAE,EAAE,CAAC,KAAK;oBAClB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,OAAO;oBACjB,aAAa,EAAE,SAAS;oBACxB,SAAS,EAAE,QAAQ;oBACnB,cAAc,EAAE,SAAS;oBACzB,SAAS,EAAE,QAAQ;oBACnB,iBAAiB,EAAE,iBAAiB;oBACpC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,aAAa,EAAE,CAAC,MAAM,mCAAmC,EAAE,CAAC,UAAU,IAAI,MAAM,uCAAuC;iBAC/I,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAED,OAAO,uBAAuB,CAAC;YAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC3C,aAAa;YACb,YAAY;YACZ,OAAO;YACP,QAAQ;YACR,WAAW;YACX,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IAEjE,oBAAoB;QAC1B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,iGAAiG,CAClG,CAAC,GAAG,EAA2D,CAAC;YAEjE,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,0FAA0F,CAC3F,CAAC,GAAG,EAAyD,CAAC;YAE/D,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CACjC,4EAA4E,CAC7E,CAAC,GAAG,EAA2D,CAAC;YAEjE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAExE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BAC3C,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;oBACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACvC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC1C,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAoB,EAAE,CAAC;YAEpC,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,eAAe,GAAG,CAAC,WAAW,CAAC;gBACrC,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAE/D,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,EAAE,CAAC,OAAO;wBAClB,eAAe;wBACf,gBAAgB;wBAChB,WAAW;qBACZ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,kFAAkF,CACnF,CAAC,GAAG,EAAwF,CAAC;YAE9F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAiB,EAAE,CAAC;YAEjC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,CAAC,CAAC,OAAO;wBACjB,UAAU,EAAE,CAAC,CAAC,WAAW;wBACzB,cAAc,EAAE,IAAI;wBACpB,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,iDAAiD;qBAC3E,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;gBACzD,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,CAAC,CAAC,OAAO;wBACjB,UAAU,EAAE,CAAC,CAAC,WAAW;wBACzB,cAAc,EAAE,CAAC,CAAC,gBAAgB;wBAClC,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,oCAAoC,CAAC,CAAC,gBAAgB,kBAAkB;qBAClG,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,CAAC,CAAC,OAAO;wBACjB,UAAU,EAAE,CAAC,CAAC,WAAW;wBACzB,cAAc,EAAE,CAAC,CAAC,gBAAgB;wBAClC,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,kBAAkB;QACxB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,qEAAqE,CACtE,CAAC,GAAG,EAA2C,CAAC;YAEjD,MAAM,OAAO,GAAkB,EAAE,CAAC;YAElC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CACxB,4CAA4C,CAC7C,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAmC,CAAC;gBAErD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,iDAAiD;oBACjD,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,GAAG,CAAC,MAAM;wBACjB,MAAM,EAAE,GAAG,CAAC,OAAO;wBACnB,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACvC,sDAAsD;oBACtD,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,GAAG,CAAC,MAAM;wBACjB,MAAM,EAAE,GAAG,CAAC,OAAO;wBACnB,UAAU,EAAE,IAAI;wBAChB,UAAU,EAAE,OAAO,CAAC,MAAM;qBAC3B,CAAC,CAAC;gBACL,CAAC;gBACD,gEAAgE;YAClE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,yEAAyE;IAEzE,kCAAkC;IAC1B,aAAa,CAAC,MAAc;QAClC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAmC,CAAC;YACnH,OAAO,GAAG,EAAE,MAAM,IAAI,SAAS,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,2CAA2C;IACnC,YAAY,CAAC,KAAa;QAChC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,KAAK,CAA6C,CAAC;YACpI,OAAO,GAAG,EAAE,gBAAgB,IAAI,SAAS,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,yEAAyE;IAEjE,WAAW,CAAC,MAAc;QAChC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,EAAE,CAAC,OAAO,CACR,2KAA2K,CAC5K,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,2BAA2B,CAAC,MAAc;QAChD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC7B,6CAA6C;gBAC7C,EAAE,CAAC,OAAO,CAAC;;;;SAIV,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEf,gCAAgC;gBAChC,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,6GAA6G,CAC9G,CAAC,GAAG,CAAC,MAAM,CAAmC,CAAC;gBAEhD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACrC,EAAE,CAAC,OAAO,CAAC;;;;WAIV,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,mDAAmD,EAAE,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,EAAE,CAAC;QACP,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,KAAa,EAAE,OAAe;QAC1D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,EAAE,CAAC,OAAO,CAAC;;;;OAIV,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,gEAAgE,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,0EAA0E;IAElE,qBAAqB,CAAC,aAAqB;QACjD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CACjC,4EAA4E,CAC7E,CAAC,GAAG,EAA2D,CAAC;YAEjE,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;wBAC3F,OAAO,EAAE,CAAC,OAAO,CAAC;oBACpB,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACvC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,eAAe,GAAG,eAAe,aAAa,SAAS,CAAC;YAC9D,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,eAAe,CAAoC,CAAC;YACnI,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAEO,0BAA0B,CAAC,aAAqB;QACtD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,eAAe,aAAa,SAAS,CAAC;YAE9D,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,uGAAuG,CACxG,CAAC,GAAG,CAAC,aAAa,CAAwC,CAAC;YAE5D,MAAM,QAAQ,GAAG;gBACf,iBAAiB,EAAE,CAAC,aAAa,CAAC;gBAClC,OAAO,EAAE,QAAQ;gBACjB,SAAS,EAAE,OAAO;gBAClB,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBAClG,kBAAkB,EAAE,EAAE;gBACtB,YAAY,EAAE,aAAa;aAC5B,CAAC;YAEF,EAAE,CAAC,OAAO,CACR;4FACoF,CACrF,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEnF,OAAO,eAAe,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"internalization-integrity-remediation.js","sourceRoot":"","sources":["../../src/runtime-v2/internalization-integrity-remediation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Mainline Contract (Runtime Mainline Convergence — load-bearing wall)
3
+ *
4
+ * Single executable source of truth for the Story A' product mainline:
5
+ *
6
+ * pain -> diagnosis -> diagnostician artifact -> candidate
7
+ * -> dreamer task (lineage) -> dreamer context -> successor
8
+ * -> owner-reviewable principle
9
+ *
10
+ * Plus the two runtime-readiness gates that sit *above* the chain and silently
11
+ * break it when they drift: config-source alignment and diagnostician readiness.
12
+ *
13
+ * Design rules (do NOT relax without ADR review):
14
+ * - PURE: no fs, no DB, no network, no Date.now side effects beyond `generatedAt`.
15
+ * The caller assembles a read-only `MainlineSnapshot` from canonical sources;
16
+ * this module only judges it. (Keeps it in principles-core per ADR-0001.)
17
+ * - TOTAL: never throws. Malformed/absent input becomes a `violation` or
18
+ * `skipped` verdict, never an exception.
19
+ * - FAIL LOUD (EP-03): every `violation` carries a concrete `reason` and a
20
+ * `nextAction` an operator can run. No silent degradation.
21
+ * - SAME-SOURCE LINEAGE (EP-07): lineage checks compare fields that must come
22
+ * from one source (candidate.sourceTaskId/sourceArtifactId/sourceRunId vs the
23
+ * diagnosis task / diagnostician artifact that produced them).
24
+ * - ONE TRUTH (EP-02): the integrity read-model, `pd mvp smoke`, the CI
25
+ * product-path test, and the Console chain view must all call THIS function.
26
+ * Do not fork a second copy of these rules.
27
+ */
28
+ /** Stages of the mainline, in evaluation order. Readiness gates first. */
29
+ export type MainlineStage = 'config_source_alignment' | 'diagnostician_readiness' | 'pain_record' | 'diagnosis_task' | 'diagnostician_artifact' | 'candidate_lineage' | 'dreamer_task_lineage' | 'dreamer_context' | 'successor' | 'owner_reviewable_principle' | 'auto_consumption';
30
+ export type StageStatus = 'ok' | 'violation' | 'skipped';
31
+ export interface StageVerdict {
32
+ stage: MainlineStage;
33
+ status: StageStatus;
34
+ /** Always present. For `ok` it states what was satisfied; for `violation`/`skipped` why. */
35
+ reason: string;
36
+ /** Required for `violation`: a concrete operator action. Optional otherwise. */
37
+ nextAction?: string;
38
+ }
39
+ export interface MainlineVerdict {
40
+ overall: 'ok' | 'violation';
41
+ painId: string | null;
42
+ stages: StageVerdict[];
43
+ generatedAt: string;
44
+ }
45
+ export interface ArtifactRefSnapshot {
46
+ artifactType: string;
47
+ ref: string;
48
+ }
49
+ /** Workspace-global readiness, independent of any single chain. */
50
+ export interface RuntimeReadinessSnapshot {
51
+ /** Runtime profile reported by `pd config doctor` (reads .pd/config.yaml). */
52
+ configDoctorProfile: string | null;
53
+ /** Runtime profile actually resolved by run-once/probe at execution time. */
54
+ runtimeProbeProfile: string | null;
55
+ /** Canonical config source path, e.g. ".pd/config.yaml". */
56
+ configSource: string;
57
+ /** Config source the probe/run-once resolver actually read, e.g. ".state/workflows.yaml". */
58
+ probeConfigSource: string;
59
+ /** Whether the diagnostician agent passed its readiness/connectivity probe. */
60
+ diagnosticianReady: boolean;
61
+ diagnosticianReadinessReason?: string;
62
+ }
63
+ export interface DiagnosisTaskSnapshot {
64
+ taskId: string;
65
+ /** Task status string from the task store (e.g. 'succeeded'). */
66
+ status: string;
67
+ /** Whether at least one run for this task has execution_status === 'succeeded'. */
68
+ hasSucceededRun: boolean;
69
+ }
70
+ export interface DiagnosticianArtifactSnapshot {
71
+ artifactId: string;
72
+ /** painId the artifact traces back to; must equal the chain painId. */
73
+ sourcePainId: string | null;
74
+ }
75
+ export interface CandidateSnapshot {
76
+ candidateId: string;
77
+ status: 'pending' | 'consumed' | 'expired';
78
+ /** candidate.taskId — must equal the diagnosis task that produced it. */
79
+ sourceTaskId: string;
80
+ /** candidate.artifactId — must equal the diagnostician artifact. */
81
+ sourceArtifactId: string;
82
+ /** candidate.sourceRunId. */
83
+ sourceRunId: string;
84
+ }
85
+ export interface DreamerTaskSnapshot {
86
+ taskId: string;
87
+ dependencyTaskIds: string[];
88
+ inputArtifactRefs: ArtifactRefSnapshot[];
89
+ /** True only when this dreamer task is an intentional manual empty-input task. */
90
+ isManualEmptyInput?: boolean;
91
+ }
92
+ export interface DreamerContextSnapshot {
93
+ contextHash: string;
94
+ contextRefs: string[];
95
+ }
96
+ export interface SuccessorSnapshot {
97
+ taskId: string;
98
+ taskKind: string;
99
+ exists: boolean;
100
+ }
101
+ export interface OwnerReviewablePrincipleSnapshot {
102
+ exists: boolean;
103
+ principleId?: string;
104
+ reviewable: boolean;
105
+ }
106
+ /** One pain's chain. Any stage not yet reached is `null`. */
107
+ export interface MainlineChainSnapshot {
108
+ painId: string | null;
109
+ diagnosisTask: DiagnosisTaskSnapshot | null;
110
+ diagnosticianArtifact: DiagnosticianArtifactSnapshot | null;
111
+ candidate: CandidateSnapshot | null;
112
+ dreamerTask: DreamerTaskSnapshot | null;
113
+ dreamerContext: DreamerContextSnapshot | null;
114
+ successor: SuccessorSnapshot | null;
115
+ principle: OwnerReviewablePrincipleSnapshot | null;
116
+ }
117
+ export interface MainlineSnapshot {
118
+ readiness: RuntimeReadinessSnapshot;
119
+ chain: MainlineChainSnapshot;
120
+ /**
121
+ * Workspace-level: candidateIds that are `consumed` but have no dreamer task.
122
+ * Surfaces the `missing_dreamer_task` auto-consumption hole. Optional.
123
+ */
124
+ consumedCandidatesMissingDreamer?: string[];
125
+ }
126
+ /** Sentinel contextHash produced by hashing an empty contextRefs list. */
127
+ export declare const EMPTY_CONTEXT_SENTINEL = "empty";
128
+ /**
129
+ * Judge a single mainline snapshot. Pure and total.
130
+ *
131
+ * Readiness gates (config alignment, diagnostician readiness) and the
132
+ * workspace-level auto-consumption check always evaluate. Chain stages cascade:
133
+ * once a chain prerequisite is a `violation`, downstream chain stages become
134
+ * `skipped` so the output names one actionable root cause instead of a misleading
135
+ * cascade of violations.
136
+ */
137
+ export declare function assertMainlineContract(snapshot: MainlineSnapshot, now?: () => Date): MainlineVerdict;
138
+ //# sourceMappingURL=mainline-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainline-contract.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/mainline-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Mainline Contract (Runtime Mainline Convergence — load-bearing wall)
3
+ *
4
+ * Single executable source of truth for the Story A' product mainline:
5
+ *
6
+ * pain -> diagnosis -> diagnostician artifact -> candidate
7
+ * -> dreamer task (lineage) -> dreamer context -> successor
8
+ * -> owner-reviewable principle
9
+ *
10
+ * Plus the two runtime-readiness gates that sit *above* the chain and silently
11
+ * break it when they drift: config-source alignment and diagnostician readiness.
12
+ *
13
+ * Design rules (do NOT relax without ADR review):
14
+ * - PURE: no fs, no DB, no network, no Date.now side effects beyond `generatedAt`.
15
+ * The caller assembles a read-only `MainlineSnapshot` from canonical sources;
16
+ * this module only judges it. (Keeps it in principles-core per ADR-0001.)
17
+ * - TOTAL: never throws. Malformed/absent input becomes a `violation` or
18
+ * `skipped` verdict, never an exception.
19
+ * - FAIL LOUD (EP-03): every `violation` carries a concrete `reason` and a
20
+ * `nextAction` an operator can run. No silent degradation.
21
+ * - SAME-SOURCE LINEAGE (EP-07): lineage checks compare fields that must come
22
+ * from one source (candidate.sourceTaskId/sourceArtifactId/sourceRunId vs the
23
+ * diagnosis task / diagnostician artifact that produced them).
24
+ * - ONE TRUTH (EP-02): the integrity read-model, `pd mvp smoke`, the CI
25
+ * product-path test, and the Console chain view must all call THIS function.
26
+ * Do not fork a second copy of these rules.
27
+ */
28
+ /** Sentinel contextHash produced by hashing an empty contextRefs list. */
29
+ export const EMPTY_CONTEXT_SENTINEL = 'empty';
30
+ // ── Validator ───────────────────────────────────────────────────────────────
31
+ function ok(stage, reason) {
32
+ return { stage, status: 'ok', reason };
33
+ }
34
+ function violation(stage, reason, nextAction) {
35
+ return { stage, status: 'violation', reason, nextAction };
36
+ }
37
+ function skipped(stage, upstream) {
38
+ return {
39
+ stage,
40
+ status: 'skipped',
41
+ reason: `Upstream stage "${upstream}" not satisfied — cannot evaluate.`,
42
+ };
43
+ }
44
+ function nonEmpty(value) {
45
+ return typeof value === 'string' && value.trim() !== '';
46
+ }
47
+ /**
48
+ * Judge a single mainline snapshot. Pure and total.
49
+ *
50
+ * Readiness gates (config alignment, diagnostician readiness) and the
51
+ * workspace-level auto-consumption check always evaluate. Chain stages cascade:
52
+ * once a chain prerequisite is a `violation`, downstream chain stages become
53
+ * `skipped` so the output names one actionable root cause instead of a misleading
54
+ * cascade of violations.
55
+ */
56
+ export function assertMainlineContract(snapshot, now = () => new Date()) {
57
+ const stages = [];
58
+ const { readiness, chain } = snapshot;
59
+ // ── Readiness gate 1: config-source alignment (EP-07) ──────────────────────
60
+ if (!nonEmpty(readiness.configDoctorProfile) || !nonEmpty(readiness.runtimeProbeProfile)) {
61
+ stages.push(violation('config_source_alignment', `Cannot confirm runtime profile: doctor=${readiness.configDoctorProfile ?? 'null'}, probe=${readiness.runtimeProbeProfile ?? 'null'}.`, `Run "pd config doctor" and "pd runtime probe" in the same workspace and ensure both resolve a profile from ${readiness.configSource}.`));
62
+ }
63
+ else if (readiness.configDoctorProfile !== readiness.runtimeProbeProfile) {
64
+ stages.push(violation('config_source_alignment', `Config drift: doctor reports "${readiness.configDoctorProfile}" from ${readiness.configSource} but probe/run-once resolved "${readiness.runtimeProbeProfile}" from ${readiness.probeConfigSource}.`, `Unify the runtime resolver onto ${readiness.configSource} (PRI-306 resolveRuntimeConfigFromPdConfig); demote ${readiness.probeConfigSource} to a legacy warning.`));
65
+ }
66
+ else if (readiness.probeConfigSource !== readiness.configSource) {
67
+ stages.push(violation('config_source_alignment', `Profiles match ("${readiness.configDoctorProfile}") but probe read from ${readiness.probeConfigSource}, not the canonical ${readiness.configSource} — match is coincidental and will drift.`, `Point run-once/probe at ${readiness.configSource} so the match is structural, not accidental.`));
68
+ }
69
+ else {
70
+ stages.push(ok('config_source_alignment', `doctor and probe agree on "${readiness.configDoctorProfile}" from ${readiness.configSource}.`));
71
+ }
72
+ // ── Readiness gate 2: diagnostician readiness ──────────────────────────────
73
+ if (readiness.diagnosticianReady) {
74
+ stages.push(ok('diagnostician_readiness', 'Diagnostician passed readiness probe.'));
75
+ }
76
+ else {
77
+ stages.push(violation('diagnostician_readiness', `Diagnostician not ready: ${readiness.diagnosticianReadinessReason ?? 'unknown reason'}.`, 'Run "pd runtime probe" to verify provider connectivity; the chain cannot produce candidates until the diagnostician is ready.'));
78
+ }
79
+ // ── Chain stages (cascade) ─────────────────────────────────────────────────
80
+ let blocked = null;
81
+ // 1. pain_record
82
+ if (nonEmpty(chain.painId)) {
83
+ stages.push(ok('pain_record', `Canonical painId "${chain.painId}" present.`));
84
+ }
85
+ else {
86
+ stages.push(violation('pain_record', 'No canonical painId on the chain.', 'Record behavior evidence via the pain intake path before evaluating the chain.'));
87
+ blocked = 'pain_record';
88
+ }
89
+ // 2. diagnosis_task
90
+ if (blocked) {
91
+ stages.push(skipped('diagnosis_task', blocked));
92
+ }
93
+ else if (!chain.diagnosisTask) {
94
+ stages.push(violation('diagnosis_task', `No diagnosis task linked to pain "${chain.painId}".`, 'Run "pd diagnose" / pain-retry for this pain to create a diagnosis task.'));
95
+ blocked = 'diagnosis_task';
96
+ }
97
+ else if (chain.diagnosisTask.status !== 'succeeded' || !chain.diagnosisTask.hasSucceededRun) {
98
+ stages.push(violation('diagnosis_task', `Diagnosis task ${chain.diagnosisTask.taskId} status="${chain.diagnosisTask.status}", hasSucceededRun=${chain.diagnosisTask.hasSucceededRun} (task_succeeded_no_succeeded_run if succeeded without a run).`, `Run "pd runtime internalization integrity-repair --confirm" to reconcile task/run state for ${chain.diagnosisTask.taskId}, or re-run the diagnosis.`));
99
+ blocked = 'diagnosis_task';
100
+ }
101
+ else {
102
+ stages.push(ok('diagnosis_task', `Diagnosis task ${chain.diagnosisTask.taskId} succeeded with a succeeded run.`));
103
+ }
104
+ // 3. diagnostician_artifact
105
+ if (blocked) {
106
+ stages.push(skipped('diagnostician_artifact', blocked));
107
+ }
108
+ else if (!chain.diagnosticianArtifact) {
109
+ stages.push(violation('diagnostician_artifact', 'Diagnosis task succeeded but no diagnostician artifact found.', 'Inspect the diagnosis task output; re-run diagnosis if the artifact is missing.'));
110
+ blocked = 'diagnostician_artifact';
111
+ }
112
+ else if (chain.diagnosticianArtifact.sourcePainId !== chain.painId) {
113
+ stages.push(violation('diagnostician_artifact', `Artifact ${chain.diagnosticianArtifact.artifactId} traces to painId "${chain.diagnosticianArtifact.sourcePainId ?? 'null'}", not the chain pain "${chain.painId}".`, 'Fix artifact lineage so sourcePainId matches the originating pain (EP-07 same-source rule).'));
114
+ blocked = 'diagnostician_artifact';
115
+ }
116
+ else {
117
+ stages.push(ok('diagnostician_artifact', `Artifact ${chain.diagnosticianArtifact.artifactId} traces to pain "${chain.painId}".`));
118
+ }
119
+ // 4. candidate_lineage
120
+ if (blocked) {
121
+ stages.push(skipped('candidate_lineage', blocked));
122
+ }
123
+ else if (!chain.candidate) {
124
+ stages.push(violation('candidate_lineage', 'Diagnostician artifact present but produced no candidate.', 'Verify candidate intake (CandidateIntakeService) ran for this artifact.'));
125
+ blocked = 'candidate_lineage';
126
+ }
127
+ else {
128
+ const c = chain.candidate;
129
+ const diagTaskId = chain.diagnosisTask?.taskId;
130
+ const artId = chain.diagnosticianArtifact?.artifactId;
131
+ if (!nonEmpty(c.sourceTaskId) || !nonEmpty(c.sourceArtifactId) || !nonEmpty(c.sourceRunId)) {
132
+ stages.push(violation('candidate_lineage', `Candidate ${c.candidateId} missing lineage (taskId/artifactId/sourceRunId).`, 'Ensure the candidate store row carries sourceTaskId/sourceArtifactId/sourceRunId.'));
133
+ blocked = 'candidate_lineage';
134
+ }
135
+ else if (c.sourceTaskId !== diagTaskId || c.sourceArtifactId !== artId) {
136
+ stages.push(violation('candidate_lineage', `Candidate ${c.candidateId} lineage mismatch: sourceTaskId=${c.sourceTaskId} (expected ${diagTaskId}), sourceArtifactId=${c.sourceArtifactId} (expected ${artId}).`, 'Lineage fields must come from the diagnosis task/artifact that produced the candidate (EP-07).'));
137
+ blocked = 'candidate_lineage';
138
+ }
139
+ else {
140
+ stages.push(ok('candidate_lineage', `Candidate ${c.candidateId} carries consistent lineage to ${diagTaskId}/${artId}.`));
141
+ }
142
+ }
143
+ // 5. dreamer_task_lineage — the current production bug
144
+ if (blocked) {
145
+ stages.push(skipped('dreamer_task_lineage', blocked));
146
+ }
147
+ else if (!chain.dreamerTask) {
148
+ const consumedHole = chain.candidate?.status === 'consumed';
149
+ stages.push(violation('dreamer_task_lineage', `Candidate ${chain.candidate?.candidateId} has no dreamer task${consumedHole ? ' (consumed but no successor — auto-consumption hole)' : ''}.`, `Run "pd candidate internalize --candidate-id ${chain.candidate?.candidateId}" or fix the auto-consumer so it seeds a dreamer task.`));
150
+ blocked = 'dreamer_task_lineage';
151
+ }
152
+ else {
153
+ const dt = chain.dreamerTask;
154
+ const expectedDep = chain.candidate?.sourceTaskId;
155
+ const expectedArtifact = chain.candidate?.sourceArtifactId;
156
+ const hasDep = !!expectedDep && dt.dependencyTaskIds.includes(expectedDep);
157
+ const hasArtifactRef = !!expectedArtifact && dt.inputArtifactRefs.some((r) => r.artifactType === 'diagnostician_output' && r.ref === `artifact://${expectedArtifact}`);
158
+ if (!hasDep) {
159
+ stages.push(violation('dreamer_task_lineage', `Dreamer task ${dt.taskId} dependencyTaskIds=${JSON.stringify(dt.dependencyTaskIds)} does not include diagnosis task "${expectedDep}" — diagnosis context is severed.`, 'Fix the intake bridge to set dependencyTaskIds=[candidate.sourceTaskId] (PRI-B). This is what makes dreamer contextRefs non-empty.'));
160
+ blocked = 'dreamer_task_lineage';
161
+ }
162
+ else if (!hasArtifactRef) {
163
+ stages.push(violation('dreamer_task_lineage', `Dreamer task ${dt.taskId} inputArtifactRefs do not reference the diagnostician artifact "${expectedArtifact}".`, 'Fix the intake bridge to set a real artifact ref instead of "candidate://<id>" (PRI-B).'));
164
+ blocked = 'dreamer_task_lineage';
165
+ }
166
+ else {
167
+ stages.push(ok('dreamer_task_lineage', `Dreamer task ${dt.taskId} depends on diagnosis task ${expectedDep} and references artifact ${expectedArtifact}.`));
168
+ }
169
+ }
170
+ // 6. dreamer_context
171
+ if (blocked) {
172
+ stages.push(skipped('dreamer_context', blocked));
173
+ }
174
+ else if (!chain.dreamerContext) {
175
+ stages.push(violation('dreamer_context', 'Dreamer task present but no context was built.', 'Run the dreamer once and capture its DreamerContext.'));
176
+ blocked = 'dreamer_context';
177
+ }
178
+ else {
179
+ const ctx = chain.dreamerContext;
180
+ const isEmpty = ctx.contextRefs.length === 0 || ctx.contextHash === EMPTY_CONTEXT_SENTINEL;
181
+ if (isEmpty) {
182
+ stages.push(violation('dreamer_context', `Dreamer context is empty (contextHash="${ctx.contextHash}", contextRefs=${ctx.contextRefs.length}) — not grounded in the diagnosis chain.`, 'Root cause is upstream lineage (PRI-B): once dependencyTaskIds includes the diagnosis task, buildContext will populate contextRefs.'));
183
+ blocked = 'dreamer_context';
184
+ }
185
+ else {
186
+ stages.push(ok('dreamer_context', `Dreamer context grounded: ${ctx.contextRefs.length} contextRefs, hash ${ctx.contextHash}.`));
187
+ }
188
+ }
189
+ // 7. successor (philosopher)
190
+ if (blocked) {
191
+ stages.push(skipped('successor', blocked));
192
+ }
193
+ else if (!chain.successor || !chain.successor.exists) {
194
+ stages.push(violation('successor', 'Dreamer context grounded but no successor task created.', 'Ensure the philosopher successor is seeded after the dreamer succeeds.'));
195
+ blocked = 'successor';
196
+ }
197
+ else {
198
+ stages.push(ok('successor', `Successor ${chain.successor.taskId} (${chain.successor.taskKind}) exists.`));
199
+ }
200
+ // 8. owner_reviewable_principle
201
+ if (blocked) {
202
+ stages.push(skipped('owner_reviewable_principle', blocked));
203
+ }
204
+ else if (!chain.principle || !chain.principle.exists) {
205
+ stages.push(violation('owner_reviewable_principle', 'Chain reached successor but produced no principle.', 'Run the scribe/philosopher chain to emit a reviewable principle.'));
206
+ }
207
+ else if (!chain.principle.reviewable) {
208
+ stages.push(violation('owner_reviewable_principle', `Principle ${chain.principle.principleId ?? '(unknown)'} exists but is not owner-reviewable.`, 'Surface the principle in the owner review queue / Console.'));
209
+ }
210
+ else {
211
+ stages.push(ok('owner_reviewable_principle', `Principle ${chain.principle.principleId ?? '(unknown)'} is owner-reviewable.`));
212
+ }
213
+ // ── Workspace-level: auto-consumption hole (always evaluated) ───────────────
214
+ const orphans = snapshot.consumedCandidatesMissingDreamer ?? [];
215
+ if (orphans.length === 0) {
216
+ stages.push(ok('auto_consumption', 'No consumed candidates are missing a dreamer task.'));
217
+ }
218
+ else {
219
+ stages.push(violation('auto_consumption', `${orphans.length} consumed candidate(s) have no dreamer task: ${orphans.slice(0, 5).join(', ')}${orphans.length > 5 ? ', …' : ''}.`, `Run "pd candidate internalize --candidate-id <id>" for each, and fix the auto-consumer so consumption always seeds a dreamer task.`));
220
+ }
221
+ const overall = stages.some((s) => s.status === 'violation') ? 'violation' : 'ok';
222
+ return { overall, painId: chain.painId, stages, generatedAt: now().toISOString() };
223
+ }
224
+ //# sourceMappingURL=mainline-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainline-contract.js","sourceRoot":"","sources":["../../src/runtime-v2/mainline-contract.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,14 @@ function createMockDeps(overrides) {
102
102
  }),
103
103
  getTask: vi.fn().mockResolvedValue(null),
104
104
  getRunsByTask: vi.fn().mockResolvedValue([{ runId: 'run-001' }]),
105
+ // resolveStoreRunId now reads via the tolerant accessor so malformed
106
+ // historical runs don't block the runner. The mock provides a clean
107
+ // (no degraded) result; malformed-row tolerance is covered by the
108
+ // dedicated runtime-state-manager-malformed-run-tolerance integration test.
109
+ getValidRunsByTaskTolerant: vi.fn().mockResolvedValue({
110
+ runs: [{ runId: 'run-001' }],
111
+ degradedRuns: [],
112
+ }),
105
113
  getRetryPolicy: vi.fn().mockReturnValue({
106
114
  shouldRetry: vi.fn().mockReturnValue(false),
107
115
  }),