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,153 @@
1
+ """Node/TypeScript CodeZip packager (port of ``packaging/node.ts``).
2
+
3
+ Upstream calls the esbuild JS API in-process; here the esbuild CLI is run with the equivalent
4
+ flags. It is taken from the project's ``node_modules/.bin``, else ``PATH``, else ``npx``.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import os
10
+ import re
11
+ import shutil
12
+ from typing import Any
13
+
14
+ from agentcore.lib.constants import get_artifact_zip_name
15
+ from agentcore.lib.errors.types import PackagingError
16
+ from agentcore.lib.packaging.helpers import (
17
+ create_zip_from_dir,
18
+ enforce_zip_size_limit,
19
+ ensure_dir_clean,
20
+ is_node_runtime,
21
+ resolve_node_project_paths,
22
+ )
23
+ from agentcore.lib.packaging.types import ArtifactResult, PackageOptions, spec_field
24
+ from agentcore.lib.utils.subprocess import run_subprocess_capture
25
+
26
+ _NODE_RUNTIME_REGEX = re.compile(r"NODE_(\d+)")
27
+
28
+ ESBUILD_VERSION_RANGE = "^0.28.0"
29
+
30
+ # Packages that are require()d dynamically and so can't be bundled; copied into _deps/.
31
+ DYNAMIC_REQUIRE_PACKAGES = (
32
+ "@fastify/sse",
33
+ "@fastify/websocket",
34
+ "duplexify",
35
+ "end-of-stream",
36
+ "fastify-plugin",
37
+ "inherits",
38
+ "once",
39
+ "readable-stream",
40
+ "safe-buffer",
41
+ "stream-shift",
42
+ "string_decoder",
43
+ "util-deprecate",
44
+ "wrappy",
45
+ "ws",
46
+ )
47
+
48
+ DEPS_DIR = "_deps"
49
+
50
+ # Defines importMetaUrl for CJS output and makes require() fall back to _deps/<pkg>.
51
+ CJS_BANNER = (
52
+ 'const importMetaUrl = require("url").pathToFileURL(__filename).href;'
53
+ '(function(){var M=require("module"),p=require("path"),f=require("fs"),d=p.join(__dirname,"_deps"),o=M._resolveFilename;'
54
+ "M._resolveFilename=function(r,P,i,O){try{return o.call(this,r,P,i,O)}catch(e){"
55
+ 'var dp=p.join(d,r);if(f.existsSync(dp)){var pk=p.join(dp,"package.json");'
56
+ 'if(f.existsSync(pk)){var m=JSON.parse(f.readFileSync(pk,"utf8")).main||"index.js";return p.resolve(dp,m)}'
57
+ 'return p.resolve(dp,"index.js")}throw e}};})();'
58
+ )
59
+
60
+
61
+ def extract_node_version(runtime: str) -> str:
62
+ """``NODE_20`` -> ``20``."""
63
+ match = _NODE_RUNTIME_REGEX.search(runtime)
64
+ if not match:
65
+ raise PackagingError(f"Unsupported Node runtime value: {runtime}")
66
+ if not match.group(1):
67
+ raise PackagingError(f"Invalid Node runtime value: {runtime}")
68
+ return match.group(1)
69
+
70
+
71
+ def _copy_dynamic_deps(src_dir: str, staging_dir: str) -> None:
72
+ src_node_modules = os.path.join(src_dir, "node_modules")
73
+ if not os.path.exists(src_node_modules):
74
+ return
75
+ for pkg in DYNAMIC_REQUIRE_PACKAGES:
76
+ pkg_path = os.path.join(src_node_modules, pkg)
77
+ if os.path.exists(pkg_path):
78
+ shutil.copytree(pkg_path, os.path.join(staging_dir, DEPS_DIR, pkg), dirs_exist_ok=True, symlinks=True)
79
+
80
+
81
+ def _esbuild_command(src_dir: str) -> tuple[str, list[str]]:
82
+ local = os.path.join(src_dir, "node_modules", ".bin", "esbuild")
83
+ for candidate in (local, local + ".cmd"):
84
+ if os.path.exists(candidate):
85
+ return candidate, []
86
+ on_path = shutil.which("esbuild")
87
+ if on_path:
88
+ return on_path, []
89
+ return "npx", ["--yes", f"esbuild@{ESBUILD_VERSION_RANGE}"]
90
+
91
+
92
+ def run_esbuild(entry_file: str, outfile: str, node_target: str, src_dir: str) -> None:
93
+ command, prefix = _esbuild_command(src_dir)
94
+ args = [
95
+ *prefix,
96
+ entry_file,
97
+ "--bundle",
98
+ "--platform=node",
99
+ "--format=cjs",
100
+ "--minify",
101
+ f"--target={node_target}",
102
+ f"--outfile={outfile}",
103
+ f"--banner:js={CJS_BANNER}",
104
+ "--define:import.meta.url=importMetaUrl",
105
+ "--log-level=warning",
106
+ ]
107
+ result = run_subprocess_capture(command, args, cwd=src_dir)
108
+ if result.code != 0:
109
+ output = f"{result.stdout}\n{result.stderr}".strip()
110
+ raise PackagingError(f"esbuild failed to bundle {entry_file}:\n{output}")
111
+
112
+
113
+ def _package(runtime_version: str, agent_name: str, options: PackageOptions) -> ArtifactResult:
114
+ paths = resolve_node_project_paths(options, agent_name)
115
+ ensure_dir_clean(paths.staging_dir)
116
+
117
+ entry_file = os.path.join(paths.src_dir, "main.ts")
118
+ run_esbuild(
119
+ entry_file,
120
+ os.path.join(paths.staging_dir, "main.js"),
121
+ f"node{extract_node_version(runtime_version)}",
122
+ paths.src_dir,
123
+ )
124
+
125
+ with open(os.path.join(paths.staging_dir, "package.json"), "w", encoding="utf-8") as fh:
126
+ fh.write('{"type":"commonjs"}')
127
+ _copy_dynamic_deps(paths.src_dir, paths.staging_dir)
128
+
129
+ artifact_path = options.output_path or os.path.join(paths.artifacts_dir, get_artifact_zip_name(agent_name))
130
+ create_zip_from_dir(paths.staging_dir, artifact_path)
131
+ size_bytes = enforce_zip_size_limit(artifact_path)
132
+ return ArtifactResult(artifact_path=artifact_path, size_bytes=size_bytes, staging_path=paths.staging_dir)
133
+
134
+
135
+ class NodeCodeZipPackager:
136
+ def pack(self, spec: Any, options: PackageOptions | None = None) -> ArtifactResult:
137
+ options = options or PackageOptions()
138
+ if spec_field(spec, "build") != "CodeZip":
139
+ raise PackagingError("Node packager only supports CodeZip build type.")
140
+ runtime_version = spec_field(spec, "runtimeVersion")
141
+ if not runtime_version or not is_node_runtime(runtime_version):
142
+ raise PackagingError(f"Node packager only supports Node runtimes. Received: {runtime_version}")
143
+ return _package(runtime_version, options.agent_name or spec_field(spec, "name"), options)
144
+
145
+ def pack_code_zip(self, config: Any, options: PackageOptions | None = None) -> ArtifactResult:
146
+ options = options or PackageOptions()
147
+ runtime_version = spec_field(config, "runtimeVersion") or "NODE_20"
148
+ if not is_node_runtime(runtime_version):
149
+ raise PackagingError(f"Node packager only supports Node runtimes. Received: {runtime_version}")
150
+ return _package(runtime_version, options.agent_name or spec_field(config, "name") or "asset", options)
151
+
152
+
153
+ NodeCodeZipPackagerSync = NodeCodeZipPackager
@@ -0,0 +1,135 @@
1
+ """Python CodeZip packager (port of ``packaging/python.ts``).
2
+
3
+ Dependencies are installed with ``uv pip install --target`` for aarch64 manylinux, trying each
4
+ platform candidate until one has wheels for every dependency.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import os
10
+ import re
11
+ from collections.abc import Sequence
12
+ from typing import Any
13
+
14
+ from agentcore.lib.constants import UV_INSTALL_HINT, get_artifact_zip_name
15
+ from agentcore.lib.errors.types import PackagingError
16
+ from agentcore.lib.packaging.helpers import (
17
+ convert_windows_scripts_to_linux,
18
+ copy_source_tree,
19
+ create_zip_from_dir,
20
+ enforce_zip_size_limit,
21
+ ensure_binary_available,
22
+ ensure_dir_clean,
23
+ is_python_runtime,
24
+ resolve_project_paths,
25
+ )
26
+ from agentcore.lib.packaging.types import ArtifactResult, PackageOptions, spec_field
27
+ from agentcore.lib.packaging.uv import detect_unavailable_platform
28
+ from agentcore.lib.utils.subprocess import run_subprocess_capture
29
+
30
+ _PYTHON_RUNTIME_REGEX = re.compile(r"PYTHON_(\d+)_?(\d+)?")
31
+
32
+ # AgentCore Runtime uses AL2023 (GLIBC 2.34), so any manylinux <= 2_34 works.
33
+ PLATFORM_CANDIDATES = ("aarch64-manylinux2014", "aarch64-manylinux_2_28", "aarch64-manylinux_2_34")
34
+
35
+
36
+ def default_python_version() -> str:
37
+ try:
38
+ from agentcore.schema import DEFAULT_PYTHON_VERSION # type: ignore[attr-defined]
39
+
40
+ return str(getattr(DEFAULT_PYTHON_VERSION, "value", DEFAULT_PYTHON_VERSION))
41
+ except Exception: # schema package absent or not importable
42
+ return "PYTHON_3_14"
43
+
44
+
45
+ def extract_python_version(runtime: str) -> str:
46
+ """``PYTHON_3_12`` -> ``3.12`` (for ``uv --python-version``)."""
47
+ match = _PYTHON_RUNTIME_REGEX.search(runtime)
48
+ if not match:
49
+ raise PackagingError(f"Unsupported Python runtime value: {runtime}")
50
+ major, minor = match.group(1), match.group(2)
51
+ if not major or not minor:
52
+ raise PackagingError(f"Invalid Python runtime value: {runtime}")
53
+ return f"{int(major)}.{int(minor)}"
54
+
55
+
56
+ def _install_with_retries(
57
+ project_root: str,
58
+ src_dir: str,
59
+ staging_dir: str,
60
+ runtime_version: str,
61
+ python_platforms: Sequence[str],
62
+ pyproject_path: str,
63
+ ) -> str:
64
+ python_version = extract_python_version(runtime_version)
65
+ for platform in python_platforms:
66
+ if not platform:
67
+ raise PackagingError("No platform candidate available for dependency installation.")
68
+ ensure_dir_clean(staging_dir)
69
+ result = run_subprocess_capture(
70
+ "uv",
71
+ [
72
+ "pip",
73
+ "install",
74
+ "-r",
75
+ pyproject_path,
76
+ "--target",
77
+ staging_dir,
78
+ "--python-version",
79
+ python_version,
80
+ "--python-platform",
81
+ platform,
82
+ "--only-binary",
83
+ ":all:",
84
+ ],
85
+ cwd=project_root,
86
+ )
87
+ if result.code == 0:
88
+ copy_source_tree(src_dir, staging_dir)
89
+ convert_windows_scripts_to_linux(staging_dir)
90
+ return staging_dir
91
+ if detect_unavailable_platform(result):
92
+ continue
93
+ combined = f"{result.stdout}\n{result.stderr}".strip()
94
+ raise PackagingError(combined or f"uv install failed on platform {platform} with exit code {result.code}")
95
+ raise PackagingError("uv install failed for all platform candidates.")
96
+
97
+
98
+ def _package(runtime_version: str, agent_name: str, options: PackageOptions) -> ArtifactResult:
99
+ paths = resolve_project_paths(options, agent_name)
100
+ platforms = [options.python_platform] if options.python_platform else list(PLATFORM_CANDIDATES)
101
+
102
+ ensure_binary_available("uv", UV_INSTALL_HINT)
103
+ ensure_dir_clean(paths.staging_dir)
104
+
105
+ final_staging = _install_with_retries(
106
+ paths.project_root, paths.src_dir, paths.staging_dir, runtime_version, platforms, paths.pyproject_path
107
+ )
108
+ artifact_path = options.output_path or os.path.join(paths.artifacts_dir, get_artifact_zip_name(agent_name))
109
+ create_zip_from_dir(final_staging, artifact_path)
110
+ size_bytes = enforce_zip_size_limit(artifact_path)
111
+ return ArtifactResult(artifact_path=artifact_path, size_bytes=size_bytes, staging_path=final_staging)
112
+
113
+
114
+ class PythonCodeZipPackager:
115
+ """Packager for CLI usage (``pack``) and CDK-style bundling (``pack_code_zip``)."""
116
+
117
+ def pack(self, spec: Any, options: PackageOptions | None = None) -> ArtifactResult:
118
+ options = options or PackageOptions()
119
+ if spec_field(spec, "build") != "CodeZip":
120
+ raise PackagingError("Python packager only supports CodeZip build type.")
121
+ runtime_version = spec_field(spec, "runtimeVersion")
122
+ if not runtime_version or not is_python_runtime(runtime_version):
123
+ raise PackagingError(f"Python packager only supports Python runtimes. Received: {runtime_version}")
124
+ return _package(runtime_version, options.agent_name or spec_field(spec, "name"), options)
125
+
126
+ def pack_code_zip(self, config: Any, options: PackageOptions | None = None) -> ArtifactResult:
127
+ options = options or PackageOptions()
128
+ runtime_version = spec_field(config, "runtimeVersion") or default_python_version()
129
+ if not is_python_runtime(runtime_version):
130
+ raise PackagingError(f"Python packager only supports Python runtimes. Received: {runtime_version}")
131
+ return _package(runtime_version, options.agent_name or spec_field(config, "name") or "asset", options)
132
+
133
+
134
+ # Upstream's separate sync packager is the same class here.
135
+ PythonCodeZipPackagerSync = PythonCodeZipPackager
@@ -0,0 +1,69 @@
1
+ """Packaging option/result types (port of ``packaging/types/packaging.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import re
6
+ from collections.abc import Mapping
7
+ from dataclasses import dataclass
8
+ from enum import Enum
9
+ from typing import Any, Protocol
10
+
11
+
12
+ @dataclass(slots=True)
13
+ class PackageOptions:
14
+ # Override for project root; defaults to cwd / discovered root.
15
+ project_root: str | None = None
16
+ # Override for source directory; defaults to the project root.
17
+ src_dir: str | None = None
18
+ # Override for pyproject.toml (Python) path.
19
+ pyproject_path: str | None = None
20
+ # Override for the artifact base directory; defaults to <projectRoot>/agentcore.
21
+ artifact_dir: str | None = None
22
+ # Python platform tag override; default tries PLATFORM_CANDIDATES.
23
+ python_platform: str | None = None
24
+ # Agent name for artifact naming and staging isolation.
25
+ agent_name: str | None = None
26
+ # Write the zip here if given.
27
+ output_path: str | None = None
28
+
29
+
30
+ @dataclass(frozen=True, slots=True)
31
+ class ArtifactResult:
32
+ artifact_path: str
33
+ size_bytes: int
34
+ staging_path: str
35
+
36
+
37
+ @dataclass(slots=True)
38
+ class CodeBundleConfig:
39
+ """Minimal bundle config; ``AgentEnvSpec`` models satisfy the same shape."""
40
+
41
+ name: str
42
+ code_location: str
43
+ entrypoint: str
44
+ runtime_version: str | None = None
45
+
46
+
47
+ class RuntimePackager(Protocol):
48
+ def pack(self, spec: Any, options: PackageOptions | None = None) -> ArtifactResult: ...
49
+
50
+
51
+ class CodeZipPackager(Protocol):
52
+ def pack_code_zip(self, config: Any, options: PackageOptions | None = None) -> ArtifactResult: ...
53
+
54
+
55
+ def _snake(name: str) -> str:
56
+ return re.sub(r"(?<!^)(?=[A-Z])", "_", name).lower()
57
+
58
+
59
+ def spec_field(spec: Any, name: str, default: Any = None) -> Any:
60
+ """Read a spec field by its camelCase JSON name from a dict or a model (snake_case or alias attr)."""
61
+ if isinstance(spec, Mapping):
62
+ value = spec.get(name, spec.get(_snake(name)))
63
+ return default if value is None else value
64
+ for attr in (_snake(name), name):
65
+ value = getattr(spec, attr, None)
66
+ if value is not None:
67
+ # Enum-valued fields (e.g. build type) compare by value.
68
+ return value.value if isinstance(value, Enum) else value
69
+ return default
@@ -0,0 +1,45 @@
1
+ """Detect "no wheel for this platform" failures from ``uv pip install`` (port of ``uv.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import re
6
+ from dataclasses import dataclass, field
7
+
8
+ from agentcore.lib.utils.subprocess import SubprocessResult
9
+
10
+ _PLATFORM_HINT_REGEX = re.compile(r"platforms:\s*([^\n]+)", re.IGNORECASE)
11
+ _MANYLINUX_TOKEN = re.compile(r"(manylinux[^\s,]+)", re.IGNORECASE)
12
+ _NO_WHEELS_REGEX = re.compile(
13
+ r"(has no wheels with a matching (?:platform|Python ABI) tag|no compatible (?:wheels|tags) found|has no usable wheels)",
14
+ re.IGNORECASE,
15
+ )
16
+
17
+
18
+ @dataclass(frozen=True, slots=True)
19
+ class PlatformIssue:
20
+ message: str
21
+ platforms: list[str] | None = field(default=None)
22
+
23
+
24
+ def detect_unavailable_platform(result: SubprocessResult) -> PlatformIssue | None:
25
+ combined = f"{result.stdout}\n{result.stderr}"
26
+ hint = _PLATFORM_HINT_REGEX.search(combined)
27
+ if hint and hint.group(1):
28
+ hints = [m for m in _MANYLINUX_TOKEN.findall(hint.group(1)) if m]
29
+ if hints:
30
+ return PlatformIssue(message=_extract_relevant_block(combined, _PLATFORM_HINT_REGEX), platforms=hints)
31
+
32
+ if _NO_WHEELS_REGEX.search(combined):
33
+ return PlatformIssue(message=_extract_relevant_block(combined, _NO_WHEELS_REGEX))
34
+
35
+ return None
36
+
37
+
38
+ def _extract_relevant_block(text: str, pattern: re.Pattern[str], context: int = 3) -> str:
39
+ lines = re.split(r"\r?\n", text)
40
+ index = next((i for i, line in enumerate(lines) if pattern.search(line)), -1)
41
+ if index == -1:
42
+ return text.strip()
43
+ start = max(0, index - context)
44
+ end = min(len(lines), index + context + 1)
45
+ return "\n".join(line.strip() for line in lines[start:end]).strip()
@@ -0,0 +1,104 @@
1
+ """Rust-style ``Result`` for fallible operations (port of ``src/lib/result.ts``).
2
+
3
+ Upstream uses a discriminated union whose success branch spreads its data onto the result
4
+ object. Here ``Ok`` wraps the data in ``value`` and ``Err`` wraps the exception in ``error``;
5
+ both expose ``success`` so ``if result.success:`` narrows as it does upstream.
6
+ ``serialize_result`` reproduces the flat JSON shape the TypeScript CLI prints.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import dataclasses
12
+ from collections.abc import Mapping
13
+ from dataclasses import dataclass, field
14
+ from typing import Any, Generic, Literal, TypeAlias, TypeVar, overload
15
+
16
+ from agentcore.lib.errors.types import BaseError
17
+
18
+ T = TypeVar("T")
19
+ E = TypeVar("E", bound=BaseException)
20
+
21
+ _MISSING: Any = object()
22
+
23
+
24
+ @dataclass(frozen=True, slots=True)
25
+ class Ok(Generic[T]):
26
+ value: T = None # type: ignore[assignment]
27
+
28
+ @property
29
+ def success(self) -> Literal[True]:
30
+ return True
31
+
32
+
33
+ @dataclass(frozen=True, slots=True)
34
+ class Err(Generic[E]):
35
+ error: E
36
+ # Extra fields carried alongside a failure (upstream's `{ success: false, error, ...rest }`).
37
+ extra: Mapping[str, Any] = field(default_factory=dict)
38
+
39
+ @property
40
+ def success(self) -> Literal[False]:
41
+ return False
42
+
43
+
44
+ Result: TypeAlias = Ok[T] | Err[E]
45
+
46
+
47
+ def ok(value: T = None) -> Ok[T]: # type: ignore[assignment]
48
+ return Ok(value)
49
+
50
+
51
+ def err(error: E, **extra: Any) -> Err[E]:
52
+ return Err(error, extra)
53
+
54
+
55
+ failure_result = err
56
+
57
+
58
+ @overload
59
+ def unwrap_result(result: Ok[T] | Err[Any]) -> T: ...
60
+ @overload
61
+ def unwrap_result(result: Ok[T] | Err[Any], default: T) -> T: ...
62
+ def unwrap_result(result: Ok[T] | Err[Any], default: Any = _MISSING) -> Any:
63
+ """Return the success value, else ``default`` if given, else raise the contained error."""
64
+ if isinstance(result, Ok):
65
+ return result.value
66
+ if default is not _MISSING:
67
+ return default
68
+ raise result.error
69
+
70
+
71
+ def _data_dict(value: Any) -> dict[str, Any]:
72
+ if value is None:
73
+ return {}
74
+ if isinstance(value, Mapping):
75
+ return dict(value)
76
+ model_dump = getattr(value, "model_dump", None)
77
+ if callable(model_dump):
78
+ return model_dump(mode="json", by_alias=True)
79
+ if dataclasses.is_dataclass(value) and not isinstance(value, type):
80
+ return dataclasses.asdict(value)
81
+ return {"value": value}
82
+
83
+
84
+ def serialize_result(result: Ok[Any] | Err[Any] | Mapping[str, Any]) -> dict[str, Any]:
85
+ """Convert a result to its JSON-serialisable form.
86
+
87
+ Failures replace ``error`` with its message and, for typed ``BaseError``s, add
88
+ ``errorName`` and ``errorSource``. Plain dict results (``{"success": ..., "error": exc}``)
89
+ are accepted too.
90
+ """
91
+ if isinstance(result, Ok):
92
+ return {"success": True, **_data_dict(result.value)}
93
+ if isinstance(result, Err):
94
+ error, rest = result.error, {"success": False, **result.extra}
95
+ else:
96
+ if result.get("success"):
97
+ return dict(result)
98
+ rest = {k: v for k, v in result.items() if k != "error"}
99
+ error = result.get("error")
100
+ serialized: dict[str, Any] = {**rest, "error": str(error) if error is not None else None}
101
+ if isinstance(error, BaseError):
102
+ serialized["errorName"] = error.name
103
+ serialized["errorSource"] = error.error_source
104
+ return serialized
@@ -0,0 +1 @@
1
+ """Schema I/O (config files on disk)."""
@@ -0,0 +1,27 @@
1
+ from agentcore.lib.schemas.io.config_io import ConfigIO, create_config_io, get_schema_url_for_version
2
+ from agentcore.lib.schemas.io.path_resolver import (
3
+ PathConfig,
4
+ PathResolver,
5
+ default_path_config,
6
+ find_config_root,
7
+ find_project_root,
8
+ get_session_project_root,
9
+ get_working_directory,
10
+ require_config_root,
11
+ set_session_project_root,
12
+ )
13
+
14
+ __all__ = [
15
+ "ConfigIO",
16
+ "PathConfig",
17
+ "PathResolver",
18
+ "create_config_io",
19
+ "default_path_config",
20
+ "find_config_root",
21
+ "find_project_root",
22
+ "get_schema_url_for_version",
23
+ "get_session_project_root",
24
+ "get_working_directory",
25
+ "require_config_root",
26
+ "set_session_project_root",
27
+ ]