bedrock-agentcore-starter-toolkit 0.1.20__tar.gz → 0.1.22__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.

Files changed (201) hide show
  1. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.gitignore +6 -1
  2. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/CHANGELOG.md +18 -2
  3. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/PKG-INFO +2 -2
  4. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/pyproject.toml +3 -2
  5. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/runtime/commands.py +23 -6
  6. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py +0 -1
  7. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/bedrock_agentcore.py +7 -4
  8. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/configure.py +37 -7
  9. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/destroy.py +2 -1
  10. bedrock_agentcore_starter_toolkit-0.1.22/src/bedrock_agentcore_starter_toolkit/operations/runtime/exceptions.py +27 -0
  11. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/launch.py +81 -41
  12. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/codebuild.py +51 -25
  13. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/config.py +43 -1
  14. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/container.py +83 -27
  15. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/schema.py +69 -1
  16. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2 +1 -0
  17. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/dockerignore.template +1 -0
  18. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/fixtures/project_config_multiple.yaml +7 -1
  19. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/runtime/test_destroy.py +8 -5
  20. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/runtime/test_launch.py +78 -21
  21. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/test_codebuild.py +106 -12
  22. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/utils/runtime/test_container.py +23 -0
  23. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/cli/runtime/test_simple_agent.py +2 -1
  24. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/uv.lock +425 -346
  25. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/CODEOWNERS +0 -0
  26. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/branch-protection.json +0 -0
  28. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/dependabot.yml +0 -0
  29. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/pull_request_template.md +0 -0
  30. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/workflows/deploy-docs.yml +0 -0
  31. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/workflows/integration_testing.yml +0 -0
  32. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/workflows/pr-automerge.yml +0 -0
  33. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/workflows/release.yml +0 -0
  34. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/workflows/security-scanning.yml +0 -0
  35. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/workflows/security.yml +0 -0
  36. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.github/workflows/test-pypi-release.yml +0 -0
  37. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.pre-commit-config.yaml +0 -0
  38. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/.python-version +0 -0
  39. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/CODE-OF-CONDUCT.md +0 -0
  40. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/CONTRIBUTING.md +0 -0
  41. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/LICENSE.txt +0 -0
  42. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/NOTICE.txt +0 -0
  43. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/README.md +0 -0
  44. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/SECURITY.md +0 -0
  45. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/buildspec-lambda-package.yml +0 -0
  46. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/.gitignore +0 -0
  47. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/README.md +0 -0
  48. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/api-reference/cli.md +0 -0
  49. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/api-reference/identity.md +0 -0
  50. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/api-reference/memory.md +0 -0
  51. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/api-reference/runtime.md +0 -0
  52. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/api-reference/tools.md +0 -0
  53. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/README.md +0 -0
  54. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/agentcore-quickstart-example.md +0 -0
  55. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/async-processing.md +0 -0
  56. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/gateway-integration.md +0 -0
  57. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/memory_gateway_agent.md +0 -0
  58. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/runtime-framework-agents.md +0 -0
  59. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/semantic_search.md +0 -0
  60. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/examples/session-management.md +0 -0
  61. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/index.md +0 -0
  62. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/mcp/agentcore_runtime_deployment.md +0 -0
  63. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/stylesheets/extra.css +0 -0
  64. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/builtin-tools/quickstart-browser.md +0 -0
  65. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/builtin-tools/quickstart-code-interpreter.md +0 -0
  66. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/gateway/quickstart.md +0 -0
  67. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/identity/quickstart.md +0 -0
  68. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/import-agent/configuration.md +0 -0
  69. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/import-agent/design.md +0 -0
  70. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/import-agent/overview.md +0 -0
  71. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/import-agent/quickstart.md +0 -0
  72. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/memory/quickstart.md +0 -0
  73. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/observability/quickstart.md +0 -0
  74. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/runtime/async.md +0 -0
  75. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/runtime/notebook.md +0 -0
  76. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/runtime/overview.md +0 -0
  77. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/runtime/permissions.md +0 -0
  78. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/docs/user-guide/runtime/quickstart.md +0 -0
  79. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/mkdocs.yaml +0 -0
  80. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/documentation/overrides/main.html +0 -0
  81. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/scripts/bump-version.py +0 -0
  82. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/scripts/prepare-release.py +0 -0
  83. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/scripts/setup-branch-protection.sh +0 -0
  84. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/scripts/validate-release.py +0 -0
  85. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/__init__.py +0 -0
  86. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/__init__.py +0 -0
  87. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/cli.py +0 -0
  88. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/common.py +0 -0
  89. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/gateway/__init__.py +0 -0
  90. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/gateway/commands.py +0 -0
  91. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/README.md +0 -0
  92. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/__init__.py +0 -0
  93. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/agent_info.py +0 -0
  94. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/commands.py +0 -0
  95. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/cli/runtime/__init__.py +0 -0
  96. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/notebook/__init__.py +0 -0
  97. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/__init__.py +0 -0
  98. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/__init__.py +0 -0
  99. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/gateway/__init__.py +0 -0
  100. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/gateway/client.py +0 -0
  101. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/gateway/constants.py +0 -0
  102. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_lambda.py +0 -0
  103. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py +0 -0
  104. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/gateway/exceptions.py +0 -0
  105. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/README.md +0 -0
  106. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/__init__.py +0 -0
  107. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/constants.py +0 -0
  108. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/manager.py +0 -0
  109. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/DictWrapper.py +0 -0
  110. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/Memory.py +0 -0
  111. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/MemoryStrategy.py +0 -0
  112. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/MemorySummary.py +0 -0
  113. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/__init__.py +0 -0
  114. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/__init__.py +0 -0
  115. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/base.py +0 -0
  116. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/custom.py +0 -0
  117. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/semantic.py +0 -0
  118. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/summary.py +0 -0
  119. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/user_preference.py +0 -0
  120. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/memory/strategy_validator.py +0 -0
  121. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py +0 -0
  122. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/create_role.py +0 -0
  123. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py +0 -0
  124. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/models.py +0 -0
  125. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/operations/runtime/status.py +0 -0
  126. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/__init__.py +0 -0
  127. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/ecr.py +0 -0
  128. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/__init__.py +0 -0
  129. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/memory_manager_template.py +0 -0
  130. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_langchain.j2 +0 -0
  131. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_strands.j2 +0 -0
  132. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/template_fixtures_merged.json +0 -0
  133. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/__init__.py +0 -0
  134. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/base_bedrock_translate.py +0 -0
  135. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_langchain.py +0 -0
  136. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_strands.py +0 -0
  137. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/import_agent/utils.py +0 -0
  138. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/runtime.py +0 -0
  139. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/services/xray.py +0 -0
  140. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/endpoints.py +0 -0
  141. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/logging_config.py +0 -0
  142. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/entrypoint.py +0 -0
  143. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/logs.py +0 -0
  144. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/policy_template.py +0 -0
  145. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_policy.json.j2 +0 -0
  146. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_trust_policy.json.j2 +0 -0
  147. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/__init__.py +0 -0
  148. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/cli/gateway/__init__.py +0 -0
  149. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/cli/gateway/test_commands.py +0 -0
  150. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/cli/runtime/__init__.py +0 -0
  151. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/cli/runtime/test_commands.py +0 -0
  152. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/cli/runtime/test_configuration_manager.py +0 -0
  153. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/cli/test_common.py +0 -0
  154. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/conftest.py +0 -0
  155. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/conftest_mock.py +0 -0
  156. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/fixtures/project_config_single.yaml +0 -0
  157. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/notebook/runtime/test_bedrock_agentcore.py +0 -0
  158. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/gateway/test_gateway_client.py +0 -0
  159. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/gateway/test_gateway_client_init.py +0 -0
  160. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/gateway/test_gateway_create_role.py +0 -0
  161. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/memory/test_manager.py +0 -0
  162. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/memory/test_strategy_types.py +0 -0
  163. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/memory/test_strategy_validator.py +0 -0
  164. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/runtime/test_configure.py +0 -0
  165. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/runtime/test_create_role.py +0 -0
  166. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/runtime/test_invoke.py +0 -0
  167. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/operations/runtime/test_status.py +0 -0
  168. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/import_agent/data/bedrock_config.json +0 -0
  169. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/import_agent/data/bedrock_config_multi_agent.json +0 -0
  170. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/import_agent/data/bedrock_config_no_schema.json +0 -0
  171. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/import_agent/test_import_agent.py +0 -0
  172. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/test_ecr.py +0 -0
  173. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/test_runtime.py +0 -0
  174. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/test_runtime_conflict_error.py +0 -0
  175. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/services/test_xray.py +0 -0
  176. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/utils/runtime/test_config.py +0 -0
  177. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/utils/runtime/test_entrypoint.py +0 -0
  178. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/utils/runtime/test_policy_template.py +0 -0
  179. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/utils/test_endpoints.py +0 -0
  180. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests/utils/test_logging_config.py +0 -0
  181. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/__init__.py +0 -0
  182. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/cli/__init__.py +0 -0
  183. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/cli/runtime/__init__.py +0 -0
  184. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/cli/runtime/base_test.py +0 -0
  185. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/gateway/README.md +0 -0
  186. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/gateway/test_cognito_token.py +0 -0
  187. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/gateway/test_create_gateway_role.py +0 -0
  188. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/gateway/test_egress_auth.py +0 -0
  189. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/gateway/test_gateway_cognito.py +0 -0
  190. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/identity/access_token_3LO.py +0 -0
  191. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/memory/memory-manager.ipynb +0 -0
  192. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/memory/test_create_memory.py +0 -0
  193. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/notebook/test_notebook_runtime.py +0 -0
  194. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/strands_agent/__init__.py +0 -0
  195. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/strands_agent/agent_example.py +0 -0
  196. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/tools/__init__.py +0 -0
  197. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/tools/my_mcp_client.py +0 -0
  198. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/tools/my_mcp_client_remote.py +0 -0
  199. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/tools/my_mcp_server.py +0 -0
  200. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/tools/setup_cognito.sh +0 -0
  201. {bedrock_agentcore_starter_toolkit-0.1.20 → bedrock_agentcore_starter_toolkit-0.1.22}/tests_integ/utils/config.py +0 -0
@@ -11,7 +11,7 @@ __pycache__*
11
11
  dist
12
12
  .dockerignore
13
13
  .bedrock_agentcore.yaml
14
- .bedrock_agentcore/*
14
+ .bedrock_agentcore/
15
15
  .ipynb_checkpoints
16
16
  Dockerfile
17
17
  *.iml
@@ -22,3 +22,8 @@ documentation/.cache
22
22
  .agentcore.yaml
23
23
  output*/
24
24
  .serena/
25
+ specs/
26
+ .claude/
27
+ .specify/
28
+ coverage.json
29
+ CLAUDE.md
@@ -1,13 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.22] - 2025-10-09
4
+
5
+ ### Changes
6
+
7
+ - Enhanced configuration management with source_path support and improved build workflow (#262) (949abae)
8
+ - feat: add request_header support for runtime config (#260) (e811f4f)
9
+ - fix: add non-interactive flag to integration tests (#261) (c99b5ee)
10
+ - Support vpc (#221) (8a9c3b4)
11
+ - chore: bump version to 0.1.21 (#259) (3e787bd)
12
+
13
+ ## [0.1.21] - 2025-10-08
14
+
15
+ ### Changes
16
+
17
+ - add a2a protocol notebook support (#258) (e656d63)
18
+ - Release v0.1.20 (#257) (1de8828)
19
+
3
20
  ## [0.1.20] - 2025-10-08
4
21
 
5
22
  ### Changes
6
23
 
7
24
  - feat: Add A2A protocol support to AgentCore Runtime toolkit (#255) (84c9456)
8
25
  - Fix documentation examples display (#254) (c699e4c)
9
- - docs: imporvements to quickstart (#247) (3ee881b)
10
- - chore: bump version to 0.1.19 (#248) (7992f8e)
26
+ - docs: improvements to quickstart (#247) (3ee881b)
11
27
 
12
28
  ## [0.1.19] - 2025-10-03
13
29
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bedrock-agentcore-starter-toolkit
3
- Version: 0.1.20
3
+ Version: 0.1.22
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,7 +22,7 @@ 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: autopep8>=2.3.2
25
- Requires-Dist: bedrock-agentcore>=0.1.4
25
+ Requires-Dist: bedrock-agentcore>=0.1.7
26
26
  Requires-Dist: boto3>=1.40.35
27
27
  Requires-Dist: botocore>=1.40.35
28
28
  Requires-Dist: docstring-parser<1.0,>=0.15
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bedrock-agentcore-starter-toolkit"
7
- version = "0.1.20"
7
+ version = "0.1.22"
8
8
  description = "A starter toolkit for using Bedrock AgentCore"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -28,7 +28,7 @@ classifiers = [
28
28
  dependencies = [
29
29
  "boto3>=1.40.35",
30
30
  "botocore>=1.40.35",
31
- "bedrock-agentcore>=0.1.4",
31
+ "bedrock-agentcore>=0.1.7",
32
32
  "docstring_parser>=0.15,<1.0",
33
33
  "httpx>=0.28.1",
34
34
  "jinja2>=3.1.6",
@@ -115,6 +115,7 @@ concurrency = ["thread", "multiprocessing"]
115
115
  omit = [
116
116
  "src/bedrock_agentcore_starter_toolkit/cli/import_agent/*", # CLI requires user input to test
117
117
  "src/bedrock_agentcore_starter_toolkit/services/import_agent/utils.py", # Utils are not tested directly
118
+ "src/bedrock_agentcore_starter_toolkit/operations/runtime/exceptions.py", # Simple exception classes
118
119
  ]
119
120
 
120
121
  [tool.coverage.report]
@@ -68,17 +68,34 @@ def _prompt_for_requirements_file(prompt_text: str, default: str = "") -> Option
68
68
  return None
69
69
 
70
70
 
71
- def _handle_requirements_file_display(requirements_file: Optional[str], non_interactive: bool = False) -> Optional[str]:
72
- """Handle requirements file with display logic for CLI."""
71
+ def _handle_requirements_file_display(
72
+ requirements_file: Optional[str], non_interactive: bool = False, source_path: Optional[str] = None
73
+ ) -> Optional[str]:
74
+ """Handle requirements file with display logic for CLI.
75
+
76
+ Args:
77
+ requirements_file: Explicit requirements file path
78
+ non_interactive: Whether to skip interactive prompts
79
+ source_path: Optional source code directory (checks here first, then falls back to project root)
80
+ """
73
81
  from ...utils.runtime.entrypoint import detect_dependencies
74
82
 
75
83
  if requirements_file:
76
84
  # User provided file - validate and show confirmation
77
85
  return _validate_requirements_file(requirements_file)
78
86
 
87
+ # Detect dependencies:
88
+ # - If source_path provided: check source_path only
89
+ # - Otherwise: check project root (Path.cwd())
90
+ if source_path:
91
+ source_dir = Path(source_path)
92
+ deps = detect_dependencies(source_dir)
93
+ else:
94
+ # No source_path, check project root
95
+ deps = detect_dependencies(Path.cwd())
96
+
79
97
  if non_interactive:
80
98
  # Auto-detection for non-interactive mode
81
- deps = detect_dependencies(Path.cwd())
82
99
  if deps.found:
83
100
  _print_success(f"Using detected file: [dim]{deps.file}[/dim]")
84
101
  return None # Use detected file
@@ -86,8 +103,6 @@ def _handle_requirements_file_display(requirements_file: Optional[str], non_inte
86
103
  _handle_error("No requirements file specified and none found automatically")
87
104
 
88
105
  # Auto-detection with interactive prompt
89
- deps = detect_dependencies(Path.cwd())
90
-
91
106
  if deps.found:
92
107
  console.print(f"\n🔍 [cyan]Detected dependency file:[/cyan] [bold]{deps.file}[/bold]")
93
108
  console.print("[dim]Press Enter to use this file, or type a different path (use Tab for autocomplete):[/dim]")
@@ -190,6 +205,7 @@ def configure(
190
205
  non_interactive: bool = typer.Option(
191
206
  False, "--non-interactive", "-ni", help="Skip prompts; use defaults unless overridden"
192
207
  ),
208
+ source_path: Optional[str] = typer.Option(None, "--source-path", "-sp", help="Path to agent source code directory"),
193
209
  ):
194
210
  """Configure a Bedrock AgentCore agent. The agent name defaults to your Python file name."""
195
211
  if ctx.invoked_subcommand is not None:
@@ -237,7 +253,7 @@ def configure(
237
253
  _print_success(f"Using existing ECR repository: [dim]{ecr_repository}[/dim]")
238
254
 
239
255
  # Handle dependency file selection with simplified logic
240
- final_requirements_file = _handle_requirements_file_display(requirements_file, non_interactive)
256
+ final_requirements_file = _handle_requirements_file_display(requirements_file, non_interactive, source_path)
241
257
 
242
258
  # Handle OAuth authorization configuration
243
259
  oauth_config = None
@@ -281,6 +297,7 @@ def configure(
281
297
  region=region,
282
298
  protocol=protocol.upper() if protocol else None,
283
299
  non_interactive=non_interactive,
300
+ source_path=source_path,
284
301
  )
285
302
 
286
303
  # Prepare authorization info for summary
@@ -304,7 +304,6 @@ class ConfigurationManager:
304
304
 
305
305
  def _prompt_new_memory_config(self) -> Tuple[str, str]:
306
306
  """Prompt for new memory configuration."""
307
- console.print("\n🧠 [cyan]Memory Configuration[/cyan]")
308
307
  console.print("[green]✓ Short-term memory is enabled by default[/green]")
309
308
  console.print(" • Stores conversations within sessions")
310
309
  console.print(" • Provides immediate context recall")
@@ -44,8 +44,9 @@ class Runtime:
44
44
  auto_create_ecr: bool = True,
45
45
  auto_create_execution_role: bool = False,
46
46
  authorizer_configuration: Optional[Dict[str, Any]] = None,
47
+ request_header_configuration: Optional[Dict[str, Any]] = None,
47
48
  region: Optional[str] = None,
48
- protocol: Optional[Literal["HTTP", "MCP"]] = None,
49
+ protocol: Optional[Literal["HTTP", "MCP", "A2A"]] = None,
49
50
  disable_otel: bool = False,
50
51
  non_interactive: bool = True,
51
52
  ) -> ConfigureResult:
@@ -64,16 +65,17 @@ class Runtime:
64
65
  auto_create_ecr: Whether to auto-create ECR repository
65
66
  auto_create_execution_role: Whether to auto-create execution role (makes execution_role optional)
66
67
  authorizer_configuration: JWT authorizer configuration dictionary
68
+ request_header_configuration: Request header configuration dictionary
67
69
  region: AWS region for deployment
68
- protocol: agent server protocol, must be either HTTP or MCP
70
+ protocol: agent server protocol, must be either HTTP or MCP or A2A
69
71
  disable_otel: Whether to disable OpenTelemetry observability (default: False)
70
72
  non_interactive: Skip interactive prompts and use defaults (default: True)
71
73
 
72
74
  Returns:
73
75
  ConfigureResult with configuration details
74
76
  """
75
- if protocol and protocol.upper() not in ["HTTP", "MCP"]:
76
- raise ValueError("protocol must be either HTTP or MCP")
77
+ if protocol and protocol.upper() not in ["HTTP", "MCP", "A2A"]:
78
+ raise ValueError("protocol must be either HTTP or MCP or A2A")
77
79
 
78
80
  # Parse entrypoint to get agent name
79
81
  file_path, file_name = parse_entrypoint(entrypoint)
@@ -120,6 +122,7 @@ class Runtime:
120
122
  enable_observability=not disable_otel,
121
123
  requirements_file=final_requirements_file,
122
124
  authorizer_configuration=authorizer_configuration,
125
+ request_header_configuration=request_header_configuration,
123
126
  region=region,
124
127
  protocol=protocol.upper() if protocol else None,
125
128
  non_interactive=non_interactive,
@@ -41,6 +41,7 @@ def configure_bedrock_agentcore(
41
41
  region: Optional[str] = None,
42
42
  protocol: Optional[str] = None,
43
43
  non_interactive: bool = False,
44
+ source_path: Optional[str] = None,
44
45
  ) -> ConfigureResult:
45
46
  """Configure Bedrock AgentCore application with deployment settings.
46
47
 
@@ -61,6 +62,7 @@ def configure_bedrock_agentcore(
61
62
  region: AWS region for deployment
62
63
  protocol: agent server protocol, must be either HTTP or MCP or A2A
63
64
  non_interactive: Skip interactive prompts and use defaults
65
+ source_path: Optional path to agent source code directory
64
66
 
65
67
  Returns:
66
68
  ConfigureResult model with configuration details
@@ -73,10 +75,13 @@ def configure_bedrock_agentcore(
73
75
  log.setLevel(logging.INFO)
74
76
  # Log agent name at the start of configuration
75
77
  log.info("Configuring BedrockAgentCore agent: %s", agent_name)
78
+
79
+ # Build directory is always project root for module validation and dependency detection
76
80
  build_dir = Path.cwd()
77
81
 
78
82
  if verbose:
79
83
  log.debug("Build directory: %s", build_dir)
84
+ log.debug("Source path: %s", source_path or "None (using build directory)")
80
85
  log.debug("Bedrock AgentCore name: %s", agent_name)
81
86
  log.debug("Entrypoint path: %s", entrypoint_path)
82
87
 
@@ -196,24 +201,48 @@ def configure_bedrock_agentcore(
196
201
  if memory_id:
197
202
  log.debug(" Memory ID: %s", memory_id)
198
203
 
204
+ # Determine output directory for Dockerfile based on source_path
205
+ # If source_path provided: write to .bedrock_agentcore/{agent_name}/ directly
206
+ # Otherwise: write to project root (legacy)
207
+ if source_path:
208
+ from ...utils.runtime.config import get_agentcore_directory
209
+
210
+ dockerfile_output_dir = get_agentcore_directory(Path.cwd(), agent_name, source_path)
211
+ else:
212
+ dockerfile_output_dir = build_dir
213
+
214
+ # Generate Dockerfile in the correct location (no moving needed)
199
215
  dockerfile_path = runtime.generate_dockerfile(
200
216
  entrypoint_path,
201
- build_dir,
217
+ dockerfile_output_dir,
202
218
  bedrock_agentcore_name or "bedrock_agentcore",
203
219
  region,
204
220
  enable_observability,
205
221
  requirements_file,
206
222
  memory_id,
207
223
  memory_name,
224
+ source_path,
208
225
  protocol,
209
226
  )
210
-
211
- # Check if .dockerignore was created
212
- dockerignore_path = build_dir / ".dockerignore"
213
-
214
227
  log.info("Generated Dockerfile: %s", dockerfile_path)
215
- if dockerignore_path.exists():
216
- log.info("Generated .dockerignore: %s", dockerignore_path)
228
+
229
+ # Ensure .dockerignore exists at Docker build context location
230
+ if source_path:
231
+ # For source_path: .dockerignore at source directory (Docker build context)
232
+ source_dockerignore = Path(source_path) / ".dockerignore"
233
+ if not source_dockerignore.exists():
234
+ template_path = (
235
+ Path(__file__).parent.parent.parent / "utils" / "runtime" / "templates" / "dockerignore.template"
236
+ )
237
+ if template_path.exists():
238
+ source_dockerignore.write_text(template_path.read_text())
239
+ log.info("Generated .dockerignore: %s", source_dockerignore)
240
+ dockerignore_path = source_dockerignore
241
+ else:
242
+ # Legacy: .dockerignore at project root
243
+ dockerignore_path = build_dir / ".dockerignore"
244
+ if dockerignore_path.exists():
245
+ log.info("Generated .dockerignore: %s", dockerignore_path)
217
246
 
218
247
  # Handle project configuration (named agents)
219
248
  config_path = build_dir / ".bedrock_agentcore.yaml"
@@ -258,6 +287,7 @@ def configure_bedrock_agentcore(
258
287
  entrypoint=entrypoint,
259
288
  platform=ContainerRuntime.DEFAULT_PLATFORM,
260
289
  container_runtime=runtime.runtime,
290
+ source_path=str(Path(source_path).resolve()) if source_path else None,
261
291
  aws=AWSConfig(
262
292
  execution_role=execution_role_arn,
263
293
  execution_role_auto_create=execution_role_auto_create,
@@ -11,6 +11,7 @@ from ...operations.memory.manager import MemoryManager
11
11
  from ...services.runtime import BedrockAgentCoreClient
12
12
  from ...utils.runtime.config import load_config, save_config
13
13
  from ...utils.runtime.schema import BedrockAgentCoreAgentSchema, BedrockAgentCoreConfigSchema
14
+ from .exceptions import RuntimeToolkitException
14
15
  from .models import DestroyResult
15
16
 
16
17
  log = logging.getLogger(__name__)
@@ -102,7 +103,7 @@ def destroy_bedrock_agentcore(
102
103
 
103
104
  except Exception as e:
104
105
  log.error("Destroy operation failed: %s", str(e))
105
- raise RuntimeError(f"Destroy operation failed: {e}") from e
106
+ raise RuntimeToolkitException(f"Destroy operation failed: {e}") from e
106
107
 
107
108
 
108
109
  def _destroy_agentcore_endpoint(
@@ -0,0 +1,27 @@
1
+ """Exceptions for the Bedrock AgentCore Runtime module."""
2
+
3
+ from typing import List, Optional
4
+
5
+
6
+ class RuntimeException(Exception):
7
+ """Base exception for all Runtime SDK errors."""
8
+
9
+ pass
10
+
11
+
12
+ class RuntimeToolkitException(RuntimeException):
13
+ """Raised when runtime operations fail with resource tracking."""
14
+
15
+ def __init__(self, message: str, created_resources: Optional[List[str]] = None):
16
+ """Initialize RuntimeToolkitException with optional resource tracking.
17
+
18
+ Args:
19
+ message: Error message
20
+ created_resources: List of resources created before failure
21
+ """
22
+ self.created_resources = created_resources or []
23
+ if created_resources:
24
+ full_message = f"{message}. Resources created: {created_resources}"
25
+ else:
26
+ full_message = message
27
+ super().__init__(full_message)
@@ -19,6 +19,7 @@ from ...utils.runtime.container import ContainerRuntime
19
19
  from ...utils.runtime.logs import get_genai_observability_url
20
20
  from ...utils.runtime.schema import BedrockAgentCoreAgentSchema, BedrockAgentCoreConfigSchema
21
21
  from .create_role import get_or_create_runtime_execution_role
22
+ from .exceptions import RuntimeToolkitException
22
23
  from .models import LaunchResult
23
24
 
24
25
  log = logging.getLogger(__name__)
@@ -479,14 +480,24 @@ def launch_bedrock_agentcore(
479
480
  "💡 For local builds, please install Docker, Finch, or Podman"
480
481
  )
481
482
 
482
- # Get build context - always use project root (where config and Dockerfile are)
483
- build_dir = config_path.parent
483
+ # Get build context - use source_path if configured, otherwise use project root
484
+ build_dir = Path(agent_config.source_path) if agent_config.source_path else config_path.parent
485
+ log.info("Using build directory: %s", build_dir)
484
486
 
485
487
  bedrock_agentcore_name = agent_config.name
486
488
  tag = f"bedrock_agentcore-{bedrock_agentcore_name}:latest"
487
489
 
488
490
  # Step 1: Build Docker image (only if we need it)
489
- success, output = runtime.build(build_dir, tag)
491
+ # When using source_path, Dockerfile is in .bedrock_agentcore/{agent_name}/ directory
492
+ from ...utils.runtime.config import get_agentcore_directory
493
+
494
+ dockerfile_dir = get_agentcore_directory(config_path.parent, agent_config.name, agent_config.source_path)
495
+ dockerfile_path = dockerfile_dir / "Dockerfile"
496
+
497
+ if not dockerfile_path.exists():
498
+ raise RuntimeError(f"Dockerfile not found at {dockerfile_path}. Please run 'agentcore configure' first.")
499
+
500
+ success, output = runtime.build(build_dir, tag, dockerfile_path=dockerfile_path)
490
501
  if not success:
491
502
  error_lines = output[-10:] if len(output) > 10 else output
492
503
  error_message = " ".join(error_lines)
@@ -573,53 +584,82 @@ def _execute_codebuild_workflow(
573
584
  agent_config.aws.account,
574
585
  agent_config.aws.region,
575
586
  )
576
- # Validate configuration
577
- errors = agent_config.validate(for_local=False)
578
- if errors:
579
- raise ValueError(f"Invalid configuration: {', '.join(errors)}")
580
587
 
581
- region = agent_config.aws.region
582
- if not region:
583
- raise ValueError("Region not found in configuration")
588
+ # Track created resources for error context
589
+ created_resources = []
584
590
 
585
- session = boto3.Session(region_name=region)
586
- account_id = agent_config.aws.account # Use existing account from config
591
+ try:
592
+ # Validate configuration
593
+ errors = agent_config.validate(for_local=False)
594
+ if errors:
595
+ raise ValueError(f"Invalid configuration: {', '.join(errors)}")
596
+
597
+ region = agent_config.aws.region
598
+ if not region:
599
+ raise ValueError("Region not found in configuration")
600
+
601
+ session = boto3.Session(region_name=region)
602
+ account_id = agent_config.aws.account # Use existing account from config
603
+
604
+ # Setup AWS resources
605
+ log.info("Setting up AWS resources (ECR repository%s)...", "" if ecr_only else ", execution roles")
606
+ ecr_uri = _ensure_ecr_repository(agent_config, project_config, config_path, agent_name, region)
607
+ if ecr_uri:
608
+ created_resources.append(f"ECR Repository: {ecr_uri}")
609
+ ecr_repository_arn = f"arn:aws:ecr:{region}:{account_id}:repository/{ecr_uri.split('/')[-1]}"
610
+
611
+ # Setup execution role only if not ECR-only mode
612
+ if not ecr_only:
613
+ _ensure_execution_role(agent_config, project_config, config_path, agent_name, region, account_id)
614
+ if agent_config.aws.execution_role:
615
+ created_resources.append(f"Runtime Execution Role: {agent_config.aws.execution_role}")
616
+
617
+ # Prepare CodeBuild
618
+ log.info("Preparing CodeBuild project and uploading source...")
619
+ codebuild_service = CodeBuildService(session)
620
+
621
+ # Use cached CodeBuild role from config if available
622
+ if hasattr(agent_config, "codebuild") and agent_config.codebuild.execution_role:
623
+ log.info("Using CodeBuild role from config: %s", agent_config.codebuild.execution_role)
624
+ codebuild_execution_role = agent_config.codebuild.execution_role
625
+ else:
626
+ codebuild_execution_role = codebuild_service.create_codebuild_execution_role(
627
+ account_id=account_id, ecr_repository_arn=ecr_repository_arn, agent_name=agent_name
628
+ )
629
+ if codebuild_execution_role:
630
+ created_resources.append(f"CodeBuild Execution Role: {codebuild_execution_role}")
587
631
 
588
- # Setup AWS resources
589
- log.info("Setting up AWS resources (ECR repository%s)...", "" if ecr_only else ", execution roles")
590
- ecr_uri = _ensure_ecr_repository(agent_config, project_config, config_path, agent_name, region)
591
- ecr_repository_arn = f"arn:aws:ecr:{region}:{account_id}:repository/{ecr_uri.split('/')[-1]}"
632
+ # Get source directory - use source_path if configured, otherwise use current directory
633
+ source_dir = str(Path(agent_config.source_path)) if agent_config.source_path else "."
592
634
 
593
- # Setup execution role only if not ECR-only mode
594
- if not ecr_only:
595
- _ensure_execution_role(agent_config, project_config, config_path, agent_name, region, account_id)
635
+ # Get Dockerfile directory - use agentcore directory if source_path provided
636
+ from ...utils.runtime.config import get_agentcore_directory
596
637
 
597
- # Prepare CodeBuild
598
- log.info("Preparing CodeBuild project and uploading source...")
599
- codebuild_service = CodeBuildService(session)
638
+ dockerfile_dir = get_agentcore_directory(config_path.parent, agent_name, agent_config.source_path)
600
639
 
601
- # Use cached CodeBuild role from config if available
602
- if hasattr(agent_config, "codebuild") and agent_config.codebuild.execution_role:
603
- log.info("Using CodeBuild role from config: %s", agent_config.codebuild.execution_role)
604
- codebuild_execution_role = agent_config.codebuild.execution_role
605
- else:
606
- codebuild_execution_role = codebuild_service.create_codebuild_execution_role(
607
- account_id=account_id, ecr_repository_arn=ecr_repository_arn, agent_name=agent_name
640
+ source_location = codebuild_service.upload_source(
641
+ agent_name=agent_name, source_dir=source_dir, dockerfile_dir=str(dockerfile_dir)
608
642
  )
609
643
 
610
- source_location = codebuild_service.upload_source(agent_name=agent_name)
644
+ # Use cached project name from config if available
645
+ if hasattr(agent_config, "codebuild") and agent_config.codebuild.project_name:
646
+ log.info("Using CodeBuild project from config: %s", agent_config.codebuild.project_name)
647
+ project_name = agent_config.codebuild.project_name
648
+ else:
649
+ project_name = codebuild_service.create_or_update_project(
650
+ agent_name=agent_name,
651
+ ecr_repository_uri=ecr_uri,
652
+ execution_role=codebuild_execution_role,
653
+ source_location=source_location,
654
+ )
655
+ if project_name:
656
+ created_resources.append(f"CodeBuild Project: {project_name}")
611
657
 
612
- # Use cached project name from config if available
613
- if hasattr(agent_config, "codebuild") and agent_config.codebuild.project_name:
614
- log.info("Using CodeBuild project from config: %s", agent_config.codebuild.project_name)
615
- project_name = agent_config.codebuild.project_name
616
- else:
617
- project_name = codebuild_service.create_or_update_project(
618
- agent_name=agent_name,
619
- ecr_repository_uri=ecr_uri,
620
- execution_role=codebuild_execution_role,
621
- source_location=source_location,
622
- )
658
+ except Exception as e:
659
+ if created_resources:
660
+ log.error("Launch failed after creating the following resources: %s. Error: %s", created_resources, str(e))
661
+ raise RuntimeToolkitException("Launch failed", created_resources) from e
662
+ raise
623
663
 
624
664
  # Execute CodeBuild
625
665
  log.info("Starting CodeBuild build (this may take several minutes)...")
@@ -6,8 +6,9 @@ import os
6
6
  import tempfile
7
7
  import time
8
8
  import zipfile
9
+ from importlib.resources import files
9
10
  from pathlib import Path
10
- from typing import List
11
+ from typing import List, Optional
11
12
 
12
13
  import boto3
13
14
  from botocore.exceptions import ClientError
@@ -70,21 +71,28 @@ class CodeBuildService:
70
71
 
71
72
  return bucket_name
72
73
 
73
- def upload_source(self, agent_name: str) -> str:
74
- """Upload current directory to S3, respecting .dockerignore patterns."""
74
+ def upload_source(self, agent_name: str, source_dir: str = ".", dockerfile_dir: Optional[str] = None) -> str:
75
+ """Upload source directory to S3, respecting .dockerignore patterns.
76
+
77
+ Args:
78
+ agent_name: Name of the agent
79
+ source_dir: Directory to upload (defaults to current directory)
80
+ dockerfile_dir: Directory containing Dockerfile (may be different from source_dir)
81
+ """
75
82
  account_id = self.account_id
76
83
  bucket_name = self.ensure_source_bucket(account_id)
77
84
  self.source_bucket = bucket_name
78
85
 
79
- # Parse .dockerignore patterns
86
+ # Parse .dockerignore patterns from template for consistent filtering
80
87
  ignore_patterns = self._parse_dockerignore()
81
88
 
82
89
  with tempfile.NamedTemporaryFile(suffix=".zip", delete=False) as temp_zip:
83
90
  try:
84
91
  with zipfile.ZipFile(temp_zip.name, "w", zipfile.ZIP_DEFLATED) as zipf:
85
- for root, dirs, files in os.walk("."):
86
- # Convert to relative path
87
- rel_root = os.path.relpath(root, ".")
92
+ # First, add all files from source_dir
93
+ for root, dirs, files in os.walk(source_dir):
94
+ # Convert to relative path from source_dir
95
+ rel_root = os.path.relpath(root, source_dir)
88
96
  if rel_root == ".":
89
97
  rel_root = ""
90
98
 
@@ -107,6 +115,16 @@ class CodeBuildService:
107
115
  file_path = Path(root) / file
108
116
  zipf.write(file_path, file_rel_path)
109
117
 
118
+ # If Dockerfile is in a different directory, include it in the zip
119
+ if dockerfile_dir and source_dir != dockerfile_dir:
120
+ dockerfile_path = Path(dockerfile_dir) / "Dockerfile"
121
+ source_dockerfile = Path(source_dir) / "Dockerfile"
122
+
123
+ if dockerfile_path.exists() and not source_dockerfile.exists():
124
+ # Include the Dockerfile from dockerfile_dir
125
+ zipf.write(dockerfile_path, "Dockerfile")
126
+ self.logger.info("Including Dockerfile from %s in source.zip", dockerfile_dir)
127
+
110
128
  # Create agent-organized S3 key: agentname/source.zip (fixed naming for cache consistency)
111
129
  s3_key = f"{agent_name}/source.zip"
112
130
 
@@ -280,21 +298,32 @@ phases:
280
298
  """
281
299
 
282
300
  def _parse_dockerignore(self) -> List[str]:
283
- """Parse .dockerignore file and return list of patterns."""
284
- dockerignore_path = Path(".dockerignore")
285
- patterns = []
286
-
287
- if dockerignore_path.exists():
288
- with open(dockerignore_path, "r") as f:
289
- for line in f:
290
- line = line.strip()
291
- if line and not line.startswith("#"):
292
- patterns.append(line)
293
-
294
- self.logger.info("Using .dockerignore with %d patterns", len(patterns))
295
- else:
296
- # Default patterns if no .dockerignore
297
- patterns = [
301
+ """Parse .dockerignore patterns from template for consistent filtering.
302
+
303
+ Always uses the dockerignore.template to ensure consistent file filtering
304
+ during zip creation, regardless of source_path configuration.
305
+ """
306
+ # Use dockerignore.template from package resources
307
+ try:
308
+ template_content = (
309
+ files("bedrock_agentcore_starter_toolkit")
310
+ .joinpath("utils/runtime/templates/dockerignore.template")
311
+ .read_text()
312
+ )
313
+
314
+ patterns = []
315
+ for line in template_content.splitlines():
316
+ line = line.strip()
317
+ if line and not line.startswith("#"):
318
+ patterns.append(line)
319
+
320
+ self.logger.info("Using dockerignore.template with %d patterns for zip filtering", len(patterns))
321
+ return patterns
322
+
323
+ except Exception as e:
324
+ # Fallback to minimal default patterns if template not found
325
+ self.logger.warning("Could not load dockerignore.template (%s), using minimal default patterns", e)
326
+ return [
298
327
  ".git",
299
328
  "__pycache__",
300
329
  "*.pyc",
@@ -305,9 +334,6 @@ phases:
305
334
  "*.egg-info",
306
335
  ".bedrock_agentcore.yaml", # Always exclude config
307
336
  ]
308
- self.logger.info("No .dockerignore found, using default exclude patterns")
309
-
310
- return patterns
311
337
 
312
338
  def _should_ignore(self, path: str, patterns: List[str], is_dir: bool = False) -> bool:
313
339
  """Check if path should be ignored based on dockerignore patterns."""