| use crate::bespoke_event_handling::apply_bespoke_event_handling; |
| use crate::command_exec::CommandExecManager; |
| use crate::command_exec::StartCommandExecParams; |
| use crate::config_manager::ConfigManager; |
| use crate::error_code::INPUT_TOO_LARGE_ERROR_CODE; |
| use crate::error_code::invalid_params; |
| use crate::models::supported_models; |
| use crate::outgoing_message::ConnectionId; |
| use crate::outgoing_message::ConnectionRequestId; |
| use crate::outgoing_message::OutgoingMessageSender; |
| use crate::outgoing_message::RequestContext; |
| use crate::outgoing_message::ThreadScopedOutgoingMessageSender; |
| use crate::skills_watcher::SkillsWatcher; |
| use crate::thread_status::ThreadWatchManager; |
| use crate::thread_status::resolve_thread_status; |
| use chrono::Duration as ChronoDuration; |
| use chrono::SecondsFormat; |
| use codex_analytics::AnalyticsEventsClient; |
| use codex_analytics::AnalyticsJsonRpcError; |
| use codex_analytics::InputError; |
| use codex_analytics::TurnSteerRequestError; |
| use codex_app_server_protocol::Account; |
| use codex_app_server_protocol::AccountLoginCompletedNotification; |
| use codex_app_server_protocol::AccountTokenUsageDailyBucket; |
| use codex_app_server_protocol::AccountTokenUsageSummary; |
| use codex_app_server_protocol::AccountUpdatedNotification; |
| use codex_app_server_protocol::AddCreditsNudgeCreditType; |
| use codex_app_server_protocol::AddCreditsNudgeEmailStatus; |
| use codex_app_server_protocol::AdditionalContextEntry; |
| use codex_app_server_protocol::AdditionalContextKind; |
| use codex_app_server_protocol::AppListUpdatedNotification; |
| use codex_app_server_protocol::AppSummary; |
| use codex_app_server_protocol::AppTemplateSummary; |
| use codex_app_server_protocol::AppTemplateUnavailableReason; |
| use codex_app_server_protocol::AppsInstalledParams; |
| use codex_app_server_protocol::AppsInstalledResponse; |
| use codex_app_server_protocol::AppsListParams; |
| use codex_app_server_protocol::AppsListResponse; |
| use codex_app_server_protocol::AppsReadParams; |
| use codex_app_server_protocol::AppsReadResponse; |
| use codex_app_server_protocol::AskForApproval; |
| use codex_app_server_protocol::AuthMode; |
| use codex_app_server_protocol::CancelLoginAccountParams; |
| use codex_app_server_protocol::CancelLoginAccountResponse; |
| use codex_app_server_protocol::CancelLoginAccountStatus; |
| use codex_app_server_protocol::ClientInfo; |
| use codex_app_server_protocol::ClientRequest; |
| use codex_app_server_protocol::ClientResponsePayload; |
| use codex_app_server_protocol::CodexErrorInfo; |
| use codex_app_server_protocol::CollaborationModeListParams; |
| use codex_app_server_protocol::CollaborationModeListResponse; |
| use codex_app_server_protocol::CommandExecParams; |
| use codex_app_server_protocol::CommandExecResizeParams; |
| use codex_app_server_protocol::CommandExecTerminateParams; |
| use codex_app_server_protocol::CommandExecWriteParams; |
| use codex_app_server_protocol::ConfigWarningNotification; |
| use codex_app_server_protocol::ConsumeAccountRateLimitResetCreditOutcome; |
| use codex_app_server_protocol::ConsumeAccountRateLimitResetCreditParams; |
| use codex_app_server_protocol::ConsumeAccountRateLimitResetCreditResponse; |
| use codex_app_server_protocol::ConversationGitInfo; |
| use codex_app_server_protocol::ConversationSummary; |
| use codex_app_server_protocol::DeprecationNoticeNotification; |
| use codex_app_server_protocol::DynamicToolFunctionSpec; |
| use codex_app_server_protocol::DynamicToolNamespaceTool; |
| use codex_app_server_protocol::DynamicToolSpec; |
| use codex_app_server_protocol::EnvironmentAddParams; |
| use codex_app_server_protocol::EnvironmentAddResponse; |
| use codex_app_server_protocol::EnvironmentInfoParams; |
| use codex_app_server_protocol::EnvironmentInfoResponse; |
| use codex_app_server_protocol::EnvironmentShellInfo; |
| use codex_app_server_protocol::EnvironmentStatusKind; |
| use codex_app_server_protocol::EnvironmentStatusParams; |
| use codex_app_server_protocol::EnvironmentStatusResponse; |
| use codex_app_server_protocol::ExperimentalFeature as ApiExperimentalFeature; |
| use codex_app_server_protocol::ExperimentalFeatureListParams; |
| use codex_app_server_protocol::ExperimentalFeatureListResponse; |
| use codex_app_server_protocol::ExperimentalFeatureStage as ApiExperimentalFeatureStage; |
| use codex_app_server_protocol::FeedbackUploadParams; |
| use codex_app_server_protocol::FeedbackUploadResponse; |
| use codex_app_server_protocol::GetAccountParams; |
| use codex_app_server_protocol::GetAccountRateLimitsResponse; |
| use codex_app_server_protocol::GetAccountResponse; |
| use codex_app_server_protocol::GetAccountTokenUsageParams; |
| use codex_app_server_protocol::GetAccountTokenUsageResponse; |
| use codex_app_server_protocol::GetAuthStatusParams; |
| use codex_app_server_protocol::GetAuthStatusResponse; |
| use codex_app_server_protocol::GetConversationSummaryParams; |
| use codex_app_server_protocol::GetConversationSummaryResponse; |
| use codex_app_server_protocol::GetWorkspaceMessagesResponse; |
| use codex_app_server_protocol::GitDiffToRemoteParams; |
| use codex_app_server_protocol::GitDiffToRemoteResponse; |
| use codex_app_server_protocol::GitInfo as ApiGitInfo; |
| use codex_app_server_protocol::HookHandlerMetadata; |
| use codex_app_server_protocol::HookMetadata; |
| use codex_app_server_protocol::HooksListParams; |
| use codex_app_server_protocol::HooksListResponse; |
| use codex_app_server_protocol::InitializeParams; |
| use codex_app_server_protocol::InitializeResponse; |
| use codex_app_server_protocol::InstalledApp; |
| use codex_app_server_protocol::JSONRPCErrorError; |
| use codex_app_server_protocol::ListMcpServerStatusParams; |
| use codex_app_server_protocol::ListMcpServerStatusResponse; |
| use codex_app_server_protocol::LoginAccountParams; |
| use codex_app_server_protocol::LoginAccountResponse; |
| use codex_app_server_protocol::LoginApiKeyParams; |
| use codex_app_server_protocol::LoginAppBrand; |
| use codex_app_server_protocol::LogoutAccountResponse; |
| use codex_app_server_protocol::MarketplaceAddParams; |
| use codex_app_server_protocol::MarketplaceAddResponse; |
| use codex_app_server_protocol::MarketplaceInterface; |
| use codex_app_server_protocol::MarketplaceRemoveParams; |
| use codex_app_server_protocol::MarketplaceRemoveResponse; |
| use codex_app_server_protocol::MarketplaceUpgradeErrorInfo; |
| use codex_app_server_protocol::MarketplaceUpgradeParams; |
| use codex_app_server_protocol::MarketplaceUpgradeResponse; |
| use codex_app_server_protocol::McpResourceReadParams; |
| use codex_app_server_protocol::McpResourceReadResponse; |
| use codex_app_server_protocol::McpServerOauthClientRegistration; |
| use codex_app_server_protocol::McpServerOauthLoginCompletedNotification; |
| use codex_app_server_protocol::McpServerOauthLoginParams; |
| use codex_app_server_protocol::McpServerOauthLoginResponse; |
| use codex_app_server_protocol::McpServerRefreshResponse; |
| use codex_app_server_protocol::McpServerStatus; |
| use codex_app_server_protocol::McpServerStatusDetail; |
| use codex_app_server_protocol::McpServerToolCallParams; |
| use codex_app_server_protocol::McpServerToolCallResponse; |
| use codex_app_server_protocol::MemoryResetResponse; |
| use codex_app_server_protocol::MockExperimentalMethodParams; |
| use codex_app_server_protocol::MockExperimentalMethodResponse; |
| use codex_app_server_protocol::ModelListParams; |
| use codex_app_server_protocol::ModelListResponse; |
| use codex_app_server_protocol::PermissionProfileListParams; |
| use codex_app_server_protocol::PermissionProfileListResponse; |
| use codex_app_server_protocol::PermissionProfileSummary; |
| use codex_app_server_protocol::PluginDetail; |
| use codex_app_server_protocol::PluginInstallParams; |
| use codex_app_server_protocol::PluginInstallResponse; |
| use codex_app_server_protocol::PluginInstalledParams; |
| use codex_app_server_protocol::PluginInstalledResponse; |
| use codex_app_server_protocol::PluginInterface; |
| use codex_app_server_protocol::PluginListMarketplaceKind; |
| use codex_app_server_protocol::PluginListParams; |
| use codex_app_server_protocol::PluginListResponse; |
| use codex_app_server_protocol::PluginMarketplaceEntry; |
| use codex_app_server_protocol::PluginReadParams; |
| use codex_app_server_protocol::PluginReadResponse; |
| use codex_app_server_protocol::PluginShareCheckoutParams; |
| use codex_app_server_protocol::PluginShareCheckoutResponse; |
| use codex_app_server_protocol::PluginShareContext; |
| use codex_app_server_protocol::PluginShareDeleteParams; |
| use codex_app_server_protocol::PluginShareDeleteResponse; |
| use codex_app_server_protocol::PluginShareDiscoverability; |
| use codex_app_server_protocol::PluginShareListItem; |
| use codex_app_server_protocol::PluginShareListParams; |
| use codex_app_server_protocol::PluginShareListResponse; |
| use codex_app_server_protocol::PluginSharePrincipal; |
| use codex_app_server_protocol::PluginSharePrincipalType; |
| use codex_app_server_protocol::PluginShareSaveParams; |
| use codex_app_server_protocol::PluginShareSaveResponse; |
| use codex_app_server_protocol::PluginShareTarget; |
| use codex_app_server_protocol::PluginShareUpdateDiscoverability; |
| use codex_app_server_protocol::PluginShareUpdateTargetsParams; |
| use codex_app_server_protocol::PluginShareUpdateTargetsResponse; |
| use codex_app_server_protocol::PluginSkillReadParams; |
| use codex_app_server_protocol::PluginSkillReadResponse; |
| use codex_app_server_protocol::PluginSource; |
| use codex_app_server_protocol::PluginSummary; |
| use codex_app_server_protocol::PluginUninstallParams; |
| use codex_app_server_protocol::PluginUninstallResponse; |
| use codex_app_server_protocol::RateLimitResetCredit; |
| use codex_app_server_protocol::RateLimitResetCreditStatus; |
| use codex_app_server_protocol::RateLimitResetCreditsSummary; |
| use codex_app_server_protocol::RateLimitResetType; |
| use codex_app_server_protocol::RequestId; |
| use codex_app_server_protocol::ReviewDelivery as ApiReviewDelivery; |
| use codex_app_server_protocol::ReviewStartParams; |
| use codex_app_server_protocol::ReviewStartResponse; |
| use codex_app_server_protocol::ReviewTarget as ApiReviewTarget; |
| use codex_app_server_protocol::SandboxMode; |
| use codex_app_server_protocol::SendAddCreditsNudgeEmailParams; |
| use codex_app_server_protocol::SendAddCreditsNudgeEmailResponse; |
| use codex_app_server_protocol::ServerNotification; |
| use codex_app_server_protocol::ServerRequestResolvedNotification; |
| use codex_app_server_protocol::SkillSummary; |
| use codex_app_server_protocol::SkillsConfigWriteParams; |
| use codex_app_server_protocol::SkillsConfigWriteResponse; |
| use codex_app_server_protocol::SkillsExtraRootsSetParams; |
| use codex_app_server_protocol::SkillsExtraRootsSetResponse; |
| use codex_app_server_protocol::SkillsListParams; |
| use codex_app_server_protocol::SkillsListResponse; |
| use codex_app_server_protocol::SortDirection; |
| use codex_app_server_protocol::Thread; |
| use codex_app_server_protocol::ThreadApproveGuardianDeniedActionParams; |
| use codex_app_server_protocol::ThreadApproveGuardianDeniedActionResponse; |
| use codex_app_server_protocol::ThreadArchiveParams; |
| use codex_app_server_protocol::ThreadArchiveResponse; |
| use codex_app_server_protocol::ThreadArchivedNotification; |
| use codex_app_server_protocol::ThreadBackgroundTerminal; |
| use codex_app_server_protocol::ThreadBackgroundTerminalsCleanParams; |
| use codex_app_server_protocol::ThreadBackgroundTerminalsCleanResponse; |
| use codex_app_server_protocol::ThreadBackgroundTerminalsListParams; |
| use codex_app_server_protocol::ThreadBackgroundTerminalsListResponse; |
| use codex_app_server_protocol::ThreadBackgroundTerminalsTerminateParams; |
| use codex_app_server_protocol::ThreadBackgroundTerminalsTerminateResponse; |
| use codex_app_server_protocol::ThreadClosedNotification; |
| use codex_app_server_protocol::ThreadCompactStartParams; |
| use codex_app_server_protocol::ThreadCompactStartResponse; |
| use codex_app_server_protocol::ThreadDecrementElicitationParams; |
| use codex_app_server_protocol::ThreadDecrementElicitationResponse; |
| use codex_app_server_protocol::ThreadDeleteParams; |
| use codex_app_server_protocol::ThreadDeleteResponse; |
| use codex_app_server_protocol::ThreadDeletedNotification; |
| use codex_app_server_protocol::ThreadForkParams; |
| use codex_app_server_protocol::ThreadForkResponse; |
| use codex_app_server_protocol::ThreadGoal; |
| use codex_app_server_protocol::ThreadGoalClearParams; |
| use codex_app_server_protocol::ThreadGoalClearResponse; |
| use codex_app_server_protocol::ThreadGoalClearedNotification; |
| use codex_app_server_protocol::ThreadGoalGetParams; |
| use codex_app_server_protocol::ThreadGoalGetResponse; |
| use codex_app_server_protocol::ThreadGoalSetParams; |
| use codex_app_server_protocol::ThreadGoalSetResponse; |
| use codex_app_server_protocol::ThreadGoalStatus; |
| use codex_app_server_protocol::ThreadGoalUpdatedNotification; |
| use codex_app_server_protocol::ThreadHistoryBuilder; |
| #[cfg(test)] |
| use codex_app_server_protocol::ThreadHistoryMode; |
| use codex_app_server_protocol::ThreadIncrementElicitationParams; |
| use codex_app_server_protocol::ThreadIncrementElicitationResponse; |
| use codex_app_server_protocol::ThreadInjectItemsParams; |
| use codex_app_server_protocol::ThreadInjectItemsResponse; |
| use codex_app_server_protocol::ThreadItem; |
| use codex_app_server_protocol::ThreadItemEntry; |
| use codex_app_server_protocol::ThreadItemsListParams; |
| use codex_app_server_protocol::ThreadItemsListResponse; |
| use codex_app_server_protocol::ThreadListCwdFilter; |
| use codex_app_server_protocol::ThreadListParams; |
| use codex_app_server_protocol::ThreadListResponse; |
| use codex_app_server_protocol::ThreadLoadedListParams; |
| use codex_app_server_protocol::ThreadLoadedListResponse; |
| use codex_app_server_protocol::ThreadMemoryModeSetParams; |
| use codex_app_server_protocol::ThreadMemoryModeSetResponse; |
| use codex_app_server_protocol::ThreadMetadataGitInfoUpdateParams; |
| use codex_app_server_protocol::ThreadMetadataUpdateParams; |
| use codex_app_server_protocol::ThreadMetadataUpdateResponse; |
| use codex_app_server_protocol::ThreadNameUpdatedNotification; |
| use codex_app_server_protocol::ThreadProjectUpdatedNotification; |
| use codex_app_server_protocol::ThreadReadParams; |
| use codex_app_server_protocol::ThreadReadResponse; |
| use codex_app_server_protocol::ThreadRealtimeAppendAudioParams; |
| use codex_app_server_protocol::ThreadRealtimeAppendAudioResponse; |
| use codex_app_server_protocol::ThreadRealtimeAppendSpeechParams; |
| use codex_app_server_protocol::ThreadRealtimeAppendSpeechResponse; |
| use codex_app_server_protocol::ThreadRealtimeAppendTextParams; |
| use codex_app_server_protocol::ThreadRealtimeAppendTextResponse; |
| use codex_app_server_protocol::ThreadRealtimeListVoicesResponse; |
| use codex_app_server_protocol::ThreadRealtimeStartParams; |
| use codex_app_server_protocol::ThreadRealtimeStartResponse; |
| use codex_app_server_protocol::ThreadRealtimeStartTransport; |
| use codex_app_server_protocol::ThreadRealtimeStopParams; |
| use codex_app_server_protocol::ThreadRealtimeStopResponse; |
| use codex_app_server_protocol::ThreadResumeInitialTurnsPageParams; |
| use codex_app_server_protocol::ThreadResumeParams; |
| use codex_app_server_protocol::ThreadResumeResponse; |
| use codex_app_server_protocol::ThreadSearchOccurrence; |
| use codex_app_server_protocol::ThreadSearchOccurrencesParams; |
| use codex_app_server_protocol::ThreadSearchOccurrencesResponse; |
| use codex_app_server_protocol::ThreadSearchParams; |
| use codex_app_server_protocol::ThreadSearchResponse; |
| use codex_app_server_protocol::ThreadSearchResult; |
| use codex_app_server_protocol::ThreadSearchSortKey; |
| use codex_app_server_protocol::ThreadSearchTextRange; |
| use codex_app_server_protocol::ThreadSetNameParams; |
| use codex_app_server_protocol::ThreadSetNameResponse; |
| use codex_app_server_protocol::ThreadSettings; |
| use codex_app_server_protocol::ThreadSettingsUpdateParams; |
| use codex_app_server_protocol::ThreadSettingsUpdateResponse; |
| use codex_app_server_protocol::ThreadShellCommandParams; |
| use codex_app_server_protocol::ThreadShellCommandResponse; |
| use codex_app_server_protocol::ThreadSortKey; |
| use codex_app_server_protocol::ThreadSourceKind; |
| use codex_app_server_protocol::ThreadStartParams; |
| use codex_app_server_protocol::ThreadStartResponse; |
| use codex_app_server_protocol::ThreadStartedNotification; |
| use codex_app_server_protocol::ThreadStatus; |
| use codex_app_server_protocol::ThreadTimelineListParams; |
| use codex_app_server_protocol::ThreadTimelineListResponse; |
| use codex_app_server_protocol::ThreadTurnsListParams; |
| use codex_app_server_protocol::ThreadTurnsListResponse; |
| use codex_app_server_protocol::ThreadUnarchiveParams; |
| use codex_app_server_protocol::ThreadUnarchiveResponse; |
| use codex_app_server_protocol::ThreadUnarchivedNotification; |
| use codex_app_server_protocol::ThreadUnsubscribeParams; |
| use codex_app_server_protocol::ThreadUnsubscribeResponse; |
| use codex_app_server_protocol::ThreadUnsubscribeStatus; |
| use codex_app_server_protocol::Turn; |
| use codex_app_server_protocol::TurnEnvironmentParams; |
| use codex_app_server_protocol::TurnError; |
| use codex_app_server_protocol::TurnInterruptParams; |
| use codex_app_server_protocol::TurnInterruptResponse; |
| use codex_app_server_protocol::TurnItemsView; |
| use codex_app_server_protocol::TurnSettingsUpdateParams; |
| use codex_app_server_protocol::TurnSettingsUpdateResponse; |
| use codex_app_server_protocol::TurnSettingsUpdateStatus; |
| use codex_app_server_protocol::TurnStartParams; |
| use codex_app_server_protocol::TurnStartResponse; |
| use codex_app_server_protocol::TurnStatus; |
| use codex_app_server_protocol::TurnSteerParams; |
| use codex_app_server_protocol::TurnSteerResponse; |
| use codex_app_server_protocol::UserInput as V2UserInput; |
| use codex_app_server_protocol::WindowsSandboxReadiness; |
| use codex_app_server_protocol::WindowsSandboxReadinessResponse; |
| use codex_app_server_protocol::WindowsSandboxSetupCompletedNotification; |
| use codex_app_server_protocol::WindowsSandboxSetupMode; |
| use codex_app_server_protocol::WindowsSandboxSetupStartParams; |
| use codex_app_server_protocol::WindowsSandboxSetupStartResponse; |
| use codex_app_server_protocol::WorkspaceMessage; |
| use codex_app_server_protocol::WorkspaceMessageType; |
| use codex_arg0::Arg0DispatchPaths; |
| use codex_backend_client::AddCreditsNudgeCreditType as BackendAddCreditsNudgeCreditType; |
| use codex_backend_client::Client as BackendClient; |
| use codex_backend_client::CodexWorkspaceMessage as BackendWorkspaceMessage; |
| use codex_backend_client::CodexWorkspaceMessageType as BackendWorkspaceMessageType; |
| use codex_backend_client::CodexWorkspaceMessagesResponse as BackendWorkspaceMessagesResponse; |
| use codex_backend_client::ConsumeRateLimitResetCreditCode as BackendConsumeRateLimitResetCreditCode; |
| use codex_backend_client::RateLimitResetCreditDetails as BackendRateLimitResetCreditDetails; |
| use codex_backend_client::RateLimitResetCreditsDetails as BackendRateLimitResetCreditsDetails; |
| use codex_backend_client::RequestError as BackendRequestError; |
| use codex_backend_client::TokenUsageProfile; |
| use codex_chatgpt::connectors; |
| use codex_config::CloudConfigBundleLoadError; |
| use codex_config::CloudConfigBundleLoadErrorCode; |
| use codex_config::ConfigLayerStack; |
| use codex_config::loader::project_trust_key; |
| use codex_config::types::McpServerTransportConfig; |
| use codex_connectors::AppInfo; |
| use codex_core::CodexThread; |
| use codex_core::CodexThreadSettingsOverrides; |
| use codex_core::ForkSnapshot; |
| use codex_core::McpManager; |
| use codex_core::NewThread; |
| use codex_core::NotSubmittedReason; |
| #[cfg(test)] |
| use codex_core::SessionMeta; |
| use codex_core::StartThreadOptions; |
| use codex_core::SteerSubmission; |
| use codex_core::ThreadConfigSnapshot; |
| use codex_core::ThreadManager; |
| use codex_core::TurnInput; |
| use codex_core::TurnInputRequest; |
| use codex_core::TurnInputSubmission; |
| use codex_core::TurnStartOptions; |
| use codex_core::config::Config; |
| use codex_core::config::ConfigOverrides; |
| use codex_core::config::NetworkProxyAuditMetadata; |
| use codex_core::config::edit::ConfigEdit; |
| use codex_core::config::edit::ConfigEditsBuilder; |
| use codex_core::connectors::AccessibleConnectorsStatus; |
| use codex_core::exec::ExecCapturePolicy; |
| use codex_core::exec::ExecExpiration; |
| use codex_core::exec::ExecParams; |
| use codex_core::exec_env::create_env; |
| use codex_core::path_utils; |
| #[cfg(test)] |
| use codex_core::read_head_for_summary; |
| use codex_core::sandboxing::SandboxPermissions; |
| use codex_core::truncate_rollout_after_turn_id; |
| use codex_core::truncate_rollout_before_turn_id; |
| use codex_core::windows_sandbox::WindowsSandboxLevelExt; |
| use codex_core::windows_sandbox::WindowsSandboxSetupMode as CoreWindowsSandboxSetupMode; |
| use codex_core::windows_sandbox::WindowsSandboxSetupRequest; |
| use codex_core::windows_sandbox::sandbox_setup_is_complete; |
| use codex_core_plugins::PluginInstallError as CorePluginInstallError; |
| use codex_core_plugins::PluginInstallRequest; |
| use codex_core_plugins::PluginReadRequest; |
| use codex_core_plugins::PluginUninstallError as CorePluginUninstallError; |
| use codex_core_plugins::PluginsManager; |
| use codex_core_plugins::loader::load_plugin_apps; |
| use codex_core_plugins::manifest::PluginManifestInterface; |
| use codex_core_plugins::marketplace::MarketplaceError; |
| use codex_core_plugins::marketplace::MarketplacePluginSource; |
| use codex_core_plugins::marketplace_add::MarketplaceAddError; |
| use codex_core_plugins::marketplace_add::MarketplaceAddRequest; |
| use codex_core_plugins::marketplace_add::add_marketplace as add_marketplace_to_codex_home; |
| use codex_core_plugins::marketplace_remove::MarketplaceRemoveError; |
| use codex_core_plugins::marketplace_remove::MarketplaceRemoveRequest as CoreMarketplaceRemoveRequest; |
| use codex_core_plugins::marketplace_remove::remove_marketplace; |
| use codex_core_plugins::remote::RemoteMarketplace; |
| use codex_core_plugins::remote::RemoteMarketplaceSource; |
| use codex_core_plugins::remote::RemotePluginCatalogError; |
| use codex_core_plugins::remote::RemotePluginDetail as RemoteCatalogPluginDetail; |
| use codex_core_plugins::remote::RemotePluginServiceConfig; |
| use codex_core_plugins::remote::RemotePluginShareContext as RemoteCatalogPluginShareContext; |
| use codex_core_plugins::remote::RemotePluginShareSummary as RemoteCatalogPluginShareSummary; |
| use codex_core_plugins::remote::RemotePluginSummary as RemoteCatalogPluginSummary; |
| use codex_exec_server::EnvironmentManager; |
| use codex_exec_server::EnvironmentObservedStatus; |
| use codex_exec_server::LOCAL_ENVIRONMENT_ID; |
| use codex_exec_server::LOCAL_FS; |
| use codex_features::FEATURES; |
| use codex_features::Feature; |
| use codex_features::Stage; |
| use codex_feedback::CodexFeedback; |
| use codex_feedback::FeedbackAttachmentPath; |
| use codex_feedback::FeedbackUploadOptions; |
| use codex_git_utils::git_diff_to_remote; |
| use codex_git_utils::resolve_root_git_project_for_trust; |
| use codex_login::AuthManager; |
| use codex_login::CODEX_OPEN_APP_URL; |
| use codex_login::CodexAuth; |
| use codex_login::LoginSuccessPage; |
| use codex_login::LoginSuccessPageBrand; |
| use codex_login::ServerOptions as LoginServerOptions; |
| use codex_login::ShutdownHandle; |
| use codex_login::complete_device_code_login; |
| use codex_login::login_with_api_key; |
| use codex_login::login_with_bedrock_api_key; |
| use codex_login::oauth_client_id; |
| use codex_login::request_device_code; |
| use codex_login::run_login_server; |
| use codex_mcp::McpRuntimeContext; |
| use codex_mcp::McpServerStatusSnapshot; |
| use codex_mcp::McpSnapshotDetail; |
| use codex_mcp::collect_mcp_server_status_snapshot_with_detail; |
| use codex_mcp::discover_supported_scopes; |
| use codex_mcp::read_mcp_resource as read_mcp_resource_without_thread; |
| use codex_mcp::resolve_oauth_scopes; |
| use codex_memories_write::clear_memory_roots_contents; |
| use codex_model_provider::create_model_provider; |
| use codex_models_manager::collaboration_mode_presets::builtin_collaboration_mode_presets; |
| use codex_protocol::ThreadId; |
| use codex_protocol::config_types::CollaborationMode; |
| use codex_protocol::config_types::ForcedLoginMethod; |
| use codex_protocol::config_types::Personality; |
| use codex_protocol::config_types::ReasoningSummary; |
| use codex_protocol::config_types::TrustLevel; |
| use codex_protocol::config_types::WindowsSandboxLevel; |
| use codex_protocol::error::CodexErr; |
| use codex_protocol::error::Result as CodexResult; |
| #[cfg(test)] |
| use codex_protocol::items::TurnItem; |
| use codex_protocol::models::ResponseItem; |
| use codex_protocol::openai_models::ReasoningEffort; |
| use codex_protocol::protocol::AgentStatus; |
| use codex_protocol::protocol::ConversationAudioParams; |
| use codex_protocol::protocol::ConversationSpeechParams; |
| use codex_protocol::protocol::ConversationStartParams; |
| use codex_protocol::protocol::ConversationStartTransport; |
| use codex_protocol::protocol::ConversationTextParams; |
| use codex_protocol::protocol::EnvironmentConfigState; |
| use codex_protocol::protocol::EventMsg; |
| #[cfg(test)] |
| use codex_protocol::protocol::GitInfo as CoreGitInfo; |
| use codex_protocol::protocol::McpAuthStatus as CoreMcpAuthStatus; |
| use codex_protocol::protocol::Op; |
| use codex_protocol::protocol::RealtimeVoicesList; |
| use codex_protocol::protocol::ReviewDelivery as CoreReviewDelivery; |
| use codex_protocol::protocol::ReviewRequest; |
| use codex_protocol::protocol::ReviewTarget as CoreReviewTarget; |
| use codex_protocol::protocol::SessionConfiguredEvent; |
| #[cfg(test)] |
| use codex_protocol::protocol::SessionMetaLine; |
| use codex_protocol::protocol::TurnEnvironmentSelection; |
| use codex_protocol::protocol::TurnEnvironmentSelections; |
| use codex_protocol::protocol::W3cTraceContext; |
| use codex_protocol::protocol::strip_user_message_prefix; |
| use codex_protocol::user_input::MAX_USER_INPUT_TEXT_CHARS; |
| use codex_protocol::user_input::UserInput as CoreInputItem; |
| use codex_rmcp_client::McpOAuthClientRegistration; |
| use codex_rmcp_client::StreamableHttpRedirectMode; |
| use codex_rmcp_client::perform_oauth_login_return_url; |
| use codex_rollout::InitialHistory; |
| use codex_rollout::ResumedHistory; |
| use codex_rollout::RolloutItem; |
| use codex_rollout::is_persisted_rollout_item; |
| use codex_rollout::state_db::StateDbHandle; |
| use codex_rollout::state_db::reconcile_rollout; |
| use codex_state::ThreadMetadata; |
| use codex_state::log_db::LogDbLayer; |
| use codex_thread_store::ArchiveThreadParams as StoreArchiveThreadParams; |
| use codex_thread_store::ArchiveThreadsParams as StoreArchiveThreadsParams; |
| use codex_thread_store::ClearableField as StoreClearableField; |
| use codex_thread_store::DeleteThreadsParams as StoreDeleteThreadsParams; |
| use codex_thread_store::GitInfoPatch as StoreGitInfoPatch; |
| use codex_thread_store::ItemSortKey as StoreItemSortKey; |
| use codex_thread_store::ListItemsParams as StoreListItemsParams; |
| use codex_thread_store::ListThreadsParams as StoreListThreadsParams; |
| use codex_thread_store::ListTimelineParams as StoreListTimelineParams; |
| use codex_thread_store::ListTurnsParams as StoreListTurnsParams; |
| use codex_thread_store::LoadThreadHistoryParams as StoreLoadThreadHistoryParams; |
| use codex_thread_store::LocalThreadStore; |
| use codex_thread_store::ReadThreadByRolloutPathParams as StoreReadThreadByRolloutPathParams; |
| use codex_thread_store::ReadThreadParams as StoreReadThreadParams; |
| use codex_thread_store::SearchThreadOccurrencesParams as StoreSearchThreadOccurrencesParams; |
| use codex_thread_store::SearchThreadsParams as StoreSearchThreadsParams; |
| use codex_thread_store::SortDirection as StoreSortDirection; |
| use codex_thread_store::StoredThread; |
| use codex_thread_store::StoredTurn; |
| use codex_thread_store::StoredTurnItemsView; |
| use codex_thread_store::StoredTurnStatus; |
| use codex_thread_store::ThreadMetadataPatch as StoreThreadMetadataPatch; |
| use codex_thread_store::ThreadRelationFilter as StoreThreadRelationFilter; |
| use codex_thread_store::ThreadSortKey as StoreThreadSortKey; |
| use codex_thread_store::ThreadStore; |
| use codex_thread_store::ThreadStoreError; |
| use codex_utils_absolute_path::AbsolutePathBuf; |
| use codex_utils_pty::DEFAULT_OUTPUT_BYTES_CAP; |
| use std::collections::BTreeMap; |
| use std::collections::HashMap; |
| use std::collections::HashSet; |
| use std::io::Error as IoError; |
| use std::path::Path; |
| use std::path::PathBuf; |
| use std::result::Result; |
| use std::sync::Arc; |
| use std::time::Duration; |
| use std::time::Instant; |
| use tokio::sync::Mutex; |
| use tokio::sync::Semaphore; |
| use tokio::sync::SemaphorePermit; |
| use tokio::sync::broadcast; |
| use tokio::sync::oneshot; |
| use tokio::sync::watch; |
| use tokio_util::sync::CancellationToken; |
| use tokio_util::sync::DropGuard; |
| use tokio_util::task::TaskTracker; |
| use toml::Value as TomlValue; |
| use tracing::Instrument; |
| use tracing::error; |
| use tracing::info; |
| use tracing::warn; |
| use uuid::Uuid; |
|
|
| #[cfg(test)] |
| use codex_app_server_protocol::ServerRequest; |
|
|
| mod account_processor; |
| mod apps_processor; |
| mod bedrock_auth; |
| mod catalog_processor; |
| mod command_exec_processor; |
| mod config_processor; |
| mod diagnostics; |
| mod environment_processor; |
| mod feedback_doctor_report; |
| mod feedback_processor; |
| mod feedback_thread_index; |
| mod fs_processor; |
| mod git_processor; |
| mod initialize_processor; |
| mod marketplace_processor; |
| mod mcp_event_stream; |
| mod mcp_processor; |
| mod memory_status; |
| mod persisted_resume_settings; |
| mod plugins; |
| mod process_exec_processor; |
| mod projects; |
| mod remote_control_processor; |
| mod search; |
| mod thread_attachments; |
| mod thread_enrichment; |
| mod thread_fork_goal; |
| mod thread_input; |
| mod thread_processor; |
| mod thread_queue_processor; |
| mod thread_sections; |
| mod token_usage_replay; |
| mod turn_processor; |
| mod windows_sandbox_processor; |
|
|
| pub(crate) use account_processor::AccountRequestProcessor; |
| pub(crate) use apps_processor::AppsRequestProcessor; |
| pub(crate) use catalog_processor::CatalogRequestProcessor; |
| pub(crate) use command_exec_processor::CommandExecRequestProcessor; |
| pub(crate) use config_processor::ConfigRequestProcessor; |
| pub(crate) use diagnostics::read_server_diagnostics; |
| pub(crate) use environment_processor::EnvironmentRequestProcessor; |
| pub(crate) use feedback_processor::FeedbackRequestProcessor; |
| pub(crate) use fs_processor::FsRequestProcessor; |
| pub(crate) use git_processor::GitRequestProcessor; |
| pub(crate) use initialize_processor::InitializeRequestProcessor; |
| pub(crate) use marketplace_processor::MarketplaceRequestProcessor; |
| pub(crate) use mcp_event_stream::McpEventStreamReady; |
| pub(crate) use mcp_event_stream::McpEventStreams; |
| pub(crate) use mcp_processor::McpRequestProcessor; |
| pub(crate) use plugins::PluginRequestProcessor; |
| pub(crate) use process_exec_processor::ProcessExecRequestProcessor; |
| pub(crate) use projects::ProjectRequestProcessor; |
| pub(crate) use remote_control_processor::RemoteControlRequestProcessor; |
| pub(crate) use search::SearchRequestProcessor; |
| pub(crate) use thread_goal_processor::ThreadGoalRequestProcessor; |
| pub(crate) use thread_processor::ThreadRequestProcessor; |
| pub(crate) use thread_processor::ThreadResumeTarget; |
| pub(crate) use thread_queue_processor::ThreadQueueRequestProcessor; |
| pub(crate) use turn_processor::TurnRequestProcessor; |
| pub(crate) use windows_sandbox_processor::WindowsSandboxRequestProcessor; |
|
|
| use crate::error_code::internal_error; |
| use crate::error_code::invalid_request; |
| use crate::filters::compute_source_filters; |
| use crate::filters::source_kind_matches; |
| use crate::thread_state::ConnectionCapabilities; |
| use crate::thread_state::ThreadListenerCommand; |
| use crate::thread_state::ThreadState; |
| use crate::thread_state::ThreadStateManager; |
| use token_usage_replay::restored_token_usage_turn_id; |
| use token_usage_replay::send_thread_token_usage_update_to_connection; |
|
|
| pub(crate) fn apply_live_thread_settings( |
| thread: &mut Thread, |
| config_snapshot: &ThreadConfigSnapshot, |
| ) { |
| thread.model = Some(config_snapshot.model.clone()); |
| thread.reasoning_effort = config_snapshot.reasoning_effort.clone(); |
| thread.environments = Some( |
| config_snapshot |
| .environment_selections() |
| .iter() |
| .map(Into::into) |
| .collect(), |
| ); |
| } |
|
|
| fn resolve_request_cwd(cwd: Option<PathBuf>) -> Result<Option<AbsolutePathBuf>, JSONRPCErrorError> { |
| cwd.map(|cwd| { |
| AbsolutePathBuf::relative_to_current_dir(path_utils::normalize_for_native_workdir(cwd)) |
| .map_err(|err| invalid_request(format!("invalid cwd: {err}"))) |
| }) |
| .transpose() |
| } |
|
|
| fn resolve_turn_environment_selections( |
| thread_manager: &ThreadManager, |
| environments: Option<Vec<TurnEnvironmentParams>>, |
| ) -> Result<Option<Vec<TurnEnvironmentSelection>>, JSONRPCErrorError> { |
| let Some(environments) = environments else { |
| return Ok(None); |
| }; |
| let mut selections = Vec::with_capacity(environments.len()); |
| for environment in environments { |
| let environment_id = environment.environment_id; |
| let cwd = environment |
| .cwd |
| .to_inferred_path_uri() |
| .ok_or_else(|| { |
| invalid_request(format!( |
| "invalid cwd for environment `{environment_id}`: path `{}` does not use absolute POSIX or Windows path syntax", |
| environment.cwd |
| )) |
| })?; |
| let workspace_roots = environment |
| .runtime_workspace_roots |
| .map(|roots| { |
| let mut resolved_roots = Vec::new(); |
| for root in roots { |
| let root = root.to_inferred_path_uri().ok_or_else(|| { |
| invalid_request(format!( |
| "invalid runtime workspace root for environment `{environment_id}`: path `{root}` does not use absolute POSIX or Windows path syntax" |
| )) |
| })?; |
| if !resolved_roots.contains(&root) { |
| resolved_roots.push(root); |
| } |
| } |
| Ok::<_, JSONRPCErrorError>(resolved_roots) |
| }) |
| .transpose()? |
| .unwrap_or_else(|| vec![cwd.clone()]); |
| selections.push(TurnEnvironmentSelection { |
| environment_id, |
| cwd, |
| workspace_roots, |
| config: EnvironmentConfigState::FromThread, |
| }); |
| } |
| thread_manager |
| .validate_environment_selections(&selections) |
| .map_err(environment_selection_error)?; |
| Ok(Some(selections)) |
| } |
|
|
| fn resolve_runtime_workspace_roots(workspace_roots: Vec<AbsolutePathBuf>) -> Vec<AbsolutePathBuf> { |
| let mut resolved_roots = Vec::new(); |
| for root in workspace_roots { |
| if !resolved_roots.iter().any(|existing| existing == &root) { |
| resolved_roots.push(root); |
| } |
| } |
| resolved_roots |
| } |
|
|
| mod config_errors; |
| mod request_errors; |
| mod thread_delete; |
| mod thread_goal_processor; |
| mod thread_lifecycle; |
| mod thread_resume_redaction; |
| mod thread_summary; |
|
|
| use self::config_errors::*; |
| use self::request_errors::*; |
| use self::thread_goal_processor::api_thread_goal_from_state; |
| use self::thread_lifecycle::*; |
| use self::thread_resume_redaction::*; |
| use self::thread_summary::*; |
|
|
| pub(crate) use self::thread_lifecycle::populate_thread_turns_from_history; |
| pub(crate) use self::thread_processor::thread_from_stored_thread; |
| #[cfg(test)] |
| pub(crate) use self::thread_summary::read_summary_from_rollout; |
| #[cfg(test)] |
| pub(crate) use self::thread_summary::summary_to_thread; |
| pub(crate) use self::thread_summary::thread_settings_from_config_snapshot; |
|
|
| pub(crate) fn build_legacy_api_turns_from_rollout_items(items: &[RolloutItem]) -> Vec<Turn> { |
| let mut builder = ThreadHistoryBuilder::new(); |
| for item in items { |
| if is_persisted_rollout_item(item, codex_protocol::protocol::ThreadHistoryMode::Legacy) { |
| builder.handle_rollout_item(item); |
| } |
| } |
| builder.finish() |
| } |
|
|