wasm-capability-contract 0.3.0

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).
Documentation
//! [`CapabilityProtocol`] — which dispatcher family a capability resolves to.

/// One variant per capability kind ADR-001 defines — tells whichever
/// `Linker`-wiring code holds a `CapabilityDescriptor` which
/// `CapabilityDispatcher` family to route a granted capability's host
/// import to. Registry-internal, never serialized: a `CapabilityRegistry`
/// is assembled from Rust code at `Builder` composition time, not read
/// from a manifest file.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CapabilityProtocol {
    /// Wire-protocol dispatch over `Arc<dyn HttpIngress>` (`http-egress`).
    Http,
    /// Wire-protocol dispatch over `Arc<dyn GrpcIngress>` (`grpc-egress`).
    Grpc,
    /// Native-trait dispatch over `Arc<dyn Completer>` (`llm-complete`).
    Complete,
    /// Native-trait dispatch over `Arc<dyn McpToolEgress>` (`mcp-egress`).
    Mcp,
    /// Native-trait dispatch over a `DbPool` (`database`).
    Database,
    /// Native-trait dispatch over `Arc<dyn SecretStore>` (`secrets`).
    Secrets,
}