cdk-local 0.62.0 → 0.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![CI](https://github.com/go-to-k/cdk-local/actions/workflows/ci.yml/badge.svg)](https://github.com/go-to-k/cdk-local/actions/workflows/ci.yml)
6
6
  [![License: Apache-2.0](https://img.shields.io/npm/l/cdk-local.svg)](./LICENSE)
7
7
 
8
- **Run your CDK app locally no SAM template, no AWS account. Or bind to your deployed stack and hit its real data.**
8
+ **Run your CDK-built app locally, no deploy needed — standalone, or kept local while it reaches the real AWS resources and data it depends on, with no `.env` or local copies to maintain.**
9
9
  A CDK-native alternative to `sam local`, covering Lambda, API Gateway, ECS, ALB-fronted services, and Bedrock AgentCore.
10
10
 
11
11
  ![cdkl start-api serving a local CDK app's HTTP API; curl in the right pane reaches the local Lambda](assets/cdkl-start-api.gif)
@@ -20,9 +20,9 @@ cd your-cdk-app # the directory holding cdk.json
20
20
  cdkl invoke # pick a Lambda from the list, then run it locally
21
21
  ```
22
22
 
23
- `cdkl` synths your CDK app and runs the selected resource locally in Docker — a Lambda in its real `public.ecr.aws/lambda/*` container (via the Lambda Runtime Interface Emulator), an ECS task / service as a real container, an API on a local HTTP server. Run any command with no target and it opens an arrow-key picker, so you rarely type a CDK path.
23
+ `cdkl` synths your CDK app and runs the selected resource locally in Docker. Run any command with no target and it opens an arrow-key picker, so you rarely type a CDK path.
24
24
 
25
- **Bind to your real deployed stack** by adding `--from-cfn-stack`: cdk-local reads the deployed CloudFormation stack and injects its real ARNs, Secret values, and IAM credentials into the container, so your local handler reads and writes the exact same data the deployed app does no `.env` to wire up, no test data to seed.
25
+ **Add `--from-cfn-stack`** to bind to a deployed stack your local handler then reads and writes the same real data the deployed app does ([how it works](#why-cdk-local)).
26
26
 
27
27
  ```bash
28
28
  cdkl start-api --from-cfn-stack # a local API on real AWS data + real Cognito JWT
@@ -31,11 +31,11 @@ cdkl invoke MyStack/Fn --from-cfn-stack # one Lambda against real DynamoDB /
31
31
 
32
32
  ## Why cdk-local
33
33
 
34
- - **Zero-friction local execution** — no AWS account, no IAM access, no deploy; just Docker and your CDK app. Onboard new engineers, review a PR by actually running its code, or work on an OSS CDK sample without owning the maintainer's account.
35
- - **Iterate against your real deployed stack — including its data.** `--from-cfn-stack` keeps you on the real DynamoDB rows, S3 objects, Cognito users, and Secret values your IAM credentials reach, instead of paying to seed and anonymize a local emulator.
34
+ - **Zero-friction local execution** — run standalone: no deploy, no IAM access, just Docker and your CDK app. Onboard new engineers, review a PR by actually running its code, or work on an OSS CDK sample without owning the maintainer's account.
35
+ - **Iterate against your real deployed stack — including its data.** `--from-cfn-stack` reads the deployed CloudFormation stack and injects its real ARNs, Secret values, and IAM credentials into the container, so you stay on the real DynamoDB rows, S3 objects, Cognito users, and Secret values your IAM credentials reach instead of paying to seed and anonymize a local emulator.
36
36
  - **Picks up where `sam local` leaves off:**
37
37
  - **CDK-native** — point at `cdk.json`; no SAM template to maintain.
38
- - **Wider coverage** — Lambda, API Gateway, ECS run-task / service / ALB front-door, and Bedrock AgentCore.
38
+ - **Wider coverage** — adds ECS, ALB front-doors, and Bedrock AgentCore on top of Lambda + API Gateway.
39
39
  - **Real container images** — the Lambda RIE base image; ECS as real Docker. The only dependency is Docker itself.
40
40
 
41
41
  ## What runs locally
@@ -58,10 +58,10 @@ cdkl invoke-agentcore MyStack/Agent # Bedrock AgentCore Runtime (one
58
58
  cdkl list # every runnable target, grouped by command (alias: ls)
59
59
  ```
60
60
 
61
- ![cdkl invoke against a local sample CDK app — no AWS account, no deploy](assets/cdkl-invoke.gif)
61
+ ![cdkl invoke against a local sample CDK app — standalone, no deploy](assets/cdkl-invoke.gif)
62
62
 
63
63
  - **`start-api`** serves one HTTP server per API; a bare `start-api` in a multi-stack app needs `--all-stacks` or `--stack <name>`. Add **`--watch`** to re-synth and hot-reload on CDK source changes ([details](docs/local-emulation.md#hot-reload---watch)).
64
- - **`run-task`** / single-replica **`start-service`** publish declared container ports on the host and log `Reach it at 127.0.0.1:<port>` (`--host-port <container>=<host>` remaps; handy for privileged ports on macOS).
64
+ - **`run-task`** / single-replica **`start-service`** publish declared container ports on the host (`--host-port <container>=<host>` remaps; handy for privileged ports on macOS). **`start-service`** / **`start-alb`** also list each host URL in a `Service endpoints:` banner after boot so the access URL stays visible.
65
65
  - **`start-alb`** stands up the ECS service(s) behind an ALB plus a host-side front-door on each listener port, honoring all six listener-rule conditions, weighted forwards, redirect / fixed-response actions, mixed ECS + Lambda targets, `authenticate-cognito` / `authenticate-oidc` actions (local Bearer-JWT enforcement), and WebSocket `Upgrade` proxying to ECS targets ([details](docs/cli-reference.md#cdkl-start-alb-run-an-alb-fronted-service-locally)).
66
66
  - **`invoke-agentcore`** invokes a Bedrock AgentCore Runtime agent locally — container or `fromCodeAsset` / `fromS3` managed runtime, HTTP / SSE / WebSocket / MCP protocols, with `customJwtAuthorizer` and `--sigv4` enforcement ([details](docs/cli-reference.md#cdkl-invoke-agentcore-run-bedrock-agentcore-runtime-agents-locally)).
67
67
  - Non-TTY (CI / pipes): every command except a bare `start-api` needs an explicit target.
package/dist/cli.js CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { _ as createLocalStartApiCommand } from "./elb-front-door-resolver-Vpf2Gpvg.js";
3
- import { a as createLocalRunTaskCommand, i as createLocalStartServiceCommand, o as createLocalInvokeAgentCoreCommand, r as createLocalStartAlbCommand, s as createLocalInvokeCommand, t as createLocalListCommand } from "./local-list-n6I3s-DR.js";
2
+ import { _ as createLocalStartApiCommand } from "./elb-front-door-resolver-y5FicgLi.js";
3
+ import { a as createLocalRunTaskCommand, i as createLocalStartServiceCommand, o as createLocalInvokeAgentCoreCommand, r as createLocalStartAlbCommand, s as createLocalInvokeCommand, t as createLocalListCommand } from "./local-list-Dxwno_0V.js";
4
4
  import { Command } from "commander";
5
5
 
6
6
  //#region src/cli/index.ts
7
7
  const program = new Command();
8
- program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.62.0");
8
+ program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.63.0");
9
9
  program.addCommand(createLocalInvokeCommand());
10
10
  program.addCommand(createLocalInvokeAgentCoreCommand());
11
11
  program.addCommand(createLocalStartApiCommand());
@@ -2,6 +2,7 @@ import { Command, Option } from "commander";
2
2
  import { SSMClient } from "@aws-sdk/client-ssm";
3
3
  import { WebSocket } from "ws";
4
4
  import { IncomingMessage, Server, ServerResponse } from "node:http";
5
+ import graphlib from "graphlib";
5
6
 
6
7
  //#region src/types/resource.d.ts
7
8
  interface CloudFormationTemplate {
@@ -127,6 +128,7 @@ interface LocalStateProvider {
127
128
  buildCrossStackResolver(consumerRegion: string): Promise<CrossStackResolver | undefined>;
128
129
  resolveDeployedFunctionEnv?(functionPhysicalId: string): Promise<Record<string, string> | undefined>;
129
130
  resolveLambdaExecutionRoleArn?(functionPhysicalId: string): Promise<string | undefined>;
131
+ resolveAgentCoreRuntimeRoleArn?(runtimePhysicalId: string): Promise<string | undefined>;
130
132
  resolveTemplateSsmParameters?(template: CloudFormationTemplate): Promise<ResolvedSsmParameters>;
131
133
  dispose(): void;
132
134
  }
@@ -791,6 +793,59 @@ interface TargetListing {
791
793
  declare function listTargets(stacks: readonly StackInfo[]): TargetListing;
792
794
  declare function countTargets(listing: TargetListing): number;
793
795
  //#endregion
796
+ //#region src/local/cloud-map-registry.d.ts
797
+ interface RegisteredEndpoint {
798
+ ip: string;
799
+ port: number;
800
+ ownerKey: string;
801
+ }
802
+ interface RegistrationHandle {
803
+ readonly fqdn: string;
804
+ readonly ownerKey: string;
805
+ }
806
+ interface RegistryListing {
807
+ namespace: string;
808
+ discoveryName: string;
809
+ endpoints: ReadonlyArray<RegisteredEndpoint>;
810
+ isAlias: boolean;
811
+ }
812
+ declare class CloudMapRegistry {
813
+ private readonly byFqdn;
814
+ private readonly aliasIndex;
815
+ register(namespace: string, discoveryName: string, endpoint: RegisteredEndpoint): RegistrationHandle;
816
+ registerAlias(alias: string, targetFqdn: string): void;
817
+ unregister(handle: RegistrationHandle): boolean;
818
+ unregisterByOwner(ownerKeyPrefix: string): number;
819
+ lookup(namespace: string, discoveryName: string): ReadonlyArray<RegisteredEndpoint> | undefined;
820
+ lookupAlias(alias: string): ReadonlyArray<RegisteredEndpoint> | undefined;
821
+ buildAddHostFlags(excludeOwnerKeyPrefix?: string): string[];
822
+ list(): ReadonlyArray<RegistryListing>;
823
+ isEmpty(): boolean;
824
+ }
825
+ //#endregion
826
+ //#region src/local/cloud-map-resolver.d.ts
827
+ interface ResolvedCloudMapNamespace {
828
+ logicalId: string;
829
+ name: string;
830
+ }
831
+ interface ResolvedCloudMapService {
832
+ logicalId: string;
833
+ namespaceLogicalId: string;
834
+ namespaceName: string;
835
+ name: string;
836
+ dnsRecords: ReadonlyArray<{
837
+ type: 'A' | 'SRV';
838
+ ttlSeconds: number;
839
+ }>;
840
+ }
841
+ interface CloudMapIndex {
842
+ namespacesByLogicalId: Map<string, ResolvedCloudMapNamespace>;
843
+ namespacesByName: Map<string, ResolvedCloudMapNamespace>;
844
+ servicesByLogicalId: Map<string, ResolvedCloudMapService>;
845
+ warnings: string[];
846
+ }
847
+ declare function buildCloudMapIndex(stack: StackInfo): CloudMapIndex;
848
+ //#endregion
794
849
  //#region src/local/alb-path-matcher.d.ts
795
850
  interface AlbHttpHeaderCondition {
796
851
  name: string;
@@ -986,5 +1041,5 @@ declare function resolveSharedSidecarCredentials(options: {
986
1041
  } | undefined>;
987
1042
  declare function addCommonEcsServiceOptions(cmd: Command): Command;
988
1043
  //#endregion
989
- export { AuthorizerCache as $, AGENTCORE_RUNTIME_TYPE as $t, EcsTaskResolutionError as A, SsmParameterRef as An, A2A_CONTAINER_PORT as At, readMtlsMaterialsFromDisk as B, substituteEnvVarsFromStateAsync as Bn, McpInvokeResult as Bt, resolveAlbFrontDoor as C, rejectExplicitCfnStackWithMultipleStacks as Cn, CdkWatchConfig as Ct, listTargets as D, LocalStateProvider as Dn, AgentCoreWsResult as Dt, countTargets as E, resolveCfnStackName as En, resolveEnvVars as Et, createWatchPredicates as F, StateEnvSubstitutionAudit as Fn, a2aInvokeOnce as Ft, JwksCache as G, AgentCoreInvokeResult as Gt, CredentialsLoader as H, mcpInvokeOnce as Ht, resolveApiTargetSubset as I, SubstitutionContext as In, MCP_CONTAINER_PORT as It, buildJwksUrlFromIssuer as J, waitForAgentCorePing as Jt, JwtCustomClaim as K, InvokeAgentCoreOptions as Kt, MtlsServerConfig as L, substituteAgainstState as Ln, MCP_PATH as Lt, CreateLocalStartApiCommandOptions as M, resolveSsmParameters as Mn, A2aInvokeOptions as Mt, WatchPredicates as N, CrossStackResolver as Nn, A2aInvokeResult as Nt, CdkLocalError as O, LocalStateRecord as On, InvokeAgentCoreWsOptions as Ot, createLocalStartApiCommand as P, PseudoParameters as Pn, A2aJsonRpcRequest as Pt, verifyJwtViaDiscovery as Q, AGENTCORE_MCP_PROTOCOL as Qt, ServerState as R, substituteAgainstStateAsync as Rn, MCP_PROTOCOL_VERSION as Rt, isApplicationLoadBalancer as S, isCfnFlagPresent as Sn, ContainerPool as St, TargetListing as T, resolveCfnRegion as Tn, EnvOverrideFile as Tt, defaultCredentialsLoader as U, parseSseForJsonRpc as Ut, startApiServer as V, CloudFormationTemplate as Vn, McpJsonRpcRequest as Vt, DiscoveryJwtAuthorizer as W, AGENTCORE_SESSION_ID_HEADER as Wt, verifyCognitoJwt as X, AGENTCORE_AGUI_PROTOCOL as Xt, createJwksCache as Y, AGENTCORE_A2A_PROTOCOL as Yt, verifyJwtAuthorizer as Z, AGENTCORE_HTTP_PROTOCOL as Zt, parseRestartPolicy as _, ExtraStateProviders as _n, evaluateResponseParameters as _t, PlannedAction as a, pickAgentCoreCandidateStack as an, RouteWithAuth as at, FrontDoorForwardTarget as b, LocalStateSourceOptions as bn, tryParseStatus as bt, PlannedForwardAction as c, derivePseudoParametersFromRegion as cn, applyCorsResponseHeaders as ct, PlannedLambdaForwardTarget as d, ResolvedArnLambdaLayer as dn, isFunctionUrlOacFronted as dt, AgentCoreCodeArtifact as en, CachedAuthorizerResult as et, PlannedRedirectAction as f, StackInfo as fn, matchPreflight as ft, parseMaxTasks as g, setEmbedConfig as gn, IntegrationResponseEntry as gt, buildEcsImageResolutionContext as h, resetEmbedConfig as hn, discoverRoutes as ht, MAX_TASKS_SUBNET_RANGE_CAP as i, ResolvedAgentCoreRuntime as in, LambdaTokenAuthorizer as it, ApiTargetSubset as j, collectSsmParameterRefs as jn, A2A_PATH as jt, LocalInvokeBuildError as k, ResolvedSsmParameters as kn, invokeAgentCoreWs as kt, PlannedForwardTarget as l, substituteImagePlaceholders as ln, buildCorsConfigByApiId as lt, addCommonEcsServiceOptions as m, getEmbedConfig as mn, RestV1IntegrationConfig as mt, EmulatorStrategy as n, AgentCoreJwtAuthorizer as nn, AuthorizerInfo as nt, PlannedEcsForwardTarget as o, resolveAgentCoreTarget as on, attachAuthorizers as ot, ServiceBoot as p, CdkLocalEmbedConfig as pn, DiscoveredRoute as pt, buildCognitoJwksUrl as q, invokeAgentCore as qt, FrontDoorPlan as r, AgentCoreResolutionError as rn, LambdaRequestAuthorizer as rt, PlannedFixedResponseAction as s, ImageResolutionContext as sn, CorsConfig as st, EcsServiceEmulatorOptions as t, AgentCoreCustomClaim as tn, createAuthorizerCache as tt, PlannedFrontDoorListener as u, tryResolveImageFnJoin as un, buildCorsConfigFromCloudFrontChain as ut, resolveSharedSidecarCredentials as v, LocalStateProviderFactory as vn, pickResponseTemplate as vt, TargetEntry as w, resolveCfnFallbackRegion as wn, resolveWatchConfig as wt, ResolvedListenerAction as x, createLocalStateProvider as xn, VtlEvaluationError as xt, runEcsServiceEmulator as y, LocalStateSourceError as yn, selectIntegrationResponse as yt, StartedApiServer as z, substituteEnvVarsFromState as zn, McpInvokeOptions as zt };
990
- //# sourceMappingURL=ecs-service-emulator-aM8AsadH.d.ts.map
1044
+ export { createJwksCache as $, AGENTCORE_A2A_PROTOCOL as $t, countTargets as A, resolveCfnStackName as An, resolveEnvVars as At, resolveApiTargetSubset as B, SubstitutionContext as Bn, MCP_CONTAINER_PORT as Bt, resolveAlbFrontDoor as C, LocalStateSourceError as Cn, selectIntegrationResponse as Ct, RegistrationHandle as D, rejectExplicitCfnStackWithMultipleStacks as Dn, CdkWatchConfig as Dt, CloudMapRegistry as E, isCfnFlagPresent as En, ContainerPool as Et, ApiTargetSubset as F, collectSsmParameterRefs as Fn, A2A_PATH as Ft, startApiServer as G, CloudFormationTemplate as Gn, McpJsonRpcRequest as Gt, ServerState as H, substituteAgainstStateAsync as Hn, MCP_PROTOCOL_VERSION as Ht, CreateLocalStartApiCommandOptions as I, resolveSsmParameters as In, A2aInvokeOptions as It, DiscoveryJwtAuthorizer as J, AGENTCORE_SESSION_ID_HEADER as Jt, CredentialsLoader as K, mcpInvokeOnce as Kt, WatchPredicates as L, CrossStackResolver as Ln, A2aInvokeResult as Lt, CdkLocalError as M, LocalStateRecord as Mn, InvokeAgentCoreWsOptions as Mt, LocalInvokeBuildError as N, ResolvedSsmParameters as Nn, invokeAgentCoreWs as Nt, TargetEntry as O, resolveCfnFallbackRegion as On, resolveWatchConfig as Ot, EcsTaskResolutionError as P, SsmParameterRef as Pn, A2A_CONTAINER_PORT as Pt, buildJwksUrlFromIssuer as Q, waitForAgentCorePing as Qt, createLocalStartApiCommand as R, PseudoParameters as Rn, A2aJsonRpcRequest as Rt, isApplicationLoadBalancer as S, LocalStateProviderFactory as Sn, pickResponseTemplate as St, buildCloudMapIndex as T, createLocalStateProvider as Tn, VtlEvaluationError as Tt, StartedApiServer as U, substituteEnvVarsFromState as Un, McpInvokeOptions as Ut, MtlsServerConfig as V, substituteAgainstState as Vn, MCP_PATH as Vt, readMtlsMaterialsFromDisk as W, substituteEnvVarsFromStateAsync as Wn, McpInvokeResult as Wt, JwtCustomClaim as X, InvokeAgentCoreOptions as Xt, JwksCache as Y, AgentCoreInvokeResult as Yt, buildCognitoJwksUrl as Z, invokeAgentCore as Zt, parseRestartPolicy as _, CdkLocalEmbedConfig as _n, DiscoveredRoute as _t, PlannedAction as a, AgentCoreCustomClaim as an, createAuthorizerCache as at, FrontDoorForwardTarget as b, setEmbedConfig as bn, IntegrationResponseEntry as bt, PlannedForwardAction as c, ResolvedAgentCoreRuntime as cn, LambdaTokenAuthorizer as ct, PlannedLambdaForwardTarget as d, ImageResolutionContext as dn, CorsConfig as dt, AGENTCORE_AGUI_PROTOCOL as en, verifyCognitoJwt as et, PlannedRedirectAction as f, derivePseudoParametersFromRegion as fn, applyCorsResponseHeaders as ft, parseMaxTasks as g, StackInfo as gn, matchPreflight as gt, buildEcsImageResolutionContext as h, ResolvedArnLambdaLayer as hn, isFunctionUrlOacFronted as ht, MAX_TASKS_SUBNET_RANGE_CAP as i, AgentCoreCodeArtifact as in, CachedAuthorizerResult as it, listTargets as j, LocalStateProvider as jn, AgentCoreWsResult as jt, TargetListing as k, resolveCfnRegion as kn, EnvOverrideFile as kt, PlannedForwardTarget as l, pickAgentCoreCandidateStack as ln, RouteWithAuth as lt, addCommonEcsServiceOptions as m, tryResolveImageFnJoin as mn, buildCorsConfigFromCloudFrontChain as mt, EmulatorStrategy as n, AGENTCORE_MCP_PROTOCOL as nn, verifyJwtViaDiscovery as nt, PlannedEcsForwardTarget as o, AgentCoreJwtAuthorizer as on, AuthorizerInfo as ot, ServiceBoot as p, substituteImagePlaceholders as pn, buildCorsConfigByApiId as pt, defaultCredentialsLoader as q, parseSseForJsonRpc as qt, FrontDoorPlan as r, AGENTCORE_RUNTIME_TYPE as rn, AuthorizerCache as rt, PlannedFixedResponseAction as s, AgentCoreResolutionError as sn, LambdaRequestAuthorizer as st, EcsServiceEmulatorOptions as t, AGENTCORE_HTTP_PROTOCOL as tn, verifyJwtAuthorizer as tt, PlannedFrontDoorListener as u, resolveAgentCoreTarget as un, attachAuthorizers as ut, resolveSharedSidecarCredentials as v, getEmbedConfig as vn, RestV1IntegrationConfig as vt, CloudMapIndex as w, LocalStateSourceOptions as wn, tryParseStatus as wt, ResolvedListenerAction as x, ExtraStateProviders as xn, evaluateResponseParameters as xt, runEcsServiceEmulator as y, resetEmbedConfig as yn, discoverRoutes as yt, createWatchPredicates as z, StateEnvSubstitutionAudit as zn, a2aInvokeOnce as zt };
1045
+ //# sourceMappingURL=ecs-service-emulator-BgO3gb5D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecs-service-emulator-BgO3gb5D.d.ts","names":[],"sources":["../src/types/resource.ts","../src/types/state.ts","../src/local/state-resolver.ts","../src/local/ssm-parameter-resolver.ts","../src/local/local-state-provider.ts","../src/cli/commands/local-state-source.ts","../src/local/embed-config.ts","../src/synthesis/assembly-reader.ts","../src/local/lambda-resolver.ts","../src/local/intrinsic-image.ts","../src/local/agentcore-resolver.ts","../src/local/agentcore-client.ts","../src/local/agentcore-mcp-client.ts","../src/local/agentcore-a2a-client.ts","../src/local/agentcore-ws-client.ts","../src/local/env-resolver.ts","../src/cli/config-loader.ts","../src/local/httpv2-service-integration.ts","../src/local/container-pool.ts","../src/local/vtl-engine.ts","../src/local/integration-response-selector.ts","../src/local/rest-v1-integrations.ts","../src/local/route-discovery.ts","../src/local/cors-handler.ts","../src/local/authorizer-resolver.ts","../src/local/authorizer-cache.ts","../src/local/cognito-jwt.ts","../src/local/sigv4-verify.ts","../src/local/http-server.ts","../src/cli/commands/local-start-api.ts","../src/local/ecs-task-resolver.ts","../src/utils/error-handler.ts","../src/local/target-lister.ts","../src/local/cloud-map-registry.ts","../src/local/cloud-map-resolver.ts","../src/local/alb-path-matcher.ts","../src/local/elb-front-door-resolver.ts","../src/cli/commands/ecs-service-emulator.ts"],"mappings":";;;;;;;UAGiB,sBAAA;EACf,wBAAA;EACA,WAAA;EACA,UAAA,GAAa,MAAA,SAAe,iBAAA;EAC5B,SAAA,EAAW,MAAA,SAAe,gBAAA;EAC1B,OAAA,GAAU,MAAA,SAAe,cAAA;EACzB,UAAA,GAAa,MAAA;EACb,QAAA,GAAW,MAAA;EAWX,SAAA;EACA,KAAA,GAAQ,MAAA;AAAA;AAAA,UAMO,iBAAA;EACf,IAAA;EACA,OAAA;EACA,WAAA;EACA,aAAA;EACA,cAAA;EACA,qBAAA;AAAA;AAAA,UAMe,gBAAA;EACf,IAAA;EACA,UAAA,GAAa,MAAA;EACb,SAAA;EACA,SAAA;EACA,QAAA,GAAW,MAAA;EACX,cAAA,GAAiB,MAAA;EACjB,YAAA,GAAe,MAAA;EACf,cAAA;EACA,mBAAA;AAAA;AAAA,UAMe,cAAA;EACf,KAAA;EACA,WAAA;EACA,MAAA;IACE,IAAA;EAAA;AAAA;;;UC2Ha,aAAA;EAEf,UAAA;EAGA,YAAA;EAGA,UAAA,EAAY,MAAA;EAcZ,kBAAA,GAAqB,MAAA;EAGrB,UAAA,GAAa,MAAA;EAGb,YAAA;EAGA,QAAA,GAAW,MAAA;EAmBX,cAAA;EAMA,mBAAA;EAwBA,aAAA;AAAA;;;KCrJU,uBAAA;EACN,IAAA;EAAiB,KAAA;AAAA;EACjB,IAAA;EAAoB,MAAA;AAAA;AAAA,UAYT,gBAAA;EACf,SAAA;EACA,MAAA;EACA,SAAA;EACA,SAAA;AAAA;AAAA,UAqBe,kBAAA;EAMf,aAAA,CAAc,UAAA,WAAqB,OAAA;EAQnC,qBAAA,CACE,aAAA,UACA,cAAA,UACA,UAAA,WACC,OAAA;AAAA;AAAA,UAGY,mBAAA;EAEf,SAAA,EAAW,MAAA,SAAe,aAAA;EAa1B,UAAA,GAAa,MAAA;EAUb,mBAAA,GAAsB,WAAA;EAStB,4BAAA,IAAgC,SAAA;EAEhC,gBAAA,GAAmB,gBAAA;EAOnB,kBAAA,GAAqB,kBAAA;EAOrB,cAAA;AAAA;AAAA,iBAiBc,sBAAA,CACd,KAAA,WACA,kBAAA,EAAoB,mBAAA,GAAsB,MAAA,SAAe,aAAA,IACxD,uBAAA;AAAA,iBA0hBmB,2BAAA,CACpB,KAAA,WACA,kBAAA,EAAoB,mBAAA,GAAsB,MAAA,SAAe,aAAA,IACxD,OAAA,CAAQ,uBAAA;AAAA,UAiPM,yBAAA;EAEf,YAAA;EAMA,UAAA,EAAY,KAAA;IAAQ,GAAA;IAAa,MAAA;EAAA;EAOjC,aAAA;AAAA;AAAA,iBAcc,0BAAA,CACd,WAAA,EAAa,MAAA,+BACb,kBAAA,EAAoB,mBAAA,GAAsB,MAAA,SAAe,aAAA;EACtD,GAAA,EAAK,MAAA;EAAyB,KAAA,EAAO,yBAAA;AAAA;AAAA,iBAiGpB,+BAAA,CACpB,WAAA,EAAa,MAAA,+BACb,kBAAA,EAAoB,mBAAA,GAAsB,MAAA,SAAe,aAAA,IACxD,OAAA;EAAU,GAAA,EAAK,MAAA;EAAyB,KAAA,EAAO,yBAAA;AAAA;;;UCtlCjC,eAAA;EAEf,SAAA;EAEA,OAAA;EAEA,MAAA;AAAA;AAAA,UAYe,qBAAA;EAEf,MAAA,EAAQ,MAAA;EAER,sBAAA;AAAA;AAAA,iBAec,uBAAA,CACd,QAAA,EAAU,IAAA,CAAK,sBAAA,8BACd,eAAA;AAAA,iBAiDmB,oBAAA,CACpB,MAAA,EAAQ,SAAA,EACR,IAAA,WAAe,eAAA,IACf,KAAA,WACC,OAAA,CAAQ,qBAAA;;;UC7FM,gBAAA;EAWf,SAAA,EAAW,MAAA,SAAe,aAAA;EAO1B,OAAA,EAAS,MAAA;EAOT,MAAA;AAAA;AAAA,UAsBe,kBAAA;EAAA,SAMN,KAAA;EAQT,IAAA,CAAK,SAAA,UAAmB,WAAA,uBAAkC,OAAA,CAAQ,gBAAA;EAalE,uBAAA,CAAwB,cAAA,WAAyB,OAAA,CAAQ,kBAAA;EA4BzD,0BAAA,EACE,kBAAA,WACC,OAAA,CAAQ,MAAA;EA0BX,6BAAA,EAA+B,kBAAA,WAA6B,OAAA;EA4B5D,8BAAA,EAAgC,iBAAA,WAA4B,OAAA;EA4B5D,4BAAA,EAA8B,QAAA,EAAU,sBAAA,GAAyB,OAAA,CAAQ,qBAAA;EAKzE,OAAA;AAAA;;;UCjMe,uBAAA;EAOf,YAAA;EAEA,MAAA;EAEA,OAAA;EAMA,WAAA;EAAA,CAEC,GAAA;AAAA;AAAA,KAQS,yBAAA,IAA6B,OAAA,EAAS,uBAAA,KAA4B,kBAAA;AAAA,KAUlE,mBAAA,GAAsB,MAAA,SAAe,yBAAA;AAAA,iBAUjC,mBAAA,CAAoB,YAAA,oBAAgC,SAAA;AAAA,iBAapD,gBAAA,CAAiB,IAAA,EAAM,IAAA,CAAK,uBAAA;AAAA,iBAgB5B,gBAAA,CACd,OAAA,EAAS,IAAA,CAAK,uBAAA,6BACd,WAAA;AAAA,iBAqCoB,wBAAA,CACpB,OAAA,EAAS,IAAA,CAAK,uBAAA,+BACd,WAAA,uBACC,OAAA;AAAA,cAUU,qBAAA,SAA8B,KAAA;cAC7B,OAAA;AAAA;AAAA,iBAkBE,wCAAA,CACd,OAAA,EAAS,IAAA,CAAK,uBAAA,mBACd,gBAAA;AAAA,iBAiCc,wBAAA,CACd,OAAA,EAAS,uBAAA,EACT,SAAA,UACA,WAAA,sBACA,mBAAA,GAAsB,mBAAA,GACrB,kBAAA;;;UCrNc,mBAAA;EAMf,OAAA;EAOA,UAAA;EAMA,WAAA;EAOA,kBAAA;EAMA,gBAAA;EAMA,SAAA;EAQA,oBAAA;EAOA,YAAA;AAAA;AAAA,UAGe,mBAAA;EACf,OAAA;EACA,UAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,SAAA;EACA,oBAAA;EACA,YAAA;AAAA;AAAA,iBAsBc,cAAA,CAAe,MAAA,GAAS,mBAAA;AAAA,iBAcxB,cAAA,CAAA,GAAkB,mBAAA;AAAA,iBAKlB,gBAAA,CAAA;;;UC5GC,SAAA;EAEf,SAAA;EAOA,WAAA;EAGA,UAAA;EAGA,QAAA,EAAU,sBAAA;EAGV,iBAAA;EAGA,eAAA;EAGA,MAAA;EAGA,OAAA;EAOA,qBAAA;EAcA,eAAA,GAAkB,MAAA;AAAA;;;KCtCR,cAAA,GAAiB,iBAAA,GAAoB,mBAAA;AAAA,UAEvC,kBAAA;EAER,KAAA,EAAO,SAAA;EAEP,SAAA;EAEA,QAAA,EAAU,gBAAA;EAEV,QAAA;EAEA,UAAA;EA6BA,MAAA,EAAQ,mBAAA;EAmBR,kBAAA;AAAA;AAAA,KAkBU,mBAAA,GAAsB,wBAAA,GAA2B,sBAAA;AAAA,UAE5C,wBAAA;EACf,IAAA;EAMA,SAAA;EAQA,SAAA;AAAA;AAAA,UAGe,sBAAA;EACf,IAAA;EAMA,SAAA;EAQA,GAAA;EAEA,MAAA;EAEA,SAAA;EAEA,IAAA;EAEA,OAAA;AAAA;AAAA,UAGe,iBAAA,SAA0B,kBAAA;EACzC,IAAA;EAEA,OAAA;EAEA,OAAA;EASA,QAAA;EAKA,UAAA;AAAA;AAAA,UAGe,mBAAA,SAA4B,kBAAA;EAC3C,IAAA;EASA,QAAA;EAOA,WAAA;IACE,OAAA;IACA,UAAA;IACA,gBAAA;EAAA;EASF,YAAA;AAAA;;;UClKe,sBAAA;EAOf,gBAAA;IACE,SAAA;IACA,MAAA;IACA,SAAA;IACA,SAAA;EAAA;EASF,cAAA,GAAiB,MAAA,SAAe,aAAA;EAWhC,eAAA,GAAkB,MAAA;EAQlB,wBAAA;AAAA;AAAA,iBAyBc,gCAAA,CACd,MAAA,sBACA,SAAA;EACG,SAAA;EAAoB,MAAA;EAAgB,SAAA;EAAmB,SAAA;AAAA;AAAA,KAiChD,oBAAA;EACN,IAAA;AAAA;EACA,IAAA;EAAkB,GAAA;AAAA;EAClB,IAAA;EAAqB,aAAA;AAAA;EACrB,IAAA;EAA0B,MAAA;AAAA;AAAA,iBA2BhB,qBAAA,CACd,GAAA,WACA,SAAA,EAAW,MAAA,SAAe,gBAAA,GAC1B,OAAA,EAAS,sBAAA,eACR,oBAAA;AAAA,iBAwSa,2BAAA,CACd,IAAA,UACA,SAAA,EAAW,MAAA,SAAe,gBAAA,GAC1B,OAAA,EAAS,sBAAA;;;cCtcE,sBAAA;AAAA,cAYA,uBAAA;AAAA,cACA,sBAAA;AAAA,cACA,sBAAA;AAAA,cACA,uBAAA;AAAA,UAmBI,wBAAA;EAEf,KAAA,EAAO,SAAA;EAEP,SAAA;EAEA,QAAA,EAAU,gBAAA;EAaV,YAAA;EAOA,YAAA,GAAe,qBAAA;EAOf,oBAAA,EAAsB,MAAA;EAMtB,OAAA;EAEA,QAAA;EAOA,aAAA,GAAgB,sBAAA;AAAA;AAAA,UAaD,sBAAA;EACf,YAAA;EACA,eAAA;EACA,cAAA;EACA,aAAA;EACA,YAAA,GAAe,oBAAA;AAAA;AAAA,UAgBA,oBAAA;EACf,IAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA;AAAA;AAAA,UA0Be,qBAAA;EACf,OAAA;EACA,UAAA;EACA,aAAA;EACA,QAAA;IACE,MAAA;IACA,eAAA;IACA,GAAA;IACA,SAAA;EAAA;AAAA;AAAA,cAIS,wBAAA,SAAiC,KAAA;cAChC,OAAA;AAAA;AAAA,iBAkBE,sBAAA,CACd,MAAA,UACA,MAAA,EAAQ,SAAA,IACR,YAAA,GAAe,sBAAA,GACd,wBAAA;AAAA,iBA+Ba,2BAAA,CACd,MAAA,UACA,MAAA,EAAQ,SAAA,KACP,SAAA;;;cChNU,2BAAA;AAAA,UAEI,qBAAA;EAEf,MAAA;EAEA,WAAA;EAMA,GAAA;EAMA,QAAA;AAAA;AAAA,iBAcoB,oBAAA,CACpB,IAAA,UACA,IAAA,UACA,SAAA,YACC,OAAA;AAAA,UAyEc,sBAAA;EAEf,SAAA;EAEA,SAAA;EAMA,aAAA;EAQA,iBAAA,GAAoB,MAAA;EASpB,OAAA,IAAW,IAAA;AAAA;AAAA,iBAYS,eAAA,CACpB,IAAA,UACA,IAAA,UACA,KAAA,WACA,OAAA,EAAS,sBAAA,GACR,OAAA,CAAQ,qBAAA;;;cC3JE,kBAAA;AAAA,cAEA,QAAA;AAAA,cAEA,oBAAA;AAAA,UAMI,iBAAA;EACf,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,eAAA;EAEf,EAAA;EAEA,GAAA;AAAA;AAAA,UAGe,gBAAA;EAMf,cAAA;EAEA,gBAAA;EAEA,SAAA,UAAmB,KAAA;AAAA;AAAA,iBASC,aAAA,CACpB,IAAA,UACA,IAAA,UACA,OAAA,EAAS,iBAAA,EACT,OAAA,GAAS,gBAAA,GACR,OAAA,CAAQ,eAAA;AAAA,iBAkKK,kBAAA,CAAmB,IAAA,UAAc,EAAA;;;cCpNpC,kBAAA;AAAA,cAEA,QAAA;AAAA,UAGI,iBAAA;EACf,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,eAAA;EAEf,EAAA;EAEA,GAAA;AAAA;AAAA,UAGe,gBAAA;EAMf,cAAA;EAMA,gBAAA;EAEA,SAAA,UAAmB,KAAA;AAAA;AAAA,iBAQC,aAAA,CACpB,IAAA,UACA,IAAA,UACA,OAAA,EAAS,iBAAA,EACT,OAAA,GAAS,gBAAA,GACR,OAAA,CAAQ,eAAA;;;UCzCM,wBAAA;EAEf,SAAA;EAEA,SAAA,GAAY,IAAA;EAEZ,SAAA;EAOA,aAAA;EAUA,WAAA,GAAc,aAAA;EAEd,aAAA,UAAuB,SAAA;AAAA;AAAA,UAGR,iBAAA;EAEf,MAAA;AAAA;AAAA,iBAQoB,iBAAA,CACpB,IAAA,UACA,IAAA,UACA,KAAA,WACA,OAAA,EAAS,wBAAA,GACR,OAAA,CAAQ,iBAAA;;;UC9BM,mBAAA;EAEf,QAAA,EAAU,MAAA;EAEV,UAAA;AAAA;AAAA,UAGe,eAAA;EAEf,UAAA,GAAa,MAAA;EAAA,CAKZ,sBAAA,WAAiC,MAAA;AAAA;AAAA,iBAwBpB,cAAA,CACd,SAAA,UACA,WAAA,sBACA,WAAA,EAAa,MAAA,+BACb,SAAA,GAAY,eAAA,GACX,mBAAA;;;UCzBc,cAAA;EAEf,OAAA;EAEA,OAAA;AAAA;AAAA,iBAec,kBAAA,CAAA,GAAsB,cAAA;;;KCS1B,gBAAA;;;UC7CK,eAAA;EACf,SAAA;EACA,WAAA;EACA,aAAA;EACA,QAAA;EACA,aAAA;EAEA,aAAA;AAAA;AAAA,UAwMe,aAAA;EAMf,OAAA,CAAQ,SAAA,WAAoB,OAAA,CAAQ,eAAA;EAEpC,OAAA,CAAQ,MAAA,EAAQ,eAAA;EAEhB,OAAA,IAAW,OAAA;AAAA;;;cC/GA,kBAAA,SAA2B,KAAA;cAC1B,OAAA;AAAA;;;UCjGG,wBAAA;EAEf,UAAA;EAOA,gBAAA;EAaA,kBAAA,GAAqB,MAAA;EAQrB,iBAAA,GAAoB,MAAA;EAEpB,eAAA;AAAA;AAAA,UAOe,2BAAA;EAEf,KAAA,EAAO,wBAAA;EAEP,UAAA;AAAA;AAAA,iBA0Bc,yBAAA,CACd,OAAA,EAAS,wBAAA,gBACT,WAAA,UACA,kBAAA,YACC,2BAAA;AAAA,iBAwDa,cAAA,CAAe,GAAA;AAAA,iBAwCf,0BAAA,CACd,kBAAA,EAAoB,MAAA,8BACpB,IAAA;EAAQ,aAAA,IAAiB,GAAA,UAAa,KAAA,UAAe,MAAA;AAAA,IACpD,MAAA;AAAA,iBA2Ca,oBAAA,CACd,iBAAA,EAAmB,MAAA,8BACnB,MAAA;EACG,QAAA;EAAkB,WAAA;AAAA;;;UC/GN,qBAAA;EACf,IAAA;EAOA,eAAA;EAEA,SAAA,EAAW,wBAAA;AAAA;AAAA,UA8FI,0BAAA;EACf,IAAA;EAEA,GAAA;EAEA,qBAAA;EAMA,iBAAA,GAAoB,MAAA;EAEpB,SAAA,EAAW,wBAAA;AAAA;AAAA,UAsGI,qBAAA;EACf,IAAA;EACA,GAAA;EACA,qBAAA;EACA,iBAAA,GAAoB,MAAA;EAEpB,gBAAA,GAAmB,MAAA;EACnB,SAAA,EAAW,wBAAA;AAAA;AAAA,UA2II,0BAAA;EACf,IAAA;EAEA,eAAA;EAEA,gBAAA,GAAmB,MAAA;EAEnB,SAAA,EAAW,wBAAA;AAAA;;;KClfD,uBAAA,GACR,qBAAA,GACA,0BAAA,GACA,qBAAA,GACA,0BAAA;AAAA,UAmCa,eAAA;EAEf,MAAA;EAEA,WAAA;EAEA,eAAA;EAEA,MAAA;EAEA,UAAA;EAUA,KAAA;EAgBA,YAAA;EAQA,YAAA;EAWA,UAAA;EAOA,cAAA,GAAiB,MAAA;EAWjB,UAAA;EAsBA,WAAA;IAAgB,MAAA;EAAA;EAgBhB,QAAA;IAAa,UAAA;IAAoB,OAAA,EAAS,MAAA;EAAA;EAgB1C,kBAAA;IACE,OAAA,EAAS,gBAAA;IACT,iBAAA,EAAmB,QAAA,CAAS,MAAA;IAC5B,kBAAA,GAAqB,QAAA,CAAS,MAAA,SAAe,QAAA,CAAS,MAAA;EAAA;EAaxD,iBAAA,GAAoB,uBAAA;EAEpB,UAAA;AAAA;AAAA,iBAoBc,cAAA,CAAe,MAAA,WAAiB,SAAA,KAAc,eAAA;;;UC9J7C,UAAA;EACf,YAAA;EACA,YAAA;EACA,YAAA;EACA,aAAA;EACA,MAAA;EACA,gBAAA;AAAA;AAAA,iBAsBc,sBAAA,CAAuB,QAAA,EAAU,sBAAA,GAAyB,GAAA,SAAY,UAAA;AAAA,iBA4GtE,kCAAA,CACd,QAAA,EAAU,sBAAA,GACT,GAAA,SAAY,UAAA;AAAA,iBAqEC,uBAAA,CACd,QAAA,EAAU,sBAAA,EACV,cAAA;AAAA,UAuJe,iBAAA;EACf,UAAA;EACA,OAAA,EAAS,MAAA;AAAA;AAAA,iBAUK,cAAA,CACd,GAAA;EAAO,MAAA;EAAgB,OAAA,EAAS,MAAA;AAAA,GAChC,MAAA,EAAQ,UAAA,GACP,iBAAA;AAAA,iBAqGa,wBAAA,CACd,GAAA,EAAK,cAAA,EACL,YAAA,sBACA,iBAAA,EAAmB,GAAA,SAAY,UAAA,GAC/B,aAAA;;;UC3fe,qBAAA;EACf,IAAA;EAEA,SAAA;EAEA,eAAA;EAMA,WAAA;EAEA,gBAAA;EAEA,UAAA;AAAA;AAAA,UAGe,uBAAA;EACf,IAAA;EACA,SAAA;EACA,eAAA;EAEA,eAAA,EAAiB,aAAA,CAAc,sBAAA;EAE/B,gBAAA;EAEA,UAAA;EACA,UAAA;AAAA;AAAA,UASe,cAAA;EAEf,WAAA;EAEA,MAAA;EAEA,UAAA;AAAA;AAAA,UAGe,yBAAA;EACf,IAAA;EACA,SAAA;EAWA,KAAA,EAAO,aAAA,CAAc,cAAA;EAOrB,WAAA;EAEA,MAAA;EAEA,UAAA;EAYA,UAAA;AAAA;AAAA,UAGe,aAAA;EACf,IAAA;EACA,SAAA;EAEA,MAAA;EAKA,QAAA,EAAU,aAAA;EAMV,MAAA;EACA,UAAA;EACA,UAAA;AAAA;AAAA,UAae,aAAA;EACf,IAAA;EAEA,SAAA;EACA,UAAA;EAYA,UAAA;AAAA;AAAA,KAGU,cAAA,GACR,qBAAA,GACA,uBAAA,GACA,yBAAA,GACA,aAAA,GACA,aAAA;AAAA,KAEQ,sBAAA;EACN,IAAA;EAAgB,IAAA;AAAA;EAChB,IAAA;EAAe,IAAA;AAAA;EACf,IAAA;EAAiB,IAAA;AAAA;EACjB,IAAA;EAAwB,IAAA;AAAA;AAAA,UAucb,aAAA;EACf,KAAA,EAD4B,eAAA;EAE5B,UAAA,GAAa,cAAA;AAAA;AAAA,iBAGC,iBAAA,CACd,MAAA,WAAiB,SAAA,IACjB,MAAA,WAD0B,eAAA,KAEzB,aAAA;;;UCznBc,sBAAA;EAcf,KAAA;EAKA,WAAA;EAMA,OAAA,GAAU,MAAA;EASV,MAAA;AAAA;AAAA,UAQe,eAAA;EAMf,GAAA,CAAI,mBAAA,UAA6B,YAAA,WAAuB,sBAAA;EAIxD,GAAA,CACE,mBAAA,UACA,YAAA,UACA,UAAA,UACA,MAAA,EAAQ,sBAAA;EAGV,KAAA;EAEA,IAAA;AAAA;AAAA,iBAQc,qBAAA,CAAsB,IAAA;EAAQ,GAAA;AAAA,IAA4B,eAAA;;;UC9DhE,OAAA;EAER,GAAA;EAEA,CAAA;EAEA,CAAA;EAEA,GAAA;EAEA,GAAA;EAEA,GAAA;AAAA;AAAA,UAGQ,cAAA;EAER,KAAA,EAAO,GAAA,SAAY,OAAA;EAEnB,SAAA;EAEA,WAAA;AAAA;AAAA,UAQe,SAAA;EACf,aAAA,CAAc,OAAA,WAAkB,OAAA,CAAQ,cAAA;EAExC,IAAA,CAAK,OAAA,WAAkB,cAAA;EACvB,KAAA;AAAA;AAAA,iBAac,eAAA,CACd,IAAA;EACE,SAAA,IACE,GAAA,aACG,OAAA;IAAU,EAAA;IAAa,MAAA;IAAgB,IAAA,QAAY,OAAA;EAAA;EACxD,GAAA;EACA,KAAA;EAEA,YAAA;AAAA,IAED,SAAA;AAAA,iBA+Ea,mBAAA,CAAoB,MAAA,UAAgB,UAAA;AAAA,iBAQpC,sBAAA,CAAuB,MAAA;AAAA,iBAsCjB,gBAAA,CACpB,UAAA,EAAY,yBAAA,EACZ,mBAAA,sBACA,SAAA,EAAW,SAAA,EACX,IAAA;EAAQ,GAAA;EAAoB,MAAA,GAAS,GAAA;AAAA,IACpC,OAAA,CAAQ,sBAAA;EAA2B,YAAA;EAAkC,UAAA;AAAA;AAAA,iBAiFlD,mBAAA,CACpB,UAAA,EAAY,aAAA,EACZ,mBAAA,sBACA,SAAA,EAAW,SAAA,EACX,IAAA;EAAQ,GAAA;EAAoB,MAAA,GAAS,GAAA;AAAA,IACpC,OAAA,CAAQ,sBAAA;EAA2B,YAAA;EAAkC,UAAA;AAAA;AAAA,UA8BvD,sBAAA;EAEf,YAAA;EAEA,eAAA;EAEA,cAAA;EAKA,aAAA;EAEA,YAAA,YAAwB,cAAA;AAAA;AAAA,UAST,cAAA;EACf,IAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA;AAAA;AAAA,iBAkBoB,qBAAA,CACpB,UAAA,EAAY,sBAAA,EACZ,mBAAA,sBACA,SAAA,EAAW,SAAA,EACX,IAAA;EACE,GAAA;EACA,MAAA,GAAS,GAAA;EACT,SAAA,IACE,GAAA,aACG,OAAA;IAAU,EAAA;IAAa,MAAA;IAAgB,IAAA,QAAY,OAAA;EAAA;AAAA,IAEzD,OAAA,CAAQ,sBAAA;EAA2B,YAAA;EAAkC,UAAA;AAAA;;;UC/SvD,mBAAA;EACf,WAAA;EACA,eAAA;EACA,YAAA;AAAA;AAAA,KAQU,iBAAA,SAA0B,OAAA,CAAQ,mBAAA;AAAA,iBAU9B,wBAAA,CAAA,GAA4B,iBAAA;;;UCC3B,WAAA;EACf,MAAA,WAAiB,aAAA;EACjB,IAAA,EAAM,aAAA;EACN,iBAAA,EAAmB,GAAA,SAAY,UAAA;AAAA;AAAA,UAGhB,qBAAA;EAEf,KAAA,EAAO,WAAA;EAEP,YAAA;EAEA,IAAA;EAEA,IAAA;EAEA,eAAA,GAAkB,eAAA;EAElB,SAAA,GAAY,SAAA;EASZ,cAAA,GAAiB,GAAA;EAgBjB,IAAA,GAAO,gBAAA;EAQP,sBAAA,GAAyB,iBAAA;EAOzB,qBAAA,GAAwB,GAAA;EASxB,WAAA;EAWA,aAAA;EAiBA,WAAA,IAAe,GAAA,EAAK,eAAA,EAAiB,GAAA,EAAK,cAAA,KAAmB,OAAA;AAAA;AAAA,UAc9C,gBAAA;EACf,KAAA,EAAO,MAAA;EACP,OAAA,EAAS,MAAA;EACT,MAAA,EAAQ,MAAA;AAAA;AAAA,UAGO,gBAAA;EAEf,IAAA;EAEA,IAAA;EAKA,MAAA;EAEA,MAAA,EAAQ,MAAA;EAKR,KAAA,QAAa,OAAA;EAQb,cAAA,GAAiB,IAAA,EAAM,WAAA,KAAgB,WAAA;EAEvC,cAAA,QAAsB,WAAA;AAAA;AAAA,iBAQF,cAAA,CAAe,IAAA,EAAM,qBAAA,GAAwB,OAAA,CAAQ,gBAAA;AAAA,iBAygD3D,yBAAA,CAA0B,IAAA;EACxC,cAAA;EACA,QAAA;EACA,OAAA;AAAA,IACE,gBAAA;;;UCxgDa,iCAAA;EACf,mBAAA,GAAsB,mBAAA;EAEtB,WAAA,GAAc,mBAAA;AAAA;AAAA,UA4/BC,eAAA;EAEf,OAAA,GAAU,OAAA;EAEV,aAAA,GAAgB,OAAA;EAEhB,eAAA;AAAA;AAAA,iBAmBc,qBAAA,CAAsB,IAAA;EACpC,SAAA;EACA,MAAA;EACA,WAAA,EAAa,cAAA;AAAA,IACX,eAAA;AAAA,UA8Ga,eAAA;EAAA,SAEN,QAAA,EAAU,aAAA;EAAA,SAEV,SAAA;AAAA;AAAA,iBA2BK,sBAAA,CACd,MAAA,WAAiB,aAAA,IACjB,WAAA,qBACA,UAAA,sBACC,eAAA;AAAA,iBAgmEa,0BAAA,CAA2B,IAAA,GAAM,iCAAA,GAAyC,OAAA;;;cC/2G7E,sBAAA,SAA+B,KAAA;cAC9B,OAAA;AAAA;AAAA,KAqDF,yBAAA,GAA4B,sBAAA;;;cCjN3B,aAAA,SAAsB,KAAA;EAAA,SACjB,IAAA;EAAA,SACA,KAAA,EAAO,KAAA;cAEX,OAAA,UAAiB,IAAA,UAAc,KAAA,GAAQ,KAAA;AAAA;AAAA,cAkBxC,qBAAA,SAA8B,aAAA;cAC7B,OAAA,UAAiB,KAAA,GAAQ,KAAA;AAAA;;;UCZtB,WAAA;EAEf,SAAA;EAEA,SAAA;EAKA,WAAA;EAMA,WAAA;EAOA,IAAA;AAAA;AAAA,UAOe,aAAA;EAEf,OAAA,EAAS,WAAA;EAMT,IAAA,EAAM,WAAA;EAEN,WAAA,EAAa,WAAA;EAEb,kBAAA,EAAoB,WAAA;EAEpB,iBAAA,EAAmB,WAAA;EAEnB,aAAA,EAAe,WAAA;AAAA;AAAA,iBAkID,WAAA,CAAY,MAAA,WAAiB,SAAA,KAAc,aAAA;AAAA,iBAsC3C,YAAA,CAAa,OAAA,EAAS,aAAA;;;UC1LrB,kBAAA;EAEf,EAAA;EAEA,IAAA;EAEA,QAAA;AAAA;AAAA,UAIe,kBAAA;EAAA,SAEN,IAAA;EAAA,SAEA,QAAA;AAAA;AAAA,UAgBM,eAAA;EACf,SAAA;EACA,aAAA;EACA,SAAA,EAAW,aAAA,CAAc,kBAAA;EAEzB,OAAA;AAAA;AAAA,cAmBW,gBAAA;EAAA,iBAEM,MAAA;EAAA,iBAYA,UAAA;EAcjB,QAAA,CACE,SAAA,UACA,aAAA,UACA,QAAA,EAAU,kBAAA,GACT,kBAAA;EAmCH,aAAA,CAAc,KAAA,UAAe,UAAA;EA6B7B,UAAA,CAAW,MAAA,EAAQ,kBAAA;EAenB,iBAAA,CAAkB,cAAA;EAmBlB,MAAA,CAAO,SAAA,UAAmB,aAAA,WAAwB,aAAA,CAAc,kBAAA;EAahE,WAAA,CAAY,KAAA,WAAgB,aAAA,CAAc,kBAAA;EAsB1C,iBAAA,CAAkB,qBAAA;EAiClB,IAAA,CAAA,GAAQ,aAAA,CAAc,eAAA;EA0BtB,OAAA,CAAA;AAAA;;;UCpSe,yBAAA;EAEf,SAAA;EAEA,IAAA;AAAA;AAAA,UAGe,uBAAA;EAEf,SAAA;EAEA,kBAAA;EAEA,aAAA;EAEA,IAAA;EASA,UAAA,EAAY,aAAA;IAAgB,IAAA;IAAmB,UAAA;EAAA;AAAA;AAAA,UAUhC,aAAA;EAEf,qBAAA,EAAuB,GAAA,SAAY,yBAAA;EAEnC,gBAAA,EAAkB,GAAA,SAAY,yBAAA;EAE9B,mBAAA,EAAqB,GAAA,SAAY,uBAAA;EAMjC,QAAA;AAAA;AAAA,iBAcc,kBAAA,CAAmB,KAAA,EAAO,SAAA,GAAY,aAAA;;;UCpBrC,sBAAA;EAEf,IAAA;EAEA,MAAA;AAAA;AAAA,UAIe,uBAAA;EAEf,GAAA;EAEA,KAAA;AAAA;;;KCCU,sBAAA,GAAyB,kBAAA,GAAqB,qBAAA;AAAA,UAGzC,kBAAA;EACf,IAAA;EAEA,gBAAA;EAEA,mBAAA;EAEA,mBAAA;EAEA,oBAAA;EAMA,MAAA;AAAA;AAAA,UAgBe,qBAAA;EACf,IAAA;EAEA,eAAA;EAEA,oBAAA;EAMA,iBAAA;EAMA,MAAA;AAAA;AAAA,UAIe,uBAAA;EACf,IAAA;EAEA,UAAA;EAEA,QAAA;EAEA,IAAA;EAEA,IAAA;EAEA,IAAA;EAEA,KAAA;AAAA;AAAA,UAIe,4BAAA;EACf,IAAA;EAEA,UAAA;EAEA,WAAA;EAEA,WAAA;AAAA;AAAA,UAIe,sBAAA;EACf,IAAA;EAEA,OAAA,EAAS,sBAAA;AAAA;AAAA,UAcM,kBAAA;EACf,IAAA;EAEA,MAAA;EAEA,QAAA;EAEA,MAAA;EAEA,UAAA;EAOA,iBAAA;EAEA,KAAA;AAAA;AAAA,KAIU,sBAAA,GACR,sBAAA,GACA,uBAAA,GACA,4BAAA;AAAA,UAGa,oBAAA;EAEf,QAAA;EAEA,YAAA;EAEA,YAAA;EAEA,oBAAA,EAAsB,sBAAA;EAEtB,kBAAA;EAEA,qBAAA,EAAuB,uBAAA;EAEvB,aAAA;EAEA,MAAA,EAAQ,sBAAA;EAMR,SAAA,GAAY,kBAAA;AAAA;AAAA,UAIG,yBAAA;EAEf,YAAA;EAEA,gBAAA;EAEA,iBAAA;EAOA,aAAA,GAAgB,sBAAA;EAKhB,gBAAA,GAAmB,kBAAA;EAEnB,KAAA,EAAO,oBAAA;AAAA;AAAA,UAGQ,sBAAA;EAEf,SAAA,EAAW,yBAAA;EAEX,QAAA;AAAA;AAAA,iBAQc,mBAAA,CACd,KAAA,EAAO,SAAA,EACP,YAAA,WACC,sBAAA;AAAA,iBA2Ha,yBAAA,CAA0B,QAAA,EAAU,gBAAA;;;UChSnC,yBAAA;EACf,GAAA;EACA,MAAA;EACA,OAAA;EACA,MAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,aAAA;EAEA,cAAA;EACA,IAAA;EACA,UAAA;EAEA,QAAA;EAEA,MAAA;EAOA,OAAA;EAKA,MAAA;EAOA,UAAA;EAMA,WAAA;EACA,QAAA;EAEA,QAAA;EAEA,aAAA;EAKA,YAAA;EACA,WAAA;EAAA,CAEC,GAAA;AAAA;AAAA,UAIc,WAAA;EAEf,MAAA;AAAA;AAAA,KAQU,oBAAA,GAAuB,uBAAA,GAA0B,0BAAA;AAAA,UAG5C,uBAAA;EACf,IAAA;EAEA,aAAA;EAEA,mBAAA;EAEA,mBAAA;EAEA,MAAA;AAAA;AAAA,UAIe,0BAAA;EACf,IAAA;EAEA,MAAA,EAAQ,cAAA;EAER,cAAA;EAEA,iBAAA;EAEA,MAAA;AAAA;AAAA,UAIe,oBAAA;EACf,IAAA;EACA,OAAA,EAAS,oBAAA;AAAA;AAAA,UAIM,qBAAA;EACf,IAAA;EACA,UAAA;EACA,QAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,UAIe,0BAAA;EACf,IAAA;EACA,UAAA;EACA,WAAA;EACA,WAAA;AAAA;AAAA,KAIU,aAAA,GACR,oBAAA,GACA,qBAAA,GACA,0BAAA;AAAA,UAGa,wBAAA;EAEf,YAAA;EAEA,QAAA;EAEA,QAAA;EAEA,aAAA,GAAgB,aAAA;EAEhB,gBAAA,GAAmB,kBAAA;EAEnB,KAAA,EAAO,KAAA;IACL,QAAA;IACA,YAAA;IACA,YAAA;IACA,oBAAA,EAAsB,sBAAA;IACtB,kBAAA;IACA,qBAAA,EAAuB,uBAAA;IACvB,aAAA;IACA,MAAA,EAAQ,aAAA;IAER,SAAA,GAAY,kBAAA;EAAA;AAAA;AAAA,UAKC,aAAA;EACf,SAAA,EAAW,wBAAA;AAAA;AAAA,UAgBI,gBAAA;EACf,WAAA,CAAY,MAAA,EAAQ,SAAA,KAAc,WAAA;EAClC,aAAA;EACA,UAAA;EACA,SAAA,IAAa,aAAA;EACb,YAAA,CACE,MAAA,EAAQ,SAAA,IACR,aAAA;IACG,KAAA,EAAO,WAAA;IAAe,SAAA,GAAY,aAAA;IAAe,QAAA;EAAA;EACtD,eAAA,EAAiB,MAAA;AAAA;AAAA,iBASG,qBAAA,CACpB,OAAA,YACA,OAAA,EAAS,yBAAA,EACT,QAAA,EAAU,gBAAA,EACV,mBAAA,EAAqB,mBAAA,eACpB,OAAA;AAAA,iBAkvBmB,8BAAA,CACpB,MAAA,UACA,MAAA,EAAQ,SAAA,IACR,OAAA,EAAS,yBAAA,EACT,aAAA,EAAe,kBAAA,eACd,OAAA,CAAQ,yBAAA;AAAA,cAqME,0BAAA;AAAA,iBAEG,aAAA,CAAc,GAAA;AAAA,iBAWd,kBAAA,CAAmB,GAAA;AAAA,iBAcb,+BAAA,CAAgC,OAAA;EACpD,OAAA;AAAA,IACE,OAAA;EAAU,WAAA;EAAqB,eAAA;EAAyB,YAAA;AAAA;AAAA,iBAW5C,0BAAA,CAA2B,GAAA,EAAK,OAAA,GAAU,OAAA"}
@@ -11,6 +11,7 @@ import { AssetManifestArtifact } from "@aws-cdk/cloud-assembly-api";
11
11
  import { BaseCredentials, CdkAppMultiContext, NonInteractiveIoHost, Toolkit } from "@aws-cdk/toolkit-lib";
12
12
  import { CloudFormationClient, DescribeStacksCommand, ListExportsCommand, ListStackResourcesCommand } from "@aws-sdk/client-cloudformation";
13
13
  import { GetFunctionConfigurationCommand, LambdaClient } from "@aws-sdk/client-lambda";
14
+ import { BedrockAgentCoreControlClient, GetAgentRuntimeCommand } from "@aws-sdk/client-bedrock-agentcore-control";
14
15
  import { GetParameterCommand, GetParametersCommand, SSMClient } from "@aws-sdk/client-ssm";
15
16
  import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
16
17
  import { Readable } from "node:stream";
@@ -3819,6 +3820,7 @@ var CfnLocalStateProvider = class {
3819
3820
  client;
3820
3821
  lambdaClient;
3821
3822
  ssmClient;
3823
+ agentCoreControlClient;
3822
3824
  clientOptions;
3823
3825
  disposed = false;
3824
3826
  constructor(opts) {
@@ -3843,6 +3845,14 @@ var CfnLocalStateProvider = class {
3843
3845
  });
3844
3846
  return this.lambdaClient;
3845
3847
  }
3848
+ getAgentCoreControlClient() {
3849
+ if (this.disposed) throw new Error("CfnLocalStateProvider used after dispose()");
3850
+ if (!this.agentCoreControlClient) this.agentCoreControlClient = new BedrockAgentCoreControlClient({
3851
+ region: this.region,
3852
+ ...this.clientOptions.profile !== void 0 && { profile: this.clientOptions.profile }
3853
+ });
3854
+ return this.agentCoreControlClient;
3855
+ }
3846
3856
  getSsmClient() {
3847
3857
  if (this.disposed) throw new Error("CfnLocalStateProvider used after dispose()");
3848
3858
  if (!this.ssmClient) this.ssmClient = new SSMClient({
@@ -3918,6 +3928,29 @@ var CfnLocalStateProvider = class {
3918
3928
  }
3919
3929
  }
3920
3930
  /**
3931
+ * Read a deployed AgentCore Runtime's execution-role ARN via
3932
+ * `bedrock-agentcore-control:GetAgentRuntime`'s `roleArn` field.
3933
+ * See {@link LocalStateProvider.resolveAgentCoreRuntimeRoleArn}.
3934
+ *
3935
+ * Best-effort: on any expected miss (runtime not found, access
3936
+ * denied, throttling) logs a warn and returns `undefined` so the
3937
+ * caller falls through to the existing "Pass the ARN explicitly:
3938
+ * --assume-role <arn>" path. Never throws.
3939
+ */
3940
+ async resolveAgentCoreRuntimeRoleArn(runtimePhysicalId) {
3941
+ if (this.disposed) throw new Error("CfnLocalStateProvider used after dispose()");
3942
+ const logger = getLogger();
3943
+ const client = this.getAgentCoreControlClient();
3944
+ try {
3945
+ const resp = await client.send(new GetAgentRuntimeCommand({ agentRuntimeId: runtimePhysicalId }));
3946
+ if (typeof resp.roleArn === "string" && resp.roleArn.startsWith("arn:")) return resp.roleArn;
3947
+ return;
3948
+ } catch (err) {
3949
+ logger.warn(`${this.label}: GetAgentRuntime(${runtimePhysicalId}) for --assume-role auto-resolve failed: ${formatAwsErrorForWarn(err)}. Pass the ARN explicitly: --assume-role <arn>.`);
3950
+ return;
3951
+ }
3952
+ }
3953
+ /**
3921
3954
  * Load the deployed CFn stack's resources + outputs and return them
3922
3955
  * as a synthetic `LocalStateRecord` (matching the shape the existing
3923
3956
  * S3-state-driven path produces). `synthRegion` is accepted for
@@ -4009,6 +4042,10 @@ var CfnLocalStateProvider = class {
4009
4042
  this.ssmClient.destroy();
4010
4043
  this.ssmClient = void 0;
4011
4044
  }
4045
+ if (this.agentCoreControlClient) {
4046
+ this.agentCoreControlClient.destroy();
4047
+ this.agentCoreControlClient = void 0;
4048
+ }
4012
4049
  }
4013
4050
  };
4014
4051
  /**
@@ -18039,7 +18076,8 @@ function createEcsRunState() {
18039
18076
  network: void 0,
18040
18077
  dockerVolumeNames: [],
18041
18078
  startedContainers: [],
18042
- logStoppers: []
18079
+ logStoppers: [],
18080
+ publishedEndpoints: []
18043
18081
  };
18044
18082
  }
18045
18083
  /**
@@ -18125,7 +18163,7 @@ async function runEcsTask(task, options, state) {
18125
18163
  for (const container of task.containers) {
18126
18164
  const image = imagePlan.get(container.name);
18127
18165
  if (!image) throw new EcsTaskRunnerError(`Internal: no resolved image for container '${container.name}'.`);
18128
- dockerCmds.set(container.name, buildDockerRunArgs({
18166
+ const built = buildDockerRunArgs({
18129
18167
  task,
18130
18168
  container,
18131
18169
  image,
@@ -18144,7 +18182,12 @@ async function runEcsTask(task, options, state) {
18144
18182
  ...options.addHostFlags && options.addHostFlags.length > 0 ? { addHostFlags: options.addHostFlags } : {},
18145
18183
  ...(options.networkAliasesByContainer?.get(container.name)?.length ?? 0) > 0 ? { networkAliases: options.networkAliasesByContainer.get(container.name) } : {},
18146
18184
  ...options.profileCredentialsFile && { profileCredentialsFile: options.profileCredentialsFile }
18147
- }));
18185
+ });
18186
+ dockerCmds.set(container.name, {
18187
+ args: built.args,
18188
+ sensitiveEnv: built.sensitiveEnv
18189
+ });
18190
+ for (const ep of built.publishedEndpoints) state.publishedEndpoints.push(ep);
18148
18191
  }
18149
18192
  const startedByName = /* @__PURE__ */ new Map();
18150
18193
  for (const containerName of startOrder) {
@@ -18489,6 +18532,7 @@ function parseHostPortOverrides(values) {
18489
18532
  function buildDockerRunArgs(opts) {
18490
18533
  const { task, container, image, network, volumeByName, secrets, containerHost, roleArn } = opts;
18491
18534
  const args = ["run", "-d"];
18535
+ const publishedEndpoints = [];
18492
18536
  args.push("--name", `${getEmbedConfig().resourceNamePrefix}-${task.family}-${container.name}-${randHex(3)}`);
18493
18537
  args.push("--network", network);
18494
18538
  args.push("--network-alias", container.name);
@@ -18507,9 +18551,18 @@ function buildDockerRunArgs(opts) {
18507
18551
  if (ephemeralPorts.has(pm.containerPort)) continue;
18508
18552
  const declaredHostPort = pm.hostPort ?? pm.containerPort;
18509
18553
  const hostPort = opts.hostPortOverrides?.[pm.containerPort] ?? declaredHostPort;
18510
- const overrideNote = hostPort !== declaredHostPort ? " (--host-port override)" : "";
18554
+ const overridden = hostPort !== declaredHostPort;
18555
+ const overrideNote = overridden ? " (--host-port override)" : "";
18511
18556
  getLogger().child("ecs").info(`Container '${container.name}' container port ${pm.containerPort} published on ${containerHost}:${hostPort}${overrideNote}. Reach it at ${containerHost}:${hostPort}.`);
18512
18557
  args.push("-p", `${containerHost}:${hostPort}:${pm.containerPort}/${pm.protocol}`);
18558
+ publishedEndpoints.push({
18559
+ containerName: container.name,
18560
+ containerPort: pm.containerPort,
18561
+ host: containerHost,
18562
+ hostPort,
18563
+ protocol: pm.protocol,
18564
+ overridden
18565
+ });
18513
18566
  }
18514
18567
  if (ephemeralPorts.size > 0) {
18515
18568
  const alreadyEphemeral = /* @__PURE__ */ new Set();
@@ -18577,7 +18630,8 @@ function buildDockerRunArgs(opts) {
18577
18630
  args.push(image, ...entryPointTail, ...container.command ?? []);
18578
18631
  return {
18579
18632
  args,
18580
- sensitiveEnv
18633
+ sensitiveEnv,
18634
+ publishedEndpoints
18581
18635
  };
18582
18636
  }
18583
18637
  function applyOverrideMap(acc, map) {
@@ -21493,6 +21547,7 @@ async function runEcsServiceEmulator(targets, options, strategy, extraStateProvi
21493
21547
  const summary = perTarget.map((pt) => `${pt.controller.service.serviceName} (${pt.controller.activeReplicaCount()} replica(s))`).join(", ");
21494
21548
  logger.info(`Service(s) running: ${summary}.`);
21495
21549
  } else logger.info(`Service(s) running: ${frontDoorLambdaRunners.length} Lambda target(s) behind the ALB front-door.`);
21550
+ logEndpointsBanner(perTarget, frontDoorServers, logger);
21496
21551
  logger.info("Press ^C to shut down.");
21497
21552
  if (perTarget.length > 0) await Promise.all(perTarget.map((pt) => pt.controller.waitForShutdown()));
21498
21553
  else await new Promise(() => {});
@@ -21879,6 +21934,45 @@ function readEnvOverridesFile(filePath) {
21879
21934
  if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new LocalStartServiceError(`--env-vars file '${filePath}' must contain a JSON object at the top level.`);
21880
21935
  return parsed;
21881
21936
  }
21937
+ /**
21938
+ * Print a consolidated "Service endpoints:" banner so the access URL ends up
21939
+ * at the BOTTOM of the boot output instead of buried mid-`docker pull`. Two
21940
+ * sources are surfaced:
21941
+ *
21942
+ * 1. Per-service static host-port publishes recorded by the runner in
21943
+ * `EcsRunState.publishedEndpoints` (single-replica `start-service`).
21944
+ * Multi-replica services skip the host-port publish and contribute
21945
+ * nothing here.
21946
+ * 2. Host-side ALB front-door listener URLs (`start-alb`). The
21947
+ * `buildFrontDoor` step also logs an `ALB front-door: ...` line for each
21948
+ * listener earlier in the stream (it's the load-bearing marker the integ
21949
+ * tests grep for), but it streams BEFORE the docker-pull noise. Echoing
21950
+ * it here re-surfaces the URL at the bottom for the user.
21951
+ *
21952
+ * Silent when neither source has anything to show.
21953
+ */
21954
+ function logEndpointsBanner(perTarget, frontDoorServers, logger) {
21955
+ const lines = [];
21956
+ for (const pt of perTarget) {
21957
+ const controller = pt.controller;
21958
+ if (!controller) continue;
21959
+ const endpoints = controller.runState.replicas.find((r) => !r.shuttingDown)?.state.publishedEndpoints ?? [];
21960
+ if (endpoints.length === 0) continue;
21961
+ lines.push(` ${controller.service.serviceName}`);
21962
+ for (const ep of endpoints) {
21963
+ const scheme = ep.protocol.toLowerCase() === "udp" ? "udp" : "http";
21964
+ const override = ep.overridden ? " (--host-port override)" : "";
21965
+ lines.push(` ${ep.containerName} container port ${ep.containerPort}/${ep.protocol} -> ${scheme}://${ep.host}:${ep.hostPort}${override}`);
21966
+ }
21967
+ }
21968
+ if (frontDoorServers.length > 0) {
21969
+ lines.push(" ALB front-door");
21970
+ for (const s of frontDoorServers) lines.push(` ${s.scheme}://${s.host}:${s.port}`);
21971
+ }
21972
+ if (lines.length === 0) return;
21973
+ logger.info("Service endpoints:");
21974
+ for (const l of lines) logger.info(l);
21975
+ }
21882
21976
  function parsePositiveInt(raw, flagName) {
21883
21977
  const parsed = parseInt(raw, 10);
21884
21978
  if (!Number.isFinite(parsed) || parsed < 1) throw new LocalStartServiceError(`${flagName} must be a positive integer (got '${raw}').`);
@@ -22574,4 +22668,4 @@ function parseAuthenticateAction(action, type, label, warnings) {
22574
22668
 
22575
22669
  //#endregion
22576
22670
  export { buildMgmtEndpointEnvUrl as $, resolveCdkPathToLogicalIds as $n, resolveRuntimeCodeMountPath as $t, startApiServer as A, countTargets as An, waitForAgentCorePing as At, translateLambdaResponse as B, AGENTCORE_HTTP_PROTOCOL as Bn, getDockerImageBySourceHash as Bt, attachStageContext as C, CfnLocalStateProvider as Cn, MCP_PROTOCOL_VERSION as Ct, filterRoutesByApiIdentifiers as D, resolveWatchConfig as Dn, signAgentCoreInvocation as Dt, filterRoutesByApiIdentifier as E, resolveApp as En, AGENTCORE_SIGV4_SERVICE as Et, computeRequestIdentityHash as F, discoverRoutes as Fn, renderCodeDockerfile as Ft, pickResponseTemplate as G, resolveAgentCoreTarget as Gn, parseEcrUri as Gt, buildHttpApiV2Event as H, AGENTCORE_RUNTIME_TYPE as Hn, waitForRieReady as Ht, evaluateCachedLambdaPolicy as I, pickRefLogicalId as In, toCmdArgv as It, VtlEvaluationError as J, substituteImagePlaceholders as Jn, pickFreePort as Jt, selectIntegrationResponse as K, resolveLambdaTarget as Kn, pullEcrImage as Kt, invokeRequestAuthorizer as L, resolveLambdaArnIntrinsic as Ln, writeProfileCredentialsFile as Lt, resolveServiceIntegrationParameters as M, discoverWebSocketApis as Mn, SUPPORTED_CODE_RUNTIMES as Mt, defaultCredentialsLoader as N, discoverWebSocketApisOrThrow as Nn, buildAgentCoreCodeImage as Nt, groupRoutesByServer as O, Synthesizer as On, AGENTCORE_SESSION_ID_HEADER as Ot, buildMethodArn as P, parseSelectionExpressionPath as Pn, computeCodeImageTag as Pt, ConnectionRegistry as Q, readCdkPathOrUndefined as Qn, streamLogs as Qt, invokeTokenAuthorizer as R, AGENTCORE_A2A_PROTOCOL as Rn, singleFlight as Rt, createFileWatcher as S, resolveCfnStackName as Sn, MCP_PATH as St, availableApiIdentifiers as T, resolveSsmParameters as Tn, parseSseForJsonRpc as Tt, buildRestV1Event as U, AgentCoreResolutionError as Un, architectureToPlatform as Ut, applyAuthorizerOverlay as V, AGENTCORE_MCP_PROTOCOL as Vn, invokeRie as Vt, evaluateResponseParameters as W, pickAgentCoreCandidateStack as Wn, buildContainerImage as Wt, probeHostGatewaySupport as X, matchStacks as Xn, removeContainer as Xt, HOST_GATEWAY_MIN_VERSION as Y, tryResolveImageFnJoin as Yn, pullImage as Yt, bufferToBody as Z, buildCdkPathIndex as Zn, runDetached as Zt, createLocalStartApiCommand as _, createLocalStateProvider as _n, invokeAgentCoreWs as _t, buildEcsImageResolutionContext as a, derivePartitionAndUrlSuffix as an, appOptions as ar, buildCognitoJwksUrl as at, resolveProfileCredentials as b, resolveCfnFallbackRegion as bn, a2aInvokeOnce as bt, resolveSharedSidecarCredentials as c, resolveEcsTaskTarget as cn, deprecatedRegionOption as cr, verifyCognitoJwt as ct, CloudMapRegistry as d, substituteAgainstStateAsync as dn, attachAuthorizers as dt, resolveRuntimeFileExtension as en, CdkLocalError as er, handleConnectionsRequest as et, getContainerNetworkIp as f, substituteEnvVarsFromState as fn, applyCorsResponseHeaders as ft, runEcsTask as g, LocalStateSourceError as gn, matchPreflight as gt, parseHostPortOverrides as h, materializeLayerFromArn as hn, isFunctionUrlOacFronted as ht, addCommonEcsServiceOptions as i, applyCrossStackResolverToTask as in, applyRoleArnIfSet as ir, buildMessageEvent as it, resolveSelectionExpression as j, listTargets as jn, downloadAndExtractS3Bundle as jt, readMtlsMaterialsFromDisk as k, resolveSingleTarget as kn, invokeAgentCore as kt, runEcsServiceEmulator as l, applyDeployedEnvFallback as ln, parseContextOptions as lr, verifyJwtAuthorizer as lt, createEcsRunState as m, resolveEnvVars as mn, buildCorsConfigFromCloudFrontChain as mt, resolveAlbFrontDoor as n, EcsTaskResolutionError as nn, LocalStartServiceError as nr, buildConnectEvent as nt, parseMaxTasks as o, detectEcsImageResolutionNeeds as on, commonOptions as or, buildJwksUrlFromIssuer as ot, cleanupEcsRun as p, substituteEnvVarsFromStateAsync as pn, buildCorsConfigByApiId as pt, tryParseStatus as q, derivePseudoParametersFromRegion as qn, ensureDockerAvailable as qt, MAX_TASKS_SUBNET_RANGE_CAP as r, TASK_ROLE_ACCOUNT_PLACEHOLDER as rn, withErrorHandling as rr, buildDisconnectEvent as rt, parseRestartPolicy as s, parseEcsTarget as sn, contextOptions as sr, createJwksCache as st, isApplicationLoadBalancer as t, resolveRuntimeImage as tn, LocalInvokeBuildError as tr, parseConnectionsPath as tt, buildCloudMapIndex as u, substituteAgainstState as un, warnIfDeprecatedRegion as ur, verifyJwtViaDiscovery as ut, createWatchPredicates as v, isCfnFlagPresent as vn, A2A_CONTAINER_PORT as vt, buildStageMap as w, collectSsmParameterRefs as wn, mcpInvokeOnce as wt, createAuthorizerCache as x, resolveCfnRegion as xn, MCP_CONTAINER_PORT as xt, resolveApiTargetSubset as y, rejectExplicitCfnStackWithMultipleStacks as yn, A2A_PATH as yt, matchRoute as z, AGENTCORE_AGUI_PROTOCOL as zn, AssetManifestLoader as zt };
22577
- //# sourceMappingURL=elb-front-door-resolver-Vpf2Gpvg.js.map
22671
+ //# sourceMappingURL=elb-front-door-resolver-y5FicgLi.js.map