@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/hooks/lifecycle.ts","../src/hooks/chat-lifecycle.tsx","../src/components/codex-chat-render-state.ts","../src/components/codex-chat-view.tsx","../src/components/codex-chat.tsx","../src/components/codex-chat-layout.tsx","../src/components/chat-runtime.tsx","../src/components/primitives.tsx"],"names":["useMemo","useState","useCallback","abortController","useRef","createElement","Fragment","normalizeThreadId"],"mappings":"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","file":"chunk-W7S6HFCQ.js","sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\n\nimport type { ThreadEventSnapshot } from \"../runtime\";\n\ntype ChatLifecycleThreadState = Pick<\n\tThreadEventSnapshot,\n\t\"activeTurnIds\" | \"errors\" | \"pendingRequests\" | \"turns\"\n>;\ntype ChatLifecycleConnectionStatus = ThreadEventSnapshot[\"connectionStatus\"];\n\nexport type LocalDispatchSnapshot = {\n\terrorCount: number;\n\titemIds: readonly string[];\n\trunningTurnIds: readonly string[];\n\tstartedAt: string;\n};\n\nexport function createLocalDispatchSnapshot(\n\tthreadState: ChatLifecycleThreadState | null,\n): LocalDispatchSnapshot {\n\treturn {\n\t\terrorCount: threadState?.errors.length ?? 0,\n\t\titemIds: threadTurnItemIds(threadState),\n\t\trunningTurnIds: [...(threadState?.activeTurnIds ?? [])],\n\t\tstartedAt: new Date().toISOString(),\n\t};\n}\n\nexport function hasServerAcknowledgedLocalDispatch(input: {\n\thasPendingRequest: boolean;\n\tlocalDispatch: LocalDispatchSnapshot | null;\n\truntimeError: string | null;\n\tthreadState: ChatLifecycleThreadState | null;\n}): boolean {\n\tconst localDispatch = input.localDispatch;\n\tif (!localDispatch) {\n\t\treturn false;\n\t}\n\tif (input.hasPendingRequest || Boolean(input.runtimeError)) {\n\t\treturn true;\n\t}\n\n\tconst runningTurnIds = input.threadState?.activeTurnIds ?? [];\n\tif (\n\t\trunningTurnIds.some(\n\t\t\t(turnId) => !localDispatch.runningTurnIds.includes(turnId),\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tthreadTurnItemIds(input.threadState).some(\n\t\t\t(itemId) => !localDispatch.itemIds.includes(itemId),\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn (input.threadState?.errors.length ?? 0) > localDispatch.errorCount;\n}\n\nexport function useLocalDispatchState(input: {\n\thasPendingRequest: boolean;\n\truntimeError: string | null;\n\tthreadState: ChatLifecycleThreadState | null;\n}) {\n\tconst [localDispatch, setLocalDispatch] =\n\t\tuseState<LocalDispatchSnapshot | null>(null);\n\n\tconst beginLocalDispatch = useCallback(() => {\n\t\tsetLocalDispatch((current) =>\n\t\t\tcurrent ?? createLocalDispatchSnapshot(input.threadState),\n\t\t);\n\t}, [input.threadState]);\n\n\tconst resetLocalDispatch = useCallback(() => {\n\t\tsetLocalDispatch(null);\n\t}, []);\n\n\tconst serverAcknowledgedLocalDispatch = useMemo(\n\t\t() =>\n\t\t\thasServerAcknowledgedLocalDispatch({\n\t\t\t\thasPendingRequest: input.hasPendingRequest,\n\t\t\t\tlocalDispatch,\n\t\t\t\truntimeError: input.runtimeError,\n\t\t\t\tthreadState: input.threadState,\n\t\t\t}),\n\t\t[\n\t\t\tinput.hasPendingRequest,\n\t\t\tinput.runtimeError,\n\t\t\tinput.threadState,\n\t\t\tlocalDispatch,\n\t\t],\n\t);\n\n\treturn {\n\t\tbeginLocalDispatch,\n\t\tisSendBusy: localDispatch !== null && !serverAcknowledgedLocalDispatch,\n\t\tlocalDispatch,\n\t\tlocalDispatchStartedAt: localDispatch?.startedAt ?? null,\n\t\tresetLocalDispatch,\n\t\tserverAcknowledgedLocalDispatch,\n\t};\n}\n\nexport function deriveActiveWorkStartedAt(input: {\n\tisWorking: boolean;\n\truntimeStartedAt: string | null;\n\tsendStartedAt: string | null;\n}): string | null {\n\tif (!input.isWorking) {\n\t\treturn null;\n\t}\n\treturn input.sendStartedAt ?? input.runtimeStartedAt;\n}\n\nexport function deriveAssistantStreaming(\n\tthreadState: ChatLifecycleThreadState | null,\n): boolean {\n\tif (!threadState || threadState.activeTurnIds.length === 0) {\n\t\treturn false;\n\t}\n\n\tconst activeTurnIds = new Set(threadState.activeTurnIds);\n\treturn threadState.turns.some(\n\t\t(turn) =>\n\t\t\tactiveTurnIds.has(turn.id) &&\n\t\t\tturn.items.some(\n\t\t\t\t(item) => item.type === \"agentMessage\" && item.text.length > 0,\n\t\t\t),\n\t);\n}\n\nexport function deriveChatLifecycleWorkingState(input: {\n\tconnectionStatus: ChatLifecycleConnectionStatus;\n\tisSendBusy: boolean;\n\tthreadState: ChatLifecycleThreadState | null;\n}): boolean {\n\treturn (\n\t\tBoolean(input.threadState?.activeTurnIds.length) ||\n\t\tinput.isSendBusy ||\n\t\tinput.connectionStatus === \"connecting\" ||\n\t\tinput.connectionStatus === \"reconnecting\"\n\t);\n}\n\nexport function threadHasStarted(\n\tthreadState: ChatLifecycleThreadState | null,\n): boolean {\n\treturn Boolean(\n\t\tthreadState &&\n\t\t\t(threadState.turns.some((turn) => turn.items.length > 0) ||\n\t\t\t\tthreadState.activeTurnIds.length > 0 ||\n\t\t\t\tthreadState.errors.length > 0 ||\n\t\t\t\tthreadState.pendingRequests.length > 0),\n\t);\n}\n\nfunction threadTurnItemIds(\n\tthreadState: ChatLifecycleThreadState | null,\n): string[] {\n\treturn threadState?.turns.flatMap((turn) => turn.items.map((item) => item.id)) ?? [];\n}\n","import {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\n\nimport {\n\tAppServerSession,\n\tasThreadId,\n\ttype AppServerEvent,\n\ttype JSONRPCErrorError,\n\ttype Result,\n\ttype RequestId,\n\ttype ServerNotification,\n\ttype ServerRequest,\n\ttype StoredThread,\n\ttype Thread,\n\tThreadEventStore,\n\tthreadEventSnapshotHasStarted,\n\ttype ThreadEventSnapshot,\n\ttype ThreadId,\n\ttype ThreadStartParams,\n\ttype TurnStartParams,\n\ttype UserInput as ProtocolUserInput,\n} from \"../runtime\";\nimport type { CodexAppServer, ThreadReader } from \"./thread-reader\";\nimport {\n\tbuildOptimisticUserMessageTurnItem,\n\ttype ChatComposerSubmitPayload,\n} from \"../upstream/t3code/apps/web/src\";\nimport type { CollaborationMode } from \"../upstream/codex-rs/core/src/config-types\";\nimport type { UserMessageTurnItem } from \"../upstream/codex-rs/core/src/items\";\nimport { thread_token_usage_updated_notification_from_rollout_items } from \"../upstream/codex-rs/app-server/src/request_processors/token_usage_replay\";\nimport {\n\tderiveActiveWorkStartedAt,\n\tderiveAssistantStreaming,\n\tderiveChatLifecycleWorkingState,\n\tuseLocalDispatchState,\n} from \"./lifecycle\";\n\nexport type CodexChatLifecycleBuildThreadStartParamsInput = {\n\tthreadId: ThreadId;\n};\n\nexport type CodexChatLifecycleThreadStartParams = ThreadStartParams & {\n\tthreadId?: ThreadId | string;\n};\n\nexport type CodexChatLifecycleBuildTurnStartParamsInput = {\n\tclientMessageId: string;\n\timageUrls: string[];\n\tinteractionMode?: \"default\" | \"plan\";\n\truntimeMode?: \"approval-required\" | \"auto-accept-edits\" | \"full-access\";\n\tsendContext: ChatComposerSubmitPayload;\n\tthreadId: ThreadId;\n};\n\nexport type CodexChatLifecycleTurnStartParams = TurnStartParams & {\n\tcollaborationMode?: CollaborationMode;\n\tcollaboration_mode?: CollaborationMode;\n\tclientMessageId?: string;\n};\n\nexport type CodexChatLifecycleSendControls = {\n\tclearComposer: () => void;\n\tprepareForOptimisticAppend: () => Promise<void>;\n\trestoreComposer: (sendContext: ChatComposerSubmitPayload) => void;\n};\n\nexport type CodexChatLifecycleSendOptions = {\n\tinteractionMode?: \"default\" | \"plan\";\n\truntimeMode?: \"approval-required\" | \"auto-accept-edits\" | \"full-access\";\n};\n\nexport type CodexChatLifecycleOptions = {\n\tbuildThreadStartParams?: (\n\t\tinput: CodexChatLifecycleBuildThreadStartParamsInput,\n\t) => CodexChatLifecycleThreadStartParams;\n\tbuildTurnStartParams?: (\n\t\tinput: CodexChatLifecycleBuildTurnStartParamsInput,\n\t) => CodexChatLifecycleTurnStartParams;\n\tconnectOnMount?: boolean;\n\tinitialState?: ThreadEventSnapshot | null;\n\tisRecoverableConnectionError?: (error: Error) => boolean;\n\tonActiveThread?: (thread: StoredThread | null) => void;\n\tonRuntimeError?: (error: Error) => void;\n\tonServerRequest?: (request: ServerRequest) => void;\n\tonState?: (state: ThreadEventSnapshot | null) => void;\n\tonSubmittedUserMessage?: (state: ThreadEventSnapshot) => void;\n\tonThreadListChanged?: () => void;\n\tonThreadStarted?: (state: ThreadEventSnapshot) => void;\n\tappServer: CodexAppServer;\n\tthreadReader?: ThreadReader;\n\tthreadId: ThreadId | string;\n};\n\nexport function createDefaultThreadStartParams({\n\tthreadId,\n}: CodexChatLifecycleBuildThreadStartParamsInput): CodexChatLifecycleThreadStartParams {\n\treturn { threadId };\n}\n\nexport function createDefaultTurnStartParams({\n\tclientMessageId,\n\timageUrls,\n\tinteractionMode = \"default\",\n\truntimeMode,\n\tsendContext,\n\tthreadId,\n}: CodexChatLifecycleBuildTurnStartParamsInput): CodexChatLifecycleTurnStartParams {\n\tconst collaborationMode =\n\t\tinteractionMode === \"plan\"\n\t\t\t? ({\n\t\t\t\t\tmode: \"plan\",\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tmodel: sendContext.model,\n\t\t\t\t\t\treasoning_effort: sendContext.effort ?? null,\n\t\t\t\t\t\tdeveloper_instructions: null,\n\t\t\t\t\t},\n\t\t\t\t} satisfies CollaborationMode)\n\t\t\t: undefined;\n\treturn {\n\t\tclientMessageId,\n\t\t...(collaborationMode ? { collaborationMode } : {}),\n\t\t...runtimeModeToTurnPolicy(runtimeMode),\n\t\teffort: sendContext.effort,\n\t\tinput: [\n\t\t\t...sendContext.items.map(composerUserInputToProtocolUserInput),\n\t\t\t...imageUrls.map((url): ProtocolUserInput => ({ type: \"image\", url })),\n\t\t],\n\t\tmodel: sendContext.model,\n\t\tthreadId,\n\t};\n}\n\nfunction runtimeModeToTurnPolicy(\n\truntimeMode: CodexChatLifecycleBuildTurnStartParamsInput[\"runtimeMode\"],\n): Pick<CodexChatLifecycleTurnStartParams, \"approvalPolicy\" | \"sandboxPolicy\"> {\n\tif (runtimeMode === \"approval-required\") {\n\t\treturn {\n\t\t\tapprovalPolicy: \"on-request\",\n\t\t\tsandboxPolicy: {\n\t\t\t\ttype: \"workspaceWrite\",\n\t\t\t\twritableRoots: [],\n\t\t\t\tnetworkAccess: false,\n\t\t\t\texcludeTmpdirEnvVar: false,\n\t\t\t\texcludeSlashTmp: false,\n\t\t\t},\n\t\t};\n\t}\n\tif (runtimeMode === \"auto-accept-edits\") {\n\t\treturn {\n\t\t\tapprovalPolicy: \"on-failure\",\n\t\t\tsandboxPolicy: {\n\t\t\t\ttype: \"workspaceWrite\",\n\t\t\t\twritableRoots: [],\n\t\t\t\tnetworkAccess: false,\n\t\t\t\texcludeTmpdirEnvVar: false,\n\t\t\t\texcludeSlashTmp: false,\n\t\t\t},\n\t\t};\n\t}\n\tif (runtimeMode === \"full-access\") {\n\t\treturn {\n\t\t\tapprovalPolicy: \"never\",\n\t\t\tsandboxPolicy: { type: \"dangerFullAccess\" },\n\t\t};\n\t}\n\treturn {};\n}\n\nexport type CodexChatLifecycle = {\n\tactiveThread: StoredThread | null;\n\tactiveWorkStartedAt: string | null;\n\tassistantStreaming: boolean;\n\tcompact: () => Promise<boolean>;\n\tconnectionStatus: ThreadEventSnapshot[\"connectionStatus\"] | \"idle\";\n\tinterrupt: () => Promise<boolean>;\n\tisSendBusy: boolean;\n\tisSending: boolean;\n\tisWorking: boolean;\n\tpendingPermissionRequestActive: boolean;\n\tpendingUserInputActive: boolean;\n\treconnect: () => void;\n\truntimeError: string | null;\n\tsendComposerMessage: (\n\t\tsendContext: ChatComposerSubmitPayload,\n\t\tcontrols: CodexChatLifecycleSendControls,\n\t\toptions?: CodexChatLifecycleSendOptions,\n\t) => Promise<void>;\n\tresolveServerRequest: (\n\t\trequestId: RequestId,\n\t\tresponse: Result,\n\t) => Promise<boolean>;\n\trejectServerRequest: (\n\t\trequestId: RequestId,\n\t\terror: JSONRPCErrorError,\n\t) => Promise<boolean>;\n\tthreadSnapshot: ThreadEventSnapshot | null;\n\tthreadId: ThreadId;\n\tturnRunning: boolean;\n\tvisibleOptimisticUserMessages: readonly UserMessageTurnItem[];\n};\n\ntype OptimisticUserMessage = {\n\titem: UserMessageTurnItem;\n\tthreadId: ThreadId;\n};\n\ntype PendingComposerSend = {\n\toptimisticItemId: string;\n\trestore: (() => void) | null;\n\tserverUserMessageAcknowledged: boolean;\n\ttargetThreadId: ThreadId;\n};\n\ntype ThreadRuntimeError = {\n\tmessage: string;\n\tthreadId: ThreadId;\n};\n\nexport function useCodexChatLifecycle(\n\toptions: CodexChatLifecycleOptions,\n): CodexChatLifecycle {\n\tconst threadId = useMemo(() => normalizeThreadId(options.threadId), [options.threadId]);\n\tconst [threadSnapshot, setThreadSnapshot] = useState<ThreadEventSnapshot | null>(\n\t\toptions.initialState?.thread?.id === threadId ? options.initialState : null,\n\t);\n\tconst [activeThread, setActiveThread] = useState<StoredThread | null>(null);\n\tconst [runtimeError, setRuntimeError] = useState<ThreadRuntimeError | null>(null);\n\tconst [isSending, setIsSending] = useState(false);\n\tconst [reconnectToken, setReconnectToken] = useState(0);\n\tconst [optimisticUserMessages, setOptimisticUserMessages] = useState<\n\t\tOptimisticUserMessage[]\n\t>([]);\n\tconst [activeRuntimeStartedAt, setActiveRuntimeStartedAt] = useState<string | null>(\n\t\tnull,\n\t);\n\tconst activeRuntimeStartedAtRef = useRef<string | null>(null);\n\tconst localDispatchStartedAtRef = useRef<string | null>(null);\n\tconst pendingComposerSendRef = useRef<PendingComposerSend | null>(null);\n\tconst sendInFlightRef = useRef(false);\n\tconst threadStoreRef = useRef<ThreadEventStore | null>(\n\t\toptions.initialState?.thread?.id === threadId\n\t\t\t? ThreadEventStore.fromThread(options.initialState.thread)\n\t\t\t: null,\n\t);\n\tconst threadSnapshotRef = useRef<ThreadEventSnapshot | null>(threadSnapshot);\n\tconst activeEventsIteratorRef = useRef<AsyncIterator<AppServerEvent> | null>(null);\n\tconst lifecycleGenerationRef = useRef(0);\n\tconst lifecycleKeyRef = useRef<string | null>(null);\n\tconst subscriptionAbortRef = useRef<AbortController | null>(null);\n\tconst appServerSession = useMemo(\n\t\t() => new AppServerSession(options.appServer),\n\t\t[options.appServer],\n\t);\n\tconst lifecycleKey = `${threadId}:${options.connectOnMount === false ? \"draft\" : \"server\"}`;\n\tif (lifecycleKeyRef.current !== lifecycleKey) {\n\t\tlifecycleKeyRef.current = lifecycleKey;\n\t\tlifecycleGenerationRef.current += 1;\n\t}\n\tconst visibleRuntimeError =\n\t\truntimeError?.threadId === threadId ? runtimeError.message : null;\n\n\tconst closeActiveSubscription = useCallback(() => {\n\t\tsubscriptionAbortRef.current?.abort();\n\t\tsubscriptionAbortRef.current = null;\n\t\tconst iterator = activeEventsIteratorRef.current;\n\t\tactiveEventsIteratorRef.current = null;\n\t\tvoid iterator?.return?.();\n\t}, []);\n\n\tconst visibleOptimisticUserMessages = useMemo(\n\t\t() =>\n\t\t\toptimisticUserMessages\n\t\t\t\t.filter((message) => message.threadId === threadId)\n\t\t\t\t.map((message) => message.item),\n\t\t[optimisticUserMessages, threadId],\n\t);\n\tconst setProtocolConnectionStatus = useCallback(\n\t\t(status: ThreadEventSnapshot[\"connectionStatus\"]) => {\n\t\t\tconst store = threadStoreRef.current;\n\t\t\tif (!store) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst snapshot = store.setConnectionStatus(status);\n\t\t\tthreadSnapshotRef.current = snapshot;\n\t\t\tsetThreadSnapshot(snapshot);\n\t\t},\n\t\t[],\n\t);\n\tconst hasPendingRequest =\n\t\tBoolean(threadSnapshot?.pendingRequests.length);\n\tconst {\n\t\tbeginLocalDispatch,\n\t\tisSendBusy,\n\t\tlocalDispatchStartedAt,\n\t\tresetLocalDispatch,\n\t\tserverAcknowledgedLocalDispatch,\n\t} = useLocalDispatchState({\n\t\thasPendingRequest,\n\t\truntimeError: visibleRuntimeError,\n\t\tthreadState: threadSnapshot,\n\t});\n\n\tuseEffect(() => {\n\t\tthreadSnapshotRef.current = threadSnapshot;\n\t\toptions.onState?.(threadSnapshot);\n\t}, [options, threadSnapshot]);\n\n\tuseEffect(() => {\n\t\tactiveRuntimeStartedAtRef.current = activeRuntimeStartedAt;\n\t}, [activeRuntimeStartedAt]);\n\n\tuseEffect(() => {\n\t\tlocalDispatchStartedAtRef.current = localDispatchStartedAt;\n\t}, [localDispatchStartedAt]);\n\n\tconst removeOptimisticUserMessage = useCallback((itemId: string) => {\n\t\tsetOptimisticUserMessages((current) =>\n\t\t\tcurrent.filter((message) => message.item.id !== itemId),\n\t\t);\n\t}, []);\n\n\tconst restorePendingComposerSend = useCallback(() => {\n\t\tconst pendingComposerSend = pendingComposerSendRef.current;\n\t\tif (!pendingComposerSend) {\n\t\t\treturn;\n\t\t}\n\t\tremoveOptimisticUserMessage(pendingComposerSend.optimisticItemId);\n\t\tpendingComposerSend.restore?.();\n\t}, [removeOptimisticUserMessage]);\n\n\tconst handleRuntimeError = useCallback(\n\t\t(error: Error) => {\n\t\t\toptions.onRuntimeError?.(error);\n\t\t\tif (\n\t\t\t\toptions.isRecoverableConnectionError?.(error) &&\n\t\t\t\t!pendingComposerSendRef.current\n\t\t\t) {\n\t\t\t\tresetLocalDispatch();\n\t\t\t\tsetActiveRuntimeStartedAt(null);\n\t\t\t\tsetIsSending(false);\n\t\t\t\tsetProtocolConnectionStatus(\"error\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetRuntimeError({ message: error.message, threadId });\n\t\t\tif (pendingComposerSendRef.current) {\n\t\t\t\tif (!pendingComposerSendRef.current.serverUserMessageAcknowledged) {\n\t\t\t\t\trestorePendingComposerSend();\n\t\t\t\t}\n\t\t\t\tpendingComposerSendRef.current = null;\n\t\t\t\tsendInFlightRef.current = false;\n\t\t\t\tsetIsSending(false);\n\t\t\t\tresetLocalDispatch();\n\t\t\t\tsetActiveRuntimeStartedAt(null);\n\t\t\t}\n\t\t\tsetProtocolConnectionStatus(\"error\");\n\t\t},\n\t\t[\n\t\t\toptions,\n\t\t\tresetLocalDispatch,\n\t\t\trestorePendingComposerSend,\n\t\t\tsetProtocolConnectionStatus,\n\t\t\tthreadId,\n\t\t],\n\t);\n\n\tconst handleSubmittedUserMessage = useCallback(\n\t\t(state: ThreadEventSnapshot) => {\n\t\t\tconst pendingComposerSend = pendingComposerSendRef.current;\n\t\t\tif (pendingComposerSend) {\n\t\t\t\tpendingComposerSendRef.current = {\n\t\t\t\t\t...pendingComposerSend,\n\t\t\t\t\tserverUserMessageAcknowledged: true,\n\t\t\t\t};\n\t\t\t}\n\t\t\tsendInFlightRef.current = false;\n\t\t\tsetIsSending(false);\n\t\t\toptions.onThreadListChanged?.();\n\t\t\toptions.onSubmittedUserMessage?.(state);\n\t\t\tpendingComposerSendRef.current = null;\n\t\t},\n\t\t[options],\n\t);\n\n\tconst handleThreadStarted = useCallback(\n\t\t(state: ThreadEventSnapshot) => {\n\t\t\tconst runtimeStartedAt =\n\t\t\t\tactiveRuntimeStartedAtRef.current ??\n\t\t\t\tlocalDispatchStartedAtRef.current ??\n\t\t\t\tnew Date().toISOString();\n\t\t\tsetActiveRuntimeStartedAt((current) => current ?? runtimeStartedAt);\n\t\t\tif (pendingComposerSendRef.current) {\n\t\t\t\tpendingComposerSendRef.current = null;\n\t\t\t\tsendInFlightRef.current = false;\n\t\t\t\tsetIsSending(false);\n\t\t\t\toptions.onThreadListChanged?.();\n\t\t\t}\n\t\t\toptions.onThreadStarted?.(state);\n\t\t},\n\t\t[options],\n\t);\n\n\tconst applyServerNotification = useCallback(\n\t\t(notification: ServerNotification) => {\n\t\t\tconst store = threadStoreRef.current;\n\t\t\tif (!store) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst next = store.applyNotification(notification);\n\t\t\tthreadSnapshotRef.current = next;\n\t\t\tsetThreadSnapshot(next);\n\t\t\tif (\n\t\t\t\tnotification.method === \"item/completed\" &&\n\t\t\t\tnotification.params.item.type === \"userMessage\"\n\t\t\t) {\n\t\t\t\twindow.setTimeout(() => handleSubmittedUserMessage(next), 0);\n\t\t\t}\n\t\t\tif (threadEventSnapshotHasStarted(next)) {\n\t\t\t\twindow.setTimeout(() => handleThreadStarted(next), 0);\n\t\t\t}\n\t\t},\n\t\t[handleSubmittedUserMessage, handleThreadStarted],\n\t);\n\tconst applyServerRequest = useCallback(\n\t\t(request: ServerRequest) => {\n\t\t\tconst store = threadStoreRef.current;\n\t\t\tif (!store) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst next = store.applyRequest(request);\n\t\t\tthreadSnapshotRef.current = next;\n\t\t\tsetThreadSnapshot(next);\n\t\t},\n\t\t[],\n\t);\n\n\tconst connectThread = useCallback(\n\t\tasync (input: { force?: boolean } = {}) => {\n\t\t\tconst generation = lifecycleGenerationRef.current;\n\t\t\tconst isCurrentLifecycle = (abortController: AbortController) =>\n\t\t\t\t!abortController.signal.aborted &&\n\t\t\t\tlifecycleGenerationRef.current === generation;\n\t\t\tcloseActiveSubscription();\n\t\t\tconst abortController = new AbortController();\n\t\t\tsubscriptionAbortRef.current = abortController;\n\t\t\ttry {\n\t\t\t\tsetRuntimeError(null);\n\t\t\t\tlet resumeThread: Thread | null = null;\n\t\t\t\tif (options.buildThreadStartParams) {\n\t\t\t\t\tconst response = await appServerSession.threadStart(\n\t\t\t\t\t\toptions.buildThreadStartParams({ threadId }),\n\t\t\t\t\t);\n\t\t\t\t\tresumeThread = response.thread;\n\t\t\t\t} else {\n\t\t\t\t\tconst response = await appServerSession.threadResume({ threadId });\n\t\t\t\t\tresumeThread = response.thread;\n\t\t\t\t}\n\t\t\t\tif (!isCurrentLifecycle(abortController)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst currentSnapshot = threadSnapshotRef.current;\n\t\t\t\tconst handoffSnapshot =\n\t\t\t\t\tcurrentSnapshot?.thread?.id === threadId &&\n\t\t\t\t\tthreadEventSnapshotHasStarted(currentSnapshot)\n\t\t\t\t\t\t? currentSnapshot\n\t\t\t\t\t\t: options.initialState?.thread?.id === threadId\n\t\t\t\t\t\t\t? options.initialState\n\t\t\t\t\t\t\t: null;\n\t\t\t\tconst shouldDeferVisibleResumeSnapshot =\n\t\t\t\t\tBoolean(pendingComposerSendRef.current) &&\n\t\t\t\t\t!handoffSnapshot &&\n\t\t\t\t\tcurrentSnapshot === null;\n\t\t\t\tconst handoffWorkStartedAt =\n\t\t\t\t\tactiveRuntimeStartedAtRef.current ?? localDispatchStartedAtRef.current;\n\t\t\t\tif (handoffWorkStartedAt) {\n\t\t\t\t\tsetActiveRuntimeStartedAt((current) => current ?? handoffWorkStartedAt);\n\t\t\t\t}\n\t\t\t\tif (!handoffSnapshot) {\n\t\t\t\t\tthreadStoreRef.current = ThreadEventStore.fromThread(resumeThread);\n\t\t\t\t}\n\t\t\t\tconst storedThread = options.threadReader\n\t\t\t\t\t? await options.threadReader.readThread({\n\t\t\t\t\t\t\tthread_id: threadId,\n\t\t\t\t\t\t\tinclude_archived: false,\n\t\t\t\t\t\t\tinclude_history: false,\n\t\t\t\t\t\t})\n\t\t\t\t\t: storedThreadFromAppServerThread(resumeThread);\n\t\t\t\tconst tokenUsageReplay = options.threadReader\n\t\t\t\t\t? await storedTokenUsageReplayNotification({\n\t\t\t\t\t\t\tthread: resumeThread,\n\t\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\t\tthreadReader: options.threadReader,\n\t\t\t\t\t\t})\n\t\t\t\t\t: null;\n\t\t\t\tif (!isCurrentLifecycle(abortController)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetActiveThread(storedThread);\n\t\t\t\toptions.onActiveThread?.(storedThread);\n\t\t\t\tconst store = threadStoreRef.current ?? ThreadEventStore.fromThread(resumeThread);\n\t\t\t\tthreadStoreRef.current = store;\n\t\t\t\tif (tokenUsageReplay) {\n\t\t\t\t\tstore.applyNotification(tokenUsageReplay);\n\t\t\t\t}\n\t\t\t\tconst nextSnapshot = store.setConnectionStatus(\n\t\t\t\t\tinput.force ? \"reconnecting\" : \"connecting\",\n\t\t\t\t);\n\t\t\t\tif (!shouldDeferVisibleResumeSnapshot) {\n\t\t\t\t\tthreadSnapshotRef.current = nextSnapshot;\n\t\t\t\t\tsetThreadSnapshot(nextSnapshot);\n\t\t\t\t\tif (threadEventSnapshotHasStarted(nextSnapshot)) {\n\t\t\t\t\t\twindow.setTimeout(() => handleThreadStarted(nextSnapshot), 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst events = appServerSession.events();\n\t\t\t\tif (!events) {\n\t\t\t\t\tsetProtocolConnectionStatus(\"connected\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (shouldDeferVisibleResumeSnapshot) {\n\t\t\t\t\tstore.setConnectionStatus(\"connected\");\n\t\t\t\t} else {\n\t\t\t\t\tsetProtocolConnectionStatus(\"connected\");\n\t\t\t\t}\n\t\t\t\tconst iterator = events[Symbol.asyncIterator]();\n\t\t\t\tactiveEventsIteratorRef.current = iterator;\n\t\t\t\tvoid (async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tconst result = await iterator.next();\n\t\t\t\t\t\t\tif (!isCurrentLifecycle(abortController)) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (result.done) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tapplyAppServerEvent(result.value, {\n\t\t\t\t\t\t\t\tapplyServerNotification,\n\t\t\t\t\t\t\t\tapplyServerRequest,\n\t\t\t\t\t\t\t\tonServerRequest: options.onServerRequest,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCurrentLifecycle(abortController)) {\n\t\t\t\t\t\t\tsetProtocolConnectionStatus(\"closed\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (isCurrentLifecycle(abortController)) {\n\t\t\t\t\t\t\thandleRuntimeError(\n\t\t\t\t\t\t\t\terror instanceof Error\n\t\t\t\t\t\t\t\t\t? error\n\t\t\t\t\t\t\t\t\t: new Error(\"Codex chat connection failed.\"),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (activeEventsIteratorRef.current === iterator) {\n\t\t\t\t\t\t\tactiveEventsIteratorRef.current = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t} catch (error) {\n\t\t\t\tif (isCurrentLifecycle(abortController)) {\n\t\t\t\t\thandleRuntimeError(\n\t\t\t\t\t\terror instanceof Error\n\t\t\t\t\t\t\t? error\n\t\t\t\t\t\t\t: new Error(\"Codex chat could not connect.\"),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tappServerSession,\n\t\t\tapplyServerNotification,\n\t\t\tapplyServerRequest,\n\t\t\tcloseActiveSubscription,\n\t\t\thandleRuntimeError,\n\t\t\thandleThreadStarted,\n\t\t\toptions,\n\t\t\tsetProtocolConnectionStatus,\n\t\t\tthreadId,\n\t\t],\n\t);\n\n\tuseEffect(() => {\n\t\tif (options.connectOnMount === false) {\n\t\t\tcloseActiveSubscription();\n\t\t\tsetActiveThread(null);\n\t\t\toptions.onActiveThread?.(null);\n\t\t\tsetRuntimeError(null);\n\t\t\tif (!pendingComposerSendRef.current) {\n\t\t\t\tsetActiveRuntimeStartedAt(null);\n\t\t\t\tthreadStoreRef.current = null;\n\t\t\t\tthreadSnapshotRef.current = null;\n\t\t\t\tsetThreadSnapshot(null);\n\t\t\t\tsetIsSending(false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tvoid connectThread({ force: reconnectToken > 0 });\n\t\treturn () => {\n\t\t\tcloseActiveSubscription();\n\t\t};\n\t}, [closeActiveSubscription, connectThread, options, options.connectOnMount, reconnectToken]);\n\n\tuseEffect(() => {\n\t\tif (!threadSnapshot?.turns.length || optimisticUserMessages.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst serverUserMessages = threadSnapshot.turns.flatMap((turn) =>\n\t\t\tturn.items.flatMap((item) =>\n\t\t\t\titem.type === \"userMessage\"\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontentFingerprint: protocolUserInputFingerprint(item.content),\n\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]\n\t\t\t\t\t: [],\n\t\t\t),\n\t\t);\n\t\tconst serverUserMessageIds = new Set(\n\t\t\tserverUserMessages.map((message) => message.id),\n\t\t);\n\t\tconst serverUserMessageFingerprints = new Set(\n\t\t\tserverUserMessages.map((message) => message.contentFingerprint),\n\t\t);\n\t\tconst acknowledgedOptimisticIds = optimisticUserMessages.flatMap((message) => {\n\t\t\tif (message.threadId !== threadId) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tif (serverUserMessageIds.has(message.item.id)) {\n\t\t\t\treturn [message.item.id];\n\t\t\t}\n\t\t\treturn serverUserMessageFingerprints.has(\n\t\t\t\tcoreUserInputFingerprint(message.item.content),\n\t\t\t)\n\t\t\t\t? [message.item.id]\n\t\t\t\t: [];\n\t\t});\n\t\tif (acknowledgedOptimisticIds.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timerId = window.setTimeout(() => {\n\t\t\tsetOptimisticUserMessages((current) =>\n\t\t\t\tcurrent.filter(\n\t\t\t\t\t(message) => !acknowledgedOptimisticIds.includes(message.item.id),\n\t\t\t\t),\n\t\t\t);\n\t\t}, 0);\n\n\t\treturn () => window.clearTimeout(timerId);\n\t}, [optimisticUserMessages, threadId, threadSnapshot?.turns]);\n\n\tuseEffect(() => {\n\t\tconst timerId = window.setTimeout(() => {\n\t\t\tsetOptimisticUserMessages((current) => {\n\t\t\t\tconst next = current.filter((message) => message.threadId === threadId);\n\t\t\t\treturn next.length === current.length ? current : next;\n\t\t\t});\n\t\t}, 0);\n\n\t\treturn () => window.clearTimeout(timerId);\n\t}, [threadId]);\n\n\tuseEffect(() => {\n\t\tif (!serverAcknowledgedLocalDispatch) {\n\t\t\treturn;\n\t\t}\n\t\tconst timerId = window.setTimeout(() => {\n\t\t\tresetLocalDispatch();\n\t\t\tsendInFlightRef.current = false;\n\t\t\tsetIsSending(false);\n\t\t}, 0);\n\t\treturn () => window.clearTimeout(timerId);\n\t}, [resetLocalDispatch, serverAcknowledgedLocalDispatch]);\n\n\tconst connectionStatus = threadSnapshot?.connectionStatus ?? \"idle\";\n\tconst turnRunning = Boolean(threadSnapshot?.activeTurnIds.length);\n\tconst assistantStreaming = deriveAssistantStreaming(threadSnapshot);\n\tconst isWorking = deriveChatLifecycleWorkingState({\n\t\tconnectionStatus,\n\t\tisSendBusy,\n\t\tthreadState: threadSnapshot,\n\t});\n\tconst activeWorkStartedAt = deriveActiveWorkStartedAt({\n\t\tisWorking,\n\t\truntimeStartedAt: activeRuntimeStartedAt,\n\t\tsendStartedAt: localDispatchStartedAt,\n\t});\n\n\tuseEffect(() => {\n\t\tif (isWorking || activeRuntimeStartedAt === null) {\n\t\t\treturn;\n\t\t}\n\t\tconst timerId = window.setTimeout(() => {\n\t\t\tsetActiveRuntimeStartedAt(null);\n\t\t}, 0);\n\t\treturn () => window.clearTimeout(timerId);\n\t}, [activeRuntimeStartedAt, isWorking]);\n\n\tconst resolveServerRequest = useCallback(\n\t\tasync (requestId: RequestId, response: Result): Promise<boolean> => {\n\t\t\ttry {\n\t\t\t\tawait appServerSession.resolveServerRequest(requestId, response);\n\t\t\t\treturn true;\n\t\t\t} catch (error) {\n\t\t\t\tsetRuntimeError({\n\t\t\t\t\tmessage:\n\t\t\t\t\t\terror instanceof Error\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: \"Codex server-request response failed.\",\n\t\t\t\t\tthreadId,\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\t[appServerSession, threadId],\n\t);\n\tconst rejectServerRequest = useCallback(\n\t\tasync (\n\t\t\trequestId: RequestId,\n\t\t\terror: JSONRPCErrorError,\n\t\t): Promise<boolean> => {\n\t\t\ttry {\n\t\t\t\tawait appServerSession.rejectServerRequest(requestId, error);\n\t\t\t\treturn true;\n\t\t\t} catch (rejectError) {\n\t\t\t\tsetRuntimeError({\n\t\t\t\t\tmessage:\n\t\t\t\t\t\trejectError instanceof Error\n\t\t\t\t\t\t\t? rejectError.message\n\t\t\t\t\t\t\t: \"Codex server-request rejection failed.\",\n\t\t\t\t\tthreadId,\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\t[appServerSession, threadId],\n\t);\n\n\tconst sendComposerMessage = useCallback(\n\t\tasync (\n\t\t\tsendContext: ChatComposerSubmitPayload,\n\t\t\tcontrols: CodexChatLifecycleSendControls,\n\t\t\tsendOptions: CodexChatLifecycleSendOptions = {},\n\t\t) => {\n\t\t\tif (sendInFlightRef.current || isSending || isSendBusy) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (sendContext.items.length === 0 && sendContext.files.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsendInFlightRef.current = true;\n\t\t\tsetIsSending(true);\n\t\t\tbeginLocalDispatch();\n\t\t\ttry {\n\t\t\t\tconst imageUrls = await Promise.all(sendContext.files.map(fileToDataUrl));\n\t\t\t\tconst clientMessageId = defaultId();\n\t\t\t\tconst turnStartParams = (\n\t\t\t\t\toptions.buildTurnStartParams ?? createDefaultTurnStartParams\n\t\t\t\t)({\n\t\t\t\t\tclientMessageId,\n\t\t\t\t\timageUrls,\n\t\t\t\t\tinteractionMode: sendOptions.interactionMode,\n\t\t\t\t\truntimeMode: sendOptions.runtimeMode,\n\t\t\t\t\tsendContext,\n\t\t\t\t\tthreadId,\n\t\t\t\t});\n\t\t\t\tconst optimisticItemId = optimisticUserMessageIdForClientMessageId(\n\t\t\t\t\tclientMessageId,\n\t\t\t\t);\n\t\t\t\tconst optimisticMessage = buildOptimisticUserMessageTurnItem({\n\t\t\t\t\tid: optimisticItemId,\n\t\t\t\t\timageUrls,\n\t\t\t\t\titems: sendContext.items,\n\t\t\t\t});\n\t\t\t\tpendingComposerSendRef.current = {\n\t\t\t\t\toptimisticItemId,\n\t\t\t\t\trestore: () => controls.restoreComposer(sendContext),\n\t\t\t\t\tserverUserMessageAcknowledged: false,\n\t\t\t\t\ttargetThreadId: threadId,\n\t\t\t\t};\n\t\t\t\tawait controls.prepareForOptimisticAppend();\n\t\t\t\tsetOptimisticUserMessages((current) => [\n\t\t\t\t\t...current.filter((message) => message.item.id !== optimisticItemId),\n\t\t\t\t\t{ item: optimisticMessage, threadId },\n\t\t\t\t]);\n\t\t\t\tcontrols.clearComposer();\n\t\t\t\toptions.onThreadListChanged?.();\n\t\t\t\tif (options.connectOnMount === false || !threadSnapshotRef.current) {\n\t\t\t\t\tawait connectThread({ force: true });\n\t\t\t\t}\n\t\t\t\tconst activeTurnId = currentActiveTurnId(threadSnapshotRef.current);\n\t\t\t\tif (activeTurnId) {\n\t\t\t\t\tawait appServerSession.turnSteer({\n\t\t\t\t\t\texpectedTurnId: activeTurnId,\n\t\t\t\t\t\tinput: turnStartParams.input,\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait appServerSession.turnStart(turnStartParams);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\trestorePendingComposerSend();\n\t\t\t\tpendingComposerSendRef.current = null;\n\t\t\t\tsendInFlightRef.current = false;\n\t\t\t\tresetLocalDispatch();\n\t\t\t\tsetActiveRuntimeStartedAt(null);\n\t\t\t\tsetIsSending(false);\n\t\t\t\tsetRuntimeError({\n\t\t\t\t\tmessage:\n\t\t\t\t\t\terror instanceof Error ? error.message : \"Codex could not send the message.\",\n\t\t\t\t\tthreadId,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tbeginLocalDispatch,\n\t\t\tappServerSession,\n\t\t\tconnectThread,\n\t\t\tisSendBusy,\n\t\t\tisSending,\n\t\t\toptions,\n\t\t\tresetLocalDispatch,\n\t\t\trestorePendingComposerSend,\n\t\t\tthreadId,\n\t\t],\n\t);\n\n\tconst interrupt = useCallback(async () => {\n\t\tconst turnId = currentActiveTurnId(threadSnapshotRef.current);\n\t\tif (!turnId) {\n\t\t\tsetRuntimeError({\n\t\t\t\tmessage: \"Codex has no active response to stop.\",\n\t\t\t\tthreadId,\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\tawait appServerSession.turnInterrupt({ threadId, turnId });\n\t\t} catch (error) {\n\t\t\tsetRuntimeError({\n\t\t\t\tmessage:\n\t\t\t\t\terror instanceof Error\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: \"Codex could not stop the active response.\",\n\t\t\t\tthreadId,\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\tif (pendingComposerSendRef.current) {\n\t\t\tremoveOptimisticUserMessage(pendingComposerSendRef.current.optimisticItemId);\n\t\t}\n\t\tpendingComposerSendRef.current = null;\n\t\tsendInFlightRef.current = false;\n\t\tresetLocalDispatch();\n\t\tsetActiveRuntimeStartedAt(null);\n\t\tsetIsSending(false);\n\t\treturn true;\n\t}, [appServerSession, removeOptimisticUserMessage, resetLocalDispatch, threadId]);\n\n\tconst compact = useCallback(async () => {\n\t\tif (turnRunning || isSending || isSendBusy) {\n\t\t\tsetRuntimeError({\n\t\t\t\tmessage: \"Wait for the current response to finish before compacting.\",\n\t\t\t\tthreadId,\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\tawait appServerSession.threadCompactStart({ threadId });\n\t\t\treturn true;\n\t\t} catch (error) {\n\t\t\tsetRuntimeError({\n\t\t\t\tmessage: error instanceof Error ? error.message : \"Codex compact failed.\",\n\t\t\t\tthreadId,\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t}, [appServerSession, isSendBusy, isSending, threadId, turnRunning]);\n\n\tconst reconnect = useCallback(() => {\n\t\tcloseActiveSubscription();\n\t\tif (pendingComposerSendRef.current) {\n\t\t\tremoveOptimisticUserMessage(pendingComposerSendRef.current.optimisticItemId);\n\t\t}\n\t\tpendingComposerSendRef.current = null;\n\t\tsendInFlightRef.current = false;\n\t\tsetIsSending(false);\n\t\tresetLocalDispatch();\n\t\tsetActiveRuntimeStartedAt(null);\n\t\tsetRuntimeError(null);\n\t\tsetProtocolConnectionStatus(\"reconnecting\");\n\t\tsetReconnectToken((current) => current + 1);\n\t}, [\n\t\tcloseActiveSubscription,\n\t\tremoveOptimisticUserMessage,\n\t\tresetLocalDispatch,\n\t\tsetProtocolConnectionStatus,\n\t]);\n\n\treturn {\n\t\tactiveThread,\n\t\tactiveWorkStartedAt,\n\t\tassistantStreaming,\n\t\tcompact,\n\t\tconnectionStatus,\n\t\tinterrupt,\n\t\tisSendBusy,\n\t\tisSending,\n\t\tisWorking,\n\t\tpendingPermissionRequestActive: Boolean(\n\t\t\tthreadSnapshot?.pendingRequests.some(\n\t\t\t\t(request) => request.method === \"item/permissions/requestApproval\",\n\t\t\t),\n\t\t),\n\t\tpendingUserInputActive: Boolean(\n\t\t\tthreadSnapshot?.pendingRequests.some(\n\t\t\t\t(request) => request.method === \"item/tool/requestUserInput\",\n\t\t\t),\n\t\t),\n\t\treconnect,\n\t\trejectServerRequest,\n\t\truntimeError: visibleRuntimeError,\n\t\tsendComposerMessage,\n\t\tresolveServerRequest,\n\t\tthreadSnapshot,\n\t\tthreadId,\n\t\tturnRunning,\n\t\tvisibleOptimisticUserMessages,\n\t};\n}\n\nfunction normalizeThreadId(threadId: ThreadId | string): ThreadId {\n\treturn typeof threadId === \"string\" ? asThreadId(threadId) : threadId;\n}\n\nfunction optimisticUserMessageIdForClientMessageId(clientMessageId: string): string {\n\treturn `user-${clientMessageId}`;\n}\n\nfunction fileToDataUrl(file: File): Promise<string> {\n\tconst blob = new Blob([file], { type: file.type || \"image/png\" });\n\n\treturn new Promise((resolve, reject) => {\n\t\tconst reader = new FileReader();\n\t\treader.onload = () => resolve(String(reader.result));\n\t\treader.onerror = () => reject(reader.error ?? new Error(\"Could not read file.\"));\n\t\treader.readAsDataURL(blob);\n\t});\n}\n\nfunction defaultId(): string {\n\treturn globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;\n}\n\nfunction currentActiveTurnId(snapshot: ThreadEventSnapshot | null): string | null {\n\treturn snapshot?.activeTurnIds.at(-1) ?? null;\n}\n\nfunction protocolUserInputFingerprint(items: readonly ProtocolUserInput[]): string {\n\treturn JSON.stringify(items.map(protocolUserInputFingerprintPart));\n}\n\nfunction protocolUserInputFingerprintPart(item: ProtocolUserInput) {\n\tswitch (item.type) {\n\t\tcase \"text\":\n\t\t\treturn { text: item.text, type: \"text\" };\n\t\tcase \"image\":\n\t\t\treturn { type: \"image\", url: item.url };\n\t\tcase \"localImage\":\n\t\t\treturn { path: item.path, type: \"localImage\" };\n\t\tcase \"skill\":\n\t\t\treturn { name: item.name, path: item.path, type: \"skill\" };\n\t\tcase \"mention\":\n\t\t\treturn { name: item.name, path: item.path, type: \"mention\" };\n\t}\n}\n\nfunction coreUserInputFingerprint(\n\titems: readonly UserMessageTurnItem[\"content\"][number][],\n): string {\n\treturn JSON.stringify(items.map(coreUserInputFingerprintPart));\n}\n\nfunction coreUserInputFingerprintPart(\n\titem: UserMessageTurnItem[\"content\"][number],\n) {\n\tswitch (item.type) {\n\t\tcase \"text\":\n\t\t\treturn { text: item.text, type: \"text\" };\n\t\tcase \"image\":\n\t\t\treturn { type: \"image\", url: item.image_url };\n\t\tcase \"local_image\":\n\t\t\treturn { path: item.path, type: \"localImage\" };\n\t\tcase \"skill\":\n\t\t\treturn { name: item.name, path: item.path, type: \"skill\" };\n\t\tcase \"mention\":\n\t\t\treturn { name: item.name, path: item.path, type: \"mention\" };\n\t}\n}\n\nfunction composerUserInputToProtocolUserInput(\n\titem: ChatComposerSubmitPayload[\"items\"][number],\n): ProtocolUserInput {\n\tswitch (item.type) {\n\t\tcase \"text\":\n\t\t\treturn {\n\t\t\t\ttext: item.text,\n\t\t\t\ttext_elements: (item.text_elements ?? []).map((element) => ({\n\t\t\t\t\tbyteRange: element.byte_range,\n\t\t\t\t\tplaceholder: element.placeholder ?? null,\n\t\t\t\t})),\n\t\t\t\ttype: \"text\",\n\t\t\t};\n\t\tcase \"image\":\n\t\t\treturn { type: \"image\", url: item.image_url };\n\t\tcase \"local_image\":\n\t\t\treturn { path: item.path, type: \"localImage\" };\n\t\tcase \"skill\":\n\t\t\treturn { name: item.name, path: item.path, type: \"skill\" };\n\t\tcase \"mention\":\n\t\t\treturn { name: item.name, path: item.path, type: \"mention\" };\n\t}\n}\n\nasync function storedTokenUsageReplayNotification(input: {\n\tthread: Thread;\n\tthreadId: ThreadId;\n\tthreadReader: ThreadReader;\n}): Promise<ServerNotification | null> {\n\ttry {\n\t\tconst history = await input.threadReader.loadHistory({\n\t\t\tthread_id: input.threadId,\n\t\t\tinclude_archived: false,\n\t\t});\n\t\treturn thread_token_usage_updated_notification_from_rollout_items({\n\t\t\trolloutItems: history.items,\n\t\t\tthread: input.thread,\n\t\t\tthreadId: input.threadId,\n\t\t});\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction storedThreadFromAppServerThread(thread: Thread): StoredThread {\n\treturn {\n\t\tthread_id: asThreadId(thread.id),\n\t\trollout_path: thread.path ?? null,\n\t\tforked_from_id: thread.forkedFromId ? asThreadId(thread.forkedFromId) : null,\n\t\tpreview: thread.preview,\n\t\tname: thread.name,\n\t\tmodel_provider: thread.modelProvider,\n\t\tmodel: null,\n\t\treasoning_effort: null,\n\t\tcreated_at: new Date(thread.createdAt * 1000).toISOString(),\n\t\tupdated_at: new Date(thread.updatedAt * 1000).toISOString(),\n\t\tarchived_at: null,\n\t\tcwd: thread.cwd,\n\t\tcli_version: thread.cliVersion,\n\t\tsource: typeof thread.source === \"string\" ? thread.source : \"custom\",\n\t\tthread_source: typeof thread.threadSource === \"string\" ? thread.threadSource : null,\n\t\tagent_nickname: thread.agentNickname,\n\t\tagent_role: thread.agentRole,\n\t\tgit_info: thread.gitInfo,\n\t\thistory: null,\n\t};\n}\n\nfunction applyAppServerEvent(\n\tevent: AppServerEvent,\n\thandlers: {\n\t\tapplyServerNotification: (notification: ServerNotification) => void;\n\t\tapplyServerRequest: (request: ServerRequest) => void;\n\t\tonServerRequest?: (request: ServerRequest) => void;\n\t},\n) {\n\tswitch (event.type) {\n\t\tcase \"server_notification\":\n\t\t\thandlers.applyServerNotification(event.notification);\n\t\t\treturn;\n\t\tcase \"server_request\":\n\t\t\thandlers.applyServerRequest(event.request);\n\t\t\thandlers.onServerRequest?.(event.request);\n\t\t\treturn;\n\t\tcase \"disconnected\":\n\t\t\tthrow new Error(event.message);\n\t\tcase \"lagged\":\n\t\t\treturn;\n\t}\n}\n","import type { ReactNode } from \"react\";\n\nimport type {\n\tJSONRPCErrorError,\n\tRequestId,\n\tResult,\n\tServerRequest,\n\tThreadEventSnapshot,\n\tThreadItem,\n\tTurn,\n} from \"../runtime\";\nimport type { MessagesTimelineProps } from \"../upstream/t3code/apps/web/src/components/chat/MessagesTimeline\";\nimport type {\n\tTurn as T3Turn,\n\tTurnStatus as T3TurnStatus,\n} from \"../upstream/codex-rs/core/src/thread-history-builder\";\nimport type {\n\tTurnItem as T3TurnItem,\n\tUserMessageTurnItem,\n} from \"../upstream/codex-rs/core/src/items\";\nimport type {\n\tDynamicToolCallRequest,\n\tUserInput as CoreUserInput,\n} from \"../upstream/codex-rs/core/src/protocol\";\nimport type { RequestPermissionsEvent } from \"../upstream/codex-rs/core/src/request_permissions\";\nimport type { UserInput as AppServerUserInput } from \"../upstream/codex-rs/app-server-protocol/schema/typescript/v2\";\nimport {\n\tnormalizePendingUserInputQuestion,\n\ttype PendingUserInput,\n} from \"../upstream/t3code/apps/web/src/pendingUserInput\";\nimport { proposedPlanTitle } from \"../upstream/t3code/apps/web/src/components/chat/proposed-plan\";\nimport {\n\tderiveContextWindowSnapshotFromTokenUsage,\n\ttype ContextWindowSnapshot,\n} from \"../upstream/t3code/apps/web/src/lib/contextWindow\";\n\nexport type CodexChatInteractionMode = \"default\" | \"plan\";\n\nexport type CodexChatProposedPlan = {\n\tid: string;\n\tplanMarkdown: string;\n\ttitle: string | null;\n\tturnId: string;\n};\n\nexport type CodexChatPendingUserInputRequest = {\n\tkind: \"userInput\";\n\titemId: string;\n\tpendingUserInput: PendingUserInput;\n\trequest: Extract<ServerRequest, { method: \"item/tool/requestUserInput\" }>;\n\trequestId: RequestId;\n\tthreadId: string;\n\tturnId: string;\n};\n\nexport type CodexChatPendingPermissionRequest = {\n\tkind: \"permissions\";\n\tcomposerRequest: RequestPermissionsEvent;\n\trequest: Extract<ServerRequest, { method: \"item/permissions/requestApproval\" }>;\n\trequestId: RequestId;\n\tthreadId: string;\n\tturnId: string | null;\n};\n\nexport type CodexChatPendingDynamicToolCallRequest = {\n\tkind: \"dynamicToolCall\";\n\tcompatRequest: DynamicToolCallRequest;\n\trequest: Extract<ServerRequest, { method: \"item/tool/call\" }>;\n\trequestId: RequestId;\n\tthreadId: string;\n\tturnId: string | null;\n};\n\nexport type CodexChatPendingMcpElicitationRequest = {\n\tkind: \"mcpElicitation\";\n\trequest: Extract<ServerRequest, { method: \"mcpServer/elicitation/request\" }>;\n\trequestId: RequestId;\n\tthreadId: string | null;\n\tturnId: string | null;\n};\n\nexport type CodexChatPendingCommandApprovalRequest = {\n\tkind: \"commandApproval\";\n\trequest: Extract<ServerRequest, { method: \"item/commandExecution/requestApproval\" }>;\n\trequestId: RequestId;\n\tthreadId: string;\n\tturnId: string | null;\n};\n\nexport type CodexChatPendingFileChangeApprovalRequest = {\n\tkind: \"fileChangeApproval\";\n\trequest: Extract<ServerRequest, { method: \"item/fileChange/requestApproval\" }>;\n\trequestId: RequestId;\n\tthreadId: string;\n\tturnId: string | null;\n};\n\nexport type CodexChatPendingAuthRefreshRequest = {\n\tkind: \"chatgptAuthTokensRefresh\";\n\trequest: Extract<ServerRequest, { method: \"account/chatgptAuthTokens/refresh\" }>;\n\trequestId: RequestId;\n\tthreadId: null;\n\tturnId: null;\n};\n\nexport type CodexChatPendingApplyPatchApprovalRequest = {\n\tkind: \"applyPatchApproval\";\n\trequest: Extract<ServerRequest, { method: \"applyPatchApproval\" }>;\n\trequestId: RequestId;\n\tthreadId: string;\n\tturnId: null;\n};\n\nexport type CodexChatPendingExecCommandApprovalRequest = {\n\tkind: \"execCommandApproval\";\n\trequest: Extract<ServerRequest, { method: \"execCommandApproval\" }>;\n\trequestId: RequestId;\n\tthreadId: string;\n\tturnId: null;\n};\n\nexport type CodexChatPendingRequest =\n\t| CodexChatPendingApplyPatchApprovalRequest\n\t| CodexChatPendingAuthRefreshRequest\n\t| CodexChatPendingCommandApprovalRequest\n\t| CodexChatPendingDynamicToolCallRequest\n\t| CodexChatPendingExecCommandApprovalRequest\n\t| CodexChatPendingFileChangeApprovalRequest\n\t| CodexChatPendingMcpElicitationRequest\n\t| CodexChatPendingPermissionRequest\n\t| CodexChatPendingUserInputRequest;\n\nexport type CodexChatRenderLifecycleState = {\n\tactiveWorkStartedAt: string | null;\n\tisWorking: boolean;\n\truntimeError: string | null;\n\tvisibleOptimisticUserMessages: readonly UserMessageTurnItem[];\n};\n\nexport type CodexChatPendingRequestRenderContext = {\n\tdefaultNode: ReactNode;\n\treject: (message?: string | JSONRPCErrorError) => Promise<boolean>;\n\trequest: CodexChatPendingRequest;\n\tresolve: (result: Result) => Promise<boolean>;\n\tstate: CodexChatRenderState;\n};\n\nexport type CodexChatPendingUserInputRenderContext = {\n\tdefaultNode: ReactNode;\n\treject: (message?: string | JSONRPCErrorError) => Promise<boolean>;\n\trequest: CodexChatPendingUserInputRequest;\n\tresolve: (result: Result) => Promise<boolean>;\n\tstate: CodexChatRenderState;\n};\n\nexport type CodexChatRenderStateInput = {\n\tinteractionMode?: CodexChatInteractionMode;\n\tlifecycle?: Partial<CodexChatRenderLifecycleState>;\n\tsnapshot: ThreadEventSnapshot | null;\n};\n\nexport type CodexChatRenderState = {\n\tactiveProposedPlan: CodexChatProposedPlan | null;\n\tactiveTurnStartedAt: string | null;\n\tbanners: CodexChatRenderBanner[];\n\tcomposer: CodexChatComposerRenderState;\n\terrors: string[];\n\tinteractionMode: CodexChatInteractionMode;\n\titems: T3TurnItem[];\n\tisWorking: boolean;\n\toptimisticUserMessages: readonly UserMessageTurnItem[];\n\tpending_dynamic_tool_call_requests: DynamicToolCallRequest[];\n\tpendingRequests: readonly CodexChatPendingRequest[];\n\tpendingPermissionRequest: CodexChatPendingPermissionRequest | null;\n\tpendingUserInputRequest: CodexChatPendingUserInputRequest | null;\n\truntimeError: string | null;\n\trunning_turn_ids: string[];\n\tshowPlanFollowUpPrompt: boolean;\n\ttimeline: Omit<\n\t\tMessagesTimelineProps,\n\t\t\"listRef\" | \"onImageExpand\" | \"onIsAtEndChange\"\n\t>;\n\tturns: T3Turn[];\n\twarnings: string[];\n};\n\nexport type CodexChatComposerRenderState = {\n\tcontextWindow: ContextWindowSnapshot | null;\n\tpendingUserInput: PendingUserInput | null;\n\tpendingUserInputAdapter: CodexChatPendingUserInputRequest | null;\n};\n\nexport type CodexChatRenderBanner = {\n\tdescription?: string;\n\tid: string;\n\trequest?: CodexChatPendingRequest;\n\ttitle: string;\n\ttone?: \"destructive\";\n\tvariant: \"error\" | \"info\" | \"success\" | \"warning\";\n};\n\nexport function createCodexChatRenderState({\n\tinteractionMode = \"default\",\n\tlifecycle,\n\tsnapshot,\n}: CodexChatRenderStateInput): CodexChatRenderState {\n\tconst activeTurnIds = new Set(snapshot?.activeTurnIds ?? []);\n\tconst turns = (snapshot?.turns ?? []).map((turn) =>\n\t\tt3TurnFromAppServerTurn(turn, activeTurnIds.has(turn.id)),\n\t);\n\tconst pendingRequests = (snapshot?.pendingRequests ?? []).map(codexChatPendingRequest);\n\tconst pendingDynamicToolCallRequests = pendingRequests.flatMap((request) =>\n\t\trequest.kind === \"dynamicToolCall\" ? [request.compatRequest] : [],\n\t);\n\tconst pendingPermissionRequest =\n\t\tpendingRequests.find((request) => request.kind === \"permissions\") ?? null;\n\tconst pendingUserInputRequest =\n\t\tpendingRequests.find((request) => request.kind === \"userInput\") ?? null;\n\tconst activeTurnStartedAt = lifecycle?.activeWorkStartedAt ?? null;\n\tconst errors = snapshot?.errors ?? [];\n\tconst isWorking = lifecycle?.isWorking ?? false;\n\tconst optimisticUserMessages = lifecycle?.visibleOptimisticUserMessages ?? [];\n\tconst runtimeError = lifecycle?.runtimeError ?? null;\n\tconst warnings = snapshot?.warnings ?? [];\n\tconst activeProposedPlan = findActiveProposedPlan(snapshot);\n\tconst contextWindow = deriveContextWindowSnapshotFromTokenUsage({\n\t\ttokenUsage: snapshot?.tokenUsage?.tokenUsage,\n\t\tupdatedAt: snapshot?.tokenUsage?.updatedAt,\n\t});\n\tconst banners = defaultRenderBanners({\n\t\tpendingRequests,\n\t\truntimeError,\n\t});\n\treturn {\n\t\tactiveProposedPlan,\n\t\tactiveTurnStartedAt,\n\t\tbanners,\n\t\tcomposer: {\n\t\t\tcontextWindow,\n\t\t\tpendingUserInput: pendingUserInputRequest?.pendingUserInput ?? null,\n\t\t\tpendingUserInputAdapter: pendingUserInputRequest,\n\t\t},\n\t\terrors,\n\t\tinteractionMode,\n\t\titems: turns.flatMap((turn) => turn.items),\n\t\tisWorking,\n\t\toptimisticUserMessages,\n\t\tpending_dynamic_tool_call_requests: pendingDynamicToolCallRequests,\n\t\tpendingRequests,\n\t\tpendingPermissionRequest,\n\t\tpendingUserInputRequest,\n\t\truntimeError,\n\t\trunning_turn_ids: snapshot?.activeTurnIds ?? [],\n\t\tshowPlanFollowUpPrompt:\n\t\t\tinteractionMode === \"plan\" &&\n\t\t\tBoolean(activeProposedPlan) &&\n\t\t\t!isWorking &&\n\t\t\t!pendingUserInputRequest,\n\t\ttimeline: {\n\t\t\tactiveTurnStartedAt,\n\t\t\terrors,\n\t\t\tisWorking,\n\t\t\toptimisticUserMessages,\n\t\t\truntimeError,\n\t\t\tturns,\n\t\t\twarnings,\n\t\t},\n\t\tturns,\n\t\twarnings,\n\t};\n}\n\nfunction findActiveProposedPlan(\n\tsnapshot: ThreadEventSnapshot | null,\n): CodexChatProposedPlan | null {\n\tif (!snapshot) {\n\t\treturn null;\n\t}\n\tfor (const turn of [...snapshot.turns].reverse()) {\n\t\tfor (const item of [...turn.items].reverse()) {\n\t\t\tif (item.type !== \"plan\" || item.text.trim().length === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tid: `${turn.id}:${item.id}`,\n\t\t\t\tplanMarkdown: item.text,\n\t\t\t\ttitle: proposedPlanTitle(item.text),\n\t\t\t\tturnId: turn.id,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction codexChatPendingRequest(request: ServerRequest): CodexChatPendingRequest {\n\tswitch (request.method) {\n\t\tcase \"item/tool/requestUserInput\":\n\t\t\treturn {\n\t\t\t\tkind: \"userInput\",\n\t\t\t\titemId: request.params.itemId,\n\t\t\t\tpendingUserInput: pendingUserInputFromServerRequest(request),\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.threadId,\n\t\t\t\tturnId: request.params.turnId,\n\t\t\t};\n\t\tcase \"item/permissions/requestApproval\":\n\t\t\treturn {\n\t\t\t\tkind: \"permissions\",\n\t\t\t\tcomposerRequest: requestPermissionsFromServerRequest(request),\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.threadId,\n\t\t\t\tturnId: request.params.turnId,\n\t\t\t};\n\t\tcase \"item/tool/call\":\n\t\t\treturn {\n\t\t\t\tkind: \"dynamicToolCall\",\n\t\t\t\tcompatRequest: {\n\t\t\t\t\targuments: request.params.arguments,\n\t\t\t\t\tcall_id: request.params.callId,\n\t\t\t\t\tnamespace: request.params.namespace,\n\t\t\t\t\ttool: request.params.tool,\n\t\t\t\t\tturn_id: request.params.turnId,\n\t\t\t\t},\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.threadId,\n\t\t\t\tturnId: request.params.turnId,\n\t\t\t};\n\t\tcase \"mcpServer/elicitation/request\":\n\t\t\treturn {\n\t\t\t\tkind: \"mcpElicitation\",\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.threadId,\n\t\t\t\tturnId: request.params.turnId,\n\t\t\t};\n\t\tcase \"item/commandExecution/requestApproval\":\n\t\t\treturn {\n\t\t\t\tkind: \"commandApproval\",\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.threadId,\n\t\t\t\tturnId: request.params.turnId,\n\t\t\t};\n\t\tcase \"item/fileChange/requestApproval\":\n\t\t\treturn {\n\t\t\t\tkind: \"fileChangeApproval\",\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.threadId,\n\t\t\t\tturnId: request.params.turnId,\n\t\t\t};\n\t\tcase \"account/chatgptAuthTokens/refresh\":\n\t\t\treturn {\n\t\t\t\tkind: \"chatgptAuthTokensRefresh\",\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: null,\n\t\t\t\tturnId: null,\n\t\t\t};\n\t\tcase \"applyPatchApproval\":\n\t\t\treturn {\n\t\t\t\tkind: \"applyPatchApproval\",\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.conversationId,\n\t\t\t\tturnId: null,\n\t\t\t};\n\t\tcase \"execCommandApproval\":\n\t\t\treturn {\n\t\t\t\tkind: \"execCommandApproval\",\n\t\t\t\trequest,\n\t\t\t\trequestId: request.id,\n\t\t\t\tthreadId: request.params.conversationId,\n\t\t\t\tturnId: null,\n\t\t\t};\n\t}\n}\n\nfunction defaultRenderBanners({\n\tpendingRequests,\n\truntimeError,\n}: {\n\tpendingRequests: readonly CodexChatPendingRequest[];\n\truntimeError: string | null;\n}): CodexChatRenderBanner[] {\n\tconst banners: CodexChatRenderBanner[] = [];\n\tif (runtimeError) {\n\t\tbanners.push({\n\t\t\tid: \"runtime-error\",\n\t\t\ttitle: \"Codex connection interrupted\",\n\t\t\tdescription: runtimeError,\n\t\t\tvariant: \"error\",\n\t\t\ttone: \"destructive\",\n\t\t});\n\t}\n\tfor (const request of pendingRequests) {\n\t\tif (request.kind === \"userInput\" || request.kind === \"dynamicToolCall\") {\n\t\t\tcontinue;\n\t\t}\n\t\tif (request.kind === \"permissions\") {\n\t\t\tbanners.push({\n\t\t\t\tid: `request-permissions:${request.requestId}`,\n\t\t\t\trequest,\n\t\t\t\ttitle: \"Permissions requested\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Codex requested extra permissions. Approval controls are not available yet, so the request was denied for this turn.\",\n\t\t\t\tvariant: \"warning\",\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tbanners.push({\n\t\t\tid: `server-request:${request.requestId}`,\n\t\t\trequest,\n\t\t\ttitle: \"Codex needs input\",\n\t\t\tdescription: `No default renderer is available for ${request.request.method}.`,\n\t\t\tvariant: \"warning\",\n\t\t});\n\t}\n\treturn banners;\n}\n\nfunction t3TurnFromAppServerTurn(turn: Turn, isActive: boolean): T3Turn {\n\treturn {\n\t\tcompleted_at: epochMillis(turn.completedAt),\n\t\tduration_ms: turn.durationMs,\n\t\terror: turn.error\n\t\t\t? {\n\t\t\t\t\tadditional_details: turn.error.additionalDetails,\n\t\t\t\t\tcodex_error_info: turn.error.codexErrorInfo,\n\t\t\t\t\tmessage: turn.error.message,\n\t\t\t\t}\n\t\t\t: null,\n\t\tid: turn.id,\n\t\titems: turn.items.flatMap((item) => t3TurnItemFromThreadItem(item, isActive)),\n\t\titems_view: turn.itemsView === \"notLoaded\" ? \"not_loaded\" : turn.itemsView,\n\t\tstarted_at: epochMillis(turn.startedAt),\n\t\tstatus: t3TurnStatusFromAppServer(turn.status),\n\t};\n}\n\nfunction t3TurnItemFromThreadItem(\n\titem: ThreadItem,\n\tturnIsActive: boolean,\n): T3TurnItem[] {\n\tswitch (item.type) {\n\t\tcase \"userMessage\":\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcontent: item.content.map(coreUserInputFromAppServer),\n\t\t\t\t\tid: item.id,\n\t\t\t\t\ttype: \"UserMessage\",\n\t\t\t\t},\n\t\t\t];\n\t\tcase \"agentMessage\":\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcontent: [{ text: item.text, type: \"Text\" }],\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tmemory_citation: item.memoryCitation\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tentries: item.memoryCitation.entries,\n\t\t\t\t\t\t\t\trolloutIds: item.memoryCitation.threadIds,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: null,\n\t\t\t\t\tphase:\n\t\t\t\t\t\tturnIsActive && item.text.trim().length > 0\n\t\t\t\t\t\t\t? \"streaming\"\n\t\t\t\t\t\t\t: item.phase,\n\t\t\t\t\ttype: \"AgentMessage\",\n\t\t\t\t},\n\t\t\t];\n\t\tcase \"plan\":\n\t\t\treturn [{ id: item.id, text: item.text, type: \"Plan\" }];\n\t\tcase \"reasoning\":\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: item.id,\n\t\t\t\t\traw_content: item.content,\n\t\t\t\t\tsummary_text: item.summary,\n\t\t\t\t\ttype: \"Reasoning\",\n\t\t\t\t},\n\t\t\t];\n\t\tcase \"commandExecution\":\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcommand: [item.command],\n\t\t\t\t\tcwd: item.cwd,\n\t\t\t\t\tduration_ms: item.durationMs,\n\t\t\t\t\texit_code: item.exitCode,\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tstatus:\n\t\t\t\t\t\titem.status === \"inProgress\"\n\t\t\t\t\t\t\t? \"in_progress\"\n\t\t\t\t\t\t\t: item.status === \"declined\"\n\t\t\t\t\t\t\t\t? \"cancelled\"\n\t\t\t\t\t\t\t\t: item.status,\n\t\t\t\t\tstdout: item.aggregatedOutput ?? \"\",\n\t\t\t\t\ttype: \"CommandExecution\",\n\t\t\t\t},\n\t\t\t];\n\t\tcase \"fileChange\":\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tauto_approved: false,\n\t\t\t\t\tchanges: {},\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tstatus:\n\t\t\t\t\t\titem.status === \"completed\" ||\n\t\t\t\t\t\titem.status === \"failed\" ||\n\t\t\t\t\t\titem.status === \"declined\"\n\t\t\t\t\t\t\t? item.status\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\tstderr: \"\",\n\t\t\t\t\tstdout: \"\",\n\t\t\t\t\ttype: \"FileChange\",\n\t\t\t\t},\n\t\t\t];\n\t\tcase \"dynamicToolCall\":\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\targuments: item.arguments,\n\t\t\t\t\tcontent_items: item.contentItems,\n\t\t\t\t\tduration: item.durationMs === null ? null : String(item.durationMs),\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tnamespace: item.namespace,\n\t\t\t\t\tstatus: item.status,\n\t\t\t\t\tsuccess: item.success,\n\t\t\t\t\ttool: item.tool,\n\t\t\t\t\ttype: \"DynamicToolCall\",\n\t\t\t\t},\n\t\t\t];\n\t\tcase \"contextCompaction\":\n\t\t\treturn [{ id: item.id, type: \"ContextCompaction\" }];\n\t\tdefault:\n\t\t\treturn [];\n\t}\n}\n\nfunction pendingUserInputFromServerRequest(\n\trequest: Extract<ServerRequest, { method: \"item/tool/requestUserInput\" }>,\n): PendingUserInput {\n\treturn {\n\t\titemId: request.params.itemId,\n\t\tquestions: request.params.questions.map((question) => {\n\t\t\tconst normalized = normalizePendingUserInputQuestion(question);\n\t\t\treturn {\n\t\t\t\t...normalized,\n\t\t\t\toptions: normalized.options.map((option) => ({ ...option })),\n\t\t\t};\n\t\t}),\n\t\trequestId: request.id,\n\t\tthreadId: request.params.threadId,\n\t\tturnId: request.params.turnId,\n\t};\n}\n\nfunction requestPermissionsFromServerRequest(\n\trequest: Extract<ServerRequest, { method: \"item/permissions/requestApproval\" }>,\n): RequestPermissionsEvent {\n\treturn {\n\t\tcall_id: String(request.id),\n\t\tcwd: request.params.cwd,\n\t\tpermissions: request.params.permissions as never,\n\t\treason: request.params.reason,\n\t\tturn_id: request.params.turnId,\n\t};\n}\n\nfunction coreUserInputFromAppServer(input: AppServerUserInput): CoreUserInput {\n\tif (input.type === \"image\") {\n\t\treturn { image_url: input.url, type: \"image\" };\n\t}\n\tif (input.type === \"localImage\") {\n\t\treturn { path: input.path, type: \"local_image\" };\n\t}\n\tif (input.type === \"text\") {\n\t\treturn {\n\t\t\ttext: input.text,\n\t\t\ttext_elements: input.text_elements.map((element) => ({\n\t\t\t\tbyte_range: element.byteRange,\n\t\t\t\tplaceholder: element.placeholder ?? undefined,\n\t\t\t})),\n\t\t\ttype: \"text\",\n\t\t};\n\t}\n\treturn {\n\t\ttext: input.name,\n\t\ttext_elements: [],\n\t\ttype: \"text\",\n\t};\n}\n\nfunction t3TurnStatusFromAppServer(status: Turn[\"status\"]): T3TurnStatus {\n\treturn status === \"inProgress\" ? \"in_progress\" : status;\n}\n\nfunction epochMillis(value: number | null | undefined): number | null {\n\treturn typeof value === \"number\" ? value * 1000 : null;\n}\n","import {\n\tcreateElement,\n\ttype ComponentPropsWithRef,\n\ttype ReactElement,\n\ttype ReactNode,\n\ttype RefObject,\n\tuseCallback,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport type { LegendListRef } from \"@legendapp/list/react\";\n\nimport {\n\ttype CodexChatLifecycleOptions,\n\tuseCodexChatLifecycle,\n} from \"../hooks\";\nimport {\n\tbuildRequestUserInputResponse,\n\tChatComposer,\n\tChatView as T3ChatView,\n\tcreateComposerImageAttachments,\n\ttype ChatComposerHandle,\n\ttype ChatComposerRuntimeMode,\n\ttype ChatComposerSubmitPayload,\n\ttype ChatViewProps as T3ChatViewProps,\n\ttype ChatViewRenderComposerControls,\n\ttype ComposerBannerStackItem,\n\ttype ProviderStatus,\n\tuseComposerDraftStore,\n} from \"../upstream/t3code/apps/web/src\";\nimport {\n\tbuildPlanImplementationPrompt,\n\tresolvePlanFollowUpSubmission,\n} from \"../upstream/t3code/apps/web/src/components/chat/proposed-plan\";\nimport { TooltipProvider } from \"../upstream/t3code/apps/web/src/components/ui/tooltip\";\nimport {\n\tcreateCodexChatRenderState,\n\ttype CodexChatInteractionMode,\n\ttype CodexChatPendingUserInputRenderContext,\n\ttype CodexChatProposedPlan,\n\ttype CodexChatPendingRequest,\n\ttype CodexChatPendingRequestRenderContext,\n\ttype CodexChatRenderState,\n} from \"./codex-chat-render-state\";\nexport type CodexChatViewComposerProps =\n\tComponentPropsWithRef<typeof ChatComposer>;\nexport type CodexChatComposerCommand = NonNullable<\n\tCodexChatViewComposerProps[\"composerCommands\"]\n>[number];\nexport type CodexChatComposerCommandName = CodexChatComposerCommand[\"name\"];\nexport type CodexChatComposerSkill = NonNullable<\n\tCodexChatViewComposerProps[\"composerSkills\"]\n>[number];\nexport type CodexChatModelOption = NonNullable<\n\tCodexChatViewComposerProps[\"modelOptions\"]\n>[number];\nexport type CodexChatProviderStatus = ProviderStatus;\nexport type CodexChatRuntimeMode = ChatComposerRuntimeMode;\n\nexport type CodexChatViewManualProps = Omit<T3ChatViewProps, \"composer\"> & {\n\tcomposer: CodexChatViewComposerProps;\n\tlifecycle?: never;\n};\n\nexport type CodexChatViewLifecycleProps = Omit<\n\tT3ChatViewProps,\n\t| \"composer\"\n\t| \"listRef\"\n\t| \"onControlsChange\"\n\t| \"onIsAtEndChange\"\n\t| \"threadKey\"\n\t| \"timeline\"\n\t| \"title\"\n> & {\n\tcomposerCommands?: CodexChatViewComposerProps[\"composerCommands\"];\n\tcomposerSkills?: CodexChatViewComposerProps[\"composerSkills\"];\n\tcomposerDraftKey?: string;\n\tcomposerRef?: RefObject<ChatComposerHandle | null>;\n\teditorAriaLabel?: string;\n\tisEnvironmentUnavailable?: boolean;\n\tdefaultInteractionMode?: CodexChatInteractionMode;\n\tdefaultRuntimeMode?: CodexChatRuntimeMode;\n\tinteractionMode?: CodexChatInteractionMode;\n\tlistRef?: RefObject<LegendListRef | null>;\n\tlifecycle: CodexChatLifecycleOptions;\n\tmentionRefs?: CodexChatViewComposerProps[\"mentionRefs\"];\n\tmodelOptions?: CodexChatViewComposerProps[\"modelOptions\"];\n\tplaceholder?: string;\n\tproviderStatus?: CodexChatProviderStatus | null;\n\trealtimeConversation?: CodexChatViewComposerProps[\"realtimeConversation\"];\n\trenderBannerItems?: (\n\t\tstate: CodexChatRenderState,\n\t) => readonly ComposerBannerStackItem[];\n\trenderPendingRequest?: (\n\t\tcontext: CodexChatPendingRequestRenderContext,\n\t) => ReactNode;\n\trenderPendingUserInput?: (\n\t\tcontext: CodexChatPendingUserInputRenderContext,\n\t) => ReactNode;\n\trenderTimelineExtras?: (context: { state: CodexChatRenderState }) => ReactNode;\n\tshowInteractionModeToggle?: boolean;\n\truntimeMode?: CodexChatRuntimeMode;\n\tshowPlanToggle?: boolean;\n\tplanSidebarLabel?: string;\n\tplanSidebarOpen?: boolean;\n\tonCommand?: CodexChatViewComposerProps[\"onCommand\"];\n\tonComposerError?: (message: string | null) => void;\n\tonControlsChange?: (controls: ChatViewRenderComposerControls | null) => void;\n\tonIsAtEndChange?: (isAtEnd: boolean) => void;\n\tonImplementProposedPlan?: (plan: CodexChatProposedPlan) => void;\n\tonInteractionModeChange?: (mode: CodexChatInteractionMode) => void;\n\tonRuntimeModeChange?: (mode: CodexChatRuntimeMode) => void;\n\tonTogglePlanSidebar?: () => void;\n\tthreadKey?: string;\n\ttitle?: ReactNode;\n};\n\nexport type CodexChatViewProps =\n\t| CodexChatViewLifecycleProps\n\t| CodexChatViewManualProps;\n\nexport function CodexChatView(props: CodexChatViewProps): ReactElement {\n\tif (isLifecycleCodexChatViewProps(props)) {\n\t\treturn createElement(CodexLifecycleChatView, props);\n\t}\n\tconst { composer, ...chatViewProps } = props;\n\treturn createElement(\n\t\tTooltipProvider,\n\t\tnull,\n\t\tcreateElement(T3ChatView, {\n\t\t\t...chatViewProps,\n\t\t\tcomposer: createElement(ChatComposer, composer),\n\t\t}),\n\t);\n}\n\nfunction CodexLifecycleChatView({\n\tactions,\n\tbannerItems = [],\n\tclassName,\n\tcomposerCommands,\n\tcomposerSkills,\n\tcomposerDraftKey,\n\tcomposerRef: externalComposerRef,\n\tdefaultInteractionMode = \"default\",\n\tdefaultRuntimeMode = \"full-access\",\n\teditorAriaLabel,\n\theaderLeading,\n\tinteractionMode,\n\tisEnvironmentUnavailable = false,\n\tlistRef: externalListRef,\n\tlifecycle: lifecycleOptions,\n\tmentionRefs,\n\tmodelOptions,\n\tplaceholder,\n\tproviderStatus = null,\n\trealtimeConversation,\n\trenderBannerItems,\n\trenderPendingRequest,\n\trenderPendingUserInput,\n\trenderTimelineExtras,\n\truntimeMode,\n\tshowInteractionModeToggle = true,\n\tshowPlanToggle = false,\n\tplanSidebarLabel = \"Plan\",\n\tplanSidebarOpen = false,\n\tsubtitle,\n\tthreadKey,\n\ttitle,\n\tonCommand,\n\tonComposerError,\n\tonControlsChange,\n\tonInteractionModeChange,\n\tonRuntimeModeChange,\n\tonTogglePlanSidebar,\n\tonImplementProposedPlan,\n\tonIsAtEndChange,\n}: CodexChatViewLifecycleProps): ReactElement {\n\tconst lifecycle = useCodexChatLifecycle(lifecycleOptions);\n\tconst [localInteractionMode, setLocalInteractionMode] =\n\t\tuseState<CodexChatInteractionMode>(defaultInteractionMode);\n\tconst [localRuntimeMode, setLocalRuntimeMode] =\n\t\tuseState<CodexChatRuntimeMode>(defaultRuntimeMode);\n\tconst effectiveInteractionMode = interactionMode ?? localInteractionMode;\n\tconst effectiveRuntimeMode = runtimeMode ?? localRuntimeMode;\n\tconst setInteractionMode = useCallback(\n\t\t(nextMode: CodexChatInteractionMode) => {\n\t\t\tif (interactionMode === undefined) {\n\t\t\t\tsetLocalInteractionMode(nextMode);\n\t\t\t}\n\t\t\tonInteractionModeChange?.(nextMode);\n\t\t},\n\t\t[interactionMode, onInteractionModeChange],\n\t);\n\tconst setRuntimeMode = useCallback(\n\t\t(nextMode: CodexChatRuntimeMode) => {\n\t\t\tif (runtimeMode === undefined) {\n\t\t\t\tsetLocalRuntimeMode(nextMode);\n\t\t\t}\n\t\t\tonRuntimeModeChange?.(nextMode);\n\t\t},\n\t\t[runtimeMode, onRuntimeModeChange],\n\t);\n\tconst effectiveThreadKey = threadKey ?? String(lifecycle.threadId);\n\tconst effectiveComposerDraftKey =\n\t\tcomposerDraftKey ?? `codex:${String(lifecycle.threadId)}`;\n\tconst effectiveEditorAriaLabel = editorAriaLabel ?? \"Message Codex\";\n\tconst effectivePlaceholder =\n\t\tplaceholder ??\n\t\t\"Ask anything, @tag files/folders, or use / to show available commands\";\n\tconst effectiveTitle = title ?? \"Codex\";\n\tconst renderState = createCodexChatRenderState({\n\t\tinteractionMode: effectiveInteractionMode,\n\t\tlifecycle,\n\t\tsnapshot: lifecycle.threadSnapshot,\n\t});\n\tconst activeProposedPlan = renderState.activeProposedPlan;\n\tconst showPlanFollowUpPrompt =\n\t\trenderState.showPlanFollowUpPrompt && Boolean(activeProposedPlan);\n\tconst pendingUserInput = renderState.composer.pendingUserInputAdapter;\n\tconst pendingRequestRenderItems = renderPendingRequest\n\t\t? renderState.pendingRequests.flatMap((request) => {\n\t\t\t\tif (request.kind === \"userInput\") {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tconst defaultNode = defaultPendingRequestNode(request);\n\t\t\t\tconst node = renderPendingRequest({\n\t\t\t\t\tdefaultNode,\n\t\t\t\t\treject: (error) => rejectPendingRequest(request, error),\n\t\t\t\t\trequest,\n\t\t\t\t\tresolve: (result) =>\n\t\t\t\t\t\tlifecycle.resolveServerRequest(request.requestId, result),\n\t\t\t\t\tstate: renderState,\n\t\t\t\t});\n\t\t\t\tif (node === defaultNode) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\treturn node ? [{ node, request }] : [];\n\t\t\t})\n\t\t: [];\n\tconst customPendingRequestIds = new Set(\n\t\tpendingRequestRenderItems.map(({ request }) => request.requestId),\n\t);\n\tconst customUserInputNode = pendingUserInput\n\t\t? renderPendingUserInput?.({\n\t\t\t\tdefaultNode: null,\n\t\t\t\treject: (error) => rejectPendingRequest(pendingUserInput, error),\n\t\t\t\trequest: pendingUserInput,\n\t\t\t\tresolve: (result) =>\n\t\t\t\t\tlifecycle.resolveServerRequest(pendingUserInput.requestId, result),\n\t\t\t\tstate: renderState,\n\t\t\t})\n\t\t: null;\n\tconst timelineExtras = renderTimelineExtras?.({ state: renderState });\n\tconst internalComposerRef = useRef<ChatComposerHandle | null>(null);\n\tconst composerRef = externalComposerRef ?? internalComposerRef;\n\tconst internalListRef = useRef<LegendListRef | null>(null);\n\tconst listRef = externalListRef ?? internalListRef;\n\tconst controlsRef = useRef<ChatViewRenderComposerControls | null>(null);\n\tconst shouldAutoScrollRef = useRef(true);\n\tconst [composerNotice, setComposerNotice] = useState<string | null>(null);\n\tconst setComposerDraftPrompt = useComposerDraftStore((store) => store.setPrompt);\n\tconst addComposerDraftImages = useComposerDraftStore((store) => store.addImages);\n\n\tconst setNotice = useCallback(\n\t\t(message: string | null) => {\n\t\t\tsetComposerNotice(message);\n\t\t\tonComposerError?.(message);\n\t\t},\n\t\t[onComposerError],\n\t);\n\tconst scheduleStickToBottom = useCallback(() => {\n\t\tcontrolsRef.current?.scheduleStickToBottom();\n\t}, []);\n\tfunction restoreComposer(sendContext: ChatComposerSubmitPayload) {\n\t\tconst snapshot = composerRef.current?.readSnapshot();\n\t\tconst composerIsEmpty = !snapshot || snapshot.value.trim().length === 0;\n\t\tif (!composerIsEmpty) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst restoredImages = createComposerImageAttachments(sendContext.files);\n\t\tsetComposerDraftPrompt(effectiveComposerDraftKey, sendContext.text);\n\t\taddComposerDraftImages(effectiveComposerDraftKey, restoredImages);\n\t\tcomposerRef.current?.setDraft({\n\t\t\tmentionBindings: sendContext.mentionBindings,\n\t\t\tmessage: sendContext.text,\n\t\t});\n\t}\n\n\tasync function sendComposerMessage() {\n\t\tconst sendContext = composerRef.current?.getSendContext();\n\t\tif (!sendContext) {\n\t\t\tsetNotice(\"Composer is not ready. Try again.\");\n\t\t\treturn;\n\t\t}\n\t\tconst activePlan = activeProposedPlan;\n\t\tconst shouldSubmitPlanFollowUp =\n\t\t\tBoolean(activePlan) &&\n\t\t\tshowPlanFollowUpPrompt &&\n\t\t\tsendContext.items.length === 0 &&\n\t\t\tsendContext.files.length === 0;\n\t\tconst effectiveSendContext =\n\t\t\tshouldSubmitPlanFollowUp && activePlan\n\t\t\t\t? planImplementationSendContext(sendContext, activePlan)\n\t\t\t\t: sendContext;\n\t\tconst submitInteractionMode =\n\t\t\tshouldSubmitPlanFollowUp && activePlan\n\t\t\t\t? resolvePlanFollowUpSubmission({\n\t\t\t\t\t\tdraftText: sendContext.text,\n\t\t\t\t\t\tplanMarkdown: activePlan.planMarkdown,\n\t\t\t\t\t}).interactionMode\n\t\t\t\t: effectiveInteractionMode;\n\t\tif (\n\t\t\teffectiveSendContext.items.length === 0 &&\n\t\t\teffectiveSendContext.files.length === 0\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tawait lifecycle.sendComposerMessage(effectiveSendContext, {\n\t\t\tclearComposer: () => {\n\t\t\t\tcomposerRef.current?.clear();\n\t\t\t\tsetNotice(null);\n\t\t\t},\n\t\t\tprepareForOptimisticAppend: async () => {\n\t\t\t\tshouldAutoScrollRef.current = true;\n\t\t\t\tawait (controlsRef.current?.prepareForOptimisticAppend?.() ??\n\t\t\t\t\tlistRef.current?.scrollToEnd?.({ animated: false }));\n\t\t\t},\n\t\t\trestoreComposer,\n\t\t}, { interactionMode: submitInteractionMode, runtimeMode: effectiveRuntimeMode });\n\t\tif (submitInteractionMode !== effectiveInteractionMode) {\n\t\t\tsetInteractionMode(submitInteractionMode);\n\t\t}\n\t}\n\n\tconst submitPendingUserInput: NonNullable<\n\t\tCodexChatViewComposerProps[\"onPendingRequestSubmit\"]\n\t> = (response) => {\n\t\tconst request = pendingUserInput;\n\t\tif (!request) {\n\t\t\tsetNotice(\"Codex thread is not connected. Reconnect and try again.\");\n\t\t\treturn false;\n\t\t}\n\t\tvoid lifecycle.resolveServerRequest(request.requestId, response);\n\t\treturn true;\n\t};\n\tconst dismissPendingUserInput = () => {\n\t\tconst request = pendingUserInput;\n\t\tif (!request) {\n\t\t\treturn;\n\t\t}\n\t\tsubmitPendingUserInput(buildRequestUserInputResponse(request.pendingUserInput, {}));\n\t};\n\tfunction rejectPendingRequest(\n\t\trequest: CodexChatPendingRequest,\n\t\terror: Parameters<CodexChatPendingRequestRenderContext[\"reject\"]>[0] =\n\t\t\t\"Codex server request was dismissed.\",\n\t) {\n\t\tconst jsonRpcError =\n\t\t\ttypeof error === \"string\"\n\t\t\t\t? { code: -32000, message: error }\n\t\t\t\t: error;\n\t\treturn lifecycle.rejectServerRequest(request.requestId, jsonRpcError);\n\t}\n\tconst interrupt = useCallback(() => {\n\t\tvoid lifecycle.interrupt().then((accepted) => {\n\t\t\tif (!accepted) {\n\t\t\t\tsetNotice(\n\t\t\t\t\t\"Codex could not stop the active response. Reconnect and try again.\",\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}, [lifecycle, setNotice]);\n\tconst handleCommand = useCallback<NonNullable<CodexChatViewComposerProps[\"onCommand\"]>>(\n\t\t(command) => {\n\t\t\tif (command === \"plan\") {\n\t\t\t\tsetInteractionMode(\"plan\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (command === \"default\") {\n\t\t\t\tsetInteractionMode(\"default\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (command === \"compact\") {\n\t\t\t\tvoid lifecycle.compact().then((accepted) => {\n\t\t\t\t\tif (!accepted) {\n\t\t\t\t\t\tsetNotice(\"Codex thread is not connected. Reconnect and try again.\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonCommand?.(command);\n\t\t},\n\t\t[lifecycle, onCommand, setInteractionMode, setNotice],\n\t);\n\tconst implementProposedPlanInNewThread = useCallback(\n\t\t(plan: CodexChatProposedPlan) => {\n\t\t\tonImplementProposedPlan?.(plan);\n\t\t},\n\t\t[onImplementProposedPlan],\n\t);\n\n\tconst lifecycleBannerItems: ComposerBannerStackItem[] = [...bannerItems];\n\tif (composerNotice) {\n\t\tlifecycleBannerItems.push({\n\t\t\tid: \"composer-notice\",\n\t\t\ttitle: \"Composer needs attention\",\n\t\t\tdescription: composerNotice,\n\t\t\tvariant: \"warning\",\n\t\t\tonDismiss: () => setNotice(null),\n\t\t});\n\t}\n\tif (providerStatus && providerStatus.status !== \"ready\" && providerStatus.status !== \"disabled\") {\n\t\tconst providerLabel =\n\t\t\tproviderStatus.displayName?.trim() ||\n\t\t\t(providerStatus.driver\n\t\t\t\t? providerStatus.driver\n\t\t\t\t\t\t.split(/[-_\\s]+/g)\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n\t\t\t\t\t\t.join(\" \")\n\t\t\t\t: \"Codex\");\n\t\tconst description =\n\t\t\tproviderStatus.message ??\n\t\t\t(providerStatus.status === \"error\"\n\t\t\t\t? `${providerLabel} provider is unavailable.`\n\t\t\t\t: `${providerLabel} provider has limited availability.`);\n\t\tlifecycleBannerItems.push({\n\t\t\tdescription,\n\t\t\tid: \"provider-status\",\n\t\t\ttitle: `${providerLabel} provider status`,\n\t\t\tvariant: providerStatus.status === \"error\" ? \"error\" : \"warning\",\n\t\t});\n\t}\n\tlifecycleBannerItems.push(\n\t\t...renderState.banners\n\t\t\t.filter(\n\t\t\t\t(banner) =>\n\t\t\t\t\t!banner.request ||\n\t\t\t\t\t!customPendingRequestIds.has(banner.request.requestId),\n\t\t\t)\n\t\t\t.map((banner) => ({\n\t\t\t\t...banner,\n\t\t\t\taction:\n\t\t\t\t\tbanner.id === \"runtime-error\"\n\t\t\t\t\t\t? { label: \"Reconnect\", onClick: lifecycle.reconnect }\n\t\t\t\t\t\t: undefined,\n\t\t\t})),\n\t);\n\tlifecycleBannerItems.push(\n\t\t...pendingRequestRenderItems.map(({ node, request }) => ({\n\t\t\tid: `custom-pending-request:${request.requestId}`,\n\t\t\ttitle: \"Codex needs input\",\n\t\t\tdescription: node,\n\t\t\tvariant: \"info\" as const,\n\t\t})),\n\t);\n\tif (customUserInputNode) {\n\t\tlifecycleBannerItems.push({\n\t\t\tid: `custom-pending-request:${pendingUserInput?.requestId ?? \"user-input\"}`,\n\t\t\ttitle: \"Codex needs input\",\n\t\t\tdescription: customUserInputNode,\n\t\t\tvariant: \"info\",\n\t\t});\n\t}\n\tlifecycleBannerItems.push(...(renderBannerItems?.(renderState) ?? []));\n\tconst effectiveActions = showInteractionModeToggle ? (\n\t\t<>\n\t\t\t<CodexInteractionModeToggle\n\t\t\t\tmode={effectiveInteractionMode}\n\t\t\t\tonChange={setInteractionMode}\n\t\t\t/>\n\t\t\t{actions}\n\t\t</>\n\t) : (\n\t\tactions\n\t);\n\tconst chatView = (\n\t\t<TooltipProvider>\n\t\t\t<T3ChatView\n\t\t\t\tactions={effectiveActions}\n\t\t\t\tbannerItems={lifecycleBannerItems}\n\t\t\t\tclassName={className}\n\t\t\t\theaderLeading={headerLeading}\n\t\t\t\tlistRef={listRef}\n\t\t\t\tsubtitle={subtitle}\n\t\t\t\tthreadKey={effectiveThreadKey}\n\t\t\t\ttimeline={renderState.timeline}\n\t\t\t\ttitle={effectiveTitle}\n\t\t\t\tonControlsChange={(controls) => {\n\t\t\t\t\tcontrolsRef.current = controls;\n\t\t\t\t\tonControlsChange?.(controls);\n\t\t\t\t}}\n\t\t\t\tonIsAtEndChange={(isAtEnd) => {\n\t\t\t\t\tshouldAutoScrollRef.current = isAtEnd;\n\t\t\t\t\tonIsAtEndChange?.(isAtEnd);\n\t\t\t\t}}\n\t\t\t\tcomposer={\n\t\t\t\t\t<ChatComposer\n\t\t\t\t\t\tref={composerRef}\n\t\t\t\t\t\tcontextWindow={renderState.composer.contextWindow}\n\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\tBoolean(lifecycle.runtimeError) ||\n\t\t\t\t\t\t\tlifecycle.connectionStatus === \"connecting\" ||\n\t\t\t\t\t\t\tlifecycle.connectionStatus === \"reconnecting\"\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdraftKey={effectiveComposerDraftKey}\n\t\t\t\t\t\teditorAriaLabel={effectiveEditorAriaLabel}\n\t\t\t\t\t\tinteractionMode={effectiveInteractionMode}\n\t\t\t\t\t\tisConnecting={\n\t\t\t\t\t\t\tlifecycle.connectionStatus === \"connecting\" ||\n\t\t\t\t\t\t\tlifecycle.connectionStatus === \"reconnecting\"\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisEnvironmentUnavailable={isEnvironmentUnavailable}\n\t\t\t\t\t\tisRunning={lifecycle.turnRunning}\n\t\t\t\t\t\tisSending={lifecycle.isSending || lifecycle.isSendBusy}\n\t\t\t\t\t\tmentionRefs={mentionRefs ?? []}\n\t\t\t\t\t\tcomposerCommands={composerCommands}\n\t\t\t\t\t\tcomposerSkills={composerSkills}\n\t\t\t\t\t\tmodelOptions={modelOptions}\n\t\t\t\t\t\tpendingUserInput={\n\t\t\t\t\t\t\tcustomUserInputNode ? null : renderState.composer.pendingUserInput\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpendingRequestDisabled={lifecycle.connectionStatus !== \"connected\"}\n\t\t\t\t\t\tplaceholder={effectivePlaceholder}\n\t\t\t\t\t\tplanFollowUpTitle={activeProposedPlan?.title ?? null}\n\t\t\t\t\t\tplanSidebarLabel={planSidebarLabel}\n\t\t\t\t\t\tplanSidebarOpen={planSidebarOpen}\n\t\t\t\t\t\trealtimeConversation={realtimeConversation}\n\t\t\t\t\t\truntimeMode={effectiveRuntimeMode}\n\t\t\t\t\t\tshowInteractionModeToggle={showInteractionModeToggle}\n\t\t\t\t\t\tshowPlanFollowUpPrompt={showPlanFollowUpPrompt}\n\t\t\t\t\t\tshowPlanToggle={showPlanToggle}\n\t\t\t\t\t\tonCommand={handleCommand}\n\t\t\t\t\t\tonComposerError={setNotice}\n\t\t\t\t\t\tonImplementPlanInNewThread={\n\t\t\t\t\t\t\tactiveProposedPlan && onImplementProposedPlan\n\t\t\t\t\t\t\t\t? () => implementProposedPlanInNewThread(activeProposedPlan)\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonToggleInteractionMode={() =>\n\t\t\t\t\t\t\tsetInteractionMode(\n\t\t\t\t\t\t\t\teffectiveInteractionMode === \"plan\" ? \"default\" : \"plan\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonRuntimeModeChange={setRuntimeMode}\n\t\t\t\t\t\tonTogglePlanSidebar={onTogglePlanSidebar}\n\t\t\t\t\t\tonPendingRequestDismiss={dismissPendingUserInput}\n\t\t\t\t\t\tonPendingRequestSubmit={submitPendingUserInput}\n\t\t\t\t\t\tonInterrupt={interrupt}\n\t\t\t\t\t\tscheduleStickToBottom={scheduleStickToBottom}\n\t\t\t\t\t\tshouldAutoScrollRef={shouldAutoScrollRef}\n\t\t\t\t\t\tonSend={() => void sendComposerMessage()}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t</TooltipProvider>\n\t);\n\tif (!timelineExtras) {\n\t\treturn chatView;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{chatView}\n\t\t\t{timelineExtras}\n\t\t</>\n\t);\n}\n\nexport type {\n\tChatComposerHandle,\n\tChatComposerSubmitPayload,\n\tChatViewRenderComposerControls as CodexChatViewRenderComposerControls,\n};\n\nfunction isLifecycleCodexChatViewProps(\n\tprops: CodexChatViewProps,\n): props is CodexChatViewLifecycleProps {\n\treturn \"lifecycle\" in props && Boolean(props.lifecycle);\n}\n\nfunction defaultPendingRequestNode(request: CodexChatPendingRequest): ReactNode {\n\tif (request.kind === \"permissions\") {\n\t\treturn null;\n\t}\n\treturn `No default renderer is available for ${request.request.method}.`;\n}\n\nfunction CodexInteractionModeToggle({\n\tmode,\n\tonChange,\n}: {\n\tmode: CodexChatInteractionMode;\n\tonChange: (mode: CodexChatInteractionMode) => void;\n}): ReactElement {\n\treturn (\n\t\t<div\n\t\t\taria-label=\"Interaction mode\"\n\t\t\tclassName=\"flex shrink-0 items-center rounded-md border bg-background p-0.5\"\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t<button\n\t\t\t\taria-pressed={mode === \"default\"}\n\t\t\t\tclassName={\n\t\t\t\t\tmode === \"default\"\n\t\t\t\t\t\t? \"rounded px-2 py-1 font-medium text-foreground text-xs shadow-xs\"\n\t\t\t\t\t\t: \"rounded px-2 py-1 text-muted-foreground text-xs hover:text-foreground\"\n\t\t\t\t}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => onChange(\"default\")}\n\t\t\t>\n\t\t\t\tBuild\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\taria-pressed={mode === \"plan\"}\n\t\t\t\tclassName={\n\t\t\t\t\tmode === \"plan\"\n\t\t\t\t\t\t? \"rounded px-2 py-1 font-medium text-foreground text-xs shadow-xs\"\n\t\t\t\t\t\t: \"rounded px-2 py-1 text-muted-foreground text-xs hover:text-foreground\"\n\t\t\t\t}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => onChange(\"plan\")}\n\t\t\t>\n\t\t\t\tPlan\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n\nfunction planImplementationSendContext(\n\tsendContext: ChatComposerSubmitPayload,\n\tplan: CodexChatProposedPlan,\n): ChatComposerSubmitPayload {\n\tconst text = buildPlanImplementationPrompt(plan.planMarkdown);\n\treturn {\n\t\t...sendContext,\n\t\tfiles: [],\n\t\titems: [{ text, text_elements: [], type: \"text\" }],\n\t\ttext,\n\t};\n}\n","import { createElement } from \"react\";\n\nimport {\n\ttype CodexChatLifecycleOptions,\n\tcreateDefaultTurnStartParams,\n} from \"../hooks\";\nimport type {\n\tCodexAppServer,\n\tThreadId,\n\tThreadReader,\n} from \"../hooks\";\nimport {\n\tCodexChatView,\n\ttype CodexChatViewLifecycleProps,\n} from \"./codex-chat-view\";\n\ntype CodexChatLifecyclePassthroughProps = Pick<\n\tCodexChatLifecycleOptions,\n\t| \"buildThreadStartParams\"\n\t| \"buildTurnStartParams\"\n\t| \"connectOnMount\"\n\t| \"initialState\"\n\t| \"isRecoverableConnectionError\"\n\t| \"onActiveThread\"\n\t| \"onRuntimeError\"\n\t| \"onServerRequest\"\n\t| \"onState\"\n\t| \"onSubmittedUserMessage\"\n\t| \"onThreadListChanged\"\n\t| \"onThreadStarted\"\n>;\n\nexport type CodexChatProps = Omit<\n\tCodexChatViewLifecycleProps,\n\t\"lifecycle\"\n> &\n\tCodexChatLifecyclePassthroughProps & {\n\t\tappServer: CodexAppServer;\n\t\tthreadId: ThreadId | string;\n\t\tthreadReader?: ThreadReader;\n\t};\n\nexport function CodexChat({\n\tappServer,\n\tbuildThreadStartParams,\n\tbuildTurnStartParams,\n\tconnectOnMount,\n\tinitialState,\n\tisRecoverableConnectionError,\n\tonActiveThread,\n\tonRuntimeError,\n\tonServerRequest,\n\tonState,\n\tonSubmittedUserMessage,\n\tonThreadListChanged,\n\tonThreadStarted,\n\tthreadId,\n\tthreadReader,\n\t...viewProps\n}: CodexChatProps) {\n\tconst lifecycle: CodexChatLifecycleOptions = {\n\t\tappServer,\n\t\tbuildThreadStartParams,\n\t\tbuildTurnStartParams: buildTurnStartParams ?? createDefaultTurnStartParams,\n\t\tconnectOnMount,\n\t\tinitialState,\n\t\tisRecoverableConnectionError,\n\t\tonActiveThread,\n\t\tonRuntimeError,\n\t\tonServerRequest,\n\t\tonState,\n\t\tonSubmittedUserMessage,\n\t\tonThreadListChanged,\n\t\tonThreadStarted,\n\t\tthreadId,\n\t\tthreadReader,\n\t};\n\treturn createElement(CodexChatView, {\n\t\t...viewProps,\n\t\tlifecycle,\n\t});\n}\n","import {\n\tFragment,\n\tcreateElement,\n\ttype ComponentProps,\n\ttype ReactNode,\n} from \"react\";\n\nimport {\n\tSidebar,\n\tSidebarInset,\n\tSidebarProvider,\n} from \"../shadcn/ui/sidebar\";\n\nexport type CodexChatSidebarProps = ComponentProps<typeof Sidebar>;\n\nexport function CodexChatSidebar(props: CodexChatSidebarProps) {\n\treturn createElement(Sidebar, props);\n}\n\nexport type CodexChatLayoutProps = {\n\tchildren: ReactNode;\n\tsidebar?: ReactNode;\n\tside?: CodexChatSidebarProps[\"side\"];\n\tcollapsible?: CodexChatSidebarProps[\"collapsible\"];\n\tdefaultOpen?: ComponentProps<typeof SidebarProvider>[\"defaultOpen\"];\n\topen?: ComponentProps<typeof SidebarProvider>[\"open\"];\n\tonOpenChange?: ComponentProps<typeof SidebarProvider>[\"onOpenChange\"];\n\tclassName?: ComponentProps<typeof SidebarProvider>[\"className\"];\n};\n\nexport function CodexChatLayout({\n\tchildren,\n\tclassName,\n\tcollapsible,\n\tdefaultOpen,\n\tonOpenChange,\n\topen,\n\tside,\n\tsidebar,\n}: CodexChatLayoutProps) {\n\tif (!sidebar) {\n\t\treturn createElement(Fragment, null, children);\n\t}\n\n\treturn createElement(\n\t\tSidebarProvider,\n\t\t{\n\t\t\tclassName,\n\t\t\tdefaultOpen,\n\t\t\tonOpenChange,\n\t\t\topen,\n\t\t},\n\t\tcreateElement(CodexChatSidebar, { collapsible, side }, sidebar),\n\t\tcreateElement(SidebarInset, null, children),\n\t);\n}\n","import {\n\tcreateContext,\n\tcreateElement,\n\ttype ReactNode,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n} from \"react\";\n\nimport {\n\tasThreadId,\n\ttype ThreadEventSnapshot,\n} from \"../runtime\";\nimport type {\n\tCodexAppServer,\n\tThreadId,\n\tThreadReader,\n} from \"../hooks\";\nimport type { ChatComposerSubmitPayload } from \"../upstream/t3code/apps/web/src\";\nimport {\n\tdefaultCodexModel,\n\tdefaultCodexReasoningEffort,\n} from \"../upstream/t3code/apps/web/src/lib/modelSelection\";\nimport type { UserInput as CoreUserInput } from \"../upstream/codex-rs/core/src/protocol\";\nimport { useCodexChatLifecycle } from \"../hooks/chat-lifecycle\";\nimport {\n\tcreateCodexChatRenderState,\n\ttype CodexChatRenderState,\n} from \"./codex-chat-render-state\";\n\nexport type MessagePart =\n\t| { type: \"text\"; text: string }\n\t| { type: \"image\"; url: string }\n\t| { type: \"file\"; name?: string; url: string }\n\t| { type: \"tool-call\"; input: unknown; name: string; toolCallId: string }\n\t| { type: \"tool-result\"; output: unknown; toolCallId: string };\n\nexport type ChatMessage = {\n\tid: string;\n\tmetadata?: Record<string, unknown>;\n\tparts: MessagePart[];\n\trole: \"assistant\" | \"system\" | \"user\";\n};\n\nexport type ChatRuntimeStatus =\n\t| \"error\"\n\t| \"idle\"\n\t| \"loading\"\n\t| \"ready\"\n\t| \"streaming\"\n\t| \"submitting\";\n\nexport type SendMessageInput = {\n\tfiles?: FileList | File[] | MessagePart[];\n\tmetadata?: Record<string, unknown>;\n\ttext?: string;\n};\n\nexport type ChatRuntime = {\n\terror: Error | null;\n\tmessages: ChatMessage[];\n\tsendMessage(input: SendMessageInput): Promise<void>;\n\tsetThread(threadId: ThreadId | string | null): void;\n\tstatus: ChatRuntimeStatus;\n\tstop(): Promise<void>;\n\tthreadId: ThreadId | string | null;\n\tthreadSnapshot: ThreadEventSnapshot | null;\n\tthreadState: CodexChatRenderState | null;\n};\n\nexport type CodexChatRuntimeOptions = {\n\tappServer: CodexAppServer;\n\tthreadReader?: ThreadReader;\n\tthreadId?: ThreadId | string;\n};\n\nconst CodexChatContext = createContext<ChatRuntime | null>(null);\n\nexport type CodexChatProviderProps = CodexChatRuntimeOptions & {\n\tchildren?: ReactNode;\n};\n\nexport function CodexChatProvider({\n\tappServer,\n\tchildren,\n\tthreadReader,\n\tthreadId,\n}: CodexChatProviderProps) {\n\tconst runtime = useCodexChat({ appServer, threadReader, threadId });\n\treturn createElement(\n\t\tCodexChatContext.Provider,\n\t\t{ value: runtime },\n\t\tchildren,\n\t);\n}\n\nexport function useCodexChatRuntime(): ChatRuntime {\n\tconst runtime = useContext(CodexChatContext);\n\tif (!runtime) {\n\t\tthrow new Error(\"useCodexChatRuntime must be used inside CodexChatProvider.\");\n\t}\n\treturn runtime;\n}\n\nexport function useCodexChat(options: CodexChatRuntimeOptions): ChatRuntime {\n\tconst [activeThreadId, setActiveThreadId] = useState<\n\t\tThreadId | string | null\n\t>(options.threadId ?? null);\n\tconst normalizedThreadId = useMemo(\n\t\t() =>\n\t\t\tactiveThreadId\n\t\t\t\t? normalizeThreadId(activeThreadId)\n\t\t\t\t: asThreadId(\"00000000-0000-4000-8000-000000000000\"),\n\t\t[activeThreadId],\n\t);\n\tconst lifecycle = useCodexChatLifecycle({\n\t\tappServer: options.appServer,\n\t\tconnectOnMount: activeThreadId !== null,\n\t\tthreadId: normalizedThreadId,\n\t\tthreadReader: options.threadReader,\n\t});\n\tconst threadState = useMemo(\n\t\t() =>\n\t\t\tcreateCodexChatRenderState({\n\t\t\t\tlifecycle,\n\t\t\t\tsnapshot: lifecycle.threadSnapshot,\n\t\t\t}),\n\t\t[lifecycle],\n\t);\n\tconst error = lifecycle.runtimeError ? new Error(lifecycle.runtimeError) : null;\n\n\treturn {\n\t\terror,\n\t\tmessages: messagesFromRenderState(threadState),\n\t\tasync sendMessage(input) {\n\t\t\tif (!activeThreadId) {\n\t\t\t\tthrow new Error(\"Cannot send a Codex chat message without a thread.\");\n\t\t\t}\n\t\t\tconst sendContext = sendContextFromMessageInput(input);\n\t\t\tawait lifecycle.sendComposerMessage(sendContext, {\n\t\t\t\tclearComposer: () => {},\n\t\t\t\tprepareForOptimisticAppend: async () => {},\n\t\t\t\trestoreComposer: () => {},\n\t\t\t});\n\t\t},\n\t\tsetThread(nextThreadId) {\n\t\t\tsetActiveThreadId(nextThreadId);\n\t\t},\n\t\tstatus: chatRuntimeStatus(lifecycle, activeThreadId !== null),\n\t\tasync stop() {\n\t\t\tawait lifecycle.interrupt();\n\t\t},\n\t\tthreadId: activeThreadId,\n\t\tthreadSnapshot: lifecycle.threadSnapshot,\n\t\tthreadState,\n\t};\n}\n\nfunction chatRuntimeStatus(\n\tlifecycle: ReturnType<typeof useCodexChatLifecycle>,\n\thasThread: boolean,\n): ChatRuntimeStatus {\n\tif (!hasThread) {\n\t\treturn \"idle\";\n\t}\n\tif (lifecycle.runtimeError) {\n\t\treturn \"error\";\n\t}\n\tif (\n\t\tlifecycle.connectionStatus === \"connecting\" ||\n\t\tlifecycle.connectionStatus === \"reconnecting\"\n\t) {\n\t\treturn \"loading\";\n\t}\n\tif (lifecycle.isSending || lifecycle.isSendBusy) {\n\t\treturn \"submitting\";\n\t}\n\tif (lifecycle.turnRunning || lifecycle.assistantStreaming) {\n\t\treturn \"streaming\";\n\t}\n\treturn \"ready\";\n}\n\nfunction sendContextFromMessageInput(input: SendMessageInput): ChatComposerSubmitPayload {\n\tconst text = input.text?.trim() ?? \"\";\n\tconst files = messageInputFiles(input.files);\n\tconst fileParts =\n\t\tinput.files && !isFileList(input.files) && !isFileArray(input.files)\n\t\t\t? input.files\n\t\t\t: [];\n\tconst items: ChatComposerSubmitPayload[\"items\"] = [\n\t\t...(text\n\t\t\t? [{\n\t\t\t\t\ttext,\n\t\t\t\t\ttext_elements: [],\n\t\t\t\t\ttype: \"text\" as const,\n\t\t\t\t}]\n\t\t\t: []),\n\t\t...fileParts.flatMap(messagePartToComposerItem),\n\t];\n\treturn {\n\t\teffort: defaultCodexReasoningEffort,\n\t\tfiles,\n\t\titems,\n\t\tmentionBindings: [],\n\t\tmodel: defaultCodexModel,\n\t\ttext,\n\t};\n}\n\nfunction messageInputFiles(\n\tfiles: SendMessageInput[\"files\"],\n): ChatComposerSubmitPayload[\"files\"] {\n\tif (!files) {\n\t\treturn [];\n\t}\n\tif (isFileList(files)) {\n\t\treturn Array.from(files);\n\t}\n\tif (isFileArray(files)) {\n\t\treturn files;\n\t}\n\treturn [];\n}\n\nfunction messagePartToComposerItem(\n\tpart: MessagePart,\n): ChatComposerSubmitPayload[\"items\"] {\n\tif (part.type === \"image\") {\n\t\treturn [{ image_url: part.url, type: \"image\" }];\n\t}\n\tif (part.type === \"file\") {\n\t\treturn [{ path: part.url, type: \"local_image\" }];\n\t}\n\treturn [];\n}\n\nfunction isFileList(files: SendMessageInput[\"files\"]): files is FileList {\n\treturn typeof FileList !== \"undefined\" && files instanceof FileList;\n}\n\nfunction isFileArray(files: SendMessageInput[\"files\"]): files is File[] {\n\treturn (\n\t\ttypeof File !== \"undefined\" &&\n\t\tArray.isArray(files) &&\n\t\tfiles.every((file) => file instanceof File)\n\t);\n}\n\nfunction messagesFromRenderState(threadState: CodexChatRenderState): ChatMessage[] {\n\treturn threadState.items.flatMap((item): ChatMessage[] => {\n\t\tif (item.type === \"UserMessage\") {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tparts: item.content.flatMap(userInputToMessageParts),\n\t\t\t\t\trole: \"user\",\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\tif (item.type === \"AgentMessage\") {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: item.id,\n\t\t\t\t\tparts: item.content.map((part) => ({\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: part.text,\n\t\t\t\t\t})),\n\t\t\t\t\trole: \"assistant\",\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn [];\n\t});\n}\n\nfunction userInputToMessageParts(input: CoreUserInput): MessagePart[] {\n\tif (input.type === \"text\") {\n\t\treturn [{ type: \"text\", text: input.text }];\n\t}\n\tif (input.type === \"image\") {\n\t\treturn [{ type: \"image\", url: input.image_url }];\n\t}\n\tif (input.type === \"local_image\") {\n\t\treturn [{ type: \"file\", url: input.path }];\n\t}\n\treturn [];\n}\n\nfunction normalizeThreadId(threadId: ThreadId | string): ThreadId {\n\treturn typeof threadId === \"string\" ? asThreadId(threadId) : threadId;\n}\n","import {\n\tcreateElement,\n\ttype ReactNode,\n\tuseCallback,\n} from \"react\";\n\nimport { useCodexChatRuntime } from \"./chat-runtime\";\n\nexport function CodexThread({ children }: { children?: ReactNode }) {\n\treturn createElement(\"div\", { \"data-codex-thread\": \"\" }, children);\n}\n\nexport function CodexMessages() {\n\tconst runtime = useCodexChatRuntime();\n\treturn createElement(\n\t\t\"div\",\n\t\t{ \"data-codex-messages\": \"\" },\n\t\truntime.messages.map((message) =>\n\t\t\tcreateElement(\n\t\t\t\t\"div\",\n\t\t\t\t{ \"data-role\": message.role, key: message.id },\n\t\t\t\tmessage.parts\n\t\t\t\t\t.filter((part) => part.type === \"text\")\n\t\t\t\t\t.map((part) => part.text)\n\t\t\t\t\t.join(\"\\n\"),\n\t\t\t),\n\t\t),\n\t);\n}\n\nexport function CodexComposer() {\n\tconst runtime = useCodexChatRuntime();\n\tconst sendMessage = useCallback(\n\t\tasync (formData: FormData) => {\n\t\t\tconst text = String(formData.get(\"message\") ?? \"\");\n\t\t\tif (text.trim()) {\n\t\t\t\tawait runtime.sendMessage({ text });\n\t\t\t}\n\t\t},\n\t\t[runtime],\n\t);\n\treturn createElement(\n\t\t\"form\",\n\t\t{ action: sendMessage, \"data-codex-composer\": \"\" },\n\t\tcreateElement(\"textarea\", { name: \"message\" }),\n\t\tcreateElement(\"button\", { type: \"submit\" }, \"Send\"),\n\t);\n}\n"]}
|
package/dist/chunk-YHVCFD2D.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
// src/upstream/codex-rs/utils/string/src/truncate.ts
|
|
2
|
-
var APPROX_BYTES_PER_TOKEN = 4;
|
|
3
|
-
function truncate_middle_chars(value, maxBytes) {
|
|
4
|
-
return truncate_with_byte_estimate(value, maxBytes, false);
|
|
5
|
-
}
|
|
6
|
-
function truncate_middle_with_token_budget(value, maxTokens) {
|
|
7
|
-
if (value.length === 0) {
|
|
8
|
-
return ["", null];
|
|
9
|
-
}
|
|
10
|
-
if (maxTokens > 0 && utf8ByteLength(value) <= approx_bytes_for_tokens(maxTokens)) {
|
|
11
|
-
return [value, null];
|
|
12
|
-
}
|
|
13
|
-
const truncated = truncate_with_byte_estimate(
|
|
14
|
-
value,
|
|
15
|
-
approx_bytes_for_tokens(maxTokens),
|
|
16
|
-
true
|
|
17
|
-
);
|
|
18
|
-
const totalTokens = approx_token_count(value);
|
|
19
|
-
return truncated === value ? [truncated, null] : [truncated, totalTokens];
|
|
20
|
-
}
|
|
21
|
-
function approx_token_count(text) {
|
|
22
|
-
const length = utf8ByteLength(text);
|
|
23
|
-
return Math.ceil(length / APPROX_BYTES_PER_TOKEN);
|
|
24
|
-
}
|
|
25
|
-
function approx_bytes_for_tokens(tokens) {
|
|
26
|
-
return Math.max(0, Math.trunc(tokens)) * APPROX_BYTES_PER_TOKEN;
|
|
27
|
-
}
|
|
28
|
-
function approx_tokens_from_byte_count(bytes) {
|
|
29
|
-
return Math.ceil(Math.max(0, Math.trunc(bytes)) / APPROX_BYTES_PER_TOKEN);
|
|
30
|
-
}
|
|
31
|
-
function truncate_with_byte_estimate(value, maxBytes, useTokens) {
|
|
32
|
-
if (value.length === 0) {
|
|
33
|
-
return "";
|
|
34
|
-
}
|
|
35
|
-
const normalizedMaxBytes = Math.max(0, Math.trunc(maxBytes));
|
|
36
|
-
const totalBytes = utf8ByteLength(value);
|
|
37
|
-
if (normalizedMaxBytes === 0) {
|
|
38
|
-
return format_truncation_marker(
|
|
39
|
-
useTokens,
|
|
40
|
-
removed_units(useTokens, totalBytes, [...value].length)
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
if (totalBytes <= normalizedMaxBytes) {
|
|
44
|
-
return value;
|
|
45
|
-
}
|
|
46
|
-
const [leftBudget, rightBudget] = split_budget(normalizedMaxBytes);
|
|
47
|
-
const { left, removedChars, right } = split_string(value, leftBudget, rightBudget);
|
|
48
|
-
const marker = format_truncation_marker(
|
|
49
|
-
useTokens,
|
|
50
|
-
removed_units(
|
|
51
|
-
useTokens,
|
|
52
|
-
Math.max(0, totalBytes - normalizedMaxBytes),
|
|
53
|
-
removedChars
|
|
54
|
-
)
|
|
55
|
-
);
|
|
56
|
-
return assemble_truncated_output(left, right, marker);
|
|
57
|
-
}
|
|
58
|
-
function split_budget(maxBytes) {
|
|
59
|
-
const left = Math.floor(maxBytes / 2);
|
|
60
|
-
return [left, maxBytes - left];
|
|
61
|
-
}
|
|
62
|
-
function split_string(value, beginningBytes, endBytes) {
|
|
63
|
-
let left = "";
|
|
64
|
-
let right = "";
|
|
65
|
-
let leftBytes = 0;
|
|
66
|
-
const chars = [...value];
|
|
67
|
-
for (const char of chars) {
|
|
68
|
-
const nextBytes = utf8ByteLength(char);
|
|
69
|
-
if (leftBytes + nextBytes > beginningBytes) {
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
left += char;
|
|
73
|
-
leftBytes += nextBytes;
|
|
74
|
-
}
|
|
75
|
-
let rightBytes = 0;
|
|
76
|
-
for (let index = chars.length - 1; index >= 0; index -= 1) {
|
|
77
|
-
const char = chars[index] ?? "";
|
|
78
|
-
const nextBytes = utf8ByteLength(char);
|
|
79
|
-
if (rightBytes + nextBytes > endBytes) {
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
right = `${char}${right}`;
|
|
83
|
-
rightBytes += nextBytes;
|
|
84
|
-
}
|
|
85
|
-
const keptChars = [...left].length + [...right].length;
|
|
86
|
-
return {
|
|
87
|
-
left,
|
|
88
|
-
removedChars: Math.max(0, chars.length - keptChars),
|
|
89
|
-
right
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
function assemble_truncated_output(left, right, marker) {
|
|
93
|
-
if (!left && !right) {
|
|
94
|
-
return marker;
|
|
95
|
-
}
|
|
96
|
-
if (!left) {
|
|
97
|
-
return `${marker}${right}`;
|
|
98
|
-
}
|
|
99
|
-
if (!right) {
|
|
100
|
-
return `${left}${marker}`;
|
|
101
|
-
}
|
|
102
|
-
return `${left}${marker}${right}`;
|
|
103
|
-
}
|
|
104
|
-
function format_truncation_marker(useTokens, removedUnits) {
|
|
105
|
-
const unit = useTokens ? "tokens" : "chars";
|
|
106
|
-
return `\u2026${removedUnits} ${unit} truncated\u2026`;
|
|
107
|
-
}
|
|
108
|
-
function removed_units(useTokens, removedBytes, removedChars) {
|
|
109
|
-
return useTokens ? approx_tokens_from_byte_count(removedBytes) : removedChars;
|
|
110
|
-
}
|
|
111
|
-
function utf8ByteLength(value) {
|
|
112
|
-
return new TextEncoder().encode(value).byteLength;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export { approx_bytes_for_tokens, approx_token_count, approx_tokens_from_byte_count, truncate_middle_chars, truncate_middle_with_token_budget };
|
|
116
|
-
//# sourceMappingURL=chunk-YHVCFD2D.js.map
|
|
117
|
-
//# sourceMappingURL=chunk-YHVCFD2D.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/upstream/codex-rs/utils/string/src/truncate.ts"],"names":[],"mappings":"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","file":"chunk-YHVCFD2D.js","sourcesContent":["const APPROX_BYTES_PER_TOKEN = 4;\n\nexport function truncate_middle_chars(value: string, maxBytes: number): string {\n\treturn truncate_with_byte_estimate(value, maxBytes, false);\n}\n\nexport function truncate_middle_with_token_budget(\n\tvalue: string,\n\tmaxTokens: number,\n): [string, number | null] {\n\tif (value.length === 0) {\n\t\treturn [\"\", null];\n\t}\n\tif (maxTokens > 0 && utf8ByteLength(value) <= approx_bytes_for_tokens(maxTokens)) {\n\t\treturn [value, null];\n\t}\n\n\tconst truncated = truncate_with_byte_estimate(\n\t\tvalue,\n\t\tapprox_bytes_for_tokens(maxTokens),\n\t\ttrue,\n\t);\n\tconst totalTokens = approx_token_count(value);\n\treturn truncated === value ? [truncated, null] : [truncated, totalTokens];\n}\n\nexport function approx_token_count(text: string): number {\n\tconst length = utf8ByteLength(text);\n\treturn Math.ceil(length / APPROX_BYTES_PER_TOKEN);\n}\n\nexport function approx_bytes_for_tokens(tokens: number): number {\n\treturn Math.max(0, Math.trunc(tokens)) * APPROX_BYTES_PER_TOKEN;\n}\n\nexport function approx_tokens_from_byte_count(bytes: number): number {\n\treturn Math.ceil(Math.max(0, Math.trunc(bytes)) / APPROX_BYTES_PER_TOKEN);\n}\n\nfunction truncate_with_byte_estimate(\n\tvalue: string,\n\tmaxBytes: number,\n\tuseTokens: boolean,\n): string {\n\tif (value.length === 0) {\n\t\treturn \"\";\n\t}\n\tconst normalizedMaxBytes = Math.max(0, Math.trunc(maxBytes));\n\tconst totalBytes = utf8ByteLength(value);\n\tif (normalizedMaxBytes === 0) {\n\t\treturn format_truncation_marker(\n\t\t\tuseTokens,\n\t\t\tremoved_units(useTokens, totalBytes, [...value].length),\n\t\t);\n\t}\n\tif (totalBytes <= normalizedMaxBytes) {\n\t\treturn value;\n\t}\n\n\tconst [leftBudget, rightBudget] = split_budget(normalizedMaxBytes);\n\tconst { left, removedChars, right } = split_string(value, leftBudget, rightBudget);\n\tconst marker = format_truncation_marker(\n\t\tuseTokens,\n\t\tremoved_units(\n\t\t\tuseTokens,\n\t\t\tMath.max(0, totalBytes - normalizedMaxBytes),\n\t\t\tremovedChars,\n\t\t),\n\t);\n\treturn assemble_truncated_output(left, right, marker);\n}\n\nfunction split_budget(maxBytes: number): [number, number] {\n\tconst left = Math.floor(maxBytes / 2);\n\treturn [left, maxBytes - left];\n}\n\nfunction split_string(\n\tvalue: string,\n\tbeginningBytes: number,\n\tendBytes: number,\n): { left: string; removedChars: number; right: string } {\n\tlet left = \"\";\n\tlet right = \"\";\n\tlet leftBytes = 0;\n\tconst chars = [...value];\n\tfor (const char of chars) {\n\t\tconst nextBytes = utf8ByteLength(char);\n\t\tif (leftBytes + nextBytes > beginningBytes) {\n\t\t\tbreak;\n\t\t}\n\t\tleft += char;\n\t\tleftBytes += nextBytes;\n\t}\n\n\tlet rightBytes = 0;\n\tfor (let index = chars.length - 1; index >= 0; index -= 1) {\n\t\tconst char = chars[index] ?? \"\";\n\t\tconst nextBytes = utf8ByteLength(char);\n\t\tif (rightBytes + nextBytes > endBytes) {\n\t\t\tbreak;\n\t\t}\n\t\tright = `${char}${right}`;\n\t\trightBytes += nextBytes;\n\t}\n\n\tconst keptChars = [...left].length + [...right].length;\n\treturn {\n\t\tleft,\n\t\tremovedChars: Math.max(0, chars.length - keptChars),\n\t\tright,\n\t};\n}\n\nfunction assemble_truncated_output(\n\tleft: string,\n\tright: string,\n\tmarker: string,\n): string {\n\tif (!left && !right) {\n\t\treturn marker;\n\t}\n\tif (!left) {\n\t\treturn `${marker}${right}`;\n\t}\n\tif (!right) {\n\t\treturn `${left}${marker}`;\n\t}\n\treturn `${left}${marker}${right}`;\n}\n\nfunction format_truncation_marker(useTokens: boolean, removedUnits: number): string {\n\tconst unit = useTokens ? \"tokens\" : \"chars\";\n\treturn `…${removedUnits} ${unit} truncated…`;\n}\n\nfunction removed_units(\n\tuseTokens: boolean,\n\tremovedBytes: number,\n\tremovedChars: number,\n): number {\n\treturn useTokens ? approx_tokens_from_byte_count(removedBytes) : removedChars;\n}\n\nfunction utf8ByteLength(value: string): number {\n\treturn new TextEncoder().encode(value).byteLength;\n}\n"]}
|