@aws/nx-plugin 1.0.0-rc.23 → 1.0.0-rc.25

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 (774) hide show
  1. package/LICENSE-THIRD-PARTY +3643 -1208
  2. package/package.json +30 -15
  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 +4 -4
  7. package/src/agentcore-gateway/gateway-connection/generator.js +45 -46
  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/gateway-connection/schema.d.ts +1 -0
  12. package/src/agentcore-gateway/gateway-connection/schema.json +5 -0
  13. package/src/agentcore-gateway/generator.js +93 -73
  14. package/src/agentcore-gateway/generator.js.map +1 -1
  15. package/src/agentcore-gateway/mcp-connection/generator.d.ts +3 -3
  16. package/src/agentcore-gateway/mcp-connection/generator.js +27 -31
  17. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
  18. package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
  19. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
  20. package/src/agentcore-gateway/mcp-connection/schema.d.ts +1 -0
  21. package/src/agentcore-gateway/mcp-connection/schema.json +5 -0
  22. package/src/agentcore-gateway/schema.d.js +6 -0
  23. package/src/agentcore-gateway/schema.d.js.map +1 -0
  24. package/src/agentcore-gateway/schema.d.ts +1 -0
  25. package/src/agentcore-gateway/schema.json +5 -0
  26. package/src/bin/aws-nx-mcp.js +14 -0
  27. package/src/bin/aws-nx-mcp.js.map +1 -0
  28. package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +5 -5
  29. package/src/connection/agent-local-dev.js +42 -0
  30. package/src/connection/agent-local-dev.js.map +1 -0
  31. package/src/connection/agent-runtime-config.js +9 -14
  32. package/src/connection/agent-runtime-config.js.map +1 -1
  33. package/src/connection/generator.d.ts +1 -0
  34. package/src/connection/generator.js +265 -206
  35. package/src/connection/generator.js.map +1 -1
  36. package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
  37. package/src/connection/local-dev.js +37 -0
  38. package/src/connection/local-dev.js.map +1 -0
  39. package/src/connection/schema.d.js +6 -0
  40. package/src/connection/schema.d.js.map +1 -0
  41. package/src/connection/schema.d.ts +1 -0
  42. package/src/connection/schema.json +5 -0
  43. package/src/index.js +2 -5
  44. package/src/index.js.map +1 -1
  45. package/src/infra/app/__snapshots__/generator.spec.ts.snap +33 -47
  46. package/src/infra/app/generator.js +140 -124
  47. package/src/infra/app/generator.js.map +1 -1
  48. package/src/infra/app/schema.d.js +6 -0
  49. package/src/infra/app/schema.d.js.map +1 -0
  50. package/src/infra/app/schema.d.ts +1 -1
  51. package/src/infra/app/schema.json +5 -0
  52. package/src/license/config-types.js +5 -3
  53. package/src/license/config-types.js.map +1 -1
  54. package/src/license/config.d.ts +1 -1
  55. package/src/license/config.js +267 -242
  56. package/src/license/config.js.map +1 -1
  57. package/src/license/dependency-check/check.js +51 -46
  58. package/src/license/dependency-check/check.js.map +1 -1
  59. package/src/license/dependency-check/collectors/collector.js +41 -71
  60. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  61. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  62. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  63. package/src/license/dependency-check/collectors/python-collector.js +55 -62
  64. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  65. package/src/license/dependency-check/evaluator.js +40 -68
  66. package/src/license/dependency-check/evaluator.js.map +1 -1
  67. package/src/license/dependency-check/executor.js +30 -22
  68. package/src/license/dependency-check/executor.js.map +1 -1
  69. package/src/license/dependency-check/pre-approved.js +949 -336
  70. package/src/license/dependency-check/pre-approved.js.map +1 -1
  71. package/src/license/dependency-check/types.js +2 -3
  72. package/src/license/dependency-check/types.js.map +1 -1
  73. package/src/license/generator.js +55 -60
  74. package/src/license/generator.js.map +1 -1
  75. package/src/license/index.js +3 -9
  76. package/src/license/index.js.map +1 -1
  77. package/src/license/known-exceptions.js +14 -13
  78. package/src/license/known-exceptions.js.map +1 -1
  79. package/src/license/schema.d.js +6 -0
  80. package/src/license/schema.d.js.map +1 -0
  81. package/src/license/schema.d.ts +2 -0
  82. package/src/license/schema.json +5 -0
  83. package/src/license/sync/generator.js +94 -119
  84. package/src/license/sync/generator.js.map +1 -1
  85. package/src/license/sync/project-file-sync.js +28 -35
  86. package/src/license/sync/project-file-sync.js.map +1 -1
  87. package/src/mcp-server/generator-info.js +130 -160
  88. package/src/mcp-server/generator-info.js.map +1 -1
  89. package/src/mcp-server/guide-pipeline.js +184 -206
  90. package/src/mcp-server/guide-pipeline.js.map +1 -1
  91. package/src/mcp-server/guide-render.js +10 -25
  92. package/src/mcp-server/guide-render.js.map +1 -1
  93. package/src/mcp-server/index.js +6 -10
  94. package/src/mcp-server/index.js.map +1 -1
  95. package/src/mcp-server/mdx-ast.js +39 -57
  96. package/src/mcp-server/mdx-ast.js.map +1 -1
  97. package/src/mcp-server/option-filter.js +33 -47
  98. package/src/mcp-server/option-filter.js.map +1 -1
  99. package/src/mcp-server/schema-registry.js +27 -40
  100. package/src/mcp-server/schema-registry.js.map +1 -1
  101. package/src/mcp-server/schema.js +9 -7
  102. package/src/mcp-server/schema.js.map +1 -1
  103. package/src/mcp-server/server.js +20 -24
  104. package/src/mcp-server/server.js.map +1 -1
  105. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  106. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  107. package/src/mcp-server/tools/general-guidance.js +45 -25
  108. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  109. package/src/mcp-server/tools/generator-guide.js +29 -37
  110. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  111. package/src/mcp-server/tools/list-generators.js +19 -25
  112. package/src/mcp-server/tools/list-generators.js.map +1 -1
  113. package/src/open-api/ts-client/generator.js +16 -26
  114. package/src/open-api/ts-client/generator.js.map +1 -1
  115. package/src/open-api/ts-client/schema.d.js +6 -0
  116. package/src/open-api/ts-client/schema.d.js.map +1 -0
  117. package/src/open-api/ts-hooks/generator.js +13 -21
  118. package/src/open-api/ts-hooks/generator.js.map +1 -1
  119. package/src/open-api/ts-hooks/schema.d.js +6 -0
  120. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  121. package/src/open-api/ts-metadata/generator.js +12 -20
  122. package/src/open-api/ts-metadata/generator.js.map +1 -1
  123. package/src/open-api/ts-metadata/schema.d.js +6 -0
  124. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  125. package/src/open-api/utils/codegen-data/languages.js +42 -60
  126. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  127. package/src/open-api/utils/codegen-data/types.js +31 -30
  128. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  129. package/src/open-api/utils/codegen-data.js +253 -269
  130. package/src/open-api/utils/codegen-data.js.map +1 -1
  131. package/src/open-api/utils/normalise.js +242 -241
  132. package/src/open-api/utils/normalise.js.map +1 -1
  133. package/src/open-api/utils/parse.js +8 -14
  134. package/src/open-api/utils/parse.js.map +1 -1
  135. package/src/open-api/utils/refs.js +12 -22
  136. package/src/open-api/utils/refs.js.map +1 -1
  137. package/src/open-api/utils/types.js +5 -2
  138. package/src/open-api/utils/types.js.map +1 -1
  139. package/src/preset/__snapshots__/generator.spec.ts.snap +32 -7
  140. package/src/preset/generator.d.ts +1 -1
  141. package/src/preset/generator.js +134 -113
  142. package/src/preset/generator.js.map +1 -1
  143. package/src/preset/schema.d.js +6 -0
  144. package/src/preset/schema.d.js.map +1 -0
  145. package/src/preset/schema.d.ts +1 -1
  146. package/src/preset/schema.json +5 -5
  147. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
  148. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.frameworks.spec.ts.snap} +16 -853
  149. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +535 -0
  150. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -2
  151. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -1
  152. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +1 -1
  153. package/src/py/agent/a2a-connection/generator.js +74 -75
  154. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  155. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  156. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  157. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  158. package/src/py/agent/a2a-connection/schema.json +5 -0
  159. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +6 -8
  160. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +3 -3
  161. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +3 -3
  162. package/src/py/agent/gateway-connection/generator.js +65 -58
  163. package/src/py/agent/gateway-connection/generator.js.map +1 -1
  164. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  165. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  166. package/src/py/agent/gateway-connection/schema.d.ts +1 -0
  167. package/src/py/agent/gateway-connection/schema.json +5 -0
  168. package/src/py/agent/generator.js +230 -194
  169. package/src/py/agent/generator.js.map +1 -1
  170. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -12
  171. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +1 -1
  172. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +1 -1
  173. package/src/py/agent/mcp-connection/generator.js +57 -52
  174. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  175. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  176. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  177. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  178. package/src/py/agent/mcp-connection/schema.json +5 -0
  179. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -2
  180. package/src/py/agent/react-connection/generator.d.ts +1 -1
  181. package/src/py/agent/react-connection/generator.js +55 -59
  182. package/src/py/agent/react-connection/generator.js.map +1 -1
  183. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
  184. package/src/py/agent/react-connection/local-dev.js +36 -0
  185. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  186. package/src/py/agent/react-connection/schema.d.js +8 -0
  187. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  188. package/src/py/agent/react-connection/schema.d.ts +1 -0
  189. package/src/py/agent/react-connection/schema.json +5 -0
  190. package/src/py/agent/schema.d.js +6 -0
  191. package/src/py/agent/schema.d.js.map +1 -0
  192. package/src/py/agent/schema.d.ts +1 -0
  193. package/src/py/agent/schema.json +5 -0
  194. package/src/py/api/generator.js +12 -11
  195. package/src/py/api/generator.js.map +1 -1
  196. package/src/py/api/schema.d.js +6 -0
  197. package/src/py/api/schema.d.js.map +1 -0
  198. package/src/py/api/schema.d.ts +1 -0
  199. package/src/py/api/schema.json +5 -0
  200. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +68 -28
  201. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
  202. package/src/py/dynamodb/agent-connection/generator.js +30 -30
  203. package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
  204. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  205. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  206. package/src/py/dynamodb/agent-connection/schema.d.ts +1 -0
  207. package/src/py/dynamodb/agent-connection/schema.json +5 -0
  208. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +3 -3
  209. package/src/py/dynamodb/fast-api-connection/generator.js +29 -29
  210. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
  211. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  212. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  213. package/src/py/dynamodb/fast-api-connection/schema.d.ts +1 -0
  214. package/src/py/dynamodb/fast-api-connection/schema.json +5 -0
  215. package/src/py/dynamodb/files/__name__/client.py.template +5 -5
  216. package/src/py/dynamodb/files/__name__/entities/base.py.template +2 -2
  217. package/src/py/dynamodb/files/config.json.template +1 -1
  218. package/src/py/dynamodb/generator.js +66 -62
  219. package/src/py/dynamodb/generator.js.map +1 -1
  220. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
  221. package/src/py/dynamodb/mcp-server-connection/generator.js +30 -30
  222. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
  223. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  224. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  225. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  226. package/src/py/dynamodb/mcp-server-connection/schema.json +5 -0
  227. package/src/py/dynamodb/schema.d.js +6 -0
  228. package/src/py/dynamodb/schema.d.js.map +1 -0
  229. package/src/py/dynamodb/schema.d.ts +1 -0
  230. package/src/py/dynamodb/schema.json +5 -0
  231. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +45 -4632
  232. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
  233. package/src/py/fast-api/generator.js +82 -85
  234. package/src/py/fast-api/generator.js.map +1 -1
  235. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +3 -2
  236. package/src/py/fast-api/react/generator.d.ts +2 -2
  237. package/src/py/fast-api/react/generator.js +25 -25
  238. package/src/py/fast-api/react/generator.js.map +1 -1
  239. package/src/py/fast-api/react/open-api.js +28 -29
  240. package/src/py/fast-api/react/open-api.js.map +1 -1
  241. package/src/py/fast-api/react/schema.d.js +6 -0
  242. package/src/py/fast-api/react/schema.d.js.map +1 -0
  243. package/src/py/fast-api/react/schema.d.ts +1 -0
  244. package/src/py/fast-api/react/schema.json +5 -0
  245. package/src/py/fast-api/schema.d.js +6 -0
  246. package/src/py/fast-api/schema.d.js.map +1 -0
  247. package/src/py/fast-api/schema.d.ts +1 -0
  248. package/src/py/fast-api/schema.json +5 -0
  249. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  250. package/src/py/lambda-function/generator.js +60 -59
  251. package/src/py/lambda-function/generator.js.map +1 -1
  252. package/src/py/lambda-function/schema.d.js +6 -0
  253. package/src/py/lambda-function/schema.d.js.map +1 -0
  254. package/src/py/lambda-function/schema.d.ts +1 -0
  255. package/src/py/lambda-function/schema.json +5 -0
  256. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +8 -8
  257. package/src/py/mcp-server/generator.js +152 -132
  258. package/src/py/mcp-server/generator.js.map +1 -1
  259. package/src/py/mcp-server/schema.d.js +6 -0
  260. package/src/py/mcp-server/schema.d.js.map +1 -0
  261. package/src/py/mcp-server/schema.d.ts +1 -0
  262. package/src/py/mcp-server/schema.json +5 -0
  263. package/src/py/project/generator.js +132 -90
  264. package/src/py/project/generator.js.map +1 -1
  265. package/src/py/project/schema.d.js +6 -0
  266. package/src/py/project/schema.d.js.map +1 -0
  267. package/src/py/project/schema.d.ts +1 -0
  268. package/src/py/project/schema.json +5 -0
  269. package/src/sdk/agentcore-gateway.d.ts +6 -0
  270. package/src/sdk/agentcore-gateway.js +7 -0
  271. package/src/sdk/agentcore-gateway.js.map +1 -0
  272. package/src/sdk/connection.d.ts +6 -0
  273. package/src/sdk/connection.js +6 -0
  274. package/src/sdk/connection.js.map +1 -0
  275. package/{sdk → src/sdk}/license.d.ts +4 -4
  276. package/src/sdk/license.js +7 -0
  277. package/src/sdk/license.js.map +1 -0
  278. package/src/sdk/open-api.d.ts +10 -0
  279. package/src/sdk/open-api.js +8 -0
  280. package/src/sdk/open-api.js.map +1 -0
  281. package/src/sdk/py.d.ts +14 -0
  282. package/src/sdk/py.js +10 -0
  283. package/src/sdk/py.js.map +1 -0
  284. package/src/sdk/terraform.d.ts +6 -0
  285. package/src/sdk/terraform.js +7 -0
  286. package/src/sdk/terraform.js.map +1 -0
  287. package/src/sdk/ts.d.ts +33 -0
  288. package/src/sdk/ts.js +35 -0
  289. package/src/sdk/ts.js.map +1 -0
  290. package/{sdk → src/sdk}/utils/ast.d.ts +1 -2
  291. package/src/sdk/utils/ast.js +6 -0
  292. package/src/sdk/utils/ast.js.map +1 -0
  293. package/{sdk → src/sdk}/utils/format.d.ts +1 -1
  294. package/src/sdk/utils/format.js +6 -0
  295. package/src/sdk/utils/format.js.map +1 -0
  296. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  297. package/src/sdk/utils/test.js +6 -0
  298. package/src/sdk/utils/test.js.map +1 -0
  299. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +2 -8
  300. package/src/smithy/project/files/build.Dockerfile.template +1 -4
  301. package/src/smithy/project/generator.js +48 -43
  302. package/src/smithy/project/generator.js.map +1 -1
  303. package/src/smithy/project/schema.d.js +6 -0
  304. package/src/smithy/project/schema.d.js.map +1 -0
  305. package/src/smithy/project/schema.d.ts +1 -0
  306. package/src/smithy/project/schema.json +5 -0
  307. package/src/smithy/react-connection/generator.js +39 -47
  308. package/src/smithy/react-connection/generator.js.map +1 -1
  309. package/src/smithy/react-connection/schema.d.js +6 -0
  310. package/src/smithy/react-connection/schema.d.js.map +1 -0
  311. package/src/smithy/react-connection/schema.d.ts +1 -0
  312. package/src/smithy/react-connection/schema.json +5 -0
  313. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +395 -72
  314. package/src/smithy/ts/api/generator.js +125 -110
  315. package/src/smithy/ts/api/generator.js.map +1 -1
  316. package/src/smithy/ts/api/schema.d.js +6 -0
  317. package/src/smithy/ts/api/schema.d.js.map +1 -0
  318. package/src/smithy/ts/api/schema.d.ts +1 -0
  319. package/src/smithy/ts/api/schema.json +5 -0
  320. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  321. package/src/terraform/project/generator.js +151 -104
  322. package/src/terraform/project/generator.js.map +1 -1
  323. package/src/terraform/project/schema.d.js +9 -0
  324. package/src/terraform/project/schema.d.js.map +1 -0
  325. package/src/terraform/project/schema.d.ts +1 -0
  326. package/src/terraform/project/schema.json +5 -0
  327. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +336 -92
  328. package/src/trpc/backend/generator.d.ts +1 -1
  329. package/src/trpc/backend/generator.js +97 -86
  330. package/src/trpc/backend/generator.js.map +1 -1
  331. package/src/trpc/backend/schema.d.js +6 -0
  332. package/src/trpc/backend/schema.d.js.map +1 -0
  333. package/src/trpc/backend/schema.d.ts +1 -0
  334. package/src/trpc/backend/schema.json +5 -0
  335. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
  336. package/src/trpc/react/generator.d.ts +1 -1
  337. package/src/trpc/react/generator.js +63 -58
  338. package/src/trpc/react/generator.js.map +1 -1
  339. package/src/trpc/react/schema.d.js +6 -0
  340. package/src/trpc/react/schema.d.js.map +1 -0
  341. package/src/trpc/react/schema.d.ts +1 -0
  342. package/src/trpc/react/schema.json +5 -0
  343. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +11 -11
  344. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -1
  345. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +1 -1
  346. package/src/ts/agent/a2a-connection/generator.js +62 -55
  347. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  348. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  349. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  350. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  351. package/src/ts/agent/a2a-connection/schema.json +5 -0
  352. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +5 -5
  353. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +3 -3
  354. package/src/ts/agent/gateway-connection/generator.js +61 -53
  355. package/src/ts/agent/gateway-connection/generator.js.map +1 -1
  356. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  357. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  358. package/src/ts/agent/gateway-connection/schema.d.ts +1 -0
  359. package/src/ts/agent/gateway-connection/schema.json +5 -0
  360. package/src/ts/agent/generator.js +169 -137
  361. package/src/ts/agent/generator.js.map +1 -1
  362. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
  363. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +1 -1
  364. package/src/ts/agent/mcp-connection/generator.js +52 -47
  365. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  366. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  367. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  368. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  369. package/src/ts/agent/mcp-connection/schema.json +5 -0
  370. package/src/ts/agent/react-connection/generator.d.ts +1 -1
  371. package/src/ts/agent/react-connection/generator.js +86 -80
  372. package/src/ts/agent/react-connection/generator.js.map +1 -1
  373. package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
  374. package/src/ts/agent/react-connection/local-dev.js +17 -0
  375. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  376. package/src/ts/agent/react-connection/schema.d.js +8 -0
  377. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  378. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  379. package/src/ts/agent/react-connection/schema.json +5 -0
  380. package/src/ts/agent/schema.d.js +6 -0
  381. package/src/ts/agent/schema.d.js.map +1 -0
  382. package/src/ts/agent/schema.d.ts +1 -0
  383. package/src/ts/agent/schema.json +5 -0
  384. package/src/ts/api/generator.js +16 -16
  385. package/src/ts/api/generator.js.map +1 -1
  386. package/src/ts/api/schema.d.js +6 -0
  387. package/src/ts/api/schema.d.js.map +1 -0
  388. package/src/ts/api/schema.d.ts +1 -0
  389. package/src/ts/api/schema.json +5 -0
  390. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +8 -8
  391. package/src/ts/astro-docs/generator.js +63 -51
  392. package/src/ts/astro-docs/generator.js.map +1 -1
  393. package/src/ts/astro-docs/schema.d.js +6 -0
  394. package/src/ts/astro-docs/schema.d.js.map +1 -0
  395. package/src/ts/astro-docs/schema.d.ts +2 -2
  396. package/src/ts/astro-docs/schema.json +3 -3
  397. package/src/ts/docs/generator.js +10 -10
  398. package/src/ts/docs/generator.js.map +1 -1
  399. package/src/ts/docs/schema.d.js +6 -0
  400. package/src/ts/docs/schema.d.js.map +1 -0
  401. package/src/ts/docs/schema.d.ts +1 -4
  402. package/src/ts/docs/schema.json +3 -3
  403. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +68 -30
  404. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
  405. package/src/ts/dynamodb/agent-connection/generator.js +21 -23
  406. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  407. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  408. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  409. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
  410. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  411. package/src/ts/dynamodb/files/config.json.template +1 -1
  412. package/src/ts/dynamodb/files/src/client.ts.template +7 -7
  413. package/src/ts/dynamodb/generator.js +68 -63
  414. package/src/ts/dynamodb/generator.js.map +1 -1
  415. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
  416. package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
  417. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  418. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  419. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  420. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  421. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  422. package/src/ts/dynamodb/schema.d.js +6 -0
  423. package/src/ts/dynamodb/schema.d.js.map +1 -0
  424. package/src/ts/dynamodb/schema.d.ts +1 -0
  425. package/src/ts/dynamodb/schema.json +5 -0
  426. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  427. package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
  428. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  429. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  430. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  431. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  432. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  433. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  434. package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
  435. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  436. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  437. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  438. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  439. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  440. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  441. package/src/ts/lambda-function/generator.js +59 -56
  442. package/src/ts/lambda-function/generator.js.map +1 -1
  443. package/src/ts/lambda-function/io.js +83 -52
  444. package/src/ts/lambda-function/io.js.map +1 -1
  445. package/src/ts/lambda-function/schema.d.js +6 -0
  446. package/src/ts/lambda-function/schema.d.js.map +1 -0
  447. package/src/ts/lambda-function/schema.d.ts +1 -0
  448. package/src/ts/lambda-function/schema.json +5 -0
  449. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +23 -36
  450. package/src/ts/lib/biome.js +37 -37
  451. package/src/ts/lib/biome.js.map +1 -1
  452. package/src/ts/lib/generator.js +82 -80
  453. package/src/ts/lib/generator.js.map +1 -1
  454. package/src/ts/lib/schema.d.js +6 -0
  455. package/src/ts/lib/schema.d.js.map +1 -0
  456. package/src/ts/lib/schema.d.ts +1 -1
  457. package/src/ts/lib/schema.json +5 -0
  458. package/src/ts/lib/ts-project-utils.js +65 -70
  459. package/src/ts/lib/ts-project-utils.js.map +1 -1
  460. package/src/ts/lib/types.js +5 -2
  461. package/src/ts/lib/types.js.map +1 -1
  462. package/src/ts/lib/vitest.js +29 -26
  463. package/src/ts/lib/vitest.js.map +1 -1
  464. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
  465. package/src/ts/mcp-server/generator.js +161 -139
  466. package/src/ts/mcp-server/generator.js.map +1 -1
  467. package/src/ts/mcp-server/schema.d.js +6 -0
  468. package/src/ts/mcp-server/schema.d.js.map +1 -0
  469. package/src/ts/mcp-server/schema.d.ts +1 -0
  470. package/src/ts/mcp-server/schema.json +5 -0
  471. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +27 -12
  472. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  473. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  474. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  475. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  476. package/src/ts/nx-generator/generator.js +88 -84
  477. package/src/ts/nx-generator/generator.js.map +1 -1
  478. package/src/ts/nx-generator/schema.d.js +6 -0
  479. package/src/ts/nx-generator/schema.d.js.map +1 -0
  480. package/src/ts/nx-generator/schema.d.ts +1 -0
  481. package/src/ts/nx-generator/schema.json +5 -0
  482. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +30 -18
  483. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  484. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  485. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  486. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  487. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  488. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
  489. package/src/ts/nx-plugin/generator.js +57 -49
  490. package/src/ts/nx-plugin/generator.js.map +1 -1
  491. package/src/ts/nx-plugin/schema.d.js +9 -0
  492. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  493. package/src/ts/nx-plugin/schema.json +5 -0
  494. package/src/ts/nx-plugin/utils.js +32 -44
  495. package/src/ts/nx-plugin/utils.js.map +1 -1
  496. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +30 -30
  497. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
  498. package/src/ts/rdb/agent-connection/generator.js +38 -39
  499. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  500. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  501. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  502. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  503. package/src/ts/rdb/agent-connection/schema.json +5 -0
  504. package/src/ts/rdb/files/config.json.template +1 -1
  505. package/src/ts/rdb/files/prisma.config.ts.template +2 -2
  506. package/src/ts/rdb/files/src/prisma.ts.template +7 -7
  507. package/src/ts/rdb/files/src/utils.ts.template +1 -0
  508. package/src/ts/rdb/generator.js +134 -117
  509. package/src/ts/rdb/generator.js.map +1 -1
  510. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
  511. package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
  512. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  513. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  514. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  515. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  516. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  517. package/src/ts/rdb/schema.d.js +6 -0
  518. package/src/ts/rdb/schema.d.js.map +1 -0
  519. package/src/ts/rdb/schema.d.ts +1 -0
  520. package/src/ts/rdb/schema.json +5 -0
  521. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  522. package/src/ts/rdb/smithy-connection/generator.js +46 -43
  523. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  524. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  525. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  526. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  527. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  528. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  529. package/src/ts/rdb/trpc-connection/generator.js +36 -31
  530. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  531. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  532. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  533. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  534. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  535. package/src/ts/rdb/utils.js +9 -11
  536. package/src/ts/rdb/utils.js.map +1 -1
  537. package/src/ts/react-website/agui/generator.js +69 -61
  538. package/src/ts/react-website/agui/generator.js.map +1 -1
  539. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +178 -284
  540. package/src/ts/react-website/app/generator.d.ts +1 -1
  541. package/src/ts/react-website/app/generator.js +212 -191
  542. package/src/ts/react-website/app/generator.js.map +1 -1
  543. package/src/ts/react-website/app/schema.d.js +6 -0
  544. package/src/ts/react-website/app/schema.d.js.map +1 -0
  545. package/src/ts/react-website/app/schema.d.ts +1 -1
  546. package/src/ts/react-website/app/schema.json +11 -6
  547. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +118 -4
  548. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +10 -3
  549. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  550. package/src/ts/react-website/cognito-auth/generator.d.ts +1 -1
  551. package/src/ts/react-website/cognito-auth/generator.js +64 -60
  552. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  553. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  554. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  555. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  556. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  557. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  558. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  559. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  560. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  561. package/src/ts/react-website/runtime-config/generator.js +29 -31
  562. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  563. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  564. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  565. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  566. package/src/ts/react-website/runtime-config/schema.json +5 -0
  567. package/src/ts/sync/generator.js +60 -59
  568. package/src/ts/sync/generator.js.map +1 -1
  569. package/src/ts/website/app/generator.js +10 -10
  570. package/src/ts/website/app/generator.js.map +1 -1
  571. package/src/ts/website/app/schema.d.js +6 -0
  572. package/src/ts/website/app/schema.d.js.map +1 -0
  573. package/src/ts/website/app/schema.d.ts +1 -1
  574. package/src/ts/website/app/schema.json +11 -6
  575. package/src/ts/website/auth/generator.d.ts +1 -1
  576. package/src/ts/website/auth/generator.js +11 -10
  577. package/src/ts/website/auth/generator.js.map +1 -1
  578. package/src/ts/website/auth/schema.d.js +6 -0
  579. package/src/ts/website/auth/schema.d.js.map +1 -0
  580. package/src/ts/website/auth/schema.d.ts +1 -0
  581. package/src/ts/website/auth/schema.json +5 -0
  582. package/src/utils/agent-chat/agent-chat.d.ts +1 -1
  583. package/src/utils/agent-chat/agent-chat.js +11 -12
  584. package/src/utils/agent-chat/agent-chat.js.map +1 -1
  585. package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
  586. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
  587. package/src/utils/agent-chat/files/http-py/chat.ts.template +1 -1
  588. package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
  589. package/src/utils/agent-connection/agent-connection.js +129 -146
  590. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  591. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +1 -1
  592. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
  593. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +1 -1
  594. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +1 -1
  595. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +1 -1
  596. package/src/utils/agent-core-constructs/agent-core-constructs.js +53 -50
  597. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  598. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  599. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +4 -4
  600. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +2 -2
  601. package/src/utils/api-constructs/api-constructs.js +30 -31
  602. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  603. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +14 -6
  604. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
  605. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  606. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +28 -14
  607. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
  608. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +91 -4
  609. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  610. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  611. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  612. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  613. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  614. package/src/utils/ast/website.js +17 -19
  615. package/src/utils/ast/website.js.map +1 -1
  616. package/src/utils/ast.js +72 -97
  617. package/src/utils/ast.js.map +1 -1
  618. package/src/utils/bundle/bundle.js +50 -47
  619. package/src/utils/bundle/bundle.js.map +1 -1
  620. package/src/utils/commands.js +47 -26
  621. package/src/utils/commands.js.map +1 -1
  622. package/src/utils/config/index.d.ts +2 -2
  623. package/src/utils/config/index.js +5 -4
  624. package/src/utils/config/index.js.map +1 -1
  625. package/src/utils/config/utils.js +48 -58
  626. package/src/utils/config/utils.js.map +1 -1
  627. package/src/utils/connection/open-api/react.d.ts +5 -5
  628. package/src/utils/connection/open-api/react.js +81 -77
  629. package/src/utils/connection/open-api/react.js.map +1 -1
  630. package/src/utils/containers.js +22 -23
  631. package/src/utils/containers.js.map +1 -1
  632. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +32 -33
  633. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  634. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +12 -2
  635. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  636. package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +2 -2
  637. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +1 -1
  638. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +17 -2
  639. package/src/utils/files/common/scripts/src/infra/stage-credentials/cdk-command.ts.template +11 -3
  640. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  641. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  642. package/src/utils/files/common/scripts/src/rdb/{pull-image.ts.template → shared/pull-image.ts.template} +1 -1
  643. package/src/utils/files/common/scripts/src/rdb/{start-container.ts.template → shared/start-container.ts.template} +16 -1
  644. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
  645. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  646. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +3 -3
  647. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  648. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +2 -2
  649. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  650. package/src/utils/format.js +153 -99
  651. package/src/utils/format.js.map +1 -1
  652. package/src/utils/fs.js +14 -13
  653. package/src/utils/fs.js.map +1 -1
  654. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  655. package/src/utils/function-constructs/function-constructs.js +21 -26
  656. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  657. package/src/utils/generators.js +18 -20
  658. package/src/utils/generators.js.map +1 -1
  659. package/src/utils/git.js +19 -34
  660. package/src/utils/git.js.map +1 -1
  661. package/src/utils/iac-providers.js +5 -5
  662. package/src/utils/iac-providers.js.map +1 -1
  663. package/src/utils/iac.js +12 -14
  664. package/src/utils/iac.js.map +1 -1
  665. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +112 -2
  666. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +2 -2
  667. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +104 -2
  668. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  669. package/src/utils/identity-constructs/identity-constructs.js +24 -28
  670. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  671. package/src/utils/install.d.ts +32 -0
  672. package/src/utils/install.js +56 -0
  673. package/src/utils/install.js.map +1 -0
  674. package/src/utils/js.js +27 -20
  675. package/src/utils/js.js.map +1 -1
  676. package/src/utils/mcp.js +34 -41
  677. package/src/utils/mcp.js.map +1 -1
  678. package/src/utils/metrics.js +30 -45
  679. package/src/utils/metrics.js.map +1 -1
  680. package/src/utils/mock-project-graph.js +8 -12
  681. package/src/utils/mock-project-graph.js.map +1 -1
  682. package/src/utils/names.js +25 -51
  683. package/src/utils/names.js.map +1 -1
  684. package/src/utils/npm-scope.js +9 -17
  685. package/src/utils/npm-scope.js.map +1 -1
  686. package/src/utils/nx.d.ts +18 -2
  687. package/src/utils/nx.js +111 -74
  688. package/src/utils/nx.js.map +1 -1
  689. package/src/utils/nxlv-python.js +27 -15
  690. package/src/utils/nxlv-python.js.map +1 -1
  691. package/src/utils/object.js +5 -11
  692. package/src/utils/object.js.map +1 -1
  693. package/src/utils/paths.js +11 -15
  694. package/src/utils/paths.js.map +1 -1
  695. package/src/utils/pkg-manager.js +4 -9
  696. package/src/utils/pkg-manager.js.map +1 -1
  697. package/src/utils/pnpm-workspace.js +22 -22
  698. package/src/utils/pnpm-workspace.js.map +1 -1
  699. package/src/utils/port.js +26 -36
  700. package/src/utils/port.js.map +1 -1
  701. package/src/utils/py.js +43 -52
  702. package/src/utils/py.js.map +1 -1
  703. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  704. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +3 -3
  705. package/src/utils/rdb-constructs/rdb-constructs.js +31 -33
  706. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  707. package/src/utils/shared-constructs-constants.js +16 -16
  708. package/src/utils/shared-constructs-constants.js.map +1 -1
  709. package/src/utils/shared-constructs.js +57 -54
  710. package/src/utils/shared-constructs.js.map +1 -1
  711. package/src/utils/shared-dynamodb-scripts.js +16 -14
  712. package/src/utils/shared-dynamodb-scripts.js.map +1 -1
  713. package/src/utils/shared-infra-config.js +30 -31
  714. package/src/utils/shared-infra-config.js.map +1 -1
  715. package/src/utils/shared-infra-scripts.js +30 -25
  716. package/src/utils/shared-infra-scripts.js.map +1 -1
  717. package/src/utils/shared-rdb-scripts.d.ts +8 -3
  718. package/src/utils/shared-rdb-scripts.js +21 -13
  719. package/src/utils/shared-rdb-scripts.js.map +1 -1
  720. package/src/utils/shared-scripts.js +12 -17
  721. package/src/utils/shared-scripts.js.map +1 -1
  722. package/src/utils/shared-shadcn.js +64 -60
  723. package/src/utils/shared-shadcn.js.map +1 -1
  724. package/src/utils/test.d.ts +8 -0
  725. package/src/utils/test.js +33 -25
  726. package/src/utils/test.js.map +1 -1
  727. package/src/utils/toml.js +7 -15
  728. package/src/utils/toml.js.map +1 -1
  729. package/src/utils/versions.d.ts +93 -66
  730. package/src/utils/versions.js +102 -85
  731. package/src/utils/versions.js.map +1 -1
  732. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  733. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +4 -4
  734. package/src/utils/website-constructs/website-constructs.js +31 -30
  735. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  736. package/bin/aws-nx-mcp.js +0 -17
  737. package/bin/aws-nx-mcp.js.map +0 -1
  738. package/sdk/agentcore-gateway.d.ts +0 -6
  739. package/sdk/agentcore-gateway.js +0 -11
  740. package/sdk/agentcore-gateway.js.map +0 -1
  741. package/sdk/connection.d.ts +0 -6
  742. package/sdk/connection.js +0 -10
  743. package/sdk/connection.js.map +0 -1
  744. package/sdk/license.js +0 -14
  745. package/sdk/license.js.map +0 -1
  746. package/sdk/open-api.d.ts +0 -10
  747. package/sdk/open-api.js +0 -15
  748. package/sdk/open-api.js.map +0 -1
  749. package/sdk/py.d.ts +0 -14
  750. package/sdk/py.js +0 -18
  751. package/sdk/py.js.map +0 -1
  752. package/sdk/terraform.d.ts +0 -6
  753. package/sdk/terraform.js +0 -11
  754. package/sdk/terraform.js.map +0 -1
  755. package/sdk/ts.d.ts +0 -33
  756. package/sdk/ts.js +0 -53
  757. package/sdk/ts.js.map +0 -1
  758. package/sdk/utils/ast.js +0 -12
  759. package/sdk/utils/ast.js.map +0 -1
  760. package/sdk/utils/format.js +0 -10
  761. package/sdk/utils/format.js.map +0 -1
  762. package/sdk/utils/test.js +0 -10
  763. package/sdk/utils/test.js.map +0 -1
  764. package/src/connection/agent-serve-local.js +0 -48
  765. package/src/connection/agent-serve-local.js.map +0 -1
  766. package/src/connection/serve-local.js +0 -41
  767. package/src/connection/serve-local.js.map +0 -1
  768. package/src/py/agent/react-connection/serve-local.js +0 -38
  769. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  770. package/src/ts/agent/react-connection/serve-local.js +0 -19
  771. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  772. package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +0 -59
  773. /package/src/agentcore-gateway/files/project/{serve-local.ts.template → local-dev.ts.template} +0 -0
  774. /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/agent/react-connection/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/py/agent/react-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addAgentRuntimeToConnectionNamespace } from '../../../connection/agent-runtime-config';\nimport type { ResolvedConnectionOptions } from '../../../connection/generator';\nimport {\n type AgUiAuth,\n addAgUiReactConnection,\n} from '../../../ts/react-website/agui/generator';\nimport { addOpenApiReactClient } from '../../../utils/connection/open-api/react';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { installDependencies } from '../../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport { kebabCase, toClassName, toSnakeCase } from '../../../utils/names';\nimport {\n type ComponentMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport { sortObjectKeys } from '../../../utils/object';\nimport {\n addPyAgentTargetToLocalDev,\n openApiClientLocalDevDeps,\n} from './local-dev';\n\nexport const PY_AGENT_REACT_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const pyAgentReactConnectionGenerator = async (\n tree: Tree,\n options: ResolvedConnectionOptions,\n) => {\n const frontendProjectConfig = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const agentProjectConfig = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n const targetComponent: ComponentMetadata | undefined =\n options.targetComponent;\n\n // Extract agent metadata from the target component or project metadata\n const metadata = agentProjectConfig.metadata as any;\n const agentName = targetComponent?.name ?? 'agent';\n const agentNameClassName = targetComponent?.rc ?? toClassName(agentName);\n const agentPort = targetComponent?.port ?? metadata?.ports?.[0] ?? 8081;\n const auth = (targetComponent?.auth ?? metadata?.auth ?? 'iam').toLowerCase();\n const protocol = (targetComponent?.protocol ?? 'http').toLowerCase();\n\n if (protocol === 'a2a') {\n throw new Error(\n `Cannot connect a React website to an A2A agent. ` +\n `Consider generating an agent with the HTTP or AG-UI protocol instead.`,\n );\n }\n\n let additionalLocalDevDeps: string[] = [];\n\n if (protocol === 'ag-ui') {\n await addAgUiReactConnection(tree, {\n frontendProjectConfig,\n agentName,\n agentNameClassName,\n auth: auth as AgUiAuth,\n });\n } else {\n const moduleName = getModuleName(agentProjectConfig);\n const agentNameSnakeCase = toSnakeCase(agentName);\n const agentTargetPrefix = targetComponent?.name ? agentName : 'agent';\n\n // Add OpenAPI spec generation script scoped to this agent\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files/agent'),\n agentProjectConfig.root,\n {\n moduleName,\n agentNameSnakeCase,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n // Instrument the OpenAPI spec generation as a target on the agent project\n const openApiTargetName = `${agentTargetPrefix}-openapi`;\n const openApiDist = joinPathFragments(\n 'dist',\n agentProjectConfig.root,\n 'openapi',\n agentNameSnakeCase,\n );\n const specPath = joinPathFragments(openApiDist, 'openapi.json');\n\n updateProjectConfiguration(tree, agentProjectConfig.name, {\n ...agentProjectConfig,\n targets: sortObjectKeys({\n ...agentProjectConfig.targets,\n [openApiTargetName]: {\n cache: true,\n executor: 'nx:run-commands',\n outputs: [\n `{workspaceRoot}/dist/{projectRoot}/openapi/${agentNameSnakeCase}`,\n ],\n options: {\n commands: [\n `uv run python {projectRoot}/scripts/${agentNameSnakeCase}_openapi.py \"dist/{projectRoot}/openapi/${agentNameSnakeCase}/openapi.json\"`,\n ],\n },\n },\n }),\n });\n\n // Use the shared OpenAPI react client utility for hooks, providers, and build targets.\n // The dev target is handled separately below using the agent-specific dev target.\n await addOpenApiReactClient(tree, {\n apiName: agentNameClassName,\n frontendProjectConfig,\n backendProjectConfig: agentProjectConfig,\n specBuildProject: agentProjectConfig,\n specPath,\n specBuildTargetName: `${agentProjectConfig.name}:${openApiTargetName}`,\n auth,\n port: agentPort,\n isAgentRuntime: true,\n skipLocalDev: true,\n });\n\n additionalLocalDevDeps = openApiClientLocalDevDeps(agentNameClassName);\n\n // HTTP only — the AG-UI branch handles this inside addAgUiReactConnection.\n // Agent constructs publish their runtime ARN to the 'agentcore' namespace\n // by default, which isn't exposed to the website; patch them to also\n // publish under 'connection' so the browser can read it.\n await addAgentRuntimeToConnectionNamespace(tree, {\n agentNameKebabCase: kebabCase(agentNameClassName),\n agentNameClassName,\n });\n }\n\n await addPyAgentTargetToLocalDev(\n tree,\n frontendProjectConfig.name,\n agentProjectConfig.name,\n {\n agentName,\n agentNameClassName,\n port: agentPort,\n targetComponent,\n additionalDependencyTargets: additionalLocalDevDeps,\n },\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n PY_AGENT_REACT_CONNECTION_GENERATOR_INFO,\n ]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\n/**\n * Determine the Python module name from the project configuration\n */\nconst getModuleName = (\n projectConfig: ReturnType<typeof readProjectConfigurationUnqualified>,\n): string => {\n if (projectConfig.sourceRoot) {\n const sourceRootParts = projectConfig.sourceRoot.split('/');\n return sourceRootParts[sourceRootParts.length - 1];\n }\n throw new Error(\n `Could not determine sourceRoot for project ${projectConfig.name}`,\n );\n};\n\nexport default pyAgentReactConnectionGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","addAgentRuntimeToConnectionNamespace","addAgUiReactConnection","addOpenApiReactClient","formatFilesInSubtree","installDependencies","addGeneratorMetricsIfApplicable","kebabCase","toClassName","toSnakeCase","getGeneratorInfo","readProjectConfigurationUnqualified","sortObjectKeys","addPyAgentTargetToLocalDev","openApiClientLocalDevDeps","PY_AGENT_REACT_CONNECTION_GENERATOR_INFO","filename","pyAgentReactConnectionGenerator","tree","options","frontendProjectConfig","sourceProject","agentProjectConfig","targetProject","targetComponent","metadata","agentName","name","agentNameClassName","rc","agentPort","port","ports","auth","toLowerCase","protocol","Error","additionalLocalDevDeps","moduleName","getModuleName","agentNameSnakeCase","agentTargetPrefix","dirname","root","overwriteStrategy","KeepExisting","openApiTargetName","openApiDist","specPath","targets","cache","executor","outputs","commands","apiName","backendProjectConfig","specBuildProject","specBuildTargetName","isAgentRuntime","skipLocalDev","agentNameKebabCase","additionalDependencyTargets","preferInstallDependencies","languages","projectConfig","sourceRoot","sourceRootParts","split","length"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import type { Tree } from '@nx/devkit';
6
6
  import type { ComponentMetadata } from '../../../utils/nx';
7
- export interface PyAgentServeLocalOptions {
7
+ export interface PyAgentLocalDevOptions {
8
8
  agentName: string;
9
9
  agentNameClassName: string;
10
10
  port: number;
@@ -12,12 +12,12 @@ export interface PyAgentServeLocalOptions {
12
12
  additionalDependencyTargets?: string[];
13
13
  }
14
14
  /**
15
- * Adds the given py strands agent target project to the source project's serve-local target.
15
+ * Adds the given py strands agent target project to the source project's dev target.
16
16
  * Updates the runtime config provider (if it exists) to point to the local HTTP URL.
17
17
  */
18
- export declare const addPyAgentTargetToServeLocal: (tree: Tree, sourceProjectName: string, targetProjectName: string, options: PyAgentServeLocalOptions) => Promise<void>;
18
+ export declare const addPyAgentTargetToLocalDev: (tree: Tree, sourceProjectName: string, targetProjectName: string, options: PyAgentLocalDevOptions) => Promise<void>;
19
19
  /**
20
20
  * Build the OpenAPI client generation target names for an HTTP agent so
21
21
  * that local API changes regenerate the client.
22
22
  */
23
- export declare const openApiClientServeLocalDeps: (agentNameClassName: string) => string[];
23
+ export declare const openApiClientLocalDevDeps: (agentNameClassName: string) => string[];
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { addAgentTargetToLocalDev } from "../../../connection/agent-local-dev.js";
5
+ import { kebabCase } from "../../../utils/names.js";
6
+ /**
7
+ * Adds the given py strands agent target project to the source project's dev target.
8
+ * Updates the runtime config provider (if it exists) to point to the local HTTP URL.
9
+ */ export const addPyAgentTargetToLocalDev = async (tree, sourceProjectName, targetProjectName, options)=>{
10
+ // AG-UI clients POST to the runtime config URL directly, so it must point at
11
+ // the agent's `/invocations` endpoint. HTTP agents go through the generated
12
+ // OpenAPI client, which appends the `/invocations` operation path itself, so
13
+ // its base URL must omit it (otherwise the request hits `/invocations/invocations`).
14
+ const protocol = (options.targetComponent?.protocol ?? 'http').toLowerCase();
15
+ const localUrl = protocol === 'ag-ui' ? `http://localhost:${options.port}/invocations` : `http://localhost:${options.port}`;
16
+ await addAgentTargetToLocalDev(tree, sourceProjectName, targetProjectName, {
17
+ agentNameClassName: options.agentNameClassName,
18
+ port: options.port,
19
+ targetComponent: options.targetComponent,
20
+ runtimeConfigNamespace: 'agentRuntimes',
21
+ localUrl,
22
+ additionalDependencyTargets: options.additionalDependencyTargets
23
+ });
24
+ };
25
+ /**
26
+ * Build the OpenAPI client generation target names for an HTTP agent so
27
+ * that local API changes regenerate the client.
28
+ */ export const openApiClientLocalDevDeps = (agentNameClassName)=>{
29
+ const clientGenTarget = `generate:${kebabCase(agentNameClassName)}-client`;
30
+ return [
31
+ clientGenTarget,
32
+ `watch-${clientGenTarget}`
33
+ ];
34
+ };
35
+
36
+ //# sourceMappingURL=local-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/py/agent/react-connection/local-dev.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Tree } from '@nx/devkit';\nimport { addAgentTargetToLocalDev } from '../../../connection/agent-local-dev';\nimport { kebabCase } from '../../../utils/names';\nimport type { ComponentMetadata } from '../../../utils/nx';\n\nexport interface PyAgentLocalDevOptions {\n agentName: string;\n agentNameClassName: string;\n port: number;\n targetComponent?: ComponentMetadata;\n additionalDependencyTargets?: string[];\n}\n\n/**\n * Adds the given py strands agent target project to the source project's dev target.\n * Updates the runtime config provider (if it exists) to point to the local HTTP URL.\n */\nexport const addPyAgentTargetToLocalDev = async (\n tree: Tree,\n sourceProjectName: string,\n targetProjectName: string,\n options: PyAgentLocalDevOptions,\n) => {\n // AG-UI clients POST to the runtime config URL directly, so it must point at\n // the agent's `/invocations` endpoint. HTTP agents go through the generated\n // OpenAPI client, which appends the `/invocations` operation path itself, so\n // its base URL must omit it (otherwise the request hits `/invocations/invocations`).\n const protocol = (options.targetComponent?.protocol ?? 'http').toLowerCase();\n const localUrl =\n protocol === 'ag-ui'\n ? `http://localhost:${options.port}/invocations`\n : `http://localhost:${options.port}`;\n\n await addAgentTargetToLocalDev(tree, sourceProjectName, targetProjectName, {\n agentNameClassName: options.agentNameClassName,\n port: options.port,\n targetComponent: options.targetComponent,\n runtimeConfigNamespace: 'agentRuntimes',\n localUrl,\n additionalDependencyTargets: options.additionalDependencyTargets,\n });\n};\n\n/**\n * Build the OpenAPI client generation target names for an HTTP agent so\n * that local API changes regenerate the client.\n */\nexport const openApiClientLocalDevDeps = (\n agentNameClassName: string,\n): string[] => {\n const clientGenTarget = `generate:${kebabCase(agentNameClassName)}-client`;\n return [clientGenTarget, `watch-${clientGenTarget}`];\n};\n"],"names":["addAgentTargetToLocalDev","kebabCase","addPyAgentTargetToLocalDev","tree","sourceProjectName","targetProjectName","options","protocol","targetComponent","toLowerCase","localUrl","port","agentNameClassName","runtimeConfigNamespace","additionalDependencyTargets","openApiClientLocalDevDeps","clientGenTarget"],"mappings":"AAAA;;;CAGC,GAED,SAASA,wBAAwB,QAAQ,yCAAsC;AAC/E,SAASC,SAAS,QAAQ,0BAAuB;AAWjD;;;CAGC,GACD,OAAO,MAAMC,6BAA6B,OACxCC,MACAC,mBACAC,mBACAC;IAEA,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,qFAAqF;IACrF,MAAMC,WAAW,AAACD,CAAAA,QAAQE,eAAe,EAAED,YAAY,MAAK,EAAGE,WAAW;IAC1E,MAAMC,WACJH,aAAa,UACT,CAAC,iBAAiB,EAAED,QAAQK,IAAI,CAAC,YAAY,CAAC,GAC9C,CAAC,iBAAiB,EAAEL,QAAQK,IAAI,EAAE;IAExC,MAAMX,yBAAyBG,MAAMC,mBAAmBC,mBAAmB;QACzEO,oBAAoBN,QAAQM,kBAAkB;QAC9CD,MAAML,QAAQK,IAAI;QAClBH,iBAAiBF,QAAQE,eAAe;QACxCK,wBAAwB;QACxBH;QACAI,6BAA6BR,QAAQQ,2BAA2B;IAClE;AACF,EAAE;AAEF;;;CAGC,GACD,OAAO,MAAMC,4BAA4B,CACvCH;IAEA,MAAMI,kBAAkB,CAAC,SAAS,EAAEf,UAAUW,oBAAoB,OAAO,CAAC;IAC1E,OAAO;QAACI;QAAiB,CAAC,MAAM,EAAEA,iBAAiB;KAAC;AACtD,EAAE"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ /**
5
+ * TypeScript types for options defined in schema.json
6
+ */ export { };
7
+
8
+ //# sourceMappingURL=schema.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/py/agent/react-connection/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ComponentMetadata } from '../../../utils/nx';\n\n/**\n * TypeScript types for options defined in schema.json\n */\nexport interface PyAgentReactConnectionGeneratorSchema {\n sourceProject: string;\n targetProject: string;\n sourceComponent?: ComponentMetadata;\n targetComponent?: ComponentMetadata;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD;;CAEC,GACD,WAMC"}
@@ -12,4 +12,5 @@ export interface PyAgentReactConnectionGeneratorSchema {
12
12
  targetProject: string;
13
13
  sourceComponent?: ComponentMetadata;
14
14
  targetComponent?: ComponentMetadata;
15
+ preferInstallDependencies?: boolean;
15
16
  }
@@ -20,6 +20,11 @@
20
20
  "targetComponent": {
21
21
  "type": "string",
22
22
  "description": "The agent component name"
23
+ },
24
+ "preferInstallDependencies": {
25
+ "type": "boolean",
26
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
27
+ "default": true
23
28
  }
24
29
  },
25
30
  "required": ["sourceProject", "targetProject"]
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ export { };
5
+
6
+ //# sourceMappingURL=schema.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/py/agent/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IacOption } from '../../utils/iac';\n\nexport type PyAgentFramework = 'strands' | 'langchain';\nexport type PyAgentInfra = 'agentcore' | 'none';\nexport type AgentProtocol = 'http' | 'a2a' | 'ag-ui';\n\nexport type PyAgentAuth = 'iam' | 'cognito';\n\nexport interface PyAgentGeneratorSchema {\n project: string;\n framework?: PyAgentFramework;\n name?: string;\n infra?: PyAgentInfra;\n auth?: PyAgentAuth;\n protocol?: AgentProtocol;\n iac: IacOption;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAUD,WASC"}
@@ -19,4 +19,5 @@ export interface PyAgentGeneratorSchema {
19
19
  auth?: PyAgentAuth;
20
20
  protocol?: AgentProtocol;
21
21
  iac: IacOption;
22
+ preferInstallDependencies?: boolean;
22
23
  }
@@ -59,6 +59,11 @@
59
59
  "enum": ["agentcore", "none"],
60
60
  "default": "agentcore",
61
61
  "x-priority": "important"
62
+ },
63
+ "preferInstallDependencies": {
64
+ "type": "boolean",
65
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
66
+ "default": true
62
67
  }
63
68
  },
64
69
  "required": ["project"]
@@ -1,15 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PY_API_GENERATOR_INFO = void 0;
4
- exports.pyApiGenerator = pyApiGenerator;
5
- const nx_1 = require("../../utils/nx");
6
- const generator_1 = require("../fast-api/generator");
7
- exports.PY_API_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
8
- async function pyApiGenerator(tree, options) {
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { getGeneratorInfo } from "../../utils/nx.js";
5
+ import { pyFastApiProjectGenerator } from "../fast-api/generator.js";
6
+ export const PY_API_GENERATOR_INFO = getGeneratorInfo(import.meta.filename);
7
+ export async function pyApiGenerator(tree, options) {
9
8
  const framework = options.framework ?? 'fastapi';
10
- switch (framework) {
9
+ switch(framework){
11
10
  case 'fastapi':
12
- return (0, generator_1.pyFastApiProjectGenerator)(tree, {
11
+ return pyFastApiProjectGenerator(tree, {
13
12
  name: options.name,
14
13
  infra: options.infra,
15
14
  integrationPattern: options.integrationPattern,
@@ -18,8 +17,10 @@ async function pyApiGenerator(tree, options) {
18
17
  subDirectory: options.subDirectory,
19
18
  moduleName: options.moduleName,
20
19
  iac: options.iac,
20
+ preferInstallDependencies: options.preferInstallDependencies
21
21
  });
22
22
  }
23
23
  }
24
- exports.default = pyApiGenerator;
24
+ export default pyApiGenerator;
25
+
25
26
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/api/generator.ts"],"names":[],"mappings":";;;AAYA,wCAmBC;AA1BD,uCAAwE;AACxE,qDAAkE;AAGrD,QAAA,qBAAqB,GAChC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,KAAK,UAAU,cAAc,CAClC,IAAU,EACV,OAA6B;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;IAEjD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,IAAA,qCAAyB,EAAC,IAAI,EAAE;gBACrC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/py/api/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Tree } from '@nx/devkit';\nimport { getGeneratorInfo, type NxGeneratorInfo } from '../../utils/nx';\nimport { pyFastApiProjectGenerator } from '../fast-api/generator';\nimport type { PyApiGeneratorSchema } from './schema';\n\nexport const PY_API_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport async function pyApiGenerator(\n tree: Tree,\n options: PyApiGeneratorSchema,\n) {\n const framework = options.framework ?? 'fastapi';\n\n switch (framework) {\n case 'fastapi':\n return pyFastApiProjectGenerator(tree, {\n name: options.name,\n infra: options.infra,\n integrationPattern: options.integrationPattern,\n auth: options.auth,\n directory: options.directory,\n subDirectory: options.subDirectory,\n moduleName: options.moduleName,\n iac: options.iac,\n preferInstallDependencies: options.preferInstallDependencies,\n });\n }\n}\n\nexport default pyApiGenerator;\n"],"names":["getGeneratorInfo","pyFastApiProjectGenerator","PY_API_GENERATOR_INFO","filename","pyApiGenerator","tree","options","framework","name","infra","integrationPattern","auth","directory","subDirectory","moduleName","iac","preferInstallDependencies"],"mappings":"AAAA;;;CAGC,GAED,SAASA,gBAAgB,QAA8B,oBAAiB;AACxE,SAASC,yBAAyB,QAAQ,2BAAwB;AAGlE,OAAO,MAAMC,wBAAyCF,iBACpD,YAAYG,QAAQ,EACpB;AAEF,OAAO,eAAeC,eACpBC,IAAU,EACVC,OAA6B;IAE7B,MAAMC,YAAYD,QAAQC,SAAS,IAAI;IAEvC,OAAQA;QACN,KAAK;YACH,OAAON,0BAA0BI,MAAM;gBACrCG,MAAMF,QAAQE,IAAI;gBAClBC,OAAOH,QAAQG,KAAK;gBACpBC,oBAAoBJ,QAAQI,kBAAkB;gBAC9CC,MAAML,QAAQK,IAAI;gBAClBC,WAAWN,QAAQM,SAAS;gBAC5BC,cAAcP,QAAQO,YAAY;gBAClCC,YAAYR,QAAQQ,UAAU;gBAC9BC,KAAKT,QAAQS,GAAG;gBAChBC,2BAA2BV,QAAQU,yBAAyB;YAC9D;IACJ;AACF;AAEA,eAAeZ,eAAe"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ export { };
5
+
6
+ //# sourceMappingURL=schema.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/py/api/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { IacOption } from '../../utils/iac';\n\nexport interface PyApiGeneratorSchema {\n readonly name: string;\n readonly framework?: 'fastapi';\n readonly infra: 'rest-lambda' | 'http-lambda' | 'none';\n readonly integrationPattern?: 'isolated' | 'shared';\n readonly auth: 'iam' | 'cognito' | 'custom';\n readonly directory?: string;\n readonly subDirectory?: string;\n readonly moduleName?: string;\n readonly iac: IacOption;\n readonly preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD,WAWC"}
@@ -14,4 +14,5 @@ export interface PyApiGeneratorSchema {
14
14
  readonly subDirectory?: string;
15
15
  readonly moduleName?: string;
16
16
  readonly iac: IacOption;
17
+ readonly preferInstallDependencies?: boolean;
17
18
  }
@@ -94,6 +94,11 @@
94
94
  "enum": ["rest-lambda", "http-lambda", "none"],
95
95
  "x-prompt": "What infrastructure would you like to deploy your API with?",
96
96
  "x-priority": "important"
97
+ },
98
+ "preferInstallDependencies": {
99
+ "type": "boolean",
100
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
101
+ "default": true
97
102
  }
98
103
  },
99
104
  "required": ["name"]
@@ -3,7 +3,7 @@
3
3
  exports[`py#dynamodb generator > should generate scripts for finch engine 1`] = `
4
4
  "{
5
5
  "runtimeConfigKey": "MyTable",
6
- "serveLocal": {
6
+ "localDev": {
7
7
  "port": 8000,
8
8
  "tableName": "proj-my-table",
9
9
  "image": "public.ecr.aws/aws-dynamodb-local/aws-dynamodb-local:latest",
@@ -35,7 +35,7 @@ exports[`py#dynamodb generator > should generate terraform modules when iac is t
35
35
  required_providers {
36
36
  aws = {
37
37
  source = "hashicorp/aws"
38
- version = "~> 6.0"
38
+ version = "6.52.0"
39
39
  }
40
40
  }
41
41
  }
@@ -192,7 +192,11 @@ exports[`py#dynamodb generator > should generate terraform modules when iac is t
192
192
  required_providers {
193
193
  aws = {
194
194
  source = "hashicorp/aws"
195
- version = "~> 6.0"
195
+ version = "6.52.0"
196
+ }
197
+ random = {
198
+ source = "hashicorp/random"
199
+ version = "3.9.0"
196
200
  }
197
201
  }
198
202
  }
@@ -221,6 +225,12 @@ variable "enable_key_rotation" {
221
225
  default = true
222
226
  }
223
227
 
228
+ resource "random_string" "suffix" {
229
+ length = 8
230
+ special = false
231
+ upper = false
232
+ }
233
+
224
234
  locals {
225
235
  dynamodb_config = jsondecode(file("\${path.module}/../../../../../../../packages/my_table/config.json"))
226
236
  global_secondary_indexes = [for gsi in local.dynamodb_config.tableConfig.globalSecondaryIndexes : {
@@ -233,7 +243,7 @@ locals {
233
243
 
234
244
  module "dynamodb_table" {
235
245
  source = "../../../core/dynamodb"
236
- name = "proj-my-table"
246
+ name = "proj-my-table-\${random_string.suffix.result}"
237
247
  billing_mode = var.billing_mode
238
248
  point_in_time_recovery_enabled = var.point_in_time_recovery_enabled
239
249
  deletion_protection_enabled = var.deletion_protection_enabled
@@ -271,10 +281,10 @@ exports[`py#dynamodb generator > should generate the dynamodb project > packages
271
281
  import { readFileSync } from 'fs';
272
282
 
273
283
  const {
274
- serveLocal: { port, tableName },
284
+ localDev: { port, tableName },
275
285
  tableConfig: { globalSecondaryIndexes },
276
286
  } = JSON.parse(readFileSync('config.json', 'utf-8')) as {
277
- serveLocal: { port: number; tableName: string };
287
+ localDev: { port: number; tableName: string };
278
288
  tableConfig: {
279
289
  globalSecondaryIndexes: {
280
290
  indexName: string;
@@ -462,7 +472,7 @@ import { readFileSync } from 'fs';
462
472
 
463
473
  const { containerEngine, image } = JSON.parse(
464
474
  readFileSync('config.json', 'utf-8'),
465
- ).serveLocal;
475
+ ).localDev;
466
476
 
467
477
  const inspect = spawnSync(containerEngine, ['image', 'inspect', image], {
468
478
  stdio: 'ignore',
@@ -484,7 +494,7 @@ import { readFileSync } from 'fs';
484
494
 
485
495
  const { containerEngine, containerName, image, port } = JSON.parse(
486
496
  readFileSync('config.json', 'utf-8'),
487
- ).serveLocal;
497
+ ).localDev;
488
498
 
489
499
  const containerExists = (): boolean =>
490
500
  spawnSync(containerEngine, ['container', 'inspect', containerName], {
@@ -500,12 +510,27 @@ const isRunning = (): boolean => {
500
510
  return result.status === 0 && result.stdout.trim() === 'true';
501
511
  };
502
512
 
503
- // Multiple dynamo table packages run serve-local in parallel sharing the same
513
+ // Ensure the image is available locally before starting the container.
514
+ const ensureImage = (): void => {
515
+ const inspect = spawnSync(containerEngine, ['image', 'inspect', image], {
516
+ stdio: 'ignore',
517
+ });
518
+ if (inspect.status !== 0) {
519
+ const pull = spawnSync(containerEngine, ['pull', image], {
520
+ stdio: 'inherit',
521
+ });
522
+ if (pull.status !== 0) process.exit(pull.status ?? 1);
523
+ }
524
+ };
525
+
526
+ // Multiple dynamo table packages run dev in parallel sharing the same
504
527
  // container. All processes stream logs, but only the one that created the
505
528
  // container stops it on exit — others just detach.
506
529
  let created = false;
507
530
  let runRetries = 0;
508
531
 
532
+ ensureImage();
533
+
509
534
  for (;;) {
510
535
  if (containerExists()) {
511
536
  if (!isRunning()) {
@@ -605,15 +630,15 @@ runtime_config_key = "MyTable"
605
630
 
606
631
 
607
632
  # config.json is only present in local dev (not in the deployed bundle),
608
- # so calls to _serve_local must be guarded by is_local().
609
- def _serve_local() -> dict:
633
+ # so calls to _local_dev must be guarded by is_local().
634
+ def _local_dev() -> dict:
610
635
  config_path = os.path.join(os.path.dirname(__file__), "..", "config.json")
611
636
  with open(config_path) as f:
612
- return json.load(f)["serveLocal"]
637
+ return json.load(f)["localDev"]
613
638
 
614
639
 
615
640
  def is_local() -> bool:
616
- return os.environ.get("SERVE_LOCAL") == "true"
641
+ return os.environ.get("LOCAL_DEV") == "true"
617
642
 
618
643
 
619
644
  _table_name: str | None = None
@@ -622,7 +647,7 @@ _table_name: str | None = None
622
647
  def get_table_name() -> str:
623
648
  global _table_name
624
649
  if is_local():
625
- return _serve_local()["tableName"]
650
+ return _local_dev()["tableName"]
626
651
  if _table_name is None:
627
652
  from aws_lambda_powertools.utilities.parameters import AppConfigProvider
628
653
 
@@ -654,7 +679,7 @@ from pynamodb.attributes import DiscriminatorAttribute, UnicodeAttribute
654
679
  from pynamodb.indexes import AllProjection, GlobalSecondaryIndex
655
680
  from pynamodb.models import Model
656
681
 
657
- from ..client import _serve_local, get_table_name, is_local
682
+ from ..client import _local_dev, get_table_name, is_local
658
683
 
659
684
 
660
685
  class Gsi1Index(GlobalSecondaryIndex):
@@ -691,7 +716,7 @@ class BaseModel(Model):
691
716
  class Meta:
692
717
  table_name: str
693
718
  region = os.environ.get("AWS_REGION", "us-east-1")
694
- host = f"http://localhost:{_serve_local()['port']}" if is_local() else None
719
+ host = f"http://localhost:{_local_dev()['port']}" if is_local() else None
695
720
  aws_access_key_id = "UNUSED" if is_local() else None
696
721
  aws_secret_access_key = "UNUSED" if is_local() else None
697
722
 
@@ -974,10 +999,10 @@ exports[`py#dynamodb generator > should generate with infra=none then upgrade to
974
999
  import { readFileSync } from 'fs';
975
1000
 
976
1001
  const {
977
- serveLocal: { port, tableName },
1002
+ localDev: { port, tableName },
978
1003
  tableConfig: { globalSecondaryIndexes },
979
1004
  } = JSON.parse(readFileSync('config.json', 'utf-8')) as {
980
- serveLocal: { port: number; tableName: string };
1005
+ localDev: { port: number; tableName: string };
981
1006
  tableConfig: {
982
1007
  globalSecondaryIndexes: {
983
1008
  indexName: string;
@@ -1165,7 +1190,7 @@ import { readFileSync } from 'fs';
1165
1190
 
1166
1191
  const { containerEngine, image } = JSON.parse(
1167
1192
  readFileSync('config.json', 'utf-8'),
1168
- ).serveLocal;
1193
+ ).localDev;
1169
1194
 
1170
1195
  const inspect = spawnSync(containerEngine, ['image', 'inspect', image], {
1171
1196
  stdio: 'ignore',
@@ -1187,7 +1212,7 @@ import { readFileSync } from 'fs';
1187
1212
 
1188
1213
  const { containerEngine, containerName, image, port } = JSON.parse(
1189
1214
  readFileSync('config.json', 'utf-8'),
1190
- ).serveLocal;
1215
+ ).localDev;
1191
1216
 
1192
1217
  const containerExists = (): boolean =>
1193
1218
  spawnSync(containerEngine, ['container', 'inspect', containerName], {
@@ -1203,12 +1228,27 @@ const isRunning = (): boolean => {
1203
1228
  return result.status === 0 && result.stdout.trim() === 'true';
1204
1229
  };
1205
1230
 
1206
- // Multiple dynamo table packages run serve-local in parallel sharing the same
1231
+ // Ensure the image is available locally before starting the container.
1232
+ const ensureImage = (): void => {
1233
+ const inspect = spawnSync(containerEngine, ['image', 'inspect', image], {
1234
+ stdio: 'ignore',
1235
+ });
1236
+ if (inspect.status !== 0) {
1237
+ const pull = spawnSync(containerEngine, ['pull', image], {
1238
+ stdio: 'inherit',
1239
+ });
1240
+ if (pull.status !== 0) process.exit(pull.status ?? 1);
1241
+ }
1242
+ };
1243
+
1244
+ // Multiple dynamo table packages run dev in parallel sharing the same
1207
1245
  // container. All processes stream logs, but only the one that created the
1208
1246
  // container stops it on exit — others just detach.
1209
1247
  let created = false;
1210
1248
  let runRetries = 0;
1211
1249
 
1250
+ ensureImage();
1251
+
1212
1252
  for (;;) {
1213
1253
  if (containerExists()) {
1214
1254
  if (!isRunning()) {
@@ -1308,15 +1348,15 @@ runtime_config_key = "MyTable"
1308
1348
 
1309
1349
 
1310
1350
  # config.json is only present in local dev (not in the deployed bundle),
1311
- # so calls to _serve_local must be guarded by is_local().
1312
- def _serve_local() -> dict:
1351
+ # so calls to _local_dev must be guarded by is_local().
1352
+ def _local_dev() -> dict:
1313
1353
  config_path = os.path.join(os.path.dirname(__file__), "..", "config.json")
1314
1354
  with open(config_path) as f:
1315
- return json.load(f)["serveLocal"]
1355
+ return json.load(f)["localDev"]
1316
1356
 
1317
1357
 
1318
1358
  def is_local() -> bool:
1319
- return os.environ.get("SERVE_LOCAL") == "true"
1359
+ return os.environ.get("LOCAL_DEV") == "true"
1320
1360
 
1321
1361
 
1322
1362
  _table_name: str | None = None
@@ -1325,7 +1365,7 @@ _table_name: str | None = None
1325
1365
  def get_table_name() -> str:
1326
1366
  global _table_name
1327
1367
  if is_local():
1328
- return _serve_local()["tableName"]
1368
+ return _local_dev()["tableName"]
1329
1369
  if _table_name is None:
1330
1370
  from aws_lambda_powertools.utilities.parameters import AppConfigProvider
1331
1371
 
@@ -1357,7 +1397,7 @@ from pynamodb.attributes import DiscriminatorAttribute, UnicodeAttribute
1357
1397
  from pynamodb.indexes import AllProjection, GlobalSecondaryIndex
1358
1398
  from pynamodb.models import Model
1359
1399
 
1360
- from ..client import _serve_local, get_table_name, is_local
1400
+ from ..client import _local_dev, get_table_name, is_local
1361
1401
 
1362
1402
 
1363
1403
  class Gsi1Index(GlobalSecondaryIndex):
@@ -1394,7 +1434,7 @@ class BaseModel(Model):
1394
1434
  class Meta:
1395
1435
  table_name: str
1396
1436
  region = os.environ.get("AWS_REGION", "us-east-1")
1397
- host = f"http://localhost:{_serve_local()['port']}" if is_local() else None
1437
+ host = f"http://localhost:{_local_dev()['port']}" if is_local() else None
1398
1438
  aws_access_key_id = "UNUSED" if is_local() else None
1399
1439
  aws_secret_access_key = "UNUSED" if is_local() else None
1400
1440
 
@@ -1,19 +1,19 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`py#dynamodb agent-connection generator > should add dynamodb serve-local dependency to agent serve-local 1`] = `
3
+ exports[`py#dynamodb agent-connection generator > should add dynamodb dev dependency to agent dev 1`] = `
4
4
  {
5
5
  "$schema": "../../node_modules/nx/schemas/project-schema.json",
6
6
  "name": "my-agent",
7
7
  "root": "packages/my-agent",
8
8
  "targets": {
9
- "agent-serve-local": {
9
+ "agent-dev": {
10
10
  "continuous": true,
11
11
  "dependsOn": [
12
12
  {
13
13
  "projects": [
14
14
  "db",
15
15
  ],
16
- "target": "serve-local",
16
+ "target": "dev",
17
17
  },
18
18
  ],
19
19
  "executor": "nx:run-commands",
@@ -28,14 +28,14 @@ exports[`py#dynamodb agent-connection generator > should use sourceComponent nam
28
28
  "name": "my-agent",
29
29
  "root": "packages/my-agent",
30
30
  "targets": {
31
- "custom-agent-serve-local": {
31
+ "custom-agent-dev": {
32
32
  "continuous": true,
33
33
  "dependsOn": [
34
34
  {
35
35
  "projects": [
36
36
  "db",
37
37
  ],
38
- "target": "serve-local",
38
+ "target": "dev",
39
39
  },
40
40
  ],
41
41
  "executor": "nx:run-commands",
@@ -1,39 +1,39 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pyDynamoDBAgentConnectionGenerator = exports.PY_DYNAMODB_AGENT_CONNECTION_GENERATOR_INFO = void 0;
4
1
  /**
5
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
3
  * SPDX-License-Identifier: Apache-2.0
7
- */
8
- const devkit_1 = require("@nx/devkit");
9
- const format_1 = require("../../../utils/format");
10
- const metrics_1 = require("../../../utils/metrics");
11
- const nx_1 = require("../../../utils/nx");
12
- const nxlv_python_1 = require("../../../utils/nxlv-python");
13
- const py_1 = require("../../../utils/py");
14
- exports.PY_DYNAMODB_AGENT_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
15
- const pyDynamoDBAgentConnectionGenerator = async (tree, options) => {
16
- const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
17
- const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
18
- (0, py_1.addWorkspaceDependencyToPyProject)(tree, sourceProject, targetProject);
4
+ */ import { updateProjectConfiguration } from "@nx/devkit";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { installDependencies } from "../../../utils/install.js";
7
+ import { addGeneratorMetricsIfApplicable } from "../../../utils/metrics.js";
8
+ import { addDependencyToTargetIfNotPresent, getGeneratorInfo, readProjectConfigurationUnqualified } from "../../../utils/nx.js";
9
+ import { addWorkspaceDependencyToPyProject } from "../../../utils/py.js";
10
+ export const PY_DYNAMODB_AGENT_CONNECTION_GENERATOR_INFO = getGeneratorInfo(import.meta.filename);
11
+ export const pyDynamoDBAgentConnectionGenerator = async (tree, options)=>{
12
+ const sourceProject = readProjectConfigurationUnqualified(tree, options.sourceProject);
13
+ const targetProject = readProjectConfigurationUnqualified(tree, options.targetProject);
14
+ addWorkspaceDependencyToPyProject(tree, sourceProject, targetProject);
19
15
  const agentName = options.sourceComponent?.name ?? 'agent';
20
- const serveLocalTarget = `${agentName}-serve-local`;
21
- if (sourceProject.targets?.[serveLocalTarget]) {
22
- (0, nx_1.addDependencyToTargetIfNotPresent)(sourceProject, serveLocalTarget, {
23
- projects: [targetProject.name],
24
- target: 'serve-local',
16
+ const devTarget = `${agentName}-dev`;
17
+ if (sourceProject.targets?.[devTarget]) {
18
+ addDependencyToTargetIfNotPresent(sourceProject, devTarget, {
19
+ projects: [
20
+ targetProject.name
21
+ ],
22
+ target: 'dev'
25
23
  });
26
- (0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
24
+ updateProjectConfiguration(tree, sourceProject.name, sourceProject);
27
25
  }
28
- await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
29
- exports.PY_DYNAMODB_AGENT_CONNECTION_GENERATOR_INFO,
26
+ await addGeneratorMetricsIfApplicable(tree, [
27
+ PY_DYNAMODB_AGENT_CONNECTION_GENERATOR_INFO
30
28
  ]);
31
- await (0, format_1.formatFilesInSubtree)(tree);
32
- return async () => {
33
- (0, devkit_1.installPackagesTask)(tree);
34
- await new nxlv_python_1.UVProvider(tree.root, new nxlv_python_1.Logger(), tree).install();
35
- };
29
+ await formatFilesInSubtree(tree);
30
+ return ()=>installDependencies(tree, options.preferInstallDependencies, {
31
+ languages: [
32
+ 'typescript',
33
+ 'python'
34
+ ]
35
+ });
36
36
  };
37
- exports.pyDynamoDBAgentConnectionGenerator = pyDynamoDBAgentConnectionGenerator;
38
- exports.default = exports.pyDynamoDBAgentConnectionGenerator;
37
+ export default pyDynamoDBAgentConnectionGenerator;
38
+
39
39
  //# sourceMappingURL=generator.js.map