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,59 @@
1
+ """Hydrate KB data-source ids after deploy (port of ``operations/knowledge-base/hydrate-data-sources.ts``)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import hashlib
6
+ import re
7
+ from collections.abc import Mapping, Sequence
8
+ from typing import Any
9
+
10
+ from agentcore.aws import bedrock_agent
11
+
12
+ _DS_SUFFIX = re.compile(r"_ds_([0-9a-f]+)$")
13
+
14
+
15
+ def uri_hash_prefix(uri: str) -> str:
16
+ """First 8 hex chars of SHA-256(uri) — must stay byte-equivalent to the L3's DS naming."""
17
+ return hashlib.sha256(uri.encode("utf-8")).hexdigest()[:8]
18
+
19
+
20
+ def _get(obj: Any, camel: str, snake: str) -> Any:
21
+ return obj.get(camel) if isinstance(obj, Mapping) else getattr(obj, snake, None)
22
+
23
+
24
+ def hydrate_knowledge_base_data_sources(
25
+ *, knowledge_bases: Mapping[str, dict[str, Any]], knowledge_base_specs: Sequence[Any], region: str
26
+ ) -> None:
27
+ """Fill ``dataSources`` (in place) for KB records whose CFN outputs carried none.
28
+
29
+ Falls back to ``ListDataSources`` and pairs each deployed DS with its local spec by the URI-hash
30
+ suffix the L3 puts in every data source name.
31
+ """
32
+ specs_by_name = {_get(s, "name", "name"): s for s in knowledge_base_specs}
33
+ for name, deployed in knowledge_bases.items():
34
+ if deployed.get("dataSources"):
35
+ continue
36
+ spec = specs_by_name.get(name)
37
+ if spec is None:
38
+ continue
39
+ summaries = bedrock_agent.list_data_sources(region=region, knowledge_base_id=deployed["knowledgeBaseId"])
40
+ id_by_hash: dict[str, str] = {}
41
+ for summary in summaries:
42
+ ds_id, ds_name = summary.get("dataSourceId"), summary.get("name")
43
+ if not ds_id or not ds_name:
44
+ continue
45
+ match = _DS_SUFFIX.search(ds_name)
46
+ if match:
47
+ id_by_hash[match.group(1)] = ds_id
48
+ hydrated = []
49
+ for local_ds in _get(spec, "dataSources", "data_sources") or []:
50
+ if _get(local_ds, "type", "type") != "S3":
51
+ continue
52
+ uri = _get(local_ds, "uri", "uri")
53
+ ds_id = id_by_hash.get(uri_hash_prefix(uri))
54
+ if ds_id:
55
+ hydrated.append({"dataSourceId": ds_id, "uri": uri})
56
+ deployed["dataSources"] = hydrated
57
+
58
+
59
+ __all__ = ["hydrate_knowledge_base_data_sources", "uri_hash_prefix"]
@@ -0,0 +1,4 @@
1
+ """MCP operations (port of operations/mcp). Upstream removed the facades: use the primitives directly.
2
+
3
+ ``agentcore.primitives.gateway`` and ``agentcore.primitives.gateway_target`` own gateway / target creation.
4
+ """
@@ -0,0 +1,13 @@
1
+ """Memory record operations (port of src/cli/operations/memory)."""
2
+
3
+ from agentcore.operations.memory._records import MemoryRecordEntry
4
+ from agentcore.operations.memory.list_memory_records import ListMemoryRecordsResult, list_memory_records
5
+ from agentcore.operations.memory.retrieve_memory_records import RetrieveMemoryRecordsResult, retrieve_memory_records
6
+
7
+ __all__ = [
8
+ "ListMemoryRecordsResult",
9
+ "MemoryRecordEntry",
10
+ "RetrieveMemoryRecordsResult",
11
+ "list_memory_records",
12
+ "retrieve_memory_records",
13
+ ]
@@ -0,0 +1,72 @@
1
+ """Shared helpers for the memory record operations."""
2
+
3
+ from datetime import UTC, datetime
4
+ from typing import Any, TypedDict
5
+
6
+ from agentcore.aws._aws_errors import aws_error_name
7
+ from agentcore.aws.agentcore import _create_agentcore_client
8
+ from agentcore.lib.errors.types import ResourceNotFoundError, ValidationError, to_error
9
+ from agentcore.lib.result import Err
10
+
11
+
12
+ class MemoryRecordEntry(TypedDict):
13
+ memoryRecordId: str
14
+ content: str | None
15
+ memoryStrategyId: str
16
+ namespaces: list[str]
17
+ createdAt: str
18
+ score: float | None
19
+ metadata: dict[str, str]
20
+
21
+
22
+ def create_client(region: str) -> Any:
23
+ return _create_agentcore_client(region)
24
+
25
+
26
+ def check_namespace(namespace: str | None, namespace_path: str | None) -> Err[Exception] | None:
27
+ """Exactly one of namespace / namespace_path; empty strings count as not provided."""
28
+ if namespace and namespace_path:
29
+ return Err(ValidationError("'namespace' and 'namespacePath' are mutually exclusive."))
30
+ if not namespace and not namespace_path:
31
+ return Err(ValidationError("Either 'namespace' or 'namespacePath' must be provided."))
32
+ return None
33
+
34
+
35
+ def namespace_params(namespace: str | None, namespace_path: str | None) -> dict[str, str]:
36
+ return {"namespace": namespace} if namespace else {"namespacePath": namespace_path or ""}
37
+
38
+
39
+ def _iso(value: Any) -> str:
40
+ """Like JS Date.toISOString(): UTC with millisecond precision and a Z suffix."""
41
+ if value is None:
42
+ return "unknown"
43
+ if isinstance(value, datetime):
44
+ if value.tzinfo is not None:
45
+ value = value.astimezone(UTC)
46
+ return value.strftime("%Y-%m-%dT%H:%M:%S.") + f"{value.microsecond // 1000:03d}Z"
47
+ return str(value)
48
+
49
+
50
+ def to_entries(summaries: list[dict[str, Any]] | None) -> list[MemoryRecordEntry]:
51
+ return [
52
+ {
53
+ "memoryRecordId": r.get("memoryRecordId") or "unknown",
54
+ "content": (r.get("content") or {}).get("text"),
55
+ "memoryStrategyId": r.get("memoryStrategyId") or "unknown",
56
+ "namespaces": list(r.get("namespaces") or []),
57
+ "createdAt": _iso(r.get("createdAt")),
58
+ "score": r.get("score"),
59
+ "metadata": {k: (v or {}).get("stringValue") or "" for k, v in (r.get("metadata") or {}).items()},
60
+ }
61
+ for r in summaries or []
62
+ ]
63
+
64
+
65
+ def map_error(exc: BaseException, memory_id: str) -> Err[Exception]:
66
+ if aws_error_name(exc) == "ResourceNotFoundException":
67
+ return Err(ResourceNotFoundError(f"Memory '{memory_id}' not found. It may not have been deployed yet."))
68
+ return Err(to_error(exc)) # type: ignore[arg-type]
69
+
70
+
71
+ def drop_none(params: dict[str, Any]) -> dict[str, Any]:
72
+ return {k: v for k, v in params.items() if v is not None}
@@ -0,0 +1,45 @@
1
+ """List memory records of a deployed memory (port of list-memory-records.ts)."""
2
+
3
+ from typing import Any
4
+
5
+ from agentcore.lib.result import Err, Ok
6
+ from agentcore.operations.memory import _records
7
+ from agentcore.operations.memory._records import MemoryRecordEntry
8
+
9
+ ListMemoryRecordsResult = Ok[dict[str, Any]] | Err[Exception]
10
+
11
+
12
+ def list_memory_records(
13
+ *,
14
+ region: str,
15
+ memory_id: str,
16
+ namespace: str | None = None,
17
+ namespace_path: str | None = None,
18
+ memory_strategy_id: str | None = None,
19
+ max_results: int = 50,
20
+ next_token: str | None = None,
21
+ ) -> ListMemoryRecordsResult:
22
+ """Exactly one of ``namespace`` (exact) or ``namespace_path`` (path prefix) must be given.
23
+
24
+ Returns ``Ok({"records": [...], "nextToken": ...})``.
25
+ """
26
+ invalid = _records.check_namespace(namespace, namespace_path)
27
+ if invalid is not None:
28
+ return invalid
29
+ client = _records.create_client(region)
30
+ try:
31
+ response = client.list_memory_records(
32
+ **_records.drop_none(
33
+ {
34
+ "memoryId": memory_id,
35
+ **_records.namespace_params(namespace, namespace_path),
36
+ "memoryStrategyId": memory_strategy_id,
37
+ "maxResults": max_results,
38
+ "nextToken": next_token,
39
+ }
40
+ )
41
+ )
42
+ records: list[MemoryRecordEntry] = _records.to_entries(response.get("memoryRecordSummaries"))
43
+ return Ok({"records": records, "nextToken": response.get("nextToken")})
44
+ except Exception as exc: # noqa: BLE001
45
+ return _records.map_error(exc, memory_id)
@@ -0,0 +1,52 @@
1
+ """Semantic search over memory records (port of retrieve-memory-records.ts)."""
2
+
3
+ from typing import Any
4
+
5
+ from agentcore.lib.result import Err, Ok
6
+ from agentcore.operations.memory import _records
7
+
8
+ RetrieveMemoryRecordsResult = Ok[dict[str, Any]] | Err[Exception]
9
+
10
+
11
+ def retrieve_memory_records(
12
+ *,
13
+ region: str,
14
+ memory_id: str,
15
+ search_query: str,
16
+ namespace: str | None = None,
17
+ namespace_path: str | None = None,
18
+ memory_strategy_id: str | None = None,
19
+ top_k: int | None = None,
20
+ max_results: int | None = None,
21
+ next_token: str | None = None,
22
+ ) -> RetrieveMemoryRecordsResult:
23
+ """Exactly one of ``namespace`` or ``namespace_path`` must be given.
24
+
25
+ Returns ``Ok({"records": [...], "nextToken": ...})``.
26
+ """
27
+ invalid = _records.check_namespace(namespace, namespace_path)
28
+ if invalid is not None:
29
+ return invalid
30
+ client = _records.create_client(region)
31
+ try:
32
+ response = client.retrieve_memory_records(
33
+ **_records.drop_none(
34
+ {
35
+ "memoryId": memory_id,
36
+ **_records.namespace_params(namespace, namespace_path),
37
+ "searchCriteria": _records.drop_none(
38
+ {"searchQuery": search_query, "memoryStrategyId": memory_strategy_id, "topK": top_k}
39
+ ),
40
+ "maxResults": max_results,
41
+ "nextToken": next_token,
42
+ }
43
+ )
44
+ )
45
+ return Ok(
46
+ {
47
+ "records": _records.to_entries(response.get("memoryRecordSummaries")),
48
+ "nextToken": response.get("nextToken"),
49
+ }
50
+ )
51
+ except Exception as exc: # noqa: BLE001
52
+ return _records.map_error(exc, memory_id)
@@ -0,0 +1,15 @@
1
+ from agentcore.operations.node.setup import (
2
+ NodeSetupResult,
3
+ NodeSetupStatus,
4
+ check_npm_available,
5
+ install_node_dependencies,
6
+ setup_node_project,
7
+ )
8
+
9
+ __all__ = [
10
+ "NodeSetupResult",
11
+ "NodeSetupStatus",
12
+ "check_npm_available",
13
+ "install_node_dependencies",
14
+ "setup_node_project",
15
+ ]
@@ -0,0 +1,36 @@
1
+ """Node project setup (port of src/cli/operations/node/setup.ts)."""
2
+
3
+ import os
4
+ from dataclasses import dataclass
5
+ from typing import Literal
6
+
7
+ from agentcore.lib import check_subprocess, run_subprocess_capture
8
+
9
+ NodeSetupStatus = Literal["success", "npm_not_found", "install_failed"]
10
+
11
+
12
+ @dataclass
13
+ class NodeSetupResult:
14
+ status: NodeSetupStatus
15
+ error: str | None = None
16
+
17
+
18
+ def check_npm_available() -> bool:
19
+ return check_subprocess("npm", ["--version"])
20
+
21
+
22
+ def install_node_dependencies(project_dir: str) -> NodeSetupResult:
23
+ """`npm install` (not `npm ci`): fresh scaffolds don't ship a lockfile."""
24
+ result = run_subprocess_capture("npm", ["install"], cwd=project_dir)
25
+ if result.code == 0:
26
+ return NodeSetupResult("success")
27
+ return NodeSetupResult("install_failed", result.stderr or result.stdout)
28
+
29
+
30
+ def setup_node_project(project_dir: str) -> NodeSetupResult:
31
+ """Run `npm install`. A no-op when AGENTCORE_SKIP_INSTALL is set."""
32
+ if os.environ.get("AGENTCORE_SKIP_INSTALL"):
33
+ return NodeSetupResult("success")
34
+ if not check_npm_available():
35
+ return NodeSetupResult("npm_not_found", "'npm' not found. Install Node.js from https://nodejs.org/")
36
+ return install_node_dependencies(project_dir)
@@ -0,0 +1,17 @@
1
+ from agentcore.operations.python.setup import (
2
+ PythonSetupResult,
3
+ PythonSetupStatus,
4
+ check_uv_available,
5
+ create_venv,
6
+ install_dependencies,
7
+ setup_python_project,
8
+ )
9
+
10
+ __all__ = [
11
+ "PythonSetupResult",
12
+ "PythonSetupStatus",
13
+ "check_uv_available",
14
+ "create_venv",
15
+ "install_dependencies",
16
+ "setup_python_project",
17
+ ]
@@ -0,0 +1,47 @@
1
+ """Python project setup with uv (port of src/cli/operations/python/setup.ts)."""
2
+
3
+ import os
4
+ from dataclasses import dataclass
5
+ from typing import Literal
6
+
7
+ from agentcore.lib import check_subprocess, run_subprocess_capture
8
+
9
+ PythonSetupStatus = Literal["success", "uv_not_found", "venv_failed", "install_failed"]
10
+
11
+
12
+ @dataclass
13
+ class PythonSetupResult:
14
+ status: PythonSetupStatus
15
+ error: str | None = None
16
+
17
+
18
+ def check_uv_available() -> bool:
19
+ return check_subprocess("uv", ["--version"])
20
+
21
+
22
+ def create_venv(project_dir: str, venv_name: str = ".venv") -> PythonSetupResult:
23
+ result = run_subprocess_capture("uv", ["venv", venv_name], cwd=project_dir)
24
+ if result.code == 0:
25
+ return PythonSetupResult("success")
26
+ return PythonSetupResult("venv_failed", result.stderr or result.stdout)
27
+
28
+
29
+ def install_dependencies(project_dir: str) -> PythonSetupResult:
30
+ result = run_subprocess_capture("uv", ["sync"], cwd=project_dir)
31
+ if result.code == 0:
32
+ return PythonSetupResult("success")
33
+ return PythonSetupResult("install_failed", result.stderr or result.stdout)
34
+
35
+
36
+ def setup_python_project(project_dir: str, venv_name: str = ".venv") -> PythonSetupResult:
37
+ """Create a venv and install dependencies. A no-op when AGENTCORE_SKIP_INSTALL is set."""
38
+ if os.environ.get("AGENTCORE_SKIP_INSTALL"):
39
+ return PythonSetupResult("success")
40
+ if not check_uv_available():
41
+ return PythonSetupResult(
42
+ "uv_not_found", "uv command not found. Install it with: curl -LsSf https://astral.sh/uv/install.sh | sh"
43
+ )
44
+ venv = create_venv(project_dir, venv_name)
45
+ if venv.status != "success":
46
+ return venv
47
+ return install_dependencies(project_dir)
@@ -0,0 +1,159 @@
1
+ """Port of src/cli/operations/resolve-agent.ts: pick the deployed runtime/harness a command targets."""
2
+
3
+ import re
4
+ from dataclasses import dataclass
5
+ from typing import Any
6
+
7
+ from agentcore.aws.agentcore_harness import get_harness
8
+ from agentcore.lib.schemas.io.config_io import ConfigIO
9
+
10
+
11
+ @dataclass
12
+ class DeployedProjectConfig:
13
+ project: Any
14
+ deployed_state: Any
15
+ aws_targets: list[Any]
16
+
17
+
18
+ @dataclass
19
+ class ResolvedAgent:
20
+ agent_name: str
21
+ target_name: str
22
+ region: str
23
+ account_id: str
24
+ runtime_id: str
25
+
26
+
27
+ @dataclass
28
+ class ResolveResult:
29
+ """``{success: true, agent}`` / ``{success: false, error}``."""
30
+
31
+ success: bool
32
+ agent: ResolvedAgent | None = None
33
+ error: str | None = None
34
+
35
+
36
+ def load_deployed_project_config(config_io: ConfigIO | None = None) -> DeployedProjectConfig:
37
+ config_io = config_io or ConfigIO()
38
+ return DeployedProjectConfig(
39
+ project=config_io.read_project_spec(),
40
+ deployed_state=config_io.read_deployed_state(),
41
+ aws_targets=config_io.read_aws_deployment_targets(),
42
+ )
43
+
44
+
45
+ def _first_target(context: DeployedProjectConfig) -> tuple[str, Any, Any] | ResolveResult:
46
+ targets = context.deployed_state.targets or {}
47
+ if not targets:
48
+ return ResolveResult(False, error="No deployed targets found. Run `agentcore deploy` first.")
49
+ name = next(iter(targets))
50
+ config = next((t for t in context.aws_targets if t.name == name), None)
51
+ if config is None:
52
+ return ResolveResult(False, error=f"Target config '{name}' not found in aws-targets")
53
+ return name, targets[name], config
54
+
55
+
56
+ def resolve_agent(context: DeployedProjectConfig, runtime: str | None = None) -> ResolveResult:
57
+ project = context.project
58
+ runtimes = project.runtimes or []
59
+ if not runtimes:
60
+ return ResolveResult(False, error="No runtimes defined in agentcore.json")
61
+ names = [r.name for r in runtimes]
62
+ if not runtime and len(runtimes) > 1:
63
+ return ResolveResult(False, error=f"Multiple runtimes found. Use --runtime to specify one: {', '.join(names)}")
64
+ spec = next((r for r in runtimes if r.name == runtime), None) if runtime else runtimes[0]
65
+ if runtime and spec is None:
66
+ return ResolveResult(False, error=f"Runtime '{runtime}' not found. Available: {', '.join(names)}")
67
+ if spec is None:
68
+ return ResolveResult(False, error="No runtimes defined in agentcore.json")
69
+
70
+ first = _first_target(context)
71
+ if isinstance(first, ResolveResult):
72
+ return first
73
+ target_name, target_state, target_config = first
74
+ resources = target_state.resources if target_state else None
75
+ agent_state = ((resources.runtimes if resources else None) or {}).get(spec.name)
76
+ if not agent_state:
77
+ return ResolveResult(
78
+ False,
79
+ error=f"Runtime '{spec.name}' is not deployed to target '{target_name}'. Run 'agentcore deploy' first.",
80
+ )
81
+ return ResolveResult(
82
+ True,
83
+ agent=ResolvedAgent(
84
+ agent_name=spec.name,
85
+ target_name=target_name,
86
+ region=target_config.region,
87
+ account_id=target_config.account,
88
+ runtime_id=agent_state.runtime_id,
89
+ ),
90
+ )
91
+
92
+
93
+ def resolve_harness(context: DeployedProjectConfig, harness_name: str) -> ResolveResult:
94
+ harnesses = context.project.harnesses or []
95
+ spec = next((h for h in harnesses if h.name == harness_name), None)
96
+ if spec is None:
97
+ available = [h.name for h in harnesses]
98
+ return ResolveResult(
99
+ False,
100
+ error=f"Harness '{harness_name}' not found. Available: {', '.join(available)}"
101
+ if available
102
+ else "No harnesses defined in agentcore.json",
103
+ )
104
+ first = _first_target(context)
105
+ if isinstance(first, ResolveResult):
106
+ return first
107
+ target_name, target_state, target_config = first
108
+ resources = target_state.resources if target_state else None
109
+ harness_state = ((resources.harnesses if resources else None) or {}).get(harness_name)
110
+ if not harness_state:
111
+ return ResolveResult(
112
+ False,
113
+ error=f"Harness '{harness_name}' is not deployed to target '{target_name}'. Run 'agentcore deploy' first.",
114
+ )
115
+
116
+ runtime_id: str | None = None
117
+ if harness_state.agent_runtime_arn:
118
+ match = re.search(r"runtime/([^/]+)", harness_state.agent_runtime_arn)
119
+ if match:
120
+ runtime_id = match.group(1)
121
+ if not runtime_id:
122
+ try:
123
+ get_harness(region=target_config.region, harness_id=harness_state.harness_id)
124
+ runtime_id = harness_state.harness_id
125
+ except Exception as exc: # noqa: BLE001 - reported as a resolution error, as upstream
126
+ return ResolveResult(False, error=f"Failed to resolve runtime for harness '{harness_name}': {exc}")
127
+ if not runtime_id:
128
+ return ResolveResult(
129
+ False,
130
+ error=f"Could not resolve runtime ID for harness '{harness_name}'. Re-deploy to populate agentRuntimeArn.",
131
+ )
132
+ return ResolveResult(
133
+ True,
134
+ agent=ResolvedAgent(
135
+ agent_name=harness_name,
136
+ target_name=target_name,
137
+ region=target_config.region,
138
+ account_id=target_config.account,
139
+ runtime_id=runtime_id,
140
+ ),
141
+ )
142
+
143
+
144
+ def resolve_agent_or_harness(
145
+ context: DeployedProjectConfig, runtime: str | None = None, harness: str | None = None
146
+ ) -> ResolveResult:
147
+ if harness and runtime:
148
+ return ResolveResult(False, error="Cannot specify both --harness and --runtime")
149
+ if harness:
150
+ return resolve_harness(context, harness)
151
+ if runtime or (context.project.runtimes or []):
152
+ return resolve_agent(context, runtime)
153
+ harnesses = context.project.harnesses or []
154
+ if not harnesses:
155
+ return ResolveResult(False, error="No runtimes or harnesses defined in agentcore.json")
156
+ if len(harnesses) > 1:
157
+ names = ", ".join(h.name for h in harnesses)
158
+ return ResolveResult(False, error=f"Multiple harnesses found. Use --harness to specify one: {names}")
159
+ return resolve_harness(context, harnesses[0].name)
@@ -0,0 +1,86 @@
1
+ """Session ID helpers (port of src/cli/operations/session/index.ts)."""
2
+
3
+ import uuid
4
+ from dataclasses import dataclass
5
+
6
+ from agentcore.lib.schemas.io.config_io import ConfigIO
7
+
8
+
9
+ def generate_session_id() -> str:
10
+ """New UUID v4 session ID."""
11
+ return str(uuid.uuid4())
12
+
13
+
14
+ @dataclass
15
+ class SessionInfo:
16
+ session_id: str | None
17
+ agent_name: str
18
+ runtime_arn: str
19
+ target_name: str
20
+
21
+
22
+ def _select_target(deployed_state, target_name: str | None) -> str | None:
23
+ names = list(deployed_state.targets or {})
24
+ if not names:
25
+ return None
26
+ return target_name if target_name is not None else names[0]
27
+
28
+
29
+ def get_session_id(
30
+ agent_name: str, target_name: str | None = None, config_io: ConfigIO | None = None
31
+ ) -> SessionInfo | None:
32
+ config_io = config_io or ConfigIO()
33
+ deployed_state = config_io.read_deployed_state()
34
+ aws_targets = config_io.read_aws_deployment_targets()
35
+ selected = _select_target(deployed_state, target_name)
36
+ if selected is None:
37
+ return None
38
+ target_state = deployed_state.targets.get(selected)
39
+ target_config = next((t for t in aws_targets if t.name == selected), None)
40
+ runtimes = target_state.resources.runtimes if target_state and target_state.resources else None
41
+ if not target_config or not runtimes:
42
+ return None
43
+ agent_state = runtimes.get(agent_name)
44
+ if not agent_state:
45
+ return None
46
+ return SessionInfo(agent_state.session_id, agent_name, agent_state.runtime_arn, selected)
47
+
48
+
49
+ def save_session_id(
50
+ agent_name: str, session_id: str, target_name: str | None = None, config_io: ConfigIO | None = None
51
+ ) -> None:
52
+ config_io = config_io or ConfigIO()
53
+ deployed_state = config_io.read_deployed_state()
54
+ selected = _select_target(deployed_state, target_name)
55
+ if selected is None:
56
+ raise RuntimeError("No deployed targets found")
57
+ target_state = deployed_state.targets.get(selected)
58
+ runtimes = target_state.resources.runtimes if target_state and target_state.resources else None
59
+ if not runtimes or agent_name not in runtimes:
60
+ raise RuntimeError(f"Agent '{agent_name}' not found in deployed state")
61
+ runtimes[agent_name].session_id = session_id
62
+ config_io.write_deployed_state(deployed_state)
63
+
64
+
65
+ def clear_session_id(agent_name: str, target_name: str | None = None, config_io: ConfigIO | None = None) -> None:
66
+ config_io = config_io or ConfigIO()
67
+ deployed_state = config_io.read_deployed_state()
68
+ selected = _select_target(deployed_state, target_name)
69
+ if selected is None:
70
+ return
71
+ target_state = deployed_state.targets.get(selected)
72
+ runtimes = target_state.resources.runtimes if target_state and target_state.resources else None
73
+ if not runtimes or agent_name not in runtimes:
74
+ return
75
+ runtimes[agent_name].session_id = None
76
+ config_io.write_deployed_state(deployed_state)
77
+
78
+
79
+ def get_or_create_session_id(agent_name: str, target_name: str | None = None, config_io: ConfigIO | None = None) -> str:
80
+ config_io = config_io or ConfigIO()
81
+ info = get_session_id(agent_name, target_name, config_io)
82
+ if info and info.session_id:
83
+ return info.session_id
84
+ new_id = generate_session_id()
85
+ save_session_id(agent_name, new_id, target_name, config_io)
86
+ return new_id
@@ -0,0 +1,29 @@
1
+ """Trace listing/download via CloudWatch Logs Insights (port of src/cli/operations/traces)."""
2
+
3
+ from agentcore.operations.traces.get_trace import fetch_trace_records, get_trace
4
+ from agentcore.operations.traces.insights_query import InsightsQueryResult, run_insights_query
5
+ from agentcore.operations.traces.list_traces import list_traces
6
+ from agentcore.operations.traces.trace_url import build_trace_console_url
7
+ from agentcore.operations.traces.types import (
8
+ CloudWatchSpanRecord,
9
+ CloudWatchTraceRecord,
10
+ FetchTraceRecordsValue,
11
+ GetTraceValue,
12
+ ListTracesValue,
13
+ TraceEntry,
14
+ )
15
+
16
+ __all__ = [
17
+ "CloudWatchSpanRecord",
18
+ "CloudWatchTraceRecord",
19
+ "FetchTraceRecordsValue",
20
+ "GetTraceValue",
21
+ "InsightsQueryResult",
22
+ "ListTracesValue",
23
+ "TraceEntry",
24
+ "build_trace_console_url",
25
+ "fetch_trace_records",
26
+ "get_trace",
27
+ "list_traces",
28
+ "run_insights_query",
29
+ ]