agentmux_srv\backend\reactive/
mod.rs1pub mod handler;
12pub mod poller;
13pub mod registry;
14pub mod sanitize;
15pub mod types;
16#[cfg(test)]
17mod tests;
18
19use std::time::{SystemTime, UNIX_EPOCH};
20
21pub const MAX_MESSAGE_LENGTH: usize = 10_000;
25
26pub const TRUNCATION_SUFFIX: &str = "\n[Message truncated]";
28
29const AUDIT_LOG_MAX: usize = 100;
31
32const RATE_LIMIT_MAX: u32 = 10;
34
35pub const DEFAULT_POLL_INTERVAL_SECS: u64 = 30;
37
38#[allow(unused_imports)]
41pub use handler::{get_global_handler, Handler, ReactiveHandler};
42#[allow(unused_imports)]
43pub use poller::Poller;
44#[allow(unused_imports)]
45pub use sanitize::{
46 format_injected_message, sanitize_message, validate_agent_id, validate_agentmux_url,
47};
48#[allow(unused_imports)]
49pub use types::*;
50
51fn now_unix_millis() -> u64 {
55 SystemTime::now()
56 .duration_since(UNIX_EPOCH)
57 .unwrap_or_default()
58 .as_millis() as u64
59}
60
61fn sha256_hex(input: &str) -> String {
63 use std::collections::hash_map::DefaultHasher;
64 use std::hash::{Hash, Hasher};
65 let mut hasher = DefaultHasher::new();
67 input.hash(&mut hasher);
68 format!("{:016x}", hasher.finish())
69}