use super::commit_logging::{AttemptOutcome, CommitLogSession, ExtractionAttempt};
use super::context::PhaseContext;
use crate::agents::AgentRegistry;
use crate::files::llm_output_extraction::{
archive_xml_file_with_workspace, has_valid_xml_output,
try_extract_xml_commit_document_with_trace, xml_paths, CommitExtractionResult,
};
use crate::pipeline::{run_with_prompt, PipelineRuntime, PromptCommand};
use crate::prompts::TemplateContext;
use crate::workspace::Workspace;
use anyhow::Context as _;
use std::path::Path;
pub mod diff_truncation;
pub use diff_truncation::{
effective_model_budget_bytes, model_budget_bytes_for_agent_name, truncate_diff_to_model_budget,
};
include!("commit/prompt.rs");
include!("commit/extraction.rs");
include!("commit/runner.rs");
#[cfg(test)]
include!("commit/tests.rs");