cdk-local 0.163.5 → 0.163.6

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.
@@ -1,7 +1,7 @@
1
1
  import { a as displayIdent, c as getEmbedConfig, i as STACK_REF_MAX_CODE_POINTS, o as displayStackName, s as displayToolOutput, t as getLogger, u as setEmbedConfig } from "./logger-Co5XVwco.js";
2
2
  import { C as effectiveLoopbackPorts, F as resolveHostDefaultCredentials, G as awsEndpointOverrideClientConfig, K as buildProxyClientConfig, Q as proxyAwareFetch, W as awsEmulatorRoutedServices, Y as isAwsServiceRoutedToEmulator, _t as isLoopbackHostname, b as awsEmulatorEnvName, bt as formatHostForAuthority, d as workloadStsClientConfig, gt as defineOwnKey, ht as resolveEnvVars$1, l as warnWorkloadCredentialsStripped, mt as readEnvVarsFileText, n as accountLookupStsClientConfig, pt as applyEnvOverrideMap, r as applyWorkloadEnvCredentials, rt as createMixedModeStateProvider, u as workloadClientConfig, v as activateWorkloadAwsWiring, vt as isWildcardHostname, w as getActiveWorkloadAwsWiring, xt as hostFromAuthority, y as applyWorkloadAwsWiringToEnv, yt as formatAuthority } from "./workload-identity-BOEZuEDO.js";
3
3
  import { c as clampErrorName, d as flattenToOneLine, f as isAwsServiceException, l as describeAwsFailureForWarn, m as stringifyThrown, o as renderAssemblyPathEscape, p as sanitizeServiceExceptionMessage, r as displayUntrustedValue, s as resolveAssemblyPath, t as absoluteAssemblyPathEscape, u as describeCredentialLoadFailure } from "./assembly-path-R96uhMm1.js";
4
- import { $ as refusedRoleArnMessage, A as buildDockerImage, B as tryResolveImageFnJoin, D as isImageInLocalCache, E as warnIfEmulatedPlatform, F as parseEcrRegistryHost, G as RouteDiscoveryError, H as InteractiveTtyRequiredError, I as derivePartitionAndUrlSuffix, J as AssumeRoleFailure, K as TargetSelectionCancelledError, L as derivePseudoParametersFromRegion, M as createShutdownSignalHandler, N as signalExitCode, O as parseEcrUri, P as describeExitWithoutArgv, Q as isIamRoleArn, R as formatStateRemedy, T as buildContainerImage, U as LocalInvokeBuildError, V as CdkLocalError, W as LocalStartServiceError, X as assumeRoleCredentials, Y as applyRoleArnIfSet, Z as describeRejectedRoleArn, a as describeRefusedSensitiveEnvKeys, c as execEnvForSecrets, d as rememberForwardedPorts, et as buildStsClientConfig, f as removeContainer, h as streamLogs, i as attachLoopbackForwarder, j as resolveAssetSourcePath, k as pullEcrImage, l as pickFreePort, m as startNamespaceOwnerForwarder, n as SENSITIVE_ENV_KEYS, p as runDetached, q as withErrorHandling, r as appendEnvFlags, s as ensureDockerAvailable, t as DockerRunnerError, tt as resolveProfileCredentials, u as pullImage, w as architectureToPlatform, z as substituteImagePlaceholders } from "./docker-runner-6cuoe4H9.js";
4
+ import { $ as isIamRoleArn, A as buildDockerImage, B as substituteImagePlaceholders, D as isImageInLocalCache, E as warnIfEmulatedPlatform, F as parseEcrRegistryHost, G as LocalStartServiceError, H as CdkLocalError, I as contextForContainer, J as withErrorHandling, K as RouteDiscoveryError, L as derivePartitionAndUrlSuffix, M as createShutdownSignalHandler, N as signalExitCode, O as parseEcrUri, P as describeExitWithoutArgv, Q as describeRejectedRoleArn, R as derivePseudoParametersFromRegion, T as buildContainerImage, U as InteractiveTtyRequiredError, V as tryResolveImageFnJoin, W as LocalInvokeBuildError, X as applyRoleArnIfSet, Y as AssumeRoleFailure, Z as assumeRoleCredentials, a as describeRefusedSensitiveEnvKeys, c as execEnvForSecrets, d as rememberForwardedPorts, et as refusedRoleArnMessage, f as removeContainer, h as streamLogs, i as attachLoopbackForwarder, j as resolveAssetSourcePath, k as pullEcrImage, l as pickFreePort, m as startNamespaceOwnerForwarder, n as SENSITIVE_ENV_KEYS, nt as resolveProfileCredentials, p as runDetached, q as TargetSelectionCancelledError, r as appendEnvFlags, s as ensureDockerAvailable, t as DockerRunnerError, tt as buildStsClientConfig, u as pullImage, w as architectureToPlatform, z as formatStateRemedy } from "./docker-runner-B3OunVKV.js";
5
5
  import { a as isDockerClientEnvKey, c as runDockerStreaming, i as getDockerCmd, n as finchSecretArgvRefusal, o as isMalformedEnvKey, u as warnFinchArgvExposure } from "./docker-cmd-Cjg3jGYF.js";
6
6
  import { chmodSync, cpSync, createWriteStream, existsSync, lstatSync, mkdirSync, mkdtempSync, promises, readFileSync, readdirSync, readlinkSync, realpathSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
7
7
  import { Command, InvalidArgumentError, Option } from "commander";
@@ -3397,6 +3397,27 @@ function createLocalStateProvider(options, stackName, synthRegion, extraStatePro
3397
3397
  return factory(options, behavior);
3398
3398
  }
3399
3399
  }
3400
+ const UNNAMED_WORKLOAD = Object.freeze({});
3401
+ function groupWorkloadsRoutedApart(items, workloadOf) {
3402
+ const base = awsEmulatorRoutedServices(UNNAMED_WORKLOAD);
3403
+ if (base === void 0) return [];
3404
+ const baseKey = base.join(",");
3405
+ const groups = /* @__PURE__ */ new Map();
3406
+ for (const item of items) {
3407
+ const workload = workloadOf(item);
3408
+ const services = awsEmulatorRoutedServices(workload) ?? base;
3409
+ const key = services.join(",");
3410
+ if (key === baseKey) continue;
3411
+ const group = groups.get(key);
3412
+ if (group) group.items.push(item);
3413
+ else groups.set(key, {
3414
+ services,
3415
+ workload,
3416
+ items: [item]
3417
+ });
3418
+ }
3419
+ return [...groups.values()];
3420
+ }
3400
3421
  function toFlagName(field) {
3401
3422
  return "--" + field.replace(/([A-Z])/g, "-$1").toLowerCase();
3402
3423
  }
@@ -4272,7 +4293,7 @@ function parseContainerDefinition(raw, idx, taskLogicalId, resources, stack, con
4272
4293
  const command = pickStringArray$1(c["Command"]);
4273
4294
  const entryPoint = pickStringArray$1(c["EntryPoint"]);
4274
4295
  const workingDirectory = pickString(c["WorkingDirectory"]);
4275
- const subContext = buildSubstitutionContextFromImageContext(context);
4296
+ const subContext = buildSubstitutionContextFromImageContext(contextForContainer(context, name));
4276
4297
  const environment = {};
4277
4298
  const sensitiveEnvKeys = [];
4278
4299
  const droppedEnvKeys = [];
@@ -4687,13 +4708,34 @@ async function applyCrossStackValuesToTask(task, crossStackResolver, opts) {
4687
4708
  crossStackResolver,
4688
4709
  resolveDynamicReferences: crossStackDynamicReferenceHook(dynamicRefs, `Task ${task.taskDefinitionLogicalId} cross-stack env value`)
4689
4710
  };
4711
+ const containerState = (name) => {
4712
+ const own = imageContext?.containerStates;
4713
+ if (!own || !Object.hasOwn(own, name)) return void 0;
4714
+ const state = own[name];
4715
+ return {
4716
+ resources: state.stateResources ?? {},
4717
+ parameters: state.stateParameters,
4718
+ sensitiveParameters: state.stateSensitiveParameters?.length ? new Set(state.stateSensitiveParameters) : void 0
4719
+ };
4720
+ };
4690
4721
  try {
4691
- await applyCrossStackResolverToTask(task, subContext);
4722
+ await applyCrossStackResolverToTask(task, subContext, containerState);
4692
4723
  } finally {
4693
4724
  dynamicRefs.dispose();
4694
4725
  }
4695
4726
  }
4696
- async function applyCrossStackResolverToTask(task, context) {
4727
+ function withContainerState(context, state) {
4728
+ const out = {
4729
+ ...context,
4730
+ resources: state.resources
4731
+ };
4732
+ if (state.parameters) out.parameters = state.parameters;
4733
+ else delete out.parameters;
4734
+ if (state.sensitiveParameters) out.sensitiveParameters = state.sensitiveParameters;
4735
+ else delete out.sensitiveParameters;
4736
+ return out;
4737
+ }
4738
+ async function applyCrossStackResolverToTask(task, context, containerState) {
4697
4739
  if (!context.crossStackResolver) return;
4698
4740
  const { resolveDynamicReferences: _envOnly, ...secretContext } = context;
4699
4741
  const rawContainers = (task.resource.Properties ?? {})["ContainerDefinitions"];
@@ -4705,10 +4747,12 @@ async function applyCrossStackResolverToTask(task, context) {
4705
4747
  const c = raw;
4706
4748
  const containerName = pickString(c["Name"]) ?? container.name;
4707
4749
  const resolveRefs = context.resolveDynamicReferences;
4750
+ const ownState = containerState?.(container.name);
4751
+ const baseContext = ownState ? withContainerState(context, ownState) : context;
4708
4752
  const containerContext = resolveRefs ? {
4709
- ...context,
4753
+ ...baseContext,
4710
4754
  resolveDynamicReferences: (v, region) => resolveRefs(v, region, { containerName: container.name })
4711
- } : context;
4755
+ } : baseContext;
4712
4756
  const resolvedEnvKeys = /* @__PURE__ */ new Set();
4713
4757
  const resolvedSecretNames = /* @__PURE__ */ new Set();
4714
4758
  if (Array.isArray(c["Environment"])) for (const entry of c["Environment"]) {
@@ -4736,7 +4780,7 @@ async function applyCrossStackResolverToTask(task, context) {
4736
4780
  if (typeof valueFromRaw === "string" && valueFromRaw.length > 0) continue;
4737
4781
  if (container.secrets.some((s) => s.name === sName)) continue;
4738
4782
  if (!isCrossStackIntrinsic(valueFromRaw)) continue;
4739
- const sub = await substituteAgainstStateAsync(valueFromRaw, secretContext);
4783
+ const sub = await substituteAgainstStateAsync(valueFromRaw, ownState ? withContainerState(secretContext, ownState) : secretContext);
4740
4784
  if (sub.kind === "literal" && typeof sub.value === "string" && sub.value.length > 0) {
4741
4785
  container.secrets.push({
4742
4786
  name: sName,
@@ -10823,7 +10867,7 @@ async function localStartApiCommand(targets, options, extraStateProviders) {
10823
10867
  for (const [k, v] of direct) corsConfigByApiId.set(k, v);
10824
10868
  }
10825
10869
  assertServedLogicalIdsUnambiguous(servedStacks, servedRoutes, routesWithAuth, webSocketApis);
10826
- const stateByStack = isCfnFlagPresent(options) || hasExtraStateProviderActive(options, extraStateProviders) ? await loadStateForRoutedStacks(servedStacks, servedRoutes, routesWithAuth, options, extraStateProviders) : /* @__PURE__ */ new Map();
10870
+ const stateByStack = isCfnFlagPresent(options) || hasExtraStateProviderActive(options, extraStateProviders) ? await loadStateForRoutedStacks(servedStacks, servedRoutes, routesWithAuth, options, extraStateProviders, webSocketApis) : /* @__PURE__ */ new Map();
10827
10871
  const profileCredentials = options.profile ? await resolveProfileCredentials(options.profile) : void 0;
10828
10872
  if (options.profile && profileCredentials && !profileCredsFile) profileCredsFile = await writeProfileCredentialsFile(options.profile, profileCredentials);
10829
10873
  const lambdaIds = uniqueLambdaIds(servedRoutes, routesWithAuth, webSocketApis);
@@ -11396,7 +11440,8 @@ async function buildContainerSpec(args) {
11396
11440
  platform = architectureToPlatform(lambda.architecture);
11397
11441
  }
11398
11442
  let templateEnv = getTemplateEnv$1(lambda.resource);
11399
- const stateBundle = stateByStack.get(lambda.stack.stackName);
11443
+ const stackBundle = stateByStack.get(lambda.stack.stackName);
11444
+ const stateBundle = stackBundle?.byLambda?.get(logicalId) ?? (stackBundle?.withoutSharedState ? void 0 : stackBundle);
11400
11445
  let stateAudit;
11401
11446
  const plaintextKeys = /* @__PURE__ */ new Set();
11402
11447
  const deployedSecretKeys = [];
@@ -11461,7 +11506,7 @@ async function buildContainerSpec(args) {
11461
11506
  logicalId,
11462
11507
  assumeRole,
11463
11508
  lambdaResource: lambda.resource,
11464
- stateBundle
11509
+ stateBundle: stackBundle?.withoutSharedState ? void 0 : stackBundle
11465
11510
  });
11466
11511
  if (roleArn) {
11467
11512
  const creds = await assumeLambdaExecutionRole(roleArn, stsRegion, profile);
@@ -11893,10 +11938,9 @@ function envHasIntrinsicValue$1(templateEnv) {
11893
11938
  }
11894
11939
  return false;
11895
11940
  }
11896
- async function loadStateForRoutedStacks(stacks, routes, routesWithAuth, options, extraStateProviders) {
11897
- const logger = getLogger();
11941
+ async function loadStateForRoutedStacks(stacks, routes, routesWithAuth, options, extraStateProviders, webSocketApis = []) {
11898
11942
  const out = /* @__PURE__ */ new Map();
11899
- const lambdaIds = uniqueLambdaIds(routes, routesWithAuth);
11943
+ const lambdaIds = uniqueLambdaIds(routes, routesWithAuth, webSocketApis);
11900
11944
  const reachableStackNames = /* @__PURE__ */ new Set();
11901
11945
  for (const logicalId of lambdaIds) for (const stack of stacks) {
11902
11946
  const resource = stack.template.Resources?.[logicalId];
@@ -11918,51 +11962,88 @@ async function loadStateForRoutedStacks(stacks, routes, routesWithAuth, options,
11918
11962
  for (const stackName of reachableStackNames) {
11919
11963
  const stack = stacks.find((s) => s.stackName === stackName);
11920
11964
  if (!stack) continue;
11921
- const provider = createLocalStateProvider(options, stack.stackName, await resolveCfnFallbackRegion(options, stack.region), extraStateProviders);
11922
- if (!provider) continue;
11923
- try {
11924
- const loaded = await provider.load(stack.stackName, stack.region);
11925
- if (!loaded) continue;
11926
- const bundle = {
11927
- state: {
11928
- version: 1,
11929
- stackName: stack.stackName,
11930
- resources: loaded.resources,
11931
- outputs: loaded.outputs,
11932
- lastModified: 0
11933
- },
11934
- region: loaded.region
11935
- };
11936
- if (stackHasIntrinsicEnv(stackName)) {
11937
- const pseudo = await resolvePseudoParametersForStartApi(loaded.region, options);
11938
- if (pseudo) bundle.pseudoParameters = pseudo;
11939
- }
11940
- if (provider.resolveDeployedFunctionEnv) {
11941
- const deployedEnvByLambda = /* @__PURE__ */ new Map();
11942
- for (const logicalId of lambdaIds) {
11943
- const resource = stack.template.Resources?.[logicalId];
11944
- if (!resource || resource.Type !== "AWS::Lambda::Function") continue;
11945
- if (!envHasIntrinsicValue$1(getTemplateEnv$1(resource))) continue;
11946
- const physicalId = loaded.resources[logicalId]?.physicalId;
11947
- if (!physicalId) continue;
11948
- const deployedEnv = await provider.resolveDeployedFunctionEnv(physicalId);
11949
- if (deployedEnv) deployedEnvByLambda.set(logicalId, deployedEnv);
11950
- }
11951
- if (deployedEnvByLambda.size > 0) bundle.deployedEnvByLambda = deployedEnvByLambda;
11952
- }
11953
- if (stackHasIntrinsicEnv(stackName) && provider.resolveTemplateSsmParameters) {
11954
- const ssmParameters = await provider.resolveTemplateSsmParameters(stack.template);
11955
- if (Object.keys(ssmParameters.values).length > 0) bundle.ssmParameters = ssmParameters.values;
11956
- if (ssmParameters.secureStringLogicalIds.length > 0) bundle.ssmSecureStringLogicalIds = ssmParameters.secureStringLogicalIds;
11957
- }
11958
- out.set(stackName, bundle);
11959
- logger.debug(`${provider.label}: loaded state for ${displayStackName(stackName)} (${loaded.region})`);
11960
- } finally {
11961
- provider.dispose();
11965
+ const region = await resolveCfnFallbackRegion(options, stack.region);
11966
+ const providerFor = (workload) => createLocalStateProvider(options, stack.stackName, region, extraStateProviders, { workload });
11967
+ const stackLambdaIds = lambdaIds.filter((id) => stack.template.Resources?.[id]?.Type === "AWS::Lambda::Function");
11968
+ const groups = groupWorkloadsRoutedApart(stackLambdaIds, (logicalId) => ({
11969
+ logicalId,
11970
+ cdkPath: readCdkPathOrUndefined(stack.template.Resources[logicalId])
11971
+ }));
11972
+ const grouped = new Set(groups.flatMap((g) => g.items));
11973
+ const shared = await loadStackStateBundle(stack, providerFor(UNNAMED_WORKLOAD), {
11974
+ lambdaIds: stackLambdaIds.filter((id) => !grouped.has(id)),
11975
+ intrinsicEnv: stackHasIntrinsicEnv(stackName),
11976
+ options
11977
+ });
11978
+ const byLambda = /* @__PURE__ */ new Map();
11979
+ for (const group of groups) {
11980
+ const own = await loadStackStateBundle(stack, providerFor(group.workload), {
11981
+ lambdaIds: group.items,
11982
+ intrinsicEnv: stackHasIntrinsicEnv(stackName),
11983
+ options,
11984
+ ...shared?.pseudoParameters && { pseudoParameters: shared.pseudoParameters }
11985
+ });
11986
+ if (own) for (const logicalId of group.items) byLambda.set(logicalId, own);
11962
11987
  }
11988
+ const bundle = shared ?? (byLambda.size > 0 ? {
11989
+ state: {
11990
+ version: 1,
11991
+ stackName: stack.stackName,
11992
+ resources: {},
11993
+ outputs: {},
11994
+ lastModified: 0
11995
+ },
11996
+ withoutSharedState: true
11997
+ } : void 0);
11998
+ if (!bundle) continue;
11999
+ if (byLambda.size > 0) bundle.byLambda = byLambda;
12000
+ out.set(stackName, bundle);
11963
12001
  }
11964
12002
  return out;
11965
12003
  }
12004
+ async function loadStackStateBundle(stack, provider, args) {
12005
+ if (!provider) return void 0;
12006
+ try {
12007
+ const loaded = await provider.load(stack.stackName, stack.region);
12008
+ if (!loaded) return void 0;
12009
+ const bundle = {
12010
+ state: {
12011
+ version: 1,
12012
+ stackName: stack.stackName,
12013
+ resources: loaded.resources,
12014
+ outputs: loaded.outputs,
12015
+ lastModified: 0
12016
+ },
12017
+ region: loaded.region
12018
+ };
12019
+ if (args.intrinsicEnv) {
12020
+ const pseudo = args.pseudoParameters ?? await resolvePseudoParametersForStartApi(loaded.region, args.options);
12021
+ if (pseudo) bundle.pseudoParameters = pseudo;
12022
+ }
12023
+ if (provider.resolveDeployedFunctionEnv) {
12024
+ const deployedEnvByLambda = /* @__PURE__ */ new Map();
12025
+ for (const logicalId of args.lambdaIds) {
12026
+ const resource = stack.template.Resources?.[logicalId];
12027
+ if (!resource || resource.Type !== "AWS::Lambda::Function") continue;
12028
+ if (!envHasIntrinsicValue$1(getTemplateEnv$1(resource))) continue;
12029
+ const physicalId = loaded.resources[logicalId]?.physicalId;
12030
+ if (!physicalId) continue;
12031
+ const deployedEnv = await provider.resolveDeployedFunctionEnv(physicalId);
12032
+ if (deployedEnv) deployedEnvByLambda.set(logicalId, deployedEnv);
12033
+ }
12034
+ if (deployedEnvByLambda.size > 0) bundle.deployedEnvByLambda = deployedEnvByLambda;
12035
+ }
12036
+ if (args.intrinsicEnv && provider.resolveTemplateSsmParameters) {
12037
+ const ssmParameters = await provider.resolveTemplateSsmParameters(stack.template);
12038
+ if (Object.keys(ssmParameters.values).length > 0) bundle.ssmParameters = ssmParameters.values;
12039
+ if (ssmParameters.secureStringLogicalIds.length > 0) bundle.ssmSecureStringLogicalIds = ssmParameters.secureStringLogicalIds;
12040
+ }
12041
+ getLogger().debug(`${provider.label}: loaded state for ${displayStackName(stack.stackName)} (${loaded.region})`);
12042
+ return bundle;
12043
+ } finally {
12044
+ provider.dispose();
12045
+ }
12046
+ }
11966
12047
  async function resolvePseudoParametersForStartApi(stateRegion, options) {
11967
12048
  const logger = getLogger();
11968
12049
  const region = options.region ?? process.env["AWS_REGION"] ?? process.env["AWS_DEFAULT_REGION"] ?? stateRegion;
@@ -16707,7 +16788,7 @@ const defaultDockerStartImpl = async (containerId, opts = {}) => {
16707
16788
  const { getActiveWorkloadAwsWiring } = await import("./workload-identity-BOEZuEDO.js").then((n) => n.R);
16708
16789
  const wiring = getActiveWorkloadAwsWiring();
16709
16790
  if (wiring) {
16710
- const { attachLoopbackForwarder } = await import("./docker-runner-6cuoe4H9.js").then((n) => n.o);
16791
+ const { attachLoopbackForwarder } = await import("./docker-runner-B3OunVKV.js").then((n) => n.o);
16711
16792
  await attachLoopbackForwarder(containerId, wiring);
16712
16793
  }
16713
16794
  };
@@ -19588,13 +19669,13 @@ async function loadAssetContextForTarget(args) {
19588
19669
  }
19589
19670
  async function rollOneTarget(args) {
19590
19671
  const { signal, controller, newBoot, stacks, options, discovery, skipPull, extraStateProviders, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, verdict, imageOverrideTag, logger } = args;
19591
- const candidate = pickCandidateStack$1(newBoot.target, stacks);
19592
- const stateProvider = createLocalStateProvider(options, candidate?.stackName ?? "", await resolveCfnFallbackRegion(options, candidate?.region), extraStateProviders);
19672
+ const { stateProvider, stateProviderFor } = await createTargetStateProviders(newBoot.target, stacks, options, extraStateProviders);
19593
19673
  try {
19594
19674
  let resolved;
19595
19675
  try {
19596
19676
  resolved = await resolveServiceAndRunnerOpts(newBoot, stacks, options, discovery, skipPull, stateProvider, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, {
19597
19677
  quiet: true,
19678
+ stateProviderFor,
19598
19679
  ...imageOverrideTag !== void 0 && { imageOverrideTag }
19599
19680
  });
19600
19681
  } catch (err) {
@@ -19641,23 +19722,28 @@ async function rollOneTarget(args) {
19641
19722
  }
19642
19723
  }
19643
19724
  async function bootOneTarget(boot, runState, stacks, options, discovery, skipPull, extraStateProviders, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, imageOverrideTag) {
19644
- const candidate = pickCandidateStack$1(boot.target, stacks);
19645
- const stateProvider = createLocalStateProvider(options, candidate?.stackName ?? "", await resolveCfnFallbackRegion(options, candidate?.region), extraStateProviders);
19725
+ const { stateProvider, stateProviderFor } = await createTargetStateProviders(boot.target, stacks, options, extraStateProviders);
19646
19726
  try {
19647
- return await runOneTarget(boot, runState, stacks, options, discovery, skipPull, stateProvider, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, imageOverrideTag);
19727
+ return await runOneTarget(boot, runState, stacks, options, discovery, skipPull, stateProvider, stateProviderFor, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, imageOverrideTag);
19648
19728
  } finally {
19649
19729
  if (stateProvider) stateProvider.dispose();
19650
19730
  }
19651
19731
  }
19652
- async function runOneTarget(boot, runState, stacks, options, discovery, skipPull, stateProvider, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, imageOverrideTag) {
19653
- const { service, runnerOpts } = await resolveServiceAndRunnerOpts(boot, stacks, options, discovery, skipPull, stateProvider, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, imageOverrideTag !== void 0 ? { imageOverrideTag } : {});
19732
+ async function runOneTarget(boot, runState, stacks, options, discovery, skipPull, stateProvider, stateProviderFor, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, imageOverrideTag) {
19733
+ const { service, runnerOpts } = await resolveServiceAndRunnerOpts(boot, stacks, options, discovery, skipPull, stateProvider, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, {
19734
+ stateProviderFor,
19735
+ ...imageOverrideTag !== void 0 && { imageOverrideTag }
19736
+ });
19654
19737
  return startEcsService(service, runnerOpts, runState);
19655
19738
  }
19656
19739
  async function resolveServiceAndRunnerOpts(boot, stacks, options, discovery, skipPull, stateProvider, profileCredsFile, frontDoorPools, suppressLoadBalancerWarning, opts = {}) {
19657
19740
  const logger = getLogger();
19658
19741
  const target = boot.target;
19659
19742
  const quiet = opts.quiet === true;
19660
- const imageContext = await buildEcsImageResolutionContext$1(target, stacks, options, stateProvider, opts.imageOverrideTag !== void 0 ? { imageOverridden: true } : {});
19743
+ const imageContext = await buildEcsImageResolutionContext$1(target, stacks, options, stateProvider, {
19744
+ ...opts.imageOverrideTag !== void 0 && { imageOverridden: true },
19745
+ ...opts.stateProviderFor && { stateProviderFor: opts.stateProviderFor }
19746
+ });
19661
19747
  const service = resolveEcsServiceTarget(target, stacks, imageContext, { suppressLoadBalancerWarning });
19662
19748
  const representative = service.task.containers.find((c) => c.essential) ?? service.task.containers[0];
19663
19749
  assertEcsTaskImagesResolvable(service.task, new Set(opts.imageOverrideTag !== void 0 && representative ? [representative.name] : []));
@@ -20044,6 +20130,63 @@ async function assumeTaskRole$1(roleArn, region, profile) {
20044
20130
  makeError: (message) => new LocalStartServiceError(message)
20045
20131
  });
20046
20132
  }
20133
+ async function createTargetStateProviders(target, stacks, options, extraStateProviders) {
20134
+ const candidate = pickCandidateStack$1(target, stacks);
20135
+ const region = await resolveCfnFallbackRegion(options, candidate?.region);
20136
+ const stateProviderFor = (workload) => createLocalStateProvider(options, candidate?.stackName ?? "", region, extraStateProviders, { workload });
20137
+ return {
20138
+ stateProvider: stateProviderFor(UNNAMED_WORKLOAD),
20139
+ stateProviderFor
20140
+ };
20141
+ }
20142
+ function ecsContainerNamesOf(stack) {
20143
+ const names = /* @__PURE__ */ new Set();
20144
+ for (const resource of Object.values(stack.template.Resources ?? {})) {
20145
+ if (resource?.Type !== "AWS::ECS::TaskDefinition") continue;
20146
+ const defs = resource.Properties?.["ContainerDefinitions"];
20147
+ if (!Array.isArray(defs)) continue;
20148
+ for (const def of defs) {
20149
+ const name = def?.["Name"];
20150
+ if (typeof name === "string" && name !== "") names.add(name);
20151
+ }
20152
+ }
20153
+ return [...names];
20154
+ }
20155
+ async function loadMixedModeContainerStates(ctx, stack, stateProviderFor) {
20156
+ const groups = groupWorkloadsRoutedApart(ecsContainerNamesOf(stack), (containerName) => ({ containerName }));
20157
+ if (groups.length === 0) return;
20158
+ const containerStates = {};
20159
+ for (const group of groups) {
20160
+ const provider = stateProviderFor(group.workload);
20161
+ if (!provider) continue;
20162
+ try {
20163
+ const state = {};
20164
+ const loaded = await provider.load(stack.stackName, stack.region);
20165
+ if (loaded) state.stateResources = loaded.resources;
20166
+ else {
20167
+ const loadError = provider.getLastLoadError?.();
20168
+ if (loadError) state.stateLoadFailureMessage = loadError;
20169
+ }
20170
+ if (provider.resolveTemplateSsmParameters) {
20171
+ const ssm = await provider.resolveTemplateSsmParameters(stack.template);
20172
+ if (Object.keys(ssm.values).length > 0) state.stateParameters = ssm.values;
20173
+ if (ssm.secureStringLogicalIds.length > 0) state.stateSensitiveParameters = ssm.secureStringLogicalIds;
20174
+ }
20175
+ for (const name of group.items) defineOwnState(containerStates, name, state);
20176
+ } finally {
20177
+ provider.dispose();
20178
+ }
20179
+ }
20180
+ ctx.containerStates = containerStates;
20181
+ }
20182
+ function defineOwnState(map, key, value) {
20183
+ Object.defineProperty(map, key, {
20184
+ value,
20185
+ enumerable: true,
20186
+ writable: true,
20187
+ configurable: true
20188
+ });
20189
+ }
20047
20190
  async function buildEcsImageResolutionContext$1(target, stacks, options, stateProvider, opts = {}) {
20048
20191
  const logger = getLogger();
20049
20192
  const candidate = pickCandidateStack$1(target, stacks);
@@ -20084,6 +20227,7 @@ async function buildEcsImageResolutionContext$1(target, stacks, options, statePr
20084
20227
  if (Object.keys(ssmParameters.values).length > 0) ctx.stateParameters = ssmParameters.values;
20085
20228
  if (ssmParameters.secureStringLogicalIds.length > 0) ctx.stateSensitiveParameters = ssmParameters.secureStringLogicalIds;
20086
20229
  }
20230
+ if (needs.needsEnvOrSecretSubstitution && opts.stateProviderFor) await loadMixedModeContainerStates(ctx, candidate, opts.stateProviderFor);
20087
20231
  } else if (!stateProvider && needs.needsStateResources) {
20088
20232
  if (!opts.suppressStateWarning && !opts.imageOverridden) logger.warn("Container Image references a same-stack AWS::ECR::Repository. Pass a state-source flag (e.g. --from-cfn-stack or a host-provided extension) to substitute the deployed repository URI, or --image-override to build it from a local Dockerfile.");
20089
20233
  } else if (!stateProvider && needs.needsEnvOrSecretSubstitution) {
@@ -20199,7 +20343,7 @@ async function resolveAndBuildImageOverrides(args) {
20199
20343
  const resolvedForPeek = [];
20200
20344
  for (const target of perTarget) {
20201
20345
  const candidate = pickCandidateStack$1(target, stacks);
20202
- const stateProvider = createLocalStateProvider(options, candidate?.stackName ?? "", await resolveCfnFallbackRegion(options, candidate?.region), extraStateProviders);
20346
+ const stateProvider = createLocalStateProvider(options, candidate?.stackName ?? "", await resolveCfnFallbackRegion(options, candidate?.region), extraStateProviders, { workload: UNNAMED_WORKLOAD });
20203
20347
  let imageContext;
20204
20348
  let service;
20205
20349
  try {
@@ -20352,8 +20496,10 @@ async function localRunTaskCommand(target, options, extraStateProviders) {
20352
20496
  onMissing: () => new CdkLocalError(`${getEmbedConfig().cliName} run-task requires a <target> (an ECS task definition display path or logical ID). Run \`${getEmbedConfig().cliName} list\` to see them, or run it in a TTY to pick interactively.`, "LOCAL_RUN_TASK_TARGET_REQUIRED")
20353
20497
  });
20354
20498
  const candidate = pickCandidateStack(resolvedTarget, stacks);
20355
- stateProvider = createLocalStateProvider(options, candidate?.stackName ?? "", await resolveCfnFallbackRegion(options, candidate?.region), extraStateProviders);
20356
- const imageContext = await buildEcsImageResolutionContext(candidate, stateProvider, options);
20499
+ const stateRegion = await resolveCfnFallbackRegion(options, candidate?.region);
20500
+ const stateProviderFor = (workload) => createLocalStateProvider(options, candidate?.stackName ?? "", stateRegion, extraStateProviders, { workload });
20501
+ stateProvider = stateProviderFor(UNNAMED_WORKLOAD);
20502
+ const imageContext = await buildEcsImageResolutionContext(candidate, stateProvider, options, stateProviderFor);
20357
20503
  const task = resolveEcsTaskTarget(resolvedTarget, stacks, imageContext);
20358
20504
  logger.info(`Target: ${displayStackName(`${task.stack.stackName}/${task.taskDefinitionLogicalId}`)} (family=${displayIdent(task.family)}, containers=${task.containers.length})`);
20359
20505
  const taskNeeds = detectEcsImageResolutionNeeds(stacks.find((s) => s.stackName === task.stack.stackName) ?? task.stack);
@@ -20495,7 +20641,7 @@ async function assumeTaskRole(roleArn, region, profile) {
20495
20641
  sessionNameSuffix: "run-task"
20496
20642
  });
20497
20643
  }
20498
- async function buildEcsImageResolutionContext(candidate, stateProvider, options) {
20644
+ async function buildEcsImageResolutionContext(candidate, stateProvider, options, stateProviderFor) {
20499
20645
  const logger = getLogger();
20500
20646
  if (!candidate) return void 0;
20501
20647
  const needs = detectEcsImageResolutionNeeds(candidate);
@@ -20534,6 +20680,7 @@ async function buildEcsImageResolutionContext(candidate, stateProvider, options)
20534
20680
  if (Object.keys(ssmParameters.values).length > 0) ctx.stateParameters = ssmParameters.values;
20535
20681
  if (ssmParameters.secureStringLogicalIds.length > 0) ctx.stateSensitiveParameters = ssmParameters.secureStringLogicalIds;
20536
20682
  }
20683
+ if (needs.needsEnvOrSecretSubstitution && stateProviderFor) await loadMixedModeContainerStates(ctx, candidate, stateProviderFor);
20537
20684
  } else if (!stateProvider && needs.needsStateResources) {
20538
20685
  if (!options.imageOverride?.length) logger.warn("Container Image references a same-stack AWS::ECR::Repository. Pass a state-source flag (e.g. --from-cfn-stack or a host-provided extension) to substitute the deployed repository URI, or --image-override to build it from a local Dockerfile. Otherwise the resolver will surface its existing error.");
20539
20686
  } else if (!stateProvider && needs.needsEnvOrSecretSubstitution) logger.warn("Container Environment / Secrets entries contain CloudFormation intrinsics (Ref / Fn::GetAtt / Fn::Sub / Fn::Join). Pass a state-source flag (e.g. --from-cfn-stack or a host-provided extension) to substitute them against deployed state. Without a state source these entries are dropped (per-key warnings will follow).");
@@ -31621,7 +31768,7 @@ async function prepareEcsImageContexts(args) {
31621
31768
  }
31622
31769
  rejectExplicitCfnStackWithMultipleStacks(options, owningStacks.length);
31623
31770
  for (const stack of owningStacks) {
31624
- const stateProvider = createLocalStateProvider(options, stack.stackName, await resolveCfnFallbackRegion(options, stack.region));
31771
+ const stateProvider = createLocalStateProvider(options, stack.stackName, await resolveCfnFallbackRegion(options, stack.region), void 0, { workload: UNNAMED_WORKLOAD });
31625
31772
  try {
31626
31773
  const ctx = await buildEcsImageResolutionContext(stack, stateProvider, options);
31627
31774
  contextByStack.set(stack.stackName, ctx);
@@ -31998,5 +32145,5 @@ function addStudioSpecificOptions(cmd) {
31998
32145
  }
31999
32146
 
32000
32147
  //#endregion
32001
- export { postHook as $, awsEndpointOptions as $a, buildConnectEvent as $i, addImageOverrideOptions as $n, addStartApiSpecificOptions as $r, classifyS3Error as $t, microvmFidelityWarnings as A, webSocketApiMatchesIdentifier as Aa, buildCorsConfigByApiId as Ai, stripCloudFrontImport as An, A2A_CONTAINER_PORT as Ar, readContainerLogTail as At, MICROVM_WS_BASE_PROTOCOL as B, pickAgentCoreCandidateStack as Ba, pickResponseTemplate as Bi, createLocalStartAlbCommand as Bn, AGENTCORE_SESSION_ID_HEADER as Br, parseWebFunctionBuildConfig as Bt, addListSpecificOptions as C, countTargets as Ca, buildMethodArn as Ci, WEB_FUNCTION_REVISION_TYPE as Cn, setShadowReadyTimeoutMs as Cr, parseKvsFileOverrides as Ct, buildMicrovmLambdaView as D, discoverWebSocketApisOrThrow as Da, invokeTokenAuthorizer as Di, compileCloudFrontFunction as Dn, createLocalInvokeAgentCoreCommand as Dr, WEB_FUNCTION_CONTAINER_PORT as Dt, addStartMicrovmSpecificOptions as E, discoverWebSocketApis as Ea, invokeRequestAuthorizer as Ei, resolveWebFunctionTarget as En, addInvokeAgentCoreSpecificOptions as Er, RecentOutput as Et, microvmImageTag as F, AGENTCORE_AGUI_PROTOCOL as Fa, translateLambdaResponse as Fi, findFileAssetForObjectKey as Fn, MCP_PROTOCOL_VERSION as Fr, buildNodeEntryFileStart as Ft, startMicrovmFrontDoor as G, deployedFillMayBeSecret as Ga, HOST_GATEWAY_MIN_VERSION as Gi, addStartServiceSpecificOptions as Gn, SUPPORTED_CODE_RUNTIMES as Gr, readWebFunctionServiceConfig as Gt, PROXY_PORT_HEADER as H, DynamicReferenceResolutionError as Ha, tryParseStatus as Hi, resolveAlbTarget as Hn, waitForAgentCoreHttpReady as Hr, WEB_FUNCTION_HTTP_ENDPOINT_ENV as Ht, planMicrovmPorts as I, AGENTCORE_HTTP_PROTOCOL as Ia, applyAuthorizerOverlay as Ii, isBucketDeploymentResource as In, mcpInvokeOnce as Ir, defaultWebFunctionPlatform as It, MICROVM_HOOK_PATH_PREFIX as J, keysOverriddenBy as Ja, bufferToBody as Ji, addRunTaskSpecificOptions as Jn, renderCodeDockerfile as Jr, idFromArn as Jt, stripMicrovmProxyHeaders as K, firstUsableRegion as Ka, probeHostGatewaySupport as Ki, createLocalStartServiceCommand as Kn, buildAgentCoreCodeImage as Kr, webFunctionAssumeRole as Kt, readExposedPorts as L, AGENTCORE_MCP_PROTOCOL as La, buildHttpApiV2Event as Li, resolveBucketDeploymentObjectKey as Ln, parseSseForJsonRpc as Lr, resolveWebFunctionRuntime as Lt, DEFAULT_TERMINATE_HOOK_TIMEOUT_MS as M, pickRefLogicalId as Ma, isFunctionUrlOacFronted as Mi, createLocalFileKvsDataSource as Mn, a2aInvokeOnce as Mr, waitForWebFunctionReady as Mt, LocalMicrovm as N, resolveLambdaArnIntrinsic as Na, matchPreflight as Ni, createUnboundCloudFrontModule as Nn, MCP_CONTAINER_PORT as Nr, watchContainerExit as Nt, createLocalStartMicrovmCommand as O, filterWebSocketApisByIdentifiers as Oa, attachAuthorizers as Oi, runViewerRequest as On, bridgeAgentCoreWs as Or, containerFailure as Ot, buildMicrovmImage as P, AGENTCORE_A2A_PROTOCOL as Pa, matchRoute as Pi, bucketDeploymentSourceObjectKeys as Pn, MCP_PATH as Pr, WEB_FUNCTION_RUNTIMES as Pt, pollBuildHook as Q, addAwsEndpointOptions as Qa, parseConnectionsPath as Qi, addEcsAssumeRoleOptions as Qn, createLocalInvokeCommand as Qr, resolveDeployedOriginBucket as Qt, setContainerPaused as R, AGENTCORE_RUNTIME_TYPE as Ra, buildRestV1Event as Ri, addAlbSpecificOptions as Rn, AGENTCORE_SIGV4_SERVICE as Rr, supportedWebFunctionRuntimes as Rt, StudioEventBus as S, resolveSingleTarget as Sa, verifyJwtViaDiscovery as Si, WEB_FUNCTION_ENDPOINT_TYPE as Sn, SOFT_RELOAD_COMPLETION_LOG_SUFFIX as Sr, normalizeKvsFileKeys as St, formatTargetListing as T, availableWebSocketApiIdentifiers as Ta, evaluateCachedLambdaPolicy as Ti, WebFunctionResolutionError as Tn, attachContainerLogStreamer as Tr, resolveCloudFrontTarget as Tt, rewriteUpgradeResponseHead as U, DynamicReferenceResolver as Ua, VtlEvaluationError as Ui, isApplicationLoadBalancer as Un, waitForAgentCorePing as Ur, buildWebFunctionLambdaView as Ut, MicrovmStateError as V, resolveAgentCoreTarget as Va, selectIntegrationResponse as Vi, parseLbPortOverrides as Vn, invokeAgentCore as Vr, resolveWebFunctionArtifact as Vt, selectTargetPort as W, containsDynamicReference as Wa, HOST_DOCKER_INTERNAL_GATEWAY as Wi, resolveAlbFrontDoor as Wn, downloadAndExtractS3Bundle as Wr, finalizeWebFunctionEnv as Wt, callRuntimeHook as X, resolveDynamicReferencesInEnv as Xa, buildMgmtEndpointEnvUrl as Xi, MAX_TASKS_SUBNET_RANGE_CAP as Xn, classifySourceChange as Xr, createDeployedKvsDataSource as Xt, MicrovmHookError as Y, parseDynamicReference as Ya, ConnectionRegistry as Yi, createLocalRunTaskCommand as Yn, toCmdArgv as Yr, resolveKvsModulesForDistribution as Yt, generateMicrovmId as Z, withoutKeys as Za, handleConnectionsRequest as Zi, addCommonEcsServiceOptions as Zn, addInvokeSpecificOptions as Zr, resolveDeployedKvsArnByName as Zt, filterStudioTargetGroups as _, resolveCfnStackName as _a, buildCognitoJwksUrl as _i, pickKvsLogicalIdFromArn as _n, isLocalCdkAssetImage as _r, attachAgentCoreWsBridge as _t, createLocalStudioCommand as a, EcsTaskResolutionError as aa, attachStageContext as ai, serveLambdaUrlOrigin as an, resolveSharedSidecarCredentials as ar, disposeMicrovmCodeArtifact as at, renderStudioHtml as b, resolveSsmParameters as ba, verifyCognitoJwt as bi, pickWebFunctionEndpointLogicalIdFromOrigin as bn, CloudMapRegistry as br, addStartCloudFrontSpecificOptions as bt, startStudioProxy as c, substituteAgainstStateAsync as ca, availableApiIdentifiers as ci, buildEdgeRequestEvent as cn, buildImageOverrideTag as cr, resolveMicrovmImageTarget as ct, createStudioDispatcher as d, LocalStateSourceError as da, groupRoutesByServer as di, httpHeadersToEdge as dn, mergeForService as dr, createLocalStartWebFunctionCommand as dt, buildDisconnectEvent as ea, createLocalStartApiCommand as ei, createS3OriginReader as en, buildEcsImageResolutionContext$1 as er, runHookBody as et, filterStudioCustomResources as f, createLocalStateProvider as fa, readMtlsMaterialsFromDisk as fi, CLOUDFRONT_DISTRIBUTION_TYPE as fn, parseImageOverrideFlags as fr, addStartAgentCoreSpecificOptions as ft, annotatePinnedEcsTargets as g, resolveCfnRegion as ga, defaultCredentialsLoader as gi, pickFunctionUrlLogicalIdFromOrigin as gn, imageOverrideKeyAliases as gr, startAgentCoreHttpServer as gt, annotateEcsTaskPinnedTargets as h, resolveCfnFallbackRegion as ha, resolveServiceIntegrationParameters as hi, isCloudFrontDistribution as hn, describePinnedImageUri as hr, selectServeInboundAuth as ht, coerceStopRequest as i, resolveRuntimeImage as ia, createFileWatcher as ii, serveFromStaticOrigin as in, resolveEcsAssumeRoleOption as ir, MicrovmResolutionError as it, readRunHookPayload as j, discoverRoutes as ja, buildCorsConfigFromCloudFrontChain as ji, createCloudFrontModule as jn, A2A_PATH as jr, startWebFunctionContainer as jt, finalizeMicrovmEnv as k, parseSelectionExpressionPath as ka, applyCorsResponseHeaders as ki, runViewerResponse as kn, invokeAgentCoreWs as kr, planWebFunctionContainer as kt, relayServeRequest as l, substituteEnvVarsFromState as la, filterRoutesByApiIdentifier as li, buildEdgeResponseEvent as ln, canonicalizeImageOverrideKeys as lr, s3KeyOfUri as lt, annotateAlbPinnedBackingServices as m, rejectExplicitCfnStackWithMultipleStacks as ma, resolveSelectionExpression as mi, extractKvsAssociations as mn, runImageOverrideBuilds as mr, buildAgentCoreServeAuthCheck as mt, coerceRunRequest as n, resolveRuntimeCodeMountPath as na, resolveApiTargetSubset as ni, startCloudFrontServer as nn, parseMaxTasks as nr, MICROVM_DEFAULT_INGRESS_PORT as nt, resolveServeBaseUrl as o, assertEcsTaskImagesResolvable as oa, buildStageMap as oi, applyEdgeRequestResult as on, runEcsServiceEmulator as or, readMicrovmImageConfig as ot, isCustomResourceLambdaTarget as p, isCfnFlagPresent as pa, startApiServer as pi, describeS3OriginDomain as pn, resolveImageOverrides as pr, createLocalStartAgentCoreCommand as pt, MAX_RUN_HOOK_PAYLOAD_BYTES as q, keysNotFromTemplate as qa, resolveHostGatewayExtraHosts as qi, serviceStrategy as qn, computeCodeImageTag as qr, webFunctionFidelityWarnings as qt, coerceServeRequest as r, resolveRuntimeFileExtension as ra, createAuthorizerCache as ri, resolveErrorResponseCandidates as rn, parseRestartPolicy as rr, MICROVM_IMAGE_TYPE as rt, createStudioServeManager as s, substituteAgainstState as sa, materializeLayerFromArn as si, applyEdgeResponseResult as sn, ImageOverrideError as sr, resolveMicrovmCodeArtifact as st, addStudioSpecificOptions as t, buildMessageEvent as ta, createWatchPredicates as ti, matchBehavior as tn, ecsClusterOption as tr, waitForAppAnswer as tt, reinvoke as u, substituteEnvVarsFromStateAsync as ua, filterRoutesByApiIdentifiers as ui, edgeHeadersToHttp as un, enforceImageOverrideOrphans as ur, addStartWebFunctionSpecificOptions as ut, startStudioServer as v, CfnLocalStateProvider as va, buildJwksUrlFromIssuer as vi, pickLambdaEdgeFunctionLogicalId as vn, listPinnedTargets as vr, startAgentCoreWsBridge as vt, createLocalListCommand as w, listTargets as wa, computeRequestIdentityHash as wi, WEB_FUNCTION_TYPE as wn, getContainerNetworkIp as wr, parseOriginOverrides as wt, createStudioStore as x, resolveWatchConfig as xa, verifyJwtAuthorizer as xi, resolveCloudFrontDistribution as xn, DEFAULT_SHADOW_READY_TIMEOUT_MS as xr, createLocalStartCloudFrontCommand as xt, toStudioTargetGroups as y, collectSsmParameterRefs as ya, createJwksCache as yi, pickTargetFunctionLogicalId as yn, buildCloudMapIndex as yr, LocalStartCloudFrontError as yt, MICROVM_CONTROL_PATH as z, AgentCoreResolutionError as za, evaluateResponseParameters as zi, albStrategy as zn, signAgentCoreInvocation as zr, disposeWebFunctionArtifact as zt };
32002
- //# sourceMappingURL=local-studio-DIxEENzj.js.map
32148
+ export { postHook as $, withoutKeys as $a, buildConnectEvent as $i, addImageOverrideOptions as $n, addStartApiSpecificOptions as $r, classifyS3Error as $t, microvmFidelityWarnings as A, filterWebSocketApisByIdentifiers as Aa, buildCorsConfigByApiId as Ai, stripCloudFrontImport as An, A2A_CONTAINER_PORT as Ar, readContainerLogTail as At, MICROVM_WS_BASE_PROTOCOL as B, AGENTCORE_RUNTIME_TYPE as Ba, pickResponseTemplate as Bi, createLocalStartAlbCommand as Bn, AGENTCORE_SESSION_ID_HEADER as Br, parseWebFunctionBuildConfig as Bt, addListSpecificOptions as C, resolveWatchConfig as Ca, buildMethodArn as Ci, WEB_FUNCTION_REVISION_TYPE as Cn, setShadowReadyTimeoutMs as Cr, parseKvsFileOverrides as Ct, buildMicrovmLambdaView as D, availableWebSocketApiIdentifiers as Da, invokeTokenAuthorizer as Di, compileCloudFrontFunction as Dn, createLocalInvokeAgentCoreCommand as Dr, WEB_FUNCTION_CONTAINER_PORT as Dt, addStartMicrovmSpecificOptions as E, listTargets as Ea, invokeRequestAuthorizer as Ei, resolveWebFunctionTarget as En, addInvokeAgentCoreSpecificOptions as Er, RecentOutput as Et, microvmImageTag as F, resolveLambdaArnIntrinsic as Fa, translateLambdaResponse as Fi, findFileAssetForObjectKey as Fn, MCP_PROTOCOL_VERSION as Fr, buildNodeEntryFileStart as Ft, startMicrovmFrontDoor as G, DynamicReferenceResolver as Ga, HOST_GATEWAY_MIN_VERSION as Gi, addStartServiceSpecificOptions as Gn, SUPPORTED_CODE_RUNTIMES as Gr, readWebFunctionServiceConfig as Gt, PROXY_PORT_HEADER as H, pickAgentCoreCandidateStack as Ha, tryParseStatus as Hi, resolveAlbTarget as Hn, waitForAgentCoreHttpReady as Hr, WEB_FUNCTION_HTTP_ENDPOINT_ENV as Ht, planMicrovmPorts as I, AGENTCORE_A2A_PROTOCOL as Ia, applyAuthorizerOverlay as Ii, isBucketDeploymentResource as In, mcpInvokeOnce as Ir, defaultWebFunctionPlatform as It, MICROVM_HOOK_PATH_PREFIX as J, firstUsableRegion as Ja, bufferToBody as Ji, addRunTaskSpecificOptions as Jn, renderCodeDockerfile as Jr, idFromArn as Jt, stripMicrovmProxyHeaders as K, containsDynamicReference as Ka, probeHostGatewaySupport as Ki, createLocalStartServiceCommand as Kn, buildAgentCoreCodeImage as Kr, webFunctionAssumeRole as Kt, readExposedPorts as L, AGENTCORE_AGUI_PROTOCOL as La, buildHttpApiV2Event as Li, resolveBucketDeploymentObjectKey as Ln, parseSseForJsonRpc as Lr, resolveWebFunctionRuntime as Lt, DEFAULT_TERMINATE_HOOK_TIMEOUT_MS as M, webSocketApiMatchesIdentifier as Ma, isFunctionUrlOacFronted as Mi, createLocalFileKvsDataSource as Mn, a2aInvokeOnce as Mr, waitForWebFunctionReady as Mt, LocalMicrovm as N, discoverRoutes as Na, matchPreflight as Ni, createUnboundCloudFrontModule as Nn, MCP_CONTAINER_PORT as Nr, watchContainerExit as Nt, createLocalStartMicrovmCommand as O, discoverWebSocketApis as Oa, attachAuthorizers as Oi, runViewerRequest as On, bridgeAgentCoreWs as Or, containerFailure as Ot, buildMicrovmImage as P, pickRefLogicalId as Pa, matchRoute as Pi, bucketDeploymentSourceObjectKeys as Pn, MCP_PATH as Pr, WEB_FUNCTION_RUNTIMES as Pt, pollBuildHook as Q, resolveDynamicReferencesInEnv as Qa, parseConnectionsPath as Qi, addEcsAssumeRoleOptions as Qn, createLocalInvokeCommand as Qr, resolveDeployedOriginBucket as Qt, setContainerPaused as R, AGENTCORE_HTTP_PROTOCOL as Ra, buildRestV1Event as Ri, addAlbSpecificOptions as Rn, AGENTCORE_SIGV4_SERVICE as Rr, supportedWebFunctionRuntimes as Rt, StudioEventBus as S, resolveSsmParameters as Sa, verifyJwtViaDiscovery as Si, WEB_FUNCTION_ENDPOINT_TYPE as Sn, SOFT_RELOAD_COMPLETION_LOG_SUFFIX as Sr, normalizeKvsFileKeys as St, formatTargetListing as T, countTargets as Ta, evaluateCachedLambdaPolicy as Ti, WebFunctionResolutionError as Tn, attachContainerLogStreamer as Tr, resolveCloudFrontTarget as Tt, rewriteUpgradeResponseHead as U, resolveAgentCoreTarget as Ua, VtlEvaluationError as Ui, isApplicationLoadBalancer as Un, waitForAgentCorePing as Ur, buildWebFunctionLambdaView as Ut, MicrovmStateError as V, AgentCoreResolutionError as Va, selectIntegrationResponse as Vi, parseLbPortOverrides as Vn, invokeAgentCore as Vr, resolveWebFunctionArtifact as Vt, selectTargetPort as W, DynamicReferenceResolutionError as Wa, HOST_DOCKER_INTERNAL_GATEWAY as Wi, resolveAlbFrontDoor as Wn, downloadAndExtractS3Bundle as Wr, finalizeWebFunctionEnv as Wt, callRuntimeHook as X, keysOverriddenBy as Xa, buildMgmtEndpointEnvUrl as Xi, MAX_TASKS_SUBNET_RANGE_CAP as Xn, classifySourceChange as Xr, createDeployedKvsDataSource as Xt, MicrovmHookError as Y, keysNotFromTemplate as Ya, ConnectionRegistry as Yi, createLocalRunTaskCommand as Yn, toCmdArgv as Yr, resolveKvsModulesForDistribution as Yt, generateMicrovmId as Z, parseDynamicReference as Za, handleConnectionsRequest as Zi, addCommonEcsServiceOptions as Zn, addInvokeSpecificOptions as Zr, resolveDeployedKvsArnByName as Zt, filterStudioTargetGroups as _, resolveCfnFallbackRegion as _a, buildCognitoJwksUrl as _i, pickKvsLogicalIdFromArn as _n, isLocalCdkAssetImage as _r, attachAgentCoreWsBridge as _t, createLocalStudioCommand as a, EcsTaskResolutionError as aa, attachStageContext as ai, serveLambdaUrlOrigin as an, resolveSharedSidecarCredentials as ar, disposeMicrovmCodeArtifact as at, renderStudioHtml as b, CfnLocalStateProvider as ba, verifyCognitoJwt as bi, pickWebFunctionEndpointLogicalIdFromOrigin as bn, CloudMapRegistry as br, addStartCloudFrontSpecificOptions as bt, startStudioProxy as c, substituteAgainstStateAsync as ca, availableApiIdentifiers as ci, buildEdgeRequestEvent as cn, buildImageOverrideTag as cr, resolveMicrovmImageTarget as ct, createStudioDispatcher as d, LocalStateSourceError as da, groupRoutesByServer as di, httpHeadersToEdge as dn, mergeForService as dr, createLocalStartWebFunctionCommand as dt, buildDisconnectEvent as ea, createLocalStartApiCommand as ei, createS3OriginReader as en, addAwsEndpointOptions as eo, buildEcsImageResolutionContext$1 as er, runHookBody as et, filterStudioCustomResources as f, UNNAMED_WORKLOAD as fa, readMtlsMaterialsFromDisk as fi, CLOUDFRONT_DISTRIBUTION_TYPE as fn, parseImageOverrideFlags as fr, addStartAgentCoreSpecificOptions as ft, annotatePinnedEcsTargets as g, rejectExplicitCfnStackWithMultipleStacks as ga, defaultCredentialsLoader as gi, pickFunctionUrlLogicalIdFromOrigin as gn, imageOverrideKeyAliases as gr, startAgentCoreHttpServer as gt, annotateEcsTaskPinnedTargets as h, isCfnFlagPresent as ha, resolveServiceIntegrationParameters as hi, isCloudFrontDistribution as hn, describePinnedImageUri as hr, selectServeInboundAuth as ht, coerceStopRequest as i, resolveRuntimeImage as ia, createFileWatcher as ii, serveFromStaticOrigin as in, resolveEcsAssumeRoleOption as ir, MicrovmResolutionError as it, readRunHookPayload as j, parseSelectionExpressionPath as ja, buildCorsConfigFromCloudFrontChain as ji, createCloudFrontModule as jn, A2A_PATH as jr, startWebFunctionContainer as jt, finalizeMicrovmEnv as k, discoverWebSocketApisOrThrow as ka, applyCorsResponseHeaders as ki, runViewerResponse as kn, invokeAgentCoreWs as kr, planWebFunctionContainer as kt, relayServeRequest as l, substituteEnvVarsFromState as la, filterRoutesByApiIdentifier as li, buildEdgeResponseEvent as ln, canonicalizeImageOverrideKeys as lr, s3KeyOfUri as lt, annotateAlbPinnedBackingServices as m, groupWorkloadsRoutedApart as ma, resolveSelectionExpression as mi, extractKvsAssociations as mn, runImageOverrideBuilds as mr, buildAgentCoreServeAuthCheck as mt, coerceRunRequest as n, resolveRuntimeCodeMountPath as na, resolveApiTargetSubset as ni, startCloudFrontServer as nn, parseMaxTasks as nr, MICROVM_DEFAULT_INGRESS_PORT as nt, resolveServeBaseUrl as o, assertEcsTaskImagesResolvable as oa, buildStageMap as oi, applyEdgeRequestResult as on, runEcsServiceEmulator as or, readMicrovmImageConfig as ot, isCustomResourceLambdaTarget as p, createLocalStateProvider as pa, startApiServer as pi, describeS3OriginDomain as pn, resolveImageOverrides as pr, createLocalStartAgentCoreCommand as pt, MAX_RUN_HOOK_PAYLOAD_BYTES as q, deployedFillMayBeSecret as qa, resolveHostGatewayExtraHosts as qi, serviceStrategy as qn, computeCodeImageTag as qr, webFunctionFidelityWarnings as qt, coerceServeRequest as r, resolveRuntimeFileExtension as ra, createAuthorizerCache as ri, resolveErrorResponseCandidates as rn, parseRestartPolicy as rr, MICROVM_IMAGE_TYPE as rt, createStudioServeManager as s, substituteAgainstState as sa, materializeLayerFromArn as si, applyEdgeResponseResult as sn, ImageOverrideError as sr, resolveMicrovmCodeArtifact as st, addStudioSpecificOptions as t, buildMessageEvent as ta, createWatchPredicates as ti, matchBehavior as tn, awsEndpointOptions as to, ecsClusterOption as tr, waitForAppAnswer as tt, reinvoke as u, substituteEnvVarsFromStateAsync as ua, filterRoutesByApiIdentifiers as ui, edgeHeadersToHttp as un, enforceImageOverrideOrphans as ur, addStartWebFunctionSpecificOptions as ut, startStudioServer as v, resolveCfnRegion as va, buildJwksUrlFromIssuer as vi, pickLambdaEdgeFunctionLogicalId as vn, listPinnedTargets as vr, startAgentCoreWsBridge as vt, createLocalListCommand as w, resolveSingleTarget as wa, computeRequestIdentityHash as wi, WEB_FUNCTION_TYPE as wn, getContainerNetworkIp as wr, parseOriginOverrides as wt, createStudioStore as x, collectSsmParameterRefs as xa, verifyJwtAuthorizer as xi, resolveCloudFrontDistribution as xn, DEFAULT_SHADOW_READY_TIMEOUT_MS as xr, createLocalStartCloudFrontCommand as xt, toStudioTargetGroups as y, resolveCfnStackName as ya, createJwksCache as yi, pickTargetFunctionLogicalId as yn, buildCloudMapIndex as yr, LocalStartCloudFrontError as yt, MICROVM_CONTROL_PATH as z, AGENTCORE_MCP_PROTOCOL as za, evaluateResponseParameters as zi, albStrategy as zn, signAgentCoreInvocation as zr, disposeWebFunctionArtifact as zt };
32149
+ //# sourceMappingURL=local-studio-BR8vPfCn.js.map