Skip to main content

synaps_cli/
lib.rs

1// agent-core is now a separate crate; re-export its modules as if they lived here
2pub use agent_core::core;
3pub use agent_core::memory;
4pub use agent_core::pricing;
5
6// agent-engine is now a separate crate; re-export its modules as if they lived here
7pub use agent_engine::{runtime, tools, mcp, skills, events, extensions, sidecar, engine, help};
8
9// agent-tui is now a separate crate; re-export tui + toast so bin/cmd still resolve
10pub use agent_tui::{tui, toast};
11
12// Allow intra-crate self-reference via `synaps_cli::` (used in src/tui/**).
13extern crate self as synaps_cli;
14
15// Re-export core modules at crate root for backward compatibility
16pub use core::config;
17pub use core::session;
18pub use core::auth;
19pub use core::logging;
20pub use core::protocol;
21pub use core::error;
22pub use core::watcher_types;
23pub use core::models;
24pub use core::chain;
25
26pub use runtime::{Runtime, StreamEvent, LlmEvent, SessionEvent, AgentEvent};
27pub use agent_core::SharedMessage;
28pub use tools::{Tool, ToolContext, ToolRegistry};
29pub use session::{Session, SessionInfo, find_session, latest_session, list_sessions, list_recent_sessions, resolve_session, find_session_by_name, validate_name};
30pub use error::{RuntimeError, Result};
31pub use config::{SynapsConfig, load_config, resolve_system_prompt};
32pub use watcher_types::{
33    AgentConfig, SessionLimits, HandoffState, ExitReason, SessionStats,
34    WatcherCommand, WatcherResponse, AgentStatusInfo
35};
36
37// Re-export for convenience
38pub use serde_json::Value;
39pub use tokio_util::sync::CancellationToken;
40
41/// Re-export epoch_millis from agent-core (moved there for the leaf crate split).
42pub use agent_core::epoch_millis;
43
44/// Re-export truncate_str from agent-core.
45pub use agent_core::truncate_str;
46
47/// Flush stdout, ignoring errors (pipe closed, etc.)
48#[inline]
49pub fn flush_stdout() {
50    use std::io::Write;
51    let _ = std::io::stdout().flush();
52}
53
54/// Flush stderr, ignoring errors (pipe closed, etc.)
55#[inline]
56pub fn flush_stderr() {
57    use std::io::Write;
58    let _ = std::io::stderr().flush();
59}
60
61/// Current time as Unix epoch seconds.
62#[inline]
63pub fn epoch_secs() -> u64 {
64    std::time::SystemTime::now()
65        .duration_since(std::time::UNIX_EPOCH)
66        .expect("system clock before Unix epoch")
67        .as_secs()
68}