pub mod approval;
pub mod config;
pub mod context;
pub mod context_snapshot;
pub mod dispatch;
pub mod handle;
pub mod host_bundle;
pub mod hosts;
pub mod loop_guard;
pub mod lsp_edit_paths;
pub mod op;
pub mod op_loop;
pub mod platform_ext;
pub mod runtime;
pub mod runtime_new;
pub mod scratchpad_state;
pub mod start_turn;
pub mod streaming;
pub mod subagent_port;
pub mod tool_bridge;
pub mod tool_catalog;
mod tool_dispatch;
pub mod tool_parser;
pub mod tool_progress;
pub mod turn_loop;
mod turn_port;
pub use crate::session::{Session, SessionUsage};
pub use crate::turn::{TurnContext, TurnLoopMode, TurnOutcomeStatus};
pub use approval::{
ApprovalDecision, ApprovalResult, UserInputDecision, await_tool_approval,
recv_user_input_for_tool,
};
pub use context::{
COMPACTION_SUMMARY_MARKER, MAX_CONTEXT_RECOVERY_ATTEMPTS, MIN_RECENT_MESSAGES_TO_KEEP,
TURN_MAX_OUTPUT_TOKENS, compact_tool_result_for_context, context_input_budget,
count_oldest_messages_to_drain, effective_max_output_tokens,
estimate_input_tokens_conservative, extract_compaction_summary_prompt,
is_context_length_error_message, summarize_text, turn_response_headroom_tokens,
};
pub use context_snapshot::ThreadContextSnapshot;
pub use dispatch::{
ToolParallelPlanFlags, caller_allowed_for_tool, caller_type_for_tool_use, final_tool_input,
format_tool_error, is_mcp_tool_name, mcp_tool_approval_description, mcp_tool_is_parallel_safe,
mcp_tool_is_read_only, parse_parallel_tool_calls, parse_tool_input_json,
should_force_update_plan_first, should_parallelize_tool_batch, should_stop_after_plan_tool,
};
pub use handle::EngineHandle;
pub use host_bundle::EngineHostBundle;
pub use hosts::{
LspHost, McpHost, SandboxHost, SeamError, SeamHost, ShellHost, SubAgentHost, TopicMemoryHost,
WorkshopHost,
};
pub use loop_guard::{AttemptDecision, LoopGuard, OutcomeDecision};
pub use lsp_edit_paths::{edited_paths_for_tool, parse_patch_paths};
pub use op::Op;
pub use runtime::Engine;
pub use scratchpad_state::ScratchpadStepState;
pub use start_turn::StartTurnParams;
pub use streaming::{
ContentBlockKind, FAKE_WRAPPER_NOTICE, MAX_STREAM_ERRORS_BEFORE_FAIL,
MAX_TRANSPARENT_STREAM_RETRIES, STREAM_CHUNK_TIMEOUT_SECS, STREAM_MAX_CONTENT_BYTES,
STREAM_MAX_DURATION_SECS, TOOL_CALL_END_MARKERS, TOOL_CALL_START_MARKERS, ToolUseState,
contains_fake_tool_wrapper, filter_tool_call_delta, should_transparently_retry_stream,
};
#[allow(deprecated)]
pub use subagent_port::SubAgentSpawnPort;
pub use subagent_port::{SubAgentSpawnError, SubAgentSpawnOutcome};
pub use tool_bridge::{
function_call_to_tool_error, tool_call_input, tool_name_is_mutating, tool_output_to_result,
tool_result_to_output, value_to_tool_call,
};
pub use tool_catalog::{
CODE_EXECUTION_TOOL_NAME, MULTI_TOOL_PARALLEL_NAME, REQUEST_USER_INPUT_NAME,
TOOL_SEARCH_BM25_NAME, active_tools_for_step, apply_mcp_tool_deferral,
apply_native_tool_deferral, build_model_tool_catalog, ensure_advanced_tooling,
execute_tool_search, initial_active_tools, is_tool_search_tool,
maybe_activate_requested_deferred_tool, missing_tool_error_message, should_default_defer_tool,
};
pub use tool_dispatch::EngineToolDispatch;
pub use tool_progress::{emit_tool_audit, tool_progress_opening_line, tool_progress_phase_line};
pub use turn_loop::{
McpPoolPort, ToolExecOutcome, ToolExecutionPlan, ToolPlanApprovalMeta, TurnLoopConfigView,
TurnLoopControl, TurnLoopHost, TurnLoopStreamingPhaseOutcome, TurnLoopToolExec,
TurnLoopToolExecutor, TurnLoopToolPhaseOutcome, TurnLoopToolRegistry,
build_edit_file_approval_desc, handle_deepseek_turn, messages_with_turn_metadata,
resolve_auto_effort,
};
pub use turn_port::TurnEnginePort;