Cohesive.Adapters.Aspire
0.1.0-alpha.82
dotnet add package Cohesive.Adapters.Aspire --version 0.1.0-alpha.82
NuGet\Install-Package Cohesive.Adapters.Aspire -Version 0.1.0-alpha.82
<PackageReference Include="Cohesive.Adapters.Aspire" Version="0.1.0-alpha.82" />
<PackageVersion Include="Cohesive.Adapters.Aspire" Version="0.1.0-alpha.82" />
<PackageReference Include="Cohesive.Adapters.Aspire" />
paket add Cohesive.Adapters.Aspire --version 0.1.0-alpha.82
#r "nuget: Cohesive.Adapters.Aspire, 0.1.0-alpha.82"
#:package Cohesive.Adapters.Aspire@0.1.0-alpha.82
#addin nuget:?package=Cohesive.Adapters.Aspire&version=0.1.0-alpha.82&prerelease
#tool nuget:?package=Cohesive.Adapters.Aspire&version=0.1.0-alpha.82&prerelease
Cohesive.Adapters.Aspire
This adapter projects an exact InfrastructureLocalRealizationDocument into an inspectable Aspire resource graph. Cohesive.Infra.Local remains the semantic authority: the projection retains the exact physical-realization reference, local-realization fingerprint, environment policy, effective configuration attribution, canonical services, endpoints, health, readiness, operations, and target-specific decisions. Those decisions use the shared InfrastructureLocalTargetDecision evidence contract and target-neutral concern identities so differential conformance can compare Aspire with other lifecycle interpreters without inventing another capability catalog.
AspireLocalCompiler.Compile is pure and deterministic. It performs no Aspire, Docker, filesystem, network, or secret I/O. AddCohesiveLocalInfrastructure is the separate runtime application boundary that turns a successful projection into AppHost resources.
Foreign-managed services become Aspire ExternalServiceResource instances only when every declared endpoint has a
concrete host-loopback address. The representative endpoint supplies the external-service URI; a representative
Uri environment value is bound through Aspire's resource reference, while secondary endpoints and alternate
encodings use their exact resolved host URIs. Missing host exposure or effective host-port configuration fails before
projection, so the adapter never substitutes an Aspire resource name for a service that lives outside Aspire's
network.
AspireInfrastructureObservations.CaptureCurrent is the runtime observation boundary. It reads Aspire's current ResourceNotificationService snapshots for the exact resources returned by AddCohesiveLocalInfrastructure, verifies their physical identity and projection fingerprints, and normalizes Aspire lifecycle and health evidence into canonical InfrastructureResourceObservation values. Services for which Aspire has not published an event remain absent so InfrastructureReadinessEvaluator can emit its provider-neutral missing-observation diagnostic. AssessCurrent composes the same capture with that evaluator after verifying the exact physical-realization fence; applications do not implement state normalization or readiness computation.
Aspire considers only a Running resource with Healthy aggregate health ready. Degraded and Unhealthy health, known non-running lifecycle states, unrecognized states, and identity-fence failures retain structured adapter diagnostics and exact Aspire/local-projection provenance. Health-report exception text is intentionally not copied into portable diagnostics.
The current stable Aspire health API natively represents HTTP endpoint probes, but not container command probes or per-resource polling cadence. Command probes therefore fail closed unless compilation receives an exact AspireCommandHealthOverride with service, executable, arguments, replacement endpoint, rationale, and source references. Polling timing remains retained in the service projection and is declared as a constrained target decision rather than silently discarded.
Literal and effective-configuration-backed listener ports are resolved from the same canonical Infra port value used by service environment and endpoint declarations. This preserves services such as the Cosmos emulator whose internal listener and externally advertised port must move together in parallel worktrees.
Persistent local profiles use deterministic named container volumes, so ordinary AppHost stops do not remove data. Ephemeral isolated profiles use anonymous volumes and enforce the canonical maximum lifetime in the AppHost. Environment mutations remain lifecycle-controlled; read-only and application-mutation host operations are exposed as stable Aspire resource commands visible to both dashboard and API clients.
The harness AppHost keeps its resource service and dashboard on HTTPS while disabling automatic export of the host developer-certificate private key. DCP instead uses its supported ephemeral self-signed TLS identity, which avoids headless macOS Keychain export stalls without permitting unsecured transport.
No Aspire type is referenced by Cohesive.Infra.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Aspire.Hosting (>= 13.5.2)
- Cohesive.Infra (>= 0.1.0-alpha.82)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.82 | 31 | 9/16/2026 |
| 0.1.0-alpha.81 | 35 | 9/16/2026 |
| 0.1.0-alpha.80 | 79 | 9/8/2026 |
| 0.1.0-alpha.79 | 73 | 9/7/2026 |
| 0.1.0-alpha.78 | 59 | 9/7/2026 |
| 0.1.0-alpha.77 | 62 | 9/7/2026 |
| 0.1.0-alpha.76 | 67 | 9/6/2026 |
| 0.1.0-alpha.75 | 70 | 9/6/2026 |
| 0.1.0-alpha.74 | 78 | 9/6/2026 |
| 0.1.0-alpha.73 | 115 | 9/5/2026 |
| 0.1.0-alpha.72 | 63 | 9/5/2026 |
| 0.1.0-alpha.71 | 57 | 9/4/2026 |
| 0.1.0-alpha.70 | 70 | 9/4/2026 |
| 0.1.0-alpha.69 | 84 | 9/2/2026 |
| 0.1.0-alpha.68 | 67 | 8/30/2026 |
| 0.1.0-alpha.66.5 | 65 | 9/6/2026 |
| 0.1.0-alpha.66.4 | 60 | 8/30/2026 |
| 0.1.0-alpha.66.3 | 64 | 8/29/2026 |
| 0.1.0-alpha.66.2 | 62 | 8/27/2026 |
| 0.1.0-alpha.66.1 | 62 | 8/26/2026 |