@aws/nx-plugin 1.0.0-rc.0 → 1.0.0-rc.10
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 +3399 -4104
- package/README.md +8 -8
- package/executors.json +9 -0
- package/generators.json +44 -5
- package/package.json +16 -12
- package/sdk/license.d.ts +8 -0
- package/sdk/license.js +13 -0
- package/sdk/license.js.map +1 -0
- package/src/connection/agent-runtime-config.d.ts +1 -1
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/agent-serve-local.d.ts +2 -2
- package/src/connection/agent-serve-local.js +1 -1
- package/src/connection/agent-serve-local.js.map +1 -1
- package/src/connection/generator.d.ts +5 -5
- package/src/connection/generator.js +58 -39
- package/src/connection/generator.js.map +1 -1
- package/src/connection/serve-local.d.ts +1 -1
- package/src/connection/serve-local.js +1 -1
- package/src/connection/serve-local.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +49 -60
- package/src/infra/app/files/app/src/main.ts.template +2 -2
- package/src/infra/app/generator.d.ts +3 -3
- package/src/infra/app/generator.js +25 -23
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.ts +1 -1
- package/src/infra/app/schema.json +1 -1
- package/src/license/__snapshots__/config.spec.ts.snap +23 -0
- package/src/license/config-types.d.ts +18 -1
- package/src/license/config-types.js +4 -0
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +65 -7
- package/src/license/config.js +315 -7
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.d.ts +16 -0
- package/src/license/dependency-check/check.js +111 -0
- package/src/license/dependency-check/check.js.map +1 -0
- package/src/license/dependency-check/collectors/collector.d.ts +21 -0
- package/src/license/dependency-check/collectors/collector.js +76 -0
- package/src/license/dependency-check/collectors/collector.js.map +1 -0
- package/src/license/dependency-check/collectors/npm-collector.d.ts +10 -0
- package/src/license/dependency-check/collectors/npm-collector.js +75 -0
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -0
- package/src/license/dependency-check/collectors/python-collector.d.ts +23 -0
- package/src/license/dependency-check/collectors/python-collector.js +121 -0
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -0
- package/src/license/dependency-check/evaluator.d.ts +9 -0
- package/src/license/dependency-check/evaluator.js +122 -0
- package/src/license/dependency-check/evaluator.js.map +1 -0
- package/src/license/dependency-check/executor-schema.json +6 -0
- package/src/license/dependency-check/executor.d.ts +9 -0
- package/src/license/dependency-check/executor.js +43 -0
- package/src/license/dependency-check/executor.js.map +1 -0
- package/src/license/dependency-check/pre-approved.d.ts +6 -0
- package/src/license/dependency-check/pre-approved.js +1280 -0
- package/src/license/dependency-check/pre-approved.js.map +1 -0
- package/src/license/dependency-check/types.d.ts +45 -0
- package/src/license/dependency-check/types.js +7 -0
- package/src/license/dependency-check/types.js.map +1 -0
- package/src/license/generator.d.ts +3 -3
- package/src/license/generator.js +113 -14
- package/src/license/generator.js.map +1 -1
- package/src/license/index.d.ts +8 -0
- package/src/license/index.js +13 -0
- package/src/license/index.js.map +1 -0
- package/src/license/known-exceptions.d.ts +7 -0
- package/src/license/known-exceptions.js +33 -0
- package/src/license/known-exceptions.js.map +1 -0
- package/src/license/schema.d.ts +5 -0
- package/src/license/schema.json +6 -0
- package/src/license/sync/generator.d.ts +2 -2
- package/src/license/sync/generator.js +15 -15
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.d.ts +3 -3
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.d.ts +5 -1
- package/src/mcp-server/generator-info.js +7 -7
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.d.ts +1 -1
- package/src/mcp-server/guide-pipeline.js +10 -12
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +4 -0
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/server.js +3 -3
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +5 -5
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.d.ts +2 -2
- package/src/mcp-server/tools/general-guidance.js +2 -2
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.d.ts +2 -2
- package/src/mcp-server/tools/generator-guide.js +2 -2
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.d.ts +2 -2
- package/src/mcp-server/tools/list-generators.js +1 -1
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +1 -1
- package/src/open-api/ts-client/generator.d.ts +3 -3
- package/src/open-api/ts-client/generator.js +2 -2
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.d.ts +3 -3
- package/src/open-api/ts-hooks/generator.js +2 -2
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.spec.tsx +14 -14
- package/src/open-api/ts-metadata/generator.d.ts +3 -3
- package/src/open-api/ts-metadata/generator.js +1 -1
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/utils/codegen-data/languages.d.ts +5 -1
- package/src/open-api/utils/codegen-data/languages.js +4 -4
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data.d.ts +6 -2
- package/src/open-api/utils/codegen-data.js +6 -6
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.d.ts +5 -1
- package/src/open-api/utils/normalise.js +5 -5
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.d.ts +2 -2
- package/src/open-api/utils/parse.js +4 -0
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.d.ts +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +128 -14
- package/src/preset/generator.d.ts +4 -4
- package/src/preset/generator.js +24 -19
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.ts +7 -5
- package/src/preset/schema.json +9 -4
- package/src/py/agent/__snapshots__/generator.spec.ts.snap +10 -9
- package/src/py/agent/a2a-connection/generator.d.ts +3 -3
- package/src/py/agent/a2a-connection/generator.js +8 -7
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/files/common/agent.py.template +2 -0
- package/src/py/agent/files/deploy/Dockerfile.template +3 -3
- package/src/py/agent/files/http/init.py.template +2 -2
- package/src/py/agent/files/http/main.py.template +0 -1
- package/src/py/agent/generator.d.ts +3 -3
- package/src/py/agent/generator.js +45 -39
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +4 -0
- package/src/py/agent/mcp-connection/generator.d.ts +3 -3
- package/src/py/agent/mcp-connection/generator.js +5 -5
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/agent/react-connection/generator.d.ts +3 -3
- package/src/py/agent/react-connection/generator.js +8 -8
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/serve-local.d.ts +2 -2
- package/src/py/agent/react-connection/serve-local.js.map +1 -1
- package/src/py/agent/schema.d.ts +8 -8
- package/src/py/agent/schema.json +18 -18
- package/src/py/api/generator.d.ts +3 -3
- package/src/py/api/generator.js +2 -2
- package/src/py/api/generator.js.map +1 -1
- package/src/py/api/schema.d.ts +4 -6
- package/src/py/api/schema.json +15 -15
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/py/fast-api/generator.d.ts +3 -3
- package/src/py/fast-api/generator.js +73 -55
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.d.ts +3 -3
- package/src/py/fast-api/react/generator.js +3 -3
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.d.ts +1 -1
- package/src/py/fast-api/react/open-api.js +5 -2
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/fast-api/schema.d.ts +4 -6
- package/src/py/fast-api/schema.json +15 -15
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/lambda-function/files/handler/__lambdaFunctionSnakeCase__.py.template +6 -6
- package/src/py/lambda-function/generator.d.ts +3 -3
- package/src/py/lambda-function/generator.js +34 -31
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.ts +7 -4
- package/src/py/lambda-function/schema.json +15 -7
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/mcp-server/generator.d.ts +3 -3
- package/src/py/mcp-server/generator.js +44 -37
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.ts +5 -9
- package/src/py/mcp-server/schema.json +15 -15
- package/src/py/project/generator.d.ts +3 -3
- package/src/py/project/generator.js +88 -69
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.ts +1 -1
- package/src/py/project/schema.json +2 -2
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +18 -16
- package/src/smithy/project/files/build.Dockerfile.template +1 -0
- package/src/smithy/project/generator.d.ts +3 -3
- package/src/smithy/project/generator.js +31 -29
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/generator.d.ts +3 -3
- package/src/smithy/react-connection/generator.js +4 -4
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +12 -38
- package/src/smithy/ts/api/generator.d.ts +3 -3
- package/src/smithy/ts/api/generator.js +89 -66
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.ts +4 -6
- package/src/smithy/ts/api/schema.json +15 -15
- package/src/terraform/project/generator.d.ts +3 -3
- package/src/terraform/project/generator.js +14 -9
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/trpc/backend/files/src/client/index.ts.template +5 -5
- package/src/trpc/backend/files/src/handler.ts.template +2 -2
- package/src/trpc/backend/generator.d.ts +3 -3
- package/src/trpc/backend/generator.js +80 -61
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +5 -5
- package/src/trpc/backend/schema.json +15 -15
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +14 -14
- package/src/trpc/react/generator.d.ts +3 -3
- package/src/trpc/react/generator.js +11 -10
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +11 -5
- package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
- package/src/ts/agent/a2a-connection/generator.js +9 -8
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/files/common/agent.ts.template +6 -2
- package/src/ts/agent/files/deploy/Dockerfile.template +1 -1
- package/src/ts/agent/generator.d.ts +3 -3
- package/src/ts/agent/generator.js +40 -35
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -2
- package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
- package/src/ts/agent/mcp-connection/generator.js +6 -6
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +8 -8
- package/src/ts/agent/react-connection/generator.d.ts +3 -3
- package/src/ts/agent/react-connection/generator.js +15 -15
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/serve-local.d.ts +2 -2
- package/src/ts/agent/react-connection/serve-local.js +2 -2
- package/src/ts/agent/schema.d.ts +8 -8
- package/src/ts/agent/schema.json +18 -18
- package/src/ts/api/generator.d.ts +3 -3
- package/src/ts/api/generator.js +10 -8
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.ts +5 -4
- package/src/ts/api/schema.json +15 -15
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +7 -8
- package/src/ts/astro-docs/generator.d.ts +3 -3
- package/src/ts/astro-docs/generator.js +14 -11
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/docs/generator.d.ts +3 -3
- package/src/ts/docs/generator.js.map +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +1502 -0
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/agent-connection/generator.js +32 -0
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/agent-connection/schema.d.ts +14 -0
- package/src/ts/dynamodb/agent-connection/schema.json +22 -0
- package/src/ts/dynamodb/files/scripts/create-local-table.ts.template +161 -0
- package/src/ts/dynamodb/files/scripts/start-container.ts.template +81 -0
- package/src/ts/dynamodb/files/src/client.ts.template +45 -0
- package/src/ts/dynamodb/files/src/constants.ts.template +9 -0
- package/src/ts/dynamodb/files/src/entities/example.ts.template +47 -0
- package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -0
- package/src/ts/dynamodb/files/src/gsi.ts.template +14 -0
- package/src/ts/dynamodb/files/src/index.ts.template +11 -0
- package/src/ts/dynamodb/generator.d.ts +10 -0
- package/src/ts/dynamodb/generator.js +106 -0
- package/src/ts/dynamodb/generator.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js +32 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +14 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.json +22 -0
- package/src/ts/dynamodb/schema.d.ts +14 -0
- package/src/ts/dynamodb/schema.json +52 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/smithy-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/smithy-connection/generator.js +30 -0
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.ts +12 -0
- package/src/ts/dynamodb/smithy-connection/schema.json +18 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/trpc-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/trpc-connection/generator.js +30 -0
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.ts +12 -0
- package/src/ts/dynamodb/trpc-connection/schema.json +18 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +10 -10
- package/src/ts/lambda-function/generator.d.ts +3 -3
- package/src/ts/lambda-function/generator.js +41 -36
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/schema.d.ts +7 -4
- package/src/ts/lambda-function/schema.json +15 -7
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +32 -65
- package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
- package/src/ts/lib/biome.d.ts +7 -0
- package/src/ts/lib/biome.js +58 -0
- package/src/ts/lib/biome.js.map +1 -0
- package/src/ts/lib/generator.d.ts +3 -3
- package/src/ts/lib/generator.js +27 -29
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -1
- package/src/ts/lib/ts-project-utils.d.ts +12 -2
- package/src/ts/lib/ts-project-utils.js +30 -10
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +2 -2
- package/src/ts/lib/vitest.js +1 -1
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/mcp-server/generator.d.ts +3 -3
- package/src/ts/mcp-server/generator.js +46 -24
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.ts +5 -9
- package/src/ts/mcp-server/schema.json +15 -15
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +20 -15
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.spec.ts.template +1 -1
- package/src/ts/nx-generator/generator.d.ts +2 -2
- package/src/ts/nx-generator/generator.js +23 -19
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-plugin/generator.d.ts +3 -3
- package/src/ts/nx-plugin/generator.js +12 -11
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/utils.d.ts +1 -1
- package/src/ts/nx-plugin/utils.js +10 -4
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +120 -60
- package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
- package/src/ts/rdb/agent-connection/generator.js +4 -4
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/files/prisma.config.ts.template +1 -1
- package/src/ts/rdb/files/scripts/pull-image.ts.template +15 -0
- package/src/ts/rdb/files/scripts/{docker-start.ts.template → start-container.ts.template} +24 -24
- package/src/ts/rdb/files/scripts/wait-for-db.ts.template +3 -3
- package/src/ts/rdb/files/src/create-db-user-handler.ts.template +2 -2
- package/src/ts/rdb/files/src/migration-handler.ts.template +2 -2
- package/src/ts/rdb/files/src/prisma.ts.template +2 -2
- package/src/ts/rdb/generator.d.ts +3 -3
- package/src/ts/rdb/generator.js +103 -82
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
- package/src/ts/rdb/mcp-server-connection/generator.js +4 -4
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/schema.d.ts +5 -5
- package/src/ts/rdb/schema.json +13 -13
- package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
- package/src/ts/rdb/smithy-connection/generator.js +4 -4
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/files/src/middleware/__rdbNameKebab__.ts.template +1 -1
- package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
- package/src/ts/rdb/trpc-connection/generator.js +3 -3
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/rdb/utils.d.ts +1 -1
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +9 -9
- package/src/ts/react-website/agui/generator.d.ts +3 -3
- package/src/ts/react-website/agui/generator.js +13 -13
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +423 -386
- package/src/ts/react-website/app/files/app/cloudscape/src/components/AppLayout/index.tsx.template +5 -5
- package/src/ts/react-website/app/files/app/cloudscape/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/files/app/cloudscape/src/styles.css.template +1 -1
- package/src/ts/react-website/app/files/app/none/src/components/AppLayout/index.tsx.template +5 -5
- package/src/ts/react-website/app/files/app/none/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/files/app/none/src/styles.css.template +2 -2
- package/src/ts/react-website/app/files/app/shadcn/src/components/AppLayout/index.tsx.template +6 -6
- package/src/ts/react-website/app/files/app/shadcn/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/generator.d.ts +6 -6
- package/src/ts/react-website/app/generator.js +124 -114
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.ts +9 -6
- package/src/ts/react-website/app/schema.json +13 -13
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +1 -7
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +3 -3
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +3 -23
- package/src/ts/react-website/cognito-auth/generator.d.ts +3 -3
- package/src/ts/react-website/cognito-auth/generator.js +19 -22
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
- package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
- package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
- package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
- package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
- package/src/ts/react-website/cognito-auth/schema.d.ts +2 -2
- package/src/ts/react-website/cognito-auth/schema.json +4 -4
- package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
- package/src/ts/react-website/cognito-auth/utils.js +1 -1
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
- package/src/ts/react-website/runtime-config/generator.js +4 -4
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/sync/generator.d.ts +3 -3
- package/src/ts/sync/generator.js +2 -2
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.d.ts +3 -3
- package/src/ts/website/app/generator.js +1 -1
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/app/schema.d.ts +8 -6
- package/src/ts/website/app/schema.json +21 -13
- package/src/ts/website/auth/generator.d.ts +3 -3
- package/src/ts/website/auth/generator.js +2 -2
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/ts/website/auth/schema.d.ts +2 -2
- package/src/ts/website/auth/schema.json +4 -4
- package/src/utils/agent-connection/agent-connection.d.ts +1 -1
- package/src/utils/agent-connection/agent-connection.js +17 -11
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-runtime-config/model-errors.ts.template +36 -0
- package/src/utils/agent-connection/files/py-core-runtime-config/model_errors.py.template +40 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +10 -10
- package/src/utils/agent-core-constructs/agent-core-constructs.js +14 -24
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +13 -13
- package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__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/api-constructs/api-constructs.d.ts +4 -4
- package/src/utils/api-constructs/api-constructs.js +5 -7
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +12 -12
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +12 -12
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +7 -7
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +10 -10
- package/src/utils/api-constructs/open-api-metadata.d.ts +4 -4
- package/src/utils/api-constructs/open-api-metadata.js +2 -2
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.d.ts +5 -1
- package/src/utils/ast/website.js +3 -3
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.d.ts +33 -1
- package/src/utils/ast.js +89 -4
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.d.ts +1 -1
- package/src/utils/bundle/bundle.js +2 -2
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.d.ts +1 -1
- package/src/utils/commands.js +2 -2
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/__snapshots__/utils.spec.ts.snap +6 -6
- package/src/utils/config/index.d.ts +5 -5
- package/src/utils/config/utils.d.ts +13 -3
- package/src/utils/config/utils.js +37 -5
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +7 -7
- package/src/utils/connection/open-api/react.d.ts +2 -2
- package/src/utils/connection/open-api/react.js +7 -7
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.d.ts +6 -6
- package/src/utils/containers.js +6 -6
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +18 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +49 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -0
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +30 -0
- package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +105 -0
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +65 -0
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +155 -0
- package/src/utils/format.d.ts +45 -2
- package/src/utils/format.js +167 -46
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.d.ts +1 -1
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/files/cdk/app/lambda-functions/{__functionNameKebabCase__.ts.template → __nameKebabCase__.ts.template} +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/{__functionNameKebabCase__/__functionNameKebabCase__.tf.template → __nameKebabCase__/__nameKebabCase__.tf.template} +7 -7
- package/src/utils/function-constructs/function-constructs.d.ts +5 -5
- package/src/utils/function-constructs/function-constructs.js +6 -8
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.d.ts +4 -0
- package/src/utils/generators.js +4 -4
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.d.ts +1 -1
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac-providers.d.ts +3 -3
- package/src/utils/iac-providers.js +1 -1
- package/src/utils/iac.d.ts +3 -3
- package/src/utils/iac.js +6 -6
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +1 -5
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +2 -4
- package/src/utils/identity-constructs/identity-constructs.d.ts +3 -3
- package/src/utils/identity-constructs/identity-constructs.js +4 -4
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/js.d.ts +4 -0
- package/src/utils/js.js +4 -4
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.d.ts +25 -0
- package/src/utils/mcp.js +81 -0
- package/src/utils/mcp.js.map +1 -0
- package/src/utils/metrics.d.ts +9 -3
- package/src/utils/metrics.js +58 -28
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/npm-scope.d.ts +1 -1
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +7 -2
- package/src/utils/nx.js +46 -14
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.d.ts +1 -1
- package/src/utils/paths.d.ts +1 -1
- package/src/utils/pnpm-workspace.d.ts +1 -1
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.d.ts +30 -3
- package/src/utils/port.js +72 -4
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.d.ts +2 -2
- package/src/utils/py.js +13 -6
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +30 -1
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +18 -9
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +5 -5
- package/src/utils/rdb-constructs/rdb-constructs.js +7 -17
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +3 -3
- package/src/utils/shared-constructs.js +10 -10
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-infra-config.d.ts +1 -1
- package/src/utils/shared-infra-config.js +1 -1
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-scripts.d.ts +1 -1
- package/src/utils/shared-scripts.js +2 -2
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +1 -1
- package/src/utils/shared-shadcn.js +1 -13
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +5 -1
- package/src/utils/test.js +9 -5
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.d.ts +1 -1
- package/src/utils/toml.js +4 -0
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +68 -72
- package/src/utils/versions.js +67 -71
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +52 -5
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +38 -11
- package/src/utils/website-constructs/website-constructs.d.ts +3 -3
- package/src/utils/website-constructs/website-constructs.js +5 -7
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/src/ts/lib/eslint.d.ts +0 -14
- package/src/ts/lib/eslint.js +0 -90
- package/src/ts/lib/eslint.js.map +0 -1
- package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
- /package/src/ts/{rdb/files/scripts/docker-pull.ts.template → dynamodb/files/scripts/pull-image.ts.template} +0 -0
|
@@ -13,14 +13,6 @@
|
|
|
13
13
|
},
|
|
14
14
|
"x-prompt": "What name would you like your API to have? i.e: MyApi"
|
|
15
15
|
},
|
|
16
|
-
"computeType": {
|
|
17
|
-
"type": "string",
|
|
18
|
-
"description": "The type of compute to use to deploy this API. Choose between ServerlessApiGatewayRestApi (default) or ServerlessApiGatewayHttpApi.",
|
|
19
|
-
"default": "ServerlessApiGatewayRestApi",
|
|
20
|
-
"enum": ["ServerlessApiGatewayRestApi", "ServerlessApiGatewayHttpApi"],
|
|
21
|
-
"x-prompt": "What compute type would you like to deploy your API with?",
|
|
22
|
-
"x-priority": "important"
|
|
23
|
-
},
|
|
24
16
|
"integrationPattern": {
|
|
25
17
|
"type": "string",
|
|
26
18
|
"description": "How API Gateway integrations are generated for the API. Choose between isolated (default) and shared.",
|
|
@@ -45,9 +37,9 @@
|
|
|
45
37
|
},
|
|
46
38
|
"auth": {
|
|
47
39
|
"type": "string",
|
|
48
|
-
"description": "The method used to authenticate with your API. Choose between
|
|
49
|
-
"default": "
|
|
50
|
-
"enum": ["
|
|
40
|
+
"description": "The method used to authenticate with your API. Choose between iam (default), cognito or custom.",
|
|
41
|
+
"default": "iam",
|
|
42
|
+
"enum": ["iam", "cognito", "custom"],
|
|
51
43
|
"x-prompt": "How would you like users to authenticate with your API?",
|
|
52
44
|
"x-priority": "important"
|
|
53
45
|
},
|
|
@@ -64,13 +56,21 @@
|
|
|
64
56
|
"description": "The sub directory the project is placed in. By default this is the project name.",
|
|
65
57
|
"x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
|
|
66
58
|
},
|
|
67
|
-
"
|
|
59
|
+
"iac": {
|
|
68
60
|
"type": "string",
|
|
69
61
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
70
|
-
"enum": ["
|
|
62
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
71
63
|
"x-priority": "important",
|
|
72
|
-
"default": "
|
|
73
|
-
"x-prompt": "Which provider would you like to manage your infrastructure? (default:
|
|
64
|
+
"default": "inherit",
|
|
65
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
66
|
+
},
|
|
67
|
+
"infra": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"description": "The type of infrastructure to use to deploy this API.",
|
|
70
|
+
"default": "rest-lambda",
|
|
71
|
+
"enum": ["rest-lambda", "http-lambda", "none"],
|
|
72
|
+
"x-prompt": "What infrastructure would you like to deploy your API with?",
|
|
73
|
+
"x-priority": "important"
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"required": ["name"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`trpc react generator > REST API (
|
|
3
|
+
exports[`trpc react generator > REST API (rest-lambda) > should generate REST API client provider with splitLink for Cognito auth > TestApiClientProvider-REST-Cognito.tsx 1`] = `
|
|
4
4
|
"import { AppRouter } from 'backend';
|
|
5
5
|
import { useQueryClient } from '@tanstack/react-query';
|
|
6
6
|
import { createTRPCOptionsProxy } from '@trpc/tanstack-react-query';
|
|
@@ -77,7 +77,7 @@ export default TestApiClientProvider;
|
|
|
77
77
|
"
|
|
78
78
|
`;
|
|
79
79
|
|
|
80
|
-
exports[`trpc react generator > REST API (
|
|
80
|
+
exports[`trpc react generator > REST API (rest-lambda) > should generate REST API client provider with splitLink for Custom auth > TestApiClientProvider-REST-Custom.tsx 1`] = `
|
|
81
81
|
"import { AppRouter } from 'backend';
|
|
82
82
|
import { useQueryClient } from '@tanstack/react-query';
|
|
83
83
|
import { createTRPCOptionsProxy } from '@trpc/tanstack-react-query';
|
|
@@ -147,7 +147,7 @@ export default TestApiClientProvider;
|
|
|
147
147
|
"
|
|
148
148
|
`;
|
|
149
149
|
|
|
150
|
-
exports[`trpc react generator > REST API (
|
|
150
|
+
exports[`trpc react generator > REST API (rest-lambda) > should generate REST API client provider with splitLink for IAM auth > TestApiClientProvider-REST-IAM.tsx 1`] = `
|
|
151
151
|
"import { AppRouter } from 'backend';
|
|
152
152
|
import { useQueryClient } from '@tanstack/react-query';
|
|
153
153
|
import { createTRPCOptionsProxy } from '@trpc/tanstack-react-query';
|
|
@@ -9,9 +9,9 @@ import { EventSourcePolyfill } from "event-source-polyfill";
|
|
|
9
9
|
<%_ } else { _%>
|
|
10
10
|
import { HTTPLinkOptions, TRPCClient, createTRPCClient, httpLink } from "@trpc/client";
|
|
11
11
|
<%_ } _%>
|
|
12
|
-
<%_ if (auth === '
|
|
12
|
+
<%_ if (auth === 'iam') { _%>
|
|
13
13
|
import { useSigV4 } from "../hooks/useSigV4";
|
|
14
|
-
<%_ } else if (auth === '
|
|
14
|
+
<%_ } else if (auth === 'cognito') { _%>
|
|
15
15
|
import { useAuth } from "react-oidc-context";
|
|
16
16
|
<%_ } _%>
|
|
17
17
|
|
|
@@ -28,9 +28,9 @@ export const <%= apiNameClassName %>ClientProvider: FC<PropsWithChildren> = ({
|
|
|
28
28
|
const queryClient = useQueryClient();
|
|
29
29
|
const runtimeConfig = useRuntimeConfig();
|
|
30
30
|
const apiUrl = runtimeConfig.apis.<%= apiNameClassName %>;
|
|
31
|
-
<%_ if (auth === '
|
|
31
|
+
<%_ if (auth === 'iam') { _%>
|
|
32
32
|
const sigv4Client = useSigV4();
|
|
33
|
-
<%_ } else if (auth === '
|
|
33
|
+
<%_ } else if (auth === 'cognito') { _%>
|
|
34
34
|
const auth = useAuth();
|
|
35
35
|
const user = auth?.user;
|
|
36
36
|
<%_ } _%>
|
|
@@ -45,7 +45,7 @@ export const <%= apiNameClassName %>ClientProvider: FC<PropsWithChildren> = ({
|
|
|
45
45
|
url: apiUrl,
|
|
46
46
|
EventSource: EventSourcePolyfill,
|
|
47
47
|
eventSourceOptions: async ({ op }) => {
|
|
48
|
-
<%_ if (auth === '
|
|
48
|
+
<%_ if (auth === 'iam') { _%>
|
|
49
49
|
const url =
|
|
50
50
|
`${apiUrl.replace(/\/$/, '')}/${op.path}` +
|
|
51
51
|
(op.input !== undefined
|
|
@@ -57,13 +57,13 @@ export const <%= apiNameClassName %>ClientProvider: FC<PropsWithChildren> = ({
|
|
|
57
57
|
headers[k] = v;
|
|
58
58
|
});
|
|
59
59
|
return { headers };
|
|
60
|
-
<%_ } else if (auth === '
|
|
60
|
+
<%_ } else if (auth === 'cognito') { _%>
|
|
61
61
|
return {
|
|
62
62
|
headers: {
|
|
63
63
|
Authorization: `Bearer ${user?.id_token}`,
|
|
64
64
|
},
|
|
65
65
|
};
|
|
66
|
-
<%_ } else if (auth === '
|
|
66
|
+
<%_ } else if (auth === 'custom') { _%>
|
|
67
67
|
// TODO: Add headers required by your custom authorizer
|
|
68
68
|
return { headers: {} };
|
|
69
69
|
<%_ } _%>
|
|
@@ -71,13 +71,13 @@ export const <%= apiNameClassName %>ClientProvider: FC<PropsWithChildren> = ({
|
|
|
71
71
|
}),
|
|
72
72
|
false: httpLink({
|
|
73
73
|
url: apiUrl,
|
|
74
|
-
<%_ if (auth === '
|
|
74
|
+
<%_ if (auth === 'iam') { _%>
|
|
75
75
|
fetch: sigv4Client.fetch,
|
|
76
|
-
<%_ } else if (auth === '
|
|
76
|
+
<%_ } else if (auth === 'cognito') { _%>
|
|
77
77
|
headers: {
|
|
78
78
|
Authorization: `Bearer ${user?.id_token}`,
|
|
79
79
|
},
|
|
80
|
-
<%_ } else if (auth === '
|
|
80
|
+
<%_ } else if (auth === 'custom') { _%>
|
|
81
81
|
// TODO: Add headers required by your custom authorizer
|
|
82
82
|
headers: {},
|
|
83
83
|
<%_ } _%>
|
|
@@ -88,13 +88,13 @@ export const <%= apiNameClassName %>ClientProvider: FC<PropsWithChildren> = ({
|
|
|
88
88
|
<%_ } else { _%>
|
|
89
89
|
const linkOptions: HTTPLinkOptions<any> = {
|
|
90
90
|
url: apiUrl,
|
|
91
|
-
<%_ if (auth === '
|
|
91
|
+
<%_ if (auth === 'iam') { _%>
|
|
92
92
|
fetch: sigv4Client.fetch,
|
|
93
|
-
<%_ } else if (auth === '
|
|
93
|
+
<%_ } else if (auth === 'cognito') { _%>
|
|
94
94
|
headers: {
|
|
95
95
|
Authorization: `Bearer ${user?.id_token}`,
|
|
96
96
|
},
|
|
97
|
-
<%_ } else if (auth === '
|
|
97
|
+
<%_ } else if (auth === 'custom') { _%>
|
|
98
98
|
// TODO: Add headers required by your custom authorizer
|
|
99
99
|
headers: {},
|
|
100
100
|
<%_ } _%>
|
|
@@ -111,7 +111,7 @@ export const <%= apiNameClassName %>ClientProvider: FC<PropsWithChildren> = ({
|
|
|
111
111
|
});
|
|
112
112
|
|
|
113
113
|
return { optionsProxy, client };
|
|
114
|
-
}, [apiUrl, queryClient<% if (auth === '
|
|
114
|
+
}, [apiUrl, queryClient<% if (auth === 'iam') { %>, sigv4Client<% } else if (auth === 'cognito') { %>, user<% } %>]);
|
|
115
115
|
|
|
116
116
|
return (
|
|
117
117
|
<<%= apiNameClassName %>TRPCContext.Provider value={container}>
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { Tree } from '@nx/devkit';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { type Tree } from '@nx/devkit';
|
|
6
|
+
import { type NxGeneratorInfo } from '../../utils/nx';
|
|
7
|
+
import type { ReactGeneratorSchema } from './schema';
|
|
8
8
|
export declare const TRPC_REACT_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
9
|
export declare function reactGenerator(tree: Tree, options: ReactGeneratorSchema): Promise<() => void>;
|
|
10
10
|
export default reactGenerator;
|
|
@@ -7,15 +7,15 @@ exports.reactGenerator = reactGenerator;
|
|
|
7
7
|
* SPDX-License-Identifier: Apache-2.0
|
|
8
8
|
*/
|
|
9
9
|
const devkit_1 = require("@nx/devkit");
|
|
10
|
+
const serve_local_1 = require("../../connection/serve-local");
|
|
10
11
|
const generator_1 = require("../../ts/react-website/runtime-config/generator");
|
|
11
|
-
const npm_scope_1 = require("../../utils/npm-scope");
|
|
12
|
-
const versions_1 = require("../../utils/versions");
|
|
13
12
|
const ast_1 = require("../../utils/ast");
|
|
14
|
-
const names_1 = require("../../utils/names");
|
|
15
13
|
const format_1 = require("../../utils/format");
|
|
16
|
-
const nx_1 = require("../../utils/nx");
|
|
17
14
|
const metrics_1 = require("../../utils/metrics");
|
|
18
|
-
const
|
|
15
|
+
const names_1 = require("../../utils/names");
|
|
16
|
+
const npm_scope_1 = require("../../utils/npm-scope");
|
|
17
|
+
const nx_1 = require("../../utils/nx");
|
|
18
|
+
const versions_1 = require("../../utils/versions");
|
|
19
19
|
exports.TRPC_REACT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
20
20
|
async function reactGenerator(tree, options) {
|
|
21
21
|
const frontendProjectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.frontendProjectName);
|
|
@@ -23,9 +23,10 @@ async function reactGenerator(tree, options) {
|
|
|
23
23
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
24
24
|
const metadata = backendProjectConfig.metadata;
|
|
25
25
|
const apiName = metadata.apiName;
|
|
26
|
-
const auth = metadata.auth ?? '
|
|
26
|
+
const auth = (metadata.auth ?? 'iam').toLowerCase();
|
|
27
27
|
const port = metadata.port ?? metadata.ports?.[0] ?? 2022;
|
|
28
|
-
const
|
|
28
|
+
const rawInfra = (metadata.infra ?? metadata.computeType ?? '').toLowerCase();
|
|
29
|
+
const isRestApi = rawInfra === 'rest-lambda' || rawInfra === 'serverlessapigatewayrestapi';
|
|
29
30
|
const apiNameClassName = (0, names_1.toClassName)(apiName);
|
|
30
31
|
const backendProjectAlias = (0, npm_scope_1.toScopeAlias)(backendProjectConfig.name);
|
|
31
32
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), frontendProjectConfig.root, {
|
|
@@ -42,7 +43,7 @@ async function reactGenerator(tree, options) {
|
|
|
42
43
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../utils/files/website/components/tanstack-query'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'components'), {}, {
|
|
43
44
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
44
45
|
});
|
|
45
|
-
if (auth === '
|
|
46
|
+
if (auth === 'iam') {
|
|
46
47
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../utils/files/website/hooks/sigv4'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'hooks'), {}, {
|
|
47
48
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
48
49
|
});
|
|
@@ -69,7 +70,7 @@ async function reactGenerator(tree, options) {
|
|
|
69
70
|
'@tanstack/react-query',
|
|
70
71
|
'@tanstack/react-query-devtools',
|
|
71
72
|
...(isRestApi ? ['event-source-polyfill'] : []),
|
|
72
|
-
...(auth === '
|
|
73
|
+
...(auth === 'iam'
|
|
73
74
|
? [
|
|
74
75
|
'oidc-client-ts',
|
|
75
76
|
'aws4fetch',
|
|
@@ -77,7 +78,7 @@ async function reactGenerator(tree, options) {
|
|
|
77
78
|
'react-oidc-context',
|
|
78
79
|
]
|
|
79
80
|
: []),
|
|
80
|
-
...(auth === '
|
|
81
|
+
...(auth === 'cognito' ? ['react-oidc-context'] : []),
|
|
81
82
|
]), (0, versions_1.withVersions)([
|
|
82
83
|
'@smithy/types',
|
|
83
84
|
...(isRestApi ? ['@types/event-source-polyfill'] : []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":";;;AA8BA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -292,7 +292,7 @@ variable "server_protocol" {
|
|
|
292
292
|
default = "HTTP"
|
|
293
293
|
validation {
|
|
294
294
|
condition = contains(["MCP", "HTTP", "A2A"], var.server_protocol)
|
|
295
|
-
error_message = "Protocol type must be either '
|
|
295
|
+
error_message = "Protocol type must be either 'mcp', 'http', or 'a2a'."
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
|
|
@@ -629,6 +629,7 @@ output "agent_runtime_version" {
|
|
|
629
629
|
|
|
630
630
|
exports[`ts#agent generator > should match snapshot for generated files > agent-agent.ts 1`] = `
|
|
631
631
|
"import { Agent, tool } from '@strands-agents/sdk';
|
|
632
|
+
import { logModelErrors } from ':proj/agent-connection';
|
|
632
633
|
import { z } from 'zod';
|
|
633
634
|
|
|
634
635
|
const multiply = tool({
|
|
@@ -641,13 +642,16 @@ const multiply = tool({
|
|
|
641
642
|
callback: ({ a, b }) => a * b,
|
|
642
643
|
});
|
|
643
644
|
|
|
644
|
-
export const getAgent = async () =>
|
|
645
|
-
new Agent({
|
|
645
|
+
export const getAgent = async () => {
|
|
646
|
+
const agent = new Agent({
|
|
646
647
|
systemPrompt: \`You are a mathematical wizard.
|
|
647
648
|
Use your tools for mathematical tasks.
|
|
648
649
|
Refer to tools as your 'spellbook'.\`,
|
|
649
650
|
tools: [multiply],
|
|
650
651
|
});
|
|
652
|
+
logModelErrors(agent);
|
|
653
|
+
return agent;
|
|
654
|
+
};
|
|
651
655
|
"
|
|
652
656
|
`;
|
|
653
657
|
|
|
@@ -728,7 +732,8 @@ export interface AgentCoreTrpcClientOptions {
|
|
|
728
732
|
sessionId?: string;
|
|
729
733
|
}
|
|
730
734
|
|
|
731
|
-
export interface AgentCoreTrpcClientIamOptions
|
|
735
|
+
export interface AgentCoreTrpcClientIamOptions
|
|
736
|
+
extends AgentCoreTrpcClientOptions {
|
|
732
737
|
/**
|
|
733
738
|
* Optional AWS credential provider. If not provided, uses the default
|
|
734
739
|
* credential provider chain from the AWS SDK.
|
|
@@ -736,7 +741,8 @@ export interface AgentCoreTrpcClientIamOptions extends AgentCoreTrpcClientOption
|
|
|
736
741
|
credentialProvider?: ReturnType<typeof fromNodeProviderChain>;
|
|
737
742
|
}
|
|
738
743
|
|
|
739
|
-
export interface AgentCoreTrpcClientJwtOptions
|
|
744
|
+
export interface AgentCoreTrpcClientJwtOptions
|
|
745
|
+
extends AgentCoreTrpcClientOptions {
|
|
740
746
|
/**
|
|
741
747
|
* A function which returns the JWT access token used to authenticate
|
|
742
748
|
*/
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
6
|
+
import { type NxGeneratorInfo } from '../../../utils/nx';
|
|
7
|
+
import type { TsAgentA2aConnectionGeneratorSchema } from './schema';
|
|
8
8
|
export declare const TS_AGENT_A2A_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
9
|
export declare const tsAgentA2aConnectionGenerator: (tree: Tree, options: TsAgentA2aConnectionGeneratorSchema) => Promise<GeneratorCallback>;
|
|
10
10
|
export default tsAgentA2aConnectionGenerator;
|
|
@@ -6,14 +6,14 @@ exports.tsAgentA2aConnectionGenerator = exports.TS_AGENT_A2A_CONNECTION_GENERATO
|
|
|
6
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
*/
|
|
8
8
|
const devkit_1 = require("@nx/devkit");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const agent_connection_1 = require("../../../utils/agent-connection/agent-connection");
|
|
10
|
+
const ast_1 = require("../../../utils/ast");
|
|
11
11
|
const format_1 = require("../../../utils/format");
|
|
12
|
+
const metrics_1 = require("../../../utils/metrics");
|
|
12
13
|
const names_1 = require("../../../utils/names");
|
|
13
|
-
const versions_1 = require("../../../utils/versions");
|
|
14
14
|
const npm_scope_1 = require("../../../utils/npm-scope");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
15
|
+
const nx_1 = require("../../../utils/nx");
|
|
16
|
+
const versions_1 = require("../../../utils/versions");
|
|
17
17
|
exports.TS_AGENT_A2A_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
18
18
|
const tsAgentA2aConnectionGenerator = async (tree, options) => {
|
|
19
19
|
const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
|
|
@@ -23,10 +23,11 @@ const tsAgentA2aConnectionGenerator = async (tree, options) => {
|
|
|
23
23
|
if (!agentComponent || !targetAgentComponent) {
|
|
24
24
|
throw new Error('Both sourceComponent and targetComponent must be provided for ts#agent -> a2a connections');
|
|
25
25
|
}
|
|
26
|
-
if (targetAgentComponent.protocol !== '
|
|
27
|
-
throw new Error(`Target agent '${targetAgentComponent.name}' uses the ${targetAgentComponent.protocol ?? '
|
|
26
|
+
if ((targetAgentComponent.protocol ?? '').toLowerCase() !== 'a2a') {
|
|
27
|
+
throw new Error(`Target agent '${targetAgentComponent.name}' uses the ${targetAgentComponent.protocol ?? 'http'} protocol — only A2A agents can be connected as tools.`);
|
|
28
28
|
}
|
|
29
|
-
if (targetAgentComponent.auth &&
|
|
29
|
+
if (targetAgentComponent.auth &&
|
|
30
|
+
targetAgentComponent.auth.toLowerCase() !== 'iam') {
|
|
30
31
|
throw new Error(`A2A agent connection currently only supports IAM authentication, but '${targetAgentComponent.name}' uses '${targetAgentComponent.auth}' authentication.`);
|
|
31
32
|
}
|
|
32
33
|
const targetAgentComponentName = targetAgentComponent.name ?? 'agent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/agent/a2a-connection/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCASoB;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/agent/a2a-connection/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Agent, tool } from '@strands-agents/sdk';
|
|
2
|
+
import { logModelErrors } from '<%- agentConnectionImport %>';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
|
|
4
5
|
const multiply = tool({
|
|
@@ -11,10 +12,13 @@ const multiply = tool({
|
|
|
11
12
|
callback: ({ a, b }) => a * b,
|
|
12
13
|
});
|
|
13
14
|
|
|
14
|
-
export const getAgent = async () =>
|
|
15
|
-
new Agent({
|
|
15
|
+
export const getAgent = async () => {
|
|
16
|
+
const agent = new Agent({
|
|
16
17
|
systemPrompt: `You are a mathematical wizard.
|
|
17
18
|
Use your tools for mathematical tasks.
|
|
18
19
|
Refer to tools as your 'spellbook'.`,
|
|
19
20
|
tools: [multiply],
|
|
20
21
|
});
|
|
22
|
+
logModelErrors(agent);
|
|
23
|
+
return agent;
|
|
24
|
+
};
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
6
|
+
import { type NxGeneratorInfo } from '../../utils/nx';
|
|
7
|
+
import type { TsAgentGeneratorSchema } from './schema';
|
|
8
8
|
export declare const TS_AGENT_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
9
|
export declare const tsAgentGenerator: (tree: Tree, options: TsAgentGeneratorSchema) => Promise<GeneratorCallback>;
|
|
10
10
|
export default tsAgentGenerator;
|
|
@@ -6,20 +6,21 @@ exports.tsAgentGenerator = exports.TS_AGENT_GENERATOR_INFO = void 0;
|
|
|
6
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
*/
|
|
8
8
|
const devkit_1 = require("@nx/devkit");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const agent_connection_1 = require("../../utils/agent-connection/agent-connection");
|
|
10
|
+
const agent_core_constructs_1 = require("../../utils/agent-core-constructs/agent-core-constructs");
|
|
11
|
+
const bundle_1 = require("../../utils/bundle/bundle");
|
|
12
|
+
const containers_1 = require("../../utils/containers");
|
|
11
13
|
const format_1 = require("../../utils/format");
|
|
14
|
+
const fs_1 = require("../../utils/fs");
|
|
15
|
+
const iac_1 = require("../../utils/iac");
|
|
16
|
+
const metrics_1 = require("../../utils/metrics");
|
|
12
17
|
const names_1 = require("../../utils/names");
|
|
13
|
-
const versions_1 = require("../../utils/versions");
|
|
14
18
|
const npm_scope_1 = require("../../utils/npm-scope");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const containers_1 = require("../../utils/containers");
|
|
18
|
-
const shared_constructs_1 = require("../../utils/shared-constructs");
|
|
19
|
-
const agent_core_constructs_1 = require("../../utils/agent-core-constructs/agent-core-constructs");
|
|
19
|
+
const nx_1 = require("../../utils/nx");
|
|
20
|
+
const object_1 = require("../../utils/object");
|
|
20
21
|
const port_1 = require("../../utils/port");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
22
|
+
const shared_constructs_1 = require("../../utils/shared-constructs");
|
|
23
|
+
const versions_1 = require("../../utils/versions");
|
|
23
24
|
exports.TS_AGENT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
24
25
|
const tsAgentGenerator = async (tree, options) => {
|
|
25
26
|
const project = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.project);
|
|
@@ -34,12 +35,12 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
34
35
|
const targetSourceDir = (0, devkit_1.joinPathFragments)(project.root, targetSourceDirRelativeToProjectRoot);
|
|
35
36
|
const relativeSourceDir = targetSourceDir.replace(project.root + '/', './');
|
|
36
37
|
const distDir = (0, devkit_1.joinPathFragments)('dist', project.root);
|
|
37
|
-
const
|
|
38
|
-
const protocol = options.protocol ?? '
|
|
39
|
-
if (
|
|
40
|
-
console.warn('Warning: auth is ignored when no
|
|
38
|
+
const infra = options.infra ?? 'agentcore';
|
|
39
|
+
const protocol = options.protocol ?? 'http';
|
|
40
|
+
if (infra === 'none' && options.auth && options.auth !== 'iam') {
|
|
41
|
+
console.warn('Warning: auth is ignored when no infrastructure is configured (no infrastructure is generated)');
|
|
41
42
|
}
|
|
42
|
-
const auth = options.auth ?? '
|
|
43
|
+
const auth = options.auth ?? 'iam';
|
|
43
44
|
// Ensure the shared agent-connection project exists so the server entry
|
|
44
45
|
// point can import `runWithSessionId` and propagate the AgentCore session
|
|
45
46
|
// ID to any downstream MCP / A2A clients a later connection generator
|
|
@@ -55,8 +56,8 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
55
56
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'common'), targetSourceDir, templateContext, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
56
57
|
// Generate protocol-specific files
|
|
57
58
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', protocol.toLowerCase()), targetSourceDir, templateContext, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
58
|
-
if (
|
|
59
|
-
const
|
|
59
|
+
if (infra === 'agentcore') {
|
|
60
|
+
const containers = await (0, containers_1.resolveContainers)(tree, 'inherit');
|
|
60
61
|
const dockerImageTag = `${(0, npm_scope_1.getNpmScope)(tree)}-${name}:latest`;
|
|
61
62
|
// Add bundle target
|
|
62
63
|
await (0, bundle_1.addTypeScriptBundleTarget)(tree, project, {
|
|
@@ -80,7 +81,7 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
80
81
|
options: {
|
|
81
82
|
commands: [
|
|
82
83
|
fs.cp(`${targetSourceDir}/Dockerfile`, `${dockerOutputDir}/Dockerfile`),
|
|
83
|
-
`${
|
|
84
|
+
`${containers} build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}`,
|
|
84
85
|
],
|
|
85
86
|
parallel: false,
|
|
86
87
|
},
|
|
@@ -89,20 +90,20 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
89
90
|
(0, nx_1.addDependencyToTargetIfNotPresent)(project, 'docker', dockerTargetName);
|
|
90
91
|
(0, nx_1.addDependencyToTargetIfNotPresent)(project, 'build', 'docker');
|
|
91
92
|
// Add shared constructs
|
|
92
|
-
const
|
|
93
|
-
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
93
|
+
const iac = await (0, iac_1.resolveIac)(tree, options.iac);
|
|
94
|
+
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, { iac });
|
|
94
95
|
// AG-UI uses HTTP as the AgentCore protocol type (AG-UI is HTTP-based with SSE over POST).
|
|
95
|
-
const infraProtocol = protocol === '
|
|
96
|
+
const infraProtocol = protocol === 'ag-ui' ? 'http' : protocol;
|
|
96
97
|
await (0, agent_core_constructs_1.addAgentInfra)(tree, {
|
|
97
98
|
agentNameKebabCase: name,
|
|
98
99
|
agentNameClassName,
|
|
99
100
|
projectName: project.name,
|
|
100
101
|
dockerImageTag,
|
|
101
102
|
dockerOutputDir,
|
|
102
|
-
|
|
103
|
+
iac,
|
|
103
104
|
auth,
|
|
104
105
|
serverProtocol: infraProtocol,
|
|
105
|
-
|
|
106
|
+
containers,
|
|
106
107
|
});
|
|
107
108
|
}
|
|
108
109
|
// Add dependencies
|
|
@@ -113,9 +114,9 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
113
114
|
'@aws-sdk/client-appconfigdata',
|
|
114
115
|
'@aws-lambda-powertools/parameters',
|
|
115
116
|
'@modelcontextprotocol/sdk',
|
|
116
|
-
...(protocol === '
|
|
117
|
+
...(protocol === 'a2a'
|
|
117
118
|
? ['express', '@a2a-js/sdk']
|
|
118
|
-
: protocol === '
|
|
119
|
+
: protocol === 'ag-ui'
|
|
119
120
|
? [
|
|
120
121
|
'@ag-ui/aws-strands',
|
|
121
122
|
'@ag-ui/core',
|
|
@@ -134,18 +135,20 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
134
135
|
'tsx',
|
|
135
136
|
'@types/node',
|
|
136
137
|
'agent-chat-cli',
|
|
137
|
-
...(protocol === '
|
|
138
|
+
...(protocol === 'a2a' || protocol === 'ag-ui'
|
|
138
139
|
? ['@types/express', '@types/cors']
|
|
139
140
|
: ['@types/ws', '@types/cors']),
|
|
140
141
|
]));
|
|
141
142
|
// A2A servers use port 9000 as per the Strands A2A SDK default and AgentCore A2A contract.
|
|
142
143
|
// HTTP and AG-UI agents use port 8081+ to avoid conflict with VS Code server on 8080.
|
|
143
|
-
const localDevPortStart = protocol === '
|
|
144
|
-
const localDevPort = (0, port_1.assignPort)(tree, project, localDevPortStart
|
|
144
|
+
const localDevPortStart = protocol === 'a2a' ? 9000 : 8081;
|
|
145
|
+
const localDevPort = (0, port_1.assignPort)(tree, project, localDevPortStart, {
|
|
146
|
+
component: { info: exports.TS_AGENT_GENERATOR_INFO, name: agentTargetPrefix },
|
|
147
|
+
});
|
|
145
148
|
// HTTP chat needs a tiny generated script to wrap the project's tRPC
|
|
146
149
|
// WebSocket client in a `ChatAdapter`. A2A speaks the standard A2A
|
|
147
150
|
// protocol, so we can run `agent-chat-cli` directly as a binary.
|
|
148
|
-
if (protocol === '
|
|
151
|
+
if (protocol === 'http') {
|
|
149
152
|
const scriptsDir = (0, devkit_1.joinPathFragments)(project.root, 'scripts', agentTargetPrefix);
|
|
150
153
|
const relativeAgentImport = `../../${targetSourceDirRelativeToProjectRoot}`;
|
|
151
154
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'scripts', 'http'), scriptsDir, {
|
|
@@ -155,19 +158,21 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
155
158
|
relativeAgentImport,
|
|
156
159
|
}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
157
160
|
}
|
|
158
|
-
const chatUrl = protocol === '
|
|
161
|
+
const chatUrl = protocol === 'http'
|
|
159
162
|
? `ws://localhost:${localDevPort}/ws`
|
|
160
|
-
: protocol === '
|
|
163
|
+
: protocol === 'ag-ui'
|
|
161
164
|
? `http://localhost:${localDevPort}/invocations`
|
|
162
165
|
: `http://localhost:${localDevPort}`;
|
|
163
|
-
const chatCommand = protocol === '
|
|
166
|
+
const chatCommand = protocol === 'http'
|
|
164
167
|
? `tsx ./scripts/${agentTargetPrefix}/chat.ts`
|
|
165
|
-
: protocol === '
|
|
168
|
+
: protocol === 'ag-ui'
|
|
166
169
|
? `agent-chat-cli agui ${chatUrl}`
|
|
167
170
|
: `agent-chat-cli a2a ${chatUrl}`;
|
|
168
171
|
(0, devkit_1.updateProjectConfiguration)(tree, project.name, {
|
|
169
172
|
...project,
|
|
170
|
-
targets
|
|
173
|
+
// Sort targets so their order is stable regardless of insertion order on
|
|
174
|
+
// first run vs re-run.
|
|
175
|
+
targets: (0, object_1.sortObjectKeys)({
|
|
171
176
|
...project.targets,
|
|
172
177
|
[`${agentTargetPrefix}-serve`]: {
|
|
173
178
|
executor: 'nx:run-commands',
|
|
@@ -203,7 +208,7 @@ const tsAgentGenerator = async (tree, options) => {
|
|
|
203
208
|
},
|
|
204
209
|
dependsOn: [`${agentTargetPrefix}-serve-local`],
|
|
205
210
|
},
|
|
206
|
-
},
|
|
211
|
+
}),
|
|
207
212
|
});
|
|
208
213
|
(0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.TS_AGENT_GENERATOR_INFO, targetSourceDirRelativeToProjectRoot, agentTargetPrefix, { port: localDevPort, rc: agentNameClassName, auth, protocol });
|
|
209
214
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_AGENT_GENERATOR_INFO]);
|