@patronage/software-factory 1.0.0-alpha.17 → 1.0.0-alpha.18

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/index.d.ts CHANGED
@@ -724,6 +724,10 @@ declare const factoryProjectProfileSchema: z.ZodObject<{
724
724
  paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
725
725
  }, z.core.$strict>>;
726
726
  }, z.core.$strict>>;
727
+ lifecycleContract: z.ZodOptional<z.ZodObject<{
728
+ command: z.ZodString;
729
+ jobName: z.ZodOptional<z.ZodString>;
730
+ }, z.core.$strict>>;
727
731
  repository: z.ZodObject<{
728
732
  name: z.ZodString;
729
733
  owner: z.ZodString;
@@ -922,8 +926,8 @@ declare const mergeFreezeStateSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
922
926
  generationId: z.ZodNumber;
923
927
  headSha: z.ZodString;
924
928
  outcome: z.ZodEnum<{
925
- stale: "stale";
926
929
  active: "active";
930
+ stale: "stale";
927
931
  }>;
928
932
  reason: z.ZodString;
929
933
  recordedAt: z.ZodISODateTime;
@@ -1331,9 +1335,9 @@ declare const managedReadinessLedgerSchema: z.ZodObject<{
1331
1335
  mergeable: z.ZodString;
1332
1336
  requiredChecks: z.ZodEnum<{
1333
1337
  unknown: "unknown";
1338
+ pending: "pending";
1334
1339
  passed: "passed";
1335
1340
  failed: "failed";
1336
- pending: "pending";
1337
1341
  none: "none";
1338
1342
  }>;
1339
1343
  reviewDecision: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1399,8 +1403,8 @@ declare const managedReadinessLedgerSchema: z.ZodObject<{
1399
1403
  "run-interior-cycle": "run-interior-cycle";
1400
1404
  }>;
1401
1405
  stage: z.ZodEnum<{
1402
- gate: "gate";
1403
1406
  interior: "interior";
1407
+ gate: "gate";
1404
1408
  "interior-complete": "interior-complete";
1405
1409
  }>;
1406
1410
  }, z.core.$strip>>;
@@ -1416,10 +1420,10 @@ declare const managedReadinessLedgerSchema: z.ZodObject<{
1416
1420
  reviewedHeadSha: z.ZodOptional<z.ZodString>;
1417
1421
  reviewedPatchId: z.ZodOptional<z.ZodString>;
1418
1422
  status: z.ZodEnum<{
1419
- blocked: "blocked";
1420
1423
  "not-required": "not-required";
1421
- current: "current";
1422
1424
  stale: "stale";
1425
+ blocked: "blocked";
1426
+ current: "current";
1423
1427
  missing: "missing";
1424
1428
  }>;
1425
1429
  }, z.core.$strip>;
@@ -1428,10 +1432,10 @@ declare const managedReadinessLedgerSchema: z.ZodObject<{
1428
1432
  reviewedHeadSha: z.ZodOptional<z.ZodString>;
1429
1433
  reviewedPatchId: z.ZodOptional<z.ZodString>;
1430
1434
  status: z.ZodEnum<{
1431
- blocked: "blocked";
1432
1435
  "not-required": "not-required";
1433
- current: "current";
1434
1436
  stale: "stale";
1437
+ blocked: "blocked";
1438
+ current: "current";
1435
1439
  missing: "missing";
1436
1440
  }>;
1437
1441
  }, z.core.$strip>>;
@@ -1442,8 +1446,8 @@ declare const managedReadinessLedgerSchema: z.ZodObject<{
1442
1446
  docsOnlyDeltaAccepted: z.ZodOptional<z.ZodBoolean>;
1443
1447
  docsOnlyVerifiedHeadSha: z.ZodOptional<z.ZodString>;
1444
1448
  prVerify: z.ZodEnum<{
1445
- passed: "passed";
1446
1449
  stale: "stale";
1450
+ passed: "passed";
1447
1451
  missing: "missing";
1448
1452
  }>;
1449
1453
  trivialDeltaAccepted: z.ZodOptional<z.ZodBoolean>;
@@ -1874,10 +1878,10 @@ declare const loadEvidenceEnvelopes: (cwd: string) => LoadedEvidenceEnvelope[];
1874
1878
  //#region src/review-proof-applicability.d.ts
1875
1879
  declare const REVIEW_STATUS_VALUES: readonly ["not-required", "current", "stale", "missing", "blocked"];
1876
1880
  declare const reviewStatusSchema: z.ZodEnum<{
1877
- blocked: "blocked";
1878
1881
  "not-required": "not-required";
1879
- current: "current";
1880
1882
  stale: "stale";
1883
+ blocked: "blocked";
1884
+ current: "current";
1881
1885
  missing: "missing";
1882
1886
  }>;
1883
1887
  type ReviewStatus = z.infer<typeof reviewStatusSchema>;
@@ -2676,11 +2680,11 @@ declare const LegacyWorkerCloseoutStatusTraceEventSchema: z.ZodObject<{
2676
2680
  threadId: z.ZodOptional<z.ZodString>;
2677
2681
  workerId: z.ZodOptional<z.ZodString>;
2678
2682
  archiveStatus: z.ZodOptional<z.ZodEnum<{
2679
- pending: "pending";
2680
2683
  unavailable: "unavailable";
2681
2684
  archived: "archived";
2682
2685
  skipped: "skipped";
2683
2686
  "not-applicable": "not-applicable";
2687
+ pending: "pending";
2684
2688
  }>>;
2685
2689
  closeoutReason: z.ZodOptional<z.ZodString>;
2686
2690
  eventType: z.ZodLiteral<"worker-closeout-lessons">;
@@ -2850,8 +2854,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
2850
2854
  sessionId: z.ZodOptional<z.ZodString>;
2851
2855
  }, z.core.$strict>>;
2852
2856
  stage: z.ZodEnum<{
2853
- gate: "gate";
2854
2857
  interior: "interior";
2858
+ gate: "gate";
2855
2859
  }>;
2856
2860
  usage: z.ZodOptional<z.ZodObject<{
2857
2861
  estimatedCostUsd: z.ZodOptional<z.ZodNumber>;
@@ -2903,8 +2907,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
2903
2907
  sessionId: z.ZodOptional<z.ZodString>;
2904
2908
  }, z.core.$strict>>;
2905
2909
  stage: z.ZodEnum<{
2906
- gate: "gate";
2907
2910
  interior: "interior";
2911
+ gate: "gate";
2908
2912
  }>;
2909
2913
  usage: z.ZodOptional<z.ZodObject<{
2910
2914
  estimatedCostUsd: z.ZodOptional<z.ZodNumber>;
@@ -2947,8 +2951,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
2947
2951
  sessionId: z.ZodOptional<z.ZodString>;
2948
2952
  }, z.core.$strict>>;
2949
2953
  stage: z.ZodEnum<{
2950
- gate: "gate";
2951
2954
  interior: "interior";
2955
+ gate: "gate";
2952
2956
  }>;
2953
2957
  usage: z.ZodOptional<z.ZodObject<{
2954
2958
  estimatedCostUsd: z.ZodOptional<z.ZodNumber>;
@@ -2978,7 +2982,7 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
2978
2982
  staleRepeats: number;
2979
2983
  };
2980
2984
  observedAt: string;
2981
- stage: "gate" | "interior";
2985
+ stage: "interior" | "gate";
2982
2986
  issue?: number | undefined;
2983
2987
  pr?: number | undefined;
2984
2988
  threadId?: string | undefined;
@@ -3071,11 +3075,11 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
3071
3075
  threadId: z.ZodOptional<z.ZodString>;
3072
3076
  workerId: z.ZodOptional<z.ZodString>;
3073
3077
  archiveStatus: z.ZodOptional<z.ZodEnum<{
3074
- pending: "pending";
3075
3078
  unavailable: "unavailable";
3076
3079
  archived: "archived";
3077
3080
  skipped: "skipped";
3078
3081
  "not-applicable": "not-applicable";
3082
+ pending: "pending";
3079
3083
  }>>;
3080
3084
  closeoutReason: z.ZodOptional<z.ZodString>;
3081
3085
  eventType: z.ZodLiteral<"worker-closeout-lessons">;
@@ -3112,11 +3116,11 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
3112
3116
  }, z.core.$strict>], "lessonStatus">;
3113
3117
  readonly 2: z.ZodObject<{
3114
3118
  archiveStatus: z.ZodOptional<z.ZodEnum<{
3115
- pending: "pending";
3116
3119
  unavailable: "unavailable";
3117
3120
  archived: "archived";
3118
3121
  skipped: "skipped";
3119
3122
  "not-applicable": "not-applicable";
3123
+ pending: "pending";
3120
3124
  }>>;
3121
3125
  closeoutReason: z.ZodOptional<z.ZodString>;
3122
3126
  lessonStatus: z.ZodOptional<z.ZodEnum<{
@@ -3788,7 +3792,7 @@ declare const evaluateReadiness: (input: EvaluationInput) => {
3788
3792
  draft: boolean;
3789
3793
  mergeStateStatus: string;
3790
3794
  mergeable: string;
3791
- requiredChecks: "unknown" | "passed" | "failed" | "pending" | "none";
3795
+ requiredChecks: "unknown" | "pending" | "passed" | "failed" | "none";
3792
3796
  unresolvedReviewThreads: number;
3793
3797
  reviewDecision?: string | null | undefined;
3794
3798
  };
@@ -3803,13 +3807,13 @@ declare const evaluateReadiness: (input: EvaluationInput) => {
3803
3807
  reviews: {
3804
3808
  correctness: {
3805
3809
  required: boolean;
3806
- status: "blocked" | "not-required" | "current" | "stale" | "missing";
3810
+ status: "not-required" | "stale" | "blocked" | "current" | "missing";
3807
3811
  reviewedHeadSha?: string | undefined;
3808
3812
  reviewedPatchId?: string | undefined;
3809
3813
  };
3810
3814
  security?: {
3811
3815
  required: boolean;
3812
- status: "blocked" | "not-required" | "current" | "stale" | "missing";
3816
+ status: "not-required" | "stale" | "blocked" | "current" | "missing";
3813
3817
  reviewedHeadSha?: string | undefined;
3814
3818
  reviewedPatchId?: string | undefined;
3815
3819
  } | undefined;
@@ -3817,7 +3821,7 @@ declare const evaluateReadiness: (input: EvaluationInput) => {
3817
3821
  schemaVersion: 1;
3818
3822
  verification: {
3819
3823
  command: "patronage-factory pr:verify";
3820
- prVerify: "passed" | "stale" | "missing";
3824
+ prVerify: "stale" | "passed" | "missing";
3821
3825
  docsOnlyDeltaAccepted?: boolean | undefined;
3822
3826
  docsOnlyVerifiedHeadSha?: string | undefined;
3823
3827
  trivialDeltaAccepted?: boolean | undefined;
@@ -3860,7 +3864,7 @@ declare const evaluateReadiness: (input: EvaluationInput) => {
3860
3864
  interior: number;
3861
3865
  };
3862
3866
  nextAction: "run-gate-cycle" | "accept-nonblocking-findings" | "escalate-to-triage" | "ready-for-human" | "advance-to-gate" | "run-interior-cycle";
3863
- stage: "gate" | "interior" | "interior-complete";
3867
+ stage: "interior" | "gate" | "interior-complete";
3864
3868
  forcedTransition?: "gate-cap-exhausted" | "interior-cap-reached" | undefined;
3865
3869
  } | undefined;
3866
3870
  reviewRuns?: PrReviewResult[] | undefined;
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import { parse } from "yaml";
17
17
  import { FACTORY_PROOF_GATE_STEP_NAME, GitHubApiError, mintInstallationToken, productionImpactTargetOutput, readVitestProfileDocument } from "@patronage/factory-ci";
18
18
  import { promisify } from "node:util";
19
19
  //#region package.json
20
- var version = "1.0.0-alpha.17";
20
+ var version = "1.0.0-alpha.18";
21
21
  //#endregion
22
22
  //#region src/review-rungs.ts
23
23
  const EVIDENCE_REVIEW_RUNGS$1 = [
@@ -1198,11 +1198,16 @@ const impactConfigSchema = z.object({
1198
1198
  });
1199
1199
  })
1200
1200
  }).strict();
1201
+ const lifecycleContractSchema = z.object({
1202
+ command: z.string().min(1).describe("Package-script invocation hosted CI runs for the non-credentialed lifecycle-contract lane (for example `pnpm test:factory`). Never a direct Vitest invocation."),
1203
+ jobName: z.string().min(1).optional().describe("Display name for the generated GitHub Actions job. Defaults to Factory / Alchemy Contracts when omitted.")
1204
+ }).strict().describe("Opt-in hosted lifecycle-contract lane. Presence includes the non-credentialed job in generated Verify; absence omits it. factory-ci does not load this object; generators pass it as typed options (ADR 0021).");
1201
1205
  const factoryProjectProfileSchema = z.object({
1202
1206
  $schema: z.string().min(1).optional(),
1203
1207
  extensions: z.record(z.string(), z.unknown()).optional(),
1204
1208
  hq: hqIngestConfigSchema.optional(),
1205
1209
  impact: impactConfigSchema.optional(),
1210
+ lifecycleContract: lifecycleContractSchema.optional(),
1206
1211
  repository: z.object({
1207
1212
  name: z.string().min(1),
1208
1213
  owner: z.string().min(1)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patronage/software-factory",
3
- "version": "1.0.0-alpha.17",
3
+ "version": "1.0.0-alpha.18",
4
4
  "description": "Shared Patronage software factory CLI and project-profile validation tools",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -37,7 +37,7 @@
37
37
  "picomatch": "^4.0.5",
38
38
  "yaml": "^2.9.0",
39
39
  "zod": "4.4.3",
40
- "@patronage/factory-ci": "1.0.0-alpha.17"
40
+ "@patronage/factory-ci": "1.0.0-alpha.18"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "24.13.3",