@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.
Files changed (1161) hide show
  1. package/README.md +47 -68
  2. package/bundle/dist/application/qgrid/oauth.js +1 -1
  3. package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +137 -0
  4. package/bundle/dist/application/qgrid/qgrid.dispatcher.js +116 -16
  5. package/bundle/dist/application/qgrid/qgrid.frame.js +350 -83
  6. package/bundle/dist/application/qgrid/qgrid.types.js +132 -19
  7. package/bundle/dist/application/qgrid/token-subscriber.js +14 -4
  8. package/bundle/dist/application/qgrid/token-trigger-setup.js +3 -4
  9. package/bundle/dist/application/qgrid/tool-emulation.js +102 -0
  10. package/bundle/dist/application/queries.generated.js +8 -3
  11. package/bundle/dist/application/request-log/request-log.model.js +105 -1
  12. package/bundle/dist/application/request-log/request-log.types.js +14 -3
  13. package/bundle/dist/application/request-log-step/request-log-step.model.js +115 -0
  14. package/bundle/dist/application/request-log-step/request-log-step.types.js +28 -0
  15. package/bundle/dist/application/sonamu.generated.js +145 -20
  16. package/bundle/dist/application/sonamu.generated.sso.js +63 -8
  17. package/bundle/dist/application/token/token.model.js +10 -8
  18. package/bundle/dist/application/token/token.types.js +19 -11
  19. package/bundle/dist/codex-protocol/AbsolutePathBuf.js +2 -0
  20. package/bundle/dist/codex-protocol/AgentPath.js +2 -0
  21. package/bundle/dist/codex-protocol/ApplyPatchApprovalParams.js +2 -0
  22. package/bundle/dist/codex-protocol/ApplyPatchApprovalResponse.js +2 -0
  23. package/bundle/dist/codex-protocol/AuthMode.js +2 -0
  24. package/bundle/dist/codex-protocol/ClientInfo.js +2 -0
  25. package/bundle/dist/codex-protocol/ClientNotification.js +2 -0
  26. package/bundle/dist/codex-protocol/ClientRequest.js +2 -0
  27. package/bundle/dist/codex-protocol/CollaborationMode.js +2 -0
  28. package/bundle/dist/codex-protocol/ContentItem.js +2 -0
  29. package/bundle/dist/codex-protocol/ConversationGitInfo.js +2 -0
  30. package/bundle/dist/codex-protocol/ConversationSummary.js +2 -0
  31. package/bundle/dist/codex-protocol/ExecCommandApprovalParams.js +2 -0
  32. package/bundle/dist/codex-protocol/ExecCommandApprovalResponse.js +2 -0
  33. package/bundle/dist/codex-protocol/ExecPolicyAmendment.js +2 -0
  34. package/bundle/dist/codex-protocol/FileChange.js +2 -0
  35. package/bundle/dist/codex-protocol/ForcedLoginMethod.js +2 -0
  36. package/bundle/dist/codex-protocol/FunctionCallOutputBody.js +2 -0
  37. package/bundle/dist/codex-protocol/FunctionCallOutputContentItem.js +2 -0
  38. package/bundle/dist/codex-protocol/FuzzyFileSearchMatchType.js +2 -0
  39. package/bundle/dist/codex-protocol/FuzzyFileSearchParams.js +2 -0
  40. package/bundle/dist/codex-protocol/FuzzyFileSearchResponse.js +2 -0
  41. package/bundle/dist/codex-protocol/FuzzyFileSearchResult.js +2 -0
  42. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionCompletedNotification.js +2 -0
  43. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.js +2 -0
  44. package/bundle/dist/codex-protocol/GetAuthStatusParams.js +2 -0
  45. package/bundle/dist/codex-protocol/GetAuthStatusResponse.js +2 -0
  46. package/bundle/dist/codex-protocol/GetConversationSummaryParams.js +2 -0
  47. package/bundle/dist/codex-protocol/GetConversationSummaryResponse.js +2 -0
  48. package/bundle/dist/codex-protocol/GitDiffToRemoteParams.js +2 -0
  49. package/bundle/dist/codex-protocol/GitDiffToRemoteResponse.js +2 -0
  50. package/bundle/dist/codex-protocol/GitSha.js +2 -0
  51. package/bundle/dist/codex-protocol/ImageDetail.js +2 -0
  52. package/bundle/dist/codex-protocol/InitializeCapabilities.js +2 -0
  53. package/bundle/dist/codex-protocol/InitializeParams.js +2 -0
  54. package/bundle/dist/codex-protocol/InitializeResponse.js +2 -0
  55. package/bundle/dist/codex-protocol/InputModality.js +2 -0
  56. package/bundle/dist/codex-protocol/InternalSessionSource.js +2 -0
  57. package/bundle/dist/codex-protocol/LocalShellAction.js +2 -0
  58. package/bundle/dist/codex-protocol/LocalShellExecAction.js +2 -0
  59. package/bundle/dist/codex-protocol/LocalShellStatus.js +2 -0
  60. package/bundle/dist/codex-protocol/MessagePhase.js +2 -0
  61. package/bundle/dist/codex-protocol/ModeKind.js +2 -0
  62. package/bundle/dist/codex-protocol/NetworkPolicyAmendment.js +2 -0
  63. package/bundle/dist/codex-protocol/NetworkPolicyRuleAction.js +2 -0
  64. package/bundle/dist/codex-protocol/ParsedCommand.js +2 -0
  65. package/bundle/dist/codex-protocol/Personality.js +2 -0
  66. package/bundle/dist/codex-protocol/PlanType.js +2 -0
  67. package/bundle/dist/codex-protocol/RealtimeConversationVersion.js +2 -0
  68. package/bundle/dist/codex-protocol/RealtimeOutputModality.js +2 -0
  69. package/bundle/dist/codex-protocol/RealtimeVoice.js +2 -0
  70. package/bundle/dist/codex-protocol/RealtimeVoicesList.js +2 -0
  71. package/bundle/dist/codex-protocol/ReasoningEffort.js +2 -0
  72. package/bundle/dist/codex-protocol/ReasoningItemContent.js +2 -0
  73. package/bundle/dist/codex-protocol/ReasoningItemReasoningSummary.js +2 -0
  74. package/bundle/dist/codex-protocol/ReasoningSummary.js +2 -0
  75. package/bundle/dist/codex-protocol/RequestId.js +2 -0
  76. package/bundle/dist/codex-protocol/Resource.js +2 -0
  77. package/bundle/dist/codex-protocol/ResourceContent.js +2 -0
  78. package/bundle/dist/codex-protocol/ResourceTemplate.js +2 -0
  79. package/bundle/dist/codex-protocol/ResponseItem.js +2 -0
  80. package/bundle/dist/codex-protocol/ReviewDecision.js +2 -0
  81. package/bundle/dist/codex-protocol/ServerNotification.js +2 -0
  82. package/bundle/dist/codex-protocol/ServerRequest.js +2 -0
  83. package/bundle/dist/codex-protocol/SessionSource.js +2 -0
  84. package/bundle/dist/codex-protocol/Settings.js +2 -0
  85. package/bundle/dist/codex-protocol/SubAgentSource.js +2 -0
  86. package/bundle/dist/codex-protocol/ThreadId.js +2 -0
  87. package/bundle/dist/codex-protocol/ThreadMemoryMode.js +2 -0
  88. package/bundle/dist/codex-protocol/Tool.js +2 -0
  89. package/bundle/dist/codex-protocol/Verbosity.js +2 -0
  90. package/bundle/dist/codex-protocol/WebSearchAction.js +2 -0
  91. package/bundle/dist/codex-protocol/WebSearchContextSize.js +2 -0
  92. package/bundle/dist/codex-protocol/WebSearchLocation.js +2 -0
  93. package/bundle/dist/codex-protocol/WebSearchMode.js +2 -0
  94. package/bundle/dist/codex-protocol/WebSearchToolConfig.js +2 -0
  95. package/bundle/dist/codex-protocol/index.js +3 -0
  96. package/bundle/dist/codex-protocol/serde_json/JsonValue.js +2 -0
  97. package/bundle/dist/codex-protocol/v2/Account.js +2 -0
  98. package/bundle/dist/codex-protocol/v2/AccountLoginCompletedNotification.js +2 -0
  99. package/bundle/dist/codex-protocol/v2/AccountRateLimitsUpdatedNotification.js +2 -0
  100. package/bundle/dist/codex-protocol/v2/AccountUpdatedNotification.js +2 -0
  101. package/bundle/dist/codex-protocol/v2/ActivePermissionProfile.js +2 -0
  102. package/bundle/dist/codex-protocol/v2/ActivePermissionProfileModification.js +2 -0
  103. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeCreditType.js +2 -0
  104. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeEmailStatus.js +2 -0
  105. package/bundle/dist/codex-protocol/v2/AdditionalFileSystemPermissions.js +2 -0
  106. package/bundle/dist/codex-protocol/v2/AdditionalNetworkPermissions.js +2 -0
  107. package/bundle/dist/codex-protocol/v2/AdditionalPermissionProfile.js +2 -0
  108. package/bundle/dist/codex-protocol/v2/AgentMessageDeltaNotification.js +2 -0
  109. package/bundle/dist/codex-protocol/v2/AnalyticsConfig.js +2 -0
  110. package/bundle/dist/codex-protocol/v2/AppBranding.js +2 -0
  111. package/bundle/dist/codex-protocol/v2/AppInfo.js +2 -0
  112. package/bundle/dist/codex-protocol/v2/AppListUpdatedNotification.js +2 -0
  113. package/bundle/dist/codex-protocol/v2/AppMetadata.js +2 -0
  114. package/bundle/dist/codex-protocol/v2/AppReview.js +2 -0
  115. package/bundle/dist/codex-protocol/v2/AppScreenshot.js +2 -0
  116. package/bundle/dist/codex-protocol/v2/AppSummary.js +2 -0
  117. package/bundle/dist/codex-protocol/v2/AppToolApproval.js +2 -0
  118. package/bundle/dist/codex-protocol/v2/AppToolsConfig.js +2 -0
  119. package/bundle/dist/codex-protocol/v2/ApprovalsReviewer.js +2 -0
  120. package/bundle/dist/codex-protocol/v2/AppsConfig.js +2 -0
  121. package/bundle/dist/codex-protocol/v2/AppsDefaultConfig.js +2 -0
  122. package/bundle/dist/codex-protocol/v2/AppsListParams.js +2 -0
  123. package/bundle/dist/codex-protocol/v2/AppsListResponse.js +2 -0
  124. package/bundle/dist/codex-protocol/v2/AskForApproval.js +2 -0
  125. package/bundle/dist/codex-protocol/v2/AutoReviewDecisionSource.js +2 -0
  126. package/bundle/dist/codex-protocol/v2/ByteRange.js +2 -0
  127. package/bundle/dist/codex-protocol/v2/CancelLoginAccountParams.js +2 -0
  128. package/bundle/dist/codex-protocol/v2/CancelLoginAccountResponse.js +2 -0
  129. package/bundle/dist/codex-protocol/v2/CancelLoginAccountStatus.js +2 -0
  130. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshParams.js +2 -0
  131. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshReason.js +2 -0
  132. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.js +2 -0
  133. package/bundle/dist/codex-protocol/v2/CodexErrorInfo.js +2 -0
  134. package/bundle/dist/codex-protocol/v2/CollabAgentState.js +2 -0
  135. package/bundle/dist/codex-protocol/v2/CollabAgentStatus.js +2 -0
  136. package/bundle/dist/codex-protocol/v2/CollabAgentTool.js +2 -0
  137. package/bundle/dist/codex-protocol/v2/CollabAgentToolCallStatus.js +2 -0
  138. package/bundle/dist/codex-protocol/v2/CollaborationModeMask.js +2 -0
  139. package/bundle/dist/codex-protocol/v2/CommandAction.js +2 -0
  140. package/bundle/dist/codex-protocol/v2/CommandExecOutputDeltaNotification.js +2 -0
  141. package/bundle/dist/codex-protocol/v2/CommandExecOutputStream.js +2 -0
  142. package/bundle/dist/codex-protocol/v2/CommandExecParams.js +2 -0
  143. package/bundle/dist/codex-protocol/v2/CommandExecResizeParams.js +2 -0
  144. package/bundle/dist/codex-protocol/v2/CommandExecResizeResponse.js +2 -0
  145. package/bundle/dist/codex-protocol/v2/CommandExecResponse.js +2 -0
  146. package/bundle/dist/codex-protocol/v2/CommandExecTerminalSize.js +2 -0
  147. package/bundle/dist/codex-protocol/v2/CommandExecTerminateParams.js +2 -0
  148. package/bundle/dist/codex-protocol/v2/CommandExecTerminateResponse.js +2 -0
  149. package/bundle/dist/codex-protocol/v2/CommandExecWriteParams.js +2 -0
  150. package/bundle/dist/codex-protocol/v2/CommandExecWriteResponse.js +2 -0
  151. package/bundle/dist/codex-protocol/v2/CommandExecutionApprovalDecision.js +2 -0
  152. package/bundle/dist/codex-protocol/v2/CommandExecutionOutputDeltaNotification.js +2 -0
  153. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalParams.js +2 -0
  154. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalResponse.js +2 -0
  155. package/bundle/dist/codex-protocol/v2/CommandExecutionSource.js +2 -0
  156. package/bundle/dist/codex-protocol/v2/CommandExecutionStatus.js +2 -0
  157. package/bundle/dist/codex-protocol/v2/CommandMigration.js +2 -0
  158. package/bundle/dist/codex-protocol/v2/Config.js +2 -0
  159. package/bundle/dist/codex-protocol/v2/ConfigBatchWriteParams.js +2 -0
  160. package/bundle/dist/codex-protocol/v2/ConfigEdit.js +2 -0
  161. package/bundle/dist/codex-protocol/v2/ConfigLayer.js +2 -0
  162. package/bundle/dist/codex-protocol/v2/ConfigLayerMetadata.js +2 -0
  163. package/bundle/dist/codex-protocol/v2/ConfigLayerSource.js +2 -0
  164. package/bundle/dist/codex-protocol/v2/ConfigReadParams.js +2 -0
  165. package/bundle/dist/codex-protocol/v2/ConfigReadResponse.js +2 -0
  166. package/bundle/dist/codex-protocol/v2/ConfigRequirements.js +2 -0
  167. package/bundle/dist/codex-protocol/v2/ConfigRequirementsReadResponse.js +2 -0
  168. package/bundle/dist/codex-protocol/v2/ConfigValueWriteParams.js +2 -0
  169. package/bundle/dist/codex-protocol/v2/ConfigWarningNotification.js +2 -0
  170. package/bundle/dist/codex-protocol/v2/ConfigWriteResponse.js +2 -0
  171. package/bundle/dist/codex-protocol/v2/ConfiguredHookHandler.js +2 -0
  172. package/bundle/dist/codex-protocol/v2/ConfiguredHookMatcherGroup.js +2 -0
  173. package/bundle/dist/codex-protocol/v2/ContextCompactedNotification.js +2 -0
  174. package/bundle/dist/codex-protocol/v2/CreditsSnapshot.js +2 -0
  175. package/bundle/dist/codex-protocol/v2/DeprecationNoticeNotification.js +2 -0
  176. package/bundle/dist/codex-protocol/v2/DynamicToolCallOutputContentItem.js +2 -0
  177. package/bundle/dist/codex-protocol/v2/DynamicToolCallParams.js +2 -0
  178. package/bundle/dist/codex-protocol/v2/DynamicToolCallResponse.js +2 -0
  179. package/bundle/dist/codex-protocol/v2/DynamicToolCallStatus.js +2 -0
  180. package/bundle/dist/codex-protocol/v2/DynamicToolSpec.js +2 -0
  181. package/bundle/dist/codex-protocol/v2/ErrorNotification.js +2 -0
  182. package/bundle/dist/codex-protocol/v2/ExecPolicyAmendment.js +2 -0
  183. package/bundle/dist/codex-protocol/v2/ExperimentalFeature.js +2 -0
  184. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.js +2 -0
  185. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.js +2 -0
  186. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListParams.js +2 -0
  187. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListResponse.js +2 -0
  188. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureStage.js +2 -0
  189. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectParams.js +2 -0
  190. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectResponse.js +2 -0
  191. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.js +2 -0
  192. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportParams.js +2 -0
  193. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportResponse.js +2 -0
  194. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItem.js +2 -0
  195. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItemType.js +2 -0
  196. package/bundle/dist/codex-protocol/v2/FeedbackUploadParams.js +2 -0
  197. package/bundle/dist/codex-protocol/v2/FeedbackUploadResponse.js +2 -0
  198. package/bundle/dist/codex-protocol/v2/FileChangeApprovalDecision.js +2 -0
  199. package/bundle/dist/codex-protocol/v2/FileChangeOutputDeltaNotification.js +2 -0
  200. package/bundle/dist/codex-protocol/v2/FileChangePatchUpdatedNotification.js +2 -0
  201. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalParams.js +2 -0
  202. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalResponse.js +2 -0
  203. package/bundle/dist/codex-protocol/v2/FileSystemAccessMode.js +2 -0
  204. package/bundle/dist/codex-protocol/v2/FileSystemPath.js +2 -0
  205. package/bundle/dist/codex-protocol/v2/FileSystemSandboxEntry.js +2 -0
  206. package/bundle/dist/codex-protocol/v2/FileSystemSpecialPath.js +2 -0
  207. package/bundle/dist/codex-protocol/v2/FileUpdateChange.js +2 -0
  208. package/bundle/dist/codex-protocol/v2/FsChangedNotification.js +2 -0
  209. package/bundle/dist/codex-protocol/v2/FsCopyParams.js +2 -0
  210. package/bundle/dist/codex-protocol/v2/FsCopyResponse.js +2 -0
  211. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryParams.js +2 -0
  212. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryResponse.js +2 -0
  213. package/bundle/dist/codex-protocol/v2/FsGetMetadataParams.js +2 -0
  214. package/bundle/dist/codex-protocol/v2/FsGetMetadataResponse.js +2 -0
  215. package/bundle/dist/codex-protocol/v2/FsReadDirectoryEntry.js +2 -0
  216. package/bundle/dist/codex-protocol/v2/FsReadDirectoryParams.js +2 -0
  217. package/bundle/dist/codex-protocol/v2/FsReadDirectoryResponse.js +2 -0
  218. package/bundle/dist/codex-protocol/v2/FsReadFileParams.js +2 -0
  219. package/bundle/dist/codex-protocol/v2/FsReadFileResponse.js +2 -0
  220. package/bundle/dist/codex-protocol/v2/FsRemoveParams.js +2 -0
  221. package/bundle/dist/codex-protocol/v2/FsRemoveResponse.js +2 -0
  222. package/bundle/dist/codex-protocol/v2/FsUnwatchParams.js +2 -0
  223. package/bundle/dist/codex-protocol/v2/FsUnwatchResponse.js +2 -0
  224. package/bundle/dist/codex-protocol/v2/FsWatchParams.js +2 -0
  225. package/bundle/dist/codex-protocol/v2/FsWatchResponse.js +2 -0
  226. package/bundle/dist/codex-protocol/v2/FsWriteFileParams.js +2 -0
  227. package/bundle/dist/codex-protocol/v2/FsWriteFileResponse.js +2 -0
  228. package/bundle/dist/codex-protocol/v2/GetAccountParams.js +2 -0
  229. package/bundle/dist/codex-protocol/v2/GetAccountRateLimitsResponse.js +2 -0
  230. package/bundle/dist/codex-protocol/v2/GetAccountResponse.js +2 -0
  231. package/bundle/dist/codex-protocol/v2/GitInfo.js +2 -0
  232. package/bundle/dist/codex-protocol/v2/GrantedPermissionProfile.js +2 -0
  233. package/bundle/dist/codex-protocol/v2/GuardianApprovalReview.js +2 -0
  234. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewAction.js +2 -0
  235. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewStatus.js +2 -0
  236. package/bundle/dist/codex-protocol/v2/GuardianCommandSource.js +2 -0
  237. package/bundle/dist/codex-protocol/v2/GuardianRiskLevel.js +2 -0
  238. package/bundle/dist/codex-protocol/v2/GuardianUserAuthorization.js +2 -0
  239. package/bundle/dist/codex-protocol/v2/GuardianWarningNotification.js +2 -0
  240. package/bundle/dist/codex-protocol/v2/HookCompletedNotification.js +2 -0
  241. package/bundle/dist/codex-protocol/v2/HookErrorInfo.js +2 -0
  242. package/bundle/dist/codex-protocol/v2/HookEventName.js +2 -0
  243. package/bundle/dist/codex-protocol/v2/HookExecutionMode.js +2 -0
  244. package/bundle/dist/codex-protocol/v2/HookHandlerType.js +2 -0
  245. package/bundle/dist/codex-protocol/v2/HookMetadata.js +2 -0
  246. package/bundle/dist/codex-protocol/v2/HookMigration.js +2 -0
  247. package/bundle/dist/codex-protocol/v2/HookOutputEntry.js +2 -0
  248. package/bundle/dist/codex-protocol/v2/HookOutputEntryKind.js +2 -0
  249. package/bundle/dist/codex-protocol/v2/HookPromptFragment.js +2 -0
  250. package/bundle/dist/codex-protocol/v2/HookRunStatus.js +2 -0
  251. package/bundle/dist/codex-protocol/v2/HookRunSummary.js +2 -0
  252. package/bundle/dist/codex-protocol/v2/HookScope.js +2 -0
  253. package/bundle/dist/codex-protocol/v2/HookSource.js +2 -0
  254. package/bundle/dist/codex-protocol/v2/HookStartedNotification.js +2 -0
  255. package/bundle/dist/codex-protocol/v2/HookTrustStatus.js +2 -0
  256. package/bundle/dist/codex-protocol/v2/HooksListEntry.js +2 -0
  257. package/bundle/dist/codex-protocol/v2/HooksListParams.js +2 -0
  258. package/bundle/dist/codex-protocol/v2/HooksListResponse.js +2 -0
  259. package/bundle/dist/codex-protocol/v2/ItemCompletedNotification.js +2 -0
  260. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.js +2 -0
  261. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.js +2 -0
  262. package/bundle/dist/codex-protocol/v2/ItemStartedNotification.js +2 -0
  263. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusParams.js +2 -0
  264. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusResponse.js +2 -0
  265. package/bundle/dist/codex-protocol/v2/LoginAccountParams.js +2 -0
  266. package/bundle/dist/codex-protocol/v2/LoginAccountResponse.js +2 -0
  267. package/bundle/dist/codex-protocol/v2/LogoutAccountResponse.js +2 -0
  268. package/bundle/dist/codex-protocol/v2/ManagedHooksRequirements.js +2 -0
  269. package/bundle/dist/codex-protocol/v2/MarketplaceAddParams.js +2 -0
  270. package/bundle/dist/codex-protocol/v2/MarketplaceAddResponse.js +2 -0
  271. package/bundle/dist/codex-protocol/v2/MarketplaceInterface.js +2 -0
  272. package/bundle/dist/codex-protocol/v2/MarketplaceLoadErrorInfo.js +2 -0
  273. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveParams.js +2 -0
  274. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveResponse.js +2 -0
  275. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeErrorInfo.js +2 -0
  276. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeParams.js +2 -0
  277. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeResponse.js +2 -0
  278. package/bundle/dist/codex-protocol/v2/McpAuthStatus.js +2 -0
  279. package/bundle/dist/codex-protocol/v2/McpElicitationArrayType.js +2 -0
  280. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanSchema.js +2 -0
  281. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanType.js +2 -0
  282. package/bundle/dist/codex-protocol/v2/McpElicitationConstOption.js +2 -0
  283. package/bundle/dist/codex-protocol/v2/McpElicitationEnumSchema.js +2 -0
  284. package/bundle/dist/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.js +2 -0
  285. package/bundle/dist/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.js +2 -0
  286. package/bundle/dist/codex-protocol/v2/McpElicitationNumberSchema.js +2 -0
  287. package/bundle/dist/codex-protocol/v2/McpElicitationNumberType.js +2 -0
  288. package/bundle/dist/codex-protocol/v2/McpElicitationObjectType.js +2 -0
  289. package/bundle/dist/codex-protocol/v2/McpElicitationPrimitiveSchema.js +2 -0
  290. package/bundle/dist/codex-protocol/v2/McpElicitationSchema.js +2 -0
  291. package/bundle/dist/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.js +2 -0
  292. package/bundle/dist/codex-protocol/v2/McpElicitationStringFormat.js +2 -0
  293. package/bundle/dist/codex-protocol/v2/McpElicitationStringSchema.js +2 -0
  294. package/bundle/dist/codex-protocol/v2/McpElicitationStringType.js +2 -0
  295. package/bundle/dist/codex-protocol/v2/McpElicitationTitledEnumItems.js +2 -0
  296. package/bundle/dist/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.js +2 -0
  297. package/bundle/dist/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.js +2 -0
  298. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledEnumItems.js +2 -0
  299. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.js +2 -0
  300. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.js +2 -0
  301. package/bundle/dist/codex-protocol/v2/McpResourceReadParams.js +2 -0
  302. package/bundle/dist/codex-protocol/v2/McpResourceReadResponse.js +2 -0
  303. package/bundle/dist/codex-protocol/v2/McpServerElicitationAction.js +2 -0
  304. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestParams.js +2 -0
  305. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestResponse.js +2 -0
  306. package/bundle/dist/codex-protocol/v2/McpServerMigration.js +2 -0
  307. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginCompletedNotification.js +2 -0
  308. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginParams.js +2 -0
  309. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginResponse.js +2 -0
  310. package/bundle/dist/codex-protocol/v2/McpServerRefreshResponse.js +2 -0
  311. package/bundle/dist/codex-protocol/v2/McpServerStartupState.js +2 -0
  312. package/bundle/dist/codex-protocol/v2/McpServerStatus.js +2 -0
  313. package/bundle/dist/codex-protocol/v2/McpServerStatusDetail.js +2 -0
  314. package/bundle/dist/codex-protocol/v2/McpServerStatusUpdatedNotification.js +2 -0
  315. package/bundle/dist/codex-protocol/v2/McpServerToolCallParams.js +2 -0
  316. package/bundle/dist/codex-protocol/v2/McpServerToolCallResponse.js +2 -0
  317. package/bundle/dist/codex-protocol/v2/McpToolCallError.js +2 -0
  318. package/bundle/dist/codex-protocol/v2/McpToolCallProgressNotification.js +2 -0
  319. package/bundle/dist/codex-protocol/v2/McpToolCallResult.js +2 -0
  320. package/bundle/dist/codex-protocol/v2/McpToolCallStatus.js +2 -0
  321. package/bundle/dist/codex-protocol/v2/MemoryCitation.js +2 -0
  322. package/bundle/dist/codex-protocol/v2/MemoryCitationEntry.js +2 -0
  323. package/bundle/dist/codex-protocol/v2/MergeStrategy.js +2 -0
  324. package/bundle/dist/codex-protocol/v2/MigrationDetails.js +2 -0
  325. package/bundle/dist/codex-protocol/v2/Model.js +2 -0
  326. package/bundle/dist/codex-protocol/v2/ModelAvailabilityNux.js +2 -0
  327. package/bundle/dist/codex-protocol/v2/ModelListParams.js +2 -0
  328. package/bundle/dist/codex-protocol/v2/ModelListResponse.js +2 -0
  329. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadParams.js +2 -0
  330. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.js +2 -0
  331. package/bundle/dist/codex-protocol/v2/ModelRerouteReason.js +2 -0
  332. package/bundle/dist/codex-protocol/v2/ModelReroutedNotification.js +2 -0
  333. package/bundle/dist/codex-protocol/v2/ModelServiceTier.js +2 -0
  334. package/bundle/dist/codex-protocol/v2/ModelUpgradeInfo.js +2 -0
  335. package/bundle/dist/codex-protocol/v2/ModelVerification.js +2 -0
  336. package/bundle/dist/codex-protocol/v2/ModelVerificationNotification.js +2 -0
  337. package/bundle/dist/codex-protocol/v2/NetworkAccess.js +2 -0
  338. package/bundle/dist/codex-protocol/v2/NetworkApprovalContext.js +2 -0
  339. package/bundle/dist/codex-protocol/v2/NetworkApprovalProtocol.js +2 -0
  340. package/bundle/dist/codex-protocol/v2/NetworkDomainPermission.js +2 -0
  341. package/bundle/dist/codex-protocol/v2/NetworkPolicyAmendment.js +2 -0
  342. package/bundle/dist/codex-protocol/v2/NetworkPolicyRuleAction.js +2 -0
  343. package/bundle/dist/codex-protocol/v2/NetworkRequirements.js +2 -0
  344. package/bundle/dist/codex-protocol/v2/NetworkUnixSocketPermission.js +2 -0
  345. package/bundle/dist/codex-protocol/v2/NonSteerableTurnKind.js +2 -0
  346. package/bundle/dist/codex-protocol/v2/OverriddenMetadata.js +2 -0
  347. package/bundle/dist/codex-protocol/v2/PatchApplyStatus.js +2 -0
  348. package/bundle/dist/codex-protocol/v2/PatchChangeKind.js +2 -0
  349. package/bundle/dist/codex-protocol/v2/PermissionGrantScope.js +2 -0
  350. package/bundle/dist/codex-protocol/v2/PermissionProfile.js +2 -0
  351. package/bundle/dist/codex-protocol/v2/PermissionProfileFileSystemPermissions.js +2 -0
  352. package/bundle/dist/codex-protocol/v2/PermissionProfileModificationParams.js +2 -0
  353. package/bundle/dist/codex-protocol/v2/PermissionProfileNetworkPermissions.js +2 -0
  354. package/bundle/dist/codex-protocol/v2/PermissionProfileSelectionParams.js +2 -0
  355. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalParams.js +2 -0
  356. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalResponse.js +2 -0
  357. package/bundle/dist/codex-protocol/v2/PlanDeltaNotification.js +2 -0
  358. package/bundle/dist/codex-protocol/v2/PluginAuthPolicy.js +2 -0
  359. package/bundle/dist/codex-protocol/v2/PluginAvailability.js +2 -0
  360. package/bundle/dist/codex-protocol/v2/PluginDetail.js +2 -0
  361. package/bundle/dist/codex-protocol/v2/PluginHookSummary.js +2 -0
  362. package/bundle/dist/codex-protocol/v2/PluginInstallParams.js +2 -0
  363. package/bundle/dist/codex-protocol/v2/PluginInstallPolicy.js +2 -0
  364. package/bundle/dist/codex-protocol/v2/PluginInstallResponse.js +2 -0
  365. package/bundle/dist/codex-protocol/v2/PluginInterface.js +2 -0
  366. package/bundle/dist/codex-protocol/v2/PluginListMarketplaceKind.js +2 -0
  367. package/bundle/dist/codex-protocol/v2/PluginListParams.js +2 -0
  368. package/bundle/dist/codex-protocol/v2/PluginListResponse.js +2 -0
  369. package/bundle/dist/codex-protocol/v2/PluginMarketplaceEntry.js +2 -0
  370. package/bundle/dist/codex-protocol/v2/PluginReadParams.js +2 -0
  371. package/bundle/dist/codex-protocol/v2/PluginReadResponse.js +2 -0
  372. package/bundle/dist/codex-protocol/v2/PluginShareContext.js +2 -0
  373. package/bundle/dist/codex-protocol/v2/PluginShareDeleteParams.js +2 -0
  374. package/bundle/dist/codex-protocol/v2/PluginShareDeleteResponse.js +2 -0
  375. package/bundle/dist/codex-protocol/v2/PluginShareDiscoverability.js +2 -0
  376. package/bundle/dist/codex-protocol/v2/PluginShareListItem.js +2 -0
  377. package/bundle/dist/codex-protocol/v2/PluginShareListParams.js +2 -0
  378. package/bundle/dist/codex-protocol/v2/PluginShareListResponse.js +2 -0
  379. package/bundle/dist/codex-protocol/v2/PluginSharePrincipal.js +2 -0
  380. package/bundle/dist/codex-protocol/v2/PluginSharePrincipalType.js +2 -0
  381. package/bundle/dist/codex-protocol/v2/PluginShareSaveParams.js +2 -0
  382. package/bundle/dist/codex-protocol/v2/PluginShareSaveResponse.js +2 -0
  383. package/bundle/dist/codex-protocol/v2/PluginShareTarget.js +2 -0
  384. package/bundle/dist/codex-protocol/v2/PluginShareUpdateDiscoverability.js +2 -0
  385. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsParams.js +2 -0
  386. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsResponse.js +2 -0
  387. package/bundle/dist/codex-protocol/v2/PluginSkillReadParams.js +2 -0
  388. package/bundle/dist/codex-protocol/v2/PluginSkillReadResponse.js +2 -0
  389. package/bundle/dist/codex-protocol/v2/PluginSource.js +2 -0
  390. package/bundle/dist/codex-protocol/v2/PluginSummary.js +2 -0
  391. package/bundle/dist/codex-protocol/v2/PluginUninstallParams.js +2 -0
  392. package/bundle/dist/codex-protocol/v2/PluginUninstallResponse.js +2 -0
  393. package/bundle/dist/codex-protocol/v2/PluginsMigration.js +2 -0
  394. package/bundle/dist/codex-protocol/v2/ProcessExitedNotification.js +2 -0
  395. package/bundle/dist/codex-protocol/v2/ProcessOutputDeltaNotification.js +2 -0
  396. package/bundle/dist/codex-protocol/v2/ProcessOutputStream.js +2 -0
  397. package/bundle/dist/codex-protocol/v2/ProcessTerminalSize.js +2 -0
  398. package/bundle/dist/codex-protocol/v2/ProfileV2.js +2 -0
  399. package/bundle/dist/codex-protocol/v2/RateLimitReachedType.js +2 -0
  400. package/bundle/dist/codex-protocol/v2/RateLimitSnapshot.js +2 -0
  401. package/bundle/dist/codex-protocol/v2/RateLimitWindow.js +2 -0
  402. package/bundle/dist/codex-protocol/v2/RawResponseItemCompletedNotification.js +2 -0
  403. package/bundle/dist/codex-protocol/v2/ReasoningEffortOption.js +2 -0
  404. package/bundle/dist/codex-protocol/v2/ReasoningSummaryPartAddedNotification.js +2 -0
  405. package/bundle/dist/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.js +2 -0
  406. package/bundle/dist/codex-protocol/v2/ReasoningTextDeltaNotification.js +2 -0
  407. package/bundle/dist/codex-protocol/v2/RemoteControlConnectionStatus.js +2 -0
  408. package/bundle/dist/codex-protocol/v2/RemoteControlStatusChangedNotification.js +2 -0
  409. package/bundle/dist/codex-protocol/v2/RequestPermissionProfile.js +2 -0
  410. package/bundle/dist/codex-protocol/v2/ResidencyRequirement.js +2 -0
  411. package/bundle/dist/codex-protocol/v2/ReviewDelivery.js +2 -0
  412. package/bundle/dist/codex-protocol/v2/ReviewStartParams.js +2 -0
  413. package/bundle/dist/codex-protocol/v2/ReviewStartResponse.js +2 -0
  414. package/bundle/dist/codex-protocol/v2/ReviewTarget.js +2 -0
  415. package/bundle/dist/codex-protocol/v2/SandboxMode.js +2 -0
  416. package/bundle/dist/codex-protocol/v2/SandboxPolicy.js +2 -0
  417. package/bundle/dist/codex-protocol/v2/SandboxWorkspaceWrite.js +2 -0
  418. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailParams.js +2 -0
  419. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.js +2 -0
  420. package/bundle/dist/codex-protocol/v2/ServerRequestResolvedNotification.js +2 -0
  421. package/bundle/dist/codex-protocol/v2/SessionMigration.js +2 -0
  422. package/bundle/dist/codex-protocol/v2/SessionSource.js +2 -0
  423. package/bundle/dist/codex-protocol/v2/SkillDependencies.js +2 -0
  424. package/bundle/dist/codex-protocol/v2/SkillErrorInfo.js +2 -0
  425. package/bundle/dist/codex-protocol/v2/SkillInterface.js +2 -0
  426. package/bundle/dist/codex-protocol/v2/SkillMetadata.js +2 -0
  427. package/bundle/dist/codex-protocol/v2/SkillScope.js +2 -0
  428. package/bundle/dist/codex-protocol/v2/SkillSummary.js +2 -0
  429. package/bundle/dist/codex-protocol/v2/SkillToolDependency.js +2 -0
  430. package/bundle/dist/codex-protocol/v2/SkillsChangedNotification.js +2 -0
  431. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteParams.js +2 -0
  432. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteResponse.js +2 -0
  433. package/bundle/dist/codex-protocol/v2/SkillsListEntry.js +2 -0
  434. package/bundle/dist/codex-protocol/v2/SkillsListParams.js +2 -0
  435. package/bundle/dist/codex-protocol/v2/SkillsListResponse.js +2 -0
  436. package/bundle/dist/codex-protocol/v2/SortDirection.js +2 -0
  437. package/bundle/dist/codex-protocol/v2/SubagentMigration.js +2 -0
  438. package/bundle/dist/codex-protocol/v2/TerminalInteractionNotification.js +2 -0
  439. package/bundle/dist/codex-protocol/v2/TextElement.js +2 -0
  440. package/bundle/dist/codex-protocol/v2/TextPosition.js +2 -0
  441. package/bundle/dist/codex-protocol/v2/TextRange.js +2 -0
  442. package/bundle/dist/codex-protocol/v2/Thread.js +2 -0
  443. package/bundle/dist/codex-protocol/v2/ThreadActiveFlag.js +2 -0
  444. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.js +2 -0
  445. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.js +2 -0
  446. package/bundle/dist/codex-protocol/v2/ThreadArchiveParams.js +2 -0
  447. package/bundle/dist/codex-protocol/v2/ThreadArchiveResponse.js +2 -0
  448. package/bundle/dist/codex-protocol/v2/ThreadArchivedNotification.js +2 -0
  449. package/bundle/dist/codex-protocol/v2/ThreadClosedNotification.js +2 -0
  450. package/bundle/dist/codex-protocol/v2/ThreadCompactStartParams.js +2 -0
  451. package/bundle/dist/codex-protocol/v2/ThreadCompactStartResponse.js +2 -0
  452. package/bundle/dist/codex-protocol/v2/ThreadForkParams.js +2 -0
  453. package/bundle/dist/codex-protocol/v2/ThreadForkResponse.js +2 -0
  454. package/bundle/dist/codex-protocol/v2/ThreadGoal.js +2 -0
  455. package/bundle/dist/codex-protocol/v2/ThreadGoalClearedNotification.js +2 -0
  456. package/bundle/dist/codex-protocol/v2/ThreadGoalStatus.js +2 -0
  457. package/bundle/dist/codex-protocol/v2/ThreadGoalUpdatedNotification.js +2 -0
  458. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsParams.js +2 -0
  459. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsResponse.js +2 -0
  460. package/bundle/dist/codex-protocol/v2/ThreadItem.js +2 -0
  461. package/bundle/dist/codex-protocol/v2/ThreadListParams.js +2 -0
  462. package/bundle/dist/codex-protocol/v2/ThreadListResponse.js +2 -0
  463. package/bundle/dist/codex-protocol/v2/ThreadLoadedListParams.js +2 -0
  464. package/bundle/dist/codex-protocol/v2/ThreadLoadedListResponse.js +2 -0
  465. package/bundle/dist/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.js +2 -0
  466. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateParams.js +2 -0
  467. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateResponse.js +2 -0
  468. package/bundle/dist/codex-protocol/v2/ThreadNameUpdatedNotification.js +2 -0
  469. package/bundle/dist/codex-protocol/v2/ThreadReadParams.js +2 -0
  470. package/bundle/dist/codex-protocol/v2/ThreadReadResponse.js +2 -0
  471. package/bundle/dist/codex-protocol/v2/ThreadRealtimeAudioChunk.js +2 -0
  472. package/bundle/dist/codex-protocol/v2/ThreadRealtimeClosedNotification.js +2 -0
  473. package/bundle/dist/codex-protocol/v2/ThreadRealtimeErrorNotification.js +2 -0
  474. package/bundle/dist/codex-protocol/v2/ThreadRealtimeItemAddedNotification.js +2 -0
  475. package/bundle/dist/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.js +2 -0
  476. package/bundle/dist/codex-protocol/v2/ThreadRealtimeSdpNotification.js +2 -0
  477. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartTransport.js +2 -0
  478. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartedNotification.js +2 -0
  479. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.js +2 -0
  480. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.js +2 -0
  481. package/bundle/dist/codex-protocol/v2/ThreadResumeParams.js +2 -0
  482. package/bundle/dist/codex-protocol/v2/ThreadResumeResponse.js +2 -0
  483. package/bundle/dist/codex-protocol/v2/ThreadRollbackParams.js +2 -0
  484. package/bundle/dist/codex-protocol/v2/ThreadRollbackResponse.js +2 -0
  485. package/bundle/dist/codex-protocol/v2/ThreadSetNameParams.js +2 -0
  486. package/bundle/dist/codex-protocol/v2/ThreadSetNameResponse.js +2 -0
  487. package/bundle/dist/codex-protocol/v2/ThreadShellCommandParams.js +2 -0
  488. package/bundle/dist/codex-protocol/v2/ThreadShellCommandResponse.js +2 -0
  489. package/bundle/dist/codex-protocol/v2/ThreadSortKey.js +2 -0
  490. package/bundle/dist/codex-protocol/v2/ThreadSource.js +2 -0
  491. package/bundle/dist/codex-protocol/v2/ThreadSourceKind.js +2 -0
  492. package/bundle/dist/codex-protocol/v2/ThreadStartParams.js +2 -0
  493. package/bundle/dist/codex-protocol/v2/ThreadStartResponse.js +2 -0
  494. package/bundle/dist/codex-protocol/v2/ThreadStartSource.js +2 -0
  495. package/bundle/dist/codex-protocol/v2/ThreadStartedNotification.js +2 -0
  496. package/bundle/dist/codex-protocol/v2/ThreadStatus.js +2 -0
  497. package/bundle/dist/codex-protocol/v2/ThreadStatusChangedNotification.js +2 -0
  498. package/bundle/dist/codex-protocol/v2/ThreadTokenUsage.js +2 -0
  499. package/bundle/dist/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.js +2 -0
  500. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveParams.js +2 -0
  501. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveResponse.js +2 -0
  502. package/bundle/dist/codex-protocol/v2/ThreadUnarchivedNotification.js +2 -0
  503. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeParams.js +2 -0
  504. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeResponse.js +2 -0
  505. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeStatus.js +2 -0
  506. package/bundle/dist/codex-protocol/v2/TokenUsageBreakdown.js +2 -0
  507. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputAnswer.js +2 -0
  508. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputOption.js +2 -0
  509. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputParams.js +2 -0
  510. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputQuestion.js +2 -0
  511. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputResponse.js +2 -0
  512. package/bundle/dist/codex-protocol/v2/ToolsV2.js +2 -0
  513. package/bundle/dist/codex-protocol/v2/Turn.js +2 -0
  514. package/bundle/dist/codex-protocol/v2/TurnCompletedNotification.js +2 -0
  515. package/bundle/dist/codex-protocol/v2/TurnDiffUpdatedNotification.js +2 -0
  516. package/bundle/dist/codex-protocol/v2/TurnEnvironmentParams.js +2 -0
  517. package/bundle/dist/codex-protocol/v2/TurnError.js +2 -0
  518. package/bundle/dist/codex-protocol/v2/TurnInterruptParams.js +2 -0
  519. package/bundle/dist/codex-protocol/v2/TurnInterruptResponse.js +2 -0
  520. package/bundle/dist/codex-protocol/v2/TurnItemsView.js +2 -0
  521. package/bundle/dist/codex-protocol/v2/TurnPlanStep.js +2 -0
  522. package/bundle/dist/codex-protocol/v2/TurnPlanStepStatus.js +2 -0
  523. package/bundle/dist/codex-protocol/v2/TurnPlanUpdatedNotification.js +2 -0
  524. package/bundle/dist/codex-protocol/v2/TurnStartParams.js +2 -0
  525. package/bundle/dist/codex-protocol/v2/TurnStartResponse.js +2 -0
  526. package/bundle/dist/codex-protocol/v2/TurnStartedNotification.js +2 -0
  527. package/bundle/dist/codex-protocol/v2/TurnStatus.js +2 -0
  528. package/bundle/dist/codex-protocol/v2/TurnSteerParams.js +2 -0
  529. package/bundle/dist/codex-protocol/v2/TurnSteerResponse.js +2 -0
  530. package/bundle/dist/codex-protocol/v2/UserInput.js +2 -0
  531. package/bundle/dist/codex-protocol/v2/WarningNotification.js +2 -0
  532. package/bundle/dist/codex-protocol/v2/WebSearchAction.js +2 -0
  533. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadiness.js +2 -0
  534. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadinessResponse.js +2 -0
  535. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.js +2 -0
  536. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupMode.js +2 -0
  537. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartParams.js +2 -0
  538. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartResponse.js +2 -0
  539. package/bundle/dist/codex-protocol/v2/WindowsWorldWritableWarningNotification.js +2 -0
  540. package/bundle/dist/codex-protocol/v2/WriteStatus.js +2 -0
  541. package/bundle/dist/codex-protocol/v2/index.js +7 -0
  542. package/bundle/dist/i18n/sd.generated.js +37 -5
  543. package/bundle/dist/migrations/20260518145411_alter_tokens_add2_drop4_alter1.js +22 -0
  544. package/bundle/dist/migrations/20260520112853_alter_request_logs_add3_alter1.js +18 -0
  545. package/bundle/dist/migrations/20260520124755_alter_request_logs_drop1_alter1.js +16 -0
  546. package/bundle/dist/migrations/20260520130420_create__request_log_steps.js +34 -0
  547. package/bundle/dist/migrations/20260520134908_alter_request_logs_add2_alter8.js +31 -0
  548. package/bundle/dist/migrations/20260520134909_alter_request_log_steps_add1_alter3.js +20 -0
  549. package/bundle/dist/migrations/20260520141449_alter_request_logs_add1_alter1.js +16 -0
  550. package/bundle/dist/migrations/20260521134025_alter_request_log_steps_alter1.js +14 -0
  551. package/bundle/dist/migrations/20260521134026_alter_request_log_steps_foreigns.js +16 -0
  552. package/bundle/dist/migrations/20260522181721_alter_request_log_steps_add2_alter1.js +17 -0
  553. package/bundle/dist/sonamu.config.js +41 -44
  554. package/bundle/dist/utils/providers/common/credentials.js +22 -0
  555. package/bundle/dist/utils/providers/common/model-cost.js +117 -0
  556. package/bundle/dist/utils/providers/common/provider-dispatcher.js +2 -0
  557. package/bundle/dist/utils/providers/common/strictifier.js +81 -0
  558. package/bundle/dist/utils/providers/common/token-picker.js +15 -0
  559. package/bundle/dist/utils/providers/openai/codex-rpc.js +151 -0
  560. package/bundle/dist/utils/providers/openai/codex-worker.js +371 -0
  561. package/bundle/dist/utils/providers/openai/openai-constants.js +10 -0
  562. package/bundle/dist/utils/providers/openai/openai-dispatcher.js +325 -0
  563. package/bundle/dist/utils/providers/openai/openai-refresh.js +93 -0
  564. package/bundle/src/application/qgrid/oauth.ts +8 -4
  565. package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +185 -0
  566. package/bundle/src/application/qgrid/qgrid.dispatcher.ts +165 -23
  567. package/bundle/src/application/qgrid/qgrid.frame.ts +400 -81
  568. package/bundle/src/application/qgrid/qgrid.types.ts +150 -20
  569. package/bundle/src/application/qgrid/token-subscriber.ts +27 -5
  570. package/bundle/src/application/qgrid/token-trigger-setup.ts +2 -3
  571. package/bundle/src/application/qgrid/tool-emulation.ts +95 -0
  572. package/bundle/src/application/queries.generated.ts +31 -3
  573. package/bundle/src/application/request-log/request-log.entity.json +49 -41
  574. package/bundle/src/application/request-log/request-log.model.ts +180 -0
  575. package/bundle/src/application/request-log/request-log.types.ts +15 -0
  576. package/bundle/src/application/request-log-step/request-log-step.entity.json +137 -0
  577. package/bundle/src/application/request-log-step/request-log-step.model.ts +161 -0
  578. package/bundle/src/application/request-log-step/request-log-step.types.ts +30 -0
  579. package/bundle/src/application/sonamu.generated.http +245 -24
  580. package/bundle/src/application/sonamu.generated.sso.ts +72 -5
  581. package/bundle/src/application/sonamu.generated.ts +199 -22
  582. package/bundle/src/application/token/token.entity.json +7 -19
  583. package/bundle/src/application/token/token.model.ts +13 -13
  584. package/bundle/src/application/token/token.types.ts +25 -12
  585. package/bundle/src/codex-protocol/AbsolutePathBuf.ts +14 -0
  586. package/bundle/src/codex-protocol/AgentPath.ts +5 -0
  587. package/bundle/src/codex-protocol/ApplyPatchApprovalParams.ts +24 -0
  588. package/bundle/src/codex-protocol/ApplyPatchApprovalResponse.ts +6 -0
  589. package/bundle/src/codex-protocol/AuthMode.ts +8 -0
  590. package/bundle/src/codex-protocol/ClientInfo.ts +5 -0
  591. package/bundle/src/codex-protocol/ClientNotification.ts +5 -0
  592. package/bundle/src/codex-protocol/ClientRequest.ts +176 -0
  593. package/bundle/src/codex-protocol/CollaborationMode.ts +10 -0
  594. package/bundle/src/codex-protocol/ContentItem.ts +9 -0
  595. package/bundle/src/codex-protocol/ConversationGitInfo.ts +9 -0
  596. package/bundle/src/codex-protocol/ConversationSummary.ts +19 -0
  597. package/bundle/src/codex-protocol/ExecCommandApprovalParams.ts +22 -0
  598. package/bundle/src/codex-protocol/ExecCommandApprovalResponse.ts +6 -0
  599. package/bundle/src/codex-protocol/ExecPolicyAmendment.ts +12 -0
  600. package/bundle/src/codex-protocol/FileChange.ts +8 -0
  601. package/bundle/src/codex-protocol/ForcedLoginMethod.ts +5 -0
  602. package/bundle/src/codex-protocol/FunctionCallOutputBody.ts +6 -0
  603. package/bundle/src/codex-protocol/FunctionCallOutputContentItem.ts +12 -0
  604. package/bundle/src/codex-protocol/FuzzyFileSearchMatchType.ts +5 -0
  605. package/bundle/src/codex-protocol/FuzzyFileSearchParams.ts +9 -0
  606. package/bundle/src/codex-protocol/FuzzyFileSearchResponse.ts +6 -0
  607. package/bundle/src/codex-protocol/FuzzyFileSearchResult.ts +16 -0
  608. package/bundle/src/codex-protocol/FuzzyFileSearchSessionCompletedNotification.ts +5 -0
  609. package/bundle/src/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.ts +10 -0
  610. package/bundle/src/codex-protocol/GetAuthStatusParams.ts +5 -0
  611. package/bundle/src/codex-protocol/GetAuthStatusResponse.ts +10 -0
  612. package/bundle/src/codex-protocol/GetConversationSummaryParams.ts +6 -0
  613. package/bundle/src/codex-protocol/GetConversationSummaryResponse.ts +6 -0
  614. package/bundle/src/codex-protocol/GitDiffToRemoteParams.ts +5 -0
  615. package/bundle/src/codex-protocol/GitDiffToRemoteResponse.ts +6 -0
  616. package/bundle/src/codex-protocol/GitSha.ts +5 -0
  617. package/bundle/src/codex-protocol/ImageDetail.ts +5 -0
  618. package/bundle/src/codex-protocol/InitializeCapabilities.ts +18 -0
  619. package/bundle/src/codex-protocol/InitializeParams.ts +10 -0
  620. package/bundle/src/codex-protocol/InitializeResponse.ts +22 -0
  621. package/bundle/src/codex-protocol/InputModality.ts +8 -0
  622. package/bundle/src/codex-protocol/InternalSessionSource.ts +5 -0
  623. package/bundle/src/codex-protocol/LocalShellAction.ts +6 -0
  624. package/bundle/src/codex-protocol/LocalShellExecAction.ts +11 -0
  625. package/bundle/src/codex-protocol/LocalShellStatus.ts +5 -0
  626. package/bundle/src/codex-protocol/MessagePhase.ts +11 -0
  627. package/bundle/src/codex-protocol/ModeKind.ts +8 -0
  628. package/bundle/src/codex-protocol/NetworkPolicyAmendment.ts +6 -0
  629. package/bundle/src/codex-protocol/NetworkPolicyRuleAction.ts +5 -0
  630. package/bundle/src/codex-protocol/ParsedCommand.ts +20 -0
  631. package/bundle/src/codex-protocol/Personality.ts +5 -0
  632. package/bundle/src/codex-protocol/PlanType.ts +17 -0
  633. package/bundle/src/codex-protocol/RealtimeConversationVersion.ts +5 -0
  634. package/bundle/src/codex-protocol/RealtimeOutputModality.ts +5 -0
  635. package/bundle/src/codex-protocol/RealtimeVoice.ts +24 -0
  636. package/bundle/src/codex-protocol/RealtimeVoicesList.ts +11 -0
  637. package/bundle/src/codex-protocol/ReasoningEffort.ts +8 -0
  638. package/bundle/src/codex-protocol/ReasoningItemContent.ts +7 -0
  639. package/bundle/src/codex-protocol/ReasoningItemReasoningSummary.ts +5 -0
  640. package/bundle/src/codex-protocol/ReasoningSummary.ts +10 -0
  641. package/bundle/src/codex-protocol/RequestId.ts +5 -0
  642. package/bundle/src/codex-protocol/Resource.ts +19 -0
  643. package/bundle/src/codex-protocol/ResourceContent.ts +27 -0
  644. package/bundle/src/codex-protocol/ResourceTemplate.ts +16 -0
  645. package/bundle/src/codex-protocol/ResponseItem.ts +63 -0
  646. package/bundle/src/codex-protocol/ReviewDecision.ts +17 -0
  647. package/bundle/src/codex-protocol/ServerNotification.ts +154 -0
  648. package/bundle/src/codex-protocol/ServerRequest.ts +47 -0
  649. package/bundle/src/codex-protocol/SessionSource.ts +15 -0
  650. package/bundle/src/codex-protocol/Settings.ts +13 -0
  651. package/bundle/src/codex-protocol/SubAgentSource.ts +20 -0
  652. package/bundle/src/codex-protocol/ThreadId.ts +5 -0
  653. package/bundle/src/codex-protocol/ThreadMemoryMode.ts +5 -0
  654. package/bundle/src/codex-protocol/Tool.ts +18 -0
  655. package/bundle/src/codex-protocol/Verbosity.ts +9 -0
  656. package/bundle/src/codex-protocol/WebSearchAction.ts +9 -0
  657. package/bundle/src/codex-protocol/WebSearchContextSize.ts +5 -0
  658. package/bundle/src/codex-protocol/WebSearchLocation.ts +10 -0
  659. package/bundle/src/codex-protocol/WebSearchMode.ts +5 -0
  660. package/bundle/src/codex-protocol/WebSearchToolConfig.ts +11 -0
  661. package/bundle/src/codex-protocol/index.ts +79 -0
  662. package/bundle/src/codex-protocol/serde_json/JsonValue.ts +11 -0
  663. package/bundle/src/codex-protocol/v2/Account.ts +9 -0
  664. package/bundle/src/codex-protocol/v2/AccountLoginCompletedNotification.ts +9 -0
  665. package/bundle/src/codex-protocol/v2/AccountRateLimitsUpdatedNotification.ts +6 -0
  666. package/bundle/src/codex-protocol/v2/AccountUpdatedNotification.ts +7 -0
  667. package/bundle/src/codex-protocol/v2/ActivePermissionProfile.ts +22 -0
  668. package/bundle/src/codex-protocol/v2/ActivePermissionProfileModification.ts +9 -0
  669. package/bundle/src/codex-protocol/v2/AddCreditsNudgeCreditType.ts +5 -0
  670. package/bundle/src/codex-protocol/v2/AddCreditsNudgeEmailStatus.ts +5 -0
  671. package/bundle/src/codex-protocol/v2/AdditionalFileSystemPermissions.ts +18 -0
  672. package/bundle/src/codex-protocol/v2/AdditionalNetworkPermissions.ts +5 -0
  673. package/bundle/src/codex-protocol/v2/AdditionalPermissionProfile.ts +13 -0
  674. package/bundle/src/codex-protocol/v2/AgentMessageDeltaNotification.ts +10 -0
  675. package/bundle/src/codex-protocol/v2/AnalyticsConfig.ts +14 -0
  676. package/bundle/src/codex-protocol/v2/AppBranding.ts +15 -0
  677. package/bundle/src/codex-protocol/v2/AppInfo.ts +32 -0
  678. package/bundle/src/codex-protocol/v2/AppListUpdatedNotification.ts +9 -0
  679. package/bundle/src/codex-protocol/v2/AppMetadata.ts +20 -0
  680. package/bundle/src/codex-protocol/v2/AppReview.ts +5 -0
  681. package/bundle/src/codex-protocol/v2/AppScreenshot.ts +5 -0
  682. package/bundle/src/codex-protocol/v2/AppSummary.ts +14 -0
  683. package/bundle/src/codex-protocol/v2/AppToolApproval.ts +5 -0
  684. package/bundle/src/codex-protocol/v2/AppToolsConfig.ts +8 -0
  685. package/bundle/src/codex-protocol/v2/ApprovalsReviewer.ts +12 -0
  686. package/bundle/src/codex-protocol/v2/AppsConfig.ts +17 -0
  687. package/bundle/src/codex-protocol/v2/AppsDefaultConfig.ts +9 -0
  688. package/bundle/src/codex-protocol/v2/AppsListParams.ts +25 -0
  689. package/bundle/src/codex-protocol/v2/AppsListResponse.ts +16 -0
  690. package/bundle/src/codex-protocol/v2/AskForApproval.ts +18 -0
  691. package/bundle/src/codex-protocol/v2/AutoReviewDecisionSource.ts +8 -0
  692. package/bundle/src/codex-protocol/v2/ByteRange.ts +5 -0
  693. package/bundle/src/codex-protocol/v2/CancelLoginAccountParams.ts +5 -0
  694. package/bundle/src/codex-protocol/v2/CancelLoginAccountResponse.ts +6 -0
  695. package/bundle/src/codex-protocol/v2/CancelLoginAccountStatus.ts +5 -0
  696. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshParams.ts +18 -0
  697. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshReason.ts +5 -0
  698. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.ts +9 -0
  699. package/bundle/src/codex-protocol/v2/CodexErrorInfo.ts +27 -0
  700. package/bundle/src/codex-protocol/v2/CollabAgentState.ts +6 -0
  701. package/bundle/src/codex-protocol/v2/CollabAgentStatus.ts +12 -0
  702. package/bundle/src/codex-protocol/v2/CollabAgentTool.ts +5 -0
  703. package/bundle/src/codex-protocol/v2/CollabAgentToolCallStatus.ts +5 -0
  704. package/bundle/src/codex-protocol/v2/CollaborationModeMask.ts +15 -0
  705. package/bundle/src/codex-protocol/v2/CommandAction.ts +10 -0
  706. package/bundle/src/codex-protocol/v2/CommandExecOutputDeltaNotification.ts +31 -0
  707. package/bundle/src/codex-protocol/v2/CommandExecOutputStream.ts +8 -0
  708. package/bundle/src/codex-protocol/v2/CommandExecParams.ts +87 -0
  709. package/bundle/src/codex-protocol/v2/CommandExecResizeParams.ts +19 -0
  710. package/bundle/src/codex-protocol/v2/CommandExecResizeResponse.ts +8 -0
  711. package/bundle/src/codex-protocol/v2/CommandExecResponse.ts +25 -0
  712. package/bundle/src/codex-protocol/v2/CommandExecTerminalSize.ts +17 -0
  713. package/bundle/src/codex-protocol/v2/CommandExecTerminateParams.ts +14 -0
  714. package/bundle/src/codex-protocol/v2/CommandExecTerminateResponse.ts +8 -0
  715. package/bundle/src/codex-protocol/v2/CommandExecWriteParams.ts +23 -0
  716. package/bundle/src/codex-protocol/v2/CommandExecWriteResponse.ts +8 -0
  717. package/bundle/src/codex-protocol/v2/CommandExecutionApprovalDecision.ts +13 -0
  718. package/bundle/src/codex-protocol/v2/CommandExecutionOutputDeltaNotification.ts +10 -0
  719. package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalParams.ts +47 -0
  720. package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalResponse.ts +8 -0
  721. package/bundle/src/codex-protocol/v2/CommandExecutionSource.ts +9 -0
  722. package/bundle/src/codex-protocol/v2/CommandExecutionStatus.ts +5 -0
  723. package/bundle/src/codex-protocol/v2/CommandMigration.ts +5 -0
  724. package/bundle/src/codex-protocol/v2/Config.ts +53 -0
  725. package/bundle/src/codex-protocol/v2/ConfigBatchWriteParams.ts +17 -0
  726. package/bundle/src/codex-protocol/v2/ConfigEdit.ts +7 -0
  727. package/bundle/src/codex-protocol/v2/ConfigLayer.ts +12 -0
  728. package/bundle/src/codex-protocol/v2/ConfigLayerMetadata.ts +6 -0
  729. package/bundle/src/codex-protocol/v2/ConfigLayerSource.ts +27 -0
  730. package/bundle/src/codex-protocol/v2/ConfigReadParams.ts +13 -0
  731. package/bundle/src/codex-protocol/v2/ConfigReadResponse.ts +12 -0
  732. package/bundle/src/codex-protocol/v2/ConfigRequirements.ts +15 -0
  733. package/bundle/src/codex-protocol/v2/ConfigRequirementsReadResponse.ts +11 -0
  734. package/bundle/src/codex-protocol/v2/ConfigValueWriteParams.ts +16 -0
  735. package/bundle/src/codex-protocol/v2/ConfigWarningNotification.ts +23 -0
  736. package/bundle/src/codex-protocol/v2/ConfigWriteResponse.ts +16 -0
  737. package/bundle/src/codex-protocol/v2/ConfiguredHookHandler.ts +14 -0
  738. package/bundle/src/codex-protocol/v2/ConfiguredHookMatcherGroup.ts +9 -0
  739. package/bundle/src/codex-protocol/v2/ContextCompactedNotification.ts +8 -0
  740. package/bundle/src/codex-protocol/v2/CreditsSnapshot.ts +5 -0
  741. package/bundle/src/codex-protocol/v2/DeprecationNoticeNotification.ts +14 -0
  742. package/bundle/src/codex-protocol/v2/DynamicToolCallOutputContentItem.ts +7 -0
  743. package/bundle/src/codex-protocol/v2/DynamicToolCallParams.ts +13 -0
  744. package/bundle/src/codex-protocol/v2/DynamicToolCallResponse.ts +9 -0
  745. package/bundle/src/codex-protocol/v2/DynamicToolCallStatus.ts +5 -0
  746. package/bundle/src/codex-protocol/v2/DynamicToolSpec.ts +12 -0
  747. package/bundle/src/codex-protocol/v2/ErrorNotification.ts +11 -0
  748. package/bundle/src/codex-protocol/v2/ExecPolicyAmendment.ts +5 -0
  749. package/bundle/src/codex-protocol/v2/ExperimentalFeature.ts +38 -0
  750. package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.ts +13 -0
  751. package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.ts +10 -0
  752. package/bundle/src/codex-protocol/v2/ExperimentalFeatureListParams.ts +14 -0
  753. package/bundle/src/codex-protocol/v2/ExperimentalFeatureListResponse.ts +13 -0
  754. package/bundle/src/codex-protocol/v2/ExperimentalFeatureStage.ts +10 -0
  755. package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectParams.ts +14 -0
  756. package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectResponse.ts +6 -0
  757. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.ts +5 -0
  758. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportParams.ts +8 -0
  759. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportResponse.ts +5 -0
  760. package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItem.ts +15 -0
  761. package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItemType.ts +14 -0
  762. package/bundle/src/codex-protocol/v2/FeedbackUploadParams.ts +12 -0
  763. package/bundle/src/codex-protocol/v2/FeedbackUploadResponse.ts +5 -0
  764. package/bundle/src/codex-protocol/v2/FileChangeApprovalDecision.ts +5 -0
  765. package/bundle/src/codex-protocol/v2/FileChangeOutputDeltaNotification.ts +15 -0
  766. package/bundle/src/codex-protocol/v2/FileChangePatchUpdatedNotification.ts +11 -0
  767. package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalParams.ts +22 -0
  768. package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalResponse.ts +6 -0
  769. package/bundle/src/codex-protocol/v2/FileSystemAccessMode.ts +5 -0
  770. package/bundle/src/codex-protocol/v2/FileSystemPath.ts +10 -0
  771. package/bundle/src/codex-protocol/v2/FileSystemSandboxEntry.ts +7 -0
  772. package/bundle/src/codex-protocol/v2/FileSystemSpecialPath.ts +11 -0
  773. package/bundle/src/codex-protocol/v2/FileUpdateChange.ts +6 -0
  774. package/bundle/src/codex-protocol/v2/FsChangedNotification.ts +18 -0
  775. package/bundle/src/codex-protocol/v2/FsCopyParams.ts +22 -0
  776. package/bundle/src/codex-protocol/v2/FsCopyResponse.ts +8 -0
  777. package/bundle/src/codex-protocol/v2/FsCreateDirectoryParams.ts +18 -0
  778. package/bundle/src/codex-protocol/v2/FsCreateDirectoryResponse.ts +8 -0
  779. package/bundle/src/codex-protocol/v2/FsGetMetadataParams.ts +14 -0
  780. package/bundle/src/codex-protocol/v2/FsGetMetadataResponse.ts +29 -0
  781. package/bundle/src/codex-protocol/v2/FsReadDirectoryEntry.ts +21 -0
  782. package/bundle/src/codex-protocol/v2/FsReadDirectoryParams.ts +14 -0
  783. package/bundle/src/codex-protocol/v2/FsReadDirectoryResponse.ts +14 -0
  784. package/bundle/src/codex-protocol/v2/FsReadFileParams.ts +14 -0
  785. package/bundle/src/codex-protocol/v2/FsReadFileResponse.ts +13 -0
  786. package/bundle/src/codex-protocol/v2/FsRemoveParams.ts +22 -0
  787. package/bundle/src/codex-protocol/v2/FsRemoveResponse.ts +8 -0
  788. package/bundle/src/codex-protocol/v2/FsUnwatchParams.ts +13 -0
  789. package/bundle/src/codex-protocol/v2/FsUnwatchResponse.ts +8 -0
  790. package/bundle/src/codex-protocol/v2/FsWatchParams.ts +18 -0
  791. package/bundle/src/codex-protocol/v2/FsWatchResponse.ts +14 -0
  792. package/bundle/src/codex-protocol/v2/FsWriteFileParams.ts +18 -0
  793. package/bundle/src/codex-protocol/v2/FsWriteFileResponse.ts +8 -0
  794. package/bundle/src/codex-protocol/v2/GetAccountParams.ts +14 -0
  795. package/bundle/src/codex-protocol/v2/GetAccountRateLimitsResponse.ts +15 -0
  796. package/bundle/src/codex-protocol/v2/GetAccountResponse.ts +6 -0
  797. package/bundle/src/codex-protocol/v2/GitInfo.ts +5 -0
  798. package/bundle/src/codex-protocol/v2/GrantedPermissionProfile.ts +10 -0
  799. package/bundle/src/codex-protocol/v2/GuardianApprovalReview.ts +18 -0
  800. package/bundle/src/codex-protocol/v2/GuardianApprovalReviewAction.ts +34 -0
  801. package/bundle/src/codex-protocol/v2/GuardianApprovalReviewStatus.ts +13 -0
  802. package/bundle/src/codex-protocol/v2/GuardianCommandSource.ts +5 -0
  803. package/bundle/src/codex-protocol/v2/GuardianRiskLevel.ts +8 -0
  804. package/bundle/src/codex-protocol/v2/GuardianUserAuthorization.ts +8 -0
  805. package/bundle/src/codex-protocol/v2/GuardianWarningNotification.ts +14 -0
  806. package/bundle/src/codex-protocol/v2/HookCompletedNotification.ts +10 -0
  807. package/bundle/src/codex-protocol/v2/HookErrorInfo.ts +5 -0
  808. package/bundle/src/codex-protocol/v2/HookEventName.ts +13 -0
  809. package/bundle/src/codex-protocol/v2/HookExecutionMode.ts +5 -0
  810. package/bundle/src/codex-protocol/v2/HookHandlerType.ts +5 -0
  811. package/bundle/src/codex-protocol/v2/HookMetadata.ts +26 -0
  812. package/bundle/src/codex-protocol/v2/HookMigration.ts +5 -0
  813. package/bundle/src/codex-protocol/v2/HookOutputEntry.ts +6 -0
  814. package/bundle/src/codex-protocol/v2/HookOutputEntryKind.ts +5 -0
  815. package/bundle/src/codex-protocol/v2/HookPromptFragment.ts +5 -0
  816. package/bundle/src/codex-protocol/v2/HookRunStatus.ts +5 -0
  817. package/bundle/src/codex-protocol/v2/HookRunSummary.ts +28 -0
  818. package/bundle/src/codex-protocol/v2/HookScope.ts +5 -0
  819. package/bundle/src/codex-protocol/v2/HookSource.ts +15 -0
  820. package/bundle/src/codex-protocol/v2/HookStartedNotification.ts +10 -0
  821. package/bundle/src/codex-protocol/v2/HookTrustStatus.ts +5 -0
  822. package/bundle/src/codex-protocol/v2/HooksListEntry.ts +12 -0
  823. package/bundle/src/codex-protocol/v2/HooksListParams.ts +10 -0
  824. package/bundle/src/codex-protocol/v2/HooksListResponse.ts +6 -0
  825. package/bundle/src/codex-protocol/v2/ItemCompletedNotification.ts +14 -0
  826. package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.ts +44 -0
  827. package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.ts +38 -0
  828. package/bundle/src/codex-protocol/v2/ItemStartedNotification.ts +14 -0
  829. package/bundle/src/codex-protocol/v2/ListMcpServerStatusParams.ts +20 -0
  830. package/bundle/src/codex-protocol/v2/ListMcpServerStatusResponse.ts +13 -0
  831. package/bundle/src/codex-protocol/v2/LoginAccountParams.ts +27 -0
  832. package/bundle/src/codex-protocol/v2/LoginAccountResponse.ts +27 -0
  833. package/bundle/src/codex-protocol/v2/LogoutAccountResponse.ts +5 -0
  834. package/bundle/src/codex-protocol/v2/ManagedHooksRequirements.ts +17 -0
  835. package/bundle/src/codex-protocol/v2/MarketplaceAddParams.ts +9 -0
  836. package/bundle/src/codex-protocol/v2/MarketplaceAddResponse.ts +10 -0
  837. package/bundle/src/codex-protocol/v2/MarketplaceInterface.ts +5 -0
  838. package/bundle/src/codex-protocol/v2/MarketplaceLoadErrorInfo.ts +6 -0
  839. package/bundle/src/codex-protocol/v2/MarketplaceRemoveParams.ts +5 -0
  840. package/bundle/src/codex-protocol/v2/MarketplaceRemoveResponse.ts +9 -0
  841. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeErrorInfo.ts +5 -0
  842. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeParams.ts +5 -0
  843. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeResponse.ts +11 -0
  844. package/bundle/src/codex-protocol/v2/McpAuthStatus.ts +5 -0
  845. package/bundle/src/codex-protocol/v2/McpElicitationArrayType.ts +5 -0
  846. package/bundle/src/codex-protocol/v2/McpElicitationBooleanSchema.ts +11 -0
  847. package/bundle/src/codex-protocol/v2/McpElicitationBooleanType.ts +5 -0
  848. package/bundle/src/codex-protocol/v2/McpElicitationConstOption.ts +5 -0
  849. package/bundle/src/codex-protocol/v2/McpElicitationEnumSchema.ts +11 -0
  850. package/bundle/src/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.ts +13 -0
  851. package/bundle/src/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.ts +9 -0
  852. package/bundle/src/codex-protocol/v2/McpElicitationNumberSchema.ts +13 -0
  853. package/bundle/src/codex-protocol/v2/McpElicitationNumberType.ts +5 -0
  854. package/bundle/src/codex-protocol/v2/McpElicitationObjectType.ts +5 -0
  855. package/bundle/src/codex-protocol/v2/McpElicitationPrimitiveSchema.ts +13 -0
  856. package/bundle/src/codex-protocol/v2/McpElicitationSchema.ts +18 -0
  857. package/bundle/src/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.ts +9 -0
  858. package/bundle/src/codex-protocol/v2/McpElicitationStringFormat.ts +5 -0
  859. package/bundle/src/codex-protocol/v2/McpElicitationStringSchema.ts +15 -0
  860. package/bundle/src/codex-protocol/v2/McpElicitationStringType.ts +5 -0
  861. package/bundle/src/codex-protocol/v2/McpElicitationTitledEnumItems.ts +6 -0
  862. package/bundle/src/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.ts +15 -0
  863. package/bundle/src/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.ts +13 -0
  864. package/bundle/src/codex-protocol/v2/McpElicitationUntitledEnumItems.ts +9 -0
  865. package/bundle/src/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.ts +15 -0
  866. package/bundle/src/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.ts +12 -0
  867. package/bundle/src/codex-protocol/v2/McpResourceReadParams.ts +5 -0
  868. package/bundle/src/codex-protocol/v2/McpResourceReadResponse.ts +6 -0
  869. package/bundle/src/codex-protocol/v2/McpServerElicitationAction.ts +5 -0
  870. package/bundle/src/codex-protocol/v2/McpServerElicitationRequestParams.ts +27 -0
  871. package/bundle/src/codex-protocol/v2/McpServerElicitationRequestResponse.ts +19 -0
  872. package/bundle/src/codex-protocol/v2/McpServerMigration.ts +5 -0
  873. package/bundle/src/codex-protocol/v2/McpServerOauthLoginCompletedNotification.ts +9 -0
  874. package/bundle/src/codex-protocol/v2/McpServerOauthLoginParams.ts +9 -0
  875. package/bundle/src/codex-protocol/v2/McpServerOauthLoginResponse.ts +5 -0
  876. package/bundle/src/codex-protocol/v2/McpServerRefreshResponse.ts +5 -0
  877. package/bundle/src/codex-protocol/v2/McpServerStartupState.ts +5 -0
  878. package/bundle/src/codex-protocol/v2/McpServerStatus.ts +15 -0
  879. package/bundle/src/codex-protocol/v2/McpServerStatusDetail.ts +5 -0
  880. package/bundle/src/codex-protocol/v2/McpServerStatusUpdatedNotification.ts +10 -0
  881. package/bundle/src/codex-protocol/v2/McpServerToolCallParams.ts +12 -0
  882. package/bundle/src/codex-protocol/v2/McpServerToolCallResponse.ts +11 -0
  883. package/bundle/src/codex-protocol/v2/McpToolCallError.ts +5 -0
  884. package/bundle/src/codex-protocol/v2/McpToolCallProgressNotification.ts +10 -0
  885. package/bundle/src/codex-protocol/v2/McpToolCallResult.ts +10 -0
  886. package/bundle/src/codex-protocol/v2/McpToolCallStatus.ts +5 -0
  887. package/bundle/src/codex-protocol/v2/MemoryCitation.ts +6 -0
  888. package/bundle/src/codex-protocol/v2/MemoryCitationEntry.ts +10 -0
  889. package/bundle/src/codex-protocol/v2/MergeStrategy.ts +5 -0
  890. package/bundle/src/codex-protocol/v2/MigrationDetails.ts +18 -0
  891. package/bundle/src/codex-protocol/v2/Model.ts +30 -0
  892. package/bundle/src/codex-protocol/v2/ModelAvailabilityNux.ts +5 -0
  893. package/bundle/src/codex-protocol/v2/ModelListParams.ts +18 -0
  894. package/bundle/src/codex-protocol/v2/ModelListResponse.ts +13 -0
  895. package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadParams.ts +5 -0
  896. package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.ts +9 -0
  897. package/bundle/src/codex-protocol/v2/ModelRerouteReason.ts +5 -0
  898. package/bundle/src/codex-protocol/v2/ModelReroutedNotification.ts +12 -0
  899. package/bundle/src/codex-protocol/v2/ModelServiceTier.ts +5 -0
  900. package/bundle/src/codex-protocol/v2/ModelUpgradeInfo.ts +10 -0
  901. package/bundle/src/codex-protocol/v2/ModelVerification.ts +5 -0
  902. package/bundle/src/codex-protocol/v2/ModelVerificationNotification.ts +10 -0
  903. package/bundle/src/codex-protocol/v2/NetworkAccess.ts +5 -0
  904. package/bundle/src/codex-protocol/v2/NetworkApprovalContext.ts +6 -0
  905. package/bundle/src/codex-protocol/v2/NetworkApprovalProtocol.ts +5 -0
  906. package/bundle/src/codex-protocol/v2/NetworkDomainPermission.ts +5 -0
  907. package/bundle/src/codex-protocol/v2/NetworkPolicyAmendment.ts +6 -0
  908. package/bundle/src/codex-protocol/v2/NetworkPolicyRuleAction.ts +5 -0
  909. package/bundle/src/codex-protocol/v2/NetworkRequirements.ts +40 -0
  910. package/bundle/src/codex-protocol/v2/NetworkUnixSocketPermission.ts +5 -0
  911. package/bundle/src/codex-protocol/v2/NonSteerableTurnKind.ts +5 -0
  912. package/bundle/src/codex-protocol/v2/OverriddenMetadata.ts +11 -0
  913. package/bundle/src/codex-protocol/v2/PatchApplyStatus.ts +5 -0
  914. package/bundle/src/codex-protocol/v2/PatchChangeKind.ts +8 -0
  915. package/bundle/src/codex-protocol/v2/PermissionGrantScope.ts +5 -0
  916. package/bundle/src/codex-protocol/v2/PermissionProfile.ts +14 -0
  917. package/bundle/src/codex-protocol/v2/PermissionProfileFileSystemPermissions.ts +8 -0
  918. package/bundle/src/codex-protocol/v2/PermissionProfileModificationParams.ts +9 -0
  919. package/bundle/src/codex-protocol/v2/PermissionProfileNetworkPermissions.ts +5 -0
  920. package/bundle/src/codex-protocol/v2/PermissionProfileSelectionParams.ts +10 -0
  921. package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalParams.ts +18 -0
  922. package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalResponse.ts +14 -0
  923. package/bundle/src/codex-protocol/v2/PlanDeltaNotification.ts +14 -0
  924. package/bundle/src/codex-protocol/v2/PluginAuthPolicy.ts +5 -0
  925. package/bundle/src/codex-protocol/v2/PluginAvailability.ts +5 -0
  926. package/bundle/src/codex-protocol/v2/PluginDetail.ts +19 -0
  927. package/bundle/src/codex-protocol/v2/PluginHookSummary.ts +6 -0
  928. package/bundle/src/codex-protocol/v2/PluginInstallParams.ts +10 -0
  929. package/bundle/src/codex-protocol/v2/PluginInstallPolicy.ts +5 -0
  930. package/bundle/src/codex-protocol/v2/PluginInstallResponse.ts +10 -0
  931. package/bundle/src/codex-protocol/v2/PluginInterface.ts +46 -0
  932. package/bundle/src/codex-protocol/v2/PluginListMarketplaceKind.ts +5 -0
  933. package/bundle/src/codex-protocol/v2/PluginListParams.ts +18 -0
  934. package/bundle/src/codex-protocol/v2/PluginListResponse.ts +11 -0
  935. package/bundle/src/codex-protocol/v2/PluginMarketplaceEntry.ts +17 -0
  936. package/bundle/src/codex-protocol/v2/PluginReadParams.ts +10 -0
  937. package/bundle/src/codex-protocol/v2/PluginReadResponse.ts +6 -0
  938. package/bundle/src/codex-protocol/v2/PluginShareContext.ts +12 -0
  939. package/bundle/src/codex-protocol/v2/PluginShareDeleteParams.ts +5 -0
  940. package/bundle/src/codex-protocol/v2/PluginShareDeleteResponse.ts +5 -0
  941. package/bundle/src/codex-protocol/v2/PluginShareDiscoverability.ts +5 -0
  942. package/bundle/src/codex-protocol/v2/PluginShareListItem.ts +11 -0
  943. package/bundle/src/codex-protocol/v2/PluginShareListParams.ts +5 -0
  944. package/bundle/src/codex-protocol/v2/PluginShareListResponse.ts +6 -0
  945. package/bundle/src/codex-protocol/v2/PluginSharePrincipal.ts +10 -0
  946. package/bundle/src/codex-protocol/v2/PluginSharePrincipalType.ts +5 -0
  947. package/bundle/src/codex-protocol/v2/PluginShareSaveParams.ts +13 -0
  948. package/bundle/src/codex-protocol/v2/PluginShareSaveResponse.ts +5 -0
  949. package/bundle/src/codex-protocol/v2/PluginShareTarget.ts +6 -0
  950. package/bundle/src/codex-protocol/v2/PluginShareUpdateDiscoverability.ts +5 -0
  951. package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsParams.ts +11 -0
  952. package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsResponse.ts +10 -0
  953. package/bundle/src/codex-protocol/v2/PluginSkillReadParams.ts +9 -0
  954. package/bundle/src/codex-protocol/v2/PluginSkillReadResponse.ts +5 -0
  955. package/bundle/src/codex-protocol/v2/PluginSource.ts +9 -0
  956. package/bundle/src/codex-protocol/v2/PluginSummary.ts +29 -0
  957. package/bundle/src/codex-protocol/v2/PluginUninstallParams.ts +5 -0
  958. package/bundle/src/codex-protocol/v2/PluginUninstallResponse.ts +5 -0
  959. package/bundle/src/codex-protocol/v2/PluginsMigration.ts +5 -0
  960. package/bundle/src/codex-protocol/v2/ProcessExitedNotification.ts +43 -0
  961. package/bundle/src/codex-protocol/v2/ProcessOutputDeltaNotification.ts +27 -0
  962. package/bundle/src/codex-protocol/v2/ProcessOutputStream.ts +8 -0
  963. package/bundle/src/codex-protocol/v2/ProcessTerminalSize.ts +17 -0
  964. package/bundle/src/codex-protocol/v2/ProfileV2.ts +37 -0
  965. package/bundle/src/codex-protocol/v2/RateLimitReachedType.ts +10 -0
  966. package/bundle/src/codex-protocol/v2/RateLimitSnapshot.ts +17 -0
  967. package/bundle/src/codex-protocol/v2/RateLimitWindow.ts +9 -0
  968. package/bundle/src/codex-protocol/v2/RawResponseItemCompletedNotification.ts +10 -0
  969. package/bundle/src/codex-protocol/v2/ReasoningEffortOption.ts +6 -0
  970. package/bundle/src/codex-protocol/v2/ReasoningSummaryPartAddedNotification.ts +10 -0
  971. package/bundle/src/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.ts +11 -0
  972. package/bundle/src/codex-protocol/v2/ReasoningTextDeltaNotification.ts +11 -0
  973. package/bundle/src/codex-protocol/v2/RemoteControlConnectionStatus.ts +5 -0
  974. package/bundle/src/codex-protocol/v2/RemoteControlStatusChangedNotification.ts +12 -0
  975. package/bundle/src/codex-protocol/v2/RequestPermissionProfile.ts +10 -0
  976. package/bundle/src/codex-protocol/v2/ResidencyRequirement.ts +5 -0
  977. package/bundle/src/codex-protocol/v2/ReviewDelivery.ts +5 -0
  978. package/bundle/src/codex-protocol/v2/ReviewStartParams.ts +15 -0
  979. package/bundle/src/codex-protocol/v2/ReviewStartResponse.ts +15 -0
  980. package/bundle/src/codex-protocol/v2/ReviewTarget.ts +16 -0
  981. package/bundle/src/codex-protocol/v2/SandboxMode.ts +5 -0
  982. package/bundle/src/codex-protocol/v2/SandboxPolicy.ts +17 -0
  983. package/bundle/src/codex-protocol/v2/SandboxWorkspaceWrite.ts +10 -0
  984. package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailParams.ts +6 -0
  985. package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.ts +6 -0
  986. package/bundle/src/codex-protocol/v2/ServerRequestResolvedNotification.ts +6 -0
  987. package/bundle/src/codex-protocol/v2/SessionMigration.ts +5 -0
  988. package/bundle/src/codex-protocol/v2/SessionSource.ts +13 -0
  989. package/bundle/src/codex-protocol/v2/SkillDependencies.ts +6 -0
  990. package/bundle/src/codex-protocol/v2/SkillErrorInfo.ts +5 -0
  991. package/bundle/src/codex-protocol/v2/SkillInterface.ts +13 -0
  992. package/bundle/src/codex-protocol/v2/SkillMetadata.ts +21 -0
  993. package/bundle/src/codex-protocol/v2/SkillScope.ts +5 -0
  994. package/bundle/src/codex-protocol/v2/SkillSummary.ts +14 -0
  995. package/bundle/src/codex-protocol/v2/SkillToolDependency.ts +12 -0
  996. package/bundle/src/codex-protocol/v2/SkillsChangedNotification.ts +11 -0
  997. package/bundle/src/codex-protocol/v2/SkillsConfigWriteParams.ts +16 -0
  998. package/bundle/src/codex-protocol/v2/SkillsConfigWriteResponse.ts +5 -0
  999. package/bundle/src/codex-protocol/v2/SkillsListEntry.ts +11 -0
  1000. package/bundle/src/codex-protocol/v2/SkillsListParams.ts +14 -0
  1001. package/bundle/src/codex-protocol/v2/SkillsListResponse.ts +6 -0
  1002. package/bundle/src/codex-protocol/v2/SortDirection.ts +5 -0
  1003. package/bundle/src/codex-protocol/v2/SubagentMigration.ts +5 -0
  1004. package/bundle/src/codex-protocol/v2/TerminalInteractionNotification.ts +11 -0
  1005. package/bundle/src/codex-protocol/v2/TextElement.ts +15 -0
  1006. package/bundle/src/codex-protocol/v2/TextPosition.ts +14 -0
  1007. package/bundle/src/codex-protocol/v2/TextRange.ts +6 -0
  1008. package/bundle/src/codex-protocol/v2/Thread.ts +88 -0
  1009. package/bundle/src/codex-protocol/v2/ThreadActiveFlag.ts +5 -0
  1010. package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.ts +12 -0
  1011. package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.ts +5 -0
  1012. package/bundle/src/codex-protocol/v2/ThreadArchiveParams.ts +5 -0
  1013. package/bundle/src/codex-protocol/v2/ThreadArchiveResponse.ts +5 -0
  1014. package/bundle/src/codex-protocol/v2/ThreadArchivedNotification.ts +5 -0
  1015. package/bundle/src/codex-protocol/v2/ThreadClosedNotification.ts +5 -0
  1016. package/bundle/src/codex-protocol/v2/ThreadCompactStartParams.ts +5 -0
  1017. package/bundle/src/codex-protocol/v2/ThreadCompactStartResponse.ts +5 -0
  1018. package/bundle/src/codex-protocol/v2/ThreadForkParams.ts +40 -0
  1019. package/bundle/src/codex-protocol/v2/ThreadForkResponse.ts +30 -0
  1020. package/bundle/src/codex-protocol/v2/ThreadGoal.ts +15 -0
  1021. package/bundle/src/codex-protocol/v2/ThreadGoalClearedNotification.ts +5 -0
  1022. package/bundle/src/codex-protocol/v2/ThreadGoalStatus.ts +5 -0
  1023. package/bundle/src/codex-protocol/v2/ThreadGoalUpdatedNotification.ts +10 -0
  1024. package/bundle/src/codex-protocol/v2/ThreadInjectItemsParams.ts +12 -0
  1025. package/bundle/src/codex-protocol/v2/ThreadInjectItemsResponse.ts +5 -0
  1026. package/bundle/src/codex-protocol/v2/ThreadItem.ts +156 -0
  1027. package/bundle/src/codex-protocol/v2/ThreadListParams.ts +55 -0
  1028. package/bundle/src/codex-protocol/v2/ThreadListResponse.ts +20 -0
  1029. package/bundle/src/codex-protocol/v2/ThreadLoadedListParams.ts +14 -0
  1030. package/bundle/src/codex-protocol/v2/ThreadLoadedListResponse.ts +15 -0
  1031. package/bundle/src/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.ts +21 -0
  1032. package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateParams.ts +14 -0
  1033. package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateResponse.ts +6 -0
  1034. package/bundle/src/codex-protocol/v2/ThreadNameUpdatedNotification.ts +5 -0
  1035. package/bundle/src/codex-protocol/v2/ThreadReadParams.ts +11 -0
  1036. package/bundle/src/codex-protocol/v2/ThreadReadResponse.ts +6 -0
  1037. package/bundle/src/codex-protocol/v2/ThreadRealtimeAudioChunk.ts +14 -0
  1038. package/bundle/src/codex-protocol/v2/ThreadRealtimeClosedNotification.ts +8 -0
  1039. package/bundle/src/codex-protocol/v2/ThreadRealtimeErrorNotification.ts +8 -0
  1040. package/bundle/src/codex-protocol/v2/ThreadRealtimeItemAddedNotification.ts +9 -0
  1041. package/bundle/src/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.ts +12 -0
  1042. package/bundle/src/codex-protocol/v2/ThreadRealtimeSdpNotification.ts +8 -0
  1043. package/bundle/src/codex-protocol/v2/ThreadRealtimeStartTransport.ts +17 -0
  1044. package/bundle/src/codex-protocol/v2/ThreadRealtimeStartedNotification.ts +13 -0
  1045. package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.ts +16 -0
  1046. package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.ts +16 -0
  1047. package/bundle/src/codex-protocol/v2/ThreadResumeParams.ts +39 -0
  1048. package/bundle/src/codex-protocol/v2/ThreadResumeResponse.ts +30 -0
  1049. package/bundle/src/codex-protocol/v2/ThreadRollbackParams.ts +14 -0
  1050. package/bundle/src/codex-protocol/v2/ThreadRollbackResponse.ts +15 -0
  1051. package/bundle/src/codex-protocol/v2/ThreadSetNameParams.ts +5 -0
  1052. package/bundle/src/codex-protocol/v2/ThreadSetNameResponse.ts +5 -0
  1053. package/bundle/src/codex-protocol/v2/ThreadShellCommandParams.ts +14 -0
  1054. package/bundle/src/codex-protocol/v2/ThreadShellCommandResponse.ts +5 -0
  1055. package/bundle/src/codex-protocol/v2/ThreadSortKey.ts +5 -0
  1056. package/bundle/src/codex-protocol/v2/ThreadSource.ts +5 -0
  1057. package/bundle/src/codex-protocol/v2/ThreadSourceKind.ts +15 -0
  1058. package/bundle/src/codex-protocol/v2/ThreadStartParams.ts +33 -0
  1059. package/bundle/src/codex-protocol/v2/ThreadStartResponse.ts +30 -0
  1060. package/bundle/src/codex-protocol/v2/ThreadStartSource.ts +5 -0
  1061. package/bundle/src/codex-protocol/v2/ThreadStartedNotification.ts +6 -0
  1062. package/bundle/src/codex-protocol/v2/ThreadStatus.ts +10 -0
  1063. package/bundle/src/codex-protocol/v2/ThreadStatusChangedNotification.ts +6 -0
  1064. package/bundle/src/codex-protocol/v2/ThreadTokenUsage.ts +10 -0
  1065. package/bundle/src/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.ts +10 -0
  1066. package/bundle/src/codex-protocol/v2/ThreadUnarchiveParams.ts +5 -0
  1067. package/bundle/src/codex-protocol/v2/ThreadUnarchiveResponse.ts +6 -0
  1068. package/bundle/src/codex-protocol/v2/ThreadUnarchivedNotification.ts +5 -0
  1069. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeParams.ts +5 -0
  1070. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeResponse.ts +6 -0
  1071. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeStatus.ts +5 -0
  1072. package/bundle/src/codex-protocol/v2/TokenUsageBreakdown.ts +11 -0
  1073. package/bundle/src/codex-protocol/v2/ToolRequestUserInputAnswer.ts +8 -0
  1074. package/bundle/src/codex-protocol/v2/ToolRequestUserInputOption.ts +8 -0
  1075. package/bundle/src/codex-protocol/v2/ToolRequestUserInputParams.ts +14 -0
  1076. package/bundle/src/codex-protocol/v2/ToolRequestUserInputQuestion.ts +16 -0
  1077. package/bundle/src/codex-protocol/v2/ToolRequestUserInputResponse.ts +11 -0
  1078. package/bundle/src/codex-protocol/v2/ToolsV2.ts +6 -0
  1079. package/bundle/src/codex-protocol/v2/Turn.ts +36 -0
  1080. package/bundle/src/codex-protocol/v2/TurnCompletedNotification.ts +6 -0
  1081. package/bundle/src/codex-protocol/v2/TurnDiffUpdatedNotification.ts +9 -0
  1082. package/bundle/src/codex-protocol/v2/TurnEnvironmentParams.ts +6 -0
  1083. package/bundle/src/codex-protocol/v2/TurnError.ts +10 -0
  1084. package/bundle/src/codex-protocol/v2/TurnInterruptParams.ts +5 -0
  1085. package/bundle/src/codex-protocol/v2/TurnInterruptResponse.ts +5 -0
  1086. package/bundle/src/codex-protocol/v2/TurnItemsView.ts +5 -0
  1087. package/bundle/src/codex-protocol/v2/TurnPlanStep.ts +6 -0
  1088. package/bundle/src/codex-protocol/v2/TurnPlanStepStatus.ts +5 -0
  1089. package/bundle/src/codex-protocol/v2/TurnPlanUpdatedNotification.ts +11 -0
  1090. package/bundle/src/codex-protocol/v2/TurnStartParams.ts +48 -0
  1091. package/bundle/src/codex-protocol/v2/TurnStartResponse.ts +6 -0
  1092. package/bundle/src/codex-protocol/v2/TurnStartedNotification.ts +6 -0
  1093. package/bundle/src/codex-protocol/v2/TurnStatus.ts +5 -0
  1094. package/bundle/src/codex-protocol/v2/TurnSteerParams.ts +13 -0
  1095. package/bundle/src/codex-protocol/v2/TurnSteerResponse.ts +5 -0
  1096. package/bundle/src/codex-protocol/v2/UserInput.ts +18 -0
  1097. package/bundle/src/codex-protocol/v2/WarningNotification.ts +14 -0
  1098. package/bundle/src/codex-protocol/v2/WebSearchAction.ts +9 -0
  1099. package/bundle/src/codex-protocol/v2/WindowsSandboxReadiness.ts +5 -0
  1100. package/bundle/src/codex-protocol/v2/WindowsSandboxReadinessResponse.ts +6 -0
  1101. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.ts +10 -0
  1102. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupMode.ts +5 -0
  1103. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartParams.ts +10 -0
  1104. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartResponse.ts +5 -0
  1105. package/bundle/src/codex-protocol/v2/WindowsWorldWritableWarningNotification.ts +9 -0
  1106. package/bundle/src/codex-protocol/v2/WriteStatus.ts +5 -0
  1107. package/bundle/src/codex-protocol/v2/index.ts +446 -0
  1108. package/bundle/src/i18n/sd.generated.ts +36 -4
  1109. package/bundle/src/migrations/20260518145411_alter_tokens_add2_drop4_alter1.ts +23 -0
  1110. package/bundle/src/migrations/20260520112853_alter_request_logs_add3_alter1.ts +17 -0
  1111. package/bundle/src/migrations/20260520124755_alter_request_logs_drop1_alter1.ts +15 -0
  1112. package/bundle/src/migrations/20260520130420_create__request_log_steps.ts +33 -0
  1113. package/bundle/src/migrations/20260520134908_alter_request_logs_add2_alter8.ts +44 -0
  1114. package/bundle/src/migrations/20260520134909_alter_request_log_steps_add1_alter3.ts +23 -0
  1115. package/bundle/src/migrations/20260520141449_alter_request_logs_add1_alter1.ts +15 -0
  1116. package/bundle/src/migrations/20260521134025_alter_request_log_steps_alter1.ts +13 -0
  1117. package/bundle/src/migrations/20260521134026_alter_request_log_steps_foreigns.ts +17 -0
  1118. package/bundle/src/migrations/20260522181721_alter_request_log_steps_add2_alter1.ts +16 -0
  1119. package/bundle/src/sonamu.config.ts +50 -51
  1120. package/bundle/src/typings/sonamu.d.ts +1 -1
  1121. package/bundle/src/utils/providers/common/credentials.ts +26 -0
  1122. package/bundle/src/utils/providers/common/model-cost.ts +65 -0
  1123. package/bundle/src/utils/providers/common/provider-dispatcher.ts +36 -0
  1124. package/bundle/src/utils/providers/common/strictifier.ts +128 -0
  1125. package/bundle/src/utils/providers/common/token-picker.ts +18 -0
  1126. package/bundle/src/utils/providers/openai/codex-rpc.ts +236 -0
  1127. package/bundle/src/utils/providers/openai/codex-worker.ts +469 -0
  1128. package/bundle/src/utils/providers/openai/openai-constants.ts +5 -0
  1129. package/bundle/src/utils/providers/openai/openai-dispatcher.ts +453 -0
  1130. package/bundle/src/utils/providers/openai/openai-refresh.ts +134 -0
  1131. package/bundle/web-dist/client/assets/index-B5DSo5uH.css +1 -0
  1132. package/bundle/web-dist/client/assets/index-ZV-tHpAg.js +78 -0
  1133. package/bundle/web-dist/client/assets/logs-HJYkbqom.js +1 -0
  1134. package/bundle/web-dist/client/assets/routes-BMRwPj6F.js +5 -0
  1135. package/bundle/web-dist/client/assets/sd.generated-7jzAQL2_.js +51 -0
  1136. package/bundle/web-dist/client/assets/services.generated-Bx1Eh7ot.js +1 -0
  1137. package/bundle/web-dist/client/assets/{show-WxeogUIk.js → show-DI6iWDzV.js} +3 -2
  1138. package/bundle/web-dist/client/assets/tokens-Cg1f0Ga2.js +1 -0
  1139. package/bundle/web-dist/client/index.html +3 -3
  1140. package/bundle/web-dist/server/assets/{lazyRouteComponent-CcyhCAoL.js → lazyRouteComponent-BEaI4mOq.js} +2 -2
  1141. package/bundle/web-dist/server/assets/logs-Xt934T5f.js +371 -0
  1142. package/bundle/web-dist/server/assets/{routes-DQh4d03H.js → routes-B7QYbNIv.js} +149 -92
  1143. package/bundle/web-dist/server/assets/{sd.generated-CkiEsOwK.js → sd.generated-BeUHLWKH.js} +538 -163
  1144. package/bundle/web-dist/server/assets/{services.generated-Q2ZIxMdn.js → services.generated-C39hdSv0.js} +164 -34
  1145. package/bundle/web-dist/server/assets/{shim-BYpcQGN1.js → shim-B9ZrFt3Z.js} +1 -1
  1146. package/bundle/web-dist/server/assets/{show-j1j13Hq1.js → show-Dxz6UJnD.js} +508 -150
  1147. package/bundle/web-dist/server/assets/tokens-IPwv3pNB.js +477 -0
  1148. package/bundle/web-dist/server/entry-server.generated.js +157 -197
  1149. package/dist/cli.js +35 -16
  1150. package/package.json +2 -2
  1151. package/bundle/web-dist/client/assets/copy-DdGJDXSK.js +0 -1
  1152. package/bundle/web-dist/client/assets/index-D-D8GkQh.css +0 -1
  1153. package/bundle/web-dist/client/assets/index-DxJOOfGV.js +0 -78
  1154. package/bundle/web-dist/client/assets/logs-D83MPvLO.js +0 -1
  1155. package/bundle/web-dist/client/assets/routes-C1PeZiBp.js +0 -5
  1156. package/bundle/web-dist/client/assets/sd.generated-C9WnMJm4.js +0 -47
  1157. package/bundle/web-dist/client/assets/services.generated-BV5C1PQa.js +0 -1
  1158. package/bundle/web-dist/client/assets/tokens--RfCPd1y.js +0 -1
  1159. package/bundle/web-dist/server/assets/copy-SIUvcEcZ.js +0 -42
  1160. package/bundle/web-dist/server/assets/logs-9j6ES80h.js +0 -361
  1161. 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
- import { type UsageResponse } from "./qgrid.types";
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: UsageResponse; cachedAt: number }> = {};
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<UsageResponse> {
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 UsageResponse;
184
+ const data = (await res.json()) as AnthropicUsageRaw;
181
185
  // cache invalidate
182
186
  usageCache[cacheKey] = { data, cachedAt: Date.now() };
183
187
  return data;