agent-phone 0.1.0

Minimal sync RPC between two AI agents (Rust port of @p-vbordei/agent-phone). Self-custody keys, Noise-framework handshake, DID-bound WebSocket.
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum Error {
    #[error("invalid did:key: {0}")]
    InvalidDid(String),

    #[error("invalid envelope: {0}")]
    InvalidEnvelope(String),

    #[error("noise: {0}")]
    Noise(String),

    #[error("handshake failed: {0}")]
    Handshake(String),

    #[error("plaintext too large: {got} > {max}")]
    PlaintextTooLarge { got: usize, max: usize },

    #[error("io: {0}")]
    Io(#[from] std::io::Error),

    #[error("json: {0}")]
    Json(#[from] serde_json::Error),

    #[error("websocket: {0}")]
    Ws(String),

    #[error("rpc error {code}: {message}")]
    Rpc { code: i64, message: String },

    #[error("session closed")]
    Closed,
}

pub type Result<T> = std::result::Result<T, Error>;