1#[cfg(feature = "recording")]
14mod cli_capture;
15mod config;
16pub mod diagnostics;
17mod event_logger;
18mod event_loop;
19mod event_parser;
20mod event_reader;
21pub mod file_lock;
22mod git_ops;
23mod handoff;
24mod hat_registry;
25mod hatless_ralph;
26pub mod hooks;
27mod instructions;
28mod landing;
29pub mod loop_completion;
30pub mod loop_context;
31pub mod loop_history;
32pub mod loop_lock;
33mod loop_name;
34pub mod loop_registry;
35mod memory;
36pub mod memory_parser;
37mod memory_store;
38pub mod merge_queue;
39pub mod planning_session;
40pub mod preflight;
41#[cfg(feature = "recording")]
42mod session_player;
43#[cfg(feature = "recording")]
44mod session_recorder;
45pub mod skill;
46pub mod skill_registry;
47mod summary_writer;
48pub mod task;
49pub mod task_definition;
50pub mod task_store;
51pub mod testing;
52mod text;
53pub mod utils;
54pub mod workspace;
55pub mod worktree;
56
57#[cfg(feature = "recording")]
58pub use cli_capture::{CliCapture, CliCapturePair};
59pub use config::{
60 CliConfig, ConfigError, CoreConfig, EventLoopConfig, EventMetadata, FeaturesConfig, HatBackend,
61 HatConfig, InjectMode, MemoriesConfig, MemoriesFilter, RalphConfig, SkillOverride,
62 SkillsConfig,
63};
64pub use diagnostics::DiagnosticsCollector;
66pub use event_logger::{EventHistory, EventLogger, EventRecord};
67pub use event_loop::{EventLoop, LoopState, ProcessedEvents, TerminationReason, UserPrompt};
68pub use event_parser::EventParser;
69pub use event_reader::{Event, EventReader, MalformedLine, ParseResult};
70pub use file_lock::{FileLock, LockGuard as FileLockGuard, LockedFile};
71pub use git_ops::{
72 AutoCommitResult, GitOpsError, auto_commit_changes, clean_stashes, get_commit_summary,
73 get_current_branch, get_head_sha, get_recent_files, has_uncommitted_changes,
74 is_working_tree_clean, prune_remote_refs,
75};
76pub use handoff::{HandoffError, HandoffResult, HandoffWriter};
77pub use hat_registry::HatRegistry;
78pub use hatless_ralph::{HatInfo, HatTopology, HatlessRalph};
79pub use hooks::{
80 HookDefaults, HookEngine, HookExecutor, HookExecutorContract, HookExecutorError,
81 HookInvocationPayload, HookMutationConfig, HookOnError, HookPayloadBuilderInput,
82 HookPayloadContext, HookPayloadContextInput, HookPayloadIteration, HookPayloadLoop,
83 HookPayloadMetadata, HookPhaseEvent, HookRunRequest, HookRunResult, HookSpec, HookStreamOutput,
84 HookSuspendMode, HooksConfig, ResolvedHookSpec, SUSPEND_STATE_SCHEMA_VERSION,
85 SuspendLifecycleState, SuspendStateRecord, SuspendStateStore, SuspendStateStoreError,
86};
87pub use instructions::InstructionBuilder;
88pub use landing::{LandingConfig, LandingError, LandingHandler, LandingResult};
89pub use loop_completion::{CompletionAction, CompletionError, LoopCompletionHandler};
90pub use loop_context::LoopContext;
91pub use loop_history::{HistoryError, HistoryEvent, HistoryEventType, HistorySummary, LoopHistory};
92pub use loop_lock::{LockError, LockGuard, LockMetadata, LoopLock};
93pub use loop_name::{LoopNameGenerator, LoopNamingConfig};
94pub use loop_registry::{LoopEntry, LoopRegistry, RegistryError};
95pub use memory::{Memory, MemoryType};
96pub use memory_store::{
97 DEFAULT_MEMORIES_PATH, MarkdownMemoryStore, format_memories_as_markdown, truncate_to_budget,
98};
99pub use merge_queue::{
100 MergeButtonState, MergeEntry, MergeEvent, MergeEventType, MergeOption, MergeQueue,
101 MergeQueueError, MergeState, SteeringDecision, merge_button_state, merge_execution_summary,
102 merge_needs_steering, smart_merge_summary,
103};
104pub use planning_session::{
105 ConversationEntry, ConversationType, PlanningSession, PlanningSessionError, SessionMetadata,
106 SessionStatus,
107};
108pub use preflight::{
109 AcceptanceCriterion, CheckResult, CheckStatus, PreflightCheck, PreflightReport,
110 PreflightRunner, extract_acceptance_criteria, extract_all_criteria, extract_criteria_from_file,
111};
112#[cfg(feature = "recording")]
113pub use session_player::{PlayerConfig, ReplayMode, SessionPlayer, TimestampedRecord};
114#[cfg(feature = "recording")]
115pub use session_recorder::{Record, SessionRecorder};
116pub use skill::{SkillEntry, SkillFrontmatter, SkillSource, parse_frontmatter};
117pub use skill_registry::SkillRegistry;
118pub use summary_writer::SummaryWriter;
119pub use task::{Task, TaskStatus};
120pub use task_definition::{
121 TaskDefinition, TaskDefinitionError, TaskSetup, TaskSuite, Verification,
122};
123pub use task_store::TaskStore;
124pub use text::{floor_char_boundary, truncate_with_ellipsis};
125pub use workspace::{
126 CleanupPolicy, TaskWorkspace, VerificationResult, WorkspaceError, WorkspaceInfo,
127 WorkspaceManager,
128};
129pub use worktree::{
130 SyncStats, Worktree, WorktreeConfig, WorktreeError, create_worktree, ensure_gitignore,
131 list_ralph_worktrees, list_worktrees, remove_worktree, sync_working_directory_to_worktree,
132 worktree_exists,
133};