LemonRouter. AgentInbox
(lemon_router v0.1.0)
View Source
BEAM-local inbox API for sending messages to agent sessions.
Session selectors:
:latest- latest active/recent session:new- route-preserving new fork (:sub:<id>)- explicit session key - direct target
Summary
Types
Resolved session destination.
Session selector for inbox delivery.
Primary inbox routing target.
Functions
Resolve a selector (:latest, :new, explicit key) into a concrete session key.
Send a prompt to an agent inbox.
Types
@type resolution() :: %{ session_key: binary(), route_session_key: binary() | nil, selector: session_selector(), resolved_from: :explicit | :latest | :new | :fallback_main, route: LemonRouter.AgentEndpoints.route() | nil, target: binary() | nil }
Resolved session destination.
@type session_selector() :: :latest | :new | binary()
Session selector for inbox delivery.
@type target_resolution() :: %{ route: LemonRouter.AgentEndpoints.route(), endpoint: LemonRouter.AgentEndpoints.endpoint() | nil, target: binary() }
Primary inbox routing target.
Functions
@spec resolve_session(binary(), session_selector(), keyword()) :: {:ok, resolution()} | {:error, term()}
Resolve a selector (:latest, :new, explicit key) into a concrete session key.
@spec send(binary(), binary(), keyword()) :: {:ok, %{ run_id: binary(), session_key: binary(), selector: session_selector(), fanout_count: non_neg_integer() }} | {:error, term()}
Send a prompt to an agent inbox.
Options:
:session-:latest | :new | session_key(default::latest):to/:endpoint/:route- primary destination:deliver_to- optional fanout destinations (endpoint aliases, shorthand, or route maps):queue_mode,:engine_id,:model,:cwd,:tool_policy,:meta,:source