ASM.Execution.Config (ASM v0.12.0)

Copy Markdown View Source

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

This module is the explicit carrier boundary between the ASM kernel, the frozen lower contract packet, and the Wave 5 durable session vocabulary:

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

The named boundary metadata groups carried above that packet are:

  • descriptor
  • route
  • attach_grant
  • replay
  • approval
  • callback
  • identity

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

boundary_contract_keys()

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

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