Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
c878c4b
Share TypeScript API projection
adamint Aug 5, 2026
ab7100e
Expose canonical SDK API exports
adamint Aug 5, 2026
ec0099e
Add SDK API export command
adamint Aug 5, 2026
8f6ea4a
Make exported declaration fragments self-contained
adamint Aug 5, 2026
bb015af
Reference the code generation package from sdk export
adamint Aug 5, 2026
529d9b9
Stop augmentations from claiming another package's type
adamint Aug 5, 2026
337e075
Pin out-of-repo scanner packages with VersionOverride
adamint Aug 5, 2026
0f84198
Dispose the scanner session when startup fails
adamint Aug 5, 2026
e9f54d7
Normalize declaration content line endings
adamint Aug 5, 2026
e3e506e
Make augmentation IDs unique and project client-only DTO properties
adamint Aug 5, 2026
f08d9e1
Reject core version skew in sdk export
adamint Aug 5, 2026
bb03ab9
Route sdk export diagnostics to stderr
adamint Aug 5, 2026
b35c38b
Restore the generated scanner project in the CPM test
adamint Aug 6, 2026
4397483
Fix TypeScript API export parameters
Aug 7, 2026
4924741
Preserve TypeScript API export ownership
Aug 7, 2026
e606886
Make sdk export restore the version it labels
Aug 7, 2026
459d81c
Verify sdk export provenance instead of trusting a name or an override
Aug 7, 2026
d204a1b
Check the core export against the checkout, not just the identity
Aug 7, 2026
5641913
Resolve the core substitution under its canonical name
Aug 7, 2026
56ffd1a
Settle the package id's spelling before anything acts on it
Aug 7, 2026
9f9fccb
Don't lose the scanner to an unreadable src directory
Aug 7, 2026
a037884
Publish an export under the package id the assembly carries
Aug 7, 2026
a165096
Canonicalize against the names the filter matches on
Aug 7, 2026
34f64a3
Say which type broke the guard, not just that one did
Aug 7, 2026
f55f47b
Name an export's options interfaces the way the SDK names them
Aug 7, 2026
d6d6a1b
Back out a naming fix that cannot fire where it matters
Aug 7, 2026
1db91e5
Derive TypeScript options interface names from the owning assembly
Aug 7, 2026
c7eacda
Pin export/generate naming agreement to the filtered context
Aug 7, 2026
60a57ea
Correct what the naming-agreement remark claims
Aug 7, 2026
2886db7
Prune per-capability registries to the capabilities a scan keeps
Aug 7, 2026
e30db3c
Fix three identity bugs in TypeScript export naming and gating
Aug 7, 2026
e6cc066
Fix package assembly scoping for API export
Aug 8, 2026
e837c41
Flow package probe manifest through repo apphost server
Aug 8, 2026
59bedbf
Make TypeScript options qualifiers injective
Aug 8, 2026
8693974
Guard TypeScript options interface collisions
Aug 9, 2026
b329056
Fix TypeScript API export review gaps
adamint Aug 9, 2026
f27bf0d
Tighten TypeScript API export versioning
adamint Aug 9, 2026
7b1a3af
Validate the substituted code generator against the CLI identity
adamint Aug 9, 2026
e279ec3
Address review findings on the canonical TypeScript API export
Aug 9, 2026
9125b7d
Export the version NuGet resolves on both package paths
Aug 9, 2026
390faaa
Apply the projector's optionality rule to the compat guard
Aug 9, 2026
c9061a2
Send the generator name the server keys on
Aug 9, 2026
f88c123
Check the options interface the generator will actually emit
Aug 9, 2026
a3c517f
Remove the stray commit-message scratch file
Aug 9, 2026
1374c3f
Stop resolving a blank --language to whichever came first alphabetically
Aug 9, 2026
d218959
Catch a projected method rename the capability id hides
Aug 10, 2026
d80f301
Terminate the options interface qualifier
Aug 10, 2026
5d95348
Qualify the two colliding options interface names
Aug 10, 2026
3e13676
Accept four-segment NuGet package versions
Aug 10, 2026
6f23cbd
Put the opening brace on its own line
Aug 10, 2026
2e1a9db
Pin the two shipped options interface collisions
Aug 10, 2026
bc0d1c5
Validate the suffix on a four-segment version
Aug 10, 2026
5563e7c
Keep the generator path off the new AtsContext member
Aug 10, 2026
98991cc
Add regression coverage for four-segment build metadata in sdk export
Aug 10, 2026
daeb8ed
Merge branch 'main' into adamint/versioned-ts-api-docs
adamint Aug 10, 2026
fa64fe6
Reduce API export to the focused contract
Aug 10, 2026
024178a
Address focused API export review findings
Aug 10, 2026
c5f87c6
Tighten API export contracts
Aug 10, 2026
5676f20
Fix empty union projection test
Aug 10, 2026
37fe731
Fix exact package restore with CPM
Aug 10, 2026
c7fd567
Fix canonical package identity in SDK exports
Aug 11, 2026
dc14f2e
Accept four-part NuGet versions in SDK export
Aug 11, 2026
6a279f7
Propagate canonical package IDs in probe manifests
Aug 11, 2026
0c56951
Normalize zero NuGet version revisions
Aug 11, 2026
644a7d5
Merge upstream/main into adamint/versioned-ts-api-docs
Aug 14, 2026
8753075
Keep sdk export package restores explicit
Aug 14, 2026
7a628a4
Honor pre-canceled API exports
Aug 14, 2026
59cb35a
Fix package identity for copied integration assets
Aug 14, 2026
30f306d
Ignore stale ATS capability registry entries
Aug 14, 2026
84ac5a0
Reject mismatched emulated core exports
Aug 14, 2026
7befb3b
Merge origin/main into sdk export branch
adamint Aug 24, 2026
5abdc5d
Address sdk export review findings
adamint Aug 24, 2026
22b5bc0
Strengthen package export collision coverage
adamint Aug 24, 2026
7a53efb
Merge latest main into sdk export
adamint Aug 24, 2026
8d8f782
Normalize TypeScript export test line endings
adamint Aug 24, 2026
90586da
Reject incompatible generator package exports
adamint Aug 25, 2026
93cc33e
Reject generator package API exports
adamint Aug 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion docs/specs/cli-output-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,7 @@ The top-level arrays are:

| Field | Description |
| ----- | ----------- |
| `packages` | Packages or projects scanned for capabilities. |
| `packages` | Packages or projects scanned for capabilities. `version` is the version that was **requested**, not the one NuGet resolved: package restore uses a minimum-version reference, so the assembly actually scanned may be newer. Use `aspire sdk export` when the version label has to be exact. Project references are omitted because they have no version. |
| `capabilities` | Builder methods and other callable capabilities. |
| `handleTypes` | Resource or builder handle types. |
| `dtoTypes` | DTO types used by capabilities. |
Expand All @@ -612,3 +612,9 @@ The top-level arrays are:
| `diagnostics` | Errors, warnings, and informational diagnostics from capability discovery. |

`aspire sdk dump --format ci` emits a stable text format intended for diffs rather than JSON parsing.

### `aspire sdk export`

`aspire sdk export --package Name@Version --language typescript` restores the exact integration package version and writes one canonical JSON document to standard output. `Aspire.Hosting` can only be exported at the CLI's SDK version. The selected language's code-generation package cannot be exported because it supplies the generator instead of an integration API surface. Omit `--package` to export `Aspire.Hosting` at the running CLI's SDK version. Diagnostics are written to standard error.

The top-level fields are `schemaVersion`, `language`, `generator`, `package`, `modules`, and `declarations`. The language exporter owns the schema; the CLI passes it through without reshaping it.
2 changes: 2 additions & 0 deletions src/Aspire.Cli/Commands/Sdk/SdkCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@ internal sealed class SdkCommand : ParentCommand
public SdkCommand(
SdkGenerateCommand generateCommand,
SdkDumpCommand dumpCommand,
SdkExportCommand exportCommand,
CommonCommandServices services)
: base("sdk", "Commands for generating SDKs for building Aspire integrations in other languages.", services)
{
Hidden = true;
Subcommands.Add(generateCommand);
Subcommands.Add(dumpCommand);
Subcommands.Add(exportCommand);
}
}
Loading
Loading