Skip to main content

wasm_capability_contract/capability/vo/
capability_protocol.rs

1//! [`CapabilityProtocol`] — which dispatcher family a capability resolves to.
2
3/// One variant per capability kind ADR-001 defines — tells whichever
4/// `Linker`-wiring code holds a `CapabilityDescriptor` which
5/// `CapabilityDispatcher` family to route a granted capability's host
6/// import to. Registry-internal, never serialized: a `CapabilityRegistry`
7/// is assembled from Rust code at `Builder` composition time, not read
8/// from a manifest file.
9#[derive(Debug, Clone, Copy, PartialEq, Eq)]
10pub enum CapabilityProtocol {
11    /// Wire-protocol dispatch over `Arc<dyn HttpIngress>` (`http-egress`).
12    Http,
13    /// Wire-protocol dispatch over `Arc<dyn GrpcIngress>` (`grpc-egress`).
14    Grpc,
15    /// Native-trait dispatch over `Arc<dyn Completer>` (`llm-complete`).
16    Complete,
17    /// Native-trait dispatch over `Arc<dyn McpToolEgress>` (`mcp-egress`).
18    Mcp,
19    /// Native-trait dispatch over a `DbPool` (`database`).
20    Database,
21    /// Native-trait dispatch over `Arc<dyn SecretStore>` (`secrets`).
22    Secrets,
23}