pub struct InjectRequest {Show 14 fields
pub target_agent: String,
pub message: String,
pub source_agent: Option<String>,
pub request_id: Option<String>,
pub ts_secs: Option<i64>,
pub jekt_sig: Option<String>,
pub lan_sig: Option<String>,
pub source_channel: Option<String>,
pub channel_sig: Option<String>,
pub source_uid: Option<String>,
pub channel_sig_v2: Option<String>,
pub lan_sig_v2: Option<String>,
pub wan_sig: Option<String>,
pub wan_source_host: Option<String>,
}Expand description
POST /agentmux/reactive/inject — deliver a message to an agent.
Used by the SendMessage and Loop MCP tools.
Fields§
§target_agent: String§message: String§source_agent: Option<String>§request_id: Option<String>Message id this jekt was signed under — required for jekt_sig to be
verifiable (the signed material binds msgid, sender, target, and
timestamp together). None when unsigned (e.g. AGENTMUX_JEKT_KEY
wasn’t available — legacy/unverified, same as omitting jekt_sig).
ts_secs: Option<i64>Unix seconds this jekt was signed at — part of the signed material,
not just a display timestamp. See agentmux_common::jekt_sign.
jekt_sig: Option<String>Base64 HMAC-SHA256 over (msgid, source_agent, target_agent, ts_secs,
message), signed with the sender’s own AGENTMUX_JEKT_KEY. Absent
when the sending agent has no key yet (first-ever send before one is
provisioned) — srv treats an absent/invalid signature as unverified,
not as an error, and downgrades trust accordingly rather than
rejecting the message outright.
lan_sig: Option<String>Base64 Ed25519 signature over the same signed material as jekt_sig,
produced with the sender’s own AGENTMUX_LAN_KEY
(SPEC_JEKT_LAN_TIER_SIGNING_2026_08_15.md §2.3). Sent unconditionally
alongside jekt_sig regardless of the message’s actual destination
— this process can’t know in advance whether delivery will end up
LAN, host, or WAN (that’s a server-side routing decision); srv only
ever consults this field when it has independently determined
delivery_tier == "lan", so it’s simply ignored otherwise. Absent
under the same “no key yet” conditions as jekt_sig.
source_channel: Option<String>The sending instance’s channel id (AGENTMUX_CHANNEL, injected into
the MCP env at spawn alongside the keys). Bound into channel_sig’s
signed material (SPEC_JEKT_CROSS_CHANNEL_TRUST_2026_09_02.md §D5) so
a signature minted in one channel can’t be replayed as the same agent
speaking from another. Absent whenever channel_sig is.
channel_sig: Option<String>Base64 Ed25519 signature for the same-machine, different-instance
(cross-channel) tier, produced with the sender’s own AGENTMUX_LAN_KEY
over a domain-separated payload that also binds source_channel
(agentmux_common::jekt_sign::sign_channel_jekt). Sent unconditionally
for the same reason lan_sig is: srv only consults it once it has
itself labelled the delivery channel. Absent under the same “no key
yet” conditions as lan_sig.
source_uid: Option<String>Identity M4d-6 (SPEC_AGENT_IDENTITY_CARRIED_NOT_DERIVED_2026_09_23.md
§6.5.10): the sending agent’s UID, as its MCP fetched it with its
UID-keyed key (M4d-3). Bound into channel_sig_v2; a forwarding srv
never sets or changes it. Absent when the sender has no UID key.
channel_sig_v2: Option<String>Base64 Ed25519 signature, made only with the sender’s UID-keyed LAN
key, over the cross-channel material plus source_uid
(agentmux_common::jekt_sign::sign_channel_jekt_v2). Verified by UID
against the uid_public_key an instance published for it (M4d-5), so
it proves which agent sent the jekt, not just which name. The v1
channel_sig is still sent beside it.
lan_sig_v2: Option<String>Identity M4d-6: base64 Ed25519 signature, made only with the sender’s
UID-keyed LAN key, over the LAN material plus source_uid
(agentmux_common::jekt_sign::sign_lan_jekt_v2). A receiver checks it
only after the v1 lan_sig verified, and records the UID as claimed by
that LAN path, never as verified attribution.
wan_sig: Option<String>Base64 Ed25519 signature for the general agent-to-agent WAN tier,
produced with the sender’s own AGENTMUX_WAN_KEY — a different key
from AGENTMUX_LAN_KEY — over a domain-separated payload
(agentmux_common::jekt_sign::sign_wan_jekt). Sent
unconditionally for the same reason lan_sig and channel_sig are:
the sending process cannot know which tier srv will route the message
over.
Nothing verifies this yet. Verification requires resolving
(sender_account, source_agent) to exactly one published key, which
waits on relay-side work tracked in the private cloud repo. The field
is carried now so that keys are
minted and propagating by the time a verifier exists — an agent only
gets a key when it is spawned.
wan_source_host: Option<String>The sending machine’s host label (AGENTMUX_HOST_LABEL, injected at
spawn). With source_channel this identifies which AgentMux instance
under the sending account owns the keypair wan_sig was made with —
one account can run the same agent name on several machines, and on
several build channels of one machine, each with its own database and
therefore its own key. Bound into the signed material, so a wrong value selects a key
the signature cannot verify under rather than granting anything.
Absent whenever wan_sig is.
Trait Implementations§
Source§impl Clone for InjectRequest
impl Clone for InjectRequest
Source§fn clone(&self) -> InjectRequest
fn clone(&self) -> InjectRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more