1pub mod core;
5pub mod git_program;
6pub mod memory;
7pub mod pricing;
8
9pub use core::stream_types::{
13 next_turn_correlation_id, AgentEvent, BudgetDimension, LlmEvent, SessionEvent, SharedMessage,
14 StreamEvent, TurnError, TurnOutcome,
15};
16
17pub use core::auth;
20pub use core::chain;
21pub use core::compaction;
22pub use core::config;
23pub use core::disclosure;
24pub use core::error;
25pub use core::logging;
26pub use core::models;
27pub use core::private_fs;
28pub use core::protocol;
29pub use core::reasoning;
30pub use core::retention;
31pub use core::session;
32pub use core::session_catalog;
33pub use core::session_journal;
34pub use core::session_lock;
35pub use core::watcher_types;
36
37#[inline]
39pub fn epoch_millis() -> u64 {
40 std::time::SystemTime::now()
41 .duration_since(std::time::UNIX_EPOCH)
42 .expect("system clock before Unix epoch")
43 .as_millis() as u64
44}
45
46pub use error::{Result, RuntimeError};
49
50#[inline]
52pub fn truncate_str(s: &str, max: usize) -> &str {
53 if s.len() <= max {
54 return s;
55 }
56 let mut end = max;
57 while end > 0 && !s.is_char_boundary(end) {
58 end -= 1;
59 }
60 &s[..end]
61}
62
63pub mod orchestration;
64pub mod prompt;
65pub mod text;
66
67pub use text::BoundedText;
68
69#[path = "core/context_archive.rs"]
70pub mod context_archive;