> For the complete documentation index, see [llms.txt](https://docs.pal.aic.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pal.aic.io/foundations/installation-and-packaging.md).

# Installation and packaging

PAL.NET is a closed-source, licensed AIC product. Use an authorised private NuGet feed, an approved offline bundle, or the source checkout supplied for your customer engagement. Do not publish PAL.NET packages to a public feed or redistribute them outside the agreement that supplied them.

## Runtime package roles

The source solution separates contracts, generated models, runtime services, capability façades, tooling, and host composition:

| Area          | Project                           | Responsibility                                                                                                          |
| ------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Models        | `PAL.Core.Models.Domain`          | Immutable runtime, platform, Ontology, dataset, SQL, licensing, and compatibility contracts.                            |
| Runtime       | `PAL.Core.Services.Domain`        | Token boundary, request construction, transport, retries, diagnostics, errors, polling, and generated platform clients. |
| Ontology      | `PAL.Core.Services.Ontology`      | Dynamic metadata, objects, search, pagination, and action access.                                                       |
| Datasets      | `PAL.Core.Services.Datasets`      | Dataset metadata and streamed table reads.                                                                              |
| SQL           | `PAL.Core.Services.Sql`           | SQL execution, status, cancellation, and streamed results.                                                              |
| AIP Agents    | `PAL.Core.Services.AipAgents`     | Agent sessions, blocking exchanges, streaming responses, cancellation, and deletion.                                    |
| Compatibility | `PAL.Core.Services.Compatibility` | Baseline loading, manifest merging, scanning, and evidence.                                                             |
| Generation    | `PAL.Core.Services.Generation`    | Deterministic C# model and operation binding generation.                                                                |
| Tooling       | `PAL.Clients.Tools`               | The `palnet` executable for importing, generating, and scanning compatibility data.                                     |

## Target framework and language

The PAL.NET projects target `net10.0`, nullable reference types are enabled, and the distributable generated code is pinned to C# 10 syntax. Keep application target frameworks compatible with the package's declared dependencies.

## Source checkout build

```powershell
dotnet restore src/PAL.Platform.sln
dotnet build src/PAL.Platform.sln --configuration Release
dotnet test src/PAL.Platform.sln --configuration Release --no-build
```

The solution may require access to AIC's configured package sources. The PAL source contains `src/NuGet.Config`; use the supplied authenticated feed configuration for authorised development environments.

## Package and licence boundaries

The licence is an execution entitlement, not a package-distribution mechanism. A configured entitlement must identify the product and allowed deployment/enrollment context. Possession of a DLL or package does not grant redistribution rights.

Keep generated output and manifests together with the release that produced them. The generated source contains provenance constants; the manifests provide the source revision, specification hash, generator version, file hashes, and binding hash used by release gates.
