Codex Handbook
core/src/lib.rs 198 lines
//! Root of the `codex-core` library.// Prevent accidental direct writes to stdout/stderr in library code. All// user-visible output must go through the appropriate abstraction (e.g.,// the TUI or the tracing stack).#![deny(clippy::print_stdout, clippy::print_stderr)]mod apply_patch;mod apps;mod client;mod client_common;mod realtime_context;mod realtime_conversation;mod realtime_prompt;mod responses_metadata;mod responses_retry;pub(crate) mod session;pub use responses_metadata::CodexResponsesMetadata;pub use session::SteerInputError;pub use turn_metadata::detached_memory_responses_metadata;mod codex_thread;mod compact_remote;mod compact_remote_v2;mod config_lock;pub use codex_thread::BackgroundTerminalInfo;pub use codex_thread::CodexThread;pub use codex_thread::CodexThreadSettingsOverrides;pub use codex_thread::ThreadConfigSnapshot;pub use codex_thread::TryStartTurnIfIdleError;pub use codex_thread::TryStartTurnIfIdleRejectionReason;pub use session::turn_context::TurnContext;mod agent;mod attestation;mod codex_delegate;mod command_canonicalization;pub mod config;pub mod connectors;pub mod context;mod context_manager;mod environment_selection;pub mod exec;pub mod exec_env;mod exec_policy;#[cfg(test)]mod git_info_tests;mod guardian;mod hook_runtime;mod image_preparation;mod installation_id;pub(crate) mod landlock;pub use landlock::spawn_command_under_linux_sandbox;pub(crate) mod mcp;mod mcp_skill_dependencies;mod mcp_tool_approval_templates;mod mcp_tool_exposure;mod network_policy_decision;pub(crate) mod network_proxy_loader;pub use mcp::McpManager;pub use network_proxy_loader::MtimeConfigReloader;pub use network_proxy_loader::build_network_proxy_state;pub use network_proxy_loader::build_network_proxy_state_and_reloader;mod original_image_detail;pub use codex_mcp::SandboxState;mod mcp_openai_file;mod mcp_tool_call;pub(crate) mod mention_syntax;pub(crate) mod utils;pub use mention_syntax::PLUGIN_TEXT_MENTION_SIGIL;pub use mention_syntax::TOOL_MENTION_SIGIL;pub use utils::path_utils;pub mod personality_migration;pub(crate) mod plugins;#[doc(hidden)]pub(crate) mod prompt_debug;#[doc(hidden)]pub use prompt_debug::build_prompt_input;pub(crate) mod mentions {    pub(crate) use crate::plugins::build_connector_slug_counts;    pub(crate) use crate::plugins::build_skill_name_counts;    pub(crate) use crate::plugins::collect_explicit_app_ids;    pub(crate) use crate::plugins::collect_explicit_plugin_mentions;    pub(crate) use crate::plugins::collect_tool_mentions_from_messages;}mod sandbox_tags;pub mod sandboxing;mod session_prefix;mod session_startup_prewarm;pub mod skills;pub(crate) use skills::SkillInjections;pub(crate) use skills::SkillLoadOutcome;pub(crate) use skills::SkillMetadata;pub(crate) use skills::SkillsManager;pub(crate) use skills::build_available_skills;pub(crate) use skills::build_skill_injections;pub(crate) use skills::build_skill_name_counts;pub(crate) use skills::collect_explicit_skill_mentions;pub(crate) use skills::default_skill_metadata_budget;pub(crate) use skills::injection;pub(crate) use skills::manager;pub(crate) use skills::maybe_emit_implicit_skill_invocation;pub(crate) use skills::skills_load_input_from_config;mod stream_events_utils;pub use stream_events_utils::image_generation_artifact_path;pub mod test_support;mod unified_exec;pub mod windows_sandbox;pub use client::X_RESPONSESAPI_INCLUDE_TIMING_METRICS_HEADER;pub use codex_protocol::config_types::ModelProviderAuthInfo;mod event_mapping;pub mod review_format;pub use codex_prompts as review_prompts;mod thread_manager;pub(crate) mod web_search;pub(crate) mod windows_sandbox_read_grants;pub use thread_manager::ForkSnapshot;pub use thread_manager::NewThread;pub use thread_manager::StartThreadOptions;pub use thread_manager::ThreadManager;pub use thread_manager::ThreadShutdownReport;pub use thread_manager::build_models_manager;pub use thread_manager::thread_store_from_config;pub use web_search::web_search_action_detail;pub use web_search::web_search_detail;pub use windows_sandbox_read_grants::grant_read_root_non_elevated;#[deprecated(note = "use ThreadManager")]pub type ConversationManager = ThreadManager;#[deprecated(note = "use NewThread")]pub type NewConversation = NewThread;#[deprecated(note = "use CodexThread")]pub type CodexConversation = CodexThread;pub(crate) mod agents_md;pub use agents_md::DEFAULT_AGENTS_MD_FILENAME;pub use agents_md::LOCAL_AGENTS_MD_FILENAME;pub use agents_md::LoadedAgentsMd;mod rollout;pub(crate) mod safety;mod session_rollout_init_error;pub mod shell;pub(crate) mod shell_snapshot;pub mod spawn;pub(crate) mod state_db_bridge;pub use state_db_bridge::StateDbHandle;pub use state_db_bridge::init_state_db;mod thread_rollout_truncation;mod tools;pub(crate) mod turn_diff_tracker;mod turn_metadata;mod turn_timing;pub use rollout::ARCHIVED_SESSIONS_SUBDIR;pub use rollout::Cursor;pub use rollout::INTERACTIVE_SESSION_SOURCES;pub use rollout::RolloutRecorder;pub use rollout::RolloutRecorderParams;pub use rollout::SESSIONS_SUBDIR;pub use rollout::SessionMeta;pub use rollout::SortDirection;pub use rollout::ThreadItem;pub use rollout::ThreadSortKey;pub use rollout::ThreadsPage;pub use rollout::append_thread_name;pub use rollout::find_archived_thread_path_by_id_str;#[deprecated(note = "use find_thread_path_by_id_str")]pub use rollout::find_conversation_path_by_id_str;pub use rollout::find_thread_meta_by_name_str;pub use rollout::find_thread_name_by_id;pub use rollout::find_thread_names_by_ids;pub use rollout::find_thread_path_by_id_str;pub use rollout::parse_cursor;pub use rollout::read_head_for_summary;pub use rollout::read_session_meta_line;pub use rollout::rollout_date_parts;mod function_tool;mod state;mod tasks;mod user_shell_command;pub mod util;pub use attestation::AttestationContext;pub use attestation::AttestationProvider;pub use attestation::GenerateAttestationFuture;pub use client::ModelClient;pub use client::ModelClientSession;pub use client::X_CODEX_INSTALLATION_ID_HEADER;pub use client::X_CODEX_TURN_METADATA_HEADER;pub use client_common::Prompt;pub use client_common::ResponseEvent;pub use client_common::ResponseStream;pub use codex_prompts::REVIEW_PROMPT;pub use compact::content_items_to_text;pub use event_mapping::parse_turn_item;pub use exec_policy::ExecPolicyError;pub use exec_policy::check_execpolicy_for_warnings;pub use exec_policy::format_exec_policy_error_with_source;pub use exec_policy::load_exec_policy;pub use installation_id::resolve_installation_id;pub mod compact;mod memory_usage;pub mod otel_init;