bedrock-agentcore-starter-toolkit 0.1.0__tar.gz → 0.1.1__tar.gz
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.
Potentially problematic release.
This version of bedrock-agentcore-starter-toolkit might be problematic. Click here for more details.
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows/ci.yml +3 -61
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows/deploy-docs.yml +7 -0
- bedrock_agentcore_starter_toolkit-0.1.1/CHANGELOG.md +49 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/PKG-INFO +7 -7
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/README.md +4 -4
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/index.md +5 -3
- bedrock_agentcore_starter_toolkit-0.1.1/documentation/docs/user-guide/builtin-tools/quickstart-browser.md +208 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/builtin-tools/quickstart-code-interpreter.md +1 -1
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/identity/quickstart.md +13 -13
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/memory/quickstart.md +3 -3
- bedrock_agentcore_starter_toolkit-0.1.1/documentation/docs/user-guide/runtime/permissions.md +320 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/runtime/quickstart.md +4 -7
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/mkdocs.yaml +3 -3
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/pyproject.toml +3 -3
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/cli/cli.py +3 -10
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/cli/runtime/commands.py +52 -4
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py +20 -11
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/bedrock_agentcore.py +53 -10
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/gateway/README.md +6 -6
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py +11 -10
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/runtime/configure.py +21 -7
- bedrock_agentcore_starter_toolkit-0.1.1/src/bedrock_agentcore_starter_toolkit/operations/runtime/create_role.py +404 -0
- bedrock_agentcore_starter_toolkit-0.1.1/src/bedrock_agentcore_starter_toolkit/operations/runtime/launch.py +439 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/runtime/models.py +4 -1
- bedrock_agentcore_starter_toolkit-0.1.1/src/bedrock_agentcore_starter_toolkit/services/codebuild.py +332 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/services/ecr.py +29 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/services/runtime.py +91 -1
- bedrock_agentcore_starter_toolkit-0.1.1/src/bedrock_agentcore_starter_toolkit/utils/logging_config.py +72 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/runtime/entrypoint.py +3 -3
- bedrock_agentcore_starter_toolkit-0.1.1/src/bedrock_agentcore_starter_toolkit/utils/runtime/policy_template.py +74 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/runtime/schema.py +12 -2
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2 +10 -25
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/dockerignore.template +0 -1
- bedrock_agentcore_starter_toolkit-0.1.1/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_policy.json.j2 +98 -0
- bedrock_agentcore_starter_toolkit-0.1.1/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_trust_policy.json.j2 +21 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/cli/gateway/test_commands.py +3 -3
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/cli/runtime/test_commands.py +28 -4
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/cli/runtime/test_configuration_manager.py +8 -12
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/conftest.py +1 -1
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/notebook/runtime/test_bedrock_agentcore.py +66 -3
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/operations/gateway/test_gateway_create_role.py +166 -1
- bedrock_agentcore_starter_toolkit-0.1.1/tests/operations/runtime/test_create_role.py +565 -0
- bedrock_agentcore_starter_toolkit-0.1.1/tests/operations/runtime/test_launch.py +938 -0
- bedrock_agentcore_starter_toolkit-0.1.1/tests/services/test_codebuild.py +521 -0
- bedrock_agentcore_starter_toolkit-0.1.1/tests/utils/runtime/test_policy_template.py +140 -0
- bedrock_agentcore_starter_toolkit-0.1.1/tests/utils/test_logging_config.py +214 -0
- bedrock_agentcore_starter_toolkit-0.1.1/tests_integ/notebook/test_runtime.py +9 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/uv.lock +22 -13
- bedrock_agentcore_starter_toolkit-0.1.0/CHANGELOG.md +0 -23
- bedrock_agentcore_starter_toolkit-0.1.0/documentation/docs/user-guide/builtin-tools/quickstart-browser.md +0 -181
- bedrock_agentcore_starter_toolkit-0.1.0/extract.py +0 -170
- bedrock_agentcore_starter_toolkit-0.1.0/pyproject.toml.backup +0 -159
- bedrock_agentcore_starter_toolkit-0.1.0/repository_code.md +0 -20886
- bedrock_agentcore_starter_toolkit-0.1.0/scripts/fix-github-actions-no-wheelhouse.sh +0 -524
- bedrock_agentcore_starter_toolkit-0.1.0/scripts/fix-github-actions.sh +0 -575
- bedrock_agentcore_starter_toolkit-0.1.0/scripts/modify-toml-for-ci.py +0 -48
- bedrock_agentcore_starter_toolkit-0.1.0/src/bedrock_agentcore_starter_toolkit/operations/runtime/launch.py +0 -163
- bedrock_agentcore_starter_toolkit-0.1.0/tests/operations/runtime/test_launch.py +0 -275
- bedrock_agentcore_starter_toolkit-0.1.0/tests_integ/notebook/test_runtime.py +0 -13
- bedrock_agentcore_starter_toolkit-0.1.0/verify_api.py +0 -8
- bedrock_agentcore_starter_toolkit-0.1.0/verify_package.py +0 -15
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/CODEOWNERS +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/branch-protection.json +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/dependabot.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/pull_request_template.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows/release.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows/security-scanning.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows/security.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows/test-pypi-release.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows-backup-20250715-221720/ci.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows-backup-20250715-221720/deploy-docs.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows-backup-20250715-221720/release.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.github/workflows-backup-20250715-221720/security-scanning.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.gitignore +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.pre-commit-config.yaml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/.python-version +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/CODE-OF-CONDUCT.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/CONTRIBUTING.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/LICENSE.txt +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/NOTICE.txt +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/SECURITY.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/.gitignore +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/api-reference/cli.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/api-reference/identity.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/api-reference/memory.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/api-reference/runtime.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/api-reference/tools.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/examples/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/examples/async-processing.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/examples/gateway-integration.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/examples/session-management.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/stylesheets/extra.css +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/gateway/overview.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/gateway/quickstart.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/observability/quickstart.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/runtime/async.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/runtime/notebook.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/docs/user-guide/runtime/overview.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/documentation/overrides/main.html +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/scripts/bump-version.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/scripts/prepare-release.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/scripts/setup-branch-protection.sh +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/scripts/validate-release.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/cli/common.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/cli/gateway/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/cli/gateway/commands.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/cli/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/notebook/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/gateway/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/gateway/client.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/gateway/constants.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_lambda.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/gateway/exceptions.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/operations/runtime/status.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/endpoints.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/runtime/config.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/runtime/container.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/src/bedrock_agentcore_starter_toolkit/utils/runtime/logs.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/cli/gateway/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/cli/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/cli/test_common.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/conftest_mock.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/fixtures/project_config_multiple.yaml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/fixtures/project_config_single.yaml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/operations/gateway/test_gateway_client.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/operations/gateway/test_gateway_client_init.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/operations/runtime/test_configure.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/operations/runtime/test_invoke.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/operations/runtime/test_status.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/services/test_ecr.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/services/test_runtime.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/utils/runtime/test_config.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/utils/runtime/test_container.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/utils/runtime/test_entrypoint.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests/utils/test_endpoints.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/gateway/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/gateway/test_cognito_token.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/gateway/test_create_role.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/gateway/test_egress_auth.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/gateway/test_gateway_cognito.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/identity/access_token_3LO.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/strands_agent/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/strands_agent/agent_example.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/tools/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/tools/my_mcp_client.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/tools/my_mcp_client_remote.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/tools/my_mcp_server.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/tests_integ/tools/setup_cognito.sh +0 -0
|
@@ -55,70 +55,20 @@ jobs:
|
|
|
55
55
|
pip install tomli
|
|
56
56
|
fi
|
|
57
57
|
|
|
58
|
-
- name:
|
|
58
|
+
- name: Install package and dependencies
|
|
59
59
|
run: |
|
|
60
|
-
cp pyproject.toml pyproject.toml.original
|
|
61
|
-
python scripts/modify-toml-for-ci.py
|
|
62
|
-
|
|
63
|
-
- name: Create mock bedrock_agentcore module
|
|
64
|
-
run: |
|
|
65
|
-
mkdir -p mock_modules/bedrock_agentcore
|
|
66
|
-
cat > mock_modules/bedrock_agentcore/__init__.py << 'MOCK'
|
|
67
|
-
# Mock module for CI testing
|
|
68
|
-
class BedrockAgentCoreApp:
|
|
69
|
-
def __init__(self):
|
|
70
|
-
self.entrypoint_func = None
|
|
71
|
-
def entrypoint(self, func):
|
|
72
|
-
self.entrypoint_func = func
|
|
73
|
-
return func
|
|
74
|
-
def run(self):
|
|
75
|
-
pass
|
|
76
|
-
MOCK
|
|
77
|
-
|
|
78
|
-
# Create __init__.py for boto mocks
|
|
79
|
-
mkdir -p mock_modules/boto3
|
|
80
|
-
echo "# Mock boto3" > mock_modules/boto3/__init__.py
|
|
81
|
-
mkdir -p mock_modules/botocore
|
|
82
|
-
echo "# Mock botocore" > mock_modules/botocore/__init__.py
|
|
83
|
-
|
|
84
|
-
- name: Install package with mocked dependencies
|
|
85
|
-
run: |
|
|
86
|
-
# Add mock modules to Python path
|
|
87
|
-
export PYTHONPATH="${PWD}/mock_modules:$PYTHONPATH"
|
|
88
|
-
|
|
89
|
-
# Install the package
|
|
90
60
|
pip install -e .
|
|
91
|
-
|
|
92
|
-
# Install test dependencies
|
|
93
61
|
pip install pytest pytest-cov pytest-asyncio pytest-mock
|
|
94
62
|
|
|
95
63
|
- name: Run basic import tests
|
|
96
64
|
run: |
|
|
97
|
-
export PYTHONPATH="${PWD}/mock_modules:$PYTHONPATH"
|
|
98
65
|
python -c "from bedrock_agentcore_starter_toolkit.cli.cli import main; print('✓ CLI import successful')"
|
|
99
66
|
python -c "from bedrock_agentcore_starter_toolkit import Runtime; print('✓ Runtime import successful')"
|
|
100
67
|
|
|
101
68
|
- name: Run unit tests
|
|
102
69
|
run: |
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
# Run only unit tests that don't require real dependencies
|
|
107
|
-
pytest tests/cli/ tests/utils/ \
|
|
108
|
-
-v \
|
|
109
|
-
--ignore=tests_integ/ \
|
|
110
|
-
--ignore=tests/services/ \
|
|
111
|
-
--ignore=tests/operations/ \
|
|
112
|
-
--ignore=tests/notebook/ \
|
|
113
|
-
-k "not test_bedrock" \
|
|
114
|
-
|| echo "::warning::Some tests failed due to missing dependencies"
|
|
115
|
-
|
|
116
|
-
- name: Restore original pyproject.toml
|
|
117
|
-
if: always()
|
|
118
|
-
run: |
|
|
119
|
-
if [ -f pyproject.toml.original ]; then
|
|
120
|
-
mv pyproject.toml.original pyproject.toml
|
|
121
|
-
fi
|
|
70
|
+
# Run unit tests
|
|
71
|
+
pytest tests/ || echo "::warning::Some tests failed due to missing dependencies"
|
|
122
72
|
|
|
123
73
|
build:
|
|
124
74
|
name: Build Package
|
|
@@ -141,17 +91,9 @@ jobs:
|
|
|
141
91
|
pip install tomli
|
|
142
92
|
fi
|
|
143
93
|
|
|
144
|
-
- name: Create release version of pyproject.toml
|
|
145
|
-
run: |
|
|
146
|
-
cp pyproject.toml pyproject.toml.original
|
|
147
|
-
python scripts/modify-toml-for-ci.py
|
|
148
|
-
|
|
149
94
|
- name: Build package
|
|
150
95
|
run: python -m build
|
|
151
96
|
|
|
152
|
-
- name: Restore original pyproject.toml
|
|
153
|
-
run: mv pyproject.toml.original pyproject.toml
|
|
154
|
-
|
|
155
97
|
- name: Check package
|
|
156
98
|
run: |
|
|
157
99
|
twine check dist/*
|
|
@@ -22,6 +22,13 @@ jobs:
|
|
|
22
22
|
with:
|
|
23
23
|
fetch-depth: 0 # Fetch all history for proper versioning
|
|
24
24
|
|
|
25
|
+
- name: Checkout SDK repository
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
with:
|
|
28
|
+
repository: aws/bedrock-agentcore-sdk-python
|
|
29
|
+
path: bedrock-agentcore-sdk-python
|
|
30
|
+
fetch-depth: 1
|
|
31
|
+
|
|
25
32
|
- name: Set up Python
|
|
26
33
|
uses: actions/setup-python@v5
|
|
27
34
|
with:
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.1.1] - 2025-01-22
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **Multi-platform Docker build support via AWS CodeBuild** (#1)
|
|
7
|
+
- New `--codebuild` flag for `agentcore launch` command enables ARM64 container builds
|
|
8
|
+
- Complete `CodeBuildService` class with ARM64-optimized build pipeline
|
|
9
|
+
- Automated infrastructure provisioning (S3 buckets, IAM roles, CodeBuild projects)
|
|
10
|
+
- ARM64-optimized buildspec with Docker BuildKit caching and parallel push operations
|
|
11
|
+
- Smart source management with .dockerignore pattern support and S3 lifecycle policies
|
|
12
|
+
- Real-time build monitoring with detailed phase tracking
|
|
13
|
+
- Support for `aws/codebuild/amazonlinux2-aarch64-standard:3.0` image
|
|
14
|
+
- ECR caching strategy for faster ARM64 builds
|
|
15
|
+
|
|
16
|
+
- **Automatic IAM execution role creation** (#2)
|
|
17
|
+
- Auto-creation of IAM execution roles for Bedrock AgentCore Runtime
|
|
18
|
+
- Policy templates for execution role and trust policy
|
|
19
|
+
- Detailed logging and progress tracking during role creation
|
|
20
|
+
- Informative error messages for common IAM scenarios
|
|
21
|
+
- Eliminates need for manual IAM role creation before deployment
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- Enhanced `agentcore launch` command to support both local Docker and CodeBuild workflows
|
|
25
|
+
- Improved error handling patterns throughout the codebase
|
|
26
|
+
- Updated AWS SDK exception handling to use standard `ClientError` patterns instead of service-specific exceptions
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- Fixed AWS IAM exception handling by replacing problematic service-specific exceptions with standard `ClientError` patterns
|
|
30
|
+
- Resolved pre-commit hook compliance issues with proper code formatting
|
|
31
|
+
|
|
32
|
+
### Improved
|
|
33
|
+
- Added 90%+ test coverage with 20+ new comprehensive test cases
|
|
34
|
+
- Enhanced error handling with proper AWS SDK patterns
|
|
35
|
+
- Improved build reliability and monitoring capabilities
|
|
36
|
+
- Better user experience with one-command ARM64 deployment
|
|
37
|
+
|
|
38
|
+
## [0.1.0] - 2025-01-16
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
- Initial release of Bedrock AgentCore Starter Toolkit
|
|
42
|
+
- CLI toolkit for deploying AI agents to Amazon Bedrock AgentCore
|
|
43
|
+
- Zero infrastructure management with built-in gateway and memory integrations
|
|
44
|
+
- Support for popular frameworks (Strands, LangGraph, CrewAI, custom agents)
|
|
45
|
+
- Core CLI commands: `configure`, `launch`, `invoke`, `status`
|
|
46
|
+
- Local testing capabilities with `--local` flag
|
|
47
|
+
- Integration with Bedrock AgentCore SDK
|
|
48
|
+
- Basic Docker containerization support
|
|
49
|
+
- Comprehensive documentation and examples
|
{bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bedrock-agentcore-starter-toolkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: A starter toolkit for using Bedrock AgentCore
|
|
5
5
|
Project-URL: Homepage, https://github.com/aws/bedrock-agentcore-starter-toolkit
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/aws/bedrock-agentcore-starter-toolkit/issues
|
|
@@ -22,8 +22,8 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
22
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Requires-Dist: bedrock-agentcore>=0.1.0
|
|
25
|
-
Requires-Dist: boto3>=1.
|
|
26
|
-
Requires-Dist: botocore>=1.
|
|
25
|
+
Requires-Dist: boto3>=1.39.7
|
|
26
|
+
Requires-Dist: botocore>=1.39.7
|
|
27
27
|
Requires-Dist: docstring-parser<1.0,>=0.15
|
|
28
28
|
Requires-Dist: httpx>=0.28.1
|
|
29
29
|
Requires-Dist: jinja2>=3.1.6
|
|
@@ -51,8 +51,8 @@ Description-Content-Type: text/markdown
|
|
|
51
51
|
<div align="center">
|
|
52
52
|
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
53
53
|
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/issues"><img alt="GitHub open issues" src="https://img.shields.io/github/issues/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
54
|
-
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/pulls"><img alt="GitHub open pull requests" src="https://img.shields.io/github/issues-pr/bedrock-agentcore-starter-toolkit"/></a>
|
|
55
|
-
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
54
|
+
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/pulls"><img alt="GitHub open pull requests" src="https://img.shields.io/github/issues-pr/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
55
|
+
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/blob/main/LICENSE.txt"><img alt="License" src="https://img.shields.io/github/license/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
56
56
|
<a href="https://pypi.org/project/bedrock-agentcore-starter-toolkit"><img alt="PyPI version" src="https://img.shields.io/pypi/v/bedrock-agentcore-starter-toolkit"/></a>
|
|
57
57
|
<a href="https://python.org"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/bedrock-agentcore-starter-toolkit"/></a>
|
|
58
58
|
</div>
|
|
@@ -75,7 +75,7 @@ app = BedrockAgentCoreApp()
|
|
|
75
75
|
|
|
76
76
|
@app.entrypoint
|
|
77
77
|
def my_agent(request):
|
|
78
|
-
# Your existing LangGraph, CrewAI, or custom agent logic
|
|
78
|
+
# Your existing Strands, LangGraph, CrewAI, or custom agent logic
|
|
79
79
|
return process_with_your_framework(request.get("prompt"))
|
|
80
80
|
|
|
81
81
|
app.run()
|
|
@@ -126,7 +126,7 @@ agentcore invoke '{"prompt": "Hello from Bedrock AgentCore!"}'
|
|
|
126
126
|
Amazon Bedrock AgentCore enables you to deploy and operate highly effective agents securely, at scale using any framework and model. With AgentCore, developers can accelerate AI agents into production with enterprise-grade scale, reliability, and security. The platform provides:
|
|
127
127
|
|
|
128
128
|
- **Composable Services**: Mix and match services to fit your needs
|
|
129
|
-
- **Framework Flexibility**: Works with LangGraph, CrewAI, Strands, and more
|
|
129
|
+
- **Framework Flexibility**: Works with Strands, LangGraph, CrewAI, Strands, and more
|
|
130
130
|
- **Any Model Support**: Not locked into specific models
|
|
131
131
|
- **Enterprise Security**: Built-in identity, isolation, and access controls
|
|
132
132
|
|
{bedrock_agentcore_starter_toolkit-0.1.0 → bedrock_agentcore_starter_toolkit-0.1.1}/README.md
RENAMED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
<div align="center">
|
|
11
11
|
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
12
12
|
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/issues"><img alt="GitHub open issues" src="https://img.shields.io/github/issues/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
13
|
-
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/pulls"><img alt="GitHub open pull requests" src="https://img.shields.io/github/issues-pr/bedrock-agentcore-starter-toolkit"/></a>
|
|
14
|
-
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
13
|
+
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/pulls"><img alt="GitHub open pull requests" src="https://img.shields.io/github/issues-pr/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
14
|
+
<a href="https://github.com/aws/bedrock-agentcore-starter-toolkit/blob/main/LICENSE.txt"><img alt="License" src="https://img.shields.io/github/license/aws/bedrock-agentcore-starter-toolkit"/></a>
|
|
15
15
|
<a href="https://pypi.org/project/bedrock-agentcore-starter-toolkit"><img alt="PyPI version" src="https://img.shields.io/pypi/v/bedrock-agentcore-starter-toolkit"/></a>
|
|
16
16
|
<a href="https://python.org"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/bedrock-agentcore-starter-toolkit"/></a>
|
|
17
17
|
</div>
|
|
@@ -34,7 +34,7 @@ app = BedrockAgentCoreApp()
|
|
|
34
34
|
|
|
35
35
|
@app.entrypoint
|
|
36
36
|
def my_agent(request):
|
|
37
|
-
# Your existing LangGraph, CrewAI, or custom agent logic
|
|
37
|
+
# Your existing Strands, LangGraph, CrewAI, or custom agent logic
|
|
38
38
|
return process_with_your_framework(request.get("prompt"))
|
|
39
39
|
|
|
40
40
|
app.run()
|
|
@@ -85,7 +85,7 @@ agentcore invoke '{"prompt": "Hello from Bedrock AgentCore!"}'
|
|
|
85
85
|
Amazon Bedrock AgentCore enables you to deploy and operate highly effective agents securely, at scale using any framework and model. With AgentCore, developers can accelerate AI agents into production with enterprise-grade scale, reliability, and security. The platform provides:
|
|
86
86
|
|
|
87
87
|
- **Composable Services**: Mix and match services to fit your needs
|
|
88
|
-
- **Framework Flexibility**: Works with LangGraph, CrewAI, Strands, and more
|
|
88
|
+
- **Framework Flexibility**: Works with Strands, LangGraph, CrewAI, Strands, and more
|
|
89
89
|
- **Any Model Support**: Not locked into specific models
|
|
90
90
|
- **Enterprise Security**: Built-in identity, isolation, and access controls
|
|
91
91
|
|
|
@@ -19,8 +19,8 @@ Amazon Bedrock AgentCore is a comprehensive platform for deploying and operating
|
|
|
19
19
|
|
|
20
20
|
```python
|
|
21
21
|
# Your existing agent (any framework)
|
|
22
|
-
from
|
|
23
|
-
# or CrewAI, Autogen, custom logic - doesn't matter
|
|
22
|
+
from strands import Agent
|
|
23
|
+
# or LangGraph, CrewAI, Autogen, custom logic - doesn't matter
|
|
24
24
|
|
|
25
25
|
def my_local_agent(query):
|
|
26
26
|
# Your carefully crafted agent logic
|
|
@@ -38,7 +38,9 @@ production_agent.run() # Ready to run on Bedrock AgentCore
|
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
**What you get with Bedrock AgentCore:**
|
|
41
|
-
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
- ✅ **Keep your agent logic** - Works with Strands, LangGraph, CrewAI, Autogen, custom frameworks.
|
|
42
44
|
- ✅ **Zero infrastructure management** - No servers, containers, or scaling concerns.
|
|
43
45
|
- ✅ **Enterprise-grade platform** - Built-in auth, memory, observability, security.
|
|
44
46
|
- ✅ **Production-ready deployment** - Reliable, scalable, compliant hosting.
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# Getting Started with Browser
|
|
2
|
+
|
|
3
|
+
The Amazon Bedrock AgentCore Browser provides a secure, managed environment for web browsing and automation. This guide will help you implement powerful browser capabilities in your agent applications.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
Before using the browser tool, ensure you have:
|
|
8
|
+
|
|
9
|
+
- An AWS account with appropriate permissions
|
|
10
|
+
- Python 3.10+ installed
|
|
11
|
+
|
|
12
|
+
## Install the SDK
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install bedrock-agentcore
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Create a Browser Session
|
|
19
|
+
|
|
20
|
+
The bedrock-agentcore SDK provides a convenient way to create browser sessions:
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
from bedrock_agentcore.tools.browser_client import browser_session
|
|
24
|
+
|
|
25
|
+
# Create a browser session using the context manager
|
|
26
|
+
with browser_session("us-west-2") as client:
|
|
27
|
+
# The session_id is automatically generated
|
|
28
|
+
print(f"Session ID: {client.session_id}")
|
|
29
|
+
|
|
30
|
+
# Generate WebSocket URL and headers for connecting automation frameworks
|
|
31
|
+
websocket_url, headers = client.generate_ws_headers()
|
|
32
|
+
|
|
33
|
+
# Use these to connect your preferred browser automation tool
|
|
34
|
+
# (See examples below)
|
|
35
|
+
|
|
36
|
+
# The session is automatically closed when exiting the context manager
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
For more control over the session lifecycle:
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
from bedrock_agentcore.tools.browser_client import BrowserClient
|
|
43
|
+
|
|
44
|
+
# Create a browser client
|
|
45
|
+
client = BrowserClient(region="us-west-2")
|
|
46
|
+
|
|
47
|
+
# Start a browser session
|
|
48
|
+
client.start()
|
|
49
|
+
print(f"Session ID: {client.session_id}")
|
|
50
|
+
|
|
51
|
+
try:
|
|
52
|
+
# Generate WebSocket URL and headers
|
|
53
|
+
url, headers = client.generate_ws_headers()
|
|
54
|
+
|
|
55
|
+
# Perform browser operations with your preferred automation tool
|
|
56
|
+
|
|
57
|
+
finally:
|
|
58
|
+
# Always close the session when done
|
|
59
|
+
client.stop()
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Integration Examples
|
|
63
|
+
|
|
64
|
+
### Example 1: Browser Automation with Nova Act
|
|
65
|
+
|
|
66
|
+
##### Install dependencies
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pip install nova-act
|
|
70
|
+
```
|
|
71
|
+
You can build a browser agent using Nova Act to automate web interactions:
|
|
72
|
+
|
|
73
|
+
```python
|
|
74
|
+
import time
|
|
75
|
+
from bedrock_agentcore.tools.browser_client import browser_session
|
|
76
|
+
from nova_act import NovaAct
|
|
77
|
+
from rich.console import Console
|
|
78
|
+
|
|
79
|
+
NOVA_ACT_API_KEY = "YOUR_NOVA_ACT_API_KEY"
|
|
80
|
+
|
|
81
|
+
console = Console()
|
|
82
|
+
|
|
83
|
+
def main():
|
|
84
|
+
try:
|
|
85
|
+
# Step 1: Create browser session
|
|
86
|
+
with browser_session("us-west-2") as client:
|
|
87
|
+
print("\r ✅ Browser ready! ")
|
|
88
|
+
ws_url, headers = client.generate_ws_headers()
|
|
89
|
+
|
|
90
|
+
# Step 2: Use Nova Act to interact with the browser
|
|
91
|
+
with NovaAct(
|
|
92
|
+
cdp_endpoint_url=ws_url,
|
|
93
|
+
cdp_headers=headers,
|
|
94
|
+
preview={"playwright_actuation": True},
|
|
95
|
+
nova_act_api_key=NOVA_ACT_API_KEY,
|
|
96
|
+
starting_page="https://www.amazon.com",
|
|
97
|
+
) as nova_act:
|
|
98
|
+
result = nova_act.act("Search for coffee maker and get the details of the lowest priced one on the first page")
|
|
99
|
+
console.print(f"\n[bold green]Nova Act Result:[/bold green] {result}")
|
|
100
|
+
|
|
101
|
+
except KeyboardInterrupt:
|
|
102
|
+
console.print("\n\n[yellow]Shutting down...[/yellow]")
|
|
103
|
+
if 'client' in locals():
|
|
104
|
+
client.stop()
|
|
105
|
+
print("✅ Browser session terminated")
|
|
106
|
+
except Exception as e:
|
|
107
|
+
print(f"\n[red]Error: {e}[/red]")
|
|
108
|
+
import traceback
|
|
109
|
+
traceback.print_exc()
|
|
110
|
+
|
|
111
|
+
if __name__ == "__main__":
|
|
112
|
+
main()
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Example 2: Using Playwright for Browser Control
|
|
116
|
+
|
|
117
|
+
##### Install dependencies
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
pip install playwright
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
You can use the Playwright automation framework with the Browser Tool:
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
import time
|
|
127
|
+
import base64
|
|
128
|
+
from datetime import datetime
|
|
129
|
+
from playwright.sync_api import sync_playwright, Playwright, BrowserType
|
|
130
|
+
from bedrock_agentcore.tools.browser_client import browser_session
|
|
131
|
+
|
|
132
|
+
def capture_cdp_screenshot(context, page, filename_prefix="screenshot", image_format="jpeg"):
|
|
133
|
+
"""Capture a screenshot using the CDP API and save to file."""
|
|
134
|
+
cdp_client = context.new_cdp_session(page)
|
|
135
|
+
screenshot_data = cdp_client.send("Page.captureScreenshot", {
|
|
136
|
+
"format": image_format,
|
|
137
|
+
"quality": 80,
|
|
138
|
+
"captureBeyondViewport": True
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
142
|
+
filename = f"{filename_prefix}_{timestamp}.{image_format}"
|
|
143
|
+
image_bytes = base64.b64decode(screenshot_data['data'])
|
|
144
|
+
|
|
145
|
+
with open(filename, "wb") as f:
|
|
146
|
+
f.write(image_bytes)
|
|
147
|
+
|
|
148
|
+
print(f"✅ Screenshot saved: {filename}")
|
|
149
|
+
return filename
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def main(playwright: Playwright):
|
|
153
|
+
with browser_session("us-west-2") as client:
|
|
154
|
+
print("📡 Browser session started... waiting for readiness")
|
|
155
|
+
|
|
156
|
+
ws_url, headers = client.generate_ws_headers()
|
|
157
|
+
chromium: BrowserType = playwright.chromium
|
|
158
|
+
browser = chromium.connect_over_cdp(ws_url, headers=headers)
|
|
159
|
+
|
|
160
|
+
try:
|
|
161
|
+
context = browser.contexts[0] if browser.contexts else browser.new_context()
|
|
162
|
+
page = context.pages[0] if context.pages else context.new_page()
|
|
163
|
+
|
|
164
|
+
# Step 1: Navigate to Amazon
|
|
165
|
+
print("🌐 Navigating to Amazon...")
|
|
166
|
+
page.goto("https://www.amazon.com", wait_until="domcontentloaded")
|
|
167
|
+
time.sleep(2)
|
|
168
|
+
capture_cdp_screenshot(context, page, "amazon_home")
|
|
169
|
+
|
|
170
|
+
# Step 2: Search for "coffee maker"
|
|
171
|
+
print("🔎 Searching for 'coffee maker'...")
|
|
172
|
+
page.fill("input#twotabsearchtextbox", "coffee maker")
|
|
173
|
+
page.keyboard.press("Enter")
|
|
174
|
+
page.wait_for_selector(".s-result-item", timeout=10000)
|
|
175
|
+
time.sleep(2)
|
|
176
|
+
capture_cdp_screenshot(context, page, "coffee_maker_results")
|
|
177
|
+
|
|
178
|
+
finally:
|
|
179
|
+
print("🔒 Closing browser session...")
|
|
180
|
+
if not page.is_closed():
|
|
181
|
+
page.close()
|
|
182
|
+
browser.close()
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
if __name__ == "__main__":
|
|
186
|
+
with sync_playwright() as p:
|
|
187
|
+
main(p)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Browser Tool Architecture
|
|
191
|
+
|
|
192
|
+
The AWS Browser Tool provides:
|
|
193
|
+
|
|
194
|
+
- **Fully managed browser environment** running in the AWS cloud
|
|
195
|
+
- **WebSocket-based CDP interface** for browser control
|
|
196
|
+
- **Integration with popular automation frameworks** like Playwright, Puppeteer, and NovaAct
|
|
197
|
+
- **Security and isolation** between browser sessions
|
|
198
|
+
|
|
199
|
+
## Best Practices
|
|
200
|
+
|
|
201
|
+
To get the most out of the browser tool:
|
|
202
|
+
|
|
203
|
+
1. **Use context managers** for proper resource cleanup
|
|
204
|
+
2. **Handle exceptions properly** to ensure browser sessions are closed
|
|
205
|
+
3. **Consider performance** when making multiple browser requests
|
|
206
|
+
4. **Secure sensitive data** - never hardcode credentials in browser automation code
|
|
207
|
+
5. **Use appropriate timeouts** for network and page load operations
|
|
208
|
+
6. **Add error recovery** for common browser automation challenges
|
|
@@ -41,7 +41,7 @@ If you need more control over the session lifecycle, you can also use the client
|
|
|
41
41
|
from bedrock_agentcore.tools.code_interpreter_client import CodeInterpreter
|
|
42
42
|
|
|
43
43
|
# Create a code interpreter client
|
|
44
|
-
client = CodeInterpreter(
|
|
44
|
+
client = CodeInterpreter(region="us-west-2")
|
|
45
45
|
|
|
46
46
|
# Start a code interpreter session
|
|
47
47
|
client.start()
|
|
@@ -30,7 +30,6 @@ identity_client = IdentityClient("us-east-1")
|
|
|
30
30
|
# Create workload identity
|
|
31
31
|
workload_identity = identity_client.create_workload_identity(
|
|
32
32
|
name="my-research-agent",
|
|
33
|
-
description="Research agent that accesses Google Drive and web search"
|
|
34
33
|
)
|
|
35
34
|
|
|
36
35
|
print(f"Workload Identity ARN: {workload_identity['workloadIdentityArn']}")
|
|
@@ -41,8 +40,7 @@ You can also use the AWS CLI:
|
|
|
41
40
|
|
|
42
41
|
```bash
|
|
43
42
|
aws bedrock-agentcore create-workload-identity \
|
|
44
|
-
--
|
|
45
|
-
--description "Research agent that accesses Google Drive and web search"
|
|
43
|
+
--name "my-research-agent"
|
|
46
44
|
```
|
|
47
45
|
|
|
48
46
|
## Configure Credential Providers
|
|
@@ -54,11 +52,13 @@ Credential providers define how your agent accesses external services:
|
|
|
54
52
|
```python
|
|
55
53
|
# Configure Google OAuth2 provider
|
|
56
54
|
google_provider = identity_client.create_oauth2_credential_provider(req={
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
55
|
+
"name": "myGoogleCredentialProvider",
|
|
56
|
+
"credentialProviderVendor": "GoogleOauth2",
|
|
57
|
+
"oauth2ProviderConfigInput": {
|
|
58
|
+
"googleOauth2ProviderConfig": {
|
|
59
|
+
"clientId": "your-google-client-id",
|
|
60
|
+
"clientSecret": "your-google-client-secret"
|
|
61
|
+
}
|
|
62
62
|
}
|
|
63
63
|
})
|
|
64
64
|
```
|
|
@@ -68,8 +68,8 @@ google_provider = identity_client.create_oauth2_credential_provider(req={
|
|
|
68
68
|
```python
|
|
69
69
|
# Configure API key provider
|
|
70
70
|
perplexity_provider = identity_client.create_api_key_credential_provider(req={
|
|
71
|
-
"
|
|
72
|
-
"
|
|
71
|
+
"name": "myPerplexityAPIKeyCredentialProvider",
|
|
72
|
+
"apiKey": "myApiKey"
|
|
73
73
|
})
|
|
74
74
|
```
|
|
75
75
|
|
|
@@ -117,7 +117,7 @@ class ResearchAgent:
|
|
|
117
117
|
"""Search the web using Perplexity AI"""
|
|
118
118
|
# Get API key from identity service
|
|
119
119
|
api_key = await self.identity_client.get_api_key(
|
|
120
|
-
provider_name="
|
|
120
|
+
provider_name="myPerplexityAPIKeyCredentialProvider",
|
|
121
121
|
agent_identity_token=self.workload_token
|
|
122
122
|
)
|
|
123
123
|
|
|
@@ -146,7 +146,7 @@ class ResearchAgent:
|
|
|
146
146
|
try:
|
|
147
147
|
# Get OAuth2 access token from identity service
|
|
148
148
|
access_token = await self.identity_client.get_token(
|
|
149
|
-
provider_name="
|
|
149
|
+
provider_name="myGoogleCredentialProvider",
|
|
150
150
|
scopes=["https://www.googleapis.com/auth/drive.file"],
|
|
151
151
|
agent_identity_token=self.workload_token,
|
|
152
152
|
auth_flow="USER_FEDERATION",
|
|
@@ -295,7 +295,7 @@ Example output during the OAuth2 flow:
|
|
|
295
295
|
```
|
|
296
296
|
Waiting for authentication...
|
|
297
297
|
Visit the following URL to login:
|
|
298
|
-
https://
|
|
298
|
+
https://bedrock-agentcore.us-west-2.amazonaws.com/identities/oauth2/authorize?request_uri=123456789
|
|
299
299
|
|
|
300
300
|
Polling for token... (press Ctrl+C to cancel)
|
|
301
301
|
```
|
|
@@ -84,7 +84,7 @@ conversations = client.list_events(
|
|
|
84
84
|
)
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
##
|
|
87
|
+
## Long-term Memory
|
|
88
88
|
|
|
89
89
|
### Create Memory with Long-term Memory
|
|
90
90
|
|
|
@@ -96,7 +96,7 @@ With long-term memory, you can extract and store information from conversations
|
|
|
96
96
|
|
|
97
97
|
- **Session Summaries (SummaryMemoryStrategy)**: Creates condensed representations of interaction content and outcomes. These summaries provide quick reference points for past activities and help optimize context window usage for future interactions.
|
|
98
98
|
|
|
99
|
-
To create a memory resource with long-term memory, use the create_memory_and_wait method with a strategy.
|
|
99
|
+
To create a memory resource with long-term memory, use the create_memory_and_wait method with a strategy. When you add a memory strategy for the first time to a memory resource (either on create or update), it may take 2-3 minutes for it to become ACTIVE:
|
|
100
100
|
|
|
101
101
|
```python
|
|
102
102
|
memory = client.create_memory_and_wait(
|
|
@@ -106,7 +106,7 @@ memory = client.create_memory_and_wait(
|
|
|
106
106
|
# Name of the extraction model/strategy
|
|
107
107
|
"name": "SessionSummarizer",
|
|
108
108
|
# Organize facts by session ID for easy retrieval
|
|
109
|
-
# Example: "summaries/session123" contains summary of session123
|
|
109
|
+
# Example: "summaries/User84/session123" contains summary of session123
|
|
110
110
|
"namespaces": ["/summaries/{actorId}/{sessionId}"]
|
|
111
111
|
}
|
|
112
112
|
}]
|