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,164 @@
1
+ """JavaScript value semantics needed to render Handlebars templates exactly like upstream.
2
+
3
+ Template data is plain Python (dict / list / str / int / float / bool / None). ``None`` stands for
4
+ JavaScript ``undefined`` (unset optional fields are omitted from the data), except inside containers
5
+ passed to ``JSON.stringify`` where it serializes as ``null``.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import json
11
+ import math
12
+ import re
13
+ from collections.abc import Mapping
14
+ from decimal import Decimal
15
+ from typing import Any
16
+
17
+ # Characters matched by JavaScript `\s`.
18
+ _JS_WHITESPACE_CODEPOINTS = (
19
+ 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x20, 0xA0, 0x1680, *range(0x2000, 0x200B),
20
+ 0x2028, 0x2029, 0x202F, 0x205F, 0x3000, 0xFEFF,
21
+ ) # fmt: skip
22
+ JS_WHITESPACE = "".join(map(chr, _JS_WHITESPACE_CODEPOINTS))
23
+ JS_WS = "[" + re.escape(JS_WHITESPACE) + "]"
24
+
25
+ _ARRAY_INDEX_RE = re.compile(r"0|[1-9][0-9]*")
26
+ _MAX_ARRAY_INDEX = 2**32 - 2
27
+
28
+
29
+ def is_number(value: object) -> bool:
30
+ return isinstance(value, (int, float)) and not isinstance(value, bool)
31
+
32
+
33
+ def js_truthy(value: object) -> bool:
34
+ """``Boolean(value)``: empty containers are truthy, ``0``/``NaN``/``""``/null/undefined are not."""
35
+ if value is None or value is False:
36
+ return False
37
+ if is_number(value):
38
+ return not (value == 0 or (isinstance(value, float) and math.isnan(value)))
39
+ if isinstance(value, str):
40
+ return value != ""
41
+ return True
42
+
43
+
44
+ def hb_is_empty(value: object) -> bool:
45
+ """Handlebars ``Utils.isEmpty``: falsy (except 0) or an empty array."""
46
+ if not js_truthy(value) and not (is_number(value) and value == 0):
47
+ return True
48
+ return isinstance(value, (list, tuple)) and len(value) == 0
49
+
50
+
51
+ def _js_type(value: object) -> str:
52
+ if value is None:
53
+ return "undefined"
54
+ if isinstance(value, bool):
55
+ return "boolean"
56
+ if is_number(value):
57
+ return "number"
58
+ if isinstance(value, str):
59
+ return "string"
60
+ return "object"
61
+
62
+
63
+ def js_strict_equals(a: object, b: object) -> bool:
64
+ """``a === b``."""
65
+ kind = _js_type(a)
66
+ if kind != _js_type(b):
67
+ return False
68
+ if kind == "object":
69
+ return a is b
70
+ return a == b # NaN != NaN, matching JS.
71
+
72
+
73
+ def js_same_value_zero(a: object, b: object) -> bool:
74
+ """SameValueZero, as used by ``Array.prototype.includes``."""
75
+ if is_number(a) and is_number(b) and math.isnan(a) and math.isnan(b): # type: ignore[arg-type]
76
+ return True
77
+ return js_strict_equals(a, b)
78
+
79
+
80
+ def js_number_to_string(value: float) -> str:
81
+ """``Number.prototype.toString()`` (ECMAScript Number::toString with radix 10)."""
82
+ if isinstance(value, int):
83
+ if abs(value) < 2**53:
84
+ return str(value)
85
+ value = float(value)
86
+ if math.isnan(value):
87
+ return "NaN"
88
+ if math.isinf(value):
89
+ return "Infinity" if value > 0 else "-Infinity"
90
+ if value == 0:
91
+ return "0"
92
+ sign = "-" if value < 0 else ""
93
+ # repr() yields the shortest round-tripping digits, the same digits JavaScript picks.
94
+ _, digit_tuple, exponent = Decimal(repr(abs(value))).as_tuple()
95
+ digits = "".join(map(str, digit_tuple)).rstrip("0")
96
+ assert isinstance(exponent, int)
97
+ exponent += len("".join(map(str, digit_tuple))) - len(digits)
98
+ k = len(digits)
99
+ n = k + exponent # value = 0.digits * 10**n
100
+ if k <= n <= 21:
101
+ body = digits + "0" * (n - k)
102
+ elif 0 < n <= 21:
103
+ body = digits[:n] + "." + digits[n:]
104
+ elif -6 < n <= 0:
105
+ body = "0." + "0" * (-n) + digits
106
+ else:
107
+ e = n - 1
108
+ exp = f"e{'+' if e >= 0 else '-'}{abs(e)}"
109
+ body = digits + exp if k == 1 else digits[0] + "." + digits[1:] + exp
110
+ return sign + body
111
+
112
+
113
+ def js_to_string(value: object) -> str:
114
+ """``String(value)`` for template data."""
115
+ if value is None:
116
+ return "undefined"
117
+ if isinstance(value, bool):
118
+ return "true" if value else "false"
119
+ if is_number(value):
120
+ return js_number_to_string(value) # type: ignore[arg-type]
121
+ if isinstance(value, str):
122
+ return value
123
+ if isinstance(value, (list, tuple)):
124
+ return ",".join("" if item is None else js_to_string(item) for item in value)
125
+ return "[object Object]"
126
+
127
+
128
+ def js_object_keys(obj: Mapping[Any, Any]) -> list[str]:
129
+ """``Object.keys`` order: array-index keys ascending, then string keys in insertion order."""
130
+ keys = [k if isinstance(k, str) else js_to_string(k) for k in obj]
131
+ index_keys = sorted((k for k in keys if _ARRAY_INDEX_RE.fullmatch(k) and int(k) <= _MAX_ARRAY_INDEX), key=int)
132
+ index_set = set(index_keys)
133
+ return index_keys + [k for k in keys if k not in index_set]
134
+
135
+
136
+ def _json_value(value: object) -> str:
137
+ if value is None:
138
+ return "null"
139
+ if isinstance(value, bool):
140
+ return "true" if value else "false"
141
+ if is_number(value):
142
+ if isinstance(value, float) and not math.isfinite(value):
143
+ return "null"
144
+ return js_number_to_string(value) # type: ignore[arg-type]
145
+ if isinstance(value, str):
146
+ # Python's escaping with ensure_ascii=False matches JSON.stringify (\b\f\n\r\t, \u00xx).
147
+ return json.dumps(value, ensure_ascii=False)
148
+ if isinstance(value, (list, tuple)):
149
+ return "[" + ",".join(_json_value(item) for item in value) + "]"
150
+ if isinstance(value, Mapping):
151
+ lookup = {(k if isinstance(k, str) else js_to_string(k)): v for k, v in value.items()}
152
+ return "{" + ",".join(f"{_json_value(k)}:{_json_value(lookup[k])}" for k in js_object_keys(value)) + "}"
153
+ raise TypeError(f"Cannot JSON.stringify value of type {type(value).__name__}")
154
+
155
+
156
+ def json_stringify(value: object) -> str | None:
157
+ """``JSON.stringify(value)`` (compact). Returns None for undefined (top-level ``None``)."""
158
+ if value is None:
159
+ return None
160
+ return _json_value(value)
161
+
162
+
163
+ def utf16_len(char: str) -> int:
164
+ return 2 if ord(char) > 0xFFFF else 1
@@ -0,0 +1,107 @@
1
+ """Base class of the agent template renderers (port of ``BaseRenderer.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from dataclasses import dataclass
6
+ from importlib.resources.abc import Traversable
7
+ from pathlib import Path
8
+ from typing import Any
9
+
10
+ from agentcore.lib import APP_DIR
11
+ from agentcore.templates.render import copy_and_render_dir
12
+ from agentcore.templates.types import AgentRenderConfig
13
+
14
+
15
+ @dataclass(frozen=True)
16
+ class RendererContext:
17
+ output_dir: str
18
+
19
+
20
+ class BaseRenderer:
21
+ def __init__(
22
+ self,
23
+ config: AgentRenderConfig,
24
+ sdk_name: str,
25
+ base_template_dir: Traversable,
26
+ protocol_mode: str | None = None,
27
+ ) -> None:
28
+ self.config = config
29
+ self.sdk_name = sdk_name
30
+ self.base_template_dir = base_template_dir
31
+ self.protocol_mode = (protocol_mode or config.protocol or "HTTP").lower()
32
+
33
+ def should_render_memory(self) -> bool:
34
+ return self.config.has_memory
35
+
36
+ def should_render_payment(self) -> bool:
37
+ return self.config.has_payment
38
+
39
+ def should_render_execution_limits(self) -> bool:
40
+ # Upstream: !!(maxIterations ?? maxTokens ?? timeoutSeconds) -- the first non-null value decides.
41
+ first = next(
42
+ (
43
+ v
44
+ for v in (self.config.max_iterations, self.config.max_tokens, self.config.timeout_seconds)
45
+ if v is not None
46
+ ),
47
+ None,
48
+ )
49
+ return bool(first)
50
+
51
+ def get_template_dir(self) -> Traversable:
52
+ language = self.config.target_language.lower()
53
+ return self.base_template_dir / language / self.protocol_mode / self.sdk_name
54
+
55
+ def template_data(self, context: RendererContext) -> dict[str, Any]:
56
+ return {
57
+ **self.config.to_template_data(),
58
+ "outputDir": context.output_dir,
59
+ "projectName": self.config.name,
60
+ "Name": self.config.name,
61
+ }
62
+
63
+ def render(self, context: RendererContext) -> None:
64
+ template_dir = self.get_template_dir()
65
+ # Agents are placed in app/<agentName>/.
66
+ project_dir = Path(context.output_dir) / APP_DIR / self.config.name
67
+ data = self.template_data(context)
68
+
69
+ copy_and_render_dir(template_dir / "base", project_dir, data)
70
+
71
+ # Capability templates render only when the SDK ships them.
72
+ if self.should_render_memory():
73
+ memory_dir = template_dir / "capabilities" / "memory"
74
+ if memory_dir.is_dir():
75
+ copy_and_render_dir(memory_dir, project_dir / "memory", data)
76
+
77
+ if self.should_render_payment():
78
+ payments_dir = template_dir / "capabilities" / "payments"
79
+ if payments_dir.is_dir():
80
+ capabilities_dir = project_dir / "capabilities"
81
+ capabilities_dir.mkdir(parents=True, exist_ok=True)
82
+ init_path = capabilities_dir / "__init__.py"
83
+ if not init_path.exists():
84
+ init_path.write_text("")
85
+ copy_and_render_dir(payments_dir, capabilities_dir / "payments", data)
86
+
87
+ if self.should_render_execution_limits():
88
+ limits_dir = template_dir / "capabilities" / "execution-limits"
89
+ if limits_dir.is_dir():
90
+ copy_and_render_dir(limits_dir, project_dir, data)
91
+
92
+ # Container builds get a Dockerfile and .dockerignore.
93
+ if self.config.build_type == "Container":
94
+ language = self.config.target_language.lower()
95
+ container_dir = self.base_template_dir / "container" / language
96
+ if container_dir.is_dir():
97
+ exclude = {"Dockerfile"} if self.config.dockerfile else None
98
+ enable_otel = self.config.enable_otel if self.config.enable_otel is not None else True
99
+ copy_and_render_dir(
100
+ container_dir,
101
+ project_dir,
102
+ {**data, "entrypoint": "main", "enableOtel": enable_otel},
103
+ exclude=exclude,
104
+ )
105
+
106
+
107
+ __all__ = ["BaseRenderer", "RendererContext"]
@@ -0,0 +1,129 @@
1
+ """Vends the CDK project into a new AgentCore project (port of ``CDKRenderer.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ import time
7
+ from dataclasses import dataclass
8
+ from pathlib import Path
9
+ from typing import Protocol
10
+
11
+ from agentcore.cdk.constants import CDK_PROJECT_DIR
12
+ from agentcore.lib import CONFIG_DIR, run_subprocess_capture
13
+ from agentcore.templates.render import copy_dir
14
+ from agentcore.templates.schema_assets import LLM_CONTEXT_FILES
15
+ from agentcore.templates.template_root import get_template_path
16
+
17
+ LLM_CONTEXT_DIR = ".llm-context"
18
+ BUNDLED_CDK_TARBALL = "bundled-agentcore-cdk.tgz"
19
+
20
+
21
+ class CreateLogger(Protocol):
22
+ """The progress-logging subset of upstream's ``CreateLogger`` used here."""
23
+
24
+ def log_sub_step(self, message: str) -> None: ...
25
+
26
+ def log_command(self, command: str, args: list[str]) -> None: ...
27
+
28
+ def log_command_output(self, output: str) -> None: ...
29
+
30
+
31
+ @dataclass(frozen=True)
32
+ class CDKRendererContext:
33
+ # The project root; the CDK project is created at <project_root>/agentcore/cdk/.
34
+ project_root: str | os.PathLike[str]
35
+ logger: CreateLogger | None = None
36
+
37
+
38
+ class CDKRenderer:
39
+ """Creates ``<project_root>/agentcore/cdk/`` and writes AGENTS.md, README.md and ``.llm-context/``."""
40
+
41
+ def __init__(self) -> None:
42
+ self.template_dir = get_template_path("cdk")
43
+ self.agents_template_dir = get_template_path("agents")
44
+ self.assets_dir = get_template_path()
45
+
46
+ def render(self, context: CDKRendererContext) -> Path:
47
+ logger = context.logger
48
+ project_root = Path(context.project_root)
49
+ config_dir = project_root / CONFIG_DIR
50
+ output_dir = config_dir / CDK_PROJECT_DIR
51
+
52
+ _sub_step(logger, "Copying CDK project template...")
53
+ copy_dir(self.template_dir, output_dir)
54
+ _sub_step(logger, "CDK template copied")
55
+
56
+ _sub_step(logger, "Copying AGENTS.md template...")
57
+ (project_root / "AGENTS.md").write_bytes((self.agents_template_dir / "AGENTS.md").read_bytes())
58
+ _sub_step(logger, "AGENTS.md copied")
59
+
60
+ _sub_step(logger, "Copying README.md template...")
61
+ (project_root / "README.md").write_bytes((self.assets_dir / "README.md").read_bytes())
62
+ _sub_step(logger, "README.md copied")
63
+
64
+ _sub_step(logger, "Writing LLM context files...")
65
+ self._write_llm_context(config_dir)
66
+ _sub_step(logger, "LLM context files written")
67
+
68
+ # Skip slow npm operations in test mode.
69
+ if os.environ.get("AGENTCORE_SKIP_INSTALL"):
70
+ return output_dir
71
+
72
+ _sub_step(logger, "Running npm install (this may take a while)...")
73
+ started = time.monotonic()
74
+ self._run_npm(output_dir, ["install"], logger, "npm install failed with code {code}: {stderr}")
75
+ _sub_step(logger, f"npm install completed ({time.monotonic() - started:.1f}s)")
76
+
77
+ # A CLI built with a bundled CDK constructs tarball overrides the registry version.
78
+ self._install_bundled_cdk_if_present(output_dir, logger)
79
+
80
+ _sub_step(logger, "Running npm run format...")
81
+ self._run_npm(output_dir, ["run", "format"], logger, "npm run format failed with code {code}: {stderr}")
82
+ _sub_step(logger, "Formatting completed")
83
+
84
+ return output_dir
85
+
86
+ @staticmethod
87
+ def _run_npm(cwd: Path, args: list[str], logger: CreateLogger | None, error: str, log_command: bool = True) -> None:
88
+ if logger and log_command:
89
+ logger.log_command("npm", args)
90
+ result = run_subprocess_capture("npm", args, cwd=cwd)
91
+ if logger:
92
+ if result.stdout:
93
+ logger.log_command_output(result.stdout)
94
+ if result.stderr:
95
+ logger.log_command_output(result.stderr)
96
+ if result.code != 0:
97
+ raise RuntimeError(error.format(code=result.code, stderr=result.stderr))
98
+
99
+ def _install_bundled_cdk_if_present(self, cdk_project_dir: Path, logger: CreateLogger | None) -> None:
100
+ bundled = self.assets_dir / BUNDLED_CDK_TARBALL
101
+ if not bundled.is_file():
102
+ return
103
+ # Copied into the project so the file: reference in package.json stays valid for later installs.
104
+ (cdk_project_dir / BUNDLED_CDK_TARBALL).write_bytes(bundled.read_bytes())
105
+ _sub_step(logger, "Installing bundled @aws/agentcore-cdk override...")
106
+ self._run_npm(
107
+ cdk_project_dir,
108
+ ["install", f"./{BUNDLED_CDK_TARBALL}"],
109
+ logger,
110
+ "Failed to install bundled @aws/agentcore-cdk: {stderr}",
111
+ log_command=False,
112
+ )
113
+ _sub_step(logger, "Bundled @aws/agentcore-cdk installed")
114
+
115
+ @staticmethod
116
+ def _write_llm_context(config_dir: Path) -> None:
117
+ llm_context_dir = config_dir / LLM_CONTEXT_DIR
118
+ llm_context_dir.mkdir(parents=True, exist_ok=True)
119
+ for filename, content in LLM_CONTEXT_FILES.items():
120
+ with open(llm_context_dir / filename, "w", encoding="utf-8", newline="") as fh:
121
+ fh.write(content)
122
+
123
+
124
+ def _sub_step(logger: CreateLogger | None, message: str) -> None:
125
+ if logger:
126
+ logger.log_sub_step(message)
127
+
128
+
129
+ __all__ = ["LLM_CONTEXT_DIR", "CDKRenderer", "CDKRendererContext", "CreateLogger"]
@@ -0,0 +1,39 @@
1
+ """Evaluator project templates (port of ``EvaluatorRenderer.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ from typing import Any, TypedDict
7
+
8
+ from agentcore.templates.render import copy_and_render_dir
9
+ from agentcore.templates.template_root import get_template_path
10
+
11
+
12
+ def render_code_based_evaluator_template(evaluator_name: str, output_dir: str | os.PathLike[str]) -> None:
13
+ """Render the code-based (Lambda) evaluator template; ``{{ Name }}`` is the evaluator name."""
14
+ copy_and_render_dir(get_template_path("evaluators", "python-lambda"), output_dir, {"Name": evaluator_name})
15
+
16
+
17
+ class ThirdPartyEvaluatorTemplateData(TypedDict, total=False):
18
+ Name: str
19
+ EvaluatorClass: str
20
+ EvaluatorParams: str
21
+ # True when the LLM judge runs on Bedrock instead of the library's default (OpenAI).
22
+ ModelProviderBedrock: bool
23
+ # Bedrock model ID (required when ModelProviderBedrock is true).
24
+ Model: str
25
+
26
+
27
+ def render_third_party_evaluator_template(
28
+ template_dir_name: str,
29
+ data: ThirdPartyEvaluatorTemplateData | dict[str, Any],
30
+ output_dir: str | os.PathLike[str],
31
+ ) -> None:
32
+ copy_and_render_dir(get_template_path("evaluators", template_dir_name), output_dir, dict(data))
33
+
34
+
35
+ __all__ = [
36
+ "ThirdPartyEvaluatorTemplateData",
37
+ "render_code_based_evaluator_template",
38
+ "render_third_party_evaluator_template",
39
+ ]
@@ -0,0 +1,69 @@
1
+ """Gateway target (MCP tool) project templates (port of ``GatewayTargetRenderer.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ from typing import Literal
7
+
8
+ from agentcore.schema import ToolDefinition
9
+ from agentcore.templates.render import copy_and_render_dir
10
+ from agentcore.templates.template_root import get_template_path
11
+
12
+ ComputeHost = Literal["Lambda", "AgentCoreRuntime"]
13
+
14
+
15
+ def _tool(name: str, description: str, input_schema: dict[str, object]) -> ToolDefinition:
16
+ return ToolDefinition.model_validate({"name": name, "description": description, "inputSchema": input_schema})
17
+
18
+
19
+ # Tools of the Lambda template, each with a complete inputSchema for gateway integration.
20
+ LAMBDA_TEMPLATE_TOOLS: tuple[ToolDefinition, ...] = (
21
+ _tool(
22
+ "lookup_ip",
23
+ "Look up geolocation and network info for an IP address",
24
+ {
25
+ "type": "object",
26
+ "properties": {"ip_address": {"type": "string", "description": "IPv4 or IPv6 address to look up"}},
27
+ "required": ["ip_address"],
28
+ },
29
+ ),
30
+ _tool("get_random_user", "Generate a random user profile for testing or mock data", {"type": "object"}),
31
+ _tool(
32
+ "fetch_post",
33
+ "Fetch a post by ID from JSONPlaceholder API",
34
+ {
35
+ "type": "object",
36
+ "properties": {"post_id": {"type": "integer", "description": "The post ID (1-100)"}},
37
+ "required": ["post_id"],
38
+ },
39
+ ),
40
+ )
41
+
42
+
43
+ def get_template_tool_definitions(tool_name: str, host: ComputeHost) -> list[ToolDefinition]:
44
+ """Tool definitions for a template: the Lambda tools prefixed with ``tool_name``, or one generic tool."""
45
+ if host == "Lambda":
46
+ # The prefix avoids conflicts when several Lambda tools are added to the same project.
47
+ return [tool.model_copy(update={"name": f"{tool_name}_{tool.name}"}) for tool in LAMBDA_TEMPLATE_TOOLS]
48
+ return [_tool(tool_name, f"Tool for {tool_name}", {"type": "object"})]
49
+
50
+
51
+ def render_gateway_target_template(
52
+ tool_name: str,
53
+ output_dir: str | os.PathLike[str],
54
+ language: str,
55
+ host: ComputeHost = "AgentCoreRuntime",
56
+ ) -> None:
57
+ """Render a gateway target project; ``{{ Name }}`` is the tool name. Only Python is supported."""
58
+ if language != "Python":
59
+ raise ValueError(f"Gateway target templates for {language} are not yet supported.")
60
+ template_subdir = "python-lambda" if host == "Lambda" else "python"
61
+ copy_and_render_dir(get_template_path("mcp", template_subdir), output_dir, {"Name": tool_name})
62
+
63
+
64
+ __all__ = [
65
+ "LAMBDA_TEMPLATE_TOOLS",
66
+ "ComputeHost",
67
+ "get_template_tool_definitions",
68
+ "render_gateway_target_template",
69
+ ]
@@ -0,0 +1,16 @@
1
+ # LLM Context Files
2
+
3
+ **DO NOT EDIT THESE FILES** - They are read-only reference for AI coding assistants.
4
+
5
+ ## Files
6
+
7
+ | File | JSON Config | Purpose |
8
+ | ---------------- | ------------------ | ------------------------------------- |
9
+ | `agentcore.ts` | `agentcore.json` | Project resources, including gateways |
10
+ | `aws-targets.ts` | `aws-targets.json` | Deployment targets (account + region) |
11
+
12
+ ## Usage
13
+
14
+ When editing AgentCore JSON config files, reference the corresponding `.ts` file here for type definitions, exact enum
15
+ values, defaults, and validation constraints (marked with `@regex`, `@min`, and `@max`). Run `agentcore validate` after
16
+ making changes.