Session-oriented runtime kit for the shared Claude CLI lane.
The tagged mailbox event atom is provider-owned adapter detail. Higher-level callers should prefer the projected Claude stream events instead of matching a core session tag directly.
Summary
Types
@type start_option() :: {:options, ClaudeAgentSDK.Options.t()} | {:execution_surface, CliSubprocessCore.ExecutionSurface.t() | map() | keyword()} | {:subscriber, pid() | {pid(), reference() | :legacy}} | {:metadata, map()} | {:session_event_tag, atom()} | {:startup_mode, :eager | :lazy} | {:task_supervisor, pid() | atom()} | {:headless_timeout_ms, pos_integer() | :infinity} | {:max_buffer_size, pos_integer()} | {:max_stderr_buffer_size, pos_integer()}
Functions
@spec build_invocation(keyword()) :: {:ok, CliSubprocessCore.Command.t()} | {:error, term()}
@spec capabilities() :: [atom()]
@spec close(pid()) :: :ok
@spec new_projection_state(map()) :: ClaudeAgentSDK.Runtime.CLI.ProjectionState.t()
@spec project_event( CliSubprocessCore.Event.t(), ClaudeAgentSDK.Runtime.CLI.ProjectionState.t() ) :: {[map()], ClaudeAgentSDK.Runtime.CLI.ProjectionState.t()}
@spec start_session([start_option()]) :: {:ok, pid(), %{ info: map(), projection_state: ClaudeAgentSDK.Runtime.CLI.ProjectionState.t() }} | {:error, term()}