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

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 (1262) 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 +111 -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/smithy-ssdk-bundle-pins/metadata.json +3 -0
  188. package/src/migrations/latest/smithy-ssdk-bundle-pins/migration.d.ts +6 -0
  189. package/src/migrations/latest/smithy-ssdk-bundle-pins/migration.js +78 -0
  190. package/src/migrations/latest/smithy-ssdk-bundle-pins/migration.js.map +1 -0
  191. package/src/migrations/latest/strip-pip-from-python-images/__snapshots__/migration.spec.ts.snap +48 -0
  192. package/src/migrations/latest/strip-pip-from-python-images/metadata.json +3 -0
  193. package/src/migrations/latest/strip-pip-from-python-images/migration.d.ts +6 -0
  194. package/src/migrations/latest/strip-pip-from-python-images/migration.js +91 -0
  195. package/src/migrations/latest/strip-pip-from-python-images/migration.js.map +1 -0
  196. package/src/migrations/latest/waf-log-group-removal/__snapshots__/migration.spec.ts.snap +57 -0
  197. package/src/migrations/latest/waf-log-group-removal/metadata.json +3 -0
  198. package/src/migrations/latest/waf-log-group-removal/migration.d.ts +6 -0
  199. package/src/migrations/latest/waf-log-group-removal/migration.js +77 -0
  200. package/src/migrations/latest/waf-log-group-removal/migration.js.map +1 -0
  201. package/src/migrations/v1.0.0-rc.50/modernize-function-props-cast/metadata.json +3 -0
  202. package/src/migrations/v1.0.0-rc.50/modernize-function-props-cast/migration.d.ts +6 -0
  203. package/src/migrations/v1.0.0-rc.50/modernize-function-props-cast/migration.js +65 -0
  204. package/src/migrations/v1.0.0-rc.50/modernize-function-props-cast/migration.js.map +1 -0
  205. package/src/migrations/v1.0.0-rc.50/restrict-cors-to-custom-domains/metadata.json +3 -0
  206. package/src/migrations/v1.0.0-rc.50/restrict-cors-to-custom-domains/migration.d.ts +6 -0
  207. package/src/migrations/v1.0.0-rc.50/restrict-cors-to-custom-domains/migration.js +108 -0
  208. package/src/migrations/v1.0.0-rc.50/restrict-cors-to-custom-domains/migration.js.map +1 -0
  209. package/src/migrations/v1.0.0-rc.50/terraform-bootstrap-adopt-existing-bucket/metadata.json +3 -0
  210. package/src/migrations/v1.0.0-rc.50/terraform-bootstrap-adopt-existing-bucket/migration.d.ts +6 -0
  211. package/src/migrations/v1.0.0-rc.50/terraform-bootstrap-adopt-existing-bucket/migration.js +128 -0
  212. package/src/migrations/v1.0.0-rc.50/terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -0
  213. package/src/migrations/v1.0.0-rc.52/user-identity-waf-allow-localhost-callback/metadata.json +3 -0
  214. package/src/migrations/v1.0.0-rc.52/user-identity-waf-allow-localhost-callback/migration.d.ts +6 -0
  215. package/src/migrations/v1.0.0-rc.52/user-identity-waf-allow-localhost-callback/migration.js +215 -0
  216. package/src/migrations/v1.0.0-rc.52/user-identity-waf-allow-localhost-callback/migration.js.map +1 -0
  217. package/src/migrations/v1.0.0-rc.54/order-access-log-delivery-after-bucket-policy/metadata.json +3 -0
  218. package/src/migrations/v1.0.0-rc.54/order-access-log-delivery-after-bucket-policy/migration.d.ts +6 -0
  219. package/src/migrations/v1.0.0-rc.54/order-access-log-delivery-after-bucket-policy/migration.js +93 -0
  220. package/src/migrations/v1.0.0-rc.54/order-access-log-delivery-after-bucket-policy/migration.js.map +1 -0
  221. package/src/migrations/v1.0.0-rc.55/backfill-generator-metadata/metadata.json +3 -0
  222. package/src/migrations/v1.0.0-rc.55/backfill-generator-metadata/migration.d.ts +96 -0
  223. package/src/migrations/v1.0.0-rc.55/backfill-generator-metadata/migration.js +670 -0
  224. package/src/migrations/v1.0.0-rc.55/backfill-generator-metadata/migration.js.map +1 -0
  225. package/src/migrations/v1.0.0-rc.56/dynamodb-local-remove-optimize-flag/metadata.json +3 -0
  226. package/src/migrations/v1.0.0-rc.56/dynamodb-local-remove-optimize-flag/migration.d.ts +6 -0
  227. package/src/migrations/v1.0.0-rc.56/dynamodb-local-remove-optimize-flag/migration.js +89 -0
  228. package/src/migrations/v1.0.0-rc.56/dynamodb-local-remove-optimize-flag/migration.js.map +1 -0
  229. package/src/migrations/v1.0.0-rc.57/ts-agent-session-management-support/metadata.json +3 -0
  230. package/src/migrations/v1.0.0-rc.57/ts-agent-session-management-support/migration.d.ts +6 -0
  231. package/src/migrations/v1.0.0-rc.57/ts-agent-session-management-support/migration.js +449 -0
  232. package/src/migrations/v1.0.0-rc.57/ts-agent-session-management-support/migration.js.map +1 -0
  233. package/src/open-api/ts-client/__snapshots__/generator.additional-properties.spec.ts.snap +147 -33
  234. package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
  235. package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +298 -74
  236. package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +748 -103
  237. package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +230 -37
  238. package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +249 -52
  239. package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5535 -0
  240. package/src/open-api/ts-client/__snapshots__/generator.fast-api-gaps.spec.ts.snap +736 -0
  241. package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +305 -71
  242. package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +298 -0
  243. package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +353 -82
  244. package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +176 -55
  245. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +100 -24
  246. package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
  247. package/src/open-api/ts-client/__snapshots__/generator.spec-compliance.spec.ts.snap +1883 -0
  248. package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
  249. package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +200 -48
  250. package/src/open-api/ts-client/files/client.gen.ts.template +358 -24
  251. package/src/open-api/ts-client/files/types.gen.ts.template +6 -4
  252. package/src/open-api/ts-client/generator.js +41 -26
  253. package/src/open-api/ts-client/generator.js.map +1 -1
  254. package/src/open-api/ts-client/schema.d.js +6 -0
  255. package/src/open-api/ts-client/schema.d.js.map +1 -0
  256. package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +7 -2
  257. package/src/open-api/ts-hooks/generator.js +17 -21
  258. package/src/open-api/ts-hooks/generator.js.map +1 -1
  259. package/src/open-api/ts-hooks/generator.spec.tsx +70 -0
  260. package/src/open-api/ts-hooks/schema.d.js +6 -0
  261. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  262. package/src/open-api/ts-metadata/generator.js +12 -20
  263. package/src/open-api/ts-metadata/generator.js.map +1 -1
  264. package/src/open-api/ts-metadata/schema.d.js +6 -0
  265. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  266. package/src/open-api/utils/codegen-data/languages.d.ts +0 -6
  267. package/src/open-api/utils/codegen-data/languages.js +59 -66
  268. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  269. package/src/open-api/utils/codegen-data/types.d.ts +255 -10
  270. package/src/open-api/utils/codegen-data/types.js +54 -30
  271. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  272. package/src/open-api/utils/codegen-data.d.ts +2 -2
  273. package/src/open-api/utils/codegen-data.js +494 -674
  274. package/src/open-api/utils/codegen-data.js.map +1 -1
  275. package/src/open-api/utils/normalise.js +437 -246
  276. package/src/open-api/utils/normalise.js.map +1 -1
  277. package/src/open-api/utils/parse.js +8 -14
  278. package/src/open-api/utils/parse.js.map +1 -1
  279. package/src/open-api/utils/parser.d.ts +55 -0
  280. package/src/open-api/utils/parser.js +787 -0
  281. package/src/open-api/utils/parser.js.map +1 -0
  282. package/src/open-api/utils/refs.js +12 -22
  283. package/src/open-api/utils/refs.js.map +1 -1
  284. package/src/open-api/utils/types.d.ts +18 -0
  285. package/src/open-api/utils/types.js +5 -2
  286. package/src/open-api/utils/types.js.map +1 -1
  287. package/src/preset/__snapshots__/generator.spec.ts.snap +99 -20
  288. package/src/preset/generator.d.ts +14 -1
  289. package/src/preset/generator.js +76 -151
  290. package/src/preset/generator.js.map +1 -1
  291. package/src/preset/schema.d.js +6 -0
  292. package/src/preset/schema.d.js.map +1 -0
  293. package/src/preset/schema.d.ts +4 -1
  294. package/src/preset/schema.json +16 -5
  295. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +334 -0
  296. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +734 -0
  297. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +191 -315
  298. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +190 -0
  299. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +31 -0
  300. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +29 -0
  301. package/src/py/agent/a2a-connection/generator.d.ts +24 -0
  302. package/src/py/agent/a2a-connection/generator.js +145 -88
  303. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  304. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  305. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  306. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  307. package/src/py/agent/a2a-connection/schema.json +5 -0
  308. package/src/py/agent/files/a2a-langchain/main.py.template +89 -0
  309. package/src/py/agent/files/ag-ui-langchain/main.py.template +83 -0
  310. package/src/py/agent/files/common/agent.py.template +2 -0
  311. package/src/py/agent/files/common-langchain/agent.py.template +30 -0
  312. package/src/py/agent/files/deploy/Dockerfile.template +8 -1
  313. package/src/py/agent/files/http/init.py.template +7 -25
  314. package/src/py/agent/files/http/main.py.template +3 -4
  315. package/src/py/agent/files/http-langchain/main.py.template +84 -0
  316. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
  317. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  318. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  319. package/src/py/agent/gateway-connection/generator.d.ts +33 -0
  320. package/src/py/agent/gateway-connection/generator.js +153 -0
  321. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  322. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  323. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  324. package/src/py/agent/gateway-connection/schema.d.ts +13 -0
  325. package/src/py/agent/gateway-connection/schema.json +31 -0
  326. package/src/py/agent/generator.d.ts +146 -1
  327. package/src/py/agent/generator.js +406 -197
  328. package/src/py/agent/generator.js.map +1 -1
  329. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +154 -89
  330. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +31 -0
  331. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +31 -0
  332. package/src/py/agent/mcp-connection/generator.d.ts +23 -0
  333. package/src/py/agent/mcp-connection/generator.js +103 -130
  334. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  335. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  336. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  337. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  338. package/src/py/agent/mcp-connection/schema.json +5 -0
  339. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +17 -19
  340. package/src/py/agent/react-connection/generator.d.ts +150 -1
  341. package/src/py/agent/react-connection/generator.js +105 -65
  342. package/src/py/agent/react-connection/generator.js.map +1 -1
  343. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
  344. package/src/py/agent/react-connection/local-dev.js +36 -0
  345. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  346. package/src/py/agent/react-connection/schema.d.js +8 -0
  347. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  348. package/src/py/agent/react-connection/schema.d.ts +1 -0
  349. package/src/py/agent/react-connection/schema.json +5 -0
  350. package/src/py/agent/schema.d.js +6 -0
  351. package/src/py/agent/schema.d.js.map +1 -0
  352. package/src/py/agent/schema.d.ts +5 -1
  353. package/src/py/agent/schema.json +15 -1
  354. package/src/py/api/generator.js +12 -11
  355. package/src/py/api/generator.js.map +1 -1
  356. package/src/py/api/schema.d.js +6 -0
  357. package/src/py/api/schema.d.js.map +1 -0
  358. package/src/py/api/schema.d.ts +1 -0
  359. package/src/py/api/schema.json +5 -0
  360. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1520 -0
  361. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +63 -0
  362. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  363. package/src/py/dynamodb/agent-connection/generator.js +45 -0
  364. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  365. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  366. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  367. package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
  368. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  369. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +32 -0
  370. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  371. package/src/py/dynamodb/fast-api-connection/generator.js +39 -0
  372. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  373. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  374. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  375. package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
  376. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  377. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  378. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  379. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  380. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  381. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  382. package/src/py/dynamodb/files/config.json.template +24 -0
  383. package/src/py/dynamodb/generator.d.ts +39 -0
  384. package/src/py/dynamodb/generator.js +130 -0
  385. package/src/py/dynamodb/generator.js.map +1 -0
  386. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +63 -0
  387. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  388. package/src/py/dynamodb/mcp-server-connection/generator.js +45 -0
  389. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  390. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  391. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  392. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  393. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  394. package/src/py/dynamodb/schema.d.js +6 -0
  395. package/src/py/dynamodb/schema.d.js.map +1 -0
  396. package/src/py/dynamodb/schema.d.ts +16 -0
  397. package/src/py/dynamodb/schema.json +76 -0
  398. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +240 -4693
  399. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +5409 -0
  400. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  401. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  402. package/src/py/fast-api/generator.d.ts +68 -0
  403. package/src/py/fast-api/generator.js +134 -95
  404. package/src/py/fast-api/generator.js.map +1 -1
  405. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
  406. package/src/py/fast-api/react/generator.d.ts +16 -1
  407. package/src/py/fast-api/react/generator.js +38 -26
  408. package/src/py/fast-api/react/generator.js.map +1 -1
  409. package/src/py/fast-api/react/open-api.js +31 -29
  410. package/src/py/fast-api/react/open-api.js.map +1 -1
  411. package/src/py/fast-api/react/schema.d.js +6 -0
  412. package/src/py/fast-api/react/schema.d.js.map +1 -0
  413. package/src/py/fast-api/react/schema.d.ts +1 -0
  414. package/src/py/fast-api/react/schema.json +5 -0
  415. package/src/py/fast-api/schema.d.js +6 -0
  416. package/src/py/fast-api/schema.d.js.map +1 -0
  417. package/src/py/fast-api/schema.d.ts +1 -0
  418. package/src/py/fast-api/schema.json +6 -0
  419. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  420. package/src/py/lambda-function/generator.d.ts +21 -0
  421. package/src/py/lambda-function/generator.js +82 -62
  422. package/src/py/lambda-function/generator.js.map +1 -1
  423. package/src/py/lambda-function/schema.d.js +6 -0
  424. package/src/py/lambda-function/schema.d.js.map +1 -0
  425. package/src/py/lambda-function/schema.d.ts +1 -0
  426. package/src/py/lambda-function/schema.json +5 -0
  427. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +221 -21
  428. package/src/py/mcp-server/files/deploy/Dockerfile.template +8 -1
  429. package/src/py/mcp-server/generator.d.ts +60 -0
  430. package/src/py/mcp-server/generator.js +204 -131
  431. package/src/py/mcp-server/generator.js.map +1 -1
  432. package/src/py/mcp-server/schema.d.js +6 -0
  433. package/src/py/mcp-server/schema.d.js.map +1 -0
  434. package/src/py/mcp-server/schema.d.ts +1 -0
  435. package/src/py/mcp-server/schema.json +6 -0
  436. package/src/py/project/generator.d.ts +27 -1
  437. package/src/py/project/generator.js +248 -130
  438. package/src/py/project/generator.js.map +1 -1
  439. package/src/py/project/schema.d.js +6 -0
  440. package/src/py/project/schema.d.js.map +1 -0
  441. package/src/py/project/schema.d.ts +1 -0
  442. package/src/py/project/schema.json +5 -0
  443. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2070 -0
  444. package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +123 -0
  445. package/src/py/rdb/agent-connection/generator.d.ts +10 -0
  446. package/src/py/rdb/agent-connection/generator.js +52 -0
  447. package/src/py/rdb/agent-connection/generator.js.map +1 -0
  448. package/src/py/rdb/agent-connection/schema.d.js +8 -0
  449. package/src/py/rdb/agent-connection/schema.d.js.map +1 -0
  450. package/src/py/rdb/agent-connection/schema.d.ts +15 -0
  451. package/src/py/rdb/agent-connection/schema.json +27 -0
  452. package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +51 -0
  453. package/src/py/rdb/fast-api-connection/files/__apiModuleName__/dependencies/__rdbNameSnake__.py.template +14 -0
  454. package/src/py/rdb/fast-api-connection/generator.d.ts +10 -0
  455. package/src/py/rdb/fast-api-connection/generator.js +56 -0
  456. package/src/py/rdb/fast-api-connection/generator.js.map +1 -0
  457. package/src/py/rdb/fast-api-connection/schema.d.js +8 -0
  458. package/src/py/rdb/fast-api-connection/schema.d.js.map +1 -0
  459. package/src/py/rdb/fast-api-connection/schema.d.ts +13 -0
  460. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  461. package/src/py/rdb/files/Dockerfile.create-db-user.template +14 -0
  462. package/src/py/rdb/files/Dockerfile.migration.template +14 -0
  463. package/src/py/rdb/files/__name__/__init__.py.template +3 -0
  464. package/src/py/rdb/files/__name__/connection.py.template +55 -0
  465. package/src/py/rdb/files/__name__/create_db_user_handler.py.template +97 -0
  466. package/src/py/rdb/files/__name__/migration_handler.py.template +36 -0
  467. package/src/py/rdb/files/__name__/models/__init__.py.template +3 -0
  468. package/src/py/rdb/files/__name__/models/example.py.template +8 -0
  469. package/src/py/rdb/files/__name__/utils.py.template +104 -0
  470. package/src/py/rdb/files/alembic.ini.template +38 -0
  471. package/src/py/rdb/files/config.json.template +14 -0
  472. package/src/py/rdb/files/migrations/env.py.template +80 -0
  473. package/src/py/rdb/files/migrations/script.py.mako.template +28 -0
  474. package/src/py/rdb/generator.d.ts +95 -0
  475. package/src/py/rdb/generator.js +328 -0
  476. package/src/py/rdb/generator.js.map +1 -0
  477. package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +119 -0
  478. package/src/py/rdb/mcp-server-connection/generator.d.ts +10 -0
  479. package/src/py/rdb/mcp-server-connection/generator.js +52 -0
  480. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -0
  481. package/src/py/rdb/mcp-server-connection/schema.d.js +8 -0
  482. package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -0
  483. package/src/py/rdb/mcp-server-connection/schema.d.ts +15 -0
  484. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  485. package/src/py/rdb/schema.d.js +6 -0
  486. package/src/py/rdb/schema.d.js.map +1 -0
  487. package/src/py/rdb/schema.d.ts +16 -0
  488. package/src/py/rdb/schema.json +78 -0
  489. package/src/py/rdb/utils.d.ts +6 -0
  490. package/src/py/rdb/utils.js +16 -0
  491. package/src/py/rdb/utils.js.map +1 -0
  492. package/src/sdk/agentcore-gateway.d.ts +6 -0
  493. package/src/sdk/agentcore-gateway.js +7 -0
  494. package/src/sdk/agentcore-gateway.js.map +1 -0
  495. package/src/sdk/connection.d.ts +6 -0
  496. package/src/sdk/connection.js +6 -0
  497. package/src/sdk/connection.js.map +1 -0
  498. package/src/sdk/license.d.ts +8 -0
  499. package/src/sdk/license.js +7 -0
  500. package/src/sdk/license.js.map +1 -0
  501. package/src/sdk/open-api.d.ts +10 -0
  502. package/src/sdk/open-api.js +8 -0
  503. package/src/sdk/open-api.js.map +1 -0
  504. package/src/sdk/py.d.ts +18 -0
  505. package/src/sdk/py.js +12 -0
  506. package/src/sdk/py.js.map +1 -0
  507. package/src/sdk/terraform.d.ts +6 -0
  508. package/src/sdk/terraform.js +7 -0
  509. package/src/sdk/terraform.js.map +1 -0
  510. package/src/sdk/ts.d.ts +39 -0
  511. package/src/sdk/ts.js +41 -0
  512. package/src/sdk/ts.js.map +1 -0
  513. package/{sdk/utils/format.d.ts → src/sdk/utils/ast.d.ts} +1 -1
  514. package/src/sdk/utils/ast.js +6 -0
  515. package/src/sdk/utils/ast.js.map +1 -0
  516. package/{sdk/utils/ast.d.ts → src/sdk/utils/format.d.ts} +1 -2
  517. package/src/sdk/utils/format.js +6 -0
  518. package/src/sdk/utils/format.js.map +1 -0
  519. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  520. package/src/sdk/utils/test.js +6 -0
  521. package/src/sdk/utils/test.js.map +1 -0
  522. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +132 -32
  523. package/src/smithy/project/files/{build.Dockerfile.template → service/build.Dockerfile.template} +3 -6
  524. package/src/smithy/project/files/{src → service/src}/operations/echo.smithy.template +1 -0
  525. package/src/smithy/project/files/shapes/build.Dockerfile.template +33 -0
  526. package/src/smithy/project/files/shapes/smithy-build.json.template +7 -0
  527. package/src/smithy/project/files/shapes/src/main.smithy.template +11 -0
  528. package/src/smithy/project/generator.d.ts +32 -0
  529. package/src/smithy/project/generator.js +101 -56
  530. package/src/smithy/project/generator.js.map +1 -1
  531. package/src/smithy/project/schema.d.js +6 -0
  532. package/src/smithy/project/schema.d.js.map +1 -0
  533. package/src/smithy/project/schema.d.ts +2 -0
  534. package/src/smithy/project/schema.json +28 -1
  535. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  536. package/src/smithy/react-connection/generator.d.ts +15 -0
  537. package/src/smithy/react-connection/generator.js +54 -48
  538. package/src/smithy/react-connection/generator.js.map +1 -1
  539. package/src/smithy/react-connection/schema.d.js +6 -0
  540. package/src/smithy/react-connection/schema.d.js.map +1 -0
  541. package/src/smithy/react-connection/schema.d.ts +1 -0
  542. package/src/smithy/react-connection/schema.json +5 -0
  543. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +847 -104
  544. package/src/smithy/ts/api/files/handler.ts.template +2 -2
  545. package/src/smithy/ts/api/files/local-server.ts.template +2 -2
  546. package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
  547. package/src/smithy/ts/api/files/service.ts.template +3 -3
  548. package/src/smithy/ts/api/generator.d.ts +84 -0
  549. package/src/smithy/ts/api/generator.js +187 -114
  550. package/src/smithy/ts/api/generator.js.map +1 -1
  551. package/src/smithy/ts/api/schema.d.js +6 -0
  552. package/src/smithy/ts/api/schema.d.js.map +1 -0
  553. package/src/smithy/ts/api/schema.d.ts +1 -0
  554. package/src/smithy/ts/api/schema.json +6 -0
  555. package/src/terraform/project/files/application/scripts/bootstrap.ts.template +40 -1
  556. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  557. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  558. package/src/terraform/project/generator.d.ts +50 -0
  559. package/src/terraform/project/generator.js +212 -111
  560. package/src/terraform/project/generator.js.map +1 -1
  561. package/src/terraform/project/schema.d.js +9 -0
  562. package/src/terraform/project/schema.d.js.map +1 -0
  563. package/src/terraform/project/schema.d.ts +1 -0
  564. package/src/terraform/project/schema.json +5 -0
  565. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1182 -184
  566. package/src/trpc/backend/files/src/client/index.ts.template +1 -1
  567. package/src/trpc/backend/files/src/handler.ts.template +1 -1
  568. package/src/trpc/backend/files/src/index.ts.template +5 -5
  569. package/src/trpc/backend/files/src/init.ts.template +1 -1
  570. package/src/trpc/backend/files/src/local-server.ts.template +1 -1
  571. package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
  572. package/src/trpc/backend/files/src/procedures/echo.ts.template +3 -3
  573. package/src/trpc/backend/files/src/router.ts.template +2 -2
  574. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  575. package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
  576. package/src/trpc/backend/generator.d.ts +90 -1
  577. package/src/trpc/backend/generator.js +177 -100
  578. package/src/trpc/backend/generator.js.map +1 -1
  579. package/src/trpc/backend/schema.d.js +6 -0
  580. package/src/trpc/backend/schema.d.js.map +1 -0
  581. package/src/trpc/backend/schema.d.ts +1 -0
  582. package/src/trpc/backend/schema.json +6 -0
  583. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
  584. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  585. package/src/trpc/react/generator.d.ts +38 -1
  586. package/src/trpc/react/generator.js +105 -63
  587. package/src/trpc/react/generator.js.map +1 -1
  588. package/src/trpc/react/schema.d.js +6 -0
  589. package/src/trpc/react/schema.d.js.map +1 -0
  590. package/src/trpc/react/schema.d.ts +1 -0
  591. package/src/trpc/react/schema.json +5 -0
  592. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1452 -25
  593. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +258 -0
  594. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  595. package/src/ts/agent/a2a-connection/generator.d.ts +46 -0
  596. package/src/ts/agent/a2a-connection/generator.js +110 -63
  597. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  598. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  599. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  600. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  601. package/src/ts/agent/a2a-connection/schema.json +5 -0
  602. package/src/ts/agent/files/a2a/index.ts.template +1 -1
  603. package/src/ts/agent/files/ag-ui/index.ts.template +36 -11
  604. package/src/ts/agent/files/common/agent.ts.template +15 -2
  605. package/src/ts/agent/files/common/session.ts.template +43 -0
  606. package/src/ts/agent/files/deploy/Dockerfile.template +13 -2
  607. package/src/ts/agent/files/http/client.ts.template +2 -2
  608. package/src/ts/agent/files/http/index.ts.template +2 -2
  609. package/src/ts/agent/files/http/router.ts.template +5 -5
  610. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +222 -0
  611. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  612. package/src/ts/agent/gateway-connection/generator.d.ts +47 -0
  613. package/src/ts/agent/gateway-connection/generator.js +144 -0
  614. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  615. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  616. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  617. package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
  618. package/src/ts/agent/gateway-connection/schema.json +31 -0
  619. package/src/ts/agent/generator.d.ts +197 -0
  620. package/src/ts/agent/generator.js +339 -156
  621. package/src/ts/agent/generator.js.map +1 -1
  622. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +194 -113
  623. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +23 -0
  624. package/src/ts/agent/mcp-connection/generator.d.ts +37 -0
  625. package/src/ts/agent/mcp-connection/generator.js +88 -65
  626. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  627. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  628. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  629. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  630. package/src/ts/agent/mcp-connection/schema.json +5 -0
  631. package/src/ts/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -4
  632. package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +2 -1
  633. package/src/ts/agent/react-connection/generator.d.ts +202 -1
  634. package/src/ts/agent/react-connection/generator.js +158 -99
  635. package/src/ts/agent/react-connection/generator.js.map +1 -1
  636. package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
  637. package/src/ts/agent/react-connection/local-dev.js +17 -0
  638. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  639. package/src/ts/agent/react-connection/schema.d.js +8 -0
  640. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  641. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  642. package/src/ts/agent/react-connection/schema.json +5 -0
  643. package/src/ts/agent/schema.d.js +6 -0
  644. package/src/ts/agent/schema.d.js.map +1 -0
  645. package/src/ts/agent/schema.d.ts +4 -0
  646. package/src/ts/agent/schema.json +14 -0
  647. package/src/ts/api/generator.js +16 -16
  648. package/src/ts/api/generator.js.map +1 -1
  649. package/src/ts/api/schema.d.js +6 -0
  650. package/src/ts/api/schema.d.js.map +1 -0
  651. package/src/ts/api/schema.d.ts +1 -0
  652. package/src/ts/api/schema.json +5 -0
  653. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +14 -14
  654. package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +3 -2
  655. package/src/ts/astro-docs/generator.d.ts +38 -0
  656. package/src/ts/astro-docs/generator.js +126 -61
  657. package/src/ts/astro-docs/generator.js.map +1 -1
  658. package/src/ts/astro-docs/schema.d.js +6 -0
  659. package/src/ts/astro-docs/schema.d.js.map +1 -0
  660. package/src/ts/astro-docs/schema.d.ts +2 -2
  661. package/src/ts/astro-docs/schema.json +3 -3
  662. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +982 -0
  663. package/src/ts/dcr-proxy/generator.d.ts +34 -0
  664. package/src/ts/dcr-proxy/generator.js +115 -0
  665. package/src/ts/dcr-proxy/generator.js.map +1 -0
  666. package/src/ts/dcr-proxy/schema.d.js +6 -0
  667. package/src/ts/dcr-proxy/schema.d.js.map +1 -0
  668. package/src/ts/dcr-proxy/schema.d.ts +13 -0
  669. package/src/ts/dcr-proxy/schema.json +44 -0
  670. package/src/ts/docs/generator.js +10 -10
  671. package/src/ts/docs/generator.js.map +1 -1
  672. package/src/ts/docs/schema.d.js +6 -0
  673. package/src/ts/docs/schema.d.js.map +1 -0
  674. package/src/ts/docs/schema.d.ts +1 -4
  675. package/src/ts/docs/schema.json +3 -3
  676. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +400 -518
  677. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +23 -5
  678. package/src/ts/dynamodb/agent-connection/generator.js +27 -23
  679. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  680. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  681. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  682. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
  683. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  684. package/src/ts/dynamodb/files/config.json.template +24 -0
  685. package/src/ts/dynamodb/files/src/client.ts.template +30 -11
  686. package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
  687. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
  688. package/src/ts/dynamodb/files/src/index.ts.template +2 -11
  689. package/src/ts/dynamodb/generator.d.ts +41 -0
  690. package/src/ts/dynamodb/generator.js +106 -64
  691. package/src/ts/dynamodb/generator.js.map +1 -1
  692. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +23 -5
  693. package/src/ts/dynamodb/mcp-server-connection/generator.js +27 -23
  694. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  695. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  696. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  697. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  698. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  699. package/src/ts/dynamodb/schema.d.js +6 -0
  700. package/src/ts/dynamodb/schema.d.js.map +1 -0
  701. package/src/ts/dynamodb/schema.d.ts +2 -0
  702. package/src/ts/dynamodb/schema.json +26 -2
  703. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
  704. package/src/ts/dynamodb/smithy-connection/generator.js +22 -22
  705. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  706. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  707. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  708. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  709. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  710. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  711. package/src/ts/dynamodb/trpc-connection/generator.js +22 -22
  712. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  713. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  714. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  715. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  716. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  717. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +8 -6
  718. package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
  719. package/src/ts/lambda-function/generator.d.ts +38 -0
  720. package/src/ts/lambda-function/generator.js +98 -65
  721. package/src/ts/lambda-function/generator.js.map +1 -1
  722. package/src/ts/lambda-function/io.js +83 -52
  723. package/src/ts/lambda-function/io.js.map +1 -1
  724. package/src/ts/lambda-function/schema.d.js +6 -0
  725. package/src/ts/lambda-function/schema.d.js.map +1 -0
  726. package/src/ts/lambda-function/schema.d.ts +1 -0
  727. package/src/ts/lambda-function/schema.json +5 -0
  728. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +83 -45
  729. package/src/ts/lib/biome.js +71 -35
  730. package/src/ts/lib/biome.js.map +1 -1
  731. package/src/ts/lib/generator.d.ts +7 -0
  732. package/src/ts/lib/generator.js +115 -103
  733. package/src/ts/lib/generator.js.map +1 -1
  734. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  735. package/src/ts/lib/schema.d.js +6 -0
  736. package/src/ts/lib/schema.d.js.map +1 -0
  737. package/src/ts/lib/schema.d.ts +1 -1
  738. package/src/ts/lib/schema.json +5 -0
  739. package/src/ts/lib/ts-project-utils.d.ts +13 -1
  740. package/src/ts/lib/ts-project-utils.js +96 -71
  741. package/src/ts/lib/ts-project-utils.js.map +1 -1
  742. package/src/ts/lib/types.d.ts +6 -0
  743. package/src/ts/lib/types.js +5 -2
  744. package/src/ts/lib/types.js.map +1 -1
  745. package/src/ts/lib/vitest.d.ts +10 -1
  746. package/src/ts/lib/vitest.js +42 -26
  747. package/src/ts/lib/vitest.js.map +1 -1
  748. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +221 -44
  749. package/src/ts/mcp-server/files/Dockerfile.template +13 -2
  750. package/src/ts/mcp-server/generator.d.ts +102 -0
  751. package/src/ts/mcp-server/generator.js +231 -148
  752. package/src/ts/mcp-server/generator.js.map +1 -1
  753. package/src/ts/mcp-server/schema.d.js +6 -0
  754. package/src/ts/mcp-server/schema.d.js.map +1 -0
  755. package/src/ts/mcp-server/schema.d.ts +1 -0
  756. package/src/ts/mcp-server/schema.json +6 -0
  757. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +27 -12
  758. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  759. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  760. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  761. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  762. package/src/ts/nx-generator/generator.d.ts +3 -0
  763. package/src/ts/nx-generator/generator.js +124 -73
  764. package/src/ts/nx-generator/generator.js.map +1 -1
  765. package/src/ts/nx-generator/schema.d.js +6 -0
  766. package/src/ts/nx-generator/schema.d.js.map +1 -0
  767. package/src/ts/nx-generator/schema.d.ts +1 -0
  768. package/src/ts/nx-generator/schema.json +5 -0
  769. package/src/ts/nx-migration/files/migration.spec.ts.template +26 -0
  770. package/src/ts/nx-migration/files/migration.ts.template +65 -0
  771. package/src/ts/nx-migration/files/prompt.md.template +46 -0
  772. package/src/ts/nx-migration/generator.d.ts +27 -0
  773. package/src/ts/nx-migration/generator.js +141 -0
  774. package/src/ts/nx-migration/generator.js.map +1 -0
  775. package/src/ts/nx-migration/schema.d.js +6 -0
  776. package/src/ts/nx-migration/schema.d.js.map +1 -0
  777. package/src/ts/nx-migration/schema.d.ts +13 -0
  778. package/src/ts/nx-migration/schema.json +63 -0
  779. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +36 -25
  780. package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
  781. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  782. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  783. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  784. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  785. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  786. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +4 -4
  787. package/src/ts/nx-plugin/generator.d.ts +3 -0
  788. package/src/ts/nx-plugin/generator.js +67 -50
  789. package/src/ts/nx-plugin/generator.js.map +1 -1
  790. package/src/ts/nx-plugin/schema.d.js +9 -0
  791. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  792. package/src/ts/nx-plugin/schema.json +5 -0
  793. package/src/ts/nx-plugin/utils.d.ts +27 -2
  794. package/src/ts/nx-plugin/utils.js +66 -51
  795. package/src/ts/nx-plugin/utils.js.map +1 -1
  796. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +551 -642
  797. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +16 -6
  798. package/src/ts/rdb/agent-connection/generator.js +44 -39
  799. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  800. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  801. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  802. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  803. package/src/ts/rdb/agent-connection/schema.json +5 -0
  804. package/src/ts/rdb/files/Dockerfile.template +19 -1
  805. package/src/ts/rdb/files/config.json.template +14 -0
  806. package/src/ts/rdb/files/prisma.config.ts.template +6 -5
  807. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +9 -11
  808. package/src/ts/rdb/files/src/index.ts.template +1 -2
  809. package/src/ts/rdb/files/src/migration-handler.ts.template +5 -30
  810. package/src/ts/rdb/files/src/prisma.ts.template +33 -25
  811. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  812. package/src/ts/rdb/generator.d.ts +109 -4
  813. package/src/ts/rdb/generator.js +257 -138
  814. package/src/ts/rdb/generator.js.map +1 -1
  815. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +16 -6
  816. package/src/ts/rdb/mcp-server-connection/generator.js +42 -37
  817. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  818. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  819. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  820. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  821. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  822. package/src/ts/rdb/schema.d.js +6 -0
  823. package/src/ts/rdb/schema.d.js.map +1 -0
  824. package/src/ts/rdb/schema.d.ts +1 -0
  825. package/src/ts/rdb/schema.json +7 -1
  826. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
  827. package/src/ts/rdb/smithy-connection/generator.js +48 -43
  828. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  829. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  830. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  831. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  832. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  833. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  834. package/src/ts/rdb/trpc-connection/generator.js +37 -31
  835. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  836. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  837. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  838. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  839. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  840. package/src/ts/rdb/utils.js +9 -11
  841. package/src/ts/rdb/utils.js.map +1 -1
  842. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +17 -16
  843. package/src/ts/react-website/agui/generator.d.ts +97 -0
  844. package/src/ts/react-website/agui/generator.js +114 -67
  845. package/src/ts/react-website/agui/generator.js.map +1 -1
  846. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +1381 -634
  847. package/src/ts/react-website/app/generator.d.ts +142 -2
  848. package/src/ts/react-website/app/generator.js +330 -206
  849. package/src/ts/react-website/app/generator.js.map +1 -1
  850. package/src/ts/react-website/app/schema.d.js +6 -0
  851. package/src/ts/react-website/app/schema.d.js.map +1 -0
  852. package/src/ts/react-website/app/schema.d.ts +1 -1
  853. package/src/ts/react-website/app/schema.json +12 -6
  854. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +161 -26
  855. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +48 -12
  856. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  857. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  858. package/src/ts/react-website/cognito-auth/generator.d.ts +25 -1
  859. package/src/ts/react-website/cognito-auth/generator.js +79 -64
  860. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  861. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +3 -1
  862. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  863. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  864. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  865. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  866. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  867. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  868. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  869. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  870. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  871. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  872. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  873. package/src/ts/react-website/runtime-config/generator.js +29 -31
  874. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  875. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  876. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  877. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  878. package/src/ts/react-website/runtime-config/schema.json +5 -0
  879. package/src/ts/sync/generator.js +137 -60
  880. package/src/ts/sync/generator.js.map +1 -1
  881. package/src/ts/website/app/generator.js +10 -10
  882. package/src/ts/website/app/generator.js.map +1 -1
  883. package/src/ts/website/app/schema.d.js +6 -0
  884. package/src/ts/website/app/schema.d.js.map +1 -0
  885. package/src/ts/website/app/schema.d.ts +1 -1
  886. package/src/ts/website/app/schema.json +11 -6
  887. package/src/ts/website/auth/generator.d.ts +1 -1
  888. package/src/ts/website/auth/generator.js +11 -10
  889. package/src/ts/website/auth/generator.js.map +1 -1
  890. package/src/ts/website/auth/schema.d.js +6 -0
  891. package/src/ts/website/auth/schema.d.js.map +1 -0
  892. package/src/ts/website/auth/schema.d.ts +1 -0
  893. package/src/ts/website/auth/schema.json +5 -0
  894. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +21 -0
  895. package/src/utils/add-dependencies.d.ts +38 -0
  896. package/src/utils/add-dependencies.js +83 -0
  897. package/src/utils/add-dependencies.js.map +1 -0
  898. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  899. package/src/utils/agent-chat/agent-chat.js +31 -0
  900. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  901. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  902. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  903. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  904. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  905. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  906. package/src/utils/agent-connection/agent-connection.d.ts +139 -26
  907. package/src/utils/agent-connection/agent-connection.js +500 -103
  908. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  909. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  910. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  911. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  912. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  913. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  914. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +33 -33
  915. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  916. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  917. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +47 -0
  918. package/src/utils/agent-connection/files/core-strands/base/tool-errors-strands.ts.template +29 -0
  919. 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
  920. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  921. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  922. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  923. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  924. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  925. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  926. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +99 -0
  927. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  928. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  929. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  930. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +6 -18
  931. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  932. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
  933. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  934. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  935. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  936. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +54 -0
  937. package/src/utils/agent-core-constructs/agent-core-constructs.js +153 -38
  938. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  939. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +170 -6
  940. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +87 -0
  941. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +624 -0
  942. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  943. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +212 -1
  944. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +505 -0
  945. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  946. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +159 -13
  947. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  948. package/src/utils/api-constructs/api-constructs.d.ts +30 -2
  949. package/src/utils/api-constructs/api-constructs.js +82 -32
  950. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  951. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +20 -15
  952. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +24 -16
  953. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +26 -9
  954. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +70 -0
  955. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  956. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +56 -17
  957. package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
  958. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  959. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +101 -12
  960. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +194 -8
  961. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  962. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  963. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  964. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  965. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  966. package/src/utils/ast/website.js +18 -20
  967. package/src/utils/ast/website.js.map +1 -1
  968. package/src/utils/ast.d.ts +9 -0
  969. package/src/utils/ast.js +125 -86
  970. package/src/utils/ast.js.map +1 -1
  971. package/src/utils/base-tsconfig.d.ts +30 -0
  972. package/src/utils/base-tsconfig.js +32 -0
  973. package/src/utils/base-tsconfig.js.map +1 -0
  974. package/src/utils/bundle/bundle.d.ts +6 -1
  975. package/src/utils/bundle/bundle.js +57 -47
  976. package/src/utils/bundle/bundle.js.map +1 -1
  977. package/src/utils/commands.d.ts +14 -3
  978. package/src/utils/commands.js +83 -28
  979. package/src/utils/commands.js.map +1 -1
  980. package/src/utils/config/index.d.ts +18 -2
  981. package/src/utils/config/index.js +5 -4
  982. package/src/utils/config/index.js.map +1 -1
  983. package/src/utils/config/utils.d.ts +8 -2
  984. package/src/utils/config/utils.js +56 -59
  985. package/src/utils/config/utils.js.map +1 -1
  986. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +16 -3
  987. package/src/utils/connection/open-api/react.d.ts +31 -5
  988. package/src/utils/connection/open-api/react.js +106 -76
  989. package/src/utils/connection/open-api/react.js.map +1 -1
  990. package/src/utils/containers.js +22 -23
  991. package/src/utils/containers.js.map +1 -1
  992. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +38 -0
  993. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js +93 -0
  994. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -0
  995. package/src/utils/dcr-proxy-constructs/files/cdk/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.ts.template +227 -0
  996. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorization-server-metadata.ts.template +39 -0
  997. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorize.ts.template +26 -0
  998. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/mcp-proxy.ts.template +89 -0
  999. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/protected-resource-metadata.ts.template +13 -0
  1000. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/register.ts.template +70 -0
  1001. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/token.ts.template +75 -0
  1002. package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +410 -0
  1003. package/src/utils/declared-dependencies.d.ts +140 -0
  1004. package/src/utils/declared-dependencies.js +64 -0
  1005. package/src/utils/declared-dependencies.js.map +1 -0
  1006. package/src/utils/dependencies.d.ts +18 -0
  1007. package/src/utils/dependencies.js +206 -0
  1008. package/src/utils/dependencies.js.map +1 -0
  1009. package/src/utils/docker.d.ts +87 -0
  1010. package/src/utils/docker.js +125 -0
  1011. package/src/utils/docker.js.map +1 -0
  1012. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -1
  1013. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +39 -41
  1014. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  1015. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +18 -5
  1016. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +1 -1
  1017. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +24 -17
  1018. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  1019. package/src/utils/files/common/constructs/src/core/cloudfront.ts.template +14 -0
  1020. package/src/utils/files/common/constructs/src/core/index.ts.template +5 -4
  1021. package/src/utils/files/common/constructs/src/index.ts.template +2 -2
  1022. package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
  1023. package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
  1024. package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
  1025. package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/create-local-table.ts.template +65 -31
  1026. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  1027. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +103 -0
  1028. package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +2 -0
  1029. package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +2 -0
  1030. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
  1031. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +3 -3
  1032. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  1033. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  1034. package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
  1035. package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +115 -0
  1036. package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
  1037. package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
  1038. package/src/utils/files/shadcn/components.json.template +1 -1
  1039. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +63 -72
  1040. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  1041. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
  1042. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  1043. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
  1044. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  1045. package/src/utils/format.d.ts +39 -4
  1046. package/src/utils/format.js +327 -127
  1047. package/src/utils/format.js.map +1 -1
  1048. package/src/utils/fs.d.ts +16 -5
  1049. package/src/utils/fs.js +29 -15
  1050. package/src/utils/fs.js.map +1 -1
  1051. package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
  1052. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  1053. package/src/utils/function-constructs/function-constructs.js +22 -25
  1054. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  1055. package/src/utils/generators.js +18 -20
  1056. package/src/utils/generators.js.map +1 -1
  1057. package/src/utils/git.js +19 -34
  1058. package/src/utils/git.js.map +1 -1
  1059. package/src/utils/iac-providers.js +5 -5
  1060. package/src/utils/iac-providers.js.map +1 -1
  1061. package/src/utils/iac.js +12 -14
  1062. package/src/utils/iac.js.map +1 -1
  1063. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +153 -24
  1064. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
  1065. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +129 -12
  1066. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  1067. package/src/utils/identity-constructs/identity-constructs.d.ts +10 -0
  1068. package/src/utils/identity-constructs/identity-constructs.js +52 -31
  1069. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  1070. package/src/utils/init.d.ts +72 -0
  1071. package/src/utils/init.js +300 -0
  1072. package/src/utils/init.js.map +1 -0
  1073. package/src/utils/install.d.ts +32 -0
  1074. package/src/utils/install.js +58 -0
  1075. package/src/utils/install.js.map +1 -0
  1076. package/src/utils/js.js +27 -20
  1077. package/src/utils/js.js.map +1 -1
  1078. package/src/utils/mcp.d.ts +9 -0
  1079. package/src/utils/mcp.js +42 -41
  1080. package/src/utils/mcp.js.map +1 -1
  1081. package/src/utils/metrics.d.ts +7 -1
  1082. package/src/utils/metrics.js +61 -46
  1083. package/src/utils/metrics.js.map +1 -1
  1084. package/src/utils/migration-manifest.d.ts +58 -0
  1085. package/src/utils/migration-manifest.js +76 -0
  1086. package/src/utils/migration-manifest.js.map +1 -0
  1087. package/src/utils/migration-versions.d.ts +116 -0
  1088. package/src/utils/migration-versions.js +186 -0
  1089. package/src/utils/migration-versions.js.map +1 -0
  1090. package/src/utils/mock-project-graph.js +8 -12
  1091. package/src/utils/mock-project-graph.js.map +1 -1
  1092. package/src/utils/module-format.d.ts +25 -0
  1093. package/src/utils/module-format.js +45 -0
  1094. package/src/utils/module-format.js.map +1 -0
  1095. package/src/utils/names.d.ts +22 -0
  1096. package/src/utils/names.js +44 -48
  1097. package/src/utils/names.js.map +1 -1
  1098. package/src/utils/npm-scope.d.ts +0 -4
  1099. package/src/utils/npm-scope.js +7 -20
  1100. package/src/utils/npm-scope.js.map +1 -1
  1101. package/src/utils/nx.d.ts +74 -3
  1102. package/src/utils/nx.js +196 -75
  1103. package/src/utils/nx.js.map +1 -1
  1104. package/src/utils/nxlv-python.js +27 -15
  1105. package/src/utils/nxlv-python.js.map +1 -1
  1106. package/src/utils/object.js +5 -11
  1107. package/src/utils/object.js.map +1 -1
  1108. package/src/utils/paths.js +11 -15
  1109. package/src/utils/paths.js.map +1 -1
  1110. package/src/utils/pkg-manager.js +4 -9
  1111. package/src/utils/pkg-manager.js.map +1 -1
  1112. package/src/utils/pnpm-workspace.d.ts +1 -12
  1113. package/src/utils/pnpm-workspace.js +16 -43
  1114. package/src/utils/pnpm-workspace.js.map +1 -1
  1115. package/src/utils/port.d.ts +28 -6
  1116. package/src/utils/port.js +67 -28
  1117. package/src/utils/port.js.map +1 -1
  1118. package/src/utils/project-package-json.d.ts +39 -0
  1119. package/src/utils/project-package-json.js +119 -0
  1120. package/src/utils/project-package-json.js.map +1 -0
  1121. package/src/utils/py.d.ts +17 -3
  1122. package/src/utils/py.js +73 -48
  1123. package/src/utils/py.js.map +1 -1
  1124. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +72 -18
  1125. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +112 -88
  1126. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +127 -53
  1127. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +60 -53
  1128. package/src/utils/rdb-constructs/rdb-constructs.d.ts +12 -1
  1129. package/src/utils/rdb-constructs/rdb-constructs.js +38 -41
  1130. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  1131. package/src/utils/ruff.d.ts +59 -0
  1132. package/src/utils/ruff.js +140 -0
  1133. package/src/utils/ruff.js.map +1 -0
  1134. package/src/utils/shared-constructs-constants.d.ts +46 -4
  1135. package/src/utils/shared-constructs-constants.js +50 -15
  1136. package/src/utils/shared-constructs-constants.js.map +1 -1
  1137. package/src/utils/shared-constructs.d.ts +4 -1
  1138. package/src/utils/shared-constructs.js +62 -67
  1139. package/src/utils/shared-constructs.js.map +1 -1
  1140. package/src/utils/shared-dynamodb-scripts.d.ts +18 -0
  1141. package/src/utils/shared-dynamodb-scripts.js +35 -0
  1142. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  1143. package/src/utils/shared-infra-config.js +31 -30
  1144. package/src/utils/shared-infra-config.js.map +1 -1
  1145. package/src/utils/shared-infra-scripts.d.ts +26 -0
  1146. package/src/utils/shared-infra-scripts.js +58 -0
  1147. package/src/utils/shared-infra-scripts.js.map +1 -0
  1148. package/src/utils/shared-rdb-scripts.d.ts +27 -0
  1149. package/src/utils/shared-rdb-scripts.js +59 -0
  1150. package/src/utils/shared-rdb-scripts.js.map +1 -0
  1151. package/src/utils/shared-scripts.d.ts +1 -4
  1152. package/src/utils/shared-scripts.js +12 -38
  1153. package/src/utils/shared-scripts.js.map +1 -1
  1154. package/src/utils/shared-shadcn.d.ts +26 -1
  1155. package/src/utils/shared-shadcn.js +93 -67
  1156. package/src/utils/shared-shadcn.js.map +1 -1
  1157. package/src/utils/test-git.d.ts +39 -0
  1158. package/src/utils/test-git.js +117 -0
  1159. package/src/utils/test-git.js.map +1 -0
  1160. package/src/utils/test.d.ts +10 -0
  1161. package/src/utils/test.js +44 -25
  1162. package/src/utils/test.js.map +1 -1
  1163. package/src/utils/toml.d.ts +5 -0
  1164. package/src/utils/toml.js +17 -15
  1165. package/src/utils/toml.js.map +1 -1
  1166. package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
  1167. package/src/utils/version-upgrade-migration/migration.js +16 -0
  1168. package/src/utils/version-upgrade-migration/migration.js.map +1 -0
  1169. package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +45 -0
  1170. package/src/utils/version-upgrade-migration/nx-package-updates.js +50 -0
  1171. package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
  1172. package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +76 -0
  1173. package/src/utils/version-upgrade-migration/owned-dependencies.js +146 -0
  1174. package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
  1175. package/src/utils/version-upgrade-migration/register.d.ts +29 -0
  1176. package/src/utils/version-upgrade-migration/register.js +42 -0
  1177. package/src/utils/version-upgrade-migration/register.js.map +1 -0
  1178. package/src/utils/version-upgrade-migration/sync-embedded-versions.d.ts +26 -0
  1179. package/src/utils/version-upgrade-migration/sync-embedded-versions.js +304 -0
  1180. package/src/utils/version-upgrade-migration/sync-embedded-versions.js.map +1 -0
  1181. package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
  1182. package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
  1183. package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
  1184. package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
  1185. package/src/utils/version-upgrade-migration/sync-vended-versions.js +518 -0
  1186. package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
  1187. package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
  1188. package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
  1189. package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
  1190. package/src/utils/versions.d.ts +206 -106
  1191. package/src/utils/versions.js +238 -119
  1192. package/src/utils/versions.js.map +1 -1
  1193. package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +2 -2
  1194. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +207 -41
  1195. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  1196. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +145 -93
  1197. package/src/utils/website-constructs/website-constructs.d.ts +11 -0
  1198. package/src/utils/website-constructs/website-constructs.js +49 -30
  1199. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  1200. package/bin/aws-nx-mcp.d.ts +0 -2
  1201. package/bin/aws-nx-mcp.js +0 -17
  1202. package/bin/aws-nx-mcp.js.map +0 -1
  1203. package/sdk/connection.d.ts +0 -6
  1204. package/sdk/connection.js +0 -10
  1205. package/sdk/connection.js.map +0 -1
  1206. package/sdk/license.d.ts +0 -8
  1207. package/sdk/license.js +0 -13
  1208. package/sdk/license.js.map +0 -1
  1209. package/sdk/open-api.d.ts +0 -10
  1210. package/sdk/open-api.js +0 -15
  1211. package/sdk/open-api.js.map +0 -1
  1212. package/sdk/py.d.ts +0 -14
  1213. package/sdk/py.js +0 -18
  1214. package/sdk/py.js.map +0 -1
  1215. package/sdk/terraform.d.ts +0 -6
  1216. package/sdk/terraform.js +0 -11
  1217. package/sdk/terraform.js.map +0 -1
  1218. package/sdk/ts.d.ts +0 -29
  1219. package/sdk/ts.js +0 -47
  1220. package/sdk/ts.js.map +0 -1
  1221. package/sdk/utils/ast.js +0 -12
  1222. package/sdk/utils/ast.js.map +0 -1
  1223. package/sdk/utils/format.js +0 -10
  1224. package/sdk/utils/format.js.map +0 -1
  1225. package/sdk/utils/test.js +0 -10
  1226. package/sdk/utils/test.js.map +0 -1
  1227. package/src/connection/agent-serve-local.d.ts +0 -33
  1228. package/src/connection/agent-serve-local.js +0 -48
  1229. package/src/connection/agent-serve-local.js.map +0 -1
  1230. package/src/connection/serve-local.js +0 -41
  1231. package/src/connection/serve-local.js.map +0 -1
  1232. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  1233. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  1234. package/src/py/agent/react-connection/serve-local.js +0 -30
  1235. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  1236. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  1237. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  1238. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  1239. package/src/ts/agent/react-connection/serve-local.js +0 -19
  1240. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  1241. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  1242. package/src/ts/dynamodb/files/scripts/pull-image.ts.template +0 -15
  1243. package/src/ts/dynamodb/files/scripts/start-container.ts.template +0 -81
  1244. package/src/ts/dynamodb/files/src/constants.ts.template +0 -9
  1245. package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
  1246. package/src/ts/rdb/files/scripts/pull-image.ts.template +0 -15
  1247. package/src/ts/rdb/files/scripts/start-container.ts.template +0 -84
  1248. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  1249. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  1250. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  1251. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  1252. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  1253. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  1254. package/src/utils/files/common/scripts/src/infra-deploy.ts.template +0 -2
  1255. package/src/utils/files/common/scripts/src/infra-destroy.ts.template +0 -2
  1256. package/src/utils/files/terraform/scripts/reset-runtime-config.ts.template +0 -25
  1257. /package/src/smithy/project/files/{smithy-build.json.template → service/smithy-build.json.template} +0 -0
  1258. /package/src/smithy/project/files/{src → service/src}/main.smithy.template +0 -0
  1259. /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
  1260. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  1261. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  1262. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -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>;
@@ -0,0 +1,91 @@
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 { formatFilesInSubtree } from "../../../utils/format.js";
6
+ /**
7
+ * Remove pip from the vended Python agent / MCP server images.
8
+ *
9
+ * The runtime runs entirely from the bundled `/app` environment and never needs
10
+ * pip, whose vendored packages (setuptools, msgpack) in the base image carry
11
+ * known HIGH/CRITICAL vulnerabilities the image scan flags. New workspaces get
12
+ * this from the generator templates; this brings existing ones up to date.
13
+ *
14
+ * Only the Dockerfiles of `py#agent` / `py#mcp-server` components are touched,
15
+ * located from their project metadata. The Dockerfile is generated
16
+ * `KeepExisting`, so it is edited in place: the pip removal is inserted right
17
+ * after the `FROM` line. A Dockerfile whose pip usage has been customised (an
18
+ * added `pip install`, or any pip command other than this removal) is left
19
+ * untouched and reported via `nextSteps`, since stripping pip could break it.
20
+ */ /**
21
+ * The generators whose runtime images vend pip and should have it stripped.
22
+ * Hardcoded rather than imported from the generators: a migration matches the
23
+ * ids workspaces recorded at generation time, which must stay fixed even if the
24
+ * generators' current ids change later.
25
+ */ const RUNTIME_IMAGE_GENERATOR_IDS = [
26
+ 'py#agent',
27
+ 'py#mcp-server'
28
+ ];
29
+ const PIP_REMOVAL = `# Remove the base image's pip: the runtime runs from the bundled environment and
30
+ # never needs it, and pip's vendored packages carry known HIGH/CRITICAL
31
+ # vulnerabilities flagged by the image scan.
32
+ RUN python -m pip uninstall -y pip && \\
33
+ rm -rf /usr/local/lib/python*/site-packages/pip \\
34
+ /usr/local/lib/python*/site-packages/pip-*.dist-info`;
35
+ /** The exact pip command this migration adds; used to detect an applied fix. */ const PIP_UNINSTALL = 'pip uninstall -y pip';
36
+ /** Matches any `pip` invocation in a RUN instruction (python -m pip … or pip …). */ const PIP_COMMAND = /\b(?:python\s+-m\s+)?pip\s+\S+/g;
37
+ /**
38
+ * The Dockerfiles of every `py#agent` / `py#mcp-server` component, located from
39
+ * each project's recorded component metadata (`path` is the component directory
40
+ * relative to the project root).
41
+ */ const runtimeImageDockerfiles = (tree)=>{
42
+ const paths = [];
43
+ for (const project of getProjects(tree).values()){
44
+ const components = project.metadata?.components ?? [];
45
+ for (const component of components){
46
+ if (!RUNTIME_IMAGE_GENERATOR_IDS.includes(component.generator) || !component.path) {
47
+ continue;
48
+ }
49
+ const dockerfile = joinPathFragments(projectRoot(project), component.path, 'Dockerfile');
50
+ if (tree.exists(dockerfile)) {
51
+ paths.push(dockerfile);
52
+ }
53
+ }
54
+ }
55
+ return paths;
56
+ };
57
+ /** A project's root, falling back to sourceRoot for the TS-solution layout. */ const projectRoot = (project)=>project.root ?? project.sourceRoot ?? '';
58
+ export default async function migration(tree) {
59
+ const nextSteps = [];
60
+ for (const filePath of runtimeImageDockerfiles(tree)){
61
+ const content = tree.read(filePath, 'utf-8');
62
+ if (!content) {
63
+ continue;
64
+ }
65
+ if (content.includes(PIP_UNINSTALL)) {
66
+ continue; // Already stripped (migrated or user-added).
67
+ }
68
+ // Leave a customised Dockerfile alone: any pip usage other than this
69
+ // migration's removal (e.g. an added `pip install`) means stripping pip
70
+ // could break the image, so flag it for the user instead of editing.
71
+ const pipUsages = content.match(PIP_COMMAND) ?? [];
72
+ if (pipUsages.length > 0) {
73
+ nextSteps.push(`In ${filePath}: this image uses pip (${pipUsages.join(', ')}), so it was left unchanged. pip's vendored packages carry known vulnerabilities flagged by the image scan — remove pip once it is no longer needed, e.g. \`RUN python -m pip uninstall -y pip && rm -rf /usr/local/lib/python*/site-packages/pip /usr/local/lib/python*/site-packages/pip-*.dist-info\`.`);
74
+ continue;
75
+ }
76
+ // Insert the pip removal after the FROM line and its trailing blank line,
77
+ // matching the spacing a freshly generated Dockerfile has.
78
+ const updated = content.replace(/^(FROM\s+\S*python:.*\n)\n/m, `$1\n${PIP_REMOVAL}\n\n`);
79
+ if (updated === content) {
80
+ nextSteps.push(`In ${filePath}: remove pip from the image so its vulnerable vendored packages are not scanned — add \`RUN python -m pip uninstall -y pip && rm -rf /usr/local/lib/python*/site-packages/pip /usr/local/lib/python*/site-packages/pip-*.dist-info\` after the FROM line (the runtime does not need pip).`);
81
+ continue;
82
+ }
83
+ tree.write(filePath, updated);
84
+ }
85
+ await formatFilesInSubtree(tree);
86
+ return {
87
+ nextSteps
88
+ };
89
+ }
90
+
91
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/latest/strip-pip-from-python-images/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 ProjectConfiguration,\n type Tree,\n} from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport type { ComponentMetadata } from '../../../utils/nx';\n\n/**\n * Remove pip from the vended Python agent / MCP server images.\n *\n * The runtime runs entirely from the bundled `/app` environment and never needs\n * pip, whose vendored packages (setuptools, msgpack) in the base image carry\n * known HIGH/CRITICAL vulnerabilities the image scan flags. New workspaces get\n * this from the generator templates; this brings existing ones up to date.\n *\n * Only the Dockerfiles of `py#agent` / `py#mcp-server` components are touched,\n * located from their project metadata. The Dockerfile is generated\n * `KeepExisting`, so it is edited in place: the pip removal is inserted right\n * after the `FROM` line. A Dockerfile whose pip usage has been customised (an\n * added `pip install`, or any pip command other than this removal) is left\n * untouched and reported via `nextSteps`, since stripping pip could break it.\n */\n\n/**\n * The generators whose runtime images vend pip and should have it stripped.\n * Hardcoded rather than imported from the generators: a migration matches the\n * ids workspaces recorded at generation time, which must stay fixed even if the\n * generators' current ids change later.\n */\nconst RUNTIME_IMAGE_GENERATOR_IDS = ['py#agent', 'py#mcp-server'];\n\nconst PIP_REMOVAL = `# Remove the base image's pip: the runtime runs from the bundled environment and\n# never needs it, and pip's vendored packages carry known HIGH/CRITICAL\n# vulnerabilities flagged by the image scan.\nRUN python -m pip uninstall -y pip && \\\\\n rm -rf /usr/local/lib/python*/site-packages/pip \\\\\n /usr/local/lib/python*/site-packages/pip-*.dist-info`;\n\n/** The exact pip command this migration adds; used to detect an applied fix. */\nconst PIP_UNINSTALL = 'pip uninstall -y pip';\n\n/** Matches any `pip` invocation in a RUN instruction (python -m pip … or pip …). */\nconst PIP_COMMAND = /\\b(?:python\\s+-m\\s+)?pip\\s+\\S+/g;\n\n/**\n * The Dockerfiles of every `py#agent` / `py#mcp-server` component, located from\n * each project's recorded component metadata (`path` is the component directory\n * relative to the project root).\n */\nconst runtimeImageDockerfiles = (tree: Tree): string[] => {\n const paths: string[] = [];\n for (const project of getProjects(tree).values()) {\n const components = ((\n project.metadata as { components?: ComponentMetadata[] }\n )?.components ?? []) as ComponentMetadata[];\n for (const component of components) {\n if (\n !RUNTIME_IMAGE_GENERATOR_IDS.includes(component.generator) ||\n !component.path\n ) {\n continue;\n }\n const dockerfile = joinPathFragments(\n projectRoot(project),\n component.path,\n 'Dockerfile',\n );\n if (tree.exists(dockerfile)) {\n paths.push(dockerfile);\n }\n }\n }\n return paths;\n};\n\n/** A project's root, falling back to sourceRoot for the TS-solution layout. */\nconst projectRoot = (project: ProjectConfiguration): string =>\n project.root ?? project.sourceRoot ?? '';\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n for (const filePath of runtimeImageDockerfiles(tree)) {\n const content = tree.read(filePath, 'utf-8');\n if (!content) {\n continue;\n }\n if (content.includes(PIP_UNINSTALL)) {\n continue; // Already stripped (migrated or user-added).\n }\n\n // Leave a customised Dockerfile alone: any pip usage other than this\n // migration's removal (e.g. an added `pip install`) means stripping pip\n // could break the image, so flag it for the user instead of editing.\n const pipUsages = content.match(PIP_COMMAND) ?? [];\n if (pipUsages.length > 0) {\n nextSteps.push(\n `In ${filePath}: this image uses pip (${pipUsages.join(', ')}), so it was left unchanged. pip's vendored packages carry known vulnerabilities flagged by the image scan — remove pip once it is no longer needed, e.g. \\`RUN python -m pip uninstall -y pip && rm -rf /usr/local/lib/python*/site-packages/pip /usr/local/lib/python*/site-packages/pip-*.dist-info\\`.`,\n );\n continue;\n }\n\n // Insert the pip removal after the FROM line and its trailing blank line,\n // matching the spacing a freshly generated Dockerfile has.\n const updated = content.replace(\n /^(FROM\\s+\\S*python:.*\\n)\\n/m,\n `$1\\n${PIP_REMOVAL}\\n\\n`,\n );\n if (updated === content) {\n nextSteps.push(\n `In ${filePath}: remove pip from the image so its vulnerable vendored packages are not scanned — add \\`RUN python -m pip uninstall -y pip && rm -rf /usr/local/lib/python*/site-packages/pip /usr/local/lib/python*/site-packages/pip-*.dist-info\\` after the FROM line (the runtime does not need pip).`,\n );\n continue;\n }\n tree.write(filePath, updated);\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["getProjects","joinPathFragments","formatFilesInSubtree","RUNTIME_IMAGE_GENERATOR_IDS","PIP_REMOVAL","PIP_UNINSTALL","PIP_COMMAND","runtimeImageDockerfiles","tree","paths","project","values","components","metadata","component","includes","generator","path","dockerfile","projectRoot","exists","push","root","sourceRoot","migration","nextSteps","filePath","content","read","pipUsages","match","length","join","updated","replace","write"],"mappings":"AAAA;;;CAGC,GACD,SACEA,WAAW,EACXC,iBAAiB,QAIZ,aAAa;AACpB,SAASC,oBAAoB,QAAQ,2BAAwB;AAG7D;;;;;;;;;;;;;;CAcC,GAED;;;;;CAKC,GACD,MAAMC,8BAA8B;IAAC;IAAY;CAAgB;AAEjE,MAAMC,cAAc,CAAC;;;;;+DAK0C,CAAC;AAEhE,8EAA8E,GAC9E,MAAMC,gBAAgB;AAEtB,kFAAkF,GAClF,MAAMC,cAAc;AAEpB;;;;CAIC,GACD,MAAMC,0BAA0B,CAACC;IAC/B,MAAMC,QAAkB,EAAE;IAC1B,KAAK,MAAMC,WAAWV,YAAYQ,MAAMG,MAAM,GAAI;QAChD,MAAMC,aAAc,AAClBF,QAAQG,QAAQ,EACfD,cAAc,EAAE;QACnB,KAAK,MAAME,aAAaF,WAAY;YAClC,IACE,CAACT,4BAA4BY,QAAQ,CAACD,UAAUE,SAAS,KACzD,CAACF,UAAUG,IAAI,EACf;gBACA;YACF;YACA,MAAMC,aAAajB,kBACjBkB,YAAYT,UACZI,UAAUG,IAAI,EACd;YAEF,IAAIT,KAAKY,MAAM,CAACF,aAAa;gBAC3BT,MAAMY,IAAI,CAACH;YACb;QACF;IACF;IACA,OAAOT;AACT;AAEA,6EAA6E,GAC7E,MAAMU,cAAc,CAACT,UACnBA,QAAQY,IAAI,IAAIZ,QAAQa,UAAU,IAAI;AAExC,eAAe,eAAeC,UAC5BhB,IAAU;IAEV,MAAMiB,YAAsB,EAAE;IAE9B,KAAK,MAAMC,YAAYnB,wBAAwBC,MAAO;QACpD,MAAMmB,UAAUnB,KAAKoB,IAAI,CAACF,UAAU;QACpC,IAAI,CAACC,SAAS;YACZ;QACF;QACA,IAAIA,QAAQZ,QAAQ,CAACV,gBAAgB;YACnC,UAAU,6CAA6C;QACzD;QAEA,qEAAqE;QACrE,wEAAwE;QACxE,qEAAqE;QACrE,MAAMwB,YAAYF,QAAQG,KAAK,CAACxB,gBAAgB,EAAE;QAClD,IAAIuB,UAAUE,MAAM,GAAG,GAAG;YACxBN,UAAUJ,IAAI,CACZ,CAAC,GAAG,EAAEK,SAAS,uBAAuB,EAAEG,UAAUG,IAAI,CAAC,MAAM,ySAAyS,CAAC;YAEzW;QACF;QAEA,0EAA0E;QAC1E,2DAA2D;QAC3D,MAAMC,UAAUN,QAAQO,OAAO,CAC7B,+BACA,CAAC,IAAI,EAAE9B,YAAY,IAAI,CAAC;QAE1B,IAAI6B,YAAYN,SAAS;YACvBF,UAAUJ,IAAI,CACZ,CAAC,GAAG,EAAEK,SAAS,yRAAyR,CAAC;YAE3S;QACF;QACAlB,KAAK2B,KAAK,CAACT,UAAUO;IACvB;IAEA,MAAM/B,qBAAqBM;IAE3B,OAAO;QAAEiB;IAAU;AACrB"}
@@ -0,0 +1,57 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`waf-log-group-removal migration > should add a DESTROY removal policy and import to the rest api WAF log group 1`] = `
4
+ "import { IAspect, Stack, RemovalPolicy } from 'aws-cdk-lib';
5
+ import { LogGroup, RetentionDays } from 'aws-cdk-lib/aws-logs';
6
+ import { Key } from 'aws-cdk-lib/aws-kms';
7
+ import { CfnLoggingConfiguration } from 'aws-cdk-lib/aws-wafv2';
8
+ import { Construct } from 'constructs';
9
+
10
+ export class RestApi extends Construct {
11
+ constructor(scope: Construct, id: string) {
12
+ super(scope, id);
13
+ const logsKey = new Key(this, 'WebAclLogsKey', { enableKeyRotation: true });
14
+ // The construct has another log group sharing the encryptionKey shape, so
15
+ // the migration must scope its rewrite to the WAF log group only.
16
+ const accessLogs = new LogGroup(this, 'AccessLogs', {
17
+ retention: RetentionDays.ONE_YEAR,
18
+ encryptionKey: logsKey,
19
+ });
20
+ const wafLogGroup = new LogGroup(this, 'WebAclLogs', {
21
+ logGroupName: \`aws-waf-logs-\${apiName}-\${this.node.addr.slice(-8)}\`,
22
+ retention: RetentionDays.ONE_YEAR,
23
+ encryptionKey: logsKey,
24
+ // The log group name is deterministic, so retaining it on delete would
25
+ // orphan it and block re-creation (e.g. after a rolled-back deploy).
26
+ removalPolicy: RemovalPolicy.DESTROY,
27
+ });
28
+ }
29
+ }
30
+ "
31
+ `;
32
+
33
+ exports[`waf-log-group-removal migration > should add a DESTROY removal policy to the gateway WAF log group 1`] = `
34
+ "import * as cdk from 'aws-cdk-lib';
35
+ import * as kms from 'aws-cdk-lib/aws-kms';
36
+ import * as logs from 'aws-cdk-lib/aws-logs';
37
+ import * as wafv2 from 'aws-cdk-lib/aws-wafv2';
38
+ import { Construct } from 'constructs';
39
+
40
+ export class AgentCoreGateway extends Construct {
41
+ private createWebAcl(metricPrefix: string): wafv2.CfnWebACL {
42
+ const logsKey = new kms.Key(this, 'WebAclLogsKey', {
43
+ enableKeyRotation: true,
44
+ });
45
+ const wafLogGroup = new logs.LogGroup(this, 'WebAclLogs', {
46
+ logGroupName: \`aws-waf-logs-\${metricPrefix}-\${this.node.addr.slice(-8)}\`,
47
+ retention: logs.RetentionDays.ONE_YEAR,
48
+ encryptionKey: logsKey,
49
+ // The log group name is deterministic, so retaining it on delete would
50
+ // orphan it and block re-creation (e.g. after a rolled-back deploy).
51
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
52
+ });
53
+ return undefined as any;
54
+ }
55
+ }
56
+ "
57
+ `;
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Set RemovalPolicy.DESTROY on WAF log groups in the vended AgentCoreGateway and REST API constructs so a rolled-back deploy does not orphan them"
3
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import type { MigrationReturnObject, Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { addDestructuredImport, insertViaGritQL, matchGritQL } from "../../../utils/ast.js";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR } from "../../../utils/shared-constructs-constants.js";
7
+ /**
8
+ * Vended WAF log groups have a deterministic name (WAFv2 requires the
9
+ * `aws-waf-logs-` prefix, so the name can't be CloudFormation-generated) and,
10
+ * without an explicit removal policy, inherit CloudFormation's default RETAIN
11
+ * for log groups. A rolled-back or replaced deploy then orphans the log group,
12
+ * so the next deploy fails to create one of the same name. Set
13
+ * `RemovalPolicy.DESTROY` so it is torn down with the stack, matching the
14
+ * vended user-identity (Cognito) construct.
15
+ */ const CONSTRUCTS_SRC = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src`;
16
+ const WAF_CONSTRUCTS = [
17
+ {
18
+ file: `${CONSTRUCTS_SRC}/core/agentcore-gateway/agentcore-gateway.ts`,
19
+ logGroupExpr: 'logs.LogGroup',
20
+ removalPolicyExpr: 'cdk.RemovalPolicy.DESTROY'
21
+ },
22
+ {
23
+ file: `${CONSTRUCTS_SRC}/core/api/rest-api.ts`,
24
+ logGroupExpr: 'LogGroup',
25
+ removalPolicyExpr: 'RemovalPolicy.DESTROY',
26
+ destructuredImport: 'RemovalPolicy'
27
+ }
28
+ ];
29
+ const migrateConstruct = async (tree, construct, nextSteps)=>{
30
+ const { file, logGroupExpr } = construct;
31
+ if (!tree.exists(file)) {
32
+ // Construct not vended in this workspace - nothing to migrate.
33
+ return;
34
+ }
35
+ const contents = tree.read(file, 'utf-8') ?? '';
36
+ // The WAF web ACL (and its log group) is optional in some constructs, so it
37
+ // may be absent. Nothing to do if it is.
38
+ if (!contents.includes(`new ${logGroupExpr}(this, 'WebAclLogs'`)) {
39
+ return;
40
+ }
41
+ // Already migrated (or user-added a removal policy).
42
+ if (await matchGritQL(tree, file, `\`new ${logGroupExpr}(this, 'WebAclLogs', { $props })\` where { $props <: contains \`removalPolicy\` }`)) {
43
+ return;
44
+ }
45
+ // Append the removal policy after the WAF log group's `encryptionKey`
46
+ // property. The rewrite is scoped to the `WebAclLogs` LogGroup because a
47
+ // construct can have other log groups sharing the `encryptionKey: logsKey`
48
+ // shape (e.g. the rest api's access logs).
49
+ const added = await insertViaGritQL(tree, file, `\`new ${logGroupExpr}(this, 'WebAclLogs', { $props })\` where {
50
+ $props <: contains \`encryptionKey: logsKey\` as $enc,
51
+ $enc => \`encryptionKey: logsKey,
52
+ __GRIT_INSERT_PLACEHOLDER__\`
53
+ }`, `// The log group name is deterministic, so retaining it on delete would
54
+ // orphan it and block re-creation (e.g. after a rolled-back deploy).
55
+ removalPolicy: ${construct.removalPolicyExpr}`);
56
+ if (!added) {
57
+ nextSteps.push(`${file}: could not add a removal policy to the WAF log group automatically - it may have diverged from the generated shape. Add \`removalPolicy: ${construct.removalPolicyExpr}\` to the \`new ${logGroupExpr}(this, 'WebAclLogs', ...)\` call so a rolled-back deploy does not orphan the log group.`);
58
+ return;
59
+ }
60
+ if (construct.destructuredImport) {
61
+ await addDestructuredImport(tree, file, [
62
+ construct.destructuredImport
63
+ ], 'aws-cdk-lib');
64
+ }
65
+ };
66
+ export default async function migration(tree) {
67
+ const nextSteps = [];
68
+ for (const construct of WAF_CONSTRUCTS){
69
+ await migrateConstruct(tree, construct, nextSteps);
70
+ }
71
+ await formatFilesInSubtree(tree);
72
+ return {
73
+ nextSteps
74
+ };
75
+ }
76
+
77
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/latest/waf-log-group-removal/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { MigrationReturnObject, Tree } from '@nx/devkit';\nimport {\n addDestructuredImport,\n insertViaGritQL,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n} from '../../../utils/shared-constructs-constants';\n\n/**\n * Vended WAF log groups have a deterministic name (WAFv2 requires the\n * `aws-waf-logs-` prefix, so the name can't be CloudFormation-generated) and,\n * without an explicit removal policy, inherit CloudFormation's default RETAIN\n * for log groups. A rolled-back or replaced deploy then orphans the log group,\n * so the next deploy fails to create one of the same name. Set\n * `RemovalPolicy.DESTROY` so it is torn down with the stack, matching the\n * vended user-identity (Cognito) construct.\n */\n\nconst CONSTRUCTS_SRC = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src`;\n\n/**\n * A vended construct carrying a WAF log group. They differ in how the log\n * group is constructed and how `cdk` is imported: the gateway namespaces both\n * (`logs.LogGroup`, `cdk.RemovalPolicy`), the rest api destructures both\n * (`LogGroup`, `RemovalPolicy` — the latter added by this migration when\n * absent).\n */\ninterface WafConstruct {\n file: string;\n /** How `LogGroup` is referenced in this file (`LogGroup` or `logs.LogGroup`). */\n logGroupExpr: string;\n /** The removal policy expression, matching the file's import style. */\n removalPolicyExpr: string;\n /** When set, ensure this destructured import from `aws-cdk-lib`. */\n destructuredImport?: string;\n}\n\nconst WAF_CONSTRUCTS: WafConstruct[] = [\n {\n file: `${CONSTRUCTS_SRC}/core/agentcore-gateway/agentcore-gateway.ts`,\n logGroupExpr: 'logs.LogGroup',\n removalPolicyExpr: 'cdk.RemovalPolicy.DESTROY',\n },\n {\n file: `${CONSTRUCTS_SRC}/core/api/rest-api.ts`,\n logGroupExpr: 'LogGroup',\n removalPolicyExpr: 'RemovalPolicy.DESTROY',\n destructuredImport: 'RemovalPolicy',\n },\n];\n\nconst migrateConstruct = async (\n tree: Tree,\n construct: WafConstruct,\n nextSteps: string[],\n): Promise<void> => {\n const { file, logGroupExpr } = construct;\n if (!tree.exists(file)) {\n // Construct not vended in this workspace - nothing to migrate.\n return;\n }\n\n const contents = tree.read(file, 'utf-8') ?? '';\n\n // The WAF web ACL (and its log group) is optional in some constructs, so it\n // may be absent. Nothing to do if it is.\n if (!contents.includes(`new ${logGroupExpr}(this, 'WebAclLogs'`)) {\n return;\n }\n\n // Already migrated (or user-added a removal policy).\n if (\n await matchGritQL(\n tree,\n file,\n `\\`new ${logGroupExpr}(this, 'WebAclLogs', { $props })\\` where { $props <: contains \\`removalPolicy\\` }`,\n )\n ) {\n return;\n }\n\n // Append the removal policy after the WAF log group's `encryptionKey`\n // property. The rewrite is scoped to the `WebAclLogs` LogGroup because a\n // construct can have other log groups sharing the `encryptionKey: logsKey`\n // shape (e.g. the rest api's access logs).\n const added = await insertViaGritQL(\n tree,\n file,\n `\\`new ${logGroupExpr}(this, 'WebAclLogs', { $props })\\` where {\n $props <: contains \\`encryptionKey: logsKey\\` as $enc,\n $enc => \\`encryptionKey: logsKey,\n __GRIT_INSERT_PLACEHOLDER__\\`\n}`,\n `// The log group name is deterministic, so retaining it on delete would\n // orphan it and block re-creation (e.g. after a rolled-back deploy).\n removalPolicy: ${construct.removalPolicyExpr}`,\n );\n\n if (!added) {\n nextSteps.push(\n `${file}: could not add a removal policy to the WAF log group automatically - it may have diverged from the generated shape. Add \\`removalPolicy: ${construct.removalPolicyExpr}\\` to the \\`new ${logGroupExpr}(this, 'WebAclLogs', ...)\\` call so a rolled-back deploy does not orphan the log group.`,\n );\n return;\n }\n\n if (construct.destructuredImport) {\n await addDestructuredImport(\n tree,\n file,\n [construct.destructuredImport],\n 'aws-cdk-lib',\n );\n }\n};\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n for (const construct of WAF_CONSTRUCTS) {\n await migrateConstruct(tree, construct, nextSteps);\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["addDestructuredImport","insertViaGritQL","matchGritQL","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","CONSTRUCTS_SRC","WAF_CONSTRUCTS","file","logGroupExpr","removalPolicyExpr","destructuredImport","migrateConstruct","tree","construct","nextSteps","exists","contents","read","includes","added","push","migration"],"mappings":"AAAA;;;CAGC,GAED,SACEA,qBAAqB,EACrBC,eAAe,EACfC,WAAW,QACN,wBAAqB;AAC5B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SACEC,YAAY,EACZC,qBAAqB,QAChB,gDAA6C;AAEpD;;;;;;;;CAQC,GAED,MAAMC,iBAAiB,GAAGF,aAAa,CAAC,EAAEC,sBAAsB,IAAI,CAAC;AAmBrE,MAAME,iBAAiC;IACrC;QACEC,MAAM,GAAGF,eAAe,4CAA4C,CAAC;QACrEG,cAAc;QACdC,mBAAmB;IACrB;IACA;QACEF,MAAM,GAAGF,eAAe,qBAAqB,CAAC;QAC9CG,cAAc;QACdC,mBAAmB;QACnBC,oBAAoB;IACtB;CACD;AAED,MAAMC,mBAAmB,OACvBC,MACAC,WACAC;IAEA,MAAM,EAAEP,IAAI,EAAEC,YAAY,EAAE,GAAGK;IAC/B,IAAI,CAACD,KAAKG,MAAM,CAACR,OAAO;QACtB,+DAA+D;QAC/D;IACF;IAEA,MAAMS,WAAWJ,KAAKK,IAAI,CAACV,MAAM,YAAY;IAE7C,4EAA4E;IAC5E,yCAAyC;IACzC,IAAI,CAACS,SAASE,QAAQ,CAAC,CAAC,IAAI,EAAEV,aAAa,mBAAmB,CAAC,GAAG;QAChE;IACF;IAEA,qDAAqD;IACrD,IACE,MAAMP,YACJW,MACAL,MACA,CAAC,MAAM,EAAEC,aAAa,iFAAiF,CAAC,GAE1G;QACA;IACF;IAEA,sEAAsE;IACtE,yEAAyE;IACzE,2EAA2E;IAC3E,2CAA2C;IAC3C,MAAMW,QAAQ,MAAMnB,gBAClBY,MACAL,MACA,CAAC,MAAM,EAAEC,aAAa;;;;CAIzB,CAAC,EACE,CAAC;;qBAEgB,EAAEK,UAAUJ,iBAAiB,EAAE;IAGlD,IAAI,CAACU,OAAO;QACVL,UAAUM,IAAI,CACZ,GAAGb,KAAK,0IAA0I,EAAEM,UAAUJ,iBAAiB,CAAC,gBAAgB,EAAED,aAAa,uFAAuF,CAAC;QAEzS;IACF;IAEA,IAAIK,UAAUH,kBAAkB,EAAE;QAChC,MAAMX,sBACJa,MACAL,MACA;YAACM,UAAUH,kBAAkB;SAAC,EAC9B;IAEJ;AACF;AAEA,eAAe,eAAeW,UAC5BT,IAAU;IAEV,MAAME,YAAsB,EAAE;IAE9B,KAAK,MAAMD,aAAaP,eAAgB;QACtC,MAAMK,iBAAiBC,MAAMC,WAAWC;IAC1C;IAEA,MAAMZ,qBAAqBU;IAE3B,OAAO;QAAEE;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs"
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,65 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { visitNotIgnoredFiles } from "@nx/devkit";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR } from "../../../utils/shared-constructs-constants.js";
7
+ /**
8
+ * Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs
9
+ *
10
+ * The legacy `<FunctionProps>{ ... }` cast form is not supported by GritQL's
11
+ * TypeScript parser, which silently breaks parsing (and therefore matching)
12
+ * for the entire containing file. Since several other migrations rely on
13
+ * GritQL to update these API construct files, this cast is replaced here with
14
+ * the equivalent, GritQL-compatible `{ ... } as FunctionProps` form. This is
15
+ * matched as an exact literal (rather than via GritQL) since GritQL cannot
16
+ * parse the file while the legacy cast is still present.
17
+ *
18
+ * How to write a migration:
19
+ * - https://nx.dev/docs/kb/migration-generators
20
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
21
+ *
22
+ * Guardrails:
23
+ * - Pattern-match before writing: skip files that have diverged from the shape
24
+ * your generators produce and report them via `nextSteps`, or consider a
25
+ * hybrid migration, rather than clobbering the user's changes.
26
+ * - Idempotent: re-running must be a no-op.
27
+ * - Format what you write: finish with `formatFilesInSubtree` so the files your
28
+ * migration wrote are formatted correctly.
29
+ */ const APIS_APP_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/apis`;
30
+ const OLD_CAST_OPEN = 'defaultIntegrationOptions: <FunctionProps>{';
31
+ const NEW_CAST_OPEN = 'defaultIntegrationOptions: {';
32
+ const OLD_CAST_CLOSE = '\n },\n buildDefaultIntegration:';
33
+ const NEW_CAST_CLOSE = '\n } as FunctionProps,\n buildDefaultIntegration:';
34
+ export default async function migration(tree) {
35
+ const nextSteps = [];
36
+ if (!tree.exists(APIS_APP_DIR)) {
37
+ return {
38
+ nextSteps
39
+ };
40
+ }
41
+ const apiAppFiles = [];
42
+ visitNotIgnoredFiles(tree, APIS_APP_DIR, (filePath)=>{
43
+ apiAppFiles.push(filePath);
44
+ });
45
+ for (const filePath of apiAppFiles){
46
+ if (!filePath.endsWith('.ts') || filePath.endsWith('/index.ts')) {
47
+ continue;
48
+ }
49
+ const contents = tree.read(filePath, 'utf-8') ?? '';
50
+ if (!contents.includes(OLD_CAST_OPEN)) {
51
+ continue;
52
+ }
53
+ if (!contents.includes(OLD_CAST_CLOSE)) {
54
+ nextSteps.push(`${filePath}: the defaultIntegrationOptions cast has diverged from the generated shape - left untouched. Manually replace \`<FunctionProps>{ ... }\` with \`{ ... } as FunctionProps\`.`);
55
+ continue;
56
+ }
57
+ tree.write(filePath, contents.replace(OLD_CAST_OPEN, NEW_CAST_OPEN).replace(OLD_CAST_CLOSE, NEW_CAST_CLOSE));
58
+ }
59
+ await formatFilesInSubtree(tree);
60
+ return {
61
+ nextSteps
62
+ };
63
+ }
64
+
65
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.0-rc.50/modernize-function-props-cast/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type MigrationReturnObject,\n type Tree,\n visitNotIgnoredFiles,\n} from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n} from '../../../utils/shared-constructs-constants';\n\n/**\n * Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs\n *\n * The legacy `<FunctionProps>{ ... }` cast form is not supported by GritQL's\n * TypeScript parser, which silently breaks parsing (and therefore matching)\n * for the entire containing file. Since several other migrations rely on\n * GritQL to update these API construct files, this cast is replaced here with\n * the equivalent, GritQL-compatible `{ ... } as FunctionProps` form. This is\n * matched as an exact literal (rather than via GritQL) since GritQL cannot\n * parse the file while the legacy cast is still present.\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: skip files that have diverged from the shape\n * your generators produce and report them via `nextSteps`, or consider a\n * hybrid migration, rather than clobbering the user's changes.\n * - Idempotent: re-running must be a no-op.\n * - Format what you write: finish with `formatFilesInSubtree` so the files your\n * migration wrote are formatted correctly.\n */\n\nconst APIS_APP_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/apis`;\n\nconst OLD_CAST_OPEN = 'defaultIntegrationOptions: <FunctionProps>{';\nconst NEW_CAST_OPEN = 'defaultIntegrationOptions: {';\nconst OLD_CAST_CLOSE = '\\n },\\n buildDefaultIntegration:';\nconst NEW_CAST_CLOSE =\n '\\n } as FunctionProps,\\n buildDefaultIntegration:';\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n if (!tree.exists(APIS_APP_DIR)) {\n return { nextSteps };\n }\n\n const apiAppFiles: string[] = [];\n visitNotIgnoredFiles(tree, APIS_APP_DIR, (filePath) => {\n apiAppFiles.push(filePath);\n });\n\n for (const filePath of apiAppFiles) {\n if (!filePath.endsWith('.ts') || filePath.endsWith('/index.ts')) {\n continue;\n }\n const contents = tree.read(filePath, 'utf-8') ?? '';\n if (!contents.includes(OLD_CAST_OPEN)) {\n // Already migrated, or doesn't use this shape.\n continue;\n }\n if (!contents.includes(OLD_CAST_CLOSE)) {\n nextSteps.push(\n `${filePath}: the defaultIntegrationOptions cast has diverged from the generated shape - left untouched. Manually replace \\`<FunctionProps>{ ... }\\` with \\`{ ... } as FunctionProps\\`.`,\n );\n continue;\n }\n tree.write(\n filePath,\n contents\n .replace(OLD_CAST_OPEN, NEW_CAST_OPEN)\n .replace(OLD_CAST_CLOSE, NEW_CAST_CLOSE),\n );\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["visitNotIgnoredFiles","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","APIS_APP_DIR","OLD_CAST_OPEN","NEW_CAST_OPEN","OLD_CAST_CLOSE","NEW_CAST_CLOSE","migration","tree","nextSteps","exists","apiAppFiles","filePath","push","endsWith","contents","read","includes","write","replace"],"mappings":"AAAA;;;CAGC,GACD,SAGEA,oBAAoB,QACf,aAAa;AACpB,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SACEC,YAAY,EACZC,qBAAqB,QAChB,gDAA6C;AAEpD;;;;;;;;;;;;;;;;;;;;;;CAsBC,GAED,MAAMC,eAAe,GAAGF,aAAa,CAAC,EAAEC,sBAAsB,aAAa,CAAC;AAE5E,MAAME,gBAAgB;AACtB,MAAMC,gBAAgB;AACtB,MAAMC,iBAAiB;AACvB,MAAMC,iBACJ;AAEF,eAAe,eAAeC,UAC5BC,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,IAAI,CAACD,KAAKE,MAAM,CAACR,eAAe;QAC9B,OAAO;YAAEO;QAAU;IACrB;IAEA,MAAME,cAAwB,EAAE;IAChCb,qBAAqBU,MAAMN,cAAc,CAACU;QACxCD,YAAYE,IAAI,CAACD;IACnB;IAEA,KAAK,MAAMA,YAAYD,YAAa;QAClC,IAAI,CAACC,SAASE,QAAQ,CAAC,UAAUF,SAASE,QAAQ,CAAC,cAAc;YAC/D;QACF;QACA,MAAMC,WAAWP,KAAKQ,IAAI,CAACJ,UAAU,YAAY;QACjD,IAAI,CAACG,SAASE,QAAQ,CAACd,gBAAgB;YAErC;QACF;QACA,IAAI,CAACY,SAASE,QAAQ,CAACZ,iBAAiB;YACtCI,UAAUI,IAAI,CACZ,GAAGD,SAAS,2KAA2K,CAAC;YAE1L;QACF;QACAJ,KAAKU,KAAK,CACRN,UACAG,SACGI,OAAO,CAAChB,eAAeC,eACvBe,OAAO,CAACd,gBAAgBC;IAE/B;IAEA,MAAMP,qBAAqBS;IAE3B,OAAO;QAAEC;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Include CloudFront custom domain aliases in restrictCorsTo and UserIdentity callback URLs"
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>;