@empire-builder-kit/nx 1.0.0-rc.32 → 1.0.0-rc.33

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/package.json +3 -3
  2. package/src/developer-agent/model.d.ts +1 -1
  3. package/src/developer-agent/operation-registry.js +25 -3
  4. package/src/developer-agent/operation-registry.js.map +1 -1
  5. package/src/developer-agent/planning.js +9 -4
  6. package/src/developer-agent/planning.js.map +1 -1
  7. package/src/developer-agent/validation.js +5 -1
  8. package/src/developer-agent/validation.js.map +1 -1
  9. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +1 -0
  10. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +4 -2
  11. package/src/executors/foundation-profile-preflight/production-database-safeguard.js.map +1 -1
  12. package/src/executors/local-deploy/local-deploy.d.ts +9 -0
  13. package/src/executors/local-deploy/local-deploy.js +45 -1
  14. package/src/executors/local-deploy/local-deploy.js.map +1 -1
  15. package/src/executors/secret-initialize/secret-initialize.d.ts +2 -0
  16. package/src/executors/secret-initialize/secret-initialize.js +57 -3
  17. package/src/executors/secret-initialize/secret-initialize.js.map +1 -1
  18. package/src/executors/sst-lifecycle/run-sst-command.d.ts +2 -0
  19. package/src/executors/sst-lifecycle/run-sst-command.js +4 -0
  20. package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
  21. package/src/foundation/index.d.ts +1 -0
  22. package/src/foundation/index.js +8 -0
  23. package/src/foundation/index.js.map +1 -1
  24. package/src/foundation/private-smoke-access.d.ts +23 -0
  25. package/src/foundation/private-smoke-access.js +127 -0
  26. package/src/foundation/private-smoke-access.js.map +1 -0
  27. package/src/foundation/private-smoke-admission.d.ts +43 -0
  28. package/src/foundation/private-smoke-admission.js +158 -0
  29. package/src/foundation/private-smoke-admission.js.map +1 -0
  30. package/src/foundation/private-smoke-control-plane.d.ts +18 -0
  31. package/src/foundation/private-smoke-control-plane.js +173 -0
  32. package/src/foundation/private-smoke-control-plane.js.map +1 -0
  33. package/src/generators/preset/dependency-overrides.d.ts +8 -0
  34. package/src/generators/preset/dependency-overrides.js +55 -0
  35. package/src/generators/preset/dependency-overrides.js.map +1 -0
  36. package/src/generators/preset/tool-versions.d.ts +2 -0
  37. package/src/generators/preset/tool-versions.js +3 -1
  38. package/src/generators/preset/tool-versions.js.map +1 -1
  39. package/src/generators/preset/workspace-files-developer-agent.js +19 -6
  40. package/src/generators/preset/workspace-files-developer-agent.js.map +1 -1
  41. package/src/generators/preset/workspace-files-thin-deploy.d.ts +2 -0
  42. package/src/generators/preset/workspace-files-thin-deploy.js +60 -0
  43. package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -1
  44. package/src/generators/preset/workspace-files-thin-docs.js +18 -0
  45. package/src/generators/preset/workspace-files-thin-docs.js.map +1 -1
  46. package/src/generators/preset/workspace-files.d.ts +1 -0
  47. package/src/generators/preset/workspace-files.js +17 -3
  48. package/src/generators/preset/workspace-files.js.map +1 -1
  49. package/src/generators/repository-policy/schema.json +1 -1
  50. package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
  51. package/src/generators/slice/built-in-plan-background-work-files.js +89 -0
  52. package/src/generators/slice/built-in-plan-background-work-files.js.map +1 -0
  53. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +20 -4
  54. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -1
  55. package/src/generators/slice/built-in-plan-infrastructure-files.js +10 -9
  56. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -1
  57. package/src/generators/slice/built-in-plan-operations-files.js +8 -10
  58. package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
  59. package/src/generators/slice/built-in-plan.js +3 -0
  60. package/src/generators/slice/built-in-plan.js.map +1 -1
  61. package/src/generators/upgrade/upgrade.js +16 -9
  62. package/src/generators/upgrade/upgrade.js.map +1 -1
  63. package/src/generators/workload/workload.js +1 -1
  64. package/src/performance/model.d.ts +1 -1
  65. package/src/repository-policy/capacity-migration.d.ts +3 -0
  66. package/src/repository-policy/capacity-migration.js +21 -0
  67. package/src/repository-policy/capacity-migration.js.map +1 -0
  68. package/src/repository-policy/foundation-profile.js +10 -0
  69. package/src/repository-policy/foundation-profile.js.map +1 -1
  70. package/src/repository-policy/policy.d.ts +1 -1
  71. package/src/repository-policy/policy.js +5 -0
  72. package/src/repository-policy/policy.js.map +1 -1
  73. package/src/schemas/repository-policy-v1.json +1 -1
  74. package/src/supply-chain/generated-files.js +11 -0
  75. package/src/supply-chain/generated-files.js.map +1 -1
  76. package/src/supply-chain/generated-scanner-command.js +1 -1
  77. package/src/supply-chain/scanner.js +3 -0
  78. package/src/supply-chain/scanner.js.map +1 -1
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openPrivateSmokeControlPlane = openPrivateSmokeControlPlane;
4
+ const client_wafv2_1 = require("@aws-sdk/client-wafv2");
5
+ const client_cloudfront_1 = require("@aws-sdk/client-cloudfront");
6
+ function check(condition, message) {
7
+ if (!condition)
8
+ throw new Error(`Private smoke access: ${message}`);
9
+ }
10
+ /** Only global WAF resources attached to the exact generated Router are eligible. */
11
+ async function openPrivateSmokeControlPlane(identity, smokeUrl, clients = {
12
+ waf: new client_wafv2_1.WAFV2Client({
13
+ region: 'us-east-1',
14
+ endpoint: 'https://wafv2.us-east-1.amazonaws.com',
15
+ maxAttempts: 3,
16
+ requestHandler: { connectionTimeout: 10_000, requestTimeout: 30_000 },
17
+ }),
18
+ cloudfront: new client_cloudfront_1.CloudFrontClient({
19
+ region: 'us-east-1',
20
+ endpoint: 'https://cloudfront.amazonaws.com',
21
+ maxAttempts: 3,
22
+ requestHandler: { connectionTimeout: 10_000, requestTimeout: 30_000 },
23
+ }),
24
+ }) {
25
+ check(/^\d{12}$/.test(identity.account) &&
26
+ /^[a-z0-9][a-z0-9-]{0,62}$/.test(identity.workspace) &&
27
+ ['development', 'staging', 'production'].includes(identity.stage) &&
28
+ /^sha256:[a-f0-9]{64}$/.test(identity.policyDigest), 'invalid committed resource identity');
29
+ const url = smokeUrl === undefined ? undefined : new URL(smokeUrl);
30
+ if (url)
31
+ check(url.protocol === 'https:' && !url.username && !url.password && !url.port, 'credential-free HTTPS Router required');
32
+ const name = `foundation-${identity.stage}-router-ipv4-allowlist`;
33
+ const ipSets = [];
34
+ let marker;
35
+ const seen = new Set();
36
+ do {
37
+ const page = await clients.waf.send(new client_wafv2_1.ListIPSetsCommand({
38
+ Scope: 'CLOUDFRONT',
39
+ Limit: 100,
40
+ NextMarker: marker,
41
+ }));
42
+ ipSets.push(...(page.IPSets ?? []));
43
+ marker = page.NextMarker;
44
+ check(!marker || !seen.has(marker), 'IP-set pagination did not advance');
45
+ if (marker)
46
+ seen.add(marker);
47
+ check(seen.size <= 100, 'IP-set inventory exceeds bounded inspection');
48
+ } while (marker);
49
+ const matches = ipSets.filter((set) => set.Name === name);
50
+ check(matches.length === 1 && matches[0].Id, 'exact stage IPv4 IP set missing or ambiguous; configure a baseline IPv4 CIDR before private hosted smoke');
51
+ const selected = matches[0];
52
+ const arn = `arn:aws:wafv2:us-east-1:${identity.account}:global/ipset/${name}/${selected.Id}`;
53
+ check(selected.ARN === arn, 'IP-set account/scope/identity mismatch');
54
+ const expectedTags = {
55
+ 'ebk:managed-by': 'empire-builder-kit',
56
+ 'ebk:owner': 'foundation',
57
+ 'ebk:stage': identity.stage,
58
+ 'ebk:workspace': identity.workspace,
59
+ 'ebk:policy-digest': identity.policyDigest,
60
+ };
61
+ async function attestTags(resourceArn) {
62
+ const tags = {};
63
+ let tagMarker;
64
+ const markers = new Set();
65
+ do {
66
+ const page = await clients.waf.send(new client_wafv2_1.ListTagsForResourceCommand({
67
+ ResourceARN: resourceArn,
68
+ NextMarker: tagMarker,
69
+ Limit: 100,
70
+ }));
71
+ for (const tag of page.TagInfoForResource?.TagList ?? []) {
72
+ if (tag.Key && tag.Value)
73
+ tags[tag.Key] = tag.Value;
74
+ }
75
+ tagMarker = page.NextMarker;
76
+ check(!tagMarker || !markers.has(tagMarker), 'tag pagination did not advance');
77
+ if (tagMarker)
78
+ markers.add(tagMarker);
79
+ check(markers.size <= 10, 'tag inventory exceeds bounded inspection');
80
+ } while (tagMarker);
81
+ for (const [key, value] of Object.entries(expectedTags))
82
+ check(tags[key] === value, 'WAF ownership or committed policy differs');
83
+ }
84
+ await attestTags(arn);
85
+ // Cleanup never expands access; exact tagged IP-set identity and lease are sufficient.
86
+ // Admission additionally proves the Router-to-ACL-to-IP-set attachment.
87
+ if (url) {
88
+ const distributions = [];
89
+ marker = undefined;
90
+ seen.clear();
91
+ do {
92
+ const page = await clients.cloudfront.send(new client_cloudfront_1.ListDistributionsCommand({ Marker: marker }));
93
+ distributions.push(...(page.DistributionList?.Items ?? []));
94
+ marker = page.DistributionList?.NextMarker;
95
+ check(!page.DistributionList?.IsTruncated || marker, 'truncated Router inventory has no continuation');
96
+ check(!marker || !seen.has(marker), 'Router pagination did not advance');
97
+ if (marker)
98
+ seen.add(marker);
99
+ check(seen.size <= 100, 'Router inventory exceeds bounded inspection');
100
+ } while (marker);
101
+ const routers = distributions.filter((router) => router.DomainName === url.hostname ||
102
+ router.Aliases?.Items?.includes(url.hostname));
103
+ check(routers.length === 1 &&
104
+ routers[0].Enabled &&
105
+ routers[0].ARN?.startsWith(`arn:aws:cloudfront::${identity.account}:distribution/`), 'exact account Router missing, disabled, or ambiguous');
106
+ const acls = [];
107
+ marker = undefined;
108
+ seen.clear();
109
+ do {
110
+ const page = await clients.waf.send(new client_wafv2_1.ListWebACLsCommand({
111
+ Scope: 'CLOUDFRONT',
112
+ Limit: 100,
113
+ NextMarker: marker,
114
+ }));
115
+ acls.push(...(page.WebACLs ?? []));
116
+ marker = page.NextMarker;
117
+ check(!marker || !seen.has(marker), 'Web ACL pagination did not advance');
118
+ if (marker)
119
+ seen.add(marker);
120
+ check(seen.size <= 100, 'Web ACL inventory exceeds bounded inspection');
121
+ } while (marker);
122
+ const attached = acls.filter((acl) => acl.ARN === routers[0].WebACLId);
123
+ check(attached.length === 1 &&
124
+ attached[0].Id &&
125
+ attached[0].Name &&
126
+ attached[0].ARN?.startsWith(`arn:aws:wafv2:us-east-1:${identity.account}:global/webacl/`), 'Router Web ACL is outside the exact account/scope');
127
+ const acl = attached[0];
128
+ await attestTags(acl.ARN);
129
+ const { WebACL } = await clients.waf.send(new client_wafv2_1.GetWebACLCommand({ Scope: 'CLOUDFRONT', Name: acl.Name, Id: acl.Id }));
130
+ check(WebACL?.ARN === acl.ARN, 'Web ACL readback identity differs');
131
+ const rules = WebACL?.Rules?.filter((rule) => rule.Name === 'StageIpAllowlist') ?? [];
132
+ const statement = rules[0]?.Statement?.NotStatement?.Statement;
133
+ const refs = statement?.IPSetReferenceStatement
134
+ ? [statement.IPSetReferenceStatement]
135
+ : statement?.OrStatement?.Statements?.map((item) => item.IPSetReferenceStatement);
136
+ check(rules.length === 1 &&
137
+ rules[0].Action?.Block &&
138
+ refs?.length &&
139
+ refs.every((ref) => ref?.ARN) &&
140
+ refs.filter((ref) => ref?.ARN === arn).length === 1, 'Router blocking rule does not reference the exact IP set');
141
+ // A dual-stack rule may have only its same-stage IPv6 companion, never an arbitrary second set.
142
+ check(refs.every((ref) => ref?.ARN === arn ||
143
+ ref?.ARN?.startsWith(`arn:aws:wafv2:us-east-1:${identity.account}:global/ipset/foundation-${identity.stage}-router-ipv6-allowlist/`)), 'Router allowlist contains an out-of-stage reference');
144
+ }
145
+ const key = { Name: name, Id: selected.Id, Scope: 'CLOUDFRONT' };
146
+ return {
147
+ arn,
148
+ async read() {
149
+ await attestTags(arn);
150
+ const { IPSet, LockToken } = await clients.waf.send(new client_wafv2_1.GetIPSetCommand(key));
151
+ check(IPSet?.ARN === arn &&
152
+ IPSet.Name === name &&
153
+ IPSet.IPAddressVersion === 'IPV4' &&
154
+ LockToken &&
155
+ Array.isArray(IPSet.Addresses), 'live IP-set identity mismatch');
156
+ return {
157
+ addresses: IPSet.Addresses,
158
+ description: IPSet.Description ?? '',
159
+ lockToken: LockToken,
160
+ };
161
+ },
162
+ async update(previous, next) {
163
+ await attestTags(arn);
164
+ await clients.waf.send(new client_wafv2_1.UpdateIPSetCommand({
165
+ ...key,
166
+ LockToken: previous.lockToken,
167
+ Addresses: [...next.addresses],
168
+ Description: next.description || undefined,
169
+ }));
170
+ },
171
+ };
172
+ }
173
+ //# sourceMappingURL=private-smoke-control-plane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-smoke-control-plane.js","sourceRoot":"","sources":["../../../../../packages/nx/src/foundation/private-smoke-control-plane.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const DEPENDENCY_OVERRIDES_PATH = "supply-chain/dependency-overrides.json";
2
+ export interface DependencyOverrides {
3
+ schemaVersion: 1;
4
+ overrides: Record<string, string>;
5
+ }
6
+ /** Seeded pins are data, never package-manager hooks or alternate registries. */
7
+ export declare function parseDependencyOverrides(value: unknown): DependencyOverrides;
8
+ export declare function renderDependencyOverridesYaml(value: DependencyOverrides): string;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEPENDENCY_OVERRIDES_PATH = void 0;
4
+ exports.parseDependencyOverrides = parseDependencyOverrides;
5
+ exports.renderDependencyOverridesYaml = renderDependencyOverridesYaml;
6
+ const semver_1 = require("semver");
7
+ const deterministic_order_js_1 = require("../../deterministic-order.js");
8
+ exports.DEPENDENCY_OVERRIDES_PATH = 'supply-chain/dependency-overrides.json';
9
+ function isSelector(value) {
10
+ const parts = value.split('>');
11
+ if (parts.length > 2)
12
+ return false;
13
+ return parts.every((part) => {
14
+ const match = /^((?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*)(?:@(.+))?$/u.exec(part);
15
+ return (match !== null &&
16
+ (match[2] === undefined || (0, semver_1.validRange)(match[2]) !== null));
17
+ });
18
+ }
19
+ /** Seeded pins are data, never package-manager hooks or alternate registries. */
20
+ function parseDependencyOverrides(value) {
21
+ const fail = () => {
22
+ throw new Error(`${exports.DEPENDENCY_OVERRIDES_PATH} must contain schemaVersion 1 and at most 256 npm selectors mapped to exact versions.`);
23
+ };
24
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
25
+ return fail();
26
+ const record = value;
27
+ if (record.schemaVersion !== 1 ||
28
+ Object.keys(record).some((key) => key !== 'schemaVersion' && key !== 'overrides'))
29
+ return fail();
30
+ if (typeof record.overrides !== 'object' ||
31
+ record.overrides === null ||
32
+ Array.isArray(record.overrides))
33
+ return fail();
34
+ const entries = Object.entries(record.overrides);
35
+ if (entries.length > 256)
36
+ return fail();
37
+ for (const [selector, version] of entries) {
38
+ if (selector.length > 256 ||
39
+ !isSelector(selector) ||
40
+ typeof version !== 'string' ||
41
+ (0, semver_1.valid)(version) !== version)
42
+ return fail();
43
+ }
44
+ return {
45
+ schemaVersion: 1,
46
+ overrides: Object.fromEntries(entries.sort(([left], [right]) => (0, deterministic_order_js_1.compareUtf16)(left, right))),
47
+ };
48
+ }
49
+ function renderDependencyOverridesYaml(value) {
50
+ const entries = Object.entries(value.overrides);
51
+ return entries.length === 0
52
+ ? ''
53
+ : `overrides:\n${entries.map(([selector, version]) => ` ${JSON.stringify(selector)}: ${JSON.stringify(version)}`).join('\n')}\n`;
54
+ }
55
+ //# sourceMappingURL=dependency-overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-overrides.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/dependency-overrides.ts"],"names":[],"mappings":";;;AA2BA,4DAuCC;AAED,sEAOC;AA3ED,mCAA2C;AAC3C,yEAA4D;AAE/C,QAAA,yBAAyB,GACpC,wCAAwC,CAAC;AAO3C,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,MAAM,KAAK,GACT,iEAAiE,CAAC,IAAI,CACpE,IAAI,CACL,CAAC;QACJ,OAAO,CACL,KAAK,KAAK,IAAI;YACd,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAC1D,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,SAAgB,wBAAwB,CAAC,KAAc;IACrD,MAAM,IAAI,GAAG,GAAU,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,iCAAyB,uFAAuF,CACpH,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,OAAO,IAAI,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IACE,MAAM,CAAC,aAAa,KAAK,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACtB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,WAAW,CACxD;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,SAAS,KAAK,IAAI;QACzB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QAE/B,OAAO,IAAI,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;QAC1C,IACE,QAAQ,CAAC,MAAM,GAAG,GAAG;YACrB,CAAC,UAAU,CAAC,QAAQ,CAAC;YACrB,OAAO,OAAO,KAAK,QAAQ;YAC3B,IAAA,cAAK,EAAC,OAAO,CAAC,KAAK,OAAO;YAE1B,OAAO,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC,WAAW,CAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAA,qCAAY,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CACnC;KAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,6BAA6B,CAC3C,KAA0B;IAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,eAAe,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACtI,CAAC"}
@@ -8,6 +8,8 @@ export declare const WORKSPACE_SST_VERSION: "4.17.1";
8
8
  export declare const WORKSPACE_NODE_VERSION: "22.23.1";
9
9
  export declare const WORKSPACE_PNPM_VERSION: "11.20.0";
10
10
  export declare const WORKSPACE_VITEST_VERSION: "4.1.4";
11
+ /** Python packaging runtime required by the pinned SST-generated workloads. */
12
+ export declare const WORKSPACE_UV_VERSION: "0.11.28";
11
13
  export declare const WORKSPACE_PNPM_SHA512: "9a6f330a95b66446ea088faf1521405a8a01f07fde7124cc9958dfed52d4bb436737e65b08f85f37b46fcba375092558ac51262b816844b22f63406ed166bfee";
12
14
  export declare const WORKSPACE_PNPM_DESCRIPTOR: "pnpm@11.20.0+sha512.9a6f330a95b66446ea088faf1521405a8a01f07fde7124cc9958dfed52d4bb436737e65b08f85f37b46fcba375092558ac51262b816844b22f63406ed166bfee";
13
15
  /**
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WORKSPACE_SST_NPM_INTEGRITY = exports.WORKSPACE_PNPM_DESCRIPTOR = exports.WORKSPACE_PNPM_SHA512 = exports.WORKSPACE_VITEST_VERSION = exports.WORKSPACE_PNPM_VERSION = exports.WORKSPACE_NODE_VERSION = exports.WORKSPACE_SST_VERSION = void 0;
3
+ exports.WORKSPACE_SST_NPM_INTEGRITY = exports.WORKSPACE_PNPM_DESCRIPTOR = exports.WORKSPACE_PNPM_SHA512 = exports.WORKSPACE_UV_VERSION = exports.WORKSPACE_VITEST_VERSION = exports.WORKSPACE_PNPM_VERSION = exports.WORKSPACE_NODE_VERSION = exports.WORKSPACE_SST_VERSION = void 0;
4
4
  /**
5
5
  * Framework-required tool versions written into newly generated workspaces.
6
6
  *
@@ -11,6 +11,8 @@ exports.WORKSPACE_SST_VERSION = '4.17.1';
11
11
  exports.WORKSPACE_NODE_VERSION = '22.23.1';
12
12
  exports.WORKSPACE_PNPM_VERSION = '11.20.0';
13
13
  exports.WORKSPACE_VITEST_VERSION = '4.1.4';
14
+ /** Python packaging runtime required by the pinned SST-generated workloads. */
15
+ exports.WORKSPACE_UV_VERSION = '0.11.28';
14
16
  exports.WORKSPACE_PNPM_SHA512 = '9a6f330a95b66446ea088faf1521405a8a01f07fde7124cc9958dfed52d4bb436737e65b08f85f37b46fcba375092558ac51262b816844b22f63406ed166bfee';
15
17
  exports.WORKSPACE_PNPM_DESCRIPTOR = `pnpm@${exports.WORKSPACE_PNPM_VERSION}+sha512.${exports.WORKSPACE_PNPM_SHA512}`;
16
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tool-versions.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/tool-versions.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,QAAiB,CAAC;AAC1C,QAAA,sBAAsB,GAAG,SAAkB,CAAC;AAC5C,QAAA,sBAAsB,GAAG,SAAkB,CAAC;AAC5C,QAAA,wBAAwB,GAAG,OAAgB,CAAC;AAC5C,QAAA,qBAAqB,GAChC,kIAA2I,CAAC;AACjI,QAAA,yBAAyB,GACpC,QAAQ,8BAAsB,WAAW,6BAAqB,EAAW,CAAC;AAE5E;;;;GAIG;AACU,QAAA,2BAA2B,GACtC,iGAA0G,CAAC"}
1
+ {"version":3,"file":"tool-versions.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/tool-versions.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,QAAiB,CAAC;AAC1C,QAAA,sBAAsB,GAAG,SAAkB,CAAC;AAC5C,QAAA,sBAAsB,GAAG,SAAkB,CAAC;AAC5C,QAAA,wBAAwB,GAAG,OAAgB,CAAC;AACzD,+EAA+E;AAClE,QAAA,oBAAoB,GAAG,SAAkB,CAAC;AAC1C,QAAA,qBAAqB,GAChC,kIAA2I,CAAC;AACjI,QAAA,yBAAyB,GACpC,QAAQ,8BAAsB,WAAW,6BAAqB,EAAW,CAAC;AAE5E;;;;GAIG;AACU,QAAA,2BAA2B,GACtC,iGAA0G,CAAC"}
@@ -57,9 +57,17 @@ reported after that commit remain authenticated local-source Nx targets and reta
57
57
  documented same-user installed-toolchain boundary.
58
58
 
59
59
  Begin and hand off implementation work with
60
- \`pnpm nx run ${name}:work-markers\`. Verify the affected owner target, then run
61
- \`pnpm nx run ${name}:verify\` and the workspace \`pnpm verify\` barrier before claiming
62
- implemented-and-verified.
60
+ \`pnpm nx run ${name}:work-markers\`. For ordinary feature completion, run the
61
+ affected owner's tests, typecheck, lint, and ownership checks reported by the
62
+ Nx graph and agent context. Record exactly which checks passed and which remain
63
+ pending. Feature verification is not release qualification.
64
+
65
+ Reserve \`pnpm nx run ${name}:verify\` and the workspace \`pnpm verify\` barrier
66
+ for an adopter milestone or coherent integration batch. Release qualification
67
+ additionally requires the declared packed, platform, and external acceptance.
68
+ An explicitly required safety or contract check is never waived by this cadence.
69
+ Development accepts a dirty tree and needs no production confirmation or release
70
+ artifact; protected-stage source and approval requirements remain unchanged.
63
71
 
64
72
  If a Slice, Service, or Job generator reports a retained post-generation install, rerun
65
73
  that same generator with the exact scoped prefix
@@ -118,9 +126,14 @@ CLI and Nx contract complete their live pilots.
118
126
  - make an ordinary source edit only within the plan-derived adopter-owned project scope; or
119
127
  - route protected work to the matching GitHub environment and OIDC workflow without
120
128
  receiving local command arguments.
121
- 5. Verify the affected project or owner target, rerun
122
- \`pnpm nx run ${name}:work-markers\`, run \`pnpm nx run ${name}:verify\`, and complete
123
- \`pnpm verify\` before claiming completion.
129
+ 5. Run the affected owner's tests, typecheck, lint, and ownership checks from
130
+ the Nx graph and agent context, then rerun \`pnpm nx run ${name}:work-markers\`.
131
+ For ordinary feature completion, report those results without requiring the
132
+ full workspace barrier. At an adopter milestone or coherent integration batch,
133
+ also run \`pnpm nx run ${name}:verify\` and \`pnpm verify\`. Release qualification
134
+ adds the declared packed, platform, and external acceptance. Feature verification
135
+ is not release qualification; no explicitly required safety or contract check
136
+ is waived, and pending external proof remains pending in the handoff.
124
137
  6. Fill an adopter-owned copy of the seeded template, then run
125
138
  \`ebk agent handoff <handoff.json>\` to validate exact resumable state. A different actor
126
139
  uses \`ebk agent resume <handoff.json>\` and must re-inspect current state rather than
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-files-developer-agent.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-developer-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-files-developer-agent.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-developer-agent.ts"],"names":[],"mappings":";;;AAykBA,sFAuBC;AAhmBD,6DAQwC;AAG3B,QAAA,4BAA4B,GAAG,yBAAkC,CAAC;AAClE,QAAA,qCAAqC,GAChD,4CAAqD,CAAC;AAC3C,QAAA,uCAAuC,GAClD,kCAA2C,CAAC;AAEjC,QAAA,sCAAsC,GAAG;IACpD,oCAA4B;IAC5B,6CAAqC;IACrC,+CAAuC;CAC/B,CAAC;AAgBX,MAAM,0BAA0B,GAAG;IACjC,0BAA0B,EACxB,wEAAwE;IAC1E,oCAAoC,EAClC,kFAAkF;IACpF,yBAAyB,EACvB,+FAA+F;IACjG,0BAA0B,EACxB,+EAA+E;IACjF,qCAAqC,EACnC,wEAAwE;IAC1E,2BAA2B,EACzB,0DAA0D;CACC,CAAC;AAEhE,SAAS,2BAA2B,CAClC,iBAAoC;IAEpC,QAAQ,iBAAiB,EAAE,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO;;6CAEgC,CAAC;QAC1C,KAAK,qBAAqB;YACxB,OAAO;;0FAE6E,CAAC;QACvF,KAAK,gBAAgB;YACnB,OAAO;;2FAE8E,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,iBAAoC;IAEpC,OAAO;;iDAEwC,IAAI;;;;;;;;;;;;;;;;;;;gBAmBrC,IAAI;;;;;wBAKI,IAAI;;;;;;;;;;;;;;;;;;EAkB1B,2BAA2B,CAAC,iBAAiB,CAAC;;;;;;;CAO/C,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,yCAA8B,CAAC,GAAG,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,iBAAoC;IAEpC,OAAO;;8DAEqD,IAAI;;;;;;;;;;;;uBAY3C,IAAI;;;;mBAIR,IAAI;;;;;;;;;;;;;;;;8DAgBuC,IAAI;;;4BAGtC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkCA,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFlC,2BAA2B,CAAC,iBAAiB,CAAC;;;;;;;;;IAS5C,6CAAqC;;;;;;;;;;;;;EAavC,mBAAmB,EAAE;;IAEnB,6CAAqC;8BACX,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoD5B,+CAAuC;CAC5C,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA2C;IAE3C,MAAM,qBAAqB,GAAG,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACzD,MAAM,wBAAwB,GAC5B,wDAAwD,CAAC;IAC3D,MAAM,oBAAoB,GAAG,GAAG,OAAO,CAAC,IAAI,SAAS,CAAC;IACtD,OAAO;QACL,gBAAgB,EAAE,EAAE;QACpB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QACpC,oBAAoB,EAAE,KAAK;QAC3B,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,uCAA4B;QAClC,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE;YACd,gBAAgB,EAAE,KAAK;YACvB,SAAS,EAAE,WAAW;YACtB,WAAW,EACT,2FAA2F;SAC9F;QACD,UAAU,EAAE;YACV;gBACE,SAAS,EAAE,cAAc;gBACzB,EAAE,EAAE,eAAe,OAAO,CAAC,IAAI,EAAE;gBACjC,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE;oBACL,SAAS,EAAE,EAAE;oBACb,eAAe,EAAE,CAAC,QAAQ,CAAC;oBAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;oBACxB,oBAAoB,EAAE,CAAC,oBAAoB,CAAC;iBAC7C;aACF;SACF;QACD,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QACrC,UAAU,EAAE;YACV,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,+BAA+B;YACxC,MAAM,EAAE,qBAAqB;YAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,QAAQ,EAAE,gCAAgC;SAC3C;QACD,gBAAgB,EAAE,CAAC,QAAQ,CAAC;QAC5B,uBAAuB,EAAE,EAAE;QAC3B,oBAAoB,EAAE,CAAC,oBAAoB,CAAC;QAC5C,2BAA2B,EAAE,CAAC,oBAAoB,CAAC;QACnD,OAAO,EAAE;YACP;gBACE,QAAQ,EAAE;oBACR,SAAS,EAAE,EAAE;oBACb,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;iBACzB;gBACD,SAAS,EAAE;oBACT;wBACE,MAAM,EAAE,qBAAqB;wBAC7B,aAAa,EAAE,QAAQ;wBACvB,IAAI,EAAE,8BAA8B;wBACpC,YAAY,EAAE,qBAAqB;wBACnC,SAAS,EAAE,wBAAwB;qBACpC;iBACF;gBACD,OAAO,EAAE;oBACP,iBAAiB,EAAE,EAAE;oBACrB,KAAK,EAAE,EAAE;iBACV;gBACD,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;gBACpC,IAAI,EAAE,sCAA2B;gBACjC,cAAc,EAAE;oBACd,gBAAgB,EAAE,KAAK;oBACvB,SAAS,EAAE,WAAW;oBACtB,WAAW,EACT,sEAAsE;iBACzE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,eAAe,OAAO,CAAC,IAAI,EAAE;oBACnC,gBAAgB,EAAE,EAAE;iBACrB;gBACD,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;gBACrC,aAAa,EAAE,kDAAuC;gBACtD,MAAM,EAAE;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtB,QAAQ,EAAE,gCAAgC;iBAC3C;gBACD,eAAe,EAAE;oBACf,MAAM,EAAE,qBAAqB;oBAC7B,SAAS,EAAE,wBAAwB;oBACnC,MAAM,EAAE;wBACN,SAAS,EAAE,EAAE;wBACb,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;wBACpC,MAAM,EAAE;4BACN,MAAM,EAAE,CAAC;4BACT,MAAM,EAAE,CAAC;4BACT,WAAW,EAAE,CAAC;4BACd,OAAO,EAAE,CAAC;4BACV,OAAO,EAAE,CAAC;yBACX;wBACD,WAAW,EAAE;4BACX,KAAK,EAAE,OAAO;4BACd,QAAQ,EAAE,KAAK;yBAChB;wBACD,QAAQ,EAAE,EAAE;wBACZ,cAAc,EAAE,KAAK;wBACrB,IAAI,EAAE,yBAAyB;wBAC/B,SAAS,EAAE;4BACT,cAAc,EAAE,8BAA8B;4BAC9C,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,UAAU,EAAE,QAAQ;4BACpB,MAAM,EAAE,QAAQ;yBACjB;wBACD,OAAO,EAAE,QAAQ;wBACjB,YAAY,EAAE,IAAI;wBAClB,mBAAmB,EAAE,KAAK;wBAC1B,aAAa,EAAE,0DAA+C;wBAC9D,MAAM,EAAE;4BACN,mBAAmB,EAAE,EAAE;4BACvB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BACtB,kBAAkB,EAAE,0BAA0B,OAAO,CAAC,gBAAgB,EAAE;yBACzE;wBACD,MAAM,EAAE;4BACN,WAAW,EAAE,0BAA0B;4BACvC,UAAU,EAAE,IAAI;4BAChB,SAAS,EAAE,0BAA0B;yBACtC;wBACD,SAAS,EAAE,OAAO,CAAC,IAAI;qBACxB;oBACD,aAAa,EAAE,0DAA+C;iBAC/D;gBACD,IAAI,EAAE;oBACJ,eAAe,EAAE,kDAAuC;oBACxD,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,OAAO,CAAC,gBAAgB;iBAClC;gBACD,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE;oBACjB,WAAW,EAAE,EAAE;oBACf,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,EAAE;iBACZ;gBACD,YAAY,EAAE;oBACZ,QAAQ,EAAE,EAAE;oBACZ,OAAO,EAAE,CAAC,oBAAoB,CAAC;iBAChC;aACF;SACF;QACD,aAAa,EAAE,kDAAuC;QACtD,SAAS,EAAE;YACT,eAAe,EAAE,CAAC,QAAQ,CAAC;YAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SACzB;QACD,KAAK,EAAE,2BAA2B;QAClC,UAAU,EAAE;YACV,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,EAAE;YACrB,cAAc,EAAE,aAAa;YAC7B,qBAAqB,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YACjD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,gBAAgB,EAAE,CAAC,4BAA4B,CAAC;SACjD;QACD,IAAI,EAAE;YACJ,0BAA0B,EAAE,2CAA2C;YACvE,SAAS,EAAE,6BAA6B;SACzC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BR,CAAC;AACF,CAAC;AAED,SAAgB,qCAAqC,CACnD,OAA2C;IAE3C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO;QACL,cAAc,EAAE,oBAAoB,CAClC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,iBAAiB,CAC1B;QACD,KAAK,EAAE;YACL,CAAC,oCAA4B,CAAC,EAAE,aAAa,CAC3C,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,iBAAiB,CAC1B;YACD,CAAC,6CAAqC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CACxD,QAAQ,EACR,IAAI,EACJ,CAAC,CACF,IAAI;YACL,CAAC,+CAAuC,CAAC,EAAE,uBAAuB,EAAE;SACrE;QACD,WAAW,EAAE,8CAAsC;KACpD,CAAC;AACJ,CAAC"}
@@ -23,6 +23,8 @@ export interface ThinDeployWorkflowFilePlan {
23
23
  managedPaths: readonly [typeof THIN_DEPLOY_WORKFLOW_PATH];
24
24
  }
25
25
  export declare function renderThinDeployVerifyCaller(profile: DeploymentProfile): string;
26
+ /** @internal Run exactly this generated script in the protected-runner fixture. */
27
+ export declare function protectedBrowserInstallScript(): string;
26
28
  /** @internal Exported for executable source-contract tests. */
27
29
  export declare function exactStageDeployerGuardScript(operation: string, accountVariable: string): string;
28
30
  /** @internal Shared verbatim by every generated protected workflow. */
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.THIN_DEPLOY_WORKFLOW_PATH = void 0;
4
4
  exports.renderThinDeployVerifyCaller = renderThinDeployVerifyCaller;
5
+ exports.protectedBrowserInstallScript = protectedBrowserInstallScript;
5
6
  exports.exactStageDeployerGuardScript = exactStageDeployerGuardScript;
6
7
  exports.canonicalStageAuthorityDerivationScript = canonicalStageAuthorityDerivationScript;
7
8
  exports.exactStagingPromotionPullGuardScript = exactStagingPromotionPullGuardScript;
@@ -10,6 +11,7 @@ exports.restoredCandidateValidationScript = restoredCandidateValidationScript;
10
11
  exports.stagingPromotionSealScript = stagingPromotionSealScript;
11
12
  exports.postdeploySupplyChainBindingScript = postdeploySupplyChainBindingScript;
12
13
  exports.renderThinDeployWorkflowFilePlan = renderThinDeployWorkflowFilePlan;
14
+ const tool_versions_js_1 = require("./tool-versions.js");
13
15
  exports.THIN_DEPLOY_WORKFLOW_PATH = '.github/workflows/deploy.yml';
14
16
  const EXACT_SEMVER = /^\d+\.\d+\.\d+$/;
15
17
  const WORKSPACE_NAME = /^[a-z0-9][a-z0-9-]{0,62}$/;
@@ -87,6 +89,22 @@ function indentedScript(source, spaces) {
87
89
  .map((line) => `${prefix}${line}`)
88
90
  .join('\n');
89
91
  }
92
+ /** @internal Run exactly this generated script in the protected-runner fixture. */
93
+ function protectedBrowserInstallScript() {
94
+ return `set -euo pipefail
95
+ if [ -z "$EBK_SLICE_PROJECTS" ]; then exit 0; fi
96
+ case "$EBK_SLICE_PROJECTS" in ,*|*,|*,,*) echo 'Invalid smoke project inventory'; exit 1 ;; esac
97
+ IFS=',' read -r -a projects <<< "$EBK_SLICE_PROJECTS"
98
+ seen=,
99
+ for project in "\${projects[@]}"; do
100
+ case "$project" in ''|*[!A-Za-z0-9_-]*) echo 'Invalid smoke project'; exit 1 ;; esac
101
+ case "$seen" in *,"$project",*) echo 'Duplicate smoke project'; exit 1 ;; esac
102
+ seen="$seen$project,"
103
+ done
104
+ for project in "\${projects[@]}"; do
105
+ pnpm --dir "packages/$project" exec playwright install --with-deps chromium
106
+ done`;
107
+ }
90
108
  /** @internal Exported for executable source-contract tests. */
91
109
  function exactStageDeployerGuardScript(operation, accountVariable) {
92
110
  return `read -r caller_account caller_arn <<< "$(aws sts get-caller-identity --query '[Account,Arn]' --output text)"
@@ -1400,6 +1418,23 @@ ${indentedScript(restoredCandidateValidationScript(), 10)}
1400
1418
  ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
1401
1419
  ACTIONS_ID_TOKEN_REQUEST_URL: ''
1402
1420
  run: pnpm nx run ${name}:supply-chain-check-protected
1421
+ - name: Install pinned uv for generated Python workloads
1422
+ if: env.EBK_ACTION == 'deploy'
1423
+ env:
1424
+ ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
1425
+ ACTIONS_ID_TOKEN_REQUEST_URL: ''
1426
+ run: |
1427
+ set -euo pipefail
1428
+ python3 -m pip install --user --disable-pip-version-check 'uv==${tool_versions_js_1.WORKSPACE_UV_VERSION}'
1429
+ echo "$HOME/.local/bin" >> "$GITHUB_PATH"
1430
+ "$HOME/.local/bin/uv" --version
1431
+ - name: Install pinned Playwright Chromium for deployed smoke proofs
1432
+ if: env.EBK_ACTION == 'deploy' && needs.prepare.outputs.has_slices == 'true'
1433
+ env:
1434
+ ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
1435
+ ACTIONS_ID_TOKEN_REQUEST_URL: ''
1436
+ run: |
1437
+ ${indentedScript(protectedBrowserInstallScript(), 10)}
1403
1438
  - name: Revalidate exact protected branch tip before OIDC
1404
1439
  env:
1405
1440
  ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
@@ -1431,10 +1466,12 @@ ${indentedScript(restoredCandidateValidationScript(), 10)}
1431
1466
  [ "$AWS_REGION" = "$EBK_POLICY_REGION" ]
1432
1467
  ${indentedScript(exactStageDeployerGuardScript('Native lifecycle', '$EBK_POLICY_ACCOUNT_ID'), 10)}
1433
1468
  - name: Run ordered native lifecycle targets
1469
+ id: native-lifecycle
1434
1470
  env:
1435
1471
  ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
1436
1472
  ACTIONS_ID_TOKEN_REQUEST_URL: ''
1437
1473
  EBK_GITHUB_JOB_WORKFLOW_REF: \${{ job.workflow_ref }}
1474
+ GITHUB_TOKEN: \${{ github.token }}
1438
1475
  run: |
1439
1476
  set -euo pipefail
1440
1477
  test -n "$AWS_DEPLOY_ROLE_ARN" || { echo 'Stage deployment role is absent'; exit 1; }
@@ -1453,6 +1490,29 @@ ${indentedScript(exactStageDeployerGuardScript('Native lifecycle', '$EBK_POLICY_
1453
1490
  pnpm nx run "$project:$EBK_ACTION" -- --stage="$EBK_STAGE" --region="$AWS_REGION" --expectedRoleArn="$AWS_DEPLOY_ROLE_ARN"
1454
1491
  done
1455
1492
  fi
1493
+ - name: Prove temporary smoke admission removed
1494
+ if: always() && env.EBK_ACTION == 'deploy' && steps.native-lifecycle.outcome != 'skipped'
1495
+ env:
1496
+ ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
1497
+ ACTIONS_ID_TOKEN_REQUEST_URL: ''
1498
+ EBK_GITHUB_JOB_WORKFLOW_REF: \${{ job.workflow_ref }}
1499
+ GITHUB_TOKEN: \${{ github.token }}
1500
+ run: |
1501
+ set -euo pipefail
1502
+ ${indentedScript(exactStageDeployerGuardScript('Smoke access cleanup', '$EBK_POLICY_ACCOUNT_ID'), 10)}
1503
+ [ "$(git rev-parse HEAD)" = "$EBK_SOURCE_COMMIT" ]
1504
+ git diff --quiet HEAD
1505
+ node --input-type=module <<'NODE'
1506
+ import { cleanupGithubPrivateSmoke } from '@empire-builder-kit/nx/foundation';
1507
+ await cleanupGithubPrivateSmoke({
1508
+ account: process.env.EBK_POLICY_ACCOUNT_ID,
1509
+ deploymentProfile: process.env.EBK_DEPLOYMENT_PROFILE,
1510
+ root: process.cwd(),
1511
+ source: process.env.EBK_SOURCE_COMMIT,
1512
+ stage: process.env.EBK_STAGE,
1513
+ workspace: '${name}',
1514
+ });
1515
+ NODE
1456
1516
  - name: Seal exact staging promotion receipt
1457
1517
  if: env.EBK_ACTION == 'deploy' && env.EBK_STAGE == 'staging' && needs.prepare.outputs.profile != 'starter'
1458
1518
  env:
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-files-thin-deploy.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-files-thin-deploy.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-deploy.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,24 @@ secret; do not add repository-scope fallbacks.
72
72
  `,
73
73
  'docs/repository-operating-policy.md': `# Repository Operating Policy
74
74
 
75
+ ## Production capacity
76
+
77
+ The shared Foundation has three capacity profiles, independent of deployment topology:
78
+ - \`cost-optimized\`: 0–2 ACUs, five-minute idle auto-pause; new starter default.
79
+ - \`balanced\`: 0.5–4 ACUs, always warm.
80
+ - \`standard\`: 2–16 ACUs, always warm; isolated repository default.
81
+
82
+ All retain 30-day backups, deletion protection, encryption, and managed NAT.
83
+ Pause can delay first requests (typically 15 seconds, sometimes 30 seconds or
84
+ longer); open connections or polling can prevent it. Storage/NAT still cost money.
85
+ Validate cold-resume retries, migration timeouts, and the shared capacity ceiling.
86
+
87
+ Existing warm \`cost-optimized\` users must use the new generator to report
88
+ \`pnpm nx g @empire-builder-kit/nx:repository-policy --profile=balanced\`, then
89
+ repeat with \`--apply\` before managed upgrade or deployment. This preserves
90
+ 0.5–4 ACUs. After upgrade, deliberately select \`--profile=cost-optimized --apply\`
91
+ only to accept scale-to-zero. These commands change policy, not AWS resources.
92
+
75
93
  The committed \`ebk.repository-policy.json\` selects the
76
94
  \`${options.deploymentProfile}\` deployment profile and its active stages:
77
95
  ${stageList}. Inactive stages are rejected by planning, deployment, refresh,
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-files-thin-docs.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-docs.ts"],"names":[],"mappings":";;AAMA,4EA6OC;AAnPD,+DAI0C;AAE1C,SAAgB,gCAAgC,CAAC,OAGhD;IACC,MAAM,MAAM,GAAG,IAAA,iCAAsB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,IAAA,mCAAwB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3E,OAAO;QACL,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI;;;;;;;kBAOhB,OAAO,CAAC,iBAAiB,yBAAyB,SAAS;;;;;CAK5E;QACG,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiD3B;QACG,qCAAqC,EAAE;;;IAGvC,OAAO,CAAC,iBAAiB;EAC3B,SAAS;;;;;aAKE,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DxB;QACG,+BAA+B,EAAE;;;;yBAIZ,OAAO,CAAC,iBAAiB;EAChD,SAAS;;;;;;;;;;eAUI,cAAc;;CAE5B;QACG,sCAAsC,EAAE;;;;;;;gBAO5B,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;yCA0Ba,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CtD;KACE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"workspace-files-thin-docs.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-docs.ts"],"names":[],"mappings":";;AAMA,4EA+PC;AArQD,+DAI0C;AAE1C,SAAgB,gCAAgC,CAAC,OAGhD;IACC,MAAM,MAAM,GAAG,IAAA,iCAAsB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,IAAA,mCAAwB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3E,OAAO;QACL,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI;;;;;;;kBAOhB,OAAO,CAAC,iBAAiB,yBAAyB,SAAS;;;;;CAK5E;QACG,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiD3B;QACG,qCAAqC,EAAE;;;;;;;;;;;;;;;;;;;;;IAqBvC,OAAO,CAAC,iBAAiB;EAC3B,SAAS;;;;;aAKE,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DxB;QACG,+BAA+B,EAAE;;;;yBAIZ,OAAO,CAAC,iBAAiB;EAChD,SAAS;;;;;;;;;;eAUI,cAAc;;CAE5B;QACG,sCAAsC,EAAE;;;;;;;gBAO5B,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;yCA0Ba,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CtD;KACE,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type FoundationOwnershipRecord, type WorkspaceOwnershipRecord } from '../../ownership/index.js';
2
2
  import { type ConfiguredDeploymentAccounts, type DeploymentProfile } from '../../repository-policy/index.js';
3
3
  export interface WorkspaceFileOptions {
4
+ dependencyOverrides?: unknown;
4
5
  deploymentAccounts?: ConfiguredDeploymentAccounts;
5
6
  deploymentProfile?: DeploymentProfile;
6
7
  deploymentRegion?: string | null;
@@ -7,6 +7,7 @@ exports.renderWorkspaceFiles = renderWorkspaceFiles;
7
7
  exports.renderWorkspaceRootFilePlan = renderWorkspaceRootFilePlan;
8
8
  exports.renderFoundationFilePlan = renderFoundationFilePlan;
9
9
  const sensitive_patterns_1 = require("@empire-builder-kit/runtime/sensitive-patterns");
10
+ const dependency_overrides_js_1 = require("./dependency-overrides.js");
10
11
  const index_js_1 = require("../../ownership/index.js");
11
12
  const index_js_2 = require("../../frontend-security/index.js");
12
13
  const index_js_3 = require("../../git-policy/index.js");
@@ -1050,6 +1051,7 @@ const SUPPLY_CHAIN_WORKSPACE_FILE_PLAN = (0, index_js_6.renderSupplyChainWorkspa
1050
1051
  generatedAt: '1970-01-01T00:00:00.000Z',
1051
1052
  });
1052
1053
  const WORKSPACE_SEEDED_PATHS = new Set([
1054
+ dependency_overrides_js_1.DEPENDENCY_OVERRIDES_PATH,
1053
1055
  ...SUPPLY_CHAIN_WORKSPACE_FILE_PLAN.seeded,
1054
1056
  ...workspace_files_developer_agent_js_1.DEVELOPER_AGENT_WORKSPACE_SEEDED_PATHS,
1055
1057
  '.github/CODEOWNERS',
@@ -1168,6 +1170,9 @@ function createWorkspaceOwnership(files, frameworkVersion) {
1168
1170
  }
1169
1171
  function renderWorkspaceFiles(options) {
1170
1172
  const { frameworkVersion, name } = options;
1173
+ const dependencyOverrides = (0, dependency_overrides_js_1.parseDependencyOverrides)(options.dependencyOverrides === undefined
1174
+ ? { schemaVersion: 1, overrides: {} }
1175
+ : options.dependencyOverrides);
1171
1176
  const deploymentProfile = options.deploymentProfile ?? 'starter';
1172
1177
  const activeStages = (0, index_js_4.activeDeploymentStages)(deploymentProfile);
1173
1178
  const protectedWorkflowStageChoices = deploymentProfile === 'starter'
@@ -8055,8 +8060,15 @@ seeded decision record aligned with organization-specific budgets and alerts.
8055
8060
 
8056
8061
  - Development uses EC2 NAT, a development bastion, and Aurora scale-to-zero.
8057
8062
  ${deploymentProfile === 'starter' ? '' : '- Staging uses EC2 NAT and Aurora scale-to-zero by default.\n'}- Production always uses managed NAT and retains protected data. Its explicit Repository
8058
- Operating Policy profile selects either the standard 2-ACU Aurora floor or the
8059
- cost-optimized 0.5-ACU warm floor.
8063
+ Operating Policy profile selects cost-optimized (0–2 ACUs, pause after five idle
8064
+ minutes), balanced (0.5–4 ACUs, always warm), or standard (2–16 ACUs, always warm).
8065
+ New starter repositories default to cost-optimized. Cold resume typically takes
8066
+ about 15 seconds and can exceed 30 seconds after extended inactivity; validate
8067
+ connection retries, request timeouts, migrations, and background polling.
8068
+ Capacity is shared by all Slices. Open connections can prevent pausing; storage
8069
+ and managed NAT remain billable while Aurora compute is paused.
8070
+ Existing 0.5–4 cost-optimized adopters must explicitly select balanced before
8071
+ upgrade, then opt into cost-optimized separately if cold starts are acceptable.
8060
8072
  - ECS, EventBridge, Cognito, SNS, SSM, and CloudWatch are primarily usage-priced; logs,
8061
8073
  metrics, alarms, and retained data still require active cost review.
8062
8074
 
@@ -9137,7 +9149,7 @@ if (
9137
9149
  costs.aurora?.engineVersion !== '${index_js_4.FOUNDATION_AURORA_ENGINE_VERSION}' ||
9138
9150
  costs.productionProfileSource !== 'ebk.repository-policy.json' ||
9139
9151
  costs.productionProfiles?.standard?.aurora?.min !== '2 ACU' ||
9140
- costs.productionProfiles?.['cost-optimized']?.aurora?.min !== '0.5 ACU' ||
9152
+ JSON.stringify(costs.productionProfiles) !== JSON.stringify(${JSON.stringify(index_js_4.PRODUCTION_FOUNDATION_PROFILE_CONTRACTS)}) ||
9141
9153
  !costs.stages?.development ||
9142
9154
  JSON.stringify(Object.keys(costs.stages ?? {}).sort()) !==
9143
9155
  JSON.stringify(${JSON.stringify([...activeStages].sort())}) ||
@@ -9230,6 +9242,7 @@ export default $config({
9230
9242
  ],
9231
9243
  exclude: ['.sst', 'dist', 'node_modules'],
9232
9244
  }),
9245
+ [dependency_overrides_js_1.DEPENDENCY_OVERRIDES_PATH]: json(dependencyOverrides),
9233
9246
  'pnpm-workspace.yaml': `packages:
9234
9247
  - 'packages/*'
9235
9248
  - 'packages/*/apps/*'
@@ -9264,6 +9277,7 @@ supportedArchitectures:
9264
9277
  strictDepBuilds: true
9265
9278
  allowBuilds:
9266
9279
  ${index_js_6.FRAMEWORK_REVIEWED_BUILD_PACKAGES.map((packageName) => ` '${packageName}': true`).join('\n')}
9280
+ ${(0, dependency_overrides_js_1.renderDependencyOverridesYaml)(dependencyOverrides)}
9267
9281
  `,
9268
9282
  'tsconfig.base.json': json({
9269
9283
  compilerOptions: {