pub mod config;
pub mod error;
pub mod types;
pub mod executor;
pub mod budget;
pub mod llm_bridge;
pub mod session;
pub mod parser;
pub mod query_loop;
pub mod rlm;
pub mod logger;
pub mod hooks;
#[cfg(feature = "kg-validation")]
pub mod validator;
#[cfg(feature = "mcp")]
pub mod mcp_tools;
pub use budget::BudgetTracker;
pub use config::{BackendType, KgStrictness, RlmConfig, SessionModel};
pub use error::RlmError;
pub use executor::{
Capability, ExecutionContext, ExecutionEnvironment, ExecutionResult, LocalExecutor, SnapshotId,
SshExecutor, ValidationResult,
};
pub use hooks::{ValidationEvent, emit_validation_event};
pub use llm_bridge::{LlmBridge, LlmBridgeConfig, QueryRequest, QueryResponse};
pub use logger::{TrajectoryEvent, TrajectoryLogger, TrajectoryLoggerConfig, read_trajectory_file};
#[cfg(feature = "mcp")]
pub use mcp_tools::{
RlmBashResponse, RlmCodeResponse, RlmContextResponse, RlmMcpService, RlmQueryResponse,
RlmSnapshotResponse,
};
pub use parser::CommandParser;
pub use query_loop::{QueryLoop, QueryLoopConfig, QueryLoopResult, TerminationReason};
pub use rlm::{LlmQueryResult, SessionStatus, TerraphimRlm};
pub use session::{SessionManager, SessionStats};
pub use types::{
BashCommand, BudgetStatus, Command, CommandHistory, LlmQuery, PythonCode, QueryMetadata,
SessionId, SessionInfo, SessionState,
};
#[cfg(feature = "kg-validation")]
pub use validator::{
KnowledgeGraphValidator, ValidationContext, ValidationResult as KgValidationResult,
ValidatorConfig,
};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const DEFAULT_TOKEN_BUDGET: u64 = 100_000;
pub const DEFAULT_TIME_BUDGET_MS: u64 = 300_000;
pub const DEFAULT_MAX_RECURSION_DEPTH: u32 = 10;
pub const DEFAULT_MAX_SNAPSHOTS_PER_SESSION: u32 = 10;
pub const DEFAULT_MAX_INLINE_OUTPUT_BYTES: u64 = 65_536;
pub const VM_ALLOCATION_TIMEOUT_MS: u64 = 500;
pub const TARGET_BOOT_TIME_MS: u64 = 2000;
pub const DEFAULT_DNS_ALLOWLIST: &[&str] = &["pypi.org", "github.com", "raw.githubusercontent.com"];