@aws/nx-plugin 1.0.0-rc.22 → 1.0.0-rc.24

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 (657) hide show
  1. package/LICENSE-THIRD-PARTY +2088 -971
  2. package/package.json +25 -10
  3. package/src/agentcore-gateway/attach-upstream.d.ts +7 -7
  4. package/src/agentcore-gateway/attach-upstream.js +19 -22
  5. package/src/agentcore-gateway/attach-upstream.js.map +1 -1
  6. package/src/agentcore-gateway/gateway-connection/generator.d.ts +3 -3
  7. package/src/agentcore-gateway/gateway-connection/generator.js +42 -45
  8. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
  9. package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
  10. package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
  11. package/src/agentcore-gateway/generator.js +89 -72
  12. package/src/agentcore-gateway/generator.js.map +1 -1
  13. package/src/agentcore-gateway/mcp-connection/generator.d.ts +2 -2
  14. package/src/agentcore-gateway/mcp-connection/generator.js +24 -30
  15. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
  16. package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
  17. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
  18. package/src/agentcore-gateway/schema.d.js +6 -0
  19. package/src/agentcore-gateway/schema.d.js.map +1 -0
  20. package/src/bin/aws-nx-mcp.js +14 -0
  21. package/src/bin/aws-nx-mcp.js.map +1 -0
  22. package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +5 -5
  23. package/src/connection/agent-local-dev.js +42 -0
  24. package/src/connection/agent-local-dev.js.map +1 -0
  25. package/src/connection/agent-runtime-config.js +9 -14
  26. package/src/connection/agent-runtime-config.js.map +1 -1
  27. package/src/connection/generator.js +262 -207
  28. package/src/connection/generator.js.map +1 -1
  29. package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
  30. package/src/connection/local-dev.js +37 -0
  31. package/src/connection/local-dev.js.map +1 -0
  32. package/src/connection/schema.d.js +6 -0
  33. package/src/connection/schema.d.js.map +1 -0
  34. package/src/index.js +2 -5
  35. package/src/index.js.map +1 -1
  36. package/src/infra/app/__snapshots__/generator.spec.ts.snap +4 -26
  37. package/src/infra/app/generator.js +133 -123
  38. package/src/infra/app/generator.js.map +1 -1
  39. package/src/infra/app/schema.d.js +6 -0
  40. package/src/infra/app/schema.d.js.map +1 -0
  41. package/src/license/config-types.js +5 -3
  42. package/src/license/config-types.js.map +1 -1
  43. package/src/license/config.d.ts +1 -1
  44. package/src/license/config.js +267 -242
  45. package/src/license/config.js.map +1 -1
  46. package/src/license/dependency-check/check.js +51 -46
  47. package/src/license/dependency-check/check.js.map +1 -1
  48. package/src/license/dependency-check/collectors/collector.js +41 -71
  49. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  50. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  51. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  52. package/src/license/dependency-check/collectors/python-collector.js +55 -62
  53. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  54. package/src/license/dependency-check/evaluator.js +40 -68
  55. package/src/license/dependency-check/evaluator.js.map +1 -1
  56. package/src/license/dependency-check/executor.js +30 -22
  57. package/src/license/dependency-check/executor.js.map +1 -1
  58. package/src/license/dependency-check/pre-approved.js +949 -336
  59. package/src/license/dependency-check/pre-approved.js.map +1 -1
  60. package/src/license/dependency-check/types.js +2 -3
  61. package/src/license/dependency-check/types.js.map +1 -1
  62. package/src/license/generator.js +55 -60
  63. package/src/license/generator.js.map +1 -1
  64. package/src/license/index.js +3 -9
  65. package/src/license/index.js.map +1 -1
  66. package/src/license/known-exceptions.js +14 -13
  67. package/src/license/known-exceptions.js.map +1 -1
  68. package/src/license/schema.d.js +6 -0
  69. package/src/license/schema.d.js.map +1 -0
  70. package/src/license/sync/generator.js +94 -119
  71. package/src/license/sync/generator.js.map +1 -1
  72. package/src/license/sync/project-file-sync.js +28 -35
  73. package/src/license/sync/project-file-sync.js.map +1 -1
  74. package/src/mcp-server/generator-info.js +130 -160
  75. package/src/mcp-server/generator-info.js.map +1 -1
  76. package/src/mcp-server/guide-pipeline.js +184 -206
  77. package/src/mcp-server/guide-pipeline.js.map +1 -1
  78. package/src/mcp-server/guide-render.js +10 -25
  79. package/src/mcp-server/guide-render.js.map +1 -1
  80. package/src/mcp-server/index.js +6 -10
  81. package/src/mcp-server/index.js.map +1 -1
  82. package/src/mcp-server/mdx-ast.js +39 -57
  83. package/src/mcp-server/mdx-ast.js.map +1 -1
  84. package/src/mcp-server/option-filter.js +33 -47
  85. package/src/mcp-server/option-filter.js.map +1 -1
  86. package/src/mcp-server/schema-registry.js +27 -40
  87. package/src/mcp-server/schema-registry.js.map +1 -1
  88. package/src/mcp-server/schema.js +9 -7
  89. package/src/mcp-server/schema.js.map +1 -1
  90. package/src/mcp-server/server.js +20 -24
  91. package/src/mcp-server/server.js.map +1 -1
  92. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  93. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  94. package/src/mcp-server/tools/general-guidance.js +28 -25
  95. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  96. package/src/mcp-server/tools/generator-guide.js +29 -37
  97. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  98. package/src/mcp-server/tools/list-generators.js +19 -25
  99. package/src/mcp-server/tools/list-generators.js.map +1 -1
  100. package/src/open-api/ts-client/generator.js +16 -26
  101. package/src/open-api/ts-client/generator.js.map +1 -1
  102. package/src/open-api/ts-client/schema.d.js +6 -0
  103. package/src/open-api/ts-client/schema.d.js.map +1 -0
  104. package/src/open-api/ts-hooks/generator.js +13 -21
  105. package/src/open-api/ts-hooks/generator.js.map +1 -1
  106. package/src/open-api/ts-hooks/schema.d.js +6 -0
  107. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  108. package/src/open-api/ts-metadata/generator.js +12 -20
  109. package/src/open-api/ts-metadata/generator.js.map +1 -1
  110. package/src/open-api/ts-metadata/schema.d.js +6 -0
  111. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  112. package/src/open-api/utils/codegen-data/languages.js +42 -60
  113. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  114. package/src/open-api/utils/codegen-data/types.js +31 -30
  115. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  116. package/src/open-api/utils/codegen-data.js +253 -269
  117. package/src/open-api/utils/codegen-data.js.map +1 -1
  118. package/src/open-api/utils/normalise.js +242 -241
  119. package/src/open-api/utils/normalise.js.map +1 -1
  120. package/src/open-api/utils/parse.js +8 -14
  121. package/src/open-api/utils/parse.js.map +1 -1
  122. package/src/open-api/utils/refs.js +12 -22
  123. package/src/open-api/utils/refs.js.map +1 -1
  124. package/src/open-api/utils/types.js +5 -2
  125. package/src/open-api/utils/types.js.map +1 -1
  126. package/src/preset/__snapshots__/generator.spec.ts.snap +31 -6
  127. package/src/preset/generator.d.ts +1 -1
  128. package/src/preset/generator.js +130 -112
  129. package/src/preset/generator.js.map +1 -1
  130. package/src/preset/schema.d.js +6 -0
  131. package/src/preset/schema.d.js.map +1 -0
  132. package/src/preset/schema.d.ts +0 -1
  133. package/src/preset/schema.json +0 -5
  134. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
  135. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.frameworks.spec.ts.snap} +18 -845
  136. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +535 -0
  137. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -2
  138. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -1
  139. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +1 -1
  140. package/src/py/agent/a2a-connection/generator.js +70 -75
  141. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  142. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  143. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  144. package/src/py/agent/files/ag-ui-langchain/main.py.template +10 -0
  145. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +6 -8
  146. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +3 -3
  147. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +3 -3
  148. package/src/py/agent/gateway-connection/generator.js +61 -58
  149. package/src/py/agent/gateway-connection/generator.js.map +1 -1
  150. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  151. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  152. package/src/py/agent/generator.js +227 -194
  153. package/src/py/agent/generator.js.map +1 -1
  154. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -12
  155. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +1 -1
  156. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +1 -1
  157. package/src/py/agent/mcp-connection/generator.js +53 -52
  158. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  159. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  160. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  161. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -2
  162. package/src/py/agent/react-connection/generator.js +51 -58
  163. package/src/py/agent/react-connection/generator.js.map +1 -1
  164. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
  165. package/src/py/agent/react-connection/local-dev.js +36 -0
  166. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  167. package/src/py/agent/react-connection/schema.d.js +8 -0
  168. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  169. package/src/py/agent/schema.d.js +6 -0
  170. package/src/py/agent/schema.d.js.map +1 -0
  171. package/src/py/api/generator.js +12 -12
  172. package/src/py/api/generator.js.map +1 -1
  173. package/src/py/api/schema.d.js +6 -0
  174. package/src/py/api/schema.d.js.map +1 -0
  175. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +68 -28
  176. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
  177. package/src/py/dynamodb/agent-connection/generator.js +27 -29
  178. package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
  179. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  180. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  181. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +3 -3
  182. package/src/py/dynamodb/fast-api-connection/generator.js +26 -28
  183. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
  184. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  185. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  186. package/src/py/dynamodb/files/__name__/client.py.template +5 -5
  187. package/src/py/dynamodb/files/__name__/entities/base.py.template +2 -2
  188. package/src/py/dynamodb/files/config.json.template +1 -1
  189. package/src/py/dynamodb/generator.js +63 -62
  190. package/src/py/dynamodb/generator.js.map +1 -1
  191. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
  192. package/src/py/dynamodb/mcp-server-connection/generator.js +27 -29
  193. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
  194. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  195. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  196. package/src/py/dynamodb/schema.d.js +6 -0
  197. package/src/py/dynamodb/schema.d.js.map +1 -0
  198. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +45 -4632
  199. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
  200. package/src/py/fast-api/generator.js +79 -85
  201. package/src/py/fast-api/generator.js.map +1 -1
  202. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +3 -2
  203. package/src/py/fast-api/react/generator.js +22 -24
  204. package/src/py/fast-api/react/generator.js.map +1 -1
  205. package/src/py/fast-api/react/open-api.js +28 -29
  206. package/src/py/fast-api/react/open-api.js.map +1 -1
  207. package/src/py/fast-api/react/schema.d.js +6 -0
  208. package/src/py/fast-api/react/schema.d.js.map +1 -0
  209. package/src/py/fast-api/schema.d.js +6 -0
  210. package/src/py/fast-api/schema.d.js.map +1 -0
  211. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  212. package/src/py/lambda-function/generator.js +57 -58
  213. package/src/py/lambda-function/generator.js.map +1 -1
  214. package/src/py/lambda-function/schema.d.js +6 -0
  215. package/src/py/lambda-function/schema.d.js.map +1 -0
  216. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
  217. package/src/py/mcp-server/generator.js +149 -131
  218. package/src/py/mcp-server/generator.js.map +1 -1
  219. package/src/py/mcp-server/schema.d.js +6 -0
  220. package/src/py/mcp-server/schema.d.js.map +1 -0
  221. package/src/py/project/generator.d.ts +14 -1
  222. package/src/py/project/generator.js +137 -88
  223. package/src/py/project/generator.js.map +1 -1
  224. package/src/py/project/schema.d.js +6 -0
  225. package/src/py/project/schema.d.js.map +1 -0
  226. package/src/sdk/agentcore-gateway.d.ts +6 -0
  227. package/src/sdk/agentcore-gateway.js +7 -0
  228. package/src/sdk/agentcore-gateway.js.map +1 -0
  229. package/src/sdk/connection.d.ts +6 -0
  230. package/src/sdk/connection.js +6 -0
  231. package/src/sdk/connection.js.map +1 -0
  232. package/{sdk → src/sdk}/license.d.ts +4 -4
  233. package/src/sdk/license.js +7 -0
  234. package/src/sdk/license.js.map +1 -0
  235. package/src/sdk/open-api.d.ts +10 -0
  236. package/src/sdk/open-api.js +8 -0
  237. package/src/sdk/open-api.js.map +1 -0
  238. package/src/sdk/py.d.ts +14 -0
  239. package/src/sdk/py.js +10 -0
  240. package/src/sdk/py.js.map +1 -0
  241. package/src/sdk/terraform.d.ts +6 -0
  242. package/src/sdk/terraform.js +7 -0
  243. package/src/sdk/terraform.js.map +1 -0
  244. package/src/sdk/ts.d.ts +33 -0
  245. package/src/sdk/ts.js +35 -0
  246. package/src/sdk/ts.js.map +1 -0
  247. package/{sdk → src/sdk}/utils/ast.d.ts +2 -2
  248. package/src/sdk/utils/ast.js +7 -0
  249. package/src/sdk/utils/ast.js.map +1 -0
  250. package/{sdk → src/sdk}/utils/format.d.ts +1 -1
  251. package/src/sdk/utils/format.js +6 -0
  252. package/src/sdk/utils/format.js.map +1 -0
  253. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  254. package/src/sdk/utils/test.js +6 -0
  255. package/src/sdk/utils/test.js.map +1 -0
  256. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +2 -8
  257. package/src/smithy/project/files/build.Dockerfile.template +1 -4
  258. package/src/smithy/project/generator.js +44 -42
  259. package/src/smithy/project/generator.js.map +1 -1
  260. package/src/smithy/project/schema.d.js +6 -0
  261. package/src/smithy/project/schema.d.js.map +1 -0
  262. package/src/smithy/react-connection/generator.js +35 -46
  263. package/src/smithy/react-connection/generator.js.map +1 -1
  264. package/src/smithy/react-connection/schema.d.js +6 -0
  265. package/src/smithy/react-connection/schema.d.js.map +1 -0
  266. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +395 -72
  267. package/src/smithy/ts/api/generator.js +121 -111
  268. package/src/smithy/ts/api/generator.js.map +1 -1
  269. package/src/smithy/ts/api/schema.d.js +6 -0
  270. package/src/smithy/ts/api/schema.d.js.map +1 -0
  271. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  272. package/src/terraform/project/generator.js +141 -103
  273. package/src/terraform/project/generator.js.map +1 -1
  274. package/src/terraform/project/schema.d.js +9 -0
  275. package/src/terraform/project/schema.d.js.map +1 -0
  276. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +336 -92
  277. package/src/trpc/backend/generator.js +93 -86
  278. package/src/trpc/backend/generator.js.map +1 -1
  279. package/src/trpc/backend/schema.d.js +6 -0
  280. package/src/trpc/backend/schema.d.js.map +1 -0
  281. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
  282. package/src/trpc/react/generator.js +59 -58
  283. package/src/trpc/react/generator.js.map +1 -1
  284. package/src/trpc/react/schema.d.js +6 -0
  285. package/src/trpc/react/schema.d.js.map +1 -0
  286. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +11 -11
  287. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -1
  288. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +1 -1
  289. package/src/ts/agent/a2a-connection/generator.js +58 -54
  290. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  291. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  292. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  293. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +5 -5
  294. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +3 -3
  295. package/src/ts/agent/gateway-connection/generator.js +57 -52
  296. package/src/ts/agent/gateway-connection/generator.js.map +1 -1
  297. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  298. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  299. package/src/ts/agent/generator.js +165 -136
  300. package/src/ts/agent/generator.js.map +1 -1
  301. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
  302. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +1 -1
  303. package/src/ts/agent/mcp-connection/generator.js +48 -46
  304. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  305. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  306. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  307. package/src/ts/agent/react-connection/generator.js +79 -79
  308. package/src/ts/agent/react-connection/generator.js.map +1 -1
  309. package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
  310. package/src/ts/agent/react-connection/local-dev.js +17 -0
  311. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  312. package/src/ts/agent/react-connection/schema.d.js +8 -0
  313. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  314. package/src/ts/agent/schema.d.js +6 -0
  315. package/src/ts/agent/schema.d.js.map +1 -0
  316. package/src/ts/api/generator.js +16 -18
  317. package/src/ts/api/generator.js.map +1 -1
  318. package/src/ts/api/schema.d.js +6 -0
  319. package/src/ts/api/schema.d.js.map +1 -0
  320. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +8 -8
  321. package/src/ts/astro-docs/generator.js +59 -48
  322. package/src/ts/astro-docs/generator.js.map +1 -1
  323. package/src/ts/astro-docs/schema.d.js +6 -0
  324. package/src/ts/astro-docs/schema.d.js.map +1 -0
  325. package/src/ts/docs/generator.js +10 -10
  326. package/src/ts/docs/generator.js.map +1 -1
  327. package/src/ts/docs/schema.d.js +6 -0
  328. package/src/ts/docs/schema.d.js.map +1 -0
  329. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +68 -30
  330. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
  331. package/src/ts/dynamodb/agent-connection/generator.js +21 -23
  332. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  333. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  334. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  335. package/src/ts/dynamodb/files/config.json.template +1 -1
  336. package/src/ts/dynamodb/files/src/client.ts.template +7 -7
  337. package/src/ts/dynamodb/generator.js +64 -63
  338. package/src/ts/dynamodb/generator.js.map +1 -1
  339. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
  340. package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
  341. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  342. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  343. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  344. package/src/ts/dynamodb/schema.d.js +6 -0
  345. package/src/ts/dynamodb/schema.d.js.map +1 -0
  346. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  347. package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
  348. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  349. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  350. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  351. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  352. package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
  353. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  354. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  355. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  356. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  357. package/src/ts/lambda-function/generator.js +55 -55
  358. package/src/ts/lambda-function/generator.js.map +1 -1
  359. package/src/ts/lambda-function/io.js +83 -52
  360. package/src/ts/lambda-function/io.js.map +1 -1
  361. package/src/ts/lambda-function/schema.d.js +6 -0
  362. package/src/ts/lambda-function/schema.d.js.map +1 -0
  363. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +23 -36
  364. package/src/ts/lib/biome.js +37 -37
  365. package/src/ts/lib/biome.js.map +1 -1
  366. package/src/ts/lib/generator.js +75 -77
  367. package/src/ts/lib/generator.js.map +1 -1
  368. package/src/ts/lib/schema.d.js +6 -0
  369. package/src/ts/lib/schema.d.js.map +1 -0
  370. package/src/ts/lib/ts-project-utils.js +65 -70
  371. package/src/ts/lib/ts-project-utils.js.map +1 -1
  372. package/src/ts/lib/types.js +5 -2
  373. package/src/ts/lib/types.js.map +1 -1
  374. package/src/ts/lib/vitest.js +29 -26
  375. package/src/ts/lib/vitest.js.map +1 -1
  376. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
  377. package/src/ts/mcp-server/generator.js +157 -138
  378. package/src/ts/mcp-server/generator.js.map +1 -1
  379. package/src/ts/mcp-server/schema.d.js +6 -0
  380. package/src/ts/mcp-server/schema.d.js.map +1 -0
  381. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +14 -9
  382. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  383. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +4 -4
  384. package/src/ts/nx-generator/generator.js +84 -83
  385. package/src/ts/nx-generator/generator.js.map +1 -1
  386. package/src/ts/nx-generator/schema.d.js +6 -0
  387. package/src/ts/nx-generator/schema.d.js.map +1 -0
  388. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +30 -18
  389. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  390. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  391. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  392. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  393. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  394. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
  395. package/src/ts/nx-plugin/generator.js +49 -48
  396. package/src/ts/nx-plugin/generator.js.map +1 -1
  397. package/src/ts/nx-plugin/schema.d.js +9 -0
  398. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  399. package/src/ts/nx-plugin/utils.js +32 -44
  400. package/src/ts/nx-plugin/utils.js.map +1 -1
  401. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +34 -30
  402. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
  403. package/src/ts/rdb/agent-connection/generator.js +38 -39
  404. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  405. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  406. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  407. package/src/ts/rdb/files/config.json.template +1 -1
  408. package/src/ts/rdb/files/prisma.config.ts.template +2 -2
  409. package/src/ts/rdb/files/src/prisma.ts.template +7 -7
  410. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  411. package/src/ts/rdb/generator.js +130 -117
  412. package/src/ts/rdb/generator.js.map +1 -1
  413. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
  414. package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
  415. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  416. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  417. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  418. package/src/ts/rdb/schema.d.js +6 -0
  419. package/src/ts/rdb/schema.d.js.map +1 -0
  420. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  421. package/src/ts/rdb/smithy-connection/generator.js +46 -43
  422. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  423. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  424. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  425. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  426. package/src/ts/rdb/trpc-connection/generator.js +36 -31
  427. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  428. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  429. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  430. package/src/ts/rdb/utils.js +9 -11
  431. package/src/ts/rdb/utils.js.map +1 -1
  432. package/src/ts/react-website/agui/generator.js +69 -61
  433. package/src/ts/react-website/agui/generator.js.map +1 -1
  434. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +179 -332
  435. package/src/ts/react-website/app/generator.js +197 -188
  436. package/src/ts/react-website/app/generator.js.map +1 -1
  437. package/src/ts/react-website/app/schema.d.js +6 -0
  438. package/src/ts/react-website/app/schema.d.js.map +1 -0
  439. package/src/ts/react-website/app/schema.json +6 -6
  440. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +118 -4
  441. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +27 -7
  442. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  443. package/src/ts/react-website/cognito-auth/generator.js +60 -60
  444. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  445. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  446. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  447. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  448. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  449. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  450. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  451. package/src/ts/react-website/runtime-config/generator.js +29 -31
  452. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  453. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  454. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  455. package/src/ts/sync/generator.js +60 -59
  456. package/src/ts/sync/generator.js.map +1 -1
  457. package/src/ts/website/app/generator.js +10 -10
  458. package/src/ts/website/app/generator.js.map +1 -1
  459. package/src/ts/website/app/schema.d.js +6 -0
  460. package/src/ts/website/app/schema.d.js.map +1 -0
  461. package/src/ts/website/app/schema.json +6 -6
  462. package/src/ts/website/auth/generator.js +11 -11
  463. package/src/ts/website/auth/generator.js.map +1 -1
  464. package/src/ts/website/auth/schema.d.js +6 -0
  465. package/src/ts/website/auth/schema.d.js.map +1 -0
  466. package/src/utils/agent-chat/agent-chat.d.ts +1 -1
  467. package/src/utils/agent-chat/agent-chat.js +11 -12
  468. package/src/utils/agent-chat/agent-chat.js.map +1 -1
  469. package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
  470. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
  471. package/src/utils/agent-chat/files/http-py/chat.ts.template +1 -1
  472. package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
  473. package/src/utils/agent-connection/agent-connection.d.ts +9 -3
  474. package/src/utils/agent-connection/agent-connection.js +133 -147
  475. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  476. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +1 -1
  477. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
  478. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +1 -1
  479. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +1 -1
  480. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +1 -1
  481. package/src/utils/agent-core-constructs/agent-core-constructs.js +53 -50
  482. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  483. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  484. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +5 -5
  485. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +2 -2
  486. package/src/utils/api-constructs/api-constructs.js +30 -31
  487. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  488. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +14 -6
  489. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
  490. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  491. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +28 -14
  492. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
  493. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +91 -4
  494. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  495. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  496. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  497. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  498. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  499. package/src/utils/ast/website.js +17 -19
  500. package/src/utils/ast/website.js.map +1 -1
  501. package/src/utils/ast.js +72 -97
  502. package/src/utils/ast.js.map +1 -1
  503. package/src/utils/bundle/bundle.js +50 -47
  504. package/src/utils/bundle/bundle.js.map +1 -1
  505. package/src/utils/commands.js +47 -26
  506. package/src/utils/commands.js.map +1 -1
  507. package/src/utils/config/index.d.ts +2 -2
  508. package/src/utils/config/index.js +5 -4
  509. package/src/utils/config/index.js.map +1 -1
  510. package/src/utils/config/utils.js +48 -58
  511. package/src/utils/config/utils.js.map +1 -1
  512. package/src/utils/connection/open-api/react.d.ts +5 -5
  513. package/src/utils/connection/open-api/react.js +81 -77
  514. package/src/utils/connection/open-api/react.js.map +1 -1
  515. package/src/utils/containers.js +22 -23
  516. package/src/utils/containers.js.map +1 -1
  517. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +32 -33
  518. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  519. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +12 -2
  520. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  521. package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +2 -2
  522. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +1 -1
  523. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +17 -2
  524. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  525. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  526. package/src/utils/files/common/scripts/src/rdb/{pull-image.ts.template → shared/pull-image.ts.template} +1 -1
  527. package/src/utils/files/common/scripts/src/rdb/{start-container.ts.template → shared/start-container.ts.template} +16 -1
  528. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
  529. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  530. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +3 -3
  531. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  532. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +2 -2
  533. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  534. package/src/utils/format.js +153 -99
  535. package/src/utils/format.js.map +1 -1
  536. package/src/utils/fs.js +14 -13
  537. package/src/utils/fs.js.map +1 -1
  538. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  539. package/src/utils/function-constructs/function-constructs.js +21 -26
  540. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  541. package/src/utils/generators.js +18 -20
  542. package/src/utils/generators.js.map +1 -1
  543. package/src/utils/git.js +19 -34
  544. package/src/utils/git.js.map +1 -1
  545. package/src/utils/iac-providers.js +5 -5
  546. package/src/utils/iac-providers.js.map +1 -1
  547. package/src/utils/iac.js +12 -14
  548. package/src/utils/iac.js.map +1 -1
  549. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +112 -2
  550. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +19 -6
  551. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +104 -2
  552. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  553. package/src/utils/identity-constructs/identity-constructs.js +24 -28
  554. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  555. package/src/utils/js.js +27 -20
  556. package/src/utils/js.js.map +1 -1
  557. package/src/utils/mcp.js +34 -41
  558. package/src/utils/mcp.js.map +1 -1
  559. package/src/utils/metrics.js +30 -45
  560. package/src/utils/metrics.js.map +1 -1
  561. package/src/utils/mock-project-graph.js +8 -12
  562. package/src/utils/mock-project-graph.js.map +1 -1
  563. package/src/utils/names.d.ts +16 -0
  564. package/src/utils/names.js +39 -48
  565. package/src/utils/names.js.map +1 -1
  566. package/src/utils/npm-scope.js +9 -17
  567. package/src/utils/npm-scope.js.map +1 -1
  568. package/src/utils/nx.d.ts +18 -2
  569. package/src/utils/nx.js +111 -74
  570. package/src/utils/nx.js.map +1 -1
  571. package/src/utils/nxlv-python.js +27 -15
  572. package/src/utils/nxlv-python.js.map +1 -1
  573. package/src/utils/object.js +5 -11
  574. package/src/utils/object.js.map +1 -1
  575. package/src/utils/paths.js +11 -15
  576. package/src/utils/paths.js.map +1 -1
  577. package/src/utils/pkg-manager.js +4 -9
  578. package/src/utils/pkg-manager.js.map +1 -1
  579. package/src/utils/pnpm-workspace.js +22 -22
  580. package/src/utils/pnpm-workspace.js.map +1 -1
  581. package/src/utils/port.js +26 -36
  582. package/src/utils/port.js.map +1 -1
  583. package/src/utils/py.d.ts +14 -1
  584. package/src/utils/py.js +63 -45
  585. package/src/utils/py.js.map +1 -1
  586. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  587. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +3 -3
  588. package/src/utils/rdb-constructs/rdb-constructs.js +31 -33
  589. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  590. package/src/utils/shared-constructs-constants.js +16 -16
  591. package/src/utils/shared-constructs-constants.js.map +1 -1
  592. package/src/utils/shared-constructs.js +57 -54
  593. package/src/utils/shared-constructs.js.map +1 -1
  594. package/src/utils/shared-dynamodb-scripts.js +16 -14
  595. package/src/utils/shared-dynamodb-scripts.js.map +1 -1
  596. package/src/utils/shared-infra-config.js +30 -31
  597. package/src/utils/shared-infra-config.js.map +1 -1
  598. package/src/utils/shared-infra-scripts.js +30 -25
  599. package/src/utils/shared-infra-scripts.js.map +1 -1
  600. package/src/utils/shared-rdb-scripts.d.ts +8 -3
  601. package/src/utils/shared-rdb-scripts.js +21 -13
  602. package/src/utils/shared-rdb-scripts.js.map +1 -1
  603. package/src/utils/shared-scripts.js +12 -17
  604. package/src/utils/shared-scripts.js.map +1 -1
  605. package/src/utils/shared-shadcn.js +64 -60
  606. package/src/utils/shared-shadcn.js.map +1 -1
  607. package/src/utils/test.d.ts +8 -0
  608. package/src/utils/test.js +33 -25
  609. package/src/utils/test.js.map +1 -1
  610. package/src/utils/toml.js +7 -15
  611. package/src/utils/toml.js.map +1 -1
  612. package/src/utils/versions.d.ts +31 -4
  613. package/src/utils/versions.js +40 -23
  614. package/src/utils/versions.js.map +1 -1
  615. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  616. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +4 -4
  617. package/src/utils/website-constructs/website-constructs.js +31 -30
  618. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  619. package/bin/aws-nx-mcp.js +0 -17
  620. package/bin/aws-nx-mcp.js.map +0 -1
  621. package/sdk/agentcore-gateway.d.ts +0 -6
  622. package/sdk/agentcore-gateway.js +0 -11
  623. package/sdk/agentcore-gateway.js.map +0 -1
  624. package/sdk/connection.d.ts +0 -6
  625. package/sdk/connection.js +0 -10
  626. package/sdk/connection.js.map +0 -1
  627. package/sdk/license.js +0 -14
  628. package/sdk/license.js.map +0 -1
  629. package/sdk/open-api.d.ts +0 -10
  630. package/sdk/open-api.js +0 -15
  631. package/sdk/open-api.js.map +0 -1
  632. package/sdk/py.d.ts +0 -14
  633. package/sdk/py.js +0 -18
  634. package/sdk/py.js.map +0 -1
  635. package/sdk/terraform.d.ts +0 -6
  636. package/sdk/terraform.js +0 -11
  637. package/sdk/terraform.js.map +0 -1
  638. package/sdk/ts.d.ts +0 -33
  639. package/sdk/ts.js +0 -53
  640. package/sdk/ts.js.map +0 -1
  641. package/sdk/utils/ast.js +0 -12
  642. package/sdk/utils/ast.js.map +0 -1
  643. package/sdk/utils/format.js +0 -10
  644. package/sdk/utils/format.js.map +0 -1
  645. package/sdk/utils/test.js +0 -10
  646. package/sdk/utils/test.js.map +0 -1
  647. package/src/connection/agent-serve-local.js +0 -48
  648. package/src/connection/agent-serve-local.js.map +0 -1
  649. package/src/connection/serve-local.js +0 -41
  650. package/src/connection/serve-local.js.map +0 -1
  651. package/src/py/agent/react-connection/serve-local.js +0 -38
  652. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  653. package/src/ts/agent/react-connection/serve-local.js +0 -19
  654. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  655. package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +0 -59
  656. /package/src/agentcore-gateway/files/project/{serve-local.ts.template → local-dev.ts.template} +0 -0
  657. /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"agent-connection.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-connection/agent-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/agent-connection/agent-connection.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport pyProjectGenerator, {\n getPyProjectDetails,\n} from '../../py/project/generator';\nimport tsProjectGenerator from '../../ts/lib/generator';\nimport { addStarExport, applyGritQL, matchGritQL } from '../ast';\nimport { addDependenciesToPyProjectToml } from '../py';\nimport type { IPyDepVersion } from '../versions';\n\n/** Prefix a GritQL pattern with `language python` */\nconst py = (pattern: string) => `language python\\n${pattern}`;\n\nconst AGENT_CONNECTION_DIR = 'agent-connection';\nconst PACKAGES_DIR = 'packages';\nconst COMMON_DIR = 'common';\n\nexport const AGENT_CONNECTION_PROJECT_DIR = joinPathFragments(\n PACKAGES_DIR,\n COMMON_DIR,\n AGENT_CONNECTION_DIR,\n);\n\nconst PY_AGENT_CONNECTION_NAME = 'agent_connection';\n\n/**\n * Get the directory of the shared Python agent-connection project.\n */\nexport function getPythonAgentConnectionProjectDir(tree: Tree): string {\n const { dir } = getPyProjectDetails(tree, {\n name: PY_AGENT_CONNECTION_NAME,\n directory: joinPathFragments(PACKAGES_DIR, COMMON_DIR),\n });\n return dir;\n}\n\n/**\n * Get the Python module name of the shared agent-connection project.\n */\nexport function getPythonAgentConnectionModuleName(tree: Tree): string {\n const { normalizedModuleName } = getPyProjectDetails(tree, {\n name: PY_AGENT_CONNECTION_NAME,\n directory: joinPathFragments(PACKAGES_DIR, COMMON_DIR),\n });\n return normalizedModuleName;\n}\n\n/**\n * Get the shared agent-connection project as `{ name, root }`, suitable for\n * passing to {@link addWorkspaceDependencyToPyProject} (which derives the\n * dependency's PEP 503 distribution name from the project itself, so callers\n * never construct the name).\n */\nexport function getPythonAgentConnectionProject(tree: Tree): {\n name: string;\n root: string;\n} {\n const { fullyQualifiedName, dir } = getPyProjectDetails(tree, {\n name: PY_AGENT_CONNECTION_NAME,\n directory: joinPathFragments(PACKAGES_DIR, COMMON_DIR),\n });\n return { name: fullyQualifiedName, root: dir };\n}\n\n/**\n * The connection protocols an agent framework can connect over. Each maps to a\n * framework-agnostic Layer-0/1 template directory plus a per-framework Layer-2\n * client directory (see `FRAMEWORKS`).\n */\nexport type ConnectionProtocol = 'mcp' | 'gateway' | 'a2a';\n\n/**\n * The agent frameworks we can generate connection clients for. Adding a new\n * framework is an additive change: append an entry to `FRAMEWORKS` with its\n * Layer-2 template directories and dependencies — the framework-agnostic\n * Layer-0/1 (`core-auth`, `core-shared`, the per-protocol transports/configs)\n * is reused unchanged.\n */\nexport type AgentFramework = 'strands' | 'langchain';\n\n/**\n * Resolve an agent component's framework, defaulting to `strands`. Connection\n * generators dispatch on the returned framework to pick the matching templates\n * and agent.py/agent.ts transforms.\n */\nexport function resolveAgentFramework(\n framework: string | undefined,\n): AgentFramework {\n return framework === 'langchain' ? 'langchain' : 'strands';\n}\n\n/**\n * Framework-agnostic Layer-1 templates, keyed by protocol. These resolve the\n * endpoint and build the signed transport/client-config; they contain no\n * framework dependency.\n */\nconst TS_PROTOCOL_TEMPLATES: Record<ConnectionProtocol, string> = {\n mcp: 'core-mcp',\n gateway: 'core-gateway',\n a2a: 'core-a2a',\n};\nconst PY_PROTOCOL_TEMPLATES: Record<ConnectionProtocol, string> = {\n mcp: 'py-core-mcp',\n gateway: 'py-core-gateway',\n a2a: 'py-core-a2a',\n};\n\n/**\n * A re-export the framework base emits into the agent-connection module's\n * `__init__.py` (the agent server entry point imports these by name).\n */\ninterface BaseReExport {\n fromModule: string;\n importName: string;\n}\n\n/**\n * A framework's Layer-2 templates for one language. `base` (optional) holds the\n * helpers every connection of that framework needs (error logging, per-session\n * agent cache); `baseReExports` lists what those helpers expose at the module\n * root. `protocols` maps each *supported* protocol to the thin client that wraps\n * the matching Layer-1 transport/config in the framework's client type.\n *\n * A framework whose Layer-2 needs no base helpers (e.g. LangChain, whose AG-UI\n * foundation reuses only the framework-agnostic session context) omits `base`\n * and leaves `baseReExports` empty.\n *\n * A protocol absent from `protocols` is not supported by that framework in that\n * language — callers must check before emitting. `deps` are the extra package\n * dependencies the base helpers require (per-connection client deps are added\n * by the connection generators, not here).\n */\ninterface FrameworkLanguageTemplates<Dep extends string> {\n base?: string;\n baseReExports: BaseReExport[];\n protocols: Partial<Record<ConnectionProtocol, string>>;\n deps: Dep[];\n}\n\n/**\n * Per-framework Layer-2 templates. Support is asymmetric by design: a framework\n * may target only one language (`ts`/`py` is optional) and only a subset of\n * protocols. Adding a framework — or extending an existing one to a new\n * language/protocol — is an additive change to this registry.\n */\ninterface FrameworkTemplates {\n ts?: FrameworkLanguageTemplates<string>;\n py?: FrameworkLanguageTemplates<IPyDepVersion>;\n}\n\nconst FRAMEWORKS: Record<AgentFramework, FrameworkTemplates> = {\n strands: {\n ts: {\n base: 'core-strands/base',\n baseReExports: [\n {\n fromModule: './core/with-session-id-strands.js',\n importName: '*',\n },\n {\n fromModule: './core/model-errors-strands.js',\n importName: '*',\n },\n ],\n protocols: {\n mcp: 'core-strands/mcp',\n gateway: 'core-strands/gateway',\n a2a: 'core-strands/a2a',\n },\n deps: [],\n },\n py: {\n base: 'py-core-strands/base',\n baseReExports: [\n {\n fromModule: '.core.with_session_id_strands',\n importName: 'with_session_id',\n },\n {\n fromModule: '.core.model_errors_strands',\n importName: 'log_model_errors',\n },\n ],\n protocols: {\n mcp: 'py-core-strands/mcp',\n gateway: 'py-core-strands/gateway',\n a2a: 'py-core-strands/a2a',\n },\n deps: ['strands-agents'],\n },\n },\n langchain: {\n // LangChain is supported for Python agents only (the TypeScript LangChain\n // agent foundation has no in-process AG-UI <-> LangGraph adapter, so it is\n // not scaffolded — see ts#agent). Its Layer-2 clients stay usable after\n // agent construction, so there is no base helper layer (no model-error\n // logger / per-session agent cache) and no strands-agents dependency — its\n // AG-UI foundation reuses only the framework-agnostic session context, and\n // its A2A client drives the a2a SDK directly rather than wrapping Strands'\n // A2AAgent. The per-connection adapter dependency (langchain-mcp-adapters /\n // a2a-sdk) is added by the connection generators.\n py: {\n baseReExports: [],\n protocols: {\n mcp: 'py-core-langchain/mcp',\n gateway: 'py-core-langchain/gateway',\n a2a: 'py-core-langchain/a2a',\n },\n deps: [],\n },\n },\n};\n\n/** Resolve a framework's templates for a language + protocol, or throw. */\nfunction frameworkLanguage<L extends 'ts' | 'py'>(\n framework: AgentFramework,\n language: L,\n protocol: ConnectionProtocol,\n): NonNullable<FrameworkTemplates[L]> & { protocol: string } {\n const lang = FRAMEWORKS[framework][language];\n if (!lang) {\n throw new Error(\n `The '${framework}' framework does not support ${language === 'ts' ? 'TypeScript' : 'Python'} agents.`,\n );\n }\n const protocolDir = lang.protocols[protocol];\n if (!protocolDir) {\n throw new Error(\n `The '${framework}' framework does not support ${protocol} connections for ${language === 'ts' ? 'TypeScript' : 'Python'} agents.`,\n );\n }\n return { ...lang, protocol: protocolDir } as NonNullable<\n FrameworkTemplates[L]\n > & { protocol: string };\n}\n\n/** Protocols whose Layer-1 needs the shared MCP transport (`core-shared`). */\nconst MCP_TRANSPORT_PROTOCOLS: ConnectionProtocol[] = ['mcp', 'gateway'];\n\nconst tsCoreDir = () =>\n joinPathFragments(AGENT_CONNECTION_PROJECT_DIR, 'src', 'core');\n\nconst emitTs = (tree: Tree, templateDir: string) =>\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', templateDir),\n tsCoreDir(),\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n/**\n * Ensure the shared TypeScript agent-connection project exists and has the\n * framework-agnostic core helpers (runtime-config loader, session context).\n * Per-connection generators emit their own protocol + framework client\n * templates via `addTypeScriptCoreClient`.\n */\nexport async function ensureTypeScriptAgentConnectionProject(\n tree: Tree,\n): Promise<void> {\n const projectJsonPath = joinPathFragments(\n AGENT_CONNECTION_PROJECT_DIR,\n 'project.json',\n );\n if (!tree.exists(projectJsonPath)) {\n await tsProjectGenerator(tree, {\n name: AGENT_CONNECTION_DIR,\n directory: joinPathFragments(PACKAGES_DIR, COMMON_DIR),\n });\n }\n\n // Framework-agnostic runtime-config + session-context helpers.\n emitTs(tree, 'core-runtime-config');\n\n // Re-export session-context helpers so agent server entry points can set the\n // current session on each inbound request without pulling in internals.\n await addStarExport(\n tree,\n joinPathFragments(AGENT_CONNECTION_PROJECT_DIR, 'src', 'index.ts'),\n './core/session-context.js',\n );\n}\n\n/**\n * Emit a framework's base Layer-2 helpers (model-error logging + per-session\n * agent cache) into the agent-connection project and re-export them. The agent\n * server entry point imports these regardless of whether any connection client\n * is wired in, so the agent generator calls this directly; connection\n * generators call it transitively via `addTypeScriptCoreClient`.\n */\nexport async function addTypeScriptFrameworkBase(\n tree: Tree,\n framework: AgentFramework = 'strands',\n): Promise<void> {\n const lang = FRAMEWORKS[framework].ts;\n if (!lang) {\n throw new Error(\n `The '${framework}' framework does not support TypeScript agents.`,\n );\n }\n if (lang.base) {\n emitTs(tree, lang.base);\n }\n\n const indexPath = joinPathFragments(\n AGENT_CONNECTION_PROJECT_DIR,\n 'src',\n 'index.ts',\n );\n for (const reExport of lang.baseReExports) {\n await addStarExport(tree, indexPath, reExport.fromModule);\n }\n}\n\n/**\n * Emit the TypeScript client templates for a connection protocol and agent\n * framework into the agent-connection project's `src/core/` directory. Safe to\n * call multiple times — `KeepExisting` preserves customised files.\n *\n * Layers emitted:\n * - Layer 0 `core-auth` (signed fetch + endpoint resolution) — always\n * - Layer 1 `core-shared` MCP transport — for mcp/gateway protocols\n * - Layer 1 the protocol's transport/client-config — always\n * - Layer 2 the framework's base helpers + protocol client — per framework\n */\nexport async function addTypeScriptCoreClient(\n tree: Tree,\n protocol: ConnectionProtocol,\n framework: AgentFramework = 'strands',\n): Promise<void> {\n const fw = frameworkLanguage(framework, 'ts', protocol);\n\n emitTs(tree, 'core-auth');\n if (MCP_TRANSPORT_PROTOCOLS.includes(protocol)) {\n emitTs(tree, 'core-shared');\n }\n emitTs(tree, TS_PROTOCOL_TEMPLATES[protocol]);\n\n // Framework Layer 2: base helpers (re-exported for the agent server) + the\n // thin protocol client.\n await addTypeScriptFrameworkBase(tree, framework);\n emitTs(tree, fw.protocol);\n}\n\n/**\n * Ensure the shared Python agent-connection project exists.\n * Only creates the project shell — per-connection generators are responsible\n * for emitting their own core client templates.\n */\nexport async function ensurePythonAgentConnectionProject(\n tree: Tree,\n): Promise<void> {\n const projectDir = getPythonAgentConnectionProjectDir(tree);\n const moduleName = getPythonAgentConnectionModuleName(tree);\n const projectJsonPath = joinPathFragments(projectDir, 'project.json');\n\n if (!tree.exists(projectJsonPath)) {\n // Create the Python project using the standard py#project generator\n await pyProjectGenerator(tree, {\n name: PY_AGENT_CONNECTION_NAME,\n directory: joinPathFragments(PACKAGES_DIR, COMMON_DIR),\n type: 'library',\n });\n }\n\n const moduleDir = joinPathFragments(projectDir, moduleName);\n\n // Ensure core/__init__.py exists\n const coreDir = joinPathFragments(moduleDir, 'core');\n if (!tree.exists(joinPathFragments(coreDir, '__init__.py'))) {\n tree.write(joinPathFragments(coreDir, '__init__.py'), '');\n }\n\n // Ensure app/__init__.py exists\n const appInitPath = joinPathFragments(moduleDir, 'app', '__init__.py');\n if (!tree.exists(appInitPath)) {\n tree.write(appInitPath, '');\n }\n\n // Framework-agnostic runtime-config + session-context helpers.\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'py-core-runtime-config'),\n coreDir,\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Re-export the session id context so agent server entry points can set the\n // current session on each inbound request without importing internals.\n const moduleInitPath = joinPathFragments(moduleDir, '__init__.py');\n await addPythonReExport(\n tree,\n moduleInitPath,\n '.core.session_context',\n 'get_current_session_id',\n );\n await addPythonReExport(\n tree,\n moduleInitPath,\n '.core.session_context',\n 'session_id_context',\n );\n\n // The runtime-config loader reads AppConfig via aws-lambda-powertools.\n addDependenciesToPyProjectToml(tree, projectDir, ['aws-lambda-powertools']);\n}\n\nconst pyCoreDir = (tree: Tree) =>\n joinPathFragments(\n getPythonAgentConnectionProjectDir(tree),\n getPythonAgentConnectionModuleName(tree),\n 'core',\n );\n\nconst emitPy = (tree: Tree, templateDir: string) =>\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', templateDir),\n pyCoreDir(tree),\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n/**\n * Emit a framework's base Layer-2 helpers (model-error logging + per-session\n * agent cache) into the Python agent-connection project and re-export them.\n * The agent server entry point imports these regardless of whether a connection\n * client is wired in, so the agent generator calls this directly; connection\n * generators call it transitively via `addPythonCoreClient`.\n */\nexport async function addPythonFrameworkBase(\n tree: Tree,\n framework: AgentFramework = 'strands',\n): Promise<void> {\n const lang = FRAMEWORKS[framework].py;\n if (!lang) {\n throw new Error(\n `The '${framework}' framework does not support Python agents.`,\n );\n }\n if (lang.base) {\n emitPy(tree, lang.base);\n }\n\n const moduleInitPath = joinPathFragments(\n getPythonAgentConnectionProjectDir(tree),\n getPythonAgentConnectionModuleName(tree),\n '__init__.py',\n );\n for (const reExport of lang.baseReExports) {\n await addPythonReExport(\n tree,\n moduleInitPath,\n reExport.fromModule,\n reExport.importName,\n );\n }\n\n if (lang.deps.length > 0) {\n addDependenciesToPyProjectToml(\n tree,\n getPythonAgentConnectionProjectDir(tree),\n lang.deps,\n );\n }\n}\n\n/**\n * Emit the Python client templates for a connection protocol and agent\n * framework into the agent-connection project's core directory.\n *\n * Layers emitted:\n * - Layer 0 `py-core-auth` (SigV4 httpx.Auth, session auth, endpoints) — always\n * - Layer 1 `py-core-shared` MCP transport — for mcp/gateway protocols\n * - Layer 1 the protocol's transport/client-config — always\n * - Layer 2 the framework's base helpers + protocol client — per framework\n */\nexport async function addPythonCoreClient(\n tree: Tree,\n protocol: ConnectionProtocol,\n framework: AgentFramework = 'strands',\n): Promise<void> {\n const fw = frameworkLanguage(framework, 'py', protocol);\n\n emitPy(tree, 'py-core-auth');\n if (MCP_TRANSPORT_PROTOCOLS.includes(protocol)) {\n emitPy(tree, 'py-core-shared');\n }\n emitPy(tree, PY_PROTOCOL_TEMPLATES[protocol]);\n\n // Framework Layer 2: base helpers + the thin protocol client.\n await addPythonFrameworkBase(tree, framework);\n emitPy(tree, fw.protocol);\n}\n\n/**\n * Patch a TypeScript agent.ts to create a connection client and register it\n * in the Agent's tools. Used by the MCP and gateway connection generators —\n * the client class must expose a static async `create()` returning a value\n * accepted by `Agent.tools` (e.g. an `McpClient`).\n */\nexport async function addTypeScriptClientToAgent(\n tree: Tree,\n agentFilePath: string,\n clientClassName: string,\n clientVarName: string,\n): Promise<void> {\n const clientCreationStmt = `const ${clientVarName} = await ${clientClassName}.create();`;\n\n // Transform the arrow function that contains `new Agent`:\n // - Expression body: wrap in block with client creation and return\n // - Block body: prepend client creation statement\n await applyGritQL(\n tree,\n agentFilePath,\n `or { \\`async ($p) => new Agent($args)\\` => raw\\`async ($p) => {\n ${clientCreationStmt}\n return new Agent($args);\n}\\` where { $program <: not contains \\`${clientClassName}.create\\` }, \\`async ($p) => { $body }\\` => raw\\`async ($p) => {\n ${clientCreationStmt}\n $body\n}\\` where { $body <: contains \\`new Agent($_)\\`, $program <: not contains \\`${clientClassName}.create\\` } }`,\n );\n\n // Prepend the client to the tools array\n await applyGritQL(\n tree,\n agentFilePath,\n `\\`tools: [$items]\\` => \\`tools: [${clientVarName}, $items]\\` where { $items <: within \\`new Agent($_)\\`, $items <: not contains \\`${clientVarName}\\` }`,\n );\n}\n\n/**\n * Patch a Python agent.py to create a context-managed connection client,\n * enter it in the `with` block around `yield Agent(...)`, and spread its\n * `list_tools_sync()` into the Agent's tools. Used by the MCP and gateway\n * connection generators — the client class must expose a static `create()`\n * returning a context manager with `list_tools_sync()` (e.g. an `MCPClient`).\n */\nasync function addPythonClientToAgent(\n tree: Tree,\n agentFilePath: string,\n clientClassName: string,\n clientVarName: string,\n): Promise<void> {\n await addPythonClientTools(tree, agentFilePath, clientVarName);\n await addPythonClientToGetAgent(\n tree,\n agentFilePath,\n clientClassName,\n clientVarName,\n );\n}\n\n/**\n * Append `*<clientVarName>.list_tools_sync()` to the Agent's tools list.\n */\nconst addPythonClientTools = async (\n tree: Tree,\n filePath: string,\n clientVarName: string,\n): Promise<void> => {\n if (\n await matchGritQL(\n tree,\n filePath,\n py(`\\`${clientVarName}.list_tools_sync()\\``),\n )\n ) {\n return;\n }\n\n await applyGritQL(\n tree,\n filePath,\n py(`\\`tools=$old\\` where {\n $old <: not contains \\`${clientVarName}\\`,\n if ($old <: \\`[]\\`) {\n $old => \\`[*${clientVarName}.list_tools_sync()]\\`\n } else {\n $old <: \\`[$items]\\` where { $items += \\`, *${clientVarName}.list_tools_sync()\\` }\n }\n}`),\n );\n};\n\n/**\n * Create the client in get_agent and enter it in the `with` block.\n *\n * First connection: rewrites `def get_agent` to wrap the body in a with\n * block. Subsequent connections: adds to the existing with items and\n * prepends the creation line.\n */\nconst addPythonClientToGetAgent = async (\n tree: Tree,\n filePath: string,\n clientClassName: string,\n clientVarName: string,\n): Promise<void> => {\n if (\n await matchGritQL(tree, filePath, py(`\\`${clientClassName}.create()\\``))\n ) {\n return;\n }\n\n // Try the \"add to existing with block\" pattern first.\n // If it succeeds, there was already a with block from a previous connection.\n const addedToWith = await applyGritQL(\n tree,\n filePath,\n py(`\\`with ($items,): $body\\` where {\n $items <: not contains \\`${clientVarName}\\`,\n $items += \\`, ${clientVarName}\\`\n}`),\n );\n\n if (addedToWith) {\n // Subsequent connection — prepend the creation line to the function body\n // (a single anchor, so the line is inserted exactly once).\n await applyGritQL(\n tree,\n filePath,\n py(`\\`def get_agent($params):\n $body\\` where {\n $body <: contains \\`yield Agent($_)\\`,\n $body <: not contains \\`${clientClassName}.create\\`\n} => \\`def get_agent($params):\n ${clientVarName} = ${clientClassName}.create()\n $body\\``),\n );\n return;\n }\n\n // First connection — wrap the existing `def get_agent` body in a single\n // `with (<var>,):` block.\n await applyGritQL(\n tree,\n filePath,\n py(`\\`def get_agent($params):\n $body\\` where {\n $body <: contains \\`yield Agent($_)\\`,\n $body <: not contains \\`${clientClassName}.create\\`\n} => \\`def get_agent($params):\n ${clientVarName} = ${clientClassName}.create()\n with (\n ${clientVarName},\n ):\n $body\\``),\n );\n};\n\n/**\n * Patch a LangChain agent.py to load connection tools and spread them into the\n * `create_agent(...)` tools list. Used by the MCP and gateway connection\n * generators when the source agent uses the `langchain` framework — the client\n * class must expose a static `create()` returning a `list[BaseTool]`. The tools\n * come from langchain-mcp-adapters' `MultiServerMCPClient`, which keeps the\n * connection config on each tool and opens a fresh MCP session per call, so the\n * tools stay usable after `get_agent` returns — no `with` block is needed.\n * Mirrors {@link addPythonClientToAgent} for the Strands shape.\n */\nasync function addPythonLangchainClientToAgent(\n tree: Tree,\n agentFilePath: string,\n clientClassName: string,\n clientVarName: string,\n): Promise<void> {\n await addPythonLangchainClientTools(tree, agentFilePath, clientVarName);\n await addPythonLangchainClientToGetAgent(\n tree,\n agentFilePath,\n clientClassName,\n clientVarName,\n );\n}\n\n/**\n * Spread `*<clientVarName>` into the `create_agent(...)` tools list.\n *\n * Scoped via `$old <: within \\`create_agent($_)\\`` so only the agent's own\n * tools= keyword argument is touched (not an unrelated function with a\n * `tools=` parameter).\n */\nconst addPythonLangchainClientTools = async (\n tree: Tree,\n filePath: string,\n clientVarName: string,\n): Promise<void> => {\n await applyGritQL(\n tree,\n filePath,\n py(`\\`tools=$old\\` where {\n $old <: within \\`create_agent($_)\\`,\n $old <: not contains \\`*${clientVarName}\\`,\n if ($old <: \\`[]\\`) {\n $old => \\`[*${clientVarName}]\\`\n } else {\n $old <: \\`[$items]\\` where { $items += \\`, *${clientVarName}\\` }\n }\n}`),\n );\n};\n\n/**\n * Prepend `<clientVarName> = <clientClassName>.create()` to the get_agent body\n * (which loads the connection's tools). No `with` block — the LangChain client\n * hands langchain-mcp-adapters a connection config, so each tool opens its own\n * MCP session per call and the tools are safe to use after get_agent returns.\n * Idempotent via the `not contains <clientClassName>.create` guard.\n */\nconst addPythonLangchainClientToGetAgent = async (\n tree: Tree,\n filePath: string,\n clientClassName: string,\n clientVarName: string,\n): Promise<void> => {\n if (\n await matchGritQL(tree, filePath, py(`\\`${clientClassName}.create()\\``))\n ) {\n return;\n }\n\n await applyGritQL(\n tree,\n filePath,\n py(`\\`def get_agent($params):\n $body\\` where {\n $body <: contains \\`create_agent($_)\\`,\n $body <: not contains \\`${clientClassName}.create\\`\n} => \\`def get_agent($params):\n ${clientVarName} = ${clientClassName}.create()\n $body\\``),\n );\n};\n\n/**\n * Per-framework naming + template layout for a Python per-connection client.\n * Every py#agent connection generator (mcp, gateway, a2a) names its client\n * class `<Name>Client<suffix>`, its module `<name>_client_<suffix>`, and reads\n * the per-connection app-client template from a per-framework sub-path of its\n * own `files/` dir — all of which vary only by framework, so they live here as\n * one source of truth.\n *\n * Keyed by {@link AgentFramework} rather than a boolean so a third framework is\n * an additive entry here — never another `if (isLangchain)` branch in each\n * generator.\n */\nexport interface PyClientNaming {\n /** Class-name suffix on the per-connection app client (`<Name>Client<suffix>`). */\n clientClassSuffix: string;\n /** Module/file-name suffix on the per-connection app client (`<name>_client_<suffix>`). */\n clientModuleSuffix: string;\n /**\n * Sub-path, under a connection generator's `files/` dir, of the per-connection\n * app client template for this framework. Every connection generator lays its\n * templates out the same way, so this resolves against any of them.\n */\n appTemplateSubdir: string;\n}\n\nexport const PY_CLIENT_NAMING: Record<AgentFramework, PyClientNaming> = {\n strands: {\n clientClassSuffix: 'Strands',\n clientModuleSuffix: 'strands',\n appTemplateSubdir: joinPathFragments('agent-connection', 'app'),\n },\n langchain: {\n clientClassSuffix: 'LangChain',\n clientModuleSuffix: 'langchain',\n appTemplateSubdir: joinPathFragments(\n 'langchain',\n 'agent-connection',\n 'app',\n ),\n },\n};\n\n/**\n * How an MCP-family connection (an MCP server or an AgentCore Gateway, both of\n * which expose tools over MCP) is wired into a Python agent of a given\n * framework. The mcp-connection and gateway-connection generators share this:\n * they differ only in the metadata of the thing being connected, not in how\n * the framework's client is shaped or spliced into agent.py. A2A connections\n * wire tools differently, so they reuse only {@link PY_CLIENT_NAMING}.\n */\nexport interface PyMcpFamilyConnection extends PyClientNaming {\n /** Extra Python deps this framework's MCP-family client needs (beyond the shared transport). */\n deps: IPyDepVersion[];\n /**\n * Splice the per-connection client into the agent's `get_agent` in agent.py.\n * Strands enters a context-managed `MCPClient` and spreads `list_tools_sync()`;\n * LangChain loads `BaseTool`s and spreads them into `create_agent(...)`.\n */\n wireClientIntoAgent: (\n tree: Tree,\n agentFilePath: string,\n clientClassName: string,\n clientVarName: string,\n ) => Promise<void>;\n}\n\nexport const PY_MCP_FAMILY_CONNECTIONS: Record<\n AgentFramework,\n PyMcpFamilyConnection\n> = {\n strands: {\n ...PY_CLIENT_NAMING.strands,\n deps: [],\n wireClientIntoAgent: addPythonClientToAgent,\n },\n langchain: {\n ...PY_CLIENT_NAMING.langchain,\n // langchain-mcp-adapters backs the LangChain client; it must not pull Strands in.\n deps: ['langchain-mcp-adapters'],\n wireClientIntoAgent: addPythonLangchainClientToAgent,\n },\n};\n\n/**\n * Add a re-export to the Python agent-connection module's __init__.py.\n * Equivalent to addStarExport for TS.\n * Uses `__all__` to mark re-exports as public (satisfies ruff F401).\n * Uses GritQL for AST-aware transforms where possible.\n */\nexport async function addPythonReExport(\n tree: Tree,\n initFilePath: string,\n fromModule: string,\n importName: string,\n): Promise<void> {\n // Check if already exported\n if (await matchGritQL(tree, initFilePath, `\\`${importName}\\``)) {\n return;\n }\n\n const importLine = `from ${fromModule} import ${importName}`;\n const allEntry = `\"${importName}\"`;\n\n // If there's already an import from the same module, merge into its name list\n // (ruff I001 rejects two `from X import ...` lines for the same module).\n const mergedImport = await applyGritQL(\n tree,\n initFilePath,\n py(`\\`from ${fromModule} import $names\\` where {\n $names <: not contains \\`${importName}\\`,\n $names += \\`, ${importName}\\`\n}`),\n );\n\n if (mergedImport) {\n await applyGritQL(\n tree,\n initFilePath,\n py(`\\`__all__ = [$items]\\` where { $items += \\`, ${allEntry}\\` }`),\n );\n return;\n }\n\n // Try to append import after existing import using +=\n const appendedImport = await applyGritQL(\n tree,\n initFilePath,\n py(\n `\\`from $mod import $name\\` as $stmt where {\n $program <: not contains \\`${importName}\\`,\n $stmt += \\`\\n${importLine}\\`\n}`,\n ),\n );\n\n if (appendedImport) {\n // Also append to existing __all__\n await applyGritQL(\n tree,\n initFilePath,\n py(`\\`__all__ = [$items]\\` where { $items += \\`, ${allEntry}\\` }`),\n );\n return;\n }\n\n // No existing imports — first re-export. Try to anchor after docstring.\n const anchoredImport = await applyGritQL(\n tree,\n initFilePath,\n py(\n `\\`\"\"\"Automatically generated by Nx.\"\"\"\\` as $doc => \\`$doc\\n${importLine}\\n\\n__all__ = [${allEntry}]\\``,\n ),\n );\n\n if (!anchoredImport) {\n // Completely empty file or no docstring — write directly\n tree.write(initFilePath, `${importLine}\\n\\n__all__ = [${allEntry}]\\n`);\n }\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","pyProjectGenerator","getPyProjectDetails","tsProjectGenerator","addStarExport","applyGritQL","matchGritQL","addDependenciesToPyProjectToml","py","pattern","AGENT_CONNECTION_DIR","PACKAGES_DIR","COMMON_DIR","AGENT_CONNECTION_PROJECT_DIR","PY_AGENT_CONNECTION_NAME","getPythonAgentConnectionProjectDir","tree","dir","name","directory","getPythonAgentConnectionModuleName","normalizedModuleName","getPythonAgentConnectionProject","fullyQualifiedName","root","resolveAgentFramework","framework","TS_PROTOCOL_TEMPLATES","mcp","gateway","a2a","PY_PROTOCOL_TEMPLATES","FRAMEWORKS","strands","ts","base","baseReExports","fromModule","importName","protocols","deps","langchain","frameworkLanguage","language","protocol","lang","Error","protocolDir","MCP_TRANSPORT_PROTOCOLS","tsCoreDir","emitTs","templateDir","dirname","overwriteStrategy","KeepExisting","ensureTypeScriptAgentConnectionProject","projectJsonPath","exists","addTypeScriptFrameworkBase","indexPath","reExport","addTypeScriptCoreClient","fw","includes","ensurePythonAgentConnectionProject","projectDir","moduleName","type","moduleDir","coreDir","write","appInitPath","moduleInitPath","addPythonReExport","pyCoreDir","emitPy","addPythonFrameworkBase","length","addPythonCoreClient","addTypeScriptClientToAgent","agentFilePath","clientClassName","clientVarName","clientCreationStmt","addPythonClientToAgent","addPythonClientTools","addPythonClientToGetAgent","filePath","addedToWith","addPythonLangchainClientToAgent","addPythonLangchainClientTools","addPythonLangchainClientToGetAgent","PY_CLIENT_NAMING","clientClassSuffix","clientModuleSuffix","appTemplateSubdir","PY_MCP_FAMILY_CONNECTIONS","wireClientIntoAgent","initFilePath","importLine","allEntry","mergedImport","appendedImport","anchoredImport"],"mappings":"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"}
@@ -32,7 +32,7 @@ export class AgentCoreGatewayMcpTransport {
32
32
  });
33
33
  }
34
34
 
35
- /** Plain-HTTP gateway transport, for the local gateway started by serve-local. */
35
+ /** Plain-HTTP gateway transport, for the local gateway started by the dev target. */
36
36
  static withoutAuth(options: {
37
37
  gatewayUrl: string;
38
38
  }): StreamableHTTPClientTransport {
@@ -17,7 +17,7 @@ export class AgentCoreGatewayMcpClientStrands {
17
17
  });
18
18
  }
19
19
 
20
- /** Plain-HTTP gateway client, for the local gateway started by serve-local. */
20
+ /** Plain-HTTP gateway client, for the local gateway started by the dev target. */
21
21
  static withoutAuth(options: { gatewayUrl: string }): McpClient {
22
22
  return new McpClient({
23
23
  transport: AgentCoreGatewayMcpTransport.withoutAuth(options),
@@ -24,5 +24,5 @@ class AgentCoreGatewayMCPTransport:
24
24
 
25
25
  @staticmethod
26
26
  def without_auth(gateway_url: str) -> TransportFactory:
27
- """Plain-HTTP gateway transport, for the local gateway started by serve-local."""
27
+ """Plain-HTTP gateway transport, for the local gateway started by the dev target."""
28
28
  return no_auth_transport(gateway_url)
@@ -53,5 +53,5 @@ class AgentCoreGatewayMCPClientLangChain:
53
53
 
54
54
  @staticmethod
55
55
  def without_auth(gateway_url: str) -> list[BaseTool]:
56
- """Plain-HTTP tools for the local gateway started by serve-local."""
56
+ """Plain-HTTP tools for the local gateway started by the dev target."""
57
57
  return _load_tools(gateway_url, plain_auth())
@@ -18,5 +18,5 @@ class AgentCoreGatewayMCPClientStrands:
18
18
 
19
19
  @staticmethod
20
20
  def without_auth(gateway_url: str) -> MCPClient:
21
- """Plain-HTTP gateway client, for the local gateway started by serve-local."""
21
+ """Plain-HTTP gateway client, for the local gateway started by the dev target."""
22
22
  return MCPClient(AgentCoreGatewayMCPTransport.without_auth(gateway_url))
@@ -1,16 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addAgentCoreGatewayInfra = exports.addAgentInfra = exports.addMcpServerInfra = 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 ast_1 = require("../ast");
10
- const nx_1 = require("../nx");
11
- const shared_constructs_constants_1 = require("../shared-constructs-constants");
12
- const addAgentCoreInfra = async (tree, options) => {
13
- switch (options.iac) {
4
+ */ import { generateFiles, joinPathFragments, OverwriteStrategy, updateJson } from "@nx/devkit";
5
+ import { addStarExport } from "../ast.js";
6
+ import { addDependencyToTargetIfNotPresent } from "../nx.js";
7
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "../shared-constructs-constants.js";
8
+ import { PY_VERSIONS, terraformProviderVersions } from "../versions.js";
9
+ const addAgentCoreInfra = async (tree, options)=>{
10
+ switch(options.iac){
14
11
  case 'cdk':
15
12
  await addAgentCoreCDKInfra(tree, options);
16
13
  break;
@@ -19,34 +16,37 @@ const addAgentCoreInfra = async (tree, options) => {
19
16
  break;
20
17
  }
21
18
  // Update shared constructs/terraform project configuration to depend on this project
22
- (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, options.iac === 'cdk' ? shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR : shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'project.json'), (config) => {
23
- (0, nx_1.addDependencyToTargetIfNotPresent)(config, 'build', `${options.projectName}:build`);
19
+ updateJson(tree, joinPathFragments(PACKAGES_DIR, options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR, 'project.json'), (config)=>{
20
+ addDependencyToTargetIfNotPresent(config, 'build', `${options.projectName}:build`);
24
21
  return config;
25
22
  });
26
23
  };
27
- const addAgentCoreCDKInfra = async (tree, options) => {
24
+ const addAgentCoreCDKInfra = async (tree, options)=>{
28
25
  // Generate app specific CDK construct
29
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'cdk', 'app', 'agent-core'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', options.appDirectory), options, {
30
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
26
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'agent-core'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', options.appDirectory), options, {
27
+ overwriteStrategy: OverwriteStrategy.KeepExisting
31
28
  });
32
29
  // Export app specific CDK construct
33
- await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', options.appDirectory, 'index.ts'), `./${options.nameKebabCase}/${options.nameKebabCase}.js`);
34
- await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), `./${options.appDirectory}/index.js`);
30
+ await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', options.appDirectory, 'index.ts'), `./${options.nameKebabCase}/${options.nameKebabCase}.js`);
31
+ await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), `./${options.appDirectory}/index.js`);
35
32
  };
36
- const addAgentCoreTerraformInfra = (tree, options) => {
33
+ const addAgentCoreTerraformInfra = (tree, options)=>{
37
34
  // Add the AgentCore shared module
38
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'core', 'agent-core'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'core', 'agent-core'), { containers: options.containers }, {
39
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
35
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core', 'agent-core'), joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'agent-core'), {
36
+ containers: options.containers,
37
+ boto3Version: PY_VERSIONS.boto3,
38
+ ...terraformProviderVersions()
39
+ }, {
40
+ overwriteStrategy: OverwriteStrategy.KeepExisting
40
41
  });
41
42
  // Generate app specific agent core configuration
42
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'app', 'agent-core'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'app', options.appDirectory), options, {
43
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
43
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'terraform', 'app', 'agent-core'), joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', options.appDirectory), options, {
44
+ overwriteStrategy: OverwriteStrategy.KeepExisting
44
45
  });
45
46
  };
46
47
  /**
47
48
  * Add an MCP server CDK construct
48
- */
49
- const addMcpServerInfra = async (tree, options) => {
49
+ */ export const addMcpServerInfra = async (tree, options)=>{
50
50
  await addAgentCoreInfra(tree, {
51
51
  nameClassName: options.mcpServerNameClassName,
52
52
  nameKebabCase: options.mcpServerNameKebabCase,
@@ -57,14 +57,12 @@ const addMcpServerInfra = async (tree, options) => {
57
57
  serverProtocol: 'mcp',
58
58
  iac: options.iac,
59
59
  auth: options.auth,
60
- containers: options.containers,
60
+ containers: options.containers
61
61
  });
62
62
  };
63
- exports.addMcpServerInfra = addMcpServerInfra;
64
63
  /**
65
64
  * Add an agent CDK construct
66
- */
67
- const addAgentInfra = async (tree, options) => {
65
+ */ export const addAgentInfra = async (tree, options)=>{
68
66
  await addAgentCoreInfra(tree, {
69
67
  nameClassName: options.agentNameClassName,
70
68
  nameKebabCase: options.agentNameKebabCase,
@@ -75,12 +73,11 @@ const addAgentInfra = async (tree, options) => {
75
73
  serverProtocol: options.serverProtocol ?? 'http',
76
74
  iac: options.iac,
77
75
  auth: options.auth,
78
- containers: options.containers,
76
+ containers: options.containers
79
77
  });
80
78
  };
81
- exports.addAgentInfra = addAgentInfra;
82
- const addAgentCoreGatewayInfra = async (tree, options) => {
83
- switch (options.iac) {
79
+ export const addAgentCoreGatewayInfra = async (tree, options)=>{
80
+ switch(options.iac){
84
81
  case 'cdk':
85
82
  await addAgentCoreGatewayCDKInfra(tree, options);
86
83
  break;
@@ -88,48 +85,54 @@ const addAgentCoreGatewayInfra = async (tree, options) => {
88
85
  addAgentCoreGatewayTerraformInfra(tree, options);
89
86
  break;
90
87
  }
91
- (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, options.iac === 'cdk' ? shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR : shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'project.json'), (config) => {
92
- (0, nx_1.addDependencyToTargetIfNotPresent)(config, 'build', `${options.projectName}:build`);
88
+ updateJson(tree, joinPathFragments(PACKAGES_DIR, options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR, 'project.json'), (config)=>{
89
+ addDependencyToTargetIfNotPresent(config, 'build', `${options.projectName}:build`);
93
90
  return config;
94
91
  });
95
92
  };
96
- exports.addAgentCoreGatewayInfra = addAgentCoreGatewayInfra;
97
- const addAgentCoreGatewayCDKInfra = async (tree, options) => {
93
+ const addAgentCoreGatewayCDKInfra = async (tree, options)=>{
98
94
  // Generic gateway construct (readiness probe, policy engine, Cedar policy
99
95
  // loading) shared by all gateways
100
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'cdk', 'core', 'agentcore-gateway'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'core', 'agentcore-gateway'), {}, {
101
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
96
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'agentcore-gateway'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'agentcore-gateway'), {}, {
97
+ overwriteStrategy: OverwriteStrategy.KeepExisting
102
98
  });
103
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'cdk', 'app', 'agentcore-gateway'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'gateways'), {
99
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'agentcore-gateway'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'gateways'), {
104
100
  nameClassName: options.gatewayNameClassName,
105
101
  nameKebabCase: options.gatewayNameKebabCase,
106
102
  projectDirectory: options.projectDirectory,
107
- cedarPolicy: options.cedarPolicy,
103
+ cedarPolicy: options.cedarPolicy
108
104
  }, {
109
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
105
+ overwriteStrategy: OverwriteStrategy.KeepExisting
110
106
  });
111
- await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'core', 'index.ts'), './agentcore-gateway/agentcore-gateway.js');
112
- await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'gateways', 'index.ts'), `./${options.gatewayNameKebabCase}/${options.gatewayNameKebabCase}.js`);
113
- await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), './gateways/index.js');
107
+ await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'index.ts'), './agentcore-gateway/agentcore-gateway.js');
108
+ await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'gateways', 'index.ts'), `./${options.gatewayNameKebabCase}/${options.gatewayNameKebabCase}.js`);
109
+ await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), './gateways/index.js');
114
110
  };
115
- const addAgentCoreGatewayTerraformInfra = (tree, options) => {
116
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'core', 'agentcore-gateway'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'core', 'agentcore-gateway'), {}, {
117
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
111
+ const addAgentCoreGatewayTerraformInfra = (tree, options)=>{
112
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core', 'agentcore-gateway'), joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'agentcore-gateway'), {
113
+ ...terraformProviderVersions()
114
+ }, {
115
+ overwriteStrategy: OverwriteStrategy.KeepExisting
118
116
  });
119
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'app', 'agentcore-gateway'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'app', 'gateways'), {
117
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'terraform', 'app', 'agentcore-gateway'), joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', 'gateways'), {
120
118
  nameClassName: options.gatewayNameClassName,
121
119
  nameKebabCase: options.gatewayNameKebabCase,
122
120
  projectDirectory: options.projectDirectory,
123
121
  cedarPolicy: options.cedarPolicy,
122
+ boto3Version: PY_VERSIONS.boto3,
123
+ httpxVersion: PY_VERSIONS.httpx,
124
+ mcpVersion: PY_VERSIONS.mcp,
125
+ ...terraformProviderVersions()
124
126
  }, {
125
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
127
+ overwriteStrategy: OverwriteStrategy.KeepExisting
126
128
  });
127
129
  // The Cedar render script is only needed when policies are enabled
128
130
  if (!options.cedarPolicy) {
129
- const renderScript = (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'app', 'gateways', options.gatewayNameKebabCase, 'render-cedar.cjs');
131
+ const renderScript = joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', 'gateways', options.gatewayNameKebabCase, 'render-cedar.cjs');
130
132
  if (tree.exists(renderScript)) {
131
133
  tree.delete(renderScript);
132
134
  }
133
135
  }
134
136
  };
137
+
135
138
  //# sourceMappingURL=agent-core-constructs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-core-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport { addStarExport } from '../ast';\nimport type { Containers } from '../containers';\nimport type { Iac } from '../iac';\nimport { addDependencyToTargetIfNotPresent } from '../nx';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../shared-constructs-constants';\nimport { PY_VERSIONS, terraformProviderVersions } from '../versions';\n\ntype IACProvider = { iac: Iac };\n\nexport type AgentCoreAuth = 'iam' | 'cognito';\n\nexport interface AddAgentCoreInfraProps {\n nameClassName: string;\n nameKebabCase: string;\n projectName: string;\n dockerImageTag: string;\n dockerOutputDir: string;\n appDirectory: string;\n serverProtocol: 'mcp' | 'http' | 'a2a';\n auth: AgentCoreAuth;\n containers: Containers;\n}\n\nconst addAgentCoreInfra = async (\n tree: Tree,\n options: AddAgentCoreInfraProps & { iac: Iac },\n) => {\n switch (options.iac) {\n case 'cdk':\n await addAgentCoreCDKInfra(tree, options);\n break;\n case 'terraform':\n addAgentCoreTerraformInfra(tree, options);\n break;\n }\n\n // Update shared constructs/terraform project configuration to depend on this project\n updateJson(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR,\n 'project.json',\n ),\n (config: ProjectConfiguration) => {\n addDependencyToTargetIfNotPresent(\n config,\n 'build',\n `${options.projectName}:build`,\n );\n return config;\n },\n );\n};\n\nconst addAgentCoreCDKInfra = async (\n tree: Tree,\n options: AddAgentCoreInfraProps,\n) => {\n // Generate app specific CDK construct\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'agent-core'),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n options.appDirectory,\n ),\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n // Export app specific CDK construct\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n options.appDirectory,\n 'index.ts',\n ),\n `./${options.nameKebabCase}/${options.nameKebabCase}.js`,\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'index.ts',\n ),\n `./${options.appDirectory}/index.js`,\n );\n};\n\nconst addAgentCoreTerraformInfra = (\n tree: Tree,\n options: AddAgentCoreInfraProps,\n) => {\n // Add the AgentCore shared module\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n 'terraform',\n 'core',\n 'agent-core',\n ),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'core',\n 'agent-core',\n ),\n {\n containers: options.containers,\n boto3Version: PY_VERSIONS.boto3,\n ...terraformProviderVersions(),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n // Generate app specific agent core configuration\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n 'terraform',\n 'app',\n 'agent-core',\n ),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'app',\n options.appDirectory,\n ),\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n};\n\nexport interface AddMcpServerInfraProps {\n mcpServerNameClassName: string;\n mcpServerNameKebabCase: string;\n projectName: string;\n dockerImageTag: string;\n dockerOutputDir: string;\n auth: AgentCoreAuth;\n containers: Containers;\n}\n\n/**\n * Add an MCP server CDK construct\n */\nexport const addMcpServerInfra = async (\n tree: Tree,\n options: AddMcpServerInfraProps & IACProvider,\n) => {\n await addAgentCoreInfra(tree, {\n nameClassName: options.mcpServerNameClassName,\n nameKebabCase: options.mcpServerNameKebabCase,\n dockerImageTag: options.dockerImageTag,\n dockerOutputDir: options.dockerOutputDir,\n projectName: options.projectName,\n appDirectory: 'mcp-servers',\n serverProtocol: 'mcp',\n iac: options.iac,\n auth: options.auth,\n containers: options.containers,\n });\n};\n\nexport interface AddAgentInfraProps {\n agentNameClassName: string;\n agentNameKebabCase: string;\n projectName: string;\n dockerImageTag: string;\n dockerOutputDir: string;\n auth: AgentCoreAuth;\n serverProtocol?: 'http' | 'a2a';\n containers: Containers;\n}\n\n/**\n * Add an agent CDK construct\n */\nexport const addAgentInfra = async (\n tree: Tree,\n options: AddAgentInfraProps & IACProvider,\n) => {\n await addAgentCoreInfra(tree, {\n nameClassName: options.agentNameClassName,\n nameKebabCase: options.agentNameKebabCase,\n projectName: options.projectName,\n dockerImageTag: options.dockerImageTag,\n dockerOutputDir: options.dockerOutputDir,\n appDirectory: 'agents',\n serverProtocol: options.serverProtocol ?? 'http',\n iac: options.iac,\n auth: options.auth,\n containers: options.containers,\n });\n};\n\nexport interface AddAgentCoreGatewayInfraProps {\n gatewayNameClassName: string;\n gatewayNameKebabCase: string;\n projectName: string;\n projectDirectory: string;\n cedarPolicy: boolean;\n}\n\nexport const addAgentCoreGatewayInfra = async (\n tree: Tree,\n options: AddAgentCoreGatewayInfraProps & IACProvider,\n) => {\n switch (options.iac) {\n case 'cdk':\n await addAgentCoreGatewayCDKInfra(tree, options);\n break;\n case 'terraform':\n addAgentCoreGatewayTerraformInfra(tree, options);\n break;\n }\n\n updateJson(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR,\n 'project.json',\n ),\n (config: ProjectConfiguration) => {\n addDependencyToTargetIfNotPresent(\n config,\n 'build',\n `${options.projectName}:build`,\n );\n return config;\n },\n );\n};\n\nconst addAgentCoreGatewayCDKInfra = async (\n tree: Tree,\n options: AddAgentCoreGatewayInfraProps,\n) => {\n // Generic gateway construct (readiness probe, policy engine, Cedar policy\n // loading) shared by all gateways\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n 'cdk',\n 'core',\n 'agentcore-gateway',\n ),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'agentcore-gateway',\n ),\n {},\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n 'cdk',\n 'app',\n 'agentcore-gateway',\n ),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'gateways',\n ),\n {\n nameClassName: options.gatewayNameClassName,\n nameKebabCase: options.gatewayNameKebabCase,\n projectDirectory: options.projectDirectory,\n cedarPolicy: options.cedarPolicy,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'index.ts',\n ),\n './agentcore-gateway/agentcore-gateway.js',\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'gateways',\n 'index.ts',\n ),\n `./${options.gatewayNameKebabCase}/${options.gatewayNameKebabCase}.js`,\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'index.ts',\n ),\n './gateways/index.js',\n );\n};\n\nconst addAgentCoreGatewayTerraformInfra = (\n tree: Tree,\n options: AddAgentCoreGatewayInfraProps,\n) => {\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n 'terraform',\n 'core',\n 'agentcore-gateway',\n ),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'core',\n 'agentcore-gateway',\n ),\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n 'terraform',\n 'app',\n 'agentcore-gateway',\n ),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'app',\n 'gateways',\n ),\n {\n nameClassName: options.gatewayNameClassName,\n nameKebabCase: options.gatewayNameKebabCase,\n projectDirectory: options.projectDirectory,\n cedarPolicy: options.cedarPolicy,\n boto3Version: PY_VERSIONS.boto3,\n httpxVersion: PY_VERSIONS.httpx,\n mcpVersion: PY_VERSIONS.mcp,\n ...terraformProviderVersions(),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n // The Cedar render script is only needed when policies are enabled\n if (!options.cedarPolicy) {\n const renderScript = joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'app',\n 'gateways',\n options.gatewayNameKebabCase,\n 'render-cedar.cjs',\n );\n if (tree.exists(renderScript)) {\n tree.delete(renderScript);\n }\n }\n};\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","addStarExport","addDependencyToTargetIfNotPresent","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","PY_VERSIONS","terraformProviderVersions","addAgentCoreInfra","tree","options","iac","addAgentCoreCDKInfra","addAgentCoreTerraformInfra","config","projectName","dirname","appDirectory","overwriteStrategy","KeepExisting","nameKebabCase","containers","boto3Version","boto3","addMcpServerInfra","nameClassName","mcpServerNameClassName","mcpServerNameKebabCase","dockerImageTag","dockerOutputDir","serverProtocol","auth","addAgentInfra","agentNameClassName","agentNameKebabCase","addAgentCoreGatewayInfra","addAgentCoreGatewayCDKInfra","addAgentCoreGatewayTerraformInfra","gatewayNameClassName","gatewayNameKebabCase","projectDirectory","cedarPolicy","httpxVersion","httpx","mcpVersion","mcp","renderScript","exists","delete"],"mappings":"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"}
@@ -4,17 +4,17 @@ terraform {
4
4
  required_providers {
5
5
  aws = {
6
6
  source = "hashicorp/aws"
7
- version = ">= 6.50"
7
+ version = "<%- awsProviderVersion %>"
8
8
  }
9
9
  <%_ if (cedarPolicy) { _%>
10
10
  external = {
11
11
  source = "hashicorp/external"
12
- version = ">= 2.0"
12
+ version = "<%- externalProviderVersion %>"
13
13
  }
14
14
  <%_ } _%>
15
15
  random = {
16
16
  source = "hashicorp/random"
17
- version = ">= 3.0"
17
+ version = "<%- randomProviderVersion %>"
18
18
  }
19
19
  }
20
20
  }
@@ -233,7 +233,7 @@ resource "null_resource" "gateway_ready" {
233
233
 
234
234
  provisioner "local-exec" {
235
235
  command = <<-EOT
236
- uv run --with boto3 --with httpx --with mcp python -c "
236
+ uv run --with boto3<%= boto3Version %> --with httpx<%= httpxVersion %> --with mcp<%= mcpVersion %> python -c "
237
237
  import asyncio
238
238
  import os
239
239
  import time
@@ -4,15 +4,15 @@ terraform {
4
4
  required_providers {
5
5
  aws = {
6
6
  source = "hashicorp/aws"
7
- version = ">= 6.23"
7
+ version = "<%- awsProviderVersion %>"
8
8
  }
9
9
  null = {
10
10
  source = "hashicorp/null"
11
- version = ">= 3.0"
11
+ version = "<%- nullProviderVersion %>"
12
12
  }
13
13
  random = {
14
14
  source = "hashicorp/random"
15
- version = ">= 3.0"
15
+ version = "<%- randomProviderVersion %>"
16
16
  }
17
17
  }
18
18
  }
@@ -358,7 +358,7 @@ resource "null_resource" "runtime_ready" {
358
358
 
359
359
  provisioner "local-exec" {
360
360
  command = <<-EOT
361
- uv run --with boto3 python -c "
361
+ uv run --with boto3<%= boto3Version %> python -c "
362
362
  import boto3
363
363
  import json
364
364
  import os
@@ -378,7 +378,7 @@ initialize_request = json.dumps({
378
378
  },
379
379
  })
380
380
 
381
- deadline = time.time() + 3 * 60
381
+ deadline = time.time() + 5 * 60
382
382
  while True:
383
383
  try:
384
384
  client.invoke_agent_runtime(
@@ -4,11 +4,11 @@ terraform {
4
4
  required_providers {
5
5
  aws = {
6
6
  source = "hashicorp/aws"
7
- version = ">= 6.50"
7
+ version = "<%- awsProviderVersion %>"
8
8
  }
9
9
  random = {
10
10
  source = "hashicorp/random"
11
- version = ">= 3.0"
11
+ version = "<%- randomProviderVersion %>"
12
12
  }
13
13
  }
14
14
  }
@@ -1,37 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addApiGatewayInfra = 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 ast_1 = require("../ast");
10
- const nx_1 = require("../nx");
11
- const shared_constructs_constants_1 = require("../shared-constructs-constants");
12
- const addApiGatewayInfra = async (tree, options) => {
4
+ */ import { generateFiles, joinPathFragments, OverwriteStrategy, updateJson } from "@nx/devkit";
5
+ import { addStarExport } from "../ast.js";
6
+ import { addDependencyToTargetIfNotPresent } from "../nx.js";
7
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "../shared-constructs-constants.js";
8
+ import { PY_VERSIONS, terraformProviderVersions } from "../versions.js";
9
+ export const addApiGatewayInfra = async (tree, options)=>{
13
10
  if (options.iac === 'cdk') {
14
11
  await addApiGatewayCdkConstructs(tree, options);
15
- }
16
- else if (options.iac === 'terraform') {
12
+ } else if (options.iac === 'terraform') {
17
13
  addApiGatewayTerraformModules(tree, options);
18
- }
19
- else {
14
+ } else {
20
15
  throw new Error(`Unsupported iac ${options.iac}`);
21
16
  }
22
- (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, options.iac === 'cdk' ? shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR : shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'project.json'), (config) => {
23
- (0, nx_1.addDependencyToTargetIfNotPresent)(config, 'build', `${options.apiProjectName}:build`);
17
+ updateJson(tree, joinPathFragments(PACKAGES_DIR, options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR, 'project.json'), (config)=>{
18
+ addDependencyToTargetIfNotPresent(config, 'build', `${options.apiProjectName}:build`);
24
19
  return config;
25
20
  });
26
21
  };
27
- exports.addApiGatewayInfra = addApiGatewayInfra;
28
22
  /**
29
23
  * Add an API CDK construct, and update the Runtime Config type to export its url
30
- */
31
- const addApiGatewayCdkConstructs = async (tree, options) => {
32
- const generateCoreApiFile = (name) => {
33
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'cdk', 'core', 'api', name), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'core', 'api'), {}, {
34
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
24
+ */ const addApiGatewayCdkConstructs = async (tree, options)=>{
25
+ const generateCoreApiFile = (name)=>{
26
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'api', name), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'api'), {}, {
27
+ overwriteStrategy: OverwriteStrategy.KeepExisting
35
28
  });
36
29
  };
37
30
  // Generate relevant core CDK construct and utilities
@@ -41,24 +34,30 @@ const addApiGatewayCdkConstructs = async (tree, options) => {
41
34
  generateCoreApiFile('trpc');
42
35
  }
43
36
  // Generate app specific CDK construct
44
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'cdk', 'app', 'apis', options.constructType), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'apis'), options, {
45
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
37
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'apis', options.constructType), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'apis'), options, {
38
+ overwriteStrategy: OverwriteStrategy.KeepExisting
46
39
  });
47
40
  // Export app specific CDK construct
48
- await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'apis', 'index.ts'), `./${options.apiNameKebabCase}.js`);
49
- await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), './apis/index.js');
41
+ await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'apis', 'index.ts'), `./${options.apiNameKebabCase}.js`);
42
+ await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), './apis/index.js');
50
43
  };
51
44
  /**
52
45
  * Add an API terraform module, and update the Runtime Config type to export its url
53
- */
54
- const addApiGatewayTerraformModules = (tree, options) => {
46
+ */ const addApiGatewayTerraformModules = (tree, options)=>{
55
47
  // Generate core terraform module
56
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'core', 'api', options.constructType), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'core', 'api'), {}, {
57
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
48
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core', 'api', options.constructType), joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'api'), {
49
+ boto3Version: PY_VERSIONS.boto3,
50
+ ...terraformProviderVersions()
51
+ }, {
52
+ overwriteStrategy: OverwriteStrategy.KeepExisting
58
53
  });
59
54
  // Generate app specific terraform module
60
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'app', 'apis', options.constructType), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'app', 'apis'), options, {
61
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
55
+ generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'terraform', 'app', 'apis', options.constructType), joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', 'apis'), {
56
+ ...options,
57
+ ...terraformProviderVersions()
58
+ }, {
59
+ overwriteStrategy: OverwriteStrategy.KeepExisting
62
60
  });
63
61
  };
62
+
64
63
  //# sourceMappingURL=api-constructs.js.map