Raxol.AgentClientProtocol.Ext.Schema.SteerRequest (Raxol Agent Client Protocol v0.1.0)

Copy Markdown View Source

_raxol/session.steer request: redirect a running turn with new user input WITHOUT killing it, addressed by sessionId. A steer is the sibling of interrupt (kill-now); it injects at the next turn boundary.

Fields:

  • session_id — the target session (routing key).
  • text — the steering text.
  • expected_turn_id — the turn ordinal the client believes is running; the compare-and-swap target. A JSON scalar (the turn turnId the client learned from the turn's start event); carried through opaquely.
  • client_msg_id — the client-supplied idempotency key, or nil.

expected_turn_id is grow-only opaque: this layer never interprets it, it only round-trips the JSON value to the CAS decision core.

Summary

Types

t()

@type t() :: %Raxol.AgentClientProtocol.Ext.Schema.SteerRequest{
  client_msg_id: term() | nil,
  expected_turn_id: term(),
  session_id: String.t(),
  text: String.t() | nil
}

Functions

from_json(map)

@spec from_json(map()) :: {:ok, t()} | {:error, term()}

new(session_id, text, expected_turn_id, client_msg_id \\ nil)

@spec new(String.t(), String.t() | nil, term(), term() | nil) :: t()

to_json(r)

@spec to_json(t()) :: map()