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,60 @@
1
+ ## AgentCore Templates
2
+
3
+ This directory stores:
4
+
5
+ - Template assets for agents written in different languages, SDKs, and configurations
6
+ - Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
7
+ - Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
8
+ - CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
9
+ - Evaluator templates (`evaluators/`) for code-based evaluators
10
+ - MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute
11
+
12
+ ### Directory Layout
13
+
14
+ ```
15
+ assets/
16
+ ├── README.md # Vended to project root as project README
17
+ ├── AGENTS.md # This file — internal dev context
18
+ ├── agents/
19
+ │ └── AGENTS.md # Vended to project root for AI coding assistants
20
+ ├── python/ # Framework templates (one per SDK per protocol)
21
+ │ ├── http/ # HTTP protocol agents
22
+ │ │ ├── strands/
23
+ │ │ ├── langchain_langgraph/
24
+ │ │ ├── googleadk/
25
+ │ │ ├── openaiagents/
26
+ │ │ └── autogen/
27
+ │ ├── mcp/ # MCP protocol agents
28
+ │ │ └── standalone/
29
+ │ └── a2a/ # A2A protocol agents
30
+ │ ├── strands/
31
+ │ ├── langchain_langgraph/
32
+ │ └── googleadk/
33
+ ├── typescript/ # TypeScript agent templates
34
+ ├── container/ # Container build templates
35
+ │ └── python/
36
+ │ ├── Dockerfile
37
+ │ └── dockerignore.template
38
+ ├── cdk/ # CDK project template (@aws/agentcore-cdk)
39
+ ├── evaluators/ # Code-based evaluator templates
40
+ └── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
41
+ ├── python/
42
+ └── python-lambda/
43
+ ```
44
+
45
+ The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.
46
+
47
+ For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
48
+ .dockerignore) into the agent directory when `buildType === 'Container'`.
49
+
50
+ ## Guidance for template changes
51
+
52
+ - Always make sure the templates are as close to working code as possible
53
+ - AVOID as much as possible using any conditionals within the templates
54
+ - Test template rendering with `agentcore add agent` for each framework/protocol combination
55
+
56
+ ## How to use the assets in this directory
57
+
58
+ - These assets are rendered by the CLI's template renderer in `src/cli/templates/`
59
+ - The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
60
+ - The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during project creation
@@ -0,0 +1,108 @@
1
+ # AgentCore Project
2
+
3
+ This project was created with the [AgentCore CLI](https://github.com/aws/agentcore-cli).
4
+
5
+ ## Project Structure
6
+
7
+ ```
8
+ my-project/
9
+ ├── AGENTS.md # AI coding assistant context
10
+ ├── agentcore/
11
+ │ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
12
+ │ ├── aws-targets.json # Deployment targets (account + region)
13
+ │ ├── .env.local # Secrets — API keys (gitignored)
14
+ │ ├── .llm-context/ # TypeScript type definitions for AI assistants
15
+ │ │ ├── agentcore.ts # AgentCoreProjectSpec types
16
+ │ │ └── aws-targets.ts # Deployment target types
17
+ │ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
18
+ ├── app/ # Agent application code
19
+ └── evaluators/ # Custom evaluator code (if any)
20
+ ```
21
+
22
+ ## Getting Started
23
+
24
+ ### Prerequisites
25
+
26
+ - **Node.js** 20.x or later
27
+ - **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
28
+ - **AWS credentials** configured (`aws configure` or environment variables)
29
+ - **Docker** (only for Container build agents)
30
+
31
+ ### Development
32
+
33
+ Run your agent locally:
34
+
35
+ ```bash
36
+ agentcore dev
37
+ ```
38
+
39
+ ### Validate Invocation Input
40
+
41
+ Validate runtime invocation payloads before forwarding them to an agent framework. Keep user prompts typed as strings
42
+ and pass only prompt text to the agent.
43
+
44
+ ### Deployment
45
+
46
+ Deploy to AWS:
47
+
48
+ ```bash
49
+ agentcore deploy
50
+ ```
51
+
52
+ ## Commands
53
+
54
+ | Command | Description |
55
+ | --- | --- |
56
+ | `agentcore create` | Create a new AgentCore project |
57
+ | `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
58
+ | `agentcore remove` | Remove resources |
59
+ | `agentcore dev` | Run agent locally with hot-reload |
60
+ | `agentcore deploy` | Deploy to AWS via CDK |
61
+ | `agentcore status` | Show deployment status |
62
+ | `agentcore invoke` | Invoke agent (local or deployed) |
63
+ | `agentcore logs` | View agent logs |
64
+ | `agentcore traces` | View agent traces |
65
+ | `agentcore eval` | Run evaluations |
66
+ | `agentcore package` | Package agent artifacts |
67
+ | `agentcore validate` | Validate configuration |
68
+ | `agentcore pause` | Pause a deployed agent |
69
+ | `agentcore resume` | Resume a paused agent |
70
+ | `agentcore fetch` | Fetch remote resource definitions |
71
+ | `agentcore import` | Import existing resources |
72
+ | `agentcore update` | Check for CLI updates |
73
+
74
+ ## Configuration
75
+
76
+ Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.
77
+
78
+ The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.
79
+
80
+ ## Resources
81
+
82
+ | Resource | Purpose |
83
+ | --- | --- |
84
+ | Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
85
+ | Memory | Persistent context storage with configurable strategies |
86
+ | Credential | API key or OAuth credential providers |
87
+ | Gateway | MCP gateway that routes tool calls to targets |
88
+ | Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
89
+ | Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
90
+ | Online Eval Config | Continuous evaluation pipeline for deployed agents |
91
+ | Policy | Cedar authorization policies for gateway tools |
92
+
93
+ ### Agent Types
94
+
95
+ - **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
96
+ - **BYO agents**: Bring your own code with `agentcore add agent --type byo`
97
+ - **Import agents**: Import existing Bedrock agents with `agentcore import`
98
+
99
+ ### Build Types
100
+
101
+ - **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
102
+ - **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime
103
+
104
+ ## Documentation
105
+
106
+ - [AgentCore CLI](https://github.com/aws/agentcore-cli)
107
+ - [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
108
+ - [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
@@ -0,0 +1,218 @@
1
+ # AgentCore Project
2
+
3
+ This project contains configuration and infrastructure for an Amazon Bedrock AgentCore application.
4
+
5
+ The `agentcore/` directory is a declarative model of the project. The `agentcore/cdk/` subdirectory uses the
6
+ `@aws/agentcore-cdk` L3 constructs to deploy the configuration to AWS.
7
+
8
+ ## Mental Model
9
+
10
+ The project uses a **flat resource model**. Agents, memories, credentials, gateways, evaluators, and policies are
11
+ independent top-level arrays in `agentcore.json`. There is no binding between resources in the schema — each resource is
12
+ provisioned independently. Agents discover memories and credentials at runtime via environment variables or SDK calls.
13
+ Tags defined in `agentcore.json` flow through to deployed CloudFormation resources.
14
+
15
+ ## Critical Invariants
16
+
17
+ 1. **Schema-First Authority:** The `.json` files are the source of truth. Do not modify agent behavior by editing
18
+ generated CDK code in `cdk/`.
19
+ 2. **Resource Identity:** The `name` field determines the CloudFormation Logical ID.
20
+ - **Renaming** a resource will **destroy and recreate** it.
21
+ - **Modifying** other fields will update the resource **in-place**.
22
+ 3. **Schema Validation:** If your JSON conforms to the types in `.llm-context/`, it will deploy successfully. Run
23
+ `agentcore validate` to check.
24
+ 4. **Resource Removal:** Use `agentcore remove` to remove resources. Run `agentcore deploy` after removal to tear down
25
+ deployed infrastructure.
26
+ 5. **Invocation Input:** Validate runtime payloads and require text prompts to be strings. If a Strands app accepts a
27
+ caller-supplied message history, normalize the history tail with `strip_trailing_tool_use()` before invocation.
28
+
29
+ ## Directory Structure
30
+
31
+ ```
32
+ myProject/
33
+ ├── AGENTS.md # This file — AI coding assistant context
34
+ ├── agentcore/
35
+ │ ├── agentcore.json # Main project config (AgentCoreProjectSpec)
36
+ │ ├── aws-targets.json # Deployment targets (account + region)
37
+ │ ├── .env.local # Secrets — API keys (gitignored)
38
+ │ ├── .llm-context/ # TypeScript type definitions for AI assistants
39
+ │ │ ├── README.md # Guide to using schema files
40
+ │ │ ├── agentcore.ts # AgentCoreProjectSpec types
41
+ │ │ └── aws-targets.ts # AWS deployment target types
42
+ │ └── cdk/ # AWS CDK project (@aws/agentcore-cdk L3 constructs)
43
+ ├── app/ # Agent application code
44
+ └── evaluators/ # Custom evaluator code (if any)
45
+ ```
46
+
47
+ ## Schema Reference
48
+
49
+ The `agentcore/.llm-context/` directory contains TypeScript type definitions optimized for AI coding assistants. Each
50
+ file maps to a JSON config file and includes validation constraints as comments (`@regex`, `@min`, `@max`).
51
+
52
+ | JSON Config | Schema File | Root Type |
53
+ | --- | --- | --- |
54
+ | `agentcore/agentcore.json` | `agentcore/.llm-context/agentcore.ts` | `AgentCoreProjectSpec` |
55
+ | `agentcore/aws-targets.json` | `agentcore/.llm-context/aws-targets.ts` | `AwsDeploymentTarget[]` |
56
+
57
+ ### Key Types
58
+
59
+ - **AgentCoreProjectSpec**: Root config with runtimes, memories, knowledge bases, credentials, evaluators, online evals and insights, gateways, policy engines, config bundles, A/B tests, harness registrations, datasets, payment managers, and capacity providers
60
+ - **AgentEnvSpec**: Agent configuration (build type, entrypoint, code location, runtime version, network mode)
61
+ - **Memory**: Memory resource with strategies (SEMANTIC, SUMMARIZATION, USER_PREFERENCE, EPISODIC) and expiry
62
+ - **Credential**: API key or OAuth credential provider
63
+ - **AgentCoreGateway**: MCP gateway with targets (Lambda, MCP server, OpenAPI, Smithy, API Gateway, web-search, knowledge-base)
64
+ - **Evaluator**: LLM-as-a-Judge or code-based evaluator
65
+ - **OnlineEvalConfig**: Continuous evaluation pipeline bound to an agent
66
+ - **OnlineInsightsConfig** _[preview]_: Continuous failure-pattern analysis bound to an agent
67
+ - **KnowledgeBase**: Managed Bedrock Knowledge Base auto-wired to a gateway
68
+ - **Harness**: Declarative agent — runtime + tools + skills + memory + observability without writing agent code
69
+ - **PolicyEngine** + **Policy**: Cedar policy engine with form-based guardrails (Bedrock content filters, prompt-attack, sensitive-info) or raw Cedar policies
70
+ - **PaymentManager** + **PaymentConnector**: x402-protocol payment orchestration with provider credentials (CoinbaseCDP, StripePrivy)
71
+ - **ConfigBundle**: Versioned runtime configuration as a separately-deployable resource
72
+ - **Dataset**: Curated session dataset for batch evaluation and recommendation runs
73
+ - **RuntimeEndpoint**: Named endpoint (e.g. `PROMPT_V1`) targeting a specific runtime version
74
+
75
+ ### Common Enum Values
76
+
77
+ - **BuildType**: `'CodeZip'` | `'Container'`
78
+ - **NetworkMode**: `'PUBLIC'` | `'VPC'`
79
+ - **RuntimeVersion**: `'PYTHON_3_10'` | `'PYTHON_3_11'` | `'PYTHON_3_12'` | `'PYTHON_3_13'` | `'PYTHON_3_14'` | `'NODE_18'` | `'NODE_20'` | `'NODE_22'`
80
+ - **MemoryStrategyType**: `'SEMANTIC'` | `'SUMMARIZATION'` | `'USER_PREFERENCE'` | `'EPISODIC'`
81
+ - **GatewayTargetType**: `'lambda'` | `'mcpServer'` | `'openApiSchema'` | `'smithyModel'` | `'apiGateway'` | `'lambdaFunctionArn'` | `'connector'` (web-search, bedrock-knowledge-bases)
82
+ - **ModelProvider**: `'Bedrock'` | `'Gemini'` | `'OpenAI'` | `'Anthropic'`
83
+ - **PaymentProvider**: `'CoinbaseCDP'` | `'StripePrivy'`
84
+ - **PolicyEnforcementMode**: `'ACTIVE'` | `'PASSIVE'`
85
+ - **GuardrailContentFilter**: `'VIOLENCE'` | `'HATE'` | `'SEXUAL'` | `'MISCONDUCT'` | `'INSULTS'`
86
+
87
+ ### Build Types
88
+
89
+ - **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime.
90
+ - **Container**: Docker image built in CodeBuild (ARM64), pushed to a per-agent ECR repository. Requires a `Dockerfile`
91
+ in the agent's `codeLocation` directory. For local development (`agentcore dev`), the container is built and run
92
+ locally with volume-mounted hot-reload.
93
+
94
+ ### Supported Frameworks (for template agents)
95
+
96
+ - **Strands** — Bedrock, Anthropic, OpenAI, Gemini
97
+ - **LangChain/LangGraph** — Bedrock, Anthropic, OpenAI, Gemini
98
+ - **GoogleADK** — Gemini
99
+ - **OpenAI Agents** — OpenAI
100
+ - **Autogen** — Bedrock, Anthropic, OpenAI, Gemini
101
+
102
+ ### Protocols
103
+
104
+ - **HTTP** — Standard HTTP agent endpoint
105
+ - **MCP** — Model Context Protocol server
106
+ - **A2A** — Agent-to-Agent protocol (Google A2A)
107
+
108
+ ## Deployment
109
+
110
+ Deployments are orchestrated through the CLI:
111
+
112
+ ```bash
113
+ agentcore deploy # Synthesizes CDK and deploys to AWS
114
+ agentcore status # Shows deployment status
115
+ ```
116
+
117
+ Alternatively, deploy directly via CDK:
118
+
119
+ ```bash
120
+ cd agentcore/cdk
121
+ npm install
122
+ npx cdk synth
123
+ npx cdk deploy
124
+ ```
125
+
126
+ ## Editing Schemas
127
+
128
+ When modifying JSON config files:
129
+
130
+ 1. Read the corresponding `agentcore/.llm-context/*.ts` file for type definitions
131
+ 2. Check validation constraint comments (`@regex`, `@min`, `@max`)
132
+ 3. Use exact enum values as string literals
133
+ 4. Use CloudFormation-safe names (alphanumeric, start with letter)
134
+ 5. Run `agentcore validate` to verify changes
135
+
136
+ ## Harness Export
137
+
138
+ `agentcore export harness` converts a harness configuration into a deployable Strands Python agent under `app/<agentName>/`.
139
+
140
+ **After every export, you MUST read `app/<agentName>/EXPORT_NOTES.md` before proceeding.**
141
+
142
+ This file lists any manual follow-up items required before the agent will deploy or run correctly — missing files to create, IAM policies to add, or configuration steps the exporter could not automate. A clean export produces "No manual steps required." Complete every item in the file before running `agentcore deploy`.
143
+
144
+ ```bash
145
+ agentcore export harness --name <harnessName> # generates app/<agentName>/EXPORT_NOTES.md
146
+ cat app/<agentName>/EXPORT_NOTES.md # read this before touching anything else
147
+ ```
148
+
149
+ ## CLI Commands
150
+
151
+ Run `agentcore --help` or `agentcore <command> --help` for full flags. Commonly used:
152
+
153
+ **Project lifecycle**
154
+
155
+ | Command | Description |
156
+ | --- | --- |
157
+ | `agentcore create` | Create a new project |
158
+ | `agentcore dev` | Run agent locally with hot-reload |
159
+ | `agentcore deploy` | Deploy to AWS |
160
+ | `agentcore invoke` | Invoke agent (local or deployed) |
161
+ | `agentcore capacity-provider delete-session` | Delete (deprovision) a live capacity provider session |
162
+ | `agentcore status` | Show deployment status |
163
+ | `agentcore validate` | Validate configuration |
164
+ | `agentcore package` | Package agent artifacts |
165
+ | `agentcore import` | Import resources from a Bedrock AgentCore Starter Toolkit project |
166
+
167
+ **Resources**
168
+
169
+ | Command | Description |
170
+ | --- | --- |
171
+ | `agentcore add <resource>` | Add agent, memory, credential, gateway, gateway-target, evaluator, online-eval, online-insights, knowledge-base, harness, policy-engine, policy, payment-manager, payment-connector, capacity-provider, config-bundle, dataset, runtime-endpoint |
172
+ | `agentcore remove <resource>` | Remove any resource |
173
+ | `agentcore export harness` | Export a harness to a Strands runtime agent under `app/<agentName>/` |
174
+
175
+ **Jobs (run, view, archive, lifecycle)**
176
+
177
+ | Command | Description |
178
+ | --- | --- |
179
+ | `agentcore run eval` | Run on-demand evaluation against agent traces |
180
+ | `agentcore run batch-evaluation` | Run evaluators across all sessions at scale |
181
+ | `agentcore run recommendation` | Optimize prompts or tool descriptions from real traces |
182
+ | `agentcore run insights` _[preview]_ | Run failure-pattern analysis across sessions |
183
+ | `agentcore run ab-test` | Start an A/B test (config-bundle or target-based) |
184
+ | `agentcore run ingest` | Start a fresh ingestion job for every data source on a deployed knowledge base |
185
+ | `agentcore view <type>` | List or view jobs (recommendation, batch-evaluation, ab-test, insights) |
186
+ | `agentcore archive <type>` | Delete a job on the service + clear local history |
187
+ | `agentcore stop <type>` | Stop a running batch-evaluation or ab-test |
188
+ | `agentcore promote ab-test` | Apply the winning variant to `agentcore.json` |
189
+ | `agentcore pause <type>` / `agentcore resume <type>` | Pause/resume a deployed online-eval, online-insights, or ab-test |
190
+
191
+ **Config bundles & datasets**
192
+
193
+ | Command | Description |
194
+ | --- | --- |
195
+ | `agentcore config-bundle versions` (alias `cb versions`) | List version history for a bundle |
196
+ | `agentcore config-bundle diff` | Diff two versions of a bundle |
197
+ | `agentcore config-bundle create-branch` | Create a new branch on an existing bundle |
198
+ | `agentcore dataset download` | Download a dataset version locally |
199
+ | `agentcore dataset publish-version` | Publish a new dataset version |
200
+ | `agentcore dataset remove-version` | Remove a dataset version |
201
+
202
+ **Observability & history**
203
+
204
+ | Command | Description |
205
+ | --- | --- |
206
+ | `agentcore logs` | Stream/search agent runtime logs |
207
+ | `agentcore logs evals` | Stream/search online-eval logs |
208
+ | `agentcore traces list` / `agentcore traces get` | List recent traces or download one to JSON |
209
+ | `agentcore evals history` | View past on-demand eval results |
210
+
211
+ **Utilities**
212
+
213
+ | Command | Description |
214
+ | --- | --- |
215
+ | `agentcore fetch access` | Fetch access info for deployed gateway or agent |
216
+ | `agentcore feedback` | Send feedback (with optional screenshot) to the AgentCore team |
217
+ | `agentcore update` | Check for and install CLI updates |
218
+ | `agentcore telemetry` | View or change telemetry preferences |
@@ -0,0 +1,8 @@
1
+ {
2
+ "trailingComma": "es5",
3
+ "printWidth": 120,
4
+ "tabWidth": 2,
5
+ "semi": true,
6
+ "singleQuote": true,
7
+ "arrowParens": "avoid"
8
+ }
@@ -0,0 +1,26 @@
1
+ # AgentCore CDK Project
2
+
3
+ This CDK project is managed by the AgentCore CLI. It deploys your agent infrastructure into AWS using the `@aws/agentcore-cdk` L3 constructs.
4
+
5
+ ## Structure
6
+
7
+ - `bin/cdk.ts` — Entry point. Reads project configuration from `agentcore/` and creates a stack per deployment target.
8
+ - `lib/cdk-stack.ts` — Defines `AgentCoreStack`, which wraps the `AgentCoreApplication` L3 construct.
9
+ - `test/cdk.test.ts` — Unit tests for stack synthesis.
10
+
11
+ ## Useful commands
12
+
13
+ - `npm run build` compile TypeScript to JavaScript
14
+ - `npm run test` run unit tests
15
+ - `npx cdk synth` emit the synthesized CloudFormation template
16
+ - `npx cdk deploy` deploy this stack to your default AWS account/region
17
+ - `npx cdk diff` compare deployed stack with current state
18
+
19
+ ## Usage
20
+
21
+ You typically don't need to interact with this directory directly. The AgentCore CLI handles synthesis and deployment:
22
+
23
+ ```bash
24
+ agentcore deploy # synthesizes and deploys via CDK
25
+ agentcore status # checks deployment status
26
+ ```
@@ -0,0 +1,216 @@
1
+ #!/usr/bin/env node
2
+ import { AgentCoreStack, type HarnessConfig } from '../lib/cdk-stack';
3
+ import { ConfigIO, HarnessSpecSchema, type AwsDeploymentTarget } from '@aws/agentcore-cdk';
4
+ import { App, type Environment } from 'aws-cdk-lib';
5
+ import * as path from 'path';
6
+ import * as fs from 'fs';
7
+
8
+ function toEnvironment(target: AwsDeploymentTarget): Environment {
9
+ return {
10
+ account: target.account,
11
+ region: target.region,
12
+ };
13
+ }
14
+
15
+ function sanitize(name: string): string {
16
+ return name.replace(/_/g, '-');
17
+ }
18
+
19
+ function toStackName(projectName: string, targetName: string): string {
20
+ return `AgentCore-${sanitize(projectName)}-${sanitize(targetName)}`;
21
+ }
22
+
23
+ async function main() {
24
+ // Config root is parent of cdk/ directory. The CLI sets process.cwd() to agentcore/cdk/.
25
+ const configRoot = path.resolve(process.cwd(), '..');
26
+ const configIO = new ConfigIO({ baseDir: configRoot });
27
+
28
+ const spec = await configIO.readProjectSpec();
29
+ const targets = await configIO.readAWSDeploymentTargets();
30
+
31
+ // The vended CDK project compiles against the published @aws/agentcore-cdk
32
+ // schema type, which may lag the CLI's own AgentCoreProjectSpec (e.g. payments,
33
+ // harnesses, gateway fields). Cast once so those fields are reachable.
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ const specAny = spec as any;
36
+
37
+ // Extract MCP configuration from project spec.
38
+ // Gateway fields are stored in agentcore.json but may not yet be on the
39
+ const mcpSpec = specAny.agentCoreGateways?.length
40
+ ? {
41
+ agentCoreGateways: specAny.agentCoreGateways,
42
+ mcpRuntimeTools: specAny.mcpRuntimeTools,
43
+ unassignedTargets: specAny.unassignedTargets,
44
+ }
45
+ : undefined;
46
+
47
+ // Read deployed state for credential ARNs (populated by pre-deploy identity setup)
48
+ let deployedState: Record<string, unknown> | undefined;
49
+ try {
50
+ deployedState = JSON.parse(fs.readFileSync(path.join(configRoot, '.cli', 'deployed-state.json'), 'utf8'));
51
+ } catch {
52
+ // Deployed state may not exist on first deploy
53
+ }
54
+
55
+ if (targets.length === 0) {
56
+ throw new Error('No deployment targets configured. Please define targets in agentcore/aws-targets.json');
57
+ }
58
+
59
+ // Read harness configs: the full validated spec drives the CFN resource; the
60
+ // role-scoped fields drive the IAM role + container build.
61
+ const projectRoot = path.resolve(configRoot, '..');
62
+
63
+ // Read non-S3 KB connector-config files and pass their parsed contents to the
64
+ // L3 verbatim. The L3 does not read files; it expects the parsed
65
+ // connectorParameters keyed by the data source's connectorConfigFile path.
66
+ const connectorParametersByFile: Record<string, Record<string, unknown>> = {};
67
+ for (const kb of specAny.knowledgeBases ?? []) {
68
+ for (const ds of kb.dataSources ?? []) {
69
+ if (ds.type !== 'S3' && ds.connectorConfigFile) {
70
+ const abs = path.resolve(projectRoot, ds.connectorConfigFile);
71
+ try {
72
+ connectorParametersByFile[ds.connectorConfigFile] = JSON.parse(fs.readFileSync(abs, 'utf-8'));
73
+ } catch (err) {
74
+ throw new Error(
75
+ `Could not read connector config '${ds.connectorConfigFile}' for knowledge base '${kb.name}' at ${abs}: ${err instanceof Error ? err.message : err}`
76
+ );
77
+ }
78
+ }
79
+ }
80
+ }
81
+
82
+ // Synthesize an AWS::BedrockAgentCore::Harness resource for each harness entry in the spec.
83
+ const harnessConfigs: HarnessConfig[] = [];
84
+ for (const entry of specAny.harnesses ?? []) {
85
+ const harnessDir = path.resolve(projectRoot, entry.path);
86
+ const harnessPath = path.resolve(harnessDir, 'harness.json');
87
+ try {
88
+ const harnessSpec = HarnessSpecSchema.parse(JSON.parse(fs.readFileSync(harnessPath, 'utf-8')));
89
+ harnessConfigs.push({
90
+ name: entry.name,
91
+ executionRoleArn: harnessSpec.executionRoleArn,
92
+ // Only an `existing` memory ref carries a name to wire IAM against; managed memory is
93
+ // owned by the harness (no sibling) and disabled has none — both resolve to undefined.
94
+ memoryName: harnessSpec.memory?.mode === 'existing' ? harnessSpec.memory.name : undefined,
95
+ containerUri: harnessSpec.containerUri,
96
+ hasDockerfile: !!harnessSpec.dockerfile,
97
+ dockerfile: harnessSpec.dockerfile,
98
+ codeLocation: harnessSpec.dockerfile ? harnessDir : undefined,
99
+ tools: harnessSpec.tools,
100
+ skills: harnessSpec.skills,
101
+ apiKeyArn: harnessSpec.model?.apiKeyArn,
102
+ efsAccessPoints: harnessSpec.efsAccessPoints,
103
+ s3AccessPoints: harnessSpec.s3AccessPoints,
104
+ apiFormat: harnessSpec.model?.apiFormat,
105
+ // Full spec + dir drive the AWS::BedrockAgentCore::Harness CFN resource.
106
+ spec: harnessSpec,
107
+ harnessDir,
108
+ });
109
+ } catch (err) {
110
+ throw new Error(
111
+ `Could not read harness.json for "${entry.name}" at ${harnessPath}: ${err instanceof Error ? err.message : err}`
112
+ );
113
+ }
114
+ }
115
+
116
+ const app = new App();
117
+
118
+ for (const target of targets) {
119
+ const env = toEnvironment(target);
120
+ const stackName = toStackName(spec.name, target.name);
121
+
122
+ // Extract credentials from deployed state for this target
123
+ const targetState = (deployedState as Record<string, unknown>)?.targets as
124
+ | Record<string, Record<string, unknown>>
125
+ | undefined;
126
+ const targetResources = targetState?.[target.name]?.resources as Record<string, unknown> | undefined;
127
+ const credentials = targetResources?.credentials as
128
+ | Record<string, { credentialProviderArn: string; clientSecretArn?: string }>
129
+ | undefined;
130
+
131
+ // Payment credential provider ARNs live in the same credentials map as identity credentials
132
+ const paymentCredentials = credentials;
133
+
134
+ const paymentSpec = specAny.payments?.length
135
+ ? specAny.payments.map(
136
+ (p: {
137
+ name: string;
138
+ description?: string;
139
+ authorizerType: 'AWS_IAM' | 'CUSTOM_JWT';
140
+ authorizerConfiguration?: unknown;
141
+ autoPayment?: boolean;
142
+ paymentToolAllowlist?: string[];
143
+ networkPreferences?: string[];
144
+ connectors: {
145
+ name: string;
146
+ provider?: string;
147
+ provisionMode?: 'MANUAL' | 'QUICK_CREATE';
148
+ credentialName?: string;
149
+ }[];
150
+ }) => ({
151
+ name: p.name,
152
+ description: p.description,
153
+ authorizerType: p.authorizerType,
154
+ authorizerConfiguration: p.authorizerConfiguration,
155
+ autoPayment: p.autoPayment,
156
+ paymentToolAllowlist: p.paymentToolAllowlist,
157
+ networkPreferences: p.networkPreferences,
158
+ connectors: p.connectors.map(c => {
159
+ if (c.provisionMode === 'QUICK_CREATE') {
160
+ return {
161
+ name: c.name,
162
+ provider: 'CoinbaseCDP' as const,
163
+ provisionMode: 'QUICK_CREATE' as const,
164
+ };
165
+ }
166
+
167
+ if (!c.credentialName) {
168
+ throw new Error(
169
+ `Manual payment connector "${c.name}" on manager "${p.name}" is missing its credential name.`
170
+ );
171
+ }
172
+ const credentialProviderArn = paymentCredentials?.[c.credentialName]?.credentialProviderArn;
173
+ if (!credentialProviderArn) {
174
+ // Fail fast with an actionable message rather than passing an empty
175
+ // ARN that fails opaquely server-side at CreatePaymentConnector.
176
+ throw new Error(
177
+ `Payment connector "${c.name}" on manager "${p.name}" references credential ` +
178
+ `"${c.credentialName}", but no deployed credential provider was found for it. ` +
179
+ `Run \`agentcore deploy\` so the credential provider is created first.`
180
+ );
181
+ }
182
+ return {
183
+ name: c.name,
184
+ provider: c.provider,
185
+ ...(c.provisionMode && { provisionMode: c.provisionMode }),
186
+ credentialName: c.credentialName,
187
+ credentialProviderArn,
188
+ };
189
+ }),
190
+ })
191
+ )
192
+ : undefined;
193
+
194
+ new AgentCoreStack(app, stackName, {
195
+ spec,
196
+ mcpSpec,
197
+ credentials,
198
+ connectorParametersByFile,
199
+ harnesses: harnessConfigs.length > 0 ? harnessConfigs : undefined,
200
+ paymentSpec,
201
+ env,
202
+ description: `AgentCore stack for ${spec.name} deployed to ${target.name} (${target.region})`,
203
+ tags: {
204
+ 'agentcore:project-name': spec.name,
205
+ 'agentcore:target-name': target.name,
206
+ },
207
+ });
208
+ }
209
+
210
+ app.synth();
211
+ }
212
+
213
+ main().catch((error: unknown) => {
214
+ console.error('AgentCore CDK synthesis failed:', error instanceof Error ? error.message : error);
215
+ process.exit(1);
216
+ });