@vibesdotdev/infra-deploy 1.0.0-rc.7 → 1.0.0-rc.8

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 (40) hide show
  1. package/dist/cli/run/build-only.d.ts +45 -0
  2. package/dist/cli/run/build-only.d.ts.map +1 -0
  3. package/dist/cli/run/build-only.js +35 -0
  4. package/dist/cli/run/build-only.js.map +1 -0
  5. package/dist/cli/run/deploy-smoke.d.ts +6 -0
  6. package/dist/cli/run/deploy-smoke.d.ts.map +1 -1
  7. package/dist/cli/run/deploy-smoke.js +41 -2
  8. package/dist/cli/run/deploy-smoke.js.map +1 -1
  9. package/dist/cli/run/deployment-budget-gate.d.ts +41 -0
  10. package/dist/cli/run/deployment-budget-gate.d.ts.map +1 -0
  11. package/dist/cli/run/deployment-budget-gate.js +85 -0
  12. package/dist/cli/run/deployment-budget-gate.js.map +1 -0
  13. package/dist/cli/run/deployment-provider.d.ts +22 -0
  14. package/dist/cli/run/deployment-provider.d.ts.map +1 -1
  15. package/dist/cli/run/deployment-provider.js +57 -17
  16. package/dist/cli/run/deployment-provider.js.map +1 -1
  17. package/dist/cli/run/edge-hostname-reconcile.d.ts +52 -0
  18. package/dist/cli/run/edge-hostname-reconcile.d.ts.map +1 -0
  19. package/dist/cli/run/edge-hostname-reconcile.js +105 -0
  20. package/dist/cli/run/edge-hostname-reconcile.js.map +1 -0
  21. package/dist/cli/run/immutable-deployment-release.program.d.ts +9 -0
  22. package/dist/cli/run/immutable-deployment-release.program.d.ts.map +1 -1
  23. package/dist/cli/run/immutable-deployment-release.program.js +2 -1
  24. package/dist/cli/run/immutable-deployment-release.program.js.map +1 -1
  25. package/dist/cli/run/infra-deploy.run.cli-command.descriptor.d.ts +3 -0
  26. package/dist/cli/run/infra-deploy.run.cli-command.descriptor.d.ts.map +1 -1
  27. package/dist/cli/run/infra-deploy.run.cli-command.descriptor.js +4 -0
  28. package/dist/cli/run/infra-deploy.run.cli-command.descriptor.js.map +1 -1
  29. package/dist/cli/run/infra-deploy.run.cli-command.impl.d.ts.map +1 -1
  30. package/dist/cli/run/infra-deploy.run.cli-command.impl.js +94 -2
  31. package/dist/cli/run/infra-deploy.run.cli-command.impl.js.map +1 -1
  32. package/dist/cli/shared/build-workspace-artifacts.d.ts +37 -6
  33. package/dist/cli/shared/build-workspace-artifacts.d.ts.map +1 -1
  34. package/dist/cli/shared/build-workspace-artifacts.js +298 -201
  35. package/dist/cli/shared/build-workspace-artifacts.js.map +1 -1
  36. package/dist/cli/shared/workspace-artifact-store.d.ts +5 -0
  37. package/dist/cli/shared/workspace-artifact-store.d.ts.map +1 -1
  38. package/dist/cli/shared/workspace-artifact-store.js +22 -3
  39. package/dist/cli/shared/workspace-artifact-store.js.map +1 -1
  40. package/package.json +10 -10
@@ -0,0 +1,45 @@
1
+ /**
2
+ * `vibes infra deploy run --build-only`: build an app the way a deploy would, check its Worker graph
3
+ * against the provider's declared bundle, measure it, and report, with no provider implementation,
4
+ * no credentials and no upload. Scope violations and platform-limit overruns are reported, not
5
+ * thrown, so an owner iterates on the whole list; a real deploy refuses on the same verdict.
6
+ *
7
+ * The workspace packages the app imports build first through the workspace-artifacts owner
8
+ * (freshness-hashed, under the workspace artifact lock), so nobody hand-runs a package build that
9
+ * deletes `dist` under a concurrent one. The app's own build is the deploy's runner.
10
+ */
11
+ import type { VibesRuntime } from '@vibesdotdev/kernel';
12
+ import type { RuntimeExecution } from '@vibesdotdev/kernel/execution';
13
+ import type { AppDeployment } from '@vibesdotdev/infra-core';
14
+ import type { DeploymentBundleTargetInput } from '@vibesdotdev/infra-core/deployment-budget';
15
+ import type { DeploymentOutputLine } from '@vibesdotdev/infra-core/kinds';
16
+ import { buildWorkspaceArtifactsForApp } from '../shared/build-workspace-artifacts.ts';
17
+ import { type DeploymentBudgetVerdict } from './deployment-budget-gate.ts';
18
+ export interface BuildOnlyResult extends DeploymentBudgetVerdict {
19
+ readonly appId: string;
20
+ readonly outputDirectory: string;
21
+ /** Wall time of the workspace-artifact and app builds; zero with `--skip-build`. */
22
+ readonly buildSeconds: number;
23
+ readonly built: boolean;
24
+ }
25
+ export declare function runBuildOnly(input: {
26
+ runtime: VibesRuntime;
27
+ execution: RuntimeExecution;
28
+ deployment: AppDeployment;
29
+ appDir: string;
30
+ workspaceRoot: string;
31
+ /** Measure the output already on disk without building. */
32
+ skipBuild: boolean;
33
+ buildVersion: string;
34
+ onLine: DeploymentOutputLine;
35
+ /** The provider's declared Worker bundle, read from its descriptor. */
36
+ bundleTarget?: DeploymentBundleTargetInput;
37
+ /** The Worker entries the provider's rendered artifact names, absolute; the app's declared entry wins. */
38
+ entries?: readonly string[];
39
+ now?: () => number;
40
+ }, deps?: {
41
+ buildWorkspaceArtifacts?: typeof buildWorkspaceArtifactsForApp;
42
+ }): Promise<BuildOnlyResult>;
43
+ /** The text report: the measurement, then the build time against its budget when one resolves. */
44
+ export declare function formatBuildOnlyReport(result: BuildOnlyResult): string;
45
+ //# sourceMappingURL=build-only.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-only.d.ts","sourceRoot":"","sources":["../../../src/cli/run/build-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAEvF,OAAO,EAA2B,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEpG,MAAM,WAAW,eAAgB,SAAQ,uBAAuB;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,YAAY,CACjC,KAAK,EAAE;IACN,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,uEAAuE;IACvE,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,0GAA0G;IAC1G,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB,EACD,IAAI,GAAE;IACL,uBAAuB,CAAC,EAAE,OAAO,6BAA6B,CAAC;CAC1D,GACJ,OAAO,CAAC,eAAe,CAAC,CAiB1B;AAED,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAarE"}
@@ -0,0 +1,35 @@
1
+ import { buildWorkspaceArtifactsForApp } from "../shared/build-workspace-artifacts.js";
2
+ import { deploymentOutputDirectory, runAppBuildCommand } from "./deployment-provider.js";
3
+ import { enforceDeploymentBudget } from "./deployment-budget-gate.js";
4
+ export async function runBuildOnly(input, deps = {}) {
5
+ const buildWorkspaceArtifacts = deps.buildWorkspaceArtifacts ?? buildWorkspaceArtifactsForApp;
6
+ const now = input.now ?? Date.now;
7
+ const { runtime, execution, deployment, appDir, workspaceRoot, onLine } = input;
8
+ const started = now();
9
+ if (!input.skipBuild) {
10
+ await buildWorkspaceArtifacts({ runtime, execution, workspaceRoot, appDir, onLine });
11
+ await runAppBuildCommand({ runtime, execution, deployment, appDir, buildVersion: input.buildVersion, onLine });
12
+ }
13
+ const buildSeconds = input.skipBuild ? 0 : (now() - started) / 1000;
14
+ const outputDirectory = await deploymentOutputDirectory(runtime, deployment, appDir);
15
+ const verdict = await enforceDeploymentBudget({
16
+ runtime, appDir, workspaceRoot, outputDirectory, label: deployment.appId, enforce: false,
17
+ bundleTarget: input.bundleTarget,
18
+ entries: input.entries
19
+ });
20
+ return { ...verdict, appId: deployment.appId, outputDirectory, buildSeconds, built: !input.skipBuild };
21
+ }
22
+ /** The text report: the measurement, then the build time against its budget when one resolves. */
23
+ export function formatBuildOnlyReport(result) {
24
+ const lines = [result.summary];
25
+ if (result.built) {
26
+ const budget = result.build ? ` against a ${result.build.maxSeconds}s build budget` : '';
27
+ const over = result.build && result.buildSeconds > result.build.maxSeconds ? ' (OVER BUDGET: find the slow step at its owner)' : '';
28
+ lines.push(`Build took ${result.buildSeconds.toFixed(1)}s${budget}${over}.`);
29
+ }
30
+ lines.push(result.refusal
31
+ ? `Build only: nothing was uploaded. A deploy of this output would refuse (${result.refusal.reason}).`
32
+ : 'Build only: nothing was uploaded. A deploy of this output would pass the bundling gate.');
33
+ return lines.join('\n');
34
+ }
35
+ //# sourceMappingURL=build-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-only.js","sourceRoot":"","sources":["../../../src/cli/run/build-only.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAgC,MAAM,6BAA6B,CAAC;AAUpG,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,KAeC,EACD,OAEI,EAAE;IAEN,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,IAAI,6BAA6B,CAAC;IAC9F,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAClC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,uBAAuB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACrF,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,eAAe,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC;QAC7C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK;QACxF,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;AACxG,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,qBAAqB,CAAC,MAAuB;IAC5D,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,UAAU,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE,CAAC;QACpI,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,CAAC,IAAI,CACT,MAAM,CAAC,OAAO;QACb,CAAC,CAAC,2EAA2E,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI;QACtG,CAAC,CAAC,yFAAyF,CAC5F,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -28,6 +28,12 @@ export type RunDeploySmokeProbeOptions = {
28
28
  */
29
29
  expectedVersion?: string | null;
30
30
  deployment: AppDeployment;
31
+ /**
32
+ * The provider's own origins behind the edge (the release's hostname
33
+ * targets). When the public hostname serves the wrong build, reading these
34
+ * tells an edge serving an old copy apart from a release that did not take.
35
+ */
36
+ providerOrigins?: readonly string[];
31
37
  environmentResolution?: DeploymentEnvironmentResolution;
32
38
  deployedUrl?: string | null;
33
39
  retryWindowMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-smoke.d.ts","sourceRoot":"","sources":["../../../src/cli/run/deploy-smoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,iIAAiI;IACjI,OAAO,EAAE,UAAU,CAAC;IACpB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,aAAa,CAAC;IAC1B,qBAAqB,CAAC,EAAE,+BAA+B,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D,CAAC;AAoEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAYnF;AAmED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAuG5B"}
1
+ {"version":3,"file":"deploy-smoke.d.ts","sourceRoot":"","sources":["../../../src/cli/run/deploy-smoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,iIAAiI;IACjI,OAAO,EAAE,UAAU,CAAC;IACpB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,aAAa,CAAC;IAC1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,qBAAqB,CAAC,EAAE,+BAA+B,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D,CAAC;AAoEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAYnF;AA8GD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAmH5B"}
@@ -88,7 +88,7 @@ const LiveVersionBodySchema = z.object({
88
88
  * does not publish one — treated as "cannot tell", never as "stale", because a
89
89
  * non-SvelteKit or older app must not fail a deploy for lacking the file.
90
90
  */
91
- async function readLiveVersion(origin, fetchImpl, runtime) {
91
+ async function readLiveIdentity(origin, fetchImpl, runtime) {
92
92
  const outcome = await settle(async () => {
93
93
  const response = await fetchImpl(new URL('/_app/version.json', origin).toString(), {
94
94
  headers: { 'User-Agent': 'vibes-infra-deploy-smoke/1.0' }
@@ -97,7 +97,11 @@ async function readLiveVersion(origin, fetchImpl, runtime) {
97
97
  return null;
98
98
  const json = await response.json();
99
99
  const parsed = LiveVersionBodySchema.safeParse(json);
100
- return parsed.success ? (parsed.data.version ?? null) : null;
100
+ return {
101
+ version: parsed.success ? (parsed.data.version ?? null) : null,
102
+ cacheStatus: response.headers.get('cf-cache-status'),
103
+ edgeCompute: response.headers.has('cf-placement')
104
+ };
101
105
  });
102
106
  if (!outcome.ok) {
103
107
  // Unreachable or unparseable version.json is not evidence of staleness;
@@ -111,6 +115,29 @@ async function readLiveVersion(origin, fetchImpl, runtime) {
111
115
  }
112
116
  return outcome.value;
113
117
  }
118
+ async function readLiveVersion(origin, fetchImpl, runtime) {
119
+ return (await readLiveIdentity(origin, fetchImpl, runtime))?.version ?? null;
120
+ }
121
+ /**
122
+ * When the public hostname serves the wrong build but a provider origin behind
123
+ * it serves the deployed one, the release took and the edge is stale. Says so,
124
+ * with the edge's cache verdict, instead of blaming the build stamp.
125
+ */
126
+ async function diagnoseStaleEdge(input) {
127
+ const publicIdentity = await readLiveIdentity(input.url, input.fetchImpl, input.runtime);
128
+ if (!publicIdentity || publicIdentity.version === input.expected)
129
+ return null;
130
+ for (const origin of input.providerOrigins) {
131
+ if (new URL(origin).host === new URL(input.url).host)
132
+ continue;
133
+ const behind = await readLiveIdentity(origin, input.fetchImpl, input.runtime);
134
+ if (behind?.version !== input.expected)
135
+ continue;
136
+ const served = publicIdentity.edgeCompute ? '; answered by edge compute (cf-placement), not the origin' : '';
137
+ return `edge stale: the provider origin ${origin} serves the deployed build ${input.expected}, but ${input.url} serves ${JSON.stringify(publicIdentity.version)} (cf-cache-status ${publicIdentity.cacheStatus ?? 'absent'}${served}). The release took; the edge in front of it serves an old copy or other compute. Inspect the edge's routes and cache for this hostname; do not roll back.`;
138
+ }
139
+ return null;
140
+ }
114
141
  async function probe(url, fetchImpl) {
115
142
  const response = await fetchImpl(url, {
116
143
  headers: { 'User-Agent': 'vibes-infra-deploy-smoke/1.0' },
@@ -246,6 +273,18 @@ export async function runDeploySmokeProbe(options) {
246
273
  break;
247
274
  await options.runtime.lifecycle.delay(pollIntervalMs);
248
275
  }
276
+ const expectedAtFailure = options.expectedVersion?.trim();
277
+ if (expectedAtFailure && freshnessDeadline !== null && options.providerOrigins?.length) {
278
+ const edge = await diagnoseStaleEdge({
279
+ url,
280
+ expected: expectedAtFailure,
281
+ providerOrigins: options.providerOrigins,
282
+ fetchImpl,
283
+ runtime: options.runtime
284
+ });
285
+ if (edge)
286
+ lastDetail = edge;
287
+ }
249
288
  onLine('stderr', `[smoke] ${options.deployment.appId} ${url} FAILED: ${lastDetail}`);
250
289
  return { ok: false, url, detail: lastDetail };
251
290
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-smoke.js","sourceRoot":"","sources":["../../../src/cli/run/deploy-smoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-smoke.js","sourceRoot":"","sources":["../../../src/cli/run/deploy-smoke.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The deploy driver's bundling gate: walk the Worker graph the provider will bundle, check every
3
+ * module against the scope the provider's bundle serves, measure the bytes as evidence, and refuse
4
+ * before any provider effect when a module does not belong (`deployment-scope-violation`) or the
5
+ * upload is over the provider's hard limit (`deployment-platform-limit-exceeded`). The contract and
6
+ * the measurement are owned by `@vibesdotdev/infra-core/deployment-budget`; the provider declares
7
+ * its bundle on its `infra/deployment-provider` descriptor; this module only reads the manifests
8
+ * and the files through the runtime's filesystem.
9
+ */
10
+ import { CapabilityError, type RuntimeRef } from '@vibesdotdev/kernel';
11
+ import { type FileSystemAdapterInterface } from '@vibesdotdev/filesystem';
12
+ import { type BuildBudget, type DeploymentBundleTargetInput, type DeploymentMeasurement, type DeploymentOutputFiles } from '@vibesdotdev/infra-core/deployment-budget';
13
+ /** The runtime filesystem as the measurement's read-only port. */
14
+ export declare function deploymentOutputFiles(files: FileSystemAdapterInterface): DeploymentOutputFiles;
15
+ export interface DeploymentBudgetVerdict {
16
+ readonly measurement: DeploymentMeasurement;
17
+ readonly build?: BuildBudget;
18
+ readonly summary: string;
19
+ /** What a deploy refuses with; `--build-only` reports it and carries on. */
20
+ readonly refusal?: CapabilityError;
21
+ }
22
+ /**
23
+ * Measure `outputDirectory` and check its Worker graph against the provider's bundle. With
24
+ * `enforce` (a deploy), throws the typed refusal (`deployment-scope-violation`,
25
+ * `deployment-platform-limit-exceeded`, `deployment-output-missing`); without it (`--build-only`),
26
+ * returns the refusal in the verdict so the owner can iterate.
27
+ */
28
+ export declare function enforceDeploymentBudget(input: {
29
+ runtime: RuntimeRef;
30
+ appDir: string;
31
+ workspaceRoot: string;
32
+ outputDirectory: string;
33
+ label: string;
34
+ /** The Worker entries the provider prepared, absolute; the app's declared entry wins. */
35
+ entries?: readonly string[];
36
+ /** The provider's declared bundle (`infra/deployment-provider` `bundle`); absent, only the forbidden list applies. */
37
+ bundleTarget?: DeploymentBundleTargetInput;
38
+ /** Throw the refusal (a deploy) rather than report it (`--build-only`). Defaults to true. */
39
+ enforce?: boolean;
40
+ }): Promise<DeploymentBudgetVerdict>;
41
+ //# sourceMappingURL=deployment-budget-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-budget-gate.d.ts","sourceRoot":"","sources":["../../../src/cli/run/deployment-budget-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAU,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAA4B,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EAQN,KAAK,WAAW,EAChB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,MAAM,2CAA2C,CAAC;AAgBnD,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,qBAAqB,CAe9F;AAOD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACpD,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,sHAAsH;IACtH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA4BnC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * The deploy driver's bundling gate: walk the Worker graph the provider will bundle, check every
3
+ * module against the scope the provider's bundle serves, measure the bytes as evidence, and refuse
4
+ * before any provider effect when a module does not belong (`deployment-scope-violation`) or the
5
+ * upload is over the provider's hard limit (`deployment-platform-limit-exceeded`). The contract and
6
+ * the measurement are owned by `@vibesdotdev/infra-core/deployment-budget`; the provider declares
7
+ * its bundle on its `infra/deployment-provider` descriptor; this module only reads the manifests
8
+ * and the files through the runtime's filesystem.
9
+ */
10
+ import { CapabilityError, settle } from '@vibesdotdev/kernel';
11
+ import { resolveFileSystemAdapter } from '@vibesdotdev/filesystem';
12
+ import { getRuntimePath } from '@vibesdotdev/paths';
13
+ import { BudgetManifestSchema, budgetsOf, deploymentRefusal, formatDeploymentMeasurement, measureDeploymentOutput, resolveBudgets } from '@vibesdotdev/infra-core/deployment-budget';
14
+ import { isMissingPathError } from "../shared/build-workspace-artifacts.js";
15
+ async function absentAsUndefined(read) {
16
+ const outcome = await settle(read);
17
+ if (outcome.ok)
18
+ return outcome.value;
19
+ if (isMissingPathError(outcome.cause))
20
+ return undefined;
21
+ throw outcome.cause;
22
+ }
23
+ async function readText(files, path) {
24
+ const contents = await absentAsUndefined(() => files.readFile(path, 'utf8'));
25
+ if (contents === undefined)
26
+ return undefined;
27
+ return contents instanceof Uint8Array ? new TextDecoder().decode(contents) : contents;
28
+ }
29
+ /** The runtime filesystem as the measurement's read-only port. */
30
+ export function deploymentOutputFiles(files) {
31
+ const port = {
32
+ async list(path) {
33
+ const entries = await absentAsUndefined(() => files.list(path));
34
+ return entries?.map((entry) => entry.sizeBytes === undefined ? { name: entry.name, kind: entry.kind } : { name: entry.name, kind: entry.kind, sizeBytes: entry.sizeBytes });
35
+ },
36
+ async size(path) {
37
+ return (await files.stat(path)).size;
38
+ },
39
+ readText: (path) => readText(files, path)
40
+ };
41
+ const realpath = files.realpath?.bind(files);
42
+ return realpath ? { ...port, realpath: (path) => absentAsUndefined(() => realpath(path)) } : port;
43
+ }
44
+ async function readManifest(files, path) {
45
+ const text = await readText(files, path);
46
+ return text === undefined ? undefined : BudgetManifestSchema.parse(JSON.parse(text));
47
+ }
48
+ /**
49
+ * Measure `outputDirectory` and check its Worker graph against the provider's bundle. With
50
+ * `enforce` (a deploy), throws the typed refusal (`deployment-scope-violation`,
51
+ * `deployment-platform-limit-exceeded`, `deployment-output-missing`); without it (`--build-only`),
52
+ * returns the refusal in the verdict so the owner can iterate.
53
+ */
54
+ export async function enforceDeploymentBudget(input) {
55
+ const [files, paths] = await Promise.all([resolveFileSystemAdapter(input.runtime, { binding: false }), getRuntimePath(input.runtime)]);
56
+ const appManifest = await readManifest(files, paths.join(input.appDir, 'package.json'));
57
+ const workspaceManifest = paths.resolve(input.workspaceRoot) === paths.resolve(input.appDir)
58
+ ? undefined
59
+ : await readManifest(files, paths.join(input.workspaceRoot, 'package.json'));
60
+ const resolved = resolveBudgets(budgetsOf(workspaceManifest), budgetsOf(appManifest), {
61
+ outputDir: paths.relative(input.appDir, input.outputDirectory)
62
+ });
63
+ const budget = resolved.deployment;
64
+ if (!budget) {
65
+ throw new CapabilityError('A deployment budget resolves whenever its output directory is known.', 'INTERNAL', { reason: 'deployment-budget-unresolved' });
66
+ }
67
+ const measurement = await measureDeploymentOutput({
68
+ files: deploymentOutputFiles(files),
69
+ packageDir: paths.resolve(input.appDir),
70
+ outputDirectory: paths.resolve(input.outputDirectory),
71
+ budget,
72
+ entries: (input.entries ?? []).map((entry) => paths.resolve(input.appDir, entry)),
73
+ target: input.bundleTarget
74
+ });
75
+ const refusal = deploymentRefusal(input.label, measurement);
76
+ if (refusal && input.enforce !== false)
77
+ throw refusal;
78
+ let verdict = { measurement, summary: formatDeploymentMeasurement(input.label, measurement) };
79
+ if (refusal)
80
+ verdict = { ...verdict, refusal };
81
+ if (resolved.build)
82
+ verdict = { ...verdict, build: resolved.build };
83
+ return verdict;
84
+ }
85
+ //# sourceMappingURL=deployment-budget-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-budget-gate.js","sourceRoot":"","sources":["../../../src/cli/run/deployment-budget-gate.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,32 @@ import type { AppDeployment } from '@vibesdotdev/infra-core';
12
12
  import type { RuntimeExecution } from '@vibesdotdev/kernel/execution';
13
13
  import { type LoadedDeployment } from '../../config-loader.ts';
14
14
  import { applyPendingMigrations } from '../../migrations/run-migrate.ts';
15
+ import type { DeploymentBundleTargetInput } from '@vibesdotdev/infra-core/deployment-budget';
15
16
  export interface ResolvedDeploymentProvider {
16
17
  readonly descriptor: DeploymentProviderDescriptor;
17
18
  readonly implementation: DeploymentProviderImplementation;
18
19
  }
19
20
  /** The provider an app declares, resolved by id through the handed runtime; refuses when none is composed. */
20
21
  export declare function resolveDeploymentProvider(runtime: RuntimeRef, id: string): Promise<ResolvedDeploymentProvider>;
22
+ /**
23
+ * The Worker bundle a provider declares, read from its descriptor alone: no implementation is
24
+ * resolved and no credential is read, so `--build-only` can check against it.
25
+ */
26
+ export declare function deploymentProviderBundle(runtime: RuntimeRef, id: string): DeploymentProviderDescriptor['bundle'];
27
+ /**
28
+ * Run the app's declared build command in the app directory, as production, stamped with
29
+ * `buildVersion`. The one runner for a deploy's build and a build-only measurement.
30
+ */
31
+ export declare function runAppBuildCommand(input: {
32
+ runtime: VibesRuntime;
33
+ execution: RuntimeExecution;
34
+ deployment: AppDeployment;
35
+ appDir: string;
36
+ buildVersion: string;
37
+ onLine: DeploymentOutputLine;
38
+ }): Promise<void>;
39
+ /** The absolute directory a deployment's declared `build.outputDir` names under its app. */
40
+ export declare function deploymentOutputDirectory(runtime: VibesRuntime, deployment: AppDeployment, appDir: string): Promise<string>;
21
41
  /** A loaded deployment as provider data: the export without its callables. */
22
42
  export declare function deploymentModuleEvaluation(loaded: LoadedDeployment): DeploymentModuleEvaluation;
23
43
  /**
@@ -35,6 +55,8 @@ export declare function createDeploymentReleaseHost(input: {
35
55
  credentialSource: 'secrets-store' | 'ambient';
36
56
  skipBuild: boolean;
37
57
  dryRun: boolean;
58
+ /** The provider's declared Worker bundle (`infra/deployment-provider` `bundle`), checked before upload. */
59
+ bundleTarget?: DeploymentBundleTargetInput;
38
60
  /** The retained Workspace owner verifies source identity; this host owns the output receipt. */
39
61
  immutableBuild?: {
40
62
  compositionDigest: string;
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-provider.d.ts","sourceRoot":"","sources":["../../../src/cli/run/deployment-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAwD,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAGrF,OAAO,KAAK,EAEX,0BAA0B,EAC1B,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,qBAAqB,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAQzE,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,gCAAgC,CAAC;CAC1D;AAED,8GAA8G;AAC9G,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAepH;AAuBD,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,0BAA0B,CAS/F;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IAClD,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,gGAAgG;IAChG,cAAc,CAAC,EAAE;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,0HAA0H;QAC1H,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QAC7B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9B,CAAC;IACF,MAAM,EAAE,oBAAoB,CAAC;CAC7B,EAAE,IAAI,GAAE;IACR,OAAO,CAAC,EAAE,OAAO,sBAAsB,CAAC;CACnC,GAAG,qBAAqB,CAuL7B;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,CAIhE"}
1
+ {"version":3,"file":"deployment-provider.d.ts","sourceRoot":"","sources":["../../../src/cli/run/deployment-provider.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { applyPendingMigrations } from "../../migrations/run-migrate.js";
13
13
  import { sealWorkspaceBuildArtifacts, assertWorkspaceBuildArtifactReceipt, workspaceBuildLockDigest } from "../shared/build-workspace-artifacts.js";
14
14
  import { getRuntimePath } from '@vibesdotdev/paths';
15
15
  import { optionalRegistryTokenEnv, registryTokenEnv, runRuntimeCommand } from "../shared/runtime-execution.js";
16
+ import { enforceDeploymentBudget } from "./deployment-budget-gate.js";
16
17
  /** The provider an app declares, resolved by id through the handed runtime; refuses when none is composed. */
17
18
  export async function resolveDeploymentProvider(runtime, id) {
18
19
  const query = () => runtime.query('infra/deployment-provider').withId(id);
@@ -31,6 +32,16 @@ export async function resolveDeploymentProvider(runtime, id) {
31
32
  }
32
33
  return { descriptor, implementation: implementation.value };
33
34
  }
35
+ /**
36
+ * The Worker bundle a provider declares, read from its descriptor alone: no implementation is
37
+ * resolved and no credential is read, so `--build-only` can check against it.
38
+ */
39
+ export function deploymentProviderBundle(runtime, id) {
40
+ if (!runtime.hasKind('infra/deployment-provider'))
41
+ return undefined;
42
+ const [descriptor] = runtime.query('infra/deployment-provider').withId(id).descriptors();
43
+ return descriptor?.bundle;
44
+ }
34
45
  /** A rendered provider artifact as data; provider JSONC may include comments. */
35
46
  function artifactObject(text) {
36
47
  if (text === null)
@@ -52,6 +63,33 @@ function skipBuildReceiptRefusal(cause) {
52
63
  cause
53
64
  });
54
65
  }
66
+ /**
67
+ * Run the app's declared build command in the app directory, as production, stamped with
68
+ * `buildVersion`. The one runner for a deploy's build and a build-only measurement.
69
+ */
70
+ export async function runAppBuildCommand(input) {
71
+ const command = input.deployment.build.buildCommand;
72
+ if (!command)
73
+ return;
74
+ const [bin, ...args] = command.split(' ').filter(Boolean);
75
+ if (!bin)
76
+ throw new CapabilityError('The app build command is empty.', 'INVALID_INPUT', { reason: 'app-build-command-empty' });
77
+ const result = await runRuntimeCommand({
78
+ runtime: input.runtime, execution: input.execution, command: bin, args, cwd: input.appDir,
79
+ env: { NODE_ENV: 'production', VIBES_BUILD_VERSION: input.buildVersion, ...(await optionalRegistryTokenEnv(input.runtime)) },
80
+ onLine: input.onLine
81
+ });
82
+ if (result.code !== 0)
83
+ throw new CapabilityError('The app build failed before provider effects.', 'UNAVAILABLE', { reason: 'app-build-failed', details: { exitCode: result.code } });
84
+ }
85
+ /** The absolute directory a deployment's declared `build.outputDir` names under its app. */
86
+ export async function deploymentOutputDirectory(runtime, deployment, appDir) {
87
+ const pathApi = await getRuntimePath(runtime);
88
+ const declaredApp = deployment.build.appDir.replace(/\\/g, '/').replace(/\/$/, '');
89
+ const declaredOutput = deployment.build.outputDir.replace(/\\/g, '/');
90
+ const output = declaredOutput.startsWith(`${declaredApp}/`) ? declaredOutput.slice(declaredApp.length + 1) : declaredOutput;
91
+ return pathApi.resolve(appDir, output);
92
+ }
55
93
  /** A loaded deployment as provider data: the export without its callables. */
56
94
  export function deploymentModuleEvaluation(loaded) {
57
95
  return {
@@ -76,13 +114,7 @@ export function createDeploymentReleaseHost(input, deps = {}) {
76
114
  let built;
77
115
  let immutableBuildStarted = false;
78
116
  const assertSource = async () => { await input.immutableBuild?.assertSource(); };
79
- const declaredOutputDirectory = async () => {
80
- const pathApi = await getRuntimePath(runtime);
81
- const declaredApp = input.deployment.build.appDir.replace(/\\/g, '/').replace(/\/$/, '');
82
- const declaredOutput = input.deployment.build.outputDir.replace(/\\/g, '/');
83
- const output = declaredOutput.startsWith(`${declaredApp}/`) ? declaredOutput.slice(declaredApp.length + 1) : declaredOutput;
84
- return pathApi.resolve(appDir, output);
85
- };
117
+ const declaredOutputDirectory = () => deploymentOutputDirectory(runtime, input.deployment, appDir);
86
118
  const assertArtifacts = async () => {
87
119
  if (!input.immutableBuild)
88
120
  return;
@@ -134,18 +166,19 @@ export function createDeploymentReleaseHost(input, deps = {}) {
134
166
  }
135
167
  await assertSource();
136
168
  if (input.immutableBuild && !input.dryRun) {
137
- const command = input.deployment.build.buildCommand;
138
- if (command && !input.skipBuild) {
139
- const [bin, ...args] = command.split(' ').filter(Boolean);
140
- if (!bin)
141
- throw new CapabilityError('The app build command is empty.', 'INVALID_INPUT', { reason: 'app-build-command-empty' });
142
- const result = await runRuntimeCommand({
143
- runtime, execution, command: bin, args, cwd: appDir,
144
- env: { NODE_ENV: 'production', VIBES_BUILD_VERSION: input.immutableBuild.buildVersion ?? input.immutableBuild.sourceCommit, ...(await optionalRegistryTokenEnv(runtime)) }, onLine
169
+ if (!input.skipBuild) {
170
+ await runAppBuildCommand({
171
+ runtime, execution, appDir, onLine, deployment: input.deployment,
172
+ buildVersion: input.immutableBuild.buildVersion ?? input.immutableBuild.sourceCommit
145
173
  });
146
- if (result.code !== 0)
147
- throw new CapabilityError('The app build failed before provider effects.', 'UNAVAILABLE', { reason: 'app-build-failed', details: { exitCode: result.code } });
148
174
  }
175
+ // The Worker graph about to ship, built or pre-built, is checked against the provider's
176
+ // bundle scope and measured before the provider prepares anything.
177
+ const budgetInput = {
178
+ runtime, appDir, workspaceRoot, outputDirectory: await declaredOutputDirectory(), label: input.deployment.appId,
179
+ bundleTarget: input.bundleTarget
180
+ };
181
+ const early = await enforceDeploymentBudget(budgetInput);
149
182
  let preparation = DeploymentArtifactPreparationSchema.parse({});
150
183
  if (options?.prepareArtifacts) {
151
184
  await assertSource();
@@ -157,6 +190,13 @@ export function createDeploymentReleaseHost(input, deps = {}) {
157
190
  throw new CapabilityError('Installed locks changed during artifact preparation.', 'CONFLICT', { reason: 'workspace-artifact-lock-mismatch' });
158
191
  }
159
192
  }
193
+ // Without a declared entry, the paths the provider prepared for upload are the Worker
194
+ // entries; they are measured before the seal, the boot check or any upload.
195
+ const verdict = !early.measurement.worker && preparation.paths.length > 0
196
+ ? await enforceDeploymentBudget({ ...budgetInput, entries: preparation.paths })
197
+ : early;
198
+ for (const line of verdict.summary.split('\n'))
199
+ onLine('stdout', `[deploy-budget] ${line}`);
160
200
  const nextReceiptInput = {
161
201
  runtime, workspaceRoot,
162
202
  directories: [await declaredOutputDirectory(), ...preparation.paths],
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-provider.js","sourceRoot":"","sources":["../../../src/cli/run/deployment-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-provider.js","sourceRoot":"","sources":["../../../src/cli/run/deployment-provider.ts"],"names":[],"mappings":"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"}