Raxol.Agent.SessionStreamServer (Raxol Agent v2.6.0)

Copy Markdown View Source

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 events
  • GET /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

call(conn, opts)

Callback implementation for Plug.call/2.