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