CliSubprocessCore.Session.Options (CliSubprocessCore v0.1.0)

Copy Markdown View Source

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

subscriber()

@type subscriber() :: pid() | {pid(), :legacy | reference()} | nil

t()

@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()
}

validation_error()

@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

execution_surface(options)

@spec execution_surface(t()) :: ExternalRuntimeTransport.ExecutionSurface.t()

new(opts)

@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.

new!(opts)

@spec new!(keyword()) :: t()

Builds a validated session options struct or raises.

provider_profile_options(options)

@spec provider_profile_options(t()) :: keyword()