@aws/nx-plugin 1.0.0-rc.5 → 1.0.0-rc.51

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 (1205) hide show
  1. package/LICENSE-THIRD-PARTY +5300 -5843
  2. package/README.md +7 -7
  3. package/generators.json +127 -8
  4. package/migrations.json +21 -0
  5. package/package.json +39 -20
  6. package/src/agentcore-gateway/attach-upstream.d.ts +33 -0
  7. package/src/agentcore-gateway/attach-upstream.js +38 -0
  8. package/src/agentcore-gateway/attach-upstream.js.map +1 -0
  9. package/src/agentcore-gateway/files/cedar/policies/README.md +61 -0
  10. package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +26 -0
  11. package/src/agentcore-gateway/files/project/local-dev.ts.template +134 -0
  12. package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
  13. package/src/agentcore-gateway/gateway-connection/generator.js +101 -0
  14. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
  15. package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
  16. package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
  17. package/src/agentcore-gateway/gateway-connection/schema.d.ts +13 -0
  18. package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
  19. package/src/agentcore-gateway/generator.d.ts +25 -0
  20. package/src/agentcore-gateway/generator.js +166 -0
  21. package/src/agentcore-gateway/generator.js.map +1 -0
  22. package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
  23. package/src/agentcore-gateway/mcp-connection/generator.js +59 -0
  24. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
  25. package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
  26. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
  27. package/src/agentcore-gateway/mcp-connection/schema.d.ts +13 -0
  28. package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
  29. package/src/agentcore-gateway/schema.d.js +6 -0
  30. package/src/agentcore-gateway/schema.d.js.map +1 -0
  31. package/src/agentcore-gateway/schema.d.ts +17 -0
  32. package/src/agentcore-gateway/schema.json +71 -0
  33. package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +7 -7
  34. package/src/connection/agent-local-dev.js +42 -0
  35. package/src/connection/agent-local-dev.js.map +1 -0
  36. package/src/connection/agent-runtime-config.d.ts +1 -1
  37. package/src/connection/agent-runtime-config.js +9 -14
  38. package/src/connection/agent-runtime-config.js.map +1 -1
  39. package/src/connection/generator.d.ts +7 -14
  40. package/src/connection/generator.js +167 -194
  41. package/src/connection/generator.js.map +1 -1
  42. package/src/connection/local-dev.d.ts +15 -0
  43. package/src/connection/local-dev.js +37 -0
  44. package/src/connection/local-dev.js.map +1 -0
  45. package/src/connection/schema.d.js +6 -0
  46. package/src/connection/schema.d.js.map +1 -0
  47. package/src/connection/schema.d.ts +1 -0
  48. package/src/connection/schema.json +5 -0
  49. package/src/connection/supported-connections.d.ts +107 -0
  50. package/src/connection/supported-connections.js +151 -0
  51. package/src/connection/supported-connections.js.map +1 -0
  52. package/src/index.js +2 -5
  53. package/src/index.js.map +1 -1
  54. package/src/infra/app/__snapshots__/generator.spec.ts.snap +106 -100
  55. package/src/infra/app/files/app/src/main.ts.template +1 -1
  56. package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
  57. package/src/infra/app/generator.d.ts +3 -3
  58. package/src/infra/app/generator.js +146 -123
  59. package/src/infra/app/generator.js.map +1 -1
  60. package/src/infra/app/schema.d.js +6 -0
  61. package/src/infra/app/schema.d.js.map +1 -0
  62. package/src/infra/app/schema.d.ts +1 -1
  63. package/src/infra/app/schema.json +5 -0
  64. package/src/init/generator.d.ts +18 -0
  65. package/src/init/generator.js +35 -0
  66. package/src/init/generator.js.map +1 -0
  67. package/src/init/schema.d.js +6 -0
  68. package/src/init/schema.d.js.map +1 -0
  69. package/src/init/schema.d.ts +16 -0
  70. package/src/init/schema.json +35 -0
  71. package/src/internal/test-matrix/generator.d.ts +29 -0
  72. package/src/internal/test-matrix/generator.js +660 -0
  73. package/src/internal/test-matrix/generator.js.map +1 -0
  74. package/src/internal/test-matrix/schema.d.js +6 -0
  75. package/src/internal/test-matrix/schema.d.js.map +1 -0
  76. package/src/internal/test-matrix/schema.d.ts +12 -0
  77. package/src/internal/test-matrix/schema.json +21 -0
  78. package/src/license/config-types.d.ts +2 -2
  79. package/src/license/config-types.js +8 -2
  80. package/src/license/config-types.js.map +1 -1
  81. package/src/license/config.d.ts +4 -4
  82. package/src/license/config.js +267 -242
  83. package/src/license/config.js.map +1 -1
  84. package/src/license/dependency-check/check.d.ts +6 -2
  85. package/src/license/dependency-check/check.js +51 -46
  86. package/src/license/dependency-check/check.js.map +1 -1
  87. package/src/license/dependency-check/collectors/collector.js +41 -71
  88. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  89. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  90. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  91. package/src/license/dependency-check/collectors/python-collector.d.ts +4 -0
  92. package/src/license/dependency-check/collectors/python-collector.js +55 -62
  93. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  94. package/src/license/dependency-check/evaluator.d.ts +1 -1
  95. package/src/license/dependency-check/evaluator.js +40 -68
  96. package/src/license/dependency-check/evaluator.js.map +1 -1
  97. package/src/license/dependency-check/executor.d.ts +1 -1
  98. package/src/license/dependency-check/executor.js +30 -22
  99. package/src/license/dependency-check/executor.js.map +1 -1
  100. package/src/license/dependency-check/pre-approved.js +949 -336
  101. package/src/license/dependency-check/pre-approved.js.map +1 -1
  102. package/src/license/dependency-check/types.js +2 -3
  103. package/src/license/dependency-check/types.js.map +1 -1
  104. package/src/license/generator.d.ts +3 -3
  105. package/src/license/generator.js +65 -68
  106. package/src/license/generator.js.map +1 -1
  107. package/src/license/index.d.ts +2 -2
  108. package/src/license/index.js +3 -9
  109. package/src/license/index.js.map +1 -1
  110. package/src/license/known-exceptions.d.ts +2 -2
  111. package/src/license/known-exceptions.js +19 -13
  112. package/src/license/known-exceptions.js.map +1 -1
  113. package/src/license/schema.d.js +6 -0
  114. package/src/license/schema.d.js.map +1 -0
  115. package/src/license/schema.d.ts +2 -0
  116. package/src/license/schema.json +5 -0
  117. package/src/license/sync/generator.d.ts +2 -2
  118. package/src/license/sync/generator.js +94 -119
  119. package/src/license/sync/generator.js.map +1 -1
  120. package/src/license/sync/project-file-sync.d.ts +2 -2
  121. package/src/license/sync/project-file-sync.js +28 -35
  122. package/src/license/sync/project-file-sync.js.map +1 -1
  123. package/src/mcp-server/dev-server.d.ts +1 -0
  124. package/src/mcp-server/dev-server.js +18 -0
  125. package/src/mcp-server/dev-server.js.map +1 -0
  126. package/src/mcp-server/generator-info.d.ts +5 -1
  127. package/src/mcp-server/generator-info.js +149 -165
  128. package/src/mcp-server/generator-info.js.map +1 -1
  129. package/src/mcp-server/guide-pipeline.d.ts +1 -1
  130. package/src/mcp-server/guide-pipeline.js +199 -206
  131. package/src/mcp-server/guide-pipeline.js.map +1 -1
  132. package/src/mcp-server/guide-render.js +10 -25
  133. package/src/mcp-server/guide-render.js.map +1 -1
  134. package/src/mcp-server/index.js +6 -10
  135. package/src/mcp-server/index.js.map +1 -1
  136. package/src/mcp-server/mdx-ast.js +42 -56
  137. package/src/mcp-server/mdx-ast.js.map +1 -1
  138. package/src/mcp-server/option-filter.js +33 -47
  139. package/src/mcp-server/option-filter.js.map +1 -1
  140. package/src/mcp-server/schema-registry.d.ts +9 -3
  141. package/src/mcp-server/schema-registry.js +41 -38
  142. package/src/mcp-server/schema-registry.js.map +1 -1
  143. package/src/mcp-server/schema.d.ts +1 -1
  144. package/src/mcp-server/schema.js +9 -7
  145. package/src/mcp-server/schema.js.map +1 -1
  146. package/src/mcp-server/server.js +24 -24
  147. package/src/mcp-server/server.js.map +1 -1
  148. package/src/mcp-server/tools/add-to-existing-project.d.ts +12 -0
  149. package/src/mcp-server/tools/add-to-existing-project.js +36 -0
  150. package/src/mcp-server/tools/add-to-existing-project.js.map +1 -0
  151. package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
  152. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  153. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  154. package/src/mcp-server/tools/general-guidance.d.ts +3 -3
  155. package/src/mcp-server/tools/general-guidance.js +53 -31
  156. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  157. package/src/mcp-server/tools/generator-guide.d.ts +2 -2
  158. package/src/mcp-server/tools/generator-guide.js +29 -37
  159. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  160. package/src/mcp-server/tools/list-generators.d.ts +2 -2
  161. package/src/mcp-server/tools/list-generators.js +19 -25
  162. package/src/mcp-server/tools/list-generators.js.map +1 -1
  163. package/src/mcp-server/tools/upgrade-workspace.d.ts +11 -0
  164. package/src/mcp-server/tools/upgrade-workspace.js +32 -0
  165. package/src/mcp-server/tools/upgrade-workspace.js.map +1 -0
  166. package/src/migrations/latest/modernize-function-props-cast/migration.d.ts +6 -0
  167. package/src/migrations/latest/modernize-function-props-cast/migration.js +66 -0
  168. package/src/migrations/latest/modernize-function-props-cast/migration.js.map +1 -0
  169. package/src/migrations/latest/restrict-cors-to-custom-domains/migration.d.ts +6 -0
  170. package/src/migrations/latest/restrict-cors-to-custom-domains/migration.js +110 -0
  171. package/src/migrations/latest/restrict-cors-to-custom-domains/migration.js.map +1 -0
  172. package/src/migrations/latest/terraform-bootstrap-adopt-existing-bucket/migration.d.ts +6 -0
  173. package/src/migrations/latest/terraform-bootstrap-adopt-existing-bucket/migration.js +129 -0
  174. package/src/migrations/latest/terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -0
  175. package/src/open-api/ts-client/__snapshots__/generator.additional-properties.spec.ts.snap +147 -33
  176. package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
  177. package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +298 -74
  178. package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +748 -103
  179. package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +230 -37
  180. package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +249 -52
  181. package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5535 -0
  182. package/src/open-api/ts-client/__snapshots__/generator.fast-api-gaps.spec.ts.snap +736 -0
  183. package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +305 -71
  184. package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +298 -0
  185. package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +353 -82
  186. package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +176 -55
  187. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +101 -25
  188. package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
  189. package/src/open-api/ts-client/__snapshots__/generator.spec-compliance.spec.ts.snap +1883 -0
  190. package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
  191. package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +200 -48
  192. package/src/open-api/ts-client/files/client.gen.ts.template +358 -24
  193. package/src/open-api/ts-client/files/types.gen.ts.template +6 -4
  194. package/src/open-api/ts-client/generator.d.ts +3 -3
  195. package/src/open-api/ts-client/generator.js +41 -26
  196. package/src/open-api/ts-client/generator.js.map +1 -1
  197. package/src/open-api/ts-client/schema.d.js +6 -0
  198. package/src/open-api/ts-client/schema.d.js.map +1 -0
  199. package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +7 -2
  200. package/src/open-api/ts-hooks/generator.d.ts +3 -3
  201. package/src/open-api/ts-hooks/generator.js +17 -21
  202. package/src/open-api/ts-hooks/generator.js.map +1 -1
  203. package/src/open-api/ts-hooks/generator.spec.tsx +84 -14
  204. package/src/open-api/ts-hooks/schema.d.js +6 -0
  205. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  206. package/src/open-api/ts-metadata/generator.d.ts +3 -3
  207. package/src/open-api/ts-metadata/generator.js +12 -20
  208. package/src/open-api/ts-metadata/generator.js.map +1 -1
  209. package/src/open-api/ts-metadata/schema.d.js +6 -0
  210. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  211. package/src/open-api/utils/codegen-data/languages.d.ts +3 -5
  212. package/src/open-api/utils/codegen-data/languages.js +59 -66
  213. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  214. package/src/open-api/utils/codegen-data/types.d.ts +255 -10
  215. package/src/open-api/utils/codegen-data/types.js +54 -30
  216. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  217. package/src/open-api/utils/codegen-data.d.ts +8 -4
  218. package/src/open-api/utils/codegen-data.js +494 -674
  219. package/src/open-api/utils/codegen-data.js.map +1 -1
  220. package/src/open-api/utils/normalise.d.ts +5 -1
  221. package/src/open-api/utils/normalise.js +437 -246
  222. package/src/open-api/utils/normalise.js.map +1 -1
  223. package/src/open-api/utils/parse.d.ts +2 -2
  224. package/src/open-api/utils/parse.js +11 -13
  225. package/src/open-api/utils/parse.js.map +1 -1
  226. package/src/open-api/utils/parser.d.ts +55 -0
  227. package/src/open-api/utils/parser.js +787 -0
  228. package/src/open-api/utils/parser.js.map +1 -0
  229. package/src/open-api/utils/refs.d.ts +1 -1
  230. package/src/open-api/utils/refs.js +12 -22
  231. package/src/open-api/utils/refs.js.map +1 -1
  232. package/src/open-api/utils/types.d.ts +18 -0
  233. package/src/open-api/utils/types.js +5 -2
  234. package/src/open-api/utils/types.js.map +1 -1
  235. package/src/preset/__snapshots__/generator.spec.ts.snap +149 -28
  236. package/src/preset/generator.d.ts +4 -4
  237. package/src/preset/generator.js +66 -147
  238. package/src/preset/generator.js.map +1 -1
  239. package/src/preset/schema.d.js +6 -0
  240. package/src/preset/schema.d.js.map +1 -0
  241. package/src/preset/schema.d.ts +6 -2
  242. package/src/preset/schema.json +16 -5
  243. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +321 -0
  244. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +734 -0
  245. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +182 -314
  246. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +189 -0
  247. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +30 -0
  248. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +28 -0
  249. package/src/py/agent/a2a-connection/generator.d.ts +3 -3
  250. package/src/py/agent/a2a-connection/generator.js +113 -85
  251. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  252. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  253. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  254. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  255. package/src/py/agent/a2a-connection/schema.json +5 -0
  256. package/src/py/agent/files/a2a-langchain/main.py.template +89 -0
  257. package/src/py/agent/files/ag-ui-langchain/main.py.template +83 -0
  258. package/src/py/agent/files/common/agent.py.template +2 -0
  259. package/src/py/agent/files/common-langchain/agent.py.template +30 -0
  260. package/src/py/agent/files/deploy/Dockerfile.template +1 -1
  261. package/src/py/agent/files/http/init.py.template +7 -25
  262. package/src/py/agent/files/http/main.py.template +3 -4
  263. package/src/py/agent/files/http-langchain/main.py.template +84 -0
  264. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
  265. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  266. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  267. package/src/py/agent/gateway-connection/generator.d.ts +10 -0
  268. package/src/py/agent/gateway-connection/generator.js +119 -0
  269. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  270. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  271. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  272. package/src/py/agent/gateway-connection/schema.d.ts +13 -0
  273. package/src/py/agent/gateway-connection/schema.json +31 -0
  274. package/src/py/agent/generator.d.ts +3 -3
  275. package/src/py/agent/generator.js +290 -183
  276. package/src/py/agent/generator.js.map +1 -1
  277. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +153 -89
  278. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +30 -0
  279. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +30 -0
  280. package/src/py/agent/mcp-connection/generator.d.ts +3 -3
  281. package/src/py/agent/mcp-connection/generator.js +65 -126
  282. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  283. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  284. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  285. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  286. package/src/py/agent/mcp-connection/schema.json +5 -0
  287. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +11 -19
  288. package/src/py/agent/react-connection/generator.d.ts +4 -4
  289. package/src/py/agent/react-connection/generator.js +55 -59
  290. package/src/py/agent/react-connection/generator.js.map +1 -1
  291. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +6 -6
  292. package/src/py/agent/react-connection/local-dev.js +36 -0
  293. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  294. package/src/py/agent/react-connection/schema.d.js +8 -0
  295. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  296. package/src/py/agent/react-connection/schema.d.ts +1 -0
  297. package/src/py/agent/react-connection/schema.json +5 -0
  298. package/src/py/agent/schema.d.js +6 -0
  299. package/src/py/agent/schema.d.js.map +1 -0
  300. package/src/py/agent/schema.d.ts +2 -1
  301. package/src/py/agent/schema.json +6 -1
  302. package/src/py/api/generator.d.ts +3 -3
  303. package/src/py/api/generator.js +12 -11
  304. package/src/py/api/generator.js.map +1 -1
  305. package/src/py/api/schema.d.js +6 -0
  306. package/src/py/api/schema.d.js.map +1 -0
  307. package/src/py/api/schema.d.ts +1 -0
  308. package/src/py/api/schema.json +5 -0
  309. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1522 -0
  310. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
  311. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  312. package/src/py/dynamodb/agent-connection/generator.js +39 -0
  313. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  314. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  315. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  316. package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
  317. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  318. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +23 -0
  319. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  320. package/src/py/dynamodb/fast-api-connection/generator.js +37 -0
  321. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  322. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  323. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  324. package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
  325. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  326. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  327. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  328. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  329. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  330. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  331. package/src/py/dynamodb/files/config.json.template +24 -0
  332. package/src/py/dynamodb/generator.d.ts +10 -0
  333. package/src/py/dynamodb/generator.js +110 -0
  334. package/src/py/dynamodb/generator.js.map +1 -0
  335. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
  336. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  337. package/src/py/dynamodb/mcp-server-connection/generator.js +39 -0
  338. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  339. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  340. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  341. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  342. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  343. package/src/py/dynamodb/schema.d.js +6 -0
  344. package/src/py/dynamodb/schema.d.js.map +1 -0
  345. package/src/py/dynamodb/schema.d.ts +16 -0
  346. package/src/py/dynamodb/schema.json +75 -0
  347. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +238 -4694
  348. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +5409 -0
  349. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  350. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  351. package/src/py/fast-api/generator.d.ts +3 -3
  352. package/src/py/fast-api/generator.js +90 -87
  353. package/src/py/fast-api/generator.js.map +1 -1
  354. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
  355. package/src/py/fast-api/react/generator.d.ts +4 -4
  356. package/src/py/fast-api/react/generator.js +25 -25
  357. package/src/py/fast-api/react/generator.js.map +1 -1
  358. package/src/py/fast-api/react/open-api.d.ts +1 -1
  359. package/src/py/fast-api/react/open-api.js +31 -29
  360. package/src/py/fast-api/react/open-api.js.map +1 -1
  361. package/src/py/fast-api/react/schema.d.js +6 -0
  362. package/src/py/fast-api/react/schema.d.js.map +1 -0
  363. package/src/py/fast-api/react/schema.d.ts +1 -0
  364. package/src/py/fast-api/react/schema.json +5 -0
  365. package/src/py/fast-api/schema.d.js +6 -0
  366. package/src/py/fast-api/schema.d.js.map +1 -0
  367. package/src/py/fast-api/schema.d.ts +1 -0
  368. package/src/py/fast-api/schema.json +5 -0
  369. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  370. package/src/py/lambda-function/generator.d.ts +3 -3
  371. package/src/py/lambda-function/generator.js +60 -59
  372. package/src/py/lambda-function/generator.js.map +1 -1
  373. package/src/py/lambda-function/schema.d.js +6 -0
  374. package/src/py/lambda-function/schema.d.js.map +1 -0
  375. package/src/py/lambda-function/schema.d.ts +1 -0
  376. package/src/py/lambda-function/schema.json +5 -0
  377. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +209 -19
  378. package/src/py/mcp-server/files/deploy/Dockerfile.template +1 -1
  379. package/src/py/mcp-server/generator.d.ts +3 -3
  380. package/src/py/mcp-server/generator.js +163 -127
  381. package/src/py/mcp-server/generator.js.map +1 -1
  382. package/src/py/mcp-server/schema.d.js +6 -0
  383. package/src/py/mcp-server/schema.d.js.map +1 -0
  384. package/src/py/mcp-server/schema.d.ts +1 -0
  385. package/src/py/mcp-server/schema.json +5 -0
  386. package/src/py/project/generator.d.ts +17 -4
  387. package/src/py/project/generator.js +229 -130
  388. package/src/py/project/generator.js.map +1 -1
  389. package/src/py/project/schema.d.js +6 -0
  390. package/src/py/project/schema.d.js.map +1 -0
  391. package/src/py/project/schema.d.ts +1 -0
  392. package/src/py/project/schema.json +5 -0
  393. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2070 -0
  394. package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +104 -0
  395. package/src/py/rdb/agent-connection/generator.d.ts +10 -0
  396. package/src/py/rdb/agent-connection/generator.js +46 -0
  397. package/src/py/rdb/agent-connection/generator.js.map +1 -0
  398. package/src/py/rdb/agent-connection/schema.d.js +8 -0
  399. package/src/py/rdb/agent-connection/schema.d.js.map +1 -0
  400. package/src/py/rdb/agent-connection/schema.d.ts +15 -0
  401. package/src/py/rdb/agent-connection/schema.json +27 -0
  402. package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +44 -0
  403. package/src/py/rdb/fast-api-connection/files/__apiModuleName__/dependencies/__rdbNameSnake__.py.template +14 -0
  404. package/src/py/rdb/fast-api-connection/generator.d.ts +10 -0
  405. package/src/py/rdb/fast-api-connection/generator.js +54 -0
  406. package/src/py/rdb/fast-api-connection/generator.js.map +1 -0
  407. package/src/py/rdb/fast-api-connection/schema.d.js +8 -0
  408. package/src/py/rdb/fast-api-connection/schema.d.js.map +1 -0
  409. package/src/py/rdb/fast-api-connection/schema.d.ts +13 -0
  410. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  411. package/src/py/rdb/files/Dockerfile.create-db-user.template +14 -0
  412. package/src/py/rdb/files/Dockerfile.migration.template +14 -0
  413. package/src/py/rdb/files/__name__/__init__.py.template +3 -0
  414. package/src/py/rdb/files/__name__/connection.py.template +55 -0
  415. package/src/py/rdb/files/__name__/create_db_user_handler.py.template +97 -0
  416. package/src/py/rdb/files/__name__/migration_handler.py.template +36 -0
  417. package/src/py/rdb/files/__name__/models/__init__.py.template +3 -0
  418. package/src/py/rdb/files/__name__/models/example.py.template +8 -0
  419. package/src/py/rdb/files/__name__/utils.py.template +104 -0
  420. package/src/py/rdb/files/alembic.ini.template +38 -0
  421. package/src/py/rdb/files/config.json.template +14 -0
  422. package/src/py/rdb/files/migrations/env.py.template +80 -0
  423. package/src/py/rdb/files/migrations/script.py.mako.template +28 -0
  424. package/src/py/rdb/generator.d.ts +6 -0
  425. package/src/py/rdb/generator.js +280 -0
  426. package/src/py/rdb/generator.js.map +1 -0
  427. package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +101 -0
  428. package/src/py/rdb/mcp-server-connection/generator.d.ts +10 -0
  429. package/src/py/rdb/mcp-server-connection/generator.js +46 -0
  430. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -0
  431. package/src/py/rdb/mcp-server-connection/schema.d.js +8 -0
  432. package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -0
  433. package/src/py/rdb/mcp-server-connection/schema.d.ts +15 -0
  434. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  435. package/src/py/rdb/schema.d.js +6 -0
  436. package/src/py/rdb/schema.d.js.map +1 -0
  437. package/src/py/rdb/schema.d.ts +16 -0
  438. package/src/py/rdb/schema.json +77 -0
  439. package/src/py/rdb/utils.d.ts +6 -0
  440. package/src/py/rdb/utils.js +16 -0
  441. package/src/py/rdb/utils.js.map +1 -0
  442. package/src/sdk/agentcore-gateway.d.ts +6 -0
  443. package/src/sdk/agentcore-gateway.js +7 -0
  444. package/src/sdk/agentcore-gateway.js.map +1 -0
  445. package/src/sdk/connection.d.ts +6 -0
  446. package/src/sdk/connection.js +6 -0
  447. package/src/sdk/connection.js.map +1 -0
  448. package/src/sdk/license.d.ts +8 -0
  449. package/src/sdk/license.js +7 -0
  450. package/src/sdk/license.js.map +1 -0
  451. package/src/sdk/open-api.d.ts +10 -0
  452. package/src/sdk/open-api.js +8 -0
  453. package/src/sdk/open-api.js.map +1 -0
  454. package/src/sdk/py.d.ts +18 -0
  455. package/src/sdk/py.js +12 -0
  456. package/src/sdk/py.js.map +1 -0
  457. package/src/sdk/terraform.d.ts +6 -0
  458. package/src/sdk/terraform.js +7 -0
  459. package/src/sdk/terraform.js.map +1 -0
  460. package/src/sdk/ts.d.ts +39 -0
  461. package/src/sdk/ts.js +41 -0
  462. package/src/sdk/ts.js.map +1 -0
  463. package/{sdk/utils/format.d.ts → src/sdk/utils/ast.d.ts} +1 -1
  464. package/src/sdk/utils/ast.js +6 -0
  465. package/src/sdk/utils/ast.js.map +1 -0
  466. package/{sdk/utils/ast.d.ts → src/sdk/utils/format.d.ts} +1 -2
  467. package/src/sdk/utils/format.js +6 -0
  468. package/src/sdk/utils/format.js.map +1 -0
  469. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  470. package/src/sdk/utils/test.js +6 -0
  471. package/src/sdk/utils/test.js.map +1 -0
  472. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +19 -24
  473. package/src/smithy/project/files/build.Dockerfile.template +1 -4
  474. package/src/smithy/project/files/src/operations/echo.smithy.template +1 -0
  475. package/src/smithy/project/generator.d.ts +3 -3
  476. package/src/smithy/project/generator.js +64 -57
  477. package/src/smithy/project/generator.js.map +1 -1
  478. package/src/smithy/project/schema.d.js +6 -0
  479. package/src/smithy/project/schema.d.js.map +1 -0
  480. package/src/smithy/project/schema.d.ts +1 -0
  481. package/src/smithy/project/schema.json +5 -0
  482. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  483. package/src/smithy/react-connection/generator.d.ts +3 -3
  484. package/src/smithy/react-connection/generator.js +39 -47
  485. package/src/smithy/react-connection/generator.js.map +1 -1
  486. package/src/smithy/react-connection/schema.d.js +6 -0
  487. package/src/smithy/react-connection/schema.d.js.map +1 -0
  488. package/src/smithy/react-connection/schema.d.ts +1 -0
  489. package/src/smithy/react-connection/schema.json +5 -0
  490. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +850 -136
  491. package/src/smithy/ts/api/files/handler.ts.template +2 -2
  492. package/src/smithy/ts/api/files/local-server.ts.template +2 -2
  493. package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
  494. package/src/smithy/ts/api/files/service.ts.template +3 -3
  495. package/src/smithy/ts/api/generator.d.ts +3 -3
  496. package/src/smithy/ts/api/generator.js +131 -105
  497. package/src/smithy/ts/api/generator.js.map +1 -1
  498. package/src/smithy/ts/api/schema.d.js +6 -0
  499. package/src/smithy/ts/api/schema.d.js.map +1 -0
  500. package/src/smithy/ts/api/schema.d.ts +1 -0
  501. package/src/smithy/ts/api/schema.json +5 -0
  502. package/src/terraform/project/files/application/scripts/bootstrap.ts.template +40 -1
  503. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  504. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  505. package/src/terraform/project/generator.d.ts +3 -3
  506. package/src/terraform/project/generator.js +159 -104
  507. package/src/terraform/project/generator.js.map +1 -1
  508. package/src/terraform/project/schema.d.js +9 -0
  509. package/src/terraform/project/schema.d.js.map +1 -0
  510. package/src/terraform/project/schema.d.ts +1 -0
  511. package/src/terraform/project/schema.json +5 -0
  512. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1180 -185
  513. package/src/trpc/backend/files/src/client/index.ts.template +1 -1
  514. package/src/trpc/backend/files/src/handler.ts.template +1 -1
  515. package/src/trpc/backend/files/src/index.ts.template +5 -5
  516. package/src/trpc/backend/files/src/init.ts.template +1 -1
  517. package/src/trpc/backend/files/src/local-server.ts.template +1 -1
  518. package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
  519. package/src/trpc/backend/files/src/procedures/echo.ts.template +3 -3
  520. package/src/trpc/backend/files/src/router.ts.template +2 -2
  521. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  522. package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
  523. package/src/trpc/backend/generator.d.ts +4 -4
  524. package/src/trpc/backend/generator.js +100 -84
  525. package/src/trpc/backend/generator.js.map +1 -1
  526. package/src/trpc/backend/schema.d.js +6 -0
  527. package/src/trpc/backend/schema.d.js.map +1 -0
  528. package/src/trpc/backend/schema.d.ts +3 -2
  529. package/src/trpc/backend/schema.json +5 -0
  530. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
  531. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  532. package/src/trpc/react/generator.d.ts +4 -4
  533. package/src/trpc/react/generator.js +64 -59
  534. package/src/trpc/react/generator.js.map +1 -1
  535. package/src/trpc/react/schema.d.js +6 -0
  536. package/src/trpc/react/schema.d.js.map +1 -0
  537. package/src/trpc/react/schema.d.ts +1 -0
  538. package/src/trpc/react/schema.json +5 -0
  539. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +792 -23
  540. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +257 -0
  541. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  542. package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
  543. package/src/ts/agent/a2a-connection/generator.js +65 -55
  544. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  545. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  546. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  547. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  548. package/src/ts/agent/a2a-connection/schema.json +5 -0
  549. package/src/ts/agent/files/a2a/index.ts.template +1 -1
  550. package/src/ts/agent/files/ag-ui/index.ts.template +26 -10
  551. package/src/ts/agent/files/common/agent.ts.template +7 -2
  552. package/src/ts/agent/files/deploy/Dockerfile.template +13 -2
  553. package/src/ts/agent/files/http/client.ts.template +2 -2
  554. package/src/ts/agent/files/http/index.ts.template +2 -2
  555. package/src/ts/agent/files/http/router.ts.template +5 -5
  556. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +221 -0
  557. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  558. package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
  559. package/src/ts/agent/gateway-connection/generator.js +117 -0
  560. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  561. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  562. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  563. package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
  564. package/src/ts/agent/gateway-connection/schema.json +31 -0
  565. package/src/ts/agent/generator.d.ts +3 -3
  566. package/src/ts/agent/generator.js +213 -145
  567. package/src/ts/agent/generator.js.map +1 -1
  568. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +193 -111
  569. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +22 -0
  570. package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
  571. package/src/ts/agent/mcp-connection/generator.js +56 -60
  572. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  573. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  574. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  575. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  576. package/src/ts/agent/mcp-connection/schema.json +5 -0
  577. package/src/ts/agent/react-connection/generator.d.ts +4 -4
  578. package/src/ts/agent/react-connection/generator.js +88 -91
  579. package/src/ts/agent/react-connection/generator.js.map +1 -1
  580. package/src/ts/agent/react-connection/local-dev.d.ts +13 -0
  581. package/src/ts/agent/react-connection/local-dev.js +17 -0
  582. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  583. package/src/ts/agent/react-connection/schema.d.js +8 -0
  584. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  585. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  586. package/src/ts/agent/react-connection/schema.json +5 -0
  587. package/src/ts/agent/schema.d.js +6 -0
  588. package/src/ts/agent/schema.d.js.map +1 -0
  589. package/src/ts/agent/schema.d.ts +1 -0
  590. package/src/ts/agent/schema.json +5 -0
  591. package/src/ts/api/generator.d.ts +3 -3
  592. package/src/ts/api/generator.js +16 -16
  593. package/src/ts/api/generator.js.map +1 -1
  594. package/src/ts/api/schema.d.js +6 -0
  595. package/src/ts/api/schema.d.js.map +1 -0
  596. package/src/ts/api/schema.d.ts +3 -1
  597. package/src/ts/api/schema.json +5 -0
  598. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +15 -16
  599. package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +3 -2
  600. package/src/ts/astro-docs/generator.d.ts +3 -3
  601. package/src/ts/astro-docs/generator.js +80 -54
  602. package/src/ts/astro-docs/generator.js.map +1 -1
  603. package/src/ts/astro-docs/schema.d.js +6 -0
  604. package/src/ts/astro-docs/schema.d.js.map +1 -0
  605. package/src/ts/astro-docs/schema.d.ts +2 -2
  606. package/src/ts/astro-docs/schema.json +3 -3
  607. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +982 -0
  608. package/src/ts/dcr-proxy/generator.d.ts +10 -0
  609. package/src/ts/dcr-proxy/generator.js +98 -0
  610. package/src/ts/dcr-proxy/generator.js.map +1 -0
  611. package/src/ts/dcr-proxy/schema.d.js +6 -0
  612. package/src/ts/dcr-proxy/schema.d.js.map +1 -0
  613. package/src/ts/dcr-proxy/schema.d.ts +13 -0
  614. package/src/ts/dcr-proxy/schema.json +44 -0
  615. package/src/ts/docs/generator.d.ts +3 -3
  616. package/src/ts/docs/generator.js +10 -10
  617. package/src/ts/docs/generator.js.map +1 -1
  618. package/src/ts/docs/schema.d.js +6 -0
  619. package/src/ts/docs/schema.d.js.map +1 -0
  620. package/src/ts/docs/schema.d.ts +1 -4
  621. package/src/ts/docs/schema.json +3 -3
  622. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +402 -518
  623. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
  624. package/src/ts/dynamodb/agent-connection/generator.d.ts +3 -3
  625. package/src/ts/dynamodb/agent-connection/generator.js +21 -23
  626. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  627. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  628. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  629. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
  630. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  631. package/src/ts/dynamodb/files/config.json.template +24 -0
  632. package/src/ts/dynamodb/files/src/client.ts.template +30 -11
  633. package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
  634. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
  635. package/src/ts/dynamodb/files/src/index.ts.template +2 -11
  636. package/src/ts/dynamodb/generator.d.ts +3 -3
  637. package/src/ts/dynamodb/generator.js +76 -63
  638. package/src/ts/dynamodb/generator.js.map +1 -1
  639. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
  640. package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +3 -3
  641. package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
  642. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  643. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  644. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  645. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  646. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  647. package/src/ts/dynamodb/schema.d.js +6 -0
  648. package/src/ts/dynamodb/schema.d.js.map +1 -0
  649. package/src/ts/dynamodb/schema.d.ts +2 -0
  650. package/src/ts/dynamodb/schema.json +25 -2
  651. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  652. package/src/ts/dynamodb/smithy-connection/generator.d.ts +3 -3
  653. package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
  654. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  655. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  656. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  657. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  658. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  659. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  660. package/src/ts/dynamodb/trpc-connection/generator.d.ts +3 -3
  661. package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
  662. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  663. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  664. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  665. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  666. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  667. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +8 -6
  668. package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
  669. package/src/ts/lambda-function/generator.d.ts +3 -3
  670. package/src/ts/lambda-function/generator.js +60 -56
  671. package/src/ts/lambda-function/generator.js.map +1 -1
  672. package/src/ts/lambda-function/io.js +83 -52
  673. package/src/ts/lambda-function/io.js.map +1 -1
  674. package/src/ts/lambda-function/schema.d.js +6 -0
  675. package/src/ts/lambda-function/schema.d.js.map +1 -0
  676. package/src/ts/lambda-function/schema.d.ts +1 -0
  677. package/src/ts/lambda-function/schema.json +5 -0
  678. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +98 -93
  679. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
  680. package/src/ts/lib/biome.d.ts +7 -0
  681. package/src/ts/lib/biome.js +91 -0
  682. package/src/ts/lib/biome.js.map +1 -0
  683. package/src/ts/lib/generator.d.ts +3 -3
  684. package/src/ts/lib/generator.js +107 -108
  685. package/src/ts/lib/generator.js.map +1 -1
  686. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  687. package/src/ts/lib/schema.d.js +6 -0
  688. package/src/ts/lib/schema.d.js.map +1 -0
  689. package/src/ts/lib/schema.d.ts +1 -1
  690. package/src/ts/lib/schema.json +5 -0
  691. package/src/ts/lib/ts-project-utils.d.ts +12 -2
  692. package/src/ts/lib/ts-project-utils.js +95 -71
  693. package/src/ts/lib/ts-project-utils.js.map +1 -1
  694. package/src/ts/lib/types.d.ts +6 -0
  695. package/src/ts/lib/types.js +5 -2
  696. package/src/ts/lib/types.js.map +1 -1
  697. package/src/ts/lib/vitest.d.ts +2 -2
  698. package/src/ts/lib/vitest.js +30 -26
  699. package/src/ts/lib/vitest.js.map +1 -1
  700. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +209 -42
  701. package/src/ts/mcp-server/files/Dockerfile.template +13 -2
  702. package/src/ts/mcp-server/generator.d.ts +3 -3
  703. package/src/ts/mcp-server/generator.js +183 -140
  704. package/src/ts/mcp-server/generator.js.map +1 -1
  705. package/src/ts/mcp-server/schema.d.js +6 -0
  706. package/src/ts/mcp-server/schema.d.js.map +1 -0
  707. package/src/ts/mcp-server/schema.d.ts +1 -0
  708. package/src/ts/mcp-server/schema.json +5 -0
  709. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +46 -26
  710. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  711. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  712. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  713. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  714. package/src/ts/nx-generator/generator.d.ts +2 -2
  715. package/src/ts/nx-generator/generator.js +118 -73
  716. package/src/ts/nx-generator/generator.js.map +1 -1
  717. package/src/ts/nx-generator/schema.d.js +6 -0
  718. package/src/ts/nx-generator/schema.d.js.map +1 -0
  719. package/src/ts/nx-generator/schema.d.ts +1 -0
  720. package/src/ts/nx-generator/schema.json +5 -0
  721. package/src/ts/nx-migration/files/migration.spec.ts.template +26 -0
  722. package/src/ts/nx-migration/files/migration.ts.template +61 -0
  723. package/src/ts/nx-migration/files/prompt.md.template +46 -0
  724. package/src/ts/nx-migration/generator.d.ts +24 -0
  725. package/src/ts/nx-migration/generator.js +122 -0
  726. package/src/ts/nx-migration/generator.js.map +1 -0
  727. package/src/ts/nx-migration/schema.d.js +6 -0
  728. package/src/ts/nx-migration/schema.d.js.map +1 -0
  729. package/src/ts/nx-migration/schema.d.ts +13 -0
  730. package/src/ts/nx-migration/schema.json +63 -0
  731. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +36 -25
  732. package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
  733. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  734. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  735. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  736. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  737. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  738. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +4 -4
  739. package/src/ts/nx-plugin/generator.d.ts +3 -3
  740. package/src/ts/nx-plugin/generator.js +61 -50
  741. package/src/ts/nx-plugin/generator.js.map +1 -1
  742. package/src/ts/nx-plugin/schema.d.js +9 -0
  743. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  744. package/src/ts/nx-plugin/schema.json +5 -0
  745. package/src/ts/nx-plugin/utils.d.ts +21 -1
  746. package/src/ts/nx-plugin/utils.js +60 -51
  747. package/src/ts/nx-plugin/utils.js.map +1 -1
  748. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +551 -642
  749. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
  750. package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
  751. package/src/ts/rdb/agent-connection/generator.js +37 -39
  752. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  753. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  754. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  755. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  756. package/src/ts/rdb/agent-connection/schema.json +5 -0
  757. package/src/ts/rdb/files/Dockerfile.template +19 -1
  758. package/src/ts/rdb/files/config.json.template +14 -0
  759. package/src/ts/rdb/files/prisma.config.ts.template +6 -5
  760. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +9 -11
  761. package/src/ts/rdb/files/src/index.ts.template +1 -2
  762. package/src/ts/rdb/files/src/migration-handler.ts.template +5 -30
  763. package/src/ts/rdb/files/src/prisma.ts.template +33 -25
  764. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  765. package/src/ts/rdb/generator.d.ts +3 -7
  766. package/src/ts/rdb/generator.js +195 -131
  767. package/src/ts/rdb/generator.js.map +1 -1
  768. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
  769. package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
  770. package/src/ts/rdb/mcp-server-connection/generator.js +35 -37
  771. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  772. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  773. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  774. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  775. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  776. package/src/ts/rdb/schema.d.js +6 -0
  777. package/src/ts/rdb/schema.d.js.map +1 -0
  778. package/src/ts/rdb/schema.d.ts +1 -0
  779. package/src/ts/rdb/schema.json +6 -1
  780. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  781. package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
  782. package/src/ts/rdb/smithy-connection/generator.js +45 -43
  783. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  784. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  785. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  786. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  787. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  788. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  789. package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
  790. package/src/ts/rdb/trpc-connection/generator.js +35 -31
  791. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  792. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  793. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  794. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  795. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  796. package/src/ts/rdb/utils.d.ts +1 -1
  797. package/src/ts/rdb/utils.js +9 -11
  798. package/src/ts/rdb/utils.js.map +1 -1
  799. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
  800. package/src/ts/react-website/agui/generator.d.ts +1 -1
  801. package/src/ts/react-website/agui/generator.js +70 -62
  802. package/src/ts/react-website/agui/generator.js.map +1 -1
  803. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +1455 -881
  804. package/src/ts/react-website/app/generator.d.ts +4 -4
  805. package/src/ts/react-website/app/generator.js +250 -196
  806. package/src/ts/react-website/app/generator.js.map +1 -1
  807. package/src/ts/react-website/app/schema.d.js +6 -0
  808. package/src/ts/react-website/app/schema.d.js.map +1 -0
  809. package/src/ts/react-website/app/schema.d.ts +1 -1
  810. package/src/ts/react-website/app/schema.json +11 -6
  811. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +139 -26
  812. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +48 -12
  813. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  814. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  815. package/src/ts/react-website/cognito-auth/generator.d.ts +4 -4
  816. package/src/ts/react-website/cognito-auth/generator.js +65 -63
  817. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  818. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
  819. package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
  820. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  821. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  822. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  823. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  824. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  825. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  826. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  827. package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
  828. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  829. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  830. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  831. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  832. package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
  833. package/src/ts/react-website/runtime-config/generator.js +29 -31
  834. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  835. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  836. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  837. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  838. package/src/ts/react-website/runtime-config/schema.json +5 -0
  839. package/src/ts/sync/generator.d.ts +3 -3
  840. package/src/ts/sync/generator.js +137 -60
  841. package/src/ts/sync/generator.js.map +1 -1
  842. package/src/ts/website/app/generator.d.ts +3 -3
  843. package/src/ts/website/app/generator.js +10 -10
  844. package/src/ts/website/app/generator.js.map +1 -1
  845. package/src/ts/website/app/schema.d.js +6 -0
  846. package/src/ts/website/app/schema.d.js.map +1 -0
  847. package/src/ts/website/app/schema.d.ts +1 -1
  848. package/src/ts/website/app/schema.json +11 -6
  849. package/src/ts/website/auth/generator.d.ts +4 -4
  850. package/src/ts/website/auth/generator.js +11 -10
  851. package/src/ts/website/auth/generator.js.map +1 -1
  852. package/src/ts/website/auth/schema.d.js +6 -0
  853. package/src/ts/website/auth/schema.d.js.map +1 -0
  854. package/src/ts/website/auth/schema.d.ts +1 -0
  855. package/src/ts/website/auth/schema.json +5 -0
  856. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +21 -0
  857. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  858. package/src/utils/agent-chat/agent-chat.js +31 -0
  859. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  860. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  861. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  862. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  863. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  864. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  865. package/src/utils/agent-connection/agent-connection.d.ts +117 -25
  866. package/src/utils/agent-connection/agent-connection.js +467 -103
  867. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  868. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  869. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  870. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  871. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  872. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  873. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
  874. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  875. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  876. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +36 -0
  877. package/src/utils/agent-connection/files/core-strands/base/tool-errors-strands.ts.template +22 -0
  878. 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
  879. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  880. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  881. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  882. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  883. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  884. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  885. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +99 -0
  886. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  887. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  888. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  889. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
  890. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  891. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
  892. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  893. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  894. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  895. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +12 -3
  896. package/src/utils/agent-core-constructs/agent-core-constructs.js +104 -38
  897. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  898. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +31 -4
  899. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +85 -0
  900. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +497 -0
  901. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  902. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +32 -0
  903. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +488 -0
  904. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  905. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +151 -13
  906. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  907. package/src/utils/api-constructs/api-constructs.d.ts +2 -2
  908. package/src/utils/api-constructs/api-constructs.js +50 -31
  909. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  910. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +20 -15
  911. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +24 -16
  912. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +26 -9
  913. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +70 -0
  914. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  915. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +54 -18
  916. package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
  917. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  918. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +101 -12
  919. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +194 -8
  920. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  921. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  922. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  923. package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
  924. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  925. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  926. package/src/utils/ast/website.d.ts +5 -1
  927. package/src/utils/ast/website.js +18 -20
  928. package/src/utils/ast/website.js.map +1 -1
  929. package/src/utils/ast.d.ts +5 -1
  930. package/src/utils/ast.js +107 -89
  931. package/src/utils/ast.js.map +1 -1
  932. package/src/utils/base-tsconfig.d.ts +30 -0
  933. package/src/utils/base-tsconfig.js +32 -0
  934. package/src/utils/base-tsconfig.js.map +1 -0
  935. package/src/utils/bundle/bundle.d.ts +1 -1
  936. package/src/utils/bundle/bundle.js +51 -47
  937. package/src/utils/bundle/bundle.js.map +1 -1
  938. package/src/utils/commands.d.ts +15 -5
  939. package/src/utils/commands.js +87 -28
  940. package/src/utils/commands.js.map +1 -1
  941. package/src/utils/config/index.d.ts +21 -5
  942. package/src/utils/config/index.js +5 -4
  943. package/src/utils/config/index.js.map +1 -1
  944. package/src/utils/config/utils.d.ts +5 -4
  945. package/src/utils/config/utils.js +50 -59
  946. package/src/utils/config/utils.js.map +1 -1
  947. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +1 -1
  948. package/src/utils/connection/open-api/react.d.ts +6 -6
  949. package/src/utils/connection/open-api/react.js +82 -77
  950. package/src/utils/connection/open-api/react.js.map +1 -1
  951. package/src/utils/containers.d.ts +1 -1
  952. package/src/utils/containers.js +22 -23
  953. package/src/utils/containers.js.map +1 -1
  954. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +38 -0
  955. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js +93 -0
  956. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -0
  957. package/src/utils/dcr-proxy-constructs/files/cdk/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.ts.template +227 -0
  958. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorization-server-metadata.ts.template +39 -0
  959. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorize.ts.template +26 -0
  960. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/mcp-proxy.ts.template +89 -0
  961. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/protected-resource-metadata.ts.template +13 -0
  962. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/register.ts.template +70 -0
  963. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/token.ts.template +75 -0
  964. package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +410 -0
  965. package/src/utils/dependencies.d.ts +18 -0
  966. package/src/utils/dependencies.js +206 -0
  967. package/src/utils/dependencies.js.map +1 -0
  968. package/src/utils/docker.d.ts +53 -0
  969. package/src/utils/docker.js +92 -0
  970. package/src/utils/docker.js.map +1 -0
  971. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +3 -3
  972. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +39 -41
  973. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  974. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +18 -5
  975. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +1 -1
  976. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +24 -17
  977. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  978. package/src/utils/files/common/constructs/src/core/cloudfront.ts.template +14 -0
  979. package/src/utils/files/common/constructs/src/core/index.ts.template +5 -4
  980. package/src/utils/files/common/constructs/src/index.ts.template +2 -2
  981. package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
  982. package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
  983. package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
  984. package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/create-local-table.ts.template +65 -31
  985. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  986. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +104 -0
  987. package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +2 -0
  988. package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +2 -0
  989. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
  990. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +3 -3
  991. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  992. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  993. package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
  994. package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +115 -0
  995. package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
  996. package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
  997. package/src/utils/files/shadcn/components.json.template +1 -1
  998. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +63 -72
  999. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  1000. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
  1001. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  1002. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
  1003. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  1004. package/src/utils/format.d.ts +81 -3
  1005. package/src/utils/format.js +349 -108
  1006. package/src/utils/format.js.map +1 -1
  1007. package/src/utils/fs.d.ts +1 -1
  1008. package/src/utils/fs.js +14 -13
  1009. package/src/utils/fs.js.map +1 -1
  1010. package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
  1011. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  1012. package/src/utils/function-constructs/function-constructs.d.ts +2 -2
  1013. package/src/utils/function-constructs/function-constructs.js +22 -25
  1014. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  1015. package/src/utils/generators.d.ts +4 -0
  1016. package/src/utils/generators.js +18 -20
  1017. package/src/utils/generators.js.map +1 -1
  1018. package/src/utils/git.d.ts +1 -1
  1019. package/src/utils/git.js +19 -34
  1020. package/src/utils/git.js.map +1 -1
  1021. package/src/utils/iac-providers.js +5 -5
  1022. package/src/utils/iac-providers.js.map +1 -1
  1023. package/src/utils/iac.d.ts +1 -1
  1024. package/src/utils/iac.js +12 -14
  1025. package/src/utils/iac.js.map +1 -1
  1026. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +131 -24
  1027. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
  1028. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +106 -6
  1029. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  1030. package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
  1031. package/src/utils/identity-constructs/identity-constructs.js +42 -31
  1032. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  1033. package/src/utils/init.d.ts +59 -0
  1034. package/src/utils/init.js +282 -0
  1035. package/src/utils/init.js.map +1 -0
  1036. package/src/utils/install.d.ts +32 -0
  1037. package/src/utils/install.js +58 -0
  1038. package/src/utils/install.js.map +1 -0
  1039. package/src/utils/js.d.ts +4 -0
  1040. package/src/utils/js.js +27 -20
  1041. package/src/utils/js.js.map +1 -1
  1042. package/src/utils/mcp.d.ts +10 -1
  1043. package/src/utils/mcp.js +42 -41
  1044. package/src/utils/mcp.js.map +1 -1
  1045. package/src/utils/metrics.d.ts +9 -3
  1046. package/src/utils/metrics.js +61 -46
  1047. package/src/utils/metrics.js.map +1 -1
  1048. package/src/utils/migration-versions.d.ts +95 -0
  1049. package/src/utils/migration-versions.js +128 -0
  1050. package/src/utils/migration-versions.js.map +1 -0
  1051. package/src/utils/mock-project-graph.js +8 -12
  1052. package/src/utils/mock-project-graph.js.map +1 -1
  1053. package/src/utils/module-format.d.ts +25 -0
  1054. package/src/utils/module-format.js +45 -0
  1055. package/src/utils/module-format.js.map +1 -0
  1056. package/src/utils/names.d.ts +22 -0
  1057. package/src/utils/names.js +44 -48
  1058. package/src/utils/names.js.map +1 -1
  1059. package/src/utils/npm-scope.d.ts +1 -5
  1060. package/src/utils/npm-scope.js +7 -20
  1061. package/src/utils/npm-scope.js.map +1 -1
  1062. package/src/utils/nx.d.ts +57 -4
  1063. package/src/utils/nx.js +192 -75
  1064. package/src/utils/nx.js.map +1 -1
  1065. package/src/utils/nxlv-python.d.ts +1 -1
  1066. package/src/utils/nxlv-python.js +27 -15
  1067. package/src/utils/nxlv-python.js.map +1 -1
  1068. package/src/utils/object.js +5 -11
  1069. package/src/utils/object.js.map +1 -1
  1070. package/src/utils/paths.d.ts +1 -1
  1071. package/src/utils/paths.js +11 -15
  1072. package/src/utils/paths.js.map +1 -1
  1073. package/src/utils/pkg-manager.js +4 -9
  1074. package/src/utils/pkg-manager.js.map +1 -1
  1075. package/src/utils/pnpm-workspace.d.ts +1 -12
  1076. package/src/utils/pnpm-workspace.js +16 -43
  1077. package/src/utils/pnpm-workspace.js.map +1 -1
  1078. package/src/utils/port.d.ts +29 -7
  1079. package/src/utils/port.js +67 -28
  1080. package/src/utils/port.js.map +1 -1
  1081. package/src/utils/project-package-json.d.ts +39 -0
  1082. package/src/utils/project-package-json.js +119 -0
  1083. package/src/utils/project-package-json.js.map +1 -0
  1084. package/src/utils/py.d.ts +16 -3
  1085. package/src/utils/py.js +72 -47
  1086. package/src/utils/py.js.map +1 -1
  1087. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +72 -18
  1088. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +112 -88
  1089. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +127 -53
  1090. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +60 -53
  1091. package/src/utils/rdb-constructs/rdb-constructs.d.ts +15 -4
  1092. package/src/utils/rdb-constructs/rdb-constructs.js +38 -41
  1093. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  1094. package/src/utils/ruff.d.ts +59 -0
  1095. package/src/utils/ruff.js +140 -0
  1096. package/src/utils/ruff.js.map +1 -0
  1097. package/src/utils/shared-constructs-constants.d.ts +1 -0
  1098. package/src/utils/shared-constructs-constants.js +16 -15
  1099. package/src/utils/shared-constructs-constants.js.map +1 -1
  1100. package/src/utils/shared-constructs.d.ts +2 -2
  1101. package/src/utils/shared-constructs.js +61 -67
  1102. package/src/utils/shared-constructs.js.map +1 -1
  1103. package/src/utils/shared-dynamodb-scripts.d.ts +11 -0
  1104. package/src/utils/shared-dynamodb-scripts.js +27 -0
  1105. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  1106. package/src/utils/shared-infra-config.d.ts +1 -1
  1107. package/src/utils/shared-infra-config.js +31 -30
  1108. package/src/utils/shared-infra-config.js.map +1 -1
  1109. package/src/utils/shared-infra-scripts.d.ts +11 -0
  1110. package/src/utils/shared-infra-scripts.js +43 -0
  1111. package/src/utils/shared-infra-scripts.js.map +1 -0
  1112. package/src/utils/shared-rdb-scripts.d.ts +16 -0
  1113. package/src/utils/shared-rdb-scripts.js +45 -0
  1114. package/src/utils/shared-rdb-scripts.js.map +1 -0
  1115. package/src/utils/shared-scripts.d.ts +2 -5
  1116. package/src/utils/shared-scripts.js +12 -38
  1117. package/src/utils/shared-scripts.js.map +1 -1
  1118. package/src/utils/shared-shadcn.d.ts +1 -1
  1119. package/src/utils/shared-shadcn.js +69 -72
  1120. package/src/utils/shared-shadcn.js.map +1 -1
  1121. package/src/utils/test-git.d.ts +39 -0
  1122. package/src/utils/test-git.js +117 -0
  1123. package/src/utils/test-git.js.map +1 -0
  1124. package/src/utils/test.d.ts +15 -1
  1125. package/src/utils/test.js +46 -23
  1126. package/src/utils/test.js.map +1 -1
  1127. package/src/utils/toml.d.ts +6 -1
  1128. package/src/utils/toml.js +20 -14
  1129. package/src/utils/toml.js.map +1 -1
  1130. package/src/utils/versions.d.ts +161 -99
  1131. package/src/utils/versions.js +177 -116
  1132. package/src/utils/versions.js.map +1 -1
  1133. package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +2 -2
  1134. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +203 -41
  1135. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  1136. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +145 -93
  1137. package/src/utils/website-constructs/website-constructs.d.ts +2 -2
  1138. package/src/utils/website-constructs/website-constructs.js +38 -30
  1139. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  1140. package/bin/aws-nx-mcp.d.ts +0 -2
  1141. package/bin/aws-nx-mcp.js +0 -17
  1142. package/bin/aws-nx-mcp.js.map +0 -1
  1143. package/sdk/connection.d.ts +0 -6
  1144. package/sdk/connection.js +0 -10
  1145. package/sdk/connection.js.map +0 -1
  1146. package/sdk/license.d.ts +0 -8
  1147. package/sdk/license.js +0 -13
  1148. package/sdk/license.js.map +0 -1
  1149. package/sdk/open-api.d.ts +0 -10
  1150. package/sdk/open-api.js +0 -15
  1151. package/sdk/open-api.js.map +0 -1
  1152. package/sdk/py.d.ts +0 -14
  1153. package/sdk/py.js +0 -18
  1154. package/sdk/py.js.map +0 -1
  1155. package/sdk/terraform.d.ts +0 -6
  1156. package/sdk/terraform.js +0 -11
  1157. package/sdk/terraform.js.map +0 -1
  1158. package/sdk/ts.d.ts +0 -29
  1159. package/sdk/ts.js +0 -47
  1160. package/sdk/ts.js.map +0 -1
  1161. package/sdk/utils/ast.js +0 -12
  1162. package/sdk/utils/ast.js.map +0 -1
  1163. package/sdk/utils/format.js +0 -10
  1164. package/sdk/utils/format.js.map +0 -1
  1165. package/sdk/utils/test.js +0 -10
  1166. package/sdk/utils/test.js.map +0 -1
  1167. package/src/connection/agent-serve-local.js +0 -48
  1168. package/src/connection/agent-serve-local.js.map +0 -1
  1169. package/src/connection/serve-local.d.ts +0 -15
  1170. package/src/connection/serve-local.js +0 -41
  1171. package/src/connection/serve-local.js.map +0 -1
  1172. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  1173. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  1174. package/src/py/agent/react-connection/serve-local.js +0 -30
  1175. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  1176. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  1177. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  1178. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  1179. package/src/ts/agent/react-connection/serve-local.d.ts +0 -13
  1180. package/src/ts/agent/react-connection/serve-local.js +0 -19
  1181. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  1182. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  1183. package/src/ts/dynamodb/files/scripts/pull-image.ts.template +0 -15
  1184. package/src/ts/dynamodb/files/scripts/start-container.ts.template +0 -81
  1185. package/src/ts/dynamodb/files/src/constants.ts.template +0 -9
  1186. package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
  1187. package/src/ts/lib/eslint.d.ts +0 -14
  1188. package/src/ts/lib/eslint.js +0 -90
  1189. package/src/ts/lib/eslint.js.map +0 -1
  1190. package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
  1191. package/src/ts/rdb/files/scripts/pull-image.ts.template +0 -15
  1192. package/src/ts/rdb/files/scripts/start-container.ts.template +0 -84
  1193. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  1194. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  1195. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  1196. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  1197. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  1198. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  1199. package/src/utils/files/common/scripts/src/infra-deploy.ts.template +0 -2
  1200. package/src/utils/files/common/scripts/src/infra-destroy.ts.template +0 -2
  1201. package/src/utils/files/terraform/scripts/reset-runtime-config.ts.template +0 -25
  1202. /package/src/utils/agent-connection/files/{py-core-runtime-config/with_session_id.py.template → py-core-strands/base/with_session_id_strands.py.template} +0 -0
  1203. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  1204. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  1205. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -0,0 +1,189 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`py#agent#a2a-connection generator > should match snapshot for agent-connection core files > agentcore_a2a_client_config.py 1`] = `
4
+ "from collections.abc import Callable
5
+
6
+ import boto3
7
+ import httpx
8
+ from a2a.client import ClientConfig
9
+
10
+ from .agentcore_endpoints import a2a_url_from_arn, region_from_arn
11
+ from .auth.session import jwt_auth, plain_auth, sigv4_auth
12
+
13
+
14
+ def _config(url: str, auth: httpx.Auth) -> tuple[str, ClientConfig]:
15
+ httpx_client = httpx.AsyncClient(auth=auth, timeout=120)
16
+ return url, ClientConfig(httpx_client=httpx_client, streaming=False)
17
+
18
+
19
+ class AgentCoreA2aClientConfig:
20
+ """Factory for A2A client configs that connect to a Bedrock AgentCore
21
+ runtime. Each forwards the current async-context session via the AgentCore
22
+ session header. Framework-agnostic — wrap the result in a framework's
23
+ A2A client."""
24
+
25
+ @staticmethod
26
+ def with_iam_auth(agent_runtime_arn: str) -> tuple[str, ClientConfig]:
27
+ """SigV4-authenticated A2A client config for a Bedrock AgentCore runtime."""
28
+ region = region_from_arn(agent_runtime_arn)
29
+ credentials = boto3.Session(region_name=region).get_credentials()
30
+ return _config(a2a_url_from_arn(agent_runtime_arn), sigv4_auth(credentials, region))
31
+
32
+ @staticmethod
33
+ def with_jwt_auth(agent_runtime_arn: str, access_token_provider: Callable[[], str]) -> tuple[str, ClientConfig]:
34
+ """Bearer-authenticated A2A client config for a Bedrock AgentCore runtime."""
35
+ return _config(a2a_url_from_arn(agent_runtime_arn), jwt_auth(access_token_provider))
36
+
37
+ @staticmethod
38
+ def without_auth(url: str) -> tuple[str, ClientConfig]:
39
+ """Plain-HTTP A2A client config — for local dev."""
40
+ return _config(url, plain_auth())
41
+ "
42
+ `;
43
+
44
+ exports[`py#agent#a2a-connection generator > should match snapshot for agent-connection core files > agentcore_a2a_client_strands.py 1`] = `
45
+ "from collections.abc import Callable
46
+
47
+ from strands.agent.a2a_agent import A2AAgent
48
+
49
+ from .agentcore_a2a_client_config import AgentCoreA2aClientConfig
50
+
51
+
52
+ def _build(config: tuple, *, name: str | None, description: str | None) -> A2AAgent:
53
+ url, client_config = config
54
+ kwargs: dict = {"endpoint": url, "client_config": client_config}
55
+ if name:
56
+ kwargs["name"] = name
57
+ if description:
58
+ kwargs["description"] = description
59
+ return A2AAgent(**kwargs)
60
+
61
+
62
+ class AgentCoreA2aClientStrands:
63
+ """Factory for Strands A2A clients that connect to an AgentCore runtime."""
64
+
65
+ @staticmethod
66
+ def with_iam_auth(
67
+ agent_runtime_arn: str,
68
+ *,
69
+ name: str | None = None,
70
+ description: str | None = None,
71
+ ) -> A2AAgent:
72
+ """SigV4-authenticated client for a Bedrock AgentCore runtime."""
73
+ return _build(
74
+ AgentCoreA2aClientConfig.with_iam_auth(agent_runtime_arn),
75
+ name=name,
76
+ description=description,
77
+ )
78
+
79
+ @staticmethod
80
+ def with_jwt_auth(
81
+ agent_runtime_arn: str,
82
+ access_token_provider: Callable[[], str],
83
+ *,
84
+ name: str | None = None,
85
+ description: str | None = None,
86
+ ) -> A2AAgent:
87
+ """Bearer-authenticated client for a Bedrock AgentCore runtime."""
88
+ return _build(
89
+ AgentCoreA2aClientConfig.with_jwt_auth(agent_runtime_arn, access_token_provider),
90
+ name=name,
91
+ description=description,
92
+ )
93
+
94
+ @staticmethod
95
+ def without_auth(
96
+ url: str,
97
+ *,
98
+ name: str | None = None,
99
+ description: str | None = None,
100
+ ) -> A2AAgent:
101
+ """Plain-HTTP client — for local dev."""
102
+ return _build(
103
+ AgentCoreA2aClientConfig.without_auth(url),
104
+ name=name,
105
+ description=description,
106
+ )
107
+ "
108
+ `;
109
+
110
+ exports[`py#agent#a2a-connection generator > should match snapshot for agent-connection core files > remote_client_strands.py 1`] = `
111
+ "import os
112
+
113
+ from strands.agent.a2a_agent import A2AAgent
114
+
115
+ from test_agent_connection.core.agentcore_a2a_client_strands import (
116
+ AgentCoreA2aClientStrands,
117
+ )
118
+ from test_agent_connection.core.runtime_config import (
119
+ get_agentcore_runtime_config,
120
+ )
121
+
122
+
123
+ class RemoteClientStrands:
124
+ """Strands client for the Remote A2A agent."""
125
+
126
+ @staticmethod
127
+ def create() -> A2AAgent:
128
+ if os.environ.get("LOCAL_DEV") == "true":
129
+ return AgentCoreA2aClientStrands.without_auth("http://localhost:9001/")
130
+ config = get_agentcore_runtime_config()
131
+ agent_runtime_arn = config.get("agentRuntimes", {}).get("Remote")
132
+ if not agent_runtime_arn:
133
+ raise RuntimeError("No connected agent runtime named 'Remote' found in runtime configuration.")
134
+ return AgentCoreA2aClientStrands.with_iam_auth(agent_runtime_arn)
135
+ "
136
+ `;
137
+
138
+ exports[`py#agent#a2a-connection generator > should match snapshot for agent-connection core files > session.py 1`] = `
139
+ "from collections.abc import Callable
140
+
141
+ import httpx
142
+
143
+ from ..session_context import get_current_session_id
144
+ from .sigv4 import SigV4HTTPXAuth
145
+
146
+ SESSION_HEADER = "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id"
147
+
148
+
149
+ class SessionHeaderAuth(httpx.Auth):
150
+ """Stamps the AgentCore session header from the current async context,
151
+ then delegates to an optional inner auth (e.g. SigV4)."""
152
+
153
+ requires_request_body = True
154
+ requires_response_body = True
155
+
156
+ def __init__(self, inner: httpx.Auth | None = None):
157
+ self._inner = inner
158
+
159
+ def auth_flow(self, request: httpx.Request): # type: ignore[override]
160
+ sid = get_current_session_id()
161
+ if sid:
162
+ request.headers[SESSION_HEADER] = sid
163
+ if self._inner is None:
164
+ yield request
165
+ return
166
+ yield from self._inner.auth_flow(request)
167
+
168
+
169
+ def sigv4_auth(credentials, region: str, service: str = "bedrock-agentcore") -> httpx.Auth:
170
+ """Session-forwarding SigV4 auth (per-request, body-aware)."""
171
+ return SessionHeaderAuth(SigV4HTTPXAuth(credentials, service, region))
172
+
173
+
174
+ def jwt_auth(access_token_provider: Callable[[], str]) -> httpx.Auth:
175
+ """Session-forwarding bearer-token auth."""
176
+
177
+ class _Bearer(httpx.Auth):
178
+ def auth_flow(self, request: httpx.Request):
179
+ request.headers["Authorization"] = f"Bearer {access_token_provider()}"
180
+ yield request
181
+
182
+ return SessionHeaderAuth(_Bearer())
183
+
184
+
185
+ def plain_auth() -> httpx.Auth:
186
+ """Session-forwarding plain auth — for local dev."""
187
+ return SessionHeaderAuth()
188
+ "
189
+ `;
@@ -0,0 +1,30 @@
1
+ import os
2
+
3
+ from strands.agent.a2a_agent import A2AAgent
4
+
5
+ from <%- agentConnectionModuleName %>.core.agentcore_a2a_client_strands import (
6
+ AgentCoreA2aClientStrands,
7
+ )
8
+ from <%- agentConnectionModuleName %>.core.runtime_config import (
9
+ get_agentcore_runtime_config,
10
+ )
11
+
12
+
13
+ class <%- targetAgentClassName %>ClientStrands:
14
+ """Strands client for the <%- targetAgentClassName %> A2A agent."""
15
+
16
+ @staticmethod
17
+ def create() -> A2AAgent:
18
+ if os.environ.get("LOCAL_DEV") == "true":
19
+ return AgentCoreA2aClientStrands.without_auth(
20
+ "http://localhost:<%- targetAgentPort %>/"
21
+ )
22
+ config = get_agentcore_runtime_config()
23
+ agent_runtime_arn = config.get("agentRuntimes", {}).get(
24
+ "<%- targetAgentClassName %>"
25
+ )
26
+ if not agent_runtime_arn:
27
+ raise RuntimeError(
28
+ "No connected agent runtime named '<%- targetAgentClassName %>' found in runtime configuration."
29
+ )
30
+ return AgentCoreA2aClientStrands.with_iam_auth(agent_runtime_arn)
@@ -0,0 +1,28 @@
1
+ import os
2
+
3
+ from <%- agentConnectionModuleName %>.core.agentcore_a2a_client_langchain import (
4
+ AgentCoreA2aClientLangChain,
5
+ )
6
+ from <%- agentConnectionModuleName %>.core.runtime_config import (
7
+ get_agentcore_runtime_config,
8
+ )
9
+
10
+
11
+ class <%- targetAgentClassName %>ClientLangChain:
12
+ """LangChain client for the <%- targetAgentClassName %> A2A agent."""
13
+
14
+ @staticmethod
15
+ def create():
16
+ if os.environ.get("LOCAL_DEV") == "true":
17
+ return AgentCoreA2aClientLangChain.without_auth(
18
+ "http://localhost:<%- targetAgentPort %>/"
19
+ )
20
+ config = get_agentcore_runtime_config()
21
+ agent_runtime_arn = config.get("agentRuntimes", {}).get(
22
+ "<%- targetAgentClassName %>"
23
+ )
24
+ if not agent_runtime_arn:
25
+ raise RuntimeError(
26
+ "No connected agent runtime named '<%- targetAgentClassName %>' found in runtime configuration."
27
+ )
28
+ return AgentCoreA2aClientLangChain.with_iam_auth(agent_runtime_arn)
@@ -2,9 +2,9 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { GeneratorCallback, Tree } from '@nx/devkit';
6
- import { PyAgentA2aConnectionGeneratorSchema } from './schema';
7
- import { NxGeneratorInfo } from '../../../utils/nx';
5
+ import { type GeneratorCallback, type Tree } from '@nx/devkit';
6
+ import { type NxGeneratorInfo } from '../../../utils/nx';
7
+ import type { PyAgentA2aConnectionGeneratorSchema } from './schema';
8
8
  export declare const PY_AGENT_A2A_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
9
9
  export declare const pyAgentA2aConnectionGenerator: (tree: Tree, options: PyAgentA2aConnectionGeneratorSchema) => Promise<GeneratorCallback>;
10
10
  export default pyAgentA2aConnectionGenerator;
@@ -1,24 +1,36 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pyAgentA2aConnectionGenerator = exports.PY_AGENT_A2A_CONNECTION_GENERATOR_INFO = void 0;
4
1
  /**
5
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
3
  * SPDX-License-Identifier: Apache-2.0
7
- */
8
- const devkit_1 = require("@nx/devkit");
9
- const nx_1 = require("../../../utils/nx");
10
- const metrics_1 = require("../../../utils/metrics");
11
- const format_1 = require("../../../utils/format");
12
- const names_1 = require("../../../utils/names");
13
- const py_1 = require("../../../utils/py");
14
- const agent_connection_1 = require("../../../utils/agent-connection/agent-connection");
15
- const ast_1 = require("../../../utils/ast");
16
- /** Prefix a GritQL pattern with `language python` */
17
- const py = (pattern) => `language python\n${pattern}`;
18
- exports.PY_AGENT_A2A_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
19
- const pyAgentA2aConnectionGenerator = async (tree, options) => {
20
- const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
21
- const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
4
+ */ import { generateFiles, joinPathFragments, OverwriteStrategy, updateProjectConfiguration } from "@nx/devkit";
5
+ import { addPythonCoreClient, addPythonReExport, ensurePythonAgentConnectionProject, getPythonAgentConnectionModuleName, getPythonAgentConnectionProject, getPythonAgentConnectionProjectDir, PY_CLIENT_NAMING, resolveAgentFramework } from "../../../utils/agent-connection/agent-connection.js";
6
+ import { addPythonDestructuredImport, applyGritQL, matchGritQL } from "../../../utils/ast.js";
7
+ import { formatFilesInSubtree } from "../../../utils/format.js";
8
+ import { installDependencies } from "../../../utils/install.js";
9
+ import { addGeneratorMetricsIfApplicable } from "../../../utils/metrics.js";
10
+ import { snakeCase } from "../../../utils/names.js";
11
+ import { addDependencyToTargetIfNotPresent, getGeneratorInfo, readProjectConfigurationUnqualified } from "../../../utils/nx.js";
12
+ import { addDependenciesToPyProjectToml, addWorkspaceDependencyToPyProject } from "../../../utils/py.js";
13
+ /** Prefix a GritQL pattern with `language python` */ const py = (pattern)=>`language python\n${pattern}`;
14
+ /** The module each framework imports the `tool` decorator from. */ const TOOL_IMPORT_MODULE = {
15
+ strands: 'strands',
16
+ langchain: 'langchain_core.tools'
17
+ };
18
+ /** The GritQL pattern matching each framework's agent constructor. */ const AGENT_CONSTRUCTOR = {
19
+ strands: 'yield Agent($_)',
20
+ langchain: 'create_agent($_)'
21
+ };
22
+ /**
23
+ * The A2A transport dependency each framework's Layer-2 client needs. Strands
24
+ * wraps strands' `A2AAgent` (strands-agents[a2a]); LangChain drives the a2a SDK
25
+ * directly (a2a-sdk) and must not pull Strands in.
26
+ */ const A2A_TRANSPORT_DEP = {
27
+ strands: 'strands-agents[a2a]',
28
+ langchain: 'a2a-sdk'
29
+ };
30
+ export const PY_AGENT_A2A_CONNECTION_GENERATOR_INFO = getGeneratorInfo(import.meta.filename);
31
+ export const pyAgentA2aConnectionGenerator = async (tree, options)=>{
32
+ const sourceProject = readProjectConfigurationUnqualified(tree, options.sourceProject);
33
+ const targetProject = readProjectConfigurationUnqualified(tree, options.targetProject);
22
34
  const agentComponent = options.sourceComponent;
23
35
  const targetAgentComponent = options.targetComponent;
24
36
  if (!agentComponent || !targetAgentComponent) {
@@ -27,95 +39,110 @@ const pyAgentA2aConnectionGenerator = async (tree, options) => {
27
39
  if ((targetAgentComponent.protocol ?? '').toLowerCase() !== 'a2a') {
28
40
  throw new Error(`Target agent '${targetAgentComponent.name}' uses the ${targetAgentComponent.protocol ?? 'http'} protocol — only A2A agents can be connected as tools.`);
29
41
  }
30
- if (targetAgentComponent.auth &&
31
- targetAgentComponent.auth.toLowerCase() !== 'iam') {
42
+ if (targetAgentComponent.auth && targetAgentComponent.auth.toLowerCase() !== 'iam') {
32
43
  throw new Error(`A2A agent connection currently only supports IAM authentication, but '${targetAgentComponent.name}' uses '${targetAgentComponent.auth}' authentication.`);
33
44
  }
34
45
  const targetAgentComponentName = targetAgentComponent.name ?? 'agent';
35
46
  const targetAgentClassName = targetAgentComponent.rc;
36
- const targetAgentSnakeCase = (0, names_1.snakeCase)(targetAgentClassName);
47
+ const targetAgentSnakeCase = snakeCase(targetAgentClassName);
37
48
  const targetAgentPort = targetAgentComponent.port ?? 9000;
49
+ // The source agent's framework drives everything that varies: the client
50
+ // naming + app template (shared with the mcp/gateway generators via
51
+ // PY_CLIENT_NAMING), the A2A transport dep (see A2A_TRANSPORT_DEP), and the
52
+ // agent.py transform below. Each framework wraps its own A2A Layer-2 client
53
+ // (Strands' A2AAgent vs an a2a-sdk-only client) over the shared,
54
+ // framework-agnostic A2A client config. Keyed on the framework, not a
55
+ // boolean, so a third framework stays additive.
56
+ const framework = resolveAgentFramework(agentComponent.framework);
57
+ const naming = PY_CLIENT_NAMING[framework];
38
58
  // 1. Ensure the shared Python agent-connection project exists + has the
39
- // A2A core client and its shared SigV4 auth helper.
40
- await (0, agent_connection_1.ensurePythonAgentConnectionProject)(tree);
41
- (0, agent_connection_1.addPythonCoreClient)(tree, 'auth');
42
- (0, agent_connection_1.addPythonCoreClient)(tree, 'a2a');
43
- const agentConnectionProjectDir = (0, agent_connection_1.getPythonAgentConnectionProjectDir)(tree);
44
- const agentConnectionModuleName = (0, agent_connection_1.getPythonAgentConnectionModuleName)(tree);
45
- const agentConnectionPackageName = (0, agent_connection_1.getPythonAgentConnectionPackageName)(tree);
46
- // Python deps required by the A2A core client + shared auth helper.
47
- (0, py_1.addDependenciesToPyProjectToml)(tree, agentConnectionProjectDir, [
59
+ // A2A core client (framework Layer-2) and its shared SigV4 auth helper.
60
+ await ensurePythonAgentConnectionProject(tree);
61
+ await addPythonCoreClient(tree, 'a2a', framework);
62
+ const agentConnectionProjectDir = getPythonAgentConnectionProjectDir(tree);
63
+ const agentConnectionModuleName = getPythonAgentConnectionModuleName(tree);
64
+ // A2A client config + shared auth helper deps, plus the framework's A2A
65
+ // transport dep (see A2A_TRANSPORT_DEP).
66
+ addDependenciesToPyProjectToml(tree, agentConnectionProjectDir, [
48
67
  'boto3',
49
68
  'httpx',
50
- 'strands-agents[a2a]',
69
+ A2A_TRANSPORT_DEP[framework]
51
70
  ]);
52
71
  // 2. Generate the per-connection client into the shared agent-connection project
53
- const appDir = (0, devkit_1.joinPathFragments)(agentConnectionProjectDir, agentConnectionModuleName, 'app');
54
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'agent-connection', 'app'), appDir, {
72
+ const appDir = joinPathFragments(agentConnectionProjectDir, agentConnectionModuleName, 'app');
73
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', naming.appTemplateSubdir), appDir, {
55
74
  targetAgentSnakeCase,
56
75
  targetAgentClassName,
57
76
  targetAgentPort,
58
- agentConnectionModuleName,
59
- }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
77
+ agentConnectionModuleName
78
+ }, {
79
+ overwriteStrategy: OverwriteStrategy.KeepExisting
80
+ });
60
81
  // Ensure app/__init__.py exists
61
- const appInitPath = (0, devkit_1.joinPathFragments)(appDir, '__init__.py');
82
+ const appInitPath = joinPathFragments(appDir, '__init__.py');
62
83
  if (!tree.exists(appInitPath)) {
63
84
  tree.write(appInitPath, '');
64
85
  }
65
86
  // Add re-export to module __init__.py
66
- const moduleInitPath = (0, devkit_1.joinPathFragments)(agentConnectionProjectDir, agentConnectionModuleName, '__init__.py');
67
- await (0, agent_connection_1.addPythonReExport)(tree, moduleInitPath, `.app.${targetAgentSnakeCase}_client`, `${targetAgentClassName}Client`);
87
+ const moduleInitPath = joinPathFragments(agentConnectionProjectDir, agentConnectionModuleName, '__init__.py');
88
+ await addPythonReExport(tree, moduleInitPath, `.app.${targetAgentSnakeCase}_client_${naming.clientModuleSuffix}`, `${targetAgentClassName}Client${naming.clientClassSuffix}`);
68
89
  // 3. Transform agent.py to add the A2A client import + wrap it as a tool
69
- const agentSourceDir = (0, devkit_1.joinPathFragments)(sourceProject.root, agentComponent.path ?? 'src');
70
- const agentFilePath = (0, devkit_1.joinPathFragments)(agentSourceDir, 'agent.py');
90
+ const agentSourceDir = joinPathFragments(sourceProject.root, agentComponent.path ?? 'src');
91
+ const agentFilePath = joinPathFragments(agentSourceDir, 'agent.py');
71
92
  if (tree.exists(agentFilePath)) {
72
- const clientClassName = `${targetAgentClassName}Client`;
93
+ const clientClassName = `${targetAgentClassName}Client${naming.clientClassSuffix}`;
73
94
  const clientVarName = targetAgentSnakeCase;
74
95
  const toolName = `ask_${targetAgentSnakeCase}`;
75
- await addImportToAgentFile(tree, agentFilePath, agentConnectionModuleName, clientClassName);
76
- await addToolToAgent(tree, agentFilePath, toolName);
77
- await addClientToolToGetAgent(tree, agentFilePath, clientClassName, clientVarName, toolName, targetAgentClassName);
96
+ await addImportToAgentFile(tree, agentFilePath, agentConnectionModuleName, clientClassName, framework);
97
+ await addToolToAgent(tree, agentFilePath, toolName, framework);
98
+ await addClientToolToGetAgent(tree, agentFilePath, clientClassName, clientVarName, toolName, targetAgentClassName, framework);
78
99
  }
79
100
  // 4. Add workspace dependency from agent project to agent-connection project
80
- (0, py_1.addWorkspaceDependencyToPyProject)(tree, sourceProject.root, agentConnectionPackageName);
81
- // 5. Set up serve-local target dependencies — chain onto the target agent
101
+ addWorkspaceDependencyToPyProject(tree, sourceProject, getPythonAgentConnectionProject(tree));
102
+ // 5. Set up dev target dependencies — chain onto the target agent
82
103
  const agentName = agentComponent.name ?? 'agent';
83
- const serveLocalTargetName = `${agentName}-serve-local`;
84
- const targetServeLocalTargetName = `${targetAgentComponentName}-serve-local`;
85
- if (sourceProject.targets?.[serveLocalTargetName]) {
86
- (0, nx_1.addDependencyToTargetIfNotPresent)(sourceProject, serveLocalTargetName, {
87
- projects: [targetProject.name],
88
- target: targetServeLocalTargetName,
104
+ const devTargetName = `${agentName}-dev`;
105
+ const targetDevTargetName = `${targetAgentComponentName}-dev`;
106
+ if (sourceProject.targets?.[devTargetName]) {
107
+ addDependencyToTargetIfNotPresent(sourceProject, devTargetName, {
108
+ projects: [
109
+ targetProject.name
110
+ ],
111
+ target: targetDevTargetName
89
112
  });
90
- (0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
113
+ updateProjectConfiguration(tree, sourceProject.name, sourceProject);
91
114
  }
92
- await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
93
- exports.PY_AGENT_A2A_CONNECTION_GENERATOR_INFO,
115
+ await addGeneratorMetricsIfApplicable(tree, [
116
+ PY_AGENT_A2A_CONNECTION_GENERATOR_INFO
94
117
  ]);
95
- await (0, format_1.formatFilesInSubtree)(tree);
96
- return () => {
97
- (0, devkit_1.installPackagesTask)(tree);
98
- };
118
+ await formatFilesInSubtree(tree);
119
+ return ()=>installDependencies(tree, options.preferInstallDependencies, {
120
+ languages: [
121
+ 'typescript'
122
+ ]
123
+ });
99
124
  };
100
- exports.pyAgentA2aConnectionGenerator = pyAgentA2aConnectionGenerator;
101
125
  /**
102
126
  * Add imports to agent.py:
103
- * - `tool` from `strands`
127
+ * - `tool` (from `strands`, or `langchain_core.tools` for LangChain agents)
104
128
  * - the per-connection client class from the shared agent-connection module
105
- */
106
- const addImportToAgentFile = async (tree, filePath, agentConnectionModuleName, clientClassName) => {
107
- await (0, ast_1.addPythonDestructuredImport)(tree, filePath, ['tool'], 'strands');
108
- await (0, ast_1.addPythonDestructuredImport)(tree, filePath, [clientClassName], agentConnectionModuleName);
129
+ */ const addImportToAgentFile = async (tree, filePath, agentConnectionModuleName, clientClassName, framework)=>{
130
+ await addPythonDestructuredImport(tree, filePath, [
131
+ 'tool'
132
+ ], TOOL_IMPORT_MODULE[framework]);
133
+ await addPythonDestructuredImport(tree, filePath, [
134
+ clientClassName
135
+ ], agentConnectionModuleName);
109
136
  };
110
137
  /**
111
138
  * Add the A2A tool to the Agent's tools array using GritQL.
112
139
  *
113
- * Scoped via `$old <: within \`yield Agent($_)\`` so unrelated `tools=`
114
- * keyword arguments elsewhere in the file are not touched.
115
- */
116
- const addToolToAgent = async (tree, filePath, toolName) => {
117
- await (0, ast_1.applyGritQL)(tree, filePath, py(`\`tools=$old\` where {
118
- $old <: within \`yield Agent($_)\`,
140
+ * Scoped to the framework's agent constructor so unrelated `tools=` keyword
141
+ * arguments elsewhere in the file are not touched.
142
+ */ const addToolToAgent = async (tree, filePath, toolName, framework)=>{
143
+ const scope = AGENT_CONSTRUCTOR[framework];
144
+ await applyGritQL(tree, filePath, py(`\`tools=$old\` where {
145
+ $old <: within \`${scope}\`,
119
146
  $old <: not contains \`${toolName}\`,
120
147
  if ($old <: \`[]\`) {
121
148
  $old => \`[${toolName}]\`
@@ -126,19 +153,18 @@ const addToolToAgent = async (tree, filePath, toolName) => {
126
153
  };
127
154
  /**
128
155
  * Wrap the get_agent body so the remote A2A client is created and exposed
129
- * as a `@tool`-decorated closure before yielding the Agent.
156
+ * as a `@tool`-decorated closure before constructing the Agent.
130
157
  *
131
158
  * Unlike MCP clients, A2A clients aren't context managers — we don't need
132
159
  * a `with` block around them. Creation + tool definition happen at the
133
- * top of the function body.
134
- */
135
- const addClientToolToGetAgent = async (tree, filePath, clientClassName, clientVarName, toolName, targetAgentClassName) => {
136
- if (await (0, ast_1.matchGritQL)(tree, filePath, `\`${clientClassName}.create\``)) {
160
+ * top of the function body, anchored on the framework's agent constructor.
161
+ */ const addClientToolToGetAgent = async (tree, filePath, clientClassName, clientVarName, toolName, targetAgentClassName, framework)=>{
162
+ if (await matchGritQL(tree, filePath, py(`\`${clientClassName}.create\``))) {
137
163
  return;
138
164
  }
139
- // The tool function we'll insert. Strands tools in Python are just
140
- // @tool-decorated callables, so we define them inline in get_agent.
141
- // A2AAgent is directly callable (syncs over invoke_async internally).
165
+ // Both frameworks' tools are @tool-decorated callables (the decorator's
166
+ // import differs, handled in addImportToAgentFile), defined inline in
167
+ // get_agent. The client is directly callable, returning the remote's reply.
142
168
  const toolBlock = `${clientVarName} = ${clientClassName}.create()
143
169
 
144
170
  @tool
@@ -146,16 +172,18 @@ const addClientToolToGetAgent = async (tree, filePath, clientClassName, clientVa
146
172
  """Delegate a question to the remote ${targetAgentClassName} A2A agent and return its reply."""
147
173
  return str(${clientVarName}(prompt))
148
174
  `;
149
- // Prepend client creation + tool definition to the function body.
150
- // This works whether or not a prior MCP `with` block is present since we
151
- // insert before any existing statements.
152
- await (0, ast_1.applyGritQL)(tree, filePath, py(`\`def get_agent($params):
175
+ // Prepend client creation + tool definition to the function body, anchored on
176
+ // the framework's agent constructor. This works whether or not a prior MCP
177
+ // block is present since we insert before any existing statements.
178
+ const anchor = AGENT_CONSTRUCTOR[framework];
179
+ await applyGritQL(tree, filePath, py(`\`def get_agent($params):
153
180
  $body\` where {
154
- $body <: contains \`yield Agent($_)\`,
181
+ $body <: contains \`${anchor}\`,
155
182
  $body <: not contains \`${clientClassName}.create\`
156
183
  } => \`def get_agent($params):
157
184
  ${toolBlock}
158
185
  $body\``));
159
186
  };
160
- exports.default = exports.pyAgentA2aConnectionGenerator;
187
+ export default pyAgentA2aConnectionGenerator;
188
+
161
189
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/agent/a2a-connection/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/py/agent/a2a-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport {\n type AgentFramework,\n addPythonCoreClient,\n addPythonReExport,\n ensurePythonAgentConnectionProject,\n getPythonAgentConnectionModuleName,\n getPythonAgentConnectionProject,\n getPythonAgentConnectionProjectDir,\n PY_CLIENT_NAMING,\n resolveAgentFramework,\n} from '../../../utils/agent-connection/agent-connection';\nimport {\n addPythonDestructuredImport,\n applyGritQL,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { installDependencies } from '../../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport { snakeCase } from '../../../utils/names';\nimport {\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport {\n addDependenciesToPyProjectToml,\n addWorkspaceDependencyToPyProject,\n} from '../../../utils/py';\nimport type { IPyDepVersion } from '../../../utils/versions';\nimport type { PyAgentA2aConnectionGeneratorSchema } from './schema';\n\n/** Prefix a GritQL pattern with `language python` */\nconst py = (pattern: string) => `language python\\n${pattern}`;\n\n/** The module each framework imports the `tool` decorator from. */\nconst TOOL_IMPORT_MODULE: Record<AgentFramework, string> = {\n strands: 'strands',\n langchain: 'langchain_core.tools',\n};\n\n/** The GritQL pattern matching each framework's agent constructor. */\nconst AGENT_CONSTRUCTOR: Record<AgentFramework, string> = {\n strands: 'yield Agent($_)',\n langchain: 'create_agent($_)',\n};\n\n/**\n * The A2A transport dependency each framework's Layer-2 client needs. Strands\n * wraps strands' `A2AAgent` (strands-agents[a2a]); LangChain drives the a2a SDK\n * directly (a2a-sdk) and must not pull Strands in.\n */\nconst A2A_TRANSPORT_DEP: Record<AgentFramework, IPyDepVersion> = {\n strands: 'strands-agents[a2a]',\n langchain: 'a2a-sdk',\n};\n\nexport const PY_AGENT_A2A_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const pyAgentA2aConnectionGenerator = async (\n tree: Tree,\n options: PyAgentA2aConnectionGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n const agentComponent = options.sourceComponent;\n const targetAgentComponent = options.targetComponent;\n\n if (!agentComponent || !targetAgentComponent) {\n throw new Error(\n 'Both sourceComponent and targetComponent must be provided for py#agent -> a2a connections',\n );\n }\n\n if ((targetAgentComponent.protocol ?? '').toLowerCase() !== 'a2a') {\n throw new Error(\n `Target agent '${targetAgentComponent.name}' uses the ${targetAgentComponent.protocol ?? 'http'} protocol — only A2A agents can be connected as tools.`,\n );\n }\n\n if (\n targetAgentComponent.auth &&\n targetAgentComponent.auth.toLowerCase() !== 'iam'\n ) {\n throw new Error(\n `A2A agent connection currently only supports IAM authentication, but '${targetAgentComponent.name}' uses '${targetAgentComponent.auth}' authentication.`,\n );\n }\n\n const targetAgentComponentName = targetAgentComponent.name ?? 'agent';\n const targetAgentClassName = targetAgentComponent.rc as string;\n const targetAgentSnakeCase = snakeCase(targetAgentClassName);\n const targetAgentPort = targetAgentComponent.port ?? 9000;\n\n // The source agent's framework drives everything that varies: the client\n // naming + app template (shared with the mcp/gateway generators via\n // PY_CLIENT_NAMING), the A2A transport dep (see A2A_TRANSPORT_DEP), and the\n // agent.py transform below. Each framework wraps its own A2A Layer-2 client\n // (Strands' A2AAgent vs an a2a-sdk-only client) over the shared,\n // framework-agnostic A2A client config. Keyed on the framework, not a\n // boolean, so a third framework stays additive.\n const framework = resolveAgentFramework(agentComponent.framework);\n const naming = PY_CLIENT_NAMING[framework];\n\n // 1. Ensure the shared Python agent-connection project exists + has the\n // A2A core client (framework Layer-2) and its shared SigV4 auth helper.\n await ensurePythonAgentConnectionProject(tree);\n await addPythonCoreClient(tree, 'a2a', framework);\n\n const agentConnectionProjectDir = getPythonAgentConnectionProjectDir(tree);\n const agentConnectionModuleName = getPythonAgentConnectionModuleName(tree);\n\n // A2A client config + shared auth helper deps, plus the framework's A2A\n // transport dep (see A2A_TRANSPORT_DEP).\n addDependenciesToPyProjectToml(tree, agentConnectionProjectDir, [\n 'boto3',\n 'httpx',\n A2A_TRANSPORT_DEP[framework],\n ]);\n\n // 2. Generate the per-connection client into the shared agent-connection project\n const appDir = joinPathFragments(\n agentConnectionProjectDir,\n agentConnectionModuleName,\n 'app',\n );\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', naming.appTemplateSubdir),\n appDir,\n {\n targetAgentSnakeCase,\n targetAgentClassName,\n targetAgentPort,\n agentConnectionModuleName,\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Ensure app/__init__.py exists\n const appInitPath = joinPathFragments(appDir, '__init__.py');\n if (!tree.exists(appInitPath)) {\n tree.write(appInitPath, '');\n }\n\n // Add re-export to module __init__.py\n const moduleInitPath = joinPathFragments(\n agentConnectionProjectDir,\n agentConnectionModuleName,\n '__init__.py',\n );\n await addPythonReExport(\n tree,\n moduleInitPath,\n `.app.${targetAgentSnakeCase}_client_${naming.clientModuleSuffix}`,\n `${targetAgentClassName}Client${naming.clientClassSuffix}`,\n );\n\n // 3. Transform agent.py to add the A2A client import + wrap it as a tool\n const agentSourceDir = joinPathFragments(\n sourceProject.root,\n agentComponent.path ?? 'src',\n );\n const agentFilePath = joinPathFragments(agentSourceDir, 'agent.py');\n\n if (tree.exists(agentFilePath)) {\n const clientClassName = `${targetAgentClassName}Client${naming.clientClassSuffix}`;\n const clientVarName = targetAgentSnakeCase;\n const toolName = `ask_${targetAgentSnakeCase}`;\n\n await addImportToAgentFile(\n tree,\n agentFilePath,\n agentConnectionModuleName,\n clientClassName,\n framework,\n );\n await addToolToAgent(tree, agentFilePath, toolName, framework);\n await addClientToolToGetAgent(\n tree,\n agentFilePath,\n clientClassName,\n clientVarName,\n toolName,\n targetAgentClassName,\n framework,\n );\n }\n\n // 4. Add workspace dependency from agent project to agent-connection project\n addWorkspaceDependencyToPyProject(\n tree,\n sourceProject,\n getPythonAgentConnectionProject(tree),\n );\n\n // 5. Set up dev target dependencies — chain onto the target agent\n const agentName = agentComponent.name ?? 'agent';\n const devTargetName = `${agentName}-dev`;\n const targetDevTargetName = `${targetAgentComponentName}-dev`;\n\n if (sourceProject.targets?.[devTargetName]) {\n addDependencyToTargetIfNotPresent(sourceProject, devTargetName, {\n projects: [targetProject.name],\n target: targetDevTargetName,\n });\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n await addGeneratorMetricsIfApplicable(tree, [\n PY_AGENT_A2A_CONNECTION_GENERATOR_INFO,\n ]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\n/**\n * Add imports to agent.py:\n * - `tool` (from `strands`, or `langchain_core.tools` for LangChain agents)\n * - the per-connection client class from the shared agent-connection module\n */\nconst addImportToAgentFile = async (\n tree: Tree,\n filePath: string,\n agentConnectionModuleName: string,\n clientClassName: string,\n framework: AgentFramework,\n): Promise<void> => {\n await addPythonDestructuredImport(\n tree,\n filePath,\n ['tool'],\n TOOL_IMPORT_MODULE[framework],\n );\n await addPythonDestructuredImport(\n tree,\n filePath,\n [clientClassName],\n agentConnectionModuleName,\n );\n};\n\n/**\n * Add the A2A tool to the Agent's tools array using GritQL.\n *\n * Scoped to the framework's agent constructor so unrelated `tools=` keyword\n * arguments elsewhere in the file are not touched.\n */\nconst addToolToAgent = async (\n tree: Tree,\n filePath: string,\n toolName: string,\n framework: AgentFramework,\n): Promise<void> => {\n const scope = AGENT_CONSTRUCTOR[framework];\n await applyGritQL(\n tree,\n filePath,\n py(`\\`tools=$old\\` where {\n $old <: within \\`${scope}\\`,\n $old <: not contains \\`${toolName}\\`,\n if ($old <: \\`[]\\`) {\n $old => \\`[${toolName}]\\`\n } else {\n $old <: \\`[$items]\\` where { $items += \\`, ${toolName}\\` }\n }\n}`),\n );\n};\n\n/**\n * Wrap the get_agent body so the remote A2A client is created and exposed\n * as a `@tool`-decorated closure before constructing the Agent.\n *\n * Unlike MCP clients, A2A clients aren't context managers — we don't need\n * a `with` block around them. Creation + tool definition happen at the\n * top of the function body, anchored on the framework's agent constructor.\n */\nconst addClientToolToGetAgent = async (\n tree: Tree,\n filePath: string,\n clientClassName: string,\n clientVarName: string,\n toolName: string,\n targetAgentClassName: string,\n framework: AgentFramework,\n): Promise<void> => {\n if (await matchGritQL(tree, filePath, py(`\\`${clientClassName}.create\\``))) {\n return;\n }\n\n // Both frameworks' tools are @tool-decorated callables (the decorator's\n // import differs, handled in addImportToAgentFile), defined inline in\n // get_agent. The client is directly callable, returning the remote's reply.\n const toolBlock = `${clientVarName} = ${clientClassName}.create()\n\n @tool\n def ${toolName}(prompt: str) -> str:\n \"\"\"Delegate a question to the remote ${targetAgentClassName} A2A agent and return its reply.\"\"\"\n return str(${clientVarName}(prompt))\n`;\n\n // Prepend client creation + tool definition to the function body, anchored on\n // the framework's agent constructor. This works whether or not a prior MCP\n // block is present since we insert before any existing statements.\n const anchor = AGENT_CONSTRUCTOR[framework];\n await applyGritQL(\n tree,\n filePath,\n py(`\\`def get_agent($params):\n $body\\` where {\n $body <: contains \\`${anchor}\\`,\n $body <: not contains \\`${clientClassName}.create\\`\n} => \\`def get_agent($params):\n ${toolBlock}\n $body\\``),\n );\n};\n\nexport default pyAgentA2aConnectionGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","addPythonCoreClient","addPythonReExport","ensurePythonAgentConnectionProject","getPythonAgentConnectionModuleName","getPythonAgentConnectionProject","getPythonAgentConnectionProjectDir","PY_CLIENT_NAMING","resolveAgentFramework","addPythonDestructuredImport","applyGritQL","matchGritQL","formatFilesInSubtree","installDependencies","addGeneratorMetricsIfApplicable","snakeCase","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","addDependenciesToPyProjectToml","addWorkspaceDependencyToPyProject","py","pattern","TOOL_IMPORT_MODULE","strands","langchain","AGENT_CONSTRUCTOR","A2A_TRANSPORT_DEP","PY_AGENT_A2A_CONNECTION_GENERATOR_INFO","filename","pyAgentA2aConnectionGenerator","tree","options","sourceProject","targetProject","agentComponent","sourceComponent","targetAgentComponent","targetComponent","Error","protocol","toLowerCase","name","auth","targetAgentComponentName","targetAgentClassName","rc","targetAgentSnakeCase","targetAgentPort","port","framework","naming","agentConnectionProjectDir","agentConnectionModuleName","appDir","dirname","appTemplateSubdir","overwriteStrategy","KeepExisting","appInitPath","exists","write","moduleInitPath","clientModuleSuffix","clientClassSuffix","agentSourceDir","root","path","agentFilePath","clientClassName","clientVarName","toolName","addImportToAgentFile","addToolToAgent","addClientToolToGetAgent","agentName","devTargetName","targetDevTargetName","targets","projects","target","preferInstallDependencies","languages","filePath","scope","toolBlock","anchor"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ /**
5
+ * TypeScript types for options defined in schema.json
6
+ */ export { };
7
+
8
+ //# sourceMappingURL=schema.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/py/agent/a2a-connection/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ComponentMetadata } from '../../../utils/nx';\n\n/**\n * TypeScript types for options defined in schema.json\n */\nexport interface PyAgentA2aConnectionGeneratorSchema {\n sourceProject: string;\n targetProject: string;\n sourceComponent?: ComponentMetadata;\n targetComponent?: ComponentMetadata;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD;;CAEC,GACD,WAMC"}
@@ -12,4 +12,5 @@ export interface PyAgentA2aConnectionGeneratorSchema {
12
12
  targetProject: string;
13
13
  sourceComponent?: ComponentMetadata;
14
14
  targetComponent?: ComponentMetadata;
15
+ preferInstallDependencies?: boolean;
15
16
  }
@@ -20,6 +20,11 @@
20
20
  "targetComponent": {
21
21
  "type": "string",
22
22
  "description": "The target A2A agent component name"
23
+ },
24
+ "preferInstallDependencies": {
25
+ "type": "boolean",
26
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
27
+ "default": true
23
28
  }
24
29
  },
25
30
  "required": ["sourceProject", "targetProject"]