agentcore-cli 0.31.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. agentcore/__init__.py +1 -0
  2. agentcore/agent_inspector/NOTICE +9 -0
  3. agentcore/agent_inspector/favicon.svg +60 -0
  4. agentcore/agent_inspector/index.css +1 -0
  5. agentcore/agent_inspector/index.html +14 -0
  6. agentcore/agent_inspector/index.js +289 -0
  7. agentcore/assets/AGENTS.md +60 -0
  8. agentcore/assets/README.md +108 -0
  9. agentcore/assets/agents/AGENTS.md +218 -0
  10. agentcore/assets/cdk/.prettierrc +8 -0
  11. agentcore/assets/cdk/README.md +26 -0
  12. agentcore/assets/cdk/bin/cdk.ts +216 -0
  13. agentcore/assets/cdk/cdk.json +88 -0
  14. agentcore/assets/cdk/gitignore.template +9 -0
  15. agentcore/assets/cdk/jest.config.js +9 -0
  16. agentcore/assets/cdk/lib/cdk-stack.ts +291 -0
  17. agentcore/assets/cdk/npmignore.template +6 -0
  18. agentcore/assets/cdk/package.json +30 -0
  19. agentcore/assets/cdk/test/cdk.test.ts +31 -0
  20. agentcore/assets/cdk/tsconfig.json +28 -0
  21. agentcore/assets/container/python/Dockerfile +47 -0
  22. agentcore/assets/container/python/dockerignore.template +27 -0
  23. agentcore/assets/container/typescript/Dockerfile +25 -0
  24. agentcore/assets/container/typescript/dockerignore.template +24 -0
  25. agentcore/assets/datasets/predefined-v1.jsonl +3 -0
  26. agentcore/assets/datasets/simulated-v1.jsonl +3 -0
  27. agentcore/assets/evaluators/autoevals-lambda/execution-role-policy.json +15 -0
  28. agentcore/assets/evaluators/autoevals-lambda/lambda_function.py +37 -0
  29. agentcore/assets/evaluators/autoevals-lambda/pyproject.toml +22 -0
  30. agentcore/assets/evaluators/deepeval-lambda/execution-role-policy.json +15 -0
  31. agentcore/assets/evaluators/deepeval-lambda/lambda_function.py +29 -0
  32. agentcore/assets/evaluators/deepeval-lambda/pyproject.toml +19 -0
  33. agentcore/assets/evaluators/python-lambda/execution-role-policy.json +10 -0
  34. agentcore/assets/evaluators/python-lambda/lambda_function.py +19 -0
  35. agentcore/assets/evaluators/python-lambda/pyproject.toml +15 -0
  36. agentcore/assets/harness/invoke.py.template +74 -0
  37. agentcore/assets/mcp/python/README.md +27 -0
  38. agentcore/assets/mcp/python/pyproject.toml +22 -0
  39. agentcore/assets/mcp/python/server.py +117 -0
  40. agentcore/assets/mcp/python-lambda/README.md +22 -0
  41. agentcore/assets/mcp/python-lambda/handler.py +144 -0
  42. agentcore/assets/mcp/python-lambda/pyproject.toml +15 -0
  43. agentcore/assets/python/a2a/googleadk/base/README.md +22 -0
  44. agentcore/assets/python/a2a/googleadk/base/gitignore.template +41 -0
  45. agentcore/assets/python/a2a/googleadk/base/main.py +124 -0
  46. agentcore/assets/python/a2a/googleadk/base/model/__init__.py +1 -0
  47. agentcore/assets/python/a2a/googleadk/base/model/load.py +41 -0
  48. agentcore/assets/python/a2a/googleadk/base/pyproject.toml +22 -0
  49. agentcore/assets/python/a2a/langchain_langgraph/base/README.md +22 -0
  50. agentcore/assets/python/a2a/langchain_langgraph/base/gitignore.template +41 -0
  51. agentcore/assets/python/a2a/langchain_langgraph/base/main.py +144 -0
  52. agentcore/assets/python/a2a/langchain_langgraph/base/model/__init__.py +1 -0
  53. agentcore/assets/python/a2a/langchain_langgraph/base/model/load.py +123 -0
  54. agentcore/assets/python/a2a/langchain_langgraph/base/pyproject.toml +26 -0
  55. agentcore/assets/python/a2a/strands/base/README.md +22 -0
  56. agentcore/assets/python/a2a/strands/base/gitignore.template +41 -0
  57. agentcore/assets/python/a2a/strands/base/main.py +113 -0
  58. agentcore/assets/python/a2a/strands/base/model/__init__.py +1 -0
  59. agentcore/assets/python/a2a/strands/base/model/load.py +123 -0
  60. agentcore/assets/python/a2a/strands/base/pyproject.toml +23 -0
  61. agentcore/assets/python/a2a/strands/capabilities/memory/__init__.py +1 -0
  62. agentcore/assets/python/a2a/strands/capabilities/memory/session.py +46 -0
  63. agentcore/assets/python/agui/googleadk/base/README.md +30 -0
  64. agentcore/assets/python/agui/googleadk/base/gitignore.template +41 -0
  65. agentcore/assets/python/agui/googleadk/base/main.py +91 -0
  66. agentcore/assets/python/agui/googleadk/base/model/__init__.py +1 -0
  67. agentcore/assets/python/agui/googleadk/base/model/load.py +41 -0
  68. agentcore/assets/python/agui/googleadk/base/pyproject.toml +25 -0
  69. agentcore/assets/python/agui/langchain_langgraph/base/README.md +22 -0
  70. agentcore/assets/python/agui/langchain_langgraph/base/gitignore.template +41 -0
  71. agentcore/assets/python/agui/langchain_langgraph/base/main.py +130 -0
  72. agentcore/assets/python/agui/langchain_langgraph/base/model/__init__.py +1 -0
  73. agentcore/assets/python/agui/langchain_langgraph/base/model/load.py +123 -0
  74. agentcore/assets/python/agui/langchain_langgraph/base/pyproject.toml +31 -0
  75. agentcore/assets/python/agui/strands/base/README.md +22 -0
  76. agentcore/assets/python/agui/strands/base/gitignore.template +41 -0
  77. agentcore/assets/python/agui/strands/base/main.py +105 -0
  78. agentcore/assets/python/agui/strands/base/model/__init__.py +1 -0
  79. agentcore/assets/python/agui/strands/base/model/load.py +123 -0
  80. agentcore/assets/python/agui/strands/base/pyproject.toml +27 -0
  81. agentcore/assets/python/agui/strands/capabilities/memory/__init__.py +1 -0
  82. agentcore/assets/python/agui/strands/capabilities/memory/session.py +46 -0
  83. agentcore/assets/python/http/autogen/base/README.md +45 -0
  84. agentcore/assets/python/http/autogen/base/gitignore.template +41 -0
  85. agentcore/assets/python/http/autogen/base/main.py +145 -0
  86. agentcore/assets/python/http/autogen/base/mcp_client/__init__.py +1 -0
  87. agentcore/assets/python/http/autogen/base/mcp_client/client.py +28 -0
  88. agentcore/assets/python/http/autogen/base/model/__init__.py +1 -0
  89. agentcore/assets/python/http/autogen/base/model/load.py +136 -0
  90. agentcore/assets/python/http/autogen/base/pyproject.toml +34 -0
  91. agentcore/assets/python/http/bma/base/Dockerfile +41 -0
  92. agentcore/assets/python/http/bma/base/README.md +178 -0
  93. agentcore/assets/python/http/bma/base/client.py +200 -0
  94. agentcore/assets/python/http/bma/base/lifecycle/server.py +641 -0
  95. agentcore/assets/python/http/bma/base/otel/collector.yaml +69 -0
  96. agentcore/assets/python/http/bma/base/plugins/acr-report/.codex-plugin/plugin.json +6 -0
  97. agentcore/assets/python/http/bma/base/plugins/acr-report/skills/acr-report/SKILL.md +16 -0
  98. agentcore/assets/python/http/bma/base/policies/bma-acr-policy.json +11 -0
  99. agentcore/assets/python/http/bma/base/policies/bma-session-policy.json +35 -0
  100. agentcore/assets/python/http/bma/base/policies/bma-session-trust.json +20 -0
  101. agentcore/assets/python/http/bma/base/pyproject.toml +21 -0
  102. agentcore/assets/python/http/googleadk/base/README.md +45 -0
  103. agentcore/assets/python/http/googleadk/base/gitignore.template +41 -0
  104. agentcore/assets/python/http/googleadk/base/main.py +207 -0
  105. agentcore/assets/python/http/googleadk/base/mcp_client/__init__.py +1 -0
  106. agentcore/assets/python/http/googleadk/base/mcp_client/client.py +75 -0
  107. agentcore/assets/python/http/googleadk/base/model/__init__.py +1 -0
  108. agentcore/assets/python/http/googleadk/base/model/load.py +41 -0
  109. agentcore/assets/python/http/googleadk/base/pyproject.toml +24 -0
  110. agentcore/assets/python/http/langchain_langgraph/base/README.md +45 -0
  111. agentcore/assets/python/http/langchain_langgraph/base/gitignore.template +41 -0
  112. agentcore/assets/python/http/langchain_langgraph/base/main.py +227 -0
  113. agentcore/assets/python/http/langchain_langgraph/base/mcp_client/__init__.py +1 -0
  114. agentcore/assets/python/http/langchain_langgraph/base/mcp_client/client.py +79 -0
  115. agentcore/assets/python/http/langchain_langgraph/base/model/__init__.py +1 -0
  116. agentcore/assets/python/http/langchain_langgraph/base/model/load.py +123 -0
  117. agentcore/assets/python/http/langchain_langgraph/base/pyproject.toml +38 -0
  118. agentcore/assets/python/http/openaiagents/base/README.md +45 -0
  119. agentcore/assets/python/http/openaiagents/base/gitignore.template +41 -0
  120. agentcore/assets/python/http/openaiagents/base/main.py +200 -0
  121. agentcore/assets/python/http/openaiagents/base/mcp_client/__init__.py +1 -0
  122. agentcore/assets/python/http/openaiagents/base/mcp_client/client.py +74 -0
  123. agentcore/assets/python/http/openaiagents/base/model/__init__.py +1 -0
  124. agentcore/assets/python/http/openaiagents/base/model/load.py +37 -0
  125. agentcore/assets/python/http/openaiagents/base/pyproject.toml +21 -0
  126. agentcore/assets/python/http/strands/base/README.md +46 -0
  127. agentcore/assets/python/http/strands/base/gitignore.template +41 -0
  128. agentcore/assets/python/http/strands/base/main.py +714 -0
  129. agentcore/assets/python/http/strands/base/mcp_client/__init__.py +1 -0
  130. agentcore/assets/python/http/strands/base/mcp_client/client.py +116 -0
  131. agentcore/assets/python/http/strands/base/model/__init__.py +1 -0
  132. agentcore/assets/python/http/strands/base/model/load.py +239 -0
  133. agentcore/assets/python/http/strands/base/model/mantle_compat.py +21 -0
  134. agentcore/assets/python/http/strands/base/pyproject.toml +31 -0
  135. agentcore/assets/python/http/strands/base/skills/fetcher.py +279 -0
  136. agentcore/assets/python/http/strands/capabilities/execution-limits/hooks/execution_limits.py +54 -0
  137. agentcore/assets/python/http/strands/capabilities/memory/__init__.py +1 -0
  138. agentcore/assets/python/http/strands/capabilities/memory/session.py +47 -0
  139. agentcore/assets/python/http/strands/capabilities/payments/__init__.py +4 -0
  140. agentcore/assets/python/http/strands/capabilities/payments/payments.py +142 -0
  141. agentcore/assets/python/mcp/standalone/base/README.md +36 -0
  142. agentcore/assets/python/mcp/standalone/base/gitignore.template +41 -0
  143. agentcore/assets/python/mcp/standalone/base/main.py +83 -0
  144. agentcore/assets/python/mcp/standalone/base/pyproject.toml +16 -0
  145. agentcore/assets/typescript/.gitkeep +0 -0
  146. agentcore/assets/typescript/http/strands/base/README.md +42 -0
  147. agentcore/assets/typescript/http/strands/base/gitignore.template +22 -0
  148. agentcore/assets/typescript/http/strands/base/main.ts +149 -0
  149. agentcore/assets/typescript/http/strands/base/mcp_client/client.ts +11 -0
  150. agentcore/assets/typescript/http/strands/base/model/load.ts +102 -0
  151. agentcore/assets/typescript/http/strands/base/package.json +38 -0
  152. agentcore/assets/typescript/http/strands/base/tsconfig.json +19 -0
  153. agentcore/assets/typescript/http/strands/capabilities/memory/memory.ts +52 -0
  154. agentcore/assets/typescript/http/vercelai/base/README.md +42 -0
  155. agentcore/assets/typescript/http/vercelai/base/gitignore.template +22 -0
  156. agentcore/assets/typescript/http/vercelai/base/main.ts +70 -0
  157. agentcore/assets/typescript/http/vercelai/base/model/load.ts +121 -0
  158. agentcore/assets/typescript/http/vercelai/base/package.json +35 -0
  159. agentcore/assets/typescript/http/vercelai/base/tsconfig.json +19 -0
  160. agentcore/aws/__init__.py +263 -0
  161. agentcore/aws/_aws_errors.py +72 -0
  162. agentcore/aws/_http.py +176 -0
  163. agentcore/aws/_util.py +37 -0
  164. agentcore/aws/account.py +165 -0
  165. agentcore/aws/agentcore.py +971 -0
  166. agentcore/aws/agentcore_ab_tests.py +230 -0
  167. agentcore/aws/agentcore_batch_evaluation.py +227 -0
  168. agentcore/aws/agentcore_config_bundles.py +220 -0
  169. agentcore/aws/agentcore_control.py +994 -0
  170. agentcore/aws/agentcore_datasets.py +222 -0
  171. agentcore/aws/agentcore_harness.py +330 -0
  172. agentcore/aws/agentcore_payments.py +430 -0
  173. agentcore/aws/agentcore_recommendation.py +140 -0
  174. agentcore/aws/agui_parser.py +131 -0
  175. agentcore/aws/agui_types.py +342 -0
  176. agentcore/aws/api_client.py +87 -0
  177. agentcore/aws/arn.py +18 -0
  178. agentcore/aws/aws_context.py +23 -0
  179. agentcore/aws/bedrock.py +44 -0
  180. agentcore/aws/bedrock_agent.py +129 -0
  181. agentcore/aws/bedrock_import.py +252 -0
  182. agentcore/aws/bedrock_import_types.py +111 -0
  183. agentcore/aws/cloudwatch.py +136 -0
  184. agentcore/aws/connect_shell.py +266 -0
  185. agentcore/aws/iam.py +41 -0
  186. agentcore/aws/partition.py +58 -0
  187. agentcore/aws/policy_generation.py +116 -0
  188. agentcore/aws/region.py +54 -0
  189. agentcore/aws/retry.py +27 -0
  190. agentcore/aws/shell_framer.py +136 -0
  191. agentcore/aws/stage_endpoint.py +39 -0
  192. agentcore/aws/target_region.py +54 -0
  193. agentcore/aws/transaction_search.py +97 -0
  194. agentcore/cdk/__init__.py +10 -0
  195. agentcore/cdk/constants.py +13 -0
  196. agentcore/cdk/local_cdk_project.py +48 -0
  197. agentcore/cdk/toolkit.py +706 -0
  198. agentcore/cli/__init__.py +0 -0
  199. agentcore/cli/commands/__init__.py +0 -0
  200. agentcore/cli/commands/_jobs_common.py +39 -0
  201. agentcore/cli/commands/_run_wizards.py +639 -0
  202. agentcore/cli/commands/add/__init__.py +37 -0
  203. agentcore/cli/commands/add/_commander.py +52 -0
  204. agentcore/cli/commands/add/_common.py +47 -0
  205. agentcore/cli/commands/add/agent_wizard.py +528 -0
  206. agentcore/cli/commands/add/auth_options.py +154 -0
  207. agentcore/cli/commands/add/skill_action.py +105 -0
  208. agentcore/cli/commands/add/skill_command.py +87 -0
  209. agentcore/cli/commands/add/tool_action.py +160 -0
  210. agentcore/cli/commands/add/tool_command.py +117 -0
  211. agentcore/cli/commands/add/validate.py +333 -0
  212. agentcore/cli/commands/capacity_provider/__init__.py +86 -0
  213. agentcore/cli/commands/capacity_provider/action.py +114 -0
  214. agentcore/cli/commands/capacity_provider/constants.py +22 -0
  215. agentcore/cli/commands/config.py +91 -0
  216. agentcore/cli/commands/config_bundle.py +251 -0
  217. agentcore/cli/commands/create/__init__.py +643 -0
  218. agentcore/cli/commands/create/action.py +406 -0
  219. agentcore/cli/commands/create/dependencies.py +91 -0
  220. agentcore/cli/commands/create/harness_validate.py +82 -0
  221. agentcore/cli/commands/create/validate.py +195 -0
  222. agentcore/cli/commands/create/wizard.py +127 -0
  223. agentcore/cli/commands/dataset.py +119 -0
  224. agentcore/cli/commands/deploy/__init__.py +31 -0
  225. agentcore/cli/commands/deploy/_guards.py +25 -0
  226. agentcore/cli/commands/deploy/actions.py +840 -0
  227. agentcore/cli/commands/deploy/command.py +349 -0
  228. agentcore/cli/commands/deploy/progress.py +115 -0
  229. agentcore/cli/commands/deploy/types.py +68 -0
  230. agentcore/cli/commands/deploy/utils.py +43 -0
  231. agentcore/cli/commands/deploy/validate.py +21 -0
  232. agentcore/cli/commands/dev/__init__.py +5 -0
  233. agentcore/cli/commands/dev/_deps.py +50 -0
  234. agentcore/cli/commands/dev/browser_mode.py +270 -0
  235. agentcore/cli/commands/dev/command.py +450 -0
  236. agentcore/cli/commands/dev/terminal_mode.py +379 -0
  237. agentcore/cli/commands/exec/__init__.py +29 -0
  238. agentcore/cli/commands/exec/action.py +442 -0
  239. agentcore/cli/commands/exec/command.py +206 -0
  240. agentcore/cli/commands/exec/types.py +35 -0
  241. agentcore/cli/commands/export/__init__.py +114 -0
  242. agentcore/cli/commands/export/constants.py +21 -0
  243. agentcore/cli/commands/export/fetch_harness_spec.py +234 -0
  244. agentcore/cli/commands/export/harness_action.py +385 -0
  245. agentcore/cli/commands/export/harness_mapper.py +868 -0
  246. agentcore/cli/commands/export/harness_resolver.py +95 -0
  247. agentcore/cli/commands/export/types.py +90 -0
  248. agentcore/cli/commands/export/wizard.py +97 -0
  249. agentcore/cli/commands/feedback/__init__.py +69 -0
  250. agentcore/cli/commands/feedback/action.py +30 -0
  251. agentcore/cli/commands/feedback/consent_prompt.py +35 -0
  252. agentcore/cli/commands/feedback/wizard.py +49 -0
  253. agentcore/cli/commands/fetch/__init__.py +69 -0
  254. agentcore/cli/commands/fetch/action.py +62 -0
  255. agentcore/cli/commands/help.py +65 -0
  256. agentcore/cli/commands/import_/__init__.py +167 -0
  257. agentcore/cli/commands/import_/_js.py +72 -0
  258. agentcore/cli/commands/import_/actions.py +457 -0
  259. agentcore/cli/commands/import_/constants.py +45 -0
  260. agentcore/cli/commands/import_/import_evaluator.py +140 -0
  261. agentcore/cli/commands/import_/import_gateway.py +520 -0
  262. agentcore/cli/commands/import_/import_memory.py +128 -0
  263. agentcore/cli/commands/import_/import_online_eval.py +165 -0
  264. agentcore/cli/commands/import_/import_pipeline.py +145 -0
  265. agentcore/cli/commands/import_/import_runtime.py +214 -0
  266. agentcore/cli/commands/import_/import_utils.py +410 -0
  267. agentcore/cli/commands/import_/phase1_update.py +110 -0
  268. agentcore/cli/commands/import_/phase2_import.py +206 -0
  269. agentcore/cli/commands/import_/resource_import.py +228 -0
  270. agentcore/cli/commands/import_/template_utils.py +148 -0
  271. agentcore/cli/commands/import_/types.py +150 -0
  272. agentcore/cli/commands/import_/yaml_parser.py +265 -0
  273. agentcore/cli/commands/init.py +196 -0
  274. agentcore/cli/commands/invoke/__init__.py +32 -0
  275. agentcore/cli/commands/invoke/_deps.py +73 -0
  276. agentcore/cli/commands/invoke/action.py +840 -0
  277. agentcore/cli/commands/invoke/command.py +490 -0
  278. agentcore/cli/commands/invoke/constants.py +40 -0
  279. agentcore/cli/commands/invoke/guards.py +23 -0
  280. agentcore/cli/commands/invoke/interactive.py +604 -0
  281. agentcore/cli/commands/invoke/resolve.py +149 -0
  282. agentcore/cli/commands/invoke/resolve_prompt.py +60 -0
  283. agentcore/cli/commands/invoke/types.py +61 -0
  284. agentcore/cli/commands/invoke/validate.py +33 -0
  285. agentcore/cli/commands/job_actions.py +239 -0
  286. agentcore/cli/commands/job_history.py +380 -0
  287. agentcore/cli/commands/logs/__init__.py +53 -0
  288. agentcore/cli/commands/logs/action.py +159 -0
  289. agentcore/cli/commands/logs/filter_pattern.py +17 -0
  290. agentcore/cli/commands/logs/guards.py +51 -0
  291. agentcore/cli/commands/logs_evals.py +42 -0
  292. agentcore/cli/commands/package.py +118 -0
  293. agentcore/cli/commands/remove/__init__.py +172 -0
  294. agentcore/cli/commands/remove/skill_command.py +131 -0
  295. agentcore/cli/commands/remove/tool_command.py +59 -0
  296. agentcore/cli/commands/run.py +808 -0
  297. agentcore/cli/commands/run_ingest.py +97 -0
  298. agentcore/cli/commands/shared/__init__.py +0 -0
  299. agentcore/cli/commands/shared/arn_utils.py +9 -0
  300. agentcore/cli/commands/shared/filesystem_utils.py +421 -0
  301. agentcore/cli/commands/shared/header_utils.py +87 -0
  302. agentcore/cli/commands/shared/indexed_key_parser.py +76 -0
  303. agentcore/cli/commands/shared/lifecycle_utils.py +72 -0
  304. agentcore/cli/commands/shared/region_utils.py +20 -0
  305. agentcore/cli/commands/shared/vpc_utils.py +99 -0
  306. agentcore/cli/commands/status/__init__.py +30 -0
  307. agentcore/cli/commands/status/_guards.py +25 -0
  308. agentcore/cli/commands/status/action.py +741 -0
  309. agentcore/cli/commands/status/command.py +321 -0
  310. agentcore/cli/commands/status/constants.py +36 -0
  311. agentcore/cli/commands/status/format_knowledge_base.py +111 -0
  312. agentcore/cli/commands/telemetry.py +79 -0
  313. agentcore/cli/commands/traces/__init__.py +155 -0
  314. agentcore/cli/commands/traces/action.py +123 -0
  315. agentcore/cli/commands/update/__init__.py +63 -0
  316. agentcore/cli/commands/update/action.py +164 -0
  317. agentcore/cli/commands/validate.py +165 -0
  318. agentcore/cli/constants.py +96 -0
  319. agentcore/cli/errors.py +118 -0
  320. agentcore/cli/external_requirements/__init__.py +67 -0
  321. agentcore/cli/external_requirements/checks.py +280 -0
  322. agentcore/cli/external_requirements/detect.py +55 -0
  323. agentcore/cli/external_requirements/versions.py +57 -0
  324. agentcore/cli/groups.py +23 -0
  325. agentcore/cli/interactive.py +85 -0
  326. agentcore/cli/main.py +137 -0
  327. agentcore/cli/naming.py +11 -0
  328. agentcore/cli/notices.py +42 -0
  329. agentcore/cli/project.py +34 -0
  330. agentcore/cli/run_command.py +27 -0
  331. agentcore/cli/tree.py +135 -0
  332. agentcore/cli/update_notifier.py +123 -0
  333. agentcore/cli/variadic.py +50 -0
  334. agentcore/cloudformation/__init__.py +84 -0
  335. agentcore/cloudformation/bootstrap.py +64 -0
  336. agentcore/cloudformation/logical_ids.py +37 -0
  337. agentcore/cloudformation/outputs.py +566 -0
  338. agentcore/cloudformation/stack_discovery.py +75 -0
  339. agentcore/cloudformation/stack_events.py +107 -0
  340. agentcore/cloudformation/stack_status.py +98 -0
  341. agentcore/cloudformation/types.py +44 -0
  342. agentcore/lib/__init__.py +68 -0
  343. agentcore/lib/constants.py +77 -0
  344. agentcore/lib/dependency_management/__init__.py +23 -0
  345. agentcore/lib/dependency_management/messages.py +92 -0
  346. agentcore/lib/dependency_management/plan.py +98 -0
  347. agentcore/lib/dependency_management/semver.py +137 -0
  348. agentcore/lib/dependency_management/sync.py +139 -0
  349. agentcore/lib/dependency_management/types.py +56 -0
  350. agentcore/lib/errors/__init__.py +5 -0
  351. agentcore/lib/errors/types.py +352 -0
  352. agentcore/lib/errors/validation.py +121 -0
  353. agentcore/lib/packaging/__init__.py +81 -0
  354. agentcore/lib/packaging/build_args.py +23 -0
  355. agentcore/lib/packaging/build_context.py +26 -0
  356. agentcore/lib/packaging/build_context_dockerignore.py +45 -0
  357. agentcore/lib/packaging/container.py +95 -0
  358. agentcore/lib/packaging/helpers.py +289 -0
  359. agentcore/lib/packaging/node.py +153 -0
  360. agentcore/lib/packaging/python.py +135 -0
  361. agentcore/lib/packaging/types.py +69 -0
  362. agentcore/lib/packaging/uv.py +45 -0
  363. agentcore/lib/result.py +104 -0
  364. agentcore/lib/schemas/__init__.py +1 -0
  365. agentcore/lib/schemas/io/__init__.py +27 -0
  366. agentcore/lib/schemas/io/config_io.py +458 -0
  367. agentcore/lib/schemas/io/global_config.py +239 -0
  368. agentcore/lib/schemas/io/path_resolver.py +132 -0
  369. agentcore/lib/secrets/__init__.py +18 -0
  370. agentcore/lib/secrets/cipher.py +70 -0
  371. agentcore/lib/secrets/key_provider.py +163 -0
  372. agentcore/lib/secrets/sensitive_keys.py +55 -0
  373. agentcore/lib/time_constants.py +4 -0
  374. agentcore/lib/utils/__init__.py +47 -0
  375. agentcore/lib/utils/aws_account.py +15 -0
  376. agentcore/lib/utils/credentials.py +68 -0
  377. agentcore/lib/utils/dotenv.py +32 -0
  378. agentcore/lib/utils/env.py +105 -0
  379. agentcore/lib/utils/json_format.py +29 -0
  380. agentcore/lib/utils/json_rpc.py +22 -0
  381. agentcore/lib/utils/platform.py +33 -0
  382. agentcore/lib/utils/polling.py +86 -0
  383. agentcore/lib/utils/subprocess.py +135 -0
  384. agentcore/lib/utils/time_parser.py +48 -0
  385. agentcore/lib/utils/validation.py +106 -0
  386. agentcore/logging/__init__.py +10 -0
  387. agentcore/logging/_common.py +77 -0
  388. agentcore/logging/cdk_io_host.py +36 -0
  389. agentcore/logging/create_logger.py +107 -0
  390. agentcore/logging/dev_logger.py +63 -0
  391. agentcore/logging/exec_logger.py +159 -0
  392. agentcore/logging/invoke_logger.py +154 -0
  393. agentcore/logging/remove_logger.py +95 -0
  394. agentcore/operations/__init__.py +0 -0
  395. agentcore/operations/agent/__init__.py +0 -0
  396. agentcore/operations/agent/config_bundle_defaults.py +31 -0
  397. agentcore/operations/agent/generate/__init__.py +28 -0
  398. agentcore/operations/agent/generate/schema_mapper.py +319 -0
  399. agentcore/operations/agent/generate/types.py +172 -0
  400. agentcore/operations/agent/generate/write_agent_to_project.py +67 -0
  401. agentcore/operations/agent/import_/__init__.py +31 -0
  402. agentcore/operations/agent/import_/base_translator.py +449 -0
  403. agentcore/operations/agent/import_/constants.py +23 -0
  404. agentcore/operations/agent/import_/execute.py +127 -0
  405. agentcore/operations/agent/import_/langgraph_translator.py +294 -0
  406. agentcore/operations/agent/import_/pyproject_generator.py +73 -0
  407. agentcore/operations/agent/import_/strands_translator.py +289 -0
  408. agentcore/operations/config_bundle/__init__.py +1 -0
  409. agentcore/operations/config_bundle/bundle_name_variants.py +9 -0
  410. agentcore/operations/config_bundle/diff_versions.py +52 -0
  411. agentcore/operations/config_bundle/resolve_bundle.py +65 -0
  412. agentcore/operations/connectors/__init__.py +3 -0
  413. agentcore/operations/connectors/translators.py +63 -0
  414. agentcore/operations/dataset/__init__.py +21 -0
  415. agentcore/operations/dataset/delete.py +7 -0
  416. agentcore/operations/dataset/publish.py +16 -0
  417. agentcore/operations/dataset/pull.py +21 -0
  418. agentcore/operations/dataset/push.py +201 -0
  419. agentcore/operations/dataset/resolve_dataset.py +65 -0
  420. agentcore/operations/dataset/status.py +18 -0
  421. agentcore/operations/dataset/wait.py +25 -0
  422. agentcore/operations/deploy/__init__.py +152 -0
  423. agentcore/operations/deploy/backfill_vpc_id.py +90 -0
  424. agentcore/operations/deploy/change_detection.py +84 -0
  425. agentcore/operations/deploy/constants.py +58 -0
  426. agentcore/operations/deploy/dependency_sync.py +105 -0
  427. agentcore/operations/deploy/ensure_target.py +30 -0
  428. agentcore/operations/deploy/gateway_status.py +44 -0
  429. agentcore/operations/deploy/managed_memory_notice.py +36 -0
  430. agentcore/operations/deploy/payment_connector_authorization.py +106 -0
  431. agentcore/operations/deploy/post_deploy_datasets.py +96 -0
  432. agentcore/operations/deploy/post_deploy_knowledge_bases.py +104 -0
  433. agentcore/operations/deploy/post_deploy_observability.py +28 -0
  434. agentcore/operations/deploy/post_deploy_online_evals.py +60 -0
  435. agentcore/operations/deploy/pre_deploy_identity.py +505 -0
  436. agentcore/operations/deploy/preflight.py +385 -0
  437. agentcore/operations/deploy/region_override.py +45 -0
  438. agentcore/operations/deploy/teardown.py +153 -0
  439. agentcore/operations/dev/__init__.py +61 -0
  440. agentcore/operations/dev/_http.py +79 -0
  441. agentcore/operations/dev/_server.py +165 -0
  442. agentcore/operations/dev/codezip_dev_server.py +151 -0
  443. agentcore/operations/dev/config.py +128 -0
  444. agentcore/operations/dev/constants.py +9 -0
  445. agentcore/operations/dev/container_dev_server.py +237 -0
  446. agentcore/operations/dev/container_runtime.py +37 -0
  447. agentcore/operations/dev/dev_server.py +244 -0
  448. agentcore/operations/dev/gateway_env.py +25 -0
  449. agentcore/operations/dev/invoke.py +214 -0
  450. agentcore/operations/dev/invoke_a2a.py +204 -0
  451. agentcore/operations/dev/invoke_agui.py +88 -0
  452. agentcore/operations/dev/invoke_mcp.py +145 -0
  453. agentcore/operations/dev/invoke_types.py +30 -0
  454. agentcore/operations/dev/load_dev_env.py +26 -0
  455. agentcore/operations/dev/memory_env.py +19 -0
  456. agentcore/operations/dev/otel/__init__.py +5 -0
  457. agentcore/operations/dev/otel/collector.py +234 -0
  458. agentcore/operations/dev/otel/transforms.py +331 -0
  459. agentcore/operations/dev/payment_env.py +50 -0
  460. agentcore/operations/dev/server.py +28 -0
  461. agentcore/operations/dev/sse_transform.py +30 -0
  462. agentcore/operations/dev/utils.py +152 -0
  463. agentcore/operations/dev/web_ui/__init__.py +31 -0
  464. agentcore/operations/dev/web_ui/constants.py +25 -0
  465. agentcore/operations/dev/web_ui/handlers/__init__.py +36 -0
  466. agentcore/operations/dev/web_ui/handlers/_common.py +36 -0
  467. agentcore/operations/dev/web_ui/handlers/_deployed.py +37 -0
  468. agentcore/operations/dev/web_ui/handlers/a2a_proxy.py +37 -0
  469. agentcore/operations/dev/web_ui/handlers/cloudwatch_traces.py +71 -0
  470. agentcore/operations/dev/web_ui/handlers/harness_invocation.py +89 -0
  471. agentcore/operations/dev/web_ui/handlers/harness_utils.py +95 -0
  472. agentcore/operations/dev/web_ui/handlers/invocations.py +327 -0
  473. agentcore/operations/dev/web_ui/handlers/mcp_proxy.py +119 -0
  474. agentcore/operations/dev/web_ui/handlers/memory.py +84 -0
  475. agentcore/operations/dev/web_ui/handlers/resources.py +351 -0
  476. agentcore/operations/dev/web_ui/handlers/start.py +182 -0
  477. agentcore/operations/dev/web_ui/handlers/status.py +25 -0
  478. agentcore/operations/dev/web_ui/handlers/traces.py +50 -0
  479. agentcore/operations/dev/web_ui/run_web_ui.py +60 -0
  480. agentcore/operations/dev/web_ui/web_server.py +297 -0
  481. agentcore/operations/eval/__init__.py +8 -0
  482. agentcore/operations/eval/list_eval_runs.py +18 -0
  483. agentcore/operations/eval/logs_eval.py +119 -0
  484. agentcore/operations/eval/pause_resume.py +90 -0
  485. agentcore/operations/eval/run_eval.py +354 -0
  486. agentcore/operations/eval/shared/__init__.py +0 -0
  487. agentcore/operations/eval/shared/dataset_loader.py +68 -0
  488. agentcore/operations/eval/shared/dataset_session_provider.py +122 -0
  489. agentcore/operations/eval/shared/evaluator_runner.py +89 -0
  490. agentcore/operations/eval/shared/scenario_executor.py +71 -0
  491. agentcore/operations/eval/shared/span_collector.py +255 -0
  492. agentcore/operations/eval/storage.py +67 -0
  493. agentcore/operations/feedback/__init__.py +21 -0
  494. agentcore/operations/feedback/aperture_client.py +98 -0
  495. agentcore/operations/feedback/build_payload.py +97 -0
  496. agentcore/operations/feedback/constants.py +26 -0
  497. agentcore/operations/feedback/submit_feedback.py +150 -0
  498. agentcore/operations/fetch_access/__init__.py +36 -0
  499. agentcore/operations/fetch_access/_target.py +17 -0
  500. agentcore/operations/fetch_access/fetch_gateway_token.py +75 -0
  501. agentcore/operations/fetch_access/fetch_harness_token.py +72 -0
  502. agentcore/operations/fetch_access/fetch_runtime_token.py +76 -0
  503. agentcore/operations/fetch_access/list_agents.py +18 -0
  504. agentcore/operations/fetch_access/list_gateways.py +26 -0
  505. agentcore/operations/fetch_access/list_harnesses.py +23 -0
  506. agentcore/operations/fetch_access/oauth_token.py +162 -0
  507. agentcore/operations/fetch_access/types.py +34 -0
  508. agentcore/operations/harness/__init__.py +1 -0
  509. agentcore/operations/harness/orphan.py +84 -0
  510. agentcore/operations/harness/skill_utils.py +56 -0
  511. agentcore/operations/identity/__init__.py +33 -0
  512. agentcore/operations/identity/api_key_credential_provider.py +68 -0
  513. agentcore/operations/identity/oauth2_credential_provider.py +95 -0
  514. agentcore/operations/ingest/__init__.py +184 -0
  515. agentcore/operations/init/__init__.py +3 -0
  516. agentcore/operations/init/files.py +59 -0
  517. agentcore/operations/insights/__init__.py +21 -0
  518. agentcore/operations/insights/insights_storage.py +67 -0
  519. agentcore/operations/insights/run_insights.py +148 -0
  520. agentcore/operations/invoke/__init__.py +5 -0
  521. agentcore/operations/invoke/resolve_agent_context.py +85 -0
  522. agentcore/operations/jobs/__init__.py +38 -0
  523. agentcore/operations/jobs/ab_test/__init__.py +0 -0
  524. agentcore/operations/jobs/ab_test/build_options.py +126 -0
  525. agentcore/operations/jobs/ab_test/format.py +121 -0
  526. agentcore/operations/jobs/ab_test/handler.py +412 -0
  527. agentcore/operations/jobs/ab_test/promote.py +142 -0
  528. agentcore/operations/jobs/ab_test/resolve.py +221 -0
  529. agentcore/operations/jobs/batch_evaluation/__init__.py +0 -0
  530. agentcore/operations/jobs/batch_evaluation/build_source.py +68 -0
  531. agentcore/operations/jobs/batch_evaluation/dataset_phase1.py +95 -0
  532. agentcore/operations/jobs/batch_evaluation/format.py +58 -0
  533. agentcore/operations/jobs/batch_evaluation/handler.py +203 -0
  534. agentcore/operations/jobs/insights/__init__.py +0 -0
  535. agentcore/operations/jobs/insights/format.py +65 -0
  536. agentcore/operations/jobs/insights/handler.py +178 -0
  537. agentcore/operations/jobs/recommendation/__init__.py +0 -0
  538. agentcore/operations/jobs/recommendation/apply_to_bundle.py +76 -0
  539. agentcore/operations/jobs/recommendation/build_config.py +271 -0
  540. agentcore/operations/jobs/recommendation/fetch_session_spans.py +93 -0
  541. agentcore/operations/jobs/recommendation/format.py +77 -0
  542. agentcore/operations/jobs/recommendation/handler.py +331 -0
  543. agentcore/operations/jobs/shared/__init__.py +0 -0
  544. agentcore/operations/jobs/shared/constants.py +85 -0
  545. agentcore/operations/jobs/shared/engine.py +187 -0
  546. agentcore/operations/jobs/shared/format.py +104 -0
  547. agentcore/operations/jobs/shared/region.py +34 -0
  548. agentcore/operations/jobs/shared/resolve_agent_state.py +30 -0
  549. agentcore/operations/jobs/shared/storage.py +117 -0
  550. agentcore/operations/jobs/shared/wait.py +30 -0
  551. agentcore/operations/knowledge_base/__init__.py +33 -0
  552. agentcore/operations/knowledge_base/connector_config.py +105 -0
  553. agentcore/operations/knowledge_base/hydrate_data_sources.py +59 -0
  554. agentcore/operations/mcp/__init__.py +4 -0
  555. agentcore/operations/memory/__init__.py +13 -0
  556. agentcore/operations/memory/_records.py +72 -0
  557. agentcore/operations/memory/list_memory_records.py +45 -0
  558. agentcore/operations/memory/retrieve_memory_records.py +52 -0
  559. agentcore/operations/node/__init__.py +15 -0
  560. agentcore/operations/node/setup.py +36 -0
  561. agentcore/operations/python/__init__.py +17 -0
  562. agentcore/operations/python/setup.py +47 -0
  563. agentcore/operations/resolve_agent.py +159 -0
  564. agentcore/operations/session/__init__.py +86 -0
  565. agentcore/operations/traces/__init__.py +29 -0
  566. agentcore/operations/traces/get_trace.py +202 -0
  567. agentcore/operations/traces/insights_query.py +74 -0
  568. agentcore/operations/traces/list_traces.py +46 -0
  569. agentcore/operations/traces/trace_url.py +25 -0
  570. agentcore/operations/traces/types.py +55 -0
  571. agentcore/primitives/__init__.py +0 -0
  572. agentcore/primitives/_gateway_target_wizard.py +293 -0
  573. agentcore/primitives/_gateway_validation.py +442 -0
  574. agentcore/primitives/_harness_cli.py +557 -0
  575. agentcore/primitives/_harness_validation.py +163 -0
  576. agentcore/primitives/_harness_wizard.py +726 -0
  577. agentcore/primitives/_knowledge_base_wizard.py +259 -0
  578. agentcore/primitives/_payment_wizard.py +331 -0
  579. agentcore/primitives/_policy_form.py +160 -0
  580. agentcore/primitives/agent.py +817 -0
  581. agentcore/primitives/auth_utils.py +77 -0
  582. agentcore/primitives/base.py +178 -0
  583. agentcore/primitives/capacity_provider.py +501 -0
  584. agentcore/primitives/config_bundle.py +329 -0
  585. agentcore/primitives/credential.py +387 -0
  586. agentcore/primitives/credential_utils.py +45 -0
  587. agentcore/primitives/dataset.py +211 -0
  588. agentcore/primitives/deployed_gateways.py +34 -0
  589. agentcore/primitives/evaluator.py +909 -0
  590. agentcore/primitives/gateway.py +496 -0
  591. agentcore/primitives/gateway_target.py +988 -0
  592. agentcore/primitives/harness.py +706 -0
  593. agentcore/primitives/knowledge_base.py +477 -0
  594. agentcore/primitives/memory.py +387 -0
  595. agentcore/primitives/online_eval_config.py +365 -0
  596. agentcore/primitives/online_insights.py +275 -0
  597. agentcore/primitives/payment_connector.py +427 -0
  598. agentcore/primitives/payment_eligible.py +20 -0
  599. agentcore/primitives/payment_manager.py +605 -0
  600. agentcore/primitives/payment_validation.py +68 -0
  601. agentcore/primitives/policy.py +622 -0
  602. agentcore/primitives/policy_engine.py +358 -0
  603. agentcore/primitives/registry.py +56 -0
  604. agentcore/primitives/runtime_endpoint.py +361 -0
  605. agentcore/primitives/secret_flag_warning.py +17 -0
  606. agentcore/schema/__init__.py +14 -0
  607. agentcore/schema/_zod.py +395 -0
  608. agentcore/schema/constants.py +306 -0
  609. agentcore/schema/schemas/__init__.py +40 -0
  610. agentcore/schema/schemas/agent_env.py +545 -0
  611. agentcore/schema/schemas/agentcore_project.py +530 -0
  612. agentcore/schema/schemas/auth.py +286 -0
  613. agentcore/schema/schemas/aws_targets.py +72 -0
  614. agentcore/schema/schemas/connections.py +187 -0
  615. agentcore/schema/schemas/deployed_state.py +322 -0
  616. agentcore/schema/schemas/mcp.py +650 -0
  617. agentcore/schema/schemas/mcp_defs.py +54 -0
  618. agentcore/schema/schemas/primitives/__init__.py +52 -0
  619. agentcore/schema/schemas/primitives/ab_test.py +162 -0
  620. agentcore/schema/schemas/primitives/capacity_provider.py +214 -0
  621. agentcore/schema/schemas/primitives/config_bundle.py +48 -0
  622. agentcore/schema/schemas/primitives/dataset.py +55 -0
  623. agentcore/schema/schemas/primitives/evaluator.py +171 -0
  624. agentcore/schema/schemas/primitives/harness.py +710 -0
  625. agentcore/schema/schemas/primitives/knowledge_base.py +90 -0
  626. agentcore/schema/schemas/primitives/memory.py +113 -0
  627. agentcore/schema/schemas/primitives/online_eval_config.py +77 -0
  628. agentcore/schema/schemas/primitives/payment.py +114 -0
  629. agentcore/schema/schemas/primitives/policy.py +83 -0
  630. agentcore/schema/schemas/primitives/tags.py +50 -0
  631. agentcore/schema/schemas/zod_util.py +5 -0
  632. agentcore/schema/types/__init__.py +3 -0
  633. agentcore/schema/types/path.py +16 -0
  634. agentcore/templates/__init__.py +115 -0
  635. agentcore/templates/_handlebars.py +782 -0
  636. agentcore/templates/_js.py +164 -0
  637. agentcore/templates/base_renderer.py +107 -0
  638. agentcore/templates/cdk_renderer.py +129 -0
  639. agentcore/templates/evaluator_renderer.py +39 -0
  640. agentcore/templates/gateway_target_renderer.py +69 -0
  641. agentcore/templates/llm_context/README.md +16 -0
  642. agentcore/templates/llm_context/agentcore.ts +685 -0
  643. agentcore/templates/llm_context/aws-targets.ts +51 -0
  644. agentcore/templates/profiles.py +151 -0
  645. agentcore/templates/render.py +92 -0
  646. agentcore/templates/renderers.py +83 -0
  647. agentcore/templates/schema_assets.py +23 -0
  648. agentcore/templates/template_root.py +28 -0
  649. agentcore/templates/types.py +192 -0
  650. agentcore_cli-0.31.1.dist-info/METADATA +84 -0
  651. agentcore_cli-0.31.1.dist-info/RECORD +655 -0
  652. agentcore_cli-0.31.1.dist-info/WHEEL +4 -0
  653. agentcore_cli-0.31.1.dist-info/entry_points.txt +2 -0
  654. agentcore_cli-0.31.1.dist-info/licenses/LICENSE +175 -0
  655. agentcore_cli-0.31.1.dist-info/licenses/NOTICE +88 -0
@@ -0,0 +1,286 @@
1
+ """Shared inbound authorization schemas for gateways and runtimes (port of ``schemas/auth.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Annotated, Final, Literal, get_args
6
+
7
+ from pydantic import model_validator
8
+
9
+ from .._zod import Issue, StrictModel, ZodModel, array_checks, js_regex, raise_issues, zstr
10
+ from ..constants import SECURITY_GROUP_ID_PATTERN, SUBNET_ID_PATTERN, VPC_ID_PATTERN
11
+ from .primitives.tags import Tags
12
+
13
+ GatewayAuthorizerType = Literal["NONE", "AWS_IAM", "CUSTOM_JWT"]
14
+ GATEWAY_AUTHORIZER_TYPES: Final[tuple[GatewayAuthorizerType, ...]] = get_args(GatewayAuthorizerType)
15
+
16
+ RuntimeAuthorizerType = Literal["AWS_IAM", "CUSTOM_JWT"]
17
+ RUNTIME_AUTHORIZER_TYPES: Final[tuple[RuntimeAuthorizerType, ...]] = get_args(RuntimeAuthorizerType)
18
+
19
+ # OIDC well-known configuration endpoint suffix (OpenID Connect Discovery 1.0).
20
+ _OIDC_WELL_KNOWN_SUFFIX = "/.well-known/openid-configuration"
21
+
22
+ OidcDiscoveryUrl = zstr(
23
+ url=True,
24
+ url_msg="Must be a valid URL",
25
+ refines=(
26
+ (lambda u: u.startswith("https://"), "OIDC discovery URL must use HTTPS"),
27
+ (
28
+ lambda u: u.endswith(_OIDC_WELL_KNOWN_SUFFIX),
29
+ f"OIDC discovery URL must end with '{_OIDC_WELL_KNOWN_SUFFIX}'",
30
+ ),
31
+ ),
32
+ )
33
+
34
+ # ── Custom Claims (matches CFN CustomClaimValidationType) ──
35
+
36
+ _MATCH_VALUE_PATTERN = js_regex(r"^[A-Za-z0-9_.-]+$")
37
+ # OAuth scope token: printable ASCII excluding space (0x20) and double-quote (0x22).
38
+ _ALLOWED_SCOPE_PATTERN = js_regex(r"^[\x21\x23-\x5B\x5D-\x7E]+$")
39
+ _CLAIM_NAME_PATTERN = js_regex(r"^[A-Za-z0-9_.:-]+$")
40
+ # Server-side reserved claim names (API rejects these at deploy time).
41
+ _RESERVED_CLAIM_NAMES: Final = ("client_id",)
42
+
43
+ ClaimMatchOperator = Literal["EQUALS", "CONTAINS", "CONTAINS_ANY"]
44
+ CLAIM_MATCH_OPERATORS: Final[tuple[ClaimMatchOperator, ...]] = get_args(ClaimMatchOperator)
45
+
46
+
47
+ class ClaimMatchValue(ZodModel):
48
+ match_value_string: (
49
+ zstr(min=1, max=255, pattern=_MATCH_VALUE_PATTERN, pattern_msg="Match value must match [A-Za-z0-9_.-]+") | None
50
+ ) = None
51
+ match_value_string_list: (
52
+ Annotated[
53
+ list[
54
+ zstr(
55
+ min=1,
56
+ max=255,
57
+ pattern=_MATCH_VALUE_PATTERN,
58
+ pattern_msg="Each match value must match [A-Za-z0-9_.-]+",
59
+ )
60
+ ],
61
+ array_checks(min=1, max=255),
62
+ ]
63
+ | None
64
+ ) = None
65
+
66
+ @model_validator(mode="after")
67
+ def _refine(self) -> ClaimMatchValue:
68
+ has_one = self.match_value_string is not None
69
+ has_list = self.match_value_string_list is not None
70
+ issues: list[Issue] = []
71
+ if not (has_one or has_list):
72
+ issues.append(((), "Either matchValueString or matchValueStringList must be provided"))
73
+ if has_one and has_list:
74
+ issues.append(((), "Only one of matchValueString or matchValueStringList may be provided"))
75
+ raise_issues(issues, self)
76
+ return self
77
+
78
+
79
+ InboundTokenClaimValueType = Literal["STRING", "STRING_ARRAY"]
80
+ INBOUND_TOKEN_CLAIM_VALUE_TYPES: Final[tuple[InboundTokenClaimValueType, ...]] = get_args(InboundTokenClaimValueType)
81
+
82
+
83
+ class AuthorizingClaimMatchValue(ZodModel):
84
+ claim_match_operator: ClaimMatchOperator
85
+ claim_match_value: ClaimMatchValue
86
+
87
+
88
+ class CustomClaimValidation(StrictModel):
89
+ inbound_token_claim_name: zstr(
90
+ min=1,
91
+ max=255,
92
+ pattern=_CLAIM_NAME_PATTERN,
93
+ pattern_msg="Claim name must match [A-Za-z0-9_.-:]+",
94
+ refines=(
95
+ (
96
+ lambda n: n not in _RESERVED_CLAIM_NAMES,
97
+ f"Claim name cannot be a reserved name ({', '.join(_RESERVED_CLAIM_NAMES)})",
98
+ ),
99
+ ),
100
+ )
101
+ inbound_token_claim_value_type: InboundTokenClaimValueType
102
+ authorizing_claim_match_value: AuthorizingClaimMatchValue
103
+
104
+
105
+ # ── PrivateLink inbound: private endpoint for reaching the OIDC discovery URL ──
106
+
107
+ # VPC Lattice resource-config id, or its full ARN.
108
+ LATTICE_RESOURCE_CONFIG_PATTERN: Final = js_regex(
109
+ r"^((rcfg-[0-9a-z]{17})|(arn:[a-z0-9-]+:vpc-lattice:[a-zA-Z0-9-]+:\d{12}:resourceconfiguration\/rcfg-[0-9a-z]{17}))$"
110
+ )
111
+
112
+ EndpointIpAddressType = Literal["IPV4", "IPV6"]
113
+ ENDPOINT_IP_ADDRESS_TYPES: Final[tuple[EndpointIpAddressType, ...]] = get_args(EndpointIpAddressType)
114
+
115
+
116
+ class SelfManagedLatticeResource(StrictModel):
117
+ """Reach the discovery endpoint via a self-managed VPC Lattice resource configuration."""
118
+
119
+ resource_configuration_identifier: zstr(
120
+ min=20,
121
+ max=2048,
122
+ pattern=LATTICE_RESOURCE_CONFIG_PATTERN,
123
+ pattern_msg="Must be a VPC Lattice resource-config id (rcfg-...) or its ARN",
124
+ )
125
+
126
+
127
+ class ManagedVpcResource(StrictModel):
128
+ """Reach the discovery endpoint via a service-managed VPC interface endpoint."""
129
+
130
+ vpc_identifier: zstr(pattern=VPC_ID_PATTERN, pattern_msg="Must be a VPC id (vpc-...)")
131
+ subnet_ids: Annotated[
132
+ list[zstr(pattern=SUBNET_ID_PATTERN, pattern_msg="Must be a subnet id (subnet-...)")], array_checks(min=1)
133
+ ]
134
+ endpoint_ip_address_type: EndpointIpAddressType
135
+ security_group_ids: (
136
+ Annotated[
137
+ list[zstr(pattern=SECURITY_GROUP_ID_PATTERN, pattern_msg="Must be a security group id (sg-...)")],
138
+ array_checks(max=5),
139
+ ]
140
+ | None
141
+ ) = None
142
+ tags: Tags | None = None
143
+ routing_domain: zstr(min=3, max=255) | None = None
144
+
145
+
146
+ class PrivateEndpoint(StrictModel):
147
+ """Exactly one of selfManagedLatticeResource or managedVpcResource."""
148
+
149
+ self_managed_lattice_resource: SelfManagedLatticeResource | None = None
150
+ managed_vpc_resource: ManagedVpcResource | None = None
151
+
152
+ @model_validator(mode="after")
153
+ def _exactly_one(self) -> PrivateEndpoint:
154
+ count = sum(v is not None for v in (self.self_managed_lattice_resource, self.managed_vpc_resource))
155
+ if count != 1:
156
+ raise_issues(
157
+ [((), "A private endpoint must set exactly one of selfManagedLatticeResource or managedVpcResource")],
158
+ self,
159
+ )
160
+ return self
161
+
162
+
163
+ class PrivateEndpointOverride(StrictModel):
164
+ """Maps a specific domain to its own private endpoint."""
165
+
166
+ domain: zstr(min=1, max=253)
167
+ private_endpoint: PrivateEndpoint
168
+
169
+
170
+ PrivateEndpointArm = Literal["selfManagedLatticeResource", "managedVpcResource"]
171
+
172
+
173
+ def private_endpoint_arm(pe: PrivateEndpoint) -> PrivateEndpointArm | None:
174
+ if pe.self_managed_lattice_resource is not None:
175
+ return "selfManagedLatticeResource"
176
+ if pe.managed_vpc_resource is not None:
177
+ return "managedVpcResource"
178
+ return None
179
+
180
+
181
+ # ── Custom JWT Authorizer Configuration ──
182
+
183
+
184
+ class CustomJwtAuthorizerConfig(StrictModel):
185
+ """Custom JWT authorizer (authorizerType CUSTOM_JWT).
186
+
187
+ At least one of allowedAudience, allowedClients, allowedScopes, or customClaims is required.
188
+ """
189
+
190
+ discovery_url: OidcDiscoveryUrl
191
+ allowed_audience: list[zstr(min=1)] | None = None
192
+ allowed_clients: list[zstr(min=1)] | None = None
193
+ allowed_scopes: (
194
+ list[
195
+ zstr(
196
+ min=1,
197
+ max=255,
198
+ pattern=_ALLOWED_SCOPE_PATTERN,
199
+ pattern_msg="Scope must be printable ASCII with no spaces or quotes",
200
+ )
201
+ ]
202
+ | None
203
+ ) = None
204
+ custom_claims: Annotated[list[CustomClaimValidation], array_checks(min=1)] | None = None
205
+ private_endpoint: PrivateEndpoint | None = None
206
+ private_endpoint_overrides: Annotated[list[PrivateEndpointOverride], array_checks(max=5)] | None = None
207
+
208
+ @model_validator(mode="after")
209
+ def _refine(self) -> CustomJwtAuthorizerConfig:
210
+ issues: list[Issue] = []
211
+ if not (self.allowed_audience or self.allowed_clients or self.allowed_scopes or self.custom_claims):
212
+ issues.append(
213
+ ((), "At least one of allowedAudience, allowedClients, allowedScopes, or customClaims must be provided")
214
+ )
215
+ # Mirror the AgentCore Identity service's deploy-time coupling rules for overrides.
216
+ overrides = self.private_endpoint_overrides or []
217
+ if overrides:
218
+ if self.private_endpoint is None:
219
+ issues.append(
220
+ (
221
+ ("privateEndpointOverrides",),
222
+ "privateEndpointOverrides can only be used when privateEndpoint is also set",
223
+ )
224
+ )
225
+ else:
226
+ base_arm = private_endpoint_arm(self.private_endpoint)
227
+ for i, o in enumerate(overrides):
228
+ if private_endpoint_arm(o.private_endpoint) != base_arm:
229
+ issues.append(
230
+ (
231
+ ("privateEndpointOverrides", i, "privateEndpoint"),
232
+ (
233
+ "privateEndpoint and privateEndpointOverrides must all be the same kind — either all "
234
+ "selfManagedLatticeResource or all managedVpcResource"
235
+ ),
236
+ )
237
+ )
238
+ seen: set[str] = set()
239
+ for i, o in enumerate(overrides):
240
+ if o.domain in seen:
241
+ issues.append(
242
+ (
243
+ ("privateEndpointOverrides", i, "domain"),
244
+ f"Duplicate privateEndpointOverride domain: {o.domain}",
245
+ )
246
+ )
247
+ seen.add(o.domain)
248
+ raise_issues(issues, self)
249
+ return self
250
+
251
+
252
+ class AuthorizerConfig(ZodModel):
253
+ """Resource-agnostic authorizer configuration container (Gateway and Runtime)."""
254
+
255
+ custom_jwt_authorizer: CustomJwtAuthorizerConfig | None = None
256
+
257
+
258
+ # Deprecated: use AuthorizerConfig. Backwards-compatible alias for Gateway.
259
+ GatewayAuthorizerConfig = AuthorizerConfig
260
+
261
+ __all__ = [
262
+ "CLAIM_MATCH_OPERATORS",
263
+ "ENDPOINT_IP_ADDRESS_TYPES",
264
+ "GATEWAY_AUTHORIZER_TYPES",
265
+ "INBOUND_TOKEN_CLAIM_VALUE_TYPES",
266
+ "LATTICE_RESOURCE_CONFIG_PATTERN",
267
+ "RUNTIME_AUTHORIZER_TYPES",
268
+ "AuthorizerConfig",
269
+ "AuthorizingClaimMatchValue",
270
+ "ClaimMatchOperator",
271
+ "ClaimMatchValue",
272
+ "CustomClaimValidation",
273
+ "CustomJwtAuthorizerConfig",
274
+ "EndpointIpAddressType",
275
+ "GatewayAuthorizerConfig",
276
+ "GatewayAuthorizerType",
277
+ "InboundTokenClaimValueType",
278
+ "ManagedVpcResource",
279
+ "OidcDiscoveryUrl",
280
+ "PrivateEndpoint",
281
+ "PrivateEndpointArm",
282
+ "PrivateEndpointOverride",
283
+ "RuntimeAuthorizerType",
284
+ "SelfManagedLatticeResource",
285
+ "private_endpoint_arm",
286
+ ]
@@ -0,0 +1,72 @@
1
+ """Deployment targets, i.e. aws-targets.json (port of ``schemas/aws-targets.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Annotated, Final, Literal, get_args
6
+
7
+ from pydantic import TypeAdapter
8
+
9
+ from .._zod import ZodModel, array_checks, unique_by, zstr
10
+
11
+ # Keep in sync with https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-regions.html
12
+ AgentCoreRegion = Literal[
13
+ "ap-northeast-1",
14
+ "ap-northeast-2",
15
+ "ap-south-1",
16
+ "ap-south-2",
17
+ "ap-southeast-1",
18
+ "ap-southeast-2",
19
+ "ap-southeast-5",
20
+ "ap-southeast-7",
21
+ "ca-central-1",
22
+ "eu-central-1",
23
+ "eu-north-1",
24
+ "eu-south-1",
25
+ "eu-south-2",
26
+ "eu-west-1",
27
+ "eu-west-2",
28
+ "eu-west-3",
29
+ "sa-east-1",
30
+ "us-east-1",
31
+ "us-east-2",
32
+ "us-west-1",
33
+ "us-west-2",
34
+ "us-gov-west-1",
35
+ ]
36
+ AGENTCORE_REGIONS: Final[tuple[AgentCoreRegion, ...]] = get_args(AgentCoreRegion)
37
+
38
+ # Unique identifier for the deployment target.
39
+ DeploymentTargetName = zstr(
40
+ min=1,
41
+ max=64,
42
+ pattern=r"^[a-zA-Z][a-zA-Z0-9-]*$",
43
+ pattern_msg="Name must start with a letter and contain only alphanumeric characters and hyphens",
44
+ )
45
+
46
+ AwsAccountId = zstr(pattern=r"^[0-9]{12}$", pattern_msg="AWS account ID must be exactly 12 digits")
47
+
48
+
49
+ class AwsDeploymentTarget(ZodModel):
50
+ name: DeploymentTargetName
51
+ description: zstr(max=256) | None = None
52
+ account: AwsAccountId
53
+ region: AgentCoreRegion
54
+
55
+
56
+ AwsDeploymentTargets = Annotated[
57
+ list[AwsDeploymentTarget],
58
+ array_checks(extra=[unique_by(lambda t: t.name, lambda n: f"Duplicate deployment target name: {n}")]),
59
+ ]
60
+
61
+ # Validates/dumps a whole aws-targets.json array.
62
+ AwsDeploymentTargetsAdapter: Final = TypeAdapter(AwsDeploymentTargets)
63
+
64
+ __all__ = [
65
+ "AGENTCORE_REGIONS",
66
+ "AgentCoreRegion",
67
+ "AwsAccountId",
68
+ "AwsDeploymentTarget",
69
+ "AwsDeploymentTargets",
70
+ "AwsDeploymentTargetsAdapter",
71
+ "DeploymentTargetName",
72
+ ]
@@ -0,0 +1,187 @@
1
+ """Connections from a principal to EXTERNAL AgentCore resources (port of ``schemas/connections.ts``).
2
+
3
+ A connection declares that an agent runtime or harness accesses a memory/gateway/runtime/browser/
4
+ code-interpreter that is not part of this project; the construct generates least-privilege IAM and
5
+ injects discovery env vars. Connections are embedded on the source resource (no ``from`` field).
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import re
11
+ from typing import Annotated, Final, Literal, get_args
12
+
13
+ from pydantic import Field
14
+
15
+ from .._zod import StrictModel, ZBool, js_regex, zstr
16
+
17
+ # OAuth grant type for an external gateway (maps to AgentCore Identity auth flows).
18
+ GatewayGrantType = Literal["CLIENT_CREDENTIALS", "AUTHORIZATION_CODE", "TOKEN_EXCHANGE"]
19
+ GATEWAY_GRANT_TYPES: Final[tuple[GatewayGrantType, ...]] = get_args(GatewayGrantType)
20
+
21
+
22
+ class StrictEmptyObject(StrictModel):
23
+ """``z.object({}).strict()``"""
24
+
25
+
26
+ class GatewayOAuthOutboundAuthConfig(StrictModel):
27
+ provider_arn: zstr(min=1)
28
+ scopes: list[zstr(min=1)]
29
+ grant_type: GatewayGrantType | None = None
30
+ custom_parameters: dict[str, str] | None = None
31
+
32
+
33
+ class AwsIamGatewayOutboundAuth(StrictModel):
34
+ aws_iam: StrictEmptyObject
35
+
36
+
37
+ class NoneGatewayOutboundAuth(StrictModel):
38
+ none: StrictEmptyObject
39
+
40
+
41
+ class OAuthGatewayOutboundAuth(StrictModel):
42
+ oauth: GatewayOAuthOutboundAuthConfig
43
+
44
+
45
+ # Outbound auth a caller uses to reach an external gateway (awsIam | none | oauth).
46
+ GatewayOutboundAuth = Annotated[
47
+ AwsIamGatewayOutboundAuth | NoneGatewayOutboundAuth | OAuthGatewayOutboundAuth,
48
+ Field(union_mode="left_to_right"),
49
+ ]
50
+
51
+ # ---- Connection targets (partition-agnostic ARN prefix) ----
52
+
53
+ _MEMORY_ARN_PATTERN = js_regex(r"^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:\d{12}:memory\/.+$")
54
+ _GATEWAY_ARN_PATTERN = js_regex(r"^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:\d{12}:gateway\/.+$")
55
+ _RUNTIME_ARN_PATTERN = js_regex(r"^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:\d{12}:runtime\/.+$")
56
+ # Customer-owned `<kind>-custom/<id>` (12-digit account) or AWS-managed `<kind>/<id>` (`aws` account).
57
+ BROWSER_ARN_PATTERN: Final = js_regex(r"^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:(\d{12}|aws):browser(-custom)?\/.+$")
58
+ CODE_INTERPRETER_ARN_PATTERN: Final = js_regex(
59
+ r"^arn:[^:]+:bedrock-agentcore:[a-z0-9-]+:(\d{12}|aws):code-interpreter(-custom)?\/.+$"
60
+ )
61
+
62
+
63
+ class MemoryConnectionTarget(StrictModel):
64
+ type: Literal["memory"]
65
+ arn: zstr(pattern=_MEMORY_ARN_PATTERN, pattern_msg="Must be a valid bedrock-agentcore memory ARN")
66
+ # Namespace templates scoping List/RetrieveMemoryRecords via namespace condition keys.
67
+ namespaces: list[zstr(min=1)] | None = None
68
+
69
+
70
+ class GatewayConnectionTarget(StrictModel):
71
+ type: Literal["gateway"]
72
+ arn: zstr(pattern=_GATEWAY_ARN_PATTERN, pattern_msg="Must be a valid bedrock-agentcore gateway ARN")
73
+ # Defaults to awsIam (SigV4) downstream when omitted.
74
+ outbound_auth: GatewayOutboundAuth | None = None
75
+
76
+
77
+ class RuntimeConnectionTarget(StrictModel):
78
+ type: Literal["runtime"]
79
+ arn: zstr(pattern=_RUNTIME_ARN_PATTERN, pattern_msg="Must be a valid bedrock-agentcore runtime ARN")
80
+ # Also grant InvokeAgentRuntimeCommand (container exec) in addition to invoke.
81
+ exec: ZBool | None = None
82
+
83
+
84
+ class BrowserConnectionTarget(StrictModel):
85
+ type: Literal["browser"]
86
+ # Omit to use the AWS-managed default browser.
87
+ arn: zstr(pattern=BROWSER_ARN_PATTERN, pattern_msg="Must be a valid bedrock-agentcore browser ARN") | None = None
88
+
89
+
90
+ class CodeInterpreterConnectionTarget(StrictModel):
91
+ type: Literal["codeInterpreter"]
92
+ # Omit to use the AWS-managed default.
93
+ arn: (
94
+ zstr(pattern=CODE_INTERPRETER_ARN_PATTERN, pattern_msg="Must be a valid bedrock-agentcore code-interpreter ARN")
95
+ | None
96
+ ) = None
97
+
98
+
99
+ ConnectionTarget = Annotated[
100
+ MemoryConnectionTarget
101
+ | GatewayConnectionTarget
102
+ | RuntimeConnectionTarget
103
+ | BrowserConnectionTarget
104
+ | CodeInterpreterConnectionTarget,
105
+ Field(discriminator="type"),
106
+ ]
107
+
108
+ ConnectionAccess = Literal["read", "readwrite"]
109
+
110
+
111
+ class Connection(StrictModel):
112
+ """A connection from the enclosing principal to an external resource.
113
+
114
+ ``access`` is meaningful only for memory (read | readwrite); defaults to read downstream.
115
+ """
116
+
117
+ id: (
118
+ zstr(
119
+ pattern=r"^[a-zA-Z][a-zA-Z0-9_-]{0,63}$",
120
+ pattern_msg="Connection id must match [a-zA-Z][a-zA-Z0-9_-]{0,63}",
121
+ )
122
+ | None
123
+ ) = None
124
+ to: ConnectionTarget
125
+ access: ConnectionAccess | None = None
126
+ description: zstr(max=200) | None = None
127
+
128
+
129
+ Connections = list[Connection]
130
+
131
+ # ============================================================================
132
+ # Connection discovery env-var naming — SINGLE SOURCE OF TRUTH shared with @aws/agentcore-cdk.
133
+ # ============================================================================
134
+
135
+ CONNECTION_ID_MAX_LENGTH: Final = 64
136
+
137
+
138
+ def resource_id_from_arn(arn: str) -> str:
139
+ """Last segment of an ARN (the resource id): ``memory/mem-123`` -> ``mem-123``."""
140
+ after_colon = arn.split(":")[-1]
141
+ slash = after_colon.rfind("/")
142
+ return after_colon[slash + 1 :] if slash >= 0 else after_colon
143
+
144
+
145
+ def connection_id_for_target(target: ConnectionTarget) -> str:
146
+ """Stable ``<kind>-<resourceId>`` id for a target, sanitized to the connection-id charset/length."""
147
+ arn = getattr(target, "arn", None)
148
+ suffix = resource_id_from_arn(arn) if arn else target.type
149
+ return re.sub(r"[^a-zA-Z0-9_-]", "-", f"{target.type}-{suffix}")[:CONNECTION_ID_MAX_LENGTH]
150
+
151
+
152
+ def connection_env_token(id: str) -> str:
153
+ """Uppercase, underscore-safe token for env-var naming, derived from a connection id."""
154
+ return re.sub(r"[^A-Z0-9]", "_", id.upper())
155
+
156
+
157
+ def connection_token_for(connection: Connection) -> str:
158
+ """Env-var token for a connection: explicit ``id`` or the derived ``<kind>-<resourceId>`` id."""
159
+ return connection_env_token(connection.id if connection.id is not None else connection_id_for_target(connection.to))
160
+
161
+
162
+ __all__ = [
163
+ "BROWSER_ARN_PATTERN",
164
+ "CODE_INTERPRETER_ARN_PATTERN",
165
+ "CONNECTION_ID_MAX_LENGTH",
166
+ "GATEWAY_GRANT_TYPES",
167
+ "AwsIamGatewayOutboundAuth",
168
+ "BrowserConnectionTarget",
169
+ "CodeInterpreterConnectionTarget",
170
+ "Connection",
171
+ "ConnectionAccess",
172
+ "ConnectionTarget",
173
+ "Connections",
174
+ "GatewayConnectionTarget",
175
+ "GatewayGrantType",
176
+ "GatewayOAuthOutboundAuthConfig",
177
+ "GatewayOutboundAuth",
178
+ "MemoryConnectionTarget",
179
+ "NoneGatewayOutboundAuth",
180
+ "OAuthGatewayOutboundAuth",
181
+ "RuntimeConnectionTarget",
182
+ "StrictEmptyObject",
183
+ "connection_env_token",
184
+ "connection_id_for_target",
185
+ "connection_token_for",
186
+ "resource_id_from_arn",
187
+ ]