agentcore-cli 0.31.1__py3-none-any.whl
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.
- agentcore/__init__.py +1 -0
- agentcore/agent_inspector/NOTICE +9 -0
- agentcore/agent_inspector/favicon.svg +60 -0
- agentcore/agent_inspector/index.css +1 -0
- agentcore/agent_inspector/index.html +14 -0
- agentcore/agent_inspector/index.js +289 -0
- agentcore/assets/AGENTS.md +60 -0
- agentcore/assets/README.md +108 -0
- agentcore/assets/agents/AGENTS.md +218 -0
- agentcore/assets/cdk/.prettierrc +8 -0
- agentcore/assets/cdk/README.md +26 -0
- agentcore/assets/cdk/bin/cdk.ts +216 -0
- agentcore/assets/cdk/cdk.json +88 -0
- agentcore/assets/cdk/gitignore.template +9 -0
- agentcore/assets/cdk/jest.config.js +9 -0
- agentcore/assets/cdk/lib/cdk-stack.ts +291 -0
- agentcore/assets/cdk/npmignore.template +6 -0
- agentcore/assets/cdk/package.json +30 -0
- agentcore/assets/cdk/test/cdk.test.ts +31 -0
- agentcore/assets/cdk/tsconfig.json +28 -0
- agentcore/assets/container/python/Dockerfile +47 -0
- agentcore/assets/container/python/dockerignore.template +27 -0
- agentcore/assets/container/typescript/Dockerfile +25 -0
- agentcore/assets/container/typescript/dockerignore.template +24 -0
- agentcore/assets/datasets/predefined-v1.jsonl +3 -0
- agentcore/assets/datasets/simulated-v1.jsonl +3 -0
- agentcore/assets/evaluators/autoevals-lambda/execution-role-policy.json +15 -0
- agentcore/assets/evaluators/autoevals-lambda/lambda_function.py +37 -0
- agentcore/assets/evaluators/autoevals-lambda/pyproject.toml +22 -0
- agentcore/assets/evaluators/deepeval-lambda/execution-role-policy.json +15 -0
- agentcore/assets/evaluators/deepeval-lambda/lambda_function.py +29 -0
- agentcore/assets/evaluators/deepeval-lambda/pyproject.toml +19 -0
- agentcore/assets/evaluators/python-lambda/execution-role-policy.json +10 -0
- agentcore/assets/evaluators/python-lambda/lambda_function.py +19 -0
- agentcore/assets/evaluators/python-lambda/pyproject.toml +15 -0
- agentcore/assets/harness/invoke.py.template +74 -0
- agentcore/assets/mcp/python/README.md +27 -0
- agentcore/assets/mcp/python/pyproject.toml +22 -0
- agentcore/assets/mcp/python/server.py +117 -0
- agentcore/assets/mcp/python-lambda/README.md +22 -0
- agentcore/assets/mcp/python-lambda/handler.py +144 -0
- agentcore/assets/mcp/python-lambda/pyproject.toml +15 -0
- agentcore/assets/python/a2a/googleadk/base/README.md +22 -0
- agentcore/assets/python/a2a/googleadk/base/gitignore.template +41 -0
- agentcore/assets/python/a2a/googleadk/base/main.py +124 -0
- agentcore/assets/python/a2a/googleadk/base/model/__init__.py +1 -0
- agentcore/assets/python/a2a/googleadk/base/model/load.py +41 -0
- agentcore/assets/python/a2a/googleadk/base/pyproject.toml +22 -0
- agentcore/assets/python/a2a/langchain_langgraph/base/README.md +22 -0
- agentcore/assets/python/a2a/langchain_langgraph/base/gitignore.template +41 -0
- agentcore/assets/python/a2a/langchain_langgraph/base/main.py +144 -0
- agentcore/assets/python/a2a/langchain_langgraph/base/model/__init__.py +1 -0
- agentcore/assets/python/a2a/langchain_langgraph/base/model/load.py +123 -0
- agentcore/assets/python/a2a/langchain_langgraph/base/pyproject.toml +26 -0
- agentcore/assets/python/a2a/strands/base/README.md +22 -0
- agentcore/assets/python/a2a/strands/base/gitignore.template +41 -0
- agentcore/assets/python/a2a/strands/base/main.py +113 -0
- agentcore/assets/python/a2a/strands/base/model/__init__.py +1 -0
- agentcore/assets/python/a2a/strands/base/model/load.py +123 -0
- agentcore/assets/python/a2a/strands/base/pyproject.toml +23 -0
- agentcore/assets/python/a2a/strands/capabilities/memory/__init__.py +1 -0
- agentcore/assets/python/a2a/strands/capabilities/memory/session.py +46 -0
- agentcore/assets/python/agui/googleadk/base/README.md +30 -0
- agentcore/assets/python/agui/googleadk/base/gitignore.template +41 -0
- agentcore/assets/python/agui/googleadk/base/main.py +91 -0
- agentcore/assets/python/agui/googleadk/base/model/__init__.py +1 -0
- agentcore/assets/python/agui/googleadk/base/model/load.py +41 -0
- agentcore/assets/python/agui/googleadk/base/pyproject.toml +25 -0
- agentcore/assets/python/agui/langchain_langgraph/base/README.md +22 -0
- agentcore/assets/python/agui/langchain_langgraph/base/gitignore.template +41 -0
- agentcore/assets/python/agui/langchain_langgraph/base/main.py +130 -0
- agentcore/assets/python/agui/langchain_langgraph/base/model/__init__.py +1 -0
- agentcore/assets/python/agui/langchain_langgraph/base/model/load.py +123 -0
- agentcore/assets/python/agui/langchain_langgraph/base/pyproject.toml +31 -0
- agentcore/assets/python/agui/strands/base/README.md +22 -0
- agentcore/assets/python/agui/strands/base/gitignore.template +41 -0
- agentcore/assets/python/agui/strands/base/main.py +105 -0
- agentcore/assets/python/agui/strands/base/model/__init__.py +1 -0
- agentcore/assets/python/agui/strands/base/model/load.py +123 -0
- agentcore/assets/python/agui/strands/base/pyproject.toml +27 -0
- agentcore/assets/python/agui/strands/capabilities/memory/__init__.py +1 -0
- agentcore/assets/python/agui/strands/capabilities/memory/session.py +46 -0
- agentcore/assets/python/http/autogen/base/README.md +45 -0
- agentcore/assets/python/http/autogen/base/gitignore.template +41 -0
- agentcore/assets/python/http/autogen/base/main.py +145 -0
- agentcore/assets/python/http/autogen/base/mcp_client/__init__.py +1 -0
- agentcore/assets/python/http/autogen/base/mcp_client/client.py +28 -0
- agentcore/assets/python/http/autogen/base/model/__init__.py +1 -0
- agentcore/assets/python/http/autogen/base/model/load.py +136 -0
- agentcore/assets/python/http/autogen/base/pyproject.toml +34 -0
- agentcore/assets/python/http/bma/base/Dockerfile +41 -0
- agentcore/assets/python/http/bma/base/README.md +178 -0
- agentcore/assets/python/http/bma/base/client.py +200 -0
- agentcore/assets/python/http/bma/base/lifecycle/server.py +641 -0
- agentcore/assets/python/http/bma/base/otel/collector.yaml +69 -0
- agentcore/assets/python/http/bma/base/plugins/acr-report/.codex-plugin/plugin.json +6 -0
- agentcore/assets/python/http/bma/base/plugins/acr-report/skills/acr-report/SKILL.md +16 -0
- agentcore/assets/python/http/bma/base/policies/bma-acr-policy.json +11 -0
- agentcore/assets/python/http/bma/base/policies/bma-session-policy.json +35 -0
- agentcore/assets/python/http/bma/base/policies/bma-session-trust.json +20 -0
- agentcore/assets/python/http/bma/base/pyproject.toml +21 -0
- agentcore/assets/python/http/googleadk/base/README.md +45 -0
- agentcore/assets/python/http/googleadk/base/gitignore.template +41 -0
- agentcore/assets/python/http/googleadk/base/main.py +207 -0
- agentcore/assets/python/http/googleadk/base/mcp_client/__init__.py +1 -0
- agentcore/assets/python/http/googleadk/base/mcp_client/client.py +75 -0
- agentcore/assets/python/http/googleadk/base/model/__init__.py +1 -0
- agentcore/assets/python/http/googleadk/base/model/load.py +41 -0
- agentcore/assets/python/http/googleadk/base/pyproject.toml +24 -0
- agentcore/assets/python/http/langchain_langgraph/base/README.md +45 -0
- agentcore/assets/python/http/langchain_langgraph/base/gitignore.template +41 -0
- agentcore/assets/python/http/langchain_langgraph/base/main.py +227 -0
- agentcore/assets/python/http/langchain_langgraph/base/mcp_client/__init__.py +1 -0
- agentcore/assets/python/http/langchain_langgraph/base/mcp_client/client.py +79 -0
- agentcore/assets/python/http/langchain_langgraph/base/model/__init__.py +1 -0
- agentcore/assets/python/http/langchain_langgraph/base/model/load.py +123 -0
- agentcore/assets/python/http/langchain_langgraph/base/pyproject.toml +38 -0
- agentcore/assets/python/http/openaiagents/base/README.md +45 -0
- agentcore/assets/python/http/openaiagents/base/gitignore.template +41 -0
- agentcore/assets/python/http/openaiagents/base/main.py +200 -0
- agentcore/assets/python/http/openaiagents/base/mcp_client/__init__.py +1 -0
- agentcore/assets/python/http/openaiagents/base/mcp_client/client.py +74 -0
- agentcore/assets/python/http/openaiagents/base/model/__init__.py +1 -0
- agentcore/assets/python/http/openaiagents/base/model/load.py +37 -0
- agentcore/assets/python/http/openaiagents/base/pyproject.toml +21 -0
- agentcore/assets/python/http/strands/base/README.md +46 -0
- agentcore/assets/python/http/strands/base/gitignore.template +41 -0
- agentcore/assets/python/http/strands/base/main.py +714 -0
- agentcore/assets/python/http/strands/base/mcp_client/__init__.py +1 -0
- agentcore/assets/python/http/strands/base/mcp_client/client.py +116 -0
- agentcore/assets/python/http/strands/base/model/__init__.py +1 -0
- agentcore/assets/python/http/strands/base/model/load.py +239 -0
- agentcore/assets/python/http/strands/base/model/mantle_compat.py +21 -0
- agentcore/assets/python/http/strands/base/pyproject.toml +31 -0
- agentcore/assets/python/http/strands/base/skills/fetcher.py +279 -0
- agentcore/assets/python/http/strands/capabilities/execution-limits/hooks/execution_limits.py +54 -0
- agentcore/assets/python/http/strands/capabilities/memory/__init__.py +1 -0
- agentcore/assets/python/http/strands/capabilities/memory/session.py +47 -0
- agentcore/assets/python/http/strands/capabilities/payments/__init__.py +4 -0
- agentcore/assets/python/http/strands/capabilities/payments/payments.py +142 -0
- agentcore/assets/python/mcp/standalone/base/README.md +36 -0
- agentcore/assets/python/mcp/standalone/base/gitignore.template +41 -0
- agentcore/assets/python/mcp/standalone/base/main.py +83 -0
- agentcore/assets/python/mcp/standalone/base/pyproject.toml +16 -0
- agentcore/assets/typescript/.gitkeep +0 -0
- agentcore/assets/typescript/http/strands/base/README.md +42 -0
- agentcore/assets/typescript/http/strands/base/gitignore.template +22 -0
- agentcore/assets/typescript/http/strands/base/main.ts +149 -0
- agentcore/assets/typescript/http/strands/base/mcp_client/client.ts +11 -0
- agentcore/assets/typescript/http/strands/base/model/load.ts +102 -0
- agentcore/assets/typescript/http/strands/base/package.json +38 -0
- agentcore/assets/typescript/http/strands/base/tsconfig.json +19 -0
- agentcore/assets/typescript/http/strands/capabilities/memory/memory.ts +52 -0
- agentcore/assets/typescript/http/vercelai/base/README.md +42 -0
- agentcore/assets/typescript/http/vercelai/base/gitignore.template +22 -0
- agentcore/assets/typescript/http/vercelai/base/main.ts +70 -0
- agentcore/assets/typescript/http/vercelai/base/model/load.ts +121 -0
- agentcore/assets/typescript/http/vercelai/base/package.json +35 -0
- agentcore/assets/typescript/http/vercelai/base/tsconfig.json +19 -0
- agentcore/aws/__init__.py +263 -0
- agentcore/aws/_aws_errors.py +72 -0
- agentcore/aws/_http.py +176 -0
- agentcore/aws/_util.py +37 -0
- agentcore/aws/account.py +165 -0
- agentcore/aws/agentcore.py +971 -0
- agentcore/aws/agentcore_ab_tests.py +230 -0
- agentcore/aws/agentcore_batch_evaluation.py +227 -0
- agentcore/aws/agentcore_config_bundles.py +220 -0
- agentcore/aws/agentcore_control.py +994 -0
- agentcore/aws/agentcore_datasets.py +222 -0
- agentcore/aws/agentcore_harness.py +330 -0
- agentcore/aws/agentcore_payments.py +430 -0
- agentcore/aws/agentcore_recommendation.py +140 -0
- agentcore/aws/agui_parser.py +131 -0
- agentcore/aws/agui_types.py +342 -0
- agentcore/aws/api_client.py +87 -0
- agentcore/aws/arn.py +18 -0
- agentcore/aws/aws_context.py +23 -0
- agentcore/aws/bedrock.py +44 -0
- agentcore/aws/bedrock_agent.py +129 -0
- agentcore/aws/bedrock_import.py +252 -0
- agentcore/aws/bedrock_import_types.py +111 -0
- agentcore/aws/cloudwatch.py +136 -0
- agentcore/aws/connect_shell.py +266 -0
- agentcore/aws/iam.py +41 -0
- agentcore/aws/partition.py +58 -0
- agentcore/aws/policy_generation.py +116 -0
- agentcore/aws/region.py +54 -0
- agentcore/aws/retry.py +27 -0
- agentcore/aws/shell_framer.py +136 -0
- agentcore/aws/stage_endpoint.py +39 -0
- agentcore/aws/target_region.py +54 -0
- agentcore/aws/transaction_search.py +97 -0
- agentcore/cdk/__init__.py +10 -0
- agentcore/cdk/constants.py +13 -0
- agentcore/cdk/local_cdk_project.py +48 -0
- agentcore/cdk/toolkit.py +706 -0
- agentcore/cli/__init__.py +0 -0
- agentcore/cli/commands/__init__.py +0 -0
- agentcore/cli/commands/_jobs_common.py +39 -0
- agentcore/cli/commands/_run_wizards.py +639 -0
- agentcore/cli/commands/add/__init__.py +37 -0
- agentcore/cli/commands/add/_commander.py +52 -0
- agentcore/cli/commands/add/_common.py +47 -0
- agentcore/cli/commands/add/agent_wizard.py +528 -0
- agentcore/cli/commands/add/auth_options.py +154 -0
- agentcore/cli/commands/add/skill_action.py +105 -0
- agentcore/cli/commands/add/skill_command.py +87 -0
- agentcore/cli/commands/add/tool_action.py +160 -0
- agentcore/cli/commands/add/tool_command.py +117 -0
- agentcore/cli/commands/add/validate.py +333 -0
- agentcore/cli/commands/capacity_provider/__init__.py +86 -0
- agentcore/cli/commands/capacity_provider/action.py +114 -0
- agentcore/cli/commands/capacity_provider/constants.py +22 -0
- agentcore/cli/commands/config.py +91 -0
- agentcore/cli/commands/config_bundle.py +251 -0
- agentcore/cli/commands/create/__init__.py +643 -0
- agentcore/cli/commands/create/action.py +406 -0
- agentcore/cli/commands/create/dependencies.py +91 -0
- agentcore/cli/commands/create/harness_validate.py +82 -0
- agentcore/cli/commands/create/validate.py +195 -0
- agentcore/cli/commands/create/wizard.py +127 -0
- agentcore/cli/commands/dataset.py +119 -0
- agentcore/cli/commands/deploy/__init__.py +31 -0
- agentcore/cli/commands/deploy/_guards.py +25 -0
- agentcore/cli/commands/deploy/actions.py +840 -0
- agentcore/cli/commands/deploy/command.py +349 -0
- agentcore/cli/commands/deploy/progress.py +115 -0
- agentcore/cli/commands/deploy/types.py +68 -0
- agentcore/cli/commands/deploy/utils.py +43 -0
- agentcore/cli/commands/deploy/validate.py +21 -0
- agentcore/cli/commands/dev/__init__.py +5 -0
- agentcore/cli/commands/dev/_deps.py +50 -0
- agentcore/cli/commands/dev/browser_mode.py +270 -0
- agentcore/cli/commands/dev/command.py +450 -0
- agentcore/cli/commands/dev/terminal_mode.py +379 -0
- agentcore/cli/commands/exec/__init__.py +29 -0
- agentcore/cli/commands/exec/action.py +442 -0
- agentcore/cli/commands/exec/command.py +206 -0
- agentcore/cli/commands/exec/types.py +35 -0
- agentcore/cli/commands/export/__init__.py +114 -0
- agentcore/cli/commands/export/constants.py +21 -0
- agentcore/cli/commands/export/fetch_harness_spec.py +234 -0
- agentcore/cli/commands/export/harness_action.py +385 -0
- agentcore/cli/commands/export/harness_mapper.py +868 -0
- agentcore/cli/commands/export/harness_resolver.py +95 -0
- agentcore/cli/commands/export/types.py +90 -0
- agentcore/cli/commands/export/wizard.py +97 -0
- agentcore/cli/commands/feedback/__init__.py +69 -0
- agentcore/cli/commands/feedback/action.py +30 -0
- agentcore/cli/commands/feedback/consent_prompt.py +35 -0
- agentcore/cli/commands/feedback/wizard.py +49 -0
- agentcore/cli/commands/fetch/__init__.py +69 -0
- agentcore/cli/commands/fetch/action.py +62 -0
- agentcore/cli/commands/help.py +65 -0
- agentcore/cli/commands/import_/__init__.py +167 -0
- agentcore/cli/commands/import_/_js.py +72 -0
- agentcore/cli/commands/import_/actions.py +457 -0
- agentcore/cli/commands/import_/constants.py +45 -0
- agentcore/cli/commands/import_/import_evaluator.py +140 -0
- agentcore/cli/commands/import_/import_gateway.py +520 -0
- agentcore/cli/commands/import_/import_memory.py +128 -0
- agentcore/cli/commands/import_/import_online_eval.py +165 -0
- agentcore/cli/commands/import_/import_pipeline.py +145 -0
- agentcore/cli/commands/import_/import_runtime.py +214 -0
- agentcore/cli/commands/import_/import_utils.py +410 -0
- agentcore/cli/commands/import_/phase1_update.py +110 -0
- agentcore/cli/commands/import_/phase2_import.py +206 -0
- agentcore/cli/commands/import_/resource_import.py +228 -0
- agentcore/cli/commands/import_/template_utils.py +148 -0
- agentcore/cli/commands/import_/types.py +150 -0
- agentcore/cli/commands/import_/yaml_parser.py +265 -0
- agentcore/cli/commands/init.py +196 -0
- agentcore/cli/commands/invoke/__init__.py +32 -0
- agentcore/cli/commands/invoke/_deps.py +73 -0
- agentcore/cli/commands/invoke/action.py +840 -0
- agentcore/cli/commands/invoke/command.py +490 -0
- agentcore/cli/commands/invoke/constants.py +40 -0
- agentcore/cli/commands/invoke/guards.py +23 -0
- agentcore/cli/commands/invoke/interactive.py +604 -0
- agentcore/cli/commands/invoke/resolve.py +149 -0
- agentcore/cli/commands/invoke/resolve_prompt.py +60 -0
- agentcore/cli/commands/invoke/types.py +61 -0
- agentcore/cli/commands/invoke/validate.py +33 -0
- agentcore/cli/commands/job_actions.py +239 -0
- agentcore/cli/commands/job_history.py +380 -0
- agentcore/cli/commands/logs/__init__.py +53 -0
- agentcore/cli/commands/logs/action.py +159 -0
- agentcore/cli/commands/logs/filter_pattern.py +17 -0
- agentcore/cli/commands/logs/guards.py +51 -0
- agentcore/cli/commands/logs_evals.py +42 -0
- agentcore/cli/commands/package.py +118 -0
- agentcore/cli/commands/remove/__init__.py +172 -0
- agentcore/cli/commands/remove/skill_command.py +131 -0
- agentcore/cli/commands/remove/tool_command.py +59 -0
- agentcore/cli/commands/run.py +808 -0
- agentcore/cli/commands/run_ingest.py +97 -0
- agentcore/cli/commands/shared/__init__.py +0 -0
- agentcore/cli/commands/shared/arn_utils.py +9 -0
- agentcore/cli/commands/shared/filesystem_utils.py +421 -0
- agentcore/cli/commands/shared/header_utils.py +87 -0
- agentcore/cli/commands/shared/indexed_key_parser.py +76 -0
- agentcore/cli/commands/shared/lifecycle_utils.py +72 -0
- agentcore/cli/commands/shared/region_utils.py +20 -0
- agentcore/cli/commands/shared/vpc_utils.py +99 -0
- agentcore/cli/commands/status/__init__.py +30 -0
- agentcore/cli/commands/status/_guards.py +25 -0
- agentcore/cli/commands/status/action.py +741 -0
- agentcore/cli/commands/status/command.py +321 -0
- agentcore/cli/commands/status/constants.py +36 -0
- agentcore/cli/commands/status/format_knowledge_base.py +111 -0
- agentcore/cli/commands/telemetry.py +79 -0
- agentcore/cli/commands/traces/__init__.py +155 -0
- agentcore/cli/commands/traces/action.py +123 -0
- agentcore/cli/commands/update/__init__.py +63 -0
- agentcore/cli/commands/update/action.py +164 -0
- agentcore/cli/commands/validate.py +165 -0
- agentcore/cli/constants.py +96 -0
- agentcore/cli/errors.py +118 -0
- agentcore/cli/external_requirements/__init__.py +67 -0
- agentcore/cli/external_requirements/checks.py +280 -0
- agentcore/cli/external_requirements/detect.py +55 -0
- agentcore/cli/external_requirements/versions.py +57 -0
- agentcore/cli/groups.py +23 -0
- agentcore/cli/interactive.py +85 -0
- agentcore/cli/main.py +137 -0
- agentcore/cli/naming.py +11 -0
- agentcore/cli/notices.py +42 -0
- agentcore/cli/project.py +34 -0
- agentcore/cli/run_command.py +27 -0
- agentcore/cli/tree.py +135 -0
- agentcore/cli/update_notifier.py +123 -0
- agentcore/cli/variadic.py +50 -0
- agentcore/cloudformation/__init__.py +84 -0
- agentcore/cloudformation/bootstrap.py +64 -0
- agentcore/cloudformation/logical_ids.py +37 -0
- agentcore/cloudformation/outputs.py +566 -0
- agentcore/cloudformation/stack_discovery.py +75 -0
- agentcore/cloudformation/stack_events.py +107 -0
- agentcore/cloudformation/stack_status.py +98 -0
- agentcore/cloudformation/types.py +44 -0
- agentcore/lib/__init__.py +68 -0
- agentcore/lib/constants.py +77 -0
- agentcore/lib/dependency_management/__init__.py +23 -0
- agentcore/lib/dependency_management/messages.py +92 -0
- agentcore/lib/dependency_management/plan.py +98 -0
- agentcore/lib/dependency_management/semver.py +137 -0
- agentcore/lib/dependency_management/sync.py +139 -0
- agentcore/lib/dependency_management/types.py +56 -0
- agentcore/lib/errors/__init__.py +5 -0
- agentcore/lib/errors/types.py +352 -0
- agentcore/lib/errors/validation.py +121 -0
- agentcore/lib/packaging/__init__.py +81 -0
- agentcore/lib/packaging/build_args.py +23 -0
- agentcore/lib/packaging/build_context.py +26 -0
- agentcore/lib/packaging/build_context_dockerignore.py +45 -0
- agentcore/lib/packaging/container.py +95 -0
- agentcore/lib/packaging/helpers.py +289 -0
- agentcore/lib/packaging/node.py +153 -0
- agentcore/lib/packaging/python.py +135 -0
- agentcore/lib/packaging/types.py +69 -0
- agentcore/lib/packaging/uv.py +45 -0
- agentcore/lib/result.py +104 -0
- agentcore/lib/schemas/__init__.py +1 -0
- agentcore/lib/schemas/io/__init__.py +27 -0
- agentcore/lib/schemas/io/config_io.py +458 -0
- agentcore/lib/schemas/io/global_config.py +239 -0
- agentcore/lib/schemas/io/path_resolver.py +132 -0
- agentcore/lib/secrets/__init__.py +18 -0
- agentcore/lib/secrets/cipher.py +70 -0
- agentcore/lib/secrets/key_provider.py +163 -0
- agentcore/lib/secrets/sensitive_keys.py +55 -0
- agentcore/lib/time_constants.py +4 -0
- agentcore/lib/utils/__init__.py +47 -0
- agentcore/lib/utils/aws_account.py +15 -0
- agentcore/lib/utils/credentials.py +68 -0
- agentcore/lib/utils/dotenv.py +32 -0
- agentcore/lib/utils/env.py +105 -0
- agentcore/lib/utils/json_format.py +29 -0
- agentcore/lib/utils/json_rpc.py +22 -0
- agentcore/lib/utils/platform.py +33 -0
- agentcore/lib/utils/polling.py +86 -0
- agentcore/lib/utils/subprocess.py +135 -0
- agentcore/lib/utils/time_parser.py +48 -0
- agentcore/lib/utils/validation.py +106 -0
- agentcore/logging/__init__.py +10 -0
- agentcore/logging/_common.py +77 -0
- agentcore/logging/cdk_io_host.py +36 -0
- agentcore/logging/create_logger.py +107 -0
- agentcore/logging/dev_logger.py +63 -0
- agentcore/logging/exec_logger.py +159 -0
- agentcore/logging/invoke_logger.py +154 -0
- agentcore/logging/remove_logger.py +95 -0
- agentcore/operations/__init__.py +0 -0
- agentcore/operations/agent/__init__.py +0 -0
- agentcore/operations/agent/config_bundle_defaults.py +31 -0
- agentcore/operations/agent/generate/__init__.py +28 -0
- agentcore/operations/agent/generate/schema_mapper.py +319 -0
- agentcore/operations/agent/generate/types.py +172 -0
- agentcore/operations/agent/generate/write_agent_to_project.py +67 -0
- agentcore/operations/agent/import_/__init__.py +31 -0
- agentcore/operations/agent/import_/base_translator.py +449 -0
- agentcore/operations/agent/import_/constants.py +23 -0
- agentcore/operations/agent/import_/execute.py +127 -0
- agentcore/operations/agent/import_/langgraph_translator.py +294 -0
- agentcore/operations/agent/import_/pyproject_generator.py +73 -0
- agentcore/operations/agent/import_/strands_translator.py +289 -0
- agentcore/operations/config_bundle/__init__.py +1 -0
- agentcore/operations/config_bundle/bundle_name_variants.py +9 -0
- agentcore/operations/config_bundle/diff_versions.py +52 -0
- agentcore/operations/config_bundle/resolve_bundle.py +65 -0
- agentcore/operations/connectors/__init__.py +3 -0
- agentcore/operations/connectors/translators.py +63 -0
- agentcore/operations/dataset/__init__.py +21 -0
- agentcore/operations/dataset/delete.py +7 -0
- agentcore/operations/dataset/publish.py +16 -0
- agentcore/operations/dataset/pull.py +21 -0
- agentcore/operations/dataset/push.py +201 -0
- agentcore/operations/dataset/resolve_dataset.py +65 -0
- agentcore/operations/dataset/status.py +18 -0
- agentcore/operations/dataset/wait.py +25 -0
- agentcore/operations/deploy/__init__.py +152 -0
- agentcore/operations/deploy/backfill_vpc_id.py +90 -0
- agentcore/operations/deploy/change_detection.py +84 -0
- agentcore/operations/deploy/constants.py +58 -0
- agentcore/operations/deploy/dependency_sync.py +105 -0
- agentcore/operations/deploy/ensure_target.py +30 -0
- agentcore/operations/deploy/gateway_status.py +44 -0
- agentcore/operations/deploy/managed_memory_notice.py +36 -0
- agentcore/operations/deploy/payment_connector_authorization.py +106 -0
- agentcore/operations/deploy/post_deploy_datasets.py +96 -0
- agentcore/operations/deploy/post_deploy_knowledge_bases.py +104 -0
- agentcore/operations/deploy/post_deploy_observability.py +28 -0
- agentcore/operations/deploy/post_deploy_online_evals.py +60 -0
- agentcore/operations/deploy/pre_deploy_identity.py +505 -0
- agentcore/operations/deploy/preflight.py +385 -0
- agentcore/operations/deploy/region_override.py +45 -0
- agentcore/operations/deploy/teardown.py +153 -0
- agentcore/operations/dev/__init__.py +61 -0
- agentcore/operations/dev/_http.py +79 -0
- agentcore/operations/dev/_server.py +165 -0
- agentcore/operations/dev/codezip_dev_server.py +151 -0
- agentcore/operations/dev/config.py +128 -0
- agentcore/operations/dev/constants.py +9 -0
- agentcore/operations/dev/container_dev_server.py +237 -0
- agentcore/operations/dev/container_runtime.py +37 -0
- agentcore/operations/dev/dev_server.py +244 -0
- agentcore/operations/dev/gateway_env.py +25 -0
- agentcore/operations/dev/invoke.py +214 -0
- agentcore/operations/dev/invoke_a2a.py +204 -0
- agentcore/operations/dev/invoke_agui.py +88 -0
- agentcore/operations/dev/invoke_mcp.py +145 -0
- agentcore/operations/dev/invoke_types.py +30 -0
- agentcore/operations/dev/load_dev_env.py +26 -0
- agentcore/operations/dev/memory_env.py +19 -0
- agentcore/operations/dev/otel/__init__.py +5 -0
- agentcore/operations/dev/otel/collector.py +234 -0
- agentcore/operations/dev/otel/transforms.py +331 -0
- agentcore/operations/dev/payment_env.py +50 -0
- agentcore/operations/dev/server.py +28 -0
- agentcore/operations/dev/sse_transform.py +30 -0
- agentcore/operations/dev/utils.py +152 -0
- agentcore/operations/dev/web_ui/__init__.py +31 -0
- agentcore/operations/dev/web_ui/constants.py +25 -0
- agentcore/operations/dev/web_ui/handlers/__init__.py +36 -0
- agentcore/operations/dev/web_ui/handlers/_common.py +36 -0
- agentcore/operations/dev/web_ui/handlers/_deployed.py +37 -0
- agentcore/operations/dev/web_ui/handlers/a2a_proxy.py +37 -0
- agentcore/operations/dev/web_ui/handlers/cloudwatch_traces.py +71 -0
- agentcore/operations/dev/web_ui/handlers/harness_invocation.py +89 -0
- agentcore/operations/dev/web_ui/handlers/harness_utils.py +95 -0
- agentcore/operations/dev/web_ui/handlers/invocations.py +327 -0
- agentcore/operations/dev/web_ui/handlers/mcp_proxy.py +119 -0
- agentcore/operations/dev/web_ui/handlers/memory.py +84 -0
- agentcore/operations/dev/web_ui/handlers/resources.py +351 -0
- agentcore/operations/dev/web_ui/handlers/start.py +182 -0
- agentcore/operations/dev/web_ui/handlers/status.py +25 -0
- agentcore/operations/dev/web_ui/handlers/traces.py +50 -0
- agentcore/operations/dev/web_ui/run_web_ui.py +60 -0
- agentcore/operations/dev/web_ui/web_server.py +297 -0
- agentcore/operations/eval/__init__.py +8 -0
- agentcore/operations/eval/list_eval_runs.py +18 -0
- agentcore/operations/eval/logs_eval.py +119 -0
- agentcore/operations/eval/pause_resume.py +90 -0
- agentcore/operations/eval/run_eval.py +354 -0
- agentcore/operations/eval/shared/__init__.py +0 -0
- agentcore/operations/eval/shared/dataset_loader.py +68 -0
- agentcore/operations/eval/shared/dataset_session_provider.py +122 -0
- agentcore/operations/eval/shared/evaluator_runner.py +89 -0
- agentcore/operations/eval/shared/scenario_executor.py +71 -0
- agentcore/operations/eval/shared/span_collector.py +255 -0
- agentcore/operations/eval/storage.py +67 -0
- agentcore/operations/feedback/__init__.py +21 -0
- agentcore/operations/feedback/aperture_client.py +98 -0
- agentcore/operations/feedback/build_payload.py +97 -0
- agentcore/operations/feedback/constants.py +26 -0
- agentcore/operations/feedback/submit_feedback.py +150 -0
- agentcore/operations/fetch_access/__init__.py +36 -0
- agentcore/operations/fetch_access/_target.py +17 -0
- agentcore/operations/fetch_access/fetch_gateway_token.py +75 -0
- agentcore/operations/fetch_access/fetch_harness_token.py +72 -0
- agentcore/operations/fetch_access/fetch_runtime_token.py +76 -0
- agentcore/operations/fetch_access/list_agents.py +18 -0
- agentcore/operations/fetch_access/list_gateways.py +26 -0
- agentcore/operations/fetch_access/list_harnesses.py +23 -0
- agentcore/operations/fetch_access/oauth_token.py +162 -0
- agentcore/operations/fetch_access/types.py +34 -0
- agentcore/operations/harness/__init__.py +1 -0
- agentcore/operations/harness/orphan.py +84 -0
- agentcore/operations/harness/skill_utils.py +56 -0
- agentcore/operations/identity/__init__.py +33 -0
- agentcore/operations/identity/api_key_credential_provider.py +68 -0
- agentcore/operations/identity/oauth2_credential_provider.py +95 -0
- agentcore/operations/ingest/__init__.py +184 -0
- agentcore/operations/init/__init__.py +3 -0
- agentcore/operations/init/files.py +59 -0
- agentcore/operations/insights/__init__.py +21 -0
- agentcore/operations/insights/insights_storage.py +67 -0
- agentcore/operations/insights/run_insights.py +148 -0
- agentcore/operations/invoke/__init__.py +5 -0
- agentcore/operations/invoke/resolve_agent_context.py +85 -0
- agentcore/operations/jobs/__init__.py +38 -0
- agentcore/operations/jobs/ab_test/__init__.py +0 -0
- agentcore/operations/jobs/ab_test/build_options.py +126 -0
- agentcore/operations/jobs/ab_test/format.py +121 -0
- agentcore/operations/jobs/ab_test/handler.py +412 -0
- agentcore/operations/jobs/ab_test/promote.py +142 -0
- agentcore/operations/jobs/ab_test/resolve.py +221 -0
- agentcore/operations/jobs/batch_evaluation/__init__.py +0 -0
- agentcore/operations/jobs/batch_evaluation/build_source.py +68 -0
- agentcore/operations/jobs/batch_evaluation/dataset_phase1.py +95 -0
- agentcore/operations/jobs/batch_evaluation/format.py +58 -0
- agentcore/operations/jobs/batch_evaluation/handler.py +203 -0
- agentcore/operations/jobs/insights/__init__.py +0 -0
- agentcore/operations/jobs/insights/format.py +65 -0
- agentcore/operations/jobs/insights/handler.py +178 -0
- agentcore/operations/jobs/recommendation/__init__.py +0 -0
- agentcore/operations/jobs/recommendation/apply_to_bundle.py +76 -0
- agentcore/operations/jobs/recommendation/build_config.py +271 -0
- agentcore/operations/jobs/recommendation/fetch_session_spans.py +93 -0
- agentcore/operations/jobs/recommendation/format.py +77 -0
- agentcore/operations/jobs/recommendation/handler.py +331 -0
- agentcore/operations/jobs/shared/__init__.py +0 -0
- agentcore/operations/jobs/shared/constants.py +85 -0
- agentcore/operations/jobs/shared/engine.py +187 -0
- agentcore/operations/jobs/shared/format.py +104 -0
- agentcore/operations/jobs/shared/region.py +34 -0
- agentcore/operations/jobs/shared/resolve_agent_state.py +30 -0
- agentcore/operations/jobs/shared/storage.py +117 -0
- agentcore/operations/jobs/shared/wait.py +30 -0
- agentcore/operations/knowledge_base/__init__.py +33 -0
- agentcore/operations/knowledge_base/connector_config.py +105 -0
- agentcore/operations/knowledge_base/hydrate_data_sources.py +59 -0
- agentcore/operations/mcp/__init__.py +4 -0
- agentcore/operations/memory/__init__.py +13 -0
- agentcore/operations/memory/_records.py +72 -0
- agentcore/operations/memory/list_memory_records.py +45 -0
- agentcore/operations/memory/retrieve_memory_records.py +52 -0
- agentcore/operations/node/__init__.py +15 -0
- agentcore/operations/node/setup.py +36 -0
- agentcore/operations/python/__init__.py +17 -0
- agentcore/operations/python/setup.py +47 -0
- agentcore/operations/resolve_agent.py +159 -0
- agentcore/operations/session/__init__.py +86 -0
- agentcore/operations/traces/__init__.py +29 -0
- agentcore/operations/traces/get_trace.py +202 -0
- agentcore/operations/traces/insights_query.py +74 -0
- agentcore/operations/traces/list_traces.py +46 -0
- agentcore/operations/traces/trace_url.py +25 -0
- agentcore/operations/traces/types.py +55 -0
- agentcore/primitives/__init__.py +0 -0
- agentcore/primitives/_gateway_target_wizard.py +293 -0
- agentcore/primitives/_gateway_validation.py +442 -0
- agentcore/primitives/_harness_cli.py +557 -0
- agentcore/primitives/_harness_validation.py +163 -0
- agentcore/primitives/_harness_wizard.py +726 -0
- agentcore/primitives/_knowledge_base_wizard.py +259 -0
- agentcore/primitives/_payment_wizard.py +331 -0
- agentcore/primitives/_policy_form.py +160 -0
- agentcore/primitives/agent.py +817 -0
- agentcore/primitives/auth_utils.py +77 -0
- agentcore/primitives/base.py +178 -0
- agentcore/primitives/capacity_provider.py +501 -0
- agentcore/primitives/config_bundle.py +329 -0
- agentcore/primitives/credential.py +387 -0
- agentcore/primitives/credential_utils.py +45 -0
- agentcore/primitives/dataset.py +211 -0
- agentcore/primitives/deployed_gateways.py +34 -0
- agentcore/primitives/evaluator.py +909 -0
- agentcore/primitives/gateway.py +496 -0
- agentcore/primitives/gateway_target.py +988 -0
- agentcore/primitives/harness.py +706 -0
- agentcore/primitives/knowledge_base.py +477 -0
- agentcore/primitives/memory.py +387 -0
- agentcore/primitives/online_eval_config.py +365 -0
- agentcore/primitives/online_insights.py +275 -0
- agentcore/primitives/payment_connector.py +427 -0
- agentcore/primitives/payment_eligible.py +20 -0
- agentcore/primitives/payment_manager.py +605 -0
- agentcore/primitives/payment_validation.py +68 -0
- agentcore/primitives/policy.py +622 -0
- agentcore/primitives/policy_engine.py +358 -0
- agentcore/primitives/registry.py +56 -0
- agentcore/primitives/runtime_endpoint.py +361 -0
- agentcore/primitives/secret_flag_warning.py +17 -0
- agentcore/schema/__init__.py +14 -0
- agentcore/schema/_zod.py +395 -0
- agentcore/schema/constants.py +306 -0
- agentcore/schema/schemas/__init__.py +40 -0
- agentcore/schema/schemas/agent_env.py +545 -0
- agentcore/schema/schemas/agentcore_project.py +530 -0
- agentcore/schema/schemas/auth.py +286 -0
- agentcore/schema/schemas/aws_targets.py +72 -0
- agentcore/schema/schemas/connections.py +187 -0
- agentcore/schema/schemas/deployed_state.py +322 -0
- agentcore/schema/schemas/mcp.py +650 -0
- agentcore/schema/schemas/mcp_defs.py +54 -0
- agentcore/schema/schemas/primitives/__init__.py +52 -0
- agentcore/schema/schemas/primitives/ab_test.py +162 -0
- agentcore/schema/schemas/primitives/capacity_provider.py +214 -0
- agentcore/schema/schemas/primitives/config_bundle.py +48 -0
- agentcore/schema/schemas/primitives/dataset.py +55 -0
- agentcore/schema/schemas/primitives/evaluator.py +171 -0
- agentcore/schema/schemas/primitives/harness.py +710 -0
- agentcore/schema/schemas/primitives/knowledge_base.py +90 -0
- agentcore/schema/schemas/primitives/memory.py +113 -0
- agentcore/schema/schemas/primitives/online_eval_config.py +77 -0
- agentcore/schema/schemas/primitives/payment.py +114 -0
- agentcore/schema/schemas/primitives/policy.py +83 -0
- agentcore/schema/schemas/primitives/tags.py +50 -0
- agentcore/schema/schemas/zod_util.py +5 -0
- agentcore/schema/types/__init__.py +3 -0
- agentcore/schema/types/path.py +16 -0
- agentcore/templates/__init__.py +115 -0
- agentcore/templates/_handlebars.py +782 -0
- agentcore/templates/_js.py +164 -0
- agentcore/templates/base_renderer.py +107 -0
- agentcore/templates/cdk_renderer.py +129 -0
- agentcore/templates/evaluator_renderer.py +39 -0
- agentcore/templates/gateway_target_renderer.py +69 -0
- agentcore/templates/llm_context/README.md +16 -0
- agentcore/templates/llm_context/agentcore.ts +685 -0
- agentcore/templates/llm_context/aws-targets.ts +51 -0
- agentcore/templates/profiles.py +151 -0
- agentcore/templates/render.py +92 -0
- agentcore/templates/renderers.py +83 -0
- agentcore/templates/schema_assets.py +23 -0
- agentcore/templates/template_root.py +28 -0
- agentcore/templates/types.py +192 -0
- agentcore_cli-0.31.1.dist-info/METADATA +84 -0
- agentcore_cli-0.31.1.dist-info/RECORD +655 -0
- agentcore_cli-0.31.1.dist-info/WHEEL +4 -0
- agentcore_cli-0.31.1.dist-info/entry_points.txt +2 -0
- agentcore_cli-0.31.1.dist-info/licenses/LICENSE +175 -0
- agentcore_cli-0.31.1.dist-info/licenses/NOTICE +88 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"""Deploy orchestration building blocks (port of upstream ``src/cli/operations/deploy``)."""
|
|
2
|
+
|
|
3
|
+
from agentcore.cli.external_requirements import (
|
|
4
|
+
NODE_MIN_VERSION,
|
|
5
|
+
DependencyCheckResult,
|
|
6
|
+
SemVer,
|
|
7
|
+
VersionCheckResult,
|
|
8
|
+
check_dependency_versions,
|
|
9
|
+
check_node_version,
|
|
10
|
+
check_uv_version,
|
|
11
|
+
compare_sem_ver,
|
|
12
|
+
format_sem_ver,
|
|
13
|
+
format_version_error,
|
|
14
|
+
parse_sem_ver,
|
|
15
|
+
requires_uv,
|
|
16
|
+
sem_ver_gte,
|
|
17
|
+
)
|
|
18
|
+
from agentcore.operations.deploy.backfill_vpc_id import BackfillVpcIdResult, backfill_container_vpc_ids
|
|
19
|
+
from agentcore.operations.deploy.dependency_sync import (
|
|
20
|
+
SYNC_CDK_DEPENDENCIES_STEP,
|
|
21
|
+
ensure_managed_dependencies,
|
|
22
|
+
failed_sync_result,
|
|
23
|
+
teardown_sync_failure_result,
|
|
24
|
+
to_dep_sync_attrs,
|
|
25
|
+
)
|
|
26
|
+
from agentcore.operations.deploy.ensure_target import ensure_default_deployment_target
|
|
27
|
+
from agentcore.operations.deploy.managed_memory_notice import (
|
|
28
|
+
MANAGED_MEMORY_ADD_NOTICE,
|
|
29
|
+
MANAGED_MEMORY_DEPLOY_NOTICE,
|
|
30
|
+
has_managed_memory_harness,
|
|
31
|
+
)
|
|
32
|
+
from agentcore.operations.deploy.payment_connector_authorization import (
|
|
33
|
+
QuickCreateConnectorAuthorization,
|
|
34
|
+
format_quick_create_connector_authorization,
|
|
35
|
+
get_quick_create_connector_authorizations,
|
|
36
|
+
)
|
|
37
|
+
from agentcore.operations.deploy.post_deploy_observability import setup_transaction_search
|
|
38
|
+
from agentcore.operations.deploy.post_deploy_online_evals import (
|
|
39
|
+
EnableOnlineEvalsResult,
|
|
40
|
+
OnlineEvalEnableResult,
|
|
41
|
+
enable_online_eval_configs,
|
|
42
|
+
)
|
|
43
|
+
from agentcore.operations.deploy.pre_deploy_identity import (
|
|
44
|
+
ApiKeyProviderSetupResult,
|
|
45
|
+
MissingCredential,
|
|
46
|
+
OAuth2ProviderSetupResult,
|
|
47
|
+
PaymentCredentialProviderResult,
|
|
48
|
+
PaymentCredentialProvidersResult,
|
|
49
|
+
PreDeployIdentityResult,
|
|
50
|
+
PreDeployOAuth2Result,
|
|
51
|
+
assert_env_file_exists,
|
|
52
|
+
cleanup_payment_credential_providers,
|
|
53
|
+
get_all_credentials,
|
|
54
|
+
get_missing_credentials,
|
|
55
|
+
has_identity_api_providers,
|
|
56
|
+
has_identity_o_auth_providers,
|
|
57
|
+
has_payment_credential_providers,
|
|
58
|
+
setup_api_key_providers,
|
|
59
|
+
setup_o_auth2_providers,
|
|
60
|
+
setup_payment_credential_providers,
|
|
61
|
+
)
|
|
62
|
+
from agentcore.operations.deploy.preflight import (
|
|
63
|
+
BootstrapCheckResult,
|
|
64
|
+
PreflightContext,
|
|
65
|
+
StackStatusCheckResult,
|
|
66
|
+
SynthResult,
|
|
67
|
+
bootstrap_environment,
|
|
68
|
+
build_cdk_project,
|
|
69
|
+
check_bootstrap_needed,
|
|
70
|
+
check_stack_deployability,
|
|
71
|
+
format_error,
|
|
72
|
+
synthesize_cdk,
|
|
73
|
+
validate_harness_specs,
|
|
74
|
+
validate_project,
|
|
75
|
+
)
|
|
76
|
+
from agentcore.operations.deploy.teardown import (
|
|
77
|
+
DeployedTarget,
|
|
78
|
+
DiscoverDeployedResult,
|
|
79
|
+
destroy_target,
|
|
80
|
+
discover_deployed_targets,
|
|
81
|
+
get_cdk_project_dir,
|
|
82
|
+
perform_stack_teardown,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
__all__ = [
|
|
86
|
+
"MANAGED_MEMORY_ADD_NOTICE",
|
|
87
|
+
"MANAGED_MEMORY_DEPLOY_NOTICE",
|
|
88
|
+
"NODE_MIN_VERSION",
|
|
89
|
+
"SYNC_CDK_DEPENDENCIES_STEP",
|
|
90
|
+
"ApiKeyProviderSetupResult",
|
|
91
|
+
"BackfillVpcIdResult",
|
|
92
|
+
"BootstrapCheckResult",
|
|
93
|
+
"DependencyCheckResult",
|
|
94
|
+
"DeployedTarget",
|
|
95
|
+
"DiscoverDeployedResult",
|
|
96
|
+
"EnableOnlineEvalsResult",
|
|
97
|
+
"MissingCredential",
|
|
98
|
+
"OAuth2ProviderSetupResult",
|
|
99
|
+
"OnlineEvalEnableResult",
|
|
100
|
+
"PaymentCredentialProviderResult",
|
|
101
|
+
"PaymentCredentialProvidersResult",
|
|
102
|
+
"PreDeployIdentityResult",
|
|
103
|
+
"PreDeployOAuth2Result",
|
|
104
|
+
"PreflightContext",
|
|
105
|
+
"QuickCreateConnectorAuthorization",
|
|
106
|
+
"SemVer",
|
|
107
|
+
"StackStatusCheckResult",
|
|
108
|
+
"SynthResult",
|
|
109
|
+
"VersionCheckResult",
|
|
110
|
+
"assert_env_file_exists",
|
|
111
|
+
"backfill_container_vpc_ids",
|
|
112
|
+
"bootstrap_environment",
|
|
113
|
+
"build_cdk_project",
|
|
114
|
+
"check_bootstrap_needed",
|
|
115
|
+
"check_dependency_versions",
|
|
116
|
+
"check_node_version",
|
|
117
|
+
"check_stack_deployability",
|
|
118
|
+
"check_uv_version",
|
|
119
|
+
"cleanup_payment_credential_providers",
|
|
120
|
+
"compare_sem_ver",
|
|
121
|
+
"destroy_target",
|
|
122
|
+
"discover_deployed_targets",
|
|
123
|
+
"enable_online_eval_configs",
|
|
124
|
+
"ensure_default_deployment_target",
|
|
125
|
+
"ensure_managed_dependencies",
|
|
126
|
+
"failed_sync_result",
|
|
127
|
+
"format_error",
|
|
128
|
+
"format_quick_create_connector_authorization",
|
|
129
|
+
"format_sem_ver",
|
|
130
|
+
"format_version_error",
|
|
131
|
+
"get_all_credentials",
|
|
132
|
+
"get_cdk_project_dir",
|
|
133
|
+
"get_missing_credentials",
|
|
134
|
+
"get_quick_create_connector_authorizations",
|
|
135
|
+
"has_identity_api_providers",
|
|
136
|
+
"has_identity_o_auth_providers",
|
|
137
|
+
"has_managed_memory_harness",
|
|
138
|
+
"has_payment_credential_providers",
|
|
139
|
+
"parse_sem_ver",
|
|
140
|
+
"perform_stack_teardown",
|
|
141
|
+
"requires_uv",
|
|
142
|
+
"sem_ver_gte",
|
|
143
|
+
"setup_api_key_providers",
|
|
144
|
+
"setup_o_auth2_providers",
|
|
145
|
+
"setup_payment_credential_providers",
|
|
146
|
+
"setup_transaction_search",
|
|
147
|
+
"synthesize_cdk",
|
|
148
|
+
"teardown_sync_failure_result",
|
|
149
|
+
"to_dep_sync_attrs",
|
|
150
|
+
"validate_harness_specs",
|
|
151
|
+
"validate_project",
|
|
152
|
+
]
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"""Backfill ``networkConfig.vpcId`` for older Container+VPC configs (port of ``backfill-vpc-id.ts``).
|
|
2
|
+
|
|
3
|
+
CDK synth re-reads agentcore.json / harness.json from disk, so the resolved VPC id is written there.
|
|
4
|
+
On a preview (``persist=False``) the returned ``restore()`` reverts the files; a failure mid-run
|
|
5
|
+
rolls back any partial preview writes before re-raising.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from collections.abc import Callable
|
|
11
|
+
from dataclasses import dataclass, field
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
from agentcore.aws import agentcore_control
|
|
15
|
+
from agentcore.schema.constants import is_container_build
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@dataclass
|
|
19
|
+
class BackfillVpcIdResult:
|
|
20
|
+
backfilled: list[str] = field(default_factory=list)
|
|
21
|
+
restore: Callable[[], None] = lambda: None
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _needs_vpc_id(spec: Any) -> bool:
|
|
25
|
+
nc = getattr(spec, "network_config", None)
|
|
26
|
+
return (
|
|
27
|
+
is_container_build(spec)
|
|
28
|
+
and getattr(spec, "network_mode", None) == "VPC"
|
|
29
|
+
and nc is not None
|
|
30
|
+
and len(nc.subnets) > 0
|
|
31
|
+
and not nc.vpc_id
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def backfill_container_vpc_ids(
|
|
36
|
+
config_io: Any, project_spec: Any, region: str, persist: bool = True
|
|
37
|
+
) -> BackfillVpcIdResult:
|
|
38
|
+
backfilled: list[str] = []
|
|
39
|
+
originals: dict[str, str] = {}
|
|
40
|
+
|
|
41
|
+
def snapshot(path: str) -> None:
|
|
42
|
+
if persist or path in originals:
|
|
43
|
+
return
|
|
44
|
+
with open(path, encoding="utf-8") as fh:
|
|
45
|
+
originals[path] = fh.read()
|
|
46
|
+
|
|
47
|
+
def restore() -> None:
|
|
48
|
+
failures = []
|
|
49
|
+
for path, content in originals.items():
|
|
50
|
+
try:
|
|
51
|
+
with open(path, "w", encoding="utf-8") as fh:
|
|
52
|
+
fh.write(content)
|
|
53
|
+
except OSError as exc:
|
|
54
|
+
failures.append(f"{path}: {exc}")
|
|
55
|
+
if failures:
|
|
56
|
+
raise RuntimeError(f"Failed to restore {len(failures)} config file(s) after preview: {'; '.join(failures)}")
|
|
57
|
+
|
|
58
|
+
try:
|
|
59
|
+
runtimes_changed = False
|
|
60
|
+
for runtime in project_spec.runtimes or []:
|
|
61
|
+
if _needs_vpc_id(runtime):
|
|
62
|
+
runtime.network_config.vpc_id = agentcore_control.resolve_vpc_id_from_subnets(
|
|
63
|
+
list(runtime.network_config.subnets), region
|
|
64
|
+
)
|
|
65
|
+
runtimes_changed = True
|
|
66
|
+
backfilled.append(runtime.name)
|
|
67
|
+
if runtimes_changed:
|
|
68
|
+
snapshot(config_io.get_agent_config_path())
|
|
69
|
+
config_io.write_project_spec(project_spec)
|
|
70
|
+
|
|
71
|
+
for entry in project_spec.harnesses or []:
|
|
72
|
+
harness = config_io.read_harness_spec(entry.name)
|
|
73
|
+
if _needs_vpc_id(harness):
|
|
74
|
+
harness.network_config.vpc_id = agentcore_control.resolve_vpc_id_from_subnets(
|
|
75
|
+
list(harness.network_config.subnets), region
|
|
76
|
+
)
|
|
77
|
+
snapshot(config_io.get_harness_config_path(entry.name))
|
|
78
|
+
config_io.write_harness_spec(entry.name, harness)
|
|
79
|
+
backfilled.append(entry.name)
|
|
80
|
+
except Exception:
|
|
81
|
+
try:
|
|
82
|
+
restore()
|
|
83
|
+
except Exception: # noqa: BLE001 - preserve the original error
|
|
84
|
+
pass
|
|
85
|
+
raise
|
|
86
|
+
|
|
87
|
+
return BackfillVpcIdResult(backfilled=backfilled, restore=restore)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
__all__ = ["BackfillVpcIdResult", "backfill_container_vpc_ids"]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""Deploy-skip detection for harness-only projects (port of ``change-detection.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import hashlib
|
|
6
|
+
import json
|
|
7
|
+
import os
|
|
8
|
+
from typing import Any
|
|
9
|
+
|
|
10
|
+
from agentcore.lib.schemas.io.config_io import ConfigIO, to_jsonable
|
|
11
|
+
from agentcore.lib.utils.json_format import to_json_string
|
|
12
|
+
from agentcore.operations.deploy.ensure_target import ensure_default_deployment_target
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _js_json(value: Any) -> str:
|
|
16
|
+
# Must equal JSON.stringify(value) byte for byte so hashes match ones written by the npm CLI.
|
|
17
|
+
return to_json_string(to_jsonable(value), None)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _read(path: str) -> str | None:
|
|
21
|
+
try:
|
|
22
|
+
with open(path, encoding="utf-8") as fh:
|
|
23
|
+
return fh.read()
|
|
24
|
+
except OSError:
|
|
25
|
+
return None
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def compute_project_deploy_hash(config_io: Any) -> str:
|
|
29
|
+
"""SHA-256 (first 16 hex chars) over agentcore.json, harness files and aws-targets.json."""
|
|
30
|
+
digest = hashlib.sha256()
|
|
31
|
+
project_spec = config_io.read_project_spec()
|
|
32
|
+
digest.update(_js_json(project_spec).encode("utf-8"))
|
|
33
|
+
|
|
34
|
+
project_root = os.path.dirname(config_io.get_config_root())
|
|
35
|
+
for harness in project_spec.harnesses or []:
|
|
36
|
+
harness_dir = os.path.join(project_root, harness.path)
|
|
37
|
+
harness_json = _read(os.path.join(harness_dir, "harness.json"))
|
|
38
|
+
if harness_json is not None:
|
|
39
|
+
digest.update(harness_json.encode("utf-8"))
|
|
40
|
+
try:
|
|
41
|
+
dockerfile = json.loads(harness_json).get("dockerfile")
|
|
42
|
+
except (ValueError, AttributeError):
|
|
43
|
+
dockerfile = None
|
|
44
|
+
if isinstance(dockerfile, str) and dockerfile:
|
|
45
|
+
content = _read(os.path.join(harness_dir, dockerfile))
|
|
46
|
+
if content is not None:
|
|
47
|
+
digest.update(content.encode("utf-8"))
|
|
48
|
+
prompt = _read(os.path.join(harness_dir, "system-prompt.md"))
|
|
49
|
+
if prompt is not None:
|
|
50
|
+
digest.update(prompt.encode("utf-8"))
|
|
51
|
+
|
|
52
|
+
digest.update(_js_json(config_io.read_aws_deployment_targets()).encode("utf-8"))
|
|
53
|
+
return digest.hexdigest()[:16]
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def can_skip_deploy(config_io: Any) -> bool:
|
|
57
|
+
"""True when a harness-only project is unchanged since its last deploy (to every target)."""
|
|
58
|
+
try:
|
|
59
|
+
project_spec = config_io.read_project_spec()
|
|
60
|
+
if project_spec.runtimes:
|
|
61
|
+
return False
|
|
62
|
+
current = compute_project_deploy_hash(config_io)
|
|
63
|
+
state = config_io.read_deployed_state()
|
|
64
|
+
if not state.targets:
|
|
65
|
+
return False
|
|
66
|
+
for target in state.targets.values():
|
|
67
|
+
stored = target.resources.deploy_hash if target.resources else None
|
|
68
|
+
if stored != current:
|
|
69
|
+
return False
|
|
70
|
+
return True
|
|
71
|
+
except Exception: # noqa: BLE001
|
|
72
|
+
return False
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def is_deploy_skippable() -> bool:
|
|
76
|
+
try:
|
|
77
|
+
config_io = ConfigIO()
|
|
78
|
+
ensure_default_deployment_target(config_io)
|
|
79
|
+
return can_skip_deploy(config_io)
|
|
80
|
+
except Exception: # noqa: BLE001
|
|
81
|
+
return False
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
__all__ = ["can_skip_deploy", "compute_project_deploy_hash", "is_deploy_skippable"]
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""Constants from upstream ``src/cli/constants.ts`` that only deploy needs.
|
|
2
|
+
|
|
3
|
+
``cli/constants.py`` belongs to another area; deploy-only values live here instead.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
from typing import Final
|
|
10
|
+
|
|
11
|
+
from agentcore import __version__ as PACKAGE_VERSION
|
|
12
|
+
|
|
13
|
+
DISTRO_MODE: Final = "PROD_DISTRO"
|
|
14
|
+
|
|
15
|
+
DISTRO_CONFIG: Final = {
|
|
16
|
+
"PROD_DISTRO": {
|
|
17
|
+
"packageName": "@aws/agentcore",
|
|
18
|
+
"registryUrl": "https://registry.npmjs.org",
|
|
19
|
+
"installCommand": "npm install -g @aws/agentcore@latest",
|
|
20
|
+
},
|
|
21
|
+
"PRIVATE_DEV_DISTRO": {
|
|
22
|
+
"packageName": "@aws/agentcore",
|
|
23
|
+
"registryUrl": "https://npm.pkg.github.com",
|
|
24
|
+
"installCommand": "npm install -g @aws/agentcore@latest --registry=https://npm.pkg.github.com",
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass(frozen=True)
|
|
30
|
+
class DistroConfig:
|
|
31
|
+
package_name: str
|
|
32
|
+
registry_url: str
|
|
33
|
+
install_command: str
|
|
34
|
+
dist_tag: str
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def get_npm_dist_tag() -> str:
|
|
38
|
+
return "preview" if "-" in PACKAGE_VERSION else "latest"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def get_distro_config() -> DistroConfig:
|
|
42
|
+
base = DISTRO_CONFIG[DISTRO_MODE]
|
|
43
|
+
tag = get_npm_dist_tag()
|
|
44
|
+
return DistroConfig(
|
|
45
|
+
package_name=base["packageName"],
|
|
46
|
+
registry_url=base["registryUrl"],
|
|
47
|
+
install_command=base["installCommand"].replace("@latest", f"@{tag}"),
|
|
48
|
+
dist_tag=tag,
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# tui/constants.ts BOOTSTRAP (used by the interactive deploy prompt).
|
|
53
|
+
BOOTSTRAP_TITLE: Final = "CDK bootstrapping required"
|
|
54
|
+
BOOTSTRAP_EXPLAINER: Final = (
|
|
55
|
+
"The AgentCore CLI uses AWS CDK and CloudFormation to manage AWS resources.\n"
|
|
56
|
+
"CDK bootstrapping is a one-time setup that creates resources CDK needs to deploy stacks.\n"
|
|
57
|
+
"This will create a CDKToolkit stack in your AWS account."
|
|
58
|
+
)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""Managed CDK dependency pinning for deploy (port of ``dependency-sync.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import dataclasses
|
|
6
|
+
import os
|
|
7
|
+
from importlib.resources import as_file
|
|
8
|
+
from typing import Any
|
|
9
|
+
|
|
10
|
+
from agentcore.lib.dependency_management import sync as _sync
|
|
11
|
+
from agentcore.lib.dependency_management.types import DependencySyncOutcome, DependencySyncResult
|
|
12
|
+
from agentcore.lib.schemas.io.global_config import read_global_config_sync
|
|
13
|
+
from agentcore.operations.deploy.constants import get_distro_config
|
|
14
|
+
from agentcore.templates.template_root import get_template_path
|
|
15
|
+
|
|
16
|
+
# Step label shared by the CLI and interactive deploy flows.
|
|
17
|
+
SYNC_CDK_DEPENDENCIES_STEP = "Sync CDK dependencies"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _no_op_sync_result(outcome: DependencySyncOutcome, warnings: list[str] | None = None) -> DependencySyncResult:
|
|
21
|
+
return DependencySyncResult(
|
|
22
|
+
outcome=outcome,
|
|
23
|
+
opted_out=False,
|
|
24
|
+
check_only=False,
|
|
25
|
+
migrated_from_caret=False,
|
|
26
|
+
reinstalled=False,
|
|
27
|
+
skew_warning=False,
|
|
28
|
+
changes=[],
|
|
29
|
+
restored=[],
|
|
30
|
+
skipped=[],
|
|
31
|
+
warnings=list(warnings or []),
|
|
32
|
+
notice=None,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def failed_sync_result() -> DependencySyncResult:
|
|
37
|
+
"""Attached to the failure result when the sync itself throws (nothing took effect)."""
|
|
38
|
+
return _no_op_sync_result("failed")
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def teardown_sync_failure_result(err: BaseException) -> DependencySyncResult:
|
|
42
|
+
"""Warning-only result for a DependencySyncError on a teardown deploy (teardown is never blocked)."""
|
|
43
|
+
return _no_op_sync_result("failure-suppressed", [f"Dependency sync failed (continuing with teardown): {err}"])
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def to_dep_sync_attrs(sync: DependencySyncResult) -> dict[str, Any]:
|
|
47
|
+
"""dep_sync_* telemetry attrs (telemetry itself is not ported; kept for parity)."""
|
|
48
|
+
return {
|
|
49
|
+
"dep_sync_outcome": sync.outcome,
|
|
50
|
+
"dep_sync_changed_count": len(sync.changes) + len(sync.restored),
|
|
51
|
+
"dep_sync_migrated": sync.migrated_from_caret,
|
|
52
|
+
"dep_sync_opted_out": sync.opted_out,
|
|
53
|
+
"dep_sync_skew_warning": sync.skew_warning,
|
|
54
|
+
"dep_sync_reinstalled": sync.reinstalled,
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def _camel(name: str) -> str:
|
|
59
|
+
head, *rest = name.rstrip("_").split("_")
|
|
60
|
+
return head + "".join(p[:1].upper() + p[1:] for p in rest)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def dependency_sync_result_to_json(sync: DependencySyncResult) -> dict[str, Any]:
|
|
64
|
+
"""The camelCase JSON upstream prints for ``dependencySyncResult`` (``from_`` -> ``from``)."""
|
|
65
|
+
|
|
66
|
+
def convert(value: Any) -> Any:
|
|
67
|
+
if dataclasses.is_dataclass(value) and not isinstance(value, type):
|
|
68
|
+
return {_camel(f.name): convert(getattr(value, f.name)) for f in dataclasses.fields(value)}
|
|
69
|
+
if isinstance(value, list):
|
|
70
|
+
return [convert(v) for v in value]
|
|
71
|
+
return value
|
|
72
|
+
|
|
73
|
+
return convert(sync)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def ensure_managed_dependencies(
|
|
77
|
+
cdk_project: Any, *, check_only: bool = False, treat_skew_as_warning: bool = False
|
|
78
|
+
) -> DependencySyncResult:
|
|
79
|
+
"""Pin ``agentcore/cdk/package.json`` to the CLI's vended versions (skipped with AGENTCORE_SKIP_INSTALL).
|
|
80
|
+
|
|
81
|
+
Raises ``CliVersionTooOldError`` on newer-than-CLI skew (unless ``treat_skew_as_warning`` or opted out)
|
|
82
|
+
and ``DependencySyncError`` on rewrite/install failure.
|
|
83
|
+
"""
|
|
84
|
+
if os.environ.get("AGENTCORE_SKIP_INSTALL"):
|
|
85
|
+
return _no_op_sync_result("skipped")
|
|
86
|
+
disabled = read_global_config_sync().get("disableDependencyManagement") is True
|
|
87
|
+
with as_file(get_template_path("cdk", "package.json")) as vended:
|
|
88
|
+
return _sync.sync_managed_dependencies(
|
|
89
|
+
vended_package_json_path=str(vended),
|
|
90
|
+
project_dir=str(cdk_project.project_dir),
|
|
91
|
+
disabled=disabled,
|
|
92
|
+
mode="check" if check_only else "apply",
|
|
93
|
+
treat_skew_as_warning=treat_skew_as_warning,
|
|
94
|
+
install_command=get_distro_config().install_command,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
__all__ = [
|
|
99
|
+
"SYNC_CDK_DEPENDENCIES_STEP",
|
|
100
|
+
"dependency_sync_result_to_json",
|
|
101
|
+
"ensure_managed_dependencies",
|
|
102
|
+
"failed_sync_result",
|
|
103
|
+
"teardown_sync_failure_result",
|
|
104
|
+
"to_dep_sync_attrs",
|
|
105
|
+
]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""Auto-populate aws-targets.json for non-interactive deploys (port of ``ensure-target.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from agentcore.aws import aws_context
|
|
8
|
+
from agentcore.lib.errors.types import ConfigNotFoundError
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def ensure_default_deployment_target(config_io: Any) -> bool:
|
|
12
|
+
"""Write a ``default`` target from the detected AWS context when none exist.
|
|
13
|
+
|
|
14
|
+
A missing ``aws-targets.json`` counts as empty; any other read error is surfaced. Returns True
|
|
15
|
+
when a target was written.
|
|
16
|
+
"""
|
|
17
|
+
try:
|
|
18
|
+
targets = config_io.read_aws_deployment_targets()
|
|
19
|
+
except ConfigNotFoundError:
|
|
20
|
+
targets = []
|
|
21
|
+
if targets:
|
|
22
|
+
return False
|
|
23
|
+
ctx = aws_context.detect_aws_context()
|
|
24
|
+
if not ctx.account_id:
|
|
25
|
+
return False
|
|
26
|
+
config_io.write_aws_deployment_targets([{"name": "default", "account": ctx.account_id, "region": ctx.region}])
|
|
27
|
+
return True
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
__all__ = ["ensure_default_deployment_target"]
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Gateway target sync statuses after deploy (port of ``gateway-status.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
|
|
7
|
+
from agentcore.aws.agentcore_control import create_control_client
|
|
8
|
+
|
|
9
|
+
STATUS_DISPLAY = {
|
|
10
|
+
"READY": "✓ synced",
|
|
11
|
+
"SYNCHRONIZING": "⟳ syncing...",
|
|
12
|
+
"SYNCHRONIZE_UNSUCCESSFUL": "⚠ sync failed",
|
|
13
|
+
"CREATING": "⟳ creating...",
|
|
14
|
+
"UPDATING": "⟳ updating...",
|
|
15
|
+
"UPDATE_UNSUCCESSFUL": "⚠ update failed",
|
|
16
|
+
"FAILED": "✗ failed",
|
|
17
|
+
"DELETING": "⟳ deleting...",
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@dataclass(frozen=True)
|
|
22
|
+
class TargetSyncStatus:
|
|
23
|
+
name: str
|
|
24
|
+
status: str
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def format_target_status(status: str) -> str:
|
|
28
|
+
return STATUS_DISPLAY.get(status, status)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def get_gateway_target_statuses(gateway_id: str, region: str) -> list[TargetSyncStatus]:
|
|
32
|
+
"""Statuses of every target in a gateway; ``[]`` on any error (non-blocking)."""
|
|
33
|
+
try:
|
|
34
|
+
client = create_control_client(region)
|
|
35
|
+
response = client.list_gateway_targets(gatewayIdentifier=gateway_id, maxResults=100)
|
|
36
|
+
return [
|
|
37
|
+
TargetSyncStatus(name=t.get("name") or "unknown", status=t.get("status") or "UNKNOWN")
|
|
38
|
+
for t in response.get("items") or []
|
|
39
|
+
]
|
|
40
|
+
except Exception: # noqa: BLE001
|
|
41
|
+
return []
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
__all__ = ["STATUS_DISPLAY", "TargetSyncStatus", "format_target_status", "get_gateway_target_statuses"]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""Managed-memory heads-up shown before the slow CFN apply (port of ``managed-memory-notice.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Sequence
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
MANAGED_MEMORY_DEPLOY_NOTICE = (
|
|
9
|
+
"Managed memory: this harness provisions a dedicated AgentCore Memory resource on deploy "
|
|
10
|
+
"(you requested --memory-mode managed).\n\n"
|
|
11
|
+
"Memory provisioning can take 3-5 minutes. We know this is slow, and we will be reducing this "
|
|
12
|
+
"provisioning time. To skip it, redeploy with --memory-mode disabled."
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
MANAGED_MEMORY_ADD_NOTICE = (
|
|
16
|
+
"Managed memory: this harness will provision a dedicated AgentCore Memory resource on deploy "
|
|
17
|
+
"(you requested --memory-mode managed).\n\n"
|
|
18
|
+
"Memory provisioning can take 3-5 minutes. We know this is slow, and we will be reducing this "
|
|
19
|
+
"provisioning time. To skip it, recreate the harness with --memory-mode disabled."
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def has_managed_memory_harness(config_io: Any, harnesses: Sequence[Any] | None) -> bool:
|
|
24
|
+
"""True when any harness.json explicitly uses ``memory.mode == 'managed'`` (unreadable specs don't count)."""
|
|
25
|
+
for harness in harnesses or []:
|
|
26
|
+
try:
|
|
27
|
+
spec = config_io.read_harness_spec(harness.name)
|
|
28
|
+
except Exception: # noqa: BLE001
|
|
29
|
+
continue
|
|
30
|
+
memory = getattr(spec, "memory", None)
|
|
31
|
+
if memory is not None and getattr(memory, "mode", None) == "managed":
|
|
32
|
+
return True
|
|
33
|
+
return False
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
__all__ = ["MANAGED_MEMORY_ADD_NOTICE", "MANAGED_MEMORY_DEPLOY_NOTICE", "has_managed_memory_harness"]
|