@aws/nx-plugin 1.0.0-rc.7 → 1.0.0-rc.70

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 (1354) hide show
  1. package/LICENSE-THIRD-PARTY +7044 -6135
  2. package/README.md +9 -7
  3. package/generators.json +152 -10
  4. package/migrations.json +156 -0
  5. package/package.json +41 -22
  6. package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +295 -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/agentcore-harness/__snapshots__/generator.spec.ts.snap +238 -0
  51. package/src/agentcore-harness/files/project/README.md.template +83 -0
  52. package/src/agentcore-harness/files/project/scripts/chat.ts.template +99 -0
  53. package/src/agentcore-harness/files/project/src/PROMPT.md.template +16 -0
  54. package/src/agentcore-harness/generator.d.ts +62 -0
  55. package/src/agentcore-harness/generator.js +158 -0
  56. package/src/agentcore-harness/generator.js.map +1 -0
  57. package/src/agentcore-harness/schema.d.js +8 -0
  58. package/src/agentcore-harness/schema.d.js.map +1 -0
  59. package/src/agentcore-harness/schema.d.ts +17 -0
  60. package/src/agentcore-harness/schema.json +53 -0
  61. package/src/connection/agent-local-dev.d.ts +49 -0
  62. package/src/connection/agent-local-dev.js +84 -0
  63. package/src/connection/agent-local-dev.js.map +1 -0
  64. package/src/connection/agent-runtime-config.js +9 -14
  65. package/src/connection/agent-runtime-config.js.map +1 -1
  66. package/src/connection/gateway-runtime-config.d.ts +19 -0
  67. package/src/connection/gateway-runtime-config.js +47 -0
  68. package/src/connection/gateway-runtime-config.js.map +1 -0
  69. package/src/connection/generator.d.ts +3 -10
  70. package/src/connection/generator.js +172 -194
  71. package/src/connection/generator.js.map +1 -1
  72. package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
  73. package/src/connection/local-dev.js +37 -0
  74. package/src/connection/local-dev.js.map +1 -0
  75. package/src/connection/scaffold-catalog.d.ts +267 -0
  76. package/src/connection/scaffold-catalog.js +347 -0
  77. package/src/connection/scaffold-catalog.js.map +1 -0
  78. package/src/connection/schema-resolver.d.ts +5 -0
  79. package/src/connection/schema-resolver.js +27 -0
  80. package/src/connection/schema-resolver.js.map +1 -0
  81. package/src/connection/schema.d.js +6 -0
  82. package/src/connection/schema.d.js.map +1 -0
  83. package/src/connection/schema.d.ts +1 -0
  84. package/src/connection/schema.json +5 -0
  85. package/src/connection/supported-connections.d.ts +116 -0
  86. package/src/connection/supported-connections.js +163 -0
  87. package/src/connection/supported-connections.js.map +1 -0
  88. package/src/index.js +2 -5
  89. package/src/index.js.map +1 -1
  90. package/src/infra/app/__snapshots__/generator.spec.ts.snap +119 -72
  91. package/src/infra/app/files/app/README.md.template +8 -4
  92. package/src/infra/app/files/app/src/main.ts.template +5 -1
  93. package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
  94. package/src/infra/app/generator.d.ts +43 -0
  95. package/src/infra/app/generator.js +195 -127
  96. package/src/infra/app/generator.js.map +1 -1
  97. package/src/infra/app/schema.d.js +6 -0
  98. package/src/infra/app/schema.d.js.map +1 -0
  99. package/src/infra/app/schema.d.ts +1 -1
  100. package/src/infra/app/schema.json +5 -0
  101. package/src/init/generator.d.ts +31 -0
  102. package/src/init/generator.js +46 -0
  103. package/src/init/generator.js.map +1 -0
  104. package/src/init/schema.d.js +6 -0
  105. package/src/init/schema.d.js.map +1 -0
  106. package/src/init/schema.d.ts +16 -0
  107. package/src/init/schema.json +35 -0
  108. package/src/internal/test-matrix/generator.d.ts +29 -0
  109. package/src/internal/test-matrix/generator.js +698 -0
  110. package/src/internal/test-matrix/generator.js.map +1 -0
  111. package/src/internal/test-matrix/schema.d.js +6 -0
  112. package/src/internal/test-matrix/schema.d.js.map +1 -0
  113. package/src/internal/test-matrix/schema.d.ts +12 -0
  114. package/src/internal/test-matrix/schema.json +21 -0
  115. package/src/license/config-types.js +5 -3
  116. package/src/license/config-types.js.map +1 -1
  117. package/src/license/config.d.ts +1 -1
  118. package/src/license/config.js +267 -242
  119. package/src/license/config.js.map +1 -1
  120. package/src/license/dependency-check/check.js +51 -46
  121. package/src/license/dependency-check/check.js.map +1 -1
  122. package/src/license/dependency-check/collectors/collector.js +41 -71
  123. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  124. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  125. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  126. package/src/license/dependency-check/collectors/python-collector.js +55 -62
  127. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  128. package/src/license/dependency-check/evaluator.js +40 -68
  129. package/src/license/dependency-check/evaluator.js.map +1 -1
  130. package/src/license/dependency-check/executor.js +30 -22
  131. package/src/license/dependency-check/executor.js.map +1 -1
  132. package/src/license/dependency-check/pre-approved.js +949 -336
  133. package/src/license/dependency-check/pre-approved.js.map +1 -1
  134. package/src/license/dependency-check/types.js +2 -3
  135. package/src/license/dependency-check/types.js.map +1 -1
  136. package/src/license/generator.js +65 -68
  137. package/src/license/generator.js.map +1 -1
  138. package/src/license/index.js +3 -9
  139. package/src/license/index.js.map +1 -1
  140. package/src/license/known-exceptions.d.ts +1 -1
  141. package/src/license/known-exceptions.js +19 -13
  142. package/src/license/known-exceptions.js.map +1 -1
  143. package/src/license/schema.d.js +6 -0
  144. package/src/license/schema.d.js.map +1 -0
  145. package/src/license/schema.d.ts +2 -0
  146. package/src/license/schema.json +5 -0
  147. package/src/license/sync/generator.js +94 -119
  148. package/src/license/sync/generator.js.map +1 -1
  149. package/src/license/sync/project-file-sync.js +28 -35
  150. package/src/license/sync/project-file-sync.js.map +1 -1
  151. package/src/mcp-server/dev-server.d.ts +1 -0
  152. package/src/mcp-server/dev-server.js +18 -0
  153. package/src/mcp-server/dev-server.js.map +1 -0
  154. package/src/mcp-server/generator-info.js +149 -165
  155. package/src/mcp-server/generator-info.js.map +1 -1
  156. package/src/mcp-server/guide-pipeline.js +199 -206
  157. package/src/mcp-server/guide-pipeline.js.map +1 -1
  158. package/src/mcp-server/guide-render.js +10 -25
  159. package/src/mcp-server/guide-render.js.map +1 -1
  160. package/src/mcp-server/index.js +6 -10
  161. package/src/mcp-server/index.js.map +1 -1
  162. package/src/mcp-server/mdx-ast.js +39 -57
  163. package/src/mcp-server/mdx-ast.js.map +1 -1
  164. package/src/mcp-server/option-filter.js +33 -47
  165. package/src/mcp-server/option-filter.js.map +1 -1
  166. package/src/mcp-server/schema-registry.d.ts +9 -3
  167. package/src/mcp-server/schema-registry.js +41 -38
  168. package/src/mcp-server/schema-registry.js.map +1 -1
  169. package/src/mcp-server/schema.d.ts +1 -1
  170. package/src/mcp-server/schema.js +9 -7
  171. package/src/mcp-server/schema.js.map +1 -1
  172. package/src/mcp-server/server.js +24 -24
  173. package/src/mcp-server/server.js.map +1 -1
  174. package/src/mcp-server/tools/add-to-existing-project.d.ts +12 -0
  175. package/src/mcp-server/tools/add-to-existing-project.js +36 -0
  176. package/src/mcp-server/tools/add-to-existing-project.js.map +1 -0
  177. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  178. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  179. package/src/mcp-server/tools/general-guidance.d.ts +1 -1
  180. package/src/mcp-server/tools/general-guidance.js +55 -32
  181. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  182. package/src/mcp-server/tools/generator-guide.js +29 -37
  183. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  184. package/src/mcp-server/tools/list-generators.js +19 -25
  185. package/src/mcp-server/tools/list-generators.js.map +1 -1
  186. package/src/mcp-server/tools/upgrade-workspace.d.ts +11 -0
  187. package/src/mcp-server/tools/upgrade-workspace.js +32 -0
  188. package/src/mcp-server/tools/upgrade-workspace.js.map +1 -0
  189. package/src/migrations/latest/py-agent-a2a-lifespan-construction/metadata.json +3 -0
  190. package/src/migrations/latest/py-agent-a2a-lifespan-construction/migration.d.ts +6 -0
  191. package/src/migrations/latest/py-agent-a2a-lifespan-construction/migration.js +234 -0
  192. package/src/migrations/latest/py-agent-a2a-lifespan-construction/migration.js.map +1 -0
  193. package/src/migrations/latest/smithy-server-package-rename/metadata.json +3 -0
  194. package/src/migrations/latest/smithy-server-package-rename/migration.d.ts +6 -0
  195. package/src/migrations/latest/smithy-server-package-rename/migration.js +123 -0
  196. package/src/migrations/latest/smithy-server-package-rename/migration.js.map +1 -0
  197. package/src/migrations/latest/translate-script-whole-file-writes/files/build-system-prompt.ts.fixture +23 -0
  198. package/src/migrations/latest/translate-script-whole-file-writes/files/build-user-prompt.ts.fixture +96 -0
  199. package/src/migrations/latest/translate-script-whole-file-writes/files/config-path.ts.fixture +1 -0
  200. package/src/migrations/latest/translate-script-whole-file-writes/files/file-to-translate.ts.fixture +10 -0
  201. package/src/migrations/latest/translate-script-whole-file-writes/files/get-files-to-translate.ts.fixture +96 -0
  202. package/src/migrations/latest/translate-script-whole-file-writes/files/header.ts.fixture +15 -0
  203. package/src/migrations/latest/translate-script-whole-file-writes/files/log.ts.fixture +18 -0
  204. package/src/migrations/latest/translate-script-whole-file-writes/files/main-call.ts.fixture +6 -0
  205. package/src/migrations/latest/translate-script-whole-file-writes/files/main.ts.fixture +79 -0
  206. package/src/migrations/latest/translate-script-whole-file-writes/files/project-root.ts.fixture +1 -0
  207. package/src/migrations/latest/translate-script-whole-file-writes/files/run-with-concurrency.ts.fixture +57 -0
  208. package/src/migrations/latest/translate-script-whole-file-writes/files/scripts-dir.ts.fixture +1 -0
  209. package/src/migrations/latest/translate-script-whole-file-writes/files/translate-file-for-language.ts.fixture +61 -0
  210. package/src/migrations/latest/translate-script-whole-file-writes/grit/already-migrated.grit +1 -0
  211. package/src/migrations/latest/translate-script-whole-file-writes/grit/build-system-prompt.grit +6 -0
  212. package/src/migrations/latest/translate-script-whole-file-writes/grit/build-user-prompt.grit +6 -0
  213. package/src/migrations/latest/translate-script-whole-file-writes/grit/config-path.grit +1 -0
  214. package/src/migrations/latest/translate-script-whole-file-writes/grit/file-to-translate.grit +11 -0
  215. package/src/migrations/latest/translate-script-whole-file-writes/grit/get-files-to-translate.grit +7 -0
  216. package/src/migrations/latest/translate-script-whole-file-writes/grit/log.grit +3 -0
  217. package/src/migrations/latest/translate-script-whole-file-writes/grit/main-call.grit +1 -0
  218. package/src/migrations/latest/translate-script-whole-file-writes/grit/main.grit +8 -0
  219. package/src/migrations/latest/translate-script-whole-file-writes/grit/project-root.grit +1 -0
  220. package/src/migrations/latest/translate-script-whole-file-writes/grit/run-with-concurrency.grit +6 -0
  221. package/src/migrations/latest/translate-script-whole-file-writes/grit/translate-file-for-language.grit +6 -0
  222. package/src/migrations/latest/translate-script-whole-file-writes/metadata.json +3 -0
  223. package/src/migrations/latest/translate-script-whole-file-writes/migration.d.ts +2 -0
  224. package/src/migrations/latest/translate-script-whole-file-writes/migration.js +103 -0
  225. package/src/migrations/latest/translate-script-whole-file-writes/migration.js.map +1 -0
  226. package/src/migrations/latest/translate-script-whole-file-writes/test-fixtures/released-script-first.ts.fixture +430 -0
  227. package/src/migrations/latest/translate-script-whole-file-writes/test-fixtures/released-script.ts.fixture +431 -0
  228. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/metadata.json +3 -0
  229. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.d.ts +6 -0
  230. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js +65 -0
  231. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js.map +1 -0
  232. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/metadata.json +3 -0
  233. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.d.ts +6 -0
  234. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js +108 -0
  235. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js.map +1 -0
  236. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/metadata.json +3 -0
  237. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.d.ts +6 -0
  238. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js +128 -0
  239. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -0
  240. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/metadata.json +3 -0
  241. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.d.ts +6 -0
  242. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js +215 -0
  243. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js.map +1 -0
  244. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/metadata.json +3 -0
  245. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.d.ts +6 -0
  246. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js +93 -0
  247. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js.map +1 -0
  248. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/metadata.json +3 -0
  249. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.d.ts +96 -0
  250. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js +670 -0
  251. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js.map +1 -0
  252. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/metadata.json +3 -0
  253. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.d.ts +6 -0
  254. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js +89 -0
  255. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js.map +1 -0
  256. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/metadata.json +3 -0
  257. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.d.ts +6 -0
  258. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js +449 -0
  259. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js.map +1 -0
  260. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/metadata.json +3 -0
  261. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.d.ts +6 -0
  262. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js +78 -0
  263. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js.map +1 -0
  264. package/src/{smithy/project/files/build.Dockerfile.template → migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/rc57-service.Dockerfile.fixture} +1 -4
  265. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/__snapshots__/migration.spec.ts.snap +223 -0
  266. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/metadata.json +3 -0
  267. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.d.ts +6 -0
  268. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js +217 -0
  269. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js.map +1 -0
  270. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/__snapshots__/migration.spec.ts.snap +149 -0
  271. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/metadata.json +3 -0
  272. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.d.ts +6 -0
  273. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js +195 -0
  274. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js.map +1 -0
  275. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/__snapshots__/migration.spec.ts.snap +57 -0
  276. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/metadata.json +3 -0
  277. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.d.ts +6 -0
  278. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js +77 -0
  279. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js.map +1 -0
  280. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/__snapshots__/migration.spec.ts.snap +48 -0
  281. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/metadata.json +3 -0
  282. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.d.ts +6 -0
  283. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js +91 -0
  284. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js.map +1 -0
  285. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/metadata.json +3 -0
  286. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.d.ts +6 -0
  287. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js +412 -0
  288. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js.map +1 -0
  289. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/metadata.json +3 -0
  290. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.d.ts +6 -0
  291. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js +33 -0
  292. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js.map +1 -0
  293. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/metadata.json +3 -0
  294. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.d.ts +6 -0
  295. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js +83 -0
  296. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js.map +1 -0
  297. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/legacy-service.Dockerfile.fixture +95 -0
  298. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/metadata.json +3 -0
  299. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.d.ts +6 -0
  300. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js +154 -0
  301. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js.map +1 -0
  302. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/metadata.json +3 -0
  303. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.d.ts +6 -0
  304. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js +71 -0
  305. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js.map +1 -0
  306. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/metadata.json +3 -0
  307. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.d.ts +6 -0
  308. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js +57 -0
  309. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js.map +1 -0
  310. package/src/open-api/ts-client/__snapshots__/generator.additional-properties.spec.ts.snap +147 -33
  311. package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
  312. package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +298 -74
  313. package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +748 -103
  314. package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +230 -37
  315. package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +249 -52
  316. package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5535 -0
  317. package/src/open-api/ts-client/__snapshots__/generator.fast-api-gaps.spec.ts.snap +736 -0
  318. package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +305 -71
  319. package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +298 -0
  320. package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +353 -82
  321. package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +176 -55
  322. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +100 -24
  323. package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
  324. package/src/open-api/ts-client/__snapshots__/generator.spec-compliance.spec.ts.snap +1883 -0
  325. package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
  326. package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +200 -48
  327. package/src/open-api/ts-client/files/client.gen.ts.template +358 -24
  328. package/src/open-api/ts-client/files/types.gen.ts.template +6 -4
  329. package/src/open-api/ts-client/generator.js +41 -26
  330. package/src/open-api/ts-client/generator.js.map +1 -1
  331. package/src/open-api/ts-client/schema.d.js +6 -0
  332. package/src/open-api/ts-client/schema.d.js.map +1 -0
  333. package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +7 -2
  334. package/src/open-api/ts-hooks/generator.js +17 -21
  335. package/src/open-api/ts-hooks/generator.js.map +1 -1
  336. package/src/open-api/ts-hooks/generator.spec.tsx +70 -0
  337. package/src/open-api/ts-hooks/schema.d.js +6 -0
  338. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  339. package/src/open-api/ts-metadata/generator.js +12 -20
  340. package/src/open-api/ts-metadata/generator.js.map +1 -1
  341. package/src/open-api/ts-metadata/schema.d.js +6 -0
  342. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  343. package/src/open-api/utils/codegen-data/languages.d.ts +0 -6
  344. package/src/open-api/utils/codegen-data/languages.js +59 -66
  345. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  346. package/src/open-api/utils/codegen-data/types.d.ts +255 -10
  347. package/src/open-api/utils/codegen-data/types.js +54 -30
  348. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  349. package/src/open-api/utils/codegen-data.d.ts +2 -2
  350. package/src/open-api/utils/codegen-data.js +494 -674
  351. package/src/open-api/utils/codegen-data.js.map +1 -1
  352. package/src/open-api/utils/normalise.js +437 -246
  353. package/src/open-api/utils/normalise.js.map +1 -1
  354. package/src/open-api/utils/parse.js +8 -14
  355. package/src/open-api/utils/parse.js.map +1 -1
  356. package/src/open-api/utils/parser.d.ts +55 -0
  357. package/src/open-api/utils/parser.js +787 -0
  358. package/src/open-api/utils/parser.js.map +1 -0
  359. package/src/open-api/utils/refs.js +12 -22
  360. package/src/open-api/utils/refs.js.map +1 -1
  361. package/src/open-api/utils/types.d.ts +18 -0
  362. package/src/open-api/utils/types.js +5 -2
  363. package/src/open-api/utils/types.js.map +1 -1
  364. package/src/preset/__snapshots__/generator.spec.ts.snap +101 -20
  365. package/src/preset/generator.d.ts +14 -1
  366. package/src/preset/generator.js +76 -151
  367. package/src/preset/generator.js.map +1 -1
  368. package/src/preset/schema.d.js +6 -0
  369. package/src/preset/schema.d.js.map +1 -0
  370. package/src/preset/schema.d.ts +4 -1
  371. package/src/preset/schema.json +16 -5
  372. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +326 -0
  373. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +738 -0
  374. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +191 -315
  375. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +190 -0
  376. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +31 -0
  377. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +29 -0
  378. package/src/py/agent/a2a-connection/generator.d.ts +24 -0
  379. package/src/py/agent/a2a-connection/generator.js +145 -88
  380. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  381. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  382. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  383. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  384. package/src/py/agent/a2a-connection/schema.json +5 -0
  385. package/src/py/agent/files/deploy/Dockerfile.template +8 -1
  386. package/src/py/agent/files/langchain/a2a/main.py.template +94 -0
  387. package/src/py/agent/files/langchain/ag-ui/main.py.template +87 -0
  388. package/src/py/agent/files/langchain/common/agent.py.template +30 -0
  389. package/src/py/agent/files/{http → langchain/http}/init.py.template +17 -25
  390. package/src/py/agent/files/langchain/http/main.py.template +81 -0
  391. package/src/py/agent/files/{a2a → strands/a2a}/main.py.template +33 -15
  392. package/src/py/agent/files/strands/ag-ui/main.py.template +89 -0
  393. package/src/py/agent/files/{common → strands/common}/agent.py.template +2 -0
  394. package/src/py/agent/files/strands/http/init.py.template +97 -0
  395. package/src/py/agent/files/{http → strands/http}/main.py.template +4 -13
  396. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
  397. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  398. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  399. package/src/py/agent/gateway-connection/generator.d.ts +33 -0
  400. package/src/py/agent/gateway-connection/generator.js +153 -0
  401. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  402. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  403. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  404. package/src/py/agent/gateway-connection/schema.d.ts +13 -0
  405. package/src/py/agent/gateway-connection/schema.json +31 -0
  406. package/src/py/agent/generator.d.ts +154 -1
  407. package/src/py/agent/generator.js +396 -197
  408. package/src/py/agent/generator.js.map +1 -1
  409. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +154 -89
  410. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +31 -0
  411. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +31 -0
  412. package/src/py/agent/mcp-connection/generator.d.ts +23 -0
  413. package/src/py/agent/mcp-connection/generator.js +103 -130
  414. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  415. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  416. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  417. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  418. package/src/py/agent/mcp-connection/schema.json +5 -0
  419. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +17 -19
  420. package/src/py/agent/react-connection/generator.d.ts +150 -1
  421. package/src/py/agent/react-connection/generator.js +105 -65
  422. package/src/py/agent/react-connection/generator.js.map +1 -1
  423. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
  424. package/src/py/agent/react-connection/local-dev.js +36 -0
  425. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  426. package/src/py/agent/react-connection/schema.d.js +8 -0
  427. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  428. package/src/py/agent/react-connection/schema.d.ts +1 -0
  429. package/src/py/agent/react-connection/schema.json +5 -0
  430. package/src/py/agent/schema.d.js +6 -0
  431. package/src/py/agent/schema.d.js.map +1 -0
  432. package/src/py/agent/schema.d.ts +5 -1
  433. package/src/py/agent/schema.json +15 -1
  434. package/src/py/api/generator.js +12 -11
  435. package/src/py/api/generator.js.map +1 -1
  436. package/src/py/api/schema.d.js +6 -0
  437. package/src/py/api/schema.d.js.map +1 -0
  438. package/src/py/api/schema.d.ts +1 -0
  439. package/src/py/api/schema.json +5 -0
  440. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1520 -0
  441. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +63 -0
  442. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  443. package/src/py/dynamodb/agent-connection/generator.js +45 -0
  444. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  445. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  446. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  447. package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
  448. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  449. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +32 -0
  450. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  451. package/src/py/dynamodb/fast-api-connection/generator.js +39 -0
  452. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  453. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  454. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  455. package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
  456. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  457. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  458. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  459. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  460. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  461. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  462. package/src/py/dynamodb/files/config.json.template +24 -0
  463. package/src/py/dynamodb/generator.d.ts +39 -0
  464. package/src/py/dynamodb/generator.js +130 -0
  465. package/src/py/dynamodb/generator.js.map +1 -0
  466. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +63 -0
  467. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  468. package/src/py/dynamodb/mcp-server-connection/generator.js +45 -0
  469. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  470. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  471. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  472. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  473. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  474. package/src/py/dynamodb/schema.d.js +6 -0
  475. package/src/py/dynamodb/schema.d.js.map +1 -0
  476. package/src/py/dynamodb/schema.d.ts +16 -0
  477. package/src/py/dynamodb/schema.json +76 -0
  478. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +240 -4693
  479. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +5409 -0
  480. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  481. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  482. package/src/py/fast-api/generator.d.ts +72 -0
  483. package/src/py/fast-api/generator.js +134 -95
  484. package/src/py/fast-api/generator.js.map +1 -1
  485. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
  486. package/src/py/fast-api/react/generator.d.ts +16 -1
  487. package/src/py/fast-api/react/generator.js +38 -26
  488. package/src/py/fast-api/react/generator.js.map +1 -1
  489. package/src/py/fast-api/react/open-api.js +31 -29
  490. package/src/py/fast-api/react/open-api.js.map +1 -1
  491. package/src/py/fast-api/react/schema.d.js +6 -0
  492. package/src/py/fast-api/react/schema.d.js.map +1 -0
  493. package/src/py/fast-api/react/schema.d.ts +1 -0
  494. package/src/py/fast-api/react/schema.json +5 -0
  495. package/src/py/fast-api/schema.d.js +6 -0
  496. package/src/py/fast-api/schema.d.js.map +1 -0
  497. package/src/py/fast-api/schema.d.ts +1 -0
  498. package/src/py/fast-api/schema.json +6 -0
  499. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  500. package/src/py/lambda-function/generator.d.ts +21 -0
  501. package/src/py/lambda-function/generator.js +82 -62
  502. package/src/py/lambda-function/generator.js.map +1 -1
  503. package/src/py/lambda-function/schema.d.js +6 -0
  504. package/src/py/lambda-function/schema.d.js.map +1 -0
  505. package/src/py/lambda-function/schema.d.ts +1 -0
  506. package/src/py/lambda-function/schema.json +5 -0
  507. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +221 -21
  508. package/src/py/mcp-server/files/deploy/Dockerfile.template +8 -1
  509. package/src/py/mcp-server/generator.d.ts +68 -0
  510. package/src/py/mcp-server/generator.js +204 -131
  511. package/src/py/mcp-server/generator.js.map +1 -1
  512. package/src/py/mcp-server/schema.d.js +6 -0
  513. package/src/py/mcp-server/schema.d.js.map +1 -0
  514. package/src/py/mcp-server/schema.d.ts +1 -0
  515. package/src/py/mcp-server/schema.json +6 -0
  516. package/src/py/project/generator.d.ts +27 -1
  517. package/src/py/project/generator.js +248 -130
  518. package/src/py/project/generator.js.map +1 -1
  519. package/src/py/project/schema.d.js +6 -0
  520. package/src/py/project/schema.d.js.map +1 -0
  521. package/src/py/project/schema.d.ts +1 -0
  522. package/src/py/project/schema.json +5 -0
  523. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2070 -0
  524. package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +123 -0
  525. package/src/py/rdb/agent-connection/generator.d.ts +10 -0
  526. package/src/py/rdb/agent-connection/generator.js +52 -0
  527. package/src/py/rdb/agent-connection/generator.js.map +1 -0
  528. package/src/py/rdb/agent-connection/schema.d.js +8 -0
  529. package/src/py/rdb/agent-connection/schema.d.js.map +1 -0
  530. package/src/py/rdb/agent-connection/schema.d.ts +15 -0
  531. package/src/py/rdb/agent-connection/schema.json +27 -0
  532. package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +51 -0
  533. package/src/py/rdb/fast-api-connection/files/__apiModuleName__/dependencies/__rdbNameSnake__.py.template +14 -0
  534. package/src/py/rdb/fast-api-connection/generator.d.ts +10 -0
  535. package/src/py/rdb/fast-api-connection/generator.js +56 -0
  536. package/src/py/rdb/fast-api-connection/generator.js.map +1 -0
  537. package/src/py/rdb/fast-api-connection/schema.d.js +8 -0
  538. package/src/py/rdb/fast-api-connection/schema.d.js.map +1 -0
  539. package/src/py/rdb/fast-api-connection/schema.d.ts +13 -0
  540. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  541. package/src/py/rdb/files/Dockerfile.create-db-user.template +14 -0
  542. package/src/py/rdb/files/Dockerfile.migration.template +14 -0
  543. package/src/py/rdb/files/__name__/__init__.py.template +3 -0
  544. package/src/py/rdb/files/__name__/connection.py.template +55 -0
  545. package/src/py/rdb/files/__name__/create_db_user_handler.py.template +97 -0
  546. package/src/py/rdb/files/__name__/migration_handler.py.template +36 -0
  547. package/src/py/rdb/files/__name__/models/__init__.py.template +3 -0
  548. package/src/py/rdb/files/__name__/models/example.py.template +8 -0
  549. package/src/py/rdb/files/__name__/utils.py.template +104 -0
  550. package/src/py/rdb/files/alembic.ini.template +38 -0
  551. package/src/py/rdb/files/config.json.template +14 -0
  552. package/src/py/rdb/files/migrations/env.py.template +80 -0
  553. package/src/py/rdb/files/migrations/script.py.mako.template +28 -0
  554. package/src/py/rdb/generator.d.ts +103 -0
  555. package/src/py/rdb/generator.js +328 -0
  556. package/src/py/rdb/generator.js.map +1 -0
  557. package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +119 -0
  558. package/src/py/rdb/mcp-server-connection/generator.d.ts +10 -0
  559. package/src/py/rdb/mcp-server-connection/generator.js +52 -0
  560. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -0
  561. package/src/py/rdb/mcp-server-connection/schema.d.js +8 -0
  562. package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -0
  563. package/src/py/rdb/mcp-server-connection/schema.d.ts +15 -0
  564. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  565. package/src/py/rdb/schema.d.js +6 -0
  566. package/src/py/rdb/schema.d.js.map +1 -0
  567. package/src/py/rdb/schema.d.ts +16 -0
  568. package/src/py/rdb/schema.json +78 -0
  569. package/src/py/rdb/utils.d.ts +6 -0
  570. package/src/py/rdb/utils.js +16 -0
  571. package/src/py/rdb/utils.js.map +1 -0
  572. package/src/sdk/agentcore-gateway.d.ts +6 -0
  573. package/src/sdk/agentcore-gateway.js +7 -0
  574. package/src/sdk/agentcore-gateway.js.map +1 -0
  575. package/src/sdk/connection.d.ts +6 -0
  576. package/src/sdk/connection.js +6 -0
  577. package/src/sdk/connection.js.map +1 -0
  578. package/src/sdk/license.d.ts +8 -0
  579. package/src/sdk/license.js +7 -0
  580. package/src/sdk/license.js.map +1 -0
  581. package/src/sdk/open-api.d.ts +10 -0
  582. package/src/sdk/open-api.js +8 -0
  583. package/src/sdk/open-api.js.map +1 -0
  584. package/src/sdk/py.d.ts +18 -0
  585. package/src/sdk/py.js +12 -0
  586. package/src/sdk/py.js.map +1 -0
  587. package/src/sdk/terraform.d.ts +6 -0
  588. package/src/sdk/terraform.js +7 -0
  589. package/src/sdk/terraform.js.map +1 -0
  590. package/src/sdk/ts.d.ts +39 -0
  591. package/src/sdk/ts.js +41 -0
  592. package/src/sdk/ts.js.map +1 -0
  593. package/{sdk/utils/format.d.ts → src/sdk/utils/ast.d.ts} +1 -1
  594. package/src/sdk/utils/ast.js +6 -0
  595. package/src/sdk/utils/ast.js.map +1 -0
  596. package/{sdk/utils/ast.d.ts → src/sdk/utils/format.d.ts} +1 -2
  597. package/src/sdk/utils/format.js +6 -0
  598. package/src/sdk/utils/format.js.map +1 -0
  599. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  600. package/src/sdk/utils/test.js +6 -0
  601. package/src/sdk/utils/test.js.map +1 -0
  602. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +245 -242
  603. package/src/smithy/project/files/{smithy-build.json.template → service/smithy-build.json.template} +5 -5
  604. package/src/smithy/project/files/{src → service/src}/operations/echo.smithy.template +1 -0
  605. package/src/smithy/project/files/shapes/smithy-build.json.template +7 -0
  606. package/src/smithy/project/files/shapes/src/main.smithy.template +11 -0
  607. package/src/smithy/project/files/ssdk-bundle/ssdk.rolldown.config.mjs.template +52 -0
  608. package/src/smithy/project/generator.d.ts +90 -0
  609. package/src/smithy/project/generator.js +223 -56
  610. package/src/smithy/project/generator.js.map +1 -1
  611. package/src/smithy/project/schema.d.js +6 -0
  612. package/src/smithy/project/schema.d.js.map +1 -0
  613. package/src/smithy/project/schema.d.ts +2 -0
  614. package/src/smithy/project/schema.json +28 -1
  615. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  616. package/src/smithy/react-connection/generator.d.ts +15 -0
  617. package/src/smithy/react-connection/generator.js +54 -48
  618. package/src/smithy/react-connection/generator.js.map +1 -1
  619. package/src/smithy/react-connection/schema.d.js +6 -0
  620. package/src/smithy/react-connection/schema.d.js.map +1 -0
  621. package/src/smithy/react-connection/schema.d.ts +1 -0
  622. package/src/smithy/react-connection/schema.json +5 -0
  623. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +871 -109
  624. package/src/smithy/ts/api/files/handler.ts.template +3 -3
  625. package/src/smithy/ts/api/files/local-server.ts.template +3 -3
  626. package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
  627. package/src/smithy/ts/api/files/service.ts.template +3 -3
  628. package/src/smithy/ts/api/generator.d.ts +88 -0
  629. package/src/smithy/ts/api/generator.js +187 -114
  630. package/src/smithy/ts/api/generator.js.map +1 -1
  631. package/src/smithy/ts/api/schema.d.js +6 -0
  632. package/src/smithy/ts/api/schema.d.js.map +1 -0
  633. package/src/smithy/ts/api/schema.d.ts +1 -0
  634. package/src/smithy/ts/api/schema.json +6 -0
  635. package/src/terraform/project/files/application/scripts/bootstrap.ts.template +40 -1
  636. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  637. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  638. package/src/terraform/project/generator.d.ts +50 -0
  639. package/src/terraform/project/generator.js +212 -111
  640. package/src/terraform/project/generator.js.map +1 -1
  641. package/src/terraform/project/schema.d.js +9 -0
  642. package/src/terraform/project/schema.d.js.map +1 -0
  643. package/src/terraform/project/schema.d.ts +1 -0
  644. package/src/terraform/project/schema.json +5 -0
  645. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1182 -184
  646. package/src/trpc/backend/files/src/client/index.ts.template +1 -1
  647. package/src/trpc/backend/files/src/handler.ts.template +1 -1
  648. package/src/trpc/backend/files/src/index.ts.template +5 -5
  649. package/src/trpc/backend/files/src/init.ts.template +1 -1
  650. package/src/trpc/backend/files/src/local-server.ts.template +1 -1
  651. package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
  652. package/src/trpc/backend/files/src/procedures/echo.ts.template +3 -3
  653. package/src/trpc/backend/files/src/router.ts.template +2 -2
  654. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  655. package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
  656. package/src/trpc/backend/generator.d.ts +90 -1
  657. package/src/trpc/backend/generator.js +177 -100
  658. package/src/trpc/backend/generator.js.map +1 -1
  659. package/src/trpc/backend/schema.d.js +6 -0
  660. package/src/trpc/backend/schema.d.js.map +1 -0
  661. package/src/trpc/backend/schema.d.ts +1 -0
  662. package/src/trpc/backend/schema.json +6 -0
  663. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
  664. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  665. package/src/trpc/react/generator.d.ts +38 -1
  666. package/src/trpc/react/generator.js +105 -63
  667. package/src/trpc/react/generator.js.map +1 -1
  668. package/src/trpc/react/schema.d.js +6 -0
  669. package/src/trpc/react/schema.d.js.map +1 -0
  670. package/src/trpc/react/schema.d.ts +1 -0
  671. package/src/trpc/react/schema.json +5 -0
  672. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1452 -25
  673. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +258 -0
  674. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  675. package/src/ts/agent/a2a-connection/generator.d.ts +46 -0
  676. package/src/ts/agent/a2a-connection/generator.js +110 -63
  677. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  678. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  679. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  680. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  681. package/src/ts/agent/a2a-connection/schema.json +5 -0
  682. package/src/ts/agent/files/a2a/index.ts.template +1 -1
  683. package/src/ts/agent/files/ag-ui/index.ts.template +36 -11
  684. package/src/ts/agent/files/common/agent.ts.template +15 -2
  685. package/src/ts/agent/files/common/session.ts.template +43 -0
  686. package/src/ts/agent/files/deploy/Dockerfile.template +13 -2
  687. package/src/ts/agent/files/http/client.ts.template +2 -2
  688. package/src/ts/agent/files/http/index.ts.template +2 -2
  689. package/src/ts/agent/files/http/router.ts.template +5 -5
  690. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +222 -0
  691. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  692. package/src/ts/agent/gateway-connection/generator.d.ts +47 -0
  693. package/src/ts/agent/gateway-connection/generator.js +144 -0
  694. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  695. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  696. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  697. package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
  698. package/src/ts/agent/gateway-connection/schema.json +31 -0
  699. package/src/ts/agent/generator.d.ts +205 -0
  700. package/src/ts/agent/generator.js +339 -156
  701. package/src/ts/agent/generator.js.map +1 -1
  702. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +194 -113
  703. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +23 -0
  704. package/src/ts/agent/mcp-connection/generator.d.ts +37 -0
  705. package/src/ts/agent/mcp-connection/generator.js +88 -65
  706. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  707. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  708. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  709. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  710. package/src/ts/agent/mcp-connection/schema.json +5 -0
  711. package/src/ts/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -4
  712. package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +2 -1
  713. package/src/ts/agent/react-connection/generator.d.ts +202 -1
  714. package/src/ts/agent/react-connection/generator.js +158 -99
  715. package/src/ts/agent/react-connection/generator.js.map +1 -1
  716. package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
  717. package/src/ts/agent/react-connection/local-dev.js +17 -0
  718. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  719. package/src/ts/agent/react-connection/schema.d.js +8 -0
  720. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  721. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  722. package/src/ts/agent/react-connection/schema.json +5 -0
  723. package/src/ts/agent/schema.d.js +6 -0
  724. package/src/ts/agent/schema.d.js.map +1 -0
  725. package/src/ts/agent/schema.d.ts +4 -0
  726. package/src/ts/agent/schema.json +14 -0
  727. package/src/ts/api/generator.js +16 -16
  728. package/src/ts/api/generator.js.map +1 -1
  729. package/src/ts/api/schema.d.js +6 -0
  730. package/src/ts/api/schema.d.js.map +1 -0
  731. package/src/ts/api/schema.d.ts +1 -0
  732. package/src/ts/api/schema.json +5 -0
  733. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +28 -14
  734. package/src/ts/astro-docs/files/base/src/content/docs/en/index.mdx.template +2 -2
  735. package/src/ts/astro-docs/files/base/src/content.config.ts.template +4 -4
  736. package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +272 -150
  737. package/src/ts/astro-docs/generator.d.ts +38 -0
  738. package/src/ts/astro-docs/generator.js +126 -61
  739. package/src/ts/astro-docs/generator.js.map +1 -1
  740. package/src/ts/astro-docs/schema.d.js +6 -0
  741. package/src/ts/astro-docs/schema.d.js.map +1 -0
  742. package/src/ts/astro-docs/schema.d.ts +2 -2
  743. package/src/ts/astro-docs/schema.json +3 -3
  744. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +982 -0
  745. package/src/ts/dcr-proxy/generator.d.ts +34 -0
  746. package/src/ts/dcr-proxy/generator.js +115 -0
  747. package/src/ts/dcr-proxy/generator.js.map +1 -0
  748. package/src/ts/dcr-proxy/schema.d.js +6 -0
  749. package/src/ts/dcr-proxy/schema.d.js.map +1 -0
  750. package/src/ts/dcr-proxy/schema.d.ts +13 -0
  751. package/src/ts/dcr-proxy/schema.json +44 -0
  752. package/src/ts/docs/generator.js +10 -10
  753. package/src/ts/docs/generator.js.map +1 -1
  754. package/src/ts/docs/schema.d.js +6 -0
  755. package/src/ts/docs/schema.d.js.map +1 -0
  756. package/src/ts/docs/schema.d.ts +1 -4
  757. package/src/ts/docs/schema.json +3 -3
  758. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +400 -518
  759. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +23 -5
  760. package/src/ts/dynamodb/agent-connection/generator.js +27 -23
  761. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  762. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  763. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  764. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
  765. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  766. package/src/ts/dynamodb/files/config.json.template +24 -0
  767. package/src/ts/dynamodb/files/src/client.ts.template +30 -11
  768. package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
  769. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
  770. package/src/ts/dynamodb/files/src/index.ts.template +2 -11
  771. package/src/ts/dynamodb/generator.d.ts +41 -0
  772. package/src/ts/dynamodb/generator.js +106 -64
  773. package/src/ts/dynamodb/generator.js.map +1 -1
  774. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +23 -5
  775. package/src/ts/dynamodb/mcp-server-connection/generator.js +27 -23
  776. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  777. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  778. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  779. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  780. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  781. package/src/ts/dynamodb/schema.d.js +6 -0
  782. package/src/ts/dynamodb/schema.d.js.map +1 -0
  783. package/src/ts/dynamodb/schema.d.ts +2 -0
  784. package/src/ts/dynamodb/schema.json +26 -2
  785. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
  786. package/src/ts/dynamodb/smithy-connection/generator.js +22 -22
  787. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  788. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  789. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  790. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  791. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  792. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  793. package/src/ts/dynamodb/trpc-connection/generator.js +22 -22
  794. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  795. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  796. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  797. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  798. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  799. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +8 -6
  800. package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
  801. package/src/ts/lambda-function/generator.d.ts +38 -0
  802. package/src/ts/lambda-function/generator.js +98 -65
  803. package/src/ts/lambda-function/generator.js.map +1 -1
  804. package/src/ts/lambda-function/io.js +83 -52
  805. package/src/ts/lambda-function/io.js.map +1 -1
  806. package/src/ts/lambda-function/schema.d.js +6 -0
  807. package/src/ts/lambda-function/schema.d.js.map +1 -0
  808. package/src/ts/lambda-function/schema.d.ts +1 -0
  809. package/src/ts/lambda-function/schema.json +5 -0
  810. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +83 -45
  811. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +1 -1
  812. package/src/ts/lib/biome.js +71 -35
  813. package/src/ts/lib/biome.js.map +1 -1
  814. package/src/ts/lib/generator.d.ts +7 -0
  815. package/src/ts/lib/generator.js +115 -103
  816. package/src/ts/lib/generator.js.map +1 -1
  817. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  818. package/src/ts/lib/schema.d.js +6 -0
  819. package/src/ts/lib/schema.d.js.map +1 -0
  820. package/src/ts/lib/schema.d.ts +1 -1
  821. package/src/ts/lib/schema.json +5 -0
  822. package/src/ts/lib/ts-project-utils.d.ts +13 -1
  823. package/src/ts/lib/ts-project-utils.js +96 -71
  824. package/src/ts/lib/ts-project-utils.js.map +1 -1
  825. package/src/ts/lib/types.d.ts +6 -0
  826. package/src/ts/lib/types.js +5 -2
  827. package/src/ts/lib/types.js.map +1 -1
  828. package/src/ts/lib/vitest.d.ts +10 -1
  829. package/src/ts/lib/vitest.js +54 -26
  830. package/src/ts/lib/vitest.js.map +1 -1
  831. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +221 -44
  832. package/src/ts/mcp-server/files/Dockerfile.template +13 -2
  833. package/src/ts/mcp-server/generator.d.ts +110 -0
  834. package/src/ts/mcp-server/generator.js +231 -148
  835. package/src/ts/mcp-server/generator.js.map +1 -1
  836. package/src/ts/mcp-server/schema.d.js +6 -0
  837. package/src/ts/mcp-server/schema.d.js.map +1 -0
  838. package/src/ts/mcp-server/schema.d.ts +1 -0
  839. package/src/ts/mcp-server/schema.json +6 -0
  840. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +28 -13
  841. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  842. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  843. package/src/ts/nx-generator/files/local/generator.spec.ts.template +1 -1
  844. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  845. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  846. package/src/ts/nx-generator/generator.d.ts +3 -0
  847. package/src/ts/nx-generator/generator.js +124 -73
  848. package/src/ts/nx-generator/generator.js.map +1 -1
  849. package/src/ts/nx-generator/schema.d.js +6 -0
  850. package/src/ts/nx-generator/schema.d.js.map +1 -0
  851. package/src/ts/nx-generator/schema.d.ts +1 -0
  852. package/src/ts/nx-generator/schema.json +5 -0
  853. package/src/ts/nx-migration/files/migration.spec.ts.template +26 -0
  854. package/src/ts/nx-migration/files/migration.ts.template +65 -0
  855. package/src/ts/nx-migration/files/prompt.md.template +46 -0
  856. package/src/ts/nx-migration/generator.d.ts +27 -0
  857. package/src/ts/nx-migration/generator.js +147 -0
  858. package/src/ts/nx-migration/generator.js.map +1 -0
  859. package/src/ts/nx-migration/schema.d.js +6 -0
  860. package/src/ts/nx-migration/schema.d.js.map +1 -0
  861. package/src/ts/nx-migration/schema.d.ts +13 -0
  862. package/src/ts/nx-migration/schema.json +63 -0
  863. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +36 -25
  864. package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
  865. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  866. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  867. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  868. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  869. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  870. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +4 -4
  871. package/src/ts/nx-plugin/generator.d.ts +3 -0
  872. package/src/ts/nx-plugin/generator.js +67 -50
  873. package/src/ts/nx-plugin/generator.js.map +1 -1
  874. package/src/ts/nx-plugin/schema.d.js +9 -0
  875. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  876. package/src/ts/nx-plugin/schema.json +5 -0
  877. package/src/ts/nx-plugin/utils.d.ts +27 -2
  878. package/src/ts/nx-plugin/utils.js +66 -51
  879. package/src/ts/nx-plugin/utils.js.map +1 -1
  880. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +553 -644
  881. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +16 -6
  882. package/src/ts/rdb/agent-connection/generator.js +44 -39
  883. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  884. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  885. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  886. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  887. package/src/ts/rdb/agent-connection/schema.json +5 -0
  888. package/src/ts/rdb/files/Dockerfile.template +19 -1
  889. package/src/ts/rdb/files/config.json.template +14 -0
  890. package/src/ts/rdb/files/prisma.config.ts.template +6 -5
  891. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +9 -11
  892. package/src/ts/rdb/files/src/index.ts.template +1 -2
  893. package/src/ts/rdb/files/src/migration-handler.ts.template +5 -30
  894. package/src/ts/rdb/files/src/prisma.ts.template +33 -25
  895. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  896. package/src/ts/rdb/generator.d.ts +117 -4
  897. package/src/ts/rdb/generator.js +257 -138
  898. package/src/ts/rdb/generator.js.map +1 -1
  899. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +16 -6
  900. package/src/ts/rdb/mcp-server-connection/generator.js +42 -37
  901. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  902. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  903. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  904. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  905. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  906. package/src/ts/rdb/schema.d.js +6 -0
  907. package/src/ts/rdb/schema.d.js.map +1 -0
  908. package/src/ts/rdb/schema.d.ts +1 -0
  909. package/src/ts/rdb/schema.json +7 -1
  910. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +18 -9
  911. package/src/ts/rdb/smithy-connection/generator.js +48 -43
  912. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  913. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  914. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  915. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  916. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  917. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  918. package/src/ts/rdb/trpc-connection/generator.js +37 -31
  919. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  920. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  921. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  922. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  923. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  924. package/src/ts/rdb/utils.js +9 -11
  925. package/src/ts/rdb/utils.js.map +1 -1
  926. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +17 -16
  927. package/src/ts/react-website/agui/generator.d.ts +97 -0
  928. package/src/ts/react-website/agui/generator.js +114 -67
  929. package/src/ts/react-website/agui/generator.js.map +1 -1
  930. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +1391 -644
  931. package/src/ts/react-website/app/files/app/common/README.md.template +1 -1
  932. package/src/ts/react-website/app/generator.d.ts +142 -2
  933. package/src/ts/react-website/app/generator.js +333 -209
  934. package/src/ts/react-website/app/generator.js.map +1 -1
  935. package/src/ts/react-website/app/schema.d.js +6 -0
  936. package/src/ts/react-website/app/schema.d.js.map +1 -0
  937. package/src/ts/react-website/app/schema.d.ts +1 -1
  938. package/src/ts/react-website/app/schema.json +12 -6
  939. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +161 -26
  940. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +48 -12
  941. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  942. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  943. package/src/ts/react-website/cognito-auth/generator.d.ts +25 -1
  944. package/src/ts/react-website/cognito-auth/generator.js +79 -64
  945. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  946. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +3 -1
  947. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  948. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  949. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  950. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  951. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  952. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  953. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  954. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  955. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  956. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  957. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  958. package/src/ts/react-website/runtime-config/generator.js +29 -31
  959. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  960. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  961. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  962. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  963. package/src/ts/react-website/runtime-config/schema.json +5 -0
  964. package/src/ts/sync/generator.js +137 -60
  965. package/src/ts/sync/generator.js.map +1 -1
  966. package/src/ts/website/app/generator.js +10 -10
  967. package/src/ts/website/app/generator.js.map +1 -1
  968. package/src/ts/website/app/schema.d.js +6 -0
  969. package/src/ts/website/app/schema.d.js.map +1 -0
  970. package/src/ts/website/app/schema.d.ts +1 -1
  971. package/src/ts/website/app/schema.json +11 -6
  972. package/src/ts/website/auth/generator.d.ts +1 -1
  973. package/src/ts/website/auth/generator.js +11 -10
  974. package/src/ts/website/auth/generator.js.map +1 -1
  975. package/src/ts/website/auth/schema.d.js +6 -0
  976. package/src/ts/website/auth/schema.d.js.map +1 -0
  977. package/src/ts/website/auth/schema.d.ts +1 -0
  978. package/src/ts/website/auth/schema.json +5 -0
  979. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +21 -0
  980. package/src/utils/add-dependencies.d.ts +38 -0
  981. package/src/utils/add-dependencies.js +83 -0
  982. package/src/utils/add-dependencies.js.map +1 -0
  983. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  984. package/src/utils/agent-chat/agent-chat.js +31 -0
  985. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  986. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  987. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  988. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  989. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  990. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  991. package/src/utils/agent-connection/agent-connection.d.ts +139 -26
  992. package/src/utils/agent-connection/agent-connection.js +500 -103
  993. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  994. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  995. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  996. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  997. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  998. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  999. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +33 -33
  1000. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  1001. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  1002. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +47 -0
  1003. package/src/utils/agent-connection/files/core-strands/base/tool-errors-strands.ts.template +29 -0
  1004. 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
  1005. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  1006. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  1007. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  1008. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  1009. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  1010. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  1011. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +99 -0
  1012. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  1013. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  1014. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  1015. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +6 -18
  1016. package/src/utils/agent-connection/files/py-core-runtime-config/session_context.py.template +2 -2
  1017. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  1018. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
  1019. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  1020. 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} +2 -2
  1021. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  1022. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  1023. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +79 -0
  1024. package/src/utils/agent-core-constructs/agent-core-constructs.js +212 -38
  1025. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  1026. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +170 -6
  1027. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +87 -0
  1028. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.ts.template +366 -0
  1029. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +624 -0
  1030. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  1031. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +212 -1
  1032. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +521 -0
  1033. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  1034. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.tf.template +282 -0
  1035. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +159 -13
  1036. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  1037. package/src/utils/api-constructs/api-constructs.d.ts +30 -2
  1038. package/src/utils/api-constructs/api-constructs.js +82 -32
  1039. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  1040. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +20 -15
  1041. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +24 -16
  1042. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +26 -9
  1043. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +70 -0
  1044. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  1045. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +56 -17
  1046. package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
  1047. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  1048. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +101 -12
  1049. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +194 -8
  1050. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  1051. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  1052. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  1053. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  1054. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  1055. package/src/utils/ast/website.js +18 -20
  1056. package/src/utils/ast/website.js.map +1 -1
  1057. package/src/utils/ast.d.ts +9 -0
  1058. package/src/utils/ast.js +125 -86
  1059. package/src/utils/ast.js.map +1 -1
  1060. package/src/utils/base-tsconfig.d.ts +30 -0
  1061. package/src/utils/base-tsconfig.js +32 -0
  1062. package/src/utils/base-tsconfig.js.map +1 -0
  1063. package/src/utils/bundle/bundle.d.ts +6 -1
  1064. package/src/utils/bundle/bundle.js +58 -48
  1065. package/src/utils/bundle/bundle.js.map +1 -1
  1066. package/src/utils/commands.d.ts +14 -3
  1067. package/src/utils/commands.js +83 -28
  1068. package/src/utils/commands.js.map +1 -1
  1069. package/src/utils/config/index.d.ts +18 -2
  1070. package/src/utils/config/index.js +5 -4
  1071. package/src/utils/config/index.js.map +1 -1
  1072. package/src/utils/config/utils.d.ts +8 -2
  1073. package/src/utils/config/utils.js +56 -59
  1074. package/src/utils/config/utils.js.map +1 -1
  1075. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +16 -3
  1076. package/src/utils/connection/open-api/react.d.ts +31 -5
  1077. package/src/utils/connection/open-api/react.js +106 -76
  1078. package/src/utils/connection/open-api/react.js.map +1 -1
  1079. package/src/utils/containers.js +22 -23
  1080. package/src/utils/containers.js.map +1 -1
  1081. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +38 -0
  1082. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js +93 -0
  1083. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -0
  1084. package/src/utils/dcr-proxy-constructs/files/cdk/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.ts.template +227 -0
  1085. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorization-server-metadata.ts.template +39 -0
  1086. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorize.ts.template +26 -0
  1087. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/mcp-proxy.ts.template +89 -0
  1088. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/protected-resource-metadata.ts.template +13 -0
  1089. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/register.ts.template +70 -0
  1090. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/token.ts.template +75 -0
  1091. package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +410 -0
  1092. package/src/utils/declared-dependencies.d.ts +140 -0
  1093. package/src/utils/declared-dependencies.js +64 -0
  1094. package/src/utils/declared-dependencies.js.map +1 -0
  1095. package/src/utils/dependencies.d.ts +18 -0
  1096. package/src/utils/dependencies.js +206 -0
  1097. package/src/utils/dependencies.js.map +1 -0
  1098. package/src/utils/docker.d.ts +89 -0
  1099. package/src/utils/docker.js +125 -0
  1100. package/src/utils/docker.js.map +1 -0
  1101. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -1
  1102. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +39 -41
  1103. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  1104. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +18 -5
  1105. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +1 -1
  1106. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +24 -17
  1107. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  1108. package/src/utils/files/common/constructs/src/core/cloudfront.ts.template +14 -0
  1109. package/src/utils/files/common/constructs/src/core/index.ts.template +5 -4
  1110. package/src/utils/files/common/constructs/src/index.ts.template +2 -2
  1111. package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
  1112. package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
  1113. package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
  1114. package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/create-local-table.ts.template +65 -31
  1115. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  1116. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +103 -0
  1117. package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +2 -0
  1118. package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +2 -0
  1119. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
  1120. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +3 -3
  1121. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  1122. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  1123. package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
  1124. package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +115 -0
  1125. package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
  1126. package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
  1127. package/src/utils/files/shadcn/components.json.template +1 -1
  1128. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +63 -72
  1129. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  1130. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
  1131. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  1132. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
  1133. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  1134. package/src/utils/format.d.ts +39 -4
  1135. package/src/utils/format.js +318 -198
  1136. package/src/utils/format.js.map +1 -1
  1137. package/src/utils/fs.d.ts +24 -5
  1138. package/src/utils/fs.js +40 -15
  1139. package/src/utils/fs.js.map +1 -1
  1140. package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
  1141. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  1142. package/src/utils/function-constructs/function-constructs.js +22 -25
  1143. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  1144. package/src/utils/generators.js +18 -20
  1145. package/src/utils/generators.js.map +1 -1
  1146. package/src/utils/git.js +19 -34
  1147. package/src/utils/git.js.map +1 -1
  1148. package/src/utils/iac-providers.js +5 -5
  1149. package/src/utils/iac-providers.js.map +1 -1
  1150. package/src/utils/iac.js +12 -14
  1151. package/src/utils/iac.js.map +1 -1
  1152. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +153 -24
  1153. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
  1154. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +129 -12
  1155. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  1156. package/src/utils/identity-constructs/identity-constructs.d.ts +10 -0
  1157. package/src/utils/identity-constructs/identity-constructs.js +52 -31
  1158. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  1159. package/src/utils/init.d.ts +72 -0
  1160. package/src/utils/init.js +300 -0
  1161. package/src/utils/init.js.map +1 -0
  1162. package/src/utils/install.d.ts +32 -0
  1163. package/src/utils/install.js +58 -0
  1164. package/src/utils/install.js.map +1 -0
  1165. package/src/utils/js.js +27 -20
  1166. package/src/utils/js.js.map +1 -1
  1167. package/src/utils/mcp.d.ts +9 -0
  1168. package/src/utils/mcp.js +42 -41
  1169. package/src/utils/mcp.js.map +1 -1
  1170. package/src/utils/metrics.d.ts +7 -1
  1171. package/src/utils/metrics.js +61 -46
  1172. package/src/utils/metrics.js.map +1 -1
  1173. package/src/utils/migration-manifest.d.ts +58 -0
  1174. package/src/utils/migration-manifest.js +76 -0
  1175. package/src/utils/migration-manifest.js.map +1 -0
  1176. package/src/utils/migration-versions.d.ts +145 -0
  1177. package/src/utils/migration-versions.js +250 -0
  1178. package/src/utils/migration-versions.js.map +1 -0
  1179. package/src/utils/mock-project-graph.js +8 -12
  1180. package/src/utils/mock-project-graph.js.map +1 -1
  1181. package/src/utils/module-format.d.ts +25 -0
  1182. package/src/utils/module-format.js +45 -0
  1183. package/src/utils/module-format.js.map +1 -0
  1184. package/src/utils/names.d.ts +22 -0
  1185. package/src/utils/names.js +44 -48
  1186. package/src/utils/names.js.map +1 -1
  1187. package/src/utils/npm-scope.d.ts +0 -4
  1188. package/src/utils/npm-scope.js +7 -20
  1189. package/src/utils/npm-scope.js.map +1 -1
  1190. package/src/utils/nx.d.ts +74 -3
  1191. package/src/utils/nx.js +196 -75
  1192. package/src/utils/nx.js.map +1 -1
  1193. package/src/utils/nxlv-python.js +27 -15
  1194. package/src/utils/nxlv-python.js.map +1 -1
  1195. package/src/utils/object.js +5 -11
  1196. package/src/utils/object.js.map +1 -1
  1197. package/src/utils/paths.js +11 -15
  1198. package/src/utils/paths.js.map +1 -1
  1199. package/src/utils/pkg-manager.js +4 -9
  1200. package/src/utils/pkg-manager.js.map +1 -1
  1201. package/src/utils/pnpm-workspace.d.ts +1 -12
  1202. package/src/utils/pnpm-workspace.js +16 -43
  1203. package/src/utils/pnpm-workspace.js.map +1 -1
  1204. package/src/utils/port.d.ts +28 -6
  1205. package/src/utils/port.js +67 -28
  1206. package/src/utils/port.js.map +1 -1
  1207. package/src/utils/project-package-json.d.ts +39 -0
  1208. package/src/utils/project-package-json.js +119 -0
  1209. package/src/utils/project-package-json.js.map +1 -0
  1210. package/src/utils/py.d.ts +17 -3
  1211. package/src/utils/py.js +73 -48
  1212. package/src/utils/py.js.map +1 -1
  1213. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +72 -18
  1214. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +112 -88
  1215. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +127 -53
  1216. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +60 -53
  1217. package/src/utils/rdb-constructs/rdb-constructs.d.ts +12 -1
  1218. package/src/utils/rdb-constructs/rdb-constructs.js +38 -41
  1219. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  1220. package/src/utils/ruff.d.ts +59 -0
  1221. package/src/utils/ruff.js +140 -0
  1222. package/src/utils/ruff.js.map +1 -0
  1223. package/src/utils/shared-constructs-constants.d.ts +46 -4
  1224. package/src/utils/shared-constructs-constants.js +50 -15
  1225. package/src/utils/shared-constructs-constants.js.map +1 -1
  1226. package/src/utils/shared-constructs.d.ts +4 -1
  1227. package/src/utils/shared-constructs.js +62 -67
  1228. package/src/utils/shared-constructs.js.map +1 -1
  1229. package/src/utils/shared-dynamodb-scripts.d.ts +18 -0
  1230. package/src/utils/shared-dynamodb-scripts.js +35 -0
  1231. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  1232. package/src/utils/shared-infra-config.js +31 -30
  1233. package/src/utils/shared-infra-config.js.map +1 -1
  1234. package/src/utils/shared-infra-scripts.d.ts +26 -0
  1235. package/src/utils/shared-infra-scripts.js +58 -0
  1236. package/src/utils/shared-infra-scripts.js.map +1 -0
  1237. package/src/utils/shared-rdb-scripts.d.ts +27 -0
  1238. package/src/utils/shared-rdb-scripts.js +59 -0
  1239. package/src/utils/shared-rdb-scripts.js.map +1 -0
  1240. package/src/utils/shared-scripts.d.ts +1 -4
  1241. package/src/utils/shared-scripts.js +12 -38
  1242. package/src/utils/shared-scripts.js.map +1 -1
  1243. package/src/utils/shared-shadcn.d.ts +26 -1
  1244. package/src/utils/shared-shadcn.js +93 -67
  1245. package/src/utils/shared-shadcn.js.map +1 -1
  1246. package/src/utils/smithy.d.ts +59 -0
  1247. package/src/utils/smithy.js +73 -0
  1248. package/src/utils/smithy.js.map +1 -0
  1249. package/src/utils/test-git.d.ts +39 -0
  1250. package/src/utils/test-git.js +117 -0
  1251. package/src/utils/test-git.js.map +1 -0
  1252. package/src/utils/test.d.ts +10 -0
  1253. package/src/utils/test.js +44 -25
  1254. package/src/utils/test.js.map +1 -1
  1255. package/src/utils/toml.d.ts +5 -0
  1256. package/src/utils/toml.js +17 -15
  1257. package/src/utils/toml.js.map +1 -1
  1258. package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
  1259. package/src/utils/version-upgrade-migration/migration.js +16 -0
  1260. package/src/utils/version-upgrade-migration/migration.js.map +1 -0
  1261. package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +45 -0
  1262. package/src/utils/version-upgrade-migration/nx-package-updates.js +50 -0
  1263. package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
  1264. package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +76 -0
  1265. package/src/utils/version-upgrade-migration/owned-dependencies.js +146 -0
  1266. package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
  1267. package/src/utils/version-upgrade-migration/register.d.ts +29 -0
  1268. package/src/utils/version-upgrade-migration/register.js +42 -0
  1269. package/src/utils/version-upgrade-migration/register.js.map +1 -0
  1270. package/src/utils/version-upgrade-migration/sync-embedded-versions.d.ts +26 -0
  1271. package/src/utils/version-upgrade-migration/sync-embedded-versions.js +352 -0
  1272. package/src/utils/version-upgrade-migration/sync-embedded-versions.js.map +1 -0
  1273. package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
  1274. package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
  1275. package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
  1276. package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
  1277. package/src/utils/version-upgrade-migration/sync-vended-versions.js +518 -0
  1278. package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
  1279. package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
  1280. package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
  1281. package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
  1282. package/src/utils/versions.d.ts +240 -108
  1283. package/src/utils/versions.js +265 -121
  1284. package/src/utils/versions.js.map +1 -1
  1285. package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +2 -2
  1286. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +207 -41
  1287. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  1288. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +145 -93
  1289. package/src/utils/website-constructs/website-constructs.d.ts +11 -0
  1290. package/src/utils/website-constructs/website-constructs.js +49 -30
  1291. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  1292. package/bin/aws-nx-mcp.d.ts +0 -2
  1293. package/bin/aws-nx-mcp.js +0 -17
  1294. package/bin/aws-nx-mcp.js.map +0 -1
  1295. package/sdk/connection.d.ts +0 -6
  1296. package/sdk/connection.js +0 -10
  1297. package/sdk/connection.js.map +0 -1
  1298. package/sdk/license.d.ts +0 -8
  1299. package/sdk/license.js +0 -13
  1300. package/sdk/license.js.map +0 -1
  1301. package/sdk/open-api.d.ts +0 -10
  1302. package/sdk/open-api.js +0 -15
  1303. package/sdk/open-api.js.map +0 -1
  1304. package/sdk/py.d.ts +0 -14
  1305. package/sdk/py.js +0 -18
  1306. package/sdk/py.js.map +0 -1
  1307. package/sdk/terraform.d.ts +0 -6
  1308. package/sdk/terraform.js +0 -11
  1309. package/sdk/terraform.js.map +0 -1
  1310. package/sdk/ts.d.ts +0 -29
  1311. package/sdk/ts.js +0 -47
  1312. package/sdk/ts.js.map +0 -1
  1313. package/sdk/utils/ast.js +0 -12
  1314. package/sdk/utils/ast.js.map +0 -1
  1315. package/sdk/utils/format.js +0 -10
  1316. package/sdk/utils/format.js.map +0 -1
  1317. package/sdk/utils/test.js +0 -10
  1318. package/sdk/utils/test.js.map +0 -1
  1319. package/src/connection/agent-serve-local.d.ts +0 -33
  1320. package/src/connection/agent-serve-local.js +0 -48
  1321. package/src/connection/agent-serve-local.js.map +0 -1
  1322. package/src/connection/serve-local.js +0 -41
  1323. package/src/connection/serve-local.js.map +0 -1
  1324. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  1325. package/src/py/agent/files/ag-ui/main.py.template +0 -37
  1326. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  1327. package/src/py/agent/react-connection/serve-local.js +0 -30
  1328. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  1329. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  1330. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  1331. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  1332. package/src/ts/agent/react-connection/serve-local.js +0 -19
  1333. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  1334. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  1335. package/src/ts/dynamodb/files/scripts/pull-image.ts.template +0 -15
  1336. package/src/ts/dynamodb/files/scripts/start-container.ts.template +0 -81
  1337. package/src/ts/dynamodb/files/src/constants.ts.template +0 -9
  1338. package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
  1339. package/src/ts/rdb/files/scripts/pull-image.ts.template +0 -15
  1340. package/src/ts/rdb/files/scripts/start-container.ts.template +0 -84
  1341. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  1342. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  1343. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  1344. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  1345. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  1346. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  1347. package/src/utils/files/common/scripts/src/infra-deploy.ts.template +0 -2
  1348. package/src/utils/files/common/scripts/src/infra-destroy.ts.template +0 -2
  1349. package/src/utils/files/terraform/scripts/reset-runtime-config.ts.template +0 -25
  1350. /package/src/py/agent/files/{common → strands/common}/__init__.py.template +0 -0
  1351. /package/src/smithy/project/files/{src → service/src}/main.smithy.template +0 -0
  1352. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  1353. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  1354. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -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/v1.0.0-rc.60/0003-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,3 @@
1
+ {
2
+ "description": "Move py#agent HTTP/AG-UI agent construction out of module import time and into a FastAPI lifespan handler, stored on app.state"
3
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { type MigrationReturnObject, type Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,412 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { getProjects, joinPathFragments } from "@nx/devkit";
5
+ import { PY_AGENT_GENERATOR_INFO } from "../../../py/agent/generator.js";
6
+ import { addPythonDestructuredImport, applyGritQL, captureGritQLVariable, matchGritQL } from "../../../utils/ast.js";
7
+ import { formatFilesInSubtree } from "../../../utils/format.js";
8
+ /**
9
+ * Move py#agent HTTP/AG-UI agent construction out of module import time and
10
+ * into a FastAPI `lifespan` handler, stored on `app.state`.
11
+ *
12
+ * Building the agent eagerly at import time breaks any codepath that imports
13
+ * the module before `RUNTIME_CONFIG_APP_ID`/AgentCore env vars are set (e.g.
14
+ * OpenAPI spec generation, tests) - and, for AgentCore, construction belongs
15
+ * at container/app startup rather than import, since AgentCore hands each
16
+ * session its own container. The A2A protocol is unaffected: `with_session_id`
17
+ * only touches the agent factory lazily on first use, so its eager
18
+ * `__enter__()` was never actually eager in practice.
19
+ *
20
+ * How to write a migration:
21
+ * - https://nx.dev/docs/kb/migration-generators
22
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
23
+ *
24
+ * Guardrails:
25
+ * - Pattern-match before writing: every rewrite this migration makes to a file
26
+ * is preceded by a read-only `matchGritQL` check of every pattern it will
27
+ * need - so a diverged file is reported via `nextSteps` and left completely
28
+ * untouched, rather than partially rewritten into a broken state.
29
+ * - Idempotent: re-running must be a no-op (each rewrite's own shape change
30
+ * means its pattern no longer matches on a second pass).
31
+ * - Format what you write: finish with `formatFilesInSubtree`.
32
+ */ /** A read-only GritQL match against a python file (no rewrite). */ const pyMatch = (snippet)=>`language python\n\`${snippet}\``;
33
+ /** A GritQL rewrite deleting the matched python snippet entirely. */ const pyDelete = (snippet)=>`${pyMatch(snippet)} => .`;
34
+ /**
35
+ * A GritQL rewrite of one python snippet into another. Multi-line
36
+ * replacements go through `raw` so GritQL's own reformatting doesn't fight
37
+ * the exact shape being written (formatFilesInSubtree normalizes it after).
38
+ */ const pyRewrite = (from, to, where)=>{
39
+ const replacement = to.includes('\n') ? `raw\`${to}\`` : `\`${to}\``;
40
+ return `${pyMatch(from)} => ${replacement}${where ? ` where { ${where} }` : ''}`;
41
+ };
42
+ /** All checks must match before anything is written for that agent. */ const allMatch = async (tree, checks)=>{
43
+ for (const [filePath, pattern] of checks){
44
+ if (!await matchGritQL(tree, filePath, pattern)) return false;
45
+ }
46
+ return true;
47
+ };
48
+ const AGENT_CONNECTION_MODULE_PATTERN = (names)=>pyMatch(`from $mod import ${names}`);
49
+ const STRANDS_HTTP_MARKER = '_agent_ctx = with_session_id(';
50
+ const LANGCHAIN_HTTP_MARKER = '_graph = get_agent()';
51
+ const STRANDS_AGUI_MARKER = 'create_strands_app';
52
+ const LANGCHAIN_AGUI_MARKER = '_graph = get_agent()';
53
+ // Shared by strands/http and langchain/http - only the lifespan body differs.
54
+ const HTTP_INIT_APP_OLD = `app = FastAPI(
55
+ title="$name",
56
+ responses={500: {"model": InternalServerErrorDetails}},
57
+ generate_unique_id_function=lambda route: route.name,
58
+ )`;
59
+ // --- Strands HTTP -----------------------------------------------------------
60
+ const STRANDS_HTTP_MAIN_CTX_OLD = `_agent_ctx = with_session_id(
61
+ get_agent,
62
+ name="$name",
63
+ description="A Strands Agent exposed via HTTP streaming.",
64
+ )`;
65
+ const STRANDS_HTTP_INIT_APP_NEW = `@asynccontextmanager
66
+ async def lifespan(app: FastAPI):
67
+ with with_session_id(
68
+ get_agent,
69
+ name="$name",
70
+ description="A Strands Agent exposed via HTTP streaming.",
71
+ ) as agent:
72
+ app.state.agent = agent
73
+ yield
74
+
75
+
76
+ app = FastAPI(
77
+ title="$name",
78
+ responses={500: {"model": InternalServerErrorDetails}},
79
+ generate_unique_id_function=lambda route: route.name,
80
+ lifespan=lifespan,
81
+ )`;
82
+ const migrateStrandsHttpAgent = async (tree, dir, nextSteps)=>{
83
+ const initPath = joinPathFragments(dir, 'init.py');
84
+ const mainPath = joinPathFragments(dir, 'main.py');
85
+ if (!tree.exists(initPath) || !tree.exists(mainPath)) return;
86
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
87
+ if (!mainContents.includes(STRANDS_HTTP_MARKER)) return;
88
+ const mod = await captureGritQLVariable(tree, mainPath, AGENT_CONNECTION_MODULE_PATTERN('session_id_context, with_session_id'), 'mod');
89
+ const ready = !!mod && await allMatch(tree, [
90
+ [
91
+ mainPath,
92
+ pyMatch(STRANDS_HTTP_MAIN_CTX_OLD)
93
+ ],
94
+ [
95
+ mainPath,
96
+ pyMatch('_agent = _agent_ctx.__enter__()')
97
+ ],
98
+ [
99
+ mainPath,
100
+ pyMatch('from .agent import get_agent')
101
+ ],
102
+ [
103
+ mainPath,
104
+ pyMatch('_agent.stream_async($prompt)')
105
+ ],
106
+ [
107
+ initPath,
108
+ pyMatch(HTTP_INIT_APP_OLD)
109
+ ]
110
+ ]);
111
+ if (!ready) {
112
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually move agent construction into an \`init.py\` \`lifespan\` handler storing the agent on \`app.state.agent\` (see the py#agent generator's strands/http template).`);
113
+ return;
114
+ }
115
+ await addPythonDestructuredImport(tree, initPath, [
116
+ 'asynccontextmanager'
117
+ ], 'contextlib');
118
+ await addPythonDestructuredImport(tree, initPath, [
119
+ 'get_agent'
120
+ ], '.agent');
121
+ await addPythonDestructuredImport(tree, initPath, [
122
+ 'with_session_id'
123
+ ], mod);
124
+ await applyGritQL(tree, initPath, pyRewrite(HTTP_INIT_APP_OLD, STRANDS_HTTP_INIT_APP_NEW));
125
+ await applyGritQL(tree, mainPath, pyRewrite('from $mod import session_id_context, with_session_id', 'from $mod import session_id_context'));
126
+ await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));
127
+ await applyGritQL(tree, mainPath, pyDelete(STRANDS_HTTP_MAIN_CTX_OLD));
128
+ await applyGritQL(tree, mainPath, pyDelete('_agent = _agent_ctx.__enter__()'));
129
+ await applyGritQL(tree, mainPath, pyRewrite('_agent.stream_async($prompt)', 'app.state.agent.stream_async($prompt)'));
130
+ };
131
+ // --- LangChain HTTP ----------------------------------------------------------
132
+ const LANGCHAIN_HTTP_INIT_APP_NEW = `@asynccontextmanager
133
+ async def lifespan(app: FastAPI):
134
+ app.state.graph = get_agent()
135
+ yield
136
+
137
+
138
+ app = FastAPI(
139
+ title="$name",
140
+ responses={500: {"model": InternalServerErrorDetails}},
141
+ generate_unique_id_function=lambda route: route.name,
142
+ lifespan=lifespan,
143
+ )`;
144
+ const migrateLangchainHttpAgent = async (tree, dir, nextSteps)=>{
145
+ const initPath = joinPathFragments(dir, 'init.py');
146
+ const mainPath = joinPathFragments(dir, 'main.py');
147
+ if (!tree.exists(initPath) || !tree.exists(mainPath)) return;
148
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
149
+ if (!mainContents.includes(LANGCHAIN_HTTP_MARKER)) return;
150
+ const ready = await allMatch(tree, [
151
+ [
152
+ mainPath,
153
+ pyMatch('_graph = get_agent()')
154
+ ],
155
+ [
156
+ mainPath,
157
+ pyMatch('from .agent import get_agent')
158
+ ],
159
+ [
160
+ mainPath,
161
+ pyMatch('_graph.astream($args)')
162
+ ],
163
+ [
164
+ initPath,
165
+ pyMatch(HTTP_INIT_APP_OLD)
166
+ ]
167
+ ]);
168
+ if (!ready) {
169
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually wrap \`get_agent()\` in an \`init.py\` \`lifespan\` handler storing the graph on \`app.state.graph\` (see the py#agent generator's langchain/http template).`);
170
+ return;
171
+ }
172
+ await addPythonDestructuredImport(tree, initPath, [
173
+ 'asynccontextmanager'
174
+ ], 'contextlib');
175
+ await addPythonDestructuredImport(tree, initPath, [
176
+ 'get_agent'
177
+ ], '.agent');
178
+ await applyGritQL(tree, initPath, pyRewrite(HTTP_INIT_APP_OLD, LANGCHAIN_HTTP_INIT_APP_NEW));
179
+ await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));
180
+ await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));
181
+ await applyGritQL(tree, mainPath, pyRewrite('_graph.astream($args)', 'app.state.graph.astream($args)'));
182
+ };
183
+ // --- LangChain AG-UI ---------------------------------------------------------
184
+ const LANGCHAIN_AGUI_AGENT_OLD = `agui_agent = LangGraphAgent(
185
+ name="$name",
186
+ graph=_graph,
187
+ description="A LangChain/LangGraph Agent exposed via the AG-UI protocol.",
188
+ )`;
189
+ const LANGCHAIN_AGUI_AGENT_NEW = `@asynccontextmanager
190
+ async def lifespan(app: FastAPI):
191
+ graph = get_agent()
192
+ app.state.agui_agent = LangGraphAgent(
193
+ name="$name",
194
+ graph=graph,
195
+ description="A LangChain/LangGraph Agent exposed via the AG-UI protocol.",
196
+ )
197
+ yield`;
198
+ const migrateLangchainAgUiAgent = async (tree, dir, nextSteps)=>{
199
+ const mainPath = joinPathFragments(dir, 'main.py');
200
+ if (!tree.exists(mainPath)) return;
201
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
202
+ if (!mainContents.includes(LANGCHAIN_AGUI_MARKER)) return;
203
+ const ready = await allMatch(tree, [
204
+ [
205
+ mainPath,
206
+ pyMatch('_graph = get_agent()')
207
+ ],
208
+ [
209
+ mainPath,
210
+ pyMatch(LANGCHAIN_AGUI_AGENT_OLD)
211
+ ],
212
+ [
213
+ mainPath,
214
+ pyMatch('agui_agent.run($input)')
215
+ ],
216
+ [
217
+ mainPath,
218
+ pyMatch('app = FastAPI(title="$name")')
219
+ ]
220
+ ]);
221
+ if (!ready) {
222
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched. Manually wrap graph + \`LangGraphAgent\` construction in a \`lifespan\` handler storing the wrapper on \`app.state.agui_agent\` (see the py#agent generator's langchain/ag-ui template).`);
223
+ return;
224
+ }
225
+ await addPythonDestructuredImport(tree, mainPath, [
226
+ 'asynccontextmanager'
227
+ ], 'contextlib');
228
+ await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));
229
+ await applyGritQL(tree, mainPath, pyRewrite(LANGCHAIN_AGUI_AGENT_OLD, LANGCHAIN_AGUI_AGENT_NEW));
230
+ await applyGritQL(tree, mainPath, pyRewrite('agui_agent.run($input)', 'request.app.state.agui_agent.run($input)'));
231
+ await applyGritQL(tree, mainPath, pyRewrite('app = FastAPI(title="$name")', 'app = FastAPI(title="$name", lifespan=lifespan)'));
232
+ };
233
+ // --- Strands AG-UI -----------------------------------------------------------
234
+ // The biggest of the four: `ag_ui_strands.create_strands_app` is dropped
235
+ // entirely for an inlined FastAPI app (matching upstream `ag_ui_strands`,
236
+ // plus a Content-Type-independent body-parsing fix and an explicit session
237
+ // re-bind `create_strands_app` was missing), so most of the file is new.
238
+ const STRANDS_AGUI_IMPORT_OLD = 'from ag_ui_strands import StrandsAgent, create_strands_app';
239
+ const STRANDS_AGUI_AGENT_OLD = `agui_agent = StrandsAgent(
240
+ agent=_agent,
241
+ name="$name",
242
+ description="A Strands Agent exposed via the AG-UI protocol.",
243
+ )`;
244
+ const STRANDS_AGUI_AGENT_NEW = `@asynccontextmanager
245
+ async def lifespan(app: FastAPI):
246
+ with get_agent() as agent:
247
+ app.state.agui_agent = StrandsAgent(
248
+ agent=agent,
249
+ name="$name",
250
+ description="A Strands Agent exposed via the AG-UI protocol.",
251
+ )
252
+ yield`;
253
+ const STRANDS_AGUI_APP_OLD = 'app = create_strands_app(agui_agent, path="/invocations")';
254
+ // `$name` isn't bound within this match (unlike STRANDS_AGUI_AGENT_OLD above),
255
+ // so the title is built from a name captured separately rather than reused as
256
+ // a metavariable - GritQL leaves a rewrite whose replacement references an
257
+ // unbound metavariable unapplied.
258
+ const strandsAguiAppNew = (name)=>`app = FastAPI(title="AWS Strands - ${name}", lifespan=lifespan)
259
+ app.add_middleware(
260
+ CORSMiddleware,
261
+ allow_origins=["*"],
262
+ allow_credentials=True,
263
+ allow_methods=["*"],
264
+ allow_headers=["*"],
265
+ )`;
266
+ const STRANDS_AGUI_MIDDLEWARE_OLD = 'app.add_middleware(_SessionIdMiddleware)';
267
+ const STRANDS_AGUI_ROUTES_NEW = `app.add_middleware(_SessionIdMiddleware)
268
+
269
+
270
+ @app.post("/invocations")
271
+ async def invocations(request: Request):
272
+ # Validate the body manually since AgentCore may omit Content-Type.
273
+ encoder = EventEncoder(accept=request.headers.get("accept") or "")
274
+ raw = await request.body()
275
+ try:
276
+ input_data = RunAgentInput.model_validate_json(raw)
277
+ except Exception as exc:
278
+ message = f"Invalid RunAgentInput: {str(exc)[:200]}"
279
+
280
+ async def _bad():
281
+ yield encoder.encode(RunErrorEvent(type=EventType.RUN_ERROR, message=message, code="BAD_REQUEST"))
282
+
283
+ return StreamingResponse(_bad(), media_type=encoder.get_content_type())
284
+
285
+ session_id = request.headers.get(SESSION_ID_HEADER) or get_current_session_id()
286
+
287
+ async def event_generator():
288
+ # Re-bind the session: the streaming body runs outside the middleware.
289
+ with session_id_context(session_id or str(uuid.uuid4())):
290
+ async for event in request.app.state.agui_agent.run(input_data):
291
+ try:
292
+ yield encoder.encode(event)
293
+ except Exception as e:
294
+ error_event = RunErrorEvent(
295
+ type=EventType.RUN_ERROR,
296
+ message=f"Encoding error: {e}",
297
+ code="ENCODING_ERROR",
298
+ )
299
+ yield encoder.encode(error_event)
300
+ break
301
+
302
+ return StreamingResponse(event_generator(), media_type=encoder.get_content_type())
303
+
304
+
305
+ @app.get("/ping")
306
+ async def ping():
307
+ return {"status": "healthy"}`;
308
+ const STRANDS_AGUI_COMMENTS_OLD = [
309
+ '# Create AG-UI agent wrapper',
310
+ '# Create FastAPI app with AG-UI endpoint and health check'
311
+ ];
312
+ const migrateStrandsAgUiAgent = async (tree, dir, nextSteps)=>{
313
+ const mainPath = joinPathFragments(dir, 'main.py');
314
+ if (!tree.exists(mainPath)) return;
315
+ const mainContents = tree.read(mainPath, 'utf-8') ?? '';
316
+ if (!mainContents.includes(STRANDS_AGUI_MARKER)) return;
317
+ const mod = await captureGritQLVariable(tree, mainPath, AGENT_CONNECTION_MODULE_PATTERN('session_id_context'), 'mod');
318
+ const agentClassName = await captureGritQLVariable(tree, mainPath, pyMatch(STRANDS_AGUI_AGENT_OLD), 'name');
319
+ const ready = !!mod && !!agentClassName && await allMatch(tree, [
320
+ [
321
+ mainPath,
322
+ pyMatch(STRANDS_AGUI_IMPORT_OLD)
323
+ ],
324
+ [
325
+ mainPath,
326
+ pyMatch('_agent_ctx = get_agent()')
327
+ ],
328
+ [
329
+ mainPath,
330
+ pyMatch('_agent = _agent_ctx.__enter__()')
331
+ ],
332
+ [
333
+ mainPath,
334
+ pyMatch(STRANDS_AGUI_AGENT_OLD)
335
+ ],
336
+ [
337
+ mainPath,
338
+ pyMatch(STRANDS_AGUI_APP_OLD)
339
+ ],
340
+ [
341
+ mainPath,
342
+ pyMatch(STRANDS_AGUI_MIDDLEWARE_OLD)
343
+ ]
344
+ ]);
345
+ if (!ready) {
346
+ nextSteps.push(`${mainPath}: diverged from the generated shape - left untouched. Manually rebuild this file without \`create_strands_app\`: a \`lifespan\` handler storing the wrapper on \`app.state.agui_agent\`, and inlined \`/invocations\`/\`/ping\` routes with Content-Type-independent body parsing (see the py#agent generator's strands/ag-ui template).`);
347
+ return;
348
+ }
349
+ await addPythonDestructuredImport(tree, mainPath, [
350
+ 'asynccontextmanager'
351
+ ], 'contextlib');
352
+ await addPythonDestructuredImport(tree, mainPath, [
353
+ 'EventType',
354
+ 'RunAgentInput',
355
+ 'RunErrorEvent'
356
+ ], 'ag_ui.core');
357
+ await addPythonDestructuredImport(tree, mainPath, [
358
+ 'EventEncoder'
359
+ ], 'ag_ui.encoder');
360
+ await addPythonDestructuredImport(tree, mainPath, [
361
+ 'FastAPI'
362
+ ], 'fastapi');
363
+ await addPythonDestructuredImport(tree, mainPath, [
364
+ 'CORSMiddleware'
365
+ ], 'fastapi.middleware.cors');
366
+ await addPythonDestructuredImport(tree, mainPath, [
367
+ 'StreamingResponse'
368
+ ], 'fastapi.responses');
369
+ await addPythonDestructuredImport(tree, mainPath, [
370
+ 'get_current_session_id'
371
+ ], mod);
372
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_IMPORT_OLD, 'from ag_ui_strands import StrandsAgent'));
373
+ await applyGritQL(tree, mainPath, pyDelete('_agent_ctx = get_agent()'));
374
+ await applyGritQL(tree, mainPath, pyDelete('_agent = _agent_ctx.__enter__()'));
375
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_AGENT_OLD, STRANDS_AGUI_AGENT_NEW));
376
+ for (const comment of STRANDS_AGUI_COMMENTS_OLD){
377
+ await applyGritQL(tree, mainPath, pyDelete(comment));
378
+ }
379
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_APP_OLD, strandsAguiAppNew(agentClassName)));
380
+ await applyGritQL(tree, mainPath, pyRewrite(STRANDS_AGUI_MIDDLEWARE_OLD, STRANDS_AGUI_ROUTES_NEW));
381
+ };
382
+ /** This agent's ComponentMetadata entries. */ const findAgentComponents = (components)=>(components ?? []).filter((component)=>component.generator === PY_AGENT_GENERATOR_INFO.id);
383
+ export default async function migration(tree) {
384
+ const nextSteps = [];
385
+ for (const project of getProjects(tree).values()){
386
+ const components = findAgentComponents(project.metadata?.components);
387
+ for (const component of components){
388
+ if (!component.path) continue;
389
+ const dir = joinPathFragments(project.root, component.path);
390
+ const framework = component.framework ?? 'strands';
391
+ if (component.protocol === 'http') {
392
+ if (framework === 'langchain') {
393
+ await migrateLangchainHttpAgent(tree, dir, nextSteps);
394
+ } else {
395
+ await migrateStrandsHttpAgent(tree, dir, nextSteps);
396
+ }
397
+ } else if (component.protocol === 'ag-ui') {
398
+ if (framework === 'langchain') {
399
+ await migrateLangchainAgUiAgent(tree, dir, nextSteps);
400
+ } else {
401
+ await migrateStrandsAgUiAgent(tree, dir, nextSteps);
402
+ }
403
+ }
404
+ }
405
+ }
406
+ await formatFilesInSubtree(tree);
407
+ return {
408
+ nextSteps
409
+ };
410
+ }
411
+
412
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n getProjects,\n joinPathFragments,\n type MigrationReturnObject,\n type Tree,\n} from '@nx/devkit';\nimport { PY_AGENT_GENERATOR_INFO } from '../../../py/agent/generator';\nimport {\n addPythonDestructuredImport,\n applyGritQL,\n captureGritQLVariable,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport type { ComponentMetadata } from '../../../utils/nx';\n\n/**\n * Move py#agent HTTP/AG-UI agent construction out of module import time and\n * into a FastAPI `lifespan` handler, stored on `app.state`.\n *\n * Building the agent eagerly at import time breaks any codepath that imports\n * the module before `RUNTIME_CONFIG_APP_ID`/AgentCore env vars are set (e.g.\n * OpenAPI spec generation, tests) - and, for AgentCore, construction belongs\n * at container/app startup rather than import, since AgentCore hands each\n * session its own container. The A2A protocol is unaffected: `with_session_id`\n * only touches the agent factory lazily on first use, so its eager\n * `__enter__()` was never actually eager in practice.\n *\n * How to write a migration:\n * - https://nx.dev/docs/kb/migration-generators\n * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject\n *\n * Guardrails:\n * - Pattern-match before writing: every rewrite this migration makes to a file\n * is preceded by a read-only `matchGritQL` check of every pattern it will\n * need - so a diverged file is reported via `nextSteps` and left completely\n * untouched, rather than partially rewritten into a broken state.\n * - Idempotent: re-running must be a no-op (each rewrite's own shape change\n * means its pattern no longer matches on a second pass).\n * - Format what you write: finish with `formatFilesInSubtree`.\n */\n\n/** A read-only GritQL match against a python file (no rewrite). */\nconst pyMatch = (snippet: string) => `language python\\n\\`${snippet}\\``;\n\n/** A GritQL rewrite deleting the matched python snippet entirely. */\nconst pyDelete = (snippet: string) => `${pyMatch(snippet)} => .`;\n\n/**\n * A GritQL rewrite of one python snippet into another. Multi-line\n * replacements go through `raw` so GritQL's own reformatting doesn't fight\n * the exact shape being written (formatFilesInSubtree normalizes it after).\n */\nconst pyRewrite = (from: string, to: string, where?: string): string => {\n const replacement = to.includes('\\n') ? `raw\\`${to}\\`` : `\\`${to}\\``;\n return `${pyMatch(from)} => ${replacement}${where ? ` where { ${where} }` : ''}`;\n};\n\n/** All checks must match before anything is written for that agent. */\nconst allMatch = async (\n tree: Tree,\n checks: ReadonlyArray<readonly [filePath: string, pattern: string]>,\n): Promise<boolean> => {\n for (const [filePath, pattern] of checks) {\n if (!(await matchGritQL(tree, filePath, pattern))) return false;\n }\n return true;\n};\n\nconst AGENT_CONNECTION_MODULE_PATTERN = (names: string) =>\n pyMatch(`from $mod import ${names}`);\n\nconst STRANDS_HTTP_MARKER = '_agent_ctx = with_session_id(';\nconst LANGCHAIN_HTTP_MARKER = '_graph = get_agent()';\nconst STRANDS_AGUI_MARKER = 'create_strands_app';\nconst LANGCHAIN_AGUI_MARKER = '_graph = get_agent()';\n\n// Shared by strands/http and langchain/http - only the lifespan body differs.\nconst HTTP_INIT_APP_OLD = `app = FastAPI(\n title=\"$name\",\n responses={500: {\"model\": InternalServerErrorDetails}},\n generate_unique_id_function=lambda route: route.name,\n)`;\n\n// --- Strands HTTP -----------------------------------------------------------\n\nconst STRANDS_HTTP_MAIN_CTX_OLD = `_agent_ctx = with_session_id(\n get_agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via HTTP streaming.\",\n)`;\n\nconst STRANDS_HTTP_INIT_APP_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n with with_session_id(\n get_agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via HTTP streaming.\",\n ) as agent:\n app.state.agent = agent\n yield\n\n\napp = FastAPI(\n title=\"$name\",\n responses={500: {\"model\": InternalServerErrorDetails}},\n generate_unique_id_function=lambda route: route.name,\n lifespan=lifespan,\n)`;\n\nconst migrateStrandsHttpAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const initPath = joinPathFragments(dir, 'init.py');\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(initPath) || !tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(STRANDS_HTTP_MARKER)) return;\n\n const mod = await captureGritQLVariable(\n tree,\n mainPath,\n AGENT_CONNECTION_MODULE_PATTERN('session_id_context, with_session_id'),\n 'mod',\n );\n\n const ready =\n !!mod &&\n (await allMatch(tree, [\n [mainPath, pyMatch(STRANDS_HTTP_MAIN_CTX_OLD)],\n [mainPath, pyMatch('_agent = _agent_ctx.__enter__()')],\n [mainPath, pyMatch('from .agent import get_agent')],\n [mainPath, pyMatch('_agent.stream_async($prompt)')],\n [initPath, pyMatch(HTTP_INIT_APP_OLD)],\n ]));\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually move agent construction into an \\`init.py\\` \\`lifespan\\` handler storing the agent on \\`app.state.agent\\` (see the py#agent generator's strands/http template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n initPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n await addPythonDestructuredImport(tree, initPath, ['get_agent'], '.agent');\n await addPythonDestructuredImport(tree, initPath, ['with_session_id'], mod);\n await applyGritQL(\n tree,\n initPath,\n pyRewrite(HTTP_INIT_APP_OLD, STRANDS_HTTP_INIT_APP_NEW),\n );\n\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n 'from $mod import session_id_context, with_session_id',\n 'from $mod import session_id_context',\n ),\n );\n await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));\n await applyGritQL(tree, mainPath, pyDelete(STRANDS_HTTP_MAIN_CTX_OLD));\n await applyGritQL(\n tree,\n mainPath,\n pyDelete('_agent = _agent_ctx.__enter__()'),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n '_agent.stream_async($prompt)',\n 'app.state.agent.stream_async($prompt)',\n ),\n );\n};\n\n// --- LangChain HTTP ----------------------------------------------------------\n\nconst LANGCHAIN_HTTP_INIT_APP_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n app.state.graph = get_agent()\n yield\n\n\napp = FastAPI(\n title=\"$name\",\n responses={500: {\"model\": InternalServerErrorDetails}},\n generate_unique_id_function=lambda route: route.name,\n lifespan=lifespan,\n)`;\n\nconst migrateLangchainHttpAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const initPath = joinPathFragments(dir, 'init.py');\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(initPath) || !tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(LANGCHAIN_HTTP_MARKER)) return;\n\n const ready = await allMatch(tree, [\n [mainPath, pyMatch('_graph = get_agent()')],\n [mainPath, pyMatch('from .agent import get_agent')],\n [mainPath, pyMatch('_graph.astream($args)')],\n [initPath, pyMatch(HTTP_INIT_APP_OLD)],\n ]);\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched, along with ${initPath}. Manually wrap \\`get_agent()\\` in an \\`init.py\\` \\`lifespan\\` handler storing the graph on \\`app.state.graph\\` (see the py#agent generator's langchain/http template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n initPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n await addPythonDestructuredImport(tree, initPath, ['get_agent'], '.agent');\n await applyGritQL(\n tree,\n initPath,\n pyRewrite(HTTP_INIT_APP_OLD, LANGCHAIN_HTTP_INIT_APP_NEW),\n );\n\n await applyGritQL(tree, mainPath, pyDelete('from .agent import get_agent'));\n await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite('_graph.astream($args)', 'app.state.graph.astream($args)'),\n );\n};\n\n// --- LangChain AG-UI ---------------------------------------------------------\n\nconst LANGCHAIN_AGUI_AGENT_OLD = `agui_agent = LangGraphAgent(\n name=\"$name\",\n graph=_graph,\n description=\"A LangChain/LangGraph Agent exposed via the AG-UI protocol.\",\n)`;\n\nconst LANGCHAIN_AGUI_AGENT_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n graph = get_agent()\n app.state.agui_agent = LangGraphAgent(\n name=\"$name\",\n graph=graph,\n description=\"A LangChain/LangGraph Agent exposed via the AG-UI protocol.\",\n )\n yield`;\n\nconst migrateLangchainAgUiAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(LANGCHAIN_AGUI_MARKER)) return;\n\n const ready = await allMatch(tree, [\n [mainPath, pyMatch('_graph = get_agent()')],\n [mainPath, pyMatch(LANGCHAIN_AGUI_AGENT_OLD)],\n [mainPath, pyMatch('agui_agent.run($input)')],\n [mainPath, pyMatch('app = FastAPI(title=\"$name\")')],\n ]);\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched. Manually wrap graph + \\`LangGraphAgent\\` construction in a \\`lifespan\\` handler storing the wrapper on \\`app.state.agui_agent\\` (see the py#agent generator's langchain/ag-ui template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n\n await applyGritQL(tree, mainPath, pyDelete('_graph = get_agent()'));\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(LANGCHAIN_AGUI_AGENT_OLD, LANGCHAIN_AGUI_AGENT_NEW),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n 'agui_agent.run($input)',\n 'request.app.state.agui_agent.run($input)',\n ),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n 'app = FastAPI(title=\"$name\")',\n 'app = FastAPI(title=\"$name\", lifespan=lifespan)',\n ),\n );\n};\n\n// --- Strands AG-UI -----------------------------------------------------------\n// The biggest of the four: `ag_ui_strands.create_strands_app` is dropped\n// entirely for an inlined FastAPI app (matching upstream `ag_ui_strands`,\n// plus a Content-Type-independent body-parsing fix and an explicit session\n// re-bind `create_strands_app` was missing), so most of the file is new.\n\nconst STRANDS_AGUI_IMPORT_OLD =\n 'from ag_ui_strands import StrandsAgent, create_strands_app';\n\nconst STRANDS_AGUI_AGENT_OLD = `agui_agent = StrandsAgent(\n agent=_agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via the AG-UI protocol.\",\n)`;\n\nconst STRANDS_AGUI_AGENT_NEW = `@asynccontextmanager\nasync def lifespan(app: FastAPI):\n with get_agent() as agent:\n app.state.agui_agent = StrandsAgent(\n agent=agent,\n name=\"$name\",\n description=\"A Strands Agent exposed via the AG-UI protocol.\",\n )\n yield`;\n\nconst STRANDS_AGUI_APP_OLD =\n 'app = create_strands_app(agui_agent, path=\"/invocations\")';\n\n// `$name` isn't bound within this match (unlike STRANDS_AGUI_AGENT_OLD above),\n// so the title is built from a name captured separately rather than reused as\n// a metavariable - GritQL leaves a rewrite whose replacement references an\n// unbound metavariable unapplied.\nconst strandsAguiAppNew = (\n name: string,\n) => `app = FastAPI(title=\"AWS Strands - ${name}\", lifespan=lifespan)\napp.add_middleware(\n CORSMiddleware,\n allow_origins=[\"*\"],\n allow_credentials=True,\n allow_methods=[\"*\"],\n allow_headers=[\"*\"],\n)`;\n\nconst STRANDS_AGUI_MIDDLEWARE_OLD = 'app.add_middleware(_SessionIdMiddleware)';\n\nconst STRANDS_AGUI_ROUTES_NEW = `app.add_middleware(_SessionIdMiddleware)\n\n\n@app.post(\"/invocations\")\nasync def invocations(request: Request):\n # Validate the body manually since AgentCore may omit Content-Type.\n encoder = EventEncoder(accept=request.headers.get(\"accept\") or \"\")\n raw = await request.body()\n try:\n input_data = RunAgentInput.model_validate_json(raw)\n except Exception as exc:\n message = f\"Invalid RunAgentInput: {str(exc)[:200]}\"\n\n async def _bad():\n yield encoder.encode(RunErrorEvent(type=EventType.RUN_ERROR, message=message, code=\"BAD_REQUEST\"))\n\n return StreamingResponse(_bad(), media_type=encoder.get_content_type())\n\n session_id = request.headers.get(SESSION_ID_HEADER) or get_current_session_id()\n\n async def event_generator():\n # Re-bind the session: the streaming body runs outside the middleware.\n with session_id_context(session_id or str(uuid.uuid4())):\n async for event in request.app.state.agui_agent.run(input_data):\n try:\n yield encoder.encode(event)\n except Exception as e:\n error_event = RunErrorEvent(\n type=EventType.RUN_ERROR,\n message=f\"Encoding error: {e}\",\n code=\"ENCODING_ERROR\",\n )\n yield encoder.encode(error_event)\n break\n\n return StreamingResponse(event_generator(), media_type=encoder.get_content_type())\n\n\n@app.get(\"/ping\")\nasync def ping():\n return {\"status\": \"healthy\"}`;\n\nconst STRANDS_AGUI_COMMENTS_OLD = [\n '# Create AG-UI agent wrapper',\n '# Create FastAPI app with AG-UI endpoint and health check',\n];\n\nconst migrateStrandsAgUiAgent = async (\n tree: Tree,\n dir: string,\n nextSteps: string[],\n): Promise<void> => {\n const mainPath = joinPathFragments(dir, 'main.py');\n if (!tree.exists(mainPath)) return;\n\n const mainContents = tree.read(mainPath, 'utf-8') ?? '';\n if (!mainContents.includes(STRANDS_AGUI_MARKER)) return;\n\n const mod = await captureGritQLVariable(\n tree,\n mainPath,\n AGENT_CONNECTION_MODULE_PATTERN('session_id_context'),\n 'mod',\n );\n const agentClassName = await captureGritQLVariable(\n tree,\n mainPath,\n pyMatch(STRANDS_AGUI_AGENT_OLD),\n 'name',\n );\n\n const ready =\n !!mod &&\n !!agentClassName &&\n (await allMatch(tree, [\n [mainPath, pyMatch(STRANDS_AGUI_IMPORT_OLD)],\n [mainPath, pyMatch('_agent_ctx = get_agent()')],\n [mainPath, pyMatch('_agent = _agent_ctx.__enter__()')],\n [mainPath, pyMatch(STRANDS_AGUI_AGENT_OLD)],\n [mainPath, pyMatch(STRANDS_AGUI_APP_OLD)],\n [mainPath, pyMatch(STRANDS_AGUI_MIDDLEWARE_OLD)],\n ]));\n\n if (!ready) {\n nextSteps.push(\n `${mainPath}: diverged from the generated shape - left untouched. Manually rebuild this file without \\`create_strands_app\\`: a \\`lifespan\\` handler storing the wrapper on \\`app.state.agui_agent\\`, and inlined \\`/invocations\\`/\\`/ping\\` routes with Content-Type-independent body parsing (see the py#agent generator's strands/ag-ui template).`,\n );\n return;\n }\n\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['asynccontextmanager'],\n 'contextlib',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['EventType', 'RunAgentInput', 'RunErrorEvent'],\n 'ag_ui.core',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['EventEncoder'],\n 'ag_ui.encoder',\n );\n await addPythonDestructuredImport(tree, mainPath, ['FastAPI'], 'fastapi');\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['CORSMiddleware'],\n 'fastapi.middleware.cors',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['StreamingResponse'],\n 'fastapi.responses',\n );\n await addPythonDestructuredImport(\n tree,\n mainPath,\n ['get_current_session_id'],\n mod,\n );\n\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(\n STRANDS_AGUI_IMPORT_OLD,\n 'from ag_ui_strands import StrandsAgent',\n ),\n );\n await applyGritQL(tree, mainPath, pyDelete('_agent_ctx = get_agent()'));\n await applyGritQL(\n tree,\n mainPath,\n pyDelete('_agent = _agent_ctx.__enter__()'),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(STRANDS_AGUI_AGENT_OLD, STRANDS_AGUI_AGENT_NEW),\n );\n for (const comment of STRANDS_AGUI_COMMENTS_OLD) {\n await applyGritQL(tree, mainPath, pyDelete(comment));\n }\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(STRANDS_AGUI_APP_OLD, strandsAguiAppNew(agentClassName)),\n );\n await applyGritQL(\n tree,\n mainPath,\n pyRewrite(STRANDS_AGUI_MIDDLEWARE_OLD, STRANDS_AGUI_ROUTES_NEW),\n );\n};\n\n/** This agent's ComponentMetadata entries. */\nconst findAgentComponents = (\n components: ComponentMetadata[] | undefined,\n): ComponentMetadata[] =>\n (components ?? []).filter(\n (component) => component.generator === PY_AGENT_GENERATOR_INFO.id,\n );\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n for (const project of getProjects(tree).values()) {\n const components = findAgentComponents(\n (project.metadata as { components?: ComponentMetadata[] })?.components,\n );\n\n for (const component of components) {\n if (!component.path) continue;\n const dir = joinPathFragments(project.root, component.path);\n const framework = component.framework ?? 'strands';\n\n if (component.protocol === 'http') {\n if (framework === 'langchain') {\n await migrateLangchainHttpAgent(tree, dir, nextSteps);\n } else {\n await migrateStrandsHttpAgent(tree, dir, nextSteps);\n }\n } else if (component.protocol === 'ag-ui') {\n if (framework === 'langchain') {\n await migrateLangchainAgUiAgent(tree, dir, nextSteps);\n } else {\n await migrateStrandsAgUiAgent(tree, dir, nextSteps);\n }\n }\n }\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["getProjects","joinPathFragments","PY_AGENT_GENERATOR_INFO","addPythonDestructuredImport","applyGritQL","captureGritQLVariable","matchGritQL","formatFilesInSubtree","pyMatch","snippet","pyDelete","pyRewrite","from","to","where","replacement","includes","allMatch","tree","checks","filePath","pattern","AGENT_CONNECTION_MODULE_PATTERN","names","STRANDS_HTTP_MARKER","LANGCHAIN_HTTP_MARKER","STRANDS_AGUI_MARKER","LANGCHAIN_AGUI_MARKER","HTTP_INIT_APP_OLD","STRANDS_HTTP_MAIN_CTX_OLD","STRANDS_HTTP_INIT_APP_NEW","migrateStrandsHttpAgent","dir","nextSteps","initPath","mainPath","exists","mainContents","read","mod","ready","push","LANGCHAIN_HTTP_INIT_APP_NEW","migrateLangchainHttpAgent","LANGCHAIN_AGUI_AGENT_OLD","LANGCHAIN_AGUI_AGENT_NEW","migrateLangchainAgUiAgent","STRANDS_AGUI_IMPORT_OLD","STRANDS_AGUI_AGENT_OLD","STRANDS_AGUI_AGENT_NEW","STRANDS_AGUI_APP_OLD","strandsAguiAppNew","name","STRANDS_AGUI_MIDDLEWARE_OLD","STRANDS_AGUI_ROUTES_NEW","STRANDS_AGUI_COMMENTS_OLD","migrateStrandsAgUiAgent","agentClassName","comment","findAgentComponents","components","filter","component","generator","id","migration","project","values","metadata","path","root","framework","protocol"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Clone the react website 'load:runtime-config' target to a 'load-runtime-config' target so it can be run with the verb syntax (nx load-runtime-config <project>)"
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,33 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { getProjects, updateProjectConfiguration } from "@nx/devkit";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ /**
7
+ * React website projects gained a `load-runtime-config` target so the config
8
+ * can be loaded with the verb syntax (`nx load-runtime-config <project>`),
9
+ * replacing the colon-separated `load:runtime-config` that had to be quoted on
10
+ * the CLI. This clones the existing target under the new name in workspaces
11
+ * generated before the rename, leaving the original in place so any scripts
12
+ * still referencing it keep working.
13
+ */ const OLD_TARGET = 'load:runtime-config';
14
+ const NEW_TARGET = 'load-runtime-config';
15
+ export default async function migration(tree) {
16
+ for (const [projectName, project] of getProjects(tree)){
17
+ const targets = project.targets;
18
+ if (!targets?.[OLD_TARGET] || targets[NEW_TARGET]) {
19
+ continue;
20
+ }
21
+ const cloned = structuredClone(targets[OLD_TARGET]);
22
+ // Point the description at the verb syntax for the new target.
23
+ if (cloned.metadata?.description) {
24
+ cloned.metadata.description = cloned.metadata.description.replace(new RegExp(`nx run (\\S+):${OLD_TARGET}`, 'g'), `nx ${NEW_TARGET} $1`);
25
+ }
26
+ targets[NEW_TARGET] = cloned;
27
+ updateProjectConfiguration(tree, projectName, project);
28
+ }
29
+ await formatFilesInSubtree(tree);
30
+ return {};
31
+ }
32
+
33
+ //# sourceMappingURL=migration.js.map