PtcRunner.Kernel.InstallationCatalog (PtcRunner v0.14.0)

Copy Markdown View Source

Inert provider declarations paired with trusted implementations.

Phase 5 reads only descriptors; process-free implementations remain sealed for later active phases. Credential access is supplied separately through PtcRunner.Kernel.ProviderRuntimeServices when execution opens. Host-backed catalogs carry an opaque keyed binding so runtime services from a different host document are rejected before activation. Run-bound registry construction receives the exact selected aliases and their already-anchored operation deadline; unselected implementations and OAuth authorities never enter that registry. The two-argument embedding adapter intentionally opens the complete catalog under its own bounded activation deadline because it has no run selection. Catalog construction checks that active validators, connectivity probes, and local checks agree with their descriptors without invoking any callback. An :audited_local declaration additionally requires a runtime binding, so an embedder-assembled catalog cannot carry a check phase 7 runs before provider activity. The binding scopes that claim to a sealed host document; it does not attest that the callback itself came from a shipped installation recipe, which no in-process registration can prove about its own caller. Every builder placed in a run-bound registry carries the data policy its validated sealed descriptor declares, so a staged preparation cannot contradict the policy phase 5 and sink authorization already used.

Summary

Functions

Closes an inert catalog.

Fetches one inert descriptor by installed safe alias.

Returns installed aliases in UTF-8 byte order.

Validates and seals explicit registrations without invoking implementations.

Returns the closed selector-safe installed-provider projection.

Checks declaration/implementation parity and the catalog seal.

Types

implementation()

@type implementation() :: %{
  :builder => function(),
  optional(:oauth_builder) => function(),
  optional(:local_preflight) => (map(),
                                 map(),
                                 PtcRunner.Kernel.ProviderRuntimeServices.t() ->
                                   :ok | {:error, term()}),
  optional(:provider_application) => :req_llm,
  optional(:selection_validator) => function(),
  optional(:connectivity_probe) => (map(),
                                    map(),
                                    PtcRunner.Kernel.ProviderRuntimeServices.t() ->
                                      :ok | {:error, term()})
}

registration()

@type registration() :: %{
  descriptor: PtcRunner.Kernel.ProviderDescriptor.t(),
  implementation: implementation(),
  authority: PtcRunner.Kernel.MCPOAuth.Authority.t() | :host_runtime | nil
}

t()

@type t() :: %PtcRunner.Kernel.InstallationCatalog{
  attestation: binary() | nil,
  authorities: %{
    required(binary()) =>
      PtcRunner.Kernel.MCPOAuth.Authority.t() | :host_runtime | nil
  },
  descriptors: %{required(binary()) => PtcRunner.Kernel.ProviderDescriptor.t()},
  implementations: %{required(binary()) => implementation()},
  installation_config_digests: %{required(binary()) => binary()},
  installed_limits: PtcRunner.Kernel.Limits.t(),
  runtime_binding: binary() | nil
}

Functions

close(catalog)

@spec close(t()) :: :ok

Closes an inert catalog.

fetch(arg1, name)

@spec fetch(t(), binary()) :: {:ok, PtcRunner.Kernel.ProviderDescriptor.t()} | :error

Fetches one inert descriptor by installed safe alias.

names(installation_catalog)

@spec names(t()) :: [binary()]

Returns installed aliases in UTF-8 byte order.

new(registrations \\ %{}, opts \\ [])

@spec new(
  map(),
  keyword()
) :: {:ok, t()} | {:error, :invalid_installation_catalog}

Validates and seals explicit registrations without invoking implementations.

public_installations(catalog)

@spec public_installations(t()) :: [map()]

Returns the closed selector-safe installed-provider projection.

valid?(catalog)

@spec valid?(term()) :: boolean()

Checks declaration/implementation parity and the catalog seal.