mod channel;
mod connection;
mod filesystem;
mod protocol;
mod spawner;
mod transport;
pub use channel::AgentChannel;
#[doc(hidden)]
pub use channel::TEST_RECV_DELAY_US;
#[doc(hidden)]
pub use connection::spawn_local_agent;
#[doc(hidden)]
pub use connection::spawn_local_agent_transport;
#[doc(hidden)]
pub use connection::spawn_local_agent_with_capacity;
pub use connection::{
spawn_heartbeat_task, spawn_reconnect_task, spawn_reconnect_task_with, ReconnectConfig,
DEFAULT_HEARTBEAT_INTERVAL,
};
pub use connection::{ConnectionParams, SshConnection, SshError};
pub use filesystem::RemoteFileSystem;
pub use protocol::{
decode_base64, encode_base64, ls_params, read_params, stat_params, sudo_write_params,
write_params, AgentRequest, AgentResponse,
};
pub use spawner::{
build_kube_terminal_args, build_ssh_terminal_args, LocalLongRunningSpawner,
LocalProcessSpawner, LongRunningSpawner, ProcessSpawner, RemoteLongRunningSpawner,
RemoteProcessSpawner, SpawnError, SpawnResult, StdioChild,
};
pub(crate) use transport::kubectl_exec_argv;
pub use transport::{
bootstrap_agent, spawn_kube_reconnect_task, KubeConnection, KubeTarget, KubectlExecTransport,
RemoteTransport, StderrMode, TransportError,
};
pub const AGENT_SOURCE: &str = include_str!("agent.py");
#[cfg(test)]
mod tests;