@aws/nx-plugin 1.0.0-rc.3 → 1.0.0-rc.30

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 (996) hide show
  1. package/LICENSE-THIRD-PARTY +7246 -5532
  2. package/README.md +8 -8
  3. package/executors.json +9 -0
  4. package/generators.json +100 -1
  5. package/package.json +35 -16
  6. package/src/agentcore-gateway/attach-upstream.d.ts +33 -0
  7. package/src/agentcore-gateway/attach-upstream.js +38 -0
  8. package/src/agentcore-gateway/attach-upstream.js.map +1 -0
  9. package/src/agentcore-gateway/files/cedar/policies/README.md +52 -0
  10. package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +11 -0
  11. package/src/agentcore-gateway/files/project/local-dev.ts.template +134 -0
  12. package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
  13. package/src/agentcore-gateway/gateway-connection/generator.js +101 -0
  14. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
  15. package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
  16. package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
  17. package/src/agentcore-gateway/gateway-connection/schema.d.ts +13 -0
  18. package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
  19. package/src/agentcore-gateway/generator.d.ts +25 -0
  20. package/src/agentcore-gateway/generator.js +149 -0
  21. package/src/agentcore-gateway/generator.js.map +1 -0
  22. package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
  23. package/src/agentcore-gateway/mcp-connection/generator.js +59 -0
  24. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
  25. package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
  26. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
  27. package/src/agentcore-gateway/mcp-connection/schema.d.ts +13 -0
  28. package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
  29. package/src/agentcore-gateway/schema.d.js +6 -0
  30. package/src/agentcore-gateway/schema.d.js.map +1 -0
  31. package/src/agentcore-gateway/schema.d.ts +17 -0
  32. package/src/agentcore-gateway/schema.json +70 -0
  33. package/src/bin/aws-nx-mcp.js +14 -0
  34. package/src/bin/aws-nx-mcp.js.map +1 -0
  35. package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +7 -7
  36. package/src/connection/agent-local-dev.js +42 -0
  37. package/src/connection/agent-local-dev.js.map +1 -0
  38. package/src/connection/agent-runtime-config.d.ts +1 -1
  39. package/src/connection/agent-runtime-config.js +9 -14
  40. package/src/connection/agent-runtime-config.js.map +1 -1
  41. package/src/connection/generator.d.ts +7 -14
  42. package/src/connection/generator.js +158 -177
  43. package/src/connection/generator.js.map +1 -1
  44. package/src/connection/local-dev.d.ts +15 -0
  45. package/src/connection/local-dev.js +37 -0
  46. package/src/connection/local-dev.js.map +1 -0
  47. package/src/connection/schema.d.js +6 -0
  48. package/src/connection/schema.d.js.map +1 -0
  49. package/src/connection/schema.d.ts +1 -0
  50. package/src/connection/schema.json +5 -0
  51. package/src/connection/supported-connections.d.ts +98 -0
  52. package/src/connection/supported-connections.js +138 -0
  53. package/src/connection/supported-connections.js.map +1 -0
  54. package/src/index.js +2 -5
  55. package/src/index.js.map +1 -1
  56. package/src/infra/app/__snapshots__/generator.spec.ts.snap +51 -81
  57. package/src/infra/app/generator.d.ts +3 -3
  58. package/src/infra/app/generator.js +141 -123
  59. package/src/infra/app/generator.js.map +1 -1
  60. package/src/infra/app/schema.d.js +6 -0
  61. package/src/infra/app/schema.d.js.map +1 -0
  62. package/src/infra/app/schema.d.ts +1 -1
  63. package/src/infra/app/schema.json +5 -0
  64. package/src/license/__snapshots__/config.spec.ts.snap +23 -0
  65. package/src/license/config-types.d.ts +18 -1
  66. package/src/license/config-types.js +8 -2
  67. package/src/license/config-types.js.map +1 -1
  68. package/src/license/config.d.ts +65 -7
  69. package/src/license/config.js +442 -109
  70. package/src/license/config.js.map +1 -1
  71. package/src/license/dependency-check/check.d.ts +16 -0
  72. package/src/license/dependency-check/check.js +116 -0
  73. package/src/license/dependency-check/check.js.map +1 -0
  74. package/src/license/dependency-check/collectors/collector.d.ts +21 -0
  75. package/src/license/dependency-check/collectors/collector.js +46 -0
  76. package/src/license/dependency-check/collectors/collector.js.map +1 -0
  77. package/src/license/dependency-check/collectors/npm-collector.d.ts +10 -0
  78. package/src/license/dependency-check/collectors/npm-collector.js +68 -0
  79. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -0
  80. package/src/license/dependency-check/collectors/python-collector.d.ts +23 -0
  81. package/src/license/dependency-check/collectors/python-collector.js +114 -0
  82. package/src/license/dependency-check/collectors/python-collector.js.map +1 -0
  83. package/src/license/dependency-check/evaluator.d.ts +9 -0
  84. package/src/license/dependency-check/evaluator.js +94 -0
  85. package/src/license/dependency-check/evaluator.js.map +1 -0
  86. package/src/license/dependency-check/executor-schema.json +6 -0
  87. package/src/license/dependency-check/executor.d.ts +9 -0
  88. package/src/license/dependency-check/executor.js +51 -0
  89. package/src/license/dependency-check/executor.js.map +1 -0
  90. package/src/license/dependency-check/pre-approved.d.ts +6 -0
  91. package/src/license/dependency-check/pre-approved.js +1893 -0
  92. package/src/license/dependency-check/pre-approved.js.map +1 -0
  93. package/src/license/dependency-check/types.d.ts +45 -0
  94. package/src/license/dependency-check/types.js +6 -0
  95. package/src/license/dependency-check/types.js.map +1 -0
  96. package/src/license/generator.d.ts +3 -3
  97. package/src/license/generator.js +127 -30
  98. package/src/license/generator.js.map +1 -1
  99. package/src/license/index.d.ts +8 -0
  100. package/src/license/index.js +7 -0
  101. package/src/license/index.js.map +1 -0
  102. package/src/license/known-exceptions.d.ts +7 -0
  103. package/src/license/known-exceptions.js +39 -0
  104. package/src/license/known-exceptions.js.map +1 -0
  105. package/src/license/schema.d.js +6 -0
  106. package/src/license/schema.d.js.map +1 -0
  107. package/src/license/schema.d.ts +7 -0
  108. package/src/license/schema.json +11 -0
  109. package/src/license/sync/generator.d.ts +2 -2
  110. package/src/license/sync/generator.js +100 -125
  111. package/src/license/sync/generator.js.map +1 -1
  112. package/src/license/sync/project-file-sync.d.ts +3 -3
  113. package/src/license/sync/project-file-sync.js +28 -35
  114. package/src/license/sync/project-file-sync.js.map +1 -1
  115. package/src/mcp-server/generator-info.d.ts +5 -1
  116. package/src/mcp-server/generator-info.js +130 -160
  117. package/src/mcp-server/generator-info.js.map +1 -1
  118. package/src/mcp-server/guide-pipeline.d.ts +1 -1
  119. package/src/mcp-server/guide-pipeline.js +184 -206
  120. package/src/mcp-server/guide-pipeline.js.map +1 -1
  121. package/src/mcp-server/guide-render.js +10 -25
  122. package/src/mcp-server/guide-render.js.map +1 -1
  123. package/src/mcp-server/index.js +6 -10
  124. package/src/mcp-server/index.js.map +1 -1
  125. package/src/mcp-server/mdx-ast.js +42 -56
  126. package/src/mcp-server/mdx-ast.js.map +1 -1
  127. package/src/mcp-server/option-filter.js +33 -47
  128. package/src/mcp-server/option-filter.js.map +1 -1
  129. package/src/mcp-server/schema-registry.d.ts +9 -3
  130. package/src/mcp-server/schema-registry.js +41 -38
  131. package/src/mcp-server/schema-registry.js.map +1 -1
  132. package/src/mcp-server/schema.js +9 -7
  133. package/src/mcp-server/schema.js.map +1 -1
  134. package/src/mcp-server/server.js +20 -24
  135. package/src/mcp-server/server.js.map +1 -1
  136. package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
  137. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  138. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  139. package/src/mcp-server/tools/general-guidance.d.ts +2 -2
  140. package/src/mcp-server/tools/general-guidance.js +46 -25
  141. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  142. package/src/mcp-server/tools/generator-guide.d.ts +2 -2
  143. package/src/mcp-server/tools/generator-guide.js +29 -37
  144. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  145. package/src/mcp-server/tools/list-generators.d.ts +2 -2
  146. package/src/mcp-server/tools/list-generators.js +19 -25
  147. package/src/mcp-server/tools/list-generators.js.map +1 -1
  148. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +1 -1
  149. package/src/open-api/ts-client/generator.d.ts +3 -3
  150. package/src/open-api/ts-client/generator.js +16 -26
  151. package/src/open-api/ts-client/generator.js.map +1 -1
  152. package/src/open-api/ts-client/schema.d.js +6 -0
  153. package/src/open-api/ts-client/schema.d.js.map +1 -0
  154. package/src/open-api/ts-hooks/generator.d.ts +3 -3
  155. package/src/open-api/ts-hooks/generator.js +13 -21
  156. package/src/open-api/ts-hooks/generator.js.map +1 -1
  157. package/src/open-api/ts-hooks/generator.spec.tsx +14 -14
  158. package/src/open-api/ts-hooks/schema.d.js +6 -0
  159. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  160. package/src/open-api/ts-metadata/generator.d.ts +3 -3
  161. package/src/open-api/ts-metadata/generator.js +12 -20
  162. package/src/open-api/ts-metadata/generator.js.map +1 -1
  163. package/src/open-api/ts-metadata/schema.d.js +6 -0
  164. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  165. package/src/open-api/utils/codegen-data/languages.d.ts +5 -1
  166. package/src/open-api/utils/codegen-data/languages.js +42 -60
  167. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  168. package/src/open-api/utils/codegen-data/types.js +31 -30
  169. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  170. package/src/open-api/utils/codegen-data.d.ts +6 -2
  171. package/src/open-api/utils/codegen-data.js +253 -269
  172. package/src/open-api/utils/codegen-data.js.map +1 -1
  173. package/src/open-api/utils/normalise.d.ts +5 -1
  174. package/src/open-api/utils/normalise.js +242 -241
  175. package/src/open-api/utils/normalise.js.map +1 -1
  176. package/src/open-api/utils/parse.d.ts +2 -2
  177. package/src/open-api/utils/parse.js +11 -13
  178. package/src/open-api/utils/parse.js.map +1 -1
  179. package/src/open-api/utils/refs.d.ts +1 -1
  180. package/src/open-api/utils/refs.js +12 -22
  181. package/src/open-api/utils/refs.js.map +1 -1
  182. package/src/open-api/utils/types.js +5 -2
  183. package/src/open-api/utils/types.js.map +1 -1
  184. package/src/preset/__snapshots__/generator.spec.ts.snap +160 -17
  185. package/src/preset/generator.d.ts +4 -4
  186. package/src/preset/generator.js +140 -112
  187. package/src/preset/generator.js.map +1 -1
  188. package/src/preset/schema.d.js +6 -0
  189. package/src/preset/schema.d.js.map +1 -0
  190. package/src/preset/schema.d.ts +4 -2
  191. package/src/preset/schema.json +10 -5
  192. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
  193. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +734 -0
  194. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +80 -314
  195. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +189 -0
  196. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +30 -0
  197. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +28 -0
  198. package/src/py/agent/a2a-connection/generator.d.ts +3 -3
  199. package/src/py/agent/a2a-connection/generator.js +113 -85
  200. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  201. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  202. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  203. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  204. package/src/py/agent/a2a-connection/schema.json +5 -0
  205. package/src/py/agent/files/a2a-langchain/main.py.template +89 -0
  206. package/src/py/agent/files/ag-ui-langchain/main.py.template +83 -0
  207. package/src/py/agent/files/common/agent.py.template +2 -0
  208. package/src/py/agent/files/common-langchain/agent.py.template +30 -0
  209. package/src/py/agent/files/http/init.py.template +7 -25
  210. package/src/py/agent/files/http/main.py.template +2 -3
  211. package/src/py/agent/files/http-langchain/main.py.template +84 -0
  212. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
  213. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  214. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  215. package/src/py/agent/gateway-connection/generator.d.ts +10 -0
  216. package/src/py/agent/gateway-connection/generator.js +119 -0
  217. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  218. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  219. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  220. package/src/py/agent/gateway-connection/schema.d.ts +13 -0
  221. package/src/py/agent/gateway-connection/schema.json +31 -0
  222. package/src/py/agent/generator.d.ts +3 -3
  223. package/src/py/agent/generator.js +280 -180
  224. package/src/py/agent/generator.js.map +1 -1
  225. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +153 -89
  226. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +30 -0
  227. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +30 -0
  228. package/src/py/agent/mcp-connection/generator.d.ts +3 -3
  229. package/src/py/agent/mcp-connection/generator.js +65 -126
  230. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  231. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  232. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  233. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  234. package/src/py/agent/mcp-connection/schema.json +5 -0
  235. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +11 -19
  236. package/src/py/agent/react-connection/generator.d.ts +4 -4
  237. package/src/py/agent/react-connection/generator.js +55 -59
  238. package/src/py/agent/react-connection/generator.js.map +1 -1
  239. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +6 -6
  240. package/src/py/agent/react-connection/local-dev.js +36 -0
  241. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  242. package/src/py/agent/react-connection/schema.d.js +8 -0
  243. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  244. package/src/py/agent/react-connection/schema.d.ts +1 -0
  245. package/src/py/agent/react-connection/schema.json +5 -0
  246. package/src/py/agent/schema.d.js +6 -0
  247. package/src/py/agent/schema.d.js.map +1 -0
  248. package/src/py/agent/schema.d.ts +2 -1
  249. package/src/py/agent/schema.json +6 -1
  250. package/src/py/api/generator.d.ts +3 -3
  251. package/src/py/api/generator.js +12 -11
  252. package/src/py/api/generator.js.map +1 -1
  253. package/src/py/api/schema.d.js +6 -0
  254. package/src/py/api/schema.d.js.map +1 -0
  255. package/src/py/api/schema.d.ts +1 -0
  256. package/src/py/api/schema.json +5 -0
  257. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1526 -0
  258. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
  259. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  260. package/src/py/dynamodb/agent-connection/generator.js +39 -0
  261. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  262. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  263. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  264. package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
  265. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  266. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +23 -0
  267. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  268. package/src/py/dynamodb/fast-api-connection/generator.js +37 -0
  269. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  270. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  271. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  272. package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
  273. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  274. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  275. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  276. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  277. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  278. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  279. package/src/py/dynamodb/files/config.json.template +24 -0
  280. package/src/py/dynamodb/generator.d.ts +10 -0
  281. package/src/py/dynamodb/generator.js +110 -0
  282. package/src/py/dynamodb/generator.js.map +1 -0
  283. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
  284. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  285. package/src/py/dynamodb/mcp-server-connection/generator.js +39 -0
  286. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  287. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  288. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  289. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  290. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  291. package/src/py/dynamodb/schema.d.js +6 -0
  292. package/src/py/dynamodb/schema.d.js.map +1 -0
  293. package/src/py/dynamodb/schema.d.ts +16 -0
  294. package/src/py/dynamodb/schema.json +75 -0
  295. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +212 -4678
  296. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
  297. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  298. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  299. package/src/py/fast-api/generator.d.ts +3 -3
  300. package/src/py/fast-api/generator.js +90 -87
  301. package/src/py/fast-api/generator.js.map +1 -1
  302. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
  303. package/src/py/fast-api/react/generator.d.ts +4 -4
  304. package/src/py/fast-api/react/generator.js +25 -25
  305. package/src/py/fast-api/react/generator.js.map +1 -1
  306. package/src/py/fast-api/react/open-api.d.ts +1 -1
  307. package/src/py/fast-api/react/open-api.js +31 -29
  308. package/src/py/fast-api/react/open-api.js.map +1 -1
  309. package/src/py/fast-api/react/schema.d.js +6 -0
  310. package/src/py/fast-api/react/schema.d.js.map +1 -0
  311. package/src/py/fast-api/react/schema.d.ts +1 -0
  312. package/src/py/fast-api/react/schema.json +5 -0
  313. package/src/py/fast-api/schema.d.js +6 -0
  314. package/src/py/fast-api/schema.d.js.map +1 -0
  315. package/src/py/fast-api/schema.d.ts +1 -0
  316. package/src/py/fast-api/schema.json +5 -0
  317. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  318. package/src/py/lambda-function/generator.d.ts +3 -3
  319. package/src/py/lambda-function/generator.js +60 -59
  320. package/src/py/lambda-function/generator.js.map +1 -1
  321. package/src/py/lambda-function/schema.d.js +6 -0
  322. package/src/py/lambda-function/schema.d.js.map +1 -0
  323. package/src/py/lambda-function/schema.d.ts +1 -0
  324. package/src/py/lambda-function/schema.json +5 -0
  325. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +87 -17
  326. package/src/py/mcp-server/generator.d.ts +3 -3
  327. package/src/py/mcp-server/generator.js +152 -125
  328. package/src/py/mcp-server/generator.js.map +1 -1
  329. package/src/py/mcp-server/schema.d.js +6 -0
  330. package/src/py/mcp-server/schema.d.js.map +1 -0
  331. package/src/py/mcp-server/schema.d.ts +1 -0
  332. package/src/py/mcp-server/schema.json +5 -0
  333. package/src/py/project/generator.d.ts +17 -4
  334. package/src/py/project/generator.js +205 -127
  335. package/src/py/project/generator.js.map +1 -1
  336. package/src/py/project/schema.d.js +6 -0
  337. package/src/py/project/schema.d.js.map +1 -0
  338. package/src/py/project/schema.d.ts +1 -0
  339. package/src/py/project/schema.json +5 -0
  340. package/src/sdk/agentcore-gateway.d.ts +6 -0
  341. package/src/sdk/agentcore-gateway.js +7 -0
  342. package/src/sdk/agentcore-gateway.js.map +1 -0
  343. package/src/sdk/connection.d.ts +6 -0
  344. package/src/sdk/connection.js +6 -0
  345. package/src/sdk/connection.js.map +1 -0
  346. package/src/sdk/license.d.ts +8 -0
  347. package/src/sdk/license.js +7 -0
  348. package/src/sdk/license.js.map +1 -0
  349. package/src/sdk/open-api.d.ts +10 -0
  350. package/src/sdk/open-api.js +8 -0
  351. package/src/sdk/open-api.js.map +1 -0
  352. package/src/sdk/py.d.ts +14 -0
  353. package/src/sdk/py.js +10 -0
  354. package/src/sdk/py.js.map +1 -0
  355. package/src/sdk/terraform.d.ts +6 -0
  356. package/src/sdk/terraform.js +7 -0
  357. package/src/sdk/terraform.js.map +1 -0
  358. package/src/sdk/ts.d.ts +33 -0
  359. package/src/sdk/ts.js +35 -0
  360. package/src/sdk/ts.js.map +1 -0
  361. package/{sdk → src/sdk}/utils/ast.d.ts +1 -2
  362. package/src/sdk/utils/ast.js +6 -0
  363. package/src/sdk/utils/ast.js.map +1 -0
  364. package/{sdk → src/sdk}/utils/format.d.ts +1 -1
  365. package/src/sdk/utils/format.js +6 -0
  366. package/src/sdk/utils/format.js.map +1 -0
  367. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  368. package/src/sdk/utils/test.js +6 -0
  369. package/src/sdk/utils/test.js.map +1 -0
  370. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +19 -24
  371. package/src/smithy/project/files/build.Dockerfile.template +1 -4
  372. package/src/smithy/project/files/src/operations/echo.smithy.template +1 -0
  373. package/src/smithy/project/generator.d.ts +3 -3
  374. package/src/smithy/project/generator.js +64 -57
  375. package/src/smithy/project/generator.js.map +1 -1
  376. package/src/smithy/project/schema.d.js +6 -0
  377. package/src/smithy/project/schema.d.js.map +1 -0
  378. package/src/smithy/project/schema.d.ts +1 -0
  379. package/src/smithy/project/schema.json +5 -0
  380. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  381. package/src/smithy/react-connection/generator.d.ts +3 -3
  382. package/src/smithy/react-connection/generator.js +39 -47
  383. package/src/smithy/react-connection/generator.js.map +1 -1
  384. package/src/smithy/react-connection/schema.d.js +6 -0
  385. package/src/smithy/react-connection/schema.d.js.map +1 -0
  386. package/src/smithy/react-connection/schema.d.ts +1 -0
  387. package/src/smithy/react-connection/schema.json +5 -0
  388. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +409 -106
  389. package/src/smithy/ts/api/generator.d.ts +3 -3
  390. package/src/smithy/ts/api/generator.js +127 -106
  391. package/src/smithy/ts/api/generator.js.map +1 -1
  392. package/src/smithy/ts/api/schema.d.js +6 -0
  393. package/src/smithy/ts/api/schema.d.js.map +1 -0
  394. package/src/smithy/ts/api/schema.d.ts +1 -0
  395. package/src/smithy/ts/api/schema.json +5 -0
  396. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  397. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  398. package/src/terraform/project/generator.d.ts +3 -3
  399. package/src/terraform/project/generator.js +156 -104
  400. package/src/terraform/project/generator.js.map +1 -1
  401. package/src/terraform/project/schema.d.js +9 -0
  402. package/src/terraform/project/schema.d.js.map +1 -0
  403. package/src/terraform/project/schema.d.ts +1 -0
  404. package/src/terraform/project/schema.json +5 -0
  405. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +499 -110
  406. package/src/trpc/backend/files/src/procedures/echo.ts.template +1 -1
  407. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  408. package/src/trpc/backend/generator.d.ts +4 -4
  409. package/src/trpc/backend/generator.js +97 -85
  410. package/src/trpc/backend/generator.js.map +1 -1
  411. package/src/trpc/backend/schema.d.js +6 -0
  412. package/src/trpc/backend/schema.d.js.map +1 -0
  413. package/src/trpc/backend/schema.d.ts +3 -2
  414. package/src/trpc/backend/schema.json +5 -0
  415. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
  416. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  417. package/src/trpc/react/generator.d.ts +4 -4
  418. package/src/trpc/react/generator.js +63 -58
  419. package/src/trpc/react/generator.js.map +1 -1
  420. package/src/trpc/react/schema.d.js +6 -0
  421. package/src/trpc/react/schema.d.js.map +1 -0
  422. package/src/trpc/react/schema.d.ts +1 -0
  423. package/src/trpc/react/schema.json +5 -0
  424. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +656 -18
  425. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +256 -0
  426. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  427. package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
  428. package/src/ts/agent/a2a-connection/generator.js +63 -56
  429. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  430. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  431. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  432. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  433. package/src/ts/agent/a2a-connection/schema.json +5 -0
  434. package/src/ts/agent/files/common/agent.ts.template +6 -2
  435. package/src/ts/agent/files/http/router.ts.template +1 -1
  436. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +220 -0
  437. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  438. package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
  439. package/src/ts/agent/gateway-connection/generator.js +114 -0
  440. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  441. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  442. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  443. package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
  444. package/src/ts/agent/gateway-connection/schema.json +31 -0
  445. package/src/ts/agent/generator.d.ts +3 -3
  446. package/src/ts/agent/generator.js +188 -144
  447. package/src/ts/agent/generator.js.map +1 -1
  448. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +192 -111
  449. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +22 -0
  450. package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
  451. package/src/ts/agent/mcp-connection/generator.js +53 -60
  452. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  453. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  454. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  455. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  456. package/src/ts/agent/mcp-connection/schema.json +5 -0
  457. package/src/ts/agent/react-connection/generator.d.ts +4 -4
  458. package/src/ts/agent/react-connection/generator.js +86 -80
  459. package/src/ts/agent/react-connection/generator.js.map +1 -1
  460. package/src/ts/agent/react-connection/local-dev.d.ts +13 -0
  461. package/src/ts/agent/react-connection/local-dev.js +17 -0
  462. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  463. package/src/ts/agent/react-connection/schema.d.js +8 -0
  464. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  465. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  466. package/src/ts/agent/react-connection/schema.json +5 -0
  467. package/src/ts/agent/schema.d.js +6 -0
  468. package/src/ts/agent/schema.d.js.map +1 -0
  469. package/src/ts/agent/schema.d.ts +1 -0
  470. package/src/ts/agent/schema.json +5 -0
  471. package/src/ts/api/generator.d.ts +3 -3
  472. package/src/ts/api/generator.js +16 -16
  473. package/src/ts/api/generator.js.map +1 -1
  474. package/src/ts/api/schema.d.js +6 -0
  475. package/src/ts/api/schema.d.js.map +1 -0
  476. package/src/ts/api/schema.d.ts +3 -1
  477. package/src/ts/api/schema.json +5 -0
  478. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +15 -16
  479. package/src/ts/astro-docs/generator.d.ts +3 -3
  480. package/src/ts/astro-docs/generator.js +69 -54
  481. package/src/ts/astro-docs/generator.js.map +1 -1
  482. package/src/ts/astro-docs/schema.d.js +6 -0
  483. package/src/ts/astro-docs/schema.d.js.map +1 -0
  484. package/src/ts/astro-docs/schema.d.ts +2 -2
  485. package/src/ts/astro-docs/schema.json +3 -3
  486. package/src/ts/docs/generator.d.ts +3 -3
  487. package/src/ts/docs/generator.js +10 -10
  488. package/src/ts/docs/generator.js.map +1 -1
  489. package/src/ts/docs/schema.d.js +6 -0
  490. package/src/ts/docs/schema.d.js.map +1 -0
  491. package/src/ts/docs/schema.d.ts +1 -4
  492. package/src/ts/docs/schema.json +3 -3
  493. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +1390 -0
  494. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
  495. package/src/ts/dynamodb/agent-connection/generator.d.ts +10 -0
  496. package/src/ts/dynamodb/agent-connection/generator.js +30 -0
  497. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -0
  498. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  499. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  500. package/src/ts/dynamodb/agent-connection/schema.d.ts +15 -0
  501. package/src/ts/dynamodb/agent-connection/schema.json +27 -0
  502. package/src/ts/dynamodb/files/config.json.template +24 -0
  503. package/src/ts/dynamodb/files/src/client.ts.template +61 -0
  504. package/src/ts/dynamodb/files/src/entities/example.ts.template +47 -0
  505. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -0
  506. package/src/ts/dynamodb/files/src/index.ts.template +2 -0
  507. package/src/ts/dynamodb/generator.d.ts +10 -0
  508. package/src/ts/dynamodb/generator.js +116 -0
  509. package/src/ts/dynamodb/generator.js.map +1 -0
  510. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
  511. package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  512. package/src/ts/dynamodb/mcp-server-connection/generator.js +30 -0
  513. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -0
  514. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  515. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  516. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  517. package/src/ts/dynamodb/mcp-server-connection/schema.json +27 -0
  518. package/src/ts/dynamodb/schema.d.js +6 -0
  519. package/src/ts/dynamodb/schema.d.js.map +1 -0
  520. package/src/ts/dynamodb/schema.d.ts +16 -0
  521. package/src/ts/dynamodb/schema.json +75 -0
  522. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +23 -0
  523. package/src/ts/dynamodb/smithy-connection/generator.d.ts +10 -0
  524. package/src/ts/dynamodb/smithy-connection/generator.js +28 -0
  525. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -0
  526. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  527. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  528. package/src/ts/dynamodb/smithy-connection/schema.d.ts +13 -0
  529. package/src/ts/dynamodb/smithy-connection/schema.json +23 -0
  530. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +23 -0
  531. package/src/ts/dynamodb/trpc-connection/generator.d.ts +10 -0
  532. package/src/ts/dynamodb/trpc-connection/generator.js +28 -0
  533. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -0
  534. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  535. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  536. package/src/ts/dynamodb/trpc-connection/schema.d.ts +13 -0
  537. package/src/ts/dynamodb/trpc-connection/schema.json +23 -0
  538. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  539. package/src/ts/lambda-function/generator.d.ts +3 -3
  540. package/src/ts/lambda-function/generator.js +59 -56
  541. package/src/ts/lambda-function/generator.js.map +1 -1
  542. package/src/ts/lambda-function/io.js +83 -52
  543. package/src/ts/lambda-function/io.js.map +1 -1
  544. package/src/ts/lambda-function/schema.d.js +6 -0
  545. package/src/ts/lambda-function/schema.d.js.map +1 -0
  546. package/src/ts/lambda-function/schema.d.ts +1 -0
  547. package/src/ts/lambda-function/schema.json +5 -0
  548. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +53 -99
  549. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
  550. package/src/ts/lib/biome.d.ts +7 -0
  551. package/src/ts/lib/biome.js +58 -0
  552. package/src/ts/lib/biome.js.map +1 -0
  553. package/src/ts/lib/generator.d.ts +3 -3
  554. package/src/ts/lib/generator.js +96 -96
  555. package/src/ts/lib/generator.js.map +1 -1
  556. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  557. package/src/ts/lib/schema.d.js +6 -0
  558. package/src/ts/lib/schema.d.js.map +1 -0
  559. package/src/ts/lib/schema.d.ts +1 -1
  560. package/src/ts/lib/schema.json +5 -0
  561. package/src/ts/lib/ts-project-utils.d.ts +12 -2
  562. package/src/ts/lib/ts-project-utils.js +80 -65
  563. package/src/ts/lib/ts-project-utils.js.map +1 -1
  564. package/src/ts/lib/types.js +5 -2
  565. package/src/ts/lib/types.js.map +1 -1
  566. package/src/ts/lib/vitest.d.ts +2 -2
  567. package/src/ts/lib/vitest.js +29 -26
  568. package/src/ts/lib/vitest.js.map +1 -1
  569. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +83 -13
  570. package/src/ts/mcp-server/generator.d.ts +3 -3
  571. package/src/ts/mcp-server/generator.js +164 -120
  572. package/src/ts/mcp-server/generator.js.map +1 -1
  573. package/src/ts/mcp-server/schema.d.js +6 -0
  574. package/src/ts/mcp-server/schema.d.js.map +1 -0
  575. package/src/ts/mcp-server/schema.d.ts +1 -0
  576. package/src/ts/mcp-server/schema.json +5 -0
  577. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +46 -26
  578. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  579. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  580. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  581. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  582. package/src/ts/nx-generator/generator.d.ts +2 -2
  583. package/src/ts/nx-generator/generator.js +111 -74
  584. package/src/ts/nx-generator/generator.js.map +1 -1
  585. package/src/ts/nx-generator/schema.d.js +6 -0
  586. package/src/ts/nx-generator/schema.d.js.map +1 -0
  587. package/src/ts/nx-generator/schema.d.ts +1 -0
  588. package/src/ts/nx-generator/schema.json +5 -0
  589. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +30 -18
  590. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  591. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  592. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  593. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  594. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  595. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
  596. package/src/ts/nx-plugin/generator.d.ts +3 -3
  597. package/src/ts/nx-plugin/generator.js +60 -51
  598. package/src/ts/nx-plugin/generator.js.map +1 -1
  599. package/src/ts/nx-plugin/schema.d.js +9 -0
  600. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  601. package/src/ts/nx-plugin/schema.json +5 -0
  602. package/src/ts/nx-plugin/utils.d.ts +1 -1
  603. package/src/ts/nx-plugin/utils.js +32 -38
  604. package/src/ts/nx-plugin/utils.js.map +1 -1
  605. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +312 -482
  606. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
  607. package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
  608. package/src/ts/rdb/agent-connection/generator.js +38 -39
  609. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  610. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  611. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  612. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  613. package/src/ts/rdb/agent-connection/schema.json +5 -0
  614. package/src/ts/rdb/files/config.json.template +14 -0
  615. package/src/ts/rdb/files/prisma.config.ts.template +6 -5
  616. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +7 -9
  617. package/src/ts/rdb/files/src/index.ts.template +0 -1
  618. package/src/ts/rdb/files/src/migration-handler.ts.template +1 -28
  619. package/src/ts/rdb/files/src/prisma.ts.template +28 -23
  620. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  621. package/src/ts/rdb/generator.d.ts +3 -7
  622. package/src/ts/rdb/generator.js +158 -130
  623. package/src/ts/rdb/generator.js.map +1 -1
  624. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
  625. package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
  626. package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
  627. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  628. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  629. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  630. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  631. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  632. package/src/ts/rdb/schema.d.js +6 -0
  633. package/src/ts/rdb/schema.d.js.map +1 -0
  634. package/src/ts/rdb/schema.d.ts +1 -0
  635. package/src/ts/rdb/schema.json +5 -0
  636. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
  637. package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
  638. package/src/ts/rdb/smithy-connection/generator.js +46 -43
  639. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  640. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  641. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  642. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  643. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  644. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
  645. package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
  646. package/src/ts/rdb/trpc-connection/generator.js +36 -31
  647. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  648. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  649. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  650. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  651. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  652. package/src/ts/rdb/utils.d.ts +1 -1
  653. package/src/ts/rdb/utils.js +9 -11
  654. package/src/ts/rdb/utils.js.map +1 -1
  655. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
  656. package/src/ts/react-website/agui/generator.d.ts +1 -1
  657. package/src/ts/react-website/agui/generator.js +69 -62
  658. package/src/ts/react-website/agui/generator.js.map +1 -1
  659. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +626 -612
  660. package/src/ts/react-website/app/generator.d.ts +4 -4
  661. package/src/ts/react-website/app/generator.js +217 -192
  662. package/src/ts/react-website/app/generator.js.map +1 -1
  663. package/src/ts/react-website/app/schema.d.js +6 -0
  664. package/src/ts/react-website/app/schema.d.js.map +1 -0
  665. package/src/ts/react-website/app/schema.d.ts +1 -1
  666. package/src/ts/react-website/app/schema.json +11 -6
  667. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +129 -18
  668. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +36 -10
  669. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  670. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  671. package/src/ts/react-website/cognito-auth/generator.d.ts +4 -4
  672. package/src/ts/react-website/cognito-auth/generator.js +64 -63
  673. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  674. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
  675. package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
  676. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  677. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  678. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  679. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  680. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  681. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  682. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  683. package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
  684. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  685. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  686. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  687. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  688. package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
  689. package/src/ts/react-website/runtime-config/generator.js +29 -31
  690. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  691. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  692. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  693. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  694. package/src/ts/react-website/runtime-config/schema.json +5 -0
  695. package/src/ts/sync/generator.d.ts +3 -3
  696. package/src/ts/sync/generator.js +60 -59
  697. package/src/ts/sync/generator.js.map +1 -1
  698. package/src/ts/website/app/generator.d.ts +3 -3
  699. package/src/ts/website/app/generator.js +10 -10
  700. package/src/ts/website/app/generator.js.map +1 -1
  701. package/src/ts/website/app/schema.d.js +6 -0
  702. package/src/ts/website/app/schema.d.js.map +1 -0
  703. package/src/ts/website/app/schema.d.ts +1 -1
  704. package/src/ts/website/app/schema.json +11 -6
  705. package/src/ts/website/auth/generator.d.ts +4 -4
  706. package/src/ts/website/auth/generator.js +11 -10
  707. package/src/ts/website/auth/generator.js.map +1 -1
  708. package/src/ts/website/auth/schema.d.js +6 -0
  709. package/src/ts/website/auth/schema.d.js.map +1 -0
  710. package/src/ts/website/auth/schema.d.ts +1 -0
  711. package/src/ts/website/auth/schema.json +5 -0
  712. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  713. package/src/utils/agent-chat/agent-chat.js +29 -0
  714. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  715. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  716. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  717. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  718. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  719. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  720. package/src/utils/agent-connection/agent-connection.d.ts +117 -25
  721. package/src/utils/agent-connection/agent-connection.js +411 -103
  722. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  723. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  724. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  725. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  726. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  727. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  728. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
  729. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  730. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  731. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +36 -0
  732. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  733. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  734. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  735. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  736. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  737. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  738. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +99 -0
  739. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  740. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  741. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  742. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
  743. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  744. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
  745. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  746. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  747. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  748. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +11 -3
  749. package/src/utils/agent-core-constructs/agent-core-constructs.js +86 -38
  750. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  751. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +4 -0
  752. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +50 -0
  753. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +487 -0
  754. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  755. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +449 -0
  756. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  757. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +80 -12
  758. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  759. package/src/utils/api-constructs/api-constructs.d.ts +2 -2
  760. package/src/utils/api-constructs/api-constructs.js +30 -31
  761. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  762. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +3 -0
  763. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +23 -6
  764. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
  765. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  766. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +51 -15
  767. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  768. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
  769. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +94 -4
  770. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  771. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  772. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  773. package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
  774. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  775. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  776. package/src/utils/ast/website.d.ts +5 -1
  777. package/src/utils/ast/website.js +18 -20
  778. package/src/utils/ast/website.js.map +1 -1
  779. package/src/utils/ast.d.ts +33 -1
  780. package/src/utils/ast.js +130 -70
  781. package/src/utils/ast.js.map +1 -1
  782. package/src/utils/bundle/bundle.d.ts +1 -1
  783. package/src/utils/bundle/bundle.js +50 -47
  784. package/src/utils/bundle/bundle.js.map +1 -1
  785. package/src/utils/commands.js +47 -26
  786. package/src/utils/commands.js.map +1 -1
  787. package/src/utils/config/index.d.ts +5 -5
  788. package/src/utils/config/index.js +5 -4
  789. package/src/utils/config/index.js.map +1 -1
  790. package/src/utils/config/utils.d.ts +13 -3
  791. package/src/utils/config/utils.js +65 -43
  792. package/src/utils/config/utils.js.map +1 -1
  793. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +1 -1
  794. package/src/utils/connection/open-api/react.d.ts +6 -6
  795. package/src/utils/connection/open-api/react.js +81 -77
  796. package/src/utils/connection/open-api/react.js.map +1 -1
  797. package/src/utils/containers.d.ts +1 -1
  798. package/src/utils/containers.js +22 -23
  799. package/src/utils/containers.js.map +1 -1
  800. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +18 -0
  801. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +48 -0
  802. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -0
  803. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +43 -0
  804. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +105 -0
  805. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +72 -0
  806. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +155 -0
  807. package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +195 -0
  808. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  809. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +106 -0
  810. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
  811. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  812. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  813. package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
  814. package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +117 -0
  815. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
  816. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  817. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
  818. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  819. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
  820. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  821. package/src/utils/format.d.ts +45 -2
  822. package/src/utils/format.js +323 -81
  823. package/src/utils/format.js.map +1 -1
  824. package/src/utils/fs.d.ts +1 -1
  825. package/src/utils/fs.js +14 -13
  826. package/src/utils/fs.js.map +1 -1
  827. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  828. package/src/utils/function-constructs/function-constructs.d.ts +2 -2
  829. package/src/utils/function-constructs/function-constructs.js +21 -26
  830. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  831. package/src/utils/generators.d.ts +4 -0
  832. package/src/utils/generators.js +18 -20
  833. package/src/utils/generators.js.map +1 -1
  834. package/src/utils/git.d.ts +1 -1
  835. package/src/utils/git.js +19 -34
  836. package/src/utils/git.js.map +1 -1
  837. package/src/utils/iac-providers.js +5 -5
  838. package/src/utils/iac-providers.js.map +1 -1
  839. package/src/utils/iac.d.ts +1 -1
  840. package/src/utils/iac.js +12 -14
  841. package/src/utils/iac.js.map +1 -1
  842. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +123 -14
  843. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
  844. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +106 -6
  845. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  846. package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
  847. package/src/utils/identity-constructs/identity-constructs.js +24 -28
  848. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  849. package/src/utils/install.d.ts +32 -0
  850. package/src/utils/install.js +56 -0
  851. package/src/utils/install.js.map +1 -0
  852. package/src/utils/js.d.ts +4 -0
  853. package/src/utils/js.js +27 -20
  854. package/src/utils/js.js.map +1 -1
  855. package/src/utils/mcp.d.ts +25 -0
  856. package/src/utils/mcp.js +74 -0
  857. package/src/utils/mcp.js.map +1 -0
  858. package/src/utils/metrics.d.ts +9 -3
  859. package/src/utils/metrics.js +61 -46
  860. package/src/utils/metrics.js.map +1 -1
  861. package/src/utils/mock-project-graph.js +8 -12
  862. package/src/utils/mock-project-graph.js.map +1 -1
  863. package/src/utils/names.d.ts +16 -0
  864. package/src/utils/names.js +39 -48
  865. package/src/utils/names.js.map +1 -1
  866. package/src/utils/npm-scope.d.ts +1 -1
  867. package/src/utils/npm-scope.js +9 -17
  868. package/src/utils/npm-scope.js.map +1 -1
  869. package/src/utils/nx.d.ts +25 -4
  870. package/src/utils/nx.js +144 -75
  871. package/src/utils/nx.js.map +1 -1
  872. package/src/utils/nxlv-python.d.ts +1 -1
  873. package/src/utils/nxlv-python.js +27 -15
  874. package/src/utils/nxlv-python.js.map +1 -1
  875. package/src/utils/object.js +5 -11
  876. package/src/utils/object.js.map +1 -1
  877. package/src/utils/paths.d.ts +1 -1
  878. package/src/utils/paths.js +11 -15
  879. package/src/utils/paths.js.map +1 -1
  880. package/src/utils/pkg-manager.js +4 -9
  881. package/src/utils/pkg-manager.js.map +1 -1
  882. package/src/utils/pnpm-workspace.d.ts +1 -1
  883. package/src/utils/pnpm-workspace.js +22 -22
  884. package/src/utils/pnpm-workspace.js.map +1 -1
  885. package/src/utils/port.d.ts +31 -3
  886. package/src/utils/port.js +72 -12
  887. package/src/utils/port.js.map +1 -1
  888. package/src/utils/py.d.ts +16 -3
  889. package/src/utils/py.js +72 -47
  890. package/src/utils/py.js.map +1 -1
  891. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +12 -2
  892. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +35 -16
  893. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +42 -48
  894. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +31 -16
  895. package/src/utils/rdb-constructs/rdb-constructs.d.ts +5 -4
  896. package/src/utils/rdb-constructs/rdb-constructs.js +31 -41
  897. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  898. package/src/utils/shared-constructs-constants.d.ts +1 -0
  899. package/src/utils/shared-constructs-constants.js +16 -15
  900. package/src/utils/shared-constructs-constants.js.map +1 -1
  901. package/src/utils/shared-constructs.d.ts +2 -2
  902. package/src/utils/shared-constructs.js +57 -54
  903. package/src/utils/shared-constructs.js.map +1 -1
  904. package/src/utils/shared-dynamodb-scripts.d.ts +11 -0
  905. package/src/utils/shared-dynamodb-scripts.js +25 -0
  906. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  907. package/src/utils/shared-infra-config.d.ts +1 -1
  908. package/src/utils/shared-infra-config.js +30 -31
  909. package/src/utils/shared-infra-config.js.map +1 -1
  910. package/src/utils/shared-infra-scripts.d.ts +11 -0
  911. package/src/utils/shared-infra-scripts.js +40 -0
  912. package/src/utils/shared-infra-scripts.js.map +1 -0
  913. package/src/utils/shared-rdb-scripts.d.ts +16 -0
  914. package/src/utils/shared-rdb-scripts.js +28 -0
  915. package/src/utils/shared-rdb-scripts.js.map +1 -0
  916. package/src/utils/shared-scripts.d.ts +2 -5
  917. package/src/utils/shared-scripts.js +12 -38
  918. package/src/utils/shared-scripts.js.map +1 -1
  919. package/src/utils/shared-shadcn.d.ts +1 -1
  920. package/src/utils/shared-shadcn.js +64 -72
  921. package/src/utils/shared-shadcn.js.map +1 -1
  922. package/src/utils/test.d.ts +13 -1
  923. package/src/utils/test.js +35 -23
  924. package/src/utils/test.js.map +1 -1
  925. package/src/utils/toml.d.ts +1 -1
  926. package/src/utils/toml.js +10 -14
  927. package/src/utils/toml.js.map +1 -1
  928. package/src/utils/versions.d.ts +116 -84
  929. package/src/utils/versions.js +124 -102
  930. package/src/utils/versions.js.map +1 -1
  931. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +73 -5
  932. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  933. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +68 -19
  934. package/src/utils/website-constructs/website-constructs.d.ts +2 -2
  935. package/src/utils/website-constructs/website-constructs.js +31 -30
  936. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  937. package/bin/aws-nx-mcp.js +0 -17
  938. package/bin/aws-nx-mcp.js.map +0 -1
  939. package/sdk/connection.d.ts +0 -6
  940. package/sdk/connection.js +0 -10
  941. package/sdk/connection.js.map +0 -1
  942. package/sdk/open-api.d.ts +0 -10
  943. package/sdk/open-api.js +0 -15
  944. package/sdk/open-api.js.map +0 -1
  945. package/sdk/py.d.ts +0 -14
  946. package/sdk/py.js +0 -18
  947. package/sdk/py.js.map +0 -1
  948. package/sdk/terraform.d.ts +0 -6
  949. package/sdk/terraform.js +0 -11
  950. package/sdk/terraform.js.map +0 -1
  951. package/sdk/ts.d.ts +0 -29
  952. package/sdk/ts.js +0 -47
  953. package/sdk/ts.js.map +0 -1
  954. package/sdk/utils/ast.js +0 -12
  955. package/sdk/utils/ast.js.map +0 -1
  956. package/sdk/utils/format.js +0 -10
  957. package/sdk/utils/format.js.map +0 -1
  958. package/sdk/utils/test.js +0 -10
  959. package/sdk/utils/test.js.map +0 -1
  960. package/src/connection/agent-serve-local.js +0 -48
  961. package/src/connection/agent-serve-local.js.map +0 -1
  962. package/src/connection/serve-local.d.ts +0 -15
  963. package/src/connection/serve-local.js +0 -41
  964. package/src/connection/serve-local.js.map +0 -1
  965. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  966. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  967. package/src/py/agent/react-connection/serve-local.js +0 -30
  968. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  969. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  970. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  971. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  972. package/src/ts/agent/react-connection/serve-local.d.ts +0 -13
  973. package/src/ts/agent/react-connection/serve-local.js +0 -19
  974. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  975. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  976. package/src/ts/lib/eslint.d.ts +0 -14
  977. package/src/ts/lib/eslint.js +0 -90
  978. package/src/ts/lib/eslint.js.map +0 -1
  979. package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
  980. package/src/ts/rdb/files/scripts/docker-pull.ts.template +0 -15
  981. package/src/ts/rdb/files/scripts/docker-start.ts.template +0 -84
  982. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  983. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  984. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  985. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  986. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  987. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  988. /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
  989. /package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +0 -0
  990. /package/src/utils/agent-connection/files/{py-core-runtime-config/with_session_id.py.template → py-core-strands/base/with_session_id_strands.py.template} +0 -0
  991. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  992. /package/src/utils/files/common/scripts/src/{infra-deploy.ts.template → infra/infra-deploy.ts.template} +0 -0
  993. /package/src/utils/files/common/scripts/src/{infra-destroy.ts.template → infra/infra-destroy.ts.template} +0 -0
  994. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  995. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +0 -0
  996. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { readJson, writeJson } from "@nx/devkit";
5
+ import { updateToml } from "./toml.js";
6
+ /**
7
+ * Name of the Nx Plugin for AWS MCP server, used as the key in each agent's config.
8
+ */ export const NX_PLUGIN_MCP_SERVER_NAME = 'nx-plugin-for-aws';
9
+ /**
10
+ * Command used to launch the Nx Plugin for AWS MCP server.
11
+ */ export const NX_PLUGIN_MCP_SERVER_COMMAND = 'npx';
12
+ /**
13
+ * Arguments used to launch the Nx Plugin for AWS MCP server.
14
+ */ export const NX_PLUGIN_MCP_SERVER_ARGS = [
15
+ '-y',
16
+ '@aws/nx-plugin-mcp@next'
17
+ ];
18
+ /**
19
+ * A single stdio MCP server entry, shared by agents that use the `mcpServers` config shape.
20
+ */ const stdioServerEntry = ()=>({
21
+ command: NX_PLUGIN_MCP_SERVER_COMMAND,
22
+ args: NX_PLUGIN_MCP_SERVER_ARGS
23
+ });
24
+ /**
25
+ * Merge the Nx Plugin for AWS MCP server into a JSON config file under the given key,
26
+ * preserving any other servers already configured. Creates the file if it does not exist.
27
+ */ const mergeJsonMcpConfig = (tree, filePath, key, entry)=>{
28
+ const config = tree.exists(filePath) ? readJson(tree, filePath) : {};
29
+ config[key] = {
30
+ ...config[key],
31
+ [NX_PLUGIN_MCP_SERVER_NAME]: entry
32
+ };
33
+ writeJson(tree, filePath, config);
34
+ };
35
+ /**
36
+ * Configure the Nx Plugin for AWS MCP server across the project-level config locations
37
+ * used by common coding agents, so agents working in the workspace can use it to scaffold
38
+ * AWS projects with the Nx Plugin for AWS.
39
+ *
40
+ * Existing servers and unrelated config in each file are preserved.
41
+ */ export const configureMcpServers = (tree)=>{
42
+ // Agents using the `mcpServers` config shape (Claude Code, Cursor, Kiro, Gemini CLI)
43
+ const mcpServersFiles = [
44
+ '.mcp.json',
45
+ '.cursor/mcp.json',
46
+ '.kiro/settings/mcp.json',
47
+ '.gemini/settings.json'
48
+ ];
49
+ for (const filePath of mcpServersFiles){
50
+ mergeJsonMcpConfig(tree, filePath, 'mcpServers', stdioServerEntry());
51
+ }
52
+ // GitHub Copilot uses the `servers` key with an explicit `type`
53
+ mergeJsonMcpConfig(tree, '.vscode/mcp.json', 'servers', {
54
+ type: 'stdio',
55
+ ...stdioServerEntry()
56
+ });
57
+ // OpenAI Codex CLI uses TOML under the `mcp_servers` table
58
+ const codexConfig = '.codex/config.toml';
59
+ if (!tree.exists(codexConfig)) {
60
+ tree.write(codexConfig, '');
61
+ }
62
+ updateToml(tree, codexConfig, (prev)=>({
63
+ ...prev,
64
+ mcp_servers: {
65
+ ...prev.mcp_servers,
66
+ [NX_PLUGIN_MCP_SERVER_NAME]: {
67
+ command: NX_PLUGIN_MCP_SERVER_COMMAND,
68
+ args: NX_PLUGIN_MCP_SERVER_ARGS
69
+ }
70
+ }
71
+ }));
72
+ };
73
+
74
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/mcp.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { readJson, type Tree, writeJson } from '@nx/devkit';\nimport { updateToml } from './toml';\n\n/**\n * Name of the Nx Plugin for AWS MCP server, used as the key in each agent's config.\n */\nexport const NX_PLUGIN_MCP_SERVER_NAME = 'nx-plugin-for-aws';\n\n/**\n * Command used to launch the Nx Plugin for AWS MCP server.\n */\nexport const NX_PLUGIN_MCP_SERVER_COMMAND = 'npx';\n\n/**\n * Arguments used to launch the Nx Plugin for AWS MCP server.\n */\nexport const NX_PLUGIN_MCP_SERVER_ARGS = ['-y', '@aws/nx-plugin-mcp@next'];\n\n/**\n * A single stdio MCP server entry, shared by agents that use the `mcpServers` config shape.\n */\nconst stdioServerEntry = () => ({\n command: NX_PLUGIN_MCP_SERVER_COMMAND,\n args: NX_PLUGIN_MCP_SERVER_ARGS,\n});\n\n/**\n * Merge the Nx Plugin for AWS MCP server into a JSON config file under the given key,\n * preserving any other servers already configured. Creates the file if it does not exist.\n */\nconst mergeJsonMcpConfig = (\n tree: Tree,\n filePath: string,\n key: 'mcpServers' | 'servers',\n entry: Record<string, unknown>,\n) => {\n const config = tree.exists(filePath) ? readJson(tree, filePath) : {};\n config[key] = {\n ...config[key],\n [NX_PLUGIN_MCP_SERVER_NAME]: entry,\n };\n writeJson(tree, filePath, config);\n};\n\n/**\n * Configure the Nx Plugin for AWS MCP server across the project-level config locations\n * used by common coding agents, so agents working in the workspace can use it to scaffold\n * AWS projects with the Nx Plugin for AWS.\n *\n * Existing servers and unrelated config in each file are preserved.\n */\nexport const configureMcpServers = (tree: Tree) => {\n // Agents using the `mcpServers` config shape (Claude Code, Cursor, Kiro, Gemini CLI)\n const mcpServersFiles = [\n '.mcp.json', // Claude Code\n '.cursor/mcp.json', // Cursor\n '.kiro/settings/mcp.json', // Kiro\n '.gemini/settings.json', // Gemini CLI\n ];\n for (const filePath of mcpServersFiles) {\n mergeJsonMcpConfig(tree, filePath, 'mcpServers', stdioServerEntry());\n }\n\n // GitHub Copilot uses the `servers` key with an explicit `type`\n mergeJsonMcpConfig(tree, '.vscode/mcp.json', 'servers', {\n type: 'stdio',\n ...stdioServerEntry(),\n });\n\n // OpenAI Codex CLI uses TOML under the `mcp_servers` table\n const codexConfig = '.codex/config.toml';\n if (!tree.exists(codexConfig)) {\n tree.write(codexConfig, '');\n }\n updateToml(tree, codexConfig, (prev) => ({\n ...prev,\n mcp_servers: {\n ...(prev.mcp_servers as object),\n [NX_PLUGIN_MCP_SERVER_NAME]: {\n command: NX_PLUGIN_MCP_SERVER_COMMAND,\n args: NX_PLUGIN_MCP_SERVER_ARGS,\n },\n },\n }));\n};\n"],"names":["readJson","writeJson","updateToml","NX_PLUGIN_MCP_SERVER_NAME","NX_PLUGIN_MCP_SERVER_COMMAND","NX_PLUGIN_MCP_SERVER_ARGS","stdioServerEntry","command","args","mergeJsonMcpConfig","tree","filePath","key","entry","config","exists","configureMcpServers","mcpServersFiles","type","codexConfig","write","prev","mcp_servers"],"mappings":"AAAA;;;CAGC,GACD,SAASA,QAAQ,EAAaC,SAAS,QAAQ,aAAa;AAC5D,SAASC,UAAU,QAAQ,YAAS;AAEpC;;CAEC,GACD,OAAO,MAAMC,4BAA4B,oBAAoB;AAE7D;;CAEC,GACD,OAAO,MAAMC,+BAA+B,MAAM;AAElD;;CAEC,GACD,OAAO,MAAMC,4BAA4B;IAAC;IAAM;CAA0B,CAAC;AAE3E;;CAEC,GACD,MAAMC,mBAAmB,IAAO,CAAA;QAC9BC,SAASH;QACTI,MAAMH;IACR,CAAA;AAEA;;;CAGC,GACD,MAAMI,qBAAqB,CACzBC,MACAC,UACAC,KACAC;IAEA,MAAMC,SAASJ,KAAKK,MAAM,CAACJ,YAAYX,SAASU,MAAMC,YAAY,CAAC;IACnEG,MAAM,CAACF,IAAI,GAAG;QACZ,GAAGE,MAAM,CAACF,IAAI;QACd,CAACT,0BAA0B,EAAEU;IAC/B;IACAZ,UAAUS,MAAMC,UAAUG;AAC5B;AAEA;;;;;;CAMC,GACD,OAAO,MAAME,sBAAsB,CAACN;IAClC,qFAAqF;IACrF,MAAMO,kBAAkB;QACtB;QACA;QACA;QACA;KACD;IACD,KAAK,MAAMN,YAAYM,gBAAiB;QACtCR,mBAAmBC,MAAMC,UAAU,cAAcL;IACnD;IAEA,gEAAgE;IAChEG,mBAAmBC,MAAM,oBAAoB,WAAW;QACtDQ,MAAM;QACN,GAAGZ,kBAAkB;IACvB;IAEA,2DAA2D;IAC3D,MAAMa,cAAc;IACpB,IAAI,CAACT,KAAKK,MAAM,CAACI,cAAc;QAC7BT,KAAKU,KAAK,CAACD,aAAa;IAC1B;IACAjB,WAAWQ,MAAMS,aAAa,CAACE,OAAU,CAAA;YACvC,GAAGA,IAAI;YACPC,aAAa;gBACX,GAAID,KAAKC,WAAW;gBACpB,CAACnB,0BAA0B,EAAE;oBAC3BI,SAASH;oBACTI,MAAMH;gBACR;YACF;QACF,CAAA;AACF,EAAE"}
@@ -2,13 +2,19 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { Tree } from '@nx/devkit';
6
- import { NxGeneratorInfo } from './nx';
5
+ import { type Tree } from '@nx/devkit';
6
+ import { type NxGeneratorInfo } from './nx';
7
7
  export declare const METRIC_ID = "uksb-4wk0bqpg5s";
8
8
  export declare const METRICS_ASPECT_FILE_PATH: string;
9
9
  export declare const TERRAFORM_METRICS_FILE_PATH: string;
10
10
  /**
11
11
  * Instruments metrics by updating the MetricsAspect in common/constructs/src/core/app.ts if the file exists,
12
- * or updating the Terraform metrics CloudFormation stack if it exists
12
+ * and/or updating the Terraform metrics CloudFormation stack if it exists.
13
+ *
14
+ * Both files are converged to the same tag set (the union of tags already
15
+ * present in either file plus the incoming generators). This keeps the tag set
16
+ * deterministic regardless of the order in which metrics files are created
17
+ * across a multi-generator run, so re-running the same set of generators does
18
+ * not grow the tags.
13
19
  */
14
20
  export declare const addGeneratorMetricsIfApplicable: (tree: Tree, generatorInfo: NxGeneratorInfo[]) => Promise<void>;
@@ -1,65 +1,80 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addGeneratorMetricsIfApplicable = exports.TERRAFORM_METRICS_FILE_PATH = exports.METRICS_ASPECT_FILE_PATH = exports.METRIC_ID = 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 format_1 = require("./format");
11
- const nx_1 = require("./nx");
12
- const shared_constructs_constants_1 = require("./shared-constructs-constants");
4
+ */ import { joinPathFragments } from "@nx/devkit";
5
+ import { applyGritQL, captureAllGritQL } from "./ast.js";
6
+ import { formatFilesInSubtree } from "./format.js";
7
+ import { getPackageVersion } from "./nx.js";
8
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "./shared-constructs-constants.js";
13
9
  // Used to identify @aws/nx-plugin in AWS metrics
14
- exports.METRIC_ID = 'uksb-4wk0bqpg5s';
10
+ export const METRIC_ID = 'uksb-4wk0bqpg5s';
15
11
  // File in which the MetricsAspect may exist (CDK)
16
- exports.METRICS_ASPECT_FILE_PATH = (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'core', 'app.ts');
12
+ export const METRICS_ASPECT_FILE_PATH = joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'app.ts');
17
13
  // File in which the Terraform metrics CloudFormation stack may exist
18
- exports.TERRAFORM_METRICS_FILE_PATH = (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'metrics', 'metrics.tf');
14
+ export const TERRAFORM_METRICS_FILE_PATH = joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'metrics', 'metrics.tf');
19
15
  // GritQL `within` clause to scope matches to the MetricsAspect class body
20
16
  const WITHIN_METRICS_ASPECT = '$old <: within `class MetricsAspect implements $_ { $_ }`';
17
+ // Strip the surrounding quotes from a captured string literal (eg 'g1' or "g1")
18
+ const unquote = (literal)=>literal.slice(1, -1);
19
+ // Extracts the existing metric tags from the CDK MetricsAspect tags array
20
+ const readCdkMetricTags = async (tree)=>(await captureAllGritQL(tree, METRICS_ASPECT_FILE_PATH, `\`$tag\` where { $tag <: string(), $tag <: within \`const tags: string[] = $_\` }`)).map(unquote);
21
+ // Extracts the existing metric tags from the Terraform metric_tags array
22
+ const readTerraformMetricTags = async (tree)=>(await captureAllGritQL(tree, TERRAFORM_METRICS_FILE_PATH, '`"$tag"` where { $tag <: within `metric_tags = $_` }')).map(unquote);
21
23
  /**
22
24
  * Instruments metrics by updating the MetricsAspect in common/constructs/src/core/app.ts if the file exists,
23
- * or updating the Terraform metrics CloudFormation stack if it exists
24
- */
25
- const addGeneratorMetricsIfApplicable = async (tree, generatorInfo) => {
26
- // Handle CDK metrics
27
- if (tree.exists(exports.METRICS_ASPECT_FILE_PATH)) {
28
- // Update the id
29
- await (0, ast_1.applyGritQL)(tree, exports.METRICS_ASPECT_FILE_PATH, `\`const id = $old\` => \`const id = '${exports.METRIC_ID}'\`` +
30
- ` where { ${WITHIN_METRICS_ASPECT} }`);
31
- // Update the version
32
- await (0, ast_1.applyGritQL)(tree, exports.METRICS_ASPECT_FILE_PATH, `\`const version = $old\` => \`const version = '${(0, nx_1.getPackageVersion)()}'\`` +
33
- ` where { ${WITHIN_METRICS_ASPECT} }`);
34
- // Add each generator as a tag
35
- for (const info of generatorInfo) {
36
- await (0, ast_1.applyGritQL)(tree, exports.METRICS_ASPECT_FILE_PATH, `\`const tags: string[] = $old\`` +
37
- ` where { ${WITHIN_METRICS_ASPECT},` +
38
- ` if ($old <: \`[]\`) { $old => \`['${info.metric}']\` }` +
39
- ` else { $old <: \`[$items]\` where { $items += \`, '${info.metric}'\` } },` +
40
- ` $old <: not contains \`'${info.metric}'\` }`);
41
- }
42
- await (0, format_1.formatFilesInSubtree)(tree, exports.METRICS_ASPECT_FILE_PATH);
25
+ * and/or updating the Terraform metrics CloudFormation stack if it exists.
26
+ *
27
+ * Both files are converged to the same tag set (the union of tags already
28
+ * present in either file plus the incoming generators). This keeps the tag set
29
+ * deterministic regardless of the order in which metrics files are created
30
+ * across a multi-generator run, so re-running the same set of generators does
31
+ * not grow the tags.
32
+ */ export const addGeneratorMetricsIfApplicable = async (tree, generatorInfo)=>{
33
+ const cdkExists = tree.exists(METRICS_ASPECT_FILE_PATH);
34
+ const terraformExists = tree.exists(TERRAFORM_METRICS_FILE_PATH);
35
+ if (!cdkExists && !terraformExists) {
36
+ return;
43
37
  }
44
- // Handle Terraform metrics
45
- if (tree.exists(exports.TERRAFORM_METRICS_FILE_PATH)) {
46
- await updateTerraformMetrics(tree, generatorInfo);
38
+ // Converge both files to the union of all known tags so the set is stable
39
+ // regardless of when each metrics file was created.
40
+ const tags = [
41
+ ...new Set([
42
+ ...await readCdkMetricTags(tree),
43
+ ...await readTerraformMetricTags(tree),
44
+ ...generatorInfo.map((info)=>info.metric)
45
+ ])
46
+ ];
47
+ if (cdkExists) {
48
+ await updateCdkMetrics(tree, tags);
47
49
  }
50
+ if (terraformExists) {
51
+ await updateTerraformMetrics(tree, tags);
52
+ }
53
+ };
54
+ /**
55
+ * Updates the CDK MetricsAspect with the metric id, version and tags
56
+ */ const updateCdkMetrics = async (tree, tags)=>{
57
+ // Update the id
58
+ await applyGritQL(tree, METRICS_ASPECT_FILE_PATH, `\`const id = $old\` => \`const id = '${METRIC_ID}'\`` + ` where { ${WITHIN_METRICS_ASPECT} }`);
59
+ // Update the version
60
+ await applyGritQL(tree, METRICS_ASPECT_FILE_PATH, `\`const version = $old\` => \`const version = '${getPackageVersion()}'\`` + ` where { ${WITHIN_METRICS_ASPECT} }`);
61
+ // Add each tag, leaving existing tags in place to keep re-runs stable
62
+ for (const tag of tags){
63
+ await applyGritQL(tree, METRICS_ASPECT_FILE_PATH, `\`const tags: string[] = $old\`` + ` where { ${WITHIN_METRICS_ASPECT},` + ` if ($old <: \`[]\`) { $old => \`['${tag}']\` }` + ` else { $old <: \`[$items]\` where { $items += \`, '${tag}'\` } },` + ` $old <: not contains \`'${tag}'\` }`);
64
+ }
65
+ await formatFilesInSubtree(tree, METRICS_ASPECT_FILE_PATH);
48
66
  };
49
- exports.addGeneratorMetricsIfApplicable = addGeneratorMetricsIfApplicable;
50
67
  /**
51
- * Updates the Terraform metrics CloudFormation stack with generator information
52
- */
53
- const updateTerraformMetrics = async (tree, generatorInfo) => {
68
+ * Updates the Terraform metrics CloudFormation stack with the metric id, version and tags
69
+ */ const updateTerraformMetrics = async (tree, tags)=>{
54
70
  // Update metric_id
55
- await (0, ast_1.applyGritQL)(tree, exports.TERRAFORM_METRICS_FILE_PATH, `\`metric_id = $old\` => \`metric_id = "${exports.METRIC_ID}"\``);
71
+ await applyGritQL(tree, TERRAFORM_METRICS_FILE_PATH, `\`metric_id = $old\` => \`metric_id = "${METRIC_ID}"\``);
56
72
  // Update metric_version
57
- await (0, ast_1.applyGritQL)(tree, exports.TERRAFORM_METRICS_FILE_PATH, `\`metric_version = $old\` => \`metric_version = "${(0, nx_1.getPackageVersion)()}"\``);
58
- // Update metric_tags
59
- for (const info of generatorInfo) {
60
- await (0, ast_1.applyGritQL)(tree, exports.TERRAFORM_METRICS_FILE_PATH, `or { \`metric_tags = []\` => \`metric_tags = ["${info.metric}"]\`,` +
61
- ` \`metric_tags = [$items]\` where { $items += \`, "${info.metric}"\` }` +
62
- ` where { $items <: not contains \`"${info.metric}"\` } }`);
73
+ await applyGritQL(tree, TERRAFORM_METRICS_FILE_PATH, `\`metric_version = $old\` => \`metric_version = "${getPackageVersion()}"\``);
74
+ // Add each tag, leaving existing tags in place to keep re-runs stable
75
+ for (const tag of tags){
76
+ await applyGritQL(tree, TERRAFORM_METRICS_FILE_PATH, `or { \`metric_tags = []\` => \`metric_tags = ["${tag}"]\`,` + ` \`metric_tags = [$items]\` where { $items += \`, "${tag}"\` }` + ` where { $items <: not contains \`"${tag}"\` } }`);
63
77
  }
64
78
  };
79
+
65
80
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/metrics.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAAqD;AACrD,+BAAoC;AACpC,qCAAgD;AAChD,6BAA0D;AAC1D,+EAIuC;AAEvC,iDAAiD;AACpC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,kDAAkD;AACrC,QAAA,wBAAwB,GAAG,IAAA,0BAAiB,EACvD,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,MAAM,EACN,QAAQ,CACT,CAAC;AAEF,qEAAqE;AACxD,QAAA,2BAA2B,GAAG,IAAA,0BAAiB,EAC1D,0CAAY,EACZ,kDAAoB,EACpB,KAAK,EACL,SAAS,EACT,YAAY,CACb,CAAC;AAEF,0EAA0E;AAC1E,MAAM,qBAAqB,GACzB,2DAA2D,CAAC;AAE9D;;;GAGG;AACI,MAAM,+BAA+B,GAAG,KAAK,EAClD,IAAU,EACV,aAAgC,EAChC,EAAE;IACF,qBAAqB;IACrB,IAAI,IAAI,CAAC,MAAM,CAAC,gCAAwB,CAAC,EAAE,CAAC;QAC1C,gBAAgB;QAChB,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,gCAAwB,EACxB,wCAAwC,iBAAS,KAAK;YACpD,YAAY,qBAAqB,IAAI,CACxC,CAAC;QAEF,qBAAqB;QACrB,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,gCAAwB,EACxB,kDAAkD,IAAA,sBAAiB,GAAE,KAAK;YACxE,YAAY,qBAAqB,IAAI,CACxC,CAAC;QAEF,8BAA8B;QAC9B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,gCAAwB,EACxB,iCAAiC;gBAC/B,YAAY,qBAAqB,GAAG;gBACpC,sCAAsC,IAAI,CAAC,MAAM,QAAQ;gBACzD,uDAAuD,IAAI,CAAC,MAAM,UAAU;gBAC5E,4BAA4B,IAAI,CAAC,MAAM,OAAO,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,IAAA,6BAAoB,EAAC,IAAI,EAAE,gCAAwB,CAAC,CAAC;IAC7D,CAAC;IAED,2BAA2B;IAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,mCAA2B,CAAC,EAAE,CAAC;QAC7C,MAAM,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC;AA1CW,QAAA,+BAA+B,mCA0C1C;AAEF;;GAEG;AACH,MAAM,sBAAsB,GAAG,KAAK,EAClC,IAAU,EACV,aAAgC,EAChC,EAAE;IACF,mBAAmB;IACnB,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,mCAA2B,EAC3B,0CAA0C,iBAAS,KAAK,CACzD,CAAC;IAEF,wBAAwB;IACxB,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,mCAA2B,EAC3B,oDAAoD,IAAA,sBAAiB,GAAE,KAAK,CAC7E,CAAC;IAEF,qBAAqB;IACrB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,mCAA2B,EAC3B,kDAAkD,IAAI,CAAC,MAAM,OAAO;YAClE,sDAAsD,IAAI,CAAC,MAAM,OAAO;YACxE,sCAAsC,IAAI,CAAC,MAAM,SAAS,CAC7D,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/metrics.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { joinPathFragments, type Tree } from '@nx/devkit';\nimport { applyGritQL, captureAllGritQL } from './ast';\nimport { formatFilesInSubtree } from './format';\nimport { getPackageVersion, type NxGeneratorInfo } from './nx';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from './shared-constructs-constants';\n\n// Used to identify @aws/nx-plugin in AWS metrics\nexport const METRIC_ID = 'uksb-4wk0bqpg5s';\n\n// File in which the MetricsAspect may exist (CDK)\nexport const METRICS_ASPECT_FILE_PATH = joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'app.ts',\n);\n\n// File in which the Terraform metrics CloudFormation stack may exist\nexport const TERRAFORM_METRICS_FILE_PATH = joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'metrics',\n 'metrics.tf',\n);\n\n// GritQL `within` clause to scope matches to the MetricsAspect class body\nconst WITHIN_METRICS_ASPECT =\n '$old <: within `class MetricsAspect implements $_ { $_ }`';\n\n// Strip the surrounding quotes from a captured string literal (eg 'g1' or \"g1\")\nconst unquote = (literal: string): string => literal.slice(1, -1);\n\n// Extracts the existing metric tags from the CDK MetricsAspect tags array\nconst readCdkMetricTags = async (tree: Tree): Promise<string[]> =>\n (\n await captureAllGritQL(\n tree,\n METRICS_ASPECT_FILE_PATH,\n `\\`$tag\\` where { $tag <: string(), $tag <: within \\`const tags: string[] = $_\\` }`,\n )\n ).map(unquote);\n\n// Extracts the existing metric tags from the Terraform metric_tags array\nconst readTerraformMetricTags = async (tree: Tree): Promise<string[]> =>\n (\n await captureAllGritQL(\n tree,\n TERRAFORM_METRICS_FILE_PATH,\n '`\"$tag\"` where { $tag <: within `metric_tags = $_` }',\n )\n ).map(unquote);\n\n/**\n * Instruments metrics by updating the MetricsAspect in common/constructs/src/core/app.ts if the file exists,\n * and/or updating the Terraform metrics CloudFormation stack if it exists.\n *\n * Both files are converged to the same tag set (the union of tags already\n * present in either file plus the incoming generators). This keeps the tag set\n * deterministic regardless of the order in which metrics files are created\n * across a multi-generator run, so re-running the same set of generators does\n * not grow the tags.\n */\nexport const addGeneratorMetricsIfApplicable = async (\n tree: Tree,\n generatorInfo: NxGeneratorInfo[],\n) => {\n const cdkExists = tree.exists(METRICS_ASPECT_FILE_PATH);\n const terraformExists = tree.exists(TERRAFORM_METRICS_FILE_PATH);\n\n if (!cdkExists && !terraformExists) {\n return;\n }\n\n // Converge both files to the union of all known tags so the set is stable\n // regardless of when each metrics file was created.\n const tags = [\n ...new Set([\n ...(await readCdkMetricTags(tree)),\n ...(await readTerraformMetricTags(tree)),\n ...generatorInfo.map((info) => info.metric),\n ]),\n ];\n\n if (cdkExists) {\n await updateCdkMetrics(tree, tags);\n }\n\n if (terraformExists) {\n await updateTerraformMetrics(tree, tags);\n }\n};\n\n/**\n * Updates the CDK MetricsAspect with the metric id, version and tags\n */\nconst updateCdkMetrics = async (tree: Tree, tags: string[]) => {\n // Update the id\n await applyGritQL(\n tree,\n METRICS_ASPECT_FILE_PATH,\n `\\`const id = $old\\` => \\`const id = '${METRIC_ID}'\\`` +\n ` where { ${WITHIN_METRICS_ASPECT} }`,\n );\n\n // Update the version\n await applyGritQL(\n tree,\n METRICS_ASPECT_FILE_PATH,\n `\\`const version = $old\\` => \\`const version = '${getPackageVersion()}'\\`` +\n ` where { ${WITHIN_METRICS_ASPECT} }`,\n );\n\n // Add each tag, leaving existing tags in place to keep re-runs stable\n for (const tag of tags) {\n await applyGritQL(\n tree,\n METRICS_ASPECT_FILE_PATH,\n `\\`const tags: string[] = $old\\`` +\n ` where { ${WITHIN_METRICS_ASPECT},` +\n ` if ($old <: \\`[]\\`) { $old => \\`['${tag}']\\` }` +\n ` else { $old <: \\`[$items]\\` where { $items += \\`, '${tag}'\\` } },` +\n ` $old <: not contains \\`'${tag}'\\` }`,\n );\n }\n\n await formatFilesInSubtree(tree, METRICS_ASPECT_FILE_PATH);\n};\n\n/**\n * Updates the Terraform metrics CloudFormation stack with the metric id, version and tags\n */\nconst updateTerraformMetrics = async (tree: Tree, tags: string[]) => {\n // Update metric_id\n await applyGritQL(\n tree,\n TERRAFORM_METRICS_FILE_PATH,\n `\\`metric_id = $old\\` => \\`metric_id = \"${METRIC_ID}\"\\``,\n );\n\n // Update metric_version\n await applyGritQL(\n tree,\n TERRAFORM_METRICS_FILE_PATH,\n `\\`metric_version = $old\\` => \\`metric_version = \"${getPackageVersion()}\"\\``,\n );\n\n // Add each tag, leaving existing tags in place to keep re-runs stable\n for (const tag of tags) {\n await applyGritQL(\n tree,\n TERRAFORM_METRICS_FILE_PATH,\n `or { \\`metric_tags = []\\` => \\`metric_tags = [\"${tag}\"]\\`,` +\n ` \\`metric_tags = [$items]\\` where { $items += \\`, \"${tag}\"\\` }` +\n ` where { $items <: not contains \\`\"${tag}\"\\` } }`,\n );\n }\n};\n"],"names":["joinPathFragments","applyGritQL","captureAllGritQL","formatFilesInSubtree","getPackageVersion","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","METRIC_ID","METRICS_ASPECT_FILE_PATH","TERRAFORM_METRICS_FILE_PATH","WITHIN_METRICS_ASPECT","unquote","literal","slice","readCdkMetricTags","tree","map","readTerraformMetricTags","addGeneratorMetricsIfApplicable","generatorInfo","cdkExists","exists","terraformExists","tags","Set","info","metric","updateCdkMetrics","updateTerraformMetrics","tag"],"mappings":"AAAA;;;CAGC,GACD,SAASA,iBAAiB,QAAmB,aAAa;AAC1D,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,WAAQ;AACtD,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,iBAAiB,QAA8B,UAAO;AAC/D,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,mCAAgC;AAEvC,iDAAiD;AACjD,OAAO,MAAMC,YAAY,kBAAkB;AAE3C,kDAAkD;AAClD,OAAO,MAAMC,2BAA2BT,kBACtCK,cACAC,uBACA,OACA,QACA,UACA;AAEF,qEAAqE;AACrE,OAAO,MAAMI,8BAA8BV,kBACzCK,cACAE,sBACA,OACA,WACA,cACA;AAEF,0EAA0E;AAC1E,MAAMI,wBACJ;AAEF,gFAAgF;AAChF,MAAMC,UAAU,CAACC,UAA4BA,QAAQC,KAAK,CAAC,GAAG,CAAC;AAE/D,0EAA0E;AAC1E,MAAMC,oBAAoB,OAAOC,OAC/B,AACE,CAAA,MAAMd,iBACJc,MACAP,0BACA,CAAC,iFAAiF,CAAC,CACrF,EACAQ,GAAG,CAACL;AAER,yEAAyE;AACzE,MAAMM,0BAA0B,OAAOF,OACrC,AACE,CAAA,MAAMd,iBACJc,MACAN,6BACA,uDACF,EACAO,GAAG,CAACL;AAER;;;;;;;;;CASC,GACD,OAAO,MAAMO,kCAAkC,OAC7CH,MACAI;IAEA,MAAMC,YAAYL,KAAKM,MAAM,CAACb;IAC9B,MAAMc,kBAAkBP,KAAKM,MAAM,CAACZ;IAEpC,IAAI,CAACW,aAAa,CAACE,iBAAiB;QAClC;IACF;IAEA,0EAA0E;IAC1E,oDAAoD;IACpD,MAAMC,OAAO;WACR,IAAIC,IAAI;eACL,MAAMV,kBAAkBC;eACxB,MAAME,wBAAwBF;eAC/BI,cAAcH,GAAG,CAAC,CAACS,OAASA,KAAKC,MAAM;SAC3C;KACF;IAED,IAAIN,WAAW;QACb,MAAMO,iBAAiBZ,MAAMQ;IAC/B;IAEA,IAAID,iBAAiB;QACnB,MAAMM,uBAAuBb,MAAMQ;IACrC;AACF,EAAE;AAEF;;CAEC,GACD,MAAMI,mBAAmB,OAAOZ,MAAYQ;IAC1C,gBAAgB;IAChB,MAAMvB,YACJe,MACAP,0BACA,CAAC,qCAAqC,EAAED,UAAU,GAAG,CAAC,GACpD,CAAC,SAAS,EAAEG,sBAAsB,EAAE,CAAC;IAGzC,qBAAqB;IACrB,MAAMV,YACJe,MACAP,0BACA,CAAC,+CAA+C,EAAEL,oBAAoB,GAAG,CAAC,GACxE,CAAC,SAAS,EAAEO,sBAAsB,EAAE,CAAC;IAGzC,sEAAsE;IACtE,KAAK,MAAMmB,OAAON,KAAM;QACtB,MAAMvB,YACJe,MACAP,0BACA,CAAC,+BAA+B,CAAC,GAC/B,CAAC,SAAS,EAAEE,sBAAsB,CAAC,CAAC,GACpC,CAAC,mCAAmC,EAAEmB,IAAI,MAAM,CAAC,GACjD,CAAC,oDAAoD,EAAEA,IAAI,QAAQ,CAAC,GACpE,CAAC,yBAAyB,EAAEA,IAAI,KAAK,CAAC;IAE5C;IAEA,MAAM3B,qBAAqBa,MAAMP;AACnC;AAEA;;CAEC,GACD,MAAMoB,yBAAyB,OAAOb,MAAYQ;IAChD,mBAAmB;IACnB,MAAMvB,YACJe,MACAN,6BACA,CAAC,uCAAuC,EAAEF,UAAU,GAAG,CAAC;IAG1D,wBAAwB;IACxB,MAAMP,YACJe,MACAN,6BACA,CAAC,iDAAiD,EAAEN,oBAAoB,GAAG,CAAC;IAG9E,sEAAsE;IACtE,KAAK,MAAM0B,OAAON,KAAM;QACtB,MAAMvB,YACJe,MACAN,6BACA,CAAC,+CAA+C,EAAEoB,IAAI,KAAK,CAAC,GAC1D,CAAC,mDAAmD,EAAEA,IAAI,KAAK,CAAC,GAChE,CAAC,mCAAmC,EAAEA,IAAI,OAAO,CAAC;IAExD;AACF"}
@@ -1,10 +1,7 @@
1
- "use strict";
2
1
  /**
3
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
3
  * SPDX-License-Identifier: Apache-2.0
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- /**
4
+ */ /**
8
5
  * Mock createProjectGraphAsync to avoid expensive project graph building in tests.
9
6
  *
10
7
  * This is the vitest equivalent of Nx's own internal testing utility:
@@ -15,13 +12,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
12
  * 2. @nx/devkit's exports are wrapped with read-only getters by vitest
16
13
  * 3. The CJS module at nx/src/project-graph/project-graph.js is the actual
17
14
  * implementation that @nx/devkit re-exports
18
- */
19
- const module_1 = require("module");
20
- // @ts-expect-error test utility used by vite only
21
- const _require = (0, module_1.createRequire)(import.meta.url);
15
+ */ import { createRequire } from "module";
16
+ const _require = createRequire(import.meta.url);
22
17
  const projectGraph = _require('nx/src/project-graph/project-graph');
23
- projectGraph.createProjectGraphAsync = async () => ({
24
- nodes: {},
25
- dependencies: {},
26
- });
18
+ projectGraph.createProjectGraphAsync = async ()=>({
19
+ nodes: {},
20
+ dependencies: {}
21
+ });
22
+
27
23
  //# sourceMappingURL=mock-project-graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-project-graph.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/mock-project-graph.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH;;;;;;;;;;;GAWG;AACH,mCAAuC;AAEvC,kDAAkD;AAClD,MAAM,QAAQ,GAAG,IAAA,sBAAa,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,oCAAoC,CAAC,CAAC;AACpE,YAAY,CAAC,uBAAuB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IAClD,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE;CACjB,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/mock-project-graph.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Mock createProjectGraphAsync to avoid expensive project graph building in tests.\n *\n * This is the vitest equivalent of Nx's own internal testing utility:\n * https://github.com/nrwl/nx/blob/master/packages/nx/src/internal-testing-utils/mock-project-graph.ts\n *\n * We patch the underlying nx module directly because:\n * 1. vitest's vi.mock only affects ESM imports within the test file\n * 2. @nx/devkit's exports are wrapped with read-only getters by vitest\n * 3. The CJS module at nx/src/project-graph/project-graph.js is the actual\n * implementation that @nx/devkit re-exports\n */\nimport { createRequire } from 'module';\n\nconst _require = createRequire(import.meta.url);\nconst projectGraph = _require('nx/src/project-graph/project-graph');\nprojectGraph.createProjectGraphAsync = async () => ({\n nodes: {},\n dependencies: {},\n});\n"],"names":["createRequire","_require","url","projectGraph","createProjectGraphAsync","nodes","dependencies"],"mappings":"AAAA;;;CAGC,GAED;;;;;;;;;;;CAWC,GACD,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,WAAWD,cAAc,YAAYE,GAAG;AAC9C,MAAMC,eAAeF,SAAS;AAC9BE,aAAaC,uBAAuB,GAAG,UAAa,CAAA;QAClDC,OAAO,CAAC;QACRC,cAAc,CAAC;IACjB,CAAA"}
@@ -5,4 +5,20 @@ export declare const upperFirst: (str: string) => string;
5
5
  export declare const pascalCase: (str: string) => string;
6
6
  export declare const snakeCase: (str: string) => string;
7
7
  export declare const kebabCase: (str: string) => string;
8
+ /**
9
+ * Normalise a string to a PEP 503 distribution name.
10
+ *
11
+ * PEP 503 (https://peps.python.org/pep-0503/#normalized-names) defines the
12
+ * canonical form of a Python project distribution name: lower-cased, with any
13
+ * run of `.`, `_` or `-` collapsed to a single `-`. This is the name uv writes
14
+ * into `uv.lock` and the form `@nxlv/python` expects when inferring workspace
15
+ * dependency edges from `[project].dependencies` / `[tool.uv.sources]`.
16
+ *
17
+ * Importantly this is NOT kebab-case: it does not split on camelCase humps,
18
+ * spaces or other punctuation, so a dotted nx id like `scope.my_lib` becomes
19
+ * `scope-my-lib` (and only those three separators are touched).
20
+ *
21
+ * eg. `sojourner.agent_connection` -> `sojourner-agent-connection`
22
+ */
23
+ export declare const normalizeDistributionName: (str: string) => string;
8
24
  export declare const toDotNotation: (str: string) => string;
@@ -1,66 +1,57 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toDotNotation = exports.kebabCase = exports.snakeCase = exports.pascalCase = exports.upperFirst = exports.toSnakeCase = exports.toKebabCase = exports.toClassName = void 0;
4
- const tslib_1 = require("tslib");
5
1
  /**
6
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
3
  * SPDX-License-Identifier: Apache-2.0
8
- */
9
- const lodash_camelcase_1 = tslib_1.__importDefault(require("lodash.camelcase"));
10
- const lodash_deburr_1 = tslib_1.__importDefault(require("lodash.deburr"));
11
- const toClassName = (str) => {
4
+ */ import camelCase from "lodash.camelcase";
5
+ import deburr from "lodash.deburr";
6
+ export const toClassName = (str)=>{
12
7
  if (!str) {
13
8
  return str;
14
9
  }
15
10
  const words = str.replace(/[^a-zA-Z0-9]/g, ' ').split(/\s+/);
16
- return words
17
- .map((word, index) => {
11
+ return words.map((word, index)=>{
18
12
  if (index === 0 && /^\d/.test(word)) {
19
13
  return '_' + word;
20
14
  }
21
15
  return word.charAt(0).toUpperCase() + word.slice(1);
22
- })
23
- .join('');
16
+ }).join('');
24
17
  };
25
- exports.toClassName = toClassName;
26
- const toKebabCase = (str) => str?.split('/').map(exports.kebabCase).join('/');
27
- exports.toKebabCase = toKebabCase;
28
- const toSnakeCase = (str) => str?.split('/').map(exports.snakeCase).join('/');
29
- exports.toSnakeCase = toSnakeCase;
30
- const upperFirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);
31
- exports.upperFirst = upperFirst;
32
- const pascalCase = (str) => (0, exports.upperFirst)((0, lodash_camelcase_1.default)(str));
33
- exports.pascalCase = pascalCase;
34
- const snakeCase = (str) => {
35
- return ((0, lodash_deburr_1.default)(str)
36
- // Replace series of special characters with underscores
37
- .replace(/[^a-zA-Z0-9]+/g, '_')
38
- // Replace capital letters preceded by lowercase or numbers with underscore + lowercase
39
- .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
40
- // Convert to lowercase
41
- .toLowerCase()
42
- // Remove leading/trailing underscores
43
- .replace(/^_+|_+$/g, ''));
18
+ export const toKebabCase = (str)=>str?.split('/').map(kebabCase).join('/');
19
+ export const toSnakeCase = (str)=>str?.split('/').map(snakeCase).join('/');
20
+ export const upperFirst = (str)=>str.charAt(0).toUpperCase() + str.slice(1);
21
+ export const pascalCase = (str)=>upperFirst(camelCase(str));
22
+ export const snakeCase = (str)=>{
23
+ return deburr(str)// Replace series of special characters with underscores
24
+ .replace(/[^a-zA-Z0-9]+/g, '_')// Replace capital letters preceded by lowercase or numbers with underscore + lowercase
25
+ .replace(/([a-z0-9])([A-Z])/g, '$1_$2')// Convert to lowercase
26
+ .toLowerCase()// Remove leading/trailing underscores
27
+ .replace(/^_+|_+$/g, '');
44
28
  };
45
- exports.snakeCase = snakeCase;
46
- const kebabCase = (str) => {
47
- return ((0, lodash_deburr_1.default)(str)
48
- // Replace series of special characters with hyphens
49
- .replace(/[^a-zA-Z0-9]+/g, '-')
50
- // Replace capital letters preceded by lowercase or numbers with hyphen + lowercase
51
- .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
52
- // Convert to lowercase
53
- .toLowerCase()
54
- // Remove leading/trailing hyphens
55
- .replace(/^-+|-+$/g, ''));
29
+ export const kebabCase = (str)=>{
30
+ return deburr(str)// Replace series of special characters with hyphens
31
+ .replace(/[^a-zA-Z0-9]+/g, '-')// Replace capital letters preceded by lowercase or numbers with hyphen + lowercase
32
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')// Convert to lowercase
33
+ .toLowerCase()// Remove leading/trailing hyphens
34
+ .replace(/^-+|-+$/g, '');
56
35
  };
57
- exports.kebabCase = kebabCase;
36
+ /**
37
+ * Normalise a string to a PEP 503 distribution name.
38
+ *
39
+ * PEP 503 (https://peps.python.org/pep-0503/#normalized-names) defines the
40
+ * canonical form of a Python project distribution name: lower-cased, with any
41
+ * run of `.`, `_` or `-` collapsed to a single `-`. This is the name uv writes
42
+ * into `uv.lock` and the form `@nxlv/python` expects when inferring workspace
43
+ * dependency edges from `[project].dependencies` / `[tool.uv.sources]`.
44
+ *
45
+ * Importantly this is NOT kebab-case: it does not split on camelCase humps,
46
+ * spaces or other punctuation, so a dotted nx id like `scope.my_lib` becomes
47
+ * `scope-my-lib` (and only those three separators are touched).
48
+ *
49
+ * eg. `sojourner.agent_connection` -> `sojourner-agent-connection`
50
+ */ export const normalizeDistributionName = (str)=>str.toLowerCase().replace(/[._-]+/g, '-');
58
51
  // Convert a string to a dot notation string (eg. lambda_handler/my_handler.py -> lambda_handler.my_handler)
59
- const toDotNotation = (str) => str
60
- ?.replace(/^\/|\/$/g, '') // Remove leading/trailing slashes
52
+ export const toDotNotation = (str)=>str?.replace(/^\/|\/$/g, '') // Remove leading/trailing slashes
61
53
  .replace(/\.[^/.]+$/g, '') // Remove any file extensions
62
- .split('/')
63
- .filter(Boolean) // Remove empty segments (in case of double slashes)
54
+ .split('/').filter(Boolean) // Remove empty segments (in case of double slashes)
64
55
  .join('.');
65
- exports.toDotNotation = toDotNotation;
56
+
66
57
  //# sourceMappingURL=names.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/names.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,gFAAyC;AACzC,0EAAmC;AAE5B,MAAM,WAAW,GAAG,CAAC,GAAY,EAAU,EAAE;IAClD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnB,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC;AAbW,QAAA,WAAW,eAatB;AAEK,MAAM,WAAW,GAAG,CAAC,GAAY,EAAU,EAAE,CAClD,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,iBAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAD9B,QAAA,WAAW,eACmB;AAEpC,MAAM,WAAW,GAAG,CAAC,GAAY,EAAU,EAAE,CAClD,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,iBAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAD9B,QAAA,WAAW,eACmB;AAEpC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE,CAChD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AADhC,QAAA,UAAU,cACsB;AAEtC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,IAAA,kBAAU,EAAC,IAAA,0BAAS,EAAC,GAAG,CAAC,CAAC,CAAC;AAAjE,QAAA,UAAU,cAAuD;AAEvE,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE;IAC/C,OAAO,CACL,IAAA,uBAAM,EAAC,GAAG,CAAC;QACT,wDAAwD;SACvD,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;QAC/B,uFAAuF;SACtF,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;QACvC,uBAAuB;SACtB,WAAW,EAAE;QACd,sCAAsC;SACrC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAC3B,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB;AAEK,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE;IAC/C,OAAO,CACL,IAAA,uBAAM,EAAC,GAAG,CAAC;QACT,oDAAoD;SACnD,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;QAC/B,mFAAmF;SAClF,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;QACvC,uBAAuB;SACtB,WAAW,EAAE;QACd,kCAAkC;SACjC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAC3B,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB;AAEF,4GAA4G;AACrG,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE,CACnD,GAAG;IACD,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,kCAAkC;KAC3D,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,6BAA6B;KACvD,KAAK,CAAC,GAAG,CAAC;KACV,MAAM,CAAC,OAAO,CAAC,CAAC,oDAAoD;KACpE,IAAI,CAAC,GAAG,CAAC,CAAC;AANF,QAAA,aAAa,iBAMX"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/names.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport camelCase from 'lodash.camelcase';\nimport deburr from 'lodash.deburr';\n\nexport const toClassName = (str?: string): string => {\n if (!str) {\n return str;\n }\n const words = str.replace(/[^a-zA-Z0-9]/g, ' ').split(/\\s+/);\n return words\n .map((word, index) => {\n if (index === 0 && /^\\d/.test(word)) {\n return '_' + word;\n }\n return word.charAt(0).toUpperCase() + word.slice(1);\n })\n .join('');\n};\n\nexport const toKebabCase = (str?: string): string =>\n str?.split('/').map(kebabCase).join('/');\n\nexport const toSnakeCase = (str?: string): string =>\n str?.split('/').map(snakeCase).join('/');\n\nexport const upperFirst = (str: string): string =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport const pascalCase = (str: string): string => upperFirst(camelCase(str));\n\nexport const snakeCase = (str: string): string => {\n return (\n deburr(str)\n // Replace series of special characters with underscores\n .replace(/[^a-zA-Z0-9]+/g, '_')\n // Replace capital letters preceded by lowercase or numbers with underscore + lowercase\n .replace(/([a-z0-9])([A-Z])/g, '$1_$2')\n // Convert to lowercase\n .toLowerCase()\n // Remove leading/trailing underscores\n .replace(/^_+|_+$/g, '')\n );\n};\n\nexport const kebabCase = (str: string): string => {\n return (\n deburr(str)\n // Replace series of special characters with hyphens\n .replace(/[^a-zA-Z0-9]+/g, '-')\n // Replace capital letters preceded by lowercase or numbers with hyphen + lowercase\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n // Convert to lowercase\n .toLowerCase()\n // Remove leading/trailing hyphens\n .replace(/^-+|-+$/g, '')\n );\n};\n\n/**\n * Normalise a string to a PEP 503 distribution name.\n *\n * PEP 503 (https://peps.python.org/pep-0503/#normalized-names) defines the\n * canonical form of a Python project distribution name: lower-cased, with any\n * run of `.`, `_` or `-` collapsed to a single `-`. This is the name uv writes\n * into `uv.lock` and the form `@nxlv/python` expects when inferring workspace\n * dependency edges from `[project].dependencies` / `[tool.uv.sources]`.\n *\n * Importantly this is NOT kebab-case: it does not split on camelCase humps,\n * spaces or other punctuation, so a dotted nx id like `scope.my_lib` becomes\n * `scope-my-lib` (and only those three separators are touched).\n *\n * eg. `sojourner.agent_connection` -> `sojourner-agent-connection`\n */\nexport const normalizeDistributionName = (str: string): string =>\n str.toLowerCase().replace(/[._-]+/g, '-');\n\n// Convert a string to a dot notation string (eg. lambda_handler/my_handler.py -> lambda_handler.my_handler)\nexport const toDotNotation = (str: string): string =>\n str\n ?.replace(/^\\/|\\/$/g, '') // Remove leading/trailing slashes\n .replace(/\\.[^/.]+$/g, '') // Remove any file extensions\n .split('/')\n .filter(Boolean) // Remove empty segments (in case of double slashes)\n .join('.');\n"],"names":["camelCase","deburr","toClassName","str","words","replace","split","map","word","index","test","charAt","toUpperCase","slice","join","toKebabCase","kebabCase","toSnakeCase","snakeCase","upperFirst","pascalCase","toLowerCase","normalizeDistributionName","toDotNotation","filter","Boolean"],"mappings":"AAAA;;;CAGC,GACD,OAAOA,eAAe,mBAAmB;AACzC,OAAOC,YAAY,gBAAgB;AAEnC,OAAO,MAAMC,cAAc,CAACC;IAC1B,IAAI,CAACA,KAAK;QACR,OAAOA;IACT;IACA,MAAMC,QAAQD,IAAIE,OAAO,CAAC,iBAAiB,KAAKC,KAAK,CAAC;IACtD,OAAOF,MACJG,GAAG,CAAC,CAACC,MAAMC;QACV,IAAIA,UAAU,KAAK,MAAMC,IAAI,CAACF,OAAO;YACnC,OAAO,MAAMA;QACf;QACA,OAAOA,KAAKG,MAAM,CAAC,GAAGC,WAAW,KAAKJ,KAAKK,KAAK,CAAC;IACnD,GACCC,IAAI,CAAC;AACV,EAAE;AAEF,OAAO,MAAMC,cAAc,CAACZ,MAC1BA,KAAKG,MAAM,KAAKC,IAAIS,WAAWF,KAAK,KAAK;AAE3C,OAAO,MAAMG,cAAc,CAACd,MAC1BA,KAAKG,MAAM,KAAKC,IAAIW,WAAWJ,KAAK,KAAK;AAE3C,OAAO,MAAMK,aAAa,CAAChB,MACzBA,IAAIQ,MAAM,CAAC,GAAGC,WAAW,KAAKT,IAAIU,KAAK,CAAC,GAAG;AAE7C,OAAO,MAAMO,aAAa,CAACjB,MAAwBgB,WAAWnB,UAAUG,MAAM;AAE9E,OAAO,MAAMe,YAAY,CAACf;IACxB,OACEF,OAAOE,IACL,wDAAwD;KACvDE,OAAO,CAAC,kBAAkB,IAC3B,uFAAuF;KACtFA,OAAO,CAAC,sBAAsB,QAC/B,uBAAuB;KACtBgB,WAAW,EACZ,sCAAsC;KACrChB,OAAO,CAAC,YAAY;AAE3B,EAAE;AAEF,OAAO,MAAMW,YAAY,CAACb;IACxB,OACEF,OAAOE,IACL,oDAAoD;KACnDE,OAAO,CAAC,kBAAkB,IAC3B,mFAAmF;KAClFA,OAAO,CAAC,sBAAsB,QAC/B,uBAAuB;KACtBgB,WAAW,EACZ,kCAAkC;KACjChB,OAAO,CAAC,YAAY;AAE3B,EAAE;AAEF;;;;;;;;;;;;;;CAcC,GACD,OAAO,MAAMiB,4BAA4B,CAACnB,MACxCA,IAAIkB,WAAW,GAAGhB,OAAO,CAAC,WAAW,KAAK;AAE5C,4GAA4G;AAC5G,OAAO,MAAMkB,gBAAgB,CAACpB,MAC5BA,KACIE,QAAQ,YAAY,IAAI,kCAAkC;KAC3DA,QAAQ,cAAc,IAAI,6BAA6B;KACvDC,MAAM,KACNkB,OAAOC,SAAS,oDAAoD;KACpEX,KAAK,KAAK"}
@@ -2,7 +2,7 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { Tree } from '@nx/devkit';
5
+ import { type Tree } from '@nx/devkit';
6
6
  export declare function getNpmScope(tree: Tree): string | undefined;
7
7
  export declare function getNpmScopePrefix(tree: Tree): string | undefined;
8
8
  /**
@@ -1,29 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNpmScope = getNpmScope;
4
- exports.getNpmScopePrefix = getNpmScopePrefix;
5
- exports.toScopeAlias = toScopeAlias;
6
1
  /**
7
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
8
3
  * SPDX-License-Identifier: Apache-2.0
9
- */
10
- const devkit_1 = require("@nx/devkit");
11
- function getNpmScope(tree) {
12
- const { name } = tree.exists('package.json')
13
- ? (0, devkit_1.readJson)(tree, 'package.json')
14
- : { name: null };
4
+ */ import { readJson } from "@nx/devkit";
5
+ export function getNpmScope(tree) {
6
+ const { name } = tree.exists('package.json') ? readJson(tree, 'package.json') : {
7
+ name: null
8
+ };
15
9
  return name?.startsWith('@') ? name.split('/')[0].substring(1) : 'monorepo';
16
10
  }
17
- function getNpmScopePrefix(tree) {
11
+ export function getNpmScopePrefix(tree) {
18
12
  const npmScope = getNpmScope(tree);
19
13
  return `@${npmScope}/`;
20
14
  }
21
15
  /**
22
16
  * Returns a safe import alias for local packages to avoid the potential for sniping attacks
23
- */
24
- function toScopeAlias(npmScopeOrPackageName) {
25
- return npmScopeOrPackageName.startsWith('@')
26
- ? `:${npmScopeOrPackageName.slice(1)}`
27
- : npmScopeOrPackageName;
17
+ */ export function toScopeAlias(npmScopeOrPackageName) {
18
+ return npmScopeOrPackageName.startsWith('@') ? `:${npmScopeOrPackageName.slice(1)}` : npmScopeOrPackageName;
28
19
  }
20
+
29
21
  //# sourceMappingURL=npm-scope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm-scope.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/npm-scope.ts"],"names":[],"mappings":";;AAKA,kCAOC;AACD,8CAGC;AAID,oCAIC;AAxBD;;;GAGG;AACH,uCAA4C;AAC5C,SAAgB,WAAW,CAAC,IAAU;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAC1C,CAAC,CAAC,IAAA,iBAAQ,EAEL,IAAI,EAAE,cAAc,CAAC;QAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACnB,OAAO,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9E,CAAC;AACD,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,QAAQ,GAAG,CAAC;AACzB,CAAC;AACD;;GAEG;AACH,SAAgB,YAAY,CAAC,qBAA6B;IACxD,OAAO,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC;QAC1C,CAAC,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,CAAC,CAAC,qBAAqB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/npm-scope.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { readJson, type Tree } from '@nx/devkit';\nexport function getNpmScope(tree: Tree): string | undefined {\n const { name } = tree.exists('package.json')\n ? readJson<{\n name?: string;\n }>(tree, 'package.json')\n : { name: null };\n return name?.startsWith('@') ? name.split('/')[0].substring(1) : 'monorepo';\n}\nexport function getNpmScopePrefix(tree: Tree): string | undefined {\n const npmScope = getNpmScope(tree);\n return `@${npmScope}/`;\n}\n/**\n * Returns a safe import alias for local packages to avoid the potential for sniping attacks\n */\nexport function toScopeAlias(npmScopeOrPackageName: string): string {\n return npmScopeOrPackageName.startsWith('@')\n ? `:${npmScopeOrPackageName.slice(1)}`\n : npmScopeOrPackageName;\n}\n"],"names":["readJson","getNpmScope","tree","name","exists","startsWith","split","substring","getNpmScopePrefix","npmScope","toScopeAlias","npmScopeOrPackageName","slice"],"mappings":"AAAA;;;CAGC,GACD,SAASA,QAAQ,QAAmB,aAAa;AACjD,OAAO,SAASC,YAAYC,IAAU;IACpC,MAAM,EAAEC,IAAI,EAAE,GAAGD,KAAKE,MAAM,CAAC,kBACzBJ,SAEGE,MAAM,kBACT;QAAEC,MAAM;IAAK;IACjB,OAAOA,MAAME,WAAW,OAAOF,KAAKG,KAAK,CAAC,IAAI,CAAC,EAAE,CAACC,SAAS,CAAC,KAAK;AACnE;AACA,OAAO,SAASC,kBAAkBN,IAAU;IAC1C,MAAMO,WAAWR,YAAYC;IAC7B,OAAO,CAAC,CAAC,EAAEO,SAAS,CAAC,CAAC;AACxB;AACA;;CAEC,GACD,OAAO,SAASC,aAAaC,qBAA6B;IACxD,OAAOA,sBAAsBN,UAAU,CAAC,OACpC,CAAC,CAAC,EAAEM,sBAAsBC,KAAK,CAAC,IAAI,GACpCD;AACN"}
package/src/utils/nx.d.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { ProjectConfiguration, Tree } from '@nx/devkit';
6
- export type { NxGeneratorInfo, GeneratorInfo } from './generators';
5
+ import { type ProjectConfiguration, type Tree } from '@nx/devkit';
6
+ export type { GeneratorInfo, NxGeneratorInfo } from './generators';
7
7
  export { buildGeneratorInfoList } from './generators';
8
8
  import { type GeneratorInfo } from './generators';
9
9
  /**
@@ -12,7 +12,7 @@ import { type GeneratorInfo } from './generators';
12
12
  */
13
13
  export declare const listGenerators: (includeHidden?: boolean) => GeneratorInfo[];
14
14
  /**
15
- * Return generator information. Call this from a generator method with __filename
15
+ * Return generator information. Call this from a generator method with import.meta.filename
16
16
  */
17
17
  export declare const getGeneratorInfo: (generatorFileName: string) => GeneratorInfo;
18
18
  export declare const getPackageVersion: () => string;
@@ -20,6 +20,11 @@ export declare const getPackageVersion: () => string;
20
20
  * Read a project configuration where the project name may not be fully qualified (ie may omit the scope prefix)
21
21
  */
22
22
  export declare const readProjectConfigurationUnqualified: (tree: Tree, projectName: string) => ProjectConfiguration;
23
+ /**
24
+ * Returns whether a project with the given name already exists in the workspace.
25
+ * The project name may be unqualified (ie may omit the scope prefix).
26
+ */
27
+ export declare const projectExists: (tree: Tree, projectName: string) => boolean;
23
28
  /**
24
29
  * Add metadata about the generator that generated the project to the project.json
25
30
  */
@@ -54,12 +59,28 @@ export type TargetDependency = string | {
54
59
  target: string;
55
60
  params?: 'ignore' | 'forward';
56
61
  };
62
+ /**
63
+ * Reorder a target's keys to match Nx's own serialization order. Nx reorders
64
+ * target properties when it rewrites an existing project.json, so applying the
65
+ * same order when first authoring a target keeps generators idempotent.
66
+ */
67
+ export declare const normalizeTargetKeyOrder: <T extends object>(target: T) => T;
57
68
  /**
58
69
  * Mutate the project to add the dependency to the target if not already present
59
70
  * Adds the target if not present.
60
71
  *
61
72
  * Accepts either a string target name (e.g. `'build'`) or a dependency config
62
- * object (e.g. `{ projects: ['foo'], target: 'serve-local' }`). Deduplicates
73
+ * object (e.g. `{ projects: ['foo'], target: 'dev' }`). Deduplicates
63
74
  * using deep equality so re-running a generator does not grow `dependsOn`.
64
75
  */
65
76
  export declare const addDependencyToTargetIfNotPresent: (project: ProjectConfiguration, target: string, dependency: TargetDependency) => void;
77
+ /**
78
+ * Register a component's `<name>-dev` target under the project-level `dev`
79
+ * target, so `nx run <project>:dev` starts every component in the project.
80
+ *
81
+ * Component generators author their own continuous `<name>-dev` runner and call
82
+ * this to aggregate it. Every component added to the project accumulates its
83
+ * `<name>-dev` under `dev`. Nx keys tasks by `project:target`, so any
84
+ * dependencies shared between components run exactly once.
85
+ */
86
+ export declare const addComponentDevTarget: (targets: Record<string, ProjectConfiguration["targets"][string]>, componentDevTargetName: string) => void;