#[cfg(test)]
#[ctor::ctor]
fn _isolate_atomcode_home() {
atomcode_kernel::test_support::isolate_home();
}
pub mod config;
mod controllers;
pub mod discipline;
pub mod parts;
pub mod persona;
pub mod plan_mode;
pub mod plugin_hooks;
pub mod provider_factory;
pub mod runtime;
pub mod session_title;
pub mod team;
pub mod telemetry;
pub mod toolfilter;
pub mod vision;
mod assemble;
mod execution_policy;
mod init_prompt;
mod mcp_instructions;
mod next_prompt_suggestion;
mod rate_limit;
mod skill_first;
pub mod subagent_tiers;
mod todo;
pub use assemble::{build_coding_agent, build_coding_agent_with, try_build_coding_agent_with};
pub use atomcode_kernel::message::ImageContent;
pub use config::{
apply_provider_config, resolve_loop_max_rounds, resolve_turn_max_rounds, CodingAgentConfig,
CodingRuntimeConfig, SubagentModelProviders, SubagentModelResolver, SubagentProvider,
TierProvider,
};
pub use controllers::{GoalPhase, GoalProgress, GoalTerminal, LoopProgress};
pub use discipline::VerifyCadenceHook;
pub use init_prompt::{build_init_prompt, INIT_PROMPT, INIT_PROMPT_ZH_CN};
pub use parts::{
assemble, prepare, prepare_with_plugin_hook_source, prepare_with_plugin_hooks,
subagent_enabled_from_env, CodingParts, PrepareOptions, SessionBinding, SessionMode,
SubagentPolicy,
};
pub use persona::{coding_persona, coding_persona_with_language, commit_language_guidance};
pub use plan_mode::PlanModeGate;
pub use plugin_hooks::{PluginHookSource, StaticPluginHookSource};
pub use provider_factory::{
atomgit_provider_factory, derive_tier_config, install_subagent_tiers, refresh_subagent_tiers,
resolve_subagent_tier_thunks, tier_provider_builder, AtomGitProviderAuthenticator,
CodingProviderFactory, DefaultCodingProviderFactory, ProviderAuthenticator, ProviderBuildError,
};
pub use rate_limit::{RateLimitWindow, RateLimitWindowSource};
pub use runtime::{
CodingRuntime, CodingRuntimeEvent, CodingRuntimeEvents, CodingRuntimeHandle,
CodingRuntimeStart, DeferredRuntimeState, DriverCommand, ImagePreprocessor, LocalContextInput,
McpStatusSnapshot, McpToolsSnapshot, ProviderBootstrap, ProviderUnavailableReason,
ReconfigureKind, ReprepareInput, RewindCatalog, RewindResult, RewindScope, RuntimeContextStats,
RuntimeError, RuntimeExit, RuntimeExitReason, RuntimeGeneration, RuntimeMode, RuntimePhase,
RuntimeRequest, RuntimeSessionInfo, RuntimeSnapshotError, RuntimeStartError, RuntimeStatus,
RuntimeTurnStats, RuntimeUnavailable, SequencedRuntimeEvent, SessionChanged, SubmitReceipt,
TurnCompletion, UndoResult, UserInput, VisionNotice,
};
pub use telemetry::{TelemetryHook, ToolTelemetryMiddleware};
pub use todo::TodoHook;
pub use vision::{run_vl_caption, should_skip, vl_model_display, PreprocessOutcome};
pub use atomcode_capabilities::cc_hooks;