@aws/nx-plugin 1.0.0-rc.6 → 1.0.0-rc.61

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 (1271) hide show
  1. package/LICENSE-THIRD-PARTY +7104 -6167
  2. package/README.md +8 -7
  3. package/generators.json +145 -10
  4. package/migrations.json +116 -0
  5. package/package.json +41 -22
  6. package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +273 -0
  7. package/src/agentcore-gateway/agent-connection/generator.d.ts +19 -0
  8. package/src/agentcore-gateway/agent-connection/generator.js +95 -0
  9. package/src/agentcore-gateway/agent-connection/generator.js.map +1 -0
  10. package/src/agentcore-gateway/agent-connection/schema.d.js +6 -0
  11. package/src/agentcore-gateway/agent-connection/schema.d.js.map +1 -0
  12. package/src/agentcore-gateway/agent-connection/schema.d.ts +13 -0
  13. package/src/agentcore-gateway/agent-connection/schema.json +31 -0
  14. package/src/agentcore-gateway/attach-upstream.d.ts +49 -0
  15. package/src/agentcore-gateway/attach-upstream.js +59 -0
  16. package/src/agentcore-gateway/attach-upstream.js.map +1 -0
  17. package/src/agentcore-gateway/files/cedar/policies/README.md +61 -0
  18. package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +26 -0
  19. package/src/agentcore-gateway/files/project/http/local-dev.ts.template +77 -0
  20. package/src/agentcore-gateway/files/project/mcp/local-dev.ts.template +134 -0
  21. package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
  22. package/src/agentcore-gateway/gateway-connection/generator.js +103 -0
  23. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
  24. package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
  25. package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
  26. package/src/agentcore-gateway/gateway-connection/schema.d.ts +13 -0
  27. package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
  28. package/src/agentcore-gateway/generator.d.ts +89 -0
  29. package/src/agentcore-gateway/generator.js +212 -0
  30. package/src/agentcore-gateway/generator.js.map +1 -0
  31. package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
  32. package/src/agentcore-gateway/mcp-connection/generator.js +61 -0
  33. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
  34. package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
  35. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
  36. package/src/agentcore-gateway/mcp-connection/schema.d.ts +13 -0
  37. package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
  38. package/src/agentcore-gateway/react-connection/__snapshots__/generator.spec.ts.snap +68 -0
  39. package/src/agentcore-gateway/react-connection/generator.d.ts +19 -0
  40. package/src/agentcore-gateway/react-connection/generator.js +119 -0
  41. package/src/agentcore-gateway/react-connection/generator.js.map +1 -0
  42. package/src/agentcore-gateway/react-connection/schema.d.js +6 -0
  43. package/src/agentcore-gateway/react-connection/schema.d.js.map +1 -0
  44. package/src/agentcore-gateway/react-connection/schema.d.ts +13 -0
  45. package/src/agentcore-gateway/react-connection/schema.json +31 -0
  46. package/src/agentcore-gateway/schema.d.js +6 -0
  47. package/src/agentcore-gateway/schema.d.js.map +1 -0
  48. package/src/agentcore-gateway/schema.d.ts +17 -0
  49. package/src/agentcore-gateway/schema.json +72 -0
  50. package/src/connection/agent-local-dev.d.ts +49 -0
  51. package/src/connection/agent-local-dev.js +84 -0
  52. package/src/connection/agent-local-dev.js.map +1 -0
  53. package/src/connection/agent-runtime-config.js +9 -14
  54. package/src/connection/agent-runtime-config.js.map +1 -1
  55. package/src/connection/gateway-runtime-config.d.ts +19 -0
  56. package/src/connection/gateway-runtime-config.js +47 -0
  57. package/src/connection/gateway-runtime-config.js.map +1 -0
  58. package/src/connection/generator.d.ts +3 -10
  59. package/src/connection/generator.js +172 -194
  60. package/src/connection/generator.js.map +1 -1
  61. package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
  62. package/src/connection/local-dev.js +37 -0
  63. package/src/connection/local-dev.js.map +1 -0
  64. package/src/connection/scaffold-catalog.d.ts +267 -0
  65. package/src/connection/scaffold-catalog.js +347 -0
  66. package/src/connection/scaffold-catalog.js.map +1 -0
  67. package/src/connection/schema-resolver.d.ts +5 -0
  68. package/src/connection/schema-resolver.js +27 -0
  69. package/src/connection/schema-resolver.js.map +1 -0
  70. package/src/connection/schema.d.js +6 -0
  71. package/src/connection/schema.d.js.map +1 -0
  72. package/src/connection/schema.d.ts +1 -0
  73. package/src/connection/schema.json +5 -0
  74. package/src/connection/supported-connections.d.ts +116 -0
  75. package/src/connection/supported-connections.js +163 -0
  76. package/src/connection/supported-connections.js.map +1 -0
  77. package/src/index.js +2 -5
  78. package/src/index.js.map +1 -1
  79. package/src/infra/app/__snapshots__/generator.spec.ts.snap +91 -72
  80. package/src/infra/app/files/app/src/main.ts.template +1 -1
  81. package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
  82. package/src/infra/app/generator.d.ts +43 -0
  83. package/src/infra/app/generator.js +179 -127
  84. package/src/infra/app/generator.js.map +1 -1
  85. package/src/infra/app/schema.d.js +6 -0
  86. package/src/infra/app/schema.d.js.map +1 -0
  87. package/src/infra/app/schema.d.ts +1 -1
  88. package/src/infra/app/schema.json +5 -0
  89. package/src/init/generator.d.ts +31 -0
  90. package/src/init/generator.js +46 -0
  91. package/src/init/generator.js.map +1 -0
  92. package/src/init/schema.d.js +6 -0
  93. package/src/init/schema.d.js.map +1 -0
  94. package/src/init/schema.d.ts +16 -0
  95. package/src/init/schema.json +35 -0
  96. package/src/internal/test-matrix/generator.d.ts +29 -0
  97. package/src/internal/test-matrix/generator.js +698 -0
  98. package/src/internal/test-matrix/generator.js.map +1 -0
  99. package/src/internal/test-matrix/schema.d.js +6 -0
  100. package/src/internal/test-matrix/schema.d.js.map +1 -0
  101. package/src/internal/test-matrix/schema.d.ts +12 -0
  102. package/src/internal/test-matrix/schema.json +21 -0
  103. package/src/license/config-types.js +5 -3
  104. package/src/license/config-types.js.map +1 -1
  105. package/src/license/config.d.ts +1 -1
  106. package/src/license/config.js +267 -242
  107. package/src/license/config.js.map +1 -1
  108. package/src/license/dependency-check/check.js +51 -46
  109. package/src/license/dependency-check/check.js.map +1 -1
  110. package/src/license/dependency-check/collectors/collector.js +41 -71
  111. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  112. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  113. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  114. package/src/license/dependency-check/collectors/python-collector.js +55 -62
  115. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  116. package/src/license/dependency-check/evaluator.js +40 -68
  117. package/src/license/dependency-check/evaluator.js.map +1 -1
  118. package/src/license/dependency-check/executor.js +30 -22
  119. package/src/license/dependency-check/executor.js.map +1 -1
  120. package/src/license/dependency-check/pre-approved.js +949 -336
  121. package/src/license/dependency-check/pre-approved.js.map +1 -1
  122. package/src/license/dependency-check/types.js +2 -3
  123. package/src/license/dependency-check/types.js.map +1 -1
  124. package/src/license/generator.js +65 -68
  125. package/src/license/generator.js.map +1 -1
  126. package/src/license/index.js +3 -9
  127. package/src/license/index.js.map +1 -1
  128. package/src/license/known-exceptions.d.ts +1 -1
  129. package/src/license/known-exceptions.js +19 -13
  130. package/src/license/known-exceptions.js.map +1 -1
  131. package/src/license/schema.d.js +6 -0
  132. package/src/license/schema.d.js.map +1 -0
  133. package/src/license/schema.d.ts +2 -0
  134. package/src/license/schema.json +5 -0
  135. package/src/license/sync/generator.js +94 -119
  136. package/src/license/sync/generator.js.map +1 -1
  137. package/src/license/sync/project-file-sync.js +28 -35
  138. package/src/license/sync/project-file-sync.js.map +1 -1
  139. package/src/mcp-server/dev-server.d.ts +1 -0
  140. package/src/mcp-server/dev-server.js +18 -0
  141. package/src/mcp-server/dev-server.js.map +1 -0
  142. package/src/mcp-server/generator-info.js +149 -165
  143. package/src/mcp-server/generator-info.js.map +1 -1
  144. package/src/mcp-server/guide-pipeline.js +199 -206
  145. package/src/mcp-server/guide-pipeline.js.map +1 -1
  146. package/src/mcp-server/guide-render.js +10 -25
  147. package/src/mcp-server/guide-render.js.map +1 -1
  148. package/src/mcp-server/index.js +6 -10
  149. package/src/mcp-server/index.js.map +1 -1
  150. package/src/mcp-server/mdx-ast.js +39 -57
  151. package/src/mcp-server/mdx-ast.js.map +1 -1
  152. package/src/mcp-server/option-filter.js +33 -47
  153. package/src/mcp-server/option-filter.js.map +1 -1
  154. package/src/mcp-server/schema-registry.d.ts +9 -3
  155. package/src/mcp-server/schema-registry.js +41 -38
  156. package/src/mcp-server/schema-registry.js.map +1 -1
  157. package/src/mcp-server/schema.d.ts +1 -1
  158. package/src/mcp-server/schema.js +9 -7
  159. package/src/mcp-server/schema.js.map +1 -1
  160. package/src/mcp-server/server.js +24 -24
  161. package/src/mcp-server/server.js.map +1 -1
  162. package/src/mcp-server/tools/add-to-existing-project.d.ts +12 -0
  163. package/src/mcp-server/tools/add-to-existing-project.js +36 -0
  164. package/src/mcp-server/tools/add-to-existing-project.js.map +1 -0
  165. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  166. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  167. package/src/mcp-server/tools/general-guidance.d.ts +1 -1
  168. package/src/mcp-server/tools/general-guidance.js +53 -31
  169. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  170. package/src/mcp-server/tools/generator-guide.js +29 -37
  171. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  172. package/src/mcp-server/tools/list-generators.js +19 -25
  173. package/src/mcp-server/tools/list-generators.js.map +1 -1
  174. package/src/mcp-server/tools/upgrade-workspace.d.ts +11 -0
  175. package/src/mcp-server/tools/upgrade-workspace.js +32 -0
  176. package/src/mcp-server/tools/upgrade-workspace.js.map +1 -0
  177. package/src/migrations/latest/gateway-agent-targets/__snapshots__/migration.spec.ts.snap +223 -0
  178. package/src/migrations/latest/gateway-agent-targets/metadata.json +3 -0
  179. package/src/migrations/latest/gateway-agent-targets/migration.d.ts +6 -0
  180. package/src/migrations/latest/gateway-agent-targets/migration.js +217 -0
  181. package/src/migrations/latest/gateway-agent-targets/migration.js.map +1 -0
  182. package/src/migrations/latest/gateway-cognito-passthrough/__snapshots__/migration.spec.ts.snap +149 -0
  183. package/src/migrations/latest/gateway-cognito-passthrough/metadata.json +3 -0
  184. package/src/migrations/latest/gateway-cognito-passthrough/migration.d.ts +6 -0
  185. package/src/migrations/latest/gateway-cognito-passthrough/migration.js +195 -0
  186. package/src/migrations/latest/gateway-cognito-passthrough/migration.js.map +1 -0
  187. package/src/migrations/latest/py-agent-lifespan-construction/metadata.json +3 -0
  188. package/src/migrations/latest/py-agent-lifespan-construction/migration.d.ts +6 -0
  189. package/src/migrations/latest/py-agent-lifespan-construction/migration.js +412 -0
  190. package/src/migrations/latest/py-agent-lifespan-construction/migration.js.map +1 -0
  191. package/src/migrations/latest/smithy-ssdk-bundle-pins/metadata.json +3 -0
  192. package/src/migrations/latest/smithy-ssdk-bundle-pins/migration.d.ts +6 -0
  193. package/src/migrations/latest/smithy-ssdk-bundle-pins/migration.js +78 -0
  194. package/src/migrations/latest/smithy-ssdk-bundle-pins/migration.js.map +1 -0
  195. package/src/migrations/latest/strip-pip-from-python-images/__snapshots__/migration.spec.ts.snap +48 -0
  196. package/src/migrations/latest/strip-pip-from-python-images/metadata.json +3 -0
  197. package/src/migrations/latest/strip-pip-from-python-images/migration.d.ts +6 -0
  198. package/src/migrations/latest/strip-pip-from-python-images/migration.js +91 -0
  199. package/src/migrations/latest/strip-pip-from-python-images/migration.js.map +1 -0
  200. package/src/migrations/latest/waf-log-group-removal/__snapshots__/migration.spec.ts.snap +57 -0
  201. package/src/migrations/latest/waf-log-group-removal/metadata.json +3 -0
  202. package/src/migrations/latest/waf-log-group-removal/migration.d.ts +6 -0
  203. package/src/migrations/latest/waf-log-group-removal/migration.js +77 -0
  204. package/src/migrations/latest/waf-log-group-removal/migration.js.map +1 -0
  205. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/metadata.json +3 -0
  206. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.d.ts +6 -0
  207. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js +65 -0
  208. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js.map +1 -0
  209. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/metadata.json +3 -0
  210. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.d.ts +6 -0
  211. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js +108 -0
  212. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js.map +1 -0
  213. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/metadata.json +3 -0
  214. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.d.ts +6 -0
  215. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js +128 -0
  216. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -0
  217. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/metadata.json +3 -0
  218. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.d.ts +6 -0
  219. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js +215 -0
  220. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js.map +1 -0
  221. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/metadata.json +3 -0
  222. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.d.ts +6 -0
  223. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js +93 -0
  224. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js.map +1 -0
  225. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/metadata.json +3 -0
  226. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.d.ts +96 -0
  227. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js +670 -0
  228. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js.map +1 -0
  229. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/metadata.json +3 -0
  230. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.d.ts +6 -0
  231. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js +89 -0
  232. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js.map +1 -0
  233. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/metadata.json +3 -0
  234. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.d.ts +6 -0
  235. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js +449 -0
  236. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js.map +1 -0
  237. package/src/open-api/ts-client/__snapshots__/generator.additional-properties.spec.ts.snap +147 -33
  238. package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
  239. package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +298 -74
  240. package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +748 -103
  241. package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +230 -37
  242. package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +249 -52
  243. package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5535 -0
  244. package/src/open-api/ts-client/__snapshots__/generator.fast-api-gaps.spec.ts.snap +736 -0
  245. package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +305 -71
  246. package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +298 -0
  247. package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +353 -82
  248. package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +176 -55
  249. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +100 -24
  250. package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
  251. package/src/open-api/ts-client/__snapshots__/generator.spec-compliance.spec.ts.snap +1883 -0
  252. package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
  253. package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +200 -48
  254. package/src/open-api/ts-client/files/client.gen.ts.template +358 -24
  255. package/src/open-api/ts-client/files/types.gen.ts.template +6 -4
  256. package/src/open-api/ts-client/generator.js +41 -26
  257. package/src/open-api/ts-client/generator.js.map +1 -1
  258. package/src/open-api/ts-client/schema.d.js +6 -0
  259. package/src/open-api/ts-client/schema.d.js.map +1 -0
  260. package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +7 -2
  261. package/src/open-api/ts-hooks/generator.js +17 -21
  262. package/src/open-api/ts-hooks/generator.js.map +1 -1
  263. package/src/open-api/ts-hooks/generator.spec.tsx +70 -0
  264. package/src/open-api/ts-hooks/schema.d.js +6 -0
  265. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  266. package/src/open-api/ts-metadata/generator.js +12 -20
  267. package/src/open-api/ts-metadata/generator.js.map +1 -1
  268. package/src/open-api/ts-metadata/schema.d.js +6 -0
  269. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  270. package/src/open-api/utils/codegen-data/languages.d.ts +0 -6
  271. package/src/open-api/utils/codegen-data/languages.js +59 -66
  272. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  273. package/src/open-api/utils/codegen-data/types.d.ts +255 -10
  274. package/src/open-api/utils/codegen-data/types.js +54 -30
  275. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  276. package/src/open-api/utils/codegen-data.d.ts +2 -2
  277. package/src/open-api/utils/codegen-data.js +494 -674
  278. package/src/open-api/utils/codegen-data.js.map +1 -1
  279. package/src/open-api/utils/normalise.js +437 -246
  280. package/src/open-api/utils/normalise.js.map +1 -1
  281. package/src/open-api/utils/parse.js +8 -14
  282. package/src/open-api/utils/parse.js.map +1 -1
  283. package/src/open-api/utils/parser.d.ts +55 -0
  284. package/src/open-api/utils/parser.js +787 -0
  285. package/src/open-api/utils/parser.js.map +1 -0
  286. package/src/open-api/utils/refs.js +12 -22
  287. package/src/open-api/utils/refs.js.map +1 -1
  288. package/src/open-api/utils/types.d.ts +18 -0
  289. package/src/open-api/utils/types.js +5 -2
  290. package/src/open-api/utils/types.js.map +1 -1
  291. package/src/preset/__snapshots__/generator.spec.ts.snap +99 -20
  292. package/src/preset/generator.d.ts +14 -1
  293. package/src/preset/generator.js +76 -151
  294. package/src/preset/generator.js.map +1 -1
  295. package/src/preset/schema.d.js +6 -0
  296. package/src/preset/schema.d.js.map +1 -0
  297. package/src/preset/schema.d.ts +4 -1
  298. package/src/preset/schema.json +16 -5
  299. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +326 -0
  300. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +738 -0
  301. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +191 -315
  302. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +190 -0
  303. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +31 -0
  304. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +29 -0
  305. package/src/py/agent/a2a-connection/generator.d.ts +24 -0
  306. package/src/py/agent/a2a-connection/generator.js +145 -88
  307. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  308. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  309. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  310. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  311. package/src/py/agent/a2a-connection/schema.json +5 -0
  312. package/src/py/agent/files/deploy/Dockerfile.template +8 -1
  313. package/src/py/agent/files/langchain/a2a/main.py.template +89 -0
  314. package/src/py/agent/files/langchain/ag-ui/main.py.template +87 -0
  315. package/src/py/agent/files/langchain/common/agent.py.template +30 -0
  316. package/src/py/agent/files/{http → langchain/http}/init.py.template +17 -25
  317. package/src/py/agent/files/langchain/http/main.py.template +81 -0
  318. package/src/py/agent/files/strands/ag-ui/main.py.template +89 -0
  319. package/src/py/agent/files/{common → strands/common}/agent.py.template +2 -0
  320. package/src/py/agent/files/strands/http/init.py.template +97 -0
  321. package/src/py/agent/files/{http → strands/http}/main.py.template +4 -13
  322. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
  323. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  324. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  325. package/src/py/agent/gateway-connection/generator.d.ts +33 -0
  326. package/src/py/agent/gateway-connection/generator.js +153 -0
  327. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  328. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  329. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  330. package/src/py/agent/gateway-connection/schema.d.ts +13 -0
  331. package/src/py/agent/gateway-connection/schema.json +31 -0
  332. package/src/py/agent/generator.d.ts +146 -1
  333. package/src/py/agent/generator.js +396 -197
  334. package/src/py/agent/generator.js.map +1 -1
  335. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +154 -89
  336. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +31 -0
  337. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +31 -0
  338. package/src/py/agent/mcp-connection/generator.d.ts +23 -0
  339. package/src/py/agent/mcp-connection/generator.js +103 -130
  340. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  341. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  342. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  343. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  344. package/src/py/agent/mcp-connection/schema.json +5 -0
  345. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +17 -19
  346. package/src/py/agent/react-connection/generator.d.ts +150 -1
  347. package/src/py/agent/react-connection/generator.js +105 -65
  348. package/src/py/agent/react-connection/generator.js.map +1 -1
  349. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
  350. package/src/py/agent/react-connection/local-dev.js +36 -0
  351. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  352. package/src/py/agent/react-connection/schema.d.js +8 -0
  353. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  354. package/src/py/agent/react-connection/schema.d.ts +1 -0
  355. package/src/py/agent/react-connection/schema.json +5 -0
  356. package/src/py/agent/schema.d.js +6 -0
  357. package/src/py/agent/schema.d.js.map +1 -0
  358. package/src/py/agent/schema.d.ts +5 -1
  359. package/src/py/agent/schema.json +15 -1
  360. package/src/py/api/generator.js +12 -11
  361. package/src/py/api/generator.js.map +1 -1
  362. package/src/py/api/schema.d.js +6 -0
  363. package/src/py/api/schema.d.js.map +1 -0
  364. package/src/py/api/schema.d.ts +1 -0
  365. package/src/py/api/schema.json +5 -0
  366. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1520 -0
  367. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +63 -0
  368. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  369. package/src/py/dynamodb/agent-connection/generator.js +45 -0
  370. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  371. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  372. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  373. package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
  374. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  375. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +32 -0
  376. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  377. package/src/py/dynamodb/fast-api-connection/generator.js +39 -0
  378. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  379. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  380. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  381. package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
  382. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  383. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  384. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  385. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  386. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  387. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  388. package/src/py/dynamodb/files/config.json.template +24 -0
  389. package/src/py/dynamodb/generator.d.ts +39 -0
  390. package/src/py/dynamodb/generator.js +130 -0
  391. package/src/py/dynamodb/generator.js.map +1 -0
  392. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +63 -0
  393. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  394. package/src/py/dynamodb/mcp-server-connection/generator.js +45 -0
  395. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  396. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  397. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  398. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  399. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  400. package/src/py/dynamodb/schema.d.js +6 -0
  401. package/src/py/dynamodb/schema.d.js.map +1 -0
  402. package/src/py/dynamodb/schema.d.ts +16 -0
  403. package/src/py/dynamodb/schema.json +76 -0
  404. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +240 -4693
  405. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +5409 -0
  406. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  407. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  408. package/src/py/fast-api/generator.d.ts +68 -0
  409. package/src/py/fast-api/generator.js +134 -95
  410. package/src/py/fast-api/generator.js.map +1 -1
  411. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
  412. package/src/py/fast-api/react/generator.d.ts +16 -1
  413. package/src/py/fast-api/react/generator.js +38 -26
  414. package/src/py/fast-api/react/generator.js.map +1 -1
  415. package/src/py/fast-api/react/open-api.js +31 -29
  416. package/src/py/fast-api/react/open-api.js.map +1 -1
  417. package/src/py/fast-api/react/schema.d.js +6 -0
  418. package/src/py/fast-api/react/schema.d.js.map +1 -0
  419. package/src/py/fast-api/react/schema.d.ts +1 -0
  420. package/src/py/fast-api/react/schema.json +5 -0
  421. package/src/py/fast-api/schema.d.js +6 -0
  422. package/src/py/fast-api/schema.d.js.map +1 -0
  423. package/src/py/fast-api/schema.d.ts +1 -0
  424. package/src/py/fast-api/schema.json +6 -0
  425. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  426. package/src/py/lambda-function/generator.d.ts +21 -0
  427. package/src/py/lambda-function/generator.js +82 -62
  428. package/src/py/lambda-function/generator.js.map +1 -1
  429. package/src/py/lambda-function/schema.d.js +6 -0
  430. package/src/py/lambda-function/schema.d.js.map +1 -0
  431. package/src/py/lambda-function/schema.d.ts +1 -0
  432. package/src/py/lambda-function/schema.json +5 -0
  433. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +221 -21
  434. package/src/py/mcp-server/files/deploy/Dockerfile.template +8 -1
  435. package/src/py/mcp-server/generator.d.ts +60 -0
  436. package/src/py/mcp-server/generator.js +204 -131
  437. package/src/py/mcp-server/generator.js.map +1 -1
  438. package/src/py/mcp-server/schema.d.js +6 -0
  439. package/src/py/mcp-server/schema.d.js.map +1 -0
  440. package/src/py/mcp-server/schema.d.ts +1 -0
  441. package/src/py/mcp-server/schema.json +6 -0
  442. package/src/py/project/generator.d.ts +27 -1
  443. package/src/py/project/generator.js +248 -130
  444. package/src/py/project/generator.js.map +1 -1
  445. package/src/py/project/schema.d.js +6 -0
  446. package/src/py/project/schema.d.js.map +1 -0
  447. package/src/py/project/schema.d.ts +1 -0
  448. package/src/py/project/schema.json +5 -0
  449. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2070 -0
  450. package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +123 -0
  451. package/src/py/rdb/agent-connection/generator.d.ts +10 -0
  452. package/src/py/rdb/agent-connection/generator.js +52 -0
  453. package/src/py/rdb/agent-connection/generator.js.map +1 -0
  454. package/src/py/rdb/agent-connection/schema.d.js +8 -0
  455. package/src/py/rdb/agent-connection/schema.d.js.map +1 -0
  456. package/src/py/rdb/agent-connection/schema.d.ts +15 -0
  457. package/src/py/rdb/agent-connection/schema.json +27 -0
  458. package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +51 -0
  459. package/src/py/rdb/fast-api-connection/files/__apiModuleName__/dependencies/__rdbNameSnake__.py.template +14 -0
  460. package/src/py/rdb/fast-api-connection/generator.d.ts +10 -0
  461. package/src/py/rdb/fast-api-connection/generator.js +56 -0
  462. package/src/py/rdb/fast-api-connection/generator.js.map +1 -0
  463. package/src/py/rdb/fast-api-connection/schema.d.js +8 -0
  464. package/src/py/rdb/fast-api-connection/schema.d.js.map +1 -0
  465. package/src/py/rdb/fast-api-connection/schema.d.ts +13 -0
  466. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  467. package/src/py/rdb/files/Dockerfile.create-db-user.template +14 -0
  468. package/src/py/rdb/files/Dockerfile.migration.template +14 -0
  469. package/src/py/rdb/files/__name__/__init__.py.template +3 -0
  470. package/src/py/rdb/files/__name__/connection.py.template +55 -0
  471. package/src/py/rdb/files/__name__/create_db_user_handler.py.template +97 -0
  472. package/src/py/rdb/files/__name__/migration_handler.py.template +36 -0
  473. package/src/py/rdb/files/__name__/models/__init__.py.template +3 -0
  474. package/src/py/rdb/files/__name__/models/example.py.template +8 -0
  475. package/src/py/rdb/files/__name__/utils.py.template +104 -0
  476. package/src/py/rdb/files/alembic.ini.template +38 -0
  477. package/src/py/rdb/files/config.json.template +14 -0
  478. package/src/py/rdb/files/migrations/env.py.template +80 -0
  479. package/src/py/rdb/files/migrations/script.py.mako.template +28 -0
  480. package/src/py/rdb/generator.d.ts +95 -0
  481. package/src/py/rdb/generator.js +328 -0
  482. package/src/py/rdb/generator.js.map +1 -0
  483. package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +119 -0
  484. package/src/py/rdb/mcp-server-connection/generator.d.ts +10 -0
  485. package/src/py/rdb/mcp-server-connection/generator.js +52 -0
  486. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -0
  487. package/src/py/rdb/mcp-server-connection/schema.d.js +8 -0
  488. package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -0
  489. package/src/py/rdb/mcp-server-connection/schema.d.ts +15 -0
  490. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  491. package/src/py/rdb/schema.d.js +6 -0
  492. package/src/py/rdb/schema.d.js.map +1 -0
  493. package/src/py/rdb/schema.d.ts +16 -0
  494. package/src/py/rdb/schema.json +78 -0
  495. package/src/py/rdb/utils.d.ts +6 -0
  496. package/src/py/rdb/utils.js +16 -0
  497. package/src/py/rdb/utils.js.map +1 -0
  498. package/src/sdk/agentcore-gateway.d.ts +6 -0
  499. package/src/sdk/agentcore-gateway.js +7 -0
  500. package/src/sdk/agentcore-gateway.js.map +1 -0
  501. package/src/sdk/connection.d.ts +6 -0
  502. package/src/sdk/connection.js +6 -0
  503. package/src/sdk/connection.js.map +1 -0
  504. package/src/sdk/license.d.ts +8 -0
  505. package/src/sdk/license.js +7 -0
  506. package/src/sdk/license.js.map +1 -0
  507. package/src/sdk/open-api.d.ts +10 -0
  508. package/src/sdk/open-api.js +8 -0
  509. package/src/sdk/open-api.js.map +1 -0
  510. package/src/sdk/py.d.ts +18 -0
  511. package/src/sdk/py.js +12 -0
  512. package/src/sdk/py.js.map +1 -0
  513. package/src/sdk/terraform.d.ts +6 -0
  514. package/src/sdk/terraform.js +7 -0
  515. package/src/sdk/terraform.js.map +1 -0
  516. package/src/sdk/ts.d.ts +39 -0
  517. package/src/sdk/ts.js +41 -0
  518. package/src/sdk/ts.js.map +1 -0
  519. package/{sdk/utils/format.d.ts → src/sdk/utils/ast.d.ts} +1 -1
  520. package/src/sdk/utils/ast.js +6 -0
  521. package/src/sdk/utils/ast.js.map +1 -0
  522. package/{sdk/utils/ast.d.ts → src/sdk/utils/format.d.ts} +1 -2
  523. package/src/sdk/utils/format.js +6 -0
  524. package/src/sdk/utils/format.js.map +1 -0
  525. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  526. package/src/sdk/utils/test.js +6 -0
  527. package/src/sdk/utils/test.js.map +1 -0
  528. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +132 -32
  529. package/src/smithy/project/files/{build.Dockerfile.template → service/build.Dockerfile.template} +3 -6
  530. package/src/smithy/project/files/{src → service/src}/operations/echo.smithy.template +1 -0
  531. package/src/smithy/project/files/shapes/build.Dockerfile.template +33 -0
  532. package/src/smithy/project/files/shapes/smithy-build.json.template +7 -0
  533. package/src/smithy/project/files/shapes/src/main.smithy.template +11 -0
  534. package/src/smithy/project/generator.d.ts +32 -0
  535. package/src/smithy/project/generator.js +101 -56
  536. package/src/smithy/project/generator.js.map +1 -1
  537. package/src/smithy/project/schema.d.js +6 -0
  538. package/src/smithy/project/schema.d.js.map +1 -0
  539. package/src/smithy/project/schema.d.ts +2 -0
  540. package/src/smithy/project/schema.json +28 -1
  541. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  542. package/src/smithy/react-connection/generator.d.ts +15 -0
  543. package/src/smithy/react-connection/generator.js +54 -48
  544. package/src/smithy/react-connection/generator.js.map +1 -1
  545. package/src/smithy/react-connection/schema.d.js +6 -0
  546. package/src/smithy/react-connection/schema.d.js.map +1 -0
  547. package/src/smithy/react-connection/schema.d.ts +1 -0
  548. package/src/smithy/react-connection/schema.json +5 -0
  549. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +847 -104
  550. package/src/smithy/ts/api/files/handler.ts.template +2 -2
  551. package/src/smithy/ts/api/files/local-server.ts.template +2 -2
  552. package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
  553. package/src/smithy/ts/api/files/service.ts.template +3 -3
  554. package/src/smithy/ts/api/generator.d.ts +84 -0
  555. package/src/smithy/ts/api/generator.js +187 -114
  556. package/src/smithy/ts/api/generator.js.map +1 -1
  557. package/src/smithy/ts/api/schema.d.js +6 -0
  558. package/src/smithy/ts/api/schema.d.js.map +1 -0
  559. package/src/smithy/ts/api/schema.d.ts +1 -0
  560. package/src/smithy/ts/api/schema.json +6 -0
  561. package/src/terraform/project/files/application/scripts/bootstrap.ts.template +40 -1
  562. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  563. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  564. package/src/terraform/project/generator.d.ts +50 -0
  565. package/src/terraform/project/generator.js +212 -111
  566. package/src/terraform/project/generator.js.map +1 -1
  567. package/src/terraform/project/schema.d.js +9 -0
  568. package/src/terraform/project/schema.d.js.map +1 -0
  569. package/src/terraform/project/schema.d.ts +1 -0
  570. package/src/terraform/project/schema.json +5 -0
  571. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1182 -184
  572. package/src/trpc/backend/files/src/client/index.ts.template +1 -1
  573. package/src/trpc/backend/files/src/handler.ts.template +1 -1
  574. package/src/trpc/backend/files/src/index.ts.template +5 -5
  575. package/src/trpc/backend/files/src/init.ts.template +1 -1
  576. package/src/trpc/backend/files/src/local-server.ts.template +1 -1
  577. package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
  578. package/src/trpc/backend/files/src/procedures/echo.ts.template +3 -3
  579. package/src/trpc/backend/files/src/router.ts.template +2 -2
  580. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  581. package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
  582. package/src/trpc/backend/generator.d.ts +90 -1
  583. package/src/trpc/backend/generator.js +177 -100
  584. package/src/trpc/backend/generator.js.map +1 -1
  585. package/src/trpc/backend/schema.d.js +6 -0
  586. package/src/trpc/backend/schema.d.js.map +1 -0
  587. package/src/trpc/backend/schema.d.ts +1 -0
  588. package/src/trpc/backend/schema.json +6 -0
  589. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
  590. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  591. package/src/trpc/react/generator.d.ts +38 -1
  592. package/src/trpc/react/generator.js +105 -63
  593. package/src/trpc/react/generator.js.map +1 -1
  594. package/src/trpc/react/schema.d.js +6 -0
  595. package/src/trpc/react/schema.d.js.map +1 -0
  596. package/src/trpc/react/schema.d.ts +1 -0
  597. package/src/trpc/react/schema.json +5 -0
  598. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1452 -25
  599. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +258 -0
  600. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  601. package/src/ts/agent/a2a-connection/generator.d.ts +46 -0
  602. package/src/ts/agent/a2a-connection/generator.js +110 -63
  603. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  604. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  605. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  606. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  607. package/src/ts/agent/a2a-connection/schema.json +5 -0
  608. package/src/ts/agent/files/a2a/index.ts.template +1 -1
  609. package/src/ts/agent/files/ag-ui/index.ts.template +36 -11
  610. package/src/ts/agent/files/common/agent.ts.template +15 -2
  611. package/src/ts/agent/files/common/session.ts.template +43 -0
  612. package/src/ts/agent/files/deploy/Dockerfile.template +13 -2
  613. package/src/ts/agent/files/http/client.ts.template +2 -2
  614. package/src/ts/agent/files/http/index.ts.template +2 -2
  615. package/src/ts/agent/files/http/router.ts.template +5 -5
  616. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +222 -0
  617. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  618. package/src/ts/agent/gateway-connection/generator.d.ts +47 -0
  619. package/src/ts/agent/gateway-connection/generator.js +144 -0
  620. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  621. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  622. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  623. package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
  624. package/src/ts/agent/gateway-connection/schema.json +31 -0
  625. package/src/ts/agent/generator.d.ts +197 -0
  626. package/src/ts/agent/generator.js +339 -156
  627. package/src/ts/agent/generator.js.map +1 -1
  628. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +194 -113
  629. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +23 -0
  630. package/src/ts/agent/mcp-connection/generator.d.ts +37 -0
  631. package/src/ts/agent/mcp-connection/generator.js +88 -65
  632. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  633. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  634. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  635. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  636. package/src/ts/agent/mcp-connection/schema.json +5 -0
  637. package/src/ts/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -4
  638. package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +2 -1
  639. package/src/ts/agent/react-connection/generator.d.ts +202 -1
  640. package/src/ts/agent/react-connection/generator.js +158 -99
  641. package/src/ts/agent/react-connection/generator.js.map +1 -1
  642. package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
  643. package/src/ts/agent/react-connection/local-dev.js +17 -0
  644. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  645. package/src/ts/agent/react-connection/schema.d.js +8 -0
  646. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  647. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  648. package/src/ts/agent/react-connection/schema.json +5 -0
  649. package/src/ts/agent/schema.d.js +6 -0
  650. package/src/ts/agent/schema.d.js.map +1 -0
  651. package/src/ts/agent/schema.d.ts +4 -0
  652. package/src/ts/agent/schema.json +14 -0
  653. package/src/ts/api/generator.js +16 -16
  654. package/src/ts/api/generator.js.map +1 -1
  655. package/src/ts/api/schema.d.js +6 -0
  656. package/src/ts/api/schema.d.js.map +1 -0
  657. package/src/ts/api/schema.d.ts +1 -0
  658. package/src/ts/api/schema.json +5 -0
  659. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +14 -14
  660. package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +3 -2
  661. package/src/ts/astro-docs/generator.d.ts +38 -0
  662. package/src/ts/astro-docs/generator.js +126 -61
  663. package/src/ts/astro-docs/generator.js.map +1 -1
  664. package/src/ts/astro-docs/schema.d.js +6 -0
  665. package/src/ts/astro-docs/schema.d.js.map +1 -0
  666. package/src/ts/astro-docs/schema.d.ts +2 -2
  667. package/src/ts/astro-docs/schema.json +3 -3
  668. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +982 -0
  669. package/src/ts/dcr-proxy/generator.d.ts +34 -0
  670. package/src/ts/dcr-proxy/generator.js +115 -0
  671. package/src/ts/dcr-proxy/generator.js.map +1 -0
  672. package/src/ts/dcr-proxy/schema.d.js +6 -0
  673. package/src/ts/dcr-proxy/schema.d.js.map +1 -0
  674. package/src/ts/dcr-proxy/schema.d.ts +13 -0
  675. package/src/ts/dcr-proxy/schema.json +44 -0
  676. package/src/ts/docs/generator.js +10 -10
  677. package/src/ts/docs/generator.js.map +1 -1
  678. package/src/ts/docs/schema.d.js +6 -0
  679. package/src/ts/docs/schema.d.js.map +1 -0
  680. package/src/ts/docs/schema.d.ts +1 -4
  681. package/src/ts/docs/schema.json +3 -3
  682. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +400 -518
  683. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +23 -5
  684. package/src/ts/dynamodb/agent-connection/generator.js +27 -23
  685. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  686. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  687. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  688. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
  689. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  690. package/src/ts/dynamodb/files/config.json.template +24 -0
  691. package/src/ts/dynamodb/files/src/client.ts.template +30 -11
  692. package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
  693. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
  694. package/src/ts/dynamodb/files/src/index.ts.template +2 -11
  695. package/src/ts/dynamodb/generator.d.ts +41 -0
  696. package/src/ts/dynamodb/generator.js +106 -64
  697. package/src/ts/dynamodb/generator.js.map +1 -1
  698. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +23 -5
  699. package/src/ts/dynamodb/mcp-server-connection/generator.js +27 -23
  700. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  701. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  702. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  703. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  704. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  705. package/src/ts/dynamodb/schema.d.js +6 -0
  706. package/src/ts/dynamodb/schema.d.js.map +1 -0
  707. package/src/ts/dynamodb/schema.d.ts +2 -0
  708. package/src/ts/dynamodb/schema.json +26 -2
  709. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
  710. package/src/ts/dynamodb/smithy-connection/generator.js +22 -22
  711. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  712. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  713. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  714. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  715. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  716. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  717. package/src/ts/dynamodb/trpc-connection/generator.js +22 -22
  718. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  719. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  720. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  721. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  722. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  723. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +8 -6
  724. package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
  725. package/src/ts/lambda-function/generator.d.ts +38 -0
  726. package/src/ts/lambda-function/generator.js +98 -65
  727. package/src/ts/lambda-function/generator.js.map +1 -1
  728. package/src/ts/lambda-function/io.js +83 -52
  729. package/src/ts/lambda-function/io.js.map +1 -1
  730. package/src/ts/lambda-function/schema.d.js +6 -0
  731. package/src/ts/lambda-function/schema.d.js.map +1 -0
  732. package/src/ts/lambda-function/schema.d.ts +1 -0
  733. package/src/ts/lambda-function/schema.json +5 -0
  734. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +83 -45
  735. package/src/ts/lib/biome.js +71 -35
  736. package/src/ts/lib/biome.js.map +1 -1
  737. package/src/ts/lib/generator.d.ts +7 -0
  738. package/src/ts/lib/generator.js +115 -103
  739. package/src/ts/lib/generator.js.map +1 -1
  740. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  741. package/src/ts/lib/schema.d.js +6 -0
  742. package/src/ts/lib/schema.d.js.map +1 -0
  743. package/src/ts/lib/schema.d.ts +1 -1
  744. package/src/ts/lib/schema.json +5 -0
  745. package/src/ts/lib/ts-project-utils.d.ts +13 -1
  746. package/src/ts/lib/ts-project-utils.js +96 -71
  747. package/src/ts/lib/ts-project-utils.js.map +1 -1
  748. package/src/ts/lib/types.d.ts +6 -0
  749. package/src/ts/lib/types.js +5 -2
  750. package/src/ts/lib/types.js.map +1 -1
  751. package/src/ts/lib/vitest.d.ts +10 -1
  752. package/src/ts/lib/vitest.js +42 -26
  753. package/src/ts/lib/vitest.js.map +1 -1
  754. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +221 -44
  755. package/src/ts/mcp-server/files/Dockerfile.template +13 -2
  756. package/src/ts/mcp-server/generator.d.ts +102 -0
  757. package/src/ts/mcp-server/generator.js +231 -148
  758. package/src/ts/mcp-server/generator.js.map +1 -1
  759. package/src/ts/mcp-server/schema.d.js +6 -0
  760. package/src/ts/mcp-server/schema.d.js.map +1 -0
  761. package/src/ts/mcp-server/schema.d.ts +1 -0
  762. package/src/ts/mcp-server/schema.json +6 -0
  763. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +27 -12
  764. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  765. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  766. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  767. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  768. package/src/ts/nx-generator/generator.d.ts +3 -0
  769. package/src/ts/nx-generator/generator.js +124 -73
  770. package/src/ts/nx-generator/generator.js.map +1 -1
  771. package/src/ts/nx-generator/schema.d.js +6 -0
  772. package/src/ts/nx-generator/schema.d.js.map +1 -0
  773. package/src/ts/nx-generator/schema.d.ts +1 -0
  774. package/src/ts/nx-generator/schema.json +5 -0
  775. package/src/ts/nx-migration/files/migration.spec.ts.template +26 -0
  776. package/src/ts/nx-migration/files/migration.ts.template +65 -0
  777. package/src/ts/nx-migration/files/prompt.md.template +46 -0
  778. package/src/ts/nx-migration/generator.d.ts +27 -0
  779. package/src/ts/nx-migration/generator.js +141 -0
  780. package/src/ts/nx-migration/generator.js.map +1 -0
  781. package/src/ts/nx-migration/schema.d.js +6 -0
  782. package/src/ts/nx-migration/schema.d.js.map +1 -0
  783. package/src/ts/nx-migration/schema.d.ts +13 -0
  784. package/src/ts/nx-migration/schema.json +63 -0
  785. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +36 -25
  786. package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
  787. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  788. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  789. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  790. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  791. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  792. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +4 -4
  793. package/src/ts/nx-plugin/generator.d.ts +3 -0
  794. package/src/ts/nx-plugin/generator.js +67 -50
  795. package/src/ts/nx-plugin/generator.js.map +1 -1
  796. package/src/ts/nx-plugin/schema.d.js +9 -0
  797. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  798. package/src/ts/nx-plugin/schema.json +5 -0
  799. package/src/ts/nx-plugin/utils.d.ts +27 -2
  800. package/src/ts/nx-plugin/utils.js +66 -51
  801. package/src/ts/nx-plugin/utils.js.map +1 -1
  802. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +551 -642
  803. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +16 -6
  804. package/src/ts/rdb/agent-connection/generator.js +44 -39
  805. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  806. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  807. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  808. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  809. package/src/ts/rdb/agent-connection/schema.json +5 -0
  810. package/src/ts/rdb/files/Dockerfile.template +19 -1
  811. package/src/ts/rdb/files/config.json.template +14 -0
  812. package/src/ts/rdb/files/prisma.config.ts.template +6 -5
  813. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +9 -11
  814. package/src/ts/rdb/files/src/index.ts.template +1 -2
  815. package/src/ts/rdb/files/src/migration-handler.ts.template +5 -30
  816. package/src/ts/rdb/files/src/prisma.ts.template +33 -25
  817. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  818. package/src/ts/rdb/generator.d.ts +109 -4
  819. package/src/ts/rdb/generator.js +257 -138
  820. package/src/ts/rdb/generator.js.map +1 -1
  821. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +16 -6
  822. package/src/ts/rdb/mcp-server-connection/generator.js +42 -37
  823. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  824. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  825. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  826. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  827. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  828. package/src/ts/rdb/schema.d.js +6 -0
  829. package/src/ts/rdb/schema.d.js.map +1 -0
  830. package/src/ts/rdb/schema.d.ts +1 -0
  831. package/src/ts/rdb/schema.json +7 -1
  832. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
  833. package/src/ts/rdb/smithy-connection/generator.js +48 -43
  834. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  835. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  836. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  837. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  838. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  839. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  840. package/src/ts/rdb/trpc-connection/generator.js +37 -31
  841. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  842. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  843. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  844. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  845. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  846. package/src/ts/rdb/utils.js +9 -11
  847. package/src/ts/rdb/utils.js.map +1 -1
  848. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +17 -16
  849. package/src/ts/react-website/agui/generator.d.ts +97 -0
  850. package/src/ts/react-website/agui/generator.js +114 -67
  851. package/src/ts/react-website/agui/generator.js.map +1 -1
  852. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +1381 -634
  853. package/src/ts/react-website/app/generator.d.ts +142 -2
  854. package/src/ts/react-website/app/generator.js +330 -206
  855. package/src/ts/react-website/app/generator.js.map +1 -1
  856. package/src/ts/react-website/app/schema.d.js +6 -0
  857. package/src/ts/react-website/app/schema.d.js.map +1 -0
  858. package/src/ts/react-website/app/schema.d.ts +1 -1
  859. package/src/ts/react-website/app/schema.json +12 -6
  860. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +161 -26
  861. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +48 -12
  862. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  863. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  864. package/src/ts/react-website/cognito-auth/generator.d.ts +25 -1
  865. package/src/ts/react-website/cognito-auth/generator.js +79 -64
  866. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  867. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +3 -1
  868. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  869. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  870. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  871. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  872. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  873. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  874. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  875. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  876. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  877. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  878. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  879. package/src/ts/react-website/runtime-config/generator.js +29 -31
  880. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  881. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  882. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  883. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  884. package/src/ts/react-website/runtime-config/schema.json +5 -0
  885. package/src/ts/sync/generator.js +137 -60
  886. package/src/ts/sync/generator.js.map +1 -1
  887. package/src/ts/website/app/generator.js +10 -10
  888. package/src/ts/website/app/generator.js.map +1 -1
  889. package/src/ts/website/app/schema.d.js +6 -0
  890. package/src/ts/website/app/schema.d.js.map +1 -0
  891. package/src/ts/website/app/schema.d.ts +1 -1
  892. package/src/ts/website/app/schema.json +11 -6
  893. package/src/ts/website/auth/generator.d.ts +1 -1
  894. package/src/ts/website/auth/generator.js +11 -10
  895. package/src/ts/website/auth/generator.js.map +1 -1
  896. package/src/ts/website/auth/schema.d.js +6 -0
  897. package/src/ts/website/auth/schema.d.js.map +1 -0
  898. package/src/ts/website/auth/schema.d.ts +1 -0
  899. package/src/ts/website/auth/schema.json +5 -0
  900. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +21 -0
  901. package/src/utils/add-dependencies.d.ts +38 -0
  902. package/src/utils/add-dependencies.js +83 -0
  903. package/src/utils/add-dependencies.js.map +1 -0
  904. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  905. package/src/utils/agent-chat/agent-chat.js +31 -0
  906. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  907. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  908. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  909. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  910. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  911. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  912. package/src/utils/agent-connection/agent-connection.d.ts +139 -26
  913. package/src/utils/agent-connection/agent-connection.js +500 -103
  914. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  915. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  916. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  917. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  918. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  919. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  920. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +33 -33
  921. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  922. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  923. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +47 -0
  924. package/src/utils/agent-connection/files/core-strands/base/tool-errors-strands.ts.template +29 -0
  925. package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +1 -1
  926. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  927. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  928. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  929. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  930. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  931. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  932. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +99 -0
  933. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  934. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  935. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  936. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +6 -18
  937. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  938. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
  939. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  940. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  941. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  942. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +54 -0
  943. package/src/utils/agent-core-constructs/agent-core-constructs.js +153 -38
  944. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  945. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +170 -6
  946. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +87 -0
  947. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +624 -0
  948. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  949. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +212 -1
  950. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +505 -0
  951. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  952. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +159 -13
  953. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  954. package/src/utils/api-constructs/api-constructs.d.ts +30 -2
  955. package/src/utils/api-constructs/api-constructs.js +82 -32
  956. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  957. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +20 -15
  958. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +24 -16
  959. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +26 -9
  960. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +70 -0
  961. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  962. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +56 -17
  963. package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
  964. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  965. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +101 -12
  966. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +194 -8
  967. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  968. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  969. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  970. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  971. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  972. package/src/utils/ast/website.js +18 -20
  973. package/src/utils/ast/website.js.map +1 -1
  974. package/src/utils/ast.d.ts +9 -0
  975. package/src/utils/ast.js +125 -86
  976. package/src/utils/ast.js.map +1 -1
  977. package/src/utils/base-tsconfig.d.ts +30 -0
  978. package/src/utils/base-tsconfig.js +32 -0
  979. package/src/utils/base-tsconfig.js.map +1 -0
  980. package/src/utils/bundle/bundle.d.ts +6 -1
  981. package/src/utils/bundle/bundle.js +57 -47
  982. package/src/utils/bundle/bundle.js.map +1 -1
  983. package/src/utils/commands.d.ts +14 -3
  984. package/src/utils/commands.js +83 -28
  985. package/src/utils/commands.js.map +1 -1
  986. package/src/utils/config/index.d.ts +18 -2
  987. package/src/utils/config/index.js +5 -4
  988. package/src/utils/config/index.js.map +1 -1
  989. package/src/utils/config/utils.d.ts +8 -2
  990. package/src/utils/config/utils.js +56 -59
  991. package/src/utils/config/utils.js.map +1 -1
  992. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +16 -3
  993. package/src/utils/connection/open-api/react.d.ts +31 -5
  994. package/src/utils/connection/open-api/react.js +106 -76
  995. package/src/utils/connection/open-api/react.js.map +1 -1
  996. package/src/utils/containers.js +22 -23
  997. package/src/utils/containers.js.map +1 -1
  998. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +38 -0
  999. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js +93 -0
  1000. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -0
  1001. package/src/utils/dcr-proxy-constructs/files/cdk/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.ts.template +227 -0
  1002. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorization-server-metadata.ts.template +39 -0
  1003. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorize.ts.template +26 -0
  1004. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/mcp-proxy.ts.template +89 -0
  1005. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/protected-resource-metadata.ts.template +13 -0
  1006. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/register.ts.template +70 -0
  1007. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/token.ts.template +75 -0
  1008. package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +410 -0
  1009. package/src/utils/declared-dependencies.d.ts +140 -0
  1010. package/src/utils/declared-dependencies.js +64 -0
  1011. package/src/utils/declared-dependencies.js.map +1 -0
  1012. package/src/utils/dependencies.d.ts +18 -0
  1013. package/src/utils/dependencies.js +206 -0
  1014. package/src/utils/dependencies.js.map +1 -0
  1015. package/src/utils/docker.d.ts +87 -0
  1016. package/src/utils/docker.js +125 -0
  1017. package/src/utils/docker.js.map +1 -0
  1018. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -1
  1019. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +39 -41
  1020. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  1021. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +18 -5
  1022. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +1 -1
  1023. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +24 -17
  1024. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  1025. package/src/utils/files/common/constructs/src/core/cloudfront.ts.template +14 -0
  1026. package/src/utils/files/common/constructs/src/core/index.ts.template +5 -4
  1027. package/src/utils/files/common/constructs/src/index.ts.template +2 -2
  1028. package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
  1029. package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
  1030. package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
  1031. package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/create-local-table.ts.template +65 -31
  1032. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  1033. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +103 -0
  1034. package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +2 -0
  1035. package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +2 -0
  1036. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
  1037. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +3 -3
  1038. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  1039. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  1040. package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
  1041. package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +115 -0
  1042. package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
  1043. package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
  1044. package/src/utils/files/shadcn/components.json.template +1 -1
  1045. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +63 -72
  1046. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  1047. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
  1048. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  1049. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
  1050. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  1051. package/src/utils/format.d.ts +39 -4
  1052. package/src/utils/format.js +327 -127
  1053. package/src/utils/format.js.map +1 -1
  1054. package/src/utils/fs.d.ts +16 -5
  1055. package/src/utils/fs.js +29 -15
  1056. package/src/utils/fs.js.map +1 -1
  1057. package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
  1058. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  1059. package/src/utils/function-constructs/function-constructs.js +22 -25
  1060. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  1061. package/src/utils/generators.js +18 -20
  1062. package/src/utils/generators.js.map +1 -1
  1063. package/src/utils/git.js +19 -34
  1064. package/src/utils/git.js.map +1 -1
  1065. package/src/utils/iac-providers.js +5 -5
  1066. package/src/utils/iac-providers.js.map +1 -1
  1067. package/src/utils/iac.js +12 -14
  1068. package/src/utils/iac.js.map +1 -1
  1069. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +153 -24
  1070. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
  1071. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +129 -12
  1072. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  1073. package/src/utils/identity-constructs/identity-constructs.d.ts +10 -0
  1074. package/src/utils/identity-constructs/identity-constructs.js +52 -31
  1075. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  1076. package/src/utils/init.d.ts +72 -0
  1077. package/src/utils/init.js +300 -0
  1078. package/src/utils/init.js.map +1 -0
  1079. package/src/utils/install.d.ts +32 -0
  1080. package/src/utils/install.js +58 -0
  1081. package/src/utils/install.js.map +1 -0
  1082. package/src/utils/js.js +27 -20
  1083. package/src/utils/js.js.map +1 -1
  1084. package/src/utils/mcp.d.ts +9 -0
  1085. package/src/utils/mcp.js +42 -41
  1086. package/src/utils/mcp.js.map +1 -1
  1087. package/src/utils/metrics.d.ts +7 -1
  1088. package/src/utils/metrics.js +61 -46
  1089. package/src/utils/metrics.js.map +1 -1
  1090. package/src/utils/migration-manifest.d.ts +58 -0
  1091. package/src/utils/migration-manifest.js +76 -0
  1092. package/src/utils/migration-manifest.js.map +1 -0
  1093. package/src/utils/migration-versions.d.ts +145 -0
  1094. package/src/utils/migration-versions.js +250 -0
  1095. package/src/utils/migration-versions.js.map +1 -0
  1096. package/src/utils/mock-project-graph.js +8 -12
  1097. package/src/utils/mock-project-graph.js.map +1 -1
  1098. package/src/utils/module-format.d.ts +25 -0
  1099. package/src/utils/module-format.js +45 -0
  1100. package/src/utils/module-format.js.map +1 -0
  1101. package/src/utils/names.d.ts +22 -0
  1102. package/src/utils/names.js +44 -48
  1103. package/src/utils/names.js.map +1 -1
  1104. package/src/utils/npm-scope.d.ts +0 -4
  1105. package/src/utils/npm-scope.js +7 -20
  1106. package/src/utils/npm-scope.js.map +1 -1
  1107. package/src/utils/nx.d.ts +74 -3
  1108. package/src/utils/nx.js +196 -75
  1109. package/src/utils/nx.js.map +1 -1
  1110. package/src/utils/nxlv-python.js +27 -15
  1111. package/src/utils/nxlv-python.js.map +1 -1
  1112. package/src/utils/object.js +5 -11
  1113. package/src/utils/object.js.map +1 -1
  1114. package/src/utils/paths.js +11 -15
  1115. package/src/utils/paths.js.map +1 -1
  1116. package/src/utils/pkg-manager.js +4 -9
  1117. package/src/utils/pkg-manager.js.map +1 -1
  1118. package/src/utils/pnpm-workspace.d.ts +1 -12
  1119. package/src/utils/pnpm-workspace.js +16 -43
  1120. package/src/utils/pnpm-workspace.js.map +1 -1
  1121. package/src/utils/port.d.ts +28 -6
  1122. package/src/utils/port.js +67 -28
  1123. package/src/utils/port.js.map +1 -1
  1124. package/src/utils/project-package-json.d.ts +39 -0
  1125. package/src/utils/project-package-json.js +119 -0
  1126. package/src/utils/project-package-json.js.map +1 -0
  1127. package/src/utils/py.d.ts +17 -3
  1128. package/src/utils/py.js +73 -48
  1129. package/src/utils/py.js.map +1 -1
  1130. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +72 -18
  1131. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +112 -88
  1132. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +127 -53
  1133. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +60 -53
  1134. package/src/utils/rdb-constructs/rdb-constructs.d.ts +12 -1
  1135. package/src/utils/rdb-constructs/rdb-constructs.js +38 -41
  1136. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  1137. package/src/utils/ruff.d.ts +59 -0
  1138. package/src/utils/ruff.js +140 -0
  1139. package/src/utils/ruff.js.map +1 -0
  1140. package/src/utils/shared-constructs-constants.d.ts +46 -4
  1141. package/src/utils/shared-constructs-constants.js +50 -15
  1142. package/src/utils/shared-constructs-constants.js.map +1 -1
  1143. package/src/utils/shared-constructs.d.ts +4 -1
  1144. package/src/utils/shared-constructs.js +62 -67
  1145. package/src/utils/shared-constructs.js.map +1 -1
  1146. package/src/utils/shared-dynamodb-scripts.d.ts +18 -0
  1147. package/src/utils/shared-dynamodb-scripts.js +35 -0
  1148. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  1149. package/src/utils/shared-infra-config.js +31 -30
  1150. package/src/utils/shared-infra-config.js.map +1 -1
  1151. package/src/utils/shared-infra-scripts.d.ts +26 -0
  1152. package/src/utils/shared-infra-scripts.js +58 -0
  1153. package/src/utils/shared-infra-scripts.js.map +1 -0
  1154. package/src/utils/shared-rdb-scripts.d.ts +27 -0
  1155. package/src/utils/shared-rdb-scripts.js +59 -0
  1156. package/src/utils/shared-rdb-scripts.js.map +1 -0
  1157. package/src/utils/shared-scripts.d.ts +1 -4
  1158. package/src/utils/shared-scripts.js +12 -38
  1159. package/src/utils/shared-scripts.js.map +1 -1
  1160. package/src/utils/shared-shadcn.d.ts +26 -1
  1161. package/src/utils/shared-shadcn.js +93 -67
  1162. package/src/utils/shared-shadcn.js.map +1 -1
  1163. package/src/utils/test-git.d.ts +39 -0
  1164. package/src/utils/test-git.js +117 -0
  1165. package/src/utils/test-git.js.map +1 -0
  1166. package/src/utils/test.d.ts +10 -0
  1167. package/src/utils/test.js +44 -25
  1168. package/src/utils/test.js.map +1 -1
  1169. package/src/utils/toml.d.ts +5 -0
  1170. package/src/utils/toml.js +17 -15
  1171. package/src/utils/toml.js.map +1 -1
  1172. package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
  1173. package/src/utils/version-upgrade-migration/migration.js +16 -0
  1174. package/src/utils/version-upgrade-migration/migration.js.map +1 -0
  1175. package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +45 -0
  1176. package/src/utils/version-upgrade-migration/nx-package-updates.js +50 -0
  1177. package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
  1178. package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +76 -0
  1179. package/src/utils/version-upgrade-migration/owned-dependencies.js +146 -0
  1180. package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
  1181. package/src/utils/version-upgrade-migration/register.d.ts +29 -0
  1182. package/src/utils/version-upgrade-migration/register.js +42 -0
  1183. package/src/utils/version-upgrade-migration/register.js.map +1 -0
  1184. package/src/utils/version-upgrade-migration/sync-embedded-versions.d.ts +26 -0
  1185. package/src/utils/version-upgrade-migration/sync-embedded-versions.js +304 -0
  1186. package/src/utils/version-upgrade-migration/sync-embedded-versions.js.map +1 -0
  1187. package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
  1188. package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
  1189. package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
  1190. package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
  1191. package/src/utils/version-upgrade-migration/sync-vended-versions.js +518 -0
  1192. package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
  1193. package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
  1194. package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
  1195. package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
  1196. package/src/utils/versions.d.ts +206 -106
  1197. package/src/utils/versions.js +238 -119
  1198. package/src/utils/versions.js.map +1 -1
  1199. package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +2 -2
  1200. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +207 -41
  1201. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  1202. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +145 -93
  1203. package/src/utils/website-constructs/website-constructs.d.ts +11 -0
  1204. package/src/utils/website-constructs/website-constructs.js +49 -30
  1205. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  1206. package/bin/aws-nx-mcp.d.ts +0 -2
  1207. package/bin/aws-nx-mcp.js +0 -17
  1208. package/bin/aws-nx-mcp.js.map +0 -1
  1209. package/sdk/connection.d.ts +0 -6
  1210. package/sdk/connection.js +0 -10
  1211. package/sdk/connection.js.map +0 -1
  1212. package/sdk/license.d.ts +0 -8
  1213. package/sdk/license.js +0 -13
  1214. package/sdk/license.js.map +0 -1
  1215. package/sdk/open-api.d.ts +0 -10
  1216. package/sdk/open-api.js +0 -15
  1217. package/sdk/open-api.js.map +0 -1
  1218. package/sdk/py.d.ts +0 -14
  1219. package/sdk/py.js +0 -18
  1220. package/sdk/py.js.map +0 -1
  1221. package/sdk/terraform.d.ts +0 -6
  1222. package/sdk/terraform.js +0 -11
  1223. package/sdk/terraform.js.map +0 -1
  1224. package/sdk/ts.d.ts +0 -29
  1225. package/sdk/ts.js +0 -47
  1226. package/sdk/ts.js.map +0 -1
  1227. package/sdk/utils/ast.js +0 -12
  1228. package/sdk/utils/ast.js.map +0 -1
  1229. package/sdk/utils/format.js +0 -10
  1230. package/sdk/utils/format.js.map +0 -1
  1231. package/sdk/utils/test.js +0 -10
  1232. package/sdk/utils/test.js.map +0 -1
  1233. package/src/connection/agent-serve-local.d.ts +0 -33
  1234. package/src/connection/agent-serve-local.js +0 -48
  1235. package/src/connection/agent-serve-local.js.map +0 -1
  1236. package/src/connection/serve-local.js +0 -41
  1237. package/src/connection/serve-local.js.map +0 -1
  1238. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  1239. package/src/py/agent/files/ag-ui/main.py.template +0 -37
  1240. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  1241. package/src/py/agent/react-connection/serve-local.js +0 -30
  1242. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  1243. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  1244. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  1245. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  1246. package/src/ts/agent/react-connection/serve-local.js +0 -19
  1247. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  1248. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  1249. package/src/ts/dynamodb/files/scripts/pull-image.ts.template +0 -15
  1250. package/src/ts/dynamodb/files/scripts/start-container.ts.template +0 -81
  1251. package/src/ts/dynamodb/files/src/constants.ts.template +0 -9
  1252. package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
  1253. package/src/ts/rdb/files/scripts/pull-image.ts.template +0 -15
  1254. package/src/ts/rdb/files/scripts/start-container.ts.template +0 -84
  1255. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  1256. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  1257. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  1258. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  1259. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  1260. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  1261. package/src/utils/files/common/scripts/src/infra-deploy.ts.template +0 -2
  1262. package/src/utils/files/common/scripts/src/infra-destroy.ts.template +0 -2
  1263. package/src/utils/files/terraform/scripts/reset-runtime-config.ts.template +0 -25
  1264. /package/src/py/agent/files/{a2a → strands/a2a}/main.py.template +0 -0
  1265. /package/src/py/agent/files/{common → strands/common}/__init__.py.template +0 -0
  1266. /package/src/smithy/project/files/{smithy-build.json.template → service/smithy-build.json.template} +0 -0
  1267. /package/src/smithy/project/files/{src → service/src}/main.smithy.template +0 -0
  1268. /package/src/utils/agent-connection/files/{py-core-runtime-config/with_session_id.py.template → py-core-strands/base/with_session_id_strands.py.template} +0 -0
  1269. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  1270. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  1271. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { applyGritQL, GRIT_INSERT_PLACEHOLDER, insertViaGritQL, matchGritQL } from "../../../utils/ast.js";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR } from "../../../utils/shared-constructs-constants.js";
7
+ /**
8
+ * Bring existing workspaces up to the generators' current gateway-target
9
+ * support, so agents can be attached to an http-protocol AgentCore Gateway:
10
+ *
11
+ * - The vended `AgentCoreGateway` core construct gains the `protocol` prop
12
+ * (http gateways have no protocol type, which AgentCore Runtime targets
13
+ * require) and the `addAgent` / `addAgentTarget` methods.
14
+ * - Vended agent constructs gain the `agentName` member `addAgent` reads as
15
+ * the default gateway target name.
16
+ *
17
+ * Both files are generated with `KeepExisting`, so without this an upgraded
18
+ * workspace pairs new app-level constructs with stale core ones.
19
+ */ const GATEWAY_CONSTRUCT_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/agentcore-gateway/agentcore-gateway.ts`;
20
+ const AGENTS_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/agents`;
21
+ const PROTOCOL_PROP = `/**
22
+ * The gateway's protocol. An \`mcp\` gateway aggregates MCP server targets
23
+ * into a single MCP endpoint. An \`http\` gateway has no protocol type and
24
+ * proxies requests to AgentCore Runtime targets via path-based routing
25
+ * (\`/<targetName>/invocations\`) — the target type AgentCore only allows on
26
+ * gateways without a protocol type.
27
+ *
28
+ * @default 'mcp'
29
+ */
30
+ readonly protocol?: 'mcp' | 'http';`;
31
+ const PROTOCOL_CONSTRUCTOR_STATEMENTS = `this.protocol = props?.protocol ?? 'mcp';
32
+ `;
33
+ const PROTOCOL_TYPE_REMOVAL = `
34
+ if (this.protocol === 'http') {
35
+ // AgentCore Runtime targets require a gateway without a protocol type,
36
+ // which the Gateway L2 cannot express — it always renders MCP — so
37
+ // remove the protocol from the underlying CloudFormation resource.
38
+ const cfnGateway = this.gateway.node.defaultChild as agentcore.CfnGateway;
39
+ cfnGateway.addPropertyDeletionOverride('ProtocolType');
40
+ cfnGateway.addPropertyDeletionOverride('ProtocolConfiguration');
41
+ }`;
42
+ const AGENT_TARGET_METHODS = `
43
+ /**
44
+ * Add an agent runtime construct as a target of this Gateway. Requires the
45
+ * \`http\` protocol — the gateway proxies requests for the agent under
46
+ * \`<gatewayUrl>/<targetName>/invocations\`, without protocol translation.
47
+ *
48
+ * The target name defaults to the agent construct's \`agentName\` (its
49
+ * project's class name in kebab-case, e.g. \`MyAgent\` -> \`my-agent\`). It
50
+ * forms the target's invocation path, so renaming it later is a breaking
51
+ * change for consumers.
52
+ */
53
+ public addAgent(
54
+ agent: Construct & {
55
+ readonly agentCoreRuntime: agentcore.Runtime;
56
+ readonly agentName: string;
57
+ },
58
+ props?: {
59
+ gatewayTargetName?: string;
60
+ },
61
+ ): agentcore.CfnGatewayTarget {
62
+ return this.addAgentTarget({
63
+ gatewayTargetName: props?.gatewayTargetName ?? agent.agentName,
64
+ agentRuntimeArn: agent.agentCoreRuntime.agentRuntimeArn,
65
+ });
66
+ }
67
+
68
+ /**
69
+ * Register an agent runtime ARN as a Gateway target. Prefer
70
+ * {@link addAgent} when the construct is in scope.
71
+ */
72
+ public addAgentTarget(props: {
73
+ gatewayTargetName: string;
74
+ agentRuntimeArn: string;
75
+ }): agentcore.CfnGatewayTarget {
76
+ if (this.protocol !== 'http') {
77
+ throw new Error(
78
+ \`Agent runtime targets require an http-protocol gateway, but this gateway uses '\${this.protocol}'.\`,
79
+ );
80
+ }
81
+
82
+ // The construct id is derived from the target name so the two change
83
+ // together — target names are unique per gateway, and replacing a target
84
+ // under an unchanged name fails with AlreadyExists.
85
+ const target = new agentcore.CfnGatewayTarget(
86
+ this,
87
+ \`Target-\${props.gatewayTargetName}\`,
88
+ {
89
+ gatewayIdentifier: this.gateway.gatewayId,
90
+ name: props.gatewayTargetName,
91
+ targetConfiguration: {
92
+ http: {
93
+ agentcoreRuntime: {
94
+ arn: props.agentRuntimeArn,
95
+ qualifier: 'DEFAULT',
96
+ },
97
+ },
98
+ },
99
+ // The bare gateway IAM role credential: runtime targets reject the
100
+ // iamCredentialProvider detail MCP targets carry.
101
+ credentialProviderConfigurations: [
102
+ {
103
+ credentialProviderType: 'GATEWAY_IAM_ROLE',
104
+ },
105
+ ],
106
+ },
107
+ );
108
+
109
+ // Grant the gateway role invoke access to the target runtime before the
110
+ // target is created — AgentCore validates access to the runtime during
111
+ // target creation.
112
+ const grant = this.gateway.role.addToPrincipalPolicy(
113
+ new iam.PolicyStatement({
114
+ actions: [
115
+ 'bedrock-agentcore:InvokeAgentRuntime',
116
+ 'bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream',
117
+ // A2A targets additionally serve their agent card via the gateway.
118
+ 'bedrock-agentcore:GetAgentCard',
119
+ ],
120
+ resources: [props.agentRuntimeArn, \`\${props.agentRuntimeArn}/*\`],
121
+ }),
122
+ );
123
+ if (grant.policyDependable) {
124
+ target.node.addDependency(grant.policyDependable);
125
+ }
126
+
127
+ return target;
128
+ }`;
129
+ /**
130
+ * Add the `protocol` prop, its constructor handling and the agent-target
131
+ * methods to the vended `AgentCoreGateway` core construct.
132
+ */ const migrateGatewayConstruct = async (tree, nextSteps)=>{
133
+ if (!tree.exists(GATEWAY_CONSTRUCT_FILE)) {
134
+ // No vended gateway construct in this workspace - nothing to migrate.
135
+ return;
136
+ }
137
+ if ((tree.read(GATEWAY_CONSTRUCT_FILE, 'utf-8') ?? '').includes('addAgentTarget')) {
138
+ // Already migrated.
139
+ return;
140
+ }
141
+ const divergedMessage = `${GATEWAY_CONSTRUCT_FILE}: the AgentCoreGateway construct has diverged from the generated shape - left untouched. Re-run the agentcore-gateway generator in a fresh workspace to see the current construct, which supports agent runtime targets via a 'protocol' prop and addAgent()/addAgentTarget() methods.`;
142
+ // Anchored on the shapes every vended version of the construct carries: the
143
+ // props interface, the class field the protocol field is inserted after,
144
+ // and the Gateway creation in the constructor.
145
+ const hasVendedShape = await matchGritQL(tree, GATEWAY_CONSTRUCT_FILE, '`export interface AgentCoreGatewayProps { $_ }`') && await matchGritQL(tree, GATEWAY_CONSTRUCT_FILE, '`private readonly targetRuntimeArns: string[] = []`') && await matchGritQL(tree, GATEWAY_CONSTRUCT_FILE, "`this.gateway = new agentcore.Gateway(this, 'Gateway', $_)`");
146
+ if (!hasVendedShape) {
147
+ nextSteps.push(divergedMessage);
148
+ return;
149
+ }
150
+ // 1. The protocol prop on AgentCoreGatewayProps. The placeholder keeps the
151
+ // prop's doc comment (with its backticks) out of the GritQL pattern.
152
+ await insertViaGritQL(tree, GATEWAY_CONSTRUCT_FILE, `\`export interface AgentCoreGatewayProps { $members }\` where {
153
+ $members <: not contains \`protocol\`
154
+ } => \`export interface AgentCoreGatewayProps { $members
155
+ ${GRIT_INSERT_PLACEHOLDER}
156
+ }\``, PROTOCOL_PROP);
157
+ // 2. The protocol class field. Matched without the trailing semicolon —
158
+ // GritQL parses the snippet standalone, where the semicolon is not part
159
+ // of the field's AST node.
160
+ await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, `\`private readonly targetRuntimeArns: string[] = []\` as $field where {
161
+ $program <: not contains \`private readonly protocol\`
162
+ } => \`$field;
163
+ private readonly protocol: 'mcp' | 'http'\``);
164
+ // 3. Assign the field and remove the protocol type for http gateways.
165
+ await insertViaGritQL(tree, GATEWAY_CONSTRUCT_FILE, `\`this.gateway = new agentcore.Gateway($args);\` as $stmt where {
166
+ $program <: not contains \`this.protocol = props\`
167
+ } => \`${GRIT_INSERT_PLACEHOLDER}
168
+ $stmt\``, PROTOCOL_CONSTRUCTOR_STATEMENTS);
169
+ await insertViaGritQL(tree, GATEWAY_CONSTRUCT_FILE, `\`this.gateway = new agentcore.Gateway($args);\` as $stmt where {
170
+ $program <: not contains \`addPropertyDeletionOverride\`
171
+ } => \`$stmt
172
+ ${GRIT_INSERT_PLACEHOLDER}\``, PROTOCOL_TYPE_REMOVAL);
173
+ // 4. The agent-target methods, inserted after addGatewayTarget (present in
174
+ // every vended version that also has the readiness probe field).
175
+ const addedMethods = await insertViaGritQL(tree, GATEWAY_CONSTRUCT_FILE, `\`public addGatewayTarget($params): agentcore.CfnGatewayTarget { $body }\` as $method where {
176
+ $program <: not contains \`addAgentTarget\`
177
+ } => \`$method
178
+ ${GRIT_INSERT_PLACEHOLDER}\``, AGENT_TARGET_METHODS);
179
+ if (!addedMethods) {
180
+ nextSteps.push(divergedMessage);
181
+ return;
182
+ }
183
+ };
184
+ /**
185
+ * Add the `agentName` member to each vended agent construct, which
186
+ * `AgentCoreGateway.addAgent` reads as the default gateway target name.
187
+ */ const migrateAgentConstructs = async (tree, nextSteps)=>{
188
+ if (!tree.exists(AGENTS_DIR)) {
189
+ return;
190
+ }
191
+ for (const dir of tree.children(AGENTS_DIR)){
192
+ const constructFile = `${AGENTS_DIR}/${dir}/${dir}.ts`;
193
+ if (!tree.exists(constructFile)) {
194
+ continue;
195
+ }
196
+ if ((tree.read(constructFile, 'utf-8') ?? '').includes('agentName')) {
197
+ continue;
198
+ }
199
+ const added = await insertViaGritQL(tree, constructFile, `\`public readonly agentCoreRuntime: Runtime\` as $field => \`$field;
200
+ ${GRIT_INSERT_PLACEHOLDER}\``, `/** Default Gateway target name for this agent. */
201
+ public readonly agentName = '${dir}'`);
202
+ if (!added) {
203
+ nextSteps.push(`${constructFile}: the agent construct has diverged from the generated shape - left untouched. To attach this agent to a gateway with addAgent(), add a \`public readonly agentName = '${dir}';\` member (or use addAgentTarget() with an explicit target name).`);
204
+ }
205
+ }
206
+ };
207
+ export default async function migration(tree) {
208
+ const nextSteps = [];
209
+ await migrateGatewayConstruct(tree, nextSteps);
210
+ await migrateAgentConstructs(tree, nextSteps);
211
+ await formatFilesInSubtree(tree);
212
+ return {
213
+ nextSteps
214
+ };
215
+ }
216
+
217
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/latest/gateway-agent-targets/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { MigrationReturnObject, Tree } from '@nx/devkit';\nimport {\n applyGritQL,\n GRIT_INSERT_PLACEHOLDER,\n insertViaGritQL,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n} from '../../../utils/shared-constructs-constants';\n\n/**\n * Bring existing workspaces up to the generators' current gateway-target\n * support, so agents can be attached to an http-protocol AgentCore Gateway:\n *\n * - The vended `AgentCoreGateway` core construct gains the `protocol` prop\n * (http gateways have no protocol type, which AgentCore Runtime targets\n * require) and the `addAgent` / `addAgentTarget` methods.\n * - Vended agent constructs gain the `agentName` member `addAgent` reads as\n * the default gateway target name.\n *\n * Both files are generated with `KeepExisting`, so without this an upgraded\n * workspace pairs new app-level constructs with stale core ones.\n */\n\nconst GATEWAY_CONSTRUCT_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/agentcore-gateway/agentcore-gateway.ts`;\n\nconst AGENTS_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/agents`;\n\nconst PROTOCOL_PROP = `/**\n * The gateway's protocol. An \\`mcp\\` gateway aggregates MCP server targets\n * into a single MCP endpoint. An \\`http\\` gateway has no protocol type and\n * proxies requests to AgentCore Runtime targets via path-based routing\n * (\\`/<targetName>/invocations\\`) — the target type AgentCore only allows on\n * gateways without a protocol type.\n *\n * @default 'mcp'\n */\n readonly protocol?: 'mcp' | 'http';`;\n\nconst PROTOCOL_CONSTRUCTOR_STATEMENTS = `this.protocol = props?.protocol ?? 'mcp';\n`;\n\nconst PROTOCOL_TYPE_REMOVAL = `\n if (this.protocol === 'http') {\n // AgentCore Runtime targets require a gateway without a protocol type,\n // which the Gateway L2 cannot express — it always renders MCP — so\n // remove the protocol from the underlying CloudFormation resource.\n const cfnGateway = this.gateway.node.defaultChild as agentcore.CfnGateway;\n cfnGateway.addPropertyDeletionOverride('ProtocolType');\n cfnGateway.addPropertyDeletionOverride('ProtocolConfiguration');\n }`;\n\nconst AGENT_TARGET_METHODS = `\n /**\n * Add an agent runtime construct as a target of this Gateway. Requires the\n * \\`http\\` protocol — the gateway proxies requests for the agent under\n * \\`<gatewayUrl>/<targetName>/invocations\\`, without protocol translation.\n *\n * The target name defaults to the agent construct's \\`agentName\\` (its\n * project's class name in kebab-case, e.g. \\`MyAgent\\` -> \\`my-agent\\`). It\n * forms the target's invocation path, so renaming it later is a breaking\n * change for consumers.\n */\n public addAgent(\n agent: Construct & {\n readonly agentCoreRuntime: agentcore.Runtime;\n readonly agentName: string;\n },\n props?: {\n gatewayTargetName?: string;\n },\n ): agentcore.CfnGatewayTarget {\n return this.addAgentTarget({\n gatewayTargetName: props?.gatewayTargetName ?? agent.agentName,\n agentRuntimeArn: agent.agentCoreRuntime.agentRuntimeArn,\n });\n }\n\n /**\n * Register an agent runtime ARN as a Gateway target. Prefer\n * {@link addAgent} when the construct is in scope.\n */\n public addAgentTarget(props: {\n gatewayTargetName: string;\n agentRuntimeArn: string;\n }): agentcore.CfnGatewayTarget {\n if (this.protocol !== 'http') {\n throw new Error(\n \\`Agent runtime targets require an http-protocol gateway, but this gateway uses '\\${this.protocol}'.\\`,\n );\n }\n\n // The construct id is derived from the target name so the two change\n // together — target names are unique per gateway, and replacing a target\n // under an unchanged name fails with AlreadyExists.\n const target = new agentcore.CfnGatewayTarget(\n this,\n \\`Target-\\${props.gatewayTargetName}\\`,\n {\n gatewayIdentifier: this.gateway.gatewayId,\n name: props.gatewayTargetName,\n targetConfiguration: {\n http: {\n agentcoreRuntime: {\n arn: props.agentRuntimeArn,\n qualifier: 'DEFAULT',\n },\n },\n },\n // The bare gateway IAM role credential: runtime targets reject the\n // iamCredentialProvider detail MCP targets carry.\n credentialProviderConfigurations: [\n {\n credentialProviderType: 'GATEWAY_IAM_ROLE',\n },\n ],\n },\n );\n\n // Grant the gateway role invoke access to the target runtime before the\n // target is created — AgentCore validates access to the runtime during\n // target creation.\n const grant = this.gateway.role.addToPrincipalPolicy(\n new iam.PolicyStatement({\n actions: [\n 'bedrock-agentcore:InvokeAgentRuntime',\n 'bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream',\n // A2A targets additionally serve their agent card via the gateway.\n 'bedrock-agentcore:GetAgentCard',\n ],\n resources: [props.agentRuntimeArn, \\`\\${props.agentRuntimeArn}/*\\`],\n }),\n );\n if (grant.policyDependable) {\n target.node.addDependency(grant.policyDependable);\n }\n\n return target;\n }`;\n\n/**\n * Add the `protocol` prop, its constructor handling and the agent-target\n * methods to the vended `AgentCoreGateway` core construct.\n */\nconst migrateGatewayConstruct = async (\n tree: Tree,\n nextSteps: string[],\n): Promise<void> => {\n if (!tree.exists(GATEWAY_CONSTRUCT_FILE)) {\n // No vended gateway construct in this workspace - nothing to migrate.\n return;\n }\n\n if (\n (tree.read(GATEWAY_CONSTRUCT_FILE, 'utf-8') ?? '').includes(\n 'addAgentTarget',\n )\n ) {\n // Already migrated.\n return;\n }\n\n const divergedMessage = `${GATEWAY_CONSTRUCT_FILE}: the AgentCoreGateway construct has diverged from the generated shape - left untouched. Re-run the agentcore-gateway generator in a fresh workspace to see the current construct, which supports agent runtime targets via a 'protocol' prop and addAgent()/addAgentTarget() methods.`;\n\n // Anchored on the shapes every vended version of the construct carries: the\n // props interface, the class field the protocol field is inserted after,\n // and the Gateway creation in the constructor.\n const hasVendedShape =\n (await matchGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n '`export interface AgentCoreGatewayProps { $_ }`',\n )) &&\n (await matchGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n '`private readonly targetRuntimeArns: string[] = []`',\n )) &&\n (await matchGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n \"`this.gateway = new agentcore.Gateway(this, 'Gateway', $_)`\",\n ));\n\n if (!hasVendedShape) {\n nextSteps.push(divergedMessage);\n return;\n }\n\n // 1. The protocol prop on AgentCoreGatewayProps. The placeholder keeps the\n // prop's doc comment (with its backticks) out of the GritQL pattern.\n await insertViaGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n `\\`export interface AgentCoreGatewayProps { $members }\\` where {\n $members <: not contains \\`protocol\\`\n} => \\`export interface AgentCoreGatewayProps { $members\n ${GRIT_INSERT_PLACEHOLDER}\n}\\``,\n PROTOCOL_PROP,\n );\n\n // 2. The protocol class field. Matched without the trailing semicolon —\n // GritQL parses the snippet standalone, where the semicolon is not part\n // of the field's AST node.\n await applyGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n `\\`private readonly targetRuntimeArns: string[] = []\\` as $field where {\n $program <: not contains \\`private readonly protocol\\`\n} => \\`$field;\n private readonly protocol: 'mcp' | 'http'\\``,\n );\n\n // 3. Assign the field and remove the protocol type for http gateways.\n await insertViaGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n `\\`this.gateway = new agentcore.Gateway($args);\\` as $stmt where {\n $program <: not contains \\`this.protocol = props\\`\n} => \\`${GRIT_INSERT_PLACEHOLDER}\n $stmt\\``,\n PROTOCOL_CONSTRUCTOR_STATEMENTS,\n );\n await insertViaGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n `\\`this.gateway = new agentcore.Gateway($args);\\` as $stmt where {\n $program <: not contains \\`addPropertyDeletionOverride\\`\n} => \\`$stmt\n${GRIT_INSERT_PLACEHOLDER}\\``,\n PROTOCOL_TYPE_REMOVAL,\n );\n\n // 4. The agent-target methods, inserted after addGatewayTarget (present in\n // every vended version that also has the readiness probe field).\n const addedMethods = await insertViaGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n `\\`public addGatewayTarget($params): agentcore.CfnGatewayTarget { $body }\\` as $method where {\n $program <: not contains \\`addAgentTarget\\`\n} => \\`$method\n${GRIT_INSERT_PLACEHOLDER}\\``,\n AGENT_TARGET_METHODS,\n );\n\n if (!addedMethods) {\n nextSteps.push(divergedMessage);\n return;\n }\n};\n\n/**\n * Add the `agentName` member to each vended agent construct, which\n * `AgentCoreGateway.addAgent` reads as the default gateway target name.\n */\nconst migrateAgentConstructs = async (\n tree: Tree,\n nextSteps: string[],\n): Promise<void> => {\n if (!tree.exists(AGENTS_DIR)) {\n return;\n }\n for (const dir of tree.children(AGENTS_DIR)) {\n const constructFile = `${AGENTS_DIR}/${dir}/${dir}.ts`;\n if (!tree.exists(constructFile)) {\n continue;\n }\n if ((tree.read(constructFile, 'utf-8') ?? '').includes('agentName')) {\n // Already migrated (or user-added).\n continue;\n }\n const added = await insertViaGritQL(\n tree,\n constructFile,\n `\\`public readonly agentCoreRuntime: Runtime\\` as $field => \\`$field;\n ${GRIT_INSERT_PLACEHOLDER}\\``,\n `/** Default Gateway target name for this agent. */\n public readonly agentName = '${dir}'`,\n );\n if (!added) {\n nextSteps.push(\n `${constructFile}: the agent construct has diverged from the generated shape - left untouched. To attach this agent to a gateway with addAgent(), add a \\`public readonly agentName = '${dir}';\\` member (or use addAgentTarget() with an explicit target name).`,\n );\n }\n }\n};\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n await migrateGatewayConstruct(tree, nextSteps);\n await migrateAgentConstructs(tree, nextSteps);\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["applyGritQL","GRIT_INSERT_PLACEHOLDER","insertViaGritQL","matchGritQL","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","GATEWAY_CONSTRUCT_FILE","AGENTS_DIR","PROTOCOL_PROP","PROTOCOL_CONSTRUCTOR_STATEMENTS","PROTOCOL_TYPE_REMOVAL","AGENT_TARGET_METHODS","migrateGatewayConstruct","tree","nextSteps","exists","read","includes","divergedMessage","hasVendedShape","push","addedMethods","migrateAgentConstructs","dir","children","constructFile","added","migration"],"mappings":"AAAA;;;CAGC,GAED,SACEA,WAAW,EACXC,uBAAuB,EACvBC,eAAe,EACfC,WAAW,QACN,wBAAqB;AAC5B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SACEC,YAAY,EACZC,qBAAqB,QAChB,gDAA6C;AAEpD;;;;;;;;;;;;CAYC,GAED,MAAMC,yBAAyB,GAAGF,aAAa,CAAC,EAAEC,sBAAsB,gDAAgD,CAAC;AAEzH,MAAME,aAAa,GAAGH,aAAa,CAAC,EAAEC,sBAAsB,eAAe,CAAC;AAE5E,MAAMG,gBAAgB,CAAC;;;;;;;;;qCASc,CAAC;AAEtC,MAAMC,kCAAkC,CAAC;AACzC,CAAC;AAED,MAAMC,wBAAwB,CAAC;;;;;;;;KAQ1B,CAAC;AAEN,MAAMC,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsF3B,CAAC;AAEJ;;;CAGC,GACD,MAAMC,0BAA0B,OAC9BC,MACAC;IAEA,IAAI,CAACD,KAAKE,MAAM,CAACT,yBAAyB;QACxC,sEAAsE;QACtE;IACF;IAEA,IACE,AAACO,CAAAA,KAAKG,IAAI,CAACV,wBAAwB,YAAY,EAAC,EAAGW,QAAQ,CACzD,mBAEF;QACA,oBAAoB;QACpB;IACF;IAEA,MAAMC,kBAAkB,GAAGZ,uBAAuB,sRAAsR,CAAC;IAEzU,4EAA4E;IAC5E,yEAAyE;IACzE,+CAA+C;IAC/C,MAAMa,iBACJ,AAAC,MAAMjB,YACLW,MACAP,wBACA,sDAED,MAAMJ,YACLW,MACAP,wBACA,0DAED,MAAMJ,YACLW,MACAP,wBACA;IAGJ,IAAI,CAACa,gBAAgB;QACnBL,UAAUM,IAAI,CAACF;QACf;IACF;IAEA,2EAA2E;IAC3E,wEAAwE;IACxE,MAAMjB,gBACJY,MACAP,wBACA,CAAC;;;EAGH,EAAEN,wBAAwB;GACzB,CAAC,EACAQ;IAGF,wEAAwE;IACxE,2EAA2E;IAC3E,8BAA8B;IAC9B,MAAMT,YACJc,MACAP,wBACA,CAAC;;;6CAGwC,CAAC;IAG5C,sEAAsE;IACtE,MAAML,gBACJY,MACAP,wBACA,CAAC;;OAEE,EAAEN,wBAAwB;WACtB,CAAC,EACRS;IAEF,MAAMR,gBACJY,MACAP,wBACA,CAAC;;;AAGL,EAAEN,wBAAwB,EAAE,CAAC,EACzBU;IAGF,2EAA2E;IAC3E,oEAAoE;IACpE,MAAMW,eAAe,MAAMpB,gBACzBY,MACAP,wBACA,CAAC;;;AAGL,EAAEN,wBAAwB,EAAE,CAAC,EACzBW;IAGF,IAAI,CAACU,cAAc;QACjBP,UAAUM,IAAI,CAACF;QACf;IACF;AACF;AAEA;;;CAGC,GACD,MAAMI,yBAAyB,OAC7BT,MACAC;IAEA,IAAI,CAACD,KAAKE,MAAM,CAACR,aAAa;QAC5B;IACF;IACA,KAAK,MAAMgB,OAAOV,KAAKW,QAAQ,CAACjB,YAAa;QAC3C,MAAMkB,gBAAgB,GAAGlB,WAAW,CAAC,EAAEgB,IAAI,CAAC,EAAEA,IAAI,GAAG,CAAC;QACtD,IAAI,CAACV,KAAKE,MAAM,CAACU,gBAAgB;YAC/B;QACF;QACA,IAAI,AAACZ,CAAAA,KAAKG,IAAI,CAACS,eAAe,YAAY,EAAC,EAAGR,QAAQ,CAAC,cAAc;YAEnE;QACF;QACA,MAAMS,QAAQ,MAAMzB,gBAClBY,MACAY,eACA,CAAC;EACL,EAAEzB,wBAAwB,EAAE,CAAC,EACzB,CAAC;+BACwB,EAAEuB,IAAI,CAAC,CAAC;QAEnC,IAAI,CAACG,OAAO;YACVZ,UAAUM,IAAI,CACZ,GAAGK,cAAc,sKAAsK,EAAEF,IAAI,mEAAmE,CAAC;QAErQ;IACF;AACF;AAEA,eAAe,eAAeI,UAC5Bd,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,MAAMF,wBAAwBC,MAAMC;IACpC,MAAMQ,uBAAuBT,MAAMC;IAEnC,MAAMX,qBAAqBU;IAE3B,OAAO;QAAEC;IAAU;AACrB"}
@@ -0,0 +1,149 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`gateway-cognito-passthrough migration > adds auth=cognito and the Authorization allowlist to a Cognito agent 1`] = `
4
+ "import {
5
+ Runtime,
6
+ RuntimeAuthorizerConfiguration,
7
+ } from 'aws-cdk-lib/aws-bedrockagentcore';
8
+ import { Construct } from 'constructs';
9
+
10
+ export class MyCognitoAgent extends Construct {
11
+ public readonly agentCoreRuntime: Runtime;
12
+ /** Default Gateway target name for this agent. */
13
+ public readonly agentName = 'my-cognito-agent';
14
+ /** Inbound auth — a fronting Gateway uses this to pick its outbound credential. */
15
+ public readonly auth = 'cognito';
16
+
17
+ constructor(scope: Construct, id: string, props: MyCognitoAgentProps) {
18
+ super(scope, id);
19
+ const { identity } = props;
20
+ this.agentCoreRuntime = new Runtime(this, 'MyCognitoAgent', {
21
+ authorizerConfiguration: RuntimeAuthorizerConfiguration.usingCognito(
22
+ identity.userPool,
23
+ [identity.userPoolClient],
24
+ ),
25
+ // Receive the caller's Authorization header (validated by the authorizer).
26
+ requestHeaderConfiguration: {
27
+ allowlistedHeaders: ['Authorization'],
28
+ },
29
+ });
30
+ }
31
+ }
32
+ "
33
+ `;
34
+
35
+ exports[`gateway-cognito-passthrough migration > adds the request_header_configuration block to the terraform runtime 1`] = `
36
+ "resource "aws_bedrockagentcore_agent_runtime" "agent_runtime" {
37
+ agent_runtime_name = "test"
38
+
39
+ dynamic "authorizer_configuration" {
40
+ for_each = var.authorizer_configuration != null && try(var.authorizer_configuration.custom_jwt_authorizer, null) != null ? [var.authorizer_configuration.custom_jwt_authorizer] : []
41
+ content {
42
+ custom_jwt_authorizer {
43
+ discovery_url = authorizer_configuration.value.discovery_url
44
+ allowed_audience = authorizer_configuration.value.allowed_audience
45
+ allowed_clients = authorizer_configuration.value.allowed_clients
46
+ }
47
+ }
48
+ }
49
+
50
+ # Receive the caller's Authorization header (validated by the JWT authorizer).
51
+ dynamic "request_header_configuration" {
52
+ for_each = var.authorizer_configuration != null && try(var.authorizer_configuration.custom_jwt_authorizer, null) != null ? [1] : []
53
+ content {
54
+ request_header_allowlist = ["Authorization"]
55
+ }
56
+ }
57
+
58
+ network_configuration {
59
+ network_mode = "PUBLIC"
60
+ }
61
+ }
62
+ "
63
+ `;
64
+
65
+ exports[`gateway-cognito-passthrough migration > makes the gateway pick the target credential from the agent auth 1`] = `
66
+ "import * as agentcore from 'aws-cdk-lib/aws-bedrockagentcore';
67
+ import * as iam from 'aws-cdk-lib/aws-iam';
68
+ import { Construct } from 'constructs';
69
+
70
+ export class AgentCoreGateway extends Construct implements iam.IGrantable {
71
+ public addAgent(
72
+ agent: Construct & {
73
+ readonly agentCoreRuntime: agentcore.Runtime;
74
+ readonly agentName: string;
75
+ readonly auth?: 'iam' | 'cognito';
76
+ },
77
+ props?: {
78
+ gatewayTargetName?: string;
79
+ },
80
+ ): agentcore.CfnGatewayTarget {
81
+ return this.addAgentTarget({
82
+ gatewayTargetName: props?.gatewayTargetName ?? agent.agentName,
83
+ agentRuntimeArn: agent.agentCoreRuntime.agentRuntimeArn,
84
+ credentials: agent.auth === 'cognito' ? 'jwt-passthrough' : 'gateway-iam',
85
+ });
86
+ }
87
+
88
+ public addAgentTarget(props: {
89
+ gatewayTargetName: string;
90
+ agentRuntimeArn: string;
91
+ credentials?: 'gateway-iam' | 'jwt-passthrough';
92
+ }): agentcore.CfnGatewayTarget {
93
+ const target = new agentcore.CfnGatewayTarget(
94
+ this,
95
+ \`Target-\${props.gatewayTargetName}\`,
96
+ {
97
+ gatewayIdentifier: this.gateway.gatewayId,
98
+ name: props.gatewayTargetName,
99
+ targetConfiguration: {
100
+ http: {
101
+ agentcoreRuntime: {
102
+ arn: props.agentRuntimeArn,
103
+ qualifier: 'DEFAULT',
104
+ },
105
+ },
106
+ },
107
+ // The bare gateway IAM role credential: runtime targets reject the
108
+ // iamCredentialProvider detail MCP targets carry.
109
+ credentialProviderConfigurations: [
110
+ {
111
+ credentialProviderType:
112
+ props.credentials === 'jwt-passthrough'
113
+ ? 'JWT_PASSTHROUGH'
114
+ : 'GATEWAY_IAM_ROLE',
115
+ },
116
+ ],
117
+ },
118
+ );
119
+ return target;
120
+ }
121
+
122
+ public addMcpServerTarget(props: {
123
+ gatewayTargetName: string;
124
+ mcpServerRuntimeArn: string;
125
+ }): agentcore.CfnGatewayTarget {
126
+ const target = new agentcore.CfnGatewayTarget(
127
+ this,
128
+ \`Target-\${props.gatewayTargetName}\`,
129
+ {
130
+ gatewayIdentifier: this.gateway.gatewayId,
131
+ name: props.gatewayTargetName,
132
+ targetConfiguration: {
133
+ mcp: { openApiSchema: { inlinePayload: 'x' } },
134
+ },
135
+ credentialProviderConfigurations: [
136
+ {
137
+ credentialProviderType: 'GATEWAY_IAM_ROLE',
138
+ credentialProvider: {
139
+ iamCredentialProvider: { service: 'bedrock-agentcore' },
140
+ },
141
+ },
142
+ ],
143
+ },
144
+ );
145
+ return target;
146
+ }
147
+ }
148
+ "
149
+ `;
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Front Cognito agents with an AgentCore Gateway via JWT passthrough: addAgent picks the target credential from the agent's auth, agent constructs gain an auth member, and Cognito runtimes allowlist the Authorization header"
3
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import type { MigrationReturnObject, Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { applyGritQL, GRIT_INSERT_PLACEHOLDER, insertViaGritQL, matchGritQL } from "../../../utils/ast.js";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "../../../utils/shared-constructs-constants.js";
7
+ /**
8
+ * Bring existing workspaces up to the generators' current gateway->agent
9
+ * support for Cognito agents, which forward the caller's JWT to the runtime:
10
+ *
11
+ * - The vended `AgentCoreGateway` construct's `addAgent`/`addAgentTarget` pick
12
+ * the outbound credential from the agent's `auth`: a `cognito` agent uses
13
+ * `JWT_PASSTHROUGH` (the caller's token reaches the runtime), an `iam` agent
14
+ * the gateway role (`GATEWAY_IAM_ROLE`, the previous behaviour).
15
+ * - Vended agent constructs gain an `auth` member `addAgent` reads, and Cognito
16
+ * agents allowlist the `Authorization` header (CDK + Terraform runtime) so the
17
+ * runtime receives the forwarded token.
18
+ *
19
+ * These files are generated with `KeepExisting`, so without this an upgraded
20
+ * workspace pairs new app-level constructs with stale core ones. Diverged files
21
+ * are left untouched and reported via `nextSteps`.
22
+ */ const GATEWAY_CONSTRUCT_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/agentcore-gateway/agentcore-gateway.ts`;
23
+ const AGENTS_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/agents`;
24
+ const TF_RUNTIME_FILE = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/core/agent-core/runtime.tf`;
25
+ /**
26
+ * Teach the vended `AgentCoreGateway` construct to pick the target credential
27
+ * from the agent's `auth` (JWT passthrough for Cognito, gateway role for IAM).
28
+ */ const migrateGatewayConstruct = async (tree, nextSteps)=>{
29
+ if (!tree.exists(GATEWAY_CONSTRUCT_FILE)) {
30
+ return; // No vended gateway construct.
31
+ }
32
+ // Predates agent-target support (the gateway-agent-targets migration adds
33
+ // addAgentTarget first) — match the method, not a bare identifier.
34
+ if (!await matchGritQL(tree, GATEWAY_CONSTRUCT_FILE, '`addAgentTarget(props: { $_ }): agentcore.CfnGatewayTarget { $_ }`')) {
35
+ return;
36
+ }
37
+ // Already migrated: the credentials member is on addAgentTarget's props.
38
+ if (await matchGritQL(tree, GATEWAY_CONSTRUCT_FILE, "`credentials?: 'gateway-iam' | 'jwt-passthrough'`")) {
39
+ return;
40
+ }
41
+ const divergedMessage = `In ${GATEWAY_CONSTRUCT_FILE}: have addAgent read the agent's \`auth\` and pass \`credentials: 'jwt-passthrough'\` to addAgentTarget, so the target's credentialProviderType becomes 'JWT_PASSTHROUGH' for Cognito agents.`;
42
+ // GritQL patterns for each of the four edits. Verified against the tree
43
+ // up-front so the transform is all-or-nothing: a construct missing any
44
+ // anchor is left untouched with a single actionable next step, rather than
45
+ // half-migrated.
46
+ const authParamPattern = `\`readonly agentName: string\` as $sig where {
47
+ $program <: not contains \`readonly auth?\`
48
+ } => \`$sig;
49
+ readonly auth?: 'iam' | 'cognito'\``;
50
+ const callPattern = `\`agentRuntimeArn: agent.agentCoreRuntime.agentRuntimeArn\` as $prop where {
51
+ $program <: not contains \`credentials:\`
52
+ } => \`$prop,
53
+ credentials: agent.auth === 'cognito' ? 'jwt-passthrough' : 'gateway-iam'\``;
54
+ // The addAgentTarget props type: matched on its `agentRuntimeArn: string`
55
+ // member signature (without trailing semicolon), which the rewrite re-adds
56
+ // followed by the credentials member. The `: string` type distinguishes it
57
+ // from the `agentRuntimeArn:` value in the addAgent call.
58
+ const paramPattern = `\`agentRuntimeArn: string\` as $sig where {
59
+ $program <: not contains \`credentials?\`
60
+ } => \`$sig;
61
+ credentials?: 'gateway-iam' | 'jwt-passthrough'\``;
62
+ // Scoped to the agent target's own CfnGatewayTarget (the one configured with
63
+ // an agentcoreRuntime), so the MCP server target's GATEWAY_IAM_ROLE — a
64
+ // sibling method with its own credential block — is left untouched.
65
+ const credentialPattern = `\`credentialProviderType: 'GATEWAY_IAM_ROLE'\` as $cred where {
66
+ $cred <: within \`new agentcore.CfnGatewayTarget($_, $_, $config)\`,
67
+ $config <: contains \`agentcoreRuntime\`
68
+ } => \`credentialProviderType:
69
+ props.credentials === 'jwt-passthrough'
70
+ ? 'JWT_PASSTHROUGH'
71
+ : 'GATEWAY_IAM_ROLE'\``;
72
+ // Verify every anchor matches before mutating anything (matchGritQL is
73
+ // read-only), so a diverged construct is never left partially migrated.
74
+ for (const pattern of [
75
+ authParamPattern,
76
+ callPattern,
77
+ paramPattern,
78
+ credentialPattern
79
+ ]){
80
+ if (!await matchGritQL(tree, GATEWAY_CONSTRUCT_FILE, pattern)) {
81
+ nextSteps.push(divergedMessage);
82
+ return;
83
+ }
84
+ }
85
+ await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, authParamPattern);
86
+ await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, callPattern);
87
+ await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, paramPattern);
88
+ await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, credentialPattern);
89
+ };
90
+ /**
91
+ * Add the `auth` member to each vended agent construct, and for Cognito agents
92
+ * allowlist the Authorization header so the runtime receives the forwarded JWT.
93
+ */ const migrateAgentConstructs = async (tree, nextSteps)=>{
94
+ if (!tree.exists(AGENTS_DIR)) {
95
+ return;
96
+ }
97
+ for (const dir of tree.children(AGENTS_DIR)){
98
+ const constructFile = `${AGENTS_DIR}/${dir}/${dir}.ts`;
99
+ if (!tree.exists(constructFile)) {
100
+ continue;
101
+ }
102
+ // Only agents (which carry a gateway target name), not MCP servers.
103
+ if (!await matchGritQL(tree, constructFile, '`public readonly agentName = $_`')) {
104
+ continue;
105
+ }
106
+ if (await matchGritQL(tree, constructFile, '`public readonly auth = $_`')) {
107
+ continue; // Already migrated (or user-added).
108
+ }
109
+ // Cognito agents configure the runtime's inbound authorizer with a Cognito
110
+ // JWT — match that authorizerConfiguration property specifically.
111
+ const isCognito = await matchGritQL(tree, constructFile, '`authorizerConfiguration: RuntimeAuthorizerConfiguration.usingCognito($_)`');
112
+ const authValue = isCognito ? 'cognito' : 'iam';
113
+ // The `auth` member, after the agentName member. Matched without the
114
+ // trailing semicolon — GritQL parses the field's initializer as its AST
115
+ // node, so the semicolon is appended by the rewrite.
116
+ const authPattern = `\`public readonly agentName = $name\` as $field => \`$field;
117
+ /** Inbound auth — a fronting Gateway uses this to pick its outbound credential. */
118
+ public readonly auth = '${authValue}'\``;
119
+ // Cognito agents allowlist the Authorization header so the runtime (and a
120
+ // fronting gateway, via passthrough) receives the caller's token.
121
+ const headerNeeded = isCognito && !await matchGritQL(tree, constructFile, '`requestHeaderConfiguration: $_`');
122
+ const headerPattern = `\`authorizerConfiguration: RuntimeAuthorizerConfiguration.usingCognito($args)\` as $authz where {
123
+ $program <: not contains \`requestHeaderConfiguration\`
124
+ } => \`$authz,
125
+ ${GRIT_INSERT_PLACEHOLDER}\``;
126
+ const headerText = `// Receive the caller's Authorization header (validated by the authorizer).
127
+ requestHeaderConfiguration: {
128
+ allowlistedHeaders: ['Authorization'],
129
+ }`;
130
+ // Verify every anchor up-front so the construct is never half-migrated:
131
+ // if any edit can't be applied, leave the file untouched with one
132
+ // actionable next step.
133
+ const authOk = await matchGritQL(tree, constructFile, authPattern);
134
+ const headerOk = !headerNeeded || await matchGritQL(tree, constructFile, headerPattern);
135
+ if (!authOk || !headerOk) {
136
+ const actions = [
137
+ `add a \`public readonly auth = '${authValue}';\` member`
138
+ ];
139
+ if (headerNeeded) {
140
+ actions.push(`add \`requestHeaderConfiguration: { allowlistedHeaders: ['Authorization'] }\` to its Runtime so a gateway can pass the caller's JWT through`);
141
+ }
142
+ nextSteps.push(`In ${constructFile}: ${actions.join('; and ')}.`);
143
+ continue;
144
+ }
145
+ await applyGritQL(tree, constructFile, authPattern);
146
+ if (headerNeeded) {
147
+ await insertViaGritQL(tree, constructFile, headerPattern, headerText);
148
+ }
149
+ }
150
+ };
151
+ /**
152
+ * Add the `request_header_configuration` block to the vended Terraform runtime
153
+ * module so a JWT-authorized runtime receives the forwarded Authorization
154
+ * header (the analogue of the CDK requestHeaderConfiguration).
155
+ */ const migrateTerraformRuntime = async (tree, nextSteps)=>{
156
+ if (!tree.exists(TF_RUNTIME_FILE)) {
157
+ return;
158
+ }
159
+ if (await matchGritQL(tree, TF_RUNTIME_FILE, 'language hcl\n`dynamic "request_header_configuration" { $_ }`')) {
160
+ return; // Already migrated.
161
+ }
162
+ const tfActionMessage = `In ${TF_RUNTIME_FILE}: add a \`request_header_configuration { request_header_allowlist = ["Authorization"] }\` block (guarded by the JWT authorizer) to the aws_bedrockagentcore_agent_runtime resource so a gateway can pass the caller's JWT through.`;
163
+ const hasAuthorizerBlock = await matchGritQL(tree, TF_RUNTIME_FILE, 'language hcl\n`dynamic "authorizer_configuration" { $_ }`');
164
+ if (!hasAuthorizerBlock) {
165
+ nextSteps.push(tfActionMessage);
166
+ return;
167
+ }
168
+ const added = await insertViaGritQL(tree, TF_RUNTIME_FILE, `language hcl
169
+ \`dynamic "authorizer_configuration" { $body }\` as $block where {
170
+ $block <: within \`resource "aws_bedrockagentcore_agent_runtime" $_ { $_ }\`
171
+ } => \`$block
172
+
173
+ ${GRIT_INSERT_PLACEHOLDER}\``, `# Receive the caller's Authorization header (validated by the JWT authorizer).
174
+ dynamic "request_header_configuration" {
175
+ for_each = var.authorizer_configuration != null && try(var.authorizer_configuration.custom_jwt_authorizer, null) != null ? [1] : []
176
+ content {
177
+ request_header_allowlist = ["Authorization"]
178
+ }
179
+ }`);
180
+ if (!added) {
181
+ nextSteps.push(tfActionMessage);
182
+ }
183
+ };
184
+ export default async function migration(tree) {
185
+ const nextSteps = [];
186
+ await migrateGatewayConstruct(tree, nextSteps);
187
+ await migrateAgentConstructs(tree, nextSteps);
188
+ await migrateTerraformRuntime(tree, nextSteps);
189
+ await formatFilesInSubtree(tree);
190
+ return {
191
+ nextSteps
192
+ };
193
+ }
194
+
195
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/latest/gateway-cognito-passthrough/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { MigrationReturnObject, Tree } from '@nx/devkit';\nimport {\n applyGritQL,\n GRIT_INSERT_PLACEHOLDER,\n insertViaGritQL,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../../../utils/shared-constructs-constants';\n\n/**\n * Bring existing workspaces up to the generators' current gateway->agent\n * support for Cognito agents, which forward the caller's JWT to the runtime:\n *\n * - The vended `AgentCoreGateway` construct's `addAgent`/`addAgentTarget` pick\n * the outbound credential from the agent's `auth`: a `cognito` agent uses\n * `JWT_PASSTHROUGH` (the caller's token reaches the runtime), an `iam` agent\n * the gateway role (`GATEWAY_IAM_ROLE`, the previous behaviour).\n * - Vended agent constructs gain an `auth` member `addAgent` reads, and Cognito\n * agents allowlist the `Authorization` header (CDK + Terraform runtime) so the\n * runtime receives the forwarded token.\n *\n * These files are generated with `KeepExisting`, so without this an upgraded\n * workspace pairs new app-level constructs with stale core ones. Diverged files\n * are left untouched and reported via `nextSteps`.\n */\n\nconst GATEWAY_CONSTRUCT_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/agentcore-gateway/agentcore-gateway.ts`;\nconst AGENTS_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/agents`;\nconst TF_RUNTIME_FILE = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/core/agent-core/runtime.tf`;\n\n/**\n * Teach the vended `AgentCoreGateway` construct to pick the target credential\n * from the agent's `auth` (JWT passthrough for Cognito, gateway role for IAM).\n */\nconst migrateGatewayConstruct = async (\n tree: Tree,\n nextSteps: string[],\n): Promise<void> => {\n if (!tree.exists(GATEWAY_CONSTRUCT_FILE)) {\n return; // No vended gateway construct.\n }\n // Predates agent-target support (the gateway-agent-targets migration adds\n // addAgentTarget first) — match the method, not a bare identifier.\n if (\n !(await matchGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n '`addAgentTarget(props: { $_ }): agentcore.CfnGatewayTarget { $_ }`',\n ))\n ) {\n return;\n }\n // Already migrated: the credentials member is on addAgentTarget's props.\n if (\n await matchGritQL(\n tree,\n GATEWAY_CONSTRUCT_FILE,\n \"`credentials?: 'gateway-iam' | 'jwt-passthrough'`\",\n )\n ) {\n return;\n }\n\n const divergedMessage = `In ${GATEWAY_CONSTRUCT_FILE}: have addAgent read the agent's \\`auth\\` and pass \\`credentials: 'jwt-passthrough'\\` to addAgentTarget, so the target's credentialProviderType becomes 'JWT_PASSTHROUGH' for Cognito agents.`;\n\n // GritQL patterns for each of the four edits. Verified against the tree\n // up-front so the transform is all-or-nothing: a construct missing any\n // anchor is left untouched with a single actionable next step, rather than\n // half-migrated.\n const authParamPattern = `\\`readonly agentName: string\\` as $sig where {\n $program <: not contains \\`readonly auth?\\`\n} => \\`$sig;\n readonly auth?: 'iam' | 'cognito'\\``;\n\n const callPattern = `\\`agentRuntimeArn: agent.agentCoreRuntime.agentRuntimeArn\\` as $prop where {\n $program <: not contains \\`credentials:\\`\n} => \\`$prop,\n credentials: agent.auth === 'cognito' ? 'jwt-passthrough' : 'gateway-iam'\\``;\n\n // The addAgentTarget props type: matched on its `agentRuntimeArn: string`\n // member signature (without trailing semicolon), which the rewrite re-adds\n // followed by the credentials member. The `: string` type distinguishes it\n // from the `agentRuntimeArn:` value in the addAgent call.\n const paramPattern = `\\`agentRuntimeArn: string\\` as $sig where {\n $program <: not contains \\`credentials?\\`\n} => \\`$sig;\n credentials?: 'gateway-iam' | 'jwt-passthrough'\\``;\n\n // Scoped to the agent target's own CfnGatewayTarget (the one configured with\n // an agentcoreRuntime), so the MCP server target's GATEWAY_IAM_ROLE — a\n // sibling method with its own credential block — is left untouched.\n const credentialPattern = `\\`credentialProviderType: 'GATEWAY_IAM_ROLE'\\` as $cred where {\n $cred <: within \\`new agentcore.CfnGatewayTarget($_, $_, $config)\\`,\n $config <: contains \\`agentcoreRuntime\\`\n} => \\`credentialProviderType:\n props.credentials === 'jwt-passthrough'\n ? 'JWT_PASSTHROUGH'\n : 'GATEWAY_IAM_ROLE'\\``;\n\n // Verify every anchor matches before mutating anything (matchGritQL is\n // read-only), so a diverged construct is never left partially migrated.\n for (const pattern of [\n authParamPattern,\n callPattern,\n paramPattern,\n credentialPattern,\n ]) {\n if (!(await matchGritQL(tree, GATEWAY_CONSTRUCT_FILE, pattern))) {\n nextSteps.push(divergedMessage);\n return;\n }\n }\n\n await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, authParamPattern);\n await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, callPattern);\n await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, paramPattern);\n await applyGritQL(tree, GATEWAY_CONSTRUCT_FILE, credentialPattern);\n};\n\n/**\n * Add the `auth` member to each vended agent construct, and for Cognito agents\n * allowlist the Authorization header so the runtime receives the forwarded JWT.\n */\nconst migrateAgentConstructs = async (\n tree: Tree,\n nextSteps: string[],\n): Promise<void> => {\n if (!tree.exists(AGENTS_DIR)) {\n return;\n }\n for (const dir of tree.children(AGENTS_DIR)) {\n const constructFile = `${AGENTS_DIR}/${dir}/${dir}.ts`;\n if (!tree.exists(constructFile)) {\n continue;\n }\n // Only agents (which carry a gateway target name), not MCP servers.\n if (\n !(await matchGritQL(\n tree,\n constructFile,\n '`public readonly agentName = $_`',\n ))\n ) {\n continue;\n }\n if (await matchGritQL(tree, constructFile, '`public readonly auth = $_`')) {\n continue; // Already migrated (or user-added).\n }\n\n // Cognito agents configure the runtime's inbound authorizer with a Cognito\n // JWT — match that authorizerConfiguration property specifically.\n const isCognito = await matchGritQL(\n tree,\n constructFile,\n '`authorizerConfiguration: RuntimeAuthorizerConfiguration.usingCognito($_)`',\n );\n const authValue = isCognito ? 'cognito' : 'iam';\n\n // The `auth` member, after the agentName member. Matched without the\n // trailing semicolon — GritQL parses the field's initializer as its AST\n // node, so the semicolon is appended by the rewrite.\n const authPattern = `\\`public readonly agentName = $name\\` as $field => \\`$field;\n /** Inbound auth — a fronting Gateway uses this to pick its outbound credential. */\n public readonly auth = '${authValue}'\\``;\n\n // Cognito agents allowlist the Authorization header so the runtime (and a\n // fronting gateway, via passthrough) receives the caller's token.\n const headerNeeded =\n isCognito &&\n !(await matchGritQL(\n tree,\n constructFile,\n '`requestHeaderConfiguration: $_`',\n ));\n const headerPattern = `\\`authorizerConfiguration: RuntimeAuthorizerConfiguration.usingCognito($args)\\` as $authz where {\n $program <: not contains \\`requestHeaderConfiguration\\`\n} => \\`$authz,\n ${GRIT_INSERT_PLACEHOLDER}\\``;\n const headerText = `// Receive the caller's Authorization header (validated by the authorizer).\n requestHeaderConfiguration: {\n allowlistedHeaders: ['Authorization'],\n }`;\n\n // Verify every anchor up-front so the construct is never half-migrated:\n // if any edit can't be applied, leave the file untouched with one\n // actionable next step.\n const authOk = await matchGritQL(tree, constructFile, authPattern);\n const headerOk =\n !headerNeeded || (await matchGritQL(tree, constructFile, headerPattern));\n if (!authOk || !headerOk) {\n const actions = [\n `add a \\`public readonly auth = '${authValue}';\\` member`,\n ];\n if (headerNeeded) {\n actions.push(\n `add \\`requestHeaderConfiguration: { allowlistedHeaders: ['Authorization'] }\\` to its Runtime so a gateway can pass the caller's JWT through`,\n );\n }\n nextSteps.push(`In ${constructFile}: ${actions.join('; and ')}.`);\n continue;\n }\n\n await applyGritQL(tree, constructFile, authPattern);\n if (headerNeeded) {\n await insertViaGritQL(tree, constructFile, headerPattern, headerText);\n }\n }\n};\n\n/**\n * Add the `request_header_configuration` block to the vended Terraform runtime\n * module so a JWT-authorized runtime receives the forwarded Authorization\n * header (the analogue of the CDK requestHeaderConfiguration).\n */\nconst migrateTerraformRuntime = async (\n tree: Tree,\n nextSteps: string[],\n): Promise<void> => {\n if (!tree.exists(TF_RUNTIME_FILE)) {\n return;\n }\n if (\n await matchGritQL(\n tree,\n TF_RUNTIME_FILE,\n 'language hcl\\n`dynamic \"request_header_configuration\" { $_ }`',\n )\n ) {\n return; // Already migrated.\n }\n\n const tfActionMessage = `In ${TF_RUNTIME_FILE}: add a \\`request_header_configuration { request_header_allowlist = [\"Authorization\"] }\\` block (guarded by the JWT authorizer) to the aws_bedrockagentcore_agent_runtime resource so a gateway can pass the caller's JWT through.`;\n\n const hasAuthorizerBlock = await matchGritQL(\n tree,\n TF_RUNTIME_FILE,\n 'language hcl\\n`dynamic \"authorizer_configuration\" { $_ }`',\n );\n if (!hasAuthorizerBlock) {\n nextSteps.push(tfActionMessage);\n return;\n }\n\n const added = await insertViaGritQL(\n tree,\n TF_RUNTIME_FILE,\n `language hcl\n\\`dynamic \"authorizer_configuration\" { $body }\\` as $block where {\n $block <: within \\`resource \"aws_bedrockagentcore_agent_runtime\" $_ { $_ }\\`\n} => \\`$block\n\n ${GRIT_INSERT_PLACEHOLDER}\\``,\n `# Receive the caller's Authorization header (validated by the JWT authorizer).\n dynamic \"request_header_configuration\" {\n for_each = var.authorizer_configuration != null && try(var.authorizer_configuration.custom_jwt_authorizer, null) != null ? [1] : []\n content {\n request_header_allowlist = [\"Authorization\"]\n }\n }`,\n );\n if (!added) {\n nextSteps.push(tfActionMessage);\n }\n};\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n await migrateGatewayConstruct(tree, nextSteps);\n await migrateAgentConstructs(tree, nextSteps);\n await migrateTerraformRuntime(tree, nextSteps);\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["applyGritQL","GRIT_INSERT_PLACEHOLDER","insertViaGritQL","matchGritQL","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","GATEWAY_CONSTRUCT_FILE","AGENTS_DIR","TF_RUNTIME_FILE","migrateGatewayConstruct","tree","nextSteps","exists","divergedMessage","authParamPattern","callPattern","paramPattern","credentialPattern","pattern","push","migrateAgentConstructs","dir","children","constructFile","isCognito","authValue","authPattern","headerNeeded","headerPattern","headerText","authOk","headerOk","actions","join","migrateTerraformRuntime","tfActionMessage","hasAuthorizerBlock","added","migration"],"mappings":"AAAA;;;CAGC,GAED,SACEA,WAAW,EACXC,uBAAuB,EACvBC,eAAe,EACfC,WAAW,QACN,wBAAqB;AAC5B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,gDAA6C;AAEpD;;;;;;;;;;;;;;;CAeC,GAED,MAAMC,yBAAyB,GAAGH,aAAa,CAAC,EAAEC,sBAAsB,gDAAgD,CAAC;AACzH,MAAMG,aAAa,GAAGJ,aAAa,CAAC,EAAEC,sBAAsB,eAAe,CAAC;AAC5E,MAAMI,kBAAkB,GAAGL,aAAa,CAAC,EAAEE,qBAAqB,+BAA+B,CAAC;AAEhG;;;CAGC,GACD,MAAMI,0BAA0B,OAC9BC,MACAC;IAEA,IAAI,CAACD,KAAKE,MAAM,CAACN,yBAAyB;QACxC,QAAQ,+BAA+B;IACzC;IACA,0EAA0E;IAC1E,mEAAmE;IACnE,IACE,CAAE,MAAML,YACNS,MACAJ,wBACA,uEAEF;QACA;IACF;IACA,yEAAyE;IACzE,IACE,MAAML,YACJS,MACAJ,wBACA,sDAEF;QACA;IACF;IAEA,MAAMO,kBAAkB,CAAC,GAAG,EAAEP,uBAAuB,6LAA6L,CAAC;IAEnP,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,iBAAiB;IACjB,MAAMQ,mBAAmB,CAAC;;;yCAGa,CAAC;IAExC,MAAMC,cAAc,CAAC;;;iFAG0D,CAAC;IAEhF,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,0DAA0D;IAC1D,MAAMC,eAAe,CAAC;;;qDAG6B,CAAC;IAEpD,6EAA6E;IAC7E,wEAAwE;IACxE,oEAAoE;IACpE,MAAMC,oBAAoB,CAAC;;;;;;sCAMS,CAAC;IAErC,uEAAuE;IACvE,wEAAwE;IACxE,KAAK,MAAMC,WAAW;QACpBJ;QACAC;QACAC;QACAC;KACD,CAAE;QACD,IAAI,CAAE,MAAMhB,YAAYS,MAAMJ,wBAAwBY,UAAW;YAC/DP,UAAUQ,IAAI,CAACN;YACf;QACF;IACF;IAEA,MAAMf,YAAYY,MAAMJ,wBAAwBQ;IAChD,MAAMhB,YAAYY,MAAMJ,wBAAwBS;IAChD,MAAMjB,YAAYY,MAAMJ,wBAAwBU;IAChD,MAAMlB,YAAYY,MAAMJ,wBAAwBW;AAClD;AAEA;;;CAGC,GACD,MAAMG,yBAAyB,OAC7BV,MACAC;IAEA,IAAI,CAACD,KAAKE,MAAM,CAACL,aAAa;QAC5B;IACF;IACA,KAAK,MAAMc,OAAOX,KAAKY,QAAQ,CAACf,YAAa;QAC3C,MAAMgB,gBAAgB,GAAGhB,WAAW,CAAC,EAAEc,IAAI,CAAC,EAAEA,IAAI,GAAG,CAAC;QACtD,IAAI,CAACX,KAAKE,MAAM,CAACW,gBAAgB;YAC/B;QACF;QACA,oEAAoE;QACpE,IACE,CAAE,MAAMtB,YACNS,MACAa,eACA,qCAEF;YACA;QACF;QACA,IAAI,MAAMtB,YAAYS,MAAMa,eAAe,gCAAgC;YACzE,UAAU,oCAAoC;QAChD;QAEA,2EAA2E;QAC3E,kEAAkE;QAClE,MAAMC,YAAY,MAAMvB,YACtBS,MACAa,eACA;QAEF,MAAME,YAAYD,YAAY,YAAY;QAE1C,qEAAqE;QACrE,wEAAwE;QACxE,qDAAqD;QACrD,MAAME,cAAc,CAAC;;0BAEC,EAAED,UAAU,GAAG,CAAC;QAEtC,0EAA0E;QAC1E,kEAAkE;QAClE,MAAME,eACJH,aACA,CAAE,MAAMvB,YACNS,MACAa,eACA;QAEJ,MAAMK,gBAAgB,CAAC;;;MAGrB,EAAE7B,wBAAwB,EAAE,CAAC;QAC/B,MAAM8B,aAAa,CAAC;;;OAGjB,CAAC;QAEJ,wEAAwE;QACxE,kEAAkE;QAClE,wBAAwB;QACxB,MAAMC,SAAS,MAAM7B,YAAYS,MAAMa,eAAeG;QACtD,MAAMK,WACJ,CAACJ,gBAAiB,MAAM1B,YAAYS,MAAMa,eAAeK;QAC3D,IAAI,CAACE,UAAU,CAACC,UAAU;YACxB,MAAMC,UAAU;gBACd,CAAC,gCAAgC,EAAEP,UAAU,WAAW,CAAC;aAC1D;YACD,IAAIE,cAAc;gBAChBK,QAAQb,IAAI,CACV,CAAC,2IAA2I,CAAC;YAEjJ;YACAR,UAAUQ,IAAI,CAAC,CAAC,GAAG,EAAEI,cAAc,EAAE,EAAES,QAAQC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChE;QACF;QAEA,MAAMnC,YAAYY,MAAMa,eAAeG;QACvC,IAAIC,cAAc;YAChB,MAAM3B,gBAAgBU,MAAMa,eAAeK,eAAeC;QAC5D;IACF;AACF;AAEA;;;;CAIC,GACD,MAAMK,0BAA0B,OAC9BxB,MACAC;IAEA,IAAI,CAACD,KAAKE,MAAM,CAACJ,kBAAkB;QACjC;IACF;IACA,IACE,MAAMP,YACJS,MACAF,iBACA,kEAEF;QACA,QAAQ,oBAAoB;IAC9B;IAEA,MAAM2B,kBAAkB,CAAC,GAAG,EAAE3B,gBAAgB,kOAAkO,CAAC;IAEjR,MAAM4B,qBAAqB,MAAMnC,YAC/BS,MACAF,iBACA;IAEF,IAAI,CAAC4B,oBAAoB;QACvBzB,UAAUQ,IAAI,CAACgB;QACf;IACF;IAEA,MAAME,QAAQ,MAAMrC,gBAClBU,MACAF,iBACA,CAAC;;;;;EAKH,EAAET,wBAAwB,EAAE,CAAC,EAC3B,CAAC;;;;;;GAMF,CAAC;IAEF,IAAI,CAACsC,OAAO;QACV1B,UAAUQ,IAAI,CAACgB;IACjB;AACF;AAEA,eAAe,eAAeG,UAC5B5B,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,MAAMF,wBAAwBC,MAAMC;IACpC,MAAMS,uBAAuBV,MAAMC;IACnC,MAAMuB,wBAAwBxB,MAAMC;IAEpC,MAAMT,qBAAqBQ;IAE3B,OAAO;QAAEC;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Move py#agent HTTP/AG-UI agent construction out of module import time and into a FastAPI lifespan handler, stored on app.state"
3
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { type MigrationReturnObject, type Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;