Generic, domain-agnostic capability pattern: CapabilityEngine/CapabilityRegistry/CapabilityDispatcher trait shapes + component/capability types. Trait definitions only -- see wasm-capability-core for this pattern's own default implementation, extracted from agent-runtime's ADR-001 (agent-runtime#31, ADR-011).
//! [`ComponentInvokeRequest`] — input to [`crate::CapabilityEngine::invoke`].
usestd::time::Duration;usecrate::ComponentHandle;/// Request to invoke a loaded component's handler export once.
#[derive(Debug, Clone, PartialEq, Eq)]pubstructComponentInvokeRequest{/// Handle to the component instance to invoke, from a prior
/// [`crate::CapabilityEngine::load`] call.
pubhandle: ComponentHandle,
/// Raw request payload bytes, passed to the component's export
/// unmodified.
pubpayload:Vec<u8>,
/// Maximum time to wait for this invocation before it is cancelled and
/// [`crate::CapabilityError::Timeout`] is returned. Must never exceed
/// the component's own
/// [`crate::ResourceLimits::invoke_timeout_ms`].
pubdeadline: Duration,
}