@patronage/software-factory 1.0.0-alpha.2 → 1.0.0-alpha.20

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/schemas.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { z } from "zod";
2
-
3
2
  //#region src/demand-waiver.d.ts
4
3
  /**
5
4
  * A demand that was in force, was NOT met, and was waived by the operator.
@@ -113,6 +112,33 @@ interface FollowUpAction {
113
112
  declare const DIFF_CLASSIFICATIONS: readonly ["docs/process-only", "trivial", "non-trivial"];
114
113
  type DiffClassification = (typeof DIFF_CLASSIFICATIONS)[number];
115
114
  //#endregion
115
+ //#region src/impact-stamp.d.ts
116
+ /**
117
+ * The recorded stamp. `targets` satisfies the completeness invariant: every
118
+ * target the profile declares is present, each with its exact basis — never
119
+ * silently absent. `basis: "conservative"` means an unmodelled or unprovable
120
+ * input widened every target to full impact.
121
+ */
122
+ declare const impactStampSchema: z.ZodObject<{
123
+ basis: z.ZodEnum<{
124
+ "target-scoped": "target-scoped";
125
+ conservative: "conservative";
126
+ }>;
127
+ inertPaths: z.ZodDefault<z.ZodArray<z.ZodString>>;
128
+ reasons: z.ZodArray<z.ZodString>;
129
+ stampVersion: z.ZodLiteral<3>;
130
+ targets: z.ZodArray<z.ZodObject<{
131
+ basis: z.ZodString;
132
+ impact: z.ZodEnum<{
133
+ affected: "affected";
134
+ "not-affected": "not-affected";
135
+ }>;
136
+ name: z.ZodString;
137
+ }, z.core.$strip>>;
138
+ unsubscribedPaths: z.ZodArray<z.ZodString>;
139
+ }, z.core.$strip>;
140
+ type ImpactStamp = z.infer<typeof impactStampSchema>;
141
+ //#endregion
116
142
  //#region src/pr-verify-mode.d.ts
117
143
  /**
118
144
  * The verification mode `pr:verify` resolved for a run.
@@ -417,6 +443,188 @@ type ReadinessRepair = z.infer<typeof readinessRepairSchema>;
417
443
  type ReadinessStatus = "ready" | "blocked";
418
444
  type ManagedReadinessLedger = z.infer<typeof managedReadinessLedgerSchema>;
419
445
  //#endregion
446
+ //#region src/pr-verify-proof-contract.d.ts
447
+ declare const SUPPORTED_PR_VERIFY_SCHEMA_VERSIONS: readonly [1, 2, 3, 4];
448
+ type PrVerifySchemaVersion = (typeof SUPPORTED_PR_VERIFY_SCHEMA_VERSIONS)[number];
449
+ interface PrVerifyCommandResult {
450
+ command: string;
451
+ description: string;
452
+ /**
453
+ * Epic #550 wave 3 (#430): the profile's declared impact target for this
454
+ * command, recorded from v4 on. It is the proof's own command→target
455
+ * mapping: a `notRequiredCommands` entry must name the target recorded HERE
456
+ * for the same command, so a withholding cannot point at whichever released
457
+ * target happens to be convenient. Absent for a command the profile does
458
+ * not scope, and for v1–v3 proofs, which predate the field.
459
+ */
460
+ impactTarget?: string;
461
+ name: string;
462
+ scope: "always" | "docs-only" | "trivial" | "full";
463
+ }
464
+ interface PrVerifyExecutedCommand {
465
+ command: string;
466
+ counts?: {
467
+ testFiles?: number;
468
+ tests?: number;
469
+ };
470
+ durationMs: number;
471
+ exitCode: number;
472
+ name: string;
473
+ scope: "always" | "docs-only" | "trivial" | "full";
474
+ }
475
+ /**
476
+ * Epic #550 wave 3 (#430): a verification command the impact stamp proved this
477
+ * candidate cannot reach, so the battery did not run it.
478
+ *
479
+ * The completeness invariant lives in the pairing: `verificationCommands`
480
+ * records every command the resolved mode selected, `executedCommands` records
481
+ * what ran, and this list records the rest WITH the stamp's own basis. A
482
+ * withheld stack is therefore never silently absent from the proof — it is
483
+ * present, named, and explained.
484
+ */
485
+ interface PrVerifyNotRequiredCommand {
486
+ basis: string;
487
+ impactTarget: string;
488
+ name: string;
489
+ }
490
+ /**
491
+ * Epic #758 (#762): a consumer package a stamp-scoped selection skipped, and
492
+ * why. Bound to the proof's stamp identity — the field is v4-only (the same
493
+ * window that can carry `impactStamp`) and refused when the proof records no
494
+ * stamp. The factory does not write this list; consumers do.
495
+ */
496
+ interface PrVerifyNotDemandedRecord {
497
+ basis: string;
498
+ name: string;
499
+ }
500
+ interface PrVerifyProof {
501
+ schemaVersion: PrVerifySchemaVersion;
502
+ authoringSession?: string;
503
+ base: string;
504
+ baselineFullProofs?: {
505
+ base: string;
506
+ changedFiles: string[];
507
+ headSha: string;
508
+ profilePath: string;
509
+ projectKey: string;
510
+ repository: string;
511
+ }[];
512
+ changedFiles: string[];
513
+ classification: DiffClassification;
514
+ classificationReasons: string[];
515
+ command: "patronage-factory pr:verify";
516
+ durationMs: number;
517
+ endedAt: string;
518
+ executedCommands?: PrVerifyExecutedCommand[];
519
+ headSha: string;
520
+ impactStamp?: ImpactStamp;
521
+ mode: ResolvedPrVerifyMode;
522
+ mergeBaseSha?: string;
523
+ notDemandedRecords?: PrVerifyNotDemandedRecord[];
524
+ notRequiredCommands?: PrVerifyNotRequiredCommand[];
525
+ outcome?: "aborted" | "passed";
526
+ patchId?: string;
527
+ profilePath: string;
528
+ projectKey: string;
529
+ repository: string;
530
+ startedAt: string;
531
+ verificationCommands: PrVerifyCommandResult[];
532
+ }
533
+ declare const prVerifyProofSchema: z.ZodObject<{
534
+ authoringSession: z.ZodOptional<z.ZodString>;
535
+ base: z.ZodString;
536
+ baselineFullProofs: z.ZodOptional<z.ZodArray<z.ZodObject<{
537
+ base: z.ZodString;
538
+ changedFiles: z.ZodArray<z.ZodString>;
539
+ headSha: z.ZodString;
540
+ profilePath: z.ZodString;
541
+ projectKey: z.ZodString;
542
+ repository: z.ZodString;
543
+ }, z.core.$strip>>>;
544
+ changedFiles: z.ZodArray<z.ZodString>;
545
+ classification: z.ZodEnum<{
546
+ "docs/process-only": "docs/process-only";
547
+ trivial: "trivial";
548
+ "non-trivial": "non-trivial";
549
+ }>;
550
+ classificationReasons: z.ZodArray<z.ZodString>;
551
+ command: z.ZodLiteral<"patronage-factory pr:verify">;
552
+ durationMs: z.ZodNumber;
553
+ endedAt: z.ZodISODateTime;
554
+ executedCommands: z.ZodOptional<z.ZodArray<z.ZodObject<{
555
+ command: z.ZodString;
556
+ counts: z.ZodOptional<z.ZodObject<{
557
+ testFiles: z.ZodOptional<z.ZodNumber>;
558
+ tests: z.ZodOptional<z.ZodNumber>;
559
+ }, z.core.$strip>>;
560
+ durationMs: z.ZodNumber;
561
+ exitCode: z.ZodNumber;
562
+ name: z.ZodString;
563
+ scope: z.ZodEnum<{
564
+ trivial: "trivial";
565
+ always: "always";
566
+ "docs-only": "docs-only";
567
+ full: "full";
568
+ }>;
569
+ }, z.core.$strip>>>;
570
+ headSha: z.ZodString;
571
+ impactStamp: z.ZodOptional<z.ZodObject<{
572
+ basis: z.ZodEnum<{
573
+ "target-scoped": "target-scoped";
574
+ conservative: "conservative";
575
+ }>;
576
+ inertPaths: z.ZodDefault<z.ZodArray<z.ZodString>>;
577
+ reasons: z.ZodArray<z.ZodString>;
578
+ stampVersion: z.ZodLiteral<3>;
579
+ targets: z.ZodArray<z.ZodObject<{
580
+ basis: z.ZodString;
581
+ impact: z.ZodEnum<{
582
+ affected: "affected";
583
+ "not-affected": "not-affected";
584
+ }>;
585
+ name: z.ZodString;
586
+ }, z.core.$strip>>;
587
+ unsubscribedPaths: z.ZodArray<z.ZodString>;
588
+ }, z.core.$strip>>;
589
+ mergeBaseSha: z.ZodOptional<z.ZodString>;
590
+ mode: z.ZodEnum<{
591
+ trivial: "trivial";
592
+ "docs-only": "docs-only";
593
+ full: "full";
594
+ }>;
595
+ notDemandedRecords: z.ZodOptional<z.ZodArray<z.ZodObject<{
596
+ basis: z.ZodString;
597
+ name: z.ZodString;
598
+ }, z.core.$strip>>>;
599
+ notRequiredCommands: z.ZodOptional<z.ZodArray<z.ZodObject<{
600
+ basis: z.ZodString;
601
+ impactTarget: z.ZodString;
602
+ name: z.ZodString;
603
+ }, z.core.$strip>>>;
604
+ outcome: z.ZodOptional<z.ZodEnum<{
605
+ passed: "passed";
606
+ aborted: "aborted";
607
+ }>>;
608
+ patchId: z.ZodOptional<z.ZodString>;
609
+ profilePath: z.ZodString;
610
+ projectKey: z.ZodString;
611
+ repository: z.ZodString;
612
+ schemaVersion: z.ZodNumber & z.ZodType<1 | 2 | 3 | 4, number, z.core.$ZodTypeInternals<1 | 2 | 3 | 4, number>>;
613
+ startedAt: z.ZodISODateTime;
614
+ verificationCommands: z.ZodArray<z.ZodObject<{
615
+ command: z.ZodString;
616
+ description: z.ZodString;
617
+ impactTarget: z.ZodOptional<z.ZodString>;
618
+ name: z.ZodString;
619
+ scope: z.ZodEnum<{
620
+ trivial: "trivial";
621
+ always: "always";
622
+ "docs-only": "docs-only";
623
+ full: "full";
624
+ }>;
625
+ }, z.core.$strip>>;
626
+ }, z.core.$strip>;
627
+ //#endregion
420
628
  //#region src/pr-ready.d.ts
421
629
  interface PrReadyProof {
422
630
  schemaVersion: 3;
@@ -484,31 +692,6 @@ interface PrReadyProof {
484
692
  waivedDemands?: WaivedDemand[];
485
693
  }
486
694
  //#endregion
487
- //#region src/impact-stamp.d.ts
488
- /**
489
- * The recorded stamp. `targets` satisfies the completeness invariant: every
490
- * target the profile declares is present, each with its exact basis — never
491
- * silently absent. `basis: "conservative"` means an unmodelled or unprovable
492
- * input widened every target to full impact.
493
- */
494
- declare const impactStampSchema: z.ZodObject<{
495
- basis: z.ZodEnum<{
496
- "target-scoped": "target-scoped";
497
- conservative: "conservative";
498
- }>;
499
- reasons: z.ZodArray<z.ZodString>;
500
- stampVersion: z.ZodLiteral<2>;
501
- targets: z.ZodArray<z.ZodObject<{
502
- basis: z.ZodString;
503
- impact: z.ZodEnum<{
504
- affected: "affected";
505
- "not-affected": "not-affected";
506
- }>;
507
- name: z.ZodString;
508
- }, z.core.$strip>>;
509
- }, z.core.$strip>;
510
- type ImpactStamp = z.infer<typeof impactStampSchema>;
511
- //#endregion
512
695
  //#region src/pr-readiness/external-evidence.d.ts
513
696
  declare const evidenceEnvelopeBaseSchema: z.ZodObject<{
514
697
  check: z.ZodString;
@@ -539,112 +722,14 @@ declare const evidenceEnvelopeBaseSchema: z.ZodObject<{
539
722
  }, z.core.$loose>;
540
723
  type EvidenceEnvelope = z.infer<typeof evidenceEnvelopeBaseSchema>;
541
724
  //#endregion
542
- //#region src/pr-readiness/verification-proof.d.ts
543
- declare const SUPPORTED_PR_VERIFY_SCHEMA_VERSIONS$1: readonly [1, 2, 3, 4];
544
- type PrVerifySchemaVersion = (typeof SUPPORTED_PR_VERIFY_SCHEMA_VERSIONS$1)[number];
545
- interface PrVerifyCommandResult {
546
- command: string;
547
- description: string;
548
- /**
549
- * Epic #550 wave 3 (#430): the profile's declared impact target for this
550
- * command, recorded from v4 on. It is the proof's own command→target
551
- * mapping: a `notRequiredCommands` entry must name the target recorded HERE
552
- * for the same command, so a withholding cannot point at whichever released
553
- * target happens to be convenient. Absent for a command the profile does
554
- * not scope, and for v1–v3 proofs, which predate the field.
555
- */
556
- impactTarget?: string;
557
- name: string;
558
- scope: "always" | "docs-only" | "trivial" | "full";
559
- }
560
- interface PrVerifyExecutedCommand {
561
- command: string;
562
- counts?: {
563
- testFiles?: number;
564
- tests?: number;
565
- };
566
- durationMs: number;
567
- exitCode: number;
568
- name: string;
569
- scope: "always" | "docs-only" | "trivial" | "full";
570
- }
571
- /**
572
- * Epic #550 wave 3 (#430): a verification command the impact stamp proved this
573
- * candidate cannot reach, so the battery did not run it.
574
- *
575
- * The completeness invariant lives in the pairing: `verificationCommands`
576
- * records every command the resolved mode selected, `executedCommands` records
577
- * what ran, and this list records the rest WITH the stamp's own basis. A
578
- * withheld stack is therefore never silently absent from the proof — it is
579
- * present, named, and explained.
580
- */
581
- interface PrVerifyNotRequiredCommand {
582
- basis: string;
583
- impactTarget: string;
584
- name: string;
585
- }
586
- interface PrVerifyProof {
587
- schemaVersion: PrVerifySchemaVersion;
588
- authoringSession?: string;
589
- base: string;
590
- baselineFullProofs?: {
591
- base: string;
592
- changedFiles: string[];
593
- headSha: string;
594
- profilePath: string;
595
- projectKey: string;
596
- repository: string;
597
- }[];
598
- changedFiles: string[];
599
- classification: DiffClassification;
600
- classificationReasons: string[];
601
- command: "patronage-factory pr:verify";
602
- durationMs: number;
603
- endedAt: string;
604
- executedCommands?: PrVerifyExecutedCommand[];
605
- headSha: string;
606
- impactStamp?: ImpactStamp;
607
- mode: ResolvedPrVerifyMode;
608
- mergeBaseSha?: string;
609
- notRequiredCommands?: PrVerifyNotRequiredCommand[];
610
- outcome?: "aborted" | "passed";
611
- patchId?: string;
612
- profilePath: string;
613
- projectKey: string;
614
- repository: string;
615
- startedAt: string;
616
- verificationCommands: PrVerifyCommandResult[];
617
- }
618
- //#endregion
619
725
  //#region src/closeout-artifact.d.ts
620
- /** Current writer plus retained reader versions accepted at ingest. */
621
- declare const SUPPORTED_CLOSEOUT_SCHEMA_VERSIONS: readonly [3, 4];
726
+ /** Artifact versions accepted at ingest. */
727
+ declare const SUPPORTED_CLOSEOUT_SCHEMA_VERSIONS: readonly [5];
622
728
  /** Strict, bounded runtime transport contract emitted by factory:closeout. */
623
729
  declare const closeoutArtifactSchema: z.ZodObject<{
624
- boundaryThermo: z.ZodObject<{
625
- owner: z.ZodString;
626
- runs: z.ZodNumber;
627
- waived: z.ZodBoolean;
628
- waiverRationale: z.ZodOptional<z.ZodString>;
629
- }, z.core.$strict>;
630
730
  budget: z.ZodObject<{
631
731
  note: z.ZodString;
632
732
  tier: z.ZodLiteral<"overseer">;
633
- }, z.core.$strict> | z.ZodObject<{
634
- interiorSourcesConsumed: z.ZodNumber;
635
- note: z.ZodString;
636
- scoping: z.ZodOptional<z.ZodObject<{
637
- epic: z.ZodString;
638
- issueFilter: z.ZodOptional<z.ZodNumber>;
639
- prFilter: z.ZodOptional<z.ZodNumber>;
640
- repo: z.ZodString;
641
- scopedByEpicIssueSet: z.ZodBoolean;
642
- window: z.ZodObject<{
643
- from: z.ZodString;
644
- to: z.ZodString;
645
- }, z.core.$strict>;
646
- }, z.core.$strict>>;
647
- tier: z.ZodLiteral<"overseer">;
648
733
  }, z.core.$strict>;
649
734
  couldNotSee: z.ZodArray<z.ZodObject<{
650
735
  id: z.ZodString;
@@ -653,82 +738,12 @@ declare const closeoutArtifactSchema: z.ZodObject<{
653
738
  }, z.core.$strict>>;
654
739
  epic: z.ZodString;
655
740
  generatedAt: z.ZodISODateTime;
656
- ledgerRows: z.ZodArray<z.ZodObject<{
657
- detail: z.ZodOptional<z.ZodString>;
658
- epic: z.ZodString;
659
- generatedAt: z.ZodISODateTime;
660
- key: z.ZodString;
661
- landingSpot: z.ZodOptional<z.ZodEnum<{
662
- CLI: "CLI";
663
- profile: "profile";
664
- skill: "skill";
665
- ADR: "ADR";
666
- }>>;
667
- repo: z.ZodString;
668
- rowType: z.ZodEnum<{
669
- metric: "metric";
670
- lesson: "lesson";
671
- blindspot: "blindspot";
672
- }>;
673
- schemaVersion: z.ZodLiteral<3 | 4>;
674
- source: z.ZodString;
675
- unit: z.ZodOptional<z.ZodString>;
676
- value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>;
677
- }, z.core.$strict>>;
678
- lessons: z.ZodArray<z.ZodObject<{
679
- id: z.ZodString;
680
- landingSpot: z.ZodEnum<{
681
- CLI: "CLI";
682
- profile: "profile";
683
- skill: "skill";
684
- ADR: "ADR";
685
- }>;
686
- lesson: z.ZodString;
687
- rationale: z.ZodOptional<z.ZodString>;
688
- source: z.ZodOptional<z.ZodObject<{
689
- detail: z.ZodString;
690
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
691
- }, z.core.$strict>>;
692
- }, z.core.$strict> | z.ZodObject<{
693
- id: z.ZodString;
694
- landingSpot: z.ZodEnum<{
695
- CLI: "CLI";
696
- profile: "profile";
697
- skill: "skill";
698
- ADR: "ADR";
699
- }>;
700
- lesson: z.ZodString;
701
- rationale: z.ZodOptional<z.ZodString>;
702
- source: z.ZodOptional<z.ZodObject<{
703
- detail: z.ZodString;
704
- kind: z.ZodEnum<{
705
- "boundary-thermo-attestation": "boundary-thermo-attestation";
706
- "interior-telemetry": "interior-telemetry";
707
- }>;
708
- }, z.core.$strict>>;
709
- }, z.core.$strict>>;
710
741
  metrics: z.ZodArray<z.ZodObject<{
711
742
  label: z.ZodString;
712
743
  metric: z.ZodString;
713
744
  source: z.ZodObject<{
714
745
  detail: z.ZodString;
715
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
716
- }, z.core.$strict>;
717
- unit: z.ZodEnum<{
718
- boolean: "boolean";
719
- text: "text";
720
- count: "count";
721
- }>;
722
- value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
723
- }, z.core.$strict> | z.ZodObject<{
724
- label: z.ZodString;
725
- metric: z.ZodString;
726
- source: z.ZodObject<{
727
- detail: z.ZodString;
728
- kind: z.ZodEnum<{
729
- "boundary-thermo-attestation": "boundary-thermo-attestation";
730
- "interior-telemetry": "interior-telemetry";
731
- }>;
746
+ kind: z.ZodLiteral<"token-harvest">;
732
747
  }, z.core.$strict>;
733
748
  unit: z.ZodEnum<{
734
749
  boolean: "boolean";
@@ -736,561 +751,13 @@ declare const closeoutArtifactSchema: z.ZodObject<{
736
751
  count: "count";
737
752
  tokens: "tokens";
738
753
  usd: "usd";
739
- ratio: "ratio";
740
754
  }>;
741
755
  value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
742
756
  }, z.core.$strict>>;
743
757
  repo: z.ZodString;
744
- schemaVersion: z.ZodLiteral<3 | 4>;
758
+ schemaVersion: z.ZodLiteral<5>;
745
759
  }, z.core.$strict>;
746
- /** Reader-only compatibility for closeout artifacts written before #554. */
747
- declare const legacyCloseoutArtifactSchema: z.ZodObject<{
748
- boundaryThermo: z.ZodObject<{
749
- owner: z.ZodString;
750
- runs: z.ZodNumber;
751
- waived: z.ZodBoolean;
752
- waiverRationale: z.ZodOptional<z.ZodString>;
753
- }, z.core.$strict>;
754
- budget: z.ZodObject<{
755
- note: z.ZodString;
756
- tier: z.ZodLiteral<"overseer">;
757
- }, z.core.$strict> | z.ZodObject<{
758
- interiorSourcesConsumed: z.ZodNumber;
759
- note: z.ZodString;
760
- scoping: z.ZodOptional<z.ZodObject<{
761
- epic: z.ZodString;
762
- issueFilter: z.ZodOptional<z.ZodNumber>;
763
- prFilter: z.ZodOptional<z.ZodNumber>;
764
- repo: z.ZodString;
765
- scopedByEpicIssueSet: z.ZodBoolean;
766
- window: z.ZodObject<{
767
- from: z.ZodString;
768
- to: z.ZodString;
769
- }, z.core.$strict>;
770
- }, z.core.$strict>>;
771
- tier: z.ZodLiteral<"overseer">;
772
- }, z.core.$strict>;
773
- couldNotSee: z.ZodArray<z.ZodObject<{
774
- id: z.ZodString;
775
- note: z.ZodString;
776
- reason: z.ZodOptional<z.ZodString>;
777
- }, z.core.$strict>>;
778
- epic: z.ZodString;
779
- generatedAt: z.ZodISODateTime;
780
- ledgerRows: z.ZodArray<z.ZodObject<{
781
- detail: z.ZodOptional<z.ZodString>;
782
- epic: z.ZodString;
783
- generatedAt: z.ZodISODateTime;
784
- key: z.ZodString;
785
- landingSpot: z.ZodOptional<z.ZodEnum<{
786
- CLI: "CLI";
787
- profile: "profile";
788
- skill: "skill";
789
- ADR: "ADR";
790
- }>>;
791
- repo: z.ZodString;
792
- rowType: z.ZodEnum<{
793
- metric: "metric";
794
- lesson: "lesson";
795
- blindspot: "blindspot";
796
- }>;
797
- schemaVersion: z.ZodLiteral<3 | 4>;
798
- source: z.ZodString;
799
- unit: z.ZodOptional<z.ZodString>;
800
- value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>;
801
- }, z.core.$strict>>;
802
- lessons: z.ZodArray<z.ZodObject<{
803
- id: z.ZodString;
804
- landingSpot: z.ZodEnum<{
805
- CLI: "CLI";
806
- profile: "profile";
807
- skill: "skill";
808
- ADR: "ADR";
809
- }>;
810
- lesson: z.ZodString;
811
- rationale: z.ZodOptional<z.ZodString>;
812
- source: z.ZodOptional<z.ZodObject<{
813
- detail: z.ZodString;
814
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
815
- }, z.core.$strict>>;
816
- }, z.core.$strict> | z.ZodObject<{
817
- id: z.ZodString;
818
- landingSpot: z.ZodEnum<{
819
- CLI: "CLI";
820
- profile: "profile";
821
- skill: "skill";
822
- ADR: "ADR";
823
- }>;
824
- lesson: z.ZodString;
825
- rationale: z.ZodOptional<z.ZodString>;
826
- source: z.ZodOptional<z.ZodObject<{
827
- detail: z.ZodString;
828
- kind: z.ZodEnum<{
829
- "boundary-thermo-attestation": "boundary-thermo-attestation";
830
- "interior-telemetry": "interior-telemetry";
831
- }>;
832
- }, z.core.$strict>>;
833
- }, z.core.$strict>>;
834
- metrics: z.ZodArray<z.ZodObject<{
835
- label: z.ZodString;
836
- metric: z.ZodString;
837
- source: z.ZodObject<{
838
- detail: z.ZodString;
839
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
840
- }, z.core.$strict>;
841
- unit: z.ZodEnum<{
842
- boolean: "boolean";
843
- text: "text";
844
- count: "count";
845
- }>;
846
- value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
847
- }, z.core.$strict> | z.ZodObject<{
848
- label: z.ZodString;
849
- metric: z.ZodString;
850
- source: z.ZodObject<{
851
- detail: z.ZodString;
852
- kind: z.ZodEnum<{
853
- "boundary-thermo-attestation": "boundary-thermo-attestation";
854
- "interior-telemetry": "interior-telemetry";
855
- }>;
856
- }, z.core.$strict>;
857
- unit: z.ZodEnum<{
858
- boolean: "boolean";
859
- text: "text";
860
- count: "count";
861
- tokens: "tokens";
862
- usd: "usd";
863
- ratio: "ratio";
864
- }>;
865
- value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
866
- }, z.core.$strict>>;
867
- repo: z.ZodString;
868
- schemaVersion: z.ZodLiteral<3 | 4>;
869
- }, z.core.$strict>;
870
- /** Accept current output and retained v3 artifacts when reading or replaying. */
871
- declare const closeoutArtifactReadSchema: z.ZodUnion<readonly [z.ZodObject<{
872
- boundaryThermo: z.ZodObject<{
873
- owner: z.ZodString;
874
- runs: z.ZodNumber;
875
- waived: z.ZodBoolean;
876
- waiverRationale: z.ZodOptional<z.ZodString>;
877
- }, z.core.$strict>;
878
- budget: z.ZodObject<{
879
- note: z.ZodString;
880
- tier: z.ZodLiteral<"overseer">;
881
- }, z.core.$strict> | z.ZodObject<{
882
- interiorSourcesConsumed: z.ZodNumber;
883
- note: z.ZodString;
884
- scoping: z.ZodOptional<z.ZodObject<{
885
- epic: z.ZodString;
886
- issueFilter: z.ZodOptional<z.ZodNumber>;
887
- prFilter: z.ZodOptional<z.ZodNumber>;
888
- repo: z.ZodString;
889
- scopedByEpicIssueSet: z.ZodBoolean;
890
- window: z.ZodObject<{
891
- from: z.ZodString;
892
- to: z.ZodString;
893
- }, z.core.$strict>;
894
- }, z.core.$strict>>;
895
- tier: z.ZodLiteral<"overseer">;
896
- }, z.core.$strict>;
897
- couldNotSee: z.ZodArray<z.ZodObject<{
898
- id: z.ZodString;
899
- note: z.ZodString;
900
- reason: z.ZodOptional<z.ZodString>;
901
- }, z.core.$strict>>;
902
- epic: z.ZodString;
903
- generatedAt: z.ZodISODateTime;
904
- ledgerRows: z.ZodArray<z.ZodObject<{
905
- detail: z.ZodOptional<z.ZodString>;
906
- epic: z.ZodString;
907
- generatedAt: z.ZodISODateTime;
908
- key: z.ZodString;
909
- landingSpot: z.ZodOptional<z.ZodEnum<{
910
- CLI: "CLI";
911
- profile: "profile";
912
- skill: "skill";
913
- ADR: "ADR";
914
- }>>;
915
- repo: z.ZodString;
916
- rowType: z.ZodEnum<{
917
- metric: "metric";
918
- lesson: "lesson";
919
- blindspot: "blindspot";
920
- }>;
921
- schemaVersion: z.ZodLiteral<3 | 4>;
922
- source: z.ZodString;
923
- unit: z.ZodOptional<z.ZodString>;
924
- value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>;
925
- }, z.core.$strict>>;
926
- lessons: z.ZodArray<z.ZodObject<{
927
- id: z.ZodString;
928
- landingSpot: z.ZodEnum<{
929
- CLI: "CLI";
930
- profile: "profile";
931
- skill: "skill";
932
- ADR: "ADR";
933
- }>;
934
- lesson: z.ZodString;
935
- rationale: z.ZodOptional<z.ZodString>;
936
- source: z.ZodOptional<z.ZodObject<{
937
- detail: z.ZodString;
938
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
939
- }, z.core.$strict>>;
940
- }, z.core.$strict> | z.ZodObject<{
941
- id: z.ZodString;
942
- landingSpot: z.ZodEnum<{
943
- CLI: "CLI";
944
- profile: "profile";
945
- skill: "skill";
946
- ADR: "ADR";
947
- }>;
948
- lesson: z.ZodString;
949
- rationale: z.ZodOptional<z.ZodString>;
950
- source: z.ZodOptional<z.ZodObject<{
951
- detail: z.ZodString;
952
- kind: z.ZodEnum<{
953
- "boundary-thermo-attestation": "boundary-thermo-attestation";
954
- "interior-telemetry": "interior-telemetry";
955
- }>;
956
- }, z.core.$strict>>;
957
- }, z.core.$strict>>;
958
- metrics: z.ZodArray<z.ZodObject<{
959
- label: z.ZodString;
960
- metric: z.ZodString;
961
- source: z.ZodObject<{
962
- detail: z.ZodString;
963
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
964
- }, z.core.$strict>;
965
- unit: z.ZodEnum<{
966
- boolean: "boolean";
967
- text: "text";
968
- count: "count";
969
- }>;
970
- value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
971
- }, z.core.$strict> | z.ZodObject<{
972
- label: z.ZodString;
973
- metric: z.ZodString;
974
- source: z.ZodObject<{
975
- detail: z.ZodString;
976
- kind: z.ZodEnum<{
977
- "boundary-thermo-attestation": "boundary-thermo-attestation";
978
- "interior-telemetry": "interior-telemetry";
979
- }>;
980
- }, z.core.$strict>;
981
- unit: z.ZodEnum<{
982
- boolean: "boolean";
983
- text: "text";
984
- count: "count";
985
- tokens: "tokens";
986
- usd: "usd";
987
- ratio: "ratio";
988
- }>;
989
- value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
990
- }, z.core.$strict>>;
991
- repo: z.ZodString;
992
- schemaVersion: z.ZodLiteral<3 | 4>;
993
- }, z.core.$strict>, z.ZodObject<{
994
- boundaryThermo: z.ZodObject<{
995
- owner: z.ZodString;
996
- runs: z.ZodNumber;
997
- waived: z.ZodBoolean;
998
- waiverRationale: z.ZodOptional<z.ZodString>;
999
- }, z.core.$strict>;
1000
- budget: z.ZodObject<{
1001
- note: z.ZodString;
1002
- tier: z.ZodLiteral<"overseer">;
1003
- }, z.core.$strict> | z.ZodObject<{
1004
- interiorSourcesConsumed: z.ZodNumber;
1005
- note: z.ZodString;
1006
- scoping: z.ZodOptional<z.ZodObject<{
1007
- epic: z.ZodString;
1008
- issueFilter: z.ZodOptional<z.ZodNumber>;
1009
- prFilter: z.ZodOptional<z.ZodNumber>;
1010
- repo: z.ZodString;
1011
- scopedByEpicIssueSet: z.ZodBoolean;
1012
- window: z.ZodObject<{
1013
- from: z.ZodString;
1014
- to: z.ZodString;
1015
- }, z.core.$strict>;
1016
- }, z.core.$strict>>;
1017
- tier: z.ZodLiteral<"overseer">;
1018
- }, z.core.$strict>;
1019
- couldNotSee: z.ZodArray<z.ZodObject<{
1020
- id: z.ZodString;
1021
- note: z.ZodString;
1022
- reason: z.ZodOptional<z.ZodString>;
1023
- }, z.core.$strict>>;
1024
- epic: z.ZodString;
1025
- generatedAt: z.ZodISODateTime;
1026
- ledgerRows: z.ZodArray<z.ZodObject<{
1027
- detail: z.ZodOptional<z.ZodString>;
1028
- epic: z.ZodString;
1029
- generatedAt: z.ZodISODateTime;
1030
- key: z.ZodString;
1031
- landingSpot: z.ZodOptional<z.ZodEnum<{
1032
- CLI: "CLI";
1033
- profile: "profile";
1034
- skill: "skill";
1035
- ADR: "ADR";
1036
- }>>;
1037
- repo: z.ZodString;
1038
- rowType: z.ZodEnum<{
1039
- metric: "metric";
1040
- lesson: "lesson";
1041
- blindspot: "blindspot";
1042
- }>;
1043
- schemaVersion: z.ZodLiteral<3 | 4>;
1044
- source: z.ZodString;
1045
- unit: z.ZodOptional<z.ZodString>;
1046
- value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodNull]>;
1047
- }, z.core.$strict>>;
1048
- lessons: z.ZodArray<z.ZodObject<{
1049
- id: z.ZodString;
1050
- landingSpot: z.ZodEnum<{
1051
- CLI: "CLI";
1052
- profile: "profile";
1053
- skill: "skill";
1054
- ADR: "ADR";
1055
- }>;
1056
- lesson: z.ZodString;
1057
- rationale: z.ZodOptional<z.ZodString>;
1058
- source: z.ZodOptional<z.ZodObject<{
1059
- detail: z.ZodString;
1060
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
1061
- }, z.core.$strict>>;
1062
- }, z.core.$strict> | z.ZodObject<{
1063
- id: z.ZodString;
1064
- landingSpot: z.ZodEnum<{
1065
- CLI: "CLI";
1066
- profile: "profile";
1067
- skill: "skill";
1068
- ADR: "ADR";
1069
- }>;
1070
- lesson: z.ZodString;
1071
- rationale: z.ZodOptional<z.ZodString>;
1072
- source: z.ZodOptional<z.ZodObject<{
1073
- detail: z.ZodString;
1074
- kind: z.ZodEnum<{
1075
- "boundary-thermo-attestation": "boundary-thermo-attestation";
1076
- "interior-telemetry": "interior-telemetry";
1077
- }>;
1078
- }, z.core.$strict>>;
1079
- }, z.core.$strict>>;
1080
- metrics: z.ZodArray<z.ZodObject<{
1081
- label: z.ZodString;
1082
- metric: z.ZodString;
1083
- source: z.ZodObject<{
1084
- detail: z.ZodString;
1085
- kind: z.ZodLiteral<"boundary-thermo-attestation">;
1086
- }, z.core.$strict>;
1087
- unit: z.ZodEnum<{
1088
- boolean: "boolean";
1089
- text: "text";
1090
- count: "count";
1091
- }>;
1092
- value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
1093
- }, z.core.$strict> | z.ZodObject<{
1094
- label: z.ZodString;
1095
- metric: z.ZodString;
1096
- source: z.ZodObject<{
1097
- detail: z.ZodString;
1098
- kind: z.ZodEnum<{
1099
- "boundary-thermo-attestation": "boundary-thermo-attestation";
1100
- "interior-telemetry": "interior-telemetry";
1101
- }>;
1102
- }, z.core.$strict>;
1103
- unit: z.ZodEnum<{
1104
- boolean: "boolean";
1105
- text: "text";
1106
- count: "count";
1107
- tokens: "tokens";
1108
- usd: "usd";
1109
- ratio: "ratio";
1110
- }>;
1111
- value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodNull]>;
1112
- }, z.core.$strict>>;
1113
- repo: z.ZodString;
1114
- schemaVersion: z.ZodLiteral<3 | 4>;
1115
- }, z.core.$strict>]>;
1116
760
  type CloseoutArtifact = z.infer<typeof closeoutArtifactSchema>;
1117
- type HistoricalCloseoutArtifact = z.infer<typeof legacyCloseoutArtifactSchema>;
1118
- //#endregion
1119
- //#region src/retro-envelope.d.ts
1120
- /**
1121
- * Versioned retro envelope schema (epic #27 wave 2, issue #34).
1122
- *
1123
- * One envelope per lane, built at `factory:closeout` and delivered through the
1124
- * typed gate-sink as the `retro-envelope` ingest kind. Re-derived in TypeScript
1125
- * from the `spike/telemetry-layer2` S5 scratch schema (reference-only, never
1126
- * merged). This module is the single source of truth for the v1 wire shape
1127
- * and its bounds ({@link RETRO_ENVELOPE_WIRE_BOUNDS}) — producer and consumer
1128
- * alike. HQ imports these exports directly from the Worker-safe
1129
- * `@patronage/software-factory/schemas` subpath
1130
- * (`software-factory-hq/src/contracts/retro-schemas.ts`) instead of
1131
- * maintaining a parallel hand-written copy, so there is exactly one wire
1132
- * contract and no drift-detection machinery is needed (issue #350; formerly
1133
- * a hand-written twin plus a 767-line parity test, #46).
1134
- *
1135
- * DESIGN INVARIANT: cross-family token sums must be UNREPRESENTABLE.
1136
- *
1137
- * The two model families use different tokenizers, prices, and accounting
1138
- * conventions, so any token total that spans Claude and GPT is a lie:
1139
- *
1140
- * 1. There is no combined/total token field anywhere in the envelope.
1141
- * 2. `tokenFamilies` is strict — its only keys are `claude` and `gpt`; data
1142
- * cannot smuggle in a third "all"/"combined" slot.
1143
- * 3. The family BLOCKS are structurally different shapes with DIFFERENT keys
1144
- * (claude is a single flat block keyed on freshInput/cacheReadInput/
1145
- * cacheCreationInput; gpt is `{ roles: [...] }`). The exclusive input-tier
1146
- * COUNTS share no key name across families. The residual names shared
1147
- * between the claude block and a gpt ROLE entry are pinned to exactly
1148
- * {costUsd, model, output} (PR #32 advisory): `costUsd` is deliberate —
1149
- * USD is the one cross-family summable unit (rule 4); `model` is an
1150
- * unsummable label; `output` is the same name at DIFFERENT depths (lane
1151
- * block vs per-role entry), frozen by a tripwire test in
1152
- * `retro-envelope.test.ts` so the overlap cannot grow. Renaming `output`
1153
- * is a schemaVersion-2 wire change, deliberately not spent in v1.
1154
- * 4. Cost is per-family USD and nullable. Combined totals are allowed in USD
1155
- * only, and only as a projection-time sum of per-family USD.
1156
- *
1157
- * Field names also encode the S2/S3 reader lessons: Claude `freshInput` alone
1158
- * is not prompt size (true input context = freshInput + cacheReadInput +
1159
- * cacheCreationInput, requestId-deduped), and codex `inputInclusiveOfCache`
1160
- * already includes `cachedInput`, so `freshInputDerived` (inclusive − cached)
1161
- * is the only value safe to feed a per-token pricer.
1162
- *
1163
- * COMPLETENESS POSTURE: harvest may have no usable native log for a lane, so
1164
- * `tokenFamilies` may legitimately be absent. The closeout build gate demands
1165
- * a valid envelope, not available telemetry. A families-absent envelope keeps
1166
- * its operator-visible data gaps and is a replayable advisory HQ event, so it
1167
- * never substitutes unavailable usage with zero. The wire shape (field names,
1168
- * types, structure) stays byte-parity with HQ v1.
1169
- */
1170
- declare const RETRO_ENVELOPE_SCHEMA_VERSION = 1;
1171
- /**
1172
- * v1 wire bounds — the single source the schemas below are built from and the
1173
- * builder's sanitization seam clamps to (`retro-envelope-builder.ts` imports
1174
- * these; it keeps no bound constants of its own). HQ imports this module
1175
- * directly (issue #350), so there is one set of bounds, not a second copy to
1176
- * keep in sync.
1177
- */
1178
- declare const RETRO_ENVELOPE_WIRE_BOUNDS: {
1179
- /** archiveRef pointer (key/URL) max characters. */readonly archiveRefMaxChars: 2048; /** refs.branch max characters (git ref length ceiling). */
1180
- readonly branchMaxChars: 255; /** gates[] wire cap — the builder keeps the most recent records. */
1181
- readonly gatesMax: 500; /** gpt roles[] cap (delegated roles per lane). */
1182
- readonly gptRolesMax: 20; /** Cap for list fields: joinKeys id arrays, phases, dataGaps. */
1183
- readonly listMax: 100; /** Bounded name fields: agentRunId, gate, phase name, refs, join-key ids. */
1184
- readonly nameMaxChars: 200; /** Short identifier fields: repo name/owner, model, role. */
1185
- readonly shortMaxChars: 100; /** Free-text fields: dataGaps entries, outcome.verdict. */
1186
- readonly textMaxChars: 500;
1187
- };
1188
- declare const retroEnvelopeV1Schema: z.ZodObject<{
1189
- agentRunId: z.ZodString;
1190
- archiveRef: z.ZodOptional<z.ZodString>;
1191
- cycles: z.ZodObject<{
1192
- gateRunsToFirstGreen: z.ZodNumber;
1193
- reviewerFixRounds: z.ZodNumber;
1194
- thermoFixRounds: z.ZodNumber;
1195
- }, z.core.$strict>;
1196
- dataGaps: z.ZodDefault<z.ZodArray<z.ZodString>>;
1197
- gates: z.ZodArray<z.ZodObject<{
1198
- cycle: z.ZodNumber;
1199
- duration: z.ZodNumber;
1200
- gate: z.ZodString;
1201
- outcome: z.ZodEnum<{
1202
- pass: "pass";
1203
- fail: "fail";
1204
- skip: "skip";
1205
- }>;
1206
- startedAt: z.ZodISODateTime;
1207
- }, z.core.$strict>>;
1208
- generatedAt: z.ZodISODateTime;
1209
- interventions: z.ZodObject<{
1210
- count: z.ZodNumber;
1211
- }, z.core.$strict>;
1212
- joinKeys: z.ZodObject<{
1213
- claudeSessionIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
1214
- codexThreadIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
1215
- }, z.core.$strict>;
1216
- kind: z.ZodLiteral<"retro-envelope">;
1217
- outcome: z.ZodOptional<z.ZodObject<{
1218
- status: z.ZodEnum<{
1219
- fail: "fail";
1220
- success: "success";
1221
- blocked: "blocked";
1222
- "ship-with-followups": "ship-with-followups";
1223
- }>;
1224
- verdict: z.ZodOptional<z.ZodString>;
1225
- }, z.core.$strict>>;
1226
- phases: z.ZodArray<z.ZodObject<{
1227
- at: z.ZodISODateTime;
1228
- deltaSec: z.ZodOptional<z.ZodNumber>;
1229
- name: z.ZodString;
1230
- }, z.core.$strict>>;
1231
- refs: z.ZodObject<{
1232
- branch: z.ZodOptional<z.ZodString>;
1233
- epic: z.ZodOptional<z.ZodString>;
1234
- headSha: z.ZodOptional<z.ZodString>;
1235
- issue: z.ZodOptional<z.ZodString>;
1236
- prNumber: z.ZodOptional<z.ZodNumber>;
1237
- }, z.core.$strict>;
1238
- repo: z.ZodObject<{
1239
- name: z.ZodString;
1240
- owner: z.ZodString;
1241
- }, z.core.$strict>;
1242
- schemaVersion: z.ZodLiteral<1>;
1243
- tokenFamilies: z.ZodObject<{
1244
- claude: z.ZodOptional<z.ZodObject<{
1245
- cacheCreationInput: z.ZodNumber;
1246
- cacheReadInput: z.ZodNumber;
1247
- costUsd: z.ZodNullable<z.ZodNumber>;
1248
- family: z.ZodLiteral<"claude">;
1249
- freshInput: z.ZodNumber;
1250
- model: z.ZodString;
1251
- output: z.ZodNumber;
1252
- requests: z.ZodNumber;
1253
- }, z.core.$strict>>;
1254
- gpt: z.ZodOptional<z.ZodObject<{
1255
- family: z.ZodLiteral<"gpt">;
1256
- roles: z.ZodArray<z.ZodObject<{
1257
- cachedInput: z.ZodNumber;
1258
- costUsd: z.ZodNullable<z.ZodNumber>;
1259
- freshInputDerived: z.ZodNumber;
1260
- inputInclusiveOfCache: z.ZodNumber;
1261
- model: z.ZodString;
1262
- output: z.ZodNumber;
1263
- reasoningOutput: z.ZodNumber;
1264
- role: z.ZodString;
1265
- threadId: z.ZodOptional<z.ZodString>;
1266
- }, z.core.$strict>>;
1267
- }, z.core.$strict>>;
1268
- }, z.core.$strict>;
1269
- wallClock: z.ZodObject<{
1270
- endTs: z.ZodISODateTime;
1271
- startTs: z.ZodISODateTime;
1272
- totalSec: z.ZodNumber;
1273
- }, z.core.$strict>;
1274
- }, z.core.$strict>;
1275
- type RetroEnvelope = z.infer<typeof retroEnvelopeV1Schema>;
1276
- /**
1277
- * Versioned payload validators, keyed by schema major. Unknown majors never
1278
- * reach these — {@link parseRetroEnvelope} returns them raw and marked
1279
- * degraded, mirroring HQ's ingest skew posture (stored raw, never dropped).
1280
- */
1281
- declare const RETRO_ENVELOPE_VALIDATORS: Record<number, z.ZodType<RetroEnvelope, unknown>>;
1282
- declare const SUPPORTED_RETRO_ENVELOPE_SCHEMA_VERSIONS: readonly number[];
1283
- type ParsedRetroEnvelope = {
1284
- disposition: "trusted";
1285
- envelope: RetroEnvelope;
1286
- schemaVersion: number;
1287
- } | {
1288
- disposition: "degraded";
1289
- raw: unknown;
1290
- schemaVersion: number | undefined;
1291
- };
1292
- /** Epic anchor for an envelope: refs.epic, else refs.issue, else the PR. */
1293
- declare const retroEpicReference: (refs: RetroEnvelope["refs"]) => string | undefined;
1294
761
  //#endregion
1295
762
  //#region src/schemas.d.ts
1296
763
  declare const EVIDENCE_ENVELOPE_SCHEMA_VERSION = 1;
@@ -1321,95 +788,6 @@ declare const evidenceEnvelopeSchema: z.ZodObject<{
1321
788
  sessionId: z.ZodOptional<z.ZodString>;
1322
789
  timestamp: z.ZodOptional<z.ZodISODateTime>;
1323
790
  }, z.core.$loose>;
1324
- declare const SUPPORTED_PR_VERIFY_SCHEMA_VERSIONS: readonly [1, 2, 3, 4];
1325
- declare const prVerifyProofSchema: z.ZodObject<{
1326
- authoringSession: z.ZodOptional<z.ZodString>;
1327
- base: z.ZodString;
1328
- baselineFullProofs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1329
- base: z.ZodString;
1330
- changedFiles: z.ZodArray<z.ZodString>;
1331
- headSha: z.ZodString;
1332
- profilePath: z.ZodString;
1333
- projectKey: z.ZodString;
1334
- repository: z.ZodString;
1335
- }, z.core.$strip>>>;
1336
- changedFiles: z.ZodArray<z.ZodString>;
1337
- classification: z.ZodEnum<{
1338
- "docs/process-only": "docs/process-only";
1339
- trivial: "trivial";
1340
- "non-trivial": "non-trivial";
1341
- }>;
1342
- classificationReasons: z.ZodArray<z.ZodString>;
1343
- command: z.ZodLiteral<"patronage-factory pr:verify">;
1344
- durationMs: z.ZodNumber;
1345
- endedAt: z.ZodISODateTime;
1346
- executedCommands: z.ZodOptional<z.ZodArray<z.ZodObject<{
1347
- command: z.ZodString;
1348
- counts: z.ZodOptional<z.ZodObject<{
1349
- testFiles: z.ZodOptional<z.ZodNumber>;
1350
- tests: z.ZodOptional<z.ZodNumber>;
1351
- }, z.core.$strip>>;
1352
- durationMs: z.ZodNumber;
1353
- exitCode: z.ZodNumber;
1354
- name: z.ZodString;
1355
- scope: z.ZodEnum<{
1356
- trivial: "trivial";
1357
- always: "always";
1358
- "docs-only": "docs-only";
1359
- full: "full";
1360
- }>;
1361
- }, z.core.$strip>>>;
1362
- headSha: z.ZodString;
1363
- impactStamp: z.ZodOptional<z.ZodObject<{
1364
- basis: z.ZodEnum<{
1365
- "target-scoped": "target-scoped";
1366
- conservative: "conservative";
1367
- }>;
1368
- reasons: z.ZodArray<z.ZodString>;
1369
- stampVersion: z.ZodLiteral<2>;
1370
- targets: z.ZodArray<z.ZodObject<{
1371
- basis: z.ZodString;
1372
- impact: z.ZodEnum<{
1373
- affected: "affected";
1374
- "not-affected": "not-affected";
1375
- }>;
1376
- name: z.ZodString;
1377
- }, z.core.$strip>>;
1378
- }, z.core.$strip>>;
1379
- mergeBaseSha: z.ZodOptional<z.ZodString>;
1380
- mode: z.ZodEnum<{
1381
- trivial: "trivial";
1382
- "docs-only": "docs-only";
1383
- full: "full";
1384
- }>;
1385
- notRequiredCommands: z.ZodOptional<z.ZodArray<z.ZodObject<{
1386
- basis: z.ZodString;
1387
- impactTarget: z.ZodString;
1388
- name: z.ZodString;
1389
- }, z.core.$strip>>>;
1390
- outcome: z.ZodOptional<z.ZodEnum<{
1391
- aborted: "aborted";
1392
- passed: "passed";
1393
- }>>;
1394
- patchId: z.ZodOptional<z.ZodString>;
1395
- profilePath: z.ZodString;
1396
- projectKey: z.ZodString;
1397
- repository: z.ZodString;
1398
- schemaVersion: z.ZodNumber & z.ZodType<1 | 2 | 3 | 4, number, z.core.$ZodTypeInternals<1 | 2 | 3 | 4, number>>;
1399
- startedAt: z.ZodISODateTime;
1400
- verificationCommands: z.ZodArray<z.ZodObject<{
1401
- command: z.ZodString;
1402
- description: z.ZodString;
1403
- impactTarget: z.ZodOptional<z.ZodString>;
1404
- name: z.ZodString;
1405
- scope: z.ZodEnum<{
1406
- trivial: "trivial";
1407
- always: "always";
1408
- "docs-only": "docs-only";
1409
- full: "full";
1410
- }>;
1411
- }, z.core.$strip>>;
1412
- }, z.core.$strip>;
1413
791
  declare const PR_REVIEW_SCHEMA_VERSION = 2;
1414
792
  declare const prReviewProofSchema: z.ZodObject<{
1415
793
  base: z.ZodString;
@@ -1965,4 +1343,4 @@ declare const prReadyProofSchema: z.ZodObject<{
1965
1343
  waivedDemands: z.ZodOptional<z.ZodArray<z.ZodType<WaivedDemand, unknown, z.core.$ZodTypeInternals<WaivedDemand, unknown>>>>;
1966
1344
  }, z.core.$strip>;
1967
1345
  //#endregion
1968
- export { BLOCKED_REASONS_MAX, BLOCKED_REASON_DETAIL_MAX, BOUNDARY_CHECK_SCHEMA_VERSION, BOUNDARY_REVIEW_PROOF_KIND, type BlockedReason, BoundaryCheckProofRecord, type BoundaryReviewProof, type CloseoutArtifact, EVIDENCE_ENVELOPE_SCHEMA_VERSION, type EvidenceEnvelope, type HistoricalCloseoutArtifact, PR_READY_SCHEMA_VERSION, PR_REVIEW_SCHEMA_VERSION, type ParsedRetroEnvelope, type PrReadyProof, type PrReviewProof, type PrVerifyProof, RETRO_ENVELOPE_SCHEMA_VERSION, RETRO_ENVELOPE_VALIDATORS, RETRO_ENVELOPE_WIRE_BOUNDS, type RetroEnvelope, SUPPORTED_CLOSEOUT_SCHEMA_VERSIONS, SUPPORTED_PR_READY_SCHEMA_VERSIONS, SUPPORTED_PR_VERIFY_SCHEMA_VERSIONS, SUPPORTED_RETRO_ENVELOPE_SCHEMA_VERSIONS, type WaivedDemand, blockedReasonSchema, blockedReasonsSchema, boundaryCheckProofSchema, boundaryReviewProofSchema, closeoutArtifactReadSchema, closeoutArtifactSchema, evidenceEnvelopeSchema, legacyCloseoutArtifactSchema, prReadyProofSchema, prReviewProofSchema, prVerifyProofSchema, retroEnvelopeV1Schema, retroEpicReference, waivedDemandSchema };
1346
+ export { BLOCKED_REASONS_MAX, BLOCKED_REASON_DETAIL_MAX, BOUNDARY_CHECK_SCHEMA_VERSION, BOUNDARY_REVIEW_PROOF_KIND, type BlockedReason, BoundaryCheckProofRecord, type BoundaryReviewProof, type CloseoutArtifact, EVIDENCE_ENVELOPE_SCHEMA_VERSION, type EvidenceEnvelope, PR_READY_SCHEMA_VERSION, PR_REVIEW_SCHEMA_VERSION, type PrReadyProof, type PrReviewProof, type PrVerifyProof, SUPPORTED_CLOSEOUT_SCHEMA_VERSIONS, SUPPORTED_PR_READY_SCHEMA_VERSIONS, SUPPORTED_PR_VERIFY_SCHEMA_VERSIONS, type WaivedDemand, blockedReasonSchema, blockedReasonsSchema, boundaryCheckProofSchema, boundaryReviewProofSchema, closeoutArtifactSchema, evidenceEnvelopeSchema, prReadyProofSchema, prReviewProofSchema, prVerifyProofSchema, waivedDemandSchema };