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}