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,42 @@
1
+ """`agentcore logs evals` (port of the `evals` subcommand in commands/logs/command.tsx).
2
+
3
+ The `logs` group's default action belongs to the dev/logs area (cli/commands/logs).
4
+ """
5
+
6
+ import typer
7
+
8
+ from agentcore.cli.commands._jobs_common import red, require_project
9
+ from agentcore.cli.errors import get_error_message
10
+ from agentcore.cli.groups import group
11
+ from agentcore.operations.eval.logs_eval import handle_logs_eval
12
+
13
+
14
+ @group("logs").command("evals", help="Stream or search online eval logs")
15
+ def logs_evals(
16
+ runtime: str | None = typer.Option(None, "-r", "--runtime", help="Select specific runtime"),
17
+ since: str | None = typer.Option(None, "--since", help='Start time (e.g. "1h", "30m", "2d", ISO 8601)'),
18
+ until: str | None = typer.Option(None, "--until", help='End time (e.g. "now", ISO 8601)'),
19
+ limit: str | None = typer.Option(None, "-n", "--limit", help="Maximum number of log lines"),
20
+ follow: bool = typer.Option(
21
+ False, "-f", "--follow", help="Stream logs in real-time (default when no --since/--until)"
22
+ ),
23
+ as_json: bool = typer.Option(False, "--json", help="Output as JSON Lines"),
24
+ ) -> None:
25
+ require_project()
26
+ try:
27
+ result = handle_logs_eval(
28
+ agent=runtime,
29
+ since=since,
30
+ until=until,
31
+ limit=limit,
32
+ as_json=as_json,
33
+ follow=True if follow else None,
34
+ )
35
+ except typer.Exit:
36
+ raise
37
+ except Exception as exc: # noqa: BLE001 - top-level command boundary, as upstream
38
+ red(f"Error: {get_error_message(exc)}")
39
+ raise typer.Exit(1) from None
40
+ if not result.success:
41
+ red(str(result.error))
42
+ raise typer.Exit(1)
@@ -0,0 +1,118 @@
1
+ """`agentcore package` (port of src/cli/commands/package)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ import sys
7
+ from dataclasses import dataclass, field
8
+ from typing import Any
9
+
10
+ import typer
11
+
12
+ from agentcore.cli.constants import ANSI, COMMAND_DESCRIPTIONS
13
+ from agentcore.cli.errors import get_error_message
14
+ from agentcore.lib.constants import CONFIG_DIR
15
+ from agentcore.lib.packaging import (
16
+ PackageOptions,
17
+ pack_code_zip_sync,
18
+ pack_runtime,
19
+ resolve_code_location,
20
+ validate_agent_exists,
21
+ )
22
+ from agentcore.lib.schemas.io.config_io import ConfigIO
23
+
24
+
25
+ @dataclass
26
+ class PackageContext:
27
+ project: Any
28
+ config_base_dir: str
29
+ project_root: str | None = None
30
+ target_agent: str | None = None
31
+
32
+
33
+ @dataclass(frozen=True)
34
+ class PackageAgentResult:
35
+ agent_name: str
36
+ artifact_path: str
37
+ size_mb: str
38
+
39
+
40
+ @dataclass
41
+ class PackageResult:
42
+ success: bool
43
+ results: list[PackageAgentResult] = field(default_factory=list)
44
+ skipped: list[str] = field(default_factory=list)
45
+ error: str | None = None
46
+
47
+
48
+ def load_package_config(directory: str | None = None, runtime: str | None = None) -> PackageContext:
49
+ project_root = os.path.abspath(directory) if directory else None
50
+ config_io = ConfigIO(base_dir=os.path.join(project_root, CONFIG_DIR)) if project_root else ConfigIO()
51
+ return PackageContext(
52
+ project=config_io.read_project_spec(),
53
+ config_base_dir=config_io.get_path_resolver().get_base_dir(),
54
+ project_root=project_root,
55
+ target_agent=runtime,
56
+ )
57
+
58
+
59
+ def _size_mb(size_bytes: int) -> str:
60
+ return f"{size_bytes / (1024 * 1024):.2f}"
61
+
62
+
63
+ def handle_package(context: PackageContext) -> PackageResult:
64
+ project, base_dir, target = context.project, context.config_base_dir, context.target_agent
65
+ if target:
66
+ validate_agent_exists(project, target)
67
+ agents = [a for a in project.runtimes if a.name == target] if target else list(project.runtimes)
68
+
69
+ result = PackageResult(success=True)
70
+ for agent in agents:
71
+ if agent.build == "CodeZip":
72
+ code_location = resolve_code_location(agent.code_location, base_dir)
73
+ artifact = pack_code_zip_sync(
74
+ agent, PackageOptions(project_root=code_location, agent_name=agent.name, artifact_dir=base_dir)
75
+ )
76
+ result.results.append(PackageAgentResult(agent.name, artifact.artifact_path, _size_mb(artifact.size_bytes)))
77
+ elif agent.build == "Container":
78
+ artifact = pack_runtime(agent, PackageOptions(agent_name=agent.name, artifact_dir=base_dir))
79
+ if not artifact.artifact_path:
80
+ print(
81
+ "No container runtime found. Skipping local build validation. Deploy will use CodeBuild.",
82
+ file=sys.stderr,
83
+ )
84
+ result.skipped.append(agent.name)
85
+ else:
86
+ result.results.append(
87
+ PackageAgentResult(agent.name, artifact.artifact_path, _size_mb(artifact.size_bytes))
88
+ )
89
+ return result
90
+
91
+
92
+ def package_command(
93
+ directory: str | None = typer.Option(
94
+ None, "-d", "--directory", help="Project directory containing agentcore config"
95
+ ),
96
+ runtime: str | None = typer.Option(None, "-r", "--runtime", help="Package only the specified runtime"),
97
+ ) -> None:
98
+ try:
99
+ result = handle_package(load_package_config(directory, runtime))
100
+ for name in result.skipped:
101
+ typer.echo(f"{ANSI.yellow}Skipping {name}: ContainerImage artifacts not supported{ANSI.reset}")
102
+ if not result.results:
103
+ typer.echo(f"{ANSI.yellow}No agents to package{ANSI.reset}")
104
+ return
105
+ for r in result.results:
106
+ typer.echo(f"{ANSI.green}✓ {r.agent_name}: {r.artifact_path} ({r.size_mb} MB){ANSI.reset}")
107
+ except Exception as exc: # noqa: BLE001
108
+ typer.echo(f"{ANSI.red}Error: {get_error_message(exc)}{ANSI.reset}")
109
+ raise typer.Exit(1) from None
110
+
111
+
112
+ def register(app: typer.Typer) -> None:
113
+ description = COMMAND_DESCRIPTIONS["package"]
114
+ app.command("package", help=description)(package_command)
115
+ app.command("pkg", help=description, hidden=True)(package_command)
116
+
117
+
118
+ __all__ = ["PackageAgentResult", "PackageContext", "PackageResult", "handle_package", "load_package_config", "register"]
@@ -0,0 +1,172 @@
1
+ """`agentcore remove` shell and `remove all` (port of src/cli/commands/remove/command.tsx)."""
2
+
3
+ import json
4
+ from typing import Any
5
+
6
+ import typer
7
+
8
+ from agentcore.cli import interactive
9
+ from agentcore.cli.errors import get_error_message
10
+ from agentcore.cli.run_command import run_cli_command
11
+ from agentcore.cli.tree import RESOURCE_KINDS
12
+ from agentcore.lib import ConfigIO, find_config_root, remove_env_vars, serialize_result
13
+ from agentcore.lib.errors.types import to_error
14
+ from agentcore.lib.result import Err, Ok
15
+ from agentcore.lib.schemas.io.config_io import to_jsonable
16
+ from agentcore.primitives.credential_utils import (
17
+ compute_payment_credential_env_var_names,
18
+ compute_stripe_privy_credential_env_var_names,
19
+ )
20
+
21
+ REMOVE_ALL_NOTE = "Your source code has not been modified. Run `agentcore deploy` to apply changes to AWS."
22
+
23
+
24
+ def _empty_spec(project_name: str) -> dict[str, Any]:
25
+ return {
26
+ "$schema": "https://schema.agentcore.aws.dev/v1/agentcore.json",
27
+ "name": project_name,
28
+ "version": 1,
29
+ "managedBy": "CDK",
30
+ "tags": {"agentcore:created-by": "agentcore-cli", "agentcore:project-name": project_name},
31
+ "runtimes": [],
32
+ "memories": [],
33
+ "knowledgeBases": [],
34
+ "credentials": [],
35
+ "evaluators": [],
36
+ "onlineEvalConfigs": [],
37
+ "agentCoreGateways": [],
38
+ "policyEngines": [],
39
+ "configBundles": [],
40
+ "abTests": [],
41
+ "harnesses": [],
42
+ "datasets": [],
43
+ "payments": [],
44
+ "capacityProviders": [],
45
+ }
46
+
47
+
48
+ def handle_remove_all(dry_run: bool = False, config_io: ConfigIO | None = None) -> Ok[dict[str, Any]] | Err[Exception]:
49
+ try:
50
+ io = config_io or ConfigIO()
51
+ if dry_run:
52
+ current = to_jsonable(io.read_project_spec())
53
+ items: list[str] = []
54
+ for key, label in (
55
+ ("runtimes", "runtime"),
56
+ ("memories", "memory"),
57
+ ("credentials", "credential"),
58
+ ("payments", "payment-manager"),
59
+ ("evaluators", "evaluator"),
60
+ ("agentCoreGateways", "gateway"),
61
+ ("policyEngines", "policy-engine"),
62
+ ("capacityProviders", "capacity-provider"),
63
+ ):
64
+ items.extend(f"{label}: {r['name']}" for r in current.get(key) or [])
65
+ return Ok({"message": f"Would remove: {', '.join(items)}" if items else "Nothing to remove"})
66
+
67
+ project_name = "Project"
68
+ current: dict[str, Any] | None = None
69
+ try:
70
+ current = to_jsonable(io.read_project_spec())
71
+ project_name = current["name"]
72
+ except Exception: # noqa: BLE001 - keep the default name, as upstream
73
+ pass
74
+
75
+ # Clean up payment credential env vars before resetting (best-effort).
76
+ try:
77
+ root = io.get_config_root()
78
+ for payment in (current or {}).get("payments") or []:
79
+ for connector in payment.get("connectors") or []:
80
+ if connector.get("provisionMode") == "QUICK_CREATE":
81
+ continue
82
+ if (connector.get("provider") or "CoinbaseCDP") == "StripePrivy":
83
+ v = compute_stripe_privy_credential_env_var_names(connector["credentialName"])
84
+ remove_env_vars([v.app_id, v.app_secret, v.authorization_private_key, v.authorization_id], root)
85
+ else:
86
+ p = compute_payment_credential_env_var_names(connector["credentialName"])
87
+ remove_env_vars([p.api_key_id, p.api_key_secret, p.wallet_secret], root)
88
+ except Exception: # noqa: BLE001
89
+ pass
90
+
91
+ # aws-targets.json and deployed-state.json are kept so `agentcore deploy` can tear stacks down.
92
+ io.write_project_spec(_empty_spec(project_name))
93
+ return Ok({"message": "All schemas reset to empty state", "note": REMOVE_ALL_NOTE})
94
+ except Exception as exc: # noqa: BLE001
95
+ return Err(to_error(exc))
96
+
97
+
98
+ def _remove_all_cli(dry_run: bool, as_json: bool) -> None:
99
+ def run() -> None:
100
+ result = handle_remove_all(dry_run)
101
+ if not result.success:
102
+ raise result.error
103
+ if as_json:
104
+ typer.echo(json.dumps(serialize_result(result), separators=(",", ":")))
105
+ else:
106
+ typer.echo(result.value.get("message") or "All schemas reset to empty state")
107
+ if result.value.get("note"):
108
+ typer.echo(result.value["note"])
109
+
110
+ run_cli_command(as_json, run)
111
+
112
+
113
+ def _remove_all_interactive() -> None:
114
+ """Port of tui/screens/remove/RemoveAllScreen: preview, confirm, reset."""
115
+ preview = handle_remove_all(dry_run=True)
116
+ if preview.success:
117
+ typer.echo(preview.value["message"])
118
+ if not interactive.confirm("Reset all agentcore schemas to empty state?", default=False):
119
+ typer.echo("Cancelled.")
120
+ return
121
+ result = handle_remove_all()
122
+ if not result.success:
123
+ typer.echo(f"Error: {get_error_message(result.error)}", err=True)
124
+ raise typer.Exit(1)
125
+ typer.echo(result.value["message"])
126
+ typer.echo(result.value["note"])
127
+
128
+
129
+ def install_remove_shell(remove_app: typer.Typer) -> None:
130
+ remove_app.info.no_args_is_help = False
131
+
132
+ @remove_app.callback(invoke_without_command=True)
133
+ def remove_root(ctx: typer.Context) -> None:
134
+ if ctx.invoked_subcommand is not None:
135
+ return
136
+ if not find_config_root():
137
+ typer.echo("No agentcore project found. Run `agentcore create` first.", err=True)
138
+ raise typer.Exit(1)
139
+ interactive.require_tty()
140
+ from agentcore.primitives.registry import all_primitives
141
+
142
+ primitives = {p.kind: p for p in all_primitives()}
143
+ choices = [interactive.Choice(RESOURCE_KINDS.get(k, k).capitalize(), k) for k in primitives]
144
+ choices.append(interactive.Choice("All", "all", "Reset all agentcore schemas to empty state"))
145
+ kind = interactive.select("What would you like to remove?", choices)
146
+ if kind == "all":
147
+ _remove_all_interactive()
148
+ else:
149
+ primitives[kind].remove_interactive()
150
+
151
+ @remove_app.command("all", help="Reset all agentcore schemas to empty state")
152
+ def remove_all(
153
+ yes: bool = typer.Option(False, "-y", "--yes", help="Skip confirmation prompts [non-interactive]"),
154
+ dry_run: bool = typer.Option(
155
+ False, "--dry-run", help="Show what would be reset without actually resetting [non-interactive]"
156
+ ),
157
+ as_json: bool = typer.Option(False, "--json", help="Output as JSON [non-interactive]"),
158
+ ) -> None:
159
+ try:
160
+ if yes or dry_run or as_json:
161
+ _remove_all_cli(dry_run, as_json)
162
+ else:
163
+ interactive.require_tty()
164
+ _remove_all_interactive()
165
+ except typer.Exit:
166
+ raise
167
+ except Exception as exc: # noqa: BLE001
168
+ if as_json:
169
+ typer.echo(json.dumps({"success": False, "error": get_error_message(exc)}, separators=(",", ":")))
170
+ else:
171
+ typer.echo(f"Error: {get_error_message(exc)}", err=True)
172
+ raise typer.Exit(1) from None
@@ -0,0 +1,131 @@
1
+ """`agentcore remove skill` (port of src/cli/commands/remove/skill-command.ts)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from dataclasses import dataclass
7
+ from typing import Any
8
+
9
+ import typer
10
+
11
+ from agentcore.cli.commands.add._commander import (
12
+ optional_value,
13
+ optional_value_command,
14
+ require_options,
15
+ require_project,
16
+ )
17
+ from agentcore.cli.errors import get_error_message
18
+ from agentcore.lib.errors.types import ValidationError
19
+ from agentcore.lib.result import Err, Ok
20
+ from agentcore.lib.schemas.io.config_io import ConfigIO, to_jsonable
21
+ from agentcore.operations.harness.skill_utils import build_git_skill_key, get_skill_key
22
+
23
+
24
+ @dataclass
25
+ class RemoveSkillOptions:
26
+ harness: str
27
+ path: str | None = None
28
+ s3: str | None = None
29
+ git: str | None = None
30
+ git_path: str | None = None
31
+ aws_skills: str | bool | None = None
32
+
33
+
34
+ def handle_remove_skill(
35
+ options: RemoveSkillOptions, config_io: ConfigIO | None = None
36
+ ) -> Ok[dict[str, Any]] | Err[Exception]:
37
+ harness = options.harness
38
+ if sum(1 for s in (options.path, options.s3, options.git, options.aws_skills) if s) != 1:
39
+ return Err(
40
+ ValidationError("Exactly one of --path, --s3, --git, or --aws-skills is required to identify the skill")
41
+ )
42
+
43
+ io = config_io or ConfigIO()
44
+ try:
45
+ spec = to_jsonable(io.read_harness_spec(harness))
46
+ except Exception: # noqa: BLE001
47
+ return Err(ValidationError(f"Harness '{harness}' not found."))
48
+
49
+ if options.path:
50
+ target, source = f"path:{options.path}", options.path
51
+ elif options.s3:
52
+ target, source = f"s3:{options.s3}", options.s3
53
+ elif options.git:
54
+ target = build_git_skill_key(options.git, options.git_path)
55
+ source = f"{options.git} (path: {options.git_path})" if options.git_path else options.git
56
+ else:
57
+ aws_paths = (
58
+ "*"
59
+ if options.aws_skills is True
60
+ else ",".join(sorted(s.strip() for s in str(options.aws_skills).split(",") if s.strip()))
61
+ )
62
+ target = f"awsSkills:{aws_paths}"
63
+ source = "aws-skills (all)" if aws_paths == "*" else f"aws-skills ({aws_paths})"
64
+
65
+ skills = spec.get("skills") or []
66
+ index = next((i for i, s in enumerate(skills) if get_skill_key(s) == target), -1)
67
+ if index == -1:
68
+ hint = " If the skill has a sub-path, specify --git-path." if options.git and not options.git_path else ""
69
+ return Err(ValidationError(f"Skill '{source}' not found in harness '{harness}'.{hint}"))
70
+
71
+ skills.pop(index)
72
+ spec["skills"] = skills
73
+ io.write_harness_spec(harness, spec)
74
+ return Ok({"harnessName": harness, "skillSource": source})
75
+
76
+
77
+ def register_remove_skill(remove_app: typer.Typer) -> None:
78
+ @remove_app.command("skill", help="Remove a skill from a harness", cls=optional_value_command("--aws-skills"))
79
+ def remove_skill(
80
+ harness: str | None = typer.Option(None, "--harness", help="Target harness name"),
81
+ path: str | None = typer.Option(None, "--path", help="Path to an installed skill in the environment"),
82
+ s3: str | None = typer.Option(None, "--s3", help="S3 URI of skill to remove"),
83
+ git: str | None = typer.Option(None, "--git", help="Git URL of skill to remove"),
84
+ git_path: str | None = typer.Option(None, "--git-path", help="Subdirectory within the git repo (for --git)"),
85
+ aws_skills: str | None = typer.Option(
86
+ None,
87
+ "--aws-skills",
88
+ metavar="[PATHS]",
89
+ help="AWS skill paths to remove (comma-separated, or omit for wildcard)",
90
+ ),
91
+ as_json: bool = typer.Option(False, "--json", help="Output as JSON"),
92
+ ) -> None:
93
+ require_options(("--harness <name>", harness))
94
+ require_project()
95
+ try:
96
+ result = handle_remove_skill(
97
+ RemoveSkillOptions(
98
+ harness=harness or "",
99
+ path=path,
100
+ s3=s3,
101
+ git=git,
102
+ git_path=git_path,
103
+ aws_skills=optional_value(aws_skills),
104
+ )
105
+ )
106
+ if not result.success:
107
+ if as_json:
108
+ typer.echo(
109
+ json.dumps({"success": False, "error": get_error_message(result.error)}, separators=(",", ":"))
110
+ )
111
+ else:
112
+ typer.echo(get_error_message(result.error), err=True)
113
+ raise typer.Exit(1)
114
+ if as_json:
115
+ typer.echo(json.dumps({"success": True, **result.value}, separators=(",", ":")))
116
+ else:
117
+ typer.echo(
118
+ f"Removed skill '{result.value['skillSource']}' from harness '{result.value['harnessName']}'."
119
+ )
120
+ typer.echo("Run 'agentcore deploy' to apply changes.")
121
+ except typer.Exit:
122
+ raise
123
+ except Exception as exc: # noqa: BLE001
124
+ if as_json:
125
+ typer.echo(json.dumps({"success": False, "error": get_error_message(exc)}, separators=(",", ":")))
126
+ else:
127
+ typer.echo(get_error_message(exc), err=True)
128
+ raise typer.Exit(1) from None
129
+
130
+
131
+ __all__ = ["RemoveSkillOptions", "handle_remove_skill", "register_remove_skill"]
@@ -0,0 +1,59 @@
1
+ """`agentcore remove tool` (port of src/cli/commands/remove/tool-command.ts)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+
7
+ import typer
8
+
9
+ from agentcore.cli.commands.add._commander import require_options, require_project
10
+ from agentcore.cli.errors import get_error_message
11
+ from agentcore.lib.schemas.io.config_io import ConfigIO, to_jsonable
12
+
13
+
14
+ def _dump(payload: dict) -> str:
15
+ return json.dumps(payload, separators=(",", ":"))
16
+
17
+
18
+ def _fail(error: str, as_json: bool) -> None:
19
+ if as_json:
20
+ typer.echo(_dump({"success": False, "error": error}))
21
+ else:
22
+ typer.echo(error, err=True)
23
+ raise typer.Exit(1)
24
+
25
+
26
+ def register_remove_tool(remove_app: typer.Typer) -> None:
27
+ @remove_app.command("tool", help="Remove a tool from a harness")
28
+ def remove_tool(
29
+ harness: str | None = typer.Option(None, "--harness", help="Target harness name"),
30
+ name: str | None = typer.Option(None, "--name", help="Tool name to remove"),
31
+ as_json: bool = typer.Option(False, "--json", help="Output as JSON"),
32
+ ) -> None:
33
+ require_options(("--harness <name>", harness), ("--name <name>", name))
34
+ require_project()
35
+ try:
36
+ io = ConfigIO()
37
+ try:
38
+ spec = to_jsonable(io.read_harness_spec(harness or ""))
39
+ except Exception: # noqa: BLE001
40
+ _fail(f"Harness '{harness}' not found.", as_json)
41
+ tools = spec.get("tools") or []
42
+ index = next((i for i, t in enumerate(tools) if t.get("name") == name), -1)
43
+ if index == -1:
44
+ _fail(f"Tool '{name}' not found in harness '{harness}'", as_json)
45
+ tools.pop(index)
46
+ spec["tools"] = tools
47
+ io.write_harness_spec(harness or "", spec)
48
+ if as_json:
49
+ typer.echo(_dump({"success": True, "harnessName": harness, "toolName": name}))
50
+ else:
51
+ typer.echo(f"Removed tool '{name}' from harness '{harness}'.")
52
+ typer.echo("Run 'agentcore deploy' to apply changes.")
53
+ except typer.Exit:
54
+ raise
55
+ except Exception as exc: # noqa: BLE001
56
+ _fail(get_error_message(exc), as_json)
57
+
58
+
59
+ __all__ = ["register_remove_tool"]