@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,412 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { getProjects, joinPathFragments } from "@nx/devkit";
5
+ import { PY_AGENT_GENERATOR_INFO } from "../../../py/agent/generator.js";
6
+ import { addPythonDestructuredImport, applyGritQL, captureGritQLVariable, matchGritQL } from "../../../utils/ast.js";
7
+ import { formatFilesInSubtree } from "../../../utils/format.js";
8
+ /**
9
+ * Move py#agent HTTP/AG-UI agent construction out of module import time and
10
+ * into a FastAPI `lifespan` handler, stored on `app.state`.
11
+ *
12
+ * Building the agent eagerly at import time breaks any codepath that imports
13
+ * the module before `RUNTIME_CONFIG_APP_ID`/AgentCore env vars are set (e.g.
14
+ * OpenAPI spec generation, tests) - and, for AgentCore, construction belongs
15
+ * at container/app startup rather than import, since AgentCore hands each
16
+ * session its own container. The A2A protocol is unaffected: `with_session_id`
17
+ * only touches the agent factory lazily on first use, so its eager
18
+ * `__enter__()` was never actually eager in practice.
19
+ *
20
+ * How to write a migration:
21
+ * - https://nx.dev/docs/kb/migration-generators
22
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
23
+ *
24
+ * Guardrails:
25
+ * - Pattern-match before writing: every rewrite this migration makes to a file
26
+ * is preceded by a read-only `matchGritQL` check of every pattern it will
27
+ * need - so a diverged file is reported via `nextSteps` and left completely
28
+ * untouched, rather than partially rewritten into a broken state.
29
+ * - Idempotent: re-running must be a no-op (each rewrite's own shape change
30
+ * means its pattern no longer matches on a second pass).
31
+ * - Format what you write: finish with `formatFilesInSubtree`.
32
+ */ /** A read-only GritQL match against a python file (no rewrite). */ const pyMatch = (snippet)=>`language python\n\`${snippet}\``;
33
+ /** A GritQL rewrite deleting the matched python snippet entirely. */ const pyDelete = (snippet)=>`${pyMatch(snippet)} => .`;
34
+ /**
35
+ * A GritQL rewrite of one python snippet into another. Multi-line
36
+ * replacements go through `raw` so GritQL's own reformatting doesn't fight
37
+ * the exact shape being written (formatFilesInSubtree normalizes it after).
38
+ */ const pyRewrite = (from, to, where)=>{
39
+ const replacement = to.includes('\n') ? `raw\`${to}\`` : `\`${to}\``;
40
+ return `${pyMatch(from)} => ${replacement}${where ? ` where { ${where} }` : ''}`;
41
+ };
42
+ /** All checks must match before anything is written for that agent. */ const allMatch = async (tree, checks)=>{
43
+ for (const [filePath, pattern] of checks){
44
+ if (!await matchGritQL(tree, filePath, pattern)) return false;
45
+ }
46
+ return true;
47
+ };
48
+ const AGENT_CONNECTION_MODULE_PATTERN = (names)=>pyMatch(`from $mod import ${names}`);
49
+ const STRANDS_HTTP_MARKER = '_agent_ctx = with_session_id(';
50
+ const LANGCHAIN_HTTP_MARKER = '_graph = get_agent()';
51
+ const STRANDS_AGUI_MARKER = 'create_strands_app';
52
+ const LANGCHAIN_AGUI_MARKER = '_graph = get_agent()';
53
+ // Shared by strands/http and langchain/http - only the lifespan body differs.
54
+ const HTTP_INIT_APP_OLD = `app = FastAPI(
55
+ title="$name",
56
+ responses={500: {"model": InternalServerErrorDetails}},
57
+ generate_unique_id_function=lambda route: route.name,
58
+ )`;
59
+ // --- Strands HTTP -----------------------------------------------------------
60
+ const STRANDS_HTTP_MAIN_CTX_OLD = `_agent_ctx = with_session_id(
61
+ get_agent,
62
+ name="$name",
63
+ description="A Strands Agent exposed via HTTP streaming.",
64
+ )`;
65
+ const STRANDS_HTTP_INIT_APP_NEW = `@asynccontextmanager
66
+ async def lifespan(app: FastAPI):
67
+ with with_session_id(
68
+ get_agent,
69
+ name="$name",
70
+ description="A Strands Agent exposed via HTTP streaming.",
71
+ ) as agent:
72
+ app.state.agent = agent
73
+ yield
74
+
75
+
76
+ app = FastAPI(
77
+ title="$name",
78
+ responses={500: {"model": InternalServerErrorDetails}},
79
+ generate_unique_id_function=lambda route: route.name,
80
+ lifespan=lifespan,
81
+ )`;
82
+ const migrateStrandsHttpAgent = async (tree, dir, nextSteps)=>{
83
+ const initPath = joinPathFragments(dir, 'init.py');
84
+ const mainPath = joinPathFragments(dir, 'main.py');
85
+ if (!tree.exists(initPath) || !tree.exists(mainPath)) return;
86
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
87
+ if (!mainContents.includes(STRANDS_HTTP_MARKER)) return;
88
+ const mod = await captureGritQLVariable(tree, mainPath, AGENT_CONNECTION_MODULE_PATTERN('session_id_context, with_session_id'), 'mod');
89
+ const ready = !!mod && await allMatch(tree, [
90
+ [
91
+ mainPath,
92
+ pyMatch(STRANDS_HTTP_MAIN_CTX_OLD)
93
+ ],
94
+ [
95
+ mainPath,
96
+ pyMatch('_agent = _agent_ctx.__enter__()')
97
+ ],
98
+ [
99
+ mainPath,
100
+ pyMatch('from .agent import get_agent')
101
+ ],
102
+ [
103
+ mainPath,
104
+ pyMatch('_agent.stream_async($prompt)')
105
+ ],
106
+ [
107
+ initPath,
108
+ pyMatch(HTTP_INIT_APP_OLD)
109
+ ]
110
+ ]);
111
+ if (!ready) {
112
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually move agent construction into an \`init.py\` \`lifespan\` handler storing the agent on \`app.state.agent\` (see the py#agent generator's strands/http template).`);
113
+ return;
114
+ }
115
+ await addPythonDestructuredImport(tree, initPath, [
116
+ 'asynccontextmanager'
117
+ ], 'contextlib');
118
+ await addPythonDestructuredImport(tree, initPath, [
119
+ 'get_agent'
120
+ ], '.agent');
121
+ await addPythonDestructuredImport(tree, initPath, [
122
+ 'with_session_id'
123
+ ], mod);
124
+ await applyGritQL(tree, initPath, pyRewrite(HTTP_INIT_APP_OLD, STRANDS_HTTP_INIT_APP_NEW));
125
+ await applyGritQL(tree, mainPath, pyRewrite('from $mod import session_id_context, with_session_id', 'from $mod import session_id_context'));
126
+ await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));
127
+ await applyGritQL(tree, mainPath, pyDelete(STRANDS_HTTP_MAIN_CTX_OLD));
128
+ await applyGritQL(tree, mainPath, pyDelete('_agent = _agent_ctx.__enter__()'));
129
+ await applyGritQL(tree, mainPath, pyRewrite('_agent.stream_async($prompt)', 'app.state.agent.stream_async($prompt)'));
130
+ };
131
+ // --- LangChain HTTP ----------------------------------------------------------
132
+ const LANGCHAIN_HTTP_INIT_APP_NEW = `@asynccontextmanager
133
+ async def lifespan(app: FastAPI):
134
+ app.state.graph = get_agent()
135
+ yield
136
+
137
+
138
+ app = FastAPI(
139
+ title="$name",
140
+ responses={500: {"model": InternalServerErrorDetails}},
141
+ generate_unique_id_function=lambda route: route.name,
142
+ lifespan=lifespan,
143
+ )`;
144
+ const migrateLangchainHttpAgent = async (tree, dir, nextSteps)=>{
145
+ const initPath = joinPathFragments(dir, 'init.py');
146
+ const mainPath = joinPathFragments(dir, 'main.py');
147
+ if (!tree.exists(initPath) || !tree.exists(mainPath)) return;
148
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
149
+ if (!mainContents.includes(LANGCHAIN_HTTP_MARKER)) return;
150
+ const ready = await allMatch(tree, [
151
+ [
152
+ mainPath,
153
+ pyMatch('_graph = get_agent()')
154
+ ],
155
+ [
156
+ mainPath,
157
+ pyMatch('from .agent import get_agent')
158
+ ],
159
+ [
160
+ mainPath,
161
+ pyMatch('_graph.astream($args)')
162
+ ],
163
+ [
164
+ initPath,
165
+ pyMatch(HTTP_INIT_APP_OLD)
166
+ ]
167
+ ]);
168
+ if (!ready) {
169
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually wrap \`get_agent()\` in an \`init.py\` \`lifespan\` handler storing the graph on \`app.state.graph\` (see the py#agent generator's langchain/http template).`);
170
+ return;
171
+ }
172
+ await addPythonDestructuredImport(tree, initPath, [
173
+ 'asynccontextmanager'
174
+ ], 'contextlib');
175
+ await addPythonDestructuredImport(tree, initPath, [
176
+ 'get_agent'
177
+ ], '.agent');
178
+ await applyGritQL(tree, initPath, pyRewrite(HTTP_INIT_APP_OLD, LANGCHAIN_HTTP_INIT_APP_NEW));
179
+ await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));
180
+ await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));
181
+ await applyGritQL(tree, mainPath, pyRewrite('_graph.astream($args)', 'app.state.graph.astream($args)'));
182
+ };
183
+ // --- LangChain AG-UI ---------------------------------------------------------
184
+ const LANGCHAIN_AGUI_AGENT_OLD = `agui_agent = LangGraphAgent(
185
+ name="$name",
186
+ graph=_graph,
187
+ description="A LangChain/LangGraph Agent exposed via the AG-UI protocol.",
188
+ )`;
189
+ const LANGCHAIN_AGUI_AGENT_NEW = `@asynccontextmanager
190
+ async def lifespan(app: FastAPI):
191
+ graph = get_agent()
192
+ app.state.agui_agent = LangGraphAgent(
193
+ name="$name",
194
+ graph=graph,
195
+ description="A LangChain/LangGraph Agent exposed via the AG-UI protocol.",
196
+ )
197
+ yield`;
198
+ const migrateLangchainAgUiAgent = async (tree, dir, nextSteps)=>{
199
+ const mainPath = joinPathFragments(dir, 'main.py');
200
+ if (!tree.exists(mainPath)) return;
201
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
202
+ if (!mainContents.includes(LANGCHAIN_AGUI_MARKER)) return;
203
+ const ready = await allMatch(tree, [
204
+ [
205
+ mainPath,
206
+ pyMatch('_graph = get_agent()')
207
+ ],
208
+ [
209
+ mainPath,
210
+ pyMatch(LANGCHAIN_AGUI_AGENT_OLD)
211
+ ],
212
+ [
213
+ mainPath,
214
+ pyMatch('agui_agent.run($input)')
215
+ ],
216
+ [
217
+ mainPath,
218
+ pyMatch('app = FastAPI(title="$name")')
219
+ ]
220
+ ]);
221
+ if (!ready) {
222
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched. Manually wrap graph + \`LangGraphAgent\` construction in a \`lifespan\` handler storing the wrapper on \`app.state.agui_agent\` (see the py#agent generator's langchain/ag-ui template).`);
223
+ return;
224
+ }
225
+ await addPythonDestructuredImport(tree, mainPath, [
226
+ 'asynccontextmanager'
227
+ ], 'contextlib');
228
+ await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));
229
+ await applyGritQL(tree, mainPath, pyRewrite(LANGCHAIN_AGUI_AGENT_OLD, LANGCHAIN_AGUI_AGENT_NEW));
230
+ await applyGritQL(tree, mainPath, pyRewrite('agui_agent.run($input)', 'request.app.state.agui_agent.run($input)'));
231
+ await applyGritQL(tree, mainPath, pyRewrite('app = FastAPI(title="$name")', 'app = FastAPI(title="$name", lifespan=lifespan)'));
232
+ };
233
+ // --- Strands AG-UI -----------------------------------------------------------
234
+ // The biggest of the four: `ag_ui_strands.create_strands_app` is dropped
235
+ // entirely for an inlined FastAPI app (matching upstream `ag_ui_strands`,
236
+ // plus a Content-Type-independent body-parsing fix and an explicit session
237
+ // re-bind `create_strands_app` was missing), so most of the file is new.
238
+ const STRANDS_AGUI_IMPORT_OLD = 'from ag_ui_strands import StrandsAgent, create_strands_app';
239
+ const STRANDS_AGUI_AGENT_OLD = `agui_agent = StrandsAgent(
240
+ agent=_agent,
241
+ name="$name",
242
+ description="A Strands Agent exposed via the AG-UI protocol.",
243
+ )`;
244
+ const STRANDS_AGUI_AGENT_NEW = `@asynccontextmanager
245
+ async def lifespan(app: FastAPI):
246
+ with get_agent() as agent:
247
+ app.state.agui_agent = StrandsAgent(
248
+ agent=agent,
249
+ name="$name",
250
+ description="A Strands Agent exposed via the AG-UI protocol.",
251
+ )
252
+ yield`;
253
+ const STRANDS_AGUI_APP_OLD = 'app = create_strands_app(agui_agent, path="/invocations")';
254
+ // `$name` isn't bound within this match (unlike STRANDS_AGUI_AGENT_OLD above),
255
+ // so the title is built from a name captured separately rather than reused as
256
+ // a metavariable - GritQL leaves a rewrite whose replacement references an
257
+ // unbound metavariable unapplied.
258
+ const strandsAguiAppNew = (name)=>`app = FastAPI(title="AWS Strands - ${name}", lifespan=lifespan)
259
+ app.add_middleware(
260
+ CORSMiddleware,
261
+ allow_origins=["*"],
262
+ allow_credentials=True,
263
+ allow_methods=["*"],
264
+ allow_headers=["*"],
265
+ )`;
266
+ const STRANDS_AGUI_MIDDLEWARE_OLD = 'app.add_middleware(_SessionIdMiddleware)';
267
+ const STRANDS_AGUI_ROUTES_NEW = `app.add_middleware(_SessionIdMiddleware)
268
+
269
+
270
+ @app.post("/invocations")
271
+ async def invocations(request: Request):
272
+ # Validate the body manually since AgentCore may omit Content-Type.
273
+ encoder = EventEncoder(accept=request.headers.get("accept") or "")
274
+ raw = await request.body()
275
+ try:
276
+ input_data = RunAgentInput.model_validate_json(raw)
277
+ except Exception as exc:
278
+ message = f"Invalid RunAgentInput: {str(exc)[:200]}"
279
+
280
+ async def _bad():
281
+ yield encoder.encode(RunErrorEvent(type=EventType.RUN_ERROR, message=message, code="BAD_REQUEST"))
282
+
283
+ return StreamingResponse(_bad(), media_type=encoder.get_content_type())
284
+
285
+ session_id = request.headers.get(SESSION_ID_HEADER) or get_current_session_id()
286
+
287
+ async def event_generator():
288
+ # Re-bind the session: the streaming body runs outside the middleware.
289
+ with session_id_context(session_id or str(uuid.uuid4())):
290
+ async for event in request.app.state.agui_agent.run(input_data):
291
+ try:
292
+ yield encoder.encode(event)
293
+ except Exception as e:
294
+ error_event = RunErrorEvent(
295
+ type=EventType.RUN_ERROR,
296
+ message=f"Encoding error: {e}",
297
+ code="ENCODING_ERROR",
298
+ )
299
+ yield encoder.encode(error_event)
300
+ break
301
+
302
+ return StreamingResponse(event_generator(), media_type=encoder.get_content_type())
303
+
304
+
305
+ @app.get("/ping")
306
+ async def ping():
307
+ return {"status": "healthy"}`;
308
+ const STRANDS_AGUI_COMMENTS_OLD = [
309
+ '# Create AG-UI agent wrapper',
310
+ '# Create FastAPI app with AG-UI endpoint and health check'
311
+ ];
312
+ const migrateStrandsAgUiAgent = async (tree, dir, nextSteps)=>{
313
+ const mainPath = joinPathFragments(dir, 'main.py');
314
+ if (!tree.exists(mainPath)) return;
315
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
316
+ if (!mainContents.includes(STRANDS_AGUI_MARKER)) return;
317
+ const mod = await captureGritQLVariable(tree, mainPath, AGENT_CONNECTION_MODULE_PATTERN('session_id_context'), 'mod');
318
+ const agentClassName = await captureGritQLVariable(tree, mainPath, pyMatch(STRANDS_AGUI_AGENT_OLD), 'name');
319
+ const ready = !!mod && !!agentClassName && await allMatch(tree, [
320
+ [
321
+ mainPath,
322
+ pyMatch(STRANDS_AGUI_IMPORT_OLD)
323
+ ],
324
+ [
325
+ mainPath,
326
+ pyMatch('_agent_ctx = get_agent()')
327
+ ],
328
+ [
329
+ mainPath,
330
+ pyMatch('_agent = _agent_ctx.__enter__()')
331
+ ],
332
+ [
333
+ mainPath,
334
+ pyMatch(STRANDS_AGUI_AGENT_OLD)
335
+ ],
336
+ [
337
+ mainPath,
338
+ pyMatch(STRANDS_AGUI_APP_OLD)
339
+ ],
340
+ [
341
+ mainPath,
342
+ pyMatch(STRANDS_AGUI_MIDDLEWARE_OLD)
343
+ ]
344
+ ]);
345
+ if (!ready) {
346
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched. Manually rebuild this file without \`create_strands_app\`: a \`lifespan\` handler storing the wrapper on \`app.state.agui_agent\`, and inlined \`/invocations\`/\`/ping\` routes with Content-Type-independent body parsing (see the py#agent generator's strands/ag-ui template).`);
347
+ return;
348
+ }
349
+ await addPythonDestructuredImport(tree, mainPath, [
350
+ 'asynccontextmanager'
351
+ ], 'contextlib');
352
+ await addPythonDestructuredImport(tree, mainPath, [
353
+ 'EventType',
354
+ 'RunAgentInput',
355
+ 'RunErrorEvent'
356
+ ], 'ag_ui.core');
357
+ await addPythonDestructuredImport(tree, mainPath, [
358
+ 'EventEncoder'
359
+ ], 'ag_ui.encoder');
360
+ await addPythonDestructuredImport(tree, mainPath, [
361
+ 'FastAPI'
362
+ ], 'fastapi');
363
+ await addPythonDestructuredImport(tree, mainPath, [
364
+ 'CORSMiddleware'
365
+ ], 'fastapi.middleware.cors');
366
+ await addPythonDestructuredImport(tree, mainPath, [
367
+ 'StreamingResponse'
368
+ ], 'fastapi.responses');
369
+ await addPythonDestructuredImport(tree, mainPath, [
370
+ 'get_current_session_id'
371
+ ], mod);
372
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_IMPORT_OLD, 'from ag_ui_strands import StrandsAgent'));
373
+ await applyGritQL(tree, mainPath, pyDelete('_agent_ctx = get_agent()'));
374
+ await applyGritQL(tree, mainPath, pyDelete('_agent = _agent_ctx.__enter__()'));
375
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_AGENT_OLD, STRANDS_AGUI_AGENT_NEW));
376
+ for (const comment of STRANDS_AGUI_COMMENTS_OLD){
377
+ await applyGritQL(tree, mainPath, pyDelete(comment));
378
+ }
379
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_APP_OLD, strandsAguiAppNew(agentClassName)));
380
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_MIDDLEWARE_OLD, STRANDS_AGUI_ROUTES_NEW));
381
+ };
382
+ /** This agent's ComponentMetadata entries. */ const findAgentComponents = (components)=>(components ?? []).filter((component)=>component.generator === PY_AGENT_GENERATOR_INFO.id);
383
+ export default async function migration(tree) {
384
+ const nextSteps = [];
385
+ for (const project of getProjects(tree).values()){
386
+ const components = findAgentComponents(project.metadata?.components);
387
+ for (const component of components){
388
+ if (!component.path) continue;
389
+ const dir = joinPathFragments(project.root, component.path);
390
+ const framework = component.framework ?? 'strands';
391
+ if (component.protocol === 'http') {
392
+ if (framework === 'langchain') {
393
+ await migrateLangchainHttpAgent(tree, dir, nextSteps);
394
+ } else {
395
+ await migrateStrandsHttpAgent(tree, dir, nextSteps);
396
+ }
397
+ } else if (component.protocol === 'ag-ui') {
398
+ if (framework === 'langchain') {
399
+ await migrateLangchainAgUiAgent(tree, dir, nextSteps);
400
+ } else {
401
+ await migrateStrandsAgUiAgent(tree, dir, nextSteps);
402
+ }
403
+ }
404
+ }
405
+ }
406
+ await formatFilesInSubtree(tree);
407
+ return {
408
+ nextSteps
409
+ };
410
+ }
411
+
412
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/latest/py-agent-lifespan-construction/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n getProjects,\n joinPathFragments,\n type MigrationReturnObject,\n type Tree,\n} from '@nx/devkit';\nimport { PY_AGENT_GENERATOR_INFO } from '../../../py/agent/generator';\nimport {\n addPythonDestructuredImport,\n applyGritQL,\n captureGritQLVariable,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport type { ComponentMetadata } from '../../../utils/nx';\n\n/**\n * Move py#agent HTTP/AG-UI agent construction out of module import time and\n * into a FastAPI `lifespan` handler, stored on `app.state`.\n *\n * Building the agent eagerly at import time breaks any codepath that imports\n * the module before `RUNTIME_CONFIG_APP_ID`/AgentCore env vars are set (e.g.\n * OpenAPI spec generation, tests) - and, for AgentCore, construction belongs\n * at container/app startup rather than import, since AgentCore hands each\n * session its own container. The A2A protocol is unaffected: `with_session_id`\n * only touches the agent factory lazily on first use, so its eager\n * `__enter__()` was never actually eager in practice.\n *\n * How to write a migration:\n * - https://nx.dev/docs/kb/migration-generators\n * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject\n *\n * Guardrails:\n * - Pattern-match before writing: every rewrite this migration makes to a file\n * is preceded by a read-only `matchGritQL` check of every pattern it will\n * need - so a diverged file is reported via `nextSteps` and left completely\n * untouched, rather than partially rewritten into a broken state.\n * - Idempotent: re-running must be a no-op (each rewrite's own shape change\n * means its pattern no longer matches on a second pass).\n * - Format what you write: finish with `formatFilesInSubtree`.\n */\n\n/** A read-only GritQL match against a python file (no rewrite). */\nconst pyMatch = (snippet: string) => `language python\\n\\`${snippet}\\``;\n\n/** A GritQL rewrite deleting the matched python snippet entirely. */\nconst pyDelete = (snippet: string) => `${pyMatch(snippet)} => .`;\n\n/**\n * A GritQL rewrite of one python snippet into another. Multi-line\n * replacements go through `raw` so GritQL's own reformatting doesn't fight\n * the exact shape being written (formatFilesInSubtree normalizes it after).\n */\nconst pyRewrite = (from: string, to: string, where?: string): string => {\n const replacement = to.includes('\\n') ? `raw\\`${to}\\`` : `\\`${to}\\``;\n return `${pyMatch(from)} => ${replacement}${where ? ` where { ${where} }` : ''}`;\n};\n\n/** All checks must match before anything is written for that agent. */\nconst allMatch = async (\n tree: Tree,\n checks: ReadonlyArray<readonly [filePath: string, pattern: string]>,\n): Promise<boolean> => {\n for (const [filePath, pattern] of checks) {\n if (!(await matchGritQL(tree, filePath, pattern))) return false;\n }\n return true;\n};\n\nconst AGENT_CONNECTION_MODULE_PATTERN = (names: string) =>\n pyMatch(`from $mod import ${names}`);\n\nconst STRANDS_HTTP_MARKER = '_agent_ctx = with_session_id(';\nconst LANGCHAIN_HTTP_MARKER = '_graph = get_agent()';\nconst STRANDS_AGUI_MARKER = 'create_strands_app';\nconst LANGCHAIN_AGUI_MARKER = '_graph = get_agent()';\n\n// Shared by strands/http and langchain/http - only the lifespan body differs.\nconst HTTP_INIT_APP_OLD = `app = FastAPI(\n title=\"$name\",\n responses={500: {\"model\": InternalServerErrorDetails}},\n generate_unique_id_function=lambda route: route.name,\n)`;\n\n// --- Strands HTTP -----------------------------------------------------------\n\nconst STRANDS_HTTP_MAIN_CTX_OLD = `_agent_ctx = with_session_id(\n get_agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via HTTP streaming.\",\n)`;\n\nconst STRANDS_HTTP_INIT_APP_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n with with_session_id(\n get_agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via HTTP streaming.\",\n ) as agent:\n app.state.agent = agent\n yield\n\n\napp = FastAPI(\n title=\"$name\",\n responses={500: {\"model\": InternalServerErrorDetails}},\n generate_unique_id_function=lambda route: route.name,\n lifespan=lifespan,\n)`;\n\nconst migrateStrandsHttpAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const initPath = joinPathFragments(dir, 'init.py');\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(initPath) || !tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(STRANDS_HTTP_MARKER)) return;\n\n const mod = await captureGritQLVariable(\n tree,\n mainPath,\n AGENT_CONNECTION_MODULE_PATTERN('session_id_context, with_session_id'),\n 'mod',\n );\n\n const ready =\n !!mod &&\n (await allMatch(tree, [\n [mainPath, pyMatch(STRANDS_HTTP_MAIN_CTX_OLD)],\n [mainPath, pyMatch('_agent = _agent_ctx.__enter__()')],\n [mainPath, pyMatch('from .agent import get_agent')],\n [mainPath, pyMatch('_agent.stream_async($prompt)')],\n [initPath, pyMatch(HTTP_INIT_APP_OLD)],\n ]));\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually move agent construction into an \\`init.py\\` \\`lifespan\\` handler storing the agent on \\`app.state.agent\\` (see the py#agent generator's strands/http template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n initPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n await addPythonDestructuredImport(tree, initPath, ['get_agent'], '.agent');\n await addPythonDestructuredImport(tree, initPath, ['with_session_id'], mod);\n await applyGritQL(\n tree,\n initPath,\n pyRewrite(HTTP_INIT_APP_OLD, STRANDS_HTTP_INIT_APP_NEW),\n );\n\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n 'from $mod import session_id_context, with_session_id',\n 'from $mod import session_id_context',\n ),\n );\n await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));\n await applyGritQL(tree, mainPath, pyDelete(STRANDS_HTTP_MAIN_CTX_OLD));\n await applyGritQL(\n tree,\n mainPath,\n pyDelete('_agent = _agent_ctx.__enter__()'),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n '_agent.stream_async($prompt)',\n 'app.state.agent.stream_async($prompt)',\n ),\n );\n};\n\n// --- LangChain HTTP ----------------------------------------------------------\n\nconst LANGCHAIN_HTTP_INIT_APP_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n app.state.graph = get_agent()\n yield\n\n\napp = FastAPI(\n title=\"$name\",\n responses={500: {\"model\": InternalServerErrorDetails}},\n generate_unique_id_function=lambda route: route.name,\n lifespan=lifespan,\n)`;\n\nconst migrateLangchainHttpAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const initPath = joinPathFragments(dir, 'init.py');\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(initPath) || !tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(LANGCHAIN_HTTP_MARKER)) return;\n\n const ready = await allMatch(tree, [\n [mainPath, pyMatch('_graph = get_agent()')],\n [mainPath, pyMatch('from .agent import get_agent')],\n [mainPath, pyMatch('_graph.astream($args)')],\n [initPath, pyMatch(HTTP_INIT_APP_OLD)],\n ]);\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually wrap \\`get_agent()\\` in an \\`init.py\\` \\`lifespan\\` handler storing the graph on \\`app.state.graph\\` (see the py#agent generator's langchain/http template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n initPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n await addPythonDestructuredImport(tree, initPath, ['get_agent'], '.agent');\n await applyGritQL(\n tree,\n initPath,\n pyRewrite(HTTP_INIT_APP_OLD, LANGCHAIN_HTTP_INIT_APP_NEW),\n );\n\n await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));\n await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite('_graph.astream($args)', 'app.state.graph.astream($args)'),\n );\n};\n\n// --- LangChain AG-UI ---------------------------------------------------------\n\nconst LANGCHAIN_AGUI_AGENT_OLD = `agui_agent = LangGraphAgent(\n name=\"$name\",\n graph=_graph,\n description=\"A LangChain/LangGraph Agent exposed via the AG-UI protocol.\",\n)`;\n\nconst LANGCHAIN_AGUI_AGENT_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n graph = get_agent()\n app.state.agui_agent = LangGraphAgent(\n name=\"$name\",\n graph=graph,\n description=\"A LangChain/LangGraph Agent exposed via the AG-UI protocol.\",\n )\n yield`;\n\nconst migrateLangchainAgUiAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(LANGCHAIN_AGUI_MARKER)) return;\n\n const ready = await allMatch(tree, [\n [mainPath, pyMatch('_graph = get_agent()')],\n [mainPath, pyMatch(LANGCHAIN_AGUI_AGENT_OLD)],\n [mainPath, pyMatch('agui_agent.run($input)')],\n [mainPath, pyMatch('app = FastAPI(title=\"$name\")')],\n ]);\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched. Manually wrap graph + \\`LangGraphAgent\\` construction in a \\`lifespan\\` handler storing the wrapper on \\`app.state.agui_agent\\` (see the py#agent generator's langchain/ag-ui template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n\n await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(LANGCHAIN_AGUI_AGENT_OLD, LANGCHAIN_AGUI_AGENT_NEW),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n 'agui_agent.run($input)',\n 'request.app.state.agui_agent.run($input)',\n ),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n 'app = FastAPI(title=\"$name\")',\n 'app = FastAPI(title=\"$name\", lifespan=lifespan)',\n ),\n );\n};\n\n// --- Strands AG-UI -----------------------------------------------------------\n// The biggest of the four: `ag_ui_strands.create_strands_app` is dropped\n// entirely for an inlined FastAPI app (matching upstream `ag_ui_strands`,\n// plus a Content-Type-independent body-parsing fix and an explicit session\n// re-bind `create_strands_app` was missing), so most of the file is new.\n\nconst STRANDS_AGUI_IMPORT_OLD =\n 'from ag_ui_strands import StrandsAgent, create_strands_app';\n\nconst STRANDS_AGUI_AGENT_OLD = `agui_agent = StrandsAgent(\n agent=_agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via the AG-UI protocol.\",\n)`;\n\nconst STRANDS_AGUI_AGENT_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n with get_agent() as agent:\n app.state.agui_agent = StrandsAgent(\n agent=agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via the AG-UI protocol.\",\n )\n yield`;\n\nconst STRANDS_AGUI_APP_OLD =\n 'app = create_strands_app(agui_agent, path=\"/invocations\")';\n\n// `$name` isn't bound within this match (unlike STRANDS_AGUI_AGENT_OLD above),\n// so the title is built from a name captured separately rather than reused as\n// a metavariable - GritQL leaves a rewrite whose replacement references an\n// unbound metavariable unapplied.\nconst strandsAguiAppNew = (\n name: string,\n) => `app = FastAPI(title=\"AWS Strands - ${name}\", lifespan=lifespan)\napp.add_middleware(\n CORSMiddleware,\n allow_origins=[\"*\"],\n allow_credentials=True,\n allow_methods=[\"*\"],\n allow_headers=[\"*\"],\n)`;\n\nconst STRANDS_AGUI_MIDDLEWARE_OLD = 'app.add_middleware(_SessionIdMiddleware)';\n\nconst STRANDS_AGUI_ROUTES_NEW = `app.add_middleware(_SessionIdMiddleware)\n\n\n@app.post(\"/invocations\")\nasync def invocations(request: Request):\n # Validate the body manually since AgentCore may omit Content-Type.\n encoder = EventEncoder(accept=request.headers.get(\"accept\") or \"\")\n raw = await request.body()\n try:\n input_data = RunAgentInput.model_validate_json(raw)\n except Exception as exc:\n message = f\"Invalid RunAgentInput: {str(exc)[:200]}\"\n\n async def _bad():\n yield encoder.encode(RunErrorEvent(type=EventType.RUN_ERROR, message=message, code=\"BAD_REQUEST\"))\n\n return StreamingResponse(_bad(), media_type=encoder.get_content_type())\n\n session_id = request.headers.get(SESSION_ID_HEADER) or get_current_session_id()\n\n async def event_generator():\n # Re-bind the session: the streaming body runs outside the middleware.\n with session_id_context(session_id or str(uuid.uuid4())):\n async for event in request.app.state.agui_agent.run(input_data):\n try:\n yield encoder.encode(event)\n except Exception as e:\n error_event = RunErrorEvent(\n type=EventType.RUN_ERROR,\n message=f\"Encoding error: {e}\",\n code=\"ENCODING_ERROR\",\n )\n yield encoder.encode(error_event)\n break\n\n return StreamingResponse(event_generator(), media_type=encoder.get_content_type())\n\n\n@app.get(\"/ping\")\nasync def ping():\n return {\"status\": \"healthy\"}`;\n\nconst STRANDS_AGUI_COMMENTS_OLD = [\n '# Create AG-UI agent wrapper',\n '# Create FastAPI app with AG-UI endpoint and health check',\n];\n\nconst migrateStrandsAgUiAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(STRANDS_AGUI_MARKER)) return;\n\n const mod = await captureGritQLVariable(\n tree,\n mainPath,\n AGENT_CONNECTION_MODULE_PATTERN('session_id_context'),\n 'mod',\n );\n const agentClassName = await captureGritQLVariable(\n tree,\n mainPath,\n pyMatch(STRANDS_AGUI_AGENT_OLD),\n 'name',\n );\n\n const ready =\n !!mod &&\n !!agentClassName &&\n (await allMatch(tree, [\n [mainPath, pyMatch(STRANDS_AGUI_IMPORT_OLD)],\n [mainPath, pyMatch('_agent_ctx = get_agent()')],\n [mainPath, pyMatch('_agent = _agent_ctx.__enter__()')],\n [mainPath, pyMatch(STRANDS_AGUI_AGENT_OLD)],\n [mainPath, pyMatch(STRANDS_AGUI_APP_OLD)],\n [mainPath, pyMatch(STRANDS_AGUI_MIDDLEWARE_OLD)],\n ]));\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched. Manually rebuild this file without \\`create_strands_app\\`: a \\`lifespan\\` handler storing the wrapper on \\`app.state.agui_agent\\`, and inlined \\`/invocations\\`/\\`/ping\\` routes with Content-Type-independent body parsing (see the py#agent generator's strands/ag-ui template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['EventType', 'RunAgentInput', 'RunErrorEvent'],\n 'ag_ui.core',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['EventEncoder'],\n 'ag_ui.encoder',\n );\n await addPythonDestructuredImport(tree, mainPath, ['FastAPI'], 'fastapi');\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['CORSMiddleware'],\n 'fastapi.middleware.cors',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['StreamingResponse'],\n 'fastapi.responses',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['get_current_session_id'],\n mod,\n );\n\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n STRANDS_AGUI_IMPORT_OLD,\n 'from ag_ui_strands import StrandsAgent',\n ),\n );\n await applyGritQL(tree, mainPath, pyDelete('_agent_ctx = get_agent()'));\n await applyGritQL(\n tree,\n mainPath,\n pyDelete('_agent = _agent_ctx.__enter__()'),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(STRANDS_AGUI_AGENT_OLD, STRANDS_AGUI_AGENT_NEW),\n );\n for (const comment of STRANDS_AGUI_COMMENTS_OLD) {\n await applyGritQL(tree, mainPath, pyDelete(comment));\n }\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(STRANDS_AGUI_APP_OLD, strandsAguiAppNew(agentClassName)),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(STRANDS_AGUI_MIDDLEWARE_OLD, STRANDS_AGUI_ROUTES_NEW),\n );\n};\n\n/** This agent's ComponentMetadata entries. */\nconst findAgentComponents = (\n components: ComponentMetadata[] | undefined,\n): ComponentMetadata[] =>\n (components ?? []).filter(\n (component) => component.generator === PY_AGENT_GENERATOR_INFO.id,\n );\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n for (const project of getProjects(tree).values()) {\n const components = findAgentComponents(\n (project.metadata as { components?: ComponentMetadata[] })?.components,\n );\n\n for (const component of components) {\n if (!component.path) continue;\n const dir = joinPathFragments(project.root, component.path);\n const framework = component.framework ?? 'strands';\n\n if (component.protocol === 'http') {\n if (framework === 'langchain') {\n await migrateLangchainHttpAgent(tree, dir, nextSteps);\n } else {\n await migrateStrandsHttpAgent(tree, dir, nextSteps);\n }\n } else if (component.protocol === 'ag-ui') {\n if (framework === 'langchain') {\n await migrateLangchainAgUiAgent(tree, dir, nextSteps);\n } else {\n await migrateStrandsAgUiAgent(tree, dir, nextSteps);\n }\n }\n }\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["getProjects","joinPathFragments","PY_AGENT_GENERATOR_INFO","addPythonDestructuredImport","applyGritQL","captureGritQLVariable","matchGritQL","formatFilesInSubtree","pyMatch","snippet","pyDelete","pyRewrite","from","to","where","replacement","includes","allMatch","tree","checks","filePath","pattern","AGENT_CONNECTION_MODULE_PATTERN","names","STRANDS_HTTP_MARKER","LANGCHAIN_HTTP_MARKER","STRANDS_AGUI_MARKER","LANGCHAIN_AGUI_MARKER","HTTP_INIT_APP_OLD","STRANDS_HTTP_MAIN_CTX_OLD","STRANDS_HTTP_INIT_APP_NEW","migrateStrandsHttpAgent","dir","nextSteps","initPath","mainPath","exists","mainContents","read","mod","ready","push","LANGCHAIN_HTTP_INIT_APP_NEW","migrateLangchainHttpAgent","LANGCHAIN_AGUI_AGENT_OLD","LANGCHAIN_AGUI_AGENT_NEW","migrateLangchainAgUiAgent","STRANDS_AGUI_IMPORT_OLD","STRANDS_AGUI_AGENT_OLD","STRANDS_AGUI_AGENT_NEW","STRANDS_AGUI_APP_OLD","strandsAguiAppNew","name","STRANDS_AGUI_MIDDLEWARE_OLD","STRANDS_AGUI_ROUTES_NEW","STRANDS_AGUI_COMMENTS_OLD","migrateStrandsAgUiAgent","agentClassName","comment","findAgentComponents","components","filter","component","generator","id","migration","project","values","metadata","path","root","framework","protocol"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Bump the rolldown and dts plugin pins in the Smithy build.Dockerfile so the bundled SSDK type declaration resolves"
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>;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { getProjects, joinPathFragments } from "@nx/devkit";
5
+ import { SMITHY_PROJECT_GENERATOR_INFO } from "../../../smithy/project/generator.js";
6
+ import { applyGritQL } from "../../../utils/ast.js";
7
+ import { formatFilesInSubtree } from "../../../utils/format.js";
8
+ import { isVendedUpgrade } from "../../../utils/version-upgrade-migration/vended-upgrade.js";
9
+ /**
10
+ * Hardcoded rather than read from `TS_VERSIONS`: this runs once, for the release
11
+ * that fixed the declaration naming, so it must keep applying that exact change
12
+ * however far the vended versions move afterwards. A workspace on a later release
13
+ * gets the newer pins from the version sync instead.
14
+ */ const PINS = [
15
+ {
16
+ name: 'rolldown',
17
+ target: '1.2.0'
18
+ },
19
+ {
20
+ name: 'rolldown-plugin-dts',
21
+ target: '0.28.0'
22
+ },
23
+ {
24
+ name: '@rollup/plugin-esm-shim',
25
+ target: '0.1.8'
26
+ }
27
+ ];
28
+ /** A version ends at whitespace, a line break or the end of the command. */ const VERSION = String.raw`[^\s\\]+`;
29
+ const escapeRegExp = (value)=>value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
30
+ /**
31
+ * Rewrite every occurrence of one pin to its target version.
32
+ *
33
+ * The pin is matched by name, so a `rolldown-plugin-dts@x` in the same command as
34
+ * `rolldown@y` keeps its own version — the `@` before the version terminates the
35
+ * match, so the shorter name does not match the longer one.
36
+ */ const rewritePin = ({ name, target })=>`r"[\\s\\S]*${escapeRegExp(name)}@(${VERSION})[\\s\\S]*"($version) where { $version => \`${target}\` }`;
37
+ /** Whether the file pins this package behind the target version. */ const isBehindTarget = (contents, { name, target })=>{
38
+ const matches = contents.matchAll(new RegExp(`${escapeRegExp(name)}@(${VERSION})`, 'g'));
39
+ const declared = [
40
+ ...matches
41
+ ].flatMap((match)=>match[1] ? [
42
+ match[1]
43
+ ] : []);
44
+ // A rewrite replaces every occurrence at once, so this has to hold for all of
45
+ // them. Compared rather than tested for inequality, so a workspace a later
46
+ // release has already moved past the target keeps its newer pin.
47
+ return declared.length > 0 && declared.every((version)=>isVendedUpgrade(target, version));
48
+ };
49
+ const divergedNextStep = (path)=>`${path}: the Smithy build image's bundle pins have diverged from the generated shape - left untouched. Update \`rolldown\` to 1.2.0 and \`rolldown-plugin-dts\` to 0.28.0.`;
50
+ export default async function migration(tree) {
51
+ const nextSteps = [];
52
+ // Only a Smithy service project bundles the SSDK; the shapes type builds the
53
+ // model alone and pins none of this.
54
+ const buildDockerfiles = [
55
+ ...getProjects(tree).values()
56
+ ].filter((project)=>{
57
+ const metadata = project.metadata;
58
+ return metadata?.generator === SMITHY_PROJECT_GENERATOR_INFO.id && metadata.smithyType === 'service';
59
+ }).map((project)=>joinPathFragments(project.root, 'build.Dockerfile')).filter((filePath)=>tree.exists(filePath));
60
+ for (const path of buildDockerfiles){
61
+ const contents = tree.read(path, 'utf-8') ?? '';
62
+ for (const pin of PINS){
63
+ if (!isBehindTarget(contents, pin)) {
64
+ continue;
65
+ }
66
+ if (!await applyGritQL(tree, path, rewritePin(pin))) {
67
+ nextSteps.push(divergedNextStep(path));
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ await formatFilesInSubtree(tree);
73
+ return {
74
+ nextSteps
75
+ };
76
+ }
77
+
78
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/latest/smithy-ssdk-bundle-pins/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n getProjects,\n joinPathFragments,\n type MigrationReturnObject,\n type Tree,\n} from '@nx/devkit';\nimport { SMITHY_PROJECT_GENERATOR_INFO } from '../../../smithy/project/generator';\nimport { applyGritQL } from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { isVendedUpgrade } from '../../../utils/version-upgrade-migration/vended-upgrade';\n\n/**\n * Move a Smithy `build.Dockerfile` onto the SSDK bundle pins this release fixes.\n *\n * `rolldown-plugin-dts` named the bundled declaration after its content hash\n * before 0.20.0, so the generated handler's `./generated/ssdk/index.js` import\n * found no `index.d.ts` beside it and `compile` failed with TS7016. The two pins\n * move together: the plugin release that fixed the naming needs a rolldown past\n * the pin this shipped with.\n *\n * There is no Dockerfile grammar, so each pin is matched as an anchored rewrite\n * over the whole file with the version captured — `${...}` in these patterns is\n * GritQL metavariable syntax, not interpolation.\n */\n\n/** A pin in the file body, and the version this migration moves it to. */\ninterface Pin {\n /** The package as the install command names it. */\n readonly name: string;\n readonly target: string;\n}\n\n/**\n * Hardcoded rather than read from `TS_VERSIONS`: this runs once, for the release\n * that fixed the declaration naming, so it must keep applying that exact change\n * however far the vended versions move afterwards. A workspace on a later release\n * gets the newer pins from the version sync instead.\n */\nconst PINS: readonly Pin[] = [\n { name: 'rolldown', target: '1.2.0' },\n { name: 'rolldown-plugin-dts', target: '0.28.0' },\n { name: '@rollup/plugin-esm-shim', target: '0.1.8' },\n];\n\n/** A version ends at whitespace, a line break or the end of the command. */\nconst VERSION = String.raw`[^\\s\\\\]+`;\n\nconst escapeRegExp = (value: string): string =>\n value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n/**\n * Rewrite every occurrence of one pin to its target version.\n *\n * The pin is matched by name, so a `rolldown-plugin-dts@x` in the same command as\n * `rolldown@y` keeps its own version — the `@` before the version terminates the\n * match, so the shorter name does not match the longer one.\n */\nconst rewritePin = ({ name, target }: Pin): string =>\n `r\"[\\\\s\\\\S]*${escapeRegExp(name)}@(${VERSION})[\\\\s\\\\S]*\"($version) where { $version => \\`${target}\\` }`;\n\n/** Whether the file pins this package behind the target version. */\nconst isBehindTarget = (contents: string, { name, target }: Pin): boolean => {\n const matches = contents.matchAll(\n new RegExp(`${escapeRegExp(name)}@(${VERSION})`, 'g'),\n );\n const declared = [...matches].flatMap((match) =>\n match[1] ? [match[1]] : [],\n );\n // A rewrite replaces every occurrence at once, so this has to hold for all of\n // them. Compared rather than tested for inequality, so a workspace a later\n // release has already moved past the target keeps its newer pin.\n return (\n declared.length > 0 &&\n declared.every((version) => isVendedUpgrade(target, version))\n );\n};\n\nconst divergedNextStep = (path: string): string =>\n `${path}: the Smithy build image's bundle pins have diverged from the generated shape - left untouched. Update \\`rolldown\\` to 1.2.0 and \\`rolldown-plugin-dts\\` to 0.28.0.`;\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n // Only a Smithy service project bundles the SSDK; the shapes type builds the\n // model alone and pins none of this.\n const buildDockerfiles = [...getProjects(tree).values()]\n .filter((project) => {\n const metadata = project.metadata as\n | { generator?: string; smithyType?: string }\n | undefined;\n return (\n metadata?.generator === SMITHY_PROJECT_GENERATOR_INFO.id &&\n metadata.smithyType === 'service'\n );\n })\n .map((project) => joinPathFragments(project.root, 'build.Dockerfile'))\n .filter((filePath) => tree.exists(filePath));\n\n for (const path of buildDockerfiles) {\n const contents = tree.read(path, 'utf-8') ?? '';\n\n for (const pin of PINS) {\n if (!isBehindTarget(contents, pin)) {\n continue;\n }\n if (!(await applyGritQL(tree, path, rewritePin(pin)))) {\n nextSteps.push(divergedNextStep(path));\n break;\n }\n }\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["getProjects","joinPathFragments","SMITHY_PROJECT_GENERATOR_INFO","applyGritQL","formatFilesInSubtree","isVendedUpgrade","PINS","name","target","VERSION","String","raw","escapeRegExp","value","replace","rewritePin","isBehindTarget","contents","matches","matchAll","RegExp","declared","flatMap","match","length","every","version","divergedNextStep","path","migration","tree","nextSteps","buildDockerfiles","values","filter","project","metadata","generator","id","smithyType","map","root","filePath","exists","read","pin","push"],"mappings":"AAAA;;;CAGC,GACD,SACEA,WAAW,EACXC,iBAAiB,QAGZ,aAAa;AACpB,SAASC,6BAA6B,QAAQ,uCAAoC;AAClF,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,eAAe,QAAQ,6DAA0D;AAuB1F;;;;;CAKC,GACD,MAAMC,OAAuB;IAC3B;QAAEC,MAAM;QAAYC,QAAQ;IAAQ;IACpC;QAAED,MAAM;QAAuBC,QAAQ;IAAS;IAChD;QAAED,MAAM;QAA2BC,QAAQ;IAAQ;CACpD;AAED,0EAA0E,GAC1E,MAAMC,UAAUC,OAAOC,GAAG,CAAC,QAAQ,CAAC;AAEpC,MAAMC,eAAe,CAACC,QACpBA,MAAMC,OAAO,CAAC,uBAAuB;AAEvC;;;;;;CAMC,GACD,MAAMC,aAAa,CAAC,EAAER,IAAI,EAAEC,MAAM,EAAO,GACvC,CAAC,WAAW,EAAEI,aAAaL,MAAM,EAAE,EAAEE,QAAQ,4CAA4C,EAAED,OAAO,IAAI,CAAC;AAEzG,kEAAkE,GAClE,MAAMQ,iBAAiB,CAACC,UAAkB,EAAEV,IAAI,EAAEC,MAAM,EAAO;IAC7D,MAAMU,UAAUD,SAASE,QAAQ,CAC/B,IAAIC,OAAO,GAAGR,aAAaL,MAAM,EAAE,EAAEE,QAAQ,CAAC,CAAC,EAAE;IAEnD,MAAMY,WAAW;WAAIH;KAAQ,CAACI,OAAO,CAAC,CAACC,QACrCA,KAAK,CAAC,EAAE,GAAG;YAACA,KAAK,CAAC,EAAE;SAAC,GAAG,EAAE;IAE5B,8EAA8E;IAC9E,2EAA2E;IAC3E,iEAAiE;IACjE,OACEF,SAASG,MAAM,GAAG,KAClBH,SAASI,KAAK,CAAC,CAACC,UAAYrB,gBAAgBG,QAAQkB;AAExD;AAEA,MAAMC,mBAAmB,CAACC,OACxB,GAAGA,KAAK,mKAAmK,CAAC;AAE9K,eAAe,eAAeC,UAC5BC,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,6EAA6E;IAC7E,qCAAqC;IACrC,MAAMC,mBAAmB;WAAIhC,YAAY8B,MAAMG,MAAM;KAAG,CACrDC,MAAM,CAAC,CAACC;QACP,MAAMC,WAAWD,QAAQC,QAAQ;QAGjC,OACEA,UAAUC,cAAcnC,8BAA8BoC,EAAE,IACxDF,SAASG,UAAU,KAAK;IAE5B,GACCC,GAAG,CAAC,CAACL,UAAYlC,kBAAkBkC,QAAQM,IAAI,EAAE,qBACjDP,MAAM,CAAC,CAACQ,WAAaZ,KAAKa,MAAM,CAACD;IAEpC,KAAK,MAAMd,QAAQI,iBAAkB;QACnC,MAAMf,WAAWa,KAAKc,IAAI,CAAChB,MAAM,YAAY;QAE7C,KAAK,MAAMiB,OAAOvC,KAAM;YACtB,IAAI,CAACU,eAAeC,UAAU4B,MAAM;gBAClC;YACF;YACA,IAAI,CAAE,MAAM1C,YAAY2B,MAAMF,MAAMb,WAAW8B,OAAQ;gBACrDd,UAAUe,IAAI,CAACnB,iBAAiBC;gBAChC;YACF;QACF;IACF;IAEA,MAAMxB,qBAAqB0B;IAE3B,OAAO;QAAEC;IAAU;AACrB"}
@@ -0,0 +1,48 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`strip-pip-from-python-images migration > strips pip from a py#agent Dockerfile 1`] = `
4
+ "FROM public.ecr.aws/docker/library/python:3.14-slim
5
+
6
+ # Remove the base image's pip: the runtime runs from the bundled environment and
7
+ # never needs it, and pip's vendored packages carry known HIGH/CRITICAL
8
+ # vulnerabilities flagged by the image scan.
9
+ RUN python -m pip uninstall -y pip && \\
10
+ rm -rf /usr/local/lib/python*/site-packages/pip \\
11
+ /usr/local/lib/python*/site-packages/pip-*.dist-info
12
+
13
+ WORKDIR /app
14
+
15
+ # Copy bundled package
16
+ COPY . /app
17
+
18
+ EXPOSE 8080
19
+
20
+ ENV PYTHONPATH=/app
21
+ ENV PATH="/app/bin:\${PATH}"
22
+
23
+ CMD ["python", "bin/opentelemetry-instrument", "python", "-m", "proj_py_project.my_agent.main"]
24
+ "
25
+ `;
26
+
27
+ exports[`strip-pip-from-python-images migration > strips pip from a py#mcp-server Dockerfile 1`] = `
28
+ "FROM public.ecr.aws/docker/library/python:3.14-slim
29
+
30
+ # Remove the base image's pip: the runtime runs from the bundled environment and
31
+ # never needs it, and pip's vendored packages carry known HIGH/CRITICAL
32
+ # vulnerabilities flagged by the image scan.
33
+ RUN python -m pip uninstall -y pip && \\
34
+ rm -rf /usr/local/lib/python*/site-packages/pip \\
35
+ /usr/local/lib/python*/site-packages/pip-*.dist-info
36
+
37
+ WORKDIR /app
38
+
39
+ # Copy bundled package
40
+ COPY . /app
41
+
42
+ EXPOSE 8000
43
+
44
+ ENV PYTHONPATH=/app
45
+
46
+ CMD ["python", "bin/opentelemetry-instrument", "python", "-m", "uvicorn", "proj_py_project.my_mcp.http:app", "--host", "0.0.0.0", "--port", "8000"]
47
+ "
48
+ `;
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Remove pip from vended Python agent / MCP server images so its vulnerable vendored packages are not present at runtime"
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>;