arcbox-connect 0.6.3

Connect RPC surface for the ArcBox sandbox API (connectrpc + buffa)
//! Connect RPC surface for the ArcBox sandbox API.
//!
//! The sandbox contract (`arcbox.sandbox.v1`) is the product's public API,
//! so it is served over Connect rather than plain gRPC: one set of handlers
//! answers Connect (HTTP POST with JSON or binary protobuf), gRPC, and
//! gRPC-Web. A caller with no proto toolchain can reach it with `curl`,
//! native clients keep gRPC performance, and browsers get gRPC-Web.
//!
//! Message types here are generated by buffa and are the ONE runtime Rust
//! representation of the `.proto` files for ArcBox-owned protocols
//! (CORE-73): daemon handlers, `abctl`, and both ends of the host↔guest
//! vsock wire all use these types. The crate compiles for
//! `aarch64-unknown-linux-musl` (base `connectrpc` is transport-free) and
//! must stay musl-clean for the guest agent's sake.
//!
//! The fleet agent's daemon client and reflection's descriptor set (see
//! [`FILE_DESCRIPTOR_SET`]) use these types too. The prost twins in
//! `arcbox-protocol` remain ONLY as test support: the daemon/e2e tonic
//! clients that prove the gRPC wire format still answers, and the fleet
//! agent's tonic mock daemon. buffa and prost encode identical protobuf
//! bytes, so those mixed-codec test peers interoperate; both
//! representations are generated from the same `.proto` sources and
//! therefore cannot drift.

connectrpc::include_generated!();

/// The sandbox package, under the same short alias `arcbox-protocol` uses
/// for its prost twin — so a call site reads `arcbox_connect::sandbox_v1`
/// against `arcbox_protocol::sandbox_v1` and the two are told apart by the
/// crate, not by a path shape.
pub use arcbox::sandbox::v1 as sandbox_v1;

/// The daemon's own package, under the same short alias `arcbox-protocol`
/// uses for its prost twin (CORE-68).
pub use arcbox::v1;

/// The compiled `FileDescriptorSet` covering every ArcBox-owned proto
/// (every file in the build script's list plus imports, with source
/// info), produced by this crate's build script. The daemon feeds it to
/// reflection, so the reflected surface is exactly the surface this
/// crate generates.
pub const FILE_DESCRIPTOR_SET: &[u8] =
    include_bytes!(concat!(env!("OUT_DIR"), "/arcbox_connect.protoset"));