ExternalRuntimeTransport.ExecutionSurface
(ExternalRuntimeTransport v0.1.0)
Copy Markdown
View Source
Public execution-surface contract for process placement and transport routing.
This contract is intentionally narrow:
surface_kindselects the runtime surfacetransport_optionscarries transport-only datatarget_id,lease_ref,surface_ref, andboundary_classstay typedobservabilityremains an opaque metadata bag
Provider family, command selection, and process launch arguments do not
belong in ExecutionSurface.
Summary
Types
@type adapter_surface_kind() :: atom()
@type contract_version() :: String.t()
@type projected_t() :: %{ contract_version: contract_version(), surface_kind: surface_kind(), transport_options: map(), target_id: String.t() | nil, lease_ref: String.t() | nil, surface_ref: String.t() | nil, boundary_class: boundary_class(), observability: map() }
@type reserved_key() ::
:contract_version
| :surface_kind
| :transport_options
| :target_id
| :lease_ref
| :surface_ref
| :boundary_class
| :observability
@type resolution_error() :: {:unsupported_surface_kind, surface_kind()}
@type resolved() :: %{ adapter_capabilities: ExternalRuntimeTransport.ExecutionSurface.Capabilities.t(), dispatch: dispatch(), adapter_options: keyword(), surface: t() }
@type surface_kind() :: :local_subprocess | :ssh_exec | :guest_bridge
@type t() :: %ExternalRuntimeTransport.ExecutionSurface{ boundary_class: boundary_class(), contract_version: contract_version(), lease_ref: String.t() | nil, observability: map(), surface_kind: surface_kind(), surface_ref: String.t() | nil, target_id: String.t() | nil, transport_options: keyword() }
@type validation_error() :: {:invalid_contract_version, term()} | {:invalid_surface_kind, term()} | {:invalid_transport_options, term()} | {:invalid_execution_surface, term()} | {:invalid_target_id, term()} | {:invalid_lease_ref, term()} | {:invalid_surface_ref, term()} | {:invalid_boundary_class, term()} | {:invalid_observability, term()} | {:adapter_not_loaded, module()}
Functions
@spec capabilities(t() | surface_kind() | keyword() | map() | nil) :: {:ok, ExternalRuntimeTransport.ExecutionSurface.Capabilities.t()} | {:error, term()}
@spec contract_version() :: String.t()
@spec default_surface_kind() :: :local_subprocess
@spec new(keyword()) :: {:ok, t()} | {:error, validation_error()}
@spec nonlocal_path_surface?(t() | surface_kind() | keyword() | map() | nil) :: boolean()
@spec normalize_surface_kind(term()) :: {:ok, surface_kind()} | {:error, {:invalid_surface_kind, term()}}
@spec path_semantics(t() | surface_kind() | keyword() | map() | nil) :: ExternalRuntimeTransport.ExecutionSurface.Capabilities.path_semantics() | nil
@spec remote_surface?(t() | surface_kind() | keyword() | map() | nil) :: boolean()
@spec remote_surface_kind?(surface_kind()) :: boolean()
@spec reserved_keys() :: [reserved_key(), ...]
@spec resolve(keyword()) :: {:ok, resolved()} | {:error, validation_error() | resolution_error()}
@spec supported_surface_kinds() :: [adapter_surface_kind(), ...]
@spec to_map(t()) :: projected_t()