ASM.Execution.Config (ASM v0.9.2)

Copy Markdown View Source

Normalized execution-mode, execution-surface, and execution-environment configuration with precedence-aware merging.

In Wave 1 this module is also the explicit carrier boundary between the ASM kernel and the frozen lower contract packet:

  • BoundarySessionDescriptor.v1
  • AttachGrant.v1
  • ExecutionEvent.v1
  • ExecutionOutcome.v1
  • ProcessExecutionIntent.v1
  • JsonRpcExecutionIntent.v1

execution_surface and execution_environment remain the family-facing mapped carrier IR here. The detailed lower intent interiors stay provisional until Wave 3 prove-out.

Summary

Types

remote_t()

@type remote_t() :: %{
  remote_node: atom(),
  remote_cookie: atom() | nil,
  remote_connect_timeout_ms: pos_integer(),
  remote_rpc_timeout_ms: pos_integer(),
  remote_boot_lease_timeout_ms: pos_integer(),
  remote_bootstrap_mode: :require_prestarted | :ensure_started,
  remote_cwd: String.t() | nil
}

t()

@type t() :: %ASM.Execution.Config{
  execution_environment: ASM.Execution.Environment.t(),
  execution_mode: :local | :remote_node,
  execution_surface: CliSubprocessCore.ExecutionSurface.t(),
  provider_permission_mode: atom() | nil,
  remote: remote_t() | nil,
  transport_call_timeout_ms: pos_integer()
}

Functions

execution_plane_contracts()

@spec execution_plane_contracts() :: [String.t(), ...]

provisional_minimal_lane_contracts()

@spec provisional_minimal_lane_contracts() :: [String.t(), ...]

resolve(session_stream_opts, run_stream_opts, opts \\ [])

@spec resolve(keyword(), keyword(), keyword()) :: {:ok, t()} | {:error, ASM.Error.t()}

to_execution_environment(config)

@spec to_execution_environment(t()) :: ASM.Execution.Environment.t()

to_execution_surface(config)

@spec to_execution_surface(t()) :: CliSubprocessCore.ExecutionSurface.t()