ExMCP.ACP.Adapters.ClaudeSDK.Mapper (ex_mcp v1.0.0-rc.0)

View Source

Pure Claude SDK message to ACP message mapping.

Summary

Functions

Maps a client JSON-RPC response back into a Claude control response.

Builds dynamic config options from SDK initialization/model state.

Static mode list for Claude permission modes.

Builds the dynamic ACP modes result.

Maps one decoded SDK stdout message into ACP messages and SDK writes.

Replays persisted Claude JSONL transcript entries as ACP session updates.

Builds the dynamic session setup result for the current adapter state.

Classifies a Claude SDK result into an ACP stop reason.

Functions

client_response(arg1, state)

@spec client_response(map(), map()) :: {:ok, iodata(), map()} | :unknown

Maps a client JSON-RPC response back into a Claude control response.

config_options(state)

@spec config_options(map()) :: [map()]

Builds dynamic config options from SDK initialization/model state.

modes()

@spec modes() :: [map()]

Static mode list for Claude permission modes.

modes_result(state)

@spec modes_result(map()) :: map()

Builds the dynamic ACP modes result.

reduce_message(event, state)

@spec reduce_message(map(), map()) :: {[map()], [iodata()], map()}

Maps one decoded SDK stdout message into ACP messages and SDK writes.

replay_messages(events, state)

@spec replay_messages([map()], map()) :: {[map()], map()}

Replays persisted Claude JSONL transcript entries as ACP session updates.

session_result(state, session_id)

@spec session_result(map(), String.t()) :: map()

Builds the dynamic session setup result for the current adapter state.

stop_reason(arg1)

@spec stop_reason(map()) :: String.t()

Classifies a Claude SDK result into an ACP stop reason.