@jrkropp/codex-js 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +57 -617
- package/dist/client/index.d.ts +2 -16
- package/dist/client/index.js +2522 -16
- package/dist/index.d.ts +2 -25
- package/dist/index.js +699 -20
- package/dist/internal/codex/app-server/src/bespoke_event_handling.d.ts +5 -0
- package/dist/internal/codex/app-server/src/connection_rpc_gate.d.ts +11 -0
- package/dist/internal/codex/app-server/src/dynamic_tools.d.ts +5 -0
- package/dist/internal/codex/app-server/src/message_processor.d.ts +88 -0
- package/dist/internal/codex/app-server/src/outgoing_message.d.ts +73 -0
- package/dist/internal/codex/app-server/src/request_processors/common.d.ts +25 -0
- package/dist/internal/codex/app-server/src/request_processors/mcp_processor.d.ts +32 -0
- package/dist/internal/codex/app-server/src/request_processors/request_errors.d.ts +9 -0
- package/dist/internal/codex/app-server/src/request_processors/thread_processor.d.ts +38 -0
- package/dist/internal/codex/app-server/src/request_processors/token_usage_replay.d.ts +22 -0
- package/dist/internal/codex/app-server/src/request_processors/turn_processor.d.ts +21 -0
- package/dist/internal/codex/app-server/src/request_processors.d.ts +5 -0
- package/dist/internal/codex/app-server/src/request_serialization.d.ts +7 -0
- package/dist/internal/codex/app-server/src/runtime.d.ts +96 -0
- package/dist/internal/codex/app-server/src/server_request_response.d.ts +30 -0
- package/dist/internal/codex/app-server/src/session_factory.d.ts +30 -0
- package/dist/internal/codex/app-server/src/session_task_runner.d.ts +44 -0
- package/dist/internal/codex/app-server/src/thread_state.d.ts +56 -0
- package/dist/internal/codex/app-server-client/src/lib.d.ts +48 -0
- package/dist/{index-77U_Oc-a.d.ts → internal/codex/app-server-client/src/pending_requests.d.ts} +7 -18
- package/dist/internal/codex/app-server-client/src/remote.d.ts +18 -0
- package/dist/{session-BRYzi8OT.d.ts → internal/codex/app-server-client/src/session.d.ts} +5 -9
- package/dist/{thread_event_store-C0zYzukG.d.ts → internal/codex/app-server-client/src/thread_event_store.d.ts} +14 -14
- package/dist/internal/codex/app-server-client/src/thread_projection.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/AbsolutePathBuf.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/AgentPath.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ApplyPatchApprovalParams.d.ts +22 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ApplyPatchApprovalResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/AuthMode.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ClientInfo.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ClientNotification.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ClientRequest.d.ts +410 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/CollaborationMode.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ContentItem.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ConversationGitInfo.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ConversationSummary.d.ts +15 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ExecCommandApprovalParams.d.ts +18 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ExecCommandApprovalResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ExecPolicyAmendment.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FileChange.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ForcedLoginMethod.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FunctionCallOutputBody.d.ts +2 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FunctionCallOutputContentItem.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FuzzyFileSearchMatchType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FuzzyFileSearchParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FuzzyFileSearchResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FuzzyFileSearchResult.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FuzzyFileSearchSessionCompletedNotification.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/FuzzyFileSearchSessionUpdatedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/GetAuthStatusParams.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/GetAuthStatusResponse.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/GetConversationSummaryParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/GetConversationSummaryResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/GitDiffToRemoteParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/GitDiffToRemoteResponse.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/GitSha.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ImageDetail.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/InitializeCapabilities.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/InitializeParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/InitializeResponse.d.ts +18 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/InputModality.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/InternalSessionSource.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/LocalShellAction.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/LocalShellExecAction.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/LocalShellStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/MessagePhase.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ModeKind.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/NetworkPolicyAmendment.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/NetworkPolicyRuleAction.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ParsedCommand.d.ts +24 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/Personality.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/PlanType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/RealtimeConversationVersion.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/RealtimeOutputModality.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/RealtimeVoice.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/RealtimeVoicesList.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ReasoningEffort.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ReasoningItemContent.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ReasoningItemReasoningSummary.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ReasoningSummary.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/RequestId.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/Resource.d.ts +15 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ResourceContent.d.ts +21 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ResourceTemplate.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ResponseItem.d.ts +78 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ReviewDecision.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ServerNotification.d.ts +260 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ServerRequest.d.ts +50 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/SessionSource.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/Settings.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/SubAgentSource.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ThreadId.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/ThreadMemoryMode.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/Tool.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/Verbosity.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/WebSearchAction.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/WebSearchContextSize.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/WebSearchLocation.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/WebSearchMode.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/WebSearchToolConfig.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/index.d.ts +77 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/serde_json/JsonValue.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/Account.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AccountLoginCompletedNotification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AccountRateLimitsUpdatedNotification.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AccountUpdatedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ActivePermissionProfile.d.ts +18 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ActivePermissionProfileModification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AddCreditsNudgeCreditType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AddCreditsNudgeEmailStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AdditionalFileSystemPermissions.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AdditionalNetworkPermissions.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AdditionalPermissionProfile.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AgentMessageDeltaNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AnalyticsConfig.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppBranding.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppInfo.d.ts +30 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppListUpdatedNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppMetadata.d.ts +16 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppReview.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppScreenshot.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppSummary.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppToolApproval.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppToolsConfig.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ApprovalsReviewer.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppsConfig.d.ts +15 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppsDefaultConfig.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppsListParams.d.ts +21 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AppsListResponse.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AskForApproval.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/AutoReviewDecisionSource.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ByteRange.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CancelLoginAccountParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CancelLoginAccountResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CancelLoginAccountStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ChatgptAuthTokensRefreshParams.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ChatgptAuthTokensRefreshReason.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ChatgptAuthTokensRefreshResponse.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CodexErrorInfo.d.ts +28 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CollabAgentState.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CollabAgentStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CollabAgentTool.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CollabAgentToolCallStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CollaborationModeListParams.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CollaborationModeListResponse.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CollaborationModeMask.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandAction.d.ts +19 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecOutputDeltaNotification.d.ts +27 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecOutputStream.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecParams.d.ts +82 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecResizeParams.d.ts +15 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecResizeResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecResponse.d.ts +21 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecTerminalSize.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecTerminateParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecTerminateResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecWriteParams.d.ts +19 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecWriteResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecutionApprovalDecision.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecutionOutputDeltaNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecutionRequestApprovalParams.d.ts +40 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecutionRequestApprovalResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecutionSource.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandExecutionStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CommandMigration.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/Config.d.ts +47 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigBatchWriteParams.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigEdit.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigLayer.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigLayerMetadata.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigLayerSource.d.ts +30 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigReadParams.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigReadResponse.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigRequirements.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigRequirementsReadResponse.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigValueWriteParams.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigWarningNotification.d.ts +19 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfigWriteResponse.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfiguredHookHandler.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ConfiguredHookMatcherGroup.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ContextCompactedNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/CreditsSnapshot.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeprecationNoticeNotification.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeyAlgorithm.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeyCreateParams.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeyCreateResponse.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeyProtectionClass.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeyProtectionPolicy.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeyPublicParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeyPublicResponse.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeySignParams.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeySignPayload.d.ts +62 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DeviceKeySignResponse.d.ts +16 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DynamicToolCallOutputContentItem.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DynamicToolCallParams.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DynamicToolCallResponse.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DynamicToolCallStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/DynamicToolSpec.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ErrorNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExecPolicyAmendment.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExperimentalFeature.d.ts +34 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExperimentalFeatureEnablementSetParams.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExperimentalFeatureEnablementSetResponse.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExperimentalFeatureListParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExperimentalFeatureListResponse.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExperimentalFeatureStage.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExternalAgentConfigDetectParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExternalAgentConfigDetectResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExternalAgentConfigImportCompletedNotification.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExternalAgentConfigImportParams.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExternalAgentConfigImportResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExternalAgentConfigMigrationItem.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ExternalAgentConfigMigrationItemType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FeedbackUploadParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FeedbackUploadResponse.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileChangeApprovalDecision.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileChangeOutputDeltaNotification.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileChangePatchUpdatedNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileChangeRequestApprovalParams.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileChangeRequestApprovalResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileSystemAccessMode.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileSystemPath.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileSystemSandboxEntry.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileSystemSpecialPath.d.ts +16 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FileUpdateChange.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsChangedNotification.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsCopyParams.d.ts +18 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsCopyResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsCreateDirectoryParams.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsCreateDirectoryResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsGetMetadataParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsGetMetadataResponse.d.ts +25 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsReadDirectoryEntry.d.ts +17 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsReadDirectoryParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsReadDirectoryResponse.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsReadFileParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsReadFileResponse.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsRemoveParams.d.ts +18 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsRemoveResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsUnwatchParams.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsUnwatchResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsWatchParams.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsWatchResponse.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsWriteFileParams.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/FsWriteFileResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GetAccountParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GetAccountRateLimitsResponse.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GetAccountResponse.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GitInfo.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GrantedPermissionProfile.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GuardianApprovalReview.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GuardianApprovalReviewAction.d.ts +37 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GuardianApprovalReviewStatus.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GuardianCommandSource.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GuardianRiskLevel.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GuardianUserAuthorization.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/GuardianWarningNotification.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookCompletedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookErrorInfo.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookEventName.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookExecutionMode.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookHandlerType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookMetadata.d.ts +22 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookMigration.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookOutputEntry.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookOutputEntryKind.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookPromptFragment.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookRunStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookRunSummary.d.ts +24 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookScope.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookSource.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookStartedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HookTrustStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HooksListEntry.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HooksListParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/HooksListResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ItemCompletedNotification.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ItemGuardianApprovalReviewCompletedNotification.d.ts +32 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ItemGuardianApprovalReviewStartedNotification.d.ts +30 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ItemStartedNotification.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ListMcpServerStatusParams.d.ts +16 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ListMcpServerStatusResponse.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/LoginAccountParams.d.ts +27 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/LoginAccountResponse.d.ts +23 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/LogoutAccountResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ManagedHooksRequirements.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceAddParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceAddResponse.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceInterface.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceLoadErrorInfo.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceRemoveParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceRemoveResponse.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceUpgradeErrorInfo.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceUpgradeParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MarketplaceUpgradeResponse.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpAuthStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationArrayType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationBooleanSchema.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationBooleanType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationConstOption.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationEnumSchema.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationLegacyTitledEnumSchema.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationMultiSelectEnumSchema.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationNumberSchema.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationNumberType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationObjectType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationPrimitiveSchema.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationSchema.d.ts +16 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationSingleSelectEnumSchema.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationStringFormat.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationStringSchema.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationStringType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationTitledEnumItems.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationTitledMultiSelectEnumSchema.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationTitledSingleSelectEnumSchema.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationUntitledEnumItems.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationUntitledMultiSelectEnumSchema.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpElicitationUntitledSingleSelectEnumSchema.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpResourceReadParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpResourceReadResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerElicitationAction.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerElicitationRequestParams.d.ts +26 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerElicitationRequestResponse.d.ts +15 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerMigration.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerOauthLoginCompletedNotification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerOauthLoginParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerOauthLoginResponse.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerRefreshResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerStartupState.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerStatus.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerStatusDetail.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerStatusUpdatedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerToolCallParams.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpServerToolCallResponse.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpToolCallError.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpToolCallProgressNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpToolCallResult.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/McpToolCallStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MemoryCitation.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MemoryCitationEntry.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MergeStrategy.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/MigrationDetails.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/Model.d.ts +26 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelAvailabilityNux.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelListParams.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelListResponse.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelProviderCapabilitiesReadParams.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelProviderCapabilitiesReadResponse.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelRerouteReason.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelReroutedNotification.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelServiceTier.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelUpgradeInfo.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelVerification.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ModelVerificationNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkAccess.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkApprovalContext.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkApprovalProtocol.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkDomainPermission.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkPolicyAmendment.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkPolicyRuleAction.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkRequirements.d.ts +40 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NetworkUnixSocketPermission.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/NonSteerableTurnKind.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/OverriddenMetadata.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PatchApplyStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PatchChangeKind.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionGrantScope.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionProfile.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionProfileFileSystemPermissions.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionProfileModificationParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionProfileNetworkPermissions.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionProfileSelectionParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionsRequestApprovalParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PermissionsRequestApprovalResponse.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PlanDeltaNotification.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginAuthPolicy.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginAvailability.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginDetail.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginInstallParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginInstallPolicy.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginInstallResponse.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginInterface.d.ts +42 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginListMarketplaceKind.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginListParams.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginListResponse.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginMarketplaceEntry.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginReadParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginReadResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareContext.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareDeleteParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareDeleteResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareDiscoverability.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareListItem.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareListParams.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareListResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginSharePrincipal.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginSharePrincipalType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareSaveParams.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareSaveResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareTarget.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareUpdateTargetsParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginShareUpdateTargetsResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginSkillReadParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginSkillReadResponse.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginSource.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginSummary.d.ts +25 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginUninstallParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginUninstallResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/PluginsMigration.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ProcessExitedNotification.d.ts +39 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ProcessOutputDeltaNotification.d.ts +23 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ProcessOutputStream.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ProcessTerminalSize.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ProfileV2.d.ts +29 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RateLimitReachedType.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RateLimitSnapshot.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RateLimitWindow.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RawResponseItemCompletedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReasoningEffortOption.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReasoningSummaryPartAddedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReasoningSummaryTextDeltaNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReasoningTextDeltaNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RemoteControlClientConnectionAudience.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RemoteControlClientEnrollmentAudience.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RemoteControlConnectionStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RemoteControlStatusChangedNotification.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/RequestPermissionProfile.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ResidencyRequirement.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReviewDelivery.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReviewStartParams.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReviewStartResponse.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ReviewTarget.d.ts +16 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SandboxMode.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SandboxPolicy.d.ts +17 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SandboxWorkspaceWrite.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SendAddCreditsNudgeEmailParams.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SendAddCreditsNudgeEmailResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ServerRequestResolvedNotification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SessionMigration.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SessionSource.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillDependencies.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillErrorInfo.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillInterface.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillMetadata.d.ts +17 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillScope.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillSummary.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillToolDependency.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillsChangedNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillsConfigWriteParams.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillsConfigWriteResponse.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillsListEntry.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillsListExtraRootsForCwd.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillsListParams.d.ts +15 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SkillsListResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SortDirection.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/SubagentMigration.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TerminalInteractionNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TextElement.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TextPosition.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TextRange.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/Thread.d.ts +84 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadActiveFlag.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadApproveGuardianDeniedActionParams.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadApproveGuardianDeniedActionResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadArchiveParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadArchiveResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadArchivedNotification.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadClosedNotification.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadCompactStartParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadCompactStartResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadForkParams.d.ts +38 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadForkResponse.d.ts +26 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadGoal.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadGoalClearedNotification.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadGoalStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadGoalUpdatedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadInjectItemsParams.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadInjectItemsResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadItem.d.ts +180 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadListParams.d.ts +51 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadListResponse.d.ts +16 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadLoadedListParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadLoadedListResponse.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadMetadataGitInfoUpdateParams.d.ts +17 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadMetadataUpdateParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadMetadataUpdateResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadNameUpdatedNotification.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadReadParams.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadReadResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeAudioChunk.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeClosedNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeErrorNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeItemAddedNotification.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeOutputAudioDeltaNotification.d.ts +8 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeSdpNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeStartTransport.d.ts +13 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeStartedNotification.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeTranscriptDeltaNotification.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRealtimeTranscriptDoneNotification.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadResumeParams.d.ts +37 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadResumeResponse.d.ts +26 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRollbackParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadRollbackResponse.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadSetNameParams.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadSetNameResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadShellCommandParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadShellCommandResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadSortKey.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadSource.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadSourceKind.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadStartParams.d.ts +31 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadStartResponse.d.ts +26 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadStartSource.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadStartedNotification.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadStatus.d.ts +11 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadStatusChangedNotification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadTokenUsage.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadTokenUsageUpdatedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadUnarchiveParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadUnarchiveResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadUnarchivedNotification.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadUnsubscribeParams.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadUnsubscribeResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ThreadUnsubscribeStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TokenUsageBreakdown.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ToolRequestUserInputAnswer.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ToolRequestUserInputOption.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ToolRequestUserInputParams.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ToolRequestUserInputQuestion.d.ts +12 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ToolRequestUserInputResponse.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/ToolsV2.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/Turn.d.ts +32 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnCompletedNotification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnDiffUpdatedNotification.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnEnvironmentParams.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnError.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnInterruptParams.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnInterruptResponse.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnItemsView.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnPlanStep.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnPlanStepStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnPlanUpdatedNotification.d.ts +7 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnStartParams.d.ts +44 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnStartResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnStartedNotification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnSteerParams.d.ts +9 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/TurnSteerResponse.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/UserInput.d.ts +23 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WarningNotification.d.ts +10 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WebSearchAction.d.ts +14 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WindowsSandboxReadiness.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WindowsSandboxReadinessResponse.d.ts +4 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WindowsSandboxSetupCompletedNotification.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WindowsSandboxSetupMode.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WindowsSandboxSetupStartParams.d.ts +6 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WindowsSandboxSetupStartResponse.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WindowsWorldWritableWarningNotification.d.ts +5 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/WriteStatus.d.ts +1 -0
- package/dist/internal/codex/app-server-protocol/schema/typescript/v2/index.d.ts +457 -0
- package/dist/internal/codex/app-server-protocol/src/protocol/common.d.ts +36 -0
- package/dist/internal/codex/app-server-protocol/src/protocol/event-mapping.d.ts +41 -0
- package/dist/internal/codex/app-server-protocol/src/protocol/index.d.ts +3 -0
- package/dist/internal/codex/app-server-protocol/src/protocol/thread-resume.d.ts +11 -0
- package/dist/internal/codex/app-server-transport/src/outgoing_message.d.ts +27 -0
- package/dist/internal/codex/app-server-transport/src/transport/mod.d.ts +78 -0
- package/dist/internal/codex/codex-api/src/common.d.ts +100 -0
- package/dist/internal/codex/codex-api/src/endpoint/responses.d.ts +28 -0
- package/dist/internal/codex/codex-api/src/endpoint/responses_websocket.d.ts +54 -0
- package/dist/internal/codex/codex-api/src/error.d.ts +21 -0
- package/dist/internal/codex/codex-api/src/index.d.ts +9 -0
- package/dist/internal/codex/codex-api/src/provider.d.ts +22 -0
- package/dist/internal/codex/codex-api/src/rate_limits.d.ts +3 -0
- package/dist/internal/codex/codex-api/src/requests/responses.d.ts +16 -0
- package/dist/internal/codex/codex-api/src/sse/responses.d.ts +13 -0
- package/dist/internal/codex/codex-api/src/stream_events_utils.d.ts +23 -0
- package/dist/internal/codex/codex-mcp/src/auth_elicitation.d.ts +41 -0
- package/dist/internal/codex/codex-mcp/src/codex_apps.d.ts +57 -0
- package/dist/internal/codex/codex-mcp/src/connection_manager.d.ts +72 -0
- package/dist/internal/codex/codex-mcp/src/elicitation.d.ts +77 -0
- package/dist/internal/codex/codex-mcp/src/mcp/auth.d.ts +64 -0
- package/dist/internal/codex/codex-mcp/src/mcp/mod.d.ts +16 -0
- package/dist/internal/codex/codex-mcp/src/rmcp_client.d.ts +221 -0
- package/dist/internal/codex/codex-mcp/src/tools.d.ts +37 -0
- package/dist/internal/codex/config/src/config_toml.d.ts +14 -0
- package/dist/internal/codex/config/src/index.d.ts +7 -0
- package/dist/internal/codex/config/src/loader/mod.d.ts +21 -0
- package/dist/internal/codex/config/src/merge.d.ts +22 -0
- package/dist/internal/codex/config/src/permissions_toml.d.ts +6 -0
- package/dist/internal/codex/config/src/profile_toml.d.ts +1 -0
- package/dist/internal/codex/config/src/thread_config.d.ts +43 -0
- package/dist/internal/codex/config/src/types.d.ts +121 -0
- package/dist/internal/codex/core/src/agent/agent_resolver.d.ts +3 -0
- package/dist/internal/codex/core/src/agent/control.d.ts +76 -0
- package/dist/internal/codex/core/src/agent/mailbox.d.ts +28 -0
- package/dist/internal/codex/core/src/agent/mod.d.ts +6 -0
- package/dist/internal/codex/core/src/agent/registry.d.ts +54 -0
- package/dist/internal/codex/core/src/agent/role.d.ts +19 -0
- package/dist/internal/codex/core/src/agent/status.d.ts +3 -0
- package/dist/internal/codex/core/src/auth.d.ts +65 -0
- package/dist/internal/codex/core/src/client.d.ts +129 -0
- package/dist/internal/codex/core/src/collaboration-mode-presets.d.ts +9 -0
- package/dist/internal/codex/core/src/compact-task-runner.d.ts +18 -0
- package/dist/internal/codex/core/src/compact.d.ts +12 -0
- package/dist/internal/codex/core/src/config/agent_roles.d.ts +6 -0
- package/dist/internal/codex/core/src/config/managed_features.d.ts +7 -0
- package/dist/internal/codex/core/src/config/mod.d.ts +9 -0
- package/dist/internal/codex/core/src/config/network_proxy_spec.d.ts +5 -0
- package/dist/internal/codex/core/src/config/permissions.d.ts +30 -0
- package/dist/internal/codex/core/src/config-types.d.ts +28 -0
- package/dist/internal/codex/core/src/context/collaboration-mode-instructions.d.ts +10 -0
- package/dist/internal/codex/core/src/context/context-updates.d.ts +10 -0
- package/dist/internal/codex/core/src/context/environment-context.d.ts +24 -0
- package/dist/internal/codex/core/src/context/fragment.d.ts +22 -0
- package/dist/internal/codex/core/src/context/permissions-instructions.d.ts +8 -0
- package/dist/internal/codex/core/src/context/prompt-context.d.ts +8 -0
- package/dist/internal/codex/core/src/context/turn-aborted.d.ts +3 -0
- package/dist/internal/codex/core/src/context/user-instructions.d.ts +7 -0
- package/dist/internal/codex/core/src/context_manager/history.d.ts +60 -0
- package/dist/internal/codex/core/src/context_manager/normalize.d.ts +6 -0
- package/dist/internal/codex/core/src/event-mapping.d.ts +9 -0
- package/dist/internal/codex/core/src/exec-output.d.ts +20 -0
- package/dist/internal/codex/core/src/goals/index.d.ts +2 -0
- package/dist/internal/codex/core/src/goals/runtime.d.ts +32 -0
- package/dist/internal/codex/core/src/goals/types.d.ts +95 -0
- package/dist/internal/codex/core/src/goals.d.ts +1 -0
- package/dist/internal/codex/core/src/hooks/dispatcher.d.ts +5 -0
- package/dist/internal/codex/core/src/hooks/index.d.ts +4 -0
- package/dist/internal/codex/core/src/hooks/output-parser.d.ts +9 -0
- package/dist/internal/codex/core/src/hooks/runtime.d.ts +125 -0
- package/dist/internal/codex/core/src/hooks/types.d.ts +40 -0
- package/dist/internal/codex/core/src/ids.d.ts +5 -0
- package/dist/internal/codex/core/src/index.d.ts +98 -0
- package/dist/internal/codex/core/src/items.d.ts +137 -0
- package/dist/internal/codex/core/src/mcp/index.d.ts +10 -0
- package/dist/internal/codex/core/src/mcp/manager.d.ts +73 -0
- package/dist/internal/codex/core/src/mcp/types.d.ts +165 -0
- package/dist/internal/codex/core/src/mcp.d.ts +1 -0
- package/dist/internal/codex/core/src/memory.d.ts +21 -0
- package/dist/internal/codex/core/src/model-provider.d.ts +193 -0
- package/dist/internal/codex/core/src/models.d.ts +158 -0
- package/dist/internal/codex/core/src/plan-mode.d.ts +1 -0
- package/dist/internal/codex/core/src/protocol/dynamic_tools.d.ts +48 -0
- package/dist/internal/codex/core/src/protocol/user_input.d.ts +30 -0
- package/dist/internal/codex/core/src/protocol.d.ts +893 -0
- package/dist/internal/codex/core/src/rendered-thread.d.ts +30 -0
- package/dist/internal/codex/core/src/request_permissions.d.ts +52 -0
- package/dist/internal/codex/core/src/request_user_input.d.ts +47 -0
- package/dist/internal/codex/core/src/session/rollout-reconstruction.d.ts +11 -0
- package/dist/internal/codex/core/src/session/session-settings.d.ts +29 -0
- package/dist/internal/codex/core/src/session/session.d.ts +226 -0
- package/dist/internal/codex/core/src/session/turn-context.d.ts +71 -0
- package/dist/internal/codex/core/src/session/turn-timing.d.ts +12 -0
- package/dist/internal/codex/core/src/session/turn.d.ts +35 -0
- package/dist/internal/codex/core/src/state/session.d.ts +40 -0
- package/dist/internal/codex/core/src/state/turn.d.ts +83 -0
- package/dist/internal/codex/core/src/stream-parser.d.ts +36 -0
- package/dist/internal/codex/core/src/stream_events_utils.d.ts +43 -0
- package/dist/internal/codex/core/src/tasks/compact.d.ts +26 -0
- package/dist/internal/codex/core/src/tasks/mod.d.ts +43 -0
- package/dist/internal/codex/core/src/tasks/regular.d.ts +27 -0
- package/dist/internal/codex/core/src/templates.d.ts +12 -0
- package/dist/{thread-history-builder-zW0zeqcS.d.ts → internal/codex/core/src/thread-history-builder.d.ts} +14 -16
- package/dist/internal/codex/core/src/thread-store/index.d.ts +3 -0
- package/dist/{live-thread-BMvlflzM.d.ts → internal/codex/core/src/thread-store/live-thread.d.ts} +7 -8
- package/dist/{store-AGRxhgQ3.d.ts → internal/codex/core/src/thread-store/store.d.ts} +3 -6
- package/dist/{types-BTeabLYr.d.ts → internal/codex/core/src/thread-store/types.d.ts} +25 -26
- package/dist/internal/codex/core/src/tools/code_mode/execute_handler.d.ts +7 -0
- package/dist/internal/codex/core/src/tools/code_mode/execute_spec.d.ts +13 -0
- package/dist/internal/codex/core/src/tools/code_mode/mod.d.ts +5 -0
- package/dist/internal/codex/core/src/tools/code_mode/response_adapter.d.ts +2 -0
- package/dist/internal/codex/core/src/tools/code_mode/wait_handler.d.ts +7 -0
- package/dist/internal/codex/core/src/tools/code_mode/wait_spec.d.ts +13 -0
- package/dist/internal/codex/core/src/tools/context.d.ts +155 -0
- package/dist/internal/codex/core/src/tools/events.d.ts +50 -0
- package/dist/internal/codex/core/src/tools/handlers/apply_patch.d.ts +14 -0
- package/dist/internal/codex/core/src/tools/handlers/apply_patch_spec.d.ts +16 -0
- package/dist/internal/codex/core/src/tools/handlers/dynamic.d.ts +17 -0
- package/dist/internal/codex/core/src/tools/handlers/goal.d.ts +20 -0
- package/dist/internal/codex/core/src/tools/handlers/goal_spec.d.ts +51 -0
- package/dist/internal/codex/core/src/tools/handlers/mcp.d.ts +23 -0
- package/dist/internal/codex/core/src/tools/handlers/mcp_resource.d.ts +24 -0
- package/dist/internal/codex/core/src/tools/handlers/mcp_resource_spec.d.ts +61 -0
- package/dist/internal/codex/core/src/tools/handlers/multi_agents.d.ts +50 -0
- package/dist/internal/codex/core/src/tools/handlers/multi_agents_common.d.ts +3 -0
- package/dist/internal/codex/core/src/tools/handlers/multi_agents_spec.d.ts +5 -0
- package/dist/internal/codex/core/src/tools/handlers/multi_agents_v2.d.ts +1 -0
- package/dist/internal/codex/core/src/tools/handlers/plan.d.ts +8 -0
- package/dist/internal/codex/core/src/tools/handlers/plan_spec.d.ts +35 -0
- package/dist/internal/codex/core/src/tools/handlers/request_permissions.d.ts +7 -0
- package/dist/internal/codex/core/src/tools/handlers/request_permissions_spec.d.ts +1 -0
- package/dist/internal/codex/core/src/tools/handlers/request_plugin_install.d.ts +8 -0
- package/dist/internal/codex/core/src/tools/handlers/request_plugin_install_spec.d.ts +12 -0
- package/dist/internal/codex/core/src/tools/handlers/request_user_input.d.ts +13 -0
- package/dist/internal/codex/core/src/tools/handlers/request_user_input_spec.d.ts +1 -0
- package/dist/internal/codex/core/src/tools/handlers/shell_spec.d.ts +60 -0
- package/dist/internal/codex/core/src/tools/handlers/test_sync.d.ts +1 -0
- package/dist/internal/codex/core/src/tools/handlers/test_sync_spec.d.ts +12 -0
- package/dist/internal/codex/core/src/tools/handlers/tool_search.d.ts +28 -0
- package/dist/internal/codex/core/src/tools/handlers/tool_search_spec.d.ts +21 -0
- package/dist/internal/codex/core/src/tools/handlers/unavailable_tool.d.ts +10 -0
- package/dist/internal/codex/core/src/tools/handlers/unified_exec/exec_command.d.ts +13 -0
- package/dist/internal/codex/core/src/tools/handlers/unified_exec/write_stdin.d.ts +8 -0
- package/dist/internal/codex/core/src/tools/handlers/unified_exec.d.ts +2 -0
- package/dist/internal/codex/core/src/tools/hook_names.d.ts +6 -0
- package/dist/internal/codex/core/src/tools/hosted_spec.d.ts +9 -0
- package/dist/internal/codex/core/src/tools/network_approval.d.ts +11 -0
- package/dist/internal/codex/core/src/tools/orchestrator.d.ts +28 -0
- package/dist/internal/codex/core/src/tools/parallel.d.ts +33 -0
- package/dist/internal/codex/core/src/tools/registry.d.ts +27 -0
- package/dist/internal/codex/core/src/tools/responses_api.d.ts +34 -0
- package/dist/internal/codex/core/src/tools/router.d.ts +50 -0
- package/dist/internal/codex/core/src/tools/runtimes/apply_patch.d.ts +2 -0
- package/dist/internal/codex/core/src/tools/runtimes/mod.d.ts +4 -0
- package/dist/internal/codex/core/src/tools/runtimes/shell.d.ts +2 -0
- package/dist/internal/codex/core/src/tools/runtimes/unified_exec.d.ts +2 -0
- package/dist/internal/codex/core/src/tools/sandboxing.d.ts +36 -0
- package/dist/internal/codex/core/src/tools/spec.d.ts +10 -0
- package/dist/internal/codex/core/src/tools/spec_plan.d.ts +2 -0
- package/dist/internal/codex/core/src/tools/spec_plan_types.d.ts +93 -0
- package/dist/internal/codex/core/src/tools/tool_dispatch_trace.d.ts +12 -0
- package/dist/internal/codex/core/src/tools/tool_name.d.ts +17 -0
- package/dist/internal/codex/core/src/tools/tool_search_entry.d.ts +35 -0
- package/dist/internal/codex/core/src/tools/tool_spec.d.ts +29 -0
- package/dist/{mod-DYVLSWO4.d.ts → internal/codex/thread-store/src/in_memory.d.ts} +8 -39
- package/dist/internal/codex/thread-store/src/index.d.ts +6 -0
- package/dist/internal/codex/thread-store/src/local/mod.d.ts +32 -0
- package/dist/internal/codex/utils/output-truncation/src/lib.d.ts +19 -0
- package/dist/internal/codex/utils/string/src/lib.d.ts +1 -0
- package/dist/internal/codex/utils/string/src/truncate.d.ts +5 -0
- package/dist/runtime/index.d.ts +47 -0
- package/dist/server/index.d.ts +2 -29
- package/dist/server/index.js +20488 -15
- package/dist/testing/index.d.ts +2 -9
- package/dist/testing/index.js +1698 -15
- package/package.json +61 -152
- package/dist/ClientNotification-B6-FhXQf.d.ts +0 -5
- package/dist/DynamicToolCallResponse-82DFjES2.d.ts +0 -8
- package/dist/DynamicToolSpec-CfnhqAYK.d.ts +0 -29
- package/dist/PermissionsRequestApprovalResponse-DxzPPDRb.d.ts +0 -55
- package/dist/ProviderStatusBanner-BlP6lzwE.d.ts +0 -441
- package/dist/ServerRequest-B5cKVJjr.d.ts +0 -2181
- package/dist/ThreadResumeResponse-DvmE1juU.d.ts +0 -1542
- package/dist/ToolRequestUserInputQuestion-CeZa5X1J.d.ts +0 -23
- package/dist/ToolRequestUserInputResponse-zcPLwbiK.d.ts +0 -17
- package/dist/TurnSteerResponse-0kBCfplh.d.ts +0 -209
- package/dist/WebSearchToolConfig-D3ep0625.d.ts +0 -18
- package/dist/chat-runtime-9RkXHC_w.d.ts +0 -382
- package/dist/chunk-2DZRMCI2.js +0 -1258
- package/dist/chunk-2DZRMCI2.js.map +0 -1
- package/dist/chunk-4DPLJPB5.js +0 -396
- package/dist/chunk-4DPLJPB5.js.map +0 -1
- package/dist/chunk-5JMJ6OI5.js +0 -3
- package/dist/chunk-5JMJ6OI5.js.map +0 -1
- package/dist/chunk-6ZMJ34KE.js +0 -1153
- package/dist/chunk-6ZMJ34KE.js.map +0 -1
- package/dist/chunk-CGBS37IU.js +0 -128
- package/dist/chunk-CGBS37IU.js.map +0 -1
- package/dist/chunk-DCMKA2A6.js +0 -18
- package/dist/chunk-DCMKA2A6.js.map +0 -1
- package/dist/chunk-DYLHN3HG.js +0 -937
- package/dist/chunk-DYLHN3HG.js.map +0 -1
- package/dist/chunk-FN3SWHRH.js +0 -934
- package/dist/chunk-FN3SWHRH.js.map +0 -1
- package/dist/chunk-LWQNX4LI.js +0 -13755
- package/dist/chunk-LWQNX4LI.js.map +0 -1
- package/dist/chunk-NCI4MAWZ.js +0 -7733
- package/dist/chunk-NCI4MAWZ.js.map +0 -1
- package/dist/chunk-O44XP7LH.js +0 -214
- package/dist/chunk-O44XP7LH.js.map +0 -1
- package/dist/chunk-PST3ZWX2.js +0 -555
- package/dist/chunk-PST3ZWX2.js.map +0 -1
- package/dist/chunk-SYPHCDRD.js +0 -1133
- package/dist/chunk-SYPHCDRD.js.map +0 -1
- package/dist/chunk-V4BMZWBM.js +0 -2401
- package/dist/chunk-V4BMZWBM.js.map +0 -1
- package/dist/chunk-W7S6HFCQ.js +0 -1983
- package/dist/chunk-W7S6HFCQ.js.map +0 -1
- package/dist/chunk-YHVCFD2D.js +0 -117
- package/dist/chunk-YHVCFD2D.js.map +0 -1
- package/dist/chunk-Z63UPBS3.js +0 -152
- package/dist/chunk-Z63UPBS3.js.map +0 -1
- package/dist/chunk-ZX5OIIJX.js +0 -3
- package/dist/chunk-ZX5OIIJX.js.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/codex-rs/app-server/index.d.ts +0 -161
- package/dist/codex-rs/app-server/index.js +0 -13
- package/dist/codex-rs/app-server/index.js.map +0 -1
- package/dist/codex-rs/app-server-protocol/index.d.ts +0 -1722
- package/dist/codex-rs/app-server-protocol/index.js +0 -6
- package/dist/codex-rs/app-server-protocol/index.js.map +0 -1
- package/dist/codex-rs/app-server-protocol/protocol.d.ts +0 -19
- package/dist/codex-rs/app-server-protocol/protocol.js +0 -4
- package/dist/codex-rs/app-server-protocol/protocol.js.map +0 -1
- package/dist/codex-rs/codex-api/index.d.ts +0 -104
- package/dist/codex-rs/codex-api/index.js +0 -11
- package/dist/codex-rs/codex-api/index.js.map +0 -1
- package/dist/codex-rs/config/index.d.ts +0 -88
- package/dist/codex-rs/config/index.js +0 -4
- package/dist/codex-rs/config/index.js.map +0 -1
- package/dist/codex-rs/core/config/index.d.ts +0 -61
- package/dist/codex-rs/core/config/index.js +0 -5
- package/dist/codex-rs/core/config/index.js.map +0 -1
- package/dist/codex-rs/core/index.d.ts +0 -1393
- package/dist/codex-rs/core/index.js +0 -11
- package/dist/codex-rs/core/index.js.map +0 -1
- package/dist/codex-rs/model-provider/index.d.ts +0 -2
- package/dist/codex-rs/model-provider/index.js +0 -4
- package/dist/codex-rs/model-provider/index.js.map +0 -1
- package/dist/codex-rs/models-manager/index.d.ts +0 -2
- package/dist/codex-rs/models-manager/index.js +0 -4
- package/dist/codex-rs/models-manager/index.js.map +0 -1
- package/dist/codex-rs/parity.d.ts +0 -26
- package/dist/codex-rs/parity.js +0 -3
- package/dist/codex-rs/parity.js.map +0 -1
- package/dist/codex-rs/thread-store/index.d.ts +0 -5
- package/dist/codex-rs/thread-store/index.js +0 -4
- package/dist/codex-rs/thread-store/index.js.map +0 -1
- package/dist/codex-rs/unsupported.d.ts +0 -15
- package/dist/codex-rs/unsupported.js +0 -22
- package/dist/codex-rs/unsupported.js.map +0 -1
- package/dist/codex-rs/utils/output-truncation.d.ts +0 -21
- package/dist/codex-rs/utils/output-truncation.js +0 -4
- package/dist/codex-rs/utils/output-truncation.js.map +0 -1
- package/dist/codex-rs/utils/string.d.ts +0 -7
- package/dist/codex-rs/utils/string.js +0 -3
- package/dist/codex-rs/utils/string.js.map +0 -1
- package/dist/common-CTyph5x8.d.ts +0 -40
- package/dist/event-mapping-CbISdQ1D.d.ts +0 -43
- package/dist/history-CfM-4V7b.d.ts +0 -1654
- package/dist/index-CoDZosq0.d.ts +0 -261
- package/dist/index.js.map +0 -1
- package/dist/lib-nXlaKiS-.d.ts +0 -48
- package/dist/merge-B_AWVmnI.d.ts +0 -24
- package/dist/plan-mode-Cv6KWb_S.d.ts +0 -14
- package/dist/proposed-plan-DpN1ma0Y.d.ts +0 -53
- package/dist/protocol-mpBcYHrm.d.ts +0 -1655
- package/dist/react/index.d.ts +0 -81
- package/dist/react/index.js +0 -19
- package/dist/react/index.js.map +0 -1
- package/dist/remote-ClZbq9KN.d.ts +0 -21
- package/dist/rendered-thread-AOxw3V5b.d.ts +0 -29
- package/dist/responses_websocket-BhxSgCzK.d.ts +0 -183
- package/dist/runtime-Cm6ml53h.d.ts +0 -528
- package/dist/server/index.js.map +0 -1
- package/dist/shadcn/index.d.ts +0 -68
- package/dist/shadcn/index.js +0 -334
- package/dist/shadcn/index.js.map +0 -1
- package/dist/sidebar-DMMij22z.d.ts +0 -87
- package/dist/spec_plan_types-CmsJ-Tfn.d.ts +0 -260
- package/dist/styles.css +0 -1
- package/dist/t3code/apps/web/components/chat.d.ts +0 -508
- package/dist/t3code/apps/web/components/chat.js +0 -12
- package/dist/t3code/apps/web/components/chat.js.map +0 -1
- package/dist/t3code/apps/web/index.d.ts +0 -12
- package/dist/t3code/apps/web/index.js +0 -13
- package/dist/t3code/apps/web/index.js.map +0 -1
- package/dist/testing/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/upstream/codex-rs/app-server-transport/src/transport/mod.ts","../src/upstream/codex-rs/app-server/src/outgoing_message.ts","../src/upstream/codex-rs/app-server/src/request_processors/request_errors.ts","../src/upstream/codex-rs/app-server/src/connection_rpc_gate.ts","../src/upstream/codex-rs/app-server/src/request_serialization.ts","../src/upstream/codex-rs/app-server/src/message_processor.ts","../src/upstream/codex-rs/app-server/src/request_processors/common.ts","../src/upstream/codex-rs/app-server/src/request_processors/mcp_processor.ts","../src/upstream/codex-rs/app-server/src/request_processors/token_usage_replay.ts","../src/upstream/codex-rs/app-server/src/request_processors/thread_processor.ts","../src/upstream/codex-rs/app-server/src/request_processors/turn_processor.ts","../src/upstream/codex-rs/app-server/src/dynamic_tools.ts","../src/upstream/codex-rs/app-server/src/server_request_response.ts","../src/upstream/codex-rs/app-server/src/session_factory.ts","../src/upstream/codex-rs/app-server/src/session_task_runner.ts","../src/upstream/codex-rs/app-server/src/thread_state.ts","../src/upstream/codex-rs/app-server/src/bespoke_event_handling.ts","../src/upstream/codex-rs/app-server/src/runtime.ts"],"names":["isRecord","isError"],"mappings":"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","file":"chunk-V4BMZWBM.js","sourcesContent":["import type {\n\tClientNotification,\n\tClientRequest,\n\tRequestId,\n\tServerNotification,\n\tServerRequest,\n} from \"../../../app-server-protocol/schema/typescript\";\nimport type {\n\tConnectionId,\n\tJSONRPCErrorError,\n\tOutgoingMessage,\n\tOutgoingResponse,\n\tQueuedOutgoingMessage,\n\tResult,\n} from \"../outgoing_message\";\n\nexport type ConnectionOrigin =\n\t| \"stdio\"\n\t| \"inProcess\"\n\t| \"webSocket\"\n\t| \"remoteControl\";\n\nexport type JSONRPCRequest = {\n\tid: RequestId;\n\tmethod: string;\n\tparams?: unknown;\n};\n\nexport type JSONRPCNotification = {\n\tmethod: string;\n\tparams?: unknown;\n};\n\nexport type JSONRPCResponse = {\n\tid: RequestId;\n\tresult: Result;\n};\n\nexport type JSONRPCError = {\n\terror: JSONRPCErrorError;\n\tid: RequestId | null;\n};\n\nexport type JSONRPCMessage =\n\t| JSONRPCRequest\n\t| JSONRPCNotification\n\t| JSONRPCResponse\n\t| JSONRPCError;\n\nexport type TransportEvent =\n\t| {\n\t\t\tconnectionId: ConnectionId;\n\t\t\torigin: ConnectionOrigin;\n\t\t\ttype: \"connection_opened\";\n\t }\n\t| { connectionId: ConnectionId; type: \"connection_closed\" }\n\t| {\n\t\t\tconnectionId: ConnectionId;\n\t\t\tmessage: JSONRPCMessage;\n\t\t\ttype: \"incoming_message\";\n\t };\n\nexport type ParsedServerTransportMessage =\n\t| { request: ClientRequest; type: \"client_request\" }\n\t| { notification: ClientNotification; type: \"client_notification\" }\n\t| { response: JSONRPCResponse; type: \"response\" }\n\t| { error: JSONRPCError; type: \"error\" };\n\nexport type ParsedClientTransportMessage =\n\t| { request: ServerRequest; type: \"server_request\" }\n\t| { notification: ServerNotification; type: \"server_notification\" }\n\t| { response: JSONRPCResponse; type: \"response\" }\n\t| { error: JSONRPCError; type: \"error\" };\n\nexport type ParsedTransportPayload<T> =\n\t| { message: T; type: \"ok\" }\n\t| { error: JSONRPCErrorError; id: RequestId | null; type: \"invalid\" };\n\nexport function parseJsonRpcTransportPayload(\n\tpayload: string | ArrayBuffer | ArrayBufferView | unknown,\n): ParsedTransportPayload<JSONRPCMessage> {\n\tlet value: unknown;\n\tif (typeof payload === \"string\") {\n\t\ttry {\n\t\t\tvalue = JSON.parse(payload);\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\terror: jsonRpcParseError(\"Parse error\"),\n\t\t\t\tid: null,\n\t\t\t\ttype: \"invalid\",\n\t\t\t};\n\t\t}\n\t} else if (payload instanceof ArrayBuffer || ArrayBuffer.isView(payload)) {\n\t\tconst bytes = payload instanceof ArrayBuffer\n\t\t\t? new Uint8Array(payload)\n\t\t\t: new Uint8Array(payload.buffer, payload.byteOffset, payload.byteLength);\n\t\ttry {\n\t\t\tvalue = JSON.parse(new TextDecoder().decode(bytes));\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\terror: jsonRpcParseError(\"Parse error\"),\n\t\t\t\tid: null,\n\t\t\t\ttype: \"invalid\",\n\t\t\t};\n\t\t}\n\t} else {\n\t\tvalue = payload;\n\t}\n\n\treturn parseJsonRpcMessage(value);\n}\n\nexport function parseJsonRpcMessage(\n\tvalue: unknown,\n): ParsedTransportPayload<JSONRPCMessage> {\n\tif (!isRecord(value)) {\n\t\treturn {\n\t\t\terror: jsonRpcInvalidRequestError(\"Invalid JSON-RPC message\"),\n\t\t\tid: null,\n\t\t\ttype: \"invalid\",\n\t\t};\n\t}\n\n\tconst candidateId = requestIdFromValue(value.id);\n\tconst id = candidateId ?? null;\n\tif (typeof value.method === \"string\") {\n\t\tif (candidateId !== null) {\n\t\t\treturn {\n\t\t\t\tmessage: jsonRpcRequest(value.method, candidateId, value.params),\n\t\t\t\ttype: \"ok\",\n\t\t\t};\n\t\t}\n\t\tif (Object.prototype.hasOwnProperty.call(value, \"id\")) {\n\t\t\treturn {\n\t\t\t\terror: jsonRpcInvalidRequestError(\"Invalid JSON-RPC request id\"),\n\t\t\t\tid: null,\n\t\t\t\ttype: \"invalid\",\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tmessage: jsonRpcNotification(value.method, value.params),\n\t\t\ttype: \"ok\",\n\t\t};\n\t}\n\n\tif (Object.prototype.hasOwnProperty.call(value, \"error\")) {\n\t\tif (!isJsonRpcErrorError(value.error)) {\n\t\t\treturn {\n\t\t\t\terror: jsonRpcInvalidRequestError(\"Invalid JSON-RPC error object\"),\n\t\t\t\tid,\n\t\t\t\ttype: \"invalid\",\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tmessage: { error: value.error, id },\n\t\t\ttype: \"ok\",\n\t\t};\n\t}\n\n\tif (Object.prototype.hasOwnProperty.call(value, \"result\")) {\n\t\tif (candidateId === null) {\n\t\t\treturn {\n\t\t\t\terror: jsonRpcInvalidRequestError(\"Invalid JSON-RPC response id\"),\n\t\t\t\tid: null,\n\t\t\t\ttype: \"invalid\",\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tmessage: { id: candidateId, result: value.result },\n\t\t\ttype: \"ok\",\n\t\t};\n\t}\n\n\treturn {\n\t\terror: jsonRpcInvalidRequestError(\"Invalid JSON-RPC message\"),\n\t\tid,\n\t\ttype: \"invalid\",\n\t};\n}\n\nexport function parseServerTransportPayload(\n\tpayload: string | ArrayBuffer | ArrayBufferView | unknown,\n): ParsedTransportPayload<ParsedServerTransportMessage> {\n\tconst parsed = parseJsonRpcTransportPayload(payload);\n\tif (parsed.type === \"invalid\") {\n\t\treturn parsed;\n\t}\n\treturn {\n\t\tmessage: serverTransportMessage(parsed.message),\n\t\ttype: \"ok\",\n\t};\n}\n\nexport function parseClientTransportPayload(\n\tpayload: string | ArrayBuffer | ArrayBufferView | unknown,\n): ParsedTransportPayload<ParsedClientTransportMessage> {\n\tconst parsed = parseJsonRpcTransportPayload(payload);\n\tif (parsed.type === \"invalid\") {\n\t\treturn parsed;\n\t}\n\treturn {\n\t\tmessage: clientTransportMessage(parsed.message),\n\t\ttype: \"ok\",\n\t};\n}\n\nexport function serializeOutgoingMessage(message: OutgoingMessage): string {\n\treturn JSON.stringify(message);\n}\n\nexport function serializeJsonRpcResponse(\n\tid: RequestId,\n\tresult: Result,\n): string {\n\treturn serializeOutgoingMessage({ id, result } satisfies OutgoingResponse);\n}\n\nexport function serializeJsonRpcError(\n\tid: RequestId | null,\n\terror: JSONRPCErrorError,\n): string {\n\treturn JSON.stringify({ error, id } satisfies JSONRPCError);\n}\n\nexport function queuedOutgoingMessage(\n\tmessage: OutgoingMessage,\n\twriteComplete?: () => void,\n): QueuedOutgoingMessage {\n\treturn { message, writeComplete };\n}\n\nexport function jsonRpcParseError(message: string): JSONRPCErrorError {\n\treturn { code: -32700, message };\n}\n\nexport function jsonRpcInvalidRequestError(message: string): JSONRPCErrorError {\n\treturn { code: -32600, message };\n}\n\nexport function jsonRpcInternalError(message: string): JSONRPCErrorError {\n\treturn { code: -32603, message };\n}\n\nfunction serverTransportMessage(\n\tmessage: JSONRPCMessage,\n): ParsedServerTransportMessage {\n\tif (isRequest(message)) {\n\t\treturn { request: message as ClientRequest, type: \"client_request\" };\n\t}\n\tif (isNotification(message)) {\n\t\treturn {\n\t\t\tnotification: message as ClientNotification,\n\t\t\ttype: \"client_notification\",\n\t\t};\n\t}\n\tif (isError(message)) {\n\t\treturn { error: message, type: \"error\" };\n\t}\n\treturn { response: message, type: \"response\" };\n}\n\nfunction clientTransportMessage(\n\tmessage: JSONRPCMessage,\n): ParsedClientTransportMessage {\n\tif (isRequest(message)) {\n\t\treturn { request: message as ServerRequest, type: \"server_request\" };\n\t}\n\tif (isNotification(message)) {\n\t\treturn {\n\t\t\tnotification: message as ServerNotification,\n\t\t\ttype: \"server_notification\",\n\t\t};\n\t}\n\tif (isError(message)) {\n\t\treturn { error: message, type: \"error\" };\n\t}\n\treturn { response: message, type: \"response\" };\n}\n\nfunction jsonRpcRequest(\n\tmethod: string,\n\tid: RequestId,\n\tparams: unknown,\n): JSONRPCRequest {\n\treturn params === undefined ? { id, method } : { id, method, params };\n}\n\nfunction jsonRpcNotification(\n\tmethod: string,\n\tparams: unknown,\n): JSONRPCNotification {\n\treturn params === undefined ? { method } : { method, params };\n}\n\nfunction isRequest(message: JSONRPCMessage): message is JSONRPCRequest {\n\treturn (\n\t\ttypeof (message as { method?: unknown }).method === \"string\" &&\n\t\tObject.prototype.hasOwnProperty.call(message, \"id\")\n\t);\n}\n\nfunction isNotification(\n\tmessage: JSONRPCMessage,\n): message is JSONRPCNotification {\n\treturn (\n\t\ttypeof (message as { method?: unknown }).method === \"string\" &&\n\t\t!Object.prototype.hasOwnProperty.call(message, \"id\")\n\t);\n}\n\nfunction isError(message: JSONRPCMessage): message is JSONRPCError {\n\treturn Object.prototype.hasOwnProperty.call(message, \"error\");\n}\n\nfunction requestIdFromValue(value: unknown): RequestId | null {\n\treturn typeof value === \"string\" || typeof value === \"number\" ? value : null;\n}\n\nfunction isJsonRpcErrorError(value: unknown): value is JSONRPCErrorError {\n\treturn (\n\t\tisRecord(value) &&\n\t\ttypeof value.code === \"number\" &&\n\t\ttypeof value.message === \"string\"\n\t);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import type {\n\tRequestId,\n\tServerNotification,\n\tServerRequest,\n} from \"../../app-server-protocol/schema/typescript\";\nimport type {\n\tConnectionId,\n\tJSONRPCErrorError,\n\tOutgoingMessage,\n\tResult,\n} from \"../../app-server-transport/src/outgoing_message\";\nimport type { ThreadId } from \"../../core/src/ids\";\n\nexport type {\n\tConnectionId,\n\tJSONRPCErrorError,\n\tOutgoingError,\n\tOutgoingMessage,\n\tOutgoingResponse,\n\tQueuedOutgoingMessage,\n\tResult,\n} from \"../../app-server-transport/src/outgoing_message\";\n\nexport type AppServerEvent =\n\t| { notification: ServerNotification; type: \"server_notification\" }\n\t| { request: ServerRequest; type: \"server_request\" }\n\t| { skipped: number; type: \"lagged\" }\n\t| { message: string; type: \"disconnected\" };\n\nexport type ConnectionRequestId = {\n\tconnectionId: ConnectionId;\n\trequestId: RequestId;\n};\n\nexport type RequestContext = {\n\tconnectionId: ConnectionId;\n\trequestId: RequestId;\n};\n\ntype PendingCallbackEntry = {\n\tcallback: (result: PendingCallbackResult) => void;\n\tconnectionIds: ConnectionId[] | null;\n\trequest: ServerRequest;\n\tthreadId: ThreadId | null;\n};\n\ntype PendingCallbackResult =\n\t| { result: Result; type: \"ok\" }\n\t| { error: JSONRPCErrorError; type: \"error\" };\n\nexport type OutgoingServerRequestHandle = {\n\trequest: ServerRequest;\n\tresult: Promise<Result>;\n};\n\nexport type OutgoingMessageSenderOptions = {\n\tsend: (\n\t\tmessage: OutgoingMessage,\n\t\tcontext: {\n\t\t\tconnectionIds?: ConnectionId[];\n\t\t\tcontext?: unknown;\n\t\t\tthreadId?: ThreadId;\n\t\t},\n\t) => Promise<void> | void;\n};\n\nexport class OutgoingMessageSender {\n\tprivate nextServerRequestId = 0;\n\tprivate readonly requestIdToCallback = new Map<RequestId, PendingCallbackEntry>();\n\tprivate readonly requestContexts = new Map<string, RequestContext>();\n\tprivate readonly sendMessage: OutgoingMessageSenderOptions[\"send\"];\n\n\tconstructor(options: OutgoingMessageSenderOptions) {\n\t\tthis.sendMessage = options.send;\n\t}\n\n\tthreadScoped(threadId: ThreadId): ThreadScopedOutgoingMessageSender {\n\t\treturn new ThreadScopedOutgoingMessageSender(this, threadId, []);\n\t}\n\n\tthreadScopedForConnections(\n\t\tthreadId: ThreadId,\n\t\tconnectionIds: ConnectionId[],\n\t): ThreadScopedOutgoingMessageSender {\n\t\treturn new ThreadScopedOutgoingMessageSender(this, threadId, connectionIds);\n\t}\n\n\tasync sendServerNotification(\n\t\tnotification: ServerNotification,\n\t\tcontext?: unknown,\n\t\tthreadId?: ThreadId,\n\t\tconnectionIds?: ConnectionId[],\n\t): Promise<void> {\n\t\tawait this.sendMessage(notification, {\n\t\t\tconnectionIds,\n\t\t\tcontext,\n\t\t\tthreadId: serverNotificationThreadId(notification) ?? threadId,\n\t\t});\n\t}\n\n\tasync sendRequest(\n\t\trequest: ServerRequest,\n\t\tthreadId: ThreadId | null = serverRequestThreadId(request),\n\t\tcontext?: unknown,\n\t\tconnectionIds?: ConnectionId[],\n\t): Promise<Result> {\n\t\treturn this.sendRequestWithHandle(request, threadId, context, connectionIds).result;\n\t}\n\n\tsendRequestWithHandle(\n\t\trequest: ServerRequest,\n\t\tthreadId: ThreadId | null = serverRequestThreadId(request),\n\t\tcontext?: unknown,\n\t\tconnectionIds?: ConnectionId[],\n\t): OutgoingServerRequestHandle {\n\t\tconst requestWithId = request.id === undefined\n\t\t\t? ({ ...request, id: this.nextRequestId() } as ServerRequest)\n\t\t\t: request;\n\t\tlet rejectResult: (error: unknown) => void = () => {};\n\t\tconst result = new Promise<Result>((resolve, reject) => {\n\t\t\trejectResult = reject;\n\t\t\tthis.requestIdToCallback.set(requestWithId.id, {\n\t\t\t\tcallback: (entry) => {\n\t\t\t\t\tif (entry.type === \"ok\") {\n\t\t\t\t\t\tresolve(entry.result);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treject(entry.error);\n\t\t\t\t},\n\t\t\t\tconnectionIds: connectionIds ?? null,\n\t\t\t\trequest: requestWithId,\n\t\t\t\tthreadId,\n\t\t\t});\n\t\t});\n\t\tvoid Promise.resolve(\n\t\t\tthis.sendMessage(requestWithId, {\n\t\t\t\tconnectionIds,\n\t\t\t\tcontext,\n\t\t\t\tthreadId: threadId ?? undefined,\n\t\t\t}),\n\t\t).catch((error) => {\n\t\t\tthis.requestIdToCallback.delete(requestWithId.id);\n\t\t\trejectResult(error);\n\t\t});\n\t\treturn { request: requestWithId, result };\n\t}\n\n\tregisterRequestContext(requestContext: RequestContext): void {\n\t\tthis.requestContexts.set(connectionRequestKey(requestContext), requestContext);\n\t}\n\n\trequestContext(requestId: ConnectionRequestId): RequestContext | null {\n\t\treturn this.requestContexts.get(connectionRequestKey(requestId)) ?? null;\n\t}\n\n\tasync sendResponse(\n\t\trequestId: ConnectionRequestId,\n\t\tresult: Result,\n\t\tcontext?: unknown,\n\t): Promise<void> {\n\t\tthis.requestContexts.delete(connectionRequestKey(requestId));\n\t\tawait this.sendMessage(\n\t\t\t{ id: requestId.requestId, result },\n\t\t\t{ connectionIds: [requestId.connectionId], context },\n\t\t);\n\t}\n\n\tasync sendError(\n\t\trequestId: ConnectionRequestId,\n\t\terror: JSONRPCErrorError,\n\t\tcontext?: unknown,\n\t): Promise<void> {\n\t\tthis.requestContexts.delete(connectionRequestKey(requestId));\n\t\tawait this.sendMessage(\n\t\t\t{ error, id: requestId.requestId },\n\t\t\t{ connectionIds: [requestId.connectionId], context },\n\t\t);\n\t}\n\n\tasync notifyClientResponse(id: RequestId, result: Result): Promise<void> {\n\t\tconst entry = this.takeRequestCallback(id);\n\t\tentry?.callback({ result, type: \"ok\" });\n\t}\n\n\tasync notifyClientError(\n\t\tid: RequestId,\n\t\terror: JSONRPCErrorError,\n\t): Promise<void> {\n\t\tconst entry = this.takeRequestCallback(id);\n\t\tentry?.callback({ error, type: \"error\" });\n\t}\n\n\tcancelRequest(id: RequestId): boolean {\n\t\treturn this.takeRequestCallback(id) !== null;\n\t}\n\n\tconnectionClosed(connectionId: ConnectionId): void {\n\t\tfor (const [requestKey, requestContext] of this.requestContexts) {\n\t\t\tif (requestContext.connectionId === connectionId) {\n\t\t\t\tthis.requestContexts.delete(requestKey);\n\t\t\t}\n\t\t}\n\t}\n\n\tcancelRequestsForThread(\n\t\tthreadId: ThreadId,\n\t\terror?: JSONRPCErrorError,\n\t): void {\n\t\tfor (const [requestId, entry] of this.requestIdToCallback) {\n\t\t\tif (entry.threadId !== threadId) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.requestIdToCallback.delete(requestId);\n\t\t\tif (error) {\n\t\t\t\tentry.callback({ error, type: \"error\" });\n\t\t\t}\n\t\t}\n\t}\n\n\tpendingRequestsForThread(threadId: ThreadId): ServerRequest[] {\n\t\treturn Array.from(this.requestIdToCallback.values())\n\t\t\t.filter((entry) => entry.threadId === threadId)\n\t\t\t.map((entry) => entry.request)\n\t\t\t.sort((left, right) => String(left.id).localeCompare(String(right.id)));\n\t}\n\n\tprivate nextRequestId(): RequestId {\n\t\tconst id = this.nextServerRequestId;\n\t\tthis.nextServerRequestId += 1;\n\t\treturn id;\n\t}\n\n\tprivate takeRequestCallback(id: RequestId): PendingCallbackEntry | null {\n\t\tconst entry = this.requestIdToCallback.get(id) ?? null;\n\t\tthis.requestIdToCallback.delete(id);\n\t\treturn entry;\n\t}\n}\n\nexport class ThreadScopedOutgoingMessageSender {\n\tconstructor(\n\t\tprivate readonly outgoing: OutgoingMessageSender,\n\t\tprivate readonly threadId: ThreadId,\n\t\tprivate readonly connectionIds: ConnectionId[] = [],\n\t) {}\n\n\tsendRequest(request: ServerRequest, context?: unknown): Promise<Result> {\n\t\treturn this.outgoing.sendRequest(\n\t\t\trequest,\n\t\t\tthis.threadId,\n\t\t\tcontext,\n\t\t\tthis.connectionIds.length > 0 ? this.connectionIds : undefined,\n\t\t);\n\t}\n\n\tsendServerNotification(\n\t\tnotification: ServerNotification,\n\t\tcontext?: unknown,\n\t): Promise<void> {\n\t\treturn this.outgoing.sendServerNotification(\n\t\t\tnotification,\n\t\t\tcontext,\n\t\t\tthis.threadId,\n\t\t\tthis.connectionIds.length > 0 ? this.connectionIds : undefined,\n\t\t);\n\t}\n\n\tsendResponse(\n\t\trequestId: ConnectionRequestId,\n\t\tresult: Result,\n\t\tcontext?: unknown,\n\t): Promise<void> {\n\t\treturn this.outgoing.sendResponse(requestId, result, context);\n\t}\n\n\tsendError(\n\t\trequestId: ConnectionRequestId,\n\t\terror: JSONRPCErrorError,\n\t\tcontext?: unknown,\n\t): Promise<void> {\n\t\treturn this.outgoing.sendError(requestId, error, context);\n\t}\n\n\tabortPendingServerRequests(error?: JSONRPCErrorError): void {\n\t\tthis.outgoing.cancelRequestsForThread(this.threadId, error);\n\t}\n\n\tpendingRequests(): ServerRequest[] {\n\t\treturn this.outgoing.pendingRequestsForThread(this.threadId);\n\t}\n}\n\nexport function outgoingMessageToAppServerEvent(\n\tmessage: OutgoingMessage,\n): AppServerEvent | null {\n\tif (isServerNotification(message)) {\n\t\treturn {\n\t\t\tnotification: message,\n\t\t\ttype: \"server_notification\",\n\t\t};\n\t}\n\tif (isServerRequest(message)) {\n\t\treturn { request: message, type: \"server_request\" };\n\t}\n\treturn null;\n}\n\nfunction serverNotificationThreadId(notification: ServerNotification): ThreadId | null {\n\tconst params = notification.params as { threadId?: unknown } | undefined;\n\tif (typeof params?.threadId === \"string\") {\n\t\treturn params.threadId as ThreadId;\n\t}\n\tconst thread = (params as { thread?: { id?: unknown } } | undefined)?.thread;\n\tif (typeof thread?.id === \"string\") {\n\t\treturn thread.id as ThreadId;\n\t}\n\tconst turn = (params as { turn?: { threadId?: unknown } } | undefined)?.turn;\n\tif (typeof turn?.threadId === \"string\") {\n\t\treturn turn.threadId as ThreadId;\n\t}\n\treturn null;\n}\n\nfunction serverRequestThreadId(request: ServerRequest): ThreadId | null {\n\tconst params = request.params as { threadId?: unknown } | undefined;\n\treturn typeof params?.threadId === \"string\" ? (params.threadId as ThreadId) : null;\n}\n\nfunction connectionRequestKey(requestId: ConnectionRequestId): string {\n\treturn `${requestId.connectionId}:${String(requestId.requestId)}`;\n}\n\nfunction isServerRequest(message: OutgoingMessage): message is ServerRequest {\n\treturn (\n\t\ttypeof (message as { method?: unknown }).method === \"string\" &&\n\t\tObject.prototype.hasOwnProperty.call(message, \"id\")\n\t);\n}\n\nfunction isServerNotification(\n\tmessage: OutgoingMessage,\n): message is ServerNotification {\n\treturn (\n\t\ttypeof (message as { method?: unknown }).method === \"string\" &&\n\t\t!Object.prototype.hasOwnProperty.call(message, \"id\")\n\t);\n}\n","import type { RequestId } from \"../../../app-server-protocol/schema/typescript\";\nimport type { JSONRPCErrorError } from \"../outgoing_message\";\n\nexport class CodexAppServerRequestError extends Error {\n\tconstructor(\n\t\treadonly error: JSONRPCErrorError,\n\t\treadonly status = 400,\n\t) {\n\t\tsuper(error.message);\n\t\tthis.name = \"CodexAppServerRequestError\";\n\t}\n}\n\nexport function unsupportedMethodError(\n\tmethod: string,\n\trequestId: RequestId,\n): JSONRPCErrorError {\n\treturn {\n\t\tcode: -32601,\n\t\tdata: { requestId },\n\t\tmessage: `Unsupported Codex App Server method: ${method}`,\n\t};\n}\n\nexport function errorToJsonRpcError(error: unknown): JSONRPCErrorError {\n\tif (\n\t\ttypeof error === \"object\" &&\n\t\terror !== null &&\n\t\ttypeof (error as { code?: unknown }).code === \"number\" &&\n\t\ttypeof (error as { message?: unknown }).message === \"string\"\n\t) {\n\t\treturn error as JSONRPCErrorError;\n\t}\n\treturn {\n\t\tcode: -32000,\n\t\tmessage:\n\t\t\terror instanceof Error\n\t\t\t\t? error.message\n\t\t\t\t: \"Codex App Server request failed.\",\n\t};\n}\n","export class ConnectionRpcGateClosedError extends Error {\n\tconstructor() {\n\t\tsuper(\"Codex App Server connection is closed.\");\n\t\tthis.name = \"ConnectionRpcGateClosedError\";\n\t}\n}\n\nexport class ConnectionRpcGate {\n\tprivate accepting = true;\n\tprivate inFlight = 0;\n\tprivate readonly shutdownWaiters = new Set<() => void>();\n\n\tisAccepting(): boolean {\n\t\treturn this.accepting;\n\t}\n\n\tasync run<T>(work: () => Promise<T> | T): Promise<T> {\n\t\tif (!this.accepting) {\n\t\t\tthrow new ConnectionRpcGateClosedError();\n\t\t}\n\t\tthis.inFlight += 1;\n\t\ttry {\n\t\t\treturn await work();\n\t\t} finally {\n\t\t\tthis.inFlight -= 1;\n\t\t\tif (!this.accepting && this.inFlight === 0) {\n\t\t\t\tfor (const resolve of this.shutdownWaiters) {\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t\tthis.shutdownWaiters.clear();\n\t\t\t}\n\t\t}\n\t}\n\n\tasync shutdown(): Promise<void> {\n\t\tthis.accepting = false;\n\t\tif (this.inFlight === 0) {\n\t\t\treturn;\n\t\t}\n\t\tawait new Promise<void>((resolve) => {\n\t\t\tthis.shutdownWaiters.add(resolve);\n\t\t});\n\t}\n}\n","import type { ClientRequestSerializationScope } from \"../../app-server-protocol/src/protocol\";\n\nexport type RequestSerializationQueueKey = string;\n\nexport class RequestSerializationQueues {\n\tprivate readonly tails = new Map<RequestSerializationQueueKey, Promise<unknown>>();\n\n\tasync enqueue<T>(\n\t\tkey: RequestSerializationQueueKey,\n\t\twork: () => Promise<T> | T,\n\t): Promise<T> {\n\t\tconst previous = this.tails.get(key) ?? Promise.resolve();\n\t\tconst current = previous\n\t\t\t.catch(() => undefined)\n\t\t\t.then(() => work());\n\t\tconst tail = current.catch(() => undefined).finally(() => {\n\t\t\tif (this.tails.get(key) === tail) {\n\t\t\t\tthis.tails.delete(key);\n\t\t\t}\n\t\t});\n\t\tthis.tails.set(\n\t\t\tkey,\n\t\t\ttail,\n\t\t);\n\t\treturn current;\n\t}\n}\n\nexport function requestSerializationQueueKeyFromScope(\n\tconnectionId: number | string,\n\tscope: ClientRequestSerializationScope,\n): RequestSerializationQueueKey {\n\tswitch (scope.type) {\n\t\tcase \"global\":\n\t\t\treturn `global:${scope.key}`;\n\t\tcase \"thread\":\n\t\t\treturn `thread:${scope.threadId}`;\n\t\tcase \"threadPath\":\n\t\t\treturn `thread-path:${scope.path}`;\n\t\tcase \"commandExecProcess\":\n\t\t\treturn `connection:${connectionId}:command-exec-process:${scope.processId}`;\n\t\tcase \"process\":\n\t\t\treturn `connection:${connectionId}:process:${scope.processHandle}`;\n\t\tcase \"fuzzyFileSearchSession\":\n\t\t\treturn `fuzzy-file-search-session:${scope.sessionId}`;\n\t\tcase \"fsWatch\":\n\t\t\treturn `connection:${connectionId}:fs-watch:${scope.watchId}`;\n\t\tcase \"mcpOauth\":\n\t\t\treturn `mcp-oauth:${scope.serverName}`;\n\t}\n}\n","import type {\n\tClientInfo,\n\tClientRequest,\n\tInitializeParams,\n\tInitializeResponse,\n\tRequestId,\n} from \"../../app-server-protocol/schema/typescript\";\nimport {\n\tclientRequestExperimentalReason,\n\tclientRequestSerializationScope,\n} from \"../../app-server-protocol/src/protocol\";\nimport { builtinCollaborationModePresets } from \"../../core/src/collaboration-mode-presets\";\nimport type { CollaborationModeMask as CoreCollaborationModeMask } from \"../../core/src/config-types\";\nimport type {\n\tCollaborationModeListParams,\n\tCollaborationModeListResponse,\n\tCollaborationModeMask,\n\tListMcpServerStatusParams,\n\tListMcpServerStatusResponse,\n\tMcpResourceReadParams,\n\tMcpResourceReadResponse,\n\tMcpServerOauthLoginParams,\n\tMcpServerOauthLoginResponse,\n\tMcpServerRefreshResponse,\n\tMcpServerToolCallParams,\n\tMcpServerToolCallResponse,\n\tThreadArchiveParams,\n\tThreadArchiveResponse,\n\tThreadCompactStartParams,\n\tThreadCompactStartResponse,\n\tThreadListParams,\n\tThreadListResponse,\n\tThreadMetadataUpdateParams,\n\tThreadMetadataUpdateResponse,\n\tThreadReadParams,\n\tThreadReadResponse,\n\tThreadResumeParams,\n\tThreadResumeResponse,\n\tThreadSetNameParams,\n\tThreadSetNameResponse,\n\tThreadStartParams,\n\tThreadStartResponse,\n\tThreadUnarchiveParams,\n\tThreadUnarchiveResponse,\n\tTurnInterruptParams,\n\tTurnInterruptResponse,\n\tTurnStartParams,\n\tTurnStartResponse,\n\tTurnSteerParams,\n\tTurnSteerResponse,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport {\n\tCodexAppServerRequestError,\n\tunsupportedMethodError,\n} from \"./request_processors/request_errors\";\nimport {\n\tConnectionRpcGate,\n\tConnectionRpcGateClosedError,\n} from \"./connection_rpc_gate\";\nimport {\n\tRequestSerializationQueues,\n\trequestSerializationQueueKeyFromScope,\n} from \"./request_serialization\";\nimport type {\n\tConnectionId,\n\tConnectionRequestId,\n\tJSONRPCErrorError,\n\tOutgoingMessageSender,\n} from \"./outgoing_message\";\n\nexport type CodexAppServerRequestContext = {\n\tconnectionId: ConnectionId;\n\toutgoing: OutgoingMessageSender;\n\trequestId: ConnectionRequestId;\n\tsession: CodexAppServerConnectionSessionState;\n};\n\nexport type CodexAppServerMethodHandlers<Context = unknown> = {\n\tcollaborationModeList?(\n\t\tparams: CollaborationModeListParams,\n\t\tcontext?: Context,\n\t): Promise<CollaborationModeListResponse>;\n\tinitialize?(\n\t\tparams: InitializeParams,\n\t\tcontext?: Context,\n\t\tsession?: CodexAppServerConnectionSessionState,\n\t): Promise<InitializeResponse>;\n\tconfigMcpServerReload?(\n\t\tparams: undefined,\n\t\tcontext?: Context,\n\t): Promise<McpServerRefreshResponse>;\n\tmcpResourceRead?(\n\t\tparams: McpResourceReadParams,\n\t\tcontext?: Context,\n\t\trequest?: CodexAppServerRequestContext,\n\t): Promise<McpResourceReadResponse | CodexAppServerDeferredResponse>;\n\tmcpServerOauthLogin?(\n\t\tparams: McpServerOauthLoginParams,\n\t\tcontext?: Context,\n\t): Promise<McpServerOauthLoginResponse>;\n\tmcpServerStatusList?(\n\t\tparams: ListMcpServerStatusParams,\n\t\tcontext?: Context,\n\t\trequest?: CodexAppServerRequestContext,\n\t): Promise<ListMcpServerStatusResponse | CodexAppServerDeferredResponse>;\n\tmcpServerToolCall?(\n\t\tparams: McpServerToolCallParams,\n\t\tcontext?: Context,\n\t\trequest?: CodexAppServerRequestContext,\n\t): Promise<McpServerToolCallResponse | CodexAppServerDeferredResponse>;\n\tthreadArchive?(\n\t\tparams: ThreadArchiveParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadArchiveResponse>;\n\tthreadCompactStart(\n\t\tparams: ThreadCompactStartParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadCompactStartResponse>;\n\tthreadList?(\n\t\tparams: ThreadListParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadListResponse>;\n\tthreadMetadataUpdate?(\n\t\tparams: ThreadMetadataUpdateParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadMetadataUpdateResponse>;\n\tthreadNameSet?(\n\t\tparams: ThreadSetNameParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadSetNameResponse>;\n\tthreadRead?(\n\t\tparams: ThreadReadParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadReadResponse>;\n\tthreadResume(\n\t\tparams: ThreadResumeParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadResumeResponse>;\n\tthreadStart(\n\t\tparams: ThreadStartParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadStartResponse>;\n\tthreadUnarchive?(\n\t\tparams: ThreadUnarchiveParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadUnarchiveResponse>;\n\tturnInterrupt(\n\t\tparams: TurnInterruptParams,\n\t\tcontext?: Context,\n\t): Promise<TurnInterruptResponse>;\n\tturnStart(\n\t\tparams: TurnStartParams,\n\t\tcontext?: Context,\n\t): Promise<TurnStartResponse>;\n\tturnSteer(\n\t\tparams: TurnSteerParams,\n\t\tcontext?: Context,\n\t): Promise<TurnSteerResponse>;\n};\n\nexport type InitializedConnectionSessionState = {\n\tappServerClientName: string;\n\tclientVersion: string;\n\texperimentalApiEnabled: boolean;\n\toptedOutNotificationMethods: ReadonlySet<string>;\n};\n\nexport class CodexAppServerConnectionSessionState {\n\treadonly rpcGate = new ConnectionRpcGate();\n\tprivate initializedState: InitializedConnectionSessionState | null = null;\n\n\tconstructor(initializedState?: InitializedConnectionSessionState | null) {\n\t\tthis.initializedState = initializedState ?? null;\n\t}\n\n\tinitialized(): boolean {\n\t\treturn this.initializedState !== null;\n\t}\n\n\tinitialize(state: InitializedConnectionSessionState): void {\n\t\tif (this.initializedState) {\n\t\t\tthrow invalidRequest(\"Already initialized\");\n\t\t}\n\t\tthis.initializedState = state;\n\t}\n\n\texperimentalApiEnabled(): boolean {\n\t\treturn this.initializedState?.experimentalApiEnabled ?? false;\n\t}\n\n\toptedOutNotificationMethods(): ReadonlySet<string> {\n\t\treturn this.initializedState?.optedOutNotificationMethods ?? new Set();\n\t}\n\n\tappServerClientName(): string | null {\n\t\treturn this.initializedState?.appServerClientName ?? null;\n\t}\n\n\tclientVersion(): string | null {\n\t\treturn this.initializedState?.clientVersion ?? null;\n\t}\n}\n\nexport type CodexAppServerMessageProcessorOptions<Context = unknown> = {\n\tconnectionId?: ConnectionId;\n\thandlers: CodexAppServerMethodHandlers<Context>;\n\tinitializeResponse?: InitializeResponse | (() => InitializeResponse);\n\toutgoing?: OutgoingMessageSender;\n\trequestSerializationQueues?: RequestSerializationQueues;\n\tsession?: CodexAppServerConnectionSessionState;\n};\n\nexport type CodexAppServerConnectionRequestOutcome =\n\t| { result: unknown; type: \"response\" }\n\t| { type: \"deferred\" }\n\t| { error: JSONRPCErrorError; type: \"error\" };\n\nexport type CodexAppServerDeferredResponse = {\n\treadonly __codexAppServerDeferredResponse: true;\n};\n\nconst CODEX_APP_SERVER_DEFERRED_RESPONSE: CodexAppServerDeferredResponse = {\n\t__codexAppServerDeferredResponse: true,\n};\n\nexport function codexAppServerDeferredResponse(): CodexAppServerDeferredResponse {\n\treturn CODEX_APP_SERVER_DEFERRED_RESPONSE;\n}\n\nexport class CodexAppServerMessageProcessor<Context = unknown> {\n\treadonly connectionId: ConnectionId;\n\treadonly requestSerializationQueues: RequestSerializationQueues;\n\treadonly session: CodexAppServerConnectionSessionState;\n\tprivate readonly handlers: CodexAppServerMethodHandlers<Context>;\n\tprivate readonly initializeResponse:\n\t\t| InitializeResponse\n\t\t| (() => InitializeResponse)\n\t\t| undefined;\n\tprivate readonly outgoing: OutgoingMessageSender | undefined;\n\n\tconstructor(options: CodexAppServerMessageProcessorOptions<Context>) {\n\t\tthis.connectionId = options.connectionId ?? defaultConnectionId();\n\t\tthis.handlers = options.handlers;\n\t\tthis.initializeResponse = options.initializeResponse;\n\t\tthis.outgoing = options.outgoing;\n\t\tthis.requestSerializationQueues =\n\t\t\toptions.requestSerializationQueues ?? new RequestSerializationQueues();\n\t\tthis.session = options.session ?? new CodexAppServerConnectionSessionState();\n\t}\n\n\tasync processClientRequest(\n\t\trequest: ClientRequest,\n\t\tcontext?: Context,\n\t): Promise<unknown> {\n\t\tif (request.method === \"initialize\") {\n\t\t\treturn this.initialize(request.params, context);\n\t\t}\n\t\tif (!this.session.initialized()) {\n\t\t\tthrow invalidRequest(\"Not initialized\");\n\t\t}\n\t\tconst experimentalReason = clientRequestExperimentalReason(request);\n\t\tif (experimentalReason && !this.session.experimentalApiEnabled()) {\n\t\t\tthrow invalidRequest(experimentalRequiredMessage(experimentalReason));\n\t\t}\n\n\t\tconst scope = clientRequestSerializationScope(request);\n\t\tconst run = () =>\n\t\t\tthis.session.rpcGate.run(() =>\n\t\t\t\tthis.handleInitializedClientRequest(request, context),\n\t\t\t);\n\t\ttry {\n\t\t\tif (!scope) {\n\t\t\t\treturn await run();\n\t\t\t}\n\t\t\treturn await this.requestSerializationQueues.enqueue(\n\t\t\t\trequestSerializationQueueKeyFromScope(this.connectionId, scope),\n\t\t\t\trun,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (error instanceof ConnectionRpcGateClosedError) {\n\t\t\t\tthrow new CodexAppServerRequestError(\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: -32000,\n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t},\n\t\t\t\t\t499,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tasync processConnectionRequest(\n\t\trequest: ClientRequest,\n\t\tcontext?: Context,\n\t): Promise<CodexAppServerConnectionRequestOutcome> {\n\t\tif (!this.outgoing) {\n\t\t\tconst result = await this.processClientRequest(request, context);\n\t\t\treturn { result, type: \"response\" };\n\t\t}\n\t\tconst requestId = this.connectionRequestId(request.id);\n\t\tthis.outgoing.registerRequestContext({\n\t\t\tconnectionId: requestId.connectionId,\n\t\t\trequestId: requestId.requestId,\n\t\t});\n\t\ttry {\n\t\t\tconst result = await this.processClientRequest(request, context);\n\t\t\tif (isCodexAppServerDeferredResponse(result)) {\n\t\t\t\treturn { type: \"deferred\" };\n\t\t\t}\n\t\t\tawait this.outgoing.sendResponse(requestId, result);\n\t\t\treturn { result, type: \"response\" };\n\t\t} catch (error) {\n\t\t\tconst responseError =\n\t\t\t\terror instanceof CodexAppServerRequestError\n\t\t\t\t\t? error.error\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tcode: -32000,\n\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\terror instanceof Error\n\t\t\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t\t\t: \"Codex App Server request failed.\",\n\t\t\t\t\t };\n\t\t\tawait this.outgoing.sendError(requestId, responseError);\n\t\t\treturn { error: responseError, type: \"error\" };\n\t\t}\n\t}\n\n\tasync shutdown(): Promise<void> {\n\t\tawait this.session.rpcGate.shutdown();\n\t}\n\n\tconnectionClosed(): Promise<void> {\n\t\tthis.outgoing?.connectionClosed(this.connectionId);\n\t\treturn this.shutdown();\n\t}\n\n\tprivate async initialize(\n\t\tparams: InitializeParams,\n\t\tcontext?: Context,\n\t): Promise<InitializeResponse> {\n\t\tvalidateClientInfo(params.clientInfo);\n\t\tconst capabilities = params.capabilities;\n\t\tthis.session.initialize({\n\t\t\tappServerClientName: params.clientInfo.name,\n\t\t\tclientVersion: params.clientInfo.version,\n\t\t\texperimentalApiEnabled: capabilities?.experimentalApi ?? false,\n\t\t\toptedOutNotificationMethods: new Set(\n\t\t\t\tcapabilities?.optOutNotificationMethods ?? [],\n\t\t\t),\n\t\t});\n\t\tif (this.handlers.initialize) {\n\t\t\treturn this.handlers.initialize(params, context, this.session);\n\t\t}\n\t\treturn this.defaultInitializeResponse();\n\t}\n\n\tprivate async handleInitializedClientRequest(\n\t\trequest: ClientRequest,\n\t\tcontext?: Context,\n\t): Promise<unknown> {\n\t\tswitch (request.method) {\n\t\t\tcase \"thread/start\":\n\t\t\t\treturn this.handlers.threadStart(request.params, context);\n\t\t\tcase \"thread/resume\":\n\t\t\t\treturn this.handlers.threadResume(request.params, context);\n\t\t\tcase \"thread/list\":\n\t\t\t\tif (this.handlers.threadList) {\n\t\t\t\t\treturn this.handlers.threadList(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"thread/read\":\n\t\t\t\tif (this.handlers.threadRead) {\n\t\t\t\t\treturn this.handlers.threadRead(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"thread/name/set\":\n\t\t\t\tif (this.handlers.threadNameSet) {\n\t\t\t\t\treturn this.handlers.threadNameSet(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"thread/archive\":\n\t\t\t\tif (this.handlers.threadArchive) {\n\t\t\t\t\treturn this.handlers.threadArchive(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"thread/unarchive\":\n\t\t\t\tif (this.handlers.threadUnarchive) {\n\t\t\t\t\treturn this.handlers.threadUnarchive(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"thread/metadata/update\":\n\t\t\t\tif (this.handlers.threadMetadataUpdate) {\n\t\t\t\t\treturn this.handlers.threadMetadataUpdate(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"turn/start\":\n\t\t\t\treturn this.handlers.turnStart(request.params, context);\n\t\t\tcase \"turn/steer\":\n\t\t\t\treturn this.handlers.turnSteer(request.params, context);\n\t\t\tcase \"turn/interrupt\":\n\t\t\t\treturn this.handlers.turnInterrupt(request.params, context);\n\t\t\tcase \"thread/compact/start\":\n\t\t\t\treturn this.handlers.threadCompactStart(request.params, context);\n\t\t\tcase \"collaborationMode/list\":\n\t\t\t\tif (this.handlers.collaborationModeList) {\n\t\t\t\t\treturn this.handlers.collaborationModeList(request.params, context);\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdata: builtinCollaborationModePresets().map(\n\t\t\t\t\t\tappServerCollaborationModeMask,\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\tcase \"config/mcpServer/reload\":\n\t\t\t\tif (this.handlers.configMcpServerReload) {\n\t\t\t\t\treturn this.handlers.configMcpServerReload(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"mcpServerStatus/list\":\n\t\t\t\tif (this.handlers.mcpServerStatusList) {\n\t\t\t\t\treturn this.handlers.mcpServerStatusList(\n\t\t\t\t\t\trequest.params,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tthis.requestContext(request.id),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"mcpServer/resource/read\":\n\t\t\t\tif (this.handlers.mcpResourceRead) {\n\t\t\t\t\treturn this.handlers.mcpResourceRead(\n\t\t\t\t\t\trequest.params,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tthis.requestContext(request.id),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"mcpServer/tool/call\":\n\t\t\t\tif (this.handlers.mcpServerToolCall) {\n\t\t\t\t\treturn this.handlers.mcpServerToolCall(\n\t\t\t\t\t\trequest.params,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tthis.requestContext(request.id),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"mcpServer/oauth/login\":\n\t\t\t\tif (this.handlers.mcpServerOauthLogin) {\n\t\t\t\t\treturn this.handlers.mcpServerOauthLogin(request.params, context);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\tthrow new CodexAppServerRequestError(\n\t\t\tunsupportedMethodError(request.method, request.id),\n\t\t\t404,\n\t\t);\n\t}\n\n\tprivate defaultInitializeResponse(): InitializeResponse {\n\t\tconst response =\n\t\t\ttypeof this.initializeResponse === \"function\"\n\t\t\t\t? this.initializeResponse()\n\t\t\t\t: this.initializeResponse;\n\t\treturn (\n\t\t\tresponse ?? {\n\t\t\t\tcodexHome: \"/\",\n\t\t\t\tplatformFamily: platformFamily(),\n\t\t\t\tplatformOs: platformOs(),\n\t\t\t\tuserAgent: \"codex-js\",\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate connectionRequestId(requestId: RequestId): ConnectionRequestId {\n\t\treturn {\n\t\t\tconnectionId: this.connectionId,\n\t\t\trequestId,\n\t\t};\n\t}\n\n\tprivate requestContext(requestId: RequestId): CodexAppServerRequestContext | undefined {\n\t\tif (!this.outgoing) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn {\n\t\t\tconnectionId: this.connectionId,\n\t\t\toutgoing: this.outgoing,\n\t\t\trequestId: this.connectionRequestId(requestId),\n\t\t\tsession: this.session,\n\t\t};\n\t}\n}\n\nfunction isCodexAppServerDeferredResponse(\n\tvalue: unknown,\n): value is CodexAppServerDeferredResponse {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t(value as CodexAppServerDeferredResponse)\n\t\t\t.__codexAppServerDeferredResponse === true\n\t);\n}\n\nfunction validateClientInfo(clientInfo: ClientInfo): void {\n\tif (!clientInfo.name || /[\\r\\n]/u.test(clientInfo.name)) {\n\t\tthrow invalidRequest(\n\t\t\t`Invalid clientInfo.name: '${clientInfo.name}'. Must be a valid HTTP header value.`,\n\t\t);\n\t}\n}\n\nfunction invalidRequest(message: string): CodexAppServerRequestError {\n\treturn new CodexAppServerRequestError(\n\t\t{ code: -32600, message } satisfies JSONRPCErrorError,\n\t\t400,\n\t);\n}\n\nfunction experimentalRequiredMessage(reason: string): string {\n\treturn `Experimental API capability is required for ${reason}.`;\n}\n\nfunction defaultConnectionId(): number {\n\treturn Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);\n}\n\nfunction platformFamily(): string {\n\tconst navigatorPlatform = (globalThis as { navigator?: { platform?: string } })\n\t\t.navigator?.platform;\n\tif (navigatorPlatform?.toLowerCase().includes(\"win\")) {\n\t\treturn \"windows\";\n\t}\n\treturn \"unix\";\n}\n\nfunction platformOs(): string {\n\tconst navigatorPlatform = (globalThis as { navigator?: { platform?: string } })\n\t\t.navigator?.platform?.toLowerCase();\n\tif (navigatorPlatform?.includes(\"mac\")) {\n\t\treturn \"macos\";\n\t}\n\tif (navigatorPlatform?.includes(\"win\")) {\n\t\treturn \"windows\";\n\t}\n\tif (navigatorPlatform?.includes(\"linux\")) {\n\t\treturn \"linux\";\n\t}\n\treturn \"unknown\";\n}\n\nfunction appServerCollaborationModeMask(\n\tmask: CoreCollaborationModeMask,\n): CollaborationModeMask {\n\treturn {\n\t\tname: mask.name,\n\t\tmode: mask.mode ?? null,\n\t\tmodel: mask.model ?? null,\n\t\treasoning_effort:\n\t\t\tmask.reasoning_effort === undefined\n\t\t\t\t? null\n\t\t\t\t: (mask.reasoning_effort as CollaborationModeMask[\"reasoning_effort\"]),\n\t};\n}\n","import {\n\tSteerInputErrorKind,\n\tasThreadId,\n\ttype Session,\n\ttype Submission,\n\ttype ThreadId,\n\ttype UserInput as CoreUserInput,\n} from \"../../../core/src\";\nimport type { CollaborationMode } from \"../../../core/src/config-types\";\nimport type {\n\tThreadCompactStartParams,\n\tThreadResumeParams,\n\tThreadStartParams,\n\tTurnStartParams,\n\tUserInput,\n} from \"../../../app-server-protocol/schema/typescript/v2\";\nimport type { AppServerEvent, JSONRPCErrorError } from \"../outgoing_message\";\nimport { CodexAppServerRequestError } from \"./request_errors\";\n\nexport type RuntimeSession = {\n\tabortController: AbortController | null;\n\trunPromise: Promise<unknown> | null;\n\tsession: Session;\n};\n\nexport type ProcessorEmit<Context> = (\n\tthreadId: ThreadId,\n\tevent: AppServerEvent,\n\tcontext?: Context,\n) => Promise<void>;\n\nexport type ProcessorCreateSession<Context> = (\n\tthreadId: ThreadId,\n\tparams:\n\t\t| ThreadStartParams\n\t\t| ThreadResumeParams\n\t\t| TurnStartParams\n\t\t| ThreadCompactStartParams,\n\tcontext?: Context,\n\tsubmission?: Submission,\n) => Promise<Session>;\n\nexport type TurnStartParamsWithClientMessageId = TurnStartParams & {\n\tclientMessageId?: string;\n};\n\nexport type TurnStartParamsWithCollaborationMode = TurnStartParams & {\n\tcollaborationMode?: CollaborationMode;\n\tcollaboration_mode?: CollaborationMode;\n};\n\nexport function appServerUserInputToCoreUserInput(input: UserInput): CoreUserInput {\n\tswitch (input.type) {\n\t\tcase \"text\":\n\t\t\treturn {\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: input.text,\n\t\t\t\ttext_elements: (input.text_elements ?? []).map((element) => ({\n\t\t\t\t\tbyte_range: element.byteRange,\n\t\t\t\t\tplaceholder: element.placeholder ?? undefined,\n\t\t\t\t})),\n\t\t\t};\n\t\tcase \"image\":\n\t\t\treturn { type: \"image\", image_url: input.url };\n\t\tcase \"localImage\":\n\t\t\treturn { type: \"local_image\", path: input.path };\n\t\tcase \"skill\":\n\t\t\treturn { type: \"skill\", name: input.name, path: input.path };\n\t\tcase \"mention\":\n\t\t\treturn { type: \"mention\", name: input.name, path: input.path };\n\t}\n}\n\nexport function threadIdFromStartParams(params: ThreadStartParams): ThreadId {\n\tconst maybeThreadId = (params as { threadId?: unknown }).threadId;\n\treturn asThreadId(typeof maybeThreadId === \"string\" ? maybeThreadId : defaultId());\n}\n\nexport function defaultId(): string {\n\tconst crypto = (globalThis as { crypto?: { randomUUID?: () => string } }).crypto;\n\treturn crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;\n}\n\nexport function valueOrNull<T>(value: T | null | undefined): T | null {\n\treturn value === undefined ? null : value;\n}\n\nexport function approvalPolicyString(value: unknown): string | null {\n\treturn typeof value === \"string\" ? value : null;\n}\n\nexport function jsonRpcError(message: string, code: number, status: number): never {\n\tthrow new CodexAppServerRequestError(\n\t\t{ code, message } satisfies JSONRPCErrorError,\n\t\tstatus,\n\t);\n}\n\nexport function steerErrorCode(kind: SteerInputErrorKind): number {\n\tswitch (kind) {\n\t\tcase SteerInputErrorKind.EmptyInput:\n\t\t\treturn -32602;\n\t\tcase SteerInputErrorKind.NoActiveTurn:\n\t\t\treturn -32012;\n\t\tcase SteerInputErrorKind.ExpectedTurnMismatch:\n\t\t\treturn -32013;\n\t\tcase SteerInputErrorKind.ActiveTurnNotSteerable:\n\t\t\treturn -32015;\n\t}\n}\n","import type {\n\tMcpResourceReadParams,\n\tMcpResourceReadResponse,\n\tMcpServerOauthLoginParams,\n\tMcpServerOauthLoginResponse,\n\tMcpServerRefreshResponse,\n\tMcpServerStatus as AppServerMcpServerStatus,\n\tMcpServerToolCallParams,\n\tMcpServerToolCallResponse,\n\tListMcpServerStatusParams,\n\tListMcpServerStatusResponse,\n} from \"../../../app-server-protocol/schema/typescript/v2\";\nimport type { Resource } from \"../../../app-server-protocol/schema/typescript/Resource\";\nimport type { ResourceContent } from \"../../../app-server-protocol/schema/typescript/ResourceContent\";\nimport type { ResourceTemplate } from \"../../../app-server-protocol/schema/typescript/ResourceTemplate\";\nimport type { Tool } from \"../../../app-server-protocol/schema/typescript/Tool\";\nimport type { JsonValue } from \"../../../app-server-protocol/schema/typescript/serde_json/JsonValue\";\nimport {\n\tasThreadId,\n\tEmptyMcpConnectionManager,\n\ttype McpConnectionManager,\n\ttype McpResourceInfo,\n\ttype McpResourceTemplateInfo,\n\ttype McpServerStatus,\n\ttype McpToolInfo,\n\ttype ThreadId,\n\ttype ThreadStore,\n} from \"../../../core/src\";\nimport type { McpServerToolCallResponse as CoreMcpServerToolCallResponse } from \"../../../core/src/mcp\";\nimport type { JSONRPCErrorError } from \"../outgoing_message\";\nimport { jsonRpcError } from \"./common\";\nimport { CodexAppServerRequestError } from \"./request_errors\";\nimport {\n\tcodexAppServerDeferredResponse,\n\ttype CodexAppServerDeferredResponse,\n\ttype CodexAppServerRequestContext,\n} from \"../message_processor\";\n\nconst MCP_TOOL_THREAD_ID_META_KEY = \"threadId\";\n\nexport type McpRequestProcessorOptions<Context> = {\n\tmcpConnectionManager?: McpConnectionManager | null;\n\tmcpServerOauthLogin?: (input: {\n\t\tcontext?: Context;\n\t\tparams: McpServerOauthLoginParams;\n\t}) => McpServerOauthLoginResponse | Promise<McpServerOauthLoginResponse>;\n\treloadMcpServers?: (input: { context?: Context }) => void | Promise<void>;\n\trunInBackground?: (\n\t\tpromise: Promise<unknown>,\n\t\tcontext: { context?: Context },\n\t) => void;\n\tstore: ThreadStore;\n};\n\nexport class McpRequestProcessor<Context> {\n\tconstructor(private readonly options: McpRequestProcessorOptions<Context>) {}\n\n\tasync mcpServerRefresh(\n\t\t_params: undefined,\n\t\tcontext?: Context,\n\t): Promise<McpServerRefreshResponse> {\n\t\tawait this.options.reloadMcpServers?.({ context });\n\t\treturn {};\n\t}\n\n\tasync mcpServerStatusList(\n\t\tparams: ListMcpServerStatusParams,\n\t\tcontext?: Context,\n\t\trequest?: CodexAppServerRequestContext,\n\t): Promise<ListMcpServerStatusResponse | CodexAppServerDeferredResponse> {\n\t\tif (request) {\n\t\t\tthis.runDeferred(request, context, () =>\n\t\t\t\tthis.mcpServerStatusListResponse(params),\n\t\t\t);\n\t\t\treturn codexAppServerDeferredResponse();\n\t\t}\n\t\treturn this.mcpServerStatusListResponse(params);\n\t}\n\n\tprivate async mcpServerStatusListResponse(\n\t\tparams: ListMcpServerStatusParams,\n\t): Promise<ListMcpServerStatusResponse> {\n\t\tconst detail = params.detail ?? \"full\";\n\t\tconst statuses = await this.manager().list_server_statuses({ detail });\n\t\tconst total = statuses.length;\n\t\tconst limit = Math.min(Math.max(params.limit ?? total, 1), total);\n\t\tconst start = params.cursor ? parseCursor(params.cursor) : 0;\n\t\tif (start > total) {\n\t\t\tjsonRpcError(\n\t\t\t\t`cursor ${start} exceeds total MCP servers ${total}`,\n\t\t\t\t-32600,\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\t\tconst end = Math.min(start + limit, total);\n\t\treturn {\n\t\t\tdata: statuses.slice(start, end).map((status) =>\n\t\t\t\tappServerMcpServerStatus(status, detail),\n\t\t\t),\n\t\t\tnextCursor: end < total ? String(end) : null,\n\t\t};\n\t}\n\n\tasync mcpResourceRead(\n\t\tparams: McpResourceReadParams,\n\t\tcontext?: Context,\n\t\trequest?: CodexAppServerRequestContext,\n\t): Promise<McpResourceReadResponse | CodexAppServerDeferredResponse> {\n\t\tif (request) {\n\t\t\tthis.runDeferred(request, context, () =>\n\t\t\t\tthis.mcpResourceReadResponse(params),\n\t\t\t);\n\t\t\treturn codexAppServerDeferredResponse();\n\t\t}\n\t\treturn this.mcpResourceReadResponse(params);\n\t}\n\n\tprivate async mcpResourceReadResponse(\n\t\tparams: McpResourceReadParams,\n\t): Promise<McpResourceReadResponse> {\n\t\tif (params.threadId) {\n\t\t\tawait this.loadThread(params.threadId);\n\t\t}\n\t\tconst response = await this.manager().read_resource({\n\t\t\tthread_id: params.threadId ? asThreadId(params.threadId) : null,\n\t\t\tserver_name: params.server,\n\t\t\turi: params.uri,\n\t\t});\n\t\treturn {\n\t\t\tcontents: response.contents.map((content) =>\n\t\t\t\tappServerResourceContent(content, params.uri),\n\t\t\t),\n\t\t};\n\t}\n\n\tasync mcpServerToolCall(\n\t\tparams: McpServerToolCallParams,\n\t\tcontext?: Context,\n\t\trequest?: CodexAppServerRequestContext,\n\t): Promise<McpServerToolCallResponse | CodexAppServerDeferredResponse> {\n\t\tif (request) {\n\t\t\tthis.runDeferred(request, context, () =>\n\t\t\t\tthis.mcpServerToolCallResponse(params),\n\t\t\t);\n\t\t\treturn codexAppServerDeferredResponse();\n\t\t}\n\t\treturn this.mcpServerToolCallResponse(params);\n\t}\n\n\tprivate async mcpServerToolCallResponse(\n\t\tparams: McpServerToolCallParams,\n\t): Promise<McpServerToolCallResponse> {\n\t\tconst threadId = await this.loadThread(params.threadId);\n\t\tconst response = await this.manager().call_tool({\n\t\t\targuments: params.arguments,\n\t\t\tmeta: with_mcp_tool_call_thread_id_meta(params._meta, threadId),\n\t\t\tserver_name: params.server,\n\t\t\tthread_id: threadId,\n\t\t\ttool_name: params.tool,\n\t\t});\n\t\treturn appServerMcpToolCallResponse(response);\n\t}\n\n\tasync mcpServerOauthLogin(\n\t\tparams: McpServerOauthLoginParams,\n\t\tcontext?: Context,\n\t): Promise<McpServerOauthLoginResponse> {\n\t\tif (!this.options.mcpServerOauthLogin) {\n\t\t\tjsonRpcError(\"MCP OAuth login is unavailable.\", -32600, 400);\n\t\t}\n\t\treturn this.options.mcpServerOauthLogin({ context, params });\n\t}\n\n\tprivate manager(): McpConnectionManager {\n\t\treturn this.options.mcpConnectionManager ?? EmptyMcpConnectionManager.instance;\n\t}\n\n\tprivate runDeferred<T>(\n\t\trequest: CodexAppServerRequestContext,\n\t\tcontext: Context | undefined,\n\t\twork: () => Promise<T>,\n\t): void {\n\t\tconst promise = (async () => {\n\t\t\ttry {\n\t\t\t\tawait request.outgoing.sendResponse(\n\t\t\t\t\trequest.requestId,\n\t\t\t\t\tawait work(),\n\t\t\t\t\tcontext,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tawait request.outgoing.sendError(\n\t\t\t\t\trequest.requestId,\n\t\t\t\t\tjsonRpcErrorFromUnknown(error),\n\t\t\t\t\tcontext,\n\t\t\t\t);\n\t\t\t}\n\t\t})();\n\t\tif (this.options.runInBackground) {\n\t\t\tthis.options.runInBackground(promise, { context });\n\t\t\treturn;\n\t\t}\n\t\tvoid promise;\n\t}\n\n\tprivate async loadThread(threadIdString: string): Promise<ThreadId> {\n\t\tlet threadId: ThreadId;\n\t\ttry {\n\t\t\tthreadId = asThreadId(threadIdString);\n\t\t} catch (error) {\n\t\t\tjsonRpcError(\n\t\t\t\t`invalid thread id: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t-32600,\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\t\ttry {\n\t\t\tawait this.options.store.readThread({\n\t\t\t\tthread_id: threadId,\n\t\t\t\tinclude_archived: false,\n\t\t\t\tinclude_history: false,\n\t\t\t});\n\t\t} catch {\n\t\t\tjsonRpcError(`thread not found: ${threadId}`, -32600, 400);\n\t\t}\n\t\treturn threadId;\n\t}\n}\n\nfunction parseCursor(cursor: string): number {\n\tif (!/^\\d+$/u.test(cursor)) {\n\t\tjsonRpcError(`invalid cursor: ${cursor}`, -32600, 400);\n\t}\n\tconst parsed = Number.parseInt(cursor, 10);\n\treturn parsed;\n}\n\nfunction appServerMcpServerStatus(\n\tstatus: McpServerStatus,\n\tdetail: ListMcpServerStatusParams[\"detail\"],\n): AppServerMcpServerStatus {\n\treturn {\n\t\tauthStatus: status.authStatus ?? status.auth_status ?? \"unsupported\",\n\t\tname: status.name,\n\t\tresources:\n\t\t\tdetail === \"toolsAndAuthOnly\"\n\t\t\t\t? []\n\t\t\t\t: (status.resources ?? []).map(appServerResource),\n\t\tresourceTemplates:\n\t\t\tdetail === \"toolsAndAuthOnly\"\n\t\t\t\t? []\n\t\t\t\t: (status.resource_templates ?? []).map(appServerResourceTemplate),\n\t\ttools: Object.fromEntries(\n\t\t\t(status.tools ?? []).map((tool) => [tool.name, appServerTool(tool)]),\n\t\t),\n\t};\n}\n\nfunction appServerTool(tool: McpToolInfo): Tool {\n\treturn omitUndefined({\n\t\tname: tool.name,\n\t\ttitle: tool.title ?? undefined,\n\t\tdescription: tool.description ?? undefined,\n\t\tinputSchema: (tool.input_schema ?? { type: \"object\" }) as JsonValue,\n\t});\n}\n\nfunction appServerResource(resource: McpResourceInfo): Resource {\n\treturn omitUndefined({\n\t\turi: resource.uri,\n\t\tname: resource.name ?? resource.uri,\n\t\tdescription: resource.description ?? undefined,\n\t\tmimeType: resource.mime_type ?? undefined,\n\t});\n}\n\nfunction appServerResourceTemplate(\n\ttemplate: McpResourceTemplateInfo,\n): ResourceTemplate {\n\treturn omitUndefined({\n\t\turiTemplate: template.uri_template,\n\t\tname: template.name ?? template.uri_template,\n\t\ttitle: undefined,\n\t\tdescription: template.description ?? undefined,\n\t\tmimeType: template.mime_type ?? undefined,\n\t});\n}\n\nfunction appServerResourceContent(\n\tcontent: unknown,\n\tfallbackUri: string,\n): ResourceContent {\n\tif (!isRecord(content)) {\n\t\treturn { uri: fallbackUri, text: String(content) };\n\t}\n\tconst uri = typeof content.uri === \"string\" ? content.uri : fallbackUri;\n\tconst mimeType =\n\t\ttypeof content.mimeType === \"string\"\n\t\t\t? content.mimeType\n\t\t\t: typeof content.mime_type === \"string\"\n\t\t\t\t? content.mime_type\n\t\t\t\t: undefined;\n\tif (typeof content.blob === \"string\") {\n\t\treturn omitUndefined({\n\t\t\turi,\n\t\t\tmimeType,\n\t\t\tblob: content.blob,\n\t\t\t_meta: content._meta as JsonValue | undefined,\n\t\t});\n\t}\n\treturn omitUndefined({\n\t\turi,\n\t\tmimeType,\n\t\ttext: typeof content.text === \"string\" ? content.text : JSON.stringify(content),\n\t\t_meta: content._meta as JsonValue | undefined,\n\t});\n}\n\nfunction appServerMcpToolCallResponse(\n\tresponse: CoreMcpServerToolCallResponse,\n): McpServerToolCallResponse {\n\tconst output = response.output;\n\tconst record = isRecord(output) ? output : {};\n\tconst structuredContent =\n\t\trecord.structuredContent ?? record.structured_content ?? undefined;\n\tconst isError = record.isError ?? record.is_error ?? undefined;\n\treturn omitUndefined({\n\t\tcontent: Array.isArray(record.content)\n\t\t\t? (record.content as JsonValue[])\n\t\t\t: [],\n\t\tstructuredContent: structuredContent as JsonValue | undefined,\n\t\tisError: typeof isError === \"boolean\" ? isError : undefined,\n\t\t_meta: record._meta as JsonValue | undefined,\n\t});\n}\n\nfunction with_mcp_tool_call_thread_id_meta(\n\tmeta: JsonValue | undefined,\n\tthreadId: ThreadId,\n): unknown {\n\tif (meta === undefined) {\n\t\treturn { [MCP_TOOL_THREAD_ID_META_KEY]: threadId };\n\t}\n\tif (isRecord(meta)) {\n\t\treturn {\n\t\t\t...meta,\n\t\t\t[MCP_TOOL_THREAD_ID_META_KEY]: threadId,\n\t\t};\n\t}\n\treturn meta;\n}\n\nfunction jsonRpcErrorFromUnknown(error: unknown): JSONRPCErrorError {\n\tif (error instanceof CodexAppServerRequestError) {\n\t\treturn error.error;\n\t}\n\treturn {\n\t\tcode: -32000,\n\t\tmessage:\n\t\t\terror instanceof Error\n\t\t\t\t? error.message\n\t\t\t\t: \"Codex App Server request failed.\",\n\t};\n}\n\nfunction omitUndefined<T extends Record<string, unknown>>(record: T): T {\n\treturn Object.fromEntries(\n\t\tObject.entries(record).filter(([, value]) => value !== undefined),\n\t) as T;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import type { ServerNotification } from \"../../../app-server-protocol/schema/typescript\";\nimport type {\n\tThread,\n\tThreadTokenUsageUpdatedNotification,\n\tTurn,\n} from \"../../../app-server-protocol/schema/typescript/v2\";\nimport { threadTokenUsageFromTokenUsageInfo } from \"../../../app-server-protocol/src/protocol/event-mapping\";\nimport type { ThreadId } from \"../../../core/src/ids\";\nimport type {\n\tRolloutItem,\n\tTokenUsageInfo,\n} from \"../../../core/src/protocol\";\nimport { ThreadHistoryBuilder } from \"../../../core/src/thread-history-builder\";\nimport { appServerTurnFromCoreTurn } from \"../../../app-server-protocol/src/protocol/thread-resume\";\n\n/// Identifies the turn that was active when a TokenCount record appeared.\nexport type TokenUsageTurnOwner = {\n\tid: string;\n\tposition: number | null;\n};\n\nexport function latest_token_usage_turn_id_from_rollout_items(\n\trolloutItems: readonly RolloutItem[],\n\tturns: readonly Turn[],\n): string | null {\n\tconst builder = new ThreadHistoryBuilder();\n\tlet tokenUsageTurnOwner: TokenUsageTurnOwner | null = null;\n\n\tfor (const item of rolloutItems) {\n\t\tif (item.type === \"event_msg\" && item.payload.type === \"token_count\") {\n\t\t\tconst turn = builder.active_turn_snapshot();\n\t\t\ttokenUsageTurnOwner = turn\n\t\t\t\t? {\n\t\t\t\t\t\tid: appServerTurnFromCoreTurn(turn).id,\n\t\t\t\t\t\tposition: builder.active_turn_position(),\n\t\t\t\t\t}\n\t\t\t\t: null;\n\t\t}\n\t\tbuilder.handle_rollout_item(item);\n\t}\n\n\tif (!tokenUsageTurnOwner) {\n\t\treturn null;\n\t}\n\tif (turns.some((turn) => turn.id === tokenUsageTurnOwner.id)) {\n\t\treturn tokenUsageTurnOwner.id;\n\t}\n\treturn tokenUsageTurnOwner.position === null\n\t\t? null\n\t\t: (turns[tokenUsageTurnOwner.position]?.id ?? null);\n}\n\nexport function latest_token_usage_turn_id(thread: Thread): string {\n\treturn (\n\t\t[...thread.turns]\n\t\t\t.reverse()\n\t\t\t.find((turn) => turn.status === \"completed\" || turn.status === \"failed\")\n\t\t\t?.id ??\n\t\tthread.turns.at(-1)?.id ??\n\t\t\"\"\n\t);\n}\n\nexport function last_token_info_from_rollout_items(\n\trolloutItems: readonly RolloutItem[],\n): TokenUsageInfo | null {\n\tfor (let index = rolloutItems.length - 1; index >= 0; index -= 1) {\n\t\tconst item = rolloutItems[index];\n\t\tif (\n\t\t\titem?.type === \"event_msg\" &&\n\t\t\titem.payload.type === \"token_count\" &&\n\t\t\titem.payload.info\n\t\t) {\n\t\t\treturn item.payload.info;\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function thread_token_usage_updated_notification_from_info(input: {\n\tthread: Thread;\n\tthreadId: ThreadId | string;\n\ttokenUsageInfo: TokenUsageInfo;\n\ttokenUsageTurnId?: string | null;\n}): ServerNotification {\n\tconst params: ThreadTokenUsageUpdatedNotification = {\n\t\tthreadId: String(input.threadId),\n\t\tturnId: input.tokenUsageTurnId ?? latest_token_usage_turn_id(input.thread),\n\t\ttokenUsage: threadTokenUsageFromTokenUsageInfo(input.tokenUsageInfo),\n\t};\n\treturn {\n\t\tmethod: \"thread/tokenUsage/updated\",\n\t\tparams,\n\t};\n}\n\nexport function thread_token_usage_updated_notification_from_rollout_items(input: {\n\trolloutItems: readonly RolloutItem[];\n\tthread: Thread;\n\tthreadId: ThreadId | string;\n}): ServerNotification | null {\n\tconst tokenUsageInfo = last_token_info_from_rollout_items(input.rolloutItems);\n\tif (!tokenUsageInfo) {\n\t\treturn null;\n\t}\n\treturn thread_token_usage_updated_notification_from_info({\n\t\tthread: input.thread,\n\t\tthreadId: input.threadId,\n\t\ttokenUsageInfo,\n\t\ttokenUsageTurnId: latest_token_usage_turn_id_from_rollout_items(\n\t\t\tinput.rolloutItems,\n\t\t\tinput.thread.turns,\n\t\t),\n\t});\n}\n","import {\n\tBaseInstructions,\n\tLiveThread,\n\tThreadEventPersistenceMode,\n\tThreadMemoryMode,\n\tasThreadId,\n\ttype CreateThreadParams,\n\ttype DynamicToolSpec,\n\ttype Submission,\n\ttype ThreadId,\n\ttype ThreadStore,\n} from \"../../../core/src\";\nimport {\n\tSortDirection as StoreSortDirection,\n\tThreadSortKey as StoreThreadSortKey,\n} from \"../../../core/src/thread-store/types\";\nimport {\n\tbuildThreadResumeResponseFromHistory,\n\tthreadHistoryToAppServerThread,\n} from \"../../../app-server-protocol/src/protocol/thread-resume\";\nimport {\n\tthread_token_usage_updated_notification_from_rollout_items,\n} from \"./token_usage_replay\";\nimport type {\n\tThreadArchiveParams,\n\tThreadArchiveResponse,\n\tThreadCompactStartParams,\n\tThreadCompactStartResponse,\n\tThreadListParams,\n\tThreadListResponse,\n\tThreadMetadataUpdateParams,\n\tThreadMetadataUpdateResponse,\n\tThreadReadParams,\n\tThreadReadResponse,\n\tThreadResumeParams,\n\tThreadResumeResponse,\n\tThreadSetNameParams,\n\tThreadSetNameResponse,\n\tThreadStartParams,\n\tThreadStartResponse,\n\tThreadUnarchiveParams,\n\tThreadUnarchiveResponse,\n} from \"../../../app-server-protocol/schema/typescript/v2\";\nimport type { StoredThread, StoredThreadHistory } from \"../../../core/src/thread-store/types\";\nimport type { CodexSessionTaskRunner } from \"../session_task_runner\";\nimport {\n\tdefaultId,\n\tjsonRpcError,\n\tthreadIdFromStartParams,\n\ttype ProcessorCreateSession,\n\ttype ProcessorEmit,\n\ttype RuntimeSession,\n} from \"./common\";\n\nconst THREAD_LIST_DEFAULT_LIMIT = 25;\nconst THREAD_LIST_MAX_LIMIT = 100;\n\nexport type ThreadRequestProcessorOptions<Context> = {\n\tbuildCreateThreadParams?: (input: {\n\t\tcontext?: Context;\n\t\tparams: ThreadStartParams;\n\t\tthreadId: ThreadId;\n\t}) => CreateThreadParams | Promise<CreateThreadParams>;\n\tcreateSession: ProcessorCreateSession<Context>;\n\temit: ProcessorEmit<Context>;\n\tresolveDynamicTools?: (input: {\n\t\tcontext?: Context;\n\t\tparams: ThreadStartParams;\n\t\tthreadId: ThreadId;\n\t}) => DynamicToolSpec[] | Promise<DynamicToolSpec[]>;\n\tsessions: Map<ThreadId, RuntimeSession>;\n\tstore: ThreadStore;\n\ttaskRunner: CodexSessionTaskRunner<Context>;\n};\n\nexport class ThreadRequestProcessor<Context> {\n\tconstructor(private readonly options: ThreadRequestProcessorOptions<Context>) {}\n\n\tasync threadStart(\n\t\tparams: ThreadStartParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadStartResponse> {\n\t\tconst liveThread = await this.ensureLiveThread(params, context);\n\t\tconst response = await this.readThreadResponse(liveThread.threadId);\n\t\tawait this.options.emit(\n\t\t\tliveThread.threadId,\n\t\t\t{\n\t\t\t\ttype: \"server_notification\",\n\t\t\t\tnotification: {\n\t\t\t\t\tmethod: \"thread/started\",\n\t\t\t\t\tparams: { thread: response.thread },\n\t\t\t\t},\n\t\t\t},\n\t\t\tcontext,\n\t\t);\n\t\treturn response;\n\t}\n\n\tasync threadResume(\n\t\tparams: ThreadResumeParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadResumeResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tconst { history, response } = await this.readThreadResponseWithHistory(threadId);\n\t\tconst replay = thread_token_usage_updated_notification_from_rollout_items({\n\t\t\trolloutItems: history.items,\n\t\t\tthread: response.thread,\n\t\t\tthreadId,\n\t\t});\n\t\tif (replay) {\n\t\t\tawait this.options.emit(threadId, {\n\t\t\t\tnotification: replay,\n\t\t\t\ttype: \"server_notification\",\n\t\t\t}, context);\n\t\t}\n\t\treturn response;\n\t}\n\n\tasync threadCompactStart(\n\t\tparams: ThreadCompactStartParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadCompactStartResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tlet runtimeSession = this.options.sessions.get(threadId);\n\t\tif (runtimeSession?.session.activeTurn) {\n\t\t\tthrow jsonRpcError(\"Wait for the active turn to finish before compacting.\", -32014, 409);\n\t\t}\n\t\tconst submission: Submission = {\n\t\t\tid: `compact-${defaultId()}`,\n\t\t\top: { type: \"compact\" },\n\t\t};\n\t\tif (!runtimeSession) {\n\t\t\tconst session = await this.options.createSession(threadId, params, context, submission);\n\t\t\truntimeSession = {\n\t\t\t\tabortController: null,\n\t\t\t\trunPromise: null,\n\t\t\t\tsession,\n\t\t\t};\n\t\t\tthis.options.sessions.set(threadId, runtimeSession);\n\t\t}\n\t\tawait this.options.taskRunner.startCompactTask({\n\t\t\tcontext,\n\t\t\tparams,\n\t\t\truntimeSession,\n\t\t\tsubmission,\n\t\t\tthreadId,\n\t\t});\n\t\treturn {};\n\t}\n\n\tasync threadList(params: ThreadListParams): Promise<ThreadListResponse> {\n\t\tconst pageSize = Math.max(\n\t\t\t1,\n\t\t\tMath.min(params.limit ?? THREAD_LIST_DEFAULT_LIMIT, THREAD_LIST_MAX_LIMIT),\n\t\t);\n\t\tconst page = await this.options.store.listThreads({\n\t\t\tallowed_sources: params.sourceKinds?.length ? params.sourceKinds : [],\n\t\t\tarchived: params.archived ?? false,\n\t\t\tcursor: params.cursor ?? null,\n\t\t\tcwd_filters: cwdFilters(params.cwd),\n\t\t\tmodel_providers: params.modelProviders ?? null,\n\t\t\tpage_size: pageSize,\n\t\t\tsearch_term: params.searchTerm ?? null,\n\t\t\tsort_direction:\n\t\t\t\tparams.sortDirection === \"asc\"\n\t\t\t\t\t? StoreSortDirection.Asc\n\t\t\t\t\t: StoreSortDirection.Desc,\n\t\t\tsort_key:\n\t\t\t\tparams.sortKey === \"updated_at\"\n\t\t\t\t\t? StoreThreadSortKey.UpdatedAt\n\t\t\t\t\t: StoreThreadSortKey.CreatedAt,\n\t\t\tuse_state_db_only: params.useStateDbOnly ?? false,\n\t\t});\n\t\treturn {\n\t\t\tbackwardsCursor: null,\n\t\t\tdata: page.items.map((thread) =>\n\t\t\t\tthreadHistoryToAppServerThread({\n\t\t\t\t\thistory: { items: [], thread_id: thread.thread_id },\n\t\t\t\t\tthread,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tnextCursor: page.next_cursor ?? null,\n\t\t};\n\t}\n\n\tasync threadRead(params: ThreadReadParams): Promise<ThreadReadResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tconst storedThread = await this.options.store.readThread({\n\t\t\tthread_id: threadId,\n\t\t\tinclude_archived: true,\n\t\t\tinclude_history: params.includeTurns,\n\t\t});\n\t\tconst history = params.includeTurns\n\t\t\t? storedThread.history ??\n\t\t\t\t(await this.options.store.loadHistory({\n\t\t\t\t\tthread_id: threadId,\n\t\t\t\t\tinclude_archived: true,\n\t\t\t\t}))\n\t\t\t: { items: [], thread_id: threadId };\n\t\treturn {\n\t\t\tthread: threadHistoryToAppServerThread({\n\t\t\t\thistory,\n\t\t\t\tthread: storedThread,\n\t\t\t}),\n\t\t};\n\t}\n\n\tasync threadNameSet(\n\t\tparams: ThreadSetNameParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadSetNameResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tconst name = normalizeThreadName(params.name);\n\t\tif (!name) {\n\t\t\tjsonRpcError(\"thread name must not be empty\", -32600, 400);\n\t\t}\n\t\tawait this.options.store.updateThreadMetadata({\n\t\t\tthread_id: threadId,\n\t\t\tinclude_archived: false,\n\t\t\tpatch: { name },\n\t\t});\n\t\tawait this.options.emit(\n\t\t\tthreadId,\n\t\t\t{\n\t\t\t\ttype: \"server_notification\",\n\t\t\t\tnotification: {\n\t\t\t\t\tmethod: \"thread/name/updated\",\n\t\t\t\t\tparams: { threadId, threadName: name },\n\t\t\t\t},\n\t\t\t},\n\t\t\tcontext,\n\t\t);\n\t\treturn {};\n\t}\n\n\tasync threadArchive(\n\t\tparams: ThreadArchiveParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadArchiveResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tawait this.options.store.archiveThread({ thread_id: threadId });\n\t\tawait this.options.emit(\n\t\t\tthreadId,\n\t\t\t{\n\t\t\t\ttype: \"server_notification\",\n\t\t\t\tnotification: {\n\t\t\t\t\tmethod: \"thread/archived\",\n\t\t\t\t\tparams: { threadId },\n\t\t\t\t},\n\t\t\t},\n\t\t\tcontext,\n\t\t);\n\t\treturn {};\n\t}\n\n\tasync threadUnarchive(\n\t\tparams: ThreadUnarchiveParams,\n\t\tcontext?: Context,\n\t): Promise<ThreadUnarchiveResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tconst storedThread = await this.options.store.unarchiveThread({\n\t\t\tthread_id: threadId,\n\t\t});\n\t\tawait this.options.emit(\n\t\t\tthreadId,\n\t\t\t{\n\t\t\t\ttype: \"server_notification\",\n\t\t\t\tnotification: {\n\t\t\t\t\tmethod: \"thread/unarchived\",\n\t\t\t\t\tparams: { threadId },\n\t\t\t\t},\n\t\t\t},\n\t\t\tcontext,\n\t\t);\n\t\treturn {\n\t\t\tthread: threadHistoryToAppServerThread({\n\t\t\t\thistory: { items: [], thread_id: threadId },\n\t\t\t\tthread: storedThread,\n\t\t\t}),\n\t\t};\n\t}\n\n\tasync threadMetadataUpdate(\n\t\tparams: ThreadMetadataUpdateParams,\n\t): Promise<ThreadMetadataUpdateResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tif (\n\t\t\t!params.gitInfo ||\n\t\t\t(params.gitInfo.sha === undefined &&\n\t\t\t\tparams.gitInfo.branch === undefined &&\n\t\t\t\tparams.gitInfo.originUrl === undefined)\n\t\t) {\n\t\t\tjsonRpcError(\"gitInfo must include at least one field\", -32600, 400);\n\t\t}\n\t\tconst storedThread = await this.options.store.updateThreadMetadata({\n\t\t\tthread_id: threadId,\n\t\t\tinclude_archived: true,\n\t\t\tpatch: {\n\t\t\t\tgit_info: {\n\t\t\t\t\tbranch: normalizeOptionalGitField(params.gitInfo.branch, \"gitInfo.branch\"),\n\t\t\t\t\torigin_url: normalizeOptionalGitField(\n\t\t\t\t\t\tparams.gitInfo.originUrl,\n\t\t\t\t\t\t\"gitInfo.originUrl\",\n\t\t\t\t\t),\n\t\t\t\t\tsha: normalizeOptionalGitField(params.gitInfo.sha, \"gitInfo.sha\"),\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\treturn {\n\t\t\tthread: threadHistoryToAppServerThread({\n\t\t\t\thistory: { items: [], thread_id: threadId },\n\t\t\t\tthread: storedThread,\n\t\t\t}),\n\t\t};\n\t}\n\n\tprivate async readThreadResponse(\n\t\tthreadId: ThreadId,\n\t): Promise<ThreadStartResponse> {\n\t\treturn (await this.readThreadResponseWithHistory(threadId)).response;\n\t}\n\n\tprivate async readThreadResponseWithHistory(\n\t\tthreadId: ThreadId,\n\t): Promise<{\n\t\thistory: StoredThreadHistory;\n\t\tresponse: ThreadStartResponse;\n\t\tthread: StoredThread;\n\t}> {\n\t\tconst thread = await this.options.store.readThread({\n\t\t\tthread_id: threadId,\n\t\t\tinclude_archived: false,\n\t\t\tinclude_history: false,\n\t\t});\n\t\tconst history = await this.options.store.loadHistory({\n\t\t\tthread_id: threadId,\n\t\t\tinclude_archived: false,\n\t\t});\n\t\treturn {\n\t\t\thistory,\n\t\t\tresponse: buildThreadResumeResponseFromHistory({ history, thread }),\n\t\t\tthread,\n\t\t};\n\t}\n\n\tprivate async createThreadParams(\n\t\tparams: ThreadStartParams,\n\t\tcontext?: Context,\n\t): Promise<CreateThreadParams> {\n\t\tconst threadId = threadIdFromStartParams(params);\n\t\tif (this.options.buildCreateThreadParams) {\n\t\t\treturn this.options.buildCreateThreadParams({ context, params, threadId });\n\t\t}\n\t\tconst dynamicTools =\n\t\t\t(await this.options.resolveDynamicTools?.({ context, params, threadId })) ?? [];\n\t\treturn {\n\t\t\tbase_instructions: {\n\t\t\t\ttext: params.baseInstructions ?? BaseInstructions.default().text,\n\t\t\t},\n\t\t\tdynamic_tools: dynamicTools,\n\t\t\tevent_persistence_mode: ThreadEventPersistenceMode.Limited,\n\t\t\tmetadata: {\n\t\t\t\tcwd: params.cwd ?? \"/\",\n\t\t\t\tmemory_mode: ThreadMemoryMode.Disabled,\n\t\t\t\tmodel: params.model ?? \"gpt-5.5\",\n\t\t\t\tmodel_provider: params.modelProvider ?? \"openai\",\n\t\t\t},\n\t\t\tsource: \"appServer\",\n\t\t\tthread_id: threadId,\n\t\t\tthread_source:\n\t\t\t\ttypeof params.threadSource === \"string\" ? params.threadSource : null,\n\t\t};\n\t}\n\n\tprivate async ensureLiveThread(\n\t\tparams: ThreadStartParams,\n\t\tcontext?: Context,\n\t): Promise<LiveThread> {\n\t\tconst createParams = await this.createThreadParams(params, context);\n\t\tvalidateDynamicToolSpecs(createParams.dynamic_tools);\n\t\ttry {\n\t\t\tawait this.options.store.readThread({\n\t\t\t\tthread_id: createParams.thread_id,\n\t\t\t\tinclude_archived: false,\n\t\t\t\tinclude_history: false,\n\t\t\t});\n\t\t\treturn LiveThread.resume(this.options.store, {\n\t\t\t\tthread_id: createParams.thread_id,\n\t\t\t\tinclude_archived: false,\n\t\t\t\tmetadata: createParams.metadata,\n\t\t\t\tevent_persistence_mode: createParams.event_persistence_mode,\n\t\t\t});\n\t\t} catch {\n\t\t\treturn LiveThread.create(this.options.store, createParams);\n\t\t}\n\t}\n}\n\nfunction validateDynamicToolSpecs(tools: readonly DynamicToolSpec[]): void {\n\tfor (const tool of tools) {\n\t\tif (tool.defer_loading && !tool.namespace) {\n\t\t\tjsonRpcError(\n\t\t\t\t`Dynamic tool ${tool.name} uses defer_loading and must include a namespace.`,\n\t\t\t\t-32600,\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\t\tconst invalidName = invalidResponsesApiToolName(tool.name)\n\t\t\t? tool.name\n\t\t\t: tool.namespace && invalidResponsesApiToolName(tool.namespace)\n\t\t\t\t? tool.namespace\n\t\t\t\t: null;\n\t\tif (invalidName) {\n\t\t\tjsonRpcError(\n\t\t\t\t`Dynamic tool ${invalidName} is not supported by the Responses API. Tool names and namespaces may only contain letters, numbers, underscores, and hyphens.`,\n\t\t\t\t-32600,\n\t\t\t\t400,\n\t\t\t);\n\t\t}\n\t}\n}\n\nfunction invalidResponsesApiToolName(value: string): boolean {\n\treturn !/^[A-Za-z0-9_-]+$/.test(value);\n}\n\nfunction cwdFilters(value: ThreadListParams[\"cwd\"]): string[] | null {\n\tif (typeof value === \"string\") {\n\t\treturn [value];\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value;\n\t}\n\treturn null;\n}\n\nfunction normalizeThreadName(value: string): string | null {\n\tconst name = value.trim().replace(/\\s+/gu, \" \");\n\treturn name ? name : null;\n}\n\nfunction normalizeOptionalGitField(\n\tvalue: string | null | undefined,\n\tfield: string,\n): string | null | undefined {\n\tif (value === undefined || value === null) {\n\t\treturn value;\n\t}\n\tconst trimmed = value.trim();\n\tif (!trimmed) {\n\t\tjsonRpcError(`${field} must not be empty`, -32600, 400);\n\t}\n\treturn trimmed;\n}\n","import {\n\tSteerInputError,\n\tasThreadId,\n\ttype Submission,\n\ttype ThreadId,\n} from \"../../../core/src\";\nimport { normalizeCollaborationMode } from \"../../../core/src/collaboration-mode-presets\";\nimport type {\n\tTurnInterruptParams,\n\tTurnInterruptResponse,\n\tTurnStartParams,\n\tTurnStartResponse,\n\tTurnSteerParams,\n\tTurnSteerResponse,\n} from \"../../../app-server-protocol/schema/typescript/v2\";\nimport type { CodexSessionTaskRunner } from \"../session_task_runner\";\nimport {\n\tappServerUserInputToCoreUserInput,\n\tapprovalPolicyString,\n\tdefaultId,\n\tjsonRpcError,\n\tsteerErrorCode,\n\tvalueOrNull,\n\ttype ProcessorCreateSession,\n\ttype RuntimeSession,\n\ttype TurnStartParamsWithClientMessageId,\n\ttype TurnStartParamsWithCollaborationMode,\n} from \"./common\";\n\nexport type TurnRequestProcessorOptions<Context> = {\n\tcreateSession: ProcessorCreateSession<Context>;\n\tonRuntimeError?: (error: unknown, context: { context?: Context; threadId?: ThreadId }) => void;\n\tsessions: Map<ThreadId, RuntimeSession>;\n\ttaskRunner: CodexSessionTaskRunner<Context>;\n};\n\nexport class TurnRequestProcessor<Context> {\n\tconstructor(private readonly options: TurnRequestProcessorOptions<Context>) {}\n\n\tasync turnStart(\n\t\tparams: TurnStartParams,\n\t\tcontext?: Context,\n\t): Promise<TurnStartResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tconst input = params.input.map(appServerUserInputToCoreUserInput);\n\t\tconst collaborationModeInput =\n\t\t\t(params as TurnStartParamsWithCollaborationMode).collaborationMode ??\n\t\t\t(params as TurnStartParamsWithCollaborationMode).collaboration_mode;\n\t\tconst collaborationMode = collaborationModeInput\n\t\t\t? normalizeCollaborationMode({\n\t\t\t\t\tcollaborationMode: collaborationModeInput,\n\t\t\t\t\tmodel: valueOrNull(params.model) ?? \"gpt-5.5\",\n\t\t\t\t\treasoningEffort: valueOrNull(params.effort) ?? null,\n\t\t\t\t})\n\t\t\t: undefined;\n\t\tconst submission: Submission = {\n\t\t\tid:\n\t\t\t\t(params as TurnStartParamsWithClientMessageId).clientMessageId ??\n\t\t\t\tdefaultId(),\n\t\t\top: {\n\t\t\t\ttype: \"user_input_with_turn_context\",\n\t\t\t\titems: input,\n\t\t\t\tcwd: valueOrNull(params.cwd) ?? undefined,\n\t\t\t\tapproval_policy: approvalPolicyString(params.approvalPolicy) ?? undefined,\n\t\t\t\tapprovals_reviewer: valueOrNull(params.approvalsReviewer) ?? undefined,\n\t\t\t\tsandbox_policy: valueOrNull(params.sandboxPolicy) ?? undefined,\n\t\t\t\tmodel: valueOrNull(params.model) ?? undefined,\n\t\t\t\teffort: valueOrNull(params.effort) ?? undefined,\n\t\t\t\tsummary: valueOrNull(params.summary) ?? undefined,\n\t\t\t\tservice_tier: valueOrNull(params.serviceTier) ?? undefined,\n\t\t\t\tcollaboration_mode: collaborationMode,\n\t\t\t\tpersonality: valueOrNull(params.personality) ?? undefined,\n\t\t\t\tfinal_output_json_schema: valueOrNull(params.outputSchema) ?? undefined,\n\t\t\t},\n\t\t};\n\t\tconst runtimeSession = await this.sessionForTurn(threadId, params, submission, context);\n\t\tif (runtimeSession.session.activeTurn) {\n\t\t\tthrow jsonRpcError(\"A Codex turn is already active for this thread.\", -32011, 409);\n\t\t}\n\t\tconst turn = await this.options.taskRunner.startRegularTask({\n\t\t\tcontext,\n\t\t\titems: input,\n\t\t\tparams,\n\t\t\truntimeSession,\n\t\t\tsubmission,\n\t\t\tthreadId,\n\t\t});\n\t\treturn {\n\t\t\tturn: {\n\t\t\t\tid: turn.sub_id,\n\t\t\t\titems: [],\n\t\t\t\titemsView: \"notLoaded\",\n\t\t\t\tstatus: \"inProgress\",\n\t\t\t\terror: null,\n\t\t\t\tstartedAt: Math.floor(Date.now() / 1000),\n\t\t\t\tcompletedAt: null,\n\t\t\t\tdurationMs: null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync turnSteer(\n\t\tparams: TurnSteerParams,\n\t\tcontext?: Context,\n\t): Promise<TurnSteerResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tconst runtimeSession = this.options.sessions.get(threadId);\n\t\tif (!runtimeSession) {\n\t\t\tthrow jsonRpcError(\"No active Codex turn is available for steering.\", -32012, 409);\n\t\t}\n\t\ttry {\n\t\t\tconst turnId = await runtimeSession.session.steer_input(\n\t\t\t\tparams.input.map(appServerUserInputToCoreUserInput),\n\t\t\t\tparams.expectedTurnId,\n\t\t\t);\n\t\t\treturn { turnId };\n\t\t} catch (error) {\n\t\t\tif (error instanceof SteerInputError) {\n\t\t\t\tthrow jsonRpcError(error.message, steerErrorCode(error.kind), 409);\n\t\t\t}\n\t\t\tthis.options.onRuntimeError?.(error, { context, threadId });\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tasync turnInterrupt(params: TurnInterruptParams): Promise<TurnInterruptResponse> {\n\t\tconst threadId = asThreadId(params.threadId);\n\t\tconst runtimeSession = this.options.sessions.get(threadId);\n\t\tif (!runtimeSession?.session.activeTurn) {\n\t\t\treturn {};\n\t\t}\n\t\tconst activeTask = runtimeSession.session.activeTurn.firstTask();\n\t\tif (activeTask && activeTask.sub_id !== params.turnId) {\n\t\t\tthrow jsonRpcError(\n\t\t\t\t`Expected active turn ${params.turnId}, but current active turn is ${activeTask.sub_id}.`,\n\t\t\t\t-32013,\n\t\t\t\t409,\n\t\t\t);\n\t\t}\n\t\truntimeSession.abortController?.abort();\n\t\tawait runtimeSession.session.abortActiveTurn(\"interrupted\");\n\t\treturn {};\n\t}\n\n\tprivate async sessionForTurn(\n\t\tthreadId: ThreadId,\n\t\tparams: TurnStartParams,\n\t\tsubmission: Submission,\n\t\tcontext?: Context,\n\t): Promise<RuntimeSession> {\n\t\tconst existing = this.options.sessions.get(threadId);\n\t\tif (existing) {\n\t\t\treturn existing;\n\t\t}\n\t\tconst session = await this.options.createSession(threadId, params, context, submission);\n\t\tconst runtimeSession: RuntimeSession = {\n\t\t\tabortController: null,\n\t\t\trunPromise: null,\n\t\t\tsession,\n\t\t};\n\t\tthis.options.sessions.set(threadId, runtimeSession);\n\t\treturn runtimeSession;\n\t}\n}\n","import type { DynamicToolCallResponse } from \"../../app-server-protocol/schema/typescript/v2\";\nimport type {\n\tDynamicToolCallOutputContentItem as CoreDynamicToolCallOutputContentItem,\n\tDynamicToolResponse as CoreDynamicToolResponse,\n} from \"../../core/src/protocol/dynamic_tools\";\n\nexport function coreDynamicToolResponseFromAppServerResponse(\n\tvalue: unknown,\n): CoreDynamicToolResponse {\n\tconst response = decodeDynamicToolCallResponse(value);\n\treturn {\n\t\tcontent_items: response.contentItems.map(coreDynamicToolCallOutputContentItem),\n\t\tsuccess: response.success,\n\t};\n}\n\nexport function decodeDynamicToolCallResponse(\n\tvalue: unknown,\n): DynamicToolCallResponse {\n\tif (!isDynamicToolCallResponse(value)) {\n\t\treturn fallbackDynamicToolCallResponse(\"dynamic tool response was invalid\");\n\t}\n\treturn value;\n}\n\nexport function fallbackDynamicToolCallResponse(\n\tmessage: string,\n): DynamicToolCallResponse {\n\treturn {\n\t\tcontentItems: [{ text: message, type: \"inputText\" }],\n\t\tsuccess: false,\n\t};\n}\n\nfunction coreDynamicToolCallOutputContentItem(\n\titem: DynamicToolCallResponse[\"contentItems\"][number],\n): CoreDynamicToolCallOutputContentItem {\n\tswitch (item.type) {\n\t\tcase \"inputText\":\n\t\t\treturn { text: item.text, type: \"inputText\" };\n\t\tcase \"inputImage\":\n\t\t\treturn { imageUrl: item.imageUrl, type: \"inputImage\" };\n\t}\n}\n\nfunction isDynamicToolCallResponse(\n\tvalue: unknown,\n): value is DynamicToolCallResponse {\n\tif (typeof value !== \"object\" || value === null) {\n\t\treturn false;\n\t}\n\tconst candidate = value as DynamicToolCallResponse;\n\treturn (\n\t\ttypeof candidate.success === \"boolean\" &&\n\t\tArray.isArray(candidate.contentItems) &&\n\t\tcandidate.contentItems.every(isDynamicToolCallOutputContentItem)\n\t);\n}\n\nfunction isDynamicToolCallOutputContentItem(\n\tvalue: unknown,\n): value is DynamicToolCallResponse[\"contentItems\"][number] {\n\tif (typeof value !== \"object\" || value === null) {\n\t\treturn false;\n\t}\n\tconst item = value as DynamicToolCallResponse[\"contentItems\"][number];\n\tif (item.type === \"inputText\") {\n\t\treturn typeof item.text === \"string\";\n\t}\n\tif (item.type === \"inputImage\") {\n\t\treturn typeof item.imageUrl === \"string\";\n\t}\n\treturn false;\n}\n","import type {\n\tRequestId,\n\tServerRequest,\n} from \"../../app-server-protocol/schema/typescript\";\nimport type {\n\tDynamicToolCallResponse,\n\tMcpServerElicitationRequestResponse,\n\tPermissionsRequestApprovalResponse,\n\tToolRequestUserInputResponse,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport type { Submission } from \"../../core/src/protocol\";\nimport { coreDynamicToolResponseFromAppServerResponse } from \"./dynamic_tools\";\nimport type { JSONRPCErrorError } from \"../../app-server-client/src/lib\";\n\nexport type ServerRequestResponseTarget =\n\t| { responseId: string; type: \"user_input\" }\n\t| { callId: string; type: \"request_permissions\" }\n\t| { callId: string; type: \"dynamic_tool\" }\n\t| { requestId: string | number; serverName: string; type: \"mcp_elicitation\" };\n\nexport function submissionFromServerRequestResult(input: {\n\trequest: ServerRequest | null;\n\trequestId: RequestId;\n\tresult: unknown;\n\ttarget?: ServerRequestResponseTarget | null;\n}): Submission {\n\tconst target = input.target ?? targetFromServerRequest(input.request);\n\tconst request = input.request;\n\tif (isSubmissionOp(input.result)) {\n\t\tthrow unsupportedServerRequestResponse(request);\n\t}\n\tif (target?.type === \"request_permissions\") {\n\t\treturn {\n\t\t\tid: `server-request-response-${String(input.requestId)}`,\n\t\t\top: {\n\t\t\t\tid: target.callId,\n\t\t\t\tresponse: corePermissionsResponse(\n\t\t\t\t\tinput.result as PermissionsRequestApprovalResponse,\n\t\t\t\t),\n\t\t\t\ttype: \"request_permissions_response\",\n\t\t\t},\n\t\t};\n\t}\n\tif (target?.type === \"dynamic_tool\") {\n\t\treturn {\n\t\t\tid: `server-request-response-${String(input.requestId)}`,\n\t\t\top: {\n\t\t\t\tid: target.callId,\n\t\t\t\tresponse: coreDynamicToolResponse(input.result as DynamicToolCallResponse),\n\t\t\t\ttype: \"dynamic_tool_response\",\n\t\t\t},\n\t\t};\n\t}\n\tif (target?.type === \"mcp_elicitation\") {\n\t\treturn {\n\t\t\tid: `server-request-response-${String(input.requestId)}`,\n\t\t\top: {\n\t\t\t\tid: target.requestId,\n\t\t\t\tresponse: coreMcpElicitationResponse(\n\t\t\t\t\tinput.result as McpServerElicitationRequestResponse,\n\t\t\t\t),\n\t\t\t\tserver_name: target.serverName,\n\t\t\t\ttype: \"mcp_server_elicitation_response\",\n\t\t\t},\n\t\t};\n\t}\n\tif (target?.type === \"user_input\") {\n\t\treturn {\n\t\t\tid: `server-request-response-${String(input.requestId)}`,\n\t\t\top: {\n\t\t\t\tid: target.responseId,\n\t\t\t\tresponse: coreToolRequestUserInputResponse(\n\t\t\t\t\tinput.result as ToolRequestUserInputResponse,\n\t\t\t\t),\n\t\t\t\ttype: \"user_input_answer\",\n\t\t\t},\n\t\t};\n\t}\n\tthrow unsupportedServerRequestResponse(request);\n}\n\nfunction coreDynamicToolResponse(response: DynamicToolCallResponse) {\n\treturn coreDynamicToolResponseFromAppServerResponse(response);\n}\n\nfunction corePermissionsResponse(response: PermissionsRequestApprovalResponse) {\n\treturn {\n\t\tpermissions: response.permissions as never,\n\t\tscope: response.scope as never,\n\t\tstrict_auto_review: response.strictAutoReview,\n\t};\n}\n\nfunction coreMcpElicitationResponse(\n\tresponse: McpServerElicitationRequestResponse,\n) {\n\treturn {\n\t\taction: response.action,\n\t\tcontent: response.content ?? undefined,\n\t\tmeta: response._meta ?? undefined,\n\t};\n}\n\nexport function submissionFromServerRequestError(input: {\n\terror: JSONRPCErrorError;\n\trequest: ServerRequest | null;\n\trequestId: RequestId;\n\ttarget?: ServerRequestResponseTarget | null;\n}): Submission {\n\tconst target = input.target ?? targetFromServerRequest(input.request);\n\tconst requestId = String(input.requestId);\n\tif (target?.type === \"dynamic_tool\") {\n\t\treturn {\n\t\t\tid: `server-request-rejection-${requestId}`,\n\t\t\top: {\n\t\t\t\tid: target.callId,\n\t\t\t\tresponse: {\n\t\t\t\t\tcontent_items: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: input.error.message,\n\t\t\t\t\t\t\ttype: \"inputText\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tsuccess: false,\n\t\t\t\t},\n\t\t\t\ttype: \"dynamic_tool_response\",\n\t\t\t},\n\t\t};\n\t}\n\tif (target?.type === \"request_permissions\") {\n\t\treturn {\n\t\t\tid: `server-request-rejection-${requestId}`,\n\t\t\top: {\n\t\t\t\tid: target.callId,\n\t\t\t\tresponse: {\n\t\t\t\t\tpermissions: {},\n\t\t\t\t},\n\t\t\t\ttype: \"request_permissions_response\",\n\t\t\t},\n\t\t};\n\t}\n\tif (target?.type === \"user_input\") {\n\t\treturn {\n\t\t\tid: `server-request-rejection-${requestId}`,\n\t\t\top: {\n\t\t\t\tid: target.responseId,\n\t\t\t\tresponse: { answers: {} },\n\t\t\t\ttype: \"user_input_answer\",\n\t\t\t},\n\t\t};\n\t}\n\tif (target?.type === \"mcp_elicitation\") {\n\t\treturn {\n\t\t\tid: `server-request-rejection-${requestId}`,\n\t\t\top: {\n\t\t\t\tid: target.requestId,\n\t\t\t\tresponse: {\n\t\t\t\t\taction: \"cancel\",\n\t\t\t\t\tcontent: undefined,\n\t\t\t\t\tmeta: undefined,\n\t\t\t\t},\n\t\t\t\tserver_name: target.serverName,\n\t\t\t\ttype: \"mcp_server_elicitation_response\",\n\t\t\t},\n\t\t};\n\t}\n\tthrow unsupportedServerRequestResponse(input.request);\n}\n\nfunction coreToolRequestUserInputResponse(\n\tresponse: ToolRequestUserInputResponse,\n) {\n\tconst answers: Record<string, { answers: string[] }> = {};\n\tfor (const [key, value] of Object.entries(response.answers)) {\n\t\tif (value) {\n\t\t\tanswers[key] = value;\n\t\t}\n\t}\n\treturn { answers };\n}\n\nexport function isServerRequestResponseSubmission(\n\tsubmission: Submission,\n): boolean {\n\treturn (\n\t\tsubmission.op.type === \"dynamic_tool_response\" ||\n\t\tsubmission.op.type === \"mcp_server_elicitation_response\" ||\n\t\tsubmission.op.type === \"request_permissions_response\" ||\n\t\tsubmission.op.type === \"user_input_answer\"\n\t);\n}\n\nfunction isSubmissionOp(value: unknown): value is Submission[\"op\"] {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t\"type\" in value &&\n\t\ttypeof (value as { type?: unknown }).type === \"string\" &&\n\t\tisServerRequestResponseSubmission({ id: \"response\", op: value as Submission[\"op\"] })\n\t);\n}\n\nfunction targetFromServerRequest(\n\trequest: ServerRequest | null,\n): ServerRequestResponseTarget | null {\n\tif (!request) {\n\t\treturn null;\n\t}\n\tswitch (request.method) {\n\t\tcase \"item/tool/requestUserInput\":\n\t\t\treturn {\n\t\t\t\ttype: \"user_input\",\n\t\t\t\tresponseId: request.params.turnId,\n\t\t\t};\n\t\tcase \"item/permissions/requestApproval\":\n\t\t\treturn {\n\t\t\t\ttype: \"request_permissions\",\n\t\t\t\tcallId: request.params.itemId,\n\t\t\t};\n\t\t\tcase \"item/tool/call\":\n\t\t\t\treturn { type: \"dynamic_tool\", callId: request.params.callId };\n\t\tcase \"mcpServer/elicitation/request\":\n\t\t\treturn \"elicitationId\" in request.params\n\t\t\t\t? {\n\t\t\t\t\t\ttype: \"mcp_elicitation\",\n\t\t\t\t\t\tserverName: request.params.serverName,\n\t\t\t\t\t\trequestId: request.params.elicitationId,\n\t\t\t\t\t}\n\t\t\t\t: null;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nfunction unsupportedServerRequestResponse(request: ServerRequest | null): never {\n\tthrow new Error(\n\t\t`Unsupported Codex server-request response: ${request?.method ?? \"unknown\"}`,\n\t);\n}\n","import {\n\tBaseInstructions,\n\tLiveThread,\n\tSession,\n\tThreadEventPersistenceMode,\n\tThreadMemoryMode,\n\tdefaultSessionConfiguration,\n\ttype Event,\n\ttype McpConnectionManager,\n\ttype SessionConfiguration,\n\ttype Submission,\n\ttype ThreadId,\n\ttype ThreadStore,\n} from \"../../core/src\";\nimport type {\n\tThreadCompactStartParams,\n\tThreadResumeParams,\n\tThreadStartParams,\n\tTurnStartParams,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport {\n\tapprovalPolicyString,\n\tvalueOrNull,\n} from \"./request_processors/common\";\n\nexport type CodexSessionRequestParams =\n\t| ThreadStartParams\n\t| ThreadResumeParams\n\t| TurnStartParams\n\t| ThreadCompactStartParams;\n\nexport type CodexSessionFactoryOptions<Context = unknown> = {\n\tbuildSessionConfiguration?: (input: {\n\t\tcontext?: Context;\n\t\tparams: CodexSessionRequestParams;\n\t\tthread: Awaited<ReturnType<ThreadStore[\"readThread\"]>>;\n\t}) => Partial<SessionConfiguration> | Promise<Partial<SessionConfiguration>>;\n\tcreateSession?: (input: {\n\t\tcontext?: Context;\n\t\teventSink: (event: Event) => void;\n\t\tparams: CodexSessionRequestParams;\n\t\tsubmission?: Submission;\n\t\tthreadId: ThreadId;\n\t}) => Session | Promise<Session>;\n\temitCoreEvent: (threadId: ThreadId, event: Event, context?: Context) => void;\n\tmcpConnectionManager?: McpConnectionManager | null;\n\tstore: ThreadStore;\n};\n\nexport class CodexSessionFactory<Context = unknown> {\n\tconstructor(private readonly options: CodexSessionFactoryOptions<Context>) {}\n\n\tcreateSession = async (input: {\n\t\tcontext?: Context;\n\t\tparams: CodexSessionRequestParams;\n\t\tsubmission?: Submission;\n\t\tthreadId: ThreadId;\n\t}): Promise<Session> => {\n\t\tconst eventSink = (event: Event) =>\n\t\t\tthis.options.emitCoreEvent(input.threadId, event, input.context);\n\t\tif (this.options.createSession) {\n\t\t\treturn this.options.createSession({ ...input, eventSink });\n\t\t}\n\t\tconst thread = await this.options.store.readThread({\n\t\t\tthread_id: input.threadId,\n\t\t\tinclude_archived: false,\n\t\t\tinclude_history: false,\n\t\t});\n\t\tconst history = await this.options.store.loadHistory({\n\t\t\tthread_id: input.threadId,\n\t\t\tinclude_archived: false,\n\t\t});\n\t\tconst overrides = await this.options.buildSessionConfiguration?.({\n\t\t\tcontext: input.context,\n\t\t\tparams: input.params,\n\t\t\tthread,\n\t\t});\n\t\tconst configuration = defaultSessionConfiguration({\n\t\t\tapproval_policy:\n\t\t\t\t\"approvalPolicy\" in input.params\n\t\t\t\t\t? approvalPolicyString(input.params.approvalPolicy) ?? \"never\"\n\t\t\t\t\t: \"never\",\n\t\t\tapprovals_reviewer:\n\t\t\t\t\"approvalsReviewer\" in input.params\n\t\t\t\t\t? valueOrNull(input.params.approvalsReviewer) ?? \"user\"\n\t\t\t\t\t: \"user\",\n\t\t\tbase_instructions: { text: \"\" },\n\t\t\tcwd:\n\t\t\t\t\"cwd\" in input.params\n\t\t\t\t\t? valueOrNull(input.params.cwd) ?? thread.cwd\n\t\t\t\t\t: thread.cwd,\n\t\t\tdeveloper_instructions:\n\t\t\t\t\"developerInstructions\" in input.params\n\t\t\t\t\t? (input.params.developerInstructions ?? null)\n\t\t\t\t\t: null,\n\t\t\tmodel:\n\t\t\t\t\"model\" in input.params\n\t\t\t\t\t? valueOrNull(input.params.model) ?? thread.model ?? \"gpt-5.5\"\n\t\t\t\t\t: thread.model ?? \"gpt-5.5\",\n\t\t\tprovider:\n\t\t\t\t\"modelProvider\" in input.params\n\t\t\t\t\t? (valueOrNull(input.params.modelProvider) ?? thread.model_provider)\n\t\t\t\t\t: thread.model_provider,\n\t\t\treasoning_effort: \"effort\" in input.params ? input.params.effort ?? null : null,\n\t\t\tservice_tier:\n\t\t\t\t\"serviceTier\" in input.params\n\t\t\t\t\t? valueOrNull(input.params.serviceTier) ?? null\n\t\t\t\t\t: null,\n\t\t\tsession_source: \"appServer\",\n\t\t\t...(overrides ?? {}),\n\t\t});\n\t\tif (!configuration.base_instructions.text) {\n\t\t\tconfiguration.base_instructions = {\n\t\t\t\ttext:\n\t\t\t\t\t\"baseInstructions\" in input.params && input.params.baseInstructions\n\t\t\t\t\t\t? input.params.baseInstructions\n\t\t\t\t\t\t: BaseInstructions.default().text,\n\t\t\t};\n\t\t}\n\t\treturn new Session({\n\t\t\tthreadId: input.threadId,\n\t\t\tconfiguration,\n\t\t\tliveThread: await LiveThread.resume(this.options.store, {\n\t\t\t\tthread_id: input.threadId,\n\t\t\t\tinclude_archived: false,\n\t\t\t\tmetadata: {\n\t\t\t\t\tcwd: thread.cwd,\n\t\t\t\t\tmemory_mode: ThreadMemoryMode.Disabled,\n\t\t\t\t\tmodel_provider: thread.model_provider,\n\t\t\t\t},\n\t\t\t\tevent_persistence_mode: ThreadEventPersistenceMode.Limited,\n\t\t\t}),\n\t\t\tinitialHistory: history.items,\n\t\t\trolloutPath: thread.rollout_path ?? null,\n\t\t\tforkedFromId: thread.forked_from_id ?? null,\n\t\t\tthreadName: thread.name ?? null,\n\t\t\tthreadSource: thread.thread_source ?? null,\n\t\t\teventSink,\n\t\t\tmcpConnectionManager: this.options.mcpConnectionManager,\n\t\t});\n\t};\n}\n","import {\n\tCompactTask,\n\tRegularTask,\n\ttype Session,\n\ttype Submission,\n\ttype ThreadId,\n\ttype ThreadStore,\n\ttype TurnContext,\n\ttype UserInput,\n} from \"../../core/src\";\nimport type { ModelClient } from \"../../core/src\";\nimport type {\n\tThreadCompactStartParams,\n\tTurnStartParams,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport { run_compact_task } from \"../../core/src/compact-task-runner\";\nimport { runTurn } from \"../../core/src/session/turn\";\nimport type { RuntimeSession } from \"./request_processors/common\";\n\nexport type CodexSessionTaskRunnerCreateModelClientInput<Context> = {\n\tcontext?: Context;\n\tsession: Session;\n\tthreadId: ThreadId;\n};\n\nexport type CodexSessionTaskRunnerOptions<Context> = {\n\tcreateModelClient: (\n\t\tinput: CodexSessionTaskRunnerCreateModelClientInput<Context>,\n\t) => ModelClient | Promise<ModelClient>;\n\tmodelClientCacheKey?: (\n\t\tinput: CodexSessionTaskRunnerCreateModelClientInput<Context>,\n\t) => string | null | undefined;\n\tonRuntimeError?: (error: unknown, context: { context?: Context; threadId?: ThreadId }) => void;\n\trunInBackground?: (\n\t\tpromise: Promise<unknown>,\n\t\tcontext: { context?: Context; threadId: ThreadId },\n\t) => void;\n\tstore: ThreadStore;\n};\n\nexport class CodexSessionTaskRunner<Context> {\n\tprivate readonly modelClients = new Map<string, ModelClient>();\n\n\tconstructor(private readonly options: CodexSessionTaskRunnerOptions<Context>) {}\n\n\tasync startRegularTask(input: {\n\t\tcontext?: Context;\n\t\titems: UserInput[];\n\t\tparams: TurnStartParams;\n\t\truntimeSession: RuntimeSession;\n\t\tsubmission: Submission;\n\t\tthreadId: ThreadId;\n\t}): Promise<TurnContext> {\n\t\tconst turn = await input.runtimeSession.session.startTurn(input.submission);\n\t\tconst history = await this.options.store.loadHistory({\n\t\t\tthread_id: input.threadId,\n\t\t\tinclude_archived: false,\n\t\t});\n\t\tconst abortController = new AbortController();\n\t\tconst modelClient = await this.modelClient({\n\t\t\tcontext: input.context,\n\t\t\tsession: input.runtimeSession.session,\n\t\t\tthreadId: input.threadId,\n\t\t});\n\t\tconst task = RegularTask.new({\n\t\t\thistory: history.items,\n\t\t\tsubmission: input.submission,\n\t\t\trun_turn: async (taskInput) => {\n\t\t\t\tconst result = await runTurn({\n\t\t\t\t\thistory: taskInput.history,\n\t\t\t\t\tmodelClient,\n\t\t\t\t\tsession: taskInput.session,\n\t\t\t\t\tsignal: taskInput.signal,\n\t\t\t\t\tsubmission: taskInput.submission,\n\t\t\t\t\tturn: taskInput.turn,\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tlast_agent_message: result.lastAgentMessage,\n\t\t\t\t\tsteps: result.steps,\n\t\t\t\t};\n\t\t\t},\n\t\t});\n\n\t\tthis.spawnTask({\n\t\t\tabortController,\n\t\t\tcontext: input.context,\n\t\t\tinput: input.items,\n\t\t\truntimeSession: input.runtimeSession,\n\t\t\ttask,\n\t\t\tthreadId: input.threadId,\n\t\t\tturn,\n\t\t});\n\t\treturn turn;\n\t}\n\n\tasync startCompactTask(input: {\n\t\tcontext?: Context;\n\t\tparams: ThreadCompactStartParams;\n\t\truntimeSession: RuntimeSession;\n\t\tsubmission: Submission;\n\t\tthreadId: ThreadId;\n\t}): Promise<TurnContext> {\n\t\tconst history = await this.options.store.loadHistory({\n\t\t\tthread_id: input.threadId,\n\t\t\tinclude_archived: false,\n\t\t});\n\t\tconst abortController = new AbortController();\n\t\tconst turn = await input.runtimeSession.session.startCompactTurn(input.submission);\n\t\tconst modelClient = await this.modelClient({\n\t\t\tcontext: input.context,\n\t\t\tsession: input.runtimeSession.session,\n\t\t\tthreadId: input.threadId,\n\t\t});\n\t\tconst task = new CompactTask({\n\t\t\thistory: history.items,\n\t\t\tsubmission: input.submission,\n\t\t\trun_compact_task: async (taskInput) => {\n\t\t\t\tconst result = await run_compact_task({\n\t\t\t\t\tmodelClient,\n\t\t\t\t\tsession: taskInput.session,\n\t\t\t\t\thistory: taskInput.history,\n\t\t\t\t\tsubmission: taskInput.submission,\n\t\t\t\t\tturn: taskInput.turn,\n\t\t\t\t\tsignal: taskInput.signal,\n\t\t\t\t\tcompleteTurn: false,\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tlast_agent_message: null,\n\t\t\t\t\tsteps: 1,\n\t\t\t\t\tmessage: result.summary,\n\t\t\t\t};\n\t\t\t},\n\t\t});\n\n\t\tthis.spawnTask({\n\t\t\tabortController,\n\t\t\tcontext: input.context,\n\t\t\tinput: [],\n\t\t\truntimeSession: input.runtimeSession,\n\t\t\ttask,\n\t\t\tthreadId: input.threadId,\n\t\t\tturn,\n\t\t});\n\t\treturn turn;\n\t}\n\n\tprivate spawnTask(input: {\n\t\tabortController: AbortController;\n\t\tcontext?: Context;\n\t\tinput: UserInput[];\n\t\truntimeSession: RuntimeSession;\n\t\ttask: CompactTask | RegularTask;\n\t\tthreadId: ThreadId;\n\t\tturn: TurnContext;\n\t}): void {\n\t\tinput.runtimeSession.abortController = input.abortController;\n\t\tinput.runtimeSession.runPromise = input.runtimeSession.session\n\t\t\t.spawn_task({\n\t\t\t\tabortController: input.abortController,\n\t\t\t\tinput: input.input,\n\t\t\t\ttask: input.task,\n\t\t\t\tturnContext: input.turn,\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthis.options.onRuntimeError?.(error, {\n\t\t\t\t\tcontext: input.context,\n\t\t\t\t\tthreadId: input.threadId,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tinput.runtimeSession.abortController = null;\n\t\t\t\tinput.runtimeSession.runPromise = null;\n\t\t\t});\n\t\tthis.options.runInBackground?.(input.runtimeSession.runPromise, {\n\t\t\tcontext: input.context,\n\t\t\tthreadId: input.threadId,\n\t\t});\n\t}\n\n\tprivate async modelClient(\n\t\tinput: CodexSessionTaskRunnerCreateModelClientInput<Context>,\n\t): Promise<ModelClient> {\n\t\tconst cacheKey = this.options.modelClientCacheKey?.(input) ?? String(input.threadId);\n\t\tconst existing = this.modelClients.get(cacheKey);\n\t\tif (existing) {\n\t\t\treturn existing;\n\t\t}\n\t\tconst created = await this.options.createModelClient(input);\n\t\tthis.modelClients.set(cacheKey, created);\n\t\treturn created;\n\t}\n}\n","import type { RequestId } from \"../../app-server-protocol/schema/typescript\";\nimport type { Turn } from \"../../app-server-protocol/schema/typescript/v2\";\nimport { appServerTurnFromCoreTurn } from \"../../app-server-protocol/src/protocol/thread-resume\";\nimport type { ThreadId } from \"../../core/src/ids\";\nimport type { EventMsg } from \"../../core/src/protocol\";\nimport { ThreadHistoryBuilder } from \"../../core/src/thread-history-builder\";\n\nexport type PendingInterruptQueue = RequestId[];\n\nexport type PendingThreadResumeRequest = {\n\tincludeTurns: boolean;\n\trequestId: RequestId;\n\tthreadId: ThreadId;\n};\n\nexport type ThreadListenerCommand =\n\t| { request: PendingThreadResumeRequest; type: \"send_thread_resume_response\" }\n\t| { requestId: RequestId; type: \"resolve_server_request\" };\n\nexport type TurnSummary = {\n\tlastError: { message: string } | null;\n\tstartedAt: number | null;\n};\n\nexport type ThreadStateTrackResult = {\n\tactiveTurn: Turn | null;\n\tterminalTurn: Turn | null;\n};\n\nexport class ThreadState {\n\tpendingInterrupts: PendingInterruptQueue = [];\n\tturnSummary: TurnSummary = { lastError: null, startedAt: null };\n\tlastTerminalTurnId: string | null = null;\n\texperimentalRawEvents = false;\n\tlistenerGeneration = 0;\n\tprivate currentTurnHistory = new ThreadHistoryBuilder();\n\tprivate listenerActive = false;\n\n\tsetListener(): number {\n\t\tthis.listenerGeneration = (this.listenerGeneration + 1) >>> 0;\n\t\tthis.listenerActive = true;\n\t\treturn this.listenerGeneration;\n\t}\n\n\tclearListener(): void {\n\t\tthis.listenerActive = false;\n\t\tthis.currentTurnHistory.reset();\n\t}\n\n\thasListener(): boolean {\n\t\treturn this.listenerActive;\n\t}\n\n\tsetExperimentalRawEvents(enabled: boolean): void {\n\t\tthis.experimentalRawEvents = enabled;\n\t}\n\n\tactiveTurnSnapshot(): Turn | null {\n\t\tconst turn = this.currentTurnHistory.active_turn_snapshot();\n\t\treturn turn ? appServerTurnFromCoreTurn(turn) : null;\n\t}\n\n\ttrackCurrentTurnEvent(eventTurnId: string, event: EventMsg): ThreadStateTrackResult {\n\t\tif (event.type === \"turn_started\") {\n\t\t\tthis.turnSummary.startedAt = event.started_at ?? null;\n\t\t}\n\t\tif (event.type === \"error\") {\n\t\t\tthis.turnSummary.lastError = { message: event.message };\n\t\t}\n\t\tthis.currentTurnHistory.handle_event(event, eventTurnId);\n\t\tif (event.type === \"turn_complete\" || event.type === \"turn_aborted\") {\n\t\t\tthis.lastTerminalTurnId = eventTurnId;\n\t\t\tconst terminalTurn =\n\t\t\t\tthis.currentTurnHistory.finish().find((turn) => turn.id === eventTurnId) ??\n\t\t\t\tnull;\n\t\t\tthis.currentTurnHistory.reset();\n\t\t\treturn {\n\t\t\t\tactiveTurn: null,\n\t\t\t\tterminalTurn: terminalTurn ? appServerTurnFromCoreTurn(terminalTurn) : null,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tactiveTurn: this.activeTurnSnapshot(),\n\t\t\tterminalTurn: null,\n\t\t};\n\t}\n}\n\nexport class ThreadStateManager {\n\tprivate readonly liveConnections = new Set<number>();\n\tprivate readonly threads = new Map<ThreadId, ThreadEntry>();\n\tprivate readonly threadIdsByConnection = new Map<number, Set<ThreadId>>();\n\n\tconnectionInitialized(connectionId: number): void {\n\t\tthis.liveConnections.add(connectionId);\n\t}\n\n\tthreadState(threadId: ThreadId): ThreadState {\n\t\tconst entry = this.threadEntry(threadId);\n\t\treturn entry.state;\n\t}\n\n\tremoveThreadState(threadId: ThreadId): void {\n\t\tconst entry = this.threads.get(threadId);\n\t\tentry?.state.clearListener();\n\t\tthis.threads.delete(threadId);\n\t\tfor (const [connectionId, threadIds] of this.threadIdsByConnection) {\n\t\t\tthreadIds.delete(threadId);\n\t\t\tif (threadIds.size === 0) {\n\t\t\t\tthis.threadIdsByConnection.delete(connectionId);\n\t\t\t}\n\t\t}\n\t}\n\n\tclearAllListeners(): void {\n\t\tfor (const entry of this.threads.values()) {\n\t\t\tentry.state.clearListener();\n\t\t}\n\t}\n\n\tsubscribedConnectionIds(threadId: ThreadId): number[] {\n\t\treturn Array.from(this.threads.get(threadId)?.connectionIds ?? []);\n\t}\n\n\ttryEnsureConnectionSubscribed(\n\t\tthreadId: ThreadId,\n\t\tconnectionId: number,\n\t\texperimentalRawEvents = false,\n\t): ThreadState | null {\n\t\tif (!this.liveConnections.has(connectionId)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst threadIds = this.threadIdsByConnection.get(connectionId);\n\t\tif (threadIds) {\n\t\t\tthreadIds.add(threadId);\n\t\t} else {\n\t\t\tthis.threadIdsByConnection.set(connectionId, new Set([threadId]));\n\t\t}\n\t\tconst entry = this.threadEntry(threadId);\n\t\tentry.connectionIds.add(connectionId);\n\t\tif (experimentalRawEvents) {\n\t\t\tentry.state.setExperimentalRawEvents(true);\n\t\t}\n\t\treturn entry.state;\n\t}\n\n\tunsubscribeConnectionFromThread(threadId: ThreadId, connectionId: number): boolean {\n\t\tconst entry = this.threads.get(threadId);\n\t\tconst threadIds = this.threadIdsByConnection.get(connectionId);\n\t\tif (!entry || !threadIds?.has(threadId)) {\n\t\t\treturn false;\n\t\t}\n\t\tentry.connectionIds.delete(connectionId);\n\t\tthreadIds.delete(threadId);\n\t\tif (threadIds.size === 0) {\n\t\t\tthis.threadIdsByConnection.delete(connectionId);\n\t\t}\n\t\treturn true;\n\t}\n\n\tremoveConnection(connectionId: number): ThreadId[] {\n\t\tthis.liveConnections.delete(connectionId);\n\t\tconst threadIds = Array.from(this.threadIdsByConnection.get(connectionId) ?? []);\n\t\tthis.threadIdsByConnection.delete(connectionId);\n\t\tconst emptyThreadIds: ThreadId[] = [];\n\t\tfor (const threadId of threadIds) {\n\t\t\tconst entry = this.threads.get(threadId);\n\t\t\tentry?.connectionIds.delete(connectionId);\n\t\t\tif (entry && entry.connectionIds.size === 0) {\n\t\t\t\temptyThreadIds.push(threadId);\n\t\t\t}\n\t\t}\n\t\treturn emptyThreadIds;\n\t}\n\n\tprivate threadEntry(threadId: ThreadId): ThreadEntry {\n\t\tconst existing = this.threads.get(threadId);\n\t\tif (existing) {\n\t\t\treturn existing;\n\t\t}\n\t\tconst entry: ThreadEntry = {\n\t\t\tconnectionIds: new Set(),\n\t\t\tstate: new ThreadState(),\n\t\t};\n\t\tthis.threads.set(threadId, entry);\n\t\treturn entry;\n\t}\n}\n\ntype ThreadEntry = {\n\tconnectionIds: Set<number>;\n\tstate: ThreadState;\n};\n","import type { EventMsg } from \"../../core/src/protocol\";\nimport {\n\teventMsgToAppServerEvents,\n\tserverRequestResolvedNotification,\n\ttype AppServerProtocolEvent,\n\ttype EventMappingContext,\n\ttype ServerRequestCoreTarget,\n} from \"../../app-server-protocol/src/protocol/event-mapping\";\n\nexport type {\n\tAppServerProtocolEvent,\n\tEventMappingContext,\n\tServerRequestCoreTarget,\n};\n\nexport function apply_bespoke_event_handling(\n\tmsg: EventMsg,\n\tcontext: EventMappingContext,\n): AppServerProtocolEvent[] {\n\treturn eventMsgToAppServerEvents(msg, context);\n}\n\nexport { serverRequestResolvedNotification };\n","import {\n\tSession,\n\tasThreadId,\n\ttype CreateThreadParams,\n\ttype DynamicToolSpec,\n\ttype Event,\n\ttype McpConnectionManager,\n\ttype SessionConfiguration,\n\ttype Submission,\n\ttype ThreadId,\n\ttype ThreadStore,\n} from \"../../core/src\";\nimport { type ModelClient } from \"../../core/src\";\nimport type {\n\tAppServerEvent,\n\tJSONRPCErrorError,\n\tResult,\n} from \"../../app-server-client/src/lib\";\nimport {\n\tOutgoingMessageSender,\n\toutgoingMessageToAppServerEvent,\n\ttype ConnectionId,\n\ttype OutgoingMessage,\n} from \"./outgoing_message\";\nimport {\n\tMcpRequestProcessor,\n\tThreadRequestProcessor,\n\tTurnRequestProcessor,\n\ttype RuntimeSession,\n} from \"./request_processors\";\nimport {\n\tisServerRequestResponseSubmission,\n\tsubmissionFromServerRequestError,\n\tsubmissionFromServerRequestResult,\n\ttype ServerRequestResponseTarget,\n} from \"./server_request_response\";\nimport { CodexSessionFactory } from \"./session_factory\";\nimport { CodexSessionTaskRunner } from \"./session_task_runner\";\nimport { ThreadStateManager } from \"./thread_state\";\nimport { RequestSerializationQueues } from \"./request_serialization\";\nimport {\n\tapply_bespoke_event_handling,\n\tserverRequestResolvedNotification,\n\ttype AppServerProtocolEvent,\n\ttype ServerRequestCoreTarget,\n} from \"./bespoke_event_handling\";\nimport type {\n\tThreadCompactStartParams,\n\tMcpServerOauthLoginParams,\n\tMcpServerOauthLoginResponse,\n\tThreadResumeParams,\n\tThreadStartParams,\n\tTurnStartParams,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport {\n\tCodexAppServerConnectionSessionState,\n\tCodexAppServerMessageProcessor,\n\ttype CodexAppServerMethodHandlers,\n} from \"./message_processor\";\nimport type {\n\tInitializeParams,\n\tInitializeResponse,\n} from \"../../app-server-protocol/schema/typescript\";\n\nexport type CodexAppServerRuntimeContext = unknown;\n\nexport type CodexAppServerEventSink<Context = CodexAppServerRuntimeContext> = (\n\tevent: AppServerEvent,\n\tcontext: {\n\t\tcontext?: Context;\n\t\tthreadId: ThreadId;\n\t},\n) => Promise<void> | void;\n\nexport type CodexAppServerOutgoingSink<Context = CodexAppServerRuntimeContext> = (\n\tmessage: OutgoingMessage,\n\tcontext: {\n\t\tconnectionIds?: ConnectionId[];\n\t\tcontext?: Context;\n\t\tthreadId?: ThreadId;\n\t},\n) => Promise<void> | void;\n\nexport type CodexAppServerRuntimeOptions<Context = CodexAppServerRuntimeContext> = {\n\tbuildCreateThreadParams?: (input: {\n\t\tcontext?: Context;\n\t\tparams: ThreadStartParams;\n\t\tthreadId: ThreadId;\n\t}) => CreateThreadParams | Promise<CreateThreadParams>;\n\tbuildSessionConfiguration?: (input: {\n\t\tcontext?: Context;\n\t\tparams: ThreadStartParams | ThreadResumeParams | TurnStartParams | ThreadCompactStartParams;\n\t\tthread: Awaited<ReturnType<ThreadStore[\"readThread\"]>>;\n\t}) => Partial<SessionConfiguration> | Promise<Partial<SessionConfiguration>>;\n\tcreateModelClient: (input: {\n\t\tcontext?: Context;\n\t\tsession: Session;\n\t\tthreadId: ThreadId;\n\t}) => ModelClient | Promise<ModelClient>;\n\tmodelClientCacheKey?: (input: {\n\t\tcontext?: Context;\n\t\tsession: Session;\n\t\tthreadId: ThreadId;\n\t}) => string | null | undefined;\n\tmcpConnectionManager?: McpConnectionManager | null;\n\tmcpServerOauthLogin?: (input: {\n\t\tcontext?: Context;\n\t\tparams: McpServerOauthLoginParams;\n\t}) => McpServerOauthLoginResponse | Promise<McpServerOauthLoginResponse>;\n\treloadMcpServers?: (input: { context?: Context }) => void | Promise<void>;\n\tcreateSession?: (input: {\n\t\tcontext?: Context;\n\t\teventSink: (event: Event) => void;\n\t\tparams: ThreadStartParams | ThreadResumeParams | TurnStartParams | ThreadCompactStartParams;\n\t\tsubmission?: Submission;\n\t\tthreadId: ThreadId;\n\t}) => Session | Promise<Session>;\n\teventSink?: CodexAppServerEventSink<Context>;\n\tonRuntimeError?: (error: unknown, context: { context?: Context; threadId?: ThreadId }) => void;\n\trunInBackground?: (promise: Promise<unknown>, context: { context?: Context; threadId: ThreadId }) => void;\n\trunConnectionBackground?: (promise: Promise<unknown>, context: { context?: Context }) => void;\n\tsendOutgoingMessage?: CodexAppServerEventSink<Context>;\n\tsendOutgoingTransportMessage?: CodexAppServerOutgoingSink<Context>;\n\tresolveDynamicTools?: (input: {\n\t\tcontext?: Context;\n\t\tparams: ThreadStartParams;\n\t\tthreadId: ThreadId;\n\t}) => DynamicToolSpec[] | Promise<DynamicToolSpec[]>;\n\tstore: ThreadStore;\n};\n\nexport type CodexAppServerRuntime<Context = CodexAppServerRuntimeContext> = {\n\tconnectionClosed(connectionId: number): Promise<void>;\n\tconnectionInitialized(connectionId: number): void;\n\tcreateMessageProcessor(input: {\n\t\tconnectionId: ConnectionId;\n\t\tinitialize?: (\n\t\t\tparams: InitializeParams,\n\t\t\tcontext?: Context,\n\t\t\tsession?: CodexAppServerConnectionSessionState,\n\t\t) => Promise<InitializeResponse>;\n\t\tinitializeResponse?: InitializeResponse | (() => InitializeResponse);\n\t\tsession?: CodexAppServerConnectionSessionState;\n\t}): CodexAppServerMessageProcessor<Context>;\n\tmethodHandlers: CodexAppServerMethodHandlers<Context>;\n\trejectServerRequest(\n\t\tparams: { error: JSONRPCErrorError; requestId: string | number; threadId: ThreadId | string },\n\t\tcontext?: Context,\n\t): Promise<void>;\n\tresolveServerRequest(\n\t\tparams: { requestId: string | number; result: Result; threadId: ThreadId | string },\n\t\tcontext?: Context,\n\t): Promise<void>;\n};\n\nexport function createCodexAppServerRuntime<Context = CodexAppServerRuntimeContext>(\n\toptions: CodexAppServerRuntimeOptions<Context>,\n): CodexAppServerRuntime<Context> {\n\tconst sessions = new Map<ThreadId, RuntimeSession>();\n\tconst serverRequestTargets = new Map<string, ServerRequestCoreTarget>();\n\tconst threadStateManager = new ThreadStateManager();\n\tconst requestSerializationQueues = new RequestSerializationQueues();\n\tconst sendOutgoingMessage = options.sendOutgoingMessage ?? options.eventSink;\n\tconst outgoing = new OutgoingMessageSender({\n\t\tsend: async (message, messageContext) => {\n\t\t\tif (options.sendOutgoingTransportMessage) {\n\t\t\t\tawait options.sendOutgoingTransportMessage(message, {\n\t\t\t\t\tconnectionIds: messageContext.connectionIds,\n\t\t\t\t\tcontext: messageContext.context as Context | undefined,\n\t\t\t\t\tthreadId: messageContext.threadId,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst event = outgoingMessageToAppServerEvent(message);\n\t\t\tif (event && sendOutgoingMessage) {\n\t\t\t\tawait sendOutgoingMessage(event, {\n\t\t\t\t\tcontext: messageContext.context as Context | undefined,\n\t\t\t\t\tthreadId: messageContext.threadId ?? threadIdFromAppServerEvent(event),\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n\n\tasync function emit(\n\t\tthreadId: ThreadId,\n\t\tevent: AppServerEvent | AppServerProtocolEvent,\n\t\tcontext?: Context,\n\t): Promise<void> {\n\t\tif (event.type === \"server_notification\") {\n\t\t\tawait outgoing.sendServerNotification(event.notification, context, threadId);\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"server_request\") {\n\t\t\tconst handle = outgoing.sendRequestWithHandle(\n\t\t\t\tevent.request,\n\t\t\t\tthreadId,\n\t\t\t\tcontext,\n\t\t\t);\n\t\t\tconst coreTarget = \"coreTarget\" in event ? event.coreTarget : undefined;\n\t\t\tif (coreTarget) {\n\t\t\t\tserverRequestTargets.set(\n\t\t\t\t\tserverRequestTargetKey(threadId, handle.request.id),\n\t\t\t\t\tcoreTarget,\n\t\t\t\t);\n\t\t\t}\n\t\t\tvoid handle.result.catch((error) => {\n\t\t\t\toptions.onRuntimeError?.(error, { context, threadId });\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tawait sendOutgoingMessage?.(event, { context, threadId });\n\t}\n\n\tfunction emitCoreEvent(threadId: ThreadId, event: Event, context?: Context): void {\n\t\tif (event.msg.type === \"session_configured\") {\n\t\t\treturn;\n\t\t}\n\t\tconst threadState = threadStateManager.threadState(threadId);\n\t\tconst tracked = threadState.trackCurrentTurnEvent(event.id, event.msg);\n\t\tconst protocolEvents = apply_bespoke_event_handling(event.msg, {\n\t\t\tactiveTurn: tracked.activeTurn,\n\t\t\tterminalTurn: tracked.terminalTurn,\n\t\t\tthreadId,\n\t\t\tturnId:\n\t\t\t\t\"turn_id\" in event.msg && typeof event.msg.turn_id === \"string\"\n\t\t\t\t\t? event.msg.turn_id\n\t\t\t\t\t: event.id,\n\t\t});\n\t\tfor (const protocolEvent of protocolEvents) {\n\t\t\tvoid emit(threadId, protocolEvent, context);\n\t\t}\n\t}\n\n\tconst sessionFactory = new CodexSessionFactory({\n\t\tbuildSessionConfiguration: options.buildSessionConfiguration,\n\t\tcreateSession: options.createSession,\n\t\temitCoreEvent,\n\t\tmcpConnectionManager: options.mcpConnectionManager,\n\t\tstore: options.store,\n\t});\n\tconst createSession = (\n\t\tthreadId: ThreadId,\n\t\tparams: ThreadStartParams | ThreadResumeParams | TurnStartParams | ThreadCompactStartParams,\n\t\tcontext?: Context,\n\t\tsubmission?: Submission,\n\t): Promise<Session> =>\n\t\tsessionFactory.createSession({ context, params, submission, threadId });\n\tconst taskRunner = new CodexSessionTaskRunner({\n\t\tcreateModelClient: options.createModelClient,\n\t\tmodelClientCacheKey: options.modelClientCacheKey,\n\t\tonRuntimeError: options.onRuntimeError,\n\t\trunInBackground: options.runInBackground,\n\t\tstore: options.store,\n\t});\n\n\tconst threadProcessor = new ThreadRequestProcessor({\n\t\tbuildCreateThreadParams: options.buildCreateThreadParams,\n\t\tcreateSession,\n\t\temit,\n\t\tresolveDynamicTools: options.resolveDynamicTools,\n\t\tsessions,\n\t\tstore: options.store,\n\t\ttaskRunner,\n\t});\n\tconst turnProcessor = new TurnRequestProcessor({\n\t\tcreateSession,\n\t\tonRuntimeError: options.onRuntimeError,\n\t\tsessions,\n\t\ttaskRunner,\n\t});\n\tconst mcpProcessor = new McpRequestProcessor({\n\t\tmcpConnectionManager: options.mcpConnectionManager,\n\t\tmcpServerOauthLogin: options.mcpServerOauthLogin,\n\t\treloadMcpServers: options.reloadMcpServers,\n\t\trunInBackground: options.runConnectionBackground,\n\t\tstore: options.store,\n\t});\n\n\tconst methodHandlers: CodexAppServerMethodHandlers<Context> = {\n\t\tconfigMcpServerReload: (params, context) =>\n\t\t\tmcpProcessor.mcpServerRefresh(params, context),\n\t\tmcpResourceRead: (params, context, request) =>\n\t\t\tmcpProcessor.mcpResourceRead(params, context, request),\n\t\tmcpServerOauthLogin: (params, context) =>\n\t\t\tmcpProcessor.mcpServerOauthLogin(params, context),\n\t\tmcpServerStatusList: (params, context, request) =>\n\t\t\tmcpProcessor.mcpServerStatusList(params, context, request),\n\t\tmcpServerToolCall: (params, context, request) =>\n\t\t\tmcpProcessor.mcpServerToolCall(params, context, request),\n\t\tthreadStart: (params, context) => threadProcessor.threadStart(params, context),\n\t\tthreadResume: (params, context) => threadProcessor.threadResume(params, context),\n\t\tthreadList: (params) => threadProcessor.threadList(params),\n\t\tthreadRead: (params) => threadProcessor.threadRead(params),\n\t\tthreadNameSet: (params, context) =>\n\t\t\tthreadProcessor.threadNameSet(params, context),\n\t\tthreadArchive: (params, context) =>\n\t\t\tthreadProcessor.threadArchive(params, context),\n\t\tthreadUnarchive: (params, context) =>\n\t\t\tthreadProcessor.threadUnarchive(params, context),\n\t\tthreadMetadataUpdate: (params) =>\n\t\t\tthreadProcessor.threadMetadataUpdate(params),\n\t\tthreadCompactStart: (params, context) =>\n\t\t\tthreadProcessor.threadCompactStart(params, context),\n\t\tturnStart: (params, context) => turnProcessor.turnStart(params, context),\n\t\tturnSteer: (params, context) => turnProcessor.turnSteer(params, context),\n\t\tturnInterrupt: (params) => turnProcessor.turnInterrupt(params),\n\t};\n\n\tfunction createMessageProcessor(input: {\n\t\tconnectionId: ConnectionId;\n\t\tinitialize?: (\n\t\t\tparams: InitializeParams,\n\t\t\tcontext?: Context,\n\t\t\tsession?: CodexAppServerConnectionSessionState,\n\t\t) => Promise<InitializeResponse>;\n\t\tinitializeResponse?: InitializeResponse | (() => InitializeResponse);\n\t\tsession?: CodexAppServerConnectionSessionState;\n\t}): CodexAppServerMessageProcessor<Context> {\n\t\treturn new CodexAppServerMessageProcessor<Context>({\n\t\t\tconnectionId: input.connectionId,\n\t\t\thandlers: input.initialize\n\t\t\t\t? { ...methodHandlers, initialize: input.initialize }\n\t\t\t\t: methodHandlers,\n\t\t\tinitializeResponse: input.initializeResponse,\n\t\t\toutgoing,\n\t\t\trequestSerializationQueues,\n\t\t\tsession: input.session,\n\t\t});\n\t}\n\n\tasync function resolveServerRequest(\n\t\tparams: { requestId: string | number; result: Result; threadId: ThreadId | string },\n\t): Promise<void> {\n\t\tconst threadId = asThreadId(String(params.threadId));\n\t\tconst targetKey = serverRequestTargetKey(threadId, params.requestId);\n\t\tconst request = outgoing.pendingRequestsForThread(threadId).find(\n\t\t\t(candidate) => candidate.id === params.requestId,\n\t\t) ?? null;\n\t\tif (!request) {\n\t\t\tserverRequestTargets.delete(targetKey);\n\t\t}\n\t\tconst target = request\n\t\t\t? serverRequestResponseTarget(serverRequestTargets.get(targetKey) ?? null)\n\t\t\t: null;\n\t\tconst submission = submissionFromServerRequestResult({\n\t\t\trequest,\n\t\t\trequestId: params.requestId,\n\t\t\tresult: params.result,\n\t\t\ttarget,\n\t\t});\n\t\tawait submitServerRequestResponse(threadId, submission);\n\t\tserverRequestTargets.delete(targetKey);\n\t\tawait outgoing.notifyClientResponse(params.requestId, params.result);\n\t\tawait emit(threadId, serverRequestResolvedNotification({\n\t\t\trequestId: params.requestId,\n\t\t\tthreadId,\n\t\t}));\n\t}\n\n\tasync function connectionClosed(connectionId: number): Promise<void> {\n\t\tconst emptyThreadIds = threadStateManager.removeConnection(connectionId);\n\t\toutgoing.connectionClosed(connectionId);\n\t\tfor (const threadId of emptyThreadIds) {\n\t\t\tthreadStateManager.removeThreadState(threadId);\n\t\t}\n\t}\n\n\tfunction connectionInitialized(connectionId: number): void {\n\t\tthreadStateManager.connectionInitialized(connectionId);\n\t}\n\n\tasync function rejectServerRequest(\n\t\tparams: { error: JSONRPCErrorError; requestId: string | number; threadId: ThreadId | string },\n\t): Promise<void> {\n\t\tconst threadId = asThreadId(String(params.threadId));\n\t\tconst targetKey = serverRequestTargetKey(threadId, params.requestId);\n\t\tconst request = outgoing.pendingRequestsForThread(threadId).find(\n\t\t\t(candidate) => candidate.id === params.requestId,\n\t\t) ?? null;\n\t\tif (!request) {\n\t\t\tserverRequestTargets.delete(targetKey);\n\t\t}\n\t\tconst target = request\n\t\t\t? serverRequestResponseTarget(serverRequestTargets.get(targetKey) ?? null)\n\t\t\t: null;\n\t\tconst submission = submissionFromServerRequestError({\n\t\t\terror: params.error,\n\t\t\trequest,\n\t\t\trequestId: params.requestId,\n\t\t\ttarget,\n\t\t});\n\t\tawait submitServerRequestResponse(threadId, submission);\n\t\tserverRequestTargets.delete(targetKey);\n\t\tawait outgoing.notifyClientError(params.requestId, params.error);\n\t\tawait emit(threadId, serverRequestResolvedNotification({\n\t\t\trequestId: params.requestId,\n\t\t\tthreadId,\n\t\t}));\n\t}\n\n\tasync function submitServerRequestResponse(\n\t\tthreadId: ThreadId,\n\t\tsubmission: Submission,\n\t): Promise<void> {\n\t\tif (!isServerRequestResponseSubmission(submission)) {\n\t\t\tthrow new Error(\"Only server-request response submissions can be routed through CodexAppServerRuntime.\");\n\t\t}\n\t\tconst runtimeSession = sessions.get(threadId);\n\t\tif (!runtimeSession) {\n\t\t\tthrow new Error(\"Codex thread has no active turn for this server request response.\");\n\t\t}\n\t\tawait runtimeSession.session.submit_with_id(submission);\n\t}\n\n\treturn {\n\t\tconnectionClosed,\n\t\tconnectionInitialized,\n\t\tcreateMessageProcessor,\n\t\tmethodHandlers,\n\t\trejectServerRequest,\n\t\tresolveServerRequest,\n\t};\n}\n\nfunction serverRequestTargetKey(threadId: ThreadId, requestId: string | number): string {\n\treturn `${threadId}:${String(requestId)}`;\n}\n\nfunction serverRequestResponseTarget(\n\ttarget: ServerRequestCoreTarget | null,\n): ServerRequestResponseTarget | null {\n\tif (!target) {\n\t\treturn null;\n\t}\n\treturn target;\n}\n\nfunction threadIdFromAppServerEvent(event: AppServerEvent): ThreadId {\n\tif (event.type === \"server_notification\") {\n\t\tconst threadId = (event.notification.params as { threadId?: unknown }).threadId;\n\t\tif (typeof threadId === \"string\") {\n\t\t\treturn asThreadId(threadId);\n\t\t}\n\t}\n\tif (event.type === \"server_request\") {\n\t\tconst threadId = (event.request.params as { threadId?: unknown }).threadId;\n\t\tif (typeof threadId === \"string\") {\n\t\t\treturn asThreadId(threadId);\n\t\t}\n\t}\n\treturn asThreadId(\"00000000-0000-4000-8000-000000000000\");\n}\n"]}
|