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,90 @@
|
|
|
1
|
+
"""Knowledge bases (port of ``primitives/knowledge-base.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Annotated, Final, Literal, get_args
|
|
6
|
+
|
|
7
|
+
from pydantic import Field
|
|
8
|
+
|
|
9
|
+
from ..._zod import StrictModel, array_checks, js_regex, unique_by, zstr
|
|
10
|
+
|
|
11
|
+
# 1-48 chars, starts with a letter, alphanumeric + dash + underscore.
|
|
12
|
+
KnowledgeBaseName = zstr(
|
|
13
|
+
min=1,
|
|
14
|
+
max=48,
|
|
15
|
+
min_msg="Name is required",
|
|
16
|
+
pattern=r"^[a-zA-Z][a-zA-Z0-9_-]{0,47}$",
|
|
17
|
+
pattern_msg=(
|
|
18
|
+
"Must begin with a letter and contain only alphanumeric characters, dashes, and underscores (max 48 chars)"
|
|
19
|
+
),
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
# AWS S3 bucket naming rules: 3-63 chars, lowercase/digit/dot/hyphen, start+end alnum, no '..',
|
|
23
|
+
# no reserved `xn--` / `sthree-` prefixes or `-s3alias` suffix.
|
|
24
|
+
_S3_BUCKET_NAME = js_regex(r"^(?!xn--)(?!sthree-)[a-z0-9](?!.*\.\.)[a-z0-9.-]{1,61}[a-z0-9](?<!-s3alias)$")
|
|
25
|
+
_S3_URI = js_regex(r"^s3:\/\/([^/]+)(?:\/.*)?$")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _is_valid_s3_uri(value: str) -> bool:
|
|
29
|
+
m = _S3_URI.search(value)
|
|
30
|
+
return bool(m) and _S3_BUCKET_NAME.search(m.group(1)) is not None
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class S3DataSource(StrictModel):
|
|
34
|
+
"""S3 data source; ``uri`` must be ``s3://bucket[/prefix]`` with an AWS-compliant bucket name."""
|
|
35
|
+
|
|
36
|
+
type: Literal["S3"]
|
|
37
|
+
uri: zstr(
|
|
38
|
+
min=1,
|
|
39
|
+
refines=((_is_valid_s3_uri, "Must be a valid s3:// URI with an AWS-compliant bucket name"),),
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# Wire-verbatim `connectorParameters.type` literals of the Bedrock managed-connector API.
|
|
44
|
+
ConnectorDataSourceType = Literal["WEB", "CONFLUENCE", "SHAREPOINT", "ONEDRIVE", "GOOGLEDRIVE"]
|
|
45
|
+
CONNECTOR_DATA_SOURCE_TYPES: Final[tuple[ConnectorDataSourceType, ...]] = get_args(ConnectorDataSourceType)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class ConnectorFileDataSource(StrictModel):
|
|
49
|
+
"""Non-S3 data source whose connector parameters live in a project-relative JSON file."""
|
|
50
|
+
|
|
51
|
+
type: ConnectorDataSourceType
|
|
52
|
+
connector_config_file: zstr(min=1, min_msg="connectorConfigFile path is required")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
DataSource = Annotated[S3DataSource | ConnectorFileDataSource, Field(discriminator="type")]
|
|
56
|
+
|
|
57
|
+
KnowledgeBaseType = Literal["AgentCoreKnowledgeBase"]
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def _data_source_key(ds: S3DataSource | ConnectorFileDataSource) -> str:
|
|
61
|
+
return ds.uri if isinstance(ds, S3DataSource) else ds.connector_config_file
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class KnowledgeBase(StrictModel):
|
|
65
|
+
"""A knowledge base the CLI creates and owns, with its data sources and IAM role."""
|
|
66
|
+
|
|
67
|
+
type: KnowledgeBaseType = "AgentCoreKnowledgeBase"
|
|
68
|
+
name: KnowledgeBaseName
|
|
69
|
+
description: zstr(max=2048) | None = None
|
|
70
|
+
data_sources: Annotated[
|
|
71
|
+
list[DataSource],
|
|
72
|
+
array_checks(
|
|
73
|
+
min=1,
|
|
74
|
+
min_msg="At least one data source is required",
|
|
75
|
+
extra=[unique_by(_data_source_key, lambda k: f"Duplicate data source: {k}")],
|
|
76
|
+
),
|
|
77
|
+
]
|
|
78
|
+
gateway: zstr(min=1) | None = None
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
__all__ = [
|
|
82
|
+
"CONNECTOR_DATA_SOURCE_TYPES",
|
|
83
|
+
"ConnectorDataSourceType",
|
|
84
|
+
"ConnectorFileDataSource",
|
|
85
|
+
"DataSource",
|
|
86
|
+
"KnowledgeBase",
|
|
87
|
+
"KnowledgeBaseName",
|
|
88
|
+
"KnowledgeBaseType",
|
|
89
|
+
"S3DataSource",
|
|
90
|
+
]
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"""Memory strategies (port of ``primitives/memory.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Final, Literal, get_args
|
|
6
|
+
|
|
7
|
+
from pydantic import model_validator
|
|
8
|
+
|
|
9
|
+
from ..._zod import Issue, ZodModel, raise_issues, zstr
|
|
10
|
+
|
|
11
|
+
# Maps to AWS MemoryStrategy types (SUMMARIZATION -> SummaryMemoryStrategy in CloudFormation).
|
|
12
|
+
MemoryStrategyType = Literal["SEMANTIC", "SUMMARIZATION", "USER_PREFERENCE", "EPISODIC"]
|
|
13
|
+
MEMORY_STRATEGY_TYPES: Final[tuple[MemoryStrategyType, ...]] = get_args(MemoryStrategyType)
|
|
14
|
+
|
|
15
|
+
# Default namespace templates per strategy type (match the CLI session.py templates).
|
|
16
|
+
DEFAULT_STRATEGY_NAMESPACE_TEMPLATES: Final[dict[MemoryStrategyType, list[str]]] = {
|
|
17
|
+
"SEMANTIC": ["/users/{actorId}/facts"],
|
|
18
|
+
"USER_PREFERENCE": ["/users/{actorId}/preferences"],
|
|
19
|
+
"SUMMARIZATION": ["/summaries/{actorId}/{sessionId}"],
|
|
20
|
+
"EPISODIC": ["/episodes/{actorId}/{sessionId}"],
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# Deprecated: use DEFAULT_STRATEGY_NAMESPACE_TEMPLATES.
|
|
24
|
+
DEFAULT_STRATEGY_NAMESPACES: Final = DEFAULT_STRATEGY_NAMESPACE_TEMPLATES
|
|
25
|
+
|
|
26
|
+
# Reflection templates must be the same as or a prefix of episode templates.
|
|
27
|
+
DEFAULT_EPISODIC_REFLECTION_NAMESPACE_TEMPLATES: Final[list[str]] = ["/episodes/{actorId}"]
|
|
28
|
+
|
|
29
|
+
# Deprecated: use DEFAULT_EPISODIC_REFLECTION_NAMESPACE_TEMPLATES.
|
|
30
|
+
DEFAULT_EPISODIC_REFLECTION_NAMESPACES: Final = DEFAULT_EPISODIC_REFLECTION_NAMESPACE_TEMPLATES
|
|
31
|
+
|
|
32
|
+
MemoryStrategyName = zstr(
|
|
33
|
+
min=1,
|
|
34
|
+
max=48,
|
|
35
|
+
pattern=r"^[a-zA-Z][a-zA-Z0-9_]{0,47}$",
|
|
36
|
+
pattern_msg="Must begin with a letter and contain only alphanumeric characters and underscores (max 48 chars)",
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class MemoryStrategy(ZodModel):
|
|
41
|
+
"""A memory strategy with optional namespace scoping.
|
|
42
|
+
|
|
43
|
+
``namespaces`` / ``reflectionNamespaces`` are deprecated aliases of the ``*Templates`` fields;
|
|
44
|
+
specifying both forms for the same concept is rejected.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
type: MemoryStrategyType
|
|
48
|
+
name: MemoryStrategyName | None = None
|
|
49
|
+
description: str | None = None
|
|
50
|
+
namespace_templates: list[str] | None = None
|
|
51
|
+
namespaces: list[str] | None = None
|
|
52
|
+
reflection_namespace_templates: list[str] | None = None
|
|
53
|
+
reflection_namespaces: list[str] | None = None
|
|
54
|
+
|
|
55
|
+
@model_validator(mode="after")
|
|
56
|
+
def _refine(self) -> MemoryStrategy:
|
|
57
|
+
issues: list[Issue] = []
|
|
58
|
+
path = ("reflectionNamespaceTemplates",)
|
|
59
|
+
if self.namespaces and self.namespace_templates:
|
|
60
|
+
issues.append(
|
|
61
|
+
(
|
|
62
|
+
("namespaceTemplates",),
|
|
63
|
+
(
|
|
64
|
+
"'namespaces' and 'namespaceTemplates' are mutually exclusive. "
|
|
65
|
+
"Prefer 'namespaceTemplates' ('namespaces' is deprecated)."
|
|
66
|
+
),
|
|
67
|
+
)
|
|
68
|
+
)
|
|
69
|
+
if self.reflection_namespaces and self.reflection_namespace_templates:
|
|
70
|
+
issues.append(
|
|
71
|
+
(
|
|
72
|
+
path,
|
|
73
|
+
(
|
|
74
|
+
"'reflectionNamespaces' and 'reflectionNamespaceTemplates' are mutually exclusive. "
|
|
75
|
+
"Prefer 'reflectionNamespaceTemplates' ('reflectionNamespaces' is deprecated)."
|
|
76
|
+
),
|
|
77
|
+
)
|
|
78
|
+
)
|
|
79
|
+
if self.type != "EPISODIC" and (
|
|
80
|
+
self.reflection_namespace_templates is not None or self.reflection_namespaces is not None
|
|
81
|
+
):
|
|
82
|
+
issues.append((path, "'reflectionNamespaceTemplates' is only allowed on EPISODIC strategies"))
|
|
83
|
+
if self.type == "EPISODIC":
|
|
84
|
+
reflection = (
|
|
85
|
+
self.reflection_namespace_templates
|
|
86
|
+
if self.reflection_namespace_templates is not None
|
|
87
|
+
else self.reflection_namespaces
|
|
88
|
+
)
|
|
89
|
+
if not reflection:
|
|
90
|
+
issues.append((path, "EPISODIC strategy requires reflectionNamespaceTemplates"))
|
|
91
|
+
templates = self.namespace_templates if self.namespace_templates is not None else self.namespaces
|
|
92
|
+
if (
|
|
93
|
+
reflection is not None
|
|
94
|
+
and templates is not None
|
|
95
|
+
and not all(any(ns.startswith(ref) for ns in templates) for ref in reflection)
|
|
96
|
+
):
|
|
97
|
+
issues.append(
|
|
98
|
+
(path, "Each reflectionNamespaceTemplate must be a prefix of at least one namespaceTemplate")
|
|
99
|
+
)
|
|
100
|
+
raise_issues(issues, self)
|
|
101
|
+
return self
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
__all__ = [
|
|
105
|
+
"DEFAULT_EPISODIC_REFLECTION_NAMESPACES",
|
|
106
|
+
"DEFAULT_EPISODIC_REFLECTION_NAMESPACE_TEMPLATES",
|
|
107
|
+
"DEFAULT_STRATEGY_NAMESPACES",
|
|
108
|
+
"DEFAULT_STRATEGY_NAMESPACE_TEMPLATES",
|
|
109
|
+
"MEMORY_STRATEGY_TYPES",
|
|
110
|
+
"MemoryStrategy",
|
|
111
|
+
"MemoryStrategyName",
|
|
112
|
+
"MemoryStrategyType",
|
|
113
|
+
]
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"""Online evaluation configs (port of ``primitives/online-eval-config.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Annotated, Literal
|
|
6
|
+
|
|
7
|
+
from pydantic import model_validator
|
|
8
|
+
|
|
9
|
+
from ..._zod import Issue, ZBool, ZodModel, array_checks, raise_issues, znum, zstr
|
|
10
|
+
from .tags import Tags
|
|
11
|
+
|
|
12
|
+
OnlineEvalConfigName = zstr(
|
|
13
|
+
min=1,
|
|
14
|
+
max=48,
|
|
15
|
+
min_msg="Name is required",
|
|
16
|
+
pattern=r"^[a-zA-Z][a-zA-Z0-9_]{0,47}$",
|
|
17
|
+
pattern_msg="Must begin with a letter and contain only alphanumeric characters and underscores (max 48 chars)",
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
ClusteringFrequency = Literal["DAILY", "WEEKLY", "MONTHLY"]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class ClusteringConfig(ZodModel):
|
|
24
|
+
frequencies: Annotated[list[ClusteringFrequency], array_checks(min=1, max=3)]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class OnlineEvalConfig(ZodModel):
|
|
28
|
+
name: OnlineEvalConfigName
|
|
29
|
+
# Agent name to monitor (must match a project agent). Required for managed AgentCore agents.
|
|
30
|
+
agent: zstr(min=1, min_msg="Agent name is required") | None = None
|
|
31
|
+
# Optional runtime endpoint name to scope monitoring to a specific endpoint.
|
|
32
|
+
endpoint: zstr(min=1) | None = None
|
|
33
|
+
# CloudWatch log group names for custom/3rd-party agents (1-5 entries).
|
|
34
|
+
log_group_names: Annotated[list[zstr(min=1)], array_checks(min=1, max=5)] | None = None
|
|
35
|
+
# Service names to filter traces for custom/3rd-party agents.
|
|
36
|
+
service_names: Annotated[list[zstr(min=1)], array_checks(min=1)] | None = None
|
|
37
|
+
# Evaluator names (custom), Builtin.* IDs, or evaluator ARNs.
|
|
38
|
+
evaluators: list[zstr(min=1)] | None = None
|
|
39
|
+
insights: list[zstr(min=1)] | None = None
|
|
40
|
+
clustering_config: ClusteringConfig | None = None
|
|
41
|
+
# Sampling rate as a percentage (0.01 to 100).
|
|
42
|
+
sampling_rate: znum(ge=0.01, le=100)
|
|
43
|
+
description: zstr(max=200) | None = None
|
|
44
|
+
enable_on_create: ZBool | None = None
|
|
45
|
+
tags: Tags | None = None
|
|
46
|
+
|
|
47
|
+
@model_validator(mode="after")
|
|
48
|
+
def _refine(self) -> OnlineEvalConfig:
|
|
49
|
+
issues: list[Issue] = []
|
|
50
|
+
has_agent = self.agent is not None
|
|
51
|
+
has_log_groups = self.log_group_names is not None
|
|
52
|
+
has_evaluators = bool(self.evaluators)
|
|
53
|
+
has_insights = bool(self.insights)
|
|
54
|
+
if not (has_agent or has_log_groups):
|
|
55
|
+
issues.append(((), 'Either "agent" or "logGroupNames" must be provided'))
|
|
56
|
+
if has_agent and has_log_groups:
|
|
57
|
+
issues.append(((), '"agent" and "logGroupNames" are mutually exclusive'))
|
|
58
|
+
if self.endpoint is not None and not has_agent:
|
|
59
|
+
issues.append(((), '"endpoint" requires "agent"'))
|
|
60
|
+
if self.service_names is not None and not has_log_groups:
|
|
61
|
+
issues.append(((), '"serviceNames" requires "logGroupNames"'))
|
|
62
|
+
if not (has_evaluators or has_insights):
|
|
63
|
+
issues.append(((), "At least one of evaluators or insights must be provided"))
|
|
64
|
+
if has_evaluators and has_insights:
|
|
65
|
+
issues.append(((), "Cannot have both evaluators and insights (preview constraint)"))
|
|
66
|
+
if self.clustering_config is not None and not has_insights:
|
|
67
|
+
issues.append(((), "clusteringConfig requires insights to be set"))
|
|
68
|
+
raise_issues(issues, self)
|
|
69
|
+
return self
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
__all__ = [
|
|
73
|
+
"ClusteringConfig",
|
|
74
|
+
"ClusteringFrequency",
|
|
75
|
+
"OnlineEvalConfig",
|
|
76
|
+
"OnlineEvalConfigName",
|
|
77
|
+
]
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"""Payment managers and connectors (port of ``primitives/payment.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Annotated, Final, Literal, get_args
|
|
6
|
+
|
|
7
|
+
from pydantic import Field, model_validator
|
|
8
|
+
|
|
9
|
+
from ..._zod import ZBool, ZodModel, raise_issues, zstr
|
|
10
|
+
|
|
11
|
+
PaymentProvider = Literal["CoinbaseCDP", "StripePrivy"]
|
|
12
|
+
PAYMENT_PROVIDERS: Final[tuple[PaymentProvider, ...]] = get_args(PaymentProvider)
|
|
13
|
+
|
|
14
|
+
# Documented payment-manager defaults, materialized on write so they appear in agentcore.json.
|
|
15
|
+
DEFAULT_AUTO_PAYMENT: Final = True
|
|
16
|
+
DEFAULT_SPEND_LIMIT: Final = "10.00"
|
|
17
|
+
|
|
18
|
+
# The CreatePaymentManager API name pattern allows no underscores (unlike connectors).
|
|
19
|
+
PaymentManagerName = zstr(
|
|
20
|
+
min=1,
|
|
21
|
+
max=48,
|
|
22
|
+
min_msg="Payment manager name is required",
|
|
23
|
+
pattern=r"^[a-zA-Z][a-zA-Z0-9]{0,47}$",
|
|
24
|
+
pattern_msg="Must begin with a letter and contain only alphanumeric characters (max 48 chars)",
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
PaymentConnectorName = zstr(
|
|
28
|
+
min=1,
|
|
29
|
+
max=48,
|
|
30
|
+
min_msg="Payment connector name is required",
|
|
31
|
+
pattern=r"^[a-zA-Z][a-zA-Z0-9_]{0,47}$",
|
|
32
|
+
pattern_msg="Must begin with a letter and contain only alphanumeric characters and underscores (max 48 chars)",
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
PaymentProvisionMode = Literal["MANUAL", "QUICK_CREATE"]
|
|
36
|
+
PAYMENT_PROVISION_MODES: Final[tuple[PaymentProvisionMode, ...]] = get_args(PaymentProvisionMode)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ManualPaymentConnector(ZodModel):
|
|
40
|
+
name: PaymentConnectorName
|
|
41
|
+
provider: PaymentProvider = "CoinbaseCDP"
|
|
42
|
+
provision_mode: Literal["MANUAL"] | None = None
|
|
43
|
+
credential_name: zstr(min=1)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class QuickCreatePaymentConnector(ZodModel):
|
|
47
|
+
name: PaymentConnectorName
|
|
48
|
+
provider: Literal["CoinbaseCDP"]
|
|
49
|
+
provision_mode: Literal["QUICK_CREATE"]
|
|
50
|
+
# z.never().optional(): must be absent.
|
|
51
|
+
credential_name: None = None
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
PaymentConnector = Annotated[QuickCreatePaymentConnector | ManualPaymentConnector, Field(union_mode="left_to_right")]
|
|
55
|
+
|
|
56
|
+
PaymentAuthorizerType = Literal["AWS_IAM", "CUSTOM_JWT"]
|
|
57
|
+
PAYMENT_AUTHORIZER_TYPES: Final[tuple[PaymentAuthorizerType, ...]] = get_args(PaymentAuthorizerType)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class PaymentCustomJwtAuthorizer(ZodModel):
|
|
61
|
+
discovery_url: zstr(url=True)
|
|
62
|
+
allowed_clients: list[str] | None = None
|
|
63
|
+
allowed_audience: list[str] | None = None
|
|
64
|
+
allowed_scopes: list[str] | None = None
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class PaymentAuthorizerConfiguration(ZodModel):
|
|
68
|
+
custom_jwt_authorizer: Annotated[PaymentCustomJwtAuthorizer, Field(alias="customJWTAuthorizer")]
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class PaymentManager(ZodModel):
|
|
72
|
+
name: PaymentManagerName
|
|
73
|
+
authorizer_type: PaymentAuthorizerType = "AWS_IAM"
|
|
74
|
+
authorizer_configuration: PaymentAuthorizerConfiguration | None = None
|
|
75
|
+
connectors: list[PaymentConnector] = Field(default_factory=list)
|
|
76
|
+
description: str | None = None
|
|
77
|
+
auto_payment: ZBool = DEFAULT_AUTO_PAYMENT
|
|
78
|
+
default_spend_limit: str = DEFAULT_SPEND_LIMIT
|
|
79
|
+
payment_tool_allowlist: list[str] | None = None
|
|
80
|
+
network_preferences: list[str] | None = None
|
|
81
|
+
|
|
82
|
+
@model_validator(mode="after")
|
|
83
|
+
def _refine(self) -> PaymentManager:
|
|
84
|
+
if self.authorizer_type == "CUSTOM_JWT" and self.authorizer_configuration is None:
|
|
85
|
+
raise_issues(
|
|
86
|
+
[
|
|
87
|
+
(
|
|
88
|
+
("authorizerConfiguration",),
|
|
89
|
+
"authorizerConfiguration with customJWTAuthorizer is required when authorizerType is CUSTOM_JWT",
|
|
90
|
+
)
|
|
91
|
+
],
|
|
92
|
+
self,
|
|
93
|
+
)
|
|
94
|
+
return self
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
__all__ = [
|
|
98
|
+
"DEFAULT_AUTO_PAYMENT",
|
|
99
|
+
"DEFAULT_SPEND_LIMIT",
|
|
100
|
+
"PAYMENT_AUTHORIZER_TYPES",
|
|
101
|
+
"PAYMENT_PROVIDERS",
|
|
102
|
+
"PAYMENT_PROVISION_MODES",
|
|
103
|
+
"ManualPaymentConnector",
|
|
104
|
+
"PaymentAuthorizerConfiguration",
|
|
105
|
+
"PaymentAuthorizerType",
|
|
106
|
+
"PaymentConnector",
|
|
107
|
+
"PaymentConnectorName",
|
|
108
|
+
"PaymentCustomJwtAuthorizer",
|
|
109
|
+
"PaymentManager",
|
|
110
|
+
"PaymentManagerName",
|
|
111
|
+
"PaymentProvider",
|
|
112
|
+
"PaymentProvisionMode",
|
|
113
|
+
"QuickCreatePaymentConnector",
|
|
114
|
+
]
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"""Policy engines and Cedar policies (port of ``primitives/policy.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Annotated, Final, Literal, get_args
|
|
6
|
+
|
|
7
|
+
from pydantic import Field
|
|
8
|
+
|
|
9
|
+
from ..._zod import ZodModel, array_checks, unique_by, zstr
|
|
10
|
+
from .tags import Tags
|
|
11
|
+
|
|
12
|
+
_NAME_PATTERN = r"^[A-Za-z][A-Za-z0-9_]{0,47}$"
|
|
13
|
+
_NAME_PATTERN_MSG = "Must begin with a letter and contain only alphanumeric characters and underscores (max 48 chars)"
|
|
14
|
+
|
|
15
|
+
PolicyEngineName = zstr(
|
|
16
|
+
min=1,
|
|
17
|
+
max=48,
|
|
18
|
+
min_msg="Policy engine name is required",
|
|
19
|
+
max_msg="Policy engine name must be 48 characters or less",
|
|
20
|
+
pattern=_NAME_PATTERN,
|
|
21
|
+
pattern_msg=_NAME_PATTERN_MSG,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
PolicyName = zstr(
|
|
25
|
+
min=1,
|
|
26
|
+
max=48,
|
|
27
|
+
min_msg="Policy name is required",
|
|
28
|
+
max_msg="Policy name must be 48 characters or less",
|
|
29
|
+
pattern=_NAME_PATTERN,
|
|
30
|
+
pattern_msg=_NAME_PATTERN_MSG,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
ValidationMode = Literal["FAIL_ON_ANY_FINDINGS", "IGNORE_ALL_FINDINGS"]
|
|
34
|
+
VALIDATION_MODES: Final[tuple[ValidationMode, ...]] = get_args(ValidationMode)
|
|
35
|
+
|
|
36
|
+
AuthorizationPhase = Literal["INITIATE", "RETURN_OUTPUT"]
|
|
37
|
+
AUTHORIZATION_PHASES: Final[tuple[AuthorizationPhase, ...]] = get_args(AuthorizationPhase)
|
|
38
|
+
DEFAULT_AUTHORIZATION_PHASE: Final[AuthorizationPhase] = "INITIATE"
|
|
39
|
+
|
|
40
|
+
EnforcementMode = Literal["ACTIVE", "LOG_ONLY"]
|
|
41
|
+
ENFORCEMENT_MODES: Final[tuple[EnforcementMode, ...]] = get_args(EnforcementMode)
|
|
42
|
+
DEFAULT_ENFORCEMENT_MODE: Final[EnforcementMode] = "ACTIVE"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class Policy(ZodModel):
|
|
46
|
+
name: PolicyName
|
|
47
|
+
description: zstr(min=1, max=4096) | None = None
|
|
48
|
+
statement: zstr(min=1, min_msg="Cedar policy statement is required")
|
|
49
|
+
source_file: str | None = None
|
|
50
|
+
validation_mode: ValidationMode = "FAIL_ON_ANY_FINDINGS"
|
|
51
|
+
enforcement_mode: EnforcementMode = "ACTIVE"
|
|
52
|
+
# Upstream is `AuthorizationPhaseSchema.optional()` where the inner schema carries
|
|
53
|
+
# `.default('INITIATE')`; Zod 4 applies inner defaults through `.optional()`, so an absent
|
|
54
|
+
# value materializes as INITIATE.
|
|
55
|
+
authorization_phase: AuthorizationPhase = "INITIATE"
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class PolicyEngine(ZodModel):
|
|
59
|
+
name: PolicyEngineName
|
|
60
|
+
description: zstr(min=1, max=4096) | None = None
|
|
61
|
+
encryption_key_arn: str | None = None
|
|
62
|
+
tags: Tags | None = None
|
|
63
|
+
policies: Annotated[
|
|
64
|
+
list[Policy],
|
|
65
|
+
array_checks(extra=[unique_by(lambda p: p.name, lambda n: f"Duplicate policy name: {n}")]),
|
|
66
|
+
Field(default_factory=list),
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
__all__ = [
|
|
71
|
+
"AUTHORIZATION_PHASES",
|
|
72
|
+
"DEFAULT_AUTHORIZATION_PHASE",
|
|
73
|
+
"DEFAULT_ENFORCEMENT_MODE",
|
|
74
|
+
"ENFORCEMENT_MODES",
|
|
75
|
+
"VALIDATION_MODES",
|
|
76
|
+
"AuthorizationPhase",
|
|
77
|
+
"EnforcementMode",
|
|
78
|
+
"Policy",
|
|
79
|
+
"PolicyEngine",
|
|
80
|
+
"PolicyEngineName",
|
|
81
|
+
"PolicyName",
|
|
82
|
+
"ValidationMode",
|
|
83
|
+
]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""Resource tags with AWS tagging constraints (port of ``primitives/tags.ts``)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Annotated
|
|
6
|
+
|
|
7
|
+
from pydantic import AfterValidator
|
|
8
|
+
|
|
9
|
+
from ..._zod import JS_WHITESPACE, is_letter_or_number, js_trim, raise_issues, zstr
|
|
10
|
+
|
|
11
|
+
_TAG_SYMBOLS = "_.:/=+-@"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _has_valid_tag_chars(value: str) -> bool:
|
|
15
|
+
# /^[\p{L}\p{N}\s_.:/=+\-@]*$/u
|
|
16
|
+
return all(is_letter_or_number(ch) or ch in JS_WHITESPACE or ch in _TAG_SYMBOLS for ch in value)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
TagKey = zstr(
|
|
20
|
+
min=1,
|
|
21
|
+
max=128,
|
|
22
|
+
min_msg="Tag key is required",
|
|
23
|
+
max_msg="Tag key must be 128 characters or less",
|
|
24
|
+
refines=(
|
|
25
|
+
(_has_valid_tag_chars, "Tag key contains invalid characters"),
|
|
26
|
+
(lambda k: len(js_trim(k)) > 0, "Tag key must contain at least one non-whitespace character"),
|
|
27
|
+
(lambda k: not k.startswith("aws:"), 'Tag keys starting with "aws:" are reserved'),
|
|
28
|
+
),
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
TagValue = zstr(
|
|
32
|
+
max=256,
|
|
33
|
+
max_msg="Tag value must be 256 characters or less",
|
|
34
|
+
refines=((_has_valid_tag_chars, "Tag value contains invalid characters"),),
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _max_tags(tags: dict[str, str]) -> dict[str, str]:
|
|
39
|
+
if len(tags) > 50:
|
|
40
|
+
raise_issues([((), "Maximum 50 tags per resource")], tags)
|
|
41
|
+
return tags
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
Tags = Annotated[dict[TagKey, TagValue], AfterValidator(_max_tags)]
|
|
45
|
+
|
|
46
|
+
__all__ = [
|
|
47
|
+
"TagKey",
|
|
48
|
+
"TagValue",
|
|
49
|
+
"Tags",
|
|
50
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Path type markers for schema fields (port of ``src/schema/types/path.ts``).
|
|
2
|
+
|
|
3
|
+
These indicate whether a string field represents a file path or a directory path, so UIs can
|
|
4
|
+
offer the right kind of path completion.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from typing import Final, Literal, NewType, get_args
|
|
10
|
+
|
|
11
|
+
PathType = Literal["file", "directory"]
|
|
12
|
+
PATH_TYPES: Final[tuple[PathType, ...]] = get_args(PathType)
|
|
13
|
+
|
|
14
|
+
# Branded string types (TS `string & { __brand }`); plain str at runtime.
|
|
15
|
+
FilePath = NewType("FilePath", str)
|
|
16
|
+
DirectoryPath = NewType("DirectoryPath", str)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"""Template rendering (port of upstream ``src/cli/templates``).
|
|
2
|
+
|
|
3
|
+
Template assets live in ``<package>/assets`` (a byte-for-byte copy of upstream ``src/assets``) and are
|
|
4
|
+
rendered with Handlebars semantics identical to handlebars.js (see ``_handlebars``).
|
|
5
|
+
|
|
6
|
+
Typical use::
|
|
7
|
+
|
|
8
|
+
config = AgentRenderConfig(name="MyAgent", sdk_framework="Strands", protocol="HTTP", ...)
|
|
9
|
+
create_renderer(config).render(RendererContext(output_dir=project_root)) # -> app/MyAgent/
|
|
10
|
+
CDKRenderer().render(CDKRendererContext(project_root=project_root)) # -> agentcore/cdk/
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from agentcore.templates.base_renderer import BaseRenderer, RendererContext
|
|
14
|
+
from agentcore.templates.cdk_renderer import CDKRenderer, CDKRendererContext, CreateLogger
|
|
15
|
+
from agentcore.templates.evaluator_renderer import (
|
|
16
|
+
ThirdPartyEvaluatorTemplateData,
|
|
17
|
+
render_code_based_evaluator_template,
|
|
18
|
+
render_third_party_evaluator_template,
|
|
19
|
+
)
|
|
20
|
+
from agentcore.templates.gateway_target_renderer import (
|
|
21
|
+
LAMBDA_TEMPLATE_TOOLS,
|
|
22
|
+
ComputeHost,
|
|
23
|
+
get_template_tool_definitions,
|
|
24
|
+
render_gateway_target_template,
|
|
25
|
+
)
|
|
26
|
+
from agentcore.templates.profiles import (
|
|
27
|
+
BMA_TEMPLATE_PROFILE,
|
|
28
|
+
TemplateProfile,
|
|
29
|
+
TemplateRuntimeProfile,
|
|
30
|
+
apply_template_option_defaults,
|
|
31
|
+
get_template_profile,
|
|
32
|
+
template_needs_python_venv,
|
|
33
|
+
template_uses_model,
|
|
34
|
+
validate_template_options,
|
|
35
|
+
)
|
|
36
|
+
from agentcore.templates.render import (
|
|
37
|
+
SafeString,
|
|
38
|
+
compile_template,
|
|
39
|
+
copy_and_render_dir,
|
|
40
|
+
copy_dir,
|
|
41
|
+
render_template,
|
|
42
|
+
resolve_template_name,
|
|
43
|
+
)
|
|
44
|
+
from agentcore.templates.renderers import (
|
|
45
|
+
BmaRenderer,
|
|
46
|
+
GoogleADKRenderer,
|
|
47
|
+
LangGraphRenderer,
|
|
48
|
+
McpRenderer,
|
|
49
|
+
OpenAIAgentsRenderer,
|
|
50
|
+
StrandsRenderer,
|
|
51
|
+
VercelAIRenderer,
|
|
52
|
+
create_renderer,
|
|
53
|
+
)
|
|
54
|
+
from agentcore.templates.schema_assets import LLM_CONTEXT_FILES
|
|
55
|
+
from agentcore.templates.template_root import TEMPLATE_ROOT, get_template_path
|
|
56
|
+
from agentcore.templates.types import (
|
|
57
|
+
AgentRenderConfig,
|
|
58
|
+
GatewayProviderRenderConfig,
|
|
59
|
+
GitSkillRenderConfig,
|
|
60
|
+
HeaderCredentialRenderConfig,
|
|
61
|
+
IdentityProviderRenderConfig,
|
|
62
|
+
InlineFunctionToolRenderConfig,
|
|
63
|
+
MemoryProviderRenderConfig,
|
|
64
|
+
MountRenderConfig,
|
|
65
|
+
RemoteMcpToolRenderConfig,
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
__all__ = [
|
|
69
|
+
"BMA_TEMPLATE_PROFILE",
|
|
70
|
+
"LAMBDA_TEMPLATE_TOOLS",
|
|
71
|
+
"LLM_CONTEXT_FILES",
|
|
72
|
+
"TEMPLATE_ROOT",
|
|
73
|
+
"AgentRenderConfig",
|
|
74
|
+
"BaseRenderer",
|
|
75
|
+
"BmaRenderer",
|
|
76
|
+
"CDKRenderer",
|
|
77
|
+
"CDKRendererContext",
|
|
78
|
+
"ComputeHost",
|
|
79
|
+
"CreateLogger",
|
|
80
|
+
"GatewayProviderRenderConfig",
|
|
81
|
+
"GitSkillRenderConfig",
|
|
82
|
+
"GoogleADKRenderer",
|
|
83
|
+
"HeaderCredentialRenderConfig",
|
|
84
|
+
"IdentityProviderRenderConfig",
|
|
85
|
+
"InlineFunctionToolRenderConfig",
|
|
86
|
+
"LangGraphRenderer",
|
|
87
|
+
"McpRenderer",
|
|
88
|
+
"MemoryProviderRenderConfig",
|
|
89
|
+
"MountRenderConfig",
|
|
90
|
+
"OpenAIAgentsRenderer",
|
|
91
|
+
"RemoteMcpToolRenderConfig",
|
|
92
|
+
"RendererContext",
|
|
93
|
+
"SafeString",
|
|
94
|
+
"StrandsRenderer",
|
|
95
|
+
"TemplateProfile",
|
|
96
|
+
"TemplateRuntimeProfile",
|
|
97
|
+
"ThirdPartyEvaluatorTemplateData",
|
|
98
|
+
"VercelAIRenderer",
|
|
99
|
+
"apply_template_option_defaults",
|
|
100
|
+
"compile_template",
|
|
101
|
+
"copy_and_render_dir",
|
|
102
|
+
"copy_dir",
|
|
103
|
+
"create_renderer",
|
|
104
|
+
"get_template_path",
|
|
105
|
+
"get_template_profile",
|
|
106
|
+
"get_template_tool_definitions",
|
|
107
|
+
"render_code_based_evaluator_template",
|
|
108
|
+
"render_gateway_target_template",
|
|
109
|
+
"render_template",
|
|
110
|
+
"render_third_party_evaluator_template",
|
|
111
|
+
"resolve_template_name",
|
|
112
|
+
"template_needs_python_venv",
|
|
113
|
+
"template_uses_model",
|
|
114
|
+
"validate_template_options",
|
|
115
|
+
]
|