@patronage/software-factory 1.0.0-alpha.25 → 1.0.0-alpha.26

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
@@ -17,8 +17,8 @@ declare const boundaryManifestBaseSchema: z.ZodObject<{
17
17
  boundary: z.ZodString;
18
18
  closeout: z.ZodOptional<z.ZodObject<{
19
19
  review: z.ZodEnum<{
20
- "independent-model": "independent-model";
21
20
  oracle: "oracle";
21
+ "independent-model": "independent-model";
22
22
  human: "human";
23
23
  }>;
24
24
  }, z.core.$loose>>;
@@ -36,8 +36,8 @@ declare const boundaryManifestBaseSchema: z.ZodObject<{
36
36
  issues: z.ZodArray<z.ZodNumber>;
37
37
  name: z.ZodString;
38
38
  review: z.ZodEnum<{
39
- "independent-model": "independent-model";
40
39
  oracle: "oracle";
40
+ "independent-model": "independent-model";
41
41
  human: "human";
42
42
  }>;
43
43
  }, z.core.$loose>>;
@@ -46,8 +46,8 @@ declare const boundaryManifestSchema: z.ZodObject<{
46
46
  boundary: z.ZodString;
47
47
  closeout: z.ZodOptional<z.ZodObject<{
48
48
  review: z.ZodEnum<{
49
- "independent-model": "independent-model";
50
49
  oracle: "oracle";
50
+ "independent-model": "independent-model";
51
51
  human: "human";
52
52
  }>;
53
53
  }, z.core.$loose>>;
@@ -65,8 +65,8 @@ declare const boundaryManifestSchema: z.ZodObject<{
65
65
  issues: z.ZodArray<z.ZodNumber>;
66
66
  name: z.ZodString;
67
67
  review: z.ZodEnum<{
68
- "independent-model": "independent-model";
69
68
  oracle: "oracle";
69
+ "independent-model": "independent-model";
70
70
  human: "human";
71
71
  }>;
72
72
  }, z.core.$loose>>;
@@ -151,8 +151,8 @@ declare const boundaryReviewProofBaseSchema: z.ZodObject<{
151
151
  }>;
152
152
  producer: z.ZodString;
153
153
  rung: z.ZodEnum<{
154
- "independent-model": "independent-model";
155
154
  oracle: "oracle";
155
+ "independent-model": "independent-model";
156
156
  human: "human";
157
157
  }>;
158
158
  schemaVersion: z.ZodLiteral<1>;
@@ -195,8 +195,8 @@ declare const boundaryReviewProofSchema: z.ZodObject<{
195
195
  }>;
196
196
  producer: z.ZodString;
197
197
  rung: z.ZodEnum<{
198
- "independent-model": "independent-model";
199
198
  oracle: "oracle";
199
+ "independent-model": "independent-model";
200
200
  human: "human";
201
201
  }>;
202
202
  schemaVersion: z.ZodLiteral<1>;
@@ -2478,8 +2478,8 @@ declare const evidenceEnvelopeBaseSchema: z.ZodObject<{
2478
2478
  producer: z.ZodString;
2479
2479
  requestId: z.ZodOptional<z.ZodString>;
2480
2480
  rung: z.ZodOptional<z.ZodEnum<{
2481
- "independent-model": "independent-model";
2482
2481
  oracle: "oracle";
2482
+ "independent-model": "independent-model";
2483
2483
  human: "human";
2484
2484
  }>>;
2485
2485
  schemaVersion: z.ZodLiteral<1>;
@@ -2505,8 +2505,8 @@ declare const evidenceEnvelopeSchema: z.ZodObject<{
2505
2505
  producer: z.ZodString;
2506
2506
  requestId: z.ZodOptional<z.ZodString>;
2507
2507
  rung: z.ZodOptional<z.ZodEnum<{
2508
- "independent-model": "independent-model";
2509
2508
  oracle: "oracle";
2509
+ "independent-model": "independent-model";
2510
2510
  human: "human";
2511
2511
  }>>;
2512
2512
  schemaVersion: z.ZodLiteral<1>;
@@ -2726,8 +2726,8 @@ declare const boundaryCheckProofSchema: z.ZodObject<{
2726
2726
  wave: z.ZodString;
2727
2727
  }, z.core.$strip>>;
2728
2728
  demandedRung: z.ZodOptional<z.ZodEnum<{
2729
- "independent-model": "independent-model";
2730
2729
  oracle: "oracle";
2730
+ "independent-model": "independent-model";
2731
2731
  human: "human";
2732
2732
  }>>;
2733
2733
  epicIssue: z.ZodNumber;
@@ -2742,8 +2742,8 @@ declare const boundaryCheckProofSchema: z.ZodObject<{
2742
2742
  commentUrl: z.ZodOptional<z.ZodString>;
2743
2743
  producer: z.ZodString;
2744
2744
  rung: z.ZodEnum<{
2745
- "independent-model": "independent-model";
2746
2745
  oracle: "oracle";
2746
+ "independent-model": "independent-model";
2747
2747
  human: "human";
2748
2748
  }>;
2749
2749
  sessionId: z.ZodOptional<z.ZodString>;
@@ -2759,8 +2759,8 @@ declare const boundaryCheckProofSchema: z.ZodObject<{
2759
2759
  value: z.ZodString;
2760
2760
  }, z.core.$strip>>;
2761
2761
  status: z.ZodEnum<{
2762
- blocked: "blocked";
2763
2762
  ready: "ready";
2763
+ blocked: "blocked";
2764
2764
  }>;
2765
2765
  }, z.core.$strip>;
2766
2766
  type BoundaryCheckProofRecord = z.infer<typeof boundaryCheckProofSchema>;
@@ -3853,8 +3853,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
3853
3853
  model: z.ZodString;
3854
3854
  tier: z.ZodEnum<{
3855
3855
  review: "review";
3856
- oracle: "oracle";
3857
3856
  delegate: "delegate";
3857
+ oracle: "oracle";
3858
3858
  workhorse: "workhorse";
3859
3859
  scout: "scout";
3860
3860
  }>;
@@ -3862,8 +3862,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
3862
3862
  startedAt: z.ZodString;
3863
3863
  tier: z.ZodEnum<{
3864
3864
  review: "review";
3865
- oracle: "oracle";
3866
3865
  delegate: "delegate";
3866
+ oracle: "oracle";
3867
3867
  workhorse: "workhorse";
3868
3868
  scout: "scout";
3869
3869
  }>;
@@ -3932,8 +3932,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
3932
3932
  model: z.ZodString;
3933
3933
  tier: z.ZodEnum<{
3934
3934
  review: "review";
3935
- oracle: "oracle";
3936
3935
  delegate: "delegate";
3936
+ oracle: "oracle";
3937
3937
  workhorse: "workhorse";
3938
3938
  scout: "scout";
3939
3939
  }>;
@@ -3941,8 +3941,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
3941
3941
  startedAt: z.ZodString;
3942
3942
  tier: z.ZodEnum<{
3943
3943
  review: "review";
3944
- oracle: "oracle";
3945
3944
  delegate: "delegate";
3945
+ oracle: "oracle";
3946
3946
  workhorse: "workhorse";
3947
3947
  scout: "scout";
3948
3948
  }>;
@@ -4002,8 +4002,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
4002
4002
  model: z.ZodString;
4003
4003
  tier: z.ZodEnum<{
4004
4004
  review: "review";
4005
- oracle: "oracle";
4006
4005
  delegate: "delegate";
4006
+ oracle: "oracle";
4007
4007
  workhorse: "workhorse";
4008
4008
  scout: "scout";
4009
4009
  }>;
@@ -4011,8 +4011,8 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
4011
4011
  startedAt: z.ZodString;
4012
4012
  tier: z.ZodEnum<{
4013
4013
  review: "review";
4014
- oracle: "oracle";
4015
4014
  delegate: "delegate";
4015
+ oracle: "oracle";
4016
4016
  workhorse: "workhorse";
4017
4017
  scout: "scout";
4018
4018
  }>;
@@ -4061,11 +4061,11 @@ declare const FACTORY_TRACE_EVENT_DEFINITIONS: readonly [DefinedTraceEvent<"revi
4061
4061
  engine: string;
4062
4062
  layerSource: "committedDefault" | "operatorSession" | "userConfig";
4063
4063
  model: string;
4064
- tier: "review" | "oracle" | "delegate" | "workhorse" | "scout";
4064
+ tier: "review" | "delegate" | "oracle" | "workhorse" | "scout";
4065
4065
  fallbackTier?: "delegate" | undefined;
4066
4066
  };
4067
4067
  startedAt: string;
4068
- tier: "review" | "oracle" | "delegate" | "workhorse" | "scout";
4068
+ tier: "review" | "delegate" | "oracle" | "workhorse" | "scout";
4069
4069
  tokenUsage: {
4070
4070
  source: "cursor-csv" | "codex-json" | "cursor-json" | "claude-json";
4071
4071
  status: "available";
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import { parse } from "yaml";
18
18
  import { promisify } from "node:util";
19
19
  import { FACTORY_PROOF_GATE_APP_ID, FACTORY_PROOF_GATE_STEP_NAME, GitHubApiError, mintInstallationToken, previewProofInventory, productionImpactTargetOutput, readVitestProfileDocument } from "@patronage/factory-ci";
20
20
  //#region package.json
21
- var version = "1.0.0-alpha.25";
21
+ var version = "1.0.0-alpha.26";
22
22
  //#endregion
23
23
  //#region src/review-rungs.ts
24
24
  const EVIDENCE_REVIEW_RUNGS = [
@@ -18760,7 +18760,7 @@ const productionImpactSummaryLines = (decision) => decision.basis.classification
18760
18760
  //#endregion
18761
18761
  //#region src/commands/production-impact.ts
18762
18762
  function createProductionImpactCommand(output) {
18763
- return markCwdOptionDefault(new Command("production:impact").description("Classify production targets from an exact merge-push before/after diff").option("--before <sha>", "merge-push before commit SHA").option("--after <sha>", "merge-push after commit SHA").option("--cwd <path>", "repository working directory", collectCwdOption).option("--profile <path>", "path to the project profile JSON file").option("--github-output <path>", "append stable decision outputs to a GitHub Actions output file").option("--github-summary <path>", "append a human-readable decision to a GitHub Actions summary file").option("--json", "print the complete decision as JSON").action((options) => {
18763
+ return markCwdOptionDefault(new Command("production:impact").description("Classify production targets from an exact merge-push before/after diff").option("--before <sha>", "merge-push before commit SHA").option("--after <sha>", "merge-push after commit SHA").option("--cwd <path>", "repository working directory", collectCwdOption).option("--profile <path>", "path to the project profile JSON file (default: software-factory.profile.json in --cwd)").option("--github-output <path>", "append stable decision outputs to a GitHub Actions output file").option("--github-summary <path>", "append a human-readable decision to a GitHub Actions summary file").option("--json", "print the complete decision as JSON").action((options) => {
18764
18764
  const decision = runProductionImpact({
18765
18765
  after: options.after,
18766
18766
  before: options.before,
@@ -51,6 +51,7 @@ Load only matching references:
51
51
  | Crypto and randomness | Weak hashes, predictable random values, static IVs, ECB mode, timing-unsafe compares, unsigned tokens, or custom crypto protect security-sensitive data. |
52
52
  | Abuse controls | Sensitive or expensive operations such as login, MFA, invites, exports, password reset, billing, email, SMS, or paid API calls lack meaningful rate, quota, replay, or idempotency controls. |
53
53
  | CI and workflows | Workflow changes let untrusted or caller-controlled code, text, artifacts, caches, or actions reach privileged execution, secrets, write tokens, releases, packages, deployments, or sensitive runners. |
54
+ | Infrastructure exposure | An infrastructure declaration publishes a service to the internet without a declared authentication mechanism. In an Alchemy stack, a Worker declaring `workersDev: true`, a `domain`, or `routes` must also declare its guard — Cloudflare Access, an auth secret binding, or an equivalent check inside the Worker — or carry a written reason in the change for why it is public. |
54
55
 
55
56
  ## Severity
56
57
 
@@ -22,6 +22,7 @@ Use this when reviewing JavaScript, TypeScript, Node, React, Next.js, or browser
22
22
  | Path traversal | `path.join(root, userPath)` without realpath containment, archive extraction by entry name | Normalize and resolve real paths, verify containment, generate server-side filenames |
23
23
  | Webhook forgery | State-changing webhook parses JSON before verifying signature or skips timestamp/replay checks | Verify raw body signature, timestamp freshness, replay/idempotency, and provider secret before side effects |
24
24
  | Secrets exposure | Secrets in client components, `NEXT_PUBLIC_*`, serialized props, logs, or error responses | Server-only reads, redacted logs, safe error messages, no hardcoded production fallback |
25
+ | Public Worker without auth | Alchemy `Cloudflare.Worker` gains `workersDev: true`, a `domain`, or a `routes` entry while its handler enforces no identity check | Cloudflare Access on the Worker (`access` prop or an Access application destination), an auth secret binding the handler verifies, or a written reason in the change for why the Worker is public |
25
26
 
26
27
  ## False-Positive Controls
27
28
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patronage/software-factory",
3
- "version": "1.0.0-alpha.25",
3
+ "version": "1.0.0-alpha.26",
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.25"
40
+ "@patronage/factory-ci": "1.0.0-alpha.26"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "24.13.3",