@aws/agentcore 1.0.0-preview.3 → 1.0.0-preview.30
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 +193 -33
- package/dist/agent-inspector/index.css +1 -1
- package/dist/agent-inspector/index.js +99 -84
- package/dist/assets/README.md +6 -2
- package/dist/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snap +3344 -366
- package/dist/assets/__tests__/__snapshots__/dockerfile-render.test.ts.snap +6 -2
- package/dist/assets/__tests__/assets.snapshot.test.ts +10 -24
- package/dist/assets/__tests__/googleadk-observability.test.ts +23 -0
- package/dist/assets/__tests__/googleadk-session-eviction.test.ts +87 -0
- package/dist/assets/__tests__/input-validation.test.ts +44 -0
- package/dist/assets/__tests__/summarization-namespace.test.ts +43 -0
- package/dist/assets/agents/AGENTS.md +91 -14
- package/dist/assets/cdk/bin/cdk.ts +109 -24
- package/dist/assets/cdk/lib/cdk-stack.ts +227 -19
- package/dist/assets/cdk/package.json +9 -9
- package/dist/assets/cdk/test/cdk.test.ts +4 -0
- package/dist/assets/container/python/Dockerfile +7 -1
- package/dist/assets/container/typescript/Dockerfile +25 -0
- package/dist/assets/container/typescript/dockerignore.template +24 -0
- package/dist/assets/datasets/predefined-v1.jsonl +3 -0
- package/dist/assets/datasets/simulated-v1.jsonl +3 -0
- package/dist/assets/evaluators/autoevals-lambda/execution-role-policy.json +15 -0
- package/dist/assets/evaluators/autoevals-lambda/lambda_function.py +37 -0
- package/dist/assets/evaluators/autoevals-lambda/pyproject.toml +22 -0
- package/dist/assets/evaluators/deepeval-lambda/execution-role-policy.json +15 -0
- package/dist/assets/evaluators/deepeval-lambda/lambda_function.py +29 -0
- package/dist/assets/evaluators/deepeval-lambda/pyproject.toml +19 -0
- package/dist/assets/mcp/python/pyproject.toml +1 -1
- package/dist/assets/python/a2a/googleadk/base/main.py +32 -18
- package/dist/assets/python/a2a/googleadk/base/pyproject.toml +6 -4
- package/dist/assets/python/a2a/langchain_langgraph/base/main.py +35 -21
- package/dist/assets/python/a2a/langchain_langgraph/base/pyproject.toml +4 -3
- package/dist/assets/python/a2a/strands/base/main.py +23 -17
- package/dist/assets/python/a2a/strands/base/pyproject.toml +3 -3
- package/dist/assets/python/a2a/strands/capabilities/memory/session.py +4 -1
- package/dist/assets/python/agui/googleadk/base/main.py +62 -2
- package/dist/assets/python/agui/googleadk/base/pyproject.toml +6 -5
- package/dist/assets/python/agui/langchain_langgraph/base/main.py +56 -0
- package/dist/assets/python/agui/langchain_langgraph/base/pyproject.toml +3 -2
- package/dist/assets/python/agui/strands/base/main.py +63 -1
- package/dist/assets/python/agui/strands/base/pyproject.toml +2 -2
- package/dist/assets/python/agui/strands/capabilities/memory/session.py +4 -1
- package/dist/assets/python/http/autogen/base/README.md +7 -1
- package/dist/assets/python/http/autogen/base/main.py +62 -29
- package/dist/assets/python/http/autogen/base/pyproject.toml +1 -1
- package/dist/assets/python/http/googleadk/base/README.md +7 -1
- package/dist/assets/python/http/googleadk/base/main.py +71 -24
- package/dist/assets/python/http/googleadk/base/mcp_client/client.py +7 -7
- package/dist/assets/python/http/googleadk/base/pyproject.toml +5 -3
- package/dist/assets/python/http/langchain_langgraph/base/README.md +7 -1
- package/dist/assets/python/http/langchain_langgraph/base/main.py +119 -24
- package/dist/assets/python/http/langchain_langgraph/base/mcp_client/client.py +10 -8
- package/dist/assets/python/http/langchain_langgraph/base/pyproject.toml +5 -4
- package/dist/assets/python/http/openaiagents/base/README.md +7 -1
- package/dist/assets/python/http/openaiagents/base/main.py +63 -32
- package/dist/assets/python/http/openaiagents/base/mcp_client/client.py +4 -4
- package/dist/assets/python/http/openaiagents/base/pyproject.toml +3 -3
- package/dist/assets/python/http/strands/base/README.md +8 -1
- package/dist/assets/python/http/strands/base/main.py +607 -47
- package/dist/assets/python/http/strands/base/mcp_client/client.py +49 -6
- package/dist/assets/python/http/strands/base/model/load.py +119 -3
- package/dist/assets/python/http/strands/base/model/mantle_compat.py +21 -0
- package/dist/assets/python/http/strands/base/pyproject.toml +11 -5
- package/dist/assets/python/http/strands/base/skills/fetcher.py +279 -0
- package/dist/assets/python/http/strands/capabilities/execution-limits/hooks/execution_limits.py +54 -0
- package/dist/assets/python/http/strands/capabilities/memory/session.py +4 -1
- package/dist/assets/python/http/strands/capabilities/payments/__init__.py +4 -0
- package/dist/assets/python/http/strands/capabilities/payments/payments.py +142 -0
- package/dist/assets/python/mcp/standalone/base/main.py +58 -0
- package/dist/assets/python/mcp/standalone/base/pyproject.toml +1 -1
- package/dist/assets/typescript/http/strands/base/README.md +42 -0
- package/dist/assets/typescript/http/strands/base/gitignore.template +22 -0
- package/dist/assets/typescript/http/strands/base/main.ts +149 -0
- package/dist/assets/typescript/http/strands/base/mcp_client/client.ts +11 -0
- package/dist/assets/typescript/http/strands/base/model/load.ts +102 -0
- package/dist/assets/typescript/http/strands/base/package.json +38 -0
- package/dist/assets/typescript/http/strands/base/tsconfig.json +19 -0
- package/dist/assets/typescript/http/strands/capabilities/memory/memory.ts +52 -0
- package/dist/assets/typescript/http/vercelai/base/README.md +42 -0
- package/dist/assets/typescript/http/vercelai/base/gitignore.template +22 -0
- package/dist/assets/typescript/http/vercelai/base/main.ts +70 -0
- package/dist/assets/typescript/http/vercelai/base/model/load.ts +121 -0
- package/dist/assets/typescript/http/vercelai/base/package.json +35 -0
- package/dist/assets/typescript/http/vercelai/base/tsconfig.json +19 -0
- package/dist/cli/index.mjs +1743 -627
- package/dist/lib/constants.d.ts +8 -4
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +13 -7
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/dependency-management/index.d.ts +5 -0
- package/dist/lib/dependency-management/index.d.ts.map +1 -0
- package/dist/lib/dependency-management/index.js +8 -0
- package/dist/lib/dependency-management/index.js.map +1 -0
- package/dist/lib/dependency-management/messages.d.ts +30 -0
- package/dist/lib/dependency-management/messages.d.ts.map +1 -0
- package/dist/lib/dependency-management/messages.js +86 -0
- package/dist/lib/dependency-management/messages.js.map +1 -0
- package/dist/lib/dependency-management/plan.d.ts +25 -0
- package/dist/lib/dependency-management/plan.d.ts.map +1 -0
- package/dist/lib/dependency-management/plan.js +67 -0
- package/dist/lib/dependency-management/plan.js.map +1 -0
- package/dist/lib/dependency-management/semver.d.ts +21 -0
- package/dist/lib/dependency-management/semver.d.ts.map +1 -0
- package/dist/lib/dependency-management/semver.js +51 -0
- package/dist/lib/dependency-management/semver.js.map +1 -0
- package/dist/lib/dependency-management/sync.d.ts +26 -0
- package/dist/lib/dependency-management/sync.d.ts.map +1 -0
- package/dist/lib/dependency-management/sync.js +141 -0
- package/dist/lib/dependency-management/sync.js.map +1 -0
- package/dist/lib/dependency-management/types.d.ts +85 -0
- package/dist/lib/dependency-management/types.d.ts.map +1 -0
- package/dist/lib/dependency-management/types.js +3 -0
- package/dist/lib/dependency-management/types.js.map +1 -0
- package/dist/lib/errors/index.d.ts +1 -1
- package/dist/lib/errors/index.d.ts.map +1 -1
- package/dist/lib/errors/index.js +1 -1
- package/dist/lib/errors/index.js.map +1 -1
- package/dist/lib/errors/types.d.ts +274 -0
- package/dist/lib/errors/types.d.ts.map +1 -0
- package/dist/lib/errors/types.js +423 -0
- package/dist/lib/errors/types.js.map +1 -0
- package/dist/lib/errors/zod.d.ts +8 -0
- package/dist/lib/errors/zod.d.ts.map +1 -0
- package/dist/lib/errors/{config.js → zod.js} +8 -81
- package/dist/lib/errors/zod.js.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +4 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/packaging/build-args.d.ts +6 -0
- package/dist/lib/packaging/build-args.d.ts.map +1 -1
- package/dist/lib/packaging/build-args.js +11 -2
- package/dist/lib/packaging/build-args.js.map +1 -1
- package/dist/lib/packaging/build-context-dockerignore.d.ts +23 -0
- package/dist/lib/packaging/build-context-dockerignore.d.ts.map +1 -0
- package/dist/lib/packaging/build-context-dockerignore.js +63 -0
- package/dist/lib/packaging/build-context-dockerignore.js.map +1 -0
- package/dist/lib/packaging/build-context.d.ts +21 -0
- package/dist/lib/packaging/build-context.d.ts.map +1 -0
- package/dist/lib/packaging/build-context.js +21 -0
- package/dist/lib/packaging/build-context.js.map +1 -0
- package/dist/lib/packaging/container.d.ts.map +1 -1
- package/dist/lib/packaging/container.js +20 -9
- package/dist/lib/packaging/container.js.map +1 -1
- package/dist/lib/packaging/helpers.d.ts +16 -0
- package/dist/lib/packaging/helpers.d.ts.map +1 -1
- package/dist/lib/packaging/helpers.js +127 -29
- package/dist/lib/packaging/helpers.js.map +1 -1
- package/dist/lib/packaging/index.d.ts +2 -1
- package/dist/lib/packaging/index.d.ts.map +1 -1
- package/dist/lib/packaging/index.js +9 -20
- package/dist/lib/packaging/index.js.map +1 -1
- package/dist/lib/packaging/node.d.ts +2 -2
- package/dist/lib/packaging/node.d.ts.map +1 -1
- package/dist/lib/packaging/node.js +83 -38
- package/dist/lib/packaging/node.js.map +1 -1
- package/dist/lib/packaging/python.js +12 -12
- package/dist/lib/packaging/python.js.map +1 -1
- package/dist/lib/result.d.ts +57 -0
- package/dist/lib/result.d.ts.map +1 -0
- package/dist/lib/result.js +62 -0
- package/dist/lib/result.js.map +1 -0
- package/dist/lib/schemas/io/config-io.d.ts +14 -0
- package/dist/lib/schemas/io/config-io.d.ts.map +1 -1
- package/dist/lib/schemas/io/config-io.js +89 -5
- package/dist/lib/schemas/io/config-io.js.map +1 -1
- package/dist/lib/schemas/io/global-config.d.ts +41 -0
- package/dist/lib/schemas/io/global-config.d.ts.map +1 -0
- package/dist/lib/schemas/io/global-config.js +119 -0
- package/dist/lib/schemas/io/global-config.js.map +1 -0
- package/dist/lib/schemas/io/index.d.ts +1 -2
- package/dist/lib/schemas/io/index.d.ts.map +1 -1
- package/dist/lib/schemas/io/index.js +1 -4
- package/dist/lib/schemas/io/index.js.map +1 -1
- package/dist/lib/schemas/io/path-resolver.d.ts +0 -6
- package/dist/lib/schemas/io/path-resolver.d.ts.map +1 -1
- package/dist/lib/schemas/io/path-resolver.js +3 -13
- package/dist/lib/schemas/io/path-resolver.js.map +1 -1
- package/dist/lib/secrets/cipher.d.ts +12 -0
- package/dist/lib/secrets/cipher.d.ts.map +1 -0
- package/dist/lib/secrets/cipher.js +54 -0
- package/dist/lib/secrets/cipher.js.map +1 -0
- package/dist/lib/secrets/index.d.ts +4 -0
- package/dist/lib/secrets/index.d.ts.map +1 -0
- package/dist/lib/secrets/index.js +15 -0
- package/dist/lib/secrets/index.js.map +1 -0
- package/dist/lib/secrets/key-provider.d.ts +16 -0
- package/dist/lib/secrets/key-provider.d.ts.map +1 -0
- package/dist/lib/secrets/key-provider.js +191 -0
- package/dist/lib/secrets/key-provider.js.map +1 -0
- package/dist/lib/secrets/sensitive-keys.d.ts +21 -0
- package/dist/lib/secrets/sensitive-keys.d.ts.map +1 -0
- package/dist/lib/secrets/sensitive-keys.js +67 -0
- package/dist/lib/secrets/sensitive-keys.js.map +1 -0
- package/dist/lib/time-constants.d.ts +5 -0
- package/dist/lib/time-constants.d.ts.map +1 -0
- package/dist/lib/time-constants.js +8 -0
- package/dist/lib/time-constants.js.map +1 -0
- package/dist/lib/utils/env.d.ts +8 -2
- package/dist/lib/utils/env.d.ts.map +1 -1
- package/dist/lib/utils/env.js +65 -17
- package/dist/lib/utils/env.js.map +1 -1
- package/dist/lib/utils/index.d.ts +3 -2
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +6 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/polling.d.ts +31 -0
- package/dist/lib/utils/polling.d.ts.map +1 -0
- package/dist/lib/utils/polling.js +61 -0
- package/dist/lib/utils/polling.js.map +1 -0
- package/dist/lib/utils/subprocess.d.ts +4 -1
- package/dist/lib/utils/subprocess.d.ts.map +1 -1
- package/dist/lib/utils/subprocess.js +11 -57
- package/dist/lib/utils/subprocess.js.map +1 -1
- package/dist/lib/utils/zod.d.ts +16 -0
- package/dist/lib/utils/zod.d.ts.map +1 -1
- package/dist/lib/utils/zod.js +45 -0
- package/dist/lib/utils/zod.js.map +1 -1
- package/dist/schema/constants.d.ts +56 -2
- package/dist/schema/constants.d.ts.map +1 -1
- package/dist/schema/constants.js +82 -7
- package/dist/schema/constants.js.map +1 -1
- package/dist/schema/schemas/agent-env.d.ts +187 -7
- package/dist/schema/schemas/agent-env.d.ts.map +1 -1
- package/dist/schema/schemas/agent-env.js +323 -27
- package/dist/schema/schemas/agent-env.js.map +1 -1
- package/dist/schema/schemas/agentcore-project.d.ts +519 -12
- package/dist/schema/schemas/agentcore-project.d.ts.map +1 -1
- package/dist/schema/schemas/agentcore-project.js +342 -13
- package/dist/schema/schemas/agentcore-project.js.map +1 -1
- package/dist/schema/schemas/auth.d.ts +174 -0
- package/dist/schema/schemas/auth.d.ts.map +1 -1
- package/dist/schema/schemas/auth.js +127 -3
- package/dist/schema/schemas/auth.js.map +1 -1
- package/dist/schema/schemas/aws-targets.d.ts +18 -0
- package/dist/schema/schemas/aws-targets.d.ts.map +1 -1
- package/dist/schema/schemas/aws-targets.js +6 -0
- package/dist/schema/schemas/aws-targets.js.map +1 -1
- package/dist/schema/schemas/connections.d.ts +185 -0
- package/dist/schema/schemas/connections.d.ts.map +1 -0
- package/dist/schema/schemas/connections.js +176 -0
- package/dist/schema/schemas/connections.js.map +1 -0
- package/dist/schema/schemas/deployed-state.d.ts +392 -5
- package/dist/schema/schemas/deployed-state.d.ts.map +1 -1
- package/dist/schema/schemas/deployed-state.js +112 -2
- package/dist/schema/schemas/deployed-state.js.map +1 -1
- package/dist/schema/schemas/index.d.ts +3 -0
- package/dist/schema/schemas/index.d.ts.map +1 -1
- package/dist/schema/schemas/index.js +5 -0
- package/dist/schema/schemas/index.js.map +1 -1
- package/dist/schema/schemas/mcp-defs.d.ts +2 -1
- package/dist/schema/schemas/mcp-defs.d.ts.map +1 -1
- package/dist/schema/schemas/mcp-defs.js +3 -2
- package/dist/schema/schemas/mcp-defs.js.map +1 -1
- package/dist/schema/schemas/mcp.d.ts +197 -0
- package/dist/schema/schemas/mcp.d.ts.map +1 -1
- package/dist/schema/schemas/mcp.js +334 -5
- package/dist/schema/schemas/mcp.js.map +1 -1
- package/dist/schema/schemas/primitives/ab-test.d.ts +135 -0
- package/dist/schema/schemas/primitives/ab-test.d.ts.map +1 -0
- package/dist/schema/schemas/primitives/ab-test.js +95 -0
- package/dist/schema/schemas/primitives/ab-test.js.map +1 -0
- package/dist/schema/schemas/primitives/capacity-provider.d.ts +237 -0
- package/dist/schema/schemas/primitives/capacity-provider.d.ts.map +1 -0
- package/dist/schema/schemas/primitives/capacity-provider.js +220 -0
- package/dist/schema/schemas/primitives/capacity-provider.js.map +1 -0
- package/dist/schema/schemas/primitives/config-bundle.d.ts +32 -0
- package/dist/schema/schemas/primitives/config-bundle.d.ts.map +1 -0
- package/dist/schema/schemas/primitives/config-bundle.js +41 -0
- package/dist/schema/schemas/primitives/config-bundle.js.map +1 -0
- package/dist/schema/schemas/primitives/dataset.d.ts +48 -0
- package/dist/schema/schemas/primitives/dataset.d.ts.map +1 -0
- package/dist/schema/schemas/primitives/dataset.js +58 -0
- package/dist/schema/schemas/primitives/dataset.js.map +1 -0
- package/dist/schema/schemas/primitives/evaluator.d.ts +22 -0
- package/dist/schema/schemas/primitives/evaluator.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/evaluator.js +28 -3
- package/dist/schema/schemas/primitives/evaluator.js.map +1 -1
- package/dist/schema/schemas/primitives/harness.d.ts +377 -19
- package/dist/schema/schemas/primitives/harness.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/harness.js +379 -24
- package/dist/schema/schemas/primitives/harness.js.map +1 -1
- package/dist/schema/schemas/primitives/index.d.ts +17 -9
- package/dist/schema/schemas/primitives/index.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/index.js +62 -1
- package/dist/schema/schemas/primitives/index.js.map +1 -1
- package/dist/schema/schemas/primitives/knowledge-base.d.ts +104 -0
- package/dist/schema/schemas/primitives/knowledge-base.d.ts.map +1 -0
- package/dist/schema/schemas/primitives/knowledge-base.js +99 -0
- package/dist/schema/schemas/primitives/knowledge-base.js.map +1 -0
- package/dist/schema/schemas/primitives/memory.d.ts +22 -4
- package/dist/schema/schemas/primitives/memory.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/memory.js +57 -16
- package/dist/schema/schemas/primitives/memory.js.map +1 -1
- package/dist/schema/schemas/primitives/online-eval-config.d.ts +21 -2
- package/dist/schema/schemas/primitives/online-eval-config.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/online-eval-config.js +45 -5
- package/dist/schema/schemas/primitives/online-eval-config.js.map +1 -1
- package/dist/schema/schemas/primitives/payment.d.ts +86 -0
- package/dist/schema/schemas/primitives/payment.d.ts.map +1 -0
- package/dist/schema/schemas/primitives/payment.js +88 -0
- package/dist/schema/schemas/primitives/payment.js.map +1 -0
- package/dist/schema/schemas/primitives/policy.d.ts +26 -0
- package/dist/schema/schemas/primitives/policy.d.ts.map +1 -1
- package/dist/schema/schemas/primitives/policy.js +5 -1
- package/dist/schema/schemas/primitives/policy.js.map +1 -1
- package/npm-shrinkwrap.json +16874 -0
- package/package.json +49 -21
- package/scripts/bump-version.ts +4 -4
- package/scripts/bundle.mjs +70 -41
- package/scripts/extract-cli-model.mjs +269 -0
- package/scripts/extract-cli-model.test.mjs +43 -0
- package/scripts/render_adoc.py +350 -0
- package/scripts/run-e2e-dev.sh +56 -0
- package/scripts/run-e2e-local.sh +145 -0
- package/scripts/safe-junit-reporter.ts +7 -0
- package/scripts/sanitize-test-artifacts.ts +65 -0
- package/scripts/sync-vended-cdk.ts +49 -0
- package/scripts/test_render_adoc.py +38 -0
- package/dist/lib/errors/config.d.ts +0 -49
- package/dist/lib/errors/config.d.ts.map +0 -1
- package/dist/lib/errors/config.js.map +0 -1
- package/dist/lib/packaging/errors.d.ts +0 -16
- package/dist/lib/packaging/errors.d.ts.map +0 -1
- package/dist/lib/packaging/errors.js +0 -36
- package/dist/lib/packaging/errors.js.map +0 -1
- package/dist/lib/schemas/io/cli-config.d.ts +0 -12
- package/dist/lib/schemas/io/cli-config.d.ts.map +0 -1
- package/dist/lib/schemas/io/cli-config.js +0 -35
- package/dist/lib/schemas/io/cli-config.js.map +0 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AgentEnvSpecSchema = exports.RuntimeEndpointSchema = exports.RuntimeEndpointNameSchema = exports.LifecycleConfigurationSchema = exports.LIFECYCLE_TIMEOUT_MAX = exports.LIFECYCLE_TIMEOUT_MIN = exports.FilesystemConfigurationSchema = exports.SessionStorageSchema = exports.RequestHeaderAllowlistSchema = exports.MAX_HEADER_ALLOWLIST_SIZE = exports.HEADER_ALLOWLIST_PREFIX = exports.NetworkConfigSchema = exports.InstrumentationSchema = exports.EnvVarSchema = exports.EntrypointSchema = exports.BuildTypeSchema = exports.AgentTypeSchema = exports.AccessSchema = exports.GatewayNameSchema = exports.EnvVarNameSchema = exports.AgentNameSchema = void 0;
|
|
3
|
+
exports.AgentEnvSpecSchema = exports.RuntimeEndpointSchema = exports.RuntimeEndpointNameSchema = exports.LifecycleConfigurationSchema = exports.LIFECYCLE_TIMEOUT_MAX = exports.LIFECYCLE_TIMEOUT_MIN = exports.FilesystemConfigurationSchema = exports.MAX_S3_MOUNTS = exports.MAX_EFS_MOUNTS = exports.CapacityProviderVolumeConfigSchema = exports.S3FilesAccessPointConfigSchema = exports.EfsAccessPointConfigSchema = exports.S3_FILES_ACCESS_POINT_ARN_PATTERN = exports.EFS_ACCESS_POINT_ARN_PATTERN = exports.SessionStorageSchema = exports.RequestHeaderAllowlistSchema = exports.MAX_HEADER_ALLOWLIST_SIZE = exports.HEADER_NAME_PATTERN = exports.HEADER_ALLOWLIST_PREFIX = exports.NetworkConfigSchema = exports.InstrumentationSchema = exports.EnvVarSchema = exports.RESERVED_BUILD_ARG_KEYS = exports.EntrypointSchema = exports.BuildTypeSchema = exports.AgentTypeSchema = exports.AccessSchema = exports.GatewayNameSchema = exports.EnvVarNameSchema = exports.AgentNameSchema = void 0;
|
|
4
|
+
exports.isValidDockerfilePath = isValidDockerfilePath;
|
|
5
|
+
exports.isReservedBuildArgKey = isReservedBuildArgKey;
|
|
6
|
+
exports.checkAllowlistHeader = checkAllowlistHeader;
|
|
4
7
|
/**
|
|
5
8
|
* Agent Schema v2 - Clean, simplified model
|
|
6
9
|
*
|
|
@@ -8,6 +11,8 @@ exports.AgentEnvSpecSchema = exports.RuntimeEndpointSchema = exports.RuntimeEndp
|
|
|
8
11
|
*/
|
|
9
12
|
const constants_1 = require("../constants");
|
|
10
13
|
const auth_1 = require("./auth");
|
|
14
|
+
const connections_1 = require("./connections");
|
|
15
|
+
const capacity_provider_1 = require("./primitives/capacity-provider");
|
|
11
16
|
const tags_1 = require("./primitives/tags");
|
|
12
17
|
const zod_1 = require("zod");
|
|
13
18
|
// ============================================================================
|
|
@@ -56,6 +61,78 @@ exports.EntrypointSchema = zod_1.z
|
|
|
56
61
|
// eslint-disable-next-line security/detect-unsafe-regex -- character class quantifiers don't cause backtracking
|
|
57
62
|
/^[a-zA-Z0-9_][a-zA-Z0-9_/.-]*\.(py|ts|js)(:[a-zA-Z_][a-zA-Z0-9_]*)?$/, 'Must be a Python (.py) or TypeScript (.ts/.js) file path with optional handler (e.g., "main.py:handler" or "index.ts")');
|
|
58
63
|
const DirectoryPathSchema = zod_1.z.string().min(1);
|
|
64
|
+
// Char-safe set only (no backslash, spaces, or shell metacharacters): on deploy the buildspec
|
|
65
|
+
// interpolates this unquoted as `docker build -f $DOCKERFILE_PATH`. A leading '.' is allowed so
|
|
66
|
+
// conventional paths like '.docker/Dockerfile' pass.
|
|
67
|
+
const DOCKERFILE_PATH_ALLOWED_CHARS = /^[A-Za-z0-9._/-]+$/;
|
|
68
|
+
/**
|
|
69
|
+
* True when `p` is a safe relative Dockerfile path within the build context: allowed chars only, no
|
|
70
|
+
* leading slash (absolute), and no empty ('' from a leading/trailing/double slash) or '..' segments.
|
|
71
|
+
*
|
|
72
|
+
* The single source of truth shared by `DockerfilePathSchema` (config-validation time) and the runtime
|
|
73
|
+
* `getDockerfilePath` guard, so the two can never diverge — e.g. one accepting '.docker/Dockerfile'
|
|
74
|
+
* while the other rejects it, or one accepting a trailing-slash directory value like 'docker/'.
|
|
75
|
+
*/
|
|
76
|
+
function isValidDockerfilePath(p) {
|
|
77
|
+
if (!DOCKERFILE_PATH_ALLOWED_CHARS.test(p))
|
|
78
|
+
return false;
|
|
79
|
+
if (p.startsWith('/'))
|
|
80
|
+
return false;
|
|
81
|
+
return !p.split('/').some(segment => segment === '' || segment === '..');
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Dockerfile location for Container builds, resolved relative to the Docker build context
|
|
85
|
+
* (`buildContextPath` when set, otherwise `codeLocation`). Accepts a filename ('Dockerfile',
|
|
86
|
+
* 'Dockerfile.gpu') or a forward-slash relative subpath ('docker/Dockerfile'). Absolute paths,
|
|
87
|
+
* trailing/double slashes, and '..' traversal are rejected so the Dockerfile can never escape or
|
|
88
|
+
* name the build context directory itself.
|
|
89
|
+
*/
|
|
90
|
+
const DockerfilePathSchema = zod_1.z
|
|
91
|
+
.string()
|
|
92
|
+
.min(1)
|
|
93
|
+
.max(255)
|
|
94
|
+
.refine(isValidDockerfilePath, 'Must be a relative path within the build context: a filename or forward-slash subpath using only letters, digits, dot, dash, underscore, and slash; no leading slash, no ".." traversal, and no empty segments (no trailing or double slash)');
|
|
95
|
+
/**
|
|
96
|
+
* Build-arg names reserved by the CodeBuild build environment. On deploy each build arg becomes a
|
|
97
|
+
* CodeBuild environment-variable override alongside the buildspec's own control vars, so a colliding
|
|
98
|
+
* name would break the deploy build — a wrong image tag / ECR region, a rejected StartBuild, or a
|
|
99
|
+
* clobbered build-container shell. We reject the buildspec control vars, the process-critical shell
|
|
100
|
+
* vars, and CodeBuild's own `AWS_*` / `CODEBUILD_*` namespaces. This is a best-effort denylist (the
|
|
101
|
+
* shell has other sensitive vars), but it covers the realistic footguns and keeps a config that
|
|
102
|
+
* builds locally from failing only on deploy.
|
|
103
|
+
*/
|
|
104
|
+
exports.RESERVED_BUILD_ARG_KEYS = [
|
|
105
|
+
// Buildspec control vars (mirrored in @aws/agentcore-cdk's ContainerBuildProject / build handler).
|
|
106
|
+
'ECR_REGISTRY',
|
|
107
|
+
'IMAGE_URI',
|
|
108
|
+
'DOCKERFILE_PATH',
|
|
109
|
+
'BUILD_ARG_FLAGS',
|
|
110
|
+
// Overriding these in the build shell would break the buildspec's own commands (command lookup,
|
|
111
|
+
// word-splitting, dynamic linking) or redirect the docker client off the build daemon. Kept
|
|
112
|
+
// deliberately narrow to the genuinely-dangerous names so common ARGs (e.g. USER, LANG) stay usable.
|
|
113
|
+
'PATH',
|
|
114
|
+
'HOME',
|
|
115
|
+
'IFS',
|
|
116
|
+
'LD_PRELOAD',
|
|
117
|
+
'LD_LIBRARY_PATH',
|
|
118
|
+
'DOCKER_HOST',
|
|
119
|
+
'DOCKER_CONFIG',
|
|
120
|
+
'DOCKER_TLS_VERIFY',
|
|
121
|
+
'DOCKER_CERT_PATH',
|
|
122
|
+
];
|
|
123
|
+
function isReservedBuildArgKey(key) {
|
|
124
|
+
return exports.RESERVED_BUILD_ARG_KEYS.includes(key) || key.startsWith('CODEBUILD_') || key.startsWith('AWS_');
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Build-arg value. Bounded and control-char-free because on deploy each value becomes a CodeBuild
|
|
128
|
+
* `environmentVariablesOverride` PLAINTEXT entry; newlines/control chars or an over-long value can be
|
|
129
|
+
* rejected by StartBuild, so we reject them at schema time rather than let a local-only-valid config
|
|
130
|
+
* fail on deploy.
|
|
131
|
+
*/
|
|
132
|
+
const BuildArgValueSchema = zod_1.z
|
|
133
|
+
.string()
|
|
134
|
+
.max(4096, 'Build arg values must be at most 4096 characters')
|
|
135
|
+
.refine(v => ![...v].some(ch => ch.charCodeAt(0) < 0x20 || ch.charCodeAt(0) === 0x7f), 'Build arg values must not contain control characters (including newlines)');
|
|
59
136
|
exports.EnvVarSchema = zod_1.z.object({
|
|
60
137
|
name: exports.EnvVarNameSchema,
|
|
61
138
|
value: zod_1.z.string(),
|
|
@@ -76,26 +153,54 @@ exports.InstrumentationSchema = zod_1.z.object({
|
|
|
76
153
|
* Required when networkMode is 'VPC'.
|
|
77
154
|
*/
|
|
78
155
|
exports.NetworkConfigSchema = zod_1.z.object({
|
|
79
|
-
subnets: zod_1.z
|
|
80
|
-
.array(zod_1.z.string().regex(/^subnet-[0-9a-zA-Z]{8,17}$/))
|
|
81
|
-
.min(1)
|
|
82
|
-
.max(16),
|
|
156
|
+
subnets: zod_1.z.array(zod_1.z.string().regex(constants_1.SUBNET_ID_PATTERN, 'Must be a subnet id (subnet-...)')).min(1).max(16),
|
|
83
157
|
securityGroups: zod_1.z
|
|
84
|
-
.array(zod_1.z.string().regex(
|
|
158
|
+
.array(zod_1.z.string().regex(constants_1.SECURITY_GROUP_ID_PATTERN, 'Must be a security group id (sg-...)'))
|
|
85
159
|
.min(1)
|
|
86
160
|
.max(16),
|
|
161
|
+
/**
|
|
162
|
+
* VPC ID. Required for Container builds in VPC mode because CodeBuild needs an explicit VPC ID;
|
|
163
|
+
* it cannot infer the VPC from subnets alone. Runtime/Lambda builds can omit this.
|
|
164
|
+
*/
|
|
165
|
+
vpcId: zod_1.z.string().regex(constants_1.VPC_ID_PATTERN, 'Must be a VPC id (vpc-...)').optional(),
|
|
87
166
|
});
|
|
88
167
|
/**
|
|
89
168
|
* Allowed request headers for the runtime.
|
|
90
|
-
*
|
|
169
|
+
* Per https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-header-allowlist.html
|
|
170
|
+
* any valid HTTP header name (alphanumeric, hyphens, underscores) may be allow-listed,
|
|
171
|
+
* provided it is not structurally reserved (x-amz-*, x-amzn-* except Runtime-Custom-*).
|
|
91
172
|
* Maximum 20 headers.
|
|
92
173
|
*/
|
|
93
174
|
exports.HEADER_ALLOWLIST_PREFIX = 'X-Amzn-Bedrock-AgentCore-Runtime-Custom-';
|
|
175
|
+
exports.HEADER_NAME_PATTERN = /^[A-Za-z0-9\-_]+$/;
|
|
94
176
|
exports.MAX_HEADER_ALLOWLIST_SIZE = 20;
|
|
177
|
+
/**
|
|
178
|
+
* Validate a single allowlist header name. Returns null if valid, or a specific
|
|
179
|
+
* error message describing which rule the input violated.
|
|
180
|
+
*
|
|
181
|
+
* Note: 'x-amz-' and 'x-amzn-' are disjoint prefixes (position 5 differs: '-' vs 'n'),
|
|
182
|
+
* so the two checks below are independent.
|
|
183
|
+
*/
|
|
184
|
+
function checkAllowlistHeader(val) {
|
|
185
|
+
if (!exports.HEADER_NAME_PATTERN.test(val)) {
|
|
186
|
+
return `Header name "${val}" must contain only alphanumeric characters, hyphens, and underscores.`;
|
|
187
|
+
}
|
|
188
|
+
const lower = val.toLowerCase();
|
|
189
|
+
if (lower.startsWith('x-amz-')) {
|
|
190
|
+
return `Header "${val}" is not allowed. Headers starting with "x-amz-" are reserved for AWS request signing.`;
|
|
191
|
+
}
|
|
192
|
+
if (lower.startsWith('x-amzn-') && !lower.startsWith('x-amzn-bedrock-agentcore-runtime-custom-')) {
|
|
193
|
+
return `Header "${val}" is not allowed. Headers starting with "x-amzn-" are reserved, except for "X-Amzn-Bedrock-AgentCore-Runtime-Custom-*".`;
|
|
194
|
+
}
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
95
197
|
exports.RequestHeaderAllowlistSchema = zod_1.z
|
|
96
|
-
.array(zod_1.z
|
|
97
|
-
|
|
98
|
-
|
|
198
|
+
.array(zod_1.z.string().superRefine((val, ctx) => {
|
|
199
|
+
const error = checkAllowlistHeader(val);
|
|
200
|
+
if (error) {
|
|
201
|
+
ctx.addIssue({ code: zod_1.z.ZodIssueCode.custom, message: error });
|
|
202
|
+
}
|
|
203
|
+
}))
|
|
99
204
|
.max(exports.MAX_HEADER_ALLOWLIST_SIZE, `Maximum ${exports.MAX_HEADER_ALLOWLIST_SIZE} headers allowed`);
|
|
100
205
|
/**
|
|
101
206
|
* Session storage configuration for filesystem persistence.
|
|
@@ -105,11 +210,68 @@ exports.SessionStorageSchema = zod_1.z.object({
|
|
|
105
210
|
/** Absolute mount path under /mnt with exactly one subdirectory level (e.g. /mnt/data). */
|
|
106
211
|
mountPath: zod_1.z
|
|
107
212
|
.string()
|
|
108
|
-
.
|
|
213
|
+
.min(6)
|
|
214
|
+
.max(200)
|
|
215
|
+
.regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/data)'),
|
|
109
216
|
});
|
|
110
|
-
exports.
|
|
111
|
-
|
|
217
|
+
exports.EFS_ACCESS_POINT_ARN_PATTERN = /^arn:aws[-a-z]*:elasticfilesystem:[a-z][a-z0-9-]*:[0-9]{12}:access-point\/fsap-[0-9a-f]{8,40}$/;
|
|
218
|
+
exports.S3_FILES_ACCESS_POINT_ARN_PATTERN = /^arn:aws[-a-z]*:s3files:[a-z][a-z0-9-]*:[0-9]{12}:file-system\/fs-[0-9a-f]{17,40}\/access-point\/fsap-[0-9a-f]{17,40}$/;
|
|
219
|
+
/** EFS access point mount configuration. Requires VPC network mode. */
|
|
220
|
+
exports.EfsAccessPointConfigSchema = zod_1.z.object({
|
|
221
|
+
/** ARN of an EFS access point. */
|
|
222
|
+
accessPointArn: zod_1.z
|
|
223
|
+
.string()
|
|
224
|
+
.regex(exports.EFS_ACCESS_POINT_ARN_PATTERN, 'Must be an EFS access point ARN (arn:aws[-a-z]*:elasticfilesystem:{region}:{account}:access-point/fsap-{id})'),
|
|
225
|
+
/** Absolute mount path under /mnt (e.g. /mnt/tools). */
|
|
226
|
+
mountPath: zod_1.z
|
|
227
|
+
.string()
|
|
228
|
+
.min(6)
|
|
229
|
+
.max(200)
|
|
230
|
+
.regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/tools)'),
|
|
231
|
+
});
|
|
232
|
+
/** S3 Files access point mount configuration. Requires VPC network mode. */
|
|
233
|
+
exports.S3FilesAccessPointConfigSchema = zod_1.z.object({
|
|
234
|
+
/** ARN of an S3 Files access point. */
|
|
235
|
+
accessPointArn: zod_1.z
|
|
236
|
+
.string()
|
|
237
|
+
.regex(exports.S3_FILES_ACCESS_POINT_ARN_PATTERN, 'Must be an S3 Files access point ARN (arn:aws[-a-z]*:s3files:{region}:{account}:file-system/fs-{id}/access-point/fsap-{id})'),
|
|
238
|
+
/** Absolute mount path under /mnt (e.g. /mnt/datasets). */
|
|
239
|
+
mountPath: zod_1.z
|
|
240
|
+
.string()
|
|
241
|
+
.min(6)
|
|
242
|
+
.max(200)
|
|
243
|
+
.regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/datasets)'),
|
|
244
|
+
});
|
|
245
|
+
/** Capacity provider volume mount — references a named volume on the attached CP. */
|
|
246
|
+
exports.CapacityProviderVolumeConfigSchema = zod_1.z.object({
|
|
247
|
+
/** Logical name of a volume defined on the attached capacity provider (CP's volumes[]). */
|
|
248
|
+
volumeName: capacity_provider_1.CapacityProviderVolumeNameSchema,
|
|
249
|
+
/** Absolute mount path under /mnt (e.g. /mnt/models). */
|
|
250
|
+
mountPath: zod_1.z
|
|
251
|
+
.string()
|
|
252
|
+
.min(6)
|
|
253
|
+
.max(200)
|
|
254
|
+
.regex(/^\/mnt\/[a-zA-Z0-9._-]+\/?$/, 'Must be a path under /mnt with exactly one subdirectory (e.g. /mnt/models)'),
|
|
112
255
|
});
|
|
256
|
+
/** Maximum number of EFS access point mounts per runtime. */
|
|
257
|
+
exports.MAX_EFS_MOUNTS = 2;
|
|
258
|
+
/** Maximum number of S3 Files access point mounts per runtime. */
|
|
259
|
+
exports.MAX_S3_MOUNTS = 2;
|
|
260
|
+
/**
|
|
261
|
+
* Filesystem configuration — union of four mount types.
|
|
262
|
+
* Exactly one key must be present per entry.
|
|
263
|
+
*
|
|
264
|
+
* Service limits per runtime: max 5 total, max 1 sessionStorage,
|
|
265
|
+
* max MAX_EFS_MOUNTS efsAccessPoint, max MAX_S3_MOUNTS s3FilesAccessPoint.
|
|
266
|
+
* efsAccessPoint and s3FilesAccessPoint require networkMode: VPC.
|
|
267
|
+
* capacityProviderVolume requires the runtime to be attached to a capacity provider.
|
|
268
|
+
*/
|
|
269
|
+
exports.FilesystemConfigurationSchema = zod_1.z.union([
|
|
270
|
+
zod_1.z.strictObject({ sessionStorage: exports.SessionStorageSchema }),
|
|
271
|
+
zod_1.z.strictObject({ efsAccessPoint: exports.EfsAccessPointConfigSchema }),
|
|
272
|
+
zod_1.z.strictObject({ s3FilesAccessPoint: exports.S3FilesAccessPointConfigSchema }),
|
|
273
|
+
zod_1.z.strictObject({ capacityProviderVolume: exports.CapacityProviderVolumeConfigSchema }),
|
|
274
|
+
]);
|
|
113
275
|
/** Minimum allowed value for lifecycle timeout fields (seconds). */
|
|
114
276
|
exports.LIFECYCLE_TIMEOUT_MIN = 60;
|
|
115
277
|
/** Maximum allowed value for lifecycle timeout fields (seconds). */
|
|
@@ -165,13 +327,29 @@ exports.AgentEnvSpecSchema = zod_1.z
|
|
|
165
327
|
build: exports.BuildTypeSchema,
|
|
166
328
|
entrypoint: exports.EntrypointSchema,
|
|
167
329
|
codeLocation: DirectoryPathSchema,
|
|
168
|
-
/**
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
330
|
+
/**
|
|
331
|
+
* Dockerfile for Container builds, resolved relative to the build context (`buildContextPath`
|
|
332
|
+
* when set, otherwise `codeLocation`). A filename or a relative subpath; no traversal. Default: 'Dockerfile'.
|
|
333
|
+
*/
|
|
334
|
+
dockerfile: DockerfilePathSchema.optional(),
|
|
335
|
+
/**
|
|
336
|
+
* Docker build context directory for Container builds. When set, this directory (instead of
|
|
337
|
+
* `codeLocation`) is used as the `docker build` context and as the root the Dockerfile path is
|
|
338
|
+
* resolved against, so a single Dockerfile can be shared across multiple agents in a monorepo
|
|
339
|
+
* (e.g. so it can COPY files that live outside `codeLocation`). Container builds only.
|
|
340
|
+
*
|
|
341
|
+
* Like `codeLocation`, this is intentionally not containment-checked: the config author may point
|
|
342
|
+
* it at any directory (including a parent via `..` for a monorepo root). The unconditional
|
|
343
|
+
* secret-exclusion baseline on the deploy upload still applies to whatever directory is chosen.
|
|
344
|
+
*/
|
|
345
|
+
buildContextPath: DirectoryPathSchema.optional(),
|
|
346
|
+
/**
|
|
347
|
+
* Custom build arguments passed to `docker build` as `--build-arg` flags. Keys must be valid
|
|
348
|
+
* environment-variable names (each arg is forwarded to the build as an env var), reusing
|
|
349
|
+
* `EnvVarNameSchema`. Useful for parameterising a shared Dockerfile per agent
|
|
350
|
+
* (e.g. `{ "AGENT_NAME": "myagent" }`). Container builds only.
|
|
351
|
+
*/
|
|
352
|
+
customDockerBuildArgs: zod_1.z.record(exports.EnvVarNameSchema, BuildArgValueSchema).optional(),
|
|
175
353
|
runtimeVersion: constants_1.RuntimeVersionSchema.optional(),
|
|
176
354
|
/** Environment variables to set on the runtime */
|
|
177
355
|
envVars: zod_1.z.array(exports.EnvVarSchema).optional(),
|
|
@@ -187,6 +365,13 @@ exports.AgentEnvSpecSchema = zod_1.z
|
|
|
187
365
|
requestHeaderAllowlist: exports.RequestHeaderAllowlistSchema.optional(),
|
|
188
366
|
/** ARN of an existing IAM execution role to use instead of creating a new one. */
|
|
189
367
|
executionRoleArn: zod_1.z.string().optional(),
|
|
368
|
+
/**
|
|
369
|
+
* Additional IAM policies attached to the runtime execution role. Each entry is either a
|
|
370
|
+
* managed-policy ARN (attached directly) or a `.json` policy-document file path relative to
|
|
371
|
+
* `codeLocation` (attached as an inline policy). For opaque AWS access (e.g. S3) the CLI does
|
|
372
|
+
* not model as a typed connection.
|
|
373
|
+
*/
|
|
374
|
+
additionalPolicies: zod_1.z.array(zod_1.z.string().min(1)).optional(),
|
|
190
375
|
/** Authorizer type for inbound requests. Defaults to AWS_IAM. */
|
|
191
376
|
authorizerType: auth_1.RuntimeAuthorizerTypeSchema.optional(),
|
|
192
377
|
/** Authorizer configuration. Required when authorizerType is CUSTOM_JWT. */
|
|
@@ -198,6 +383,13 @@ exports.AgentEnvSpecSchema = zod_1.z
|
|
|
198
383
|
filesystemConfigurations: zod_1.z.array(exports.FilesystemConfigurationSchema).optional(),
|
|
199
384
|
/** Named endpoints (version aliases) for this runtime. Keys are endpoint names. */
|
|
200
385
|
endpoints: zod_1.z.record(exports.RuntimeEndpointNameSchema, exports.RuntimeEndpointSchema).optional(),
|
|
386
|
+
/** Connections to external AgentCore resources (memory/gateway/runtime). The construct
|
|
387
|
+
* generates IAM + discovery env vars onto this runtime's execution role. */
|
|
388
|
+
connections: zod_1.z.array(connections_1.ConnectionSchema).optional(),
|
|
389
|
+
/** Attach the runtime to a capacity provider (customer-managed EC2 compute) — either an
|
|
390
|
+
* in-project sibling by name or an external CP by ARN. Mutually exclusive with VPC networking:
|
|
391
|
+
* in CP mode the network topology comes from the capacity provider. */
|
|
392
|
+
capacityProviderConfiguration: capacity_provider_1.CapacityProviderConfigurationSchema.optional(),
|
|
201
393
|
})
|
|
202
394
|
.superRefine((data, ctx) => {
|
|
203
395
|
if (data.networkMode === 'VPC' && !data.networkConfig) {
|
|
@@ -214,6 +406,32 @@ exports.AgentEnvSpecSchema = zod_1.z
|
|
|
214
406
|
path: ['networkConfig'],
|
|
215
407
|
});
|
|
216
408
|
}
|
|
409
|
+
// Capacity-provider mode supplies its own network topology, so networkMode is not a settable
|
|
410
|
+
// property on a CP-attached runtime — neither VPC nor PUBLIC. The service derives networking
|
|
411
|
+
// from the capacity provider, so any explicit networkMode (or networkConfig) is rejected.
|
|
412
|
+
if (data.capacityProviderConfiguration && (data.networkMode !== undefined || data.networkConfig)) {
|
|
413
|
+
ctx.addIssue({
|
|
414
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
415
|
+
message: 'capacityProviderConfiguration cannot be combined with a networkMode or VPC networking — a capacity provider supplies its own network topology, so leave networkMode/networkConfig unset',
|
|
416
|
+
path: ['capacityProviderConfiguration'],
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
// NOTE: vpcId is NOT required here at the schema (read/write) level. A Container+VPC agent needs
|
|
420
|
+
// a vpcId to build (CodeBuild can't infer it), but enforcing that on read would hard-fail
|
|
421
|
+
// pre-existing agentcore.json files written before vpcId existed. Instead: the CLI input
|
|
422
|
+
// validators require --vpc-id for fresh Container+VPC creates, deploy backfills a missing vpcId
|
|
423
|
+
// from the subnets (ec2:DescribeSubnets) and persists it, and the CDK construct fails fast if it
|
|
424
|
+
// is still missing at synth. This keeps `status`/`remove`/`validate` working on old configs.
|
|
425
|
+
if (data.networkMode === 'VPC' &&
|
|
426
|
+
(0, constants_1.isContainerBuild)(data) &&
|
|
427
|
+
data.networkConfig &&
|
|
428
|
+
data.networkConfig.securityGroups.length > constants_1.MAX_CONTAINER_BUILD_SECURITY_GROUPS) {
|
|
429
|
+
ctx.addIssue({
|
|
430
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
431
|
+
message: `Container builds in VPC mode allow at most ${constants_1.MAX_CONTAINER_BUILD_SECURITY_GROUPS} security groups (CodeBuild limit)`,
|
|
432
|
+
path: ['networkConfig', 'securityGroups'],
|
|
433
|
+
});
|
|
434
|
+
}
|
|
217
435
|
if (data.authorizerType === 'CUSTOM_JWT' && !data.authorizerConfiguration?.customJwtAuthorizer) {
|
|
218
436
|
ctx.addIssue({
|
|
219
437
|
code: zod_1.z.ZodIssueCode.custom,
|
|
@@ -228,13 +446,91 @@ exports.AgentEnvSpecSchema = zod_1.z
|
|
|
228
446
|
path: ['authorizerConfiguration'],
|
|
229
447
|
});
|
|
230
448
|
}
|
|
231
|
-
// If adding more
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
449
|
+
// Container-only fields. If adding more, extend this list (and consider consolidating into a
|
|
450
|
+
// containerConfig object — see the networkConfig pattern).
|
|
451
|
+
for (const field of ['dockerfile', 'buildContextPath', 'customDockerBuildArgs']) {
|
|
452
|
+
if (data.build !== 'Container' && data[field]) {
|
|
453
|
+
ctx.addIssue({
|
|
454
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
455
|
+
message: `${field} is only allowed for Container builds`,
|
|
456
|
+
path: [field],
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
for (const key of Object.keys(data.customDockerBuildArgs ?? {})) {
|
|
461
|
+
if (isReservedBuildArgKey(key)) {
|
|
462
|
+
ctx.addIssue({
|
|
463
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
464
|
+
message: `customDockerBuildArgs key "${key}" is reserved by the build environment (must not be ${exports.RESERVED_BUILD_ARG_KEYS.join(', ')}, or start with CODEBUILD_ or AWS_)`,
|
|
465
|
+
path: ['customDockerBuildArgs', key],
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
const fcs = data.filesystemConfigurations ?? [];
|
|
470
|
+
if (fcs.length > 0) {
|
|
471
|
+
const efsCount = fcs.filter(fc => 'efsAccessPoint' in fc).length;
|
|
472
|
+
const s3Count = fcs.filter(fc => 's3FilesAccessPoint' in fc).length;
|
|
473
|
+
const ssCount = fcs.filter(fc => 'sessionStorage' in fc).length;
|
|
474
|
+
const cpVolCount = fcs.filter(fc => 'capacityProviderVolume' in fc).length;
|
|
475
|
+
// A capacity-provider volume can only be mounted when the runtime is attached to a
|
|
476
|
+
// capacity provider — the volume is defined on that CP's volumes[].
|
|
477
|
+
if (cpVolCount > 0 && !data.capacityProviderConfiguration) {
|
|
478
|
+
ctx.addIssue({
|
|
479
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
480
|
+
message: 'capacityProviderVolume filesystem mounts require the runtime to be attached to a capacity provider (set capacityProviderConfiguration)',
|
|
481
|
+
path: ['filesystemConfigurations'],
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
if (fcs.length > 5) {
|
|
485
|
+
ctx.addIssue({
|
|
486
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
487
|
+
message: 'Maximum 5 filesystem configurations allowed',
|
|
488
|
+
path: ['filesystemConfigurations'],
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
if (efsCount > exports.MAX_EFS_MOUNTS) {
|
|
492
|
+
ctx.addIssue({
|
|
493
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
494
|
+
message: `Maximum ${exports.MAX_EFS_MOUNTS} efsAccessPoint configurations allowed`,
|
|
495
|
+
path: ['filesystemConfigurations'],
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
if (s3Count > exports.MAX_S3_MOUNTS) {
|
|
499
|
+
ctx.addIssue({
|
|
500
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
501
|
+
message: `Maximum ${exports.MAX_S3_MOUNTS} s3FilesAccessPoint configurations allowed`,
|
|
502
|
+
path: ['filesystemConfigurations'],
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
if (ssCount > 1) {
|
|
506
|
+
ctx.addIssue({
|
|
507
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
508
|
+
message: 'Maximum 1 sessionStorage configuration allowed',
|
|
509
|
+
path: ['filesystemConfigurations'],
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
const hasByo = efsCount > 0 || s3Count > 0;
|
|
513
|
+
if (hasByo && data.networkMode !== 'VPC') {
|
|
514
|
+
ctx.addIssue({
|
|
515
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
516
|
+
message: 'efsAccessPoint and s3FilesAccessPoint filesystem mounts require networkMode: VPC',
|
|
517
|
+
path: ['filesystemConfigurations'],
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
const mountPaths = fcs.map(fc => ('sessionStorage' in fc
|
|
521
|
+
? fc.sessionStorage.mountPath
|
|
522
|
+
: 'efsAccessPoint' in fc
|
|
523
|
+
? fc.efsAccessPoint.mountPath
|
|
524
|
+
: 's3FilesAccessPoint' in fc
|
|
525
|
+
? fc.s3FilesAccessPoint.mountPath
|
|
526
|
+
: fc.capacityProviderVolume.mountPath).replace(/\/$/, ''));
|
|
527
|
+
if (new Set(mountPaths).size !== mountPaths.length) {
|
|
528
|
+
ctx.addIssue({
|
|
529
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
530
|
+
message: 'Filesystem mount paths must be unique',
|
|
531
|
+
path: ['filesystemConfigurations'],
|
|
532
|
+
});
|
|
533
|
+
}
|
|
238
534
|
}
|
|
239
535
|
});
|
|
240
536
|
//# sourceMappingURL=agent-env.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-env.js","sourceRoot":"","sources":["../../../src/schema/schemas/agent-env.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-env.js","sourceRoot":"","sources":["../../../src/schema/schemas/agent-env.ts"],"names":[],"mappings":";;;AA8GA,sDAIC;AA+CD,sDAEC;AAuED,oDAYC;AAtPD;;;;GAIG;AACH,4CASsB;AAEtB,iCAA6E;AAC7E,+CAAiD;AACjD,sEAAuH;AACvH,4CAA+C;AAC/C,6BAAwB;AAMxB,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,wGAAwG;AAC3F,QAAA,eAAe,GAAG,OAAC;KAC7B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;KAC1B,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CACJ,8BAA8B,EAC9B,kGAAkG,CACnG,CAAC;AAES,QAAA,gBAAgB,GAAG,OAAC;KAC9B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CACJ,0BAA0B,EAC1B,uFAAuF,CACxF,CAAC;AAEJ,mGAAmG;AACtF,QAAA,iBAAiB,GAAG,OAAC;KAC/B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK;AACJ,yGAAyG;AACzG,4CAA4C,EAC5C,yEAAyE,CAC1E,CAAC;AAEJ,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,wCAAwC;AAC3B,QAAA,YAAY,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAG1D,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAElE,QAAA,eAAe,GAAG,OAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAGhD,QAAA,eAAe,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAGhE,qFAAqF;AACrF,2DAA2D;AAE3D;;;;GAIG;AACU,QAAA,gBAAgB,GAAG,OAAC;KAC9B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK;AACJ,gHAAgH;AAChH,sEAAsE,EACtE,wHAAwH,CACvF,CAAC;AAEtC,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAwC,CAAC;AAErF,8FAA8F;AAC9F,gGAAgG;AAChG,qDAAqD;AACrD,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAE3D;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,CAAS;IAC7C,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,OAAC;KAC3B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,MAAM,CACL,qBAAqB,EACrB,8OAA8O,CAC/O,CAAC;AAEJ;;;;;;;;GAQG;AACU,QAAA,uBAAuB,GAAG;IACrC,mGAAmG;IACnG,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,iBAAiB;IACjB,gGAAgG;IAChG,4FAA4F;IAC5F,qGAAqG;IACrG,MAAM;IACN,MAAM;IACN,KAAK;IACL,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;AAEF,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,OAAO,+BAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACzG,CAAC;AAED;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,OAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,IAAI,EAAE,kDAAkD,CAAC;KAC7D,MAAM,CACL,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAC7E,2EAA2E,CAC5E,CAAC;AAES,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,wBAAgB;IACtB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAGH;;GAEG;AACU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C;;;;OAIG;IACH,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACtC,CAAC,CAAC;AAGH;;;GAGG;AACU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAAiB,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACxG,cAAc,EAAE,OAAC;SACd,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qCAAyB,EAAE,sCAAsC,CAAC,CAAC;SAC1F,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;IACV;;;OAGG;IACH,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAAc,EAAE,4BAA4B,CAAC,CAAC,QAAQ,EAAE;CACjF,CAAC,CAAC;AAGH;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAG,0CAA0C,CAAC;AACrE,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AAC1C,QAAA,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,IAAI,CAAC,2BAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,gBAAgB,GAAG,wEAAwE,CAAC;IACrG,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,WAAW,GAAG,wFAAwF,CAAC;IAChH,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,0CAA0C,CAAC,EAAE,CAAC;QACjG,OAAO,WAAW,GAAG,yHAAyH,CAAC;IACjJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEY,QAAA,4BAA4B,GAAG,OAAC;KAC1C,KAAK,CACJ,OAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClC,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC,CAAC,CACH;KACA,GAAG,CAAC,iCAAyB,EAAE,WAAW,iCAAyB,kBAAkB,CAAC,CAAC;AAE1F;;;GAGG;AACU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,2FAA2F;IAC3F,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CAAC,6BAA6B,EAAE,0EAA0E,CAAC;CACpH,CAAC,CAAC;AAGU,QAAA,4BAA4B,GACvC,gGAAgG,CAAC;AAEtF,QAAA,iCAAiC,GAC5C,wHAAwH,CAAC;AAE3H,uEAAuE;AAC1D,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,kCAAkC;IAClC,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,KAAK,CACJ,oCAA4B,EAC5B,8GAA8G,CAC/G;IACH,wDAAwD;IACxD,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CAAC,6BAA6B,EAAE,2EAA2E,CAAC;CACrH,CAAC,CAAC;AAGH,4EAA4E;AAC/D,QAAA,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IACrD,uCAAuC;IACvC,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,KAAK,CACJ,yCAAiC,EACjC,6HAA6H,CAC9H;IACH,2DAA2D;IAC3D,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CACJ,6BAA6B,EAC7B,8EAA8E,CAC/E;CACJ,CAAC,CAAC;AAGH,qFAAqF;AACxE,QAAA,kCAAkC,GAAG,OAAC,CAAC,MAAM,CAAC;IACzD,2FAA2F;IAC3F,UAAU,EAAE,oDAAgC;IAC5C,yDAAyD;IACzD,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CAAC,6BAA6B,EAAE,4EAA4E,CAAC;CACtH,CAAC,CAAC;AAGH,6DAA6D;AAChD,QAAA,cAAc,GAAG,CAAC,CAAC;AAChC,kEAAkE;AACrD,QAAA,aAAa,GAAG,CAAC,CAAC;AAE/B;;;;;;;;GAQG;AACU,QAAA,6BAA6B,GAAG,OAAC,CAAC,KAAK,CAAC;IACnD,OAAC,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,4BAAoB,EAAE,CAAC;IACxD,OAAC,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,kCAA0B,EAAE,CAAC;IAC9D,OAAC,CAAC,YAAY,CAAC,EAAE,kBAAkB,EAAE,sCAA8B,EAAE,CAAC;IACtE,OAAC,CAAC,YAAY,CAAC,EAAE,sBAAsB,EAAE,0CAAkC,EAAE,CAAC;CAC/E,CAAC,CAAC;AAGH,oEAAoE;AACvD,QAAA,qBAAqB,GAAG,EAAE,CAAC;AACxC,oEAAoE;AACvD,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;GAGG;AACU,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,CAAC;IACN,0DAA0D;IAC1D,yBAAyB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,6BAAqB,CAAC,CAAC,GAAG,CAAC,6BAAqB,CAAC,CAAC,QAAQ,EAAE;IAC5G,6DAA6D;IAC7D,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,6BAAqB,CAAC,CAAC,GAAG,CAAC,6BAAqB,CAAC,CAAC,QAAQ,EAAE;CAC/F,CAAC;KACD,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACzB,IAAI,IAAI,CAAC,yBAAyB,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnF,IAAI,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACtD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,kDAAkD;gBAC3D,IAAI,EAAE,CAAC,2BAA2B,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAGL,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACU,QAAA,yBAAyB,GAAG,OAAC;KACvC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;KACnC,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CACJ,8BAA8B,EAC9B,kGAAkG,CACnG,CAAC;AAES,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,4DAA4D;IAC5D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,4DAA4D;IAC5D,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAIH;;;GAGG;AACU,QAAA,kBAAkB,GAAG,OAAC;KAChC,MAAM,CAAC;IACN,IAAI,EAAE,uBAAe;IACrB,4CAA4C;IAC5C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,uBAAe;IACtB,UAAU,EAAE,wBAAgB;IAC5B,YAAY,EAAE,mBAAmB;IACjC;;;OAGG;IACH,UAAU,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC3C;;;;;;;;;OASG;IACH,gBAAgB,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAChD;;;;;OAKG;IACH,qBAAqB,EAAE,OAAC,CAAC,MAAM,CAAC,wBAAgB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACjF,cAAc,EAAE,gCAAiC,CAAC,QAAQ,EAAE;IAC5D,kDAAkD;IAClD,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,oBAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,wDAAwD;IACxD,WAAW,EAAE,6BAAiB,CAAC,QAAQ,EAAE;IACzC,8EAA8E;IAC9E,aAAa,EAAE,2BAAmB,CAAC,QAAQ,EAAE;IAC7C,4EAA4E;IAC5E,eAAe,EAAE,6BAAqB,CAAC,QAAQ,EAAE;IACjD,uDAAuD;IACvD,QAAQ,EAAE,8BAAkB,CAAC,QAAQ,EAAE;IACvC,2EAA2E;IAC3E,sBAAsB,EAAE,oCAA4B,CAAC,QAAQ,EAAE;IAC/D,kFAAkF;IAClF,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC;;;;;OAKG;IACH,kBAAkB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzD,iEAAiE;IACjE,cAAc,EAAE,kCAA2B,CAAC,QAAQ,EAAE;IACtD,4EAA4E;IAC5E,uBAAuB,EAAE,6BAAsB,CAAC,QAAQ,EAAE;IAC1D,IAAI,EAAE,iBAAU,CAAC,QAAQ,EAAE;IAC3B,oDAAoD;IACpD,sBAAsB,EAAE,oCAA4B,CAAC,QAAQ,EAAE;IAC/D,uEAAuE;IACvE,wBAAwB,EAAE,OAAC,CAAC,KAAK,CAAC,qCAA6B,CAAC,CAAC,QAAQ,EAAE;IAC3E,mFAAmF;IACnF,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,iCAAyB,EAAE,6BAAqB,CAAC,CAAC,QAAQ,EAAE;IAChF;iFAC6E;IAC7E,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,8BAAgB,CAAC,CAAC,QAAQ,EAAE;IACjD;;4EAEwE;IACxE,6BAA6B,EAAE,uDAAmC,CAAC,QAAQ,EAAE;CAC9E,CAAC;KACD,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACzB,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACtD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,mDAAmD;YAC5D,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,uDAAuD;YAChE,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IACD,6FAA6F;IAC7F,6FAA6F;IAC7F,0FAA0F;IAC1F,IAAI,IAAI,CAAC,6BAA6B,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACjG,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EACL,yLAAyL;YAC3L,IAAI,EAAE,CAAC,+BAA+B,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IACD,iGAAiG;IACjG,0FAA0F;IAC1F,yFAAyF;IACzF,gGAAgG;IAChG,iGAAiG;IACjG,6FAA6F;IAC7F,IACE,IAAI,CAAC,WAAW,KAAK,KAAK;QAC1B,IAAA,4BAAgB,EAAC,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,GAAG,+CAAmC,EAC9E,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,8CAA8C,+CAAmC,oCAAoC;YAC9H,IAAI,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,KAAK,YAAY,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,CAAC;QAC/F,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,gGAAgG;YACzG,IAAI,EAAE,CAAC,yBAAyB,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,KAAK,YAAY,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACzE,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,2EAA2E;YACpF,IAAI,EAAE,CAAC,yBAAyB,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IACD,6FAA6F;IAC7F,2DAA2D;IAC3D,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,CAAU,EAAE,CAAC;QACzF,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,GAAG,KAAK,uCAAuC;gBACxD,IAAI,EAAE,CAAC,KAAK,CAAC;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,8BAA8B,GAAG,uDAAuD,+BAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC;gBACxK,IAAI,EAAE,CAAC,uBAAuB,EAAE,GAAG,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC;IAChD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACjE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACpE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE3E,mFAAmF;QACnF,oEAAoE;QACpE,IAAI,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAC1D,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EACL,wIAAwI;gBAC1I,IAAI,EAAE,CAAC,0BAA0B,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,6CAA6C;gBACtD,IAAI,EAAE,CAAC,0BAA0B,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,GAAG,sBAAc,EAAE,CAAC;YAC9B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,WAAW,sBAAc,wCAAwC;gBAC1E,IAAI,EAAE,CAAC,0BAA0B,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,GAAG,qBAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,WAAW,qBAAa,4CAA4C;gBAC7E,IAAI,EAAE,CAAC,0BAA0B,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,gDAAgD;gBACzD,IAAI,EAAE,CAAC,0BAA0B,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACzC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,kFAAkF;gBAC3F,IAAI,EAAE,CAAC,0BAA0B,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAC9B,CAAC,gBAAgB,IAAI,EAAE;YACrB,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS;YAC7B,CAAC,CAAC,gBAAgB,IAAI,EAAE;gBACtB,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS;gBAC7B,CAAC,CAAC,oBAAoB,IAAI,EAAE;oBAC1B,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS;oBACjC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAC1C,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,CAAC;QACF,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,uCAAuC;gBAChD,IAAI,EAAE,CAAC,0BAA0B,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC"}
|