HTTP/SSE server for remote agent session observation.
Provides REST endpoints for session listing and SSE endpoints for real-time event streaming. Built on Plug for zero Phoenix dependency.
Requires plug as a dependency (available transitively via raxol).
Endpoints
GET /sessions-- list active sessions (JSON)GET /sessions/:id-- session info (JSON)GET /sessions/:id/events-- SSE stream of real-time eventsGET /sessions/:id/history-- recent event history (JSON)
Usage
# Start as part of supervision tree (requires Bandit or Plug.Cowboy)
children = [
{Raxol.Agent.SessionStreamer, []},
{Bandit, plug: Raxol.Agent.SessionStreamServer, port: 4001}
]
# Or start manually
{:ok, _} = Bandit.start_link(
plug: {Raxol.Agent.SessionStreamServer, streamer: MyStreamer},
port: 4001
)SSE Format
Events are sent as Server-Sent Events with JSON data:
event: text_delta
data: {"text":"Hello"}
event: tool_use
data: {"name":"read_file","arguments":{"path":"mix.exs"},"id":"t1"}
event: state_change
data: {"from":"thinking","to":"acting"}
Summary
Functions
Callback implementation for Plug.call/2.
Functions
Callback implementation for Plug.call/2.