Discovery metadata and bridge helpers for the optional Claude-native ASM extension namespace.
This namespace lives above ASM's normalized kernel.
It does not implement Claude's richer control semantics itself. Instead it:
- publishes discovery metadata for the optional Claude-native surface
- derives
ClaudeAgentSDK.Optionsfrom ASM-style configuration, including normalized execution-surface data for CLI-backed families - starts
ClaudeAgentSDK.Clientwhen callers explicitly opt into the SDK-local control family
The actual control family remains in claude_agent_sdk.
Summary
Functions
Returns the SDK-local Claude client module.
Returns the Claude SDK control protocol module.
Derives ClaudeAgentSDK.Options from strict common ASM options.
Returns the Claude SDK hooks module.
Returns the Claude SDK permission module.
Derives ClaudeAgentSDK.Options from ASM-style Claude configuration.
Derives ClaudeAgentSDK.Options from an ASM session plus optional ASM/native
overrides.
Starts ClaudeAgentSDK.Client from ASM-style Claude configuration.
Starts ClaudeAgentSDK.Client from an ASM session plus optional ASM/native
overrides.
Functions
@spec available?() :: boolean()
@spec client_module() :: module()
Returns the SDK-local Claude client module.
@spec control_protocol_module() :: module()
Returns the Claude SDK control protocol module.
Derives ClaudeAgentSDK.Options from strict common ASM options.
Provider-native Claude options must be supplied in :native_overrides; they
are never read from the generic ASM option map.
@spec extension() :: ASM.Extensions.ProviderSDK.Extension.t()
@spec hooks_module() :: module()
Returns the Claude SDK hooks module.
@spec native_capabilities() :: [atom()]
@spec native_surface_modules() :: [module()]
@spec permission_module() :: module()
Returns the Claude SDK permission module.
@spec sdk_app() :: atom()
@spec sdk_module() :: module()
@spec sdk_options(keyword(), keyword()) :: {:ok, struct()} | {:error, ASM.Error.t()}
Derives ClaudeAgentSDK.Options from ASM-style Claude configuration.
native_overrides remains the explicit home for Claude-native options such as
hooks, permission callbacks, SDK MCP servers, file checkpointing, or thinking
configuration. Execution-surface placement stays on asm_opts.
@spec sdk_options_for_session(term(), keyword(), keyword()) :: {:ok, struct()} | {:error, ASM.Error.t()}
Derives ClaudeAgentSDK.Options from an ASM session plus optional ASM/native
overrides.
@spec start_client(keyword(), keyword(), keyword()) :: GenServer.on_start() | {:error, ASM.Error.t() | term()}
Starts ClaudeAgentSDK.Client from ASM-style Claude configuration.
ASM configuration stays on the first argument. Claude-native options live in
native_overrides. Direct runtime overrides such as :execution_surface or
:control_request_timeout_ms live in client_opts.
@spec start_client_for_session(term(), keyword(), keyword(), keyword()) :: GenServer.on_start() | {:error, ASM.Error.t() | term()}
Starts ClaudeAgentSDK.Client from an ASM session plus optional ASM/native
overrides.