pub mod identity;
pub mod ids;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod client;
#[cfg(all(feature = "comms", any(unix, windows)))]
mod client_forward;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod code_search_proto;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod cursor;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod daemon;
#[cfg(all(feature = "comms", any(unix, windows)))]
mod daemon_forward_handlers;
#[cfg(all(feature = "comms", any(unix, windows)))]
mod daemon_guards;
#[cfg(all(feature = "comms", any(unix, windows)))]
mod daemon_handler_helpers;
#[cfg(all(feature = "comms", any(unix, windows)))]
mod daemon_handlers;
#[cfg(all(feature = "comms", any(unix, windows)))]
mod daemon_health;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod daemon_http;
#[cfg(all(feature = "comms", any(unix, windows)))]
mod daemon_lifecycle;
pub use crate::daemon_lock;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod frontend_inproc;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod frontend_named_pipe;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod frontend_uds;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub(crate) mod git_history_ops;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod http_auth;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod http_frontend;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod index_read_proto;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod keys;
#[cfg(all(feature = "comms", feature = "memory"))]
pub mod memory_proto;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod model;
#[cfg(all(feature = "comms", feature = "memory"))]
pub mod proposals_proto;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod protocol;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod relay;
pub mod resolved_proto;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod scope;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod singleton;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod store;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod store_health;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod transport;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub mod workspace_pool;
#[cfg(all(feature = "comms", any(unix, windows)))]
pub fn new_idempotency_key() -> String {
use std::hash::{BuildHasher as _, Hasher as _};
use std::sync::atomic::{AtomicU64, Ordering};
static COUNTER: AtomicU64 = AtomicU64::new(0);
let mut hasher = std::collections::hash_map::RandomState::new().build_hasher();
hasher.write_u128(
std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.map_or(0, |d| d.as_nanos()),
);
format!(
"{:x}-{:x}-{:x}",
std::process::id(),
COUNTER.fetch_add(1, Ordering::Relaxed),
hasher.finish()
)
}
pub const COMMS_SCHEMA_VER: u32 = crate::version::RELEASE_MINOR as u32;