@aws/nx-plugin 1.0.0-rc.22 → 1.0.0-rc.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-THIRD-PARTY +2088 -971
- package/package.json +25 -10
- package/src/agentcore-gateway/attach-upstream.d.ts +7 -7
- package/src/agentcore-gateway/attach-upstream.js +19 -22
- package/src/agentcore-gateway/attach-upstream.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +3 -3
- package/src/agentcore-gateway/gateway-connection/generator.js +42 -45
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/generator.js +89 -72
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +2 -2
- package/src/agentcore-gateway/mcp-connection/generator.js +24 -30
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/schema.d.js +6 -0
- package/src/agentcore-gateway/schema.d.js.map +1 -0
- package/src/bin/aws-nx-mcp.js +14 -0
- package/src/bin/aws-nx-mcp.js.map +1 -0
- package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +5 -5
- package/src/connection/agent-local-dev.js +42 -0
- package/src/connection/agent-local-dev.js.map +1 -0
- package/src/connection/agent-runtime-config.js +9 -14
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/generator.js +262 -207
- package/src/connection/generator.js.map +1 -1
- package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
- package/src/connection/local-dev.js +37 -0
- package/src/connection/local-dev.js.map +1 -0
- package/src/connection/schema.d.js +6 -0
- package/src/connection/schema.d.js.map +1 -0
- package/src/index.js +2 -5
- package/src/index.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +4 -26
- package/src/infra/app/generator.js +133 -123
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.js +6 -0
- package/src/infra/app/schema.d.js.map +1 -0
- package/src/license/config-types.js +5 -3
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +1 -1
- package/src/license/config.js +267 -242
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.js +51 -46
- package/src/license/dependency-check/check.js.map +1 -1
- package/src/license/dependency-check/collectors/collector.js +41 -71
- package/src/license/dependency-check/collectors/collector.js.map +1 -1
- package/src/license/dependency-check/collectors/npm-collector.js +34 -41
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
- package/src/license/dependency-check/collectors/python-collector.js +55 -62
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
- package/src/license/dependency-check/evaluator.js +40 -68
- package/src/license/dependency-check/evaluator.js.map +1 -1
- package/src/license/dependency-check/executor.js +30 -22
- package/src/license/dependency-check/executor.js.map +1 -1
- package/src/license/dependency-check/pre-approved.js +949 -336
- package/src/license/dependency-check/pre-approved.js.map +1 -1
- package/src/license/dependency-check/types.js +2 -3
- package/src/license/dependency-check/types.js.map +1 -1
- package/src/license/generator.js +55 -60
- package/src/license/generator.js.map +1 -1
- package/src/license/index.js +3 -9
- package/src/license/index.js.map +1 -1
- package/src/license/known-exceptions.js +14 -13
- package/src/license/known-exceptions.js.map +1 -1
- package/src/license/schema.d.js +6 -0
- package/src/license/schema.d.js.map +1 -0
- package/src/license/sync/generator.js +94 -119
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.js +28 -35
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.js +130 -160
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.js +184 -206
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/guide-render.js +10 -25
- package/src/mcp-server/guide-render.js.map +1 -1
- package/src/mcp-server/index.js +6 -10
- package/src/mcp-server/index.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +39 -57
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/option-filter.js +33 -47
- package/src/mcp-server/option-filter.js.map +1 -1
- package/src/mcp-server/schema-registry.js +27 -40
- package/src/mcp-server/schema-registry.js.map +1 -1
- package/src/mcp-server/schema.js +9 -7
- package/src/mcp-server/schema.js.map +1 -1
- package/src/mcp-server/server.js +20 -24
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +23 -24
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.js +28 -25
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +29 -37
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.js +19 -25
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/generator.js +16 -26
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-client/schema.d.js +6 -0
- package/src/open-api/ts-client/schema.d.js.map +1 -0
- package/src/open-api/ts-hooks/generator.js +13 -21
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/schema.d.js +6 -0
- package/src/open-api/ts-hooks/schema.d.js.map +1 -0
- package/src/open-api/ts-metadata/generator.js +12 -20
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/ts-metadata/schema.d.js +6 -0
- package/src/open-api/ts-metadata/schema.d.js.map +1 -0
- package/src/open-api/utils/codegen-data/languages.js +42 -60
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.js +31 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.js +253 -269
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.js +242 -241
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.js +8 -14
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.js +12 -22
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/open-api/utils/types.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +31 -6
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +130 -112
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.js +6 -0
- package/src/preset/schema.d.js.map +1 -0
- package/src/preset/schema.d.ts +0 -1
- package/src/preset/schema.json +0 -5
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
- package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.frameworks.spec.ts.snap} +18 -845
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +535 -0
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -2
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/a2a-connection/generator.js +70 -75
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/schema.d.js +8 -0
- package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/py/agent/files/ag-ui-langchain/main.py.template +10 -0
- package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +6 -8
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +3 -3
- package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +3 -3
- package/src/py/agent/gateway-connection/generator.js +61 -58
- package/src/py/agent/gateway-connection/generator.js.map +1 -1
- package/src/py/agent/gateway-connection/schema.d.js +6 -0
- package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/py/agent/generator.js +227 -194
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -12
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/mcp-connection/generator.js +53 -52
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/schema.d.js +8 -0
- package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -2
- package/src/py/agent/react-connection/generator.js +51 -58
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
- package/src/py/agent/react-connection/local-dev.js +36 -0
- package/src/py/agent/react-connection/local-dev.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.js +8 -0
- package/src/py/agent/react-connection/schema.d.js.map +1 -0
- package/src/py/agent/schema.d.js +6 -0
- package/src/py/agent/schema.d.js.map +1 -0
- package/src/py/api/generator.js +12 -12
- package/src/py/api/generator.js.map +1 -1
- package/src/py/api/schema.d.js +6 -0
- package/src/py/api/schema.d.js.map +1 -0
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +68 -28
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/agent-connection/generator.js +27 -29
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/dynamodb/fast-api-connection/generator.js +26 -28
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
- package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/files/__name__/client.py.template +5 -5
- package/src/py/dynamodb/files/__name__/entities/base.py.template +2 -2
- package/src/py/dynamodb/files/config.json.template +1 -1
- package/src/py/dynamodb/generator.js +63 -62
- package/src/py/dynamodb/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/mcp-server-connection/generator.js +27 -29
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/schema.d.js +6 -0
- package/src/py/dynamodb/schema.d.js.map +1 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +45 -4632
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
- package/src/py/fast-api/generator.js +79 -85
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +3 -2
- package/src/py/fast-api/react/generator.js +22 -24
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.js +28 -29
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/fast-api/react/schema.d.js +6 -0
- package/src/py/fast-api/react/schema.d.js.map +1 -0
- package/src/py/fast-api/schema.d.js +6 -0
- package/src/py/fast-api/schema.d.js.map +1 -0
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/lambda-function/generator.js +57 -58
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.js +6 -0
- package/src/py/lambda-function/schema.d.js.map +1 -0
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/mcp-server/generator.js +149 -131
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.js +6 -0
- package/src/py/mcp-server/schema.d.js.map +1 -0
- package/src/py/project/generator.d.ts +14 -1
- package/src/py/project/generator.js +137 -88
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.js +6 -0
- package/src/py/project/schema.d.js.map +1 -0
- package/src/sdk/agentcore-gateway.d.ts +6 -0
- package/src/sdk/agentcore-gateway.js +7 -0
- package/src/sdk/agentcore-gateway.js.map +1 -0
- package/src/sdk/connection.d.ts +6 -0
- package/src/sdk/connection.js +6 -0
- package/src/sdk/connection.js.map +1 -0
- package/{sdk → src/sdk}/license.d.ts +4 -4
- package/src/sdk/license.js +7 -0
- package/src/sdk/license.js.map +1 -0
- package/src/sdk/open-api.d.ts +10 -0
- package/src/sdk/open-api.js +8 -0
- package/src/sdk/open-api.js.map +1 -0
- package/src/sdk/py.d.ts +14 -0
- package/src/sdk/py.js +10 -0
- package/src/sdk/py.js.map +1 -0
- package/src/sdk/terraform.d.ts +6 -0
- package/src/sdk/terraform.js +7 -0
- package/src/sdk/terraform.js.map +1 -0
- package/src/sdk/ts.d.ts +33 -0
- package/src/sdk/ts.js +35 -0
- package/src/sdk/ts.js.map +1 -0
- package/{sdk → src/sdk}/utils/ast.d.ts +2 -2
- package/src/sdk/utils/ast.js +7 -0
- package/src/sdk/utils/ast.js.map +1 -0
- package/{sdk → src/sdk}/utils/format.d.ts +1 -1
- package/src/sdk/utils/format.js +6 -0
- package/src/sdk/utils/format.js.map +1 -0
- package/{sdk → src/sdk}/utils/test.d.ts +1 -1
- package/src/sdk/utils/test.js +6 -0
- package/src/sdk/utils/test.js.map +1 -0
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +2 -8
- package/src/smithy/project/files/build.Dockerfile.template +1 -4
- package/src/smithy/project/generator.js +44 -42
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/project/schema.d.js +6 -0
- package/src/smithy/project/schema.d.js.map +1 -0
- package/src/smithy/react-connection/generator.js +35 -46
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/react-connection/schema.d.js +6 -0
- package/src/smithy/react-connection/schema.d.js.map +1 -0
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +395 -72
- package/src/smithy/ts/api/generator.js +121 -111
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.js +6 -0
- package/src/smithy/ts/api/schema.d.js.map +1 -0
- package/src/terraform/project/files/application/src/providers.tf.template +1 -1
- package/src/terraform/project/generator.js +141 -103
- package/src/terraform/project/generator.js.map +1 -1
- package/src/terraform/project/schema.d.js +9 -0
- package/src/terraform/project/schema.d.js.map +1 -0
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +336 -92
- package/src/trpc/backend/generator.js +93 -86
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.js +6 -0
- package/src/trpc/backend/schema.d.js.map +1 -0
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/trpc/react/generator.js +59 -58
- package/src/trpc/react/generator.js.map +1 -1
- package/src/trpc/react/schema.d.js +6 -0
- package/src/trpc/react/schema.d.js.map +1 -0
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +11 -11
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/a2a-connection/generator.js +58 -54
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/a2a-connection/schema.d.js +8 -0
- package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +3 -3
- package/src/ts/agent/gateway-connection/generator.js +57 -52
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/gateway-connection/schema.d.js +6 -0
- package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/ts/agent/generator.js +165 -136
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/mcp-connection/generator.js +48 -46
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/schema.d.js +8 -0
- package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/ts/agent/react-connection/generator.js +79 -79
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
- package/src/ts/agent/react-connection/local-dev.js +17 -0
- package/src/ts/agent/react-connection/local-dev.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.js +8 -0
- package/src/ts/agent/react-connection/schema.d.js.map +1 -0
- package/src/ts/agent/schema.d.js +6 -0
- package/src/ts/agent/schema.d.js.map +1 -0
- package/src/ts/api/generator.js +16 -18
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.js +6 -0
- package/src/ts/api/schema.d.js.map +1 -0
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +8 -8
- package/src/ts/astro-docs/generator.js +59 -48
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/astro-docs/schema.d.js +6 -0
- package/src/ts/astro-docs/schema.d.js.map +1 -0
- package/src/ts/docs/generator.js +10 -10
- package/src/ts/docs/generator.js.map +1 -1
- package/src/ts/docs/schema.d.js +6 -0
- package/src/ts/docs/schema.d.js.map +1 -0
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +68 -30
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/agent-connection/generator.js +21 -23
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/files/config.json.template +1 -1
- package/src/ts/dynamodb/files/src/client.ts.template +7 -7
- package/src/ts/dynamodb/generator.js +64 -63
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/schema.d.js +6 -0
- package/src/ts/dynamodb/schema.d.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/lambda-function/generator.js +55 -55
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/io.js +83 -52
- package/src/ts/lambda-function/io.js.map +1 -1
- package/src/ts/lambda-function/schema.d.js +6 -0
- package/src/ts/lambda-function/schema.d.js.map +1 -0
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +23 -36
- package/src/ts/lib/biome.js +37 -37
- package/src/ts/lib/biome.js.map +1 -1
- package/src/ts/lib/generator.js +75 -77
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/schema.d.js +6 -0
- package/src/ts/lib/schema.d.js.map +1 -0
- package/src/ts/lib/ts-project-utils.js +65 -70
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/types.js +5 -2
- package/src/ts/lib/types.js.map +1 -1
- package/src/ts/lib/vitest.js +29 -26
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/mcp-server/generator.js +157 -138
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.js +6 -0
- package/src/ts/mcp-server/schema.d.js.map +1 -0
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +14 -9
- package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +4 -4
- package/src/ts/nx-generator/generator.js +84 -83
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-generator/schema.d.js +6 -0
- package/src/ts/nx-generator/schema.d.js.map +1 -0
- package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +30 -18
- package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
- package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
- package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
- package/src/ts/nx-plugin/generator.js +49 -48
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/schema.d.js +9 -0
- package/src/ts/nx-plugin/schema.d.js.map +1 -0
- package/src/ts/nx-plugin/utils.js +32 -44
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +34 -30
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/agent-connection/generator.js +38 -39
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/agent-connection/schema.d.js +8 -0
- package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/files/config.json.template +1 -1
- package/src/ts/rdb/files/prisma.config.ts.template +2 -2
- package/src/ts/rdb/files/src/prisma.ts.template +7 -7
- package/src/ts/rdb/files/src/utils.ts.template +3 -0
- package/src/ts/rdb/generator.js +130 -117
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/schema.d.js +6 -0
- package/src/ts/rdb/schema.d.js.map +1 -0
- package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/rdb/smithy-connection/generator.js +46 -43
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
- package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/rdb/trpc-connection/generator.js +36 -31
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
- package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/utils.js +9 -11
- package/src/ts/rdb/utils.js.map +1 -1
- package/src/ts/react-website/agui/generator.js +69 -61
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +179 -332
- package/src/ts/react-website/app/generator.js +197 -188
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.js +6 -0
- package/src/ts/react-website/app/schema.d.js.map +1 -0
- package/src/ts/react-website/app/schema.json +6 -6
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +118 -4
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +27 -7
- package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
- package/src/ts/react-website/cognito-auth/generator.js +60 -60
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
- package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
- package/src/ts/react-website/cognito-auth/utils.js +34 -32
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
- package/src/ts/react-website/runtime-config/generator.js +29 -31
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/react-website/runtime-config/schema.d.js +6 -0
- package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
- package/src/ts/sync/generator.js +60 -59
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.js +10 -10
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/app/schema.d.js +6 -0
- package/src/ts/website/app/schema.d.js.map +1 -0
- package/src/ts/website/app/schema.json +6 -6
- package/src/ts/website/auth/generator.js +11 -11
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/ts/website/auth/schema.d.js +6 -0
- package/src/ts/website/auth/schema.d.js.map +1 -0
- package/src/utils/agent-chat/agent-chat.d.ts +1 -1
- package/src/utils/agent-chat/agent-chat.js +11 -12
- package/src/utils/agent-chat/agent-chat.js.map +1 -1
- package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-py/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
- package/src/utils/agent-connection/agent-connection.d.ts +9 -3
- package/src/utils/agent-connection/agent-connection.js +133 -147
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +53 -50
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +5 -5
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +2 -2
- package/src/utils/api-constructs/api-constructs.js +30 -31
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +14 -6
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +28 -14
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +91 -4
- package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
- package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
- package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
- package/src/utils/api-constructs/open-api-metadata.js +22 -22
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.js +17 -19
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.js +72 -97
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.js +50 -47
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.js +47 -26
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/index.d.ts +2 -2
- package/src/utils/config/index.js +5 -4
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.js +48 -58
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.d.ts +5 -5
- package/src/utils/connection/open-api/react.js +81 -77
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.js +22 -23
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +32 -33
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +12 -2
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +2 -2
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +17 -2
- package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/{pull-image.ts.template → shared/pull-image.ts.template} +1 -1
- package/src/utils/files/common/scripts/src/rdb/{start-container.ts.template → shared/start-container.ts.template} +16 -1
- package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
- package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +3 -3
- package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +2 -2
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
- package/src/utils/format.js +153 -99
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.js +14 -13
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
- package/src/utils/function-constructs/function-constructs.js +21 -26
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.js +18 -20
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.js +19 -34
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac-providers.js +5 -5
- package/src/utils/iac-providers.js.map +1 -1
- package/src/utils/iac.js +12 -14
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +112 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +19 -6
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +104 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
- package/src/utils/identity-constructs/identity-constructs.js +24 -28
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/js.js +27 -20
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.js +34 -41
- package/src/utils/mcp.js.map +1 -1
- package/src/utils/metrics.js +30 -45
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +8 -12
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.d.ts +16 -0
- package/src/utils/names.js +39 -48
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.js +9 -17
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +18 -2
- package/src/utils/nx.js +111 -74
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.js +27 -15
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/object.js +5 -11
- package/src/utils/object.js.map +1 -1
- package/src/utils/paths.js +11 -15
- package/src/utils/paths.js.map +1 -1
- package/src/utils/pkg-manager.js +4 -9
- package/src/utils/pkg-manager.js.map +1 -1
- package/src/utils/pnpm-workspace.js +22 -22
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.js +26 -36
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.d.ts +14 -1
- package/src/utils/py.js +63 -45
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +3 -3
- package/src/utils/rdb-constructs/rdb-constructs.js +31 -33
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs-constants.js +16 -16
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.js +57 -54
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.js +16 -14
- package/src/utils/shared-dynamodb-scripts.js.map +1 -1
- package/src/utils/shared-infra-config.js +30 -31
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.js +30 -25
- package/src/utils/shared-infra-scripts.js.map +1 -1
- package/src/utils/shared-rdb-scripts.d.ts +8 -3
- package/src/utils/shared-rdb-scripts.js +21 -13
- package/src/utils/shared-rdb-scripts.js.map +1 -1
- package/src/utils/shared-scripts.js +12 -17
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +64 -60
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +8 -0
- package/src/utils/test.js +33 -25
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.js +7 -15
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +31 -4
- package/src/utils/versions.js +40 -23
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +4 -4
- package/src/utils/website-constructs/website-constructs.js +31 -30
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/bin/aws-nx-mcp.js +0 -17
- package/bin/aws-nx-mcp.js.map +0 -1
- package/sdk/agentcore-gateway.d.ts +0 -6
- package/sdk/agentcore-gateway.js +0 -11
- package/sdk/agentcore-gateway.js.map +0 -1
- package/sdk/connection.d.ts +0 -6
- package/sdk/connection.js +0 -10
- package/sdk/connection.js.map +0 -1
- package/sdk/license.js +0 -14
- package/sdk/license.js.map +0 -1
- package/sdk/open-api.d.ts +0 -10
- package/sdk/open-api.js +0 -15
- package/sdk/open-api.js.map +0 -1
- package/sdk/py.d.ts +0 -14
- package/sdk/py.js +0 -18
- package/sdk/py.js.map +0 -1
- package/sdk/terraform.d.ts +0 -6
- package/sdk/terraform.js +0 -11
- package/sdk/terraform.js.map +0 -1
- package/sdk/ts.d.ts +0 -33
- package/sdk/ts.js +0 -53
- package/sdk/ts.js.map +0 -1
- package/sdk/utils/ast.js +0 -12
- package/sdk/utils/ast.js.map +0 -1
- package/sdk/utils/format.js +0 -10
- package/sdk/utils/format.js.map +0 -1
- package/sdk/utils/test.js +0 -10
- package/sdk/utils/test.js.map +0 -1
- package/src/connection/agent-serve-local.js +0 -48
- package/src/connection/agent-serve-local.js.map +0 -1
- package/src/connection/serve-local.js +0 -41
- package/src/connection/serve-local.js.map +0 -1
- package/src/py/agent/react-connection/serve-local.js +0 -38
- package/src/py/agent/react-connection/serve-local.js.map +0 -1
- package/src/ts/agent/react-connection/serve-local.js +0 -19
- package/src/ts/agent/react-connection/serve-local.js.map +0 -1
- package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +0 -59
- /package/src/agentcore-gateway/files/project/{serve-local.ts.template → local-dev.ts.template} +0 -0
- /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/agent/gateway-connection/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/py/agent/gateway-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n installPackagesTask,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { readAgentCoreGatewayMetadata } from '../../../agentcore-gateway/generator';\nimport {\n addPythonCoreClient,\n addPythonReExport,\n ensurePythonAgentConnectionProject,\n getPythonAgentConnectionModuleName,\n getPythonAgentConnectionProject,\n getPythonAgentConnectionProjectDir,\n PY_MCP_FAMILY_CONNECTIONS,\n resolveAgentFramework,\n} from '../../../utils/agent-connection/agent-connection';\nimport { addPythonDestructuredImport } from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport { snakeCase } from '../../../utils/names';\nimport {\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport {\n addDependenciesToPyProjectToml,\n addWorkspaceDependencyToPyProject,\n} from '../../../utils/py';\nimport type { PyAgentGatewayConnectionGeneratorSchema } from './schema';\n\nexport const PY_AGENT_GATEWAY_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const pyAgentGatewayConnectionGenerator = async (\n tree: Tree,\n options: PyAgentGatewayConnectionGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n const agentComponent = options.sourceComponent;\n if (!agentComponent) {\n throw new Error(\n 'sourceComponent must be provided for py#agent -> agentcore-gateway connections',\n );\n }\n const gateway = readAgentCoreGatewayMetadata(targetProject);\n\n if (gateway.protocol !== 'mcp') {\n throw new Error(\n `Gateway '${gateway.name}' has protocol='${gateway.protocol}'. Only MCP-protocol gateways are supported.`,\n );\n }\n if (gateway.auth !== 'iam') {\n throw new Error(\n `Gateway '${gateway.name}' uses auth='${gateway.auth}'. Only IAM-authenticated gateways are supported in v1.`,\n );\n }\n if (agentComponent.auth && agentComponent.auth !== 'iam') {\n throw new Error(\n `Agent '${agentComponent.name}' uses auth='${agentComponent.auth}'. Only IAM-authenticated agents can connect to IAM gateways.`,\n );\n }\n\n const gatewayClassName = gateway.rc;\n const gatewaySnakeCase = snakeCase(gatewayClassName);\n // A gateway is its own standalone project, so it exposes plain serve / dev.\n const gatewayServeTargetName = 'serve';\n const gatewayDevTargetName = 'dev';\n\n // The source agent's framework selects the client shape, dependencies and the\n // agent.py transform — see PY_MCP_FAMILY_CONNECTIONS (keyed by framework, not a\n // boolean, so a third framework is an additive entry there). A Gateway exposes\n // its tools over MCP, so it reuses the same wiring as an MCP server connection.\n const framework = resolveAgentFramework(agentComponent.framework);\n const connection = PY_MCP_FAMILY_CONNECTIONS[framework];\n\n await ensurePythonAgentConnectionProject(tree);\n await addPythonCoreClient(tree, 'gateway', framework);\n\n const agentConnectionProjectDir = getPythonAgentConnectionProjectDir(tree);\n const agentConnectionModuleName = getPythonAgentConnectionModuleName(tree);\n\n // Shared MCP transport + signed httpx auth deps, plus whatever extra deps the\n // framework's MCP client needs (e.g. langchain-mcp-adapters for LangChain).\n addDependenciesToPyProjectToml(tree, agentConnectionProjectDir, [\n 'boto3',\n 'httpx',\n 'mcp',\n ...connection.deps,\n ]);\n\n const appDir = joinPathFragments(\n agentConnectionProjectDir,\n agentConnectionModuleName,\n 'app',\n );\n // Local mode points at the gateway project's local gateway port.\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n connection.appTemplateSubdir,\n ),\n appDir,\n {\n gatewaySnakeCase,\n gatewayClassName,\n agentConnectionModuleName,\n gatewayPort: gateway.port,\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n const appInitPath = joinPathFragments(appDir, '__init__.py');\n if (!tree.exists(appInitPath)) {\n tree.write(appInitPath, '');\n }\n\n const moduleInitPath = joinPathFragments(\n agentConnectionProjectDir,\n agentConnectionModuleName,\n '__init__.py',\n );\n await addPythonReExport(\n tree,\n moduleInitPath,\n `.app.${gatewaySnakeCase}_client_${connection.clientModuleSuffix}`,\n `${gatewayClassName}Client${connection.clientClassSuffix}`,\n );\n\n const agentSourceDir = joinPathFragments(\n sourceProject.root,\n agentComponent.path ?? 'src',\n );\n const agentFilePath = joinPathFragments(agentSourceDir, 'agent.py');\n\n if (tree.exists(agentFilePath)) {\n const clientClassName = `${gatewayClassName}Client${connection.clientClassSuffix}`;\n const clientVarName = gatewaySnakeCase;\n\n await addPythonDestructuredImport(\n tree,\n agentFilePath,\n [clientClassName],\n agentConnectionModuleName,\n );\n await connection.wireClientIntoAgent(\n tree,\n agentFilePath,\n clientClassName,\n clientVarName,\n );\n }\n\n addWorkspaceDependencyToPyProject(\n tree,\n sourceProject,\n getPythonAgentConnectionProject(tree),\n );\n\n const agentName = agentComponent.name ?? 'agent';\n const serveTargetName = `${agentName}-serve`;\n const devTargetName = `${agentName}-dev`;\n let projectConfigChanged = false;\n if (sourceProject.targets?.[serveTargetName]) {\n addDependencyToTargetIfNotPresent(sourceProject, serveTargetName, {\n projects: [targetProject.name],\n target: gatewayServeTargetName,\n });\n projectConfigChanged = true;\n }\n if (sourceProject.targets?.[devTargetName]) {\n addDependencyToTargetIfNotPresent(sourceProject, devTargetName, {\n projects: [targetProject.name],\n target: gatewayDevTargetName,\n });\n projectConfigChanged = true;\n }\n if (projectConfigChanged) {\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n await addGeneratorMetricsIfApplicable(tree, [\n PY_AGENT_GATEWAY_CONNECTION_GENERATOR_INFO,\n ]);\n\n await formatFilesInSubtree(tree);\n return () => {\n installPackagesTask(tree);\n };\n};\n\nexport default pyAgentGatewayConnectionGenerator;\n"],"names":["generateFiles","installPackagesTask","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","readAgentCoreGatewayMetadata","addPythonCoreClient","addPythonReExport","ensurePythonAgentConnectionProject","getPythonAgentConnectionModuleName","getPythonAgentConnectionProject","getPythonAgentConnectionProjectDir","PY_MCP_FAMILY_CONNECTIONS","resolveAgentFramework","addPythonDestructuredImport","formatFilesInSubtree","addGeneratorMetricsIfApplicable","snakeCase","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","addDependenciesToPyProjectToml","addWorkspaceDependencyToPyProject","PY_AGENT_GATEWAY_CONNECTION_GENERATOR_INFO","filename","pyAgentGatewayConnectionGenerator","tree","options","sourceProject","targetProject","agentComponent","sourceComponent","Error","gateway","protocol","name","auth","gatewayClassName","rc","gatewaySnakeCase","gatewayServeTargetName","gatewayDevTargetName","framework","connection","agentConnectionProjectDir","agentConnectionModuleName","deps","appDir","dirname","appTemplateSubdir","gatewayPort","port","overwriteStrategy","KeepExisting","appInitPath","exists","write","moduleInitPath","clientModuleSuffix","clientClassSuffix","agentSourceDir","root","path","agentFilePath","clientClassName","clientVarName","wireClientIntoAgent","agentName","serveTargetName","devTargetName","projectConfigChanged","targets","projects","target"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/py/agent/gateway-connection/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { ComponentMetadata } from '../../../utils/nx';\n\nexport interface PyAgentGatewayConnectionGeneratorSchema {\n sourceProject: string;\n targetProject: string;\n sourceComponent?: ComponentMetadata;\n targetComponent?: ComponentMetadata;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD,WAKC"}
|
|
@@ -1,37 +1,33 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pyAgentGenerator = exports.PY_AGENT_GENERATOR_INFO = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const pyProjectPath = (0, devkit_1.joinPathFragments)(project.root, 'pyproject.toml');
|
|
4
|
+
*/ import { addDependenciesToPackageJson, generateFiles, installPackagesTask, joinPathFragments, OverwriteStrategy, updateProjectConfiguration } from "@nx/devkit";
|
|
5
|
+
import { ensureLicenseExceptions } from "../../license/config.js";
|
|
6
|
+
import { AG_UI_LANGGRAPH_EXCEPTIONS } from "../../license/known-exceptions.js";
|
|
7
|
+
import { addAgentChatScripts } from "../../utils/agent-chat/agent-chat.js";
|
|
8
|
+
import { addPythonFrameworkBase, ensurePythonAgentConnectionProject, getPythonAgentConnectionModuleName, getPythonAgentConnectionProject } from "../../utils/agent-connection/agent-connection.js";
|
|
9
|
+
import { addAgentInfra } from "../../utils/agent-core-constructs/agent-core-constructs.js";
|
|
10
|
+
import { addPythonBundleTarget } from "../../utils/bundle/bundle.js";
|
|
11
|
+
import { resolveContainers } from "../../utils/containers.js";
|
|
12
|
+
import { formatFilesInSubtree } from "../../utils/format.js";
|
|
13
|
+
import { FsCommands } from "../../utils/fs.js";
|
|
14
|
+
import { updateGitIgnore } from "../../utils/git.js";
|
|
15
|
+
import { resolveIac } from "../../utils/iac.js";
|
|
16
|
+
import { addGeneratorMetricsIfApplicable } from "../../utils/metrics.js";
|
|
17
|
+
import { kebabCase, toClassName, toSnakeCase } from "../../utils/names.js";
|
|
18
|
+
import { getNpmScope } from "../../utils/npm-scope.js";
|
|
19
|
+
import { addComponentDevTarget, addComponentGeneratorMetadata, addDependencyToTargetIfNotPresent, getGeneratorInfo, normalizeTargetKeyOrder, readProjectConfigurationUnqualified } from "../../utils/nx.js";
|
|
20
|
+
import { Logger, UVProvider } from "../../utils/nxlv-python.js";
|
|
21
|
+
import { sortObjectKeys } from "../../utils/object.js";
|
|
22
|
+
import { toProjectRelativePath } from "../../utils/paths.js";
|
|
23
|
+
import { assignPort } from "../../utils/port.js";
|
|
24
|
+
import { addDependenciesToDependencyGroupInPyProjectToml, addDependenciesToPyProjectToml, addWorkspaceDependencyToPyProject } from "../../utils/py.js";
|
|
25
|
+
import { sharedConstructsGenerator } from "../../utils/shared-constructs.js";
|
|
26
|
+
import { withVersions } from "../../utils/versions.js";
|
|
27
|
+
export const PY_AGENT_GENERATOR_INFO = getGeneratorInfo(import.meta.filename);
|
|
28
|
+
export const pyAgentGenerator = async (tree, options)=>{
|
|
29
|
+
const project = readProjectConfigurationUnqualified(tree, options.project);
|
|
30
|
+
const pyProjectPath = joinPathFragments(project.root, 'pyproject.toml');
|
|
35
31
|
// Check if the project has a pyproject.toml file
|
|
36
32
|
if (!pyProjectPath) {
|
|
37
33
|
throw new Error(`Unsupported project ${options.project}. Expected a Python project (with a pyproject.toml)`);
|
|
@@ -42,11 +38,11 @@ const pyAgentGenerator = async (tree, options) => {
|
|
|
42
38
|
// Module name is the last part of the source root,
|
|
43
39
|
const sourceParts = project.sourceRoot.split('/');
|
|
44
40
|
const moduleName = sourceParts[sourceParts.length - 1];
|
|
45
|
-
const name =
|
|
41
|
+
const name = kebabCase(options.name || `${kebabCase(project.name.split('.').pop())}-agent`);
|
|
46
42
|
const agentTargetPrefix = options.name ? name : 'agent';
|
|
47
|
-
const agentNameSnakeCase =
|
|
48
|
-
const agentNameClassName =
|
|
49
|
-
const targetSourceDir =
|
|
43
|
+
const agentNameSnakeCase = toSnakeCase(options.name || 'agent');
|
|
44
|
+
const agentNameClassName = toClassName(name);
|
|
45
|
+
const targetSourceDir = joinPathFragments(project.sourceRoot, agentNameSnakeCase);
|
|
50
46
|
const infra = options.infra ?? 'agentcore';
|
|
51
47
|
const protocol = options.protocol ?? 'http';
|
|
52
48
|
const framework = options.framework ?? 'strands';
|
|
@@ -58,32 +54,35 @@ const pyAgentGenerator = async (tree, options) => {
|
|
|
58
54
|
// point can import `session_id_context` and propagate the AgentCore
|
|
59
55
|
// session ID to any downstream MCP / A2A clients a later connection
|
|
60
56
|
// generator wires into this agent.
|
|
61
|
-
await
|
|
57
|
+
await ensurePythonAgentConnectionProject(tree);
|
|
62
58
|
// The agent server imports the framework base helpers (session cache + model
|
|
63
59
|
// error logging) regardless of whether a connection client is wired in. The
|
|
64
60
|
// langchain framework has no base layer (its AG-UI foundation reuses only the
|
|
65
61
|
// framework-agnostic session context), so this is a no-op for langchain.
|
|
66
|
-
await
|
|
67
|
-
const agentConnectionModuleName =
|
|
68
|
-
|
|
69
|
-
(0, py_1.addWorkspaceDependencyToPyProject)(tree, project.root, agentConnectionPackageName);
|
|
62
|
+
await addPythonFrameworkBase(tree, framework);
|
|
63
|
+
const agentConnectionModuleName = getPythonAgentConnectionModuleName(tree);
|
|
64
|
+
addWorkspaceDependencyToPyProject(tree, project, getPythonAgentConnectionProject(tree));
|
|
70
65
|
const templateContext = {
|
|
71
66
|
name,
|
|
72
67
|
agentNameSnakeCase,
|
|
73
68
|
agentNameClassName,
|
|
74
69
|
moduleName,
|
|
75
70
|
agentConnectionModuleName,
|
|
76
|
-
framework
|
|
71
|
+
framework
|
|
77
72
|
};
|
|
78
73
|
// Generate common files shared by both protocols. The agent module (agent.py)
|
|
79
74
|
// is framework-specific (Strands yields a contextmanaged Agent; LangChain
|
|
80
75
|
// returns a compiled create_agent graph), so it comes from a per-framework
|
|
81
76
|
// dir. The package __init__.py is framework-agnostic (it stays in `common`).
|
|
82
|
-
|
|
77
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', framework === 'langchain' ? 'common-langchain' : 'common'), targetSourceDir, templateContext, {
|
|
78
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
79
|
+
});
|
|
83
80
|
if (framework === 'langchain') {
|
|
84
81
|
// common-langchain only carries agent.py; the empty package __init__.py is
|
|
85
82
|
// framework-agnostic, so emit it from the shared `common` dir.
|
|
86
|
-
|
|
83
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'common'), targetSourceDir, templateContext, {
|
|
84
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
85
|
+
});
|
|
87
86
|
}
|
|
88
87
|
// Generate protocol-specific files. Each protocol's server entry point is
|
|
89
88
|
// framework-specific (Strands yields a contextmanaged Agent; LangChain drives
|
|
@@ -91,70 +90,76 @@ const pyAgentGenerator = async (tree, options) => {
|
|
|
91
90
|
// `<protocol>-langchain` for LangChain, or `<protocol>` for Strands.
|
|
92
91
|
const protocolLower = protocol.toLowerCase();
|
|
93
92
|
const protocolTemplateDir = framework === 'langchain' ? `${protocolLower}-langchain` : protocolLower;
|
|
94
|
-
|
|
93
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', protocolTemplateDir), targetSourceDir, templateContext, {
|
|
94
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
95
|
+
});
|
|
95
96
|
// The HTTP server's init.py (the FastAPI app + JsonStreamingResponse) is
|
|
96
97
|
// framework-agnostic and the LangChain http main.py reuses it, so emit it
|
|
97
98
|
// from the shared `http` dir. Emitted after the langchain main.py above so
|
|
98
99
|
// KeepExisting preserves that main.py and only adds init.py (the shared dir's
|
|
99
100
|
// own Strands main.py is skipped).
|
|
100
101
|
if (protocolLower === 'http' && framework === 'langchain') {
|
|
101
|
-
|
|
102
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'http'), targetSourceDir, templateContext, {
|
|
103
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
104
|
+
});
|
|
102
105
|
}
|
|
103
|
-
|
|
106
|
+
addDependenciesToPyProjectToml(tree, project.root, [
|
|
104
107
|
'aws-lambda-powertools',
|
|
105
108
|
'aws-opentelemetry-distro',
|
|
106
109
|
'bedrock-agentcore',
|
|
107
110
|
'boto3',
|
|
108
111
|
'fastapi',
|
|
109
112
|
'mcp',
|
|
110
|
-
...
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
'uvicorn'
|
|
113
|
+
...framework === 'langchain' ? // (langchain, langchain-aws, langgraph) plus the per-protocol server
|
|
114
|
+
// adapter: ag-ui-langgraph for AG-UI, a2a-sdk for A2A, nothing extra for
|
|
115
|
+
// HTTP (FastAPI is added above for every agent).
|
|
116
|
+
[
|
|
117
|
+
'langchain',
|
|
118
|
+
'langchain-aws',
|
|
119
|
+
'langgraph',
|
|
120
|
+
...protocol === 'ag-ui' ? [
|
|
121
|
+
'ag-ui-protocol',
|
|
122
|
+
'ag-ui-langgraph'
|
|
123
|
+
] : protocol === 'a2a' ? [
|
|
124
|
+
'a2a-sdk'
|
|
125
|
+
] : []
|
|
126
|
+
] : protocol === 'a2a' ? [
|
|
127
|
+
'strands-agents[a2a]',
|
|
128
|
+
'strands-agents-tools'
|
|
129
|
+
] : protocol === 'ag-ui' ? [
|
|
130
|
+
'strands-agents',
|
|
131
|
+
'strands-agents-tools',
|
|
132
|
+
'ag-ui-protocol',
|
|
133
|
+
'ag-ui-strands'
|
|
134
|
+
] : [
|
|
135
|
+
'strands-agents',
|
|
136
|
+
'strands-agents-tools'
|
|
137
|
+
],
|
|
138
|
+
'uvicorn'
|
|
136
139
|
]);
|
|
137
|
-
|
|
138
|
-
'fastapi[standard]'
|
|
140
|
+
addDependenciesToDependencyGroupInPyProjectToml(tree, project.root, 'dev', [
|
|
141
|
+
'fastapi[standard]'
|
|
139
142
|
]);
|
|
140
143
|
if (infra === 'agentcore') {
|
|
141
|
-
const containers = await
|
|
142
|
-
const dockerImageTag = `${
|
|
144
|
+
const containers = await resolveContainers(tree, 'inherit');
|
|
145
|
+
const dockerImageTag = `${getNpmScope(tree)}-${name}:latest`;
|
|
143
146
|
// Add bundle target
|
|
144
|
-
const { bundleTargetName, bundleOutputDir } =
|
|
145
|
-
pythonPlatform: 'aarch64-manylinux_2_28'
|
|
147
|
+
const { bundleTargetName, bundleOutputDir } = addPythonBundleTarget(project, {
|
|
148
|
+
pythonPlatform: 'aarch64-manylinux_2_28'
|
|
146
149
|
});
|
|
147
150
|
// Add the Dockerfile
|
|
148
|
-
|
|
151
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'deploy'), targetSourceDir, {
|
|
149
152
|
agentNameSnakeCase,
|
|
150
153
|
moduleName,
|
|
151
154
|
bundleOutputDir,
|
|
152
|
-
protocol
|
|
153
|
-
}, {
|
|
154
|
-
|
|
155
|
+
protocol
|
|
156
|
+
}, {
|
|
157
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
158
|
+
});
|
|
159
|
+
const dockerOutputDir = joinPathFragments('dist', project.root, 'docker', name);
|
|
155
160
|
const dockerTargetName = `${agentTargetPrefix}-docker`;
|
|
156
161
|
// Add a docker target that prepares the docker context and builds the image
|
|
157
|
-
const fs = new
|
|
162
|
+
const fs = new FsCommands(tree);
|
|
158
163
|
project.targets[dockerTargetName] = {
|
|
159
164
|
cache: true,
|
|
160
165
|
executor: 'nx:run-commands',
|
|
@@ -164,21 +169,25 @@ const pyAgentGenerator = async (tree, options) => {
|
|
|
164
169
|
fs.mkdir(dockerOutputDir),
|
|
165
170
|
fs.cp(bundleOutputDir, dockerOutputDir),
|
|
166
171
|
fs.cp(`${targetSourceDir}/Dockerfile`, `${dockerOutputDir}/Dockerfile`),
|
|
167
|
-
`${containers} build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}
|
|
172
|
+
`${containers} build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}`
|
|
168
173
|
],
|
|
169
|
-
parallel: false
|
|
174
|
+
parallel: false
|
|
170
175
|
},
|
|
171
|
-
dependsOn: [
|
|
176
|
+
dependsOn: [
|
|
177
|
+
bundleTargetName
|
|
178
|
+
]
|
|
172
179
|
};
|
|
173
|
-
|
|
174
|
-
|
|
180
|
+
addDependencyToTargetIfNotPresent(project, 'docker', dockerTargetName);
|
|
181
|
+
addDependencyToTargetIfNotPresent(project, 'build', 'docker');
|
|
175
182
|
// Add shared constructs
|
|
176
|
-
const iac = await
|
|
177
|
-
await
|
|
183
|
+
const iac = await resolveIac(tree, options.iac);
|
|
184
|
+
await sharedConstructsGenerator(tree, {
|
|
185
|
+
iac
|
|
186
|
+
});
|
|
178
187
|
// Add the construct to deploy the agent.
|
|
179
188
|
// AG-UI uses HTTP as the AgentCore protocol type (AG-UI is HTTP-based with SSE over POST).
|
|
180
189
|
const infraProtocol = protocol === 'ag-ui' ? 'http' : protocol;
|
|
181
|
-
await
|
|
190
|
+
await addAgentInfra(tree, {
|
|
182
191
|
agentNameKebabCase: name,
|
|
183
192
|
agentNameClassName,
|
|
184
193
|
dockerImageTag,
|
|
@@ -187,14 +196,17 @@ const pyAgentGenerator = async (tree, options) => {
|
|
|
187
196
|
projectName: project.name,
|
|
188
197
|
auth,
|
|
189
198
|
serverProtocol: infraProtocol,
|
|
190
|
-
containers
|
|
199
|
+
containers
|
|
191
200
|
});
|
|
192
201
|
}
|
|
193
202
|
// A2A servers use port 9000 as per the Strands A2A SDK default and AgentCore A2A contract.
|
|
194
203
|
// HTTP and AG-UI agents use port 8081+ to avoid conflict with VS Code server on 8080.
|
|
195
204
|
const localDevPortStart = protocol === 'a2a' ? 9000 : 8081;
|
|
196
|
-
const localDevPort =
|
|
197
|
-
component: {
|
|
205
|
+
const localDevPort = assignPort(tree, project, localDevPortStart, {
|
|
206
|
+
component: {
|
|
207
|
+
info: PY_AGENT_GENERATOR_INFO,
|
|
208
|
+
name: agentTargetPrefix
|
|
209
|
+
}
|
|
198
210
|
});
|
|
199
211
|
// All protocols use fastapi dev for hot reload:
|
|
200
212
|
// - HTTP: FastAPI app directly defined in init.py
|
|
@@ -207,146 +219,167 @@ const pyAgentGenerator = async (tree, options) => {
|
|
|
207
219
|
// we can run `agent-chat-cli` directly as a binary.
|
|
208
220
|
const openApiTargetName = `${agentTargetPrefix}-openapi`;
|
|
209
221
|
const clientGenTargetName = `${agentTargetPrefix}-generate-client`;
|
|
210
|
-
const scriptsDir =
|
|
222
|
+
const scriptsDir = joinPathFragments(project.root, 'scripts', agentTargetPrefix);
|
|
211
223
|
if (protocol === 'http') {
|
|
212
224
|
// Emit the OpenAPI spec generator script (shared with react-connection)
|
|
213
|
-
|
|
225
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'react-connection', 'files', 'agent'), project.root, {
|
|
214
226
|
moduleName,
|
|
215
|
-
agentNameSnakeCase
|
|
216
|
-
}, {
|
|
227
|
+
agentNameSnakeCase
|
|
228
|
+
}, {
|
|
229
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
230
|
+
});
|
|
217
231
|
// Ignore the generated client directory
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
232
|
+
updateGitIgnore(tree, project.root, (patterns)=>[
|
|
233
|
+
...patterns,
|
|
234
|
+
`scripts/${agentTargetPrefix}/generated/`
|
|
235
|
+
]);
|
|
222
236
|
}
|
|
223
237
|
// Every protocol gets a standalone `chat.ts`. It connects to the local
|
|
224
|
-
// `
|
|
238
|
+
// `dev` server by default, or to the deployed agent (with the
|
|
225
239
|
// appropriate auth) when `RUNTIME_CONFIG_APP_ID` is set.
|
|
226
|
-
|
|
240
|
+
addAgentChatScripts(tree, {
|
|
227
241
|
scriptsDir,
|
|
228
242
|
protocol,
|
|
229
243
|
language: 'py',
|
|
230
244
|
agentNameClassName,
|
|
231
|
-
auth
|
|
245
|
+
auth
|
|
232
246
|
});
|
|
233
247
|
// TypeScript deps for the chat CLI, which runs standalone via tsx for every
|
|
234
248
|
// protocol and resolves the deployed agent from AppConfig. `agent-chat-cli`
|
|
235
249
|
// transitively bundles the protocol clients (@a2a-js/sdk, @ag-ui/client).
|
|
236
|
-
|
|
250
|
+
addDependenciesToPackageJson(tree, {}, withVersions([
|
|
237
251
|
'agent-chat-cli',
|
|
238
252
|
'tsx',
|
|
239
253
|
'@types/node',
|
|
240
254
|
'@aws-lambda-powertools/parameters',
|
|
241
255
|
'@aws-sdk/client-appconfigdata',
|
|
242
|
-
...
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
256
|
+
...auth === 'iam' ? [
|
|
257
|
+
'aws4fetch',
|
|
258
|
+
'@aws-sdk/credential-providers'
|
|
259
|
+
] : [],
|
|
260
|
+
...protocol === 'a2a' ? [
|
|
261
|
+
'@a2a-js/sdk'
|
|
262
|
+
] : []
|
|
246
263
|
]));
|
|
247
|
-
const chatUrl = protocol === 'ag-ui'
|
|
248
|
-
? `http://localhost:${localDevPort}/invocations`
|
|
249
|
-
: `http://localhost:${localDevPort}`;
|
|
264
|
+
const chatUrl = protocol === 'ag-ui' ? `http://localhost:${localDevPort}/invocations` : `http://localhost:${localDevPort}`;
|
|
250
265
|
const chatCommand = `tsx ./scripts/${agentTargetPrefix}/chat.ts`;
|
|
251
|
-
const httpOnlyTargets = protocol === 'http'
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
266
|
+
const httpOnlyTargets = protocol === 'http' ? {
|
|
267
|
+
[openApiTargetName]: {
|
|
268
|
+
cache: true,
|
|
269
|
+
executor: 'nx:run-commands',
|
|
270
|
+
outputs: [
|
|
271
|
+
`{workspaceRoot}/dist/{projectRoot}/openapi/${agentNameSnakeCase}`
|
|
272
|
+
],
|
|
273
|
+
options: {
|
|
274
|
+
commands: [
|
|
275
|
+
`uv run python {projectRoot}/scripts/${agentNameSnakeCase}_openapi.py "dist/{projectRoot}/openapi/${agentNameSnakeCase}/openapi.json"`
|
|
276
|
+
]
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
[clientGenTargetName]: {
|
|
280
|
+
cache: true,
|
|
281
|
+
executor: 'nx:run-commands',
|
|
282
|
+
dependsOn: [
|
|
283
|
+
openApiTargetName
|
|
284
|
+
],
|
|
285
|
+
inputs: [
|
|
286
|
+
{
|
|
287
|
+
dependentTasksOutputFiles: '**/*.json'
|
|
288
|
+
}
|
|
289
|
+
],
|
|
290
|
+
outputs: [
|
|
291
|
+
`{projectRoot}/scripts/${agentTargetPrefix}/generated`
|
|
292
|
+
],
|
|
293
|
+
options: {
|
|
294
|
+
commands: [
|
|
295
|
+
`nx g @aws/nx-plugin:open-api#ts-client --openApiSpecPath="dist/${project.root}/openapi/${agentNameSnakeCase}/openapi.json" --outputPath="${project.root}/scripts/${agentTargetPrefix}/generated" --no-interactive`
|
|
296
|
+
]
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
} : {};
|
|
300
|
+
const agentTargets = {
|
|
301
|
+
...project.targets,
|
|
302
|
+
...httpOnlyTargets,
|
|
303
|
+
[`${agentTargetPrefix}-serve`]: {
|
|
304
|
+
executor: 'nx:run-commands',
|
|
305
|
+
continuous: true,
|
|
306
|
+
options: {
|
|
307
|
+
commands: [
|
|
308
|
+
serveCommand
|
|
258
309
|
],
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
310
|
+
cwd: '{projectRoot}',
|
|
311
|
+
env: {
|
|
312
|
+
PORT: `${localDevPort}`
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
[`${agentTargetPrefix}-dev`]: {
|
|
317
|
+
executor: 'nx:run-commands',
|
|
318
|
+
continuous: true,
|
|
319
|
+
options: {
|
|
320
|
+
commands: [
|
|
321
|
+
serveCommand
|
|
322
|
+
],
|
|
323
|
+
cwd: '{projectRoot}',
|
|
324
|
+
env: {
|
|
325
|
+
PORT: `${localDevPort}`,
|
|
326
|
+
LOCAL_DEV: 'true'
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
// HTTP chat imports the generated client, so ensure it's built first.
|
|
331
|
+
// No dev dependency — chat runs standalone against a local or
|
|
332
|
+
// deployed agent. normalizeTargetKeyOrder keeps the conditional dependsOn
|
|
333
|
+
// in Nx 23's serialization order so re-runs stay byte-identical.
|
|
334
|
+
[`${agentTargetPrefix}-chat`]: normalizeTargetKeyOrder({
|
|
335
|
+
executor: 'nx:run-commands',
|
|
336
|
+
options: {
|
|
337
|
+
commands: [
|
|
338
|
+
chatCommand
|
|
272
339
|
],
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
],
|
|
278
|
-
},
|
|
279
|
-
dependsOn: [openApiTargetName],
|
|
340
|
+
cwd: '{projectRoot}',
|
|
341
|
+
env: {
|
|
342
|
+
URL: chatUrl
|
|
343
|
+
}
|
|
280
344
|
},
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
345
|
+
...protocol === 'http' ? {
|
|
346
|
+
dependsOn: [
|
|
347
|
+
clientGenTargetName
|
|
348
|
+
]
|
|
349
|
+
} : {}
|
|
350
|
+
})
|
|
351
|
+
};
|
|
352
|
+
// Aggregate `<agent>-dev` under the project-level `dev` target.
|
|
353
|
+
addComponentDevTarget(agentTargets, `${agentTargetPrefix}-dev`);
|
|
354
|
+
updateProjectConfiguration(tree, project.name, {
|
|
284
355
|
...project,
|
|
285
|
-
targets: (
|
|
286
|
-
...project.targets,
|
|
287
|
-
...httpOnlyTargets,
|
|
288
|
-
[`${agentTargetPrefix}-serve`]: {
|
|
289
|
-
executor: 'nx:run-commands',
|
|
290
|
-
options: {
|
|
291
|
-
commands: [serveCommand],
|
|
292
|
-
cwd: '{projectRoot}',
|
|
293
|
-
env: {
|
|
294
|
-
PORT: `${localDevPort}`,
|
|
295
|
-
},
|
|
296
|
-
},
|
|
297
|
-
continuous: true,
|
|
298
|
-
},
|
|
299
|
-
[`${agentTargetPrefix}-serve-local`]: {
|
|
300
|
-
executor: 'nx:run-commands',
|
|
301
|
-
options: {
|
|
302
|
-
commands: [serveCommand],
|
|
303
|
-
cwd: '{projectRoot}',
|
|
304
|
-
env: {
|
|
305
|
-
PORT: `${localDevPort}`,
|
|
306
|
-
SERVE_LOCAL: 'true',
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
continuous: true,
|
|
310
|
-
},
|
|
311
|
-
[`${agentTargetPrefix}-chat`]: {
|
|
312
|
-
executor: 'nx:run-commands',
|
|
313
|
-
options: {
|
|
314
|
-
commands: [chatCommand],
|
|
315
|
-
cwd: '{projectRoot}',
|
|
316
|
-
env: {
|
|
317
|
-
URL: chatUrl,
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
// HTTP chat imports the generated client, so ensure it's built first.
|
|
321
|
-
// No serve-local dependency — chat runs standalone against a local or
|
|
322
|
-
// deployed agent.
|
|
323
|
-
...(protocol === 'http' ? { dependsOn: [clientGenTargetName] } : {}),
|
|
324
|
-
},
|
|
325
|
-
}),
|
|
356
|
+
targets: sortObjectKeys(agentTargets)
|
|
326
357
|
});
|
|
327
|
-
|
|
358
|
+
addComponentGeneratorMetadata(tree, project.name, PY_AGENT_GENERATOR_INFO, toProjectRelativePath(project, targetSourceDir), agentTargetPrefix, {
|
|
328
359
|
port: localDevPort,
|
|
329
360
|
rc: agentNameClassName,
|
|
330
361
|
auth,
|
|
331
362
|
protocol,
|
|
332
363
|
// The mcp / gateway connection generators dispatch on this field to pick
|
|
333
364
|
// the Strands vs LangChain Layer-2 client + agent.py transform.
|
|
334
|
-
framework
|
|
365
|
+
framework
|
|
335
366
|
});
|
|
336
|
-
await
|
|
367
|
+
await addGeneratorMetricsIfApplicable(tree, [
|
|
368
|
+
PY_AGENT_GENERATOR_INFO
|
|
369
|
+
]);
|
|
337
370
|
// langchain-core (pulled by every langchain agent regardless of protocol)
|
|
338
371
|
// brings jsonpatch/jsonpointer, whose wheels ship without resolvable SPDX
|
|
339
372
|
// license metadata, so register those exceptions so the workspace license
|
|
340
373
|
// check still passes.
|
|
341
374
|
if (framework === 'langchain') {
|
|
342
|
-
await
|
|
375
|
+
await ensureLicenseExceptions(tree, AG_UI_LANGGRAPH_EXCEPTIONS);
|
|
343
376
|
}
|
|
344
|
-
await
|
|
345
|
-
return async ()
|
|
346
|
-
|
|
347
|
-
await new
|
|
377
|
+
await formatFilesInSubtree(tree);
|
|
378
|
+
return async ()=>{
|
|
379
|
+
installPackagesTask(tree);
|
|
380
|
+
await new UVProvider(tree.root, new Logger(), tree).install();
|
|
348
381
|
};
|
|
349
382
|
};
|
|
350
|
-
|
|
351
|
-
|
|
383
|
+
export default pyAgentGenerator;
|
|
384
|
+
|
|
352
385
|
//# sourceMappingURL=generator.js.map
|