@aws/nx-plugin-mcp 1.0.0-rc.63 → 1.0.0-rc.64
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/bin/aws-nx-mcp.js +2 -1
- package/docs/guides/smithy-project.mdx +10 -18
- package/docs/guides/ts-smithy-api.mdx +37 -2
- package/package.json +1 -1
package/bin/aws-nx-mcp.js
CHANGED
|
@@ -20849,6 +20849,7 @@ const NX_VERSION = {
|
|
|
20849
20849
|
"class-variance-authority": "0.7.1",
|
|
20850
20850
|
clsx: "2.1.1",
|
|
20851
20851
|
commander: "15.0.0",
|
|
20852
|
+
"cpy-cli": "7.0.0",
|
|
20852
20853
|
electrodb: "3.9.1",
|
|
20853
20854
|
esbuild: "0.28.1",
|
|
20854
20855
|
"event-source-polyfill": "1.0.31",
|
|
@@ -20866,6 +20867,7 @@ const NX_VERSION = {
|
|
|
20866
20867
|
"@types/fs-extra": "11.0.4",
|
|
20867
20868
|
"make-dir-cli": "4.0.0",
|
|
20868
20869
|
mariadb: "3.5.3",
|
|
20870
|
+
mise: "2026.8.3",
|
|
20869
20871
|
ncp: "2.0.0",
|
|
20870
20872
|
npm: "12.0.2",
|
|
20871
20873
|
"npm-check-updates": "22.2.9",
|
|
@@ -20878,7 +20880,6 @@ const NX_VERSION = {
|
|
|
20878
20880
|
rimraf: "6.1.3",
|
|
20879
20881
|
rolldown: "1.2.2",
|
|
20880
20882
|
"rolldown-plugin-dts": "0.28.0",
|
|
20881
|
-
"@rollup/plugin-esm-shim": "0.1.8",
|
|
20882
20883
|
"simple-git": "3.36.0",
|
|
20883
20884
|
"source-map-support": "0.5.21",
|
|
20884
20885
|
"starlight-blog": "0.28.0",
|
|
@@ -43,7 +43,6 @@ If you want an API with an implementation, use the <Link path="guides/ts-smithy-
|
|
|
43
43
|
- src
|
|
44
44
|
- main.smithy Your shared shape definitions
|
|
45
45
|
- smithy-build.json Smithy build configuration
|
|
46
|
-
- build.Dockerfile Builds and validates the model
|
|
47
46
|
- project.json Project configuration and build targets
|
|
48
47
|
|
|
49
48
|
</FileTree>
|
|
@@ -64,7 +63,7 @@ structure Customer {
|
|
|
64
63
|
}
|
|
65
64
|
```
|
|
66
65
|
|
|
67
|
-
Since a shape library has no service, its `smithy-build.json` configures no code generation — building it validates the model and assembles it into a single JSON model file at `dist/<my-shapes>/build/model
|
|
66
|
+
Since a shape library has no service, its `smithy-build.json` configures no code generation — building it validates the model and assembles it into a single JSON model file at `dist/<my-shapes>/build/model.json`.
|
|
68
67
|
|
|
69
68
|
</OptionFilter>
|
|
70
69
|
|
|
@@ -80,7 +79,7 @@ Since a shape library has no service, its `smithy-build.json` configures no code
|
|
|
80
79
|
- operations
|
|
81
80
|
- echo.smithy An example operation
|
|
82
81
|
- smithy-build.json Smithy build configuration, including code generation
|
|
83
|
-
-
|
|
82
|
+
- ssdk.rolldown.config.mjs Bundles the generated TypeScript Server SDK
|
|
84
83
|
- project.json Project configuration and build targets
|
|
85
84
|
|
|
86
85
|
</FileTree>
|
|
@@ -110,39 +109,32 @@ Building a service project generates an OpenAPI specification and a TypeScript S
|
|
|
110
109
|
|
|
111
110
|
## Building
|
|
112
111
|
|
|
113
|
-
Smithy projects build
|
|
112
|
+
Smithy projects build with the [Smithy CLI](https://smithy.io/2.0/guides/smithy-cli/index.html), which validates your model:
|
|
114
113
|
|
|
115
114
|
<NxCommands commands={['build my-shapes']} />
|
|
116
115
|
|
|
116
|
+
On macOS and Linux the CLI is resolved by [mise](https://mise.jdx.dev/), which the build fetches on demand, so there is nothing to install — it downloads and caches the pinned version the first time you build. On Windows it is a prerequisite you install yourself — see <Link path="guides/ts-smithy-api#building-on-windows">Building on Windows</Link>.
|
|
117
|
+
|
|
117
118
|
## Depending on a Shape Library
|
|
118
119
|
|
|
119
|
-
Building a shape library writes an assembled model to `dist/<my-shapes>/build/model
|
|
120
|
+
Building a shape library writes an assembled model to `dist/<my-shapes>/build/model.json`. This single file contains every shape the library defines, along with any it depends on, so a consumer only ever declares the libraries it references directly.
|
|
120
121
|
|
|
121
|
-
To depend on a shape library from another Smithy project, make
|
|
122
|
+
To depend on a shape library from another Smithy project, make two changes to the consuming project:
|
|
122
123
|
|
|
123
124
|
<Steps>
|
|
124
125
|
|
|
125
|
-
1.
|
|
126
|
-
|
|
127
|
-
```dockerfile ins={4}
|
|
128
|
-
# Copy project files
|
|
129
|
-
COPY smithy-build.json .
|
|
130
|
-
COPY src src
|
|
131
|
-
COPY --from=workspace dist/packages/my-shapes/build/model/model.json deps/my-shapes.json
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
2. Add the copied file to `imports` in the consuming project's `smithy-build.json`:
|
|
126
|
+
1. Add the library's built model to `imports` in the consuming project's `smithy-build.json`. Paths are relative to that file, so the number of `../` segments matches how deeply the consuming project is nested — three for `packages/my-api/model` below:
|
|
135
127
|
|
|
136
128
|
```json ins={4}
|
|
137
129
|
{
|
|
138
130
|
"version": "1.0",
|
|
139
131
|
"sources": ["src/"],
|
|
140
|
-
"imports": ["
|
|
132
|
+
"imports": ["../../../dist/packages/my-shapes/build/model.json"],
|
|
141
133
|
...
|
|
142
134
|
}
|
|
143
135
|
```
|
|
144
136
|
|
|
145
|
-
|
|
137
|
+
2. Add the library's `build` target as a dependency of the consuming project's `compile` target in its `project.json`, so the model exists before the consumer builds:
|
|
146
138
|
|
|
147
139
|
```json ins={4}
|
|
148
140
|
{
|
|
@@ -49,7 +49,7 @@ The generator creates two related projects in the `<directory>/<api-name>` direc
|
|
|
49
49
|
- package.json Project manifest defining the project's package name and dependencies
|
|
50
50
|
- project.json Project configuration and build targets
|
|
51
51
|
- smithy-build.json Smithy build configuration
|
|
52
|
-
-
|
|
52
|
+
- ssdk.rolldown.config.mjs Bundles the generated TypeScript Server SDK
|
|
53
53
|
- src/
|
|
54
54
|
- main.smithy Main service definition
|
|
55
55
|
- operations/
|
|
@@ -576,10 +576,12 @@ export const Echo: EchoOperation<ServiceContext> = async (input, ctx) => {
|
|
|
576
576
|
|
|
577
577
|
## Building and Code Generation
|
|
578
578
|
|
|
579
|
-
The Smithy model project uses [
|
|
579
|
+
The Smithy model project uses the [Smithy CLI](https://smithy.io/2.0/guides/smithy-cli/index.html) to build the Smithy artifacts and generate the TypeScript Server SDK:
|
|
580
580
|
|
|
581
581
|
<NxCommands commands={['build <model-project>']} />
|
|
582
582
|
|
|
583
|
+
On macOS and Linux the CLI is resolved by [mise](https://mise.jdx.dev/), which the build fetches on demand, so there is nothing to install — it downloads and caches the pinned version the first time you build.
|
|
584
|
+
|
|
583
585
|
This process:
|
|
584
586
|
|
|
585
587
|
1. **Compiles the Smithy model** and validates it
|
|
@@ -591,6 +593,39 @@ The backend project automatically copies the generated SDK during compilation:
|
|
|
591
593
|
|
|
592
594
|
<NxCommands commands={['copy-ssdk <backend-project>']} />
|
|
593
595
|
|
|
596
|
+
### Building on Windows
|
|
597
|
+
|
|
598
|
+
`mise` publishes no Windows package to npm, so on Windows the Smithy CLI is a prerequisite you install yourself. Install it once following the [Smithy CLI installation guide](https://smithy.io/2.0/guides/smithy-cli/cli_installation.html) (for example `winget install smithy` or `scoop install smithy`), and make sure `smithy` is on your `PATH`. A Smithy project generated on Windows runs `smithy` directly rather than through `mise`.
|
|
599
|
+
|
|
600
|
+
:::caution[Upgrading the CLI]
|
|
601
|
+
Because the CLI is installed globally rather than pinned in your workspace, upgrading the workspace with `nx migrate` does **not** upgrade it. When a migration moves the Smithy dependencies forward, upgrade your global Smithy CLI to a matching version yourself.
|
|
602
|
+
:::
|
|
603
|
+
|
|
604
|
+
Alternatively, develop inside [WSL](https://learn.microsoft.com/en-us/windows/wsl/install), where the build runs the Linux path and `mise` resolves the CLI for you — nothing to install.
|
|
605
|
+
|
|
606
|
+
A project generated on Windows commits a `compile` target that invokes `smithy` directly, so anyone else working on it — including on macOS or Linux — needs the Smithy CLI on their `PATH` too. To have those machines resolve the CLI through `mise` instead, switch the target to the `mise` command as [described below](#choosing-how-the-cli-is-resolved).
|
|
607
|
+
|
|
608
|
+
### Choosing how the CLI is resolved
|
|
609
|
+
|
|
610
|
+
macOS and Linux resolve the CLI through `mise` and Windows uses a globally installed CLI, but you can pick either on any platform by editing the `compile` target's command in the model project's `project.json`.
|
|
611
|
+
|
|
612
|
+
To use a globally installed Smithy CLI instead of `mise`, replace the `mise` prefix with a bare `smithy`:
|
|
613
|
+
|
|
614
|
+
```json title="project.json" del={5} ins={6}
|
|
615
|
+
{
|
|
616
|
+
"targets": {
|
|
617
|
+
"compile": {
|
|
618
|
+
"options": {
|
|
619
|
+
"commands": ["... npx -y mise@<version> exec smithy@<version> -- smithy build ..."]
|
|
620
|
+
"commands": ["... smithy build ..."]
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
To go back to `mise` resolving the CLI, restore the `npx -y mise@<version> exec smithy@<version> --` prefix.
|
|
628
|
+
|
|
594
629
|
### Bundle Target
|
|
595
630
|
|
|
596
631
|
<Snippet name="ts-bundle" />
|