@cartanova/qgrid-cli 1.9.0 → 2.0.1
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/README.md +47 -68
- package/bundle/dist/application/qgrid/oauth.js +1 -1
- package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +137 -0
- package/bundle/dist/application/qgrid/qgrid.dispatcher.js +116 -16
- package/bundle/dist/application/qgrid/qgrid.frame.js +350 -83
- package/bundle/dist/application/qgrid/qgrid.types.js +132 -19
- package/bundle/dist/application/qgrid/token-subscriber.js +14 -4
- package/bundle/dist/application/qgrid/token-trigger-setup.js +3 -4
- package/bundle/dist/application/qgrid/tool-emulation.js +102 -0
- package/bundle/dist/application/queries.generated.js +8 -3
- package/bundle/dist/application/request-log/request-log.model.js +105 -1
- package/bundle/dist/application/request-log/request-log.types.js +14 -3
- package/bundle/dist/application/request-log-step/request-log-step.model.js +115 -0
- package/bundle/dist/application/request-log-step/request-log-step.types.js +28 -0
- package/bundle/dist/application/sonamu.generated.js +145 -20
- package/bundle/dist/application/sonamu.generated.sso.js +63 -8
- package/bundle/dist/application/token/token.model.js +10 -8
- package/bundle/dist/application/token/token.types.js +19 -11
- package/bundle/dist/codex-protocol/AbsolutePathBuf.js +2 -0
- package/bundle/dist/codex-protocol/AgentPath.js +2 -0
- package/bundle/dist/codex-protocol/ApplyPatchApprovalParams.js +2 -0
- package/bundle/dist/codex-protocol/ApplyPatchApprovalResponse.js +2 -0
- package/bundle/dist/codex-protocol/AuthMode.js +2 -0
- package/bundle/dist/codex-protocol/ClientInfo.js +2 -0
- package/bundle/dist/codex-protocol/ClientNotification.js +2 -0
- package/bundle/dist/codex-protocol/ClientRequest.js +2 -0
- package/bundle/dist/codex-protocol/CollaborationMode.js +2 -0
- package/bundle/dist/codex-protocol/ContentItem.js +2 -0
- package/bundle/dist/codex-protocol/ConversationGitInfo.js +2 -0
- package/bundle/dist/codex-protocol/ConversationSummary.js +2 -0
- package/bundle/dist/codex-protocol/ExecCommandApprovalParams.js +2 -0
- package/bundle/dist/codex-protocol/ExecCommandApprovalResponse.js +2 -0
- package/bundle/dist/codex-protocol/ExecPolicyAmendment.js +2 -0
- package/bundle/dist/codex-protocol/FileChange.js +2 -0
- package/bundle/dist/codex-protocol/ForcedLoginMethod.js +2 -0
- package/bundle/dist/codex-protocol/FunctionCallOutputBody.js +2 -0
- package/bundle/dist/codex-protocol/FunctionCallOutputContentItem.js +2 -0
- package/bundle/dist/codex-protocol/FuzzyFileSearchMatchType.js +2 -0
- package/bundle/dist/codex-protocol/FuzzyFileSearchParams.js +2 -0
- package/bundle/dist/codex-protocol/FuzzyFileSearchResponse.js +2 -0
- package/bundle/dist/codex-protocol/FuzzyFileSearchResult.js +2 -0
- package/bundle/dist/codex-protocol/FuzzyFileSearchSessionCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/GetAuthStatusParams.js +2 -0
- package/bundle/dist/codex-protocol/GetAuthStatusResponse.js +2 -0
- package/bundle/dist/codex-protocol/GetConversationSummaryParams.js +2 -0
- package/bundle/dist/codex-protocol/GetConversationSummaryResponse.js +2 -0
- package/bundle/dist/codex-protocol/GitDiffToRemoteParams.js +2 -0
- package/bundle/dist/codex-protocol/GitDiffToRemoteResponse.js +2 -0
- package/bundle/dist/codex-protocol/GitSha.js +2 -0
- package/bundle/dist/codex-protocol/ImageDetail.js +2 -0
- package/bundle/dist/codex-protocol/InitializeCapabilities.js +2 -0
- package/bundle/dist/codex-protocol/InitializeParams.js +2 -0
- package/bundle/dist/codex-protocol/InitializeResponse.js +2 -0
- package/bundle/dist/codex-protocol/InputModality.js +2 -0
- package/bundle/dist/codex-protocol/InternalSessionSource.js +2 -0
- package/bundle/dist/codex-protocol/LocalShellAction.js +2 -0
- package/bundle/dist/codex-protocol/LocalShellExecAction.js +2 -0
- package/bundle/dist/codex-protocol/LocalShellStatus.js +2 -0
- package/bundle/dist/codex-protocol/MessagePhase.js +2 -0
- package/bundle/dist/codex-protocol/ModeKind.js +2 -0
- package/bundle/dist/codex-protocol/NetworkPolicyAmendment.js +2 -0
- package/bundle/dist/codex-protocol/NetworkPolicyRuleAction.js +2 -0
- package/bundle/dist/codex-protocol/ParsedCommand.js +2 -0
- package/bundle/dist/codex-protocol/Personality.js +2 -0
- package/bundle/dist/codex-protocol/PlanType.js +2 -0
- package/bundle/dist/codex-protocol/RealtimeConversationVersion.js +2 -0
- package/bundle/dist/codex-protocol/RealtimeOutputModality.js +2 -0
- package/bundle/dist/codex-protocol/RealtimeVoice.js +2 -0
- package/bundle/dist/codex-protocol/RealtimeVoicesList.js +2 -0
- package/bundle/dist/codex-protocol/ReasoningEffort.js +2 -0
- package/bundle/dist/codex-protocol/ReasoningItemContent.js +2 -0
- package/bundle/dist/codex-protocol/ReasoningItemReasoningSummary.js +2 -0
- package/bundle/dist/codex-protocol/ReasoningSummary.js +2 -0
- package/bundle/dist/codex-protocol/RequestId.js +2 -0
- package/bundle/dist/codex-protocol/Resource.js +2 -0
- package/bundle/dist/codex-protocol/ResourceContent.js +2 -0
- package/bundle/dist/codex-protocol/ResourceTemplate.js +2 -0
- package/bundle/dist/codex-protocol/ResponseItem.js +2 -0
- package/bundle/dist/codex-protocol/ReviewDecision.js +2 -0
- package/bundle/dist/codex-protocol/ServerNotification.js +2 -0
- package/bundle/dist/codex-protocol/ServerRequest.js +2 -0
- package/bundle/dist/codex-protocol/SessionSource.js +2 -0
- package/bundle/dist/codex-protocol/Settings.js +2 -0
- package/bundle/dist/codex-protocol/SubAgentSource.js +2 -0
- package/bundle/dist/codex-protocol/ThreadId.js +2 -0
- package/bundle/dist/codex-protocol/ThreadMemoryMode.js +2 -0
- package/bundle/dist/codex-protocol/Tool.js +2 -0
- package/bundle/dist/codex-protocol/Verbosity.js +2 -0
- package/bundle/dist/codex-protocol/WebSearchAction.js +2 -0
- package/bundle/dist/codex-protocol/WebSearchContextSize.js +2 -0
- package/bundle/dist/codex-protocol/WebSearchLocation.js +2 -0
- package/bundle/dist/codex-protocol/WebSearchMode.js +2 -0
- package/bundle/dist/codex-protocol/WebSearchToolConfig.js +2 -0
- package/bundle/dist/codex-protocol/index.js +3 -0
- package/bundle/dist/codex-protocol/serde_json/JsonValue.js +2 -0
- package/bundle/dist/codex-protocol/v2/Account.js +2 -0
- package/bundle/dist/codex-protocol/v2/AccountLoginCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/AccountRateLimitsUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/AccountUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ActivePermissionProfile.js +2 -0
- package/bundle/dist/codex-protocol/v2/ActivePermissionProfileModification.js +2 -0
- package/bundle/dist/codex-protocol/v2/AddCreditsNudgeCreditType.js +2 -0
- package/bundle/dist/codex-protocol/v2/AddCreditsNudgeEmailStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/AdditionalFileSystemPermissions.js +2 -0
- package/bundle/dist/codex-protocol/v2/AdditionalNetworkPermissions.js +2 -0
- package/bundle/dist/codex-protocol/v2/AdditionalPermissionProfile.js +2 -0
- package/bundle/dist/codex-protocol/v2/AgentMessageDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/AnalyticsConfig.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppBranding.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppListUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppMetadata.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppReview.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppScreenshot.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppSummary.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppToolApproval.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppToolsConfig.js +2 -0
- package/bundle/dist/codex-protocol/v2/ApprovalsReviewer.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppsConfig.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppsDefaultConfig.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppsListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/AppsListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/AskForApproval.js +2 -0
- package/bundle/dist/codex-protocol/v2/AutoReviewDecisionSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/ByteRange.js +2 -0
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshReason.js +2 -0
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/CodexErrorInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/CollabAgentState.js +2 -0
- package/bundle/dist/codex-protocol/v2/CollabAgentStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/CollabAgentTool.js +2 -0
- package/bundle/dist/codex-protocol/v2/CollabAgentToolCallStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/CollaborationModeMask.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandAction.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecOutputDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecOutputStream.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecResizeParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecResizeResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecTerminalSize.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecTerminateParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecTerminateResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecWriteParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecWriteResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecutionApprovalDecision.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecutionOutputDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecutionSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandExecutionStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/CommandMigration.js +2 -0
- package/bundle/dist/codex-protocol/v2/Config.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigBatchWriteParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigEdit.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigLayer.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigLayerMetadata.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigLayerSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigReadParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigReadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigRequirements.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigRequirementsReadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigValueWriteParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigWarningNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfigWriteResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfiguredHookHandler.js +2 -0
- package/bundle/dist/codex-protocol/v2/ConfiguredHookMatcherGroup.js +2 -0
- package/bundle/dist/codex-protocol/v2/ContextCompactedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/CreditsSnapshot.js +2 -0
- package/bundle/dist/codex-protocol/v2/DeprecationNoticeNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/DynamicToolCallOutputContentItem.js +2 -0
- package/bundle/dist/codex-protocol/v2/DynamicToolCallParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/DynamicToolCallResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/DynamicToolCallStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/DynamicToolSpec.js +2 -0
- package/bundle/dist/codex-protocol/v2/ErrorNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExecPolicyAmendment.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExperimentalFeature.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureStage.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItem.js +2 -0
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItemType.js +2 -0
- package/bundle/dist/codex-protocol/v2/FeedbackUploadParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FeedbackUploadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileChangeApprovalDecision.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileChangeOutputDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileChangePatchUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileSystemAccessMode.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileSystemPath.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileSystemSandboxEntry.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileSystemSpecialPath.js +2 -0
- package/bundle/dist/codex-protocol/v2/FileUpdateChange.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsChangedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsCopyParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsCopyResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsCreateDirectoryParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsCreateDirectoryResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsGetMetadataParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsGetMetadataResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryEntry.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsReadFileParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsReadFileResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsRemoveParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsRemoveResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsUnwatchParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsUnwatchResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsWatchParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsWatchResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsWriteFileParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/FsWriteFileResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/GetAccountParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/GetAccountRateLimitsResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/GetAccountResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/GitInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/GrantedPermissionProfile.js +2 -0
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReview.js +2 -0
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewAction.js +2 -0
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/GuardianCommandSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/GuardianRiskLevel.js +2 -0
- package/bundle/dist/codex-protocol/v2/GuardianUserAuthorization.js +2 -0
- package/bundle/dist/codex-protocol/v2/GuardianWarningNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookErrorInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookEventName.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookExecutionMode.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookHandlerType.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookMetadata.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookMigration.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookOutputEntry.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookOutputEntryKind.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookPromptFragment.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookRunStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookRunSummary.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookScope.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookStartedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/HookTrustStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/HooksListEntry.js +2 -0
- package/bundle/dist/codex-protocol/v2/HooksListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/HooksListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ItemCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ItemStartedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ListMcpServerStatusParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ListMcpServerStatusResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/LoginAccountParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/LoginAccountResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/LogoutAccountResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ManagedHooksRequirements.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceAddParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceAddResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceInterface.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceLoadErrorInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceRemoveParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceRemoveResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeErrorInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpAuthStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationArrayType.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationBooleanSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationBooleanType.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationConstOption.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationNumberSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationNumberType.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationObjectType.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationPrimitiveSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationStringFormat.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationStringSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationStringType.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledEnumItems.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledEnumItems.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpResourceReadParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpResourceReadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerElicitationAction.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerMigration.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerRefreshResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerStartupState.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerStatusDetail.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerStatusUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerToolCallParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpServerToolCallResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpToolCallError.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpToolCallProgressNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpToolCallResult.js +2 -0
- package/bundle/dist/codex-protocol/v2/McpToolCallStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/MemoryCitation.js +2 -0
- package/bundle/dist/codex-protocol/v2/MemoryCitationEntry.js +2 -0
- package/bundle/dist/codex-protocol/v2/MergeStrategy.js +2 -0
- package/bundle/dist/codex-protocol/v2/MigrationDetails.js +2 -0
- package/bundle/dist/codex-protocol/v2/Model.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelAvailabilityNux.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelRerouteReason.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelReroutedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelServiceTier.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelUpgradeInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelVerification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ModelVerificationNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkAccess.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkApprovalContext.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkApprovalProtocol.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkDomainPermission.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkPolicyAmendment.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkPolicyRuleAction.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkRequirements.js +2 -0
- package/bundle/dist/codex-protocol/v2/NetworkUnixSocketPermission.js +2 -0
- package/bundle/dist/codex-protocol/v2/NonSteerableTurnKind.js +2 -0
- package/bundle/dist/codex-protocol/v2/OverriddenMetadata.js +2 -0
- package/bundle/dist/codex-protocol/v2/PatchApplyStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/PatchChangeKind.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionGrantScope.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionProfile.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionProfileFileSystemPermissions.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionProfileModificationParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionProfileNetworkPermissions.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionProfileSelectionParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PlanDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginAuthPolicy.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginAvailability.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginDetail.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginHookSummary.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginInstallParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginInstallPolicy.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginInstallResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginInterface.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginListMarketplaceKind.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginMarketplaceEntry.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginReadParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginReadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareContext.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareDeleteParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareDeleteResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareDiscoverability.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareListItem.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginSharePrincipal.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginSharePrincipalType.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareSaveParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareSaveResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareTarget.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateDiscoverability.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginSkillReadParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginSkillReadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginSummary.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginUninstallParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginUninstallResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/PluginsMigration.js +2 -0
- package/bundle/dist/codex-protocol/v2/ProcessExitedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ProcessOutputDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ProcessOutputStream.js +2 -0
- package/bundle/dist/codex-protocol/v2/ProcessTerminalSize.js +2 -0
- package/bundle/dist/codex-protocol/v2/ProfileV2.js +2 -0
- package/bundle/dist/codex-protocol/v2/RateLimitReachedType.js +2 -0
- package/bundle/dist/codex-protocol/v2/RateLimitSnapshot.js +2 -0
- package/bundle/dist/codex-protocol/v2/RateLimitWindow.js +2 -0
- package/bundle/dist/codex-protocol/v2/RawResponseItemCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReasoningEffortOption.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReasoningSummaryPartAddedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReasoningTextDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/RemoteControlConnectionStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/RemoteControlStatusChangedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/RequestPermissionProfile.js +2 -0
- package/bundle/dist/codex-protocol/v2/ResidencyRequirement.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReviewDelivery.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReviewStartParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReviewStartResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ReviewTarget.js +2 -0
- package/bundle/dist/codex-protocol/v2/SandboxMode.js +2 -0
- package/bundle/dist/codex-protocol/v2/SandboxPolicy.js +2 -0
- package/bundle/dist/codex-protocol/v2/SandboxWorkspaceWrite.js +2 -0
- package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ServerRequestResolvedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/SessionMigration.js +2 -0
- package/bundle/dist/codex-protocol/v2/SessionSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillDependencies.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillErrorInfo.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillInterface.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillMetadata.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillScope.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillSummary.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillToolDependency.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillsChangedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillsConfigWriteParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillsConfigWriteResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillsListEntry.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillsListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/SkillsListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/SortDirection.js +2 -0
- package/bundle/dist/codex-protocol/v2/SubagentMigration.js +2 -0
- package/bundle/dist/codex-protocol/v2/TerminalInteractionNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/TextElement.js +2 -0
- package/bundle/dist/codex-protocol/v2/TextPosition.js +2 -0
- package/bundle/dist/codex-protocol/v2/TextRange.js +2 -0
- package/bundle/dist/codex-protocol/v2/Thread.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadActiveFlag.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadArchiveParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadArchiveResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadArchivedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadClosedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadCompactStartParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadCompactStartResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadForkParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadForkResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadGoal.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadGoalClearedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadGoalStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadGoalUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadInjectItemsParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadInjectItemsResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadItem.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadLoadedListParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadLoadedListResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadNameUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadReadParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadReadResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeAudioChunk.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeClosedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeErrorNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeItemAddedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeSdpNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartTransport.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadResumeParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadResumeResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRollbackParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadRollbackResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadSetNameParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadSetNameResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadShellCommandParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadShellCommandResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadSortKey.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadSourceKind.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadStartParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadStartResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadStartSource.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadStartedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadStatusChangedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadTokenUsage.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadUnarchiveParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadUnarchiveResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadUnarchivedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/TokenUsageBreakdown.js +2 -0
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputAnswer.js +2 -0
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputOption.js +2 -0
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputQuestion.js +2 -0
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/ToolsV2.js +2 -0
- package/bundle/dist/codex-protocol/v2/Turn.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnDiffUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnEnvironmentParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnError.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnInterruptParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnInterruptResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnItemsView.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnPlanStep.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnPlanStepStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnPlanUpdatedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnStartParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnStartResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnStartedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnSteerParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/TurnSteerResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/UserInput.js +2 -0
- package/bundle/dist/codex-protocol/v2/WarningNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/WebSearchAction.js +2 -0
- package/bundle/dist/codex-protocol/v2/WindowsSandboxReadiness.js +2 -0
- package/bundle/dist/codex-protocol/v2/WindowsSandboxReadinessResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupMode.js +2 -0
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartParams.js +2 -0
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartResponse.js +2 -0
- package/bundle/dist/codex-protocol/v2/WindowsWorldWritableWarningNotification.js +2 -0
- package/bundle/dist/codex-protocol/v2/WriteStatus.js +2 -0
- package/bundle/dist/codex-protocol/v2/index.js +7 -0
- package/bundle/dist/i18n/sd.generated.js +37 -5
- package/bundle/dist/migrations/20260518145411_alter_tokens_add2_drop4_alter1.js +22 -0
- package/bundle/dist/migrations/20260520112853_alter_request_logs_add3_alter1.js +18 -0
- package/bundle/dist/migrations/20260520124755_alter_request_logs_drop1_alter1.js +16 -0
- package/bundle/dist/migrations/20260520130420_create__request_log_steps.js +34 -0
- package/bundle/dist/migrations/20260520134908_alter_request_logs_add2_alter8.js +31 -0
- package/bundle/dist/migrations/20260520134909_alter_request_log_steps_add1_alter3.js +20 -0
- package/bundle/dist/migrations/20260520141449_alter_request_logs_add1_alter1.js +16 -0
- package/bundle/dist/migrations/20260521134025_alter_request_log_steps_alter1.js +14 -0
- package/bundle/dist/migrations/20260521134026_alter_request_log_steps_foreigns.js +16 -0
- package/bundle/dist/migrations/20260522181721_alter_request_log_steps_add2_alter1.js +17 -0
- package/bundle/dist/sonamu.config.js +41 -44
- package/bundle/dist/utils/providers/common/credentials.js +22 -0
- package/bundle/dist/utils/providers/common/model-cost.js +117 -0
- package/bundle/dist/utils/providers/common/provider-dispatcher.js +2 -0
- package/bundle/dist/utils/providers/common/strictifier.js +81 -0
- package/bundle/dist/utils/providers/common/token-picker.js +15 -0
- package/bundle/dist/utils/providers/openai/codex-rpc.js +151 -0
- package/bundle/dist/utils/providers/openai/codex-worker.js +371 -0
- package/bundle/dist/utils/providers/openai/openai-constants.js +10 -0
- package/bundle/dist/utils/providers/openai/openai-dispatcher.js +325 -0
- package/bundle/dist/utils/providers/openai/openai-refresh.js +93 -0
- package/bundle/src/application/qgrid/oauth.ts +8 -4
- package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +185 -0
- package/bundle/src/application/qgrid/qgrid.dispatcher.ts +165 -23
- package/bundle/src/application/qgrid/qgrid.frame.ts +400 -81
- package/bundle/src/application/qgrid/qgrid.types.ts +150 -20
- package/bundle/src/application/qgrid/token-subscriber.ts +27 -5
- package/bundle/src/application/qgrid/token-trigger-setup.ts +2 -3
- package/bundle/src/application/qgrid/tool-emulation.ts +95 -0
- package/bundle/src/application/queries.generated.ts +31 -3
- package/bundle/src/application/request-log/request-log.entity.json +49 -41
- package/bundle/src/application/request-log/request-log.model.ts +180 -0
- package/bundle/src/application/request-log/request-log.types.ts +15 -0
- package/bundle/src/application/request-log-step/request-log-step.entity.json +137 -0
- package/bundle/src/application/request-log-step/request-log-step.model.ts +161 -0
- package/bundle/src/application/request-log-step/request-log-step.types.ts +30 -0
- package/bundle/src/application/sonamu.generated.http +245 -24
- package/bundle/src/application/sonamu.generated.sso.ts +72 -5
- package/bundle/src/application/sonamu.generated.ts +199 -22
- package/bundle/src/application/token/token.entity.json +7 -19
- package/bundle/src/application/token/token.model.ts +13 -13
- package/bundle/src/application/token/token.types.ts +25 -12
- package/bundle/src/codex-protocol/AbsolutePathBuf.ts +14 -0
- package/bundle/src/codex-protocol/AgentPath.ts +5 -0
- package/bundle/src/codex-protocol/ApplyPatchApprovalParams.ts +24 -0
- package/bundle/src/codex-protocol/ApplyPatchApprovalResponse.ts +6 -0
- package/bundle/src/codex-protocol/AuthMode.ts +8 -0
- package/bundle/src/codex-protocol/ClientInfo.ts +5 -0
- package/bundle/src/codex-protocol/ClientNotification.ts +5 -0
- package/bundle/src/codex-protocol/ClientRequest.ts +176 -0
- package/bundle/src/codex-protocol/CollaborationMode.ts +10 -0
- package/bundle/src/codex-protocol/ContentItem.ts +9 -0
- package/bundle/src/codex-protocol/ConversationGitInfo.ts +9 -0
- package/bundle/src/codex-protocol/ConversationSummary.ts +19 -0
- package/bundle/src/codex-protocol/ExecCommandApprovalParams.ts +22 -0
- package/bundle/src/codex-protocol/ExecCommandApprovalResponse.ts +6 -0
- package/bundle/src/codex-protocol/ExecPolicyAmendment.ts +12 -0
- package/bundle/src/codex-protocol/FileChange.ts +8 -0
- package/bundle/src/codex-protocol/ForcedLoginMethod.ts +5 -0
- package/bundle/src/codex-protocol/FunctionCallOutputBody.ts +6 -0
- package/bundle/src/codex-protocol/FunctionCallOutputContentItem.ts +12 -0
- package/bundle/src/codex-protocol/FuzzyFileSearchMatchType.ts +5 -0
- package/bundle/src/codex-protocol/FuzzyFileSearchParams.ts +9 -0
- package/bundle/src/codex-protocol/FuzzyFileSearchResponse.ts +6 -0
- package/bundle/src/codex-protocol/FuzzyFileSearchResult.ts +16 -0
- package/bundle/src/codex-protocol/FuzzyFileSearchSessionCompletedNotification.ts +5 -0
- package/bundle/src/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.ts +10 -0
- package/bundle/src/codex-protocol/GetAuthStatusParams.ts +5 -0
- package/bundle/src/codex-protocol/GetAuthStatusResponse.ts +10 -0
- package/bundle/src/codex-protocol/GetConversationSummaryParams.ts +6 -0
- package/bundle/src/codex-protocol/GetConversationSummaryResponse.ts +6 -0
- package/bundle/src/codex-protocol/GitDiffToRemoteParams.ts +5 -0
- package/bundle/src/codex-protocol/GitDiffToRemoteResponse.ts +6 -0
- package/bundle/src/codex-protocol/GitSha.ts +5 -0
- package/bundle/src/codex-protocol/ImageDetail.ts +5 -0
- package/bundle/src/codex-protocol/InitializeCapabilities.ts +18 -0
- package/bundle/src/codex-protocol/InitializeParams.ts +10 -0
- package/bundle/src/codex-protocol/InitializeResponse.ts +22 -0
- package/bundle/src/codex-protocol/InputModality.ts +8 -0
- package/bundle/src/codex-protocol/InternalSessionSource.ts +5 -0
- package/bundle/src/codex-protocol/LocalShellAction.ts +6 -0
- package/bundle/src/codex-protocol/LocalShellExecAction.ts +11 -0
- package/bundle/src/codex-protocol/LocalShellStatus.ts +5 -0
- package/bundle/src/codex-protocol/MessagePhase.ts +11 -0
- package/bundle/src/codex-protocol/ModeKind.ts +8 -0
- package/bundle/src/codex-protocol/NetworkPolicyAmendment.ts +6 -0
- package/bundle/src/codex-protocol/NetworkPolicyRuleAction.ts +5 -0
- package/bundle/src/codex-protocol/ParsedCommand.ts +20 -0
- package/bundle/src/codex-protocol/Personality.ts +5 -0
- package/bundle/src/codex-protocol/PlanType.ts +17 -0
- package/bundle/src/codex-protocol/RealtimeConversationVersion.ts +5 -0
- package/bundle/src/codex-protocol/RealtimeOutputModality.ts +5 -0
- package/bundle/src/codex-protocol/RealtimeVoice.ts +24 -0
- package/bundle/src/codex-protocol/RealtimeVoicesList.ts +11 -0
- package/bundle/src/codex-protocol/ReasoningEffort.ts +8 -0
- package/bundle/src/codex-protocol/ReasoningItemContent.ts +7 -0
- package/bundle/src/codex-protocol/ReasoningItemReasoningSummary.ts +5 -0
- package/bundle/src/codex-protocol/ReasoningSummary.ts +10 -0
- package/bundle/src/codex-protocol/RequestId.ts +5 -0
- package/bundle/src/codex-protocol/Resource.ts +19 -0
- package/bundle/src/codex-protocol/ResourceContent.ts +27 -0
- package/bundle/src/codex-protocol/ResourceTemplate.ts +16 -0
- package/bundle/src/codex-protocol/ResponseItem.ts +63 -0
- package/bundle/src/codex-protocol/ReviewDecision.ts +17 -0
- package/bundle/src/codex-protocol/ServerNotification.ts +154 -0
- package/bundle/src/codex-protocol/ServerRequest.ts +47 -0
- package/bundle/src/codex-protocol/SessionSource.ts +15 -0
- package/bundle/src/codex-protocol/Settings.ts +13 -0
- package/bundle/src/codex-protocol/SubAgentSource.ts +20 -0
- package/bundle/src/codex-protocol/ThreadId.ts +5 -0
- package/bundle/src/codex-protocol/ThreadMemoryMode.ts +5 -0
- package/bundle/src/codex-protocol/Tool.ts +18 -0
- package/bundle/src/codex-protocol/Verbosity.ts +9 -0
- package/bundle/src/codex-protocol/WebSearchAction.ts +9 -0
- package/bundle/src/codex-protocol/WebSearchContextSize.ts +5 -0
- package/bundle/src/codex-protocol/WebSearchLocation.ts +10 -0
- package/bundle/src/codex-protocol/WebSearchMode.ts +5 -0
- package/bundle/src/codex-protocol/WebSearchToolConfig.ts +11 -0
- package/bundle/src/codex-protocol/index.ts +79 -0
- package/bundle/src/codex-protocol/serde_json/JsonValue.ts +11 -0
- package/bundle/src/codex-protocol/v2/Account.ts +9 -0
- package/bundle/src/codex-protocol/v2/AccountLoginCompletedNotification.ts +9 -0
- package/bundle/src/codex-protocol/v2/AccountRateLimitsUpdatedNotification.ts +6 -0
- package/bundle/src/codex-protocol/v2/AccountUpdatedNotification.ts +7 -0
- package/bundle/src/codex-protocol/v2/ActivePermissionProfile.ts +22 -0
- package/bundle/src/codex-protocol/v2/ActivePermissionProfileModification.ts +9 -0
- package/bundle/src/codex-protocol/v2/AddCreditsNudgeCreditType.ts +5 -0
- package/bundle/src/codex-protocol/v2/AddCreditsNudgeEmailStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/AdditionalFileSystemPermissions.ts +18 -0
- package/bundle/src/codex-protocol/v2/AdditionalNetworkPermissions.ts +5 -0
- package/bundle/src/codex-protocol/v2/AdditionalPermissionProfile.ts +13 -0
- package/bundle/src/codex-protocol/v2/AgentMessageDeltaNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/AnalyticsConfig.ts +14 -0
- package/bundle/src/codex-protocol/v2/AppBranding.ts +15 -0
- package/bundle/src/codex-protocol/v2/AppInfo.ts +32 -0
- package/bundle/src/codex-protocol/v2/AppListUpdatedNotification.ts +9 -0
- package/bundle/src/codex-protocol/v2/AppMetadata.ts +20 -0
- package/bundle/src/codex-protocol/v2/AppReview.ts +5 -0
- package/bundle/src/codex-protocol/v2/AppScreenshot.ts +5 -0
- package/bundle/src/codex-protocol/v2/AppSummary.ts +14 -0
- package/bundle/src/codex-protocol/v2/AppToolApproval.ts +5 -0
- package/bundle/src/codex-protocol/v2/AppToolsConfig.ts +8 -0
- package/bundle/src/codex-protocol/v2/ApprovalsReviewer.ts +12 -0
- package/bundle/src/codex-protocol/v2/AppsConfig.ts +17 -0
- package/bundle/src/codex-protocol/v2/AppsDefaultConfig.ts +9 -0
- package/bundle/src/codex-protocol/v2/AppsListParams.ts +25 -0
- package/bundle/src/codex-protocol/v2/AppsListResponse.ts +16 -0
- package/bundle/src/codex-protocol/v2/AskForApproval.ts +18 -0
- package/bundle/src/codex-protocol/v2/AutoReviewDecisionSource.ts +8 -0
- package/bundle/src/codex-protocol/v2/ByteRange.ts +5 -0
- package/bundle/src/codex-protocol/v2/CancelLoginAccountParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/CancelLoginAccountResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/CancelLoginAccountStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshParams.ts +18 -0
- package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshReason.ts +5 -0
- package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.ts +9 -0
- package/bundle/src/codex-protocol/v2/CodexErrorInfo.ts +27 -0
- package/bundle/src/codex-protocol/v2/CollabAgentState.ts +6 -0
- package/bundle/src/codex-protocol/v2/CollabAgentStatus.ts +12 -0
- package/bundle/src/codex-protocol/v2/CollabAgentTool.ts +5 -0
- package/bundle/src/codex-protocol/v2/CollabAgentToolCallStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/CollaborationModeMask.ts +15 -0
- package/bundle/src/codex-protocol/v2/CommandAction.ts +10 -0
- package/bundle/src/codex-protocol/v2/CommandExecOutputDeltaNotification.ts +31 -0
- package/bundle/src/codex-protocol/v2/CommandExecOutputStream.ts +8 -0
- package/bundle/src/codex-protocol/v2/CommandExecParams.ts +87 -0
- package/bundle/src/codex-protocol/v2/CommandExecResizeParams.ts +19 -0
- package/bundle/src/codex-protocol/v2/CommandExecResizeResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/CommandExecResponse.ts +25 -0
- package/bundle/src/codex-protocol/v2/CommandExecTerminalSize.ts +17 -0
- package/bundle/src/codex-protocol/v2/CommandExecTerminateParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/CommandExecTerminateResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/CommandExecWriteParams.ts +23 -0
- package/bundle/src/codex-protocol/v2/CommandExecWriteResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/CommandExecutionApprovalDecision.ts +13 -0
- package/bundle/src/codex-protocol/v2/CommandExecutionOutputDeltaNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalParams.ts +47 -0
- package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/CommandExecutionSource.ts +9 -0
- package/bundle/src/codex-protocol/v2/CommandExecutionStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/CommandMigration.ts +5 -0
- package/bundle/src/codex-protocol/v2/Config.ts +53 -0
- package/bundle/src/codex-protocol/v2/ConfigBatchWriteParams.ts +17 -0
- package/bundle/src/codex-protocol/v2/ConfigEdit.ts +7 -0
- package/bundle/src/codex-protocol/v2/ConfigLayer.ts +12 -0
- package/bundle/src/codex-protocol/v2/ConfigLayerMetadata.ts +6 -0
- package/bundle/src/codex-protocol/v2/ConfigLayerSource.ts +27 -0
- package/bundle/src/codex-protocol/v2/ConfigReadParams.ts +13 -0
- package/bundle/src/codex-protocol/v2/ConfigReadResponse.ts +12 -0
- package/bundle/src/codex-protocol/v2/ConfigRequirements.ts +15 -0
- package/bundle/src/codex-protocol/v2/ConfigRequirementsReadResponse.ts +11 -0
- package/bundle/src/codex-protocol/v2/ConfigValueWriteParams.ts +16 -0
- package/bundle/src/codex-protocol/v2/ConfigWarningNotification.ts +23 -0
- package/bundle/src/codex-protocol/v2/ConfigWriteResponse.ts +16 -0
- package/bundle/src/codex-protocol/v2/ConfiguredHookHandler.ts +14 -0
- package/bundle/src/codex-protocol/v2/ConfiguredHookMatcherGroup.ts +9 -0
- package/bundle/src/codex-protocol/v2/ContextCompactedNotification.ts +8 -0
- package/bundle/src/codex-protocol/v2/CreditsSnapshot.ts +5 -0
- package/bundle/src/codex-protocol/v2/DeprecationNoticeNotification.ts +14 -0
- package/bundle/src/codex-protocol/v2/DynamicToolCallOutputContentItem.ts +7 -0
- package/bundle/src/codex-protocol/v2/DynamicToolCallParams.ts +13 -0
- package/bundle/src/codex-protocol/v2/DynamicToolCallResponse.ts +9 -0
- package/bundle/src/codex-protocol/v2/DynamicToolCallStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/DynamicToolSpec.ts +12 -0
- package/bundle/src/codex-protocol/v2/ErrorNotification.ts +11 -0
- package/bundle/src/codex-protocol/v2/ExecPolicyAmendment.ts +5 -0
- package/bundle/src/codex-protocol/v2/ExperimentalFeature.ts +38 -0
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.ts +13 -0
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.ts +10 -0
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureListParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureListResponse.ts +13 -0
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureStage.ts +10 -0
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.ts +5 -0
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportParams.ts +8 -0
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItem.ts +15 -0
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItemType.ts +14 -0
- package/bundle/src/codex-protocol/v2/FeedbackUploadParams.ts +12 -0
- package/bundle/src/codex-protocol/v2/FeedbackUploadResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/FileChangeApprovalDecision.ts +5 -0
- package/bundle/src/codex-protocol/v2/FileChangeOutputDeltaNotification.ts +15 -0
- package/bundle/src/codex-protocol/v2/FileChangePatchUpdatedNotification.ts +11 -0
- package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalParams.ts +22 -0
- package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/FileSystemAccessMode.ts +5 -0
- package/bundle/src/codex-protocol/v2/FileSystemPath.ts +10 -0
- package/bundle/src/codex-protocol/v2/FileSystemSandboxEntry.ts +7 -0
- package/bundle/src/codex-protocol/v2/FileSystemSpecialPath.ts +11 -0
- package/bundle/src/codex-protocol/v2/FileUpdateChange.ts +6 -0
- package/bundle/src/codex-protocol/v2/FsChangedNotification.ts +18 -0
- package/bundle/src/codex-protocol/v2/FsCopyParams.ts +22 -0
- package/bundle/src/codex-protocol/v2/FsCopyResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/FsCreateDirectoryParams.ts +18 -0
- package/bundle/src/codex-protocol/v2/FsCreateDirectoryResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/FsGetMetadataParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/FsGetMetadataResponse.ts +29 -0
- package/bundle/src/codex-protocol/v2/FsReadDirectoryEntry.ts +21 -0
- package/bundle/src/codex-protocol/v2/FsReadDirectoryParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/FsReadDirectoryResponse.ts +14 -0
- package/bundle/src/codex-protocol/v2/FsReadFileParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/FsReadFileResponse.ts +13 -0
- package/bundle/src/codex-protocol/v2/FsRemoveParams.ts +22 -0
- package/bundle/src/codex-protocol/v2/FsRemoveResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/FsUnwatchParams.ts +13 -0
- package/bundle/src/codex-protocol/v2/FsUnwatchResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/FsWatchParams.ts +18 -0
- package/bundle/src/codex-protocol/v2/FsWatchResponse.ts +14 -0
- package/bundle/src/codex-protocol/v2/FsWriteFileParams.ts +18 -0
- package/bundle/src/codex-protocol/v2/FsWriteFileResponse.ts +8 -0
- package/bundle/src/codex-protocol/v2/GetAccountParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/GetAccountRateLimitsResponse.ts +15 -0
- package/bundle/src/codex-protocol/v2/GetAccountResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/GitInfo.ts +5 -0
- package/bundle/src/codex-protocol/v2/GrantedPermissionProfile.ts +10 -0
- package/bundle/src/codex-protocol/v2/GuardianApprovalReview.ts +18 -0
- package/bundle/src/codex-protocol/v2/GuardianApprovalReviewAction.ts +34 -0
- package/bundle/src/codex-protocol/v2/GuardianApprovalReviewStatus.ts +13 -0
- package/bundle/src/codex-protocol/v2/GuardianCommandSource.ts +5 -0
- package/bundle/src/codex-protocol/v2/GuardianRiskLevel.ts +8 -0
- package/bundle/src/codex-protocol/v2/GuardianUserAuthorization.ts +8 -0
- package/bundle/src/codex-protocol/v2/GuardianWarningNotification.ts +14 -0
- package/bundle/src/codex-protocol/v2/HookCompletedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/HookErrorInfo.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookEventName.ts +13 -0
- package/bundle/src/codex-protocol/v2/HookExecutionMode.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookHandlerType.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookMetadata.ts +26 -0
- package/bundle/src/codex-protocol/v2/HookMigration.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookOutputEntry.ts +6 -0
- package/bundle/src/codex-protocol/v2/HookOutputEntryKind.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookPromptFragment.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookRunStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookRunSummary.ts +28 -0
- package/bundle/src/codex-protocol/v2/HookScope.ts +5 -0
- package/bundle/src/codex-protocol/v2/HookSource.ts +15 -0
- package/bundle/src/codex-protocol/v2/HookStartedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/HookTrustStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/HooksListEntry.ts +12 -0
- package/bundle/src/codex-protocol/v2/HooksListParams.ts +10 -0
- package/bundle/src/codex-protocol/v2/HooksListResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/ItemCompletedNotification.ts +14 -0
- package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.ts +44 -0
- package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.ts +38 -0
- package/bundle/src/codex-protocol/v2/ItemStartedNotification.ts +14 -0
- package/bundle/src/codex-protocol/v2/ListMcpServerStatusParams.ts +20 -0
- package/bundle/src/codex-protocol/v2/ListMcpServerStatusResponse.ts +13 -0
- package/bundle/src/codex-protocol/v2/LoginAccountParams.ts +27 -0
- package/bundle/src/codex-protocol/v2/LoginAccountResponse.ts +27 -0
- package/bundle/src/codex-protocol/v2/LogoutAccountResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ManagedHooksRequirements.ts +17 -0
- package/bundle/src/codex-protocol/v2/MarketplaceAddParams.ts +9 -0
- package/bundle/src/codex-protocol/v2/MarketplaceAddResponse.ts +10 -0
- package/bundle/src/codex-protocol/v2/MarketplaceInterface.ts +5 -0
- package/bundle/src/codex-protocol/v2/MarketplaceLoadErrorInfo.ts +6 -0
- package/bundle/src/codex-protocol/v2/MarketplaceRemoveParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/MarketplaceRemoveResponse.ts +9 -0
- package/bundle/src/codex-protocol/v2/MarketplaceUpgradeErrorInfo.ts +5 -0
- package/bundle/src/codex-protocol/v2/MarketplaceUpgradeParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/MarketplaceUpgradeResponse.ts +11 -0
- package/bundle/src/codex-protocol/v2/McpAuthStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationArrayType.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationBooleanSchema.ts +11 -0
- package/bundle/src/codex-protocol/v2/McpElicitationBooleanType.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationConstOption.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationEnumSchema.ts +11 -0
- package/bundle/src/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.ts +13 -0
- package/bundle/src/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.ts +9 -0
- package/bundle/src/codex-protocol/v2/McpElicitationNumberSchema.ts +13 -0
- package/bundle/src/codex-protocol/v2/McpElicitationNumberType.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationObjectType.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationPrimitiveSchema.ts +13 -0
- package/bundle/src/codex-protocol/v2/McpElicitationSchema.ts +18 -0
- package/bundle/src/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.ts +9 -0
- package/bundle/src/codex-protocol/v2/McpElicitationStringFormat.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationStringSchema.ts +15 -0
- package/bundle/src/codex-protocol/v2/McpElicitationStringType.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpElicitationTitledEnumItems.ts +6 -0
- package/bundle/src/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.ts +15 -0
- package/bundle/src/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.ts +13 -0
- package/bundle/src/codex-protocol/v2/McpElicitationUntitledEnumItems.ts +9 -0
- package/bundle/src/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.ts +15 -0
- package/bundle/src/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.ts +12 -0
- package/bundle/src/codex-protocol/v2/McpResourceReadParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpResourceReadResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/McpServerElicitationAction.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpServerElicitationRequestParams.ts +27 -0
- package/bundle/src/codex-protocol/v2/McpServerElicitationRequestResponse.ts +19 -0
- package/bundle/src/codex-protocol/v2/McpServerMigration.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpServerOauthLoginCompletedNotification.ts +9 -0
- package/bundle/src/codex-protocol/v2/McpServerOauthLoginParams.ts +9 -0
- package/bundle/src/codex-protocol/v2/McpServerOauthLoginResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpServerRefreshResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpServerStartupState.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpServerStatus.ts +15 -0
- package/bundle/src/codex-protocol/v2/McpServerStatusDetail.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpServerStatusUpdatedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/McpServerToolCallParams.ts +12 -0
- package/bundle/src/codex-protocol/v2/McpServerToolCallResponse.ts +11 -0
- package/bundle/src/codex-protocol/v2/McpToolCallError.ts +5 -0
- package/bundle/src/codex-protocol/v2/McpToolCallProgressNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/McpToolCallResult.ts +10 -0
- package/bundle/src/codex-protocol/v2/McpToolCallStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/MemoryCitation.ts +6 -0
- package/bundle/src/codex-protocol/v2/MemoryCitationEntry.ts +10 -0
- package/bundle/src/codex-protocol/v2/MergeStrategy.ts +5 -0
- package/bundle/src/codex-protocol/v2/MigrationDetails.ts +18 -0
- package/bundle/src/codex-protocol/v2/Model.ts +30 -0
- package/bundle/src/codex-protocol/v2/ModelAvailabilityNux.ts +5 -0
- package/bundle/src/codex-protocol/v2/ModelListParams.ts +18 -0
- package/bundle/src/codex-protocol/v2/ModelListResponse.ts +13 -0
- package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.ts +9 -0
- package/bundle/src/codex-protocol/v2/ModelRerouteReason.ts +5 -0
- package/bundle/src/codex-protocol/v2/ModelReroutedNotification.ts +12 -0
- package/bundle/src/codex-protocol/v2/ModelServiceTier.ts +5 -0
- package/bundle/src/codex-protocol/v2/ModelUpgradeInfo.ts +10 -0
- package/bundle/src/codex-protocol/v2/ModelVerification.ts +5 -0
- package/bundle/src/codex-protocol/v2/ModelVerificationNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/NetworkAccess.ts +5 -0
- package/bundle/src/codex-protocol/v2/NetworkApprovalContext.ts +6 -0
- package/bundle/src/codex-protocol/v2/NetworkApprovalProtocol.ts +5 -0
- package/bundle/src/codex-protocol/v2/NetworkDomainPermission.ts +5 -0
- package/bundle/src/codex-protocol/v2/NetworkPolicyAmendment.ts +6 -0
- package/bundle/src/codex-protocol/v2/NetworkPolicyRuleAction.ts +5 -0
- package/bundle/src/codex-protocol/v2/NetworkRequirements.ts +40 -0
- package/bundle/src/codex-protocol/v2/NetworkUnixSocketPermission.ts +5 -0
- package/bundle/src/codex-protocol/v2/NonSteerableTurnKind.ts +5 -0
- package/bundle/src/codex-protocol/v2/OverriddenMetadata.ts +11 -0
- package/bundle/src/codex-protocol/v2/PatchApplyStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/PatchChangeKind.ts +8 -0
- package/bundle/src/codex-protocol/v2/PermissionGrantScope.ts +5 -0
- package/bundle/src/codex-protocol/v2/PermissionProfile.ts +14 -0
- package/bundle/src/codex-protocol/v2/PermissionProfileFileSystemPermissions.ts +8 -0
- package/bundle/src/codex-protocol/v2/PermissionProfileModificationParams.ts +9 -0
- package/bundle/src/codex-protocol/v2/PermissionProfileNetworkPermissions.ts +5 -0
- package/bundle/src/codex-protocol/v2/PermissionProfileSelectionParams.ts +10 -0
- package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalParams.ts +18 -0
- package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalResponse.ts +14 -0
- package/bundle/src/codex-protocol/v2/PlanDeltaNotification.ts +14 -0
- package/bundle/src/codex-protocol/v2/PluginAuthPolicy.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginAvailability.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginDetail.ts +19 -0
- package/bundle/src/codex-protocol/v2/PluginHookSummary.ts +6 -0
- package/bundle/src/codex-protocol/v2/PluginInstallParams.ts +10 -0
- package/bundle/src/codex-protocol/v2/PluginInstallPolicy.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginInstallResponse.ts +10 -0
- package/bundle/src/codex-protocol/v2/PluginInterface.ts +46 -0
- package/bundle/src/codex-protocol/v2/PluginListMarketplaceKind.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginListParams.ts +18 -0
- package/bundle/src/codex-protocol/v2/PluginListResponse.ts +11 -0
- package/bundle/src/codex-protocol/v2/PluginMarketplaceEntry.ts +17 -0
- package/bundle/src/codex-protocol/v2/PluginReadParams.ts +10 -0
- package/bundle/src/codex-protocol/v2/PluginReadResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/PluginShareContext.ts +12 -0
- package/bundle/src/codex-protocol/v2/PluginShareDeleteParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginShareDeleteResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginShareDiscoverability.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginShareListItem.ts +11 -0
- package/bundle/src/codex-protocol/v2/PluginShareListParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginShareListResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/PluginSharePrincipal.ts +10 -0
- package/bundle/src/codex-protocol/v2/PluginSharePrincipalType.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginShareSaveParams.ts +13 -0
- package/bundle/src/codex-protocol/v2/PluginShareSaveResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginShareTarget.ts +6 -0
- package/bundle/src/codex-protocol/v2/PluginShareUpdateDiscoverability.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsParams.ts +11 -0
- package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsResponse.ts +10 -0
- package/bundle/src/codex-protocol/v2/PluginSkillReadParams.ts +9 -0
- package/bundle/src/codex-protocol/v2/PluginSkillReadResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginSource.ts +9 -0
- package/bundle/src/codex-protocol/v2/PluginSummary.ts +29 -0
- package/bundle/src/codex-protocol/v2/PluginUninstallParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginUninstallResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/PluginsMigration.ts +5 -0
- package/bundle/src/codex-protocol/v2/ProcessExitedNotification.ts +43 -0
- package/bundle/src/codex-protocol/v2/ProcessOutputDeltaNotification.ts +27 -0
- package/bundle/src/codex-protocol/v2/ProcessOutputStream.ts +8 -0
- package/bundle/src/codex-protocol/v2/ProcessTerminalSize.ts +17 -0
- package/bundle/src/codex-protocol/v2/ProfileV2.ts +37 -0
- package/bundle/src/codex-protocol/v2/RateLimitReachedType.ts +10 -0
- package/bundle/src/codex-protocol/v2/RateLimitSnapshot.ts +17 -0
- package/bundle/src/codex-protocol/v2/RateLimitWindow.ts +9 -0
- package/bundle/src/codex-protocol/v2/RawResponseItemCompletedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/ReasoningEffortOption.ts +6 -0
- package/bundle/src/codex-protocol/v2/ReasoningSummaryPartAddedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.ts +11 -0
- package/bundle/src/codex-protocol/v2/ReasoningTextDeltaNotification.ts +11 -0
- package/bundle/src/codex-protocol/v2/RemoteControlConnectionStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/RemoteControlStatusChangedNotification.ts +12 -0
- package/bundle/src/codex-protocol/v2/RequestPermissionProfile.ts +10 -0
- package/bundle/src/codex-protocol/v2/ResidencyRequirement.ts +5 -0
- package/bundle/src/codex-protocol/v2/ReviewDelivery.ts +5 -0
- package/bundle/src/codex-protocol/v2/ReviewStartParams.ts +15 -0
- package/bundle/src/codex-protocol/v2/ReviewStartResponse.ts +15 -0
- package/bundle/src/codex-protocol/v2/ReviewTarget.ts +16 -0
- package/bundle/src/codex-protocol/v2/SandboxMode.ts +5 -0
- package/bundle/src/codex-protocol/v2/SandboxPolicy.ts +17 -0
- package/bundle/src/codex-protocol/v2/SandboxWorkspaceWrite.ts +10 -0
- package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailParams.ts +6 -0
- package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/ServerRequestResolvedNotification.ts +6 -0
- package/bundle/src/codex-protocol/v2/SessionMigration.ts +5 -0
- package/bundle/src/codex-protocol/v2/SessionSource.ts +13 -0
- package/bundle/src/codex-protocol/v2/SkillDependencies.ts +6 -0
- package/bundle/src/codex-protocol/v2/SkillErrorInfo.ts +5 -0
- package/bundle/src/codex-protocol/v2/SkillInterface.ts +13 -0
- package/bundle/src/codex-protocol/v2/SkillMetadata.ts +21 -0
- package/bundle/src/codex-protocol/v2/SkillScope.ts +5 -0
- package/bundle/src/codex-protocol/v2/SkillSummary.ts +14 -0
- package/bundle/src/codex-protocol/v2/SkillToolDependency.ts +12 -0
- package/bundle/src/codex-protocol/v2/SkillsChangedNotification.ts +11 -0
- package/bundle/src/codex-protocol/v2/SkillsConfigWriteParams.ts +16 -0
- package/bundle/src/codex-protocol/v2/SkillsConfigWriteResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/SkillsListEntry.ts +11 -0
- package/bundle/src/codex-protocol/v2/SkillsListParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/SkillsListResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/SortDirection.ts +5 -0
- package/bundle/src/codex-protocol/v2/SubagentMigration.ts +5 -0
- package/bundle/src/codex-protocol/v2/TerminalInteractionNotification.ts +11 -0
- package/bundle/src/codex-protocol/v2/TextElement.ts +15 -0
- package/bundle/src/codex-protocol/v2/TextPosition.ts +14 -0
- package/bundle/src/codex-protocol/v2/TextRange.ts +6 -0
- package/bundle/src/codex-protocol/v2/Thread.ts +88 -0
- package/bundle/src/codex-protocol/v2/ThreadActiveFlag.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.ts +12 -0
- package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadArchiveParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadArchiveResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadArchivedNotification.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadClosedNotification.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadCompactStartParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadCompactStartResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadForkParams.ts +40 -0
- package/bundle/src/codex-protocol/v2/ThreadForkResponse.ts +30 -0
- package/bundle/src/codex-protocol/v2/ThreadGoal.ts +15 -0
- package/bundle/src/codex-protocol/v2/ThreadGoalClearedNotification.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadGoalStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadGoalUpdatedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/ThreadInjectItemsParams.ts +12 -0
- package/bundle/src/codex-protocol/v2/ThreadInjectItemsResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadItem.ts +156 -0
- package/bundle/src/codex-protocol/v2/ThreadListParams.ts +55 -0
- package/bundle/src/codex-protocol/v2/ThreadListResponse.ts +20 -0
- package/bundle/src/codex-protocol/v2/ThreadLoadedListParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/ThreadLoadedListResponse.ts +15 -0
- package/bundle/src/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.ts +21 -0
- package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/ThreadNameUpdatedNotification.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadReadParams.ts +11 -0
- package/bundle/src/codex-protocol/v2/ThreadReadResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeAudioChunk.ts +14 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeClosedNotification.ts +8 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeErrorNotification.ts +8 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeItemAddedNotification.ts +9 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.ts +12 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeSdpNotification.ts +8 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeStartTransport.ts +17 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeStartedNotification.ts +13 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.ts +16 -0
- package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.ts +16 -0
- package/bundle/src/codex-protocol/v2/ThreadResumeParams.ts +39 -0
- package/bundle/src/codex-protocol/v2/ThreadResumeResponse.ts +30 -0
- package/bundle/src/codex-protocol/v2/ThreadRollbackParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/ThreadRollbackResponse.ts +15 -0
- package/bundle/src/codex-protocol/v2/ThreadSetNameParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadSetNameResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadShellCommandParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/ThreadShellCommandResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadSortKey.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadSource.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadSourceKind.ts +15 -0
- package/bundle/src/codex-protocol/v2/ThreadStartParams.ts +33 -0
- package/bundle/src/codex-protocol/v2/ThreadStartResponse.ts +30 -0
- package/bundle/src/codex-protocol/v2/ThreadStartSource.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadStartedNotification.ts +6 -0
- package/bundle/src/codex-protocol/v2/ThreadStatus.ts +10 -0
- package/bundle/src/codex-protocol/v2/ThreadStatusChangedNotification.ts +6 -0
- package/bundle/src/codex-protocol/v2/ThreadTokenUsage.ts +10 -0
- package/bundle/src/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/ThreadUnarchiveParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadUnarchiveResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/ThreadUnarchivedNotification.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadUnsubscribeParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/ThreadUnsubscribeResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/ThreadUnsubscribeStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/TokenUsageBreakdown.ts +11 -0
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputAnswer.ts +8 -0
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputOption.ts +8 -0
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputParams.ts +14 -0
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputQuestion.ts +16 -0
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputResponse.ts +11 -0
- package/bundle/src/codex-protocol/v2/ToolsV2.ts +6 -0
- package/bundle/src/codex-protocol/v2/Turn.ts +36 -0
- package/bundle/src/codex-protocol/v2/TurnCompletedNotification.ts +6 -0
- package/bundle/src/codex-protocol/v2/TurnDiffUpdatedNotification.ts +9 -0
- package/bundle/src/codex-protocol/v2/TurnEnvironmentParams.ts +6 -0
- package/bundle/src/codex-protocol/v2/TurnError.ts +10 -0
- package/bundle/src/codex-protocol/v2/TurnInterruptParams.ts +5 -0
- package/bundle/src/codex-protocol/v2/TurnInterruptResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/TurnItemsView.ts +5 -0
- package/bundle/src/codex-protocol/v2/TurnPlanStep.ts +6 -0
- package/bundle/src/codex-protocol/v2/TurnPlanStepStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/TurnPlanUpdatedNotification.ts +11 -0
- package/bundle/src/codex-protocol/v2/TurnStartParams.ts +48 -0
- package/bundle/src/codex-protocol/v2/TurnStartResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/TurnStartedNotification.ts +6 -0
- package/bundle/src/codex-protocol/v2/TurnStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/TurnSteerParams.ts +13 -0
- package/bundle/src/codex-protocol/v2/TurnSteerResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/UserInput.ts +18 -0
- package/bundle/src/codex-protocol/v2/WarningNotification.ts +14 -0
- package/bundle/src/codex-protocol/v2/WebSearchAction.ts +9 -0
- package/bundle/src/codex-protocol/v2/WindowsSandboxReadiness.ts +5 -0
- package/bundle/src/codex-protocol/v2/WindowsSandboxReadinessResponse.ts +6 -0
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.ts +10 -0
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupMode.ts +5 -0
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartParams.ts +10 -0
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartResponse.ts +5 -0
- package/bundle/src/codex-protocol/v2/WindowsWorldWritableWarningNotification.ts +9 -0
- package/bundle/src/codex-protocol/v2/WriteStatus.ts +5 -0
- package/bundle/src/codex-protocol/v2/index.ts +446 -0
- package/bundle/src/i18n/sd.generated.ts +36 -4
- package/bundle/src/migrations/20260518145411_alter_tokens_add2_drop4_alter1.ts +23 -0
- package/bundle/src/migrations/20260520112853_alter_request_logs_add3_alter1.ts +17 -0
- package/bundle/src/migrations/20260520124755_alter_request_logs_drop1_alter1.ts +15 -0
- package/bundle/src/migrations/20260520130420_create__request_log_steps.ts +33 -0
- package/bundle/src/migrations/20260520134908_alter_request_logs_add2_alter8.ts +44 -0
- package/bundle/src/migrations/20260520134909_alter_request_log_steps_add1_alter3.ts +23 -0
- package/bundle/src/migrations/20260520141449_alter_request_logs_add1_alter1.ts +15 -0
- package/bundle/src/migrations/20260521134025_alter_request_log_steps_alter1.ts +13 -0
- package/bundle/src/migrations/20260521134026_alter_request_log_steps_foreigns.ts +17 -0
- package/bundle/src/migrations/20260522181721_alter_request_log_steps_add2_alter1.ts +16 -0
- package/bundle/src/sonamu.config.ts +50 -51
- package/bundle/src/typings/sonamu.d.ts +1 -1
- package/bundle/src/utils/providers/common/credentials.ts +26 -0
- package/bundle/src/utils/providers/common/model-cost.ts +65 -0
- package/bundle/src/utils/providers/common/provider-dispatcher.ts +36 -0
- package/bundle/src/utils/providers/common/strictifier.ts +128 -0
- package/bundle/src/utils/providers/common/token-picker.ts +18 -0
- package/bundle/src/utils/providers/openai/codex-rpc.ts +236 -0
- package/bundle/src/utils/providers/openai/codex-worker.ts +469 -0
- package/bundle/src/utils/providers/openai/openai-constants.ts +5 -0
- package/bundle/src/utils/providers/openai/openai-dispatcher.ts +453 -0
- package/bundle/src/utils/providers/openai/openai-refresh.ts +134 -0
- package/bundle/web-dist/client/assets/index-B5DSo5uH.css +1 -0
- package/bundle/web-dist/client/assets/index-ZV-tHpAg.js +78 -0
- package/bundle/web-dist/client/assets/logs-HJYkbqom.js +1 -0
- package/bundle/web-dist/client/assets/routes-BMRwPj6F.js +5 -0
- package/bundle/web-dist/client/assets/sd.generated-7jzAQL2_.js +51 -0
- package/bundle/web-dist/client/assets/services.generated-Bx1Eh7ot.js +1 -0
- package/bundle/web-dist/client/assets/{show-WxeogUIk.js → show-DI6iWDzV.js} +3 -2
- package/bundle/web-dist/client/assets/tokens-Cg1f0Ga2.js +1 -0
- package/bundle/web-dist/client/index.html +3 -3
- package/bundle/web-dist/server/assets/{lazyRouteComponent-CcyhCAoL.js → lazyRouteComponent-BEaI4mOq.js} +2 -2
- package/bundle/web-dist/server/assets/logs-Xt934T5f.js +371 -0
- package/bundle/web-dist/server/assets/{routes-DQh4d03H.js → routes-B7QYbNIv.js} +149 -92
- package/bundle/web-dist/server/assets/{sd.generated-CkiEsOwK.js → sd.generated-BeUHLWKH.js} +538 -163
- package/bundle/web-dist/server/assets/{services.generated-Q2ZIxMdn.js → services.generated-C39hdSv0.js} +164 -34
- package/bundle/web-dist/server/assets/{shim-BYpcQGN1.js → shim-B9ZrFt3Z.js} +1 -1
- package/bundle/web-dist/server/assets/{show-j1j13Hq1.js → show-Dxz6UJnD.js} +508 -150
- package/bundle/web-dist/server/assets/tokens-IPwv3pNB.js +477 -0
- package/bundle/web-dist/server/entry-server.generated.js +157 -197
- package/dist/cli.js +35 -16
- package/package.json +2 -2
- package/bundle/web-dist/client/assets/copy-DdGJDXSK.js +0 -1
- package/bundle/web-dist/client/assets/index-D-D8GkQh.css +0 -1
- package/bundle/web-dist/client/assets/index-DxJOOfGV.js +0 -78
- package/bundle/web-dist/client/assets/logs-D83MPvLO.js +0 -1
- package/bundle/web-dist/client/assets/routes-C1PeZiBp.js +0 -5
- package/bundle/web-dist/client/assets/sd.generated-C9WnMJm4.js +0 -47
- package/bundle/web-dist/client/assets/services.generated-BV5C1PQa.js +0 -1
- package/bundle/web-dist/client/assets/tokens--RfCPd1y.js +0 -1
- package/bundle/web-dist/server/assets/copy-SIUvcEcZ.js +0 -42
- package/bundle/web-dist/server/assets/logs-9j6ES80h.js +0 -361
- package/bundle/web-dist/server/assets/tokens-hSHCLF_7.js +0 -861
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import "../../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { TokenModel } from "../../../application/token/token.model.js";
|
|
3
|
+
import { CodexAppServerWorker } from "./codex-worker.js";
|
|
4
|
+
import { handleChatgptAuthTokensRefresh } from "./openai-refresh.js";
|
|
5
|
+
import { getLogger } from "@logtape/logtape";
|
|
6
|
+
//#region src/utils/providers/openai/openai-dispatcher.ts
|
|
7
|
+
/**
|
|
8
|
+
* OpenAIDispatcher — codex app-server worker pool + 토큰 라우팅.
|
|
9
|
+
*
|
|
10
|
+
* - 토큰당 N worker (CodexAppServerWorker), 기본 3
|
|
11
|
+
* - idle worker round-robin 선택 + 큐 대기 (전부 busy 시)
|
|
12
|
+
* - TokenSubscriber 이벤트로 worker pool 동기화
|
|
13
|
+
* - backpressure: 큐 full 또는 timeout 시 SERVER_BUSY
|
|
14
|
+
*/
|
|
15
|
+
const logger = getLogger(["qgrid", "openai-dispatcher"]);
|
|
16
|
+
const DEFAULT_EFFORT = "low";
|
|
17
|
+
const WORKERS_PER_TOKEN = Math.min(Number(process.env.QGRID_WORKERS_PER_TOKEN ?? 3), 5);
|
|
18
|
+
const QUEUE_TIMEOUT_MS = 6e4;
|
|
19
|
+
const MAX_QUEUE_SIZE = 50;
|
|
20
|
+
const SPAWN_INTERVAL_MS = 500;
|
|
21
|
+
function sleep(ms) {
|
|
22
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
23
|
+
}
|
|
24
|
+
var OpenAIDispatcher = class OpenAIDispatcher {
|
|
25
|
+
workerPool = /* @__PURE__ */ new Map();
|
|
26
|
+
rrCursor = 0;
|
|
27
|
+
queue = [];
|
|
28
|
+
async start() {
|
|
29
|
+
const { rows } = await TokenModel.findMany("A");
|
|
30
|
+
const openaiTokens = rows.filter((t) => t.provider === "openai");
|
|
31
|
+
logger.info(`starting ${openaiTokens.length} openai tokens (${WORKERS_PER_TOKEN} workers each)`);
|
|
32
|
+
await Promise.allSettled(openaiTokens.map(async (t) => {
|
|
33
|
+
await this.spawnWorkers(t.id, t.name, t.credentials);
|
|
34
|
+
if (!t.active) this.onTokenDeactivated(t.id);
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
async stop() {
|
|
38
|
+
this.rejectAllQueued("DISPATCHER_SHUTDOWN");
|
|
39
|
+
const kills = [...this.workerPool.values()].flat().map((w) => w.kill());
|
|
40
|
+
await Promise.allSettled(kills);
|
|
41
|
+
this.workerPool.clear();
|
|
42
|
+
}
|
|
43
|
+
async onTokenAdded(id, name, credentials) {
|
|
44
|
+
if (this.workerPool.has(id)) return;
|
|
45
|
+
await this.spawnWorkers(id, name, credentials);
|
|
46
|
+
}
|
|
47
|
+
async onTokenRemoved(id) {
|
|
48
|
+
const workers = this.workerPool.get(id) ?? [];
|
|
49
|
+
this.workerPool.delete(id);
|
|
50
|
+
await Promise.allSettled(workers.map((w) => w.kill()));
|
|
51
|
+
if (this.getAllReadyActiveWorkers().length === 0) this.rejectAllQueued("NO_OPENAI_WORKERS");
|
|
52
|
+
if (workers.length > 0) logger.info(`workers removed for token ${id}: ${workers.length}`);
|
|
53
|
+
}
|
|
54
|
+
async onTokenUpdated(id, name, credentials) {
|
|
55
|
+
const existing = this.workerPool.get(id) ?? [];
|
|
56
|
+
this.workerPool.delete(id);
|
|
57
|
+
await Promise.allSettled(existing.map((w) => w.kill()));
|
|
58
|
+
await this.spawnWorkers(id, name, credentials);
|
|
59
|
+
}
|
|
60
|
+
onTokenDeactivated(id) {
|
|
61
|
+
(this.workerPool.get(id) ?? []).forEach((w) => {
|
|
62
|
+
w.active = false;
|
|
63
|
+
});
|
|
64
|
+
if (this.getAllReadyActiveWorkers().length === 0) this.rejectAllQueued("NO_ACTIVE_WORKERS");
|
|
65
|
+
logger.info(`workers deactivated: token ${id}`);
|
|
66
|
+
}
|
|
67
|
+
onTokenActivated(id) {
|
|
68
|
+
(this.workerPool.get(id) ?? []).forEach((w) => {
|
|
69
|
+
w.active = true;
|
|
70
|
+
});
|
|
71
|
+
this.drainQueue();
|
|
72
|
+
logger.info(`workers activated: token ${id}`);
|
|
73
|
+
}
|
|
74
|
+
async generate(req) {
|
|
75
|
+
const worker = this.acquireIdleWorker();
|
|
76
|
+
if (worker) {
|
|
77
|
+
logger.info(`→ ${worker.tokenName}[${worker.tokenId}] (model: ${req.model})`);
|
|
78
|
+
return this.executeAndRelease(worker, (w) => this.executeTurn(w, req));
|
|
79
|
+
}
|
|
80
|
+
return this.enqueue((w) => {
|
|
81
|
+
logger.info(`→ ${w.tokenName}[${w.tokenId}] (model: ${req.model}, queued)`);
|
|
82
|
+
return this.executeTurn(w, req);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
async generateStream(req, cb) {
|
|
86
|
+
const worker = this.acquireIdleWorker();
|
|
87
|
+
if (worker) {
|
|
88
|
+
logger.info(`→ ${worker.tokenName}[${worker.tokenId}] (model: ${req.model}, [stream])`);
|
|
89
|
+
return this.executeAndRelease(worker, (w) => this.executeStreamTurn(w, req, cb));
|
|
90
|
+
}
|
|
91
|
+
return this.enqueue((w) => {
|
|
92
|
+
logger.info(`→ ${w.tokenName}[${w.tokenId}] (model: ${req.model}, [stream], queued)`);
|
|
93
|
+
return this.executeStreamTurn(w, req, cb);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async interruptWorkerTurn(threadId, turnId) {
|
|
97
|
+
const allWorkers = [...this.workerPool.values()].flat().filter((w) => w.isReady);
|
|
98
|
+
await Promise.allSettled(allWorkers.map((w) => w.interruptTurn(threadId, turnId)));
|
|
99
|
+
}
|
|
100
|
+
acquireIdleWorker() {
|
|
101
|
+
const allWorkers = this.getAllReadyActiveWorkers();
|
|
102
|
+
if (allWorkers.length === 0) return null;
|
|
103
|
+
for (let i = 0; i < allWorkers.length; i++) {
|
|
104
|
+
const w = allWorkers[(this.rrCursor + i) % allWorkers.length];
|
|
105
|
+
if (w.tryAcquireTurn()) {
|
|
106
|
+
this.rrCursor = (this.rrCursor + i + 1) % allWorkers.length;
|
|
107
|
+
return w;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
getAllReadyActiveWorkers() {
|
|
113
|
+
return [...this.workerPool.values()].flat().filter((w) => w.isReady && w.active);
|
|
114
|
+
}
|
|
115
|
+
enqueue(execute) {
|
|
116
|
+
if (this.getAllReadyActiveWorkers().length === 0) return Promise.reject(/* @__PURE__ */ new Error("NO_OPENAI_WORKERS"));
|
|
117
|
+
if (this.queue.length >= MAX_QUEUE_SIZE) return Promise.reject(/* @__PURE__ */ new Error("SERVER_BUSY"));
|
|
118
|
+
return new Promise((resolve, reject) => {
|
|
119
|
+
const item = {
|
|
120
|
+
resolve: (worker) => {
|
|
121
|
+
clearTimeout(item.timer);
|
|
122
|
+
item.abortCleanup?.();
|
|
123
|
+
Promise.resolve().then(() => this.executeAndRelease(worker, execute)).then(resolve, reject);
|
|
124
|
+
},
|
|
125
|
+
reject: (err) => {
|
|
126
|
+
clearTimeout(item.timer);
|
|
127
|
+
item.abortCleanup?.();
|
|
128
|
+
reject(err);
|
|
129
|
+
},
|
|
130
|
+
timer: setTimeout(() => {
|
|
131
|
+
this.removeFromQueue(item);
|
|
132
|
+
reject(/* @__PURE__ */ new Error("SERVER_BUSY"));
|
|
133
|
+
}, QUEUE_TIMEOUT_MS)
|
|
134
|
+
};
|
|
135
|
+
this.queue.push(item);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
removeFromQueue(item) {
|
|
139
|
+
clearTimeout(item.timer);
|
|
140
|
+
item.abortCleanup?.();
|
|
141
|
+
const idx = this.queue.indexOf(item);
|
|
142
|
+
if (idx !== -1) this.queue.splice(idx, 1);
|
|
143
|
+
}
|
|
144
|
+
rejectAllQueued(reason) {
|
|
145
|
+
const err = new Error(reason);
|
|
146
|
+
this.queue.forEach((item) => {
|
|
147
|
+
clearTimeout(item.timer);
|
|
148
|
+
item.abortCleanup?.();
|
|
149
|
+
item.reject(err);
|
|
150
|
+
});
|
|
151
|
+
this.queue = [];
|
|
152
|
+
}
|
|
153
|
+
drainQueue(releasedWorker) {
|
|
154
|
+
if (releasedWorker && this.queue.length > 0 && releasedWorker.isReady && releasedWorker.active && releasedWorker.tryAcquireTurn()) {
|
|
155
|
+
this.queue.shift().resolve(releasedWorker);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
while (this.queue.length > 0) {
|
|
159
|
+
const worker = this.acquireIdleWorker();
|
|
160
|
+
if (!worker) break;
|
|
161
|
+
this.queue.shift().resolve(worker);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async executeAndRelease(worker, execute) {
|
|
165
|
+
try {
|
|
166
|
+
return await execute(worker);
|
|
167
|
+
} finally {
|
|
168
|
+
worker.releaseTurn();
|
|
169
|
+
this.drainQueue(worker);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async executeTurn(worker, req) {
|
|
173
|
+
const turnReq = {
|
|
174
|
+
input: req.input,
|
|
175
|
+
developerInstructions: req.systemPrompt,
|
|
176
|
+
outputSchema: req.outputSchema,
|
|
177
|
+
effort: req.effort ?? DEFAULT_EFFORT,
|
|
178
|
+
model: req.model,
|
|
179
|
+
history: req.history,
|
|
180
|
+
verbosity: req.verbosity,
|
|
181
|
+
reasoningSummary: req.reasoningSummary,
|
|
182
|
+
serviceTier: req.serviceTier
|
|
183
|
+
};
|
|
184
|
+
const result = await worker.executeTurn(turnReq);
|
|
185
|
+
return {
|
|
186
|
+
text: result.text,
|
|
187
|
+
tokenName: worker.tokenName,
|
|
188
|
+
usage: result.usage,
|
|
189
|
+
durationMs: result.durationMs,
|
|
190
|
+
model: result.model
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
async executeStreamTurn(worker, req, cb) {
|
|
194
|
+
const turnReq = {
|
|
195
|
+
input: req.input,
|
|
196
|
+
developerInstructions: req.systemPrompt,
|
|
197
|
+
outputSchema: req.outputSchema,
|
|
198
|
+
effort: req.effort ?? DEFAULT_EFFORT,
|
|
199
|
+
model: req.model,
|
|
200
|
+
history: req.history,
|
|
201
|
+
verbosity: req.verbosity,
|
|
202
|
+
reasoningSummary: req.reasoningSummary,
|
|
203
|
+
serviceTier: req.serviceTier
|
|
204
|
+
};
|
|
205
|
+
const wrappedCb = {
|
|
206
|
+
...cb,
|
|
207
|
+
onComplete: (result) => {
|
|
208
|
+
cb.onComplete({
|
|
209
|
+
...result,
|
|
210
|
+
tokenName: worker.tokenName
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
await worker.executeTurnStream(turnReq, wrappedCb);
|
|
215
|
+
}
|
|
216
|
+
async spawnWorkers(tokenId, tokenName, credentials) {
|
|
217
|
+
const workers = [];
|
|
218
|
+
for (let i = 0; i < WORKERS_PER_TOKEN; i++) {
|
|
219
|
+
if (i > 0) await sleep(SPAWN_INTERVAL_MS);
|
|
220
|
+
const worker = await this.spawnSingleWorker(tokenId, tokenName, credentials, i);
|
|
221
|
+
if (worker) workers.push(worker);
|
|
222
|
+
}
|
|
223
|
+
if (workers.length > 0) {
|
|
224
|
+
this.workerPool.set(tokenId, workers);
|
|
225
|
+
logger.info(`${workers.length}/${WORKERS_PER_TOKEN} workers spawned for ${tokenName}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async spawnSingleWorker(tokenId, tokenName, credentials, workerIndex) {
|
|
229
|
+
const worker = new CodexAppServerWorker({
|
|
230
|
+
tokenId,
|
|
231
|
+
tokenName,
|
|
232
|
+
accessToken: credentials.accessToken,
|
|
233
|
+
accountId: credentials.accountId,
|
|
234
|
+
planType: credentials.planType,
|
|
235
|
+
workerIndex
|
|
236
|
+
});
|
|
237
|
+
worker.onReady = () => this.drainQueue();
|
|
238
|
+
worker.setServerRequestHandler(async (method) => {
|
|
239
|
+
if (method === "account/chatgptAuthTokens/refresh") return handleChatgptAuthTokensRefresh(tokenId);
|
|
240
|
+
throw new Error(`unhandled server-request: ${method}`);
|
|
241
|
+
});
|
|
242
|
+
try {
|
|
243
|
+
await worker.initialize();
|
|
244
|
+
logger.info(`worker spawned: ${tokenName}[${workerIndex}] (id=${tokenId + 1})`);
|
|
245
|
+
return worker;
|
|
246
|
+
} catch (e) {
|
|
247
|
+
logger.warn(`worker spawn failed: ${tokenName}[${workerIndex}]: ${e.message}`);
|
|
248
|
+
await worker.kill().catch(() => {});
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
rateLimitsCache = /* @__PURE__ */ new Map();
|
|
253
|
+
static RATE_LIMITS_CACHE_TTL = 6e4;
|
|
254
|
+
async getRateLimits(tokenName) {
|
|
255
|
+
const cacheKey = tokenName ?? "_default";
|
|
256
|
+
const cached = this.rateLimitsCache.get(cacheKey);
|
|
257
|
+
if (cached && Date.now() - cached.cachedAt < OpenAIDispatcher.RATE_LIMITS_CACHE_TTL) return cached.data;
|
|
258
|
+
const allWorkers = [...this.workerPool.values()].flat().filter((w) => w.isReady);
|
|
259
|
+
const worker = tokenName ? allWorkers.find((w) => w.tokenName === tokenName) : allWorkers[0];
|
|
260
|
+
if (!worker) throw new Error("no ready openai workers");
|
|
261
|
+
const data = await worker.getRateLimits();
|
|
262
|
+
this.rateLimitsCache.set(cacheKey, {
|
|
263
|
+
data,
|
|
264
|
+
cachedAt: Date.now()
|
|
265
|
+
});
|
|
266
|
+
return data;
|
|
267
|
+
}
|
|
268
|
+
pendingLogin = null;
|
|
269
|
+
async startBrowserLogin(name) {
|
|
270
|
+
if (this.pendingLogin) {
|
|
271
|
+
this.pendingLogin.worker.kill().catch(() => {});
|
|
272
|
+
clearTimeout(this.pendingLogin.timer);
|
|
273
|
+
this.pendingLogin = null;
|
|
274
|
+
}
|
|
275
|
+
const worker = new CodexAppServerWorker({
|
|
276
|
+
tokenId: Date.now(),
|
|
277
|
+
tokenName: name,
|
|
278
|
+
accessToken: "",
|
|
279
|
+
accountId: ""
|
|
280
|
+
});
|
|
281
|
+
const authUrl = await worker.startBrowserLogin();
|
|
282
|
+
this.pendingLogin = {
|
|
283
|
+
worker,
|
|
284
|
+
name,
|
|
285
|
+
timer: setTimeout(() => {
|
|
286
|
+
if (this.pendingLogin?.worker === worker) {
|
|
287
|
+
logger.warn(`browser login timeout for ${name}, killing worker`);
|
|
288
|
+
worker.kill().catch(() => {});
|
|
289
|
+
this.pendingLogin = null;
|
|
290
|
+
}
|
|
291
|
+
}, 3e5)
|
|
292
|
+
};
|
|
293
|
+
return { authUrl };
|
|
294
|
+
}
|
|
295
|
+
get pendingLoginName() {
|
|
296
|
+
return this.pendingLogin?.name ?? null;
|
|
297
|
+
}
|
|
298
|
+
async completeBrowserLogin() {
|
|
299
|
+
if (!this.pendingLogin) throw new Error("no pending login");
|
|
300
|
+
const { worker, timer } = this.pendingLogin;
|
|
301
|
+
try {
|
|
302
|
+
await worker.waitForBrowserLoginComplete();
|
|
303
|
+
const creds = await worker.readManagedCredentials();
|
|
304
|
+
if (!creds) throw new Error("failed to read credentials after login");
|
|
305
|
+
return creds;
|
|
306
|
+
} finally {
|
|
307
|
+
clearTimeout(timer);
|
|
308
|
+
this.pendingLogin = null;
|
|
309
|
+
await worker.kill().catch(() => {});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
get workerCount() {
|
|
313
|
+
return [...this.workerPool.values()].flat().length;
|
|
314
|
+
}
|
|
315
|
+
get readyWorkerCount() {
|
|
316
|
+
return [...this.workerPool.values()].flat().filter((w) => w.isReady).length;
|
|
317
|
+
}
|
|
318
|
+
get queueLength() {
|
|
319
|
+
return this.queue.length;
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
//#endregion
|
|
323
|
+
export { OpenAIDispatcher };
|
|
324
|
+
|
|
325
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWRpc3BhdGNoZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLWRpc3BhdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVuQUlEaXNwYXRjaGVyIOKAlCBjb2RleCBhcHAtc2VydmVyIHdvcmtlciBwb29sICsg7Yag7YGwIOudvOyasO2MhS5cbiAqXG4gKiAtIO2GoO2BsOuLuSBOIHdvcmtlciAoQ29kZXhBcHBTZXJ2ZXJXb3JrZXIpLCDquLDrs7ggM1xuICogLSBpZGxlIHdvcmtlciByb3VuZC1yb2JpbiDshKDtg50gKyDtgZAg64yA6riwICjsoITrtoAgYnVzeSDsi5wpXG4gKiAtIFRva2VuU3Vic2NyaWJlciDsnbTrsqTtirjroZwgd29ya2VyIHBvb2wg64+Z6riw7ZmUXG4gKiAtIGJhY2twcmVzc3VyZTog7YGQIGZ1bGwg65iQ64qUIHRpbWVvdXQg7IucIFNFUlZFUl9CVVNZXG4gKi9cbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5cbmltcG9ydCB7IFRva2VuTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4ubW9kZWxcIjtcbmltcG9ydCB7IHR5cGUgT3BlbkFJQ3JlZGVudGlhbHMgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4udHlwZXNcIjtcbmltcG9ydCB7XG4gIHR5cGUgR2VuZXJhdGVSZXF1ZXN0LFxuICB0eXBlIEdlbmVyYXRlUmVzdWx0LFxuICB0eXBlIFByb3ZpZGVyRGlzcGF0Y2hlcixcbn0gZnJvbSBcIi4uL2NvbW1vbi9wcm92aWRlci1kaXNwYXRjaGVyXCI7XG5pbXBvcnQge1xuICBDb2RleEFwcFNlcnZlcldvcmtlcixcbiAgdHlwZSBTdHJlYW1DYWxsYmFja3MsXG4gIHR5cGUgVHVyblJlcXVlc3QsXG4gIHR5cGUgVHVyblJlc3VsdCxcbn0gZnJvbSBcIi4vY29kZXgtd29ya2VyXCI7XG5pbXBvcnQgeyBoYW5kbGVDaGF0Z3B0QXV0aFRva2Vuc1JlZnJlc2ggfSBmcm9tIFwiLi9vcGVuYWktcmVmcmVzaFwiO1xuXG5jb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoW1wicWdyaWRcIiwgXCJvcGVuYWktZGlzcGF0Y2hlclwiXSk7XG5cbmNvbnN0IERFRkFVTFRfRUZGT1JUID0gXCJsb3dcIjtcbmNvbnN0IE1BWF9XT1JLRVJTX1BFUl9UT0tFTiA9IDU7XG5jb25zdCBXT1JLRVJTX1BFUl9UT0tFTiA9IE1hdGgubWluKFxuICBOdW1iZXIocHJvY2Vzcy5lbnYuUUdSSURfV09SS0VSU19QRVJfVE9LRU4gPz8gMyksXG4gIE1BWF9XT1JLRVJTX1BFUl9UT0tFTixcbik7XG5jb25zdCBRVUVVRV9USU1FT1VUX01TID0gNjBfMDAwO1xuY29uc3QgTUFYX1FVRVVFX1NJWkUgPSA1MDtcbmNvbnN0IFNQQVdOX0lOVEVSVkFMX01TID0gNTAwO1xuXG5mdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xufVxuXG50eXBlIFF1ZXVlSXRlbSA9IHtcbiAgcmVzb2x2ZTogKHdvcmtlcjogQ29kZXhBcHBTZXJ2ZXJXb3JrZXIpID0+IHZvaWQ7XG4gIHJlamVjdDogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgdGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBhYm9ydENsZWFudXA/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNsYXNzIE9wZW5BSURpc3BhdGNoZXIgaW1wbGVtZW50cyBQcm92aWRlckRpc3BhdGNoZXIge1xuICB3b3JrZXJQb29sID0gbmV3IE1hcDxudW1iZXIsIENvZGV4QXBwU2VydmVyV29ya2VyW10+KCk7XG4gIHJyQ3Vyc29yID0gMDtcbiAgcXVldWU6IFF1ZXVlSXRlbVtdID0gW107XG5cbiAgYXN5bmMgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyByb3dzIH0gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRNYW55KFwiQVwiKTtcbiAgICBjb25zdCBvcGVuYWlUb2tlbnMgPSByb3dzLmZpbHRlcigodCkgPT4gdC5wcm92aWRlciA9PT0gXCJvcGVuYWlcIik7XG4gICAgbG9nZ2VyLmluZm8oXG4gICAgICBgc3RhcnRpbmcgJHtvcGVuYWlUb2tlbnMubGVuZ3RofSBvcGVuYWkgdG9rZW5zICgke1dPUktFUlNfUEVSX1RPS0VOfSB3b3JrZXJzIGVhY2gpYCxcbiAgICApO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFxuICAgICAgb3BlbmFpVG9rZW5zLm1hcChhc3luYyAodCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLnNwYXduV29ya2Vycyh0LmlkLCB0Lm5hbWUsIHQuY3JlZGVudGlhbHMgYXMgT3BlbkFJQ3JlZGVudGlhbHMpO1xuICAgICAgICBpZiAoIXQuYWN0aXZlKSB0aGlzLm9uVG9rZW5EZWFjdGl2YXRlZCh0LmlkKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmVqZWN0QWxsUXVldWVkKFwiRElTUEFUQ0hFUl9TSFVURE9XTlwiKTtcbiAgICBjb25zdCBraWxscyA9IFsuLi50aGlzLndvcmtlclBvb2wudmFsdWVzKCldLmZsYXQoKS5tYXAoKHcpID0+IHcua2lsbCgpKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoa2lsbHMpO1xuICAgIHRoaXMud29ya2VyUG9vbC5jbGVhcigpO1xuICB9XG5cbiAgLy8g4pSA4pSAIFRva2VuIGV2ZW50cyAoZnJvbSBUb2tlblN1YnNjcmliZXIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGFzeW5jIG9uVG9rZW5BZGRlZChpZDogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIGNyZWRlbnRpYWxzOiBPcGVuQUlDcmVkZW50aWFscyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLndvcmtlclBvb2wuaGFzKGlkKSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuc3Bhd25Xb3JrZXJzKGlkLCBuYW1lLCBjcmVkZW50aWFscyk7XG4gIH1cblxuICBhc3luYyBvblRva2VuUmVtb3ZlZChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgd29ya2VycyA9IHRoaXMud29ya2VyUG9vbC5nZXQoaWQpID8/IFtdO1xuICAgIHRoaXMud29ya2VyUG9vbC5kZWxldGUoaWQpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZCh3b3JrZXJzLm1hcCgodykgPT4gdy5raWxsKCkpKTtcbiAgICBpZiAodGhpcy5nZXRBbGxSZWFkeUFjdGl2ZVdvcmtlcnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucmVqZWN0QWxsUXVldWVkKFwiTk9fT1BFTkFJX1dPUktFUlNcIik7XG4gICAgfVxuICAgIGlmICh3b3JrZXJzLmxlbmd0aCA+IDApIGxvZ2dlci5pbmZvKGB3b3JrZXJzIHJlbW92ZWQgZm9yIHRva2VuICR7aWR9OiAke3dvcmtlcnMubGVuZ3RofWApO1xuICB9XG5cbiAgYXN5bmMgb25Ub2tlblVwZGF0ZWQoaWQ6IG51bWJlciwgbmFtZTogc3RyaW5nLCBjcmVkZW50aWFsczogT3BlbkFJQ3JlZGVudGlhbHMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMud29ya2VyUG9vbC5nZXQoaWQpID8/IFtdO1xuICAgIHRoaXMud29ya2VyUG9vbC5kZWxldGUoaWQpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChleGlzdGluZy5tYXAoKHcpID0+IHcua2lsbCgpKSk7XG4gICAgYXdhaXQgdGhpcy5zcGF3bldvcmtlcnMoaWQsIG5hbWUsIGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIG9uVG9rZW5EZWFjdGl2YXRlZChpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgKHRoaXMud29ya2VyUG9vbC5nZXQoaWQpID8/IFtdKS5mb3JFYWNoKCh3KSA9PiB7XG4gICAgICB3LmFjdGl2ZSA9IGZhbHNlO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmdldEFsbFJlYWR5QWN0aXZlV29ya2VycygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5yZWplY3RBbGxRdWV1ZWQoXCJOT19BQ1RJVkVfV09SS0VSU1wiKTtcbiAgICB9XG4gICAgbG9nZ2VyLmluZm8oYHdvcmtlcnMgZGVhY3RpdmF0ZWQ6IHRva2VuICR7aWR9YCk7XG4gIH1cblxuICBvblRva2VuQWN0aXZhdGVkKGlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAodGhpcy53b3JrZXJQb29sLmdldChpZCkgPz8gW10pLmZvckVhY2goKHcpID0+IHtcbiAgICAgIHcuYWN0aXZlID0gdHJ1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmRyYWluUXVldWUoKTtcbiAgICBsb2dnZXIuaW5mbyhgd29ya2VycyBhY3RpdmF0ZWQ6IHRva2VuICR7aWR9YCk7XG4gIH1cblxuICAvLyDilIDilIAgR2VuZXJhdGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgYXN5bmMgZ2VuZXJhdGUocmVxOiBHZW5lcmF0ZVJlcXVlc3QpOiBQcm9taXNlPEdlbmVyYXRlUmVzdWx0PiB7XG4gICAgY29uc3Qgd29ya2VyID0gdGhpcy5hY3F1aXJlSWRsZVdvcmtlcigpO1xuICAgIGlmICh3b3JrZXIpIHtcbiAgICAgIGxvZ2dlci5pbmZvKGDihpIgJHt3b3JrZXIudG9rZW5OYW1lfVske3dvcmtlci50b2tlbklkfV0gKG1vZGVsOiAke3JlcS5tb2RlbH0pYCk7XG4gICAgICByZXR1cm4gdGhpcy5leGVjdXRlQW5kUmVsZWFzZSh3b3JrZXIsICh3KSA9PiB0aGlzLmV4ZWN1dGVUdXJuKHcsIHJlcSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCh3KSA9PiB7XG4gICAgICBsb2dnZXIuaW5mbyhg4oaSICR7dy50b2tlbk5hbWV9WyR7dy50b2tlbklkfV0gKG1vZGVsOiAke3JlcS5tb2RlbH0sIHF1ZXVlZClgKTtcbiAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVUdXJuKHcsIHJlcSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZW5lcmF0ZVN0cmVhbShyZXE6IEdlbmVyYXRlUmVxdWVzdCwgY2I6IFN0cmVhbUNhbGxiYWNrcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHdvcmtlciA9IHRoaXMuYWNxdWlyZUlkbGVXb3JrZXIoKTtcbiAgICBpZiAod29ya2VyKSB7XG4gICAgICBsb2dnZXIuaW5mbyhg4oaSICR7d29ya2VyLnRva2VuTmFtZX1bJHt3b3JrZXIudG9rZW5JZH1dIChtb2RlbDogJHtyZXEubW9kZWx9LCBbc3RyZWFtXSlgKTtcbiAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVBbmRSZWxlYXNlKHdvcmtlciwgKHcpID0+IHRoaXMuZXhlY3V0ZVN0cmVhbVR1cm4odywgcmVxLCBjYikpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCh3KSA9PiB7XG4gICAgICBsb2dnZXIuaW5mbyhg4oaSICR7dy50b2tlbk5hbWV9WyR7dy50b2tlbklkfV0gKG1vZGVsOiAke3JlcS5tb2RlbH0sIFtzdHJlYW1dLCBxdWV1ZWQpYCk7XG4gICAgICByZXR1cm4gdGhpcy5leGVjdXRlU3RyZWFtVHVybih3LCByZXEsIGNiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGludGVycnVwdFdvcmtlclR1cm4odGhyZWFkSWQ6IHN0cmluZywgdHVybklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBhbGxXb3JrZXJzID0gWy4uLnRoaXMud29ya2VyUG9vbC52YWx1ZXMoKV0uZmxhdCgpLmZpbHRlcigodykgPT4gdy5pc1JlYWR5KTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoYWxsV29ya2Vycy5tYXAoKHcpID0+IHcuaW50ZXJydXB0VHVybih0aHJlYWRJZCwgdHVybklkKSkpO1xuICB9XG5cbiAgLy8g4pSA4pSAIFdvcmtlciBzZWxlY3Rpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8vICDquLDrs7ggcm91bmQtcm9iaW5cbiAgLy8gVE9ETzog7LaU7ZuEIOuLpOuluCDslYzqs6DrpqzsppjsnLzroZwg67OA6rK9IOqwgOuKpe2VmOqyjCDsp4Dsm5BcbiAgYWNxdWlyZUlkbGVXb3JrZXIoKTogQ29kZXhBcHBTZXJ2ZXJXb3JrZXIgfCBudWxsIHtcbiAgICBjb25zdCBhbGxXb3JrZXJzID0gdGhpcy5nZXRBbGxSZWFkeUFjdGl2ZVdvcmtlcnMoKTtcbiAgICBpZiAoYWxsV29ya2Vycy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsV29ya2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgdyA9IGFsbFdvcmtlcnNbKHRoaXMucnJDdXJzb3IgKyBpKSAlIGFsbFdvcmtlcnMubGVuZ3RoXSE7XG4gICAgICBpZiAody50cnlBY3F1aXJlVHVybigpKSB7XG4gICAgICAgIHRoaXMucnJDdXJzb3IgPSAodGhpcy5yckN1cnNvciArIGkgKyAxKSAlIGFsbFdvcmtlcnMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRBbGxSZWFkeUFjdGl2ZVdvcmtlcnMoKTogQ29kZXhBcHBTZXJ2ZXJXb3JrZXJbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLndvcmtlclBvb2wudmFsdWVzKCldLmZsYXQoKS5maWx0ZXIoKHcpID0+IHcuaXNSZWFkeSAmJiB3LmFjdGl2ZSk7XG4gIH1cblxuICAvLyDilIDilIAgUXVldWUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgZW5xdWV1ZTxUPihleGVjdXRlOiAod29ya2VyOiBDb2RleEFwcFNlcnZlcldvcmtlcikgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLmdldEFsbFJlYWR5QWN0aXZlV29ya2VycygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihcIk5PX09QRU5BSV9XT1JLRVJTXCIpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucXVldWUubGVuZ3RoID49IE1BWF9RVUVVRV9TSVpFKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFwiU0VSVkVSX0JVU1lcIikpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBpdGVtOiBRdWV1ZUl0ZW0gPSB7XG4gICAgICAgIHJlc29sdmU6ICh3b3JrZXIpID0+IHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoaXRlbS50aW1lcik7XG4gICAgICAgICAgaXRlbS5hYm9ydENsZWFudXA/LigpO1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLmV4ZWN1dGVBbmRSZWxlYXNlKHdvcmtlciwgZXhlY3V0ZSkpXG4gICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9LFxuICAgICAgICByZWplY3Q6IChlcnIpID0+IHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoaXRlbS50aW1lcik7XG4gICAgICAgICAgaXRlbS5hYm9ydENsZWFudXA/LigpO1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9LFxuICAgICAgICB0aW1lcjogc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVGcm9tUXVldWUoaXRlbSk7XG4gICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIlNFUlZFUl9CVVNZXCIpKTtcbiAgICAgICAgfSwgUVVFVUVfVElNRU9VVF9NUyksXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnF1ZXVlLnB1c2goaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVGcm9tUXVldWUoaXRlbTogUXVldWVJdGVtKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KGl0ZW0udGltZXIpO1xuICAgIGl0ZW0uYWJvcnRDbGVhbnVwPy4oKTtcbiAgICBjb25zdCBpZHggPSB0aGlzLnF1ZXVlLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGlkeCAhPT0gLTEpIHRoaXMucXVldWUuc3BsaWNlKGlkeCwgMSk7XG4gIH1cblxuICByZWplY3RBbGxRdWV1ZWQocmVhc29uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IocmVhc29uKTtcbiAgICB0aGlzLnF1ZXVlLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChpdGVtLnRpbWVyKTtcbiAgICAgIGl0ZW0uYWJvcnRDbGVhbnVwPy4oKTtcbiAgICAgIGl0ZW0ucmVqZWN0KGVycik7XG4gICAgfSk7XG4gICAgdGhpcy5xdWV1ZSA9IFtdO1xuICB9XG5cbiAgZHJhaW5RdWV1ZShyZWxlYXNlZFdvcmtlcj86IENvZGV4QXBwU2VydmVyV29ya2VyKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgcmVsZWFzZWRXb3JrZXIgJiZcbiAgICAgIHRoaXMucXVldWUubGVuZ3RoID4gMCAmJlxuICAgICAgcmVsZWFzZWRXb3JrZXIuaXNSZWFkeSAmJlxuICAgICAgcmVsZWFzZWRXb3JrZXIuYWN0aXZlICYmXG4gICAgICByZWxlYXNlZFdvcmtlci50cnlBY3F1aXJlVHVybigpXG4gICAgKSB7XG4gICAgICBjb25zdCBuZXh0ID0gdGhpcy5xdWV1ZS5zaGlmdCgpITtcbiAgICAgIG5leHQucmVzb2x2ZShyZWxlYXNlZFdvcmtlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKHRoaXMucXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgd29ya2VyID0gdGhpcy5hY3F1aXJlSWRsZVdvcmtlcigpO1xuICAgICAgaWYgKCF3b3JrZXIpIGJyZWFrO1xuICAgICAgY29uc3QgbmV4dCA9IHRoaXMucXVldWUuc2hpZnQoKSE7XG4gICAgICBuZXh0LnJlc29sdmUod29ya2VyKTtcbiAgICB9XG4gIH1cblxuICAvLyDilIDilIAgRXhlY3V0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGFzeW5jIGV4ZWN1dGVBbmRSZWxlYXNlPFQ+KFxuICAgIHdvcmtlcjogQ29kZXhBcHBTZXJ2ZXJXb3JrZXIsXG4gICAgZXhlY3V0ZTogKHdvcmtlcjogQ29kZXhBcHBTZXJ2ZXJXb3JrZXIpID0+IFByb21pc2U8VD4sXG4gICk6IFByb21pc2U8VD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgZXhlY3V0ZSh3b3JrZXIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB3b3JrZXIucmVsZWFzZVR1cm4oKTtcbiAgICAgIHRoaXMuZHJhaW5RdWV1ZSh3b3JrZXIpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVUdXJuKHdvcmtlcjogQ29kZXhBcHBTZXJ2ZXJXb3JrZXIsIHJlcTogR2VuZXJhdGVSZXF1ZXN0KTogUHJvbWlzZTxHZW5lcmF0ZVJlc3VsdD4ge1xuICAgIGNvbnN0IHR1cm5SZXE6IFR1cm5SZXF1ZXN0ID0ge1xuICAgICAgaW5wdXQ6IHJlcS5pbnB1dCxcbiAgICAgIGRldmVsb3Blckluc3RydWN0aW9uczogcmVxLnN5c3RlbVByb21wdCxcbiAgICAgIG91dHB1dFNjaGVtYTogcmVxLm91dHB1dFNjaGVtYSxcbiAgICAgIGVmZm9ydDogcmVxLmVmZm9ydCA/PyBERUZBVUxUX0VGRk9SVCxcbiAgICAgIG1vZGVsOiByZXEubW9kZWwsXG4gICAgICBoaXN0b3J5OiByZXEuaGlzdG9yeSxcbiAgICAgIHZlcmJvc2l0eTogcmVxLnZlcmJvc2l0eSxcbiAgICAgIHJlYXNvbmluZ1N1bW1hcnk6IHJlcS5yZWFzb25pbmdTdW1tYXJ5LFxuICAgICAgc2VydmljZVRpZXI6IHJlcS5zZXJ2aWNlVGllcixcbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdDogVHVyblJlc3VsdCA9IGF3YWl0IHdvcmtlci5leGVjdXRlVHVybih0dXJuUmVxKTtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogcmVzdWx0LnRleHQsXG4gICAgICB0b2tlbk5hbWU6IHdvcmtlci50b2tlbk5hbWUsXG4gICAgICB1c2FnZTogcmVzdWx0LnVzYWdlLFxuICAgICAgZHVyYXRpb25NczogcmVzdWx0LmR1cmF0aW9uTXMsXG4gICAgICBtb2RlbDogcmVzdWx0Lm1vZGVsLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBleGVjdXRlU3RyZWFtVHVybihcbiAgICB3b3JrZXI6IENvZGV4QXBwU2VydmVyV29ya2VyLFxuICAgIHJlcTogR2VuZXJhdGVSZXF1ZXN0LFxuICAgIGNiOiBTdHJlYW1DYWxsYmFja3MsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHR1cm5SZXE6IFR1cm5SZXF1ZXN0ID0ge1xuICAgICAgaW5wdXQ6IHJlcS5pbnB1dCxcbiAgICAgIGRldmVsb3Blckluc3RydWN0aW9uczogcmVxLnN5c3RlbVByb21wdCxcbiAgICAgIG91dHB1dFNjaGVtYTogcmVxLm91dHB1dFNjaGVtYSxcbiAgICAgIGVmZm9ydDogcmVxLmVmZm9ydCA/PyBERUZBVUxUX0VGRk9SVCxcbiAgICAgIG1vZGVsOiByZXEubW9kZWwsXG4gICAgICBoaXN0b3J5OiByZXEuaGlzdG9yeSxcbiAgICAgIHZlcmJvc2l0eTogcmVxLnZlcmJvc2l0eSxcbiAgICAgIHJlYXNvbmluZ1N1bW1hcnk6IHJlcS5yZWFzb25pbmdTdW1tYXJ5LFxuICAgICAgc2VydmljZVRpZXI6IHJlcS5zZXJ2aWNlVGllcixcbiAgICB9O1xuICAgIGNvbnN0IHdyYXBwZWRDYjogU3RyZWFtQ2FsbGJhY2tzID0ge1xuICAgICAgLi4uY2IsXG4gICAgICBvbkNvbXBsZXRlOiAocmVzdWx0KSA9PiB7XG4gICAgICAgIGNiLm9uQ29tcGxldGUoeyAuLi5yZXN1bHQsIHRva2VuTmFtZTogd29ya2VyLnRva2VuTmFtZSB9IGFzIFR1cm5SZXN1bHQgJiB7XG4gICAgICAgICAgdG9rZW5OYW1lOiBzdHJpbmc7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICAgIGF3YWl0IHdvcmtlci5leGVjdXRlVHVyblN0cmVhbSh0dXJuUmVxLCB3cmFwcGVkQ2IpO1xuICB9XG5cbiAgLy8g4pSA4pSAIFNwYXduIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGFzeW5jIHNwYXduV29ya2VycyhcbiAgICB0b2tlbklkOiBudW1iZXIsXG4gICAgdG9rZW5OYW1lOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbHM6IE9wZW5BSUNyZWRlbnRpYWxzLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB3b3JrZXJzOiBDb2RleEFwcFNlcnZlcldvcmtlcltdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBXT1JLRVJTX1BFUl9UT0tFTjsgaSsrKSB7XG4gICAgICBpZiAoaSA+IDApIGF3YWl0IHNsZWVwKFNQQVdOX0lOVEVSVkFMX01TKTtcbiAgICAgIGNvbnN0IHdvcmtlciA9IGF3YWl0IHRoaXMuc3Bhd25TaW5nbGVXb3JrZXIodG9rZW5JZCwgdG9rZW5OYW1lLCBjcmVkZW50aWFscywgaSk7XG4gICAgICBpZiAod29ya2VyKSB3b3JrZXJzLnB1c2god29ya2VyKTtcbiAgICB9XG4gICAgaWYgKHdvcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy53b3JrZXJQb29sLnNldCh0b2tlbklkLCB3b3JrZXJzKTtcbiAgICAgIGxvZ2dlci5pbmZvKGAke3dvcmtlcnMubGVuZ3RofS8ke1dPUktFUlNfUEVSX1RPS0VOfSB3b3JrZXJzIHNwYXduZWQgZm9yICR7dG9rZW5OYW1lfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNwYXduU2luZ2xlV29ya2VyKFxuICAgIHRva2VuSWQ6IG51bWJlcixcbiAgICB0b2tlbk5hbWU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsczogT3BlbkFJQ3JlZGVudGlhbHMsXG4gICAgd29ya2VySW5kZXg6IG51bWJlcixcbiAgKTogUHJvbWlzZTxDb2RleEFwcFNlcnZlcldvcmtlciB8IG51bGw+IHtcbiAgICBjb25zdCB3b3JrZXIgPSBuZXcgQ29kZXhBcHBTZXJ2ZXJXb3JrZXIoe1xuICAgICAgdG9rZW5JZCxcbiAgICAgIHRva2VuTmFtZSxcbiAgICAgIGFjY2Vzc1Rva2VuOiBjcmVkZW50aWFscy5hY2Nlc3NUb2tlbixcbiAgICAgIGFjY291bnRJZDogY3JlZGVudGlhbHMuYWNjb3VudElkLFxuICAgICAgcGxhblR5cGU6IGNyZWRlbnRpYWxzLnBsYW5UeXBlLFxuICAgICAgd29ya2VySW5kZXgsXG4gICAgfSk7XG5cbiAgICB3b3JrZXIub25SZWFkeSA9ICgpID0+IHRoaXMuZHJhaW5RdWV1ZSgpO1xuXG4gICAgd29ya2VyLnNldFNlcnZlclJlcXVlc3RIYW5kbGVyKGFzeW5jIChtZXRob2QpID0+IHtcbiAgICAgIGlmIChtZXRob2QgPT09IFwiYWNjb3VudC9jaGF0Z3B0QXV0aFRva2Vucy9yZWZyZXNoXCIpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZUNoYXRncHRBdXRoVG9rZW5zUmVmcmVzaCh0b2tlbklkKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5oYW5kbGVkIHNlcnZlci1yZXF1ZXN0OiAke21ldGhvZH1gKTtcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3b3JrZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgbG9nZ2VyLmluZm8oYHdvcmtlciBzcGF3bmVkOiAke3Rva2VuTmFtZX1bJHt3b3JrZXJJbmRleH1dIChpZD0ke3Rva2VuSWQgKyAxfSlgKTtcbiAgICAgIHJldHVybiB3b3JrZXI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nZ2VyLndhcm4oYHdvcmtlciBzcGF3biBmYWlsZWQ6ICR7dG9rZW5OYW1lfVske3dvcmtlckluZGV4fV06ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgICBhd2FpdCB3b3JrZXIua2lsbCgpLmNhdGNoKCgpID0+IHt9KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIOKUgOKUgCBSYXRlIGxpbWl0cyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICByYXRlTGltaXRzQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgeyBkYXRhOiB1bmtub3duOyBjYWNoZWRBdDogbnVtYmVyIH0+KCk7XG4gIHN0YXRpYyByZWFkb25seSBSQVRFX0xJTUlUU19DQUNIRV9UVEwgPSA2MF8wMDA7XG5cbiAgYXN5bmMgZ2V0UmF0ZUxpbWl0cyh0b2tlbk5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IHRva2VuTmFtZSA/PyBcIl9kZWZhdWx0XCI7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5yYXRlTGltaXRzQ2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICBpZiAoY2FjaGVkICYmIERhdGUubm93KCkgLSBjYWNoZWQuY2FjaGVkQXQgPCBPcGVuQUlEaXNwYXRjaGVyLlJBVEVfTElNSVRTX0NBQ0hFX1RUTCkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbFdvcmtlcnMgPSBbLi4udGhpcy53b3JrZXJQb29sLnZhbHVlcygpXS5mbGF0KCkuZmlsdGVyKCh3KSA9PiB3LmlzUmVhZHkpO1xuICAgIGNvbnN0IHdvcmtlciA9IHRva2VuTmFtZSA/IGFsbFdvcmtlcnMuZmluZCgodykgPT4gdy50b2tlbk5hbWUgPT09IHRva2VuTmFtZSkgOiBhbGxXb3JrZXJzWzBdO1xuICAgIGlmICghd29ya2VyKSB0aHJvdyBuZXcgRXJyb3IoXCJubyByZWFkeSBvcGVuYWkgd29ya2Vyc1wiKTtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgd29ya2VyLmdldFJhdGVMaW1pdHMoKTtcbiAgICB0aGlzLnJhdGVMaW1pdHNDYWNoZS5zZXQoY2FjaGVLZXksIHsgZGF0YSwgY2FjaGVkQXQ6IERhdGUubm93KCkgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICAvLyDilIDilIAgQnJvd3NlciBsb2dpbiBmbG93IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIHBlbmRpbmdMb2dpbjoge1xuICAgIHdvcmtlcjogQ29kZXhBcHBTZXJ2ZXJXb3JrZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgfSB8IG51bGwgPSBudWxsO1xuXG4gIGFzeW5jIHN0YXJ0QnJvd3NlckxvZ2luKG5hbWU6IHN0cmluZyk6IFByb21pc2U8eyBhdXRoVXJsOiBzdHJpbmcgfT4ge1xuICAgIGlmICh0aGlzLnBlbmRpbmdMb2dpbikge1xuICAgICAgdGhpcy5wZW5kaW5nTG9naW4ud29ya2VyLmtpbGwoKS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nTG9naW4udGltZXIpO1xuICAgICAgdGhpcy5wZW5kaW5nTG9naW4gPSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHRlbXBJZCA9IERhdGUubm93KCk7XG4gICAgY29uc3Qgd29ya2VyID0gbmV3IENvZGV4QXBwU2VydmVyV29ya2VyKHtcbiAgICAgIHRva2VuSWQ6IHRlbXBJZCxcbiAgICAgIHRva2VuTmFtZTogbmFtZSxcbiAgICAgIGFjY2Vzc1Rva2VuOiBcIlwiLFxuICAgICAgYWNjb3VudElkOiBcIlwiLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aFVybCA9IGF3YWl0IHdvcmtlci5zdGFydEJyb3dzZXJMb2dpbigpO1xuXG4gICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBlbmRpbmdMb2dpbj8ud29ya2VyID09PSB3b3JrZXIpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oYGJyb3dzZXIgbG9naW4gdGltZW91dCBmb3IgJHtuYW1lfSwga2lsbGluZyB3b3JrZXJgKTtcbiAgICAgICAgd29ya2VyLmtpbGwoKS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgICAgIHRoaXMucGVuZGluZ0xvZ2luID0gbnVsbDtcbiAgICAgIH1cbiAgICB9LCAzMDBfMDAwKTtcblxuICAgIHRoaXMucGVuZGluZ0xvZ2luID0geyB3b3JrZXIsIG5hbWUsIHRpbWVyIH07XG4gICAgcmV0dXJuIHsgYXV0aFVybCB9O1xuICB9XG5cbiAgZ2V0IHBlbmRpbmdMb2dpbk5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ0xvZ2luPy5uYW1lID8/IG51bGw7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZUJyb3dzZXJMb2dpbigpOiBQcm9taXNlPHtcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICAgIGlkVG9rZW4/OiBzdHJpbmc7XG4gICAgYWNjb3VudElkOiBzdHJpbmc7XG4gIH0+IHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0xvZ2luKSB0aHJvdyBuZXcgRXJyb3IoXCJubyBwZW5kaW5nIGxvZ2luXCIpO1xuICAgIGNvbnN0IHsgd29ya2VyLCB0aW1lciB9ID0gdGhpcy5wZW5kaW5nTG9naW47XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgd29ya2VyLndhaXRGb3JCcm93c2VyTG9naW5Db21wbGV0ZSgpO1xuICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCB3b3JrZXIucmVhZE1hbmFnZWRDcmVkZW50aWFscygpO1xuICAgICAgaWYgKCFjcmVkcykgdGhyb3cgbmV3IEVycm9yKFwiZmFpbGVkIHRvIHJlYWQgY3JlZGVudGlhbHMgYWZ0ZXIgbG9naW5cIik7XG4gICAgICByZXR1cm4gY3JlZHM7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB0aGlzLnBlbmRpbmdMb2dpbiA9IG51bGw7XG4gICAgICBhd2FpdCB3b3JrZXIua2lsbCgpLmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICAvLyDilIDilIAgU3RhdHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgZ2V0IHdvcmtlckNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIFsuLi50aGlzLndvcmtlclBvb2wudmFsdWVzKCldLmZsYXQoKS5sZW5ndGg7XG4gIH1cblxuICBnZXQgcmVhZHlXb3JrZXJDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiBbLi4udGhpcy53b3JrZXJQb29sLnZhbHVlcygpXS5mbGF0KCkuZmlsdGVyKCh3KSA9PiB3LmlzUmVhZHkpLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBxdWV1ZUxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmxlbmd0aDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQXlCQSxNQUFNLFNBQVMsVUFBVSxDQUFDLFNBQVMsb0JBQW9CLENBQUM7QUFFeEQsTUFBTSxpQkFBaUI7QUFFdkIsTUFBTSxvQkFBb0IsS0FBSyxJQUM3QixPQUFPLFFBQVEsSUFBSSwyQkFBMkIsRUFBRSxFQUZwQixFQUk3QjtBQUNELE1BQU0sbUJBQW1CO0FBQ3pCLE1BQU0saUJBQWlCO0FBQ3ZCLE1BQU0sb0JBQW9CO0FBRTFCLFNBQVMsTUFBTSxJQUEyQjtBQUN4QyxRQUFPLElBQUksU0FBUyxZQUFZLFdBQVcsU0FBUyxHQUFHLENBQUM7O0FBVTFELElBQWEsbUJBQWIsTUFBYSxpQkFBK0M7Q0FDMUQsNkJBQWEsSUFBSSxLQUFxQztDQUN0RCxXQUFXO0NBQ1gsUUFBcUIsRUFB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
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import "../../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { TokenModel } from "../../../application/token/token.model.js";
|
|
3
|
+
import { OPENAI_CLIENT_ID, OPENAI_TOKEN_URL } from "./openai-constants.js";
|
|
4
|
+
import { getLogger } from "@logtape/logtape";
|
|
5
|
+
//#region src/utils/providers/openai/openai-refresh.ts
|
|
6
|
+
/**
|
|
7
|
+
* OpenAI chatgptAuthTokens refresh handler.
|
|
8
|
+
*
|
|
9
|
+
* - codex app-server 가 401 받으면 `account/chatgptAuthTokens/refresh` server-request 를 보냄
|
|
10
|
+
* - qgrid 가 DB 의 refresh_token 으로 새 access_token 을 발급받아 응답
|
|
11
|
+
* - per-token inflight promise 로 concurrent refresh dedup
|
|
12
|
+
* - rotation 감지: 새 refresh_token 있으면 DB 즉시 업데이트
|
|
13
|
+
*/
|
|
14
|
+
const logger = getLogger(["qgrid", "openai-refresh"]);
|
|
15
|
+
const inflightRefresh = /* @__PURE__ */ new Map();
|
|
16
|
+
const lastRefreshTime = /* @__PURE__ */ new Map();
|
|
17
|
+
const REFRESH_MIN_INTERVAL_MS = 5e3;
|
|
18
|
+
async function handleChatgptAuthTokensRefresh(tokenId) {
|
|
19
|
+
const existing = inflightRefresh.get(tokenId);
|
|
20
|
+
if (existing) {
|
|
21
|
+
logger.info(`refresh dedup for token ${tokenId}`);
|
|
22
|
+
return existing;
|
|
23
|
+
}
|
|
24
|
+
const lastAt = lastRefreshTime.get(tokenId) ?? 0;
|
|
25
|
+
if (Date.now() - lastAt < REFRESH_MIN_INTERVAL_MS) {
|
|
26
|
+
logger.info(`refresh too soon for token ${tokenId}, reading current creds from DB`);
|
|
27
|
+
return readCurrentCreds(tokenId);
|
|
28
|
+
}
|
|
29
|
+
lastRefreshTime.set(tokenId, Date.now());
|
|
30
|
+
const promise = doRefresh(tokenId);
|
|
31
|
+
inflightRefresh.set(tokenId, promise);
|
|
32
|
+
try {
|
|
33
|
+
return await promise;
|
|
34
|
+
} finally {
|
|
35
|
+
inflightRefresh.delete(tokenId);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function readCurrentCreds(tokenId) {
|
|
39
|
+
const token = await TokenModel.findOne("A", { id: tokenId });
|
|
40
|
+
if (!token || token.provider !== "openai") throw new Error(`token ${tokenId} not found`);
|
|
41
|
+
const creds = token.credentials;
|
|
42
|
+
return {
|
|
43
|
+
accessToken: creds.accessToken,
|
|
44
|
+
chatgptAccountId: creds.accountId,
|
|
45
|
+
chatgptPlanType: creds.planType
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
async function doRefresh(tokenId) {
|
|
49
|
+
const token = await TokenModel.findOne("A", { id: tokenId });
|
|
50
|
+
if (!token || token.provider !== "openai") throw new Error(`token ${tokenId} not found or not openai`);
|
|
51
|
+
const creds = token.credentials;
|
|
52
|
+
if (!creds.refreshToken) throw new Error(`token ${tokenId} has no refreshToken`);
|
|
53
|
+
logger.info(`refreshing token ${token.name} (id=${tokenId})`);
|
|
54
|
+
const resp = await fetch(OPENAI_TOKEN_URL, {
|
|
55
|
+
method: "POST",
|
|
56
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
57
|
+
body: new URLSearchParams({
|
|
58
|
+
grant_type: "refresh_token",
|
|
59
|
+
client_id: OPENAI_CLIENT_ID,
|
|
60
|
+
refresh_token: creds.refreshToken
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
if (!resp.ok) {
|
|
64
|
+
const body = await resp.text().catch(() => "");
|
|
65
|
+
throw new Error(`OpenAI refresh failed: ${resp.status} ${body}`);
|
|
66
|
+
}
|
|
67
|
+
const data = await resp.json();
|
|
68
|
+
const newRefreshToken = data.refresh_token ?? creds.refreshToken;
|
|
69
|
+
if (data.refresh_token !== null && data.refresh_token !== void 0 && data.refresh_token !== creds.refreshToken) logger.info(`refresh_token rotated for token ${token.name}`);
|
|
70
|
+
const updatedCreds = {
|
|
71
|
+
...creds,
|
|
72
|
+
accessToken: data.access_token,
|
|
73
|
+
refreshToken: newRefreshToken,
|
|
74
|
+
accessTokenExpiresAt: data.expires_in ? Date.now() + data.expires_in * 1e3 : creds.accessTokenExpiresAt,
|
|
75
|
+
...data.id_token ? { idToken: data.id_token } : {}
|
|
76
|
+
};
|
|
77
|
+
await TokenModel.save([{
|
|
78
|
+
id: tokenId,
|
|
79
|
+
provider: "openai",
|
|
80
|
+
credentials: updatedCreds,
|
|
81
|
+
name: token.name
|
|
82
|
+
}]);
|
|
83
|
+
logger.info(`token ${token.name} refreshed successfully`);
|
|
84
|
+
return {
|
|
85
|
+
accessToken: data.access_token,
|
|
86
|
+
chatgptAccountId: creds.accountId,
|
|
87
|
+
chatgptPlanType: creds.planType
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
91
|
+
export { handleChatgptAuthTokensRefresh };
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXJlZnJlc2guanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLXJlZnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVuQUkgY2hhdGdwdEF1dGhUb2tlbnMgcmVmcmVzaCBoYW5kbGVyLlxuICpcbiAqIC0gY29kZXggYXBwLXNlcnZlciDqsIAgNDAxIOuwm+ycvOuptCBgYWNjb3VudC9jaGF0Z3B0QXV0aFRva2Vucy9yZWZyZXNoYCBzZXJ2ZXItcmVxdWVzdCDrpbwg67O064OEXG4gKiAtIHFncmlkIOqwgCBEQiDsnZggcmVmcmVzaF90b2tlbiDsnLzroZwg7IOIIGFjY2Vzc190b2tlbiDsnYQg67Cc6riJ67Cb7JWEIOydkeuLtVxuICogLSBwZXItdG9rZW4gaW5mbGlnaHQgcHJvbWlzZSDroZwgY29uY3VycmVudCByZWZyZXNoIGRlZHVwXG4gKiAtIHJvdGF0aW9uIOqwkOyngDog7IOIIHJlZnJlc2hfdG9rZW4g7J6I7Jy866m0IERCIOymieyLnCDsl4XrjbDsnbTtirhcbiAqL1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcblxuaW1wb3J0IHsgVG9rZW5Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9hcHBsaWNhdGlvbi90b2tlbi90b2tlbi5tb2RlbFwiO1xuaW1wb3J0IHsgdHlwZSBPcGVuQUlDcmVkZW50aWFscyB9IGZyb20gXCIuLi8uLi8uLi9hcHBsaWNhdGlvbi90b2tlbi90b2tlbi50eXBlc1wiO1xuXG5jb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoW1wicWdyaWRcIiwgXCJvcGVuYWktcmVmcmVzaFwiXSk7XG5cbmltcG9ydCB7IE9QRU5BSV9DTElFTlRfSUQsIE9QRU5BSV9UT0tFTl9VUkwgfSBmcm9tIFwiLi9vcGVuYWktY29uc3RhbnRzXCI7XG5cbi8vIHBlci10b2tlbiBpbmZsaWdodCBwcm9taXNlIGRlZHVwICsgbWluaW11bSBpbnRlcnZhbFxuY29uc3QgaW5mbGlnaHRSZWZyZXNoID0gbmV3IE1hcDxudW1iZXIsIFByb21pc2U8UmVmcmVzaFJlc3VsdD4+KCk7XG5jb25zdCBsYXN0UmVmcmVzaFRpbWUgPSBuZXcgTWFwPG51bWJlciwgbnVtYmVyPigpO1xuY29uc3QgUkVGUkVTSF9NSU5fSU5URVJWQUxfTVMgPSA1XzAwMDtcblxuaW50ZXJmYWNlIFJlZnJlc2hSZXN1bHQge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBjaGF0Z3B0QWNjb3VudElkOiBzdHJpbmc7XG4gIGNoYXRncHRQbGFuVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZUNoYXRncHRBdXRoVG9rZW5zUmVmcmVzaCh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgZXhpc3RpbmcgPSBpbmZsaWdodFJlZnJlc2guZ2V0KHRva2VuSWQpO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICBsb2dnZXIuaW5mbyhgcmVmcmVzaCBkZWR1cCBmb3IgdG9rZW4gJHt0b2tlbklkfWApO1xuICAgIHJldHVybiBleGlzdGluZztcbiAgfVxuXG4gIGNvbnN0IGxhc3RBdCA9IGxhc3RSZWZyZXNoVGltZS5nZXQodG9rZW5JZCkgPz8gMDtcbiAgaWYgKERhdGUubm93KCkgLSBsYXN0QXQgPCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUykge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoIHRvbyBzb29uIGZvciB0b2tlbiAke3Rva2VuSWR9LCByZWFkaW5nIGN1cnJlbnQgY3JlZHMgZnJvbSBEQmApO1xuICAgIHJldHVybiByZWFkQ3VycmVudENyZWRzKHRva2VuSWQpO1xuICB9XG5cbiAgbGFzdFJlZnJlc2hUaW1lLnNldCh0b2tlbklkLCBEYXRlLm5vdygpKTtcbiAgY29uc3QgcHJvbWlzZSA9IGRvUmVmcmVzaCh0b2tlbklkKTtcbiAgaW5mbGlnaHRSZWZyZXNoLnNldCh0b2tlbklkLCBwcm9taXNlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBwcm9taXNlO1xuICB9IGZpbmFsbHkge1xuICAgIGluZmxpZ2h0UmVmcmVzaC5kZWxldGUodG9rZW5JZCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZEN1cnJlbnRDcmVkcyh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHRocm93IG5ldyBFcnJvcihgdG9rZW4gJHt0b2tlbklkfSBub3QgZm91bmRgKTtcbiAgY29uc3QgY3JlZHMgPSB0b2tlbi5jcmVkZW50aWFscyBhcyBPcGVuQUlDcmVkZW50aWFscztcbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogY3JlZHMuYWNjZXNzVG9rZW4sXG4gICAgY2hhdGdwdEFjY291bnRJZDogY3JlZHMuYWNjb3VudElkLFxuICAgIGNoYXRncHRQbGFuVHlwZTogY3JlZHMucGxhblR5cGUsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvUmVmcmVzaCh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHRva2VuICR7dG9rZW5JZH0gbm90IGZvdW5kIG9yIG5vdCBvcGVuYWlgKTtcbiAgfVxuXG4gIGNvbnN0IGNyZWRzID0gdG9rZW4uY3JlZGVudGlhbHMgYXMgT3BlbkFJQ3JlZGVudGlhbHM7XG4gIGlmICghY3JlZHMucmVmcmVzaFRva2VuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB0b2tlbiAke3Rva2VuSWR9IGhhcyBubyByZWZyZXNoVG9rZW5gKTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGByZWZyZXNoaW5nIHRva2VuICR7dG9rZW4ubmFtZX0gKGlkPSR7dG9rZW5JZH0pYCk7XG5cbiAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKE9QRU5BSV9UT0tFTl9VUkwsIHtcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LFxuICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICBjbGllbnRfaWQ6IE9QRU5BSV9DTElFTlRfSUQsXG4gICAgICByZWZyZXNoX3Rva2VuOiBjcmVkcy5yZWZyZXNoVG9rZW4sXG4gICAgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcC5vaykge1xuICAgIGNvbnN0IGJvZHkgPSBhd2FpdCByZXNwLnRleHQoKS5jYXRjaCgoKSA9PiBcIlwiKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9wZW5BSSByZWZyZXNoIGZhaWxlZDogJHtyZXNwLnN0YXR1c30gJHtib2R5fWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwLmpzb24oKSkgYXMge1xuICAgIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gICAgZXhwaXJlc19pbj86IG51bWJlcjtcbiAgICBpZF90b2tlbj86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBuZXdSZWZyZXNoVG9rZW4gPSBkYXRhLnJlZnJlc2hfdG9rZW4gPz8gY3JlZHMucmVmcmVzaFRva2VuO1xuICBjb25zdCByb3RhdGVkID1cbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IG51bGwgJiZcbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IHVuZGVmaW5lZCAmJlxuICAgIGRhdGEucmVmcmVzaF90b2tlbiAhPT0gY3JlZHMucmVmcmVzaFRva2VuO1xuICBpZiAocm90YXRlZCkge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoX3Rva2VuIHJvdGF0ZWQgZm9yIHRva2VuICR7dG9rZW4ubmFtZX1gKTtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWRDcmVkczogT3BlbkFJQ3JlZGVudGlhbHMgPSB7XG4gICAgLi4uY3JlZHMsXG4gICAgYWNjZXNzVG9rZW46IGRhdGEuYWNjZXNzX3Rva2VuLFxuICAgIHJlZnJlc2hUb2tlbjogbmV3UmVmcmVzaFRva2VuLFxuICAgIGFjY2Vzc1Rva2VuRXhwaXJlc0F0OiBkYXRhLmV4cGlyZXNfaW5cbiAgICAgID8gRGF0ZS5ub3coKSArIGRhdGEuZXhwaXJlc19pbiAqIDEwMDBcbiAgICAgIDogY3JlZHMuYWNjZXNzVG9rZW5FeHBpcmVzQXQsXG4gICAgLi4uKGRhdGEuaWRfdG9rZW4gPyB7IGlkVG9rZW46IGRhdGEuaWRfdG9rZW4gfSA6IHt9KSxcbiAgfTtcblxuICBhd2FpdCBUb2tlbk1vZGVsLnNhdmUoW1xuICAgIHtcbiAgICAgIGlkOiB0b2tlbklkLFxuICAgICAgcHJvdmlkZXI6IFwib3BlbmFpXCIsXG4gICAgICBjcmVkZW50aWFsczogdXBkYXRlZENyZWRzLFxuICAgICAgbmFtZTogdG9rZW4ubmFtZSxcbiAgICB9LFxuICBdKTtcblxuICBsb2dnZXIuaW5mbyhgdG9rZW4gJHt0b2tlbi5uYW1lfSByZWZyZXNoZWQgc3VjY2Vzc2Z1bGx5YCk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogZGF0YS5hY2Nlc3NfdG9rZW4sXG4gICAgY2hhdGdwdEFjY291bnRJZDogY3JlZHMuYWNjb3VudElkLFxuICAgIGNoYXRncHRQbGFuVHlwZTogY3JlZHMucGxhblR5cGUsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFhQSxNQUFNLFNBQVMsVUFB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
|
|
@@ -5,7 +5,11 @@ import { createHash, randomBytes } from "node:crypto";
|
|
|
5
5
|
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
export type AnthropicUsageRaw = {
|
|
9
|
+
error?: string;
|
|
10
|
+
five_hour?: { utilization: number | null; resets_at: string | null } | null;
|
|
11
|
+
seven_day?: { utilization: number | null; resets_at: string | null } | null;
|
|
12
|
+
};
|
|
9
13
|
|
|
10
14
|
const logger = getLogger(["qgrid", "oauth"]);
|
|
11
15
|
|
|
@@ -136,10 +140,10 @@ export async function refreshAccessToken(refreshToken: string): Promise<OAuthTok
|
|
|
136
140
|
};
|
|
137
141
|
}
|
|
138
142
|
|
|
139
|
-
const usageCache: Record<string, { data:
|
|
143
|
+
const usageCache: Record<string, { data: AnthropicUsageRaw; cachedAt: number }> = {};
|
|
140
144
|
const USAGE_API_CACHE_TTL = 60_000; // 1분
|
|
141
145
|
|
|
142
|
-
export async function fetchUsage(accessToken: string): Promise<
|
|
146
|
+
export async function fetchUsage(accessToken: string): Promise<AnthropicUsageRaw> {
|
|
143
147
|
const cacheKey = accessToken.slice(-10);
|
|
144
148
|
const cached = usageCache[cacheKey];
|
|
145
149
|
if (cached && Date.now() - cached.cachedAt < USAGE_API_CACHE_TTL) {
|
|
@@ -177,7 +181,7 @@ export async function fetchUsage(accessToken: string): Promise<UsageResponse> {
|
|
|
177
181
|
return errorResult;
|
|
178
182
|
}
|
|
179
183
|
|
|
180
|
-
const data = (await res.json()) as
|
|
184
|
+
const data = (await res.json()) as AnthropicUsageRaw;
|
|
181
185
|
// cache invalidate
|
|
182
186
|
usageCache[cacheKey] = { data, cachedAt: Date.now() };
|
|
183
187
|
return data;
|