Validated startup options for the common session engine.
Summary
Functions
Builds a validated session options struct.
Builds a validated session options struct or raises.
Types
@type t() :: %CliSubprocessCore.Session.Options{ boundary_class: ExternalRuntimeTransport.ExecutionSurface.boundary_class(), lease_ref: String.t() | nil, metadata: map(), observability: map(), profile: module() | nil, provider: atom(), provider_options: keyword(), registry: pid() | atom(), session_event_tag: atom(), starter: {pid(), reference()} | nil, subscriber: subscriber(), surface_kind: ExternalRuntimeTransport.Transport.surface_kind(), surface_ref: String.t() | nil, target_id: String.t() | nil, transport_options: keyword() }
@type validation_error() :: :missing_provider | {:invalid_provider, term()} | {:invalid_profile, term()} | {:provider_profile_mismatch, atom(), atom()} | {:invalid_registry, term()} | {:unsupported_option, :transport_selector} | {:invalid_subscriber, term()} | {:invalid_metadata, term()} | {:invalid_session_event_tag, term()} | {:invalid_surface_kind, term()} | {:invalid_transport_options, term()} | {:invalid_target_id, term()} | {:invalid_lease_ref, term()} | {:invalid_surface_ref, term()} | {:invalid_boundary_class, term()} | {:invalid_observability, term()} | {:invalid_starter, term()}
Functions
@spec execution_surface(t()) :: ExternalRuntimeTransport.ExecutionSurface.t()
@spec new(keyword()) :: {:ok, t()} | {:error, validation_error()}
Builds a validated session options struct.
Reserved session keys stay on the struct while all remaining keys are passed
through to the selected provider profile as provider_options.
Builds a validated session options struct or raises.