ExecutionPlane.Process.Transport.Options (execution_plane v0.1.0)

Copy Markdown View Source

Normalized startup options for the raw transport layer.

Summary

Functions

Builds a validated transport options struct.

Builds a validated transport options struct or raises.

Types

subscriber()

@type subscriber() ::
  pid()
  | {pid(), ExecutionPlane.Process.Transport.explicit_subscription_tag()}
  | nil

t()

@type t() :: %ExecutionPlane.Process.Transport.Options{
  adapter_capabilities:
    ExecutionPlane.Process.Transport.Surface.Capabilities.t() | nil,
  adapter_metadata: map(),
  args: [String.t()],
  boundary_class: ExecutionPlane.Process.Transport.Surface.boundary_class(),
  bridge_profile: String.t() | nil,
  buffer_events_until_subscribe?: boolean(),
  buffer_overflow_mode: :fatal,
  clear_env?: boolean(),
  close_stdin_on_start?: boolean(),
  command: String.t(),
  cwd: String.t() | nil,
  effective_capabilities:
    ExecutionPlane.Process.Transport.Surface.Capabilities.t() | nil,
  env: ExecutionPlane.Command.env_map(),
  event_tag: atom(),
  extensions: map(),
  headless_timeout_ms: pos_integer() | :infinity,
  interrupt_mode: :signal | {:stdin, binary()},
  invocation_override: ExecutionPlane.Command.t() | nil,
  lease_ref: String.t() | nil,
  max_buffer_size: pos_integer(),
  max_buffered_events: pos_integer(),
  max_recoverable_line_bytes: pos_integer(),
  max_stderr_buffer_size: pos_integer(),
  observability: map(),
  os: module(),
  oversize_line_chunk_bytes: pos_integer(),
  oversize_line_mode: :chunk_then_fail,
  protocol_version: pos_integer() | nil,
  pty?: boolean(),
  replay_stderr_on_subscribe?: boolean(),
  startup_mode: :eager | :lazy,
  stderr_callback: (binary() -> any()) | nil,
  stdin_mode: :line | :raw,
  stdout_mode: :line | :raw,
  subscriber: subscriber(),
  surface_kind: ExecutionPlane.Process.Transport.surface_kind(),
  surface_ref: String.t() | nil,
  target_id: String.t() | nil,
  task_supervisor: pid() | atom(),
  transport_options: keyword(),
  user: ExecutionPlane.Command.user()
}

validation_error()

@type validation_error() ::
  :missing_command
  | {:invalid_surface_kind, term()}
  | {:invalid_target_id, term()}
  | {:invalid_lease_ref, term()}
  | {:invalid_surface_ref, term()}
  | {:invalid_boundary_class, term()}
  | {:invalid_observability, term()}
  | {:invalid_command, term()}
  | {:invalid_args, term()}
  | {:invalid_cwd, term()}
  | {:invalid_env, term()}
  | {:invalid_clear_env, term()}
  | {:invalid_user, term()}
  | {:invalid_stdout_mode, term()}
  | {:invalid_stdin_mode, term()}
  | {:invalid_pty, term()}
  | {:invalid_interrupt_mode, term()}
  | {:invalid_os, term()}
  | {:invalid_subscriber, term()}
  | {:invalid_startup_mode, term()}
  | {:invalid_task_supervisor, term()}
  | {:invalid_event_tag, term()}
  | {:invalid_headless_timeout_ms, term()}
  | {:invalid_max_buffer_size, term()}
  | {:invalid_oversize_line_chunk_bytes, term()}
  | {:invalid_max_recoverable_line_bytes, term()}
  | {:invalid_oversize_line_mode, term()}
  | {:invalid_buffer_overflow_mode, term()}
  | {:invalid_line_recovery_limits, term()}
  | {:invalid_max_stderr_buffer_size, term()}
  | {:invalid_max_buffered_events, term()}
  | {:invalid_stderr_callback, term()}
  | {:invalid_close_stdin_on_start, term()}
  | {:invalid_replay_stderr_on_subscribe, term()}
  | {:invalid_buffer_events_until_subscribe, term()}
  | {:invalid_bridge_profile, term()}
  | {:invalid_protocol_version, term()}
  | {:invalid_extensions, term()}
  | {:invalid_capabilities, term()}

Functions

new(opts)

@spec new(keyword()) ::
  {:ok, t()} | {:error, {:invalid_transport_options, validation_error()}}

Builds a validated transport options struct.

new!(opts)

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

Builds a validated transport options struct or raises.