cdk-local 0.138.0 → 0.139.1

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.
@@ -20435,6 +20435,12 @@ async function loadAgentCoreAssetContext(args) {
20435
20435
  * the classifier treats `undefined` as "force rebuild", which is the
20436
20436
  * conservative default.
20437
20437
  */
20438
+ /**
20439
+ * Resolve the CURRENT (pre-reload) asset hash for the runtime, so the per-firing
20440
+ * classifier can compare it against the freshly-synthed hash. Exported so the
20441
+ * `cdkl start-agentcore --watch` reload watcher (issue #454, slice 4b) reuses
20442
+ * the SAME classification inputs as `invoke-agentcore --ws --watch`.
20443
+ */
20438
20444
  async function deriveOldAssetHash(args) {
20439
20445
  const { resolvedTarget, resolved, stacks, cdkOutDir, assetLoader } = args;
20440
20446
  if (resolved.codeArtifact) return resolved.codeArtifact.codeAssetHash;
@@ -31003,7 +31009,8 @@ function attachAgentCoreWsBridge(httpServer, config) {
31003
31009
  const liveCloses = /* @__PURE__ */ new Set();
31004
31010
  wss.on("connection", (browser) => {
31005
31011
  const sessionId = config.sessionId ?? randomUUID();
31006
- const handle = bridgeAgentCoreWs(config.containerHost, config.containerPort, {
31012
+ const containerPort = typeof config.containerPort === "function" ? config.containerPort() : config.containerPort;
31013
+ const handle = bridgeAgentCoreWs(config.containerHost, containerPort, {
31007
31014
  sessionId,
31008
31015
  ...config.authorization && { authorization: config.authorization },
31009
31016
  ...config.webSocketImpl && { webSocketImpl: config.webSocketImpl },
@@ -31227,7 +31234,7 @@ function startAgentCoreHttpServer(config) {
31227
31234
  });
31228
31235
  const bridge = attachWs ? attachAgentCoreWsBridge(httpServer, {
31229
31236
  containerHost: config.containerHost,
31230
- containerPort: config.containerPort,
31237
+ containerPort: () => config.containerPort,
31231
31238
  ...config.sessionId && { sessionId: config.sessionId },
31232
31239
  ...config.authorization && { authorization: config.authorization }
31233
31240
  }) : void 0;
@@ -31241,6 +31248,9 @@ function startAgentCoreHttpServer(config) {
31241
31248
  httpUrl: `http://${host}:${port}`,
31242
31249
  ...bridge && { wsUrl: `ws://${host}:${port}${bridge.path}` },
31243
31250
  port,
31251
+ setContainerPort: (newPort) => {
31252
+ config.containerPort = newPort;
31253
+ },
31244
31254
  close: () => new Promise((res) => {
31245
31255
  if (bridge) bridge.close().then(() => httpServer.close(() => res()));
31246
31256
  else httpServer.close(() => res());
@@ -31424,11 +31434,21 @@ async function localStartAgentCoreCommand(target, options, extraStateProviders)
31424
31434
  let server;
31425
31435
  let profileCredsFile;
31426
31436
  let stateProvider;
31437
+ let watcher;
31438
+ let reloadChain = Promise.resolve();
31427
31439
  let shuttingDown = false;
31428
31440
  let tornDown = false;
31429
31441
  const teardown = async () => {
31430
31442
  if (tornDown) return;
31431
31443
  tornDown = true;
31444
+ if (watcher) try {
31445
+ await watcher.close();
31446
+ } catch (err) {
31447
+ logger.debug(`watcher close failed: ${err instanceof Error ? err.message : String(err)}`);
31448
+ }
31449
+ try {
31450
+ await reloadChain;
31451
+ } catch {}
31432
31452
  if (server) try {
31433
31453
  await server.close();
31434
31454
  } catch (err) {
@@ -31493,7 +31513,7 @@ async function localStartAgentCoreCommand(target, options, extraStateProviders)
31493
31513
  await resolveFromS3BucketIntrinsic(resolved, stateProvider, loadedState, imageContext);
31494
31514
  const image = await resolveAgentCoreImage(resolved, options, loadedState, stateProvider);
31495
31515
  const { env: dockerEnv, sensitiveEnvKeys } = await buildContainerEnv(resolved, options, profileCredentials, profileCredsFile, stateProvider, loadedState, imageContext);
31496
- const containerHostPort = await pickFreePort();
31516
+ let containerHostPort = await pickFreePort();
31497
31517
  const containerHost = options.containerHost;
31498
31518
  const containerName = `${getEmbedConfig().resourceNamePrefix}-agentcore-${process.pid}-${Math.random().toString(36).slice(2, 8)}`;
31499
31519
  logger.info(`Starting agent container (image=${image}, port=${containerHostPort} -> ${plan.containerPortLabel})...`);
@@ -31567,6 +31587,116 @@ async function localStartAgentCoreCommand(target, options, extraStateProviders)
31567
31587
  logger.info(`${resolved.protocol} contract served on ${contractUrl} — POST ${contractUrl}`);
31568
31588
  }
31569
31589
  logger.info("Press ^C to shut down.");
31590
+ if (options.watch) {
31591
+ const cdkOutDir = options.output;
31592
+ const assetLoader = new AssetManifestLoader();
31593
+ let currentAssetHash = await deriveOldAssetHash({
31594
+ resolvedTarget,
31595
+ resolved,
31596
+ stacks,
31597
+ cdkOutDir,
31598
+ assetLoader
31599
+ });
31600
+ const waitReady = async (port) => {
31601
+ if (plan.readyPath === void 0) await waitForAgentCorePing(containerHost, port, options.timeout);
31602
+ else await waitForAgentCoreHttpReady(containerHost, port, plan.readyPath, options.timeout);
31603
+ };
31604
+ const watchRoot = process.cwd();
31605
+ const { ignored, shouldTrigger, excludePatterns } = createWatchPredicates({
31606
+ watchRoot,
31607
+ output: options.output,
31608
+ watchConfig: resolveWatchConfig()
31609
+ });
31610
+ logger.info(`Watching ${watchRoot} for source changes (excluding ${excludePatterns.join(", ")}). The warm container reloads in place; the serve stays up.`);
31611
+ watcher = createFileWatcher({
31612
+ paths: [watchRoot],
31613
+ ignored,
31614
+ shouldTrigger,
31615
+ onChange: (changedPaths) => {
31616
+ reloadChain = reloadChain.then(async () => {
31617
+ if (tornDown || shuttingDown) return;
31618
+ let freshStacks;
31619
+ let freshResolved;
31620
+ let freshLoaded;
31621
+ let freshImageContext;
31622
+ let verdict;
31623
+ let nextAssetHash = currentAssetHash;
31624
+ try {
31625
+ freshStacks = (await synthesizer.synthesize(synthOpts)).stacks;
31626
+ const freshCandidate = pickAgentCoreCandidateStack(resolvedTarget, freshStacks);
31627
+ const ctx = stateProvider && freshCandidate ? await buildAgentCoreImageContext(freshCandidate, stateProvider, options) : {
31628
+ context: void 0,
31629
+ loaded: void 0
31630
+ };
31631
+ freshImageContext = ctx.context;
31632
+ freshLoaded = ctx.loaded;
31633
+ freshResolved = resolveAgentCoreTarget(resolvedTarget, freshStacks, freshImageContext);
31634
+ await resolveFromS3BucketIntrinsic(freshResolved, stateProvider, freshLoaded, freshImageContext);
31635
+ const assetCtx = await loadAgentCoreAssetContext({
31636
+ resolvedTarget,
31637
+ resolved: freshResolved,
31638
+ stacks: freshStacks,
31639
+ cdkOutDir,
31640
+ assetLoader,
31641
+ oldAssetHash: currentAssetHash
31642
+ });
31643
+ if (assetCtx?.newAssetHash !== void 0) nextAssetHash = assetCtx.newAssetHash;
31644
+ verdict = classifySourceChange(changedPaths, assetCtx);
31645
+ logger.info(`Detected source change (${changedPaths.length} path(s)); verdict=${verdict.kind} (${verdict.reason}).`);
31646
+ } catch (err) {
31647
+ logger.error(`Reload: re-synth / classify failed (${err instanceof Error ? err.message : String(err)}); skipping this change. The serve stays up against the current container.`);
31648
+ return;
31649
+ }
31650
+ if (tornDown || shuttingDown) return;
31651
+ try {
31652
+ if (verdict.kind === "soft-reload") {
31653
+ if (!containerId) throw new CdkLocalError("Reload: no live container to docker cp / docker restart into.", "LOCAL_START_AGENTCORE_WATCH_NO_CONTAINER");
31654
+ await softReloadAgentContainer(containerId, verdict.newAssetSourceDir);
31655
+ await waitReady(containerHostPort);
31656
+ logger.info("Reload: soft-reloaded the agent container (docker cp + docker restart; container ID + host port preserved).");
31657
+ } else {
31658
+ if (stopLogs) {
31659
+ try {
31660
+ stopLogs();
31661
+ } catch {}
31662
+ stopLogs = void 0;
31663
+ }
31664
+ if (containerId) {
31665
+ await removeContainer(containerId);
31666
+ containerId = void 0;
31667
+ }
31668
+ const newImage = await resolveAgentCoreImage(freshResolved, options, freshLoaded, stateProvider);
31669
+ const { env: newEnv, sensitiveEnvKeys: newSensitive } = await buildContainerEnv(freshResolved, options, profileCredentials, profileCredsFile, stateProvider, freshLoaded, freshImageContext);
31670
+ const newPort = await pickFreePort();
31671
+ const newName = `${getEmbedConfig().resourceNamePrefix}-agentcore-${process.pid}-${Math.random().toString(36).slice(2, 8)}`;
31672
+ logger.info(`Reload: starting agent container (image=${newImage}, port=${newPort} -> ${plan.containerPortLabel})...`);
31673
+ containerId = await runDetached({
31674
+ image: newImage,
31675
+ mounts: [],
31676
+ env: newEnv,
31677
+ cmd: [],
31678
+ hostPort: newPort,
31679
+ host: containerHost,
31680
+ platform: options.platform,
31681
+ name: newName,
31682
+ ...plan.containerPort !== void 0 && { containerPort: plan.containerPort },
31683
+ ...newSensitive.size > 0 && { sensitiveEnvKeys: newSensitive }
31684
+ });
31685
+ stopLogs = streamLogs(containerId);
31686
+ containerHostPort = newPort;
31687
+ await waitReady(newPort);
31688
+ server?.setContainerPort(newPort);
31689
+ logger.info(`Reload: rebuilt the agent container; serve re-pointed to port ${newPort}.`);
31690
+ }
31691
+ currentAssetHash = nextAssetHash;
31692
+ logger.info("Reload complete.");
31693
+ } catch (err) {
31694
+ logger.error(`Reload failed: ${err instanceof Error ? err.message : String(err)}. The serve stays up; edit + save again to retry.`);
31695
+ }
31696
+ });
31697
+ }
31698
+ });
31699
+ }
31570
31700
  await new Promise(() => void 0);
31571
31701
  }
31572
31702
  /**
@@ -31600,7 +31730,7 @@ function createLocalStartAgentCoreCommand(opts = {}) {
31600
31730
  * `.addOption(...)` blocks. Chainable: returns `cmd`.
31601
31731
  */
31602
31732
  function addStartAgentCoreSpecificOptions(cmd) {
31603
- return cmd.addOption(new Option("--port <n>", "Serve bind port the client connects to (HTTP contract + /ws on the same port). Default 0 (OS-assigned).").default(0).argParser(parsePort)).addOption(new Option("--host <ip>", "Serve bind host. Default 127.0.0.1.").default("127.0.0.1")).addOption(new Option("--session-id <id>", "Pin one AgentCore runtime session id header value for every forwarded request / /ws connection (default: a fresh random UUID each, so each is its own session).")).addOption(new Option("--bearer-token <jwt>", "Bearer JWT to present when the runtime declares a customJwtAuthorizer. Verified against the runtime's OIDC discovery URL before the container starts, then injected as Authorization: Bearer <jwt> on every forwarded request and the container /ws upgrade.")).addOption(new Option("--no-verify-auth", "Skip inbound JWT verification even when the runtime declares a customJwtAuthorizer (local-dev escape hatch). A --bearer-token, if given, is still forwarded.")).addOption(new Option("--sigv4", "Sign each forwarded request with AWS SigV4 (service bedrock-agentcore) when the runtime declares NO customJwtAuthorizer, so the warm container sees the same Authorization / X-Amz-* headers the cloud receives. Mutually exclusive with --bearer-token; ignored (with a warning) when a customJwtAuthorizer is declared.")).addOption(new Option("--env-vars <file>", "JSON env-var overrides (SAM-compatible: {\"LogicalId\":{\"KEY\":\"VALUE\"}, \"Parameters\": {...}})")).addOption(new Option("--platform <platform>", "docker --platform for the agent container (linux/amd64 or linux/arm64). Defaults to linux/arm64 because the cloud AgentCore Runtime requires arm64.").choices(["linux/amd64", "linux/arm64"]).default("linux/arm64")).addOption(new Option("--no-pull", "Skip docker pull (use cached image) — no-op for the local-build path")).addOption(new Option("--no-build", "Skip docker build on the local-asset path (use the previously-built tag). No-op for the ECR / registry pull paths.")).addOption(new Option("--container-host <host>", "Host IP used to bind the agent container port. Must be a numeric IP. Defaults to 127.0.0.1.").default("127.0.0.1")).addOption(new Option("--timeout <ms>", "Maximum time in milliseconds to wait for the container to become ready (the GET /ping readiness deadline). Default 120000.").default(12e4).argParser(parseTimeoutMs)).addOption(new Option("--assume-role [arn]", "Assume the runtime's execution role and forward STS-issued temp credentials to the container. (1) `--assume-role <arn>` assumes the explicit ARN; (2) `--assume-role` (bare) uses the runtime's literal RoleArn; (3) `--no-assume-role` opts out. Off by default.")).addOption(new Option("--ecr-role-arn <arn>", "Role ARN to assume before authenticating against ECR for cross-account / centralized registries.")).addOption(new Option("--from-cfn-stack [cfn-stack-name]", "Read a deployed CloudFormation stack and substitute Ref / Fn::ImportValue in env vars / image URIs with the deployed physical IDs / exports. Bare form uses the resolved stack name.")).addOption(new Option("--stack-region <region>", "Region of the state record to read. Used with --from-cfn-stack as the CFn client region."));
31733
+ return cmd.addOption(new Option("--port <n>", "Serve bind port the client connects to (HTTP contract + /ws on the same port). Default 0 (OS-assigned).").default(0).argParser(parsePort)).addOption(new Option("--host <ip>", "Serve bind host. Default 127.0.0.1.").default("127.0.0.1")).addOption(new Option("--session-id <id>", "Pin one AgentCore runtime session id header value for every forwarded request / /ws connection (default: a fresh random UUID each, so each is its own session).")).addOption(new Option("--bearer-token <jwt>", "Bearer JWT to present when the runtime declares a customJwtAuthorizer. Verified against the runtime's OIDC discovery URL before the container starts, then injected as Authorization: Bearer <jwt> on every forwarded request and the container /ws upgrade.")).addOption(new Option("--no-verify-auth", "Skip inbound JWT verification even when the runtime declares a customJwtAuthorizer (local-dev escape hatch). A --bearer-token, if given, is still forwarded.")).addOption(new Option("--sigv4", "Sign each forwarded request with AWS SigV4 (service bedrock-agentcore) when the runtime declares NO customJwtAuthorizer, so the warm container sees the same Authorization / X-Amz-* headers the cloud receives. Mutually exclusive with --bearer-token; ignored (with a warning) when a customJwtAuthorizer is declared.")).addOption(new Option("--env-vars <file>", "JSON env-var overrides (SAM-compatible: {\"LogicalId\":{\"KEY\":\"VALUE\"}, \"Parameters\": {...}})")).addOption(new Option("--platform <platform>", "docker --platform for the agent container (linux/amd64 or linux/arm64). Defaults to linux/arm64 because the cloud AgentCore Runtime requires arm64.").choices(["linux/amd64", "linux/arm64"]).default("linux/arm64")).addOption(new Option("--watch", "Re-synth + reload the warm container in place on a CDK source change, keeping the serve up. A per-firing classifier picks rebuild (boot a fresh container, re-point the serve) vs soft-reload (docker cp + docker restart the same container) — the same pattern as start-service / invoke-agentcore --ws --watch.")).addOption(new Option("--no-pull", "Skip docker pull (use cached image) — no-op for the local-build path")).addOption(new Option("--no-build", "Skip docker build on the local-asset path (use the previously-built tag). No-op for the ECR / registry pull paths.")).addOption(new Option("--container-host <host>", "Host IP used to bind the agent container port. Must be a numeric IP. Defaults to 127.0.0.1.").default("127.0.0.1")).addOption(new Option("--timeout <ms>", "Maximum time in milliseconds to wait for the container to become ready (the GET /ping readiness deadline). Default 120000.").default(12e4).argParser(parseTimeoutMs)).addOption(new Option("--assume-role [arn]", "Assume the runtime's execution role and forward STS-issued temp credentials to the container. (1) `--assume-role <arn>` assumes the explicit ARN; (2) `--assume-role` (bare) uses the runtime's literal RoleArn; (3) `--no-assume-role` opts out. Off by default.")).addOption(new Option("--ecr-role-arn <arn>", "Role ARN to assume before authenticating against ECR for cross-account / centralized registries.")).addOption(new Option("--from-cfn-stack [cfn-stack-name]", "Read a deployed CloudFormation stack and substitute Ref / Fn::ImportValue in env vars / image URIs with the deployed physical IDs / exports. Bare form uses the resolved stack name.")).addOption(new Option("--stack-region <region>", "Region of the state record to read. Used with --from-cfn-stack as the CFn client region."));
31604
31734
  }
31605
31735
 
31606
31736
  //#endregion
@@ -32276,8 +32406,9 @@ function resolveEnvVars(kind, values) {
32276
32406
  * the studio HTTP server (`startStudioServer`) at `GET /`.
32277
32407
  *
32278
32408
  * 3-pane shell (decision D6), framework-free vanilla JS (decision D7):
32279
- * - left = target list (from `GET /api/targets`); each Lambda or
32280
- * AgentCore runtime has an [Invoke] button, each API a [Start] / [Stop]
32409
+ * - left = target list (from `GET /api/targets`); a Lambda or AgentCore
32410
+ * runtime row opens its [Invoke] composer on click (no row button -- an
32411
+ * invoke needs a composed payload), each API a [Start] / [Stop]
32281
32412
  * serve control with a `running ● :port` indicator (slice C1), plus a
32282
32413
  * selected-highlight.
32283
32414
  * - center = the WORKSPACE for the selected target: for a Lambda or an
@@ -33140,9 +33271,12 @@ const STUDIO_SCRIPT = `
33140
33271
  const kindLabel = entry.surface || KIND_LABEL[group.kind] || group.kind;
33141
33272
  t.appendChild(el('span', 'kind', '(' + kindLabel + ')'));
33142
33273
  if (isInvoke) {
33143
- const btn = el('button', 'invoke-btn', 'Invoke');
33144
- btn.onclick = (e) => { e.stopPropagation(); selectTarget(entry.id, group.kind); };
33145
- t.appendChild(btn);
33274
+ // No row-level action button: an invoke needs a composed payload,
33275
+ // so the row just opens the composer (clicking anywhere on the
33276
+ // .runnable row selects it -- cursor + hover signal it). A button
33277
+ // labeled "Invoke" that only opened the composer (never invoked)
33278
+ // read as broken. Serve rows DO get a Start/Stop button below
33279
+ // because a serve start is parameterless and acts immediately.
33146
33280
  t.onclick = () => selectTarget(entry.id, group.kind);
33147
33281
  targetEls.set(entry.id, t);
33148
33282
  } else if (isServe) {
@@ -34824,12 +34958,12 @@ function toStudioTargetGroups(listing) {
34824
34958
  },
34825
34959
  {
34826
34960
  kind: "agentcore",
34827
- title: "AgentCore Runtimes",
34961
+ title: "AgentCore Runtimes (invoke)",
34828
34962
  entries: map(listing.agentCoreRuntimes)
34829
34963
  },
34830
34964
  {
34831
34965
  kind: "agentcore-ws",
34832
- title: "AgentCore (serve)",
34966
+ title: "AgentCore Runtimes (serve)",
34833
34967
  entries: map(listing.agentCoreRuntimes).map((t, i) => {
34834
34968
  const src = listing.agentCoreRuntimes[i];
34835
34969
  if (src?.agentCoreHasWs !== void 0) t.agentCoreHasWs = src.agentCoreHasWs;
@@ -37180,4 +37314,4 @@ function addStudioSpecificOptions(cmd) {
37180
37314
 
37181
37315
  //#endregion
37182
37316
  export { buildEdgeRequestEvent as $, createJwksCache as $n, resolveSsmParameters as $r, CloudMapRegistry as $t, startAgentCoreHttpServer as A, addInvokeSpecificOptions as An, parseConnectionsPath as Ar, createLocalRunTaskCommand as At, resolveKvsModulesForDistribution as B, materializeLayerFromArn as Bn, substituteAgainstState as Br, resolveSharedSidecarCredentials as Bt, addListSpecificOptions as C, substituteImagePlaceholders as Ci, downloadAndExtractS3Bundle as Cn, VtlEvaluationError as Cr, resolveAlbTarget as Ct, createLocalStartAgentCoreCommand as D, resolveProfileCredentials as Di, renderCodeDockerfile as Dn, ConnectionRegistry as Dr, createLocalStartServiceCommand as Dt, addStartAgentCoreSpecificOptions as E, buildStsClientConfig as Ei, computeCodeImageTag as En, bufferToBody as Er, addStartServiceSpecificOptions as Et, createLocalStartCloudFrontCommand as F, resolveApiTargetSubset as Fn, buildContainerImage as Fr, buildEcsImageResolutionContext$1 as Ft, createS3OriginReader as G, groupRoutesByServer as Gn, createLocalStateProvider as Gr, mergeForService as Gt, resolveDeployedKvsArnByName as H, availableApiIdentifiers as Hn, substituteEnvVarsFromState as Hr, ImageOverrideError as Ht, parseKvsFileOverrides as I, createAuthorizerCache as In, resolveRuntimeCodeMountPath as Ir, ecsClusterOption as It, resolveErrorResponseCandidates as J, resolveSelectionExpression as Jn, resolveCfnFallbackRegion as Jr, runImageOverrideBuilds as Jt, matchBehavior as K, readMtlsMaterialsFromDisk as Kn, isCfnFlagPresent as Kr, parseImageOverrideFlags as Kt, parseOriginOverrides as L, createFileWatcher as Ln, resolveRuntimeFileExtension as Lr, parseMaxTasks as Lt, startAgentCoreWsBridge as M, addStartApiSpecificOptions as Mn, buildDisconnectEvent as Mr, addCommonEcsServiceOptions as Mt, LocalStartCloudFrontError as N, createLocalStartApiCommand as Nn, buildMessageEvent as Nr, addEcsAssumeRoleOptions as Nt, buildAgentCoreServeAuthCheck as O, toCmdArgv as On, buildMgmtEndpointEnvUrl as Or, serviceStrategy as Ot, addStartCloudFrontSpecificOptions as P, createWatchPredicates as Pn, architectureToPlatform as Pr, addImageOverrideOptions as Pt, applyEdgeResponseResult as Q, buildJwksUrlFromIssuer as Qn, collectSsmParameterRefs as Qr, buildCloudMapIndex as Qt, resolveCloudFrontTarget as R, attachStageContext as Rn, resolveRuntimeImage as Rr, parseRestartPolicy as Rt, StudioEventBus as S, formatStateRemedy as Si, waitForAgentCorePing as Sn, tryParseStatus as Sr, parseLbPortOverrides as St, formatTargetListing as T, LocalInvokeBuildError as Ti, buildAgentCoreCodeImage as Tn, probeHostGatewaySupport as Tr, resolveAlbFrontDoor as Tt, resolveDeployedOriginBucket as U, filterRoutesByApiIdentifier as Un, substituteEnvVarsFromStateAsync as Ur, buildImageOverrideTag as Ut, createDeployedKvsDataSource as V, resolveEnvVars$1 as Vn, substituteAgainstStateAsync as Vr, runEcsServiceEmulator as Vt, classifyS3Error as W, filterRoutesByApiIdentifiers as Wn, LocalStateSourceError as Wr, enforceImageOverrideOrphans as Wt, serveLambdaUrlOrigin as X, defaultCredentialsLoader as Xn, resolveCfnStackName as Xr, isLocalCdkAssetImage as Xt, serveFromStaticOrigin as Y, resolveServiceIntegrationParameters as Yn, resolveCfnRegion as Yr, describePinnedImageUri as Yt, applyEdgeRequestResult as Z, buildCognitoJwksUrl as Zn, CfnLocalStateProvider as Zr, listPinnedTargets as Zt, filterStudioTargetGroups as _, AGENTCORE_RUNTIME_TYPE as _i, AGENTCORE_SIGV4_SERVICE as _n, buildHttpApiV2Event as _r, createLocalFileKvsDataSource as _t, createLocalStudioCommand as a, discoverWebSocketApis as ai, addInvokeAgentCoreSpecificOptions as an, evaluateCachedLambdaPolicy as ar, extractKvsAssociations as at, renderStudioHtml as b, resolveAgentCoreTarget as bi, invokeAgentCore as bn, pickResponseTemplate as br, albStrategy as bt, startStudioProxy as c, parseSelectionExpressionPath as ci, invokeAgentCoreWs as cn, attachAuthorizers as cr, pickKvsLogicalIdFromArn as ct, createStudioDispatcher as d, pickRefLogicalId as di, a2aInvokeOnce as dn, buildCorsConfigFromCloudFrontChain as dr, resolveCloudFrontDistribution as dt, resolveWatchConfig as ei, DEFAULT_SHADOW_READY_TIMEOUT_MS as en, verifyCognitoJwt as er, buildEdgeResponseEvent as et, filterStudioCustomResources as f, resolveLambdaArnIntrinsic as fi, MCP_CONTAINER_PORT as fn, isFunctionUrlOacFronted as fr, compileCloudFrontFunction as ft, annotatePinnedEcsTargets as g, AGENTCORE_MCP_PROTOCOL as gi, parseSseForJsonRpc as gn, applyAuthorizerOverlay as gr, createCloudFrontModule as gt, annotateEcsTaskPinnedTargets as h, AGENTCORE_HTTP_PROTOCOL as hi, mcpInvokeOnce as hn, translateLambdaResponse as hr, stripCloudFrontImport as ht, coerceStopRequest as i, availableWebSocketApiIdentifiers as ii, attachContainerLogStreamer as in, computeRequestIdentityHash as ir, describeS3OriginDomain as it, attachAgentCoreWsBridge as j, createLocalInvokeCommand as jn, buildConnectEvent as jr, MAX_TASKS_SUBNET_RANGE_CAP as jt, selectServeInboundAuth as k, classifySourceChange as kn, handleConnectionsRequest as kr, addRunTaskSpecificOptions as kt, relayServeRequest as l, webSocketApiMatchesIdentifier as li, A2A_CONTAINER_PORT as ln, applyCorsResponseHeaders as lr, pickLambdaEdgeFunctionLogicalId as lt, annotateAlbPinnedBackingServices as m, AGENTCORE_AGUI_PROTOCOL as mi, MCP_PROTOCOL_VERSION as mn, matchRoute as mr, runViewerResponse as mt, coerceRunRequest as n, countTargets as ni, setShadowReadyTimeoutMs as nn, verifyJwtViaDiscovery as nr, httpHeadersToEdge as nt, resolveServeBaseUrl as o, discoverWebSocketApisOrThrow as oi, createLocalInvokeAgentCoreCommand as on, invokeRequestAuthorizer as or, isCloudFrontDistribution as ot, isCustomResourceLambdaTarget as p, AGENTCORE_A2A_PROTOCOL as pi, MCP_PATH as pn, matchPreflight as pr, runViewerRequest as pt, startCloudFrontServer as q, startApiServer as qn, rejectExplicitCfnStackWithMultipleStacks as qr, resolveImageOverrides as qt, coerceServeRequest as r, listTargets as ri, getContainerNetworkIp as rn, buildMethodArn as rr, CLOUDFRONT_DISTRIBUTION_TYPE as rt, createStudioServeManager as s, filterWebSocketApisByIdentifiers as si, bridgeAgentCoreWs as sn, invokeTokenAuthorizer as sr, pickFunctionUrlLogicalIdFromOrigin as st, addStudioSpecificOptions as t, resolveSingleTarget as ti, SOFT_RELOAD_COMPLETION_LOG_SUFFIX as tn, verifyJwtAuthorizer as tr, edgeHeadersToHttp as tt, reinvoke as u, discoverRoutes as ui, A2A_PATH as un, buildCorsConfigByApiId as ur, pickTargetFunctionLogicalId as ut, startStudioServer as v, AgentCoreResolutionError as vi, signAgentCoreInvocation as vn, buildRestV1Event as vr, createUnboundCloudFrontModule as vt, createLocalListCommand as w, tryResolveImageFnJoin as wi, SUPPORTED_CODE_RUNTIMES as wn, HOST_GATEWAY_MIN_VERSION as wr, isApplicationLoadBalancer as wt, createStudioStore as x, derivePseudoParametersFromRegion as xi, waitForAgentCoreHttpReady as xn, selectIntegrationResponse as xr, createLocalStartAlbCommand as xt, toStudioTargetGroups as y, pickAgentCoreCandidateStack as yi, AGENTCORE_SESSION_ID_HEADER as yn, evaluateResponseParameters as yr, addAlbSpecificOptions as yt, idFromArn as z, buildStageMap as zn, EcsTaskResolutionError as zr, resolveEcsAssumeRoleOption as zt };
37183
- //# sourceMappingURL=local-studio-Cr0YdvCb.js.map
37317
+ //# sourceMappingURL=local-studio-Dsk8Zhoa.js.map