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,490 @@
1
+ """`agentcore invoke` (port of commands/invoke/command.tsx)."""
2
+
3
+ import itertools
4
+ import json
5
+ import os
6
+ import re
7
+ import sys
8
+ import threading
9
+ from typing import Any
10
+
11
+ import typer
12
+
13
+ from agentcore.cli.commands.invoke.action import (
14
+ InvokeContext,
15
+ handle_harness_invoke_by_arn,
16
+ handle_invoke,
17
+ load_invoke_config,
18
+ )
19
+ from agentcore.cli.commands.invoke.constants import INVOKE_DESCRIPTION
20
+ from agentcore.cli.commands.invoke.guards import require_project
21
+ from agentcore.cli.commands.invoke.interactive import run_invoke_interactive
22
+ from agentcore.cli.commands.invoke.resolve_prompt import PromptSources, resolve_prompt
23
+ from agentcore.cli.commands.invoke.types import InvokeOptions, InvokeResult, result
24
+ from agentcore.cli.commands.invoke.validate import validate_invoke_options
25
+ from agentcore.cli.commands.shared.header_utils import parse_header_flags
26
+ from agentcore.cli.errors import get_error_message
27
+ from agentcore.cli.interactive import require_tty
28
+ from agentcore.lib.errors.types import ValidationError
29
+ from agentcore.lib.result import serialize_result
30
+ from agentcore.primitives.base import ADDITIONAL_PARAMS_JSON_ERROR
31
+
32
+ SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
33
+
34
+ HELP_EPILOG = """\
35
+ Payments [non-interactive]
36
+ --payment-user-id <id> End-user/wallet-owner identity (defaults to --user-id)
37
+ --payment-instrument-id <id> Payment instrument (wallet) ID
38
+ --payment-session-id <id> Payment session ID for budget tracking
39
+ --auto-session Auto-create/reuse a payment session for testing
40
+
41
+ Output [non-interactive]
42
+ --json Output as JSON
43
+ --stream Stream response in real-time
44
+
45
+ MCP & Advanced [non-interactive]
46
+ --tool <name> MCP tool name (use with "call-tool" prompt)
47
+ --input <json> MCP tool arguments as JSON (use with --tool)
48
+ --exec Execute a shell command in the runtime container
49
+ --timeout <seconds> Timeout in seconds for --exec commands
50
+ -H, --header <header> Custom header "Name: Value" (repeatable)
51
+ --bearer-token <token> Bearer token for CUSTOM_JWT auth (bypasses SigV4)
52
+
53
+ Harness [non-interactive]
54
+ --harness <name> Select specific harness to invoke
55
+ --harness-arn <arn> Invoke a harness by ARN (no project required)
56
+ --region <region> AWS region (required with --harness-arn)
57
+ --verbose Print verbose streaming JSON events
58
+
59
+ Model & Runtime Overrides (harness only) [non-interactive]
60
+ --model-id <id> Override model
61
+ --model-provider <provider> bedrock, open_ai, or gemini
62
+ --api-key-arn <arn> API key ARN for open_ai/gemini
63
+ --tools <tools> Override tools (comma-separated)
64
+ --allowed-tools <tools> Override allowed tools (comma-separated)
65
+ --skills <paths> Skills (comma-separated paths)
66
+ --system-prompt <text> Override system prompt
67
+ --actor-id <id> Override memory actor ID
68
+ --max-iterations <n> Override max iterations
69
+ --max-tokens <n> Override max tokens
70
+ --harness-timeout <seconds> Override timeout seconds
71
+ """
72
+
73
+
74
+ class _Spinner:
75
+ """stderr spinner (upstream writes it unconditionally, like here)."""
76
+
77
+ def __init__(self, message: str):
78
+ self._message = message
79
+ self._stop = threading.Event()
80
+ sys.stderr.write(f"{SPINNER_FRAMES[0]} {message}")
81
+ sys.stderr.flush()
82
+ self._thread = threading.Thread(target=self._run, daemon=True)
83
+ self._thread.start()
84
+
85
+ def _run(self) -> None:
86
+ for frame in itertools.cycle(SPINNER_FRAMES[1:] + SPINNER_FRAMES[:1]):
87
+ if self._stop.wait(0.08):
88
+ return
89
+ sys.stderr.write(f"\r{frame} {self._message}")
90
+ sys.stderr.flush()
91
+
92
+ def stop(self) -> None:
93
+ self._stop.set()
94
+ self._thread.join()
95
+ sys.stderr.write("\r\x1b[K")
96
+ sys.stderr.flush()
97
+
98
+
99
+ def _handle_invoke_cli(options: InvokeOptions, preloaded: InvokeContext | None = None) -> InvokeResult:
100
+ validation = validate_invoke_options(options)
101
+ if not validation.valid:
102
+ return result(False, error=ValidationError(validation.error or "Validation failed"))
103
+
104
+ spinner: _Spinner | None = None
105
+ try:
106
+ if options.harness_arn:
107
+ region = options.region or os.environ.get("AWS_REGION") or os.environ.get("AWS_DEFAULT_REGION")
108
+ if not region:
109
+ msg = "--region is required with --harness-arn (or set AWS_REGION)"
110
+ if options.json:
111
+ typer.echo(json.dumps({"success": False, "error": msg}, separators=(",", ":")))
112
+ else:
113
+ typer.echo(msg, err=True)
114
+ raise typer.Exit(1)
115
+ return handle_harness_invoke_by_arn(options.harness_arn, region, options)
116
+
117
+ context = preloaded or load_invoke_config()
118
+ project = context.project
119
+ is_harness = options.harness_name is not None or (
120
+ len(project.harnesses or []) > 0 and len(project.runtimes or []) == 0
121
+ )
122
+ if not options.stream and not options.json and not options.exec and not is_harness:
123
+ spinner = _Spinner("Invoking agent...")
124
+ out = handle_invoke(context, options)
125
+ if spinner:
126
+ spinner.stop()
127
+ spinner = None
128
+ return out
129
+ finally:
130
+ if spinner:
131
+ spinner.stop()
132
+
133
+
134
+ def redact_sensitive_text(value: str) -> str:
135
+ # A JWT always begins with `eyJ` (base64url of `{"`); matching by shape never touches prose.
136
+ value = re.sub(r"eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+", "[REDACTED]", value)
137
+ value = re.sub(
138
+ r"""(client[_-]?secret["']?\s*[:=]\s*["']?)([^"',\s}]+)""", r"\1[REDACTED]", value, flags=re.IGNORECASE
139
+ )
140
+ value = re.sub(
141
+ r"""((?:access[_-]?)?token["']?\s*[:=]\s*["']?)([^"',\s}]+)""", r"\1[REDACTED]", value, flags=re.IGNORECASE
142
+ )
143
+ return value
144
+
145
+
146
+ def _print_invoke_result(res: InvokeResult, as_json: bool | None, stream: bool | None) -> None:
147
+ if as_json:
148
+ serialized = serialize_result(res)
149
+ if isinstance(serialized.get("response"), str):
150
+ serialized["response"] = redact_sensitive_text(serialized["response"])
151
+ if isinstance(serialized.get("error"), str):
152
+ serialized["error"] = redact_sensitive_text(serialized["error"])
153
+ typer.echo(
154
+ json.dumps(
155
+ {k: v for k, v in serialized.items() if v is not None}, separators=(",", ":"), ensure_ascii=False
156
+ )
157
+ )
158
+ return
159
+
160
+ def footer() -> None:
161
+ if res.get("sessionId"):
162
+ typer.echo(f"\nSession: {res['sessionId']}", err=True)
163
+ typer.echo(f"To resume: agentcore invoke --session-id {res['sessionId']}", err=True)
164
+ if res.get("logFilePath"):
165
+ typer.echo(f"Log: {res['logFilePath']}", err=True)
166
+
167
+ if stream:
168
+ footer()
169
+ return
170
+ if res.get("success") and res.get("response"):
171
+ typer.echo(redact_sensitive_text(res["response"]))
172
+ elif not res.get("success") and res.get("error") is not None:
173
+ typer.echo(redact_sensitive_text(str(res["error"])), err=True)
174
+ footer()
175
+
176
+
177
+ def _stdin_piped() -> bool:
178
+ try:
179
+ return not sys.stdin.isatty()
180
+ except (AttributeError, ValueError):
181
+ return True
182
+
183
+
184
+ def _match_runtime_name(name: str | None) -> str | None:
185
+ """Accept `my-agent` for the runtime `my_agent` (`agentcore init` turns hyphens into underscores)."""
186
+ if not name or "-" not in name:
187
+ return name
188
+ try:
189
+ from agentcore.lib.schemas.io.config_io import ConfigIO
190
+
191
+ runtimes = {r.name for r in ConfigIO().read_project_spec().runtimes or []}
192
+ except Exception: # noqa: BLE001 - no project yet; let the normal resolution report it
193
+ return name
194
+ candidate = name.replace("-", "_")
195
+ return candidate if name not in runtimes and candidate in runtimes else name
196
+
197
+
198
+ def invoke_command(
199
+ positional_prompt: str | None = typer.Argument(
200
+ None,
201
+ metavar="[PROMPT]",
202
+ help="Prompt to send to the agent. Also accepts piped stdin when no prompt is provided and stdin is not a "
203
+ "TTY [non-interactive]",
204
+ show_default=False,
205
+ ),
206
+ prompt: str | None = typer.Option(None, "--prompt", help="Prompt to send to the agent [non-interactive]"),
207
+ prompt_file: str | None = typer.Option(
208
+ None,
209
+ "--prompt-file",
210
+ help="Read the prompt from a file (for long or structured payloads that exceed shell arg limits) "
211
+ "[non-interactive]",
212
+ ),
213
+ runtime: str | None = typer.Option(
214
+ None, "--runtime", "--agent-name", help="Select specific runtime [non-interactive]"
215
+ ),
216
+ gateway: str | None = typer.Option(None, "--gateway", help="Invoke through a gateway [non-interactive]"),
217
+ gateway_target_name: str | None = typer.Option(
218
+ None, "--gateway-target-name", help="HTTP runtime target on the gateway [non-interactive]"
219
+ ),
220
+ target: str | None = typer.Option(None, "--target", help="Select deployment target [non-interactive]"),
221
+ session_id: str | None = typer.Option(
222
+ None, "--session-id", help="Use specific session ID for conversation continuity"
223
+ ),
224
+ user_id: str | None = typer.Option(
225
+ None, "--user-id", help='User ID for runtime invocation (default: "default-user")'
226
+ ),
227
+ as_json: bool = typer.Option(False, "--json", help="Output as JSON [non-interactive]", hidden=True),
228
+ stream: bool = typer.Option(
229
+ False, "--stream", help="Stream response in real-time (TUI streams by default) [non-interactive]", hidden=True
230
+ ),
231
+ tool: str | None = typer.Option(
232
+ None, "--tool", help='MCP tool name (use with "call-tool" prompt) [non-interactive]', hidden=True
233
+ ),
234
+ input_: str | None = typer.Option(
235
+ None,
236
+ "--input",
237
+ help="Prompt to send to the agent; with --tool, MCP tool arguments as JSON [non-interactive]",
238
+ ),
239
+ exec_: bool = typer.Option(
240
+ False,
241
+ "--exec",
242
+ help="Execute a shell command in the runtime container (use `agentcore exec` instead) [non-interactive]",
243
+ hidden=True,
244
+ ),
245
+ timeout: int | None = typer.Option(
246
+ None, "--timeout", help="Timeout in seconds for --exec commands [non-interactive]", hidden=True
247
+ ),
248
+ header: list[str] = typer.Option(
249
+ [],
250
+ "-H",
251
+ "--header",
252
+ help='Custom header to forward to the agent (format: "Name: Value", repeatable) [non-interactive]',
253
+ hidden=True,
254
+ ),
255
+ bearer_token: str | None = typer.Option(
256
+ None, "--bearer-token", help="Bearer token for CUSTOM_JWT auth (bypasses SigV4) [non-interactive]", hidden=True
257
+ ),
258
+ payment_instrument_id: str | None = typer.Option(
259
+ None, "--payment-instrument-id", help="Payment instrument ID for x402 payments [non-interactive]", hidden=True
260
+ ),
261
+ payment_session_id: str | None = typer.Option(
262
+ None, "--payment-session-id", help="Payment session ID for budget tracking [non-interactive]", hidden=True
263
+ ),
264
+ auto_session: bool = typer.Option(
265
+ False, "--auto-session", help="Auto-create/reuse a payment session for testing [non-interactive]", hidden=True
266
+ ),
267
+ payment_user_id: str | None = typer.Option(
268
+ None,
269
+ "--payment-user-id",
270
+ help="End-user identity (wallet owner) for payments; scopes the instrument/session/budget. Defaults to "
271
+ "--user-id when omitted.",
272
+ hidden=True,
273
+ ),
274
+ harness: str | None = typer.Option(
275
+ None, "--harness", help="Select specific harness to invoke [non-interactive]", hidden=True
276
+ ),
277
+ harness_arn: str | None = typer.Option(
278
+ None, "--harness-arn", help="Invoke a harness by ARN (no project required) [non-interactive]", hidden=True
279
+ ),
280
+ region: str | None = typer.Option(
281
+ None, "--region", help="AWS region (required with --harness-arn when no project) [non-interactive]", hidden=True
282
+ ),
283
+ verbose: bool = typer.Option(
284
+ False, "--verbose", help="Print verbose streaming JSON events (harness only) [non-interactive]", hidden=True
285
+ ),
286
+ model_id: str | None = typer.Option(
287
+ None, "--model-id", help="Override model for this invocation (harness only) [non-interactive]", hidden=True
288
+ ),
289
+ model_provider: str | None = typer.Option(
290
+ None,
291
+ "--model-provider",
292
+ help="Override model provider: bedrock, open_ai, gemini, lite_llm (harness only) [non-interactive]",
293
+ hidden=True,
294
+ ),
295
+ api_key_arn: str | None = typer.Option(
296
+ None,
297
+ "--api-key-arn",
298
+ help="Override API key ARN for open_ai/gemini (harness only) [non-interactive]",
299
+ hidden=True,
300
+ ),
301
+ api_base: str | None = typer.Option(
302
+ None, "--api-base", help="Override LiteLLM API base URL (harness only, lite_llm) [non-interactive]"
303
+ ),
304
+ additional_params: str | None = typer.Option(
305
+ None,
306
+ "--additional-params",
307
+ help="Override LiteLLM additional params as a JSON object (harness only, lite_llm) [non-interactive]",
308
+ ),
309
+ tools: str | None = typer.Option(
310
+ None, "--tools", help="Override tools, comma-separated (harness only) [non-interactive]", hidden=True
311
+ ),
312
+ max_iterations: int | None = typer.Option(
313
+ None, "--max-iterations", help="Override max iterations (harness only) [non-interactive]", hidden=True
314
+ ),
315
+ max_tokens: int | None = typer.Option(
316
+ None, "--max-tokens", help="Override max tokens (harness only) [non-interactive]", hidden=True
317
+ ),
318
+ harness_timeout: int | None = typer.Option(
319
+ None, "--harness-timeout", help="Override timeout seconds (harness only) [non-interactive]", hidden=True
320
+ ),
321
+ skills: str | None = typer.Option(
322
+ None,
323
+ "--skills",
324
+ help="Skills override, comma-separated (path, s3://uri, or https://git-url). Git auth not supported here — "
325
+ "configure via agentcore add skill [non-interactive]",
326
+ hidden=True,
327
+ ),
328
+ system_prompt: str | None = typer.Option(
329
+ None, "--system-prompt", help="Override system prompt (harness only) [non-interactive]", hidden=True
330
+ ),
331
+ allowed_tools: str | None = typer.Option(
332
+ None,
333
+ "--allowed-tools",
334
+ help="Override allowed tools, comma-separated (harness only) [non-interactive]",
335
+ hidden=True,
336
+ ),
337
+ actor_id: str | None = typer.Option(
338
+ None, "--actor-id", help="Override memory actor ID (harness only) [non-interactive]", hidden=True
339
+ ),
340
+ ) -> None:
341
+ try:
342
+ if not harness_arn:
343
+ require_project()
344
+
345
+ # Load config once (protocol resolution / reuse in the action); failures resurface later.
346
+ invoke_context: InvokeContext | None = None
347
+ try:
348
+ invoke_context = load_invoke_config()
349
+ except Exception: # noqa: BLE001, S110
350
+ pass
351
+
352
+ # Python-port convenience: `--input` is the prompt unless it carries MCP tool arguments.
353
+ if input_ is not None and not tool and prompt is None:
354
+ prompt, input_ = input_, None
355
+ runtime = _match_runtime_name(runtime)
356
+
357
+ resolved = resolve_prompt(
358
+ PromptSources(flag=prompt, positional=positional_prompt, file=prompt_file, stdin_piped=_stdin_piped())
359
+ )
360
+
361
+ # Payment flags alone do not force CLI mode: with a prompt they run one-shot, without one they
362
+ # carry into the interactive flow.
363
+ cli_mode = (
364
+ not resolved.success
365
+ or resolved.prompt is not None
366
+ or as_json
367
+ or target
368
+ or gateway_target_name
369
+ or stream
370
+ or runtime
371
+ or gateway
372
+ or tool
373
+ or exec_
374
+ or bearer_token
375
+ or harness
376
+ or harness_arn
377
+ or verbose
378
+ )
379
+ if cli_mode:
380
+ res = _run_cli(
381
+ resolved,
382
+ header=header,
383
+ additional_params=additional_params,
384
+ as_json=as_json,
385
+ invoke_context=invoke_context,
386
+ options=InvokeOptions(
387
+ agent_name=runtime,
388
+ gateway=gateway,
389
+ gateway_target=gateway_target_name,
390
+ target_name=target if target is not None else "default",
391
+ session_id=session_id,
392
+ user_id=user_id,
393
+ json=as_json or None,
394
+ stream=stream or None,
395
+ tool=tool,
396
+ input=input_,
397
+ exec=exec_ or None,
398
+ timeout=timeout,
399
+ bearer_token=bearer_token,
400
+ harness_name=harness,
401
+ harness_arn=harness_arn,
402
+ region=region,
403
+ verbose=verbose or None,
404
+ model_id=model_id,
405
+ model_provider=model_provider,
406
+ api_key_arn=api_key_arn,
407
+ api_base=api_base,
408
+ tools=tools,
409
+ max_iterations=max_iterations,
410
+ max_tokens=max_tokens,
411
+ harness_timeout=harness_timeout,
412
+ skills=skills,
413
+ system_prompt=system_prompt,
414
+ allowed_tools=allowed_tools,
415
+ actor_id=actor_id,
416
+ payment_instrument_id=payment_instrument_id,
417
+ payment_session_id=payment_session_id,
418
+ auto_session=auto_session or None,
419
+ payment_user_id=payment_user_id,
420
+ ),
421
+ )
422
+ _print_invoke_result(res, as_json, stream)
423
+ exit_code = res.get("exitCode")
424
+ raise typer.Exit(exit_code if exit_code is not None else (0 if res.get("success") else 1))
425
+
426
+ # Interactive mode. Validate flag combinations before the TTY check.
427
+ validation = validate_invoke_options(
428
+ InvokeOptions(auto_session=auto_session or None, payment_session_id=payment_session_id)
429
+ )
430
+ if not validation.valid:
431
+ typer.echo(validation.error, err=True)
432
+ raise typer.Exit(1)
433
+
434
+ require_tty()
435
+ headers = parse_header_flags(header) if header else None
436
+ run_invoke_interactive(
437
+ session_id=session_id,
438
+ user_id=user_id,
439
+ headers=headers,
440
+ bearer_token=bearer_token,
441
+ payment_instrument_id=payment_instrument_id,
442
+ payment_session_id=payment_session_id,
443
+ auto_session=auto_session,
444
+ payment_user_id=payment_user_id if payment_user_id is not None else user_id,
445
+ )
446
+ except typer.Exit:
447
+ raise
448
+ except Exception as exc: # noqa: BLE001 - top-level command boundary, as upstream
449
+ msg = redact_sensitive_text(get_error_message(exc))
450
+ if as_json:
451
+ typer.echo(json.dumps({"success": False, "error": msg}, separators=(",", ":"), ensure_ascii=False))
452
+ else:
453
+ typer.echo(f"Error: {msg}")
454
+ raise typer.Exit(1) from None
455
+
456
+
457
+ def _run_cli(
458
+ resolved: Any,
459
+ *,
460
+ header: list[str],
461
+ additional_params: str | None,
462
+ as_json: bool,
463
+ invoke_context: InvokeContext | None,
464
+ options: InvokeOptions,
465
+ ) -> InvokeResult:
466
+ if not resolved.success:
467
+ return result(False, error=ValidationError(resolved.error or "Prompt resolution failed"))
468
+
469
+ headers = parse_header_flags(header) if header else None
470
+
471
+ parsed_params: dict[str, Any] | None = None
472
+ if additional_params:
473
+ try:
474
+ parsed_params = json.loads(additional_params)
475
+ except ValueError:
476
+ if as_json:
477
+ typer.echo(json.dumps({"success": False, "error": ADDITIONAL_PARAMS_JSON_ERROR}, separators=(",", ":")))
478
+ else:
479
+ typer.echo(ADDITIONAL_PARAMS_JSON_ERROR, err=True)
480
+ raise typer.Exit(1) from None
481
+
482
+ return _handle_invoke_cli(
483
+ options.with_(prompt=resolved.prompt, headers=headers, additional_params=parsed_params), invoke_context
484
+ )
485
+
486
+
487
+ def register_invoke(app: typer.Typer) -> None:
488
+ settings = {"help": INVOKE_DESCRIPTION, "epilog": HELP_EPILOG}
489
+ app.command("invoke", **settings)(invoke_command)
490
+ app.command("i", hidden=True, **settings)(invoke_command)
@@ -0,0 +1,40 @@
1
+ """Constants from upstream ``src/cli/constants.ts`` used by `invoke` and `exec`.
2
+
3
+ Duplicated here (rather than imported from ``agentcore.cli.constants``, owned by another area) so
4
+ these commands don't depend on that module's evolution.
5
+ """
6
+
7
+ import os
8
+ import sys
9
+ from typing import Final
10
+
11
+ INVOKE_DESCRIPTION: Final = "Invoke a deployed agent endpoint."
12
+ EXEC_DESCRIPTION: Final = "Open an interactive shell or run a one-shot command in a deployed agent container."
13
+
14
+
15
+ def _styling_enabled() -> bool:
16
+ if os.environ.get("FORCE_COLOR"):
17
+ return True
18
+ return not os.environ.get("NO_COLOR") and sys.stdout.isatty() and sys.stderr.isatty()
19
+
20
+
21
+ _STYLING = _styling_enabled()
22
+
23
+
24
+ def _style(code: str) -> str:
25
+ return code if _STYLING else ""
26
+
27
+
28
+ class ANSI:
29
+ """ANSI escape codes for console output; colors are disabled when piped or NO_COLOR is set."""
30
+
31
+ red = _style("\x1b[31m")
32
+ green = _style("\x1b[32m")
33
+ yellow = _style("\x1b[33m")
34
+ cyan = _style("\x1b[36m")
35
+ dim = _style("\x1b[2m")
36
+ reset = _style("\x1b[0m")
37
+ clear_line = "\x1b[K"
38
+ enter_alt_screen = "\x1b[?1049h\x1b[H"
39
+ exit_alt_screen = "\x1b[?1049l"
40
+ show_cursor = "\x1b[?25h"
@@ -0,0 +1,23 @@
1
+ """Plain-text port of ``tui/guards/project.tsx`` ``requireProject`` (Ink's FatalError renders to stdout)."""
2
+
3
+ import os
4
+
5
+ import typer
6
+
7
+ from agentcore.lib.schemas.io.path_resolver import find_config_root, get_working_directory
8
+
9
+
10
+ def require_project() -> None:
11
+ cwd = get_working_directory()
12
+ config_root = find_config_root(cwd)
13
+ if not config_root:
14
+ typer.echo("No agentcore project found.")
15
+ typer.echo("Run agentcore create to fix this.")
16
+ raise typer.Exit(1)
17
+ project_root = os.path.realpath(os.path.dirname(config_root))
18
+ resolved_cwd = os.path.realpath(cwd)
19
+ if resolved_cwd != project_root:
20
+ typer.echo("Please run this command from your project root directory.")
21
+ typer.echo(f"You are in: {resolved_cwd}\nProject root: {project_root}")
22
+ typer.echo(f"Run cd {project_root} to fix this.")
23
+ raise typer.Exit(1)