Skip to main content

atm_core/
lib.rs

1//! ATM Core - Shared types for coding-agent management
2//!
3//! This crate provides the core domain types shared between
4//! the daemon (atmd) and TUI (atm).
5//!
6//! All code follows the panic-free policy: no `.unwrap()`, `.expect()`,
7//! `panic!()`, `unreachable!()`, `todo!()`, or direct indexing `[i]`.
8
9pub mod agent;
10pub mod beads;
11pub mod context;
12pub mod cost;
13pub mod error;
14pub mod harness;
15pub mod harness_registry;
16pub mod lifecycle;
17pub mod model;
18pub mod project;
19pub mod session;
20pub mod tool;
21pub mod tree;
22
23// Re-exports for convenience
24pub use agent::AgentType;
25pub use context::{ContextUsage, TokenCount};
26pub use cost::Money;
27pub use error::{DomainError, DomainResult};
28pub use harness::Harness;
29pub use harness_registry::{
30    builtin_harness_ids_display, builtin_harnesses, default_harness_definition,
31    find_harness_definition, HarnessDefinition, ProcessMatcher, PromptMode,
32};
33pub use lifecycle::{LifecycleEvent, NeedsInputReason, NotificationKind};
34pub use model::{derive_display_name, Model};
35pub use project::{resolve_project_root, resolve_worktree_info};
36pub use session::{
37    ActivityDetail, LinesChanged, SessionDomain, SessionDuration, SessionId, SessionInfrastructure,
38    SessionStatus, SessionView, StatusLineData, ToolUsageRecord, ToolUseId, TranscriptPath,
39};
40pub use tool::Tool;
41pub use tree::{
42    all_node_ids, build_tree, flatten_tree, TreeNode, TreeNodeId, TreeRow, TreeRowKind,
43};