pub struct PendingElicitation {
pub id: String,
pub plugin_name: String,
pub approver: Option<String>,
pub intent_id: Option<String>,
pub channel: Option<String>,
pub expires_at: Option<String>,
pub source: String,
}Expand description
The “ask again later” bundle — produced when an elicitation has been
dispatched but the human hasn’t responded yet. It carries everything
the host needs to emit a JSON-RPC -32120 (“request not complete,
retry echoing this id”) to the agent instead of forwarding the call.
This is the tri-state channel that lets Decision stay binary: a
suspended phase reports Decision::Allow (nothing was denied) with a
Some(PendingElicitation) alongside it. The host rule is one clause —
forward iff Allow AND pending.is_none(); otherwise emit
-32120. The agent re-sends with elicitation.id, the runtime takes
the “id present → check, don’t re-dispatch” path, and once the human
resolves, the phase proceeds past the elicitation.
Pending short-circuits the phase (sequential elicitation): at most
one pending per pass. Multiple concurrent pendings are deferred (would
turn this into a Vec on StepsEvaluation).
Fields§
§id: StringServer-side id the agent echoes on retry (elicitation.id).
plugin_name: StringWhich ElicitationHandler plugin owns this elicitation.
approver: Option<String>Resolved approver identity, when known at dispatch.
intent_id: Option<String>Registered intent id (lodging-intent binding), when the channel supports it.
channel: Option<String>Optional channel label for the agent-facing -32120 / audit.
expires_at: Option<String>When the elicitation expires (RFC 3339), when known.
source: StringRule source path of the originating Elicit step, for audit.
Trait Implementations§
Source§impl Clone for PendingElicitation
impl Clone for PendingElicitation
Source§fn clone(&self) -> PendingElicitation
fn clone(&self) -> PendingElicitation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more