ClaudeAgentSDK.Runtime.CLI (claude_agent_sdk v0.17.2)

Copy Markdown View Source

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

start_option()

@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

build_invocation(opts)

@spec build_invocation(keyword()) ::
  {:ok, CliSubprocessCore.Command.t()} | {:error, term()}

capabilities()

@spec capabilities() :: [atom()]

close(session)

@spec close(pid()) :: :ok

end_input(session)

@spec end_input(pid()) :: :ok | {:error, term()}

info(session)

@spec info(pid()) :: map()

interrupt(session)

@spec interrupt(pid()) :: :ok | {:error, term()}

list_provider_sessions(opts \\ [])

@spec list_provider_sessions(keyword()) :: {:ok, [map()]} | {:error, term()}

new_projection_state(info \\ %{})

@spec new_projection_state(map()) :: ClaudeAgentSDK.Runtime.CLI.ProjectionState.t()

project_event(event, state)

send_input(session, input, opts \\ [])

@spec send_input(pid(), iodata() | map() | list(), keyword()) ::
  :ok | {:error, term()}

start_session(opts)

@spec start_session([start_option()]) ::
  {:ok, pid(),
   %{
     info: map(),
     projection_state: ClaudeAgentSDK.Runtime.CLI.ProjectionState.t()
   }}
  | {:error, term()}

subscribe(session, pid, ref)

@spec subscribe(pid(), pid(), reference()) :: :ok | {:error, term()}