@cartanova/qgrid-cli 2.7.1 → 2.7.2

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 (1212) hide show
  1. package/README.ko.md +3 -2
  2. package/README.md +3 -2
  3. package/bundle/dist/application/monit/monit.frame.js +27 -14
  4. package/bundle/dist/application/monit/monit.types.js +22 -13
  5. package/bundle/dist/application/qgrid/conv-routing.js +21 -11
  6. package/bundle/dist/application/qgrid/oauth.js +1 -1
  7. package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +15 -4
  8. package/bundle/dist/application/qgrid/qgrid.dispatcher.js +18 -9
  9. package/bundle/dist/application/qgrid/qgrid.frame.js +50 -73
  10. package/bundle/dist/application/qgrid/qgrid.types.js +4 -1
  11. package/bundle/dist/application/qgrid/token-subscriber.js +5 -5
  12. package/bundle/dist/application/qgrid/tool-emulation-schema.js +13 -1
  13. package/bundle/dist/application/qgrid/tool-emulation.js +1 -1
  14. package/bundle/dist/application/queries.generated.js +3 -1
  15. package/bundle/dist/application/request-log/json-schema-type-text.js +55 -0
  16. package/bundle/dist/application/request-log/request-log.model.js +85 -3
  17. package/bundle/dist/application/request-log/request-log.types.js +3 -2
  18. package/bundle/dist/application/request-log/zod-code-format.js +71 -0
  19. package/bundle/dist/application/setting/setting.constant.js +2 -62
  20. package/bundle/dist/application/setting/setting.model.js +3 -3
  21. package/bundle/dist/application/setting/setting.store.js +2 -2
  22. package/bundle/dist/application/sonamu.generated.js +11 -4
  23. package/bundle/dist/application/sonamu.generated.sso.js +7 -3
  24. package/bundle/dist/i18n/sd.generated.js +5 -2
  25. package/bundle/dist/migrations/20260814130113_alter_request_logs_add1_alter1.js +15 -0
  26. package/bundle/dist/migrations/20260814131051_alter_request_logs_add1_alter1.js +15 -0
  27. package/bundle/dist/migrations/20260814134846_alter_request_logs_add1_alter1.js +15 -0
  28. package/bundle/dist/migrations/20260814140759_alter_request_logs_alter1.js +13 -0
  29. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +2 -2
  30. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/benchmark.CX_oY03V.js +2 -2
  31. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js +2 -2
  32. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/index.Chj8NDwU.js +2 -2
  33. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/index.DdgEv5B1.js +2 -2
  34. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js +2 -2
  35. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js +2 -2
  36. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js +2 -2
  37. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930}/node_modules/vitest/dist/index.js +1 -1
  38. package/bundle/dist/sonamu.config.js +10 -9
  39. package/bundle/dist/testing/setup-mocks.js +2 -2
  40. package/bundle/dist/utils/providers/anthropic/anthropic-dispatcher.js +14 -2
  41. package/bundle/dist/utils/providers/anthropic/claude-session.js +1 -1
  42. package/bundle/dist/utils/providers/anthropic/stream-json-adapter.js +1 -1
  43. package/bundle/dist/utils/providers/common/model-cost.js +1 -1
  44. package/bundle/dist/utils/providers/common/schema-validation.js +1 -1
  45. package/bundle/dist/utils/providers/openai/openai-backend-protocol.js +144 -0
  46. package/bundle/dist/utils/providers/openai/openai-constants.js +4 -2
  47. package/bundle/dist/utils/providers/openai/openai-direct-client.js +327 -0
  48. package/bundle/dist/utils/providers/openai/openai-dispatcher.js +358 -781
  49. package/bundle/dist/utils/providers/openai/openai-oauth.js +84 -0
  50. package/bundle/dist/utils/providers/openai/openai-quota.js +76 -5
  51. package/bundle/dist/utils/providers/openai/openai-refresh.js +3 -3
  52. package/bundle/dist/utils/providers/openai/openai-sse.js +72 -0
  53. package/bundle/dist/utils/providers/openai/openai-transport-config.js +14 -0
  54. package/bundle/src/application/monit/monit.frame.test.ts +14 -17
  55. package/bundle/src/application/monit/monit.frame.ts +23 -12
  56. package/bundle/src/application/monit/monit.types.ts +40 -11
  57. package/bundle/src/application/qgrid/conv-routing.test.ts +67 -0
  58. package/bundle/src/application/qgrid/conv-routing.ts +46 -12
  59. package/bundle/src/application/qgrid/qgrid-oauth-redirect.test.ts +92 -2
  60. package/bundle/src/application/qgrid/qgrid-run-lifecycle.test.ts +3 -0
  61. package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +15 -1
  62. package/bundle/src/application/qgrid/qgrid.dispatcher.test.ts +36 -6
  63. package/bundle/src/application/qgrid/qgrid.dispatcher.ts +22 -9
  64. package/bundle/src/application/qgrid/qgrid.frame.ts +55 -94
  65. package/bundle/src/application/qgrid/qgrid.types.ts +11 -4
  66. package/bundle/src/application/qgrid/token-subscriber.ts +4 -4
  67. package/bundle/src/application/qgrid/tool-emulation-schema.ts +1 -1
  68. package/bundle/src/application/qgrid/tool-emulation.test.ts +1 -0
  69. package/bundle/src/application/queries.generated.ts +6 -0
  70. package/bundle/src/application/request-log/json-schema-type-text.test.ts +96 -0
  71. package/bundle/src/application/request-log/json-schema-type-text.ts +83 -0
  72. package/bundle/src/application/request-log/request-log.entity.json +147 -21
  73. package/bundle/src/application/request-log/request-log.model.ts +108 -0
  74. package/bundle/src/application/request-log/request-log.types.ts +2 -0
  75. package/bundle/src/application/request-log/zod-code-format.test.ts +31 -0
  76. package/bundle/src/application/request-log/zod-code-format.ts +73 -0
  77. package/bundle/src/application/setting/setting.constant.test.ts +22 -24
  78. package/bundle/src/application/setting/setting.constant.ts +2 -63
  79. package/bundle/src/application/setting/setting.entity.json +1 -1
  80. package/bundle/src/application/setting/setting.store.ts +1 -1
  81. package/bundle/src/application/sonamu.generated.http +20 -1
  82. package/bundle/src/application/sonamu.generated.sso.ts +4 -0
  83. package/bundle/src/application/sonamu.generated.ts +10 -0
  84. package/bundle/src/i18n/sd.generated.ts +6 -1
  85. package/bundle/src/migrations/20260814130113_alter_request_logs_add1_alter1.ts +15 -0
  86. package/bundle/src/migrations/20260814131051_alter_request_logs_add1_alter1.ts +15 -0
  87. package/bundle/src/migrations/20260814134846_alter_request_logs_add1_alter1.ts +15 -0
  88. package/bundle/src/migrations/20260814140759_alter_request_logs_alter1.ts +13 -0
  89. package/bundle/src/sonamu.config.ts +9 -13
  90. package/bundle/src/utils/providers/anthropic/anthropic-dispatcher.ts +17 -2
  91. package/bundle/src/utils/providers/anthropic/claude-session.ts +1 -3
  92. package/bundle/src/utils/providers/anthropic/stream-json-adapter.test.ts +1 -2
  93. package/bundle/src/utils/providers/anthropic/stream-json-adapter.ts +2 -3
  94. package/bundle/src/utils/providers/common/model-cost.ts +4 -9
  95. package/bundle/src/utils/providers/common/provider-dispatcher.ts +10 -8
  96. package/bundle/src/utils/providers/common/provider-types.ts +48 -0
  97. package/bundle/src/utils/providers/common/schema-validation.ts +1 -1
  98. package/bundle/src/utils/providers/openai/openai-backend-protocol.test.ts +106 -0
  99. package/bundle/src/utils/providers/openai/openai-backend-protocol.ts +255 -0
  100. package/bundle/src/utils/providers/openai/openai-constants.ts +2 -0
  101. package/bundle/src/utils/providers/openai/openai-direct-client.test.ts +610 -0
  102. package/bundle/src/utils/providers/openai/openai-direct-client.ts +478 -0
  103. package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +336 -1723
  104. package/bundle/src/utils/providers/openai/openai-dispatcher.ts +458 -1175
  105. package/bundle/src/utils/providers/openai/openai-oauth.test.ts +95 -0
  106. package/bundle/src/utils/providers/openai/openai-oauth.ts +141 -0
  107. package/bundle/src/utils/providers/openai/openai-quota.test.ts +80 -7
  108. package/bundle/src/utils/providers/openai/openai-quota.ts +105 -4
  109. package/bundle/src/utils/providers/openai/openai-refresh.test.ts +120 -0
  110. package/bundle/src/utils/providers/openai/openai-refresh.ts +3 -1
  111. package/bundle/src/utils/providers/openai/openai-sse.test.ts +52 -0
  112. package/bundle/src/utils/providers/openai/openai-sse.ts +79 -0
  113. package/bundle/src/utils/providers/openai/openai-transport-config.ts +17 -0
  114. package/bundle/web-dist/client/assets/index-BldeEvAK.css +1 -0
  115. package/bundle/web-dist/client/assets/index-DkAXPF9q.js +106 -0
  116. package/bundle/web-dist/client/assets/logs-DlI6OojL.js +1 -0
  117. package/bundle/web-dist/client/assets/monit-qap66dhi.js +1 -0
  118. package/bundle/web-dist/client/assets/{routes-J4bnHVfl.js → routes-CV07Pzde.js} +1 -1
  119. package/bundle/web-dist/client/assets/{services.generated-jGypfumC.js → services.generated-CSW8bhCP.js} +4 -4
  120. package/bundle/web-dist/client/assets/settings-CdYub4yo.js +1 -0
  121. package/bundle/web-dist/client/assets/show-DA1L8DVD.js +2 -0
  122. package/bundle/web-dist/client/assets/{tokens-DDrATjGA.js → tokens-Dt3gfkwP.js} +1 -1
  123. package/bundle/web-dist/client/assets/{use-oauth-login-flow-CptleCFM.js → use-oauth-login-flow-Cwi0HtJY.js} +1 -1
  124. package/bundle/web-dist/client/index.html +3 -3
  125. package/bundle/web-dist/server/assets/{lazyRouteComponent-DOc8TV-P.js → lazyRouteComponent-0y-znAfz.js} +2 -2
  126. package/bundle/web-dist/server/assets/{logs-CfF3nmLM.js → logs-CJBbHM3_.js} +35 -5
  127. package/bundle/web-dist/server/assets/{monit-BSaKhh5D.js → monit-8WAsPETB.js} +144 -51
  128. package/bundle/web-dist/server/assets/{plus-DLFUHsfx.js → plus-9das21ju.js} +1 -1
  129. package/bundle/web-dist/server/assets/{react-dom-BotjLnTK.js → react-dom-zmEq8BVp.js} +1 -1
  130. package/bundle/web-dist/server/assets/{routes-CHMxrTT0.js → routes-B6bX3o41.js} +3 -3
  131. package/bundle/web-dist/server/assets/{services.generated-D3Q3FYot.js → services.generated-DyPeBI00.js} +76 -2
  132. package/bundle/web-dist/server/assets/{settings-DOQjV28c.js → settings-D1u5WdpP.js} +2 -3
  133. package/bundle/web-dist/server/assets/{show-Cn_C6Qvl.js → show-Cr7vwR0l.js} +93 -8
  134. package/bundle/web-dist/server/assets/{tokens-c0EN3iCx.js → tokens-BumM0gnH.js} +3 -3
  135. package/bundle/web-dist/server/assets/{use-oauth-login-flow-B68AbMDE.js → use-oauth-login-flow-DmsHGOlx.js} +1 -1
  136. package/bundle/web-dist/server/entry-server.generated.js +12 -12
  137. package/dist/cli.d.ts +10 -1
  138. package/dist/cli.js +1 -6
  139. package/package.json +3 -2
  140. package/skills/qgrid/SKILL.md +5 -5
  141. package/skills/qgrid/references/ai-sdk-provider-contract.md +16 -10
  142. package/skills/qgrid/references/cli-env-and-server-boot.md +6 -13
  143. package/skills/qgrid/references/decision-rationale.md +15 -23
  144. package/skills/qgrid/references/docs-workflow.md +1 -1
  145. package/skills/qgrid/references/openai-codex-runtime.md +39 -156
  146. package/skills/qgrid/references/prompt-cache-and-usage.md +35 -71
  147. package/skills/qgrid/references/provider-runtime-differences.md +17 -17
  148. package/skills/qgrid/references/repo-map.md +2 -2
  149. package/skills/qgrid/references/request-log-run-lifecycle.md +12 -2
  150. package/skills/qgrid/references/sonamu-api-web-flow.md +4 -0
  151. package/skills/qgrid/references/token-auth-quota-lifecycle.md +14 -24
  152. package/skills/qgrid/references/tool-calling-and-multiturn.md +3 -3
  153. package/skills/qgrid/references/verification-and-debugging.md +17 -15
  154. package/bundle/dist/codex-protocol/AgentPath.js +0 -1
  155. package/bundle/dist/codex-protocol/ApplyPatchApprovalParams.js +0 -1
  156. package/bundle/dist/codex-protocol/ApplyPatchApprovalResponse.js +0 -1
  157. package/bundle/dist/codex-protocol/AuthMode.js +0 -1
  158. package/bundle/dist/codex-protocol/ClientInfo.js +0 -1
  159. package/bundle/dist/codex-protocol/ClientNotification.js +0 -1
  160. package/bundle/dist/codex-protocol/ClientRequest.js +0 -1
  161. package/bundle/dist/codex-protocol/CollaborationMode.js +0 -1
  162. package/bundle/dist/codex-protocol/ContentItem.js +0 -1
  163. package/bundle/dist/codex-protocol/ConversationGitInfo.js +0 -1
  164. package/bundle/dist/codex-protocol/ConversationSummary.js +0 -1
  165. package/bundle/dist/codex-protocol/ExecCommandApprovalParams.js +0 -1
  166. package/bundle/dist/codex-protocol/ExecCommandApprovalResponse.js +0 -1
  167. package/bundle/dist/codex-protocol/ExecPolicyAmendment.js +0 -1
  168. package/bundle/dist/codex-protocol/FileChange.js +0 -1
  169. package/bundle/dist/codex-protocol/ForcedLoginMethod.js +0 -1
  170. package/bundle/dist/codex-protocol/FunctionCallOutputBody.js +0 -1
  171. package/bundle/dist/codex-protocol/FunctionCallOutputContentItem.js +0 -1
  172. package/bundle/dist/codex-protocol/FuzzyFileSearchMatchType.js +0 -1
  173. package/bundle/dist/codex-protocol/FuzzyFileSearchParams.js +0 -1
  174. package/bundle/dist/codex-protocol/FuzzyFileSearchResponse.js +0 -1
  175. package/bundle/dist/codex-protocol/FuzzyFileSearchResult.js +0 -1
  176. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionCompletedNotification.js +0 -1
  177. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.js +0 -1
  178. package/bundle/dist/codex-protocol/GetAuthStatusParams.js +0 -1
  179. package/bundle/dist/codex-protocol/GetAuthStatusResponse.js +0 -1
  180. package/bundle/dist/codex-protocol/GetConversationSummaryParams.js +0 -1
  181. package/bundle/dist/codex-protocol/GetConversationSummaryResponse.js +0 -1
  182. package/bundle/dist/codex-protocol/GitDiffToRemoteParams.js +0 -1
  183. package/bundle/dist/codex-protocol/GitDiffToRemoteResponse.js +0 -1
  184. package/bundle/dist/codex-protocol/GitSha.js +0 -1
  185. package/bundle/dist/codex-protocol/ImageDetail.js +0 -1
  186. package/bundle/dist/codex-protocol/InitializeCapabilities.js +0 -1
  187. package/bundle/dist/codex-protocol/InitializeParams.js +0 -1
  188. package/bundle/dist/codex-protocol/InitializeResponse.js +0 -1
  189. package/bundle/dist/codex-protocol/InputModality.js +0 -1
  190. package/bundle/dist/codex-protocol/InternalSessionSource.js +0 -1
  191. package/bundle/dist/codex-protocol/LocalShellAction.js +0 -1
  192. package/bundle/dist/codex-protocol/LocalShellExecAction.js +0 -1
  193. package/bundle/dist/codex-protocol/LocalShellStatus.js +0 -1
  194. package/bundle/dist/codex-protocol/MessagePhase.js +0 -1
  195. package/bundle/dist/codex-protocol/ModeKind.js +0 -1
  196. package/bundle/dist/codex-protocol/NetworkPolicyAmendment.js +0 -1
  197. package/bundle/dist/codex-protocol/NetworkPolicyRuleAction.js +0 -1
  198. package/bundle/dist/codex-protocol/ParsedCommand.js +0 -1
  199. package/bundle/dist/codex-protocol/Personality.js +0 -1
  200. package/bundle/dist/codex-protocol/PlanType.js +0 -1
  201. package/bundle/dist/codex-protocol/RealtimeConversationVersion.js +0 -1
  202. package/bundle/dist/codex-protocol/RealtimeOutputModality.js +0 -1
  203. package/bundle/dist/codex-protocol/RealtimeVoice.js +0 -1
  204. package/bundle/dist/codex-protocol/RealtimeVoicesList.js +0 -1
  205. package/bundle/dist/codex-protocol/ReasoningEffort.js +0 -1
  206. package/bundle/dist/codex-protocol/ReasoningItemContent.js +0 -1
  207. package/bundle/dist/codex-protocol/ReasoningItemReasoningSummary.js +0 -1
  208. package/bundle/dist/codex-protocol/ReasoningSummary.js +0 -1
  209. package/bundle/dist/codex-protocol/RequestId.js +0 -1
  210. package/bundle/dist/codex-protocol/Resource.js +0 -1
  211. package/bundle/dist/codex-protocol/ResourceContent.js +0 -1
  212. package/bundle/dist/codex-protocol/ResourceTemplate.js +0 -1
  213. package/bundle/dist/codex-protocol/ResponseItem.js +0 -1
  214. package/bundle/dist/codex-protocol/ReviewDecision.js +0 -1
  215. package/bundle/dist/codex-protocol/ServerNotification.js +0 -1
  216. package/bundle/dist/codex-protocol/ServerRequest.js +0 -1
  217. package/bundle/dist/codex-protocol/SessionSource.js +0 -1
  218. package/bundle/dist/codex-protocol/Settings.js +0 -1
  219. package/bundle/dist/codex-protocol/SubAgentSource.js +0 -1
  220. package/bundle/dist/codex-protocol/ThreadId.js +0 -1
  221. package/bundle/dist/codex-protocol/ThreadMemoryMode.js +0 -1
  222. package/bundle/dist/codex-protocol/Tool.js +0 -1
  223. package/bundle/dist/codex-protocol/Verbosity.js +0 -1
  224. package/bundle/dist/codex-protocol/WebSearchAction.js +0 -1
  225. package/bundle/dist/codex-protocol/WebSearchContextSize.js +0 -1
  226. package/bundle/dist/codex-protocol/WebSearchLocation.js +0 -1
  227. package/bundle/dist/codex-protocol/WebSearchMode.js +0 -1
  228. package/bundle/dist/codex-protocol/WebSearchToolConfig.js +0 -1
  229. package/bundle/dist/codex-protocol/index.js +0 -2
  230. package/bundle/dist/codex-protocol/serde_json/JsonValue.js +0 -1
  231. package/bundle/dist/codex-protocol/v2/Account.js +0 -1
  232. package/bundle/dist/codex-protocol/v2/AccountLoginCompletedNotification.js +0 -1
  233. package/bundle/dist/codex-protocol/v2/AccountRateLimitsUpdatedNotification.js +0 -1
  234. package/bundle/dist/codex-protocol/v2/AccountUpdatedNotification.js +0 -1
  235. package/bundle/dist/codex-protocol/v2/ActivePermissionProfile.js +0 -1
  236. package/bundle/dist/codex-protocol/v2/ActivePermissionProfileModification.js +0 -1
  237. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeCreditType.js +0 -1
  238. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeEmailStatus.js +0 -1
  239. package/bundle/dist/codex-protocol/v2/AdditionalFileSystemPermissions.js +0 -1
  240. package/bundle/dist/codex-protocol/v2/AdditionalNetworkPermissions.js +0 -1
  241. package/bundle/dist/codex-protocol/v2/AdditionalPermissionProfile.js +0 -1
  242. package/bundle/dist/codex-protocol/v2/AgentMessageDeltaNotification.js +0 -1
  243. package/bundle/dist/codex-protocol/v2/AnalyticsConfig.js +0 -1
  244. package/bundle/dist/codex-protocol/v2/AppBranding.js +0 -1
  245. package/bundle/dist/codex-protocol/v2/AppInfo.js +0 -1
  246. package/bundle/dist/codex-protocol/v2/AppListUpdatedNotification.js +0 -1
  247. package/bundle/dist/codex-protocol/v2/AppMetadata.js +0 -1
  248. package/bundle/dist/codex-protocol/v2/AppReview.js +0 -1
  249. package/bundle/dist/codex-protocol/v2/AppScreenshot.js +0 -1
  250. package/bundle/dist/codex-protocol/v2/AppSummary.js +0 -1
  251. package/bundle/dist/codex-protocol/v2/AppToolApproval.js +0 -1
  252. package/bundle/dist/codex-protocol/v2/AppToolsConfig.js +0 -1
  253. package/bundle/dist/codex-protocol/v2/ApprovalsReviewer.js +0 -1
  254. package/bundle/dist/codex-protocol/v2/AppsConfig.js +0 -1
  255. package/bundle/dist/codex-protocol/v2/AppsDefaultConfig.js +0 -1
  256. package/bundle/dist/codex-protocol/v2/AppsListParams.js +0 -1
  257. package/bundle/dist/codex-protocol/v2/AppsListResponse.js +0 -1
  258. package/bundle/dist/codex-protocol/v2/AskForApproval.js +0 -1
  259. package/bundle/dist/codex-protocol/v2/AutoReviewDecisionSource.js +0 -1
  260. package/bundle/dist/codex-protocol/v2/ByteRange.js +0 -1
  261. package/bundle/dist/codex-protocol/v2/CancelLoginAccountParams.js +0 -1
  262. package/bundle/dist/codex-protocol/v2/CancelLoginAccountResponse.js +0 -1
  263. package/bundle/dist/codex-protocol/v2/CancelLoginAccountStatus.js +0 -1
  264. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshParams.js +0 -1
  265. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshReason.js +0 -1
  266. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.js +0 -1
  267. package/bundle/dist/codex-protocol/v2/CodexErrorInfo.js +0 -1
  268. package/bundle/dist/codex-protocol/v2/CollabAgentState.js +0 -1
  269. package/bundle/dist/codex-protocol/v2/CollabAgentStatus.js +0 -1
  270. package/bundle/dist/codex-protocol/v2/CollabAgentTool.js +0 -1
  271. package/bundle/dist/codex-protocol/v2/CollabAgentToolCallStatus.js +0 -1
  272. package/bundle/dist/codex-protocol/v2/CollaborationModeMask.js +0 -1
  273. package/bundle/dist/codex-protocol/v2/CommandAction.js +0 -1
  274. package/bundle/dist/codex-protocol/v2/CommandExecOutputDeltaNotification.js +0 -1
  275. package/bundle/dist/codex-protocol/v2/CommandExecOutputStream.js +0 -1
  276. package/bundle/dist/codex-protocol/v2/CommandExecParams.js +0 -1
  277. package/bundle/dist/codex-protocol/v2/CommandExecResizeParams.js +0 -1
  278. package/bundle/dist/codex-protocol/v2/CommandExecResizeResponse.js +0 -1
  279. package/bundle/dist/codex-protocol/v2/CommandExecResponse.js +0 -1
  280. package/bundle/dist/codex-protocol/v2/CommandExecTerminalSize.js +0 -1
  281. package/bundle/dist/codex-protocol/v2/CommandExecTerminateParams.js +0 -1
  282. package/bundle/dist/codex-protocol/v2/CommandExecTerminateResponse.js +0 -1
  283. package/bundle/dist/codex-protocol/v2/CommandExecWriteParams.js +0 -1
  284. package/bundle/dist/codex-protocol/v2/CommandExecWriteResponse.js +0 -1
  285. package/bundle/dist/codex-protocol/v2/CommandExecutionApprovalDecision.js +0 -1
  286. package/bundle/dist/codex-protocol/v2/CommandExecutionOutputDeltaNotification.js +0 -1
  287. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalParams.js +0 -1
  288. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalResponse.js +0 -1
  289. package/bundle/dist/codex-protocol/v2/CommandExecutionSource.js +0 -1
  290. package/bundle/dist/codex-protocol/v2/CommandExecutionStatus.js +0 -1
  291. package/bundle/dist/codex-protocol/v2/CommandMigration.js +0 -1
  292. package/bundle/dist/codex-protocol/v2/Config.js +0 -1
  293. package/bundle/dist/codex-protocol/v2/ConfigBatchWriteParams.js +0 -1
  294. package/bundle/dist/codex-protocol/v2/ConfigEdit.js +0 -1
  295. package/bundle/dist/codex-protocol/v2/ConfigLayer.js +0 -1
  296. package/bundle/dist/codex-protocol/v2/ConfigLayerMetadata.js +0 -1
  297. package/bundle/dist/codex-protocol/v2/ConfigLayerSource.js +0 -1
  298. package/bundle/dist/codex-protocol/v2/ConfigReadParams.js +0 -1
  299. package/bundle/dist/codex-protocol/v2/ConfigReadResponse.js +0 -1
  300. package/bundle/dist/codex-protocol/v2/ConfigRequirements.js +0 -1
  301. package/bundle/dist/codex-protocol/v2/ConfigRequirementsReadResponse.js +0 -1
  302. package/bundle/dist/codex-protocol/v2/ConfigValueWriteParams.js +0 -1
  303. package/bundle/dist/codex-protocol/v2/ConfigWarningNotification.js +0 -1
  304. package/bundle/dist/codex-protocol/v2/ConfigWriteResponse.js +0 -1
  305. package/bundle/dist/codex-protocol/v2/ConfiguredHookHandler.js +0 -1
  306. package/bundle/dist/codex-protocol/v2/ConfiguredHookMatcherGroup.js +0 -1
  307. package/bundle/dist/codex-protocol/v2/ContextCompactedNotification.js +0 -1
  308. package/bundle/dist/codex-protocol/v2/CreditsSnapshot.js +0 -1
  309. package/bundle/dist/codex-protocol/v2/DeprecationNoticeNotification.js +0 -1
  310. package/bundle/dist/codex-protocol/v2/DynamicToolCallOutputContentItem.js +0 -1
  311. package/bundle/dist/codex-protocol/v2/DynamicToolCallParams.js +0 -1
  312. package/bundle/dist/codex-protocol/v2/DynamicToolCallResponse.js +0 -1
  313. package/bundle/dist/codex-protocol/v2/DynamicToolCallStatus.js +0 -1
  314. package/bundle/dist/codex-protocol/v2/DynamicToolSpec.js +0 -1
  315. package/bundle/dist/codex-protocol/v2/ErrorNotification.js +0 -1
  316. package/bundle/dist/codex-protocol/v2/ExecPolicyAmendment.js +0 -1
  317. package/bundle/dist/codex-protocol/v2/ExperimentalFeature.js +0 -1
  318. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.js +0 -1
  319. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.js +0 -1
  320. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListParams.js +0 -1
  321. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListResponse.js +0 -1
  322. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureStage.js +0 -1
  323. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectParams.js +0 -1
  324. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectResponse.js +0 -1
  325. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.js +0 -1
  326. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportParams.js +0 -1
  327. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportResponse.js +0 -1
  328. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItem.js +0 -1
  329. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItemType.js +0 -1
  330. package/bundle/dist/codex-protocol/v2/FeedbackUploadParams.js +0 -1
  331. package/bundle/dist/codex-protocol/v2/FeedbackUploadResponse.js +0 -1
  332. package/bundle/dist/codex-protocol/v2/FileChangeApprovalDecision.js +0 -1
  333. package/bundle/dist/codex-protocol/v2/FileChangeOutputDeltaNotification.js +0 -1
  334. package/bundle/dist/codex-protocol/v2/FileChangePatchUpdatedNotification.js +0 -1
  335. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalParams.js +0 -1
  336. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalResponse.js +0 -1
  337. package/bundle/dist/codex-protocol/v2/FileSystemAccessMode.js +0 -1
  338. package/bundle/dist/codex-protocol/v2/FileSystemPath.js +0 -1
  339. package/bundle/dist/codex-protocol/v2/FileSystemSandboxEntry.js +0 -1
  340. package/bundle/dist/codex-protocol/v2/FileSystemSpecialPath.js +0 -1
  341. package/bundle/dist/codex-protocol/v2/FileUpdateChange.js +0 -1
  342. package/bundle/dist/codex-protocol/v2/FsChangedNotification.js +0 -1
  343. package/bundle/dist/codex-protocol/v2/FsCopyParams.js +0 -1
  344. package/bundle/dist/codex-protocol/v2/FsCopyResponse.js +0 -1
  345. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryParams.js +0 -1
  346. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryResponse.js +0 -1
  347. package/bundle/dist/codex-protocol/v2/FsGetMetadataParams.js +0 -1
  348. package/bundle/dist/codex-protocol/v2/FsGetMetadataResponse.js +0 -1
  349. package/bundle/dist/codex-protocol/v2/FsReadDirectoryEntry.js +0 -1
  350. package/bundle/dist/codex-protocol/v2/FsReadDirectoryParams.js +0 -1
  351. package/bundle/dist/codex-protocol/v2/FsReadDirectoryResponse.js +0 -1
  352. package/bundle/dist/codex-protocol/v2/FsReadFileParams.js +0 -1
  353. package/bundle/dist/codex-protocol/v2/FsReadFileResponse.js +0 -1
  354. package/bundle/dist/codex-protocol/v2/FsRemoveParams.js +0 -1
  355. package/bundle/dist/codex-protocol/v2/FsRemoveResponse.js +0 -1
  356. package/bundle/dist/codex-protocol/v2/FsUnwatchParams.js +0 -1
  357. package/bundle/dist/codex-protocol/v2/FsUnwatchResponse.js +0 -1
  358. package/bundle/dist/codex-protocol/v2/FsWatchParams.js +0 -1
  359. package/bundle/dist/codex-protocol/v2/FsWatchResponse.js +0 -1
  360. package/bundle/dist/codex-protocol/v2/FsWriteFileParams.js +0 -1
  361. package/bundle/dist/codex-protocol/v2/FsWriteFileResponse.js +0 -1
  362. package/bundle/dist/codex-protocol/v2/GetAccountParams.js +0 -1
  363. package/bundle/dist/codex-protocol/v2/GetAccountRateLimitsResponse.js +0 -1
  364. package/bundle/dist/codex-protocol/v2/GetAccountResponse.js +0 -1
  365. package/bundle/dist/codex-protocol/v2/GitInfo.js +0 -1
  366. package/bundle/dist/codex-protocol/v2/GrantedPermissionProfile.js +0 -1
  367. package/bundle/dist/codex-protocol/v2/GuardianApprovalReview.js +0 -1
  368. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewAction.js +0 -1
  369. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewStatus.js +0 -1
  370. package/bundle/dist/codex-protocol/v2/GuardianCommandSource.js +0 -1
  371. package/bundle/dist/codex-protocol/v2/GuardianRiskLevel.js +0 -1
  372. package/bundle/dist/codex-protocol/v2/GuardianUserAuthorization.js +0 -1
  373. package/bundle/dist/codex-protocol/v2/GuardianWarningNotification.js +0 -1
  374. package/bundle/dist/codex-protocol/v2/HookCompletedNotification.js +0 -1
  375. package/bundle/dist/codex-protocol/v2/HookErrorInfo.js +0 -1
  376. package/bundle/dist/codex-protocol/v2/HookEventName.js +0 -1
  377. package/bundle/dist/codex-protocol/v2/HookExecutionMode.js +0 -1
  378. package/bundle/dist/codex-protocol/v2/HookHandlerType.js +0 -1
  379. package/bundle/dist/codex-protocol/v2/HookMetadata.js +0 -1
  380. package/bundle/dist/codex-protocol/v2/HookMigration.js +0 -1
  381. package/bundle/dist/codex-protocol/v2/HookOutputEntry.js +0 -1
  382. package/bundle/dist/codex-protocol/v2/HookOutputEntryKind.js +0 -1
  383. package/bundle/dist/codex-protocol/v2/HookPromptFragment.js +0 -1
  384. package/bundle/dist/codex-protocol/v2/HookRunStatus.js +0 -1
  385. package/bundle/dist/codex-protocol/v2/HookRunSummary.js +0 -1
  386. package/bundle/dist/codex-protocol/v2/HookScope.js +0 -1
  387. package/bundle/dist/codex-protocol/v2/HookSource.js +0 -1
  388. package/bundle/dist/codex-protocol/v2/HookStartedNotification.js +0 -1
  389. package/bundle/dist/codex-protocol/v2/HookTrustStatus.js +0 -1
  390. package/bundle/dist/codex-protocol/v2/HooksListEntry.js +0 -1
  391. package/bundle/dist/codex-protocol/v2/HooksListParams.js +0 -1
  392. package/bundle/dist/codex-protocol/v2/HooksListResponse.js +0 -1
  393. package/bundle/dist/codex-protocol/v2/ItemCompletedNotification.js +0 -1
  394. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.js +0 -1
  395. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.js +0 -1
  396. package/bundle/dist/codex-protocol/v2/ItemStartedNotification.js +0 -1
  397. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusParams.js +0 -1
  398. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusResponse.js +0 -1
  399. package/bundle/dist/codex-protocol/v2/LoginAccountParams.js +0 -1
  400. package/bundle/dist/codex-protocol/v2/LoginAccountResponse.js +0 -1
  401. package/bundle/dist/codex-protocol/v2/LogoutAccountResponse.js +0 -1
  402. package/bundle/dist/codex-protocol/v2/ManagedHooksRequirements.js +0 -1
  403. package/bundle/dist/codex-protocol/v2/MarketplaceAddParams.js +0 -1
  404. package/bundle/dist/codex-protocol/v2/MarketplaceAddResponse.js +0 -1
  405. package/bundle/dist/codex-protocol/v2/MarketplaceInterface.js +0 -1
  406. package/bundle/dist/codex-protocol/v2/MarketplaceLoadErrorInfo.js +0 -1
  407. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveParams.js +0 -1
  408. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveResponse.js +0 -1
  409. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeErrorInfo.js +0 -1
  410. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeParams.js +0 -1
  411. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeResponse.js +0 -1
  412. package/bundle/dist/codex-protocol/v2/McpAuthStatus.js +0 -1
  413. package/bundle/dist/codex-protocol/v2/McpElicitationArrayType.js +0 -1
  414. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanSchema.js +0 -1
  415. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanType.js +0 -1
  416. package/bundle/dist/codex-protocol/v2/McpElicitationConstOption.js +0 -1
  417. package/bundle/dist/codex-protocol/v2/McpElicitationEnumSchema.js +0 -1
  418. package/bundle/dist/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.js +0 -1
  419. package/bundle/dist/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.js +0 -1
  420. package/bundle/dist/codex-protocol/v2/McpElicitationNumberSchema.js +0 -1
  421. package/bundle/dist/codex-protocol/v2/McpElicitationNumberType.js +0 -1
  422. package/bundle/dist/codex-protocol/v2/McpElicitationObjectType.js +0 -1
  423. package/bundle/dist/codex-protocol/v2/McpElicitationPrimitiveSchema.js +0 -1
  424. package/bundle/dist/codex-protocol/v2/McpElicitationSchema.js +0 -1
  425. package/bundle/dist/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.js +0 -1
  426. package/bundle/dist/codex-protocol/v2/McpElicitationStringFormat.js +0 -1
  427. package/bundle/dist/codex-protocol/v2/McpElicitationStringSchema.js +0 -1
  428. package/bundle/dist/codex-protocol/v2/McpElicitationStringType.js +0 -1
  429. package/bundle/dist/codex-protocol/v2/McpElicitationTitledEnumItems.js +0 -1
  430. package/bundle/dist/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.js +0 -1
  431. package/bundle/dist/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.js +0 -1
  432. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledEnumItems.js +0 -1
  433. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.js +0 -1
  434. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.js +0 -1
  435. package/bundle/dist/codex-protocol/v2/McpResourceReadParams.js +0 -1
  436. package/bundle/dist/codex-protocol/v2/McpResourceReadResponse.js +0 -1
  437. package/bundle/dist/codex-protocol/v2/McpServerElicitationAction.js +0 -1
  438. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestParams.js +0 -1
  439. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestResponse.js +0 -1
  440. package/bundle/dist/codex-protocol/v2/McpServerMigration.js +0 -1
  441. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginCompletedNotification.js +0 -1
  442. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginParams.js +0 -1
  443. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginResponse.js +0 -1
  444. package/bundle/dist/codex-protocol/v2/McpServerRefreshResponse.js +0 -1
  445. package/bundle/dist/codex-protocol/v2/McpServerStartupState.js +0 -1
  446. package/bundle/dist/codex-protocol/v2/McpServerStatus.js +0 -1
  447. package/bundle/dist/codex-protocol/v2/McpServerStatusDetail.js +0 -1
  448. package/bundle/dist/codex-protocol/v2/McpServerStatusUpdatedNotification.js +0 -1
  449. package/bundle/dist/codex-protocol/v2/McpServerToolCallParams.js +0 -1
  450. package/bundle/dist/codex-protocol/v2/McpServerToolCallResponse.js +0 -1
  451. package/bundle/dist/codex-protocol/v2/McpToolCallError.js +0 -1
  452. package/bundle/dist/codex-protocol/v2/McpToolCallProgressNotification.js +0 -1
  453. package/bundle/dist/codex-protocol/v2/McpToolCallResult.js +0 -1
  454. package/bundle/dist/codex-protocol/v2/McpToolCallStatus.js +0 -1
  455. package/bundle/dist/codex-protocol/v2/MemoryCitation.js +0 -1
  456. package/bundle/dist/codex-protocol/v2/MemoryCitationEntry.js +0 -1
  457. package/bundle/dist/codex-protocol/v2/MergeStrategy.js +0 -1
  458. package/bundle/dist/codex-protocol/v2/MigrationDetails.js +0 -1
  459. package/bundle/dist/codex-protocol/v2/Model.js +0 -1
  460. package/bundle/dist/codex-protocol/v2/ModelAvailabilityNux.js +0 -1
  461. package/bundle/dist/codex-protocol/v2/ModelListParams.js +0 -1
  462. package/bundle/dist/codex-protocol/v2/ModelListResponse.js +0 -1
  463. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadParams.js +0 -1
  464. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.js +0 -1
  465. package/bundle/dist/codex-protocol/v2/ModelRerouteReason.js +0 -1
  466. package/bundle/dist/codex-protocol/v2/ModelReroutedNotification.js +0 -1
  467. package/bundle/dist/codex-protocol/v2/ModelServiceTier.js +0 -1
  468. package/bundle/dist/codex-protocol/v2/ModelUpgradeInfo.js +0 -1
  469. package/bundle/dist/codex-protocol/v2/ModelVerification.js +0 -1
  470. package/bundle/dist/codex-protocol/v2/ModelVerificationNotification.js +0 -1
  471. package/bundle/dist/codex-protocol/v2/NetworkAccess.js +0 -1
  472. package/bundle/dist/codex-protocol/v2/NetworkApprovalContext.js +0 -1
  473. package/bundle/dist/codex-protocol/v2/NetworkApprovalProtocol.js +0 -1
  474. package/bundle/dist/codex-protocol/v2/NetworkDomainPermission.js +0 -1
  475. package/bundle/dist/codex-protocol/v2/NetworkPolicyAmendment.js +0 -1
  476. package/bundle/dist/codex-protocol/v2/NetworkPolicyRuleAction.js +0 -1
  477. package/bundle/dist/codex-protocol/v2/NetworkRequirements.js +0 -1
  478. package/bundle/dist/codex-protocol/v2/NetworkUnixSocketPermission.js +0 -1
  479. package/bundle/dist/codex-protocol/v2/NonSteerableTurnKind.js +0 -1
  480. package/bundle/dist/codex-protocol/v2/OverriddenMetadata.js +0 -1
  481. package/bundle/dist/codex-protocol/v2/PatchApplyStatus.js +0 -1
  482. package/bundle/dist/codex-protocol/v2/PatchChangeKind.js +0 -1
  483. package/bundle/dist/codex-protocol/v2/PermissionGrantScope.js +0 -1
  484. package/bundle/dist/codex-protocol/v2/PermissionProfile.js +0 -1
  485. package/bundle/dist/codex-protocol/v2/PermissionProfileFileSystemPermissions.js +0 -1
  486. package/bundle/dist/codex-protocol/v2/PermissionProfileModificationParams.js +0 -1
  487. package/bundle/dist/codex-protocol/v2/PermissionProfileNetworkPermissions.js +0 -1
  488. package/bundle/dist/codex-protocol/v2/PermissionProfileSelectionParams.js +0 -1
  489. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalParams.js +0 -1
  490. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalResponse.js +0 -1
  491. package/bundle/dist/codex-protocol/v2/PlanDeltaNotification.js +0 -1
  492. package/bundle/dist/codex-protocol/v2/PluginAuthPolicy.js +0 -1
  493. package/bundle/dist/codex-protocol/v2/PluginAvailability.js +0 -1
  494. package/bundle/dist/codex-protocol/v2/PluginDetail.js +0 -1
  495. package/bundle/dist/codex-protocol/v2/PluginHookSummary.js +0 -1
  496. package/bundle/dist/codex-protocol/v2/PluginInstallParams.js +0 -1
  497. package/bundle/dist/codex-protocol/v2/PluginInstallPolicy.js +0 -1
  498. package/bundle/dist/codex-protocol/v2/PluginInstallResponse.js +0 -1
  499. package/bundle/dist/codex-protocol/v2/PluginInterface.js +0 -1
  500. package/bundle/dist/codex-protocol/v2/PluginListMarketplaceKind.js +0 -1
  501. package/bundle/dist/codex-protocol/v2/PluginListParams.js +0 -1
  502. package/bundle/dist/codex-protocol/v2/PluginListResponse.js +0 -1
  503. package/bundle/dist/codex-protocol/v2/PluginMarketplaceEntry.js +0 -1
  504. package/bundle/dist/codex-protocol/v2/PluginReadParams.js +0 -1
  505. package/bundle/dist/codex-protocol/v2/PluginReadResponse.js +0 -1
  506. package/bundle/dist/codex-protocol/v2/PluginShareContext.js +0 -1
  507. package/bundle/dist/codex-protocol/v2/PluginShareDeleteParams.js +0 -1
  508. package/bundle/dist/codex-protocol/v2/PluginShareDeleteResponse.js +0 -1
  509. package/bundle/dist/codex-protocol/v2/PluginShareDiscoverability.js +0 -1
  510. package/bundle/dist/codex-protocol/v2/PluginShareListItem.js +0 -1
  511. package/bundle/dist/codex-protocol/v2/PluginShareListParams.js +0 -1
  512. package/bundle/dist/codex-protocol/v2/PluginShareListResponse.js +0 -1
  513. package/bundle/dist/codex-protocol/v2/PluginSharePrincipal.js +0 -1
  514. package/bundle/dist/codex-protocol/v2/PluginSharePrincipalType.js +0 -1
  515. package/bundle/dist/codex-protocol/v2/PluginShareSaveParams.js +0 -1
  516. package/bundle/dist/codex-protocol/v2/PluginShareSaveResponse.js +0 -1
  517. package/bundle/dist/codex-protocol/v2/PluginShareTarget.js +0 -1
  518. package/bundle/dist/codex-protocol/v2/PluginShareUpdateDiscoverability.js +0 -1
  519. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsParams.js +0 -1
  520. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsResponse.js +0 -1
  521. package/bundle/dist/codex-protocol/v2/PluginSkillReadParams.js +0 -1
  522. package/bundle/dist/codex-protocol/v2/PluginSkillReadResponse.js +0 -1
  523. package/bundle/dist/codex-protocol/v2/PluginSource.js +0 -1
  524. package/bundle/dist/codex-protocol/v2/PluginSummary.js +0 -1
  525. package/bundle/dist/codex-protocol/v2/PluginUninstallParams.js +0 -1
  526. package/bundle/dist/codex-protocol/v2/PluginUninstallResponse.js +0 -1
  527. package/bundle/dist/codex-protocol/v2/PluginsMigration.js +0 -1
  528. package/bundle/dist/codex-protocol/v2/ProcessExitedNotification.js +0 -1
  529. package/bundle/dist/codex-protocol/v2/ProcessOutputDeltaNotification.js +0 -1
  530. package/bundle/dist/codex-protocol/v2/ProcessOutputStream.js +0 -1
  531. package/bundle/dist/codex-protocol/v2/ProcessTerminalSize.js +0 -1
  532. package/bundle/dist/codex-protocol/v2/ProfileV2.js +0 -1
  533. package/bundle/dist/codex-protocol/v2/RateLimitReachedType.js +0 -1
  534. package/bundle/dist/codex-protocol/v2/RateLimitSnapshot.js +0 -1
  535. package/bundle/dist/codex-protocol/v2/RateLimitWindow.js +0 -1
  536. package/bundle/dist/codex-protocol/v2/RawResponseItemCompletedNotification.js +0 -1
  537. package/bundle/dist/codex-protocol/v2/ReasoningEffortOption.js +0 -1
  538. package/bundle/dist/codex-protocol/v2/ReasoningSummaryPartAddedNotification.js +0 -1
  539. package/bundle/dist/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.js +0 -1
  540. package/bundle/dist/codex-protocol/v2/ReasoningTextDeltaNotification.js +0 -1
  541. package/bundle/dist/codex-protocol/v2/RemoteControlConnectionStatus.js +0 -1
  542. package/bundle/dist/codex-protocol/v2/RemoteControlStatusChangedNotification.js +0 -1
  543. package/bundle/dist/codex-protocol/v2/RequestPermissionProfile.js +0 -1
  544. package/bundle/dist/codex-protocol/v2/ResidencyRequirement.js +0 -1
  545. package/bundle/dist/codex-protocol/v2/ReviewDelivery.js +0 -1
  546. package/bundle/dist/codex-protocol/v2/ReviewStartParams.js +0 -1
  547. package/bundle/dist/codex-protocol/v2/ReviewStartResponse.js +0 -1
  548. package/bundle/dist/codex-protocol/v2/ReviewTarget.js +0 -1
  549. package/bundle/dist/codex-protocol/v2/SandboxMode.js +0 -1
  550. package/bundle/dist/codex-protocol/v2/SandboxPolicy.js +0 -1
  551. package/bundle/dist/codex-protocol/v2/SandboxWorkspaceWrite.js +0 -1
  552. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailParams.js +0 -1
  553. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.js +0 -1
  554. package/bundle/dist/codex-protocol/v2/ServerRequestResolvedNotification.js +0 -1
  555. package/bundle/dist/codex-protocol/v2/SessionMigration.js +0 -1
  556. package/bundle/dist/codex-protocol/v2/SessionSource.js +0 -1
  557. package/bundle/dist/codex-protocol/v2/SkillDependencies.js +0 -1
  558. package/bundle/dist/codex-protocol/v2/SkillErrorInfo.js +0 -1
  559. package/bundle/dist/codex-protocol/v2/SkillInterface.js +0 -1
  560. package/bundle/dist/codex-protocol/v2/SkillMetadata.js +0 -1
  561. package/bundle/dist/codex-protocol/v2/SkillScope.js +0 -1
  562. package/bundle/dist/codex-protocol/v2/SkillSummary.js +0 -1
  563. package/bundle/dist/codex-protocol/v2/SkillToolDependency.js +0 -1
  564. package/bundle/dist/codex-protocol/v2/SkillsChangedNotification.js +0 -1
  565. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteParams.js +0 -1
  566. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteResponse.js +0 -1
  567. package/bundle/dist/codex-protocol/v2/SkillsListEntry.js +0 -1
  568. package/bundle/dist/codex-protocol/v2/SkillsListParams.js +0 -1
  569. package/bundle/dist/codex-protocol/v2/SkillsListResponse.js +0 -1
  570. package/bundle/dist/codex-protocol/v2/SortDirection.js +0 -1
  571. package/bundle/dist/codex-protocol/v2/SubagentMigration.js +0 -1
  572. package/bundle/dist/codex-protocol/v2/TerminalInteractionNotification.js +0 -1
  573. package/bundle/dist/codex-protocol/v2/TextElement.js +0 -1
  574. package/bundle/dist/codex-protocol/v2/TextPosition.js +0 -1
  575. package/bundle/dist/codex-protocol/v2/TextRange.js +0 -1
  576. package/bundle/dist/codex-protocol/v2/Thread.js +0 -1
  577. package/bundle/dist/codex-protocol/v2/ThreadActiveFlag.js +0 -1
  578. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.js +0 -1
  579. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.js +0 -1
  580. package/bundle/dist/codex-protocol/v2/ThreadArchiveParams.js +0 -1
  581. package/bundle/dist/codex-protocol/v2/ThreadArchiveResponse.js +0 -1
  582. package/bundle/dist/codex-protocol/v2/ThreadArchivedNotification.js +0 -1
  583. package/bundle/dist/codex-protocol/v2/ThreadClosedNotification.js +0 -1
  584. package/bundle/dist/codex-protocol/v2/ThreadCompactStartParams.js +0 -1
  585. package/bundle/dist/codex-protocol/v2/ThreadCompactStartResponse.js +0 -1
  586. package/bundle/dist/codex-protocol/v2/ThreadForkParams.js +0 -1
  587. package/bundle/dist/codex-protocol/v2/ThreadForkResponse.js +0 -1
  588. package/bundle/dist/codex-protocol/v2/ThreadGoal.js +0 -1
  589. package/bundle/dist/codex-protocol/v2/ThreadGoalClearedNotification.js +0 -1
  590. package/bundle/dist/codex-protocol/v2/ThreadGoalStatus.js +0 -1
  591. package/bundle/dist/codex-protocol/v2/ThreadGoalUpdatedNotification.js +0 -1
  592. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsParams.js +0 -1
  593. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsResponse.js +0 -1
  594. package/bundle/dist/codex-protocol/v2/ThreadItem.js +0 -1
  595. package/bundle/dist/codex-protocol/v2/ThreadListParams.js +0 -1
  596. package/bundle/dist/codex-protocol/v2/ThreadListResponse.js +0 -1
  597. package/bundle/dist/codex-protocol/v2/ThreadLoadedListParams.js +0 -1
  598. package/bundle/dist/codex-protocol/v2/ThreadLoadedListResponse.js +0 -1
  599. package/bundle/dist/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.js +0 -1
  600. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateParams.js +0 -1
  601. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateResponse.js +0 -1
  602. package/bundle/dist/codex-protocol/v2/ThreadNameUpdatedNotification.js +0 -1
  603. package/bundle/dist/codex-protocol/v2/ThreadReadParams.js +0 -1
  604. package/bundle/dist/codex-protocol/v2/ThreadReadResponse.js +0 -1
  605. package/bundle/dist/codex-protocol/v2/ThreadRealtimeAudioChunk.js +0 -1
  606. package/bundle/dist/codex-protocol/v2/ThreadRealtimeClosedNotification.js +0 -1
  607. package/bundle/dist/codex-protocol/v2/ThreadRealtimeErrorNotification.js +0 -1
  608. package/bundle/dist/codex-protocol/v2/ThreadRealtimeItemAddedNotification.js +0 -1
  609. package/bundle/dist/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.js +0 -1
  610. package/bundle/dist/codex-protocol/v2/ThreadRealtimeSdpNotification.js +0 -1
  611. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartTransport.js +0 -1
  612. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartedNotification.js +0 -1
  613. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.js +0 -1
  614. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.js +0 -1
  615. package/bundle/dist/codex-protocol/v2/ThreadResumeParams.js +0 -1
  616. package/bundle/dist/codex-protocol/v2/ThreadResumeResponse.js +0 -1
  617. package/bundle/dist/codex-protocol/v2/ThreadRollbackParams.js +0 -1
  618. package/bundle/dist/codex-protocol/v2/ThreadRollbackResponse.js +0 -1
  619. package/bundle/dist/codex-protocol/v2/ThreadSetNameParams.js +0 -1
  620. package/bundle/dist/codex-protocol/v2/ThreadSetNameResponse.js +0 -1
  621. package/bundle/dist/codex-protocol/v2/ThreadShellCommandParams.js +0 -1
  622. package/bundle/dist/codex-protocol/v2/ThreadShellCommandResponse.js +0 -1
  623. package/bundle/dist/codex-protocol/v2/ThreadSortKey.js +0 -1
  624. package/bundle/dist/codex-protocol/v2/ThreadSource.js +0 -1
  625. package/bundle/dist/codex-protocol/v2/ThreadSourceKind.js +0 -1
  626. package/bundle/dist/codex-protocol/v2/ThreadStartParams.js +0 -1
  627. package/bundle/dist/codex-protocol/v2/ThreadStartResponse.js +0 -1
  628. package/bundle/dist/codex-protocol/v2/ThreadStartSource.js +0 -1
  629. package/bundle/dist/codex-protocol/v2/ThreadStartedNotification.js +0 -1
  630. package/bundle/dist/codex-protocol/v2/ThreadStatus.js +0 -1
  631. package/bundle/dist/codex-protocol/v2/ThreadStatusChangedNotification.js +0 -1
  632. package/bundle/dist/codex-protocol/v2/ThreadTokenUsage.js +0 -1
  633. package/bundle/dist/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.js +0 -1
  634. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveParams.js +0 -1
  635. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveResponse.js +0 -1
  636. package/bundle/dist/codex-protocol/v2/ThreadUnarchivedNotification.js +0 -1
  637. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeParams.js +0 -1
  638. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeResponse.js +0 -1
  639. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeStatus.js +0 -1
  640. package/bundle/dist/codex-protocol/v2/TokenUsageBreakdown.js +0 -1
  641. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputAnswer.js +0 -1
  642. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputOption.js +0 -1
  643. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputParams.js +0 -1
  644. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputQuestion.js +0 -1
  645. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputResponse.js +0 -1
  646. package/bundle/dist/codex-protocol/v2/ToolsV2.js +0 -1
  647. package/bundle/dist/codex-protocol/v2/Turn.js +0 -1
  648. package/bundle/dist/codex-protocol/v2/TurnCompletedNotification.js +0 -1
  649. package/bundle/dist/codex-protocol/v2/TurnDiffUpdatedNotification.js +0 -1
  650. package/bundle/dist/codex-protocol/v2/TurnEnvironmentParams.js +0 -1
  651. package/bundle/dist/codex-protocol/v2/TurnError.js +0 -1
  652. package/bundle/dist/codex-protocol/v2/TurnInterruptParams.js +0 -1
  653. package/bundle/dist/codex-protocol/v2/TurnInterruptResponse.js +0 -1
  654. package/bundle/dist/codex-protocol/v2/TurnItemsView.js +0 -1
  655. package/bundle/dist/codex-protocol/v2/TurnPlanStep.js +0 -1
  656. package/bundle/dist/codex-protocol/v2/TurnPlanStepStatus.js +0 -1
  657. package/bundle/dist/codex-protocol/v2/TurnPlanUpdatedNotification.js +0 -1
  658. package/bundle/dist/codex-protocol/v2/TurnStartParams.js +0 -1
  659. package/bundle/dist/codex-protocol/v2/TurnStartResponse.js +0 -1
  660. package/bundle/dist/codex-protocol/v2/TurnStartedNotification.js +0 -1
  661. package/bundle/dist/codex-protocol/v2/TurnStatus.js +0 -1
  662. package/bundle/dist/codex-protocol/v2/TurnSteerParams.js +0 -1
  663. package/bundle/dist/codex-protocol/v2/TurnSteerResponse.js +0 -1
  664. package/bundle/dist/codex-protocol/v2/UserInput.js +0 -1
  665. package/bundle/dist/codex-protocol/v2/WarningNotification.js +0 -1
  666. package/bundle/dist/codex-protocol/v2/WebSearchAction.js +0 -1
  667. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadiness.js +0 -1
  668. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadinessResponse.js +0 -1
  669. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.js +0 -1
  670. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupMode.js +0 -1
  671. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartParams.js +0 -1
  672. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartResponse.js +0 -1
  673. package/bundle/dist/codex-protocol/v2/WindowsWorldWritableWarningNotification.js +0 -1
  674. package/bundle/dist/codex-protocol/v2/WriteStatus.js +0 -1
  675. package/bundle/dist/codex-protocol/v2/index.js +0 -7
  676. package/bundle/dist/utils/providers/openai/codex-rpc.js +0 -153
  677. package/bundle/dist/utils/providers/openai/codex-worker.js +0 -642
  678. package/bundle/dist/utils/providers/openai/openai-worker-pool-config.js +0 -51
  679. package/bundle/src/codex-protocol/AbsolutePathBuf.ts +0 -14
  680. package/bundle/src/codex-protocol/AgentPath.ts +0 -5
  681. package/bundle/src/codex-protocol/ApplyPatchApprovalParams.ts +0 -24
  682. package/bundle/src/codex-protocol/ApplyPatchApprovalResponse.ts +0 -6
  683. package/bundle/src/codex-protocol/AuthMode.ts +0 -8
  684. package/bundle/src/codex-protocol/ClientInfo.ts +0 -5
  685. package/bundle/src/codex-protocol/ClientNotification.ts +0 -5
  686. package/bundle/src/codex-protocol/ClientRequest.ts +0 -176
  687. package/bundle/src/codex-protocol/CollaborationMode.ts +0 -10
  688. package/bundle/src/codex-protocol/ContentItem.ts +0 -9
  689. package/bundle/src/codex-protocol/ConversationGitInfo.ts +0 -9
  690. package/bundle/src/codex-protocol/ConversationSummary.ts +0 -19
  691. package/bundle/src/codex-protocol/ExecCommandApprovalParams.ts +0 -22
  692. package/bundle/src/codex-protocol/ExecCommandApprovalResponse.ts +0 -6
  693. package/bundle/src/codex-protocol/ExecPolicyAmendment.ts +0 -12
  694. package/bundle/src/codex-protocol/FileChange.ts +0 -8
  695. package/bundle/src/codex-protocol/ForcedLoginMethod.ts +0 -5
  696. package/bundle/src/codex-protocol/FunctionCallOutputBody.ts +0 -6
  697. package/bundle/src/codex-protocol/FunctionCallOutputContentItem.ts +0 -12
  698. package/bundle/src/codex-protocol/FuzzyFileSearchMatchType.ts +0 -5
  699. package/bundle/src/codex-protocol/FuzzyFileSearchParams.ts +0 -9
  700. package/bundle/src/codex-protocol/FuzzyFileSearchResponse.ts +0 -6
  701. package/bundle/src/codex-protocol/FuzzyFileSearchResult.ts +0 -16
  702. package/bundle/src/codex-protocol/FuzzyFileSearchSessionCompletedNotification.ts +0 -5
  703. package/bundle/src/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.ts +0 -10
  704. package/bundle/src/codex-protocol/GetAuthStatusParams.ts +0 -5
  705. package/bundle/src/codex-protocol/GetAuthStatusResponse.ts +0 -10
  706. package/bundle/src/codex-protocol/GetConversationSummaryParams.ts +0 -6
  707. package/bundle/src/codex-protocol/GetConversationSummaryResponse.ts +0 -6
  708. package/bundle/src/codex-protocol/GitDiffToRemoteParams.ts +0 -5
  709. package/bundle/src/codex-protocol/GitDiffToRemoteResponse.ts +0 -6
  710. package/bundle/src/codex-protocol/GitSha.ts +0 -5
  711. package/bundle/src/codex-protocol/ImageDetail.ts +0 -5
  712. package/bundle/src/codex-protocol/InitializeCapabilities.ts +0 -18
  713. package/bundle/src/codex-protocol/InitializeParams.ts +0 -10
  714. package/bundle/src/codex-protocol/InitializeResponse.ts +0 -22
  715. package/bundle/src/codex-protocol/InputModality.ts +0 -8
  716. package/bundle/src/codex-protocol/InternalSessionSource.ts +0 -5
  717. package/bundle/src/codex-protocol/LocalShellAction.ts +0 -6
  718. package/bundle/src/codex-protocol/LocalShellExecAction.ts +0 -11
  719. package/bundle/src/codex-protocol/LocalShellStatus.ts +0 -5
  720. package/bundle/src/codex-protocol/MessagePhase.ts +0 -11
  721. package/bundle/src/codex-protocol/ModeKind.ts +0 -8
  722. package/bundle/src/codex-protocol/NetworkPolicyAmendment.ts +0 -6
  723. package/bundle/src/codex-protocol/NetworkPolicyRuleAction.ts +0 -5
  724. package/bundle/src/codex-protocol/ParsedCommand.ts +0 -20
  725. package/bundle/src/codex-protocol/Personality.ts +0 -5
  726. package/bundle/src/codex-protocol/PlanType.ts +0 -17
  727. package/bundle/src/codex-protocol/RealtimeConversationVersion.ts +0 -5
  728. package/bundle/src/codex-protocol/RealtimeOutputModality.ts +0 -5
  729. package/bundle/src/codex-protocol/RealtimeVoice.ts +0 -24
  730. package/bundle/src/codex-protocol/RealtimeVoicesList.ts +0 -11
  731. package/bundle/src/codex-protocol/ReasoningEffort.ts +0 -8
  732. package/bundle/src/codex-protocol/ReasoningItemContent.ts +0 -7
  733. package/bundle/src/codex-protocol/ReasoningItemReasoningSummary.ts +0 -5
  734. package/bundle/src/codex-protocol/ReasoningSummary.ts +0 -10
  735. package/bundle/src/codex-protocol/RequestId.ts +0 -5
  736. package/bundle/src/codex-protocol/Resource.ts +0 -19
  737. package/bundle/src/codex-protocol/ResourceContent.ts +0 -27
  738. package/bundle/src/codex-protocol/ResourceTemplate.ts +0 -16
  739. package/bundle/src/codex-protocol/ResponseItem.ts +0 -63
  740. package/bundle/src/codex-protocol/ReviewDecision.ts +0 -17
  741. package/bundle/src/codex-protocol/ServerNotification.ts +0 -154
  742. package/bundle/src/codex-protocol/ServerRequest.ts +0 -47
  743. package/bundle/src/codex-protocol/SessionSource.ts +0 -15
  744. package/bundle/src/codex-protocol/Settings.ts +0 -13
  745. package/bundle/src/codex-protocol/SubAgentSource.ts +0 -20
  746. package/bundle/src/codex-protocol/ThreadId.ts +0 -5
  747. package/bundle/src/codex-protocol/ThreadMemoryMode.ts +0 -5
  748. package/bundle/src/codex-protocol/Tool.ts +0 -18
  749. package/bundle/src/codex-protocol/Verbosity.ts +0 -9
  750. package/bundle/src/codex-protocol/WebSearchAction.ts +0 -9
  751. package/bundle/src/codex-protocol/WebSearchContextSize.ts +0 -5
  752. package/bundle/src/codex-protocol/WebSearchLocation.ts +0 -10
  753. package/bundle/src/codex-protocol/WebSearchMode.ts +0 -5
  754. package/bundle/src/codex-protocol/WebSearchToolConfig.ts +0 -11
  755. package/bundle/src/codex-protocol/index.ts +0 -79
  756. package/bundle/src/codex-protocol/serde_json/JsonValue.ts +0 -11
  757. package/bundle/src/codex-protocol/v2/Account.ts +0 -9
  758. package/bundle/src/codex-protocol/v2/AccountLoginCompletedNotification.ts +0 -9
  759. package/bundle/src/codex-protocol/v2/AccountRateLimitsUpdatedNotification.ts +0 -6
  760. package/bundle/src/codex-protocol/v2/AccountUpdatedNotification.ts +0 -7
  761. package/bundle/src/codex-protocol/v2/ActivePermissionProfile.ts +0 -22
  762. package/bundle/src/codex-protocol/v2/ActivePermissionProfileModification.ts +0 -9
  763. package/bundle/src/codex-protocol/v2/AddCreditsNudgeCreditType.ts +0 -5
  764. package/bundle/src/codex-protocol/v2/AddCreditsNudgeEmailStatus.ts +0 -5
  765. package/bundle/src/codex-protocol/v2/AdditionalFileSystemPermissions.ts +0 -18
  766. package/bundle/src/codex-protocol/v2/AdditionalNetworkPermissions.ts +0 -5
  767. package/bundle/src/codex-protocol/v2/AdditionalPermissionProfile.ts +0 -13
  768. package/bundle/src/codex-protocol/v2/AgentMessageDeltaNotification.ts +0 -10
  769. package/bundle/src/codex-protocol/v2/AnalyticsConfig.ts +0 -14
  770. package/bundle/src/codex-protocol/v2/AppBranding.ts +0 -15
  771. package/bundle/src/codex-protocol/v2/AppInfo.ts +0 -32
  772. package/bundle/src/codex-protocol/v2/AppListUpdatedNotification.ts +0 -9
  773. package/bundle/src/codex-protocol/v2/AppMetadata.ts +0 -20
  774. package/bundle/src/codex-protocol/v2/AppReview.ts +0 -5
  775. package/bundle/src/codex-protocol/v2/AppScreenshot.ts +0 -5
  776. package/bundle/src/codex-protocol/v2/AppSummary.ts +0 -14
  777. package/bundle/src/codex-protocol/v2/AppToolApproval.ts +0 -5
  778. package/bundle/src/codex-protocol/v2/AppToolsConfig.ts +0 -8
  779. package/bundle/src/codex-protocol/v2/ApprovalsReviewer.ts +0 -12
  780. package/bundle/src/codex-protocol/v2/AppsConfig.ts +0 -17
  781. package/bundle/src/codex-protocol/v2/AppsDefaultConfig.ts +0 -9
  782. package/bundle/src/codex-protocol/v2/AppsListParams.ts +0 -25
  783. package/bundle/src/codex-protocol/v2/AppsListResponse.ts +0 -16
  784. package/bundle/src/codex-protocol/v2/AskForApproval.ts +0 -18
  785. package/bundle/src/codex-protocol/v2/AutoReviewDecisionSource.ts +0 -8
  786. package/bundle/src/codex-protocol/v2/ByteRange.ts +0 -5
  787. package/bundle/src/codex-protocol/v2/CancelLoginAccountParams.ts +0 -5
  788. package/bundle/src/codex-protocol/v2/CancelLoginAccountResponse.ts +0 -6
  789. package/bundle/src/codex-protocol/v2/CancelLoginAccountStatus.ts +0 -5
  790. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshParams.ts +0 -18
  791. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshReason.ts +0 -5
  792. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.ts +0 -9
  793. package/bundle/src/codex-protocol/v2/CodexErrorInfo.ts +0 -27
  794. package/bundle/src/codex-protocol/v2/CollabAgentState.ts +0 -6
  795. package/bundle/src/codex-protocol/v2/CollabAgentStatus.ts +0 -12
  796. package/bundle/src/codex-protocol/v2/CollabAgentTool.ts +0 -5
  797. package/bundle/src/codex-protocol/v2/CollabAgentToolCallStatus.ts +0 -5
  798. package/bundle/src/codex-protocol/v2/CollaborationModeMask.ts +0 -15
  799. package/bundle/src/codex-protocol/v2/CommandAction.ts +0 -10
  800. package/bundle/src/codex-protocol/v2/CommandExecOutputDeltaNotification.ts +0 -31
  801. package/bundle/src/codex-protocol/v2/CommandExecOutputStream.ts +0 -8
  802. package/bundle/src/codex-protocol/v2/CommandExecParams.ts +0 -87
  803. package/bundle/src/codex-protocol/v2/CommandExecResizeParams.ts +0 -19
  804. package/bundle/src/codex-protocol/v2/CommandExecResizeResponse.ts +0 -8
  805. package/bundle/src/codex-protocol/v2/CommandExecResponse.ts +0 -25
  806. package/bundle/src/codex-protocol/v2/CommandExecTerminalSize.ts +0 -17
  807. package/bundle/src/codex-protocol/v2/CommandExecTerminateParams.ts +0 -14
  808. package/bundle/src/codex-protocol/v2/CommandExecTerminateResponse.ts +0 -8
  809. package/bundle/src/codex-protocol/v2/CommandExecWriteParams.ts +0 -23
  810. package/bundle/src/codex-protocol/v2/CommandExecWriteResponse.ts +0 -8
  811. package/bundle/src/codex-protocol/v2/CommandExecutionApprovalDecision.ts +0 -13
  812. package/bundle/src/codex-protocol/v2/CommandExecutionOutputDeltaNotification.ts +0 -10
  813. package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalParams.ts +0 -47
  814. package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalResponse.ts +0 -8
  815. package/bundle/src/codex-protocol/v2/CommandExecutionSource.ts +0 -9
  816. package/bundle/src/codex-protocol/v2/CommandExecutionStatus.ts +0 -5
  817. package/bundle/src/codex-protocol/v2/CommandMigration.ts +0 -5
  818. package/bundle/src/codex-protocol/v2/Config.ts +0 -53
  819. package/bundle/src/codex-protocol/v2/ConfigBatchWriteParams.ts +0 -17
  820. package/bundle/src/codex-protocol/v2/ConfigEdit.ts +0 -7
  821. package/bundle/src/codex-protocol/v2/ConfigLayer.ts +0 -12
  822. package/bundle/src/codex-protocol/v2/ConfigLayerMetadata.ts +0 -6
  823. package/bundle/src/codex-protocol/v2/ConfigLayerSource.ts +0 -27
  824. package/bundle/src/codex-protocol/v2/ConfigReadParams.ts +0 -13
  825. package/bundle/src/codex-protocol/v2/ConfigReadResponse.ts +0 -12
  826. package/bundle/src/codex-protocol/v2/ConfigRequirements.ts +0 -15
  827. package/bundle/src/codex-protocol/v2/ConfigRequirementsReadResponse.ts +0 -11
  828. package/bundle/src/codex-protocol/v2/ConfigValueWriteParams.ts +0 -16
  829. package/bundle/src/codex-protocol/v2/ConfigWarningNotification.ts +0 -23
  830. package/bundle/src/codex-protocol/v2/ConfigWriteResponse.ts +0 -16
  831. package/bundle/src/codex-protocol/v2/ConfiguredHookHandler.ts +0 -14
  832. package/bundle/src/codex-protocol/v2/ConfiguredHookMatcherGroup.ts +0 -9
  833. package/bundle/src/codex-protocol/v2/ContextCompactedNotification.ts +0 -8
  834. package/bundle/src/codex-protocol/v2/CreditsSnapshot.ts +0 -5
  835. package/bundle/src/codex-protocol/v2/DeprecationNoticeNotification.ts +0 -14
  836. package/bundle/src/codex-protocol/v2/DynamicToolCallOutputContentItem.ts +0 -7
  837. package/bundle/src/codex-protocol/v2/DynamicToolCallParams.ts +0 -13
  838. package/bundle/src/codex-protocol/v2/DynamicToolCallResponse.ts +0 -9
  839. package/bundle/src/codex-protocol/v2/DynamicToolCallStatus.ts +0 -5
  840. package/bundle/src/codex-protocol/v2/DynamicToolSpec.ts +0 -12
  841. package/bundle/src/codex-protocol/v2/ErrorNotification.ts +0 -11
  842. package/bundle/src/codex-protocol/v2/ExecPolicyAmendment.ts +0 -5
  843. package/bundle/src/codex-protocol/v2/ExperimentalFeature.ts +0 -38
  844. package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.ts +0 -13
  845. package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.ts +0 -10
  846. package/bundle/src/codex-protocol/v2/ExperimentalFeatureListParams.ts +0 -14
  847. package/bundle/src/codex-protocol/v2/ExperimentalFeatureListResponse.ts +0 -13
  848. package/bundle/src/codex-protocol/v2/ExperimentalFeatureStage.ts +0 -10
  849. package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectParams.ts +0 -14
  850. package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectResponse.ts +0 -6
  851. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.ts +0 -5
  852. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportParams.ts +0 -8
  853. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportResponse.ts +0 -5
  854. package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItem.ts +0 -15
  855. package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItemType.ts +0 -14
  856. package/bundle/src/codex-protocol/v2/FeedbackUploadParams.ts +0 -12
  857. package/bundle/src/codex-protocol/v2/FeedbackUploadResponse.ts +0 -5
  858. package/bundle/src/codex-protocol/v2/FileChangeApprovalDecision.ts +0 -5
  859. package/bundle/src/codex-protocol/v2/FileChangeOutputDeltaNotification.ts +0 -15
  860. package/bundle/src/codex-protocol/v2/FileChangePatchUpdatedNotification.ts +0 -11
  861. package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalParams.ts +0 -22
  862. package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalResponse.ts +0 -6
  863. package/bundle/src/codex-protocol/v2/FileSystemAccessMode.ts +0 -5
  864. package/bundle/src/codex-protocol/v2/FileSystemPath.ts +0 -10
  865. package/bundle/src/codex-protocol/v2/FileSystemSandboxEntry.ts +0 -7
  866. package/bundle/src/codex-protocol/v2/FileSystemSpecialPath.ts +0 -11
  867. package/bundle/src/codex-protocol/v2/FileUpdateChange.ts +0 -6
  868. package/bundle/src/codex-protocol/v2/FsChangedNotification.ts +0 -18
  869. package/bundle/src/codex-protocol/v2/FsCopyParams.ts +0 -22
  870. package/bundle/src/codex-protocol/v2/FsCopyResponse.ts +0 -8
  871. package/bundle/src/codex-protocol/v2/FsCreateDirectoryParams.ts +0 -18
  872. package/bundle/src/codex-protocol/v2/FsCreateDirectoryResponse.ts +0 -8
  873. package/bundle/src/codex-protocol/v2/FsGetMetadataParams.ts +0 -14
  874. package/bundle/src/codex-protocol/v2/FsGetMetadataResponse.ts +0 -29
  875. package/bundle/src/codex-protocol/v2/FsReadDirectoryEntry.ts +0 -21
  876. package/bundle/src/codex-protocol/v2/FsReadDirectoryParams.ts +0 -14
  877. package/bundle/src/codex-protocol/v2/FsReadDirectoryResponse.ts +0 -14
  878. package/bundle/src/codex-protocol/v2/FsReadFileParams.ts +0 -14
  879. package/bundle/src/codex-protocol/v2/FsReadFileResponse.ts +0 -13
  880. package/bundle/src/codex-protocol/v2/FsRemoveParams.ts +0 -22
  881. package/bundle/src/codex-protocol/v2/FsRemoveResponse.ts +0 -8
  882. package/bundle/src/codex-protocol/v2/FsUnwatchParams.ts +0 -13
  883. package/bundle/src/codex-protocol/v2/FsUnwatchResponse.ts +0 -8
  884. package/bundle/src/codex-protocol/v2/FsWatchParams.ts +0 -18
  885. package/bundle/src/codex-protocol/v2/FsWatchResponse.ts +0 -14
  886. package/bundle/src/codex-protocol/v2/FsWriteFileParams.ts +0 -18
  887. package/bundle/src/codex-protocol/v2/FsWriteFileResponse.ts +0 -8
  888. package/bundle/src/codex-protocol/v2/GetAccountParams.ts +0 -14
  889. package/bundle/src/codex-protocol/v2/GetAccountRateLimitsResponse.ts +0 -15
  890. package/bundle/src/codex-protocol/v2/GetAccountResponse.ts +0 -6
  891. package/bundle/src/codex-protocol/v2/GitInfo.ts +0 -5
  892. package/bundle/src/codex-protocol/v2/GrantedPermissionProfile.ts +0 -10
  893. package/bundle/src/codex-protocol/v2/GuardianApprovalReview.ts +0 -18
  894. package/bundle/src/codex-protocol/v2/GuardianApprovalReviewAction.ts +0 -34
  895. package/bundle/src/codex-protocol/v2/GuardianApprovalReviewStatus.ts +0 -13
  896. package/bundle/src/codex-protocol/v2/GuardianCommandSource.ts +0 -5
  897. package/bundle/src/codex-protocol/v2/GuardianRiskLevel.ts +0 -8
  898. package/bundle/src/codex-protocol/v2/GuardianUserAuthorization.ts +0 -8
  899. package/bundle/src/codex-protocol/v2/GuardianWarningNotification.ts +0 -14
  900. package/bundle/src/codex-protocol/v2/HookCompletedNotification.ts +0 -10
  901. package/bundle/src/codex-protocol/v2/HookErrorInfo.ts +0 -5
  902. package/bundle/src/codex-protocol/v2/HookEventName.ts +0 -13
  903. package/bundle/src/codex-protocol/v2/HookExecutionMode.ts +0 -5
  904. package/bundle/src/codex-protocol/v2/HookHandlerType.ts +0 -5
  905. package/bundle/src/codex-protocol/v2/HookMetadata.ts +0 -26
  906. package/bundle/src/codex-protocol/v2/HookMigration.ts +0 -5
  907. package/bundle/src/codex-protocol/v2/HookOutputEntry.ts +0 -6
  908. package/bundle/src/codex-protocol/v2/HookOutputEntryKind.ts +0 -5
  909. package/bundle/src/codex-protocol/v2/HookPromptFragment.ts +0 -5
  910. package/bundle/src/codex-protocol/v2/HookRunStatus.ts +0 -5
  911. package/bundle/src/codex-protocol/v2/HookRunSummary.ts +0 -28
  912. package/bundle/src/codex-protocol/v2/HookScope.ts +0 -5
  913. package/bundle/src/codex-protocol/v2/HookSource.ts +0 -15
  914. package/bundle/src/codex-protocol/v2/HookStartedNotification.ts +0 -10
  915. package/bundle/src/codex-protocol/v2/HookTrustStatus.ts +0 -5
  916. package/bundle/src/codex-protocol/v2/HooksListEntry.ts +0 -12
  917. package/bundle/src/codex-protocol/v2/HooksListParams.ts +0 -10
  918. package/bundle/src/codex-protocol/v2/HooksListResponse.ts +0 -6
  919. package/bundle/src/codex-protocol/v2/ItemCompletedNotification.ts +0 -14
  920. package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.ts +0 -44
  921. package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.ts +0 -38
  922. package/bundle/src/codex-protocol/v2/ItemStartedNotification.ts +0 -14
  923. package/bundle/src/codex-protocol/v2/ListMcpServerStatusParams.ts +0 -20
  924. package/bundle/src/codex-protocol/v2/ListMcpServerStatusResponse.ts +0 -13
  925. package/bundle/src/codex-protocol/v2/LoginAccountParams.ts +0 -27
  926. package/bundle/src/codex-protocol/v2/LoginAccountResponse.ts +0 -27
  927. package/bundle/src/codex-protocol/v2/LogoutAccountResponse.ts +0 -5
  928. package/bundle/src/codex-protocol/v2/ManagedHooksRequirements.ts +0 -17
  929. package/bundle/src/codex-protocol/v2/MarketplaceAddParams.ts +0 -9
  930. package/bundle/src/codex-protocol/v2/MarketplaceAddResponse.ts +0 -10
  931. package/bundle/src/codex-protocol/v2/MarketplaceInterface.ts +0 -5
  932. package/bundle/src/codex-protocol/v2/MarketplaceLoadErrorInfo.ts +0 -6
  933. package/bundle/src/codex-protocol/v2/MarketplaceRemoveParams.ts +0 -5
  934. package/bundle/src/codex-protocol/v2/MarketplaceRemoveResponse.ts +0 -9
  935. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeErrorInfo.ts +0 -5
  936. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeParams.ts +0 -5
  937. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeResponse.ts +0 -11
  938. package/bundle/src/codex-protocol/v2/McpAuthStatus.ts +0 -5
  939. package/bundle/src/codex-protocol/v2/McpElicitationArrayType.ts +0 -5
  940. package/bundle/src/codex-protocol/v2/McpElicitationBooleanSchema.ts +0 -11
  941. package/bundle/src/codex-protocol/v2/McpElicitationBooleanType.ts +0 -5
  942. package/bundle/src/codex-protocol/v2/McpElicitationConstOption.ts +0 -5
  943. package/bundle/src/codex-protocol/v2/McpElicitationEnumSchema.ts +0 -11
  944. package/bundle/src/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.ts +0 -13
  945. package/bundle/src/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.ts +0 -9
  946. package/bundle/src/codex-protocol/v2/McpElicitationNumberSchema.ts +0 -13
  947. package/bundle/src/codex-protocol/v2/McpElicitationNumberType.ts +0 -5
  948. package/bundle/src/codex-protocol/v2/McpElicitationObjectType.ts +0 -5
  949. package/bundle/src/codex-protocol/v2/McpElicitationPrimitiveSchema.ts +0 -13
  950. package/bundle/src/codex-protocol/v2/McpElicitationSchema.ts +0 -18
  951. package/bundle/src/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.ts +0 -9
  952. package/bundle/src/codex-protocol/v2/McpElicitationStringFormat.ts +0 -5
  953. package/bundle/src/codex-protocol/v2/McpElicitationStringSchema.ts +0 -15
  954. package/bundle/src/codex-protocol/v2/McpElicitationStringType.ts +0 -5
  955. package/bundle/src/codex-protocol/v2/McpElicitationTitledEnumItems.ts +0 -6
  956. package/bundle/src/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.ts +0 -15
  957. package/bundle/src/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.ts +0 -13
  958. package/bundle/src/codex-protocol/v2/McpElicitationUntitledEnumItems.ts +0 -9
  959. package/bundle/src/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.ts +0 -15
  960. package/bundle/src/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.ts +0 -12
  961. package/bundle/src/codex-protocol/v2/McpResourceReadParams.ts +0 -5
  962. package/bundle/src/codex-protocol/v2/McpResourceReadResponse.ts +0 -6
  963. package/bundle/src/codex-protocol/v2/McpServerElicitationAction.ts +0 -5
  964. package/bundle/src/codex-protocol/v2/McpServerElicitationRequestParams.ts +0 -27
  965. package/bundle/src/codex-protocol/v2/McpServerElicitationRequestResponse.ts +0 -19
  966. package/bundle/src/codex-protocol/v2/McpServerMigration.ts +0 -5
  967. package/bundle/src/codex-protocol/v2/McpServerOauthLoginCompletedNotification.ts +0 -9
  968. package/bundle/src/codex-protocol/v2/McpServerOauthLoginParams.ts +0 -9
  969. package/bundle/src/codex-protocol/v2/McpServerOauthLoginResponse.ts +0 -5
  970. package/bundle/src/codex-protocol/v2/McpServerRefreshResponse.ts +0 -5
  971. package/bundle/src/codex-protocol/v2/McpServerStartupState.ts +0 -5
  972. package/bundle/src/codex-protocol/v2/McpServerStatus.ts +0 -15
  973. package/bundle/src/codex-protocol/v2/McpServerStatusDetail.ts +0 -5
  974. package/bundle/src/codex-protocol/v2/McpServerStatusUpdatedNotification.ts +0 -10
  975. package/bundle/src/codex-protocol/v2/McpServerToolCallParams.ts +0 -12
  976. package/bundle/src/codex-protocol/v2/McpServerToolCallResponse.ts +0 -11
  977. package/bundle/src/codex-protocol/v2/McpToolCallError.ts +0 -5
  978. package/bundle/src/codex-protocol/v2/McpToolCallProgressNotification.ts +0 -10
  979. package/bundle/src/codex-protocol/v2/McpToolCallResult.ts +0 -10
  980. package/bundle/src/codex-protocol/v2/McpToolCallStatus.ts +0 -5
  981. package/bundle/src/codex-protocol/v2/MemoryCitation.ts +0 -6
  982. package/bundle/src/codex-protocol/v2/MemoryCitationEntry.ts +0 -10
  983. package/bundle/src/codex-protocol/v2/MergeStrategy.ts +0 -5
  984. package/bundle/src/codex-protocol/v2/MigrationDetails.ts +0 -18
  985. package/bundle/src/codex-protocol/v2/Model.ts +0 -30
  986. package/bundle/src/codex-protocol/v2/ModelAvailabilityNux.ts +0 -5
  987. package/bundle/src/codex-protocol/v2/ModelListParams.ts +0 -18
  988. package/bundle/src/codex-protocol/v2/ModelListResponse.ts +0 -13
  989. package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadParams.ts +0 -5
  990. package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.ts +0 -9
  991. package/bundle/src/codex-protocol/v2/ModelRerouteReason.ts +0 -5
  992. package/bundle/src/codex-protocol/v2/ModelReroutedNotification.ts +0 -12
  993. package/bundle/src/codex-protocol/v2/ModelServiceTier.ts +0 -5
  994. package/bundle/src/codex-protocol/v2/ModelUpgradeInfo.ts +0 -10
  995. package/bundle/src/codex-protocol/v2/ModelVerification.ts +0 -5
  996. package/bundle/src/codex-protocol/v2/ModelVerificationNotification.ts +0 -10
  997. package/bundle/src/codex-protocol/v2/NetworkAccess.ts +0 -5
  998. package/bundle/src/codex-protocol/v2/NetworkApprovalContext.ts +0 -6
  999. package/bundle/src/codex-protocol/v2/NetworkApprovalProtocol.ts +0 -5
  1000. package/bundle/src/codex-protocol/v2/NetworkDomainPermission.ts +0 -5
  1001. package/bundle/src/codex-protocol/v2/NetworkPolicyAmendment.ts +0 -6
  1002. package/bundle/src/codex-protocol/v2/NetworkPolicyRuleAction.ts +0 -5
  1003. package/bundle/src/codex-protocol/v2/NetworkRequirements.ts +0 -40
  1004. package/bundle/src/codex-protocol/v2/NetworkUnixSocketPermission.ts +0 -5
  1005. package/bundle/src/codex-protocol/v2/NonSteerableTurnKind.ts +0 -5
  1006. package/bundle/src/codex-protocol/v2/OverriddenMetadata.ts +0 -11
  1007. package/bundle/src/codex-protocol/v2/PatchApplyStatus.ts +0 -5
  1008. package/bundle/src/codex-protocol/v2/PatchChangeKind.ts +0 -8
  1009. package/bundle/src/codex-protocol/v2/PermissionGrantScope.ts +0 -5
  1010. package/bundle/src/codex-protocol/v2/PermissionProfile.ts +0 -14
  1011. package/bundle/src/codex-protocol/v2/PermissionProfileFileSystemPermissions.ts +0 -8
  1012. package/bundle/src/codex-protocol/v2/PermissionProfileModificationParams.ts +0 -9
  1013. package/bundle/src/codex-protocol/v2/PermissionProfileNetworkPermissions.ts +0 -5
  1014. package/bundle/src/codex-protocol/v2/PermissionProfileSelectionParams.ts +0 -10
  1015. package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalParams.ts +0 -18
  1016. package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalResponse.ts +0 -14
  1017. package/bundle/src/codex-protocol/v2/PlanDeltaNotification.ts +0 -14
  1018. package/bundle/src/codex-protocol/v2/PluginAuthPolicy.ts +0 -5
  1019. package/bundle/src/codex-protocol/v2/PluginAvailability.ts +0 -5
  1020. package/bundle/src/codex-protocol/v2/PluginDetail.ts +0 -19
  1021. package/bundle/src/codex-protocol/v2/PluginHookSummary.ts +0 -6
  1022. package/bundle/src/codex-protocol/v2/PluginInstallParams.ts +0 -10
  1023. package/bundle/src/codex-protocol/v2/PluginInstallPolicy.ts +0 -5
  1024. package/bundle/src/codex-protocol/v2/PluginInstallResponse.ts +0 -10
  1025. package/bundle/src/codex-protocol/v2/PluginInterface.ts +0 -46
  1026. package/bundle/src/codex-protocol/v2/PluginListMarketplaceKind.ts +0 -5
  1027. package/bundle/src/codex-protocol/v2/PluginListParams.ts +0 -18
  1028. package/bundle/src/codex-protocol/v2/PluginListResponse.ts +0 -11
  1029. package/bundle/src/codex-protocol/v2/PluginMarketplaceEntry.ts +0 -17
  1030. package/bundle/src/codex-protocol/v2/PluginReadParams.ts +0 -10
  1031. package/bundle/src/codex-protocol/v2/PluginReadResponse.ts +0 -6
  1032. package/bundle/src/codex-protocol/v2/PluginShareContext.ts +0 -12
  1033. package/bundle/src/codex-protocol/v2/PluginShareDeleteParams.ts +0 -5
  1034. package/bundle/src/codex-protocol/v2/PluginShareDeleteResponse.ts +0 -5
  1035. package/bundle/src/codex-protocol/v2/PluginShareDiscoverability.ts +0 -5
  1036. package/bundle/src/codex-protocol/v2/PluginShareListItem.ts +0 -11
  1037. package/bundle/src/codex-protocol/v2/PluginShareListParams.ts +0 -5
  1038. package/bundle/src/codex-protocol/v2/PluginShareListResponse.ts +0 -6
  1039. package/bundle/src/codex-protocol/v2/PluginSharePrincipal.ts +0 -10
  1040. package/bundle/src/codex-protocol/v2/PluginSharePrincipalType.ts +0 -5
  1041. package/bundle/src/codex-protocol/v2/PluginShareSaveParams.ts +0 -13
  1042. package/bundle/src/codex-protocol/v2/PluginShareSaveResponse.ts +0 -5
  1043. package/bundle/src/codex-protocol/v2/PluginShareTarget.ts +0 -6
  1044. package/bundle/src/codex-protocol/v2/PluginShareUpdateDiscoverability.ts +0 -5
  1045. package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsParams.ts +0 -11
  1046. package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsResponse.ts +0 -10
  1047. package/bundle/src/codex-protocol/v2/PluginSkillReadParams.ts +0 -9
  1048. package/bundle/src/codex-protocol/v2/PluginSkillReadResponse.ts +0 -5
  1049. package/bundle/src/codex-protocol/v2/PluginSource.ts +0 -9
  1050. package/bundle/src/codex-protocol/v2/PluginSummary.ts +0 -29
  1051. package/bundle/src/codex-protocol/v2/PluginUninstallParams.ts +0 -5
  1052. package/bundle/src/codex-protocol/v2/PluginUninstallResponse.ts +0 -5
  1053. package/bundle/src/codex-protocol/v2/PluginsMigration.ts +0 -5
  1054. package/bundle/src/codex-protocol/v2/ProcessExitedNotification.ts +0 -43
  1055. package/bundle/src/codex-protocol/v2/ProcessOutputDeltaNotification.ts +0 -27
  1056. package/bundle/src/codex-protocol/v2/ProcessOutputStream.ts +0 -8
  1057. package/bundle/src/codex-protocol/v2/ProcessTerminalSize.ts +0 -17
  1058. package/bundle/src/codex-protocol/v2/ProfileV2.ts +0 -37
  1059. package/bundle/src/codex-protocol/v2/RateLimitReachedType.ts +0 -10
  1060. package/bundle/src/codex-protocol/v2/RateLimitSnapshot.ts +0 -17
  1061. package/bundle/src/codex-protocol/v2/RateLimitWindow.ts +0 -9
  1062. package/bundle/src/codex-protocol/v2/RawResponseItemCompletedNotification.ts +0 -10
  1063. package/bundle/src/codex-protocol/v2/ReasoningEffortOption.ts +0 -6
  1064. package/bundle/src/codex-protocol/v2/ReasoningSummaryPartAddedNotification.ts +0 -10
  1065. package/bundle/src/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.ts +0 -11
  1066. package/bundle/src/codex-protocol/v2/ReasoningTextDeltaNotification.ts +0 -11
  1067. package/bundle/src/codex-protocol/v2/RemoteControlConnectionStatus.ts +0 -5
  1068. package/bundle/src/codex-protocol/v2/RemoteControlStatusChangedNotification.ts +0 -12
  1069. package/bundle/src/codex-protocol/v2/RequestPermissionProfile.ts +0 -10
  1070. package/bundle/src/codex-protocol/v2/ResidencyRequirement.ts +0 -5
  1071. package/bundle/src/codex-protocol/v2/ReviewDelivery.ts +0 -5
  1072. package/bundle/src/codex-protocol/v2/ReviewStartParams.ts +0 -15
  1073. package/bundle/src/codex-protocol/v2/ReviewStartResponse.ts +0 -15
  1074. package/bundle/src/codex-protocol/v2/ReviewTarget.ts +0 -16
  1075. package/bundle/src/codex-protocol/v2/SandboxMode.ts +0 -5
  1076. package/bundle/src/codex-protocol/v2/SandboxPolicy.ts +0 -17
  1077. package/bundle/src/codex-protocol/v2/SandboxWorkspaceWrite.ts +0 -10
  1078. package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailParams.ts +0 -6
  1079. package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.ts +0 -6
  1080. package/bundle/src/codex-protocol/v2/ServerRequestResolvedNotification.ts +0 -6
  1081. package/bundle/src/codex-protocol/v2/SessionMigration.ts +0 -5
  1082. package/bundle/src/codex-protocol/v2/SessionSource.ts +0 -13
  1083. package/bundle/src/codex-protocol/v2/SkillDependencies.ts +0 -6
  1084. package/bundle/src/codex-protocol/v2/SkillErrorInfo.ts +0 -5
  1085. package/bundle/src/codex-protocol/v2/SkillInterface.ts +0 -13
  1086. package/bundle/src/codex-protocol/v2/SkillMetadata.ts +0 -21
  1087. package/bundle/src/codex-protocol/v2/SkillScope.ts +0 -5
  1088. package/bundle/src/codex-protocol/v2/SkillSummary.ts +0 -14
  1089. package/bundle/src/codex-protocol/v2/SkillToolDependency.ts +0 -12
  1090. package/bundle/src/codex-protocol/v2/SkillsChangedNotification.ts +0 -11
  1091. package/bundle/src/codex-protocol/v2/SkillsConfigWriteParams.ts +0 -16
  1092. package/bundle/src/codex-protocol/v2/SkillsConfigWriteResponse.ts +0 -5
  1093. package/bundle/src/codex-protocol/v2/SkillsListEntry.ts +0 -11
  1094. package/bundle/src/codex-protocol/v2/SkillsListParams.ts +0 -14
  1095. package/bundle/src/codex-protocol/v2/SkillsListResponse.ts +0 -6
  1096. package/bundle/src/codex-protocol/v2/SortDirection.ts +0 -5
  1097. package/bundle/src/codex-protocol/v2/SubagentMigration.ts +0 -5
  1098. package/bundle/src/codex-protocol/v2/TerminalInteractionNotification.ts +0 -11
  1099. package/bundle/src/codex-protocol/v2/TextElement.ts +0 -15
  1100. package/bundle/src/codex-protocol/v2/TextPosition.ts +0 -14
  1101. package/bundle/src/codex-protocol/v2/TextRange.ts +0 -6
  1102. package/bundle/src/codex-protocol/v2/Thread.ts +0 -88
  1103. package/bundle/src/codex-protocol/v2/ThreadActiveFlag.ts +0 -5
  1104. package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.ts +0 -12
  1105. package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.ts +0 -5
  1106. package/bundle/src/codex-protocol/v2/ThreadArchiveParams.ts +0 -5
  1107. package/bundle/src/codex-protocol/v2/ThreadArchiveResponse.ts +0 -5
  1108. package/bundle/src/codex-protocol/v2/ThreadArchivedNotification.ts +0 -5
  1109. package/bundle/src/codex-protocol/v2/ThreadClosedNotification.ts +0 -5
  1110. package/bundle/src/codex-protocol/v2/ThreadCompactStartParams.ts +0 -5
  1111. package/bundle/src/codex-protocol/v2/ThreadCompactStartResponse.ts +0 -5
  1112. package/bundle/src/codex-protocol/v2/ThreadForkParams.ts +0 -40
  1113. package/bundle/src/codex-protocol/v2/ThreadForkResponse.ts +0 -30
  1114. package/bundle/src/codex-protocol/v2/ThreadGoal.ts +0 -15
  1115. package/bundle/src/codex-protocol/v2/ThreadGoalClearedNotification.ts +0 -5
  1116. package/bundle/src/codex-protocol/v2/ThreadGoalStatus.ts +0 -5
  1117. package/bundle/src/codex-protocol/v2/ThreadGoalUpdatedNotification.ts +0 -10
  1118. package/bundle/src/codex-protocol/v2/ThreadInjectItemsParams.ts +0 -12
  1119. package/bundle/src/codex-protocol/v2/ThreadInjectItemsResponse.ts +0 -5
  1120. package/bundle/src/codex-protocol/v2/ThreadItem.ts +0 -156
  1121. package/bundle/src/codex-protocol/v2/ThreadListParams.ts +0 -55
  1122. package/bundle/src/codex-protocol/v2/ThreadListResponse.ts +0 -20
  1123. package/bundle/src/codex-protocol/v2/ThreadLoadedListParams.ts +0 -14
  1124. package/bundle/src/codex-protocol/v2/ThreadLoadedListResponse.ts +0 -15
  1125. package/bundle/src/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.ts +0 -21
  1126. package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateParams.ts +0 -14
  1127. package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateResponse.ts +0 -6
  1128. package/bundle/src/codex-protocol/v2/ThreadNameUpdatedNotification.ts +0 -5
  1129. package/bundle/src/codex-protocol/v2/ThreadReadParams.ts +0 -11
  1130. package/bundle/src/codex-protocol/v2/ThreadReadResponse.ts +0 -6
  1131. package/bundle/src/codex-protocol/v2/ThreadRealtimeAudioChunk.ts +0 -14
  1132. package/bundle/src/codex-protocol/v2/ThreadRealtimeClosedNotification.ts +0 -8
  1133. package/bundle/src/codex-protocol/v2/ThreadRealtimeErrorNotification.ts +0 -8
  1134. package/bundle/src/codex-protocol/v2/ThreadRealtimeItemAddedNotification.ts +0 -9
  1135. package/bundle/src/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.ts +0 -12
  1136. package/bundle/src/codex-protocol/v2/ThreadRealtimeSdpNotification.ts +0 -8
  1137. package/bundle/src/codex-protocol/v2/ThreadRealtimeStartTransport.ts +0 -17
  1138. package/bundle/src/codex-protocol/v2/ThreadRealtimeStartedNotification.ts +0 -13
  1139. package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.ts +0 -16
  1140. package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.ts +0 -16
  1141. package/bundle/src/codex-protocol/v2/ThreadResumeParams.ts +0 -39
  1142. package/bundle/src/codex-protocol/v2/ThreadResumeResponse.ts +0 -30
  1143. package/bundle/src/codex-protocol/v2/ThreadRollbackParams.ts +0 -14
  1144. package/bundle/src/codex-protocol/v2/ThreadRollbackResponse.ts +0 -15
  1145. package/bundle/src/codex-protocol/v2/ThreadSetNameParams.ts +0 -5
  1146. package/bundle/src/codex-protocol/v2/ThreadSetNameResponse.ts +0 -5
  1147. package/bundle/src/codex-protocol/v2/ThreadShellCommandParams.ts +0 -14
  1148. package/bundle/src/codex-protocol/v2/ThreadShellCommandResponse.ts +0 -5
  1149. package/bundle/src/codex-protocol/v2/ThreadSortKey.ts +0 -5
  1150. package/bundle/src/codex-protocol/v2/ThreadSource.ts +0 -5
  1151. package/bundle/src/codex-protocol/v2/ThreadSourceKind.ts +0 -15
  1152. package/bundle/src/codex-protocol/v2/ThreadStartParams.ts +0 -33
  1153. package/bundle/src/codex-protocol/v2/ThreadStartResponse.ts +0 -30
  1154. package/bundle/src/codex-protocol/v2/ThreadStartSource.ts +0 -5
  1155. package/bundle/src/codex-protocol/v2/ThreadStartedNotification.ts +0 -6
  1156. package/bundle/src/codex-protocol/v2/ThreadStatus.ts +0 -10
  1157. package/bundle/src/codex-protocol/v2/ThreadStatusChangedNotification.ts +0 -6
  1158. package/bundle/src/codex-protocol/v2/ThreadTokenUsage.ts +0 -10
  1159. package/bundle/src/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.ts +0 -10
  1160. package/bundle/src/codex-protocol/v2/ThreadUnarchiveParams.ts +0 -5
  1161. package/bundle/src/codex-protocol/v2/ThreadUnarchiveResponse.ts +0 -6
  1162. package/bundle/src/codex-protocol/v2/ThreadUnarchivedNotification.ts +0 -5
  1163. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeParams.ts +0 -5
  1164. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeResponse.ts +0 -6
  1165. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeStatus.ts +0 -5
  1166. package/bundle/src/codex-protocol/v2/TokenUsageBreakdown.ts +0 -11
  1167. package/bundle/src/codex-protocol/v2/ToolRequestUserInputAnswer.ts +0 -8
  1168. package/bundle/src/codex-protocol/v2/ToolRequestUserInputOption.ts +0 -8
  1169. package/bundle/src/codex-protocol/v2/ToolRequestUserInputParams.ts +0 -14
  1170. package/bundle/src/codex-protocol/v2/ToolRequestUserInputQuestion.ts +0 -16
  1171. package/bundle/src/codex-protocol/v2/ToolRequestUserInputResponse.ts +0 -11
  1172. package/bundle/src/codex-protocol/v2/ToolsV2.ts +0 -6
  1173. package/bundle/src/codex-protocol/v2/Turn.ts +0 -36
  1174. package/bundle/src/codex-protocol/v2/TurnCompletedNotification.ts +0 -6
  1175. package/bundle/src/codex-protocol/v2/TurnDiffUpdatedNotification.ts +0 -9
  1176. package/bundle/src/codex-protocol/v2/TurnEnvironmentParams.ts +0 -6
  1177. package/bundle/src/codex-protocol/v2/TurnError.ts +0 -10
  1178. package/bundle/src/codex-protocol/v2/TurnInterruptParams.ts +0 -5
  1179. package/bundle/src/codex-protocol/v2/TurnInterruptResponse.ts +0 -5
  1180. package/bundle/src/codex-protocol/v2/TurnItemsView.ts +0 -5
  1181. package/bundle/src/codex-protocol/v2/TurnPlanStep.ts +0 -6
  1182. package/bundle/src/codex-protocol/v2/TurnPlanStepStatus.ts +0 -5
  1183. package/bundle/src/codex-protocol/v2/TurnPlanUpdatedNotification.ts +0 -11
  1184. package/bundle/src/codex-protocol/v2/TurnStartParams.ts +0 -48
  1185. package/bundle/src/codex-protocol/v2/TurnStartResponse.ts +0 -6
  1186. package/bundle/src/codex-protocol/v2/TurnStartedNotification.ts +0 -6
  1187. package/bundle/src/codex-protocol/v2/TurnStatus.ts +0 -5
  1188. package/bundle/src/codex-protocol/v2/TurnSteerParams.ts +0 -13
  1189. package/bundle/src/codex-protocol/v2/TurnSteerResponse.ts +0 -5
  1190. package/bundle/src/codex-protocol/v2/UserInput.ts +0 -18
  1191. package/bundle/src/codex-protocol/v2/WarningNotification.ts +0 -14
  1192. package/bundle/src/codex-protocol/v2/WebSearchAction.ts +0 -9
  1193. package/bundle/src/codex-protocol/v2/WindowsSandboxReadiness.ts +0 -5
  1194. package/bundle/src/codex-protocol/v2/WindowsSandboxReadinessResponse.ts +0 -6
  1195. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.ts +0 -10
  1196. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupMode.ts +0 -5
  1197. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartParams.ts +0 -10
  1198. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartResponse.ts +0 -5
  1199. package/bundle/src/codex-protocol/v2/WindowsWorldWritableWarningNotification.ts +0 -9
  1200. package/bundle/src/codex-protocol/v2/WriteStatus.ts +0 -5
  1201. package/bundle/src/codex-protocol/v2/index.ts +0 -446
  1202. package/bundle/src/utils/providers/openai/codex-rpc.ts +0 -238
  1203. package/bundle/src/utils/providers/openai/codex-worker.test.ts +0 -1006
  1204. package/bundle/src/utils/providers/openai/codex-worker.ts +0 -927
  1205. package/bundle/src/utils/providers/openai/openai-worker-pool-config.ts +0 -112
  1206. package/bundle/web-dist/client/assets/index-C0594sjh.js +0 -106
  1207. package/bundle/web-dist/client/assets/index-CcMEpCgt.css +0 -1
  1208. package/bundle/web-dist/client/assets/logs-BotUcOEB.js +0 -1
  1209. package/bundle/web-dist/client/assets/monit-kk3vnGvu.js +0 -1
  1210. package/bundle/web-dist/client/assets/settings-CAAQSIyg.js +0 -1
  1211. package/bundle/web-dist/client/assets/show-BryNvjUT.js +0 -2
  1212. /package/bundle/dist/{codex-protocol/AbsolutePathBuf.js → utils/providers/common/provider-types.js} +0 -0
@@ -0,0 +1,84 @@
1
+ import { OPENAI_AUTHORIZE_URL, OPENAI_CLIENT_ID, OPENAI_ORIGINATOR, OPENAI_SCOPES, OPENAI_TOKEN_URL } from "./openai-constants.js";
2
+ import crypto from "node:crypto";
3
+ //#region src/utils/providers/openai/openai-oauth.ts
4
+ const OPENAI_AUTH_CLAIM = "https://api.openai.com/auth";
5
+ function generateOpenAIPKCE() {
6
+ const codeVerifier = crypto.randomBytes(64).toString("base64url");
7
+ return {
8
+ codeVerifier,
9
+ codeChallenge: crypto.createHash("sha256").update(codeVerifier).digest("base64url"),
10
+ state: crypto.randomBytes(32).toString("base64url")
11
+ };
12
+ }
13
+ function buildOpenAIAuthUrl(codeChallenge, state, redirectUri) {
14
+ const url = new URL(OPENAI_AUTHORIZE_URL);
15
+ url.search = new URLSearchParams({
16
+ response_type: "code",
17
+ client_id: OPENAI_CLIENT_ID,
18
+ redirect_uri: redirectUri,
19
+ scope: OPENAI_SCOPES,
20
+ code_challenge: codeChallenge,
21
+ code_challenge_method: "S256",
22
+ id_token_add_organizations: "true",
23
+ codex_cli_simplified_flow: "true",
24
+ state,
25
+ originator: OPENAI_ORIGINATOR
26
+ }).toString();
27
+ return url.toString();
28
+ }
29
+ function parseOpenAITokenClaims(jwt) {
30
+ const parts = jwt.split(".");
31
+ const payloadPart = parts[1];
32
+ if (parts.length !== 3 || parts.some((part) => !part) || !payloadPart) throw new Error("invalid OpenAI JWT format");
33
+ let payload;
34
+ try {
35
+ payload = JSON.parse(Buffer.from(payloadPart, "base64url").toString("utf8"));
36
+ } catch {
37
+ throw new Error("invalid OpenAI JWT payload");
38
+ }
39
+ if (!payload || typeof payload !== "object") throw new Error("invalid OpenAI JWT payload");
40
+ const claims = payload;
41
+ const auth = claims[OPENAI_AUTH_CLAIM];
42
+ const nested = auth && typeof auth === "object" ? auth : {};
43
+ return {
44
+ expiresAt: typeof claims.exp === "number" ? claims.exp * 1e3 : void 0,
45
+ accountId: typeof nested.chatgpt_account_id === "string" ? nested.chatgpt_account_id : void 0,
46
+ planType: typeof nested.chatgpt_plan_type === "string" ? nested.chatgpt_plan_type : void 0
47
+ };
48
+ }
49
+ async function exchangeOpenAICode(code, codeVerifier, redirectUri) {
50
+ const response = await fetch(OPENAI_TOKEN_URL, {
51
+ method: "POST",
52
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
53
+ body: new URLSearchParams({
54
+ grant_type: "authorization_code",
55
+ code,
56
+ redirect_uri: redirectUri,
57
+ client_id: OPENAI_CLIENT_ID,
58
+ code_verifier: codeVerifier
59
+ })
60
+ });
61
+ if (!response.ok) {
62
+ await response.body?.cancel().catch(() => void 0);
63
+ throw new Error(`OPENAI_TOKEN_EXCHANGE_HTTP_${response.status}`);
64
+ }
65
+ const tokens = await response.json();
66
+ if (!tokens.id_token || !tokens.access_token || !tokens.refresh_token) throw new Error("OpenAI token exchange returned incomplete credentials");
67
+ const idClaims = parseOpenAITokenClaims(tokens.id_token);
68
+ const accessClaims = parseOpenAITokenClaims(tokens.access_token);
69
+ const accountId = idClaims.accountId ?? accessClaims.accountId;
70
+ if (!accountId) throw new Error("OpenAI token did not include a ChatGPT account id");
71
+ return {
72
+ accessToken: tokens.access_token,
73
+ refreshToken: tokens.refresh_token,
74
+ idToken: tokens.id_token,
75
+ accessTokenExpiresAt: accessClaims.expiresAt ?? (tokens.expires_in ? Date.now() + tokens.expires_in * 1e3 : Date.now()),
76
+ ...idClaims.expiresAt ? { idTokenExpiresAt: idClaims.expiresAt } : {},
77
+ accountId,
78
+ ...idClaims.planType ?? accessClaims.planType ? { planType: idClaims.planType ?? accessClaims.planType } : {}
79
+ };
80
+ }
81
+ //#endregion
82
+ export { buildOpenAIAuthUrl, exchangeOpenAICode, generateOpenAIPKCE, parseOpenAITokenClaims };
83
+
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW9hdXRoLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvb3BlbmFpL29wZW5haS1vYXV0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gXCJub2RlOmNyeXB0b1wiO1xuXG5pbXBvcnQge1xuICBPUEVOQUlfQVVUSE9SSVpFX1VSTCxcbiAgT1BFTkFJX0NMSUVOVF9JRCxcbiAgT1BFTkFJX09SSUdJTkFUT1IsXG4gIE9QRU5BSV9TQ09QRVMsXG4gIE9QRU5BSV9UT0tFTl9VUkwsXG59IGZyb20gXCIuL29wZW5haS1jb25zdGFudHNcIjtcblxuY29uc3QgT1BFTkFJX0FVVEhfQ0xBSU0gPSBcImh0dHBzOi8vYXBpLm9wZW5haS5jb20vYXV0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVBLQ0Uge1xuICBjb2RlVmVyaWZpZXI6IHN0cmluZztcbiAgY29kZUNoYWxsZW5nZTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVRva2VuQ2xhaW1zIHtcbiAgZXhwaXJlc0F0PzogbnVtYmVyO1xuICBhY2NvdW50SWQ/OiBzdHJpbmc7XG4gIHBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSUV4Y2hhbmdlZENyZWRlbnRpYWxzIHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIGlkVG9rZW46IHN0cmluZztcbiAgYWNjZXNzVG9rZW5FeHBpcmVzQXQ6IG51bWJlcjtcbiAgaWRUb2tlbkV4cGlyZXNBdD86IG51bWJlcjtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcGVuQUlQS0NFKCk6IE9wZW5BSVBLQ0Uge1xuICBjb25zdCBjb2RlVmVyaWZpZXIgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoNjQpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpO1xuICByZXR1cm4ge1xuICAgIGNvZGVWZXJpZmllcixcbiAgICBjb2RlQ2hhbGxlbmdlOiBjcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUoY29kZVZlcmlmaWVyKS5kaWdlc3QoXCJiYXNlNjR1cmxcIiksXG4gICAgc3RhdGU6IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoXCJiYXNlNjR1cmxcIiksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE9wZW5BSUF1dGhVcmwoXG4gIGNvZGVDaGFsbGVuZ2U6IHN0cmluZyxcbiAgc3RhdGU6IHN0cmluZyxcbiAgcmVkaXJlY3RVcmk6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoT1BFTkFJX0FVVEhPUklaRV9VUkwpO1xuICB1cmwuc2VhcmNoID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgcmVzcG9uc2VfdHlwZTogXCJjb2RlXCIsXG4gICAgY2xpZW50X2lkOiBPUEVOQUlfQ0xJRU5UX0lELFxuICAgIHJlZGlyZWN0X3VyaTogcmVkaXJlY3RVcmksXG4gICAgc2NvcGU6IE9QRU5BSV9TQ09QRVMsXG4gICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXG4gICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiBcIlMyNTZcIixcbiAgICBpZF90b2tlbl9hZGRfb3JnYW5pemF0aW9uczogXCJ0cnVlXCIsXG4gICAgY29kZXhfY2xpX3NpbXBsaWZpZWRfZmxvdzogXCJ0cnVlXCIsXG4gICAgc3RhdGUsXG4gICAgb3JpZ2luYXRvcjogT1BFTkFJX09SSUdJTkFUT1IsXG4gIH0pLnRvU3RyaW5nKCk7XG4gIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlT3BlbkFJVG9rZW5DbGFpbXMoand0OiBzdHJpbmcpOiBPcGVuQUlUb2tlbkNsYWltcyB7XG4gIGNvbnN0IHBhcnRzID0gand0LnNwbGl0KFwiLlwiKTtcbiAgY29uc3QgcGF5bG9hZFBhcnQgPSBwYXJ0c1sxXTtcbiAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMyB8fCBwYXJ0cy5zb21lKChwYXJ0KSA9PiAhcGFydCkgfHwgIXBheWxvYWRQYXJ0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBPcGVuQUkgSldUIGZvcm1hdFwiKTtcbiAgfVxuXG4gIGxldCBwYXlsb2FkOiB1bmtub3duO1xuICB0cnkge1xuICAgIHBheWxvYWQgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHBheWxvYWRQYXJ0LCBcImJhc2U2NHVybFwiKS50b1N0cmluZyhcInV0ZjhcIikpO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIE9wZW5BSSBKV1QgcGF5bG9hZFwiKTtcbiAgfVxuICBpZiAoIXBheWxvYWQgfHwgdHlwZW9mIHBheWxvYWQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBFcnJvcihcImludmFsaWQgT3BlbkFJIEpXVCBwYXlsb2FkXCIpO1xuXG4gIGNvbnN0IGNsYWltcyA9IHBheWxvYWQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGF1dGggPSBjbGFpbXNbT1BFTkFJX0FVVEhfQ0xBSU1dO1xuICBjb25zdCBuZXN0ZWQgPSBhdXRoICYmIHR5cGVvZiBhdXRoID09PSBcIm9iamVjdFwiID8gKGF1dGggYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIDoge307XG4gIHJldHVybiB7XG4gICAgZXhwaXJlc0F0OiB0eXBlb2YgY2xhaW1zLmV4cCA9PT0gXCJudW1iZXJcIiA/IGNsYWltcy5leHAgKiAxMDAwIDogdW5kZWZpbmVkLFxuICAgIGFjY291bnRJZDpcbiAgICAgIHR5cGVvZiBuZXN0ZWQuY2hhdGdwdF9hY2NvdW50X2lkID09PSBcInN0cmluZ1wiID8gbmVzdGVkLmNoYXRncHRfYWNjb3VudF9pZCA6IHVuZGVmaW5lZCxcbiAgICBwbGFuVHlwZTogdHlwZW9mIG5lc3RlZC5jaGF0Z3B0X3BsYW5fdHlwZSA9PT0gXCJzdHJpbmdcIiA/IG5lc3RlZC5jaGF0Z3B0X3BsYW5fdHlwZSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT3BlbkFJQ29kZShcbiAgY29kZTogc3RyaW5nLFxuICBjb2RlVmVyaWZpZXI6IHN0cmluZyxcbiAgcmVkaXJlY3RVcmk6IHN0cmluZyxcbik6IFByb21pc2U8T3BlbkFJRXhjaGFuZ2VkQ3JlZGVudGlhbHM+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChPUEVOQUlfVE9LRU5fVVJMLCB7XG4gICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSxcbiAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgIGdyYW50X3R5cGU6IFwiYXV0aG9yaXphdGlvbl9jb2RlXCIsXG4gICAgICBjb2RlLFxuICAgICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVyaSxcbiAgICAgIGNsaWVudF9pZDogT1BFTkFJX0NMSUVOVF9JRCxcbiAgICAgIGNvZGVfdmVyaWZpZXI6IGNvZGVWZXJpZmllcixcbiAgICB9KSxcbiAgfSk7XG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAvLyBUb2tlbiBlbmRwb2ludCBib2RpZXMgY2FuIGVjaG8gY3JlZGVudGlhbHMgb3IgcHJvdmlkZXIgZGlhZ25vc3RpY3M7IG5ldmVyIGV4cG9zZSB0aGVtLlxuICAgIGF3YWl0IHJlc3BvbnNlLmJvZHk/LmNhbmNlbCgpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPUEVOQUlfVE9LRU5fRVhDSEFOR0VfSFRUUF8ke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IHRva2VucyA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHtcbiAgICBpZF90b2tlbj86IHN0cmluZztcbiAgICBhY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG4gICAgcmVmcmVzaF90b2tlbj86IHN0cmluZztcbiAgICBleHBpcmVzX2luPzogbnVtYmVyO1xuICB9O1xuICBpZiAoIXRva2Vucy5pZF90b2tlbiB8fCAhdG9rZW5zLmFjY2Vzc190b2tlbiB8fCAhdG9rZW5zLnJlZnJlc2hfdG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJPcGVuQUkgdG9rZW4gZXhjaGFuZ2UgcmV0dXJuZWQgaW5jb21wbGV0ZSBjcmVkZW50aWFsc1wiKTtcbiAgfVxuXG4gIGNvbnN0IGlkQ2xhaW1zID0gcGFyc2VPcGVuQUlUb2tlbkNsYWltcyh0b2tlbnMuaWRfdG9rZW4pO1xuICBjb25zdCBhY2Nlc3NDbGFpbXMgPSBwYXJzZU9wZW5BSVRva2VuQ2xhaW1zKHRva2Vucy5hY2Nlc3NfdG9rZW4pO1xuICBjb25zdCBhY2NvdW50SWQgPSBpZENsYWltcy5hY2NvdW50SWQgPz8gYWNjZXNzQ2xhaW1zLmFjY291bnRJZDtcbiAgaWYgKCFhY2NvdW50SWQpIHRocm93IG5ldyBFcnJvcihcIk9wZW5BSSB0b2tlbiBkaWQgbm90IGluY2x1ZGUgYSBDaGF0R1BUIGFjY291bnQgaWRcIik7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogdG9rZW5zLmFjY2Vzc190b2tlbixcbiAgICByZWZyZXNoVG9rZW46IHRva2Vucy5yZWZyZXNoX3Rva2VuLFxuICAgIGlkVG9rZW46IHRva2Vucy5pZF90b2tlbixcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdDpcbiAgICAgIGFjY2Vzc0NsYWltcy5leHBpcmVzQXQgPz9cbiAgICAgICh0b2tlbnMuZXhwaXJlc19pbiA/IERhdGUubm93KCkgKyB0b2tlbnMuZXhwaXJlc19pbiAqIDEwMDAgOiBEYXRlLm5vdygpKSxcbiAgICAuLi4oaWRDbGFpbXMuZXhwaXJlc0F0ID8geyBpZFRva2VuRXhwaXJlc0F0OiBpZENsYWltcy5leHBpcmVzQXQgfSA6IHt9KSxcbiAgICBhY2NvdW50SWQsXG4gICAgLi4uKChpZENsYWltcy5wbGFuVHlwZSA/PyBhY2Nlc3NDbGFpbXMucGxhblR5cGUpXG4gICAgICA/IHsgcGxhblR5cGU6IGlkQ2xhaW1zLnBsYW5UeXBlID8/IGFjY2Vzc0NsYWltcy5wbGFuVHlwZSB9XG4gICAgICA6IHt9KSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsTUFBTSxvQkFBb0I7QUF3QjFCLFNBQWdCLHFCQUFpQztDQUMvQyxNQUFNLGVBQWUsT0FBTyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFNBQVMsV0FBVztDQUNoRSxPQUFPO0VBQ0w7RUFDQSxlQUFlLE9BQU8sV0FBVyxRQUFRLENBQUMsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE9BQU8sV0FBVztFQUNsRixPQUFPLE9BQU8sWUFBWSxFQUFFLENBQUMsQ0FBQyxTQUFTLFdBQVc7Q0FDcEQ7QUFDRjtBQUVBLFNBQWdCLG1CQUNkLGVBQ0EsT0FDQSxhQUNRO0NBQ1IsTUFBTSxNQUFNLElBQUksSUFBSSxvQkFBb0I7Q0FDeEMsSUFBSSxTQUFTLElBQUksZ0JBQWdCO0VBQy9CLGVBQWU7RUFDZixXQUFXO0VBQ1gsY0FBYztFQUNkLE9BQU87RUFDUCxnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLDRCQUE0QjtFQUM1QiwyQkFBMkI7RUFDM0I7RUFDQSxZQUFZO0NBQ2QsQ0FBQyxDQUFDLENBQUMsU0FBUztDQUNaLE9BQU8sSUFBSSxTQUFTO0FBQ3RCO0FBRUEsU0FBZ0IsdUJBQXVCLEtBQWdDO0NBQ3JFLE1BQU0sUUFBUSxJQUFJLE1BQU0sR0FBRztDQUMzQixNQUFNLGNBQWMsTUFBTTtDQUMxQixJQUFJLE1BQU0sV0FBVyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsYUFDeEQsTUFBTSxJQUFJLE1BQU0sMkJBQTJCO0NBRzdDLElBQUk7Q0FDSixJQUFJO0VBQ0YsVUFBVSxLQUFLLE1BQU0sT0FBTyxLQUFLLGFBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUM7Q0FDN0UsUUFBUTtFQUNOLE1BQU0sSUFBSSxNQUFNLDRCQUE0QjtDQUM5QztDQUNBLElBQUksQ0FBQyxXQUFXLE9BQU8sWUFBWSxVQUFVLE1BQU0sSUFBSSxNQUFNLDRCQUE0QjtDQUV6RixNQUFNLFNBQVM7Q0FDZixNQUFNLE9BQU8sT0FBTztDQUNwQixNQUFNLFNBQVMsUUFBUSxPQUFPLFNBQVMsV0FBWSxPQUFtQyxDQUFDO0NBQ3ZGLE9BQU87RUFDTCxXQUFXLE9BQU8sT0FBTyxRQUFRLFdBQVcsT0FBTyxNQUFNLE1BQU87RUFDaEUsV0FDRSxPQUFPLE9BQU8sdUJBQXVCLFdBQVcsT0FBTyxxQkFBcUI7RUFDOUUsVUFBVSxPQUFPLE9BQU8sc0JBQXNCLFdBQVcsT0FBTyxvQkFBb0I7Q0FDdEY7QUFDRjtBQUVBLGVBQXNCLG1CQUNwQixNQUNBLGNBQ0EsYUFDcUM7Q0FDckMsTUFBTSxXQUFXLE1BQU0sTUFBTSxrQkFBa0I7RUFDN0MsUUFBUTtFQUNSLFNBQVMsRUFBRSxnQkFBZ0Isb0NBQW9DO0VBQy9ELE1BQU0sSUFBSSxnQkFBZ0I7R0FDeEIsWUFBWTtHQUNaO0dBQ0EsY0FBYztHQUNkLFdBQVc7R0FDWCxlQUFlO0VBQ2pCLENBQUM7Q0FDSCxDQUFDO0NBQ0QsSUFBSSxDQUFDLFNBQVMsSUFBSTtFQUVoQixNQUFNLFNBQVMsTUFBTSxPQUFPLENBQUMsQ0FBQyxZQUFZLE1BQVM7RUFDbkQsTUFBTSxJQUFJLE1BQU0sOEJBQThCLFNBQVMsUUFBUTtDQUNqRTtDQUVBLE1BQU0sU0FBVSxNQUFNLFNBQVMsS0FBSztDQU1wQyxJQUFJLENBQUMsT0FBTyxZQUFZLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLGVBQ3RELE1BQU0sSUFBSSxNQUFNLHVEQUF1RDtDQUd6RSxNQUFNLFdBQVcsdUJBQXVCLE9BQU8sUUFBUTtDQUN2RCxNQUFNLGVBQWUsdUJBQXVCLE9BQU8sWUFBWTtDQUMvRCxNQUFNLFlBQVksU0FBUyxhQUFhLGFBQWE7Q0FDckQsSUFBSSxDQUFDLFdBQVcsTUFBTSxJQUFJLE1BQU0sbURBQW1EO0NBRW5GLE9BQU87RUFDTCxhQUFhLE9BQU87RUFDcEIsY0FBYyxPQUFPO0VBQ3JCLFNBQVMsT0FBTztFQUNoQixzQkFDRSxhQUFhLGNBQ1osT0FBTyxhQUFhLEtBQUssSUFBSSxJQUFJLE9BQU8sYUFBYSxNQUFPLEtBQUssSUFBSTtFQUN4RSxHQUFJLFNBQVMsWUFBWSxFQUFFLGtCQUFrQixTQUFTLFVBQVUsSUFBSSxDQUFDO0VBQ3JFO0VBQ0EsR0FBSyxTQUFTLFlBQVksYUFBYSxXQUNuQyxFQUFFLFVBQVUsU0FBUyxZQUFZLGFBQWEsU0FBUyxJQUN2RCxDQUFDO0NBQ1A7QUFDRiJ9
@@ -1,7 +1,77 @@
1
+ import { buildCodexIdentityHeaders } from "./openai-backend-protocol.js";
1
2
  //#region src/utils/providers/openai/openai-quota.ts
2
- async function readOpenAIQuotaUsage(readRateLimits) {
3
+ const CHATGPT_WHAM_USAGE_URL = "https://chatgpt.com/backend-api/wham/usage";
4
+ async function readDirect(options) {
5
+ const response = await (options.fetch ?? fetch)(CHATGPT_WHAM_USAGE_URL, {
6
+ method: "GET",
7
+ headers: buildCodexIdentityHeaders(options.credentials.accessToken, options.credentials.accountId),
8
+ ...options.signal ? { signal: options.signal } : {}
9
+ });
10
+ if (!response.ok) throw new Error(`OpenAI quota lookup failed: HTTP ${response.status}`);
11
+ return {
12
+ data: normalizeWhamUsage(await response.json()),
13
+ cachedAt: Date.now()
14
+ };
15
+ }
16
+ function windowFrom(value) {
17
+ if (!value || typeof value !== "object") return null;
18
+ const source = value;
19
+ const usedPercent = Number(source.usedPercent ?? source.used_percent);
20
+ if (!Number.isFinite(usedPercent)) return null;
21
+ const duration = source.windowDurationMins ?? source.window_minutes;
22
+ const resets = source.resetsAt ?? source.reset_at;
23
+ return {
24
+ usedPercent,
25
+ windowDurationMins: duration === null || duration === void 0 ? null : Number(duration),
26
+ resetsAt: resets === null || resets === void 0 ? null : Number(resets)
27
+ };
28
+ }
29
+ function snapshotFrom(value) {
30
+ const source = value && typeof value === "object" ? value : {};
31
+ const limitId = source.limitId ?? source.limit_id;
32
+ const limitName = source.limitName ?? source.limit_name;
33
+ return {
34
+ limitId: typeof limitId === "string" ? limitId : null,
35
+ limitName: typeof limitName === "string" ? limitName : null,
36
+ primary: windowFrom(source.primary ?? source.primary_window),
37
+ secondary: windowFrom(source.secondary ?? source.secondary_window),
38
+ credits: source.credits ?? null,
39
+ planType: typeof (source.planType ?? source.plan_type) === "string" ? String(source.planType ?? source.plan_type) : null,
40
+ rateLimitReachedType: typeof (source.rateLimitReachedType ?? source.rate_limit_reached) === "string" ? String(source.rateLimitReachedType ?? source.rate_limit_reached) : null
41
+ };
42
+ }
43
+ function normalizeWhamUsage(body) {
44
+ if (body.rateLimits && typeof body.rateLimits === "object") return body;
45
+ const container = body.rate_limits && typeof body.rate_limits === "object" ? body.rate_limits : body;
46
+ const shared = {
47
+ plan_type: body.plan_type ?? container.plan_type,
48
+ credits: body.credits ?? container.credits,
49
+ rate_limit_reached: body.rate_limit_reached ?? container.rate_limit_reached
50
+ };
51
+ const primary = snapshotFrom({
52
+ ...shared,
53
+ ...container.rate_limit ?? container
54
+ });
55
+ const additional = Array.isArray(container.additional_rate_limits) ? container.additional_rate_limits : Array.isArray(body.additional_rate_limits) ? body.additional_rate_limits : [];
56
+ const byId = {};
57
+ for (const entry of additional) {
58
+ if (!entry || typeof entry !== "object") continue;
59
+ const wrapper = entry;
60
+ const snapshot = snapshotFrom({
61
+ ...shared,
62
+ ...wrapper.rate_limit ?? wrapper
63
+ });
64
+ if (snapshot.limitId) byId[snapshot.limitId] = snapshot;
65
+ }
66
+ return {
67
+ rateLimits: primary,
68
+ rateLimitsByLimitId: Object.keys(byId).length ? byId : null
69
+ };
70
+ }
71
+ async function readOpenAIQuotaUsage(source) {
3
72
  try {
4
- const { data, cachedAt } = await readRateLimits();
73
+ const direct = typeof source !== "function";
74
+ const { data, cachedAt } = await (typeof source === "function" ? source() : readDirect(source));
5
75
  const rateLimits = data.rateLimits;
6
76
  const primary = rateLimits?.primary;
7
77
  if (!primary || typeof primary.usedPercent !== "number" || !Number.isFinite(primary.usedPercent)) return {
@@ -14,7 +84,8 @@ async function readOpenAIQuotaUsage(readRateLimits) {
14
84
  cacheAgeMs: Math.max(Date.now() - cachedAt, 0),
15
85
  windowDurationMins: primary.windowDurationMins,
16
86
  resetsAt: primary.resetsAt,
17
- limitId: rateLimits.limitId
87
+ limitId: rateLimits.limitId,
88
+ ...direct ? { raw: data } : {}
18
89
  };
19
90
  } catch (e) {
20
91
  return {
@@ -24,6 +95,6 @@ async function readOpenAIQuotaUsage(readRateLimits) {
24
95
  }
25
96
  }
26
97
  //#endregion
27
- export { readOpenAIQuotaUsage };
98
+ export { CHATGPT_WHAM_USAGE_URL, readOpenAIQuotaUsage };
28
99
 
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXF1b3RhLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvb3BlbmFpL29wZW5haS1xdW90YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEdldEFjY291bnRSYXRlTGltaXRzUmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vLi4vY29kZXgtcHJvdG9jb2wvdjIvR2V0QWNjb3VudFJhdGVMaW1pdHNSZXNwb25zZVwiO1xuXG5leHBvcnQgdHlwZSBPcGVuQUlSYXRlTGltaXRzV2l0aE1ldGEgPSB7XG4gIGRhdGE6IEdldEFjY291bnRSYXRlTGltaXRzUmVzcG9uc2U7XG4gIGNhY2hlZEF0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBPcGVuQUlRdW90YVVzYWdlUmVzdWx0ID1cbiAgfCB7XG4gICAgICBraW5kOiBcIm9rXCI7XG4gICAgICB1dGlsaXphdGlvblBjdDogbnVtYmVyO1xuICAgICAgY2FjaGVBZ2VNczogbnVtYmVyO1xuICAgICAgd2luZG93RHVyYXRpb25NaW5zOiBudW1iZXIgfCBudWxsO1xuICAgICAgcmVzZXRzQXQ6IG51bWJlciB8IG51bGw7XG4gICAgICBsaW1pdElkOiBzdHJpbmcgfCBudWxsO1xuICAgIH1cbiAgfCB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiOyByZWFzb246IHN0cmluZyB9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE9wZW5BSVF1b3RhVXNhZ2UoXG4gIHJlYWRSYXRlTGltaXRzOiAoKSA9PiBQcm9taXNlPE9wZW5BSVJhdGVMaW1pdHNXaXRoTWV0YT4sXG4pOiBQcm9taXNlPE9wZW5BSVF1b3RhVXNhZ2VSZXN1bHQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGRhdGEsIGNhY2hlZEF0IH0gPSBhd2FpdCByZWFkUmF0ZUxpbWl0cygpO1xuICAgIGNvbnN0IHJhdGVMaW1pdHMgPSBkYXRhLnJhdGVMaW1pdHM7XG4gICAgY29uc3QgcHJpbWFyeSA9IHJhdGVMaW1pdHM/LnByaW1hcnk7XG5cbiAgICBpZiAoXG4gICAgICAhcHJpbWFyeSB8fFxuICAgICAgdHlwZW9mIHByaW1hcnkudXNlZFBlcmNlbnQgIT09IFwibnVtYmVyXCIgfHxcbiAgICAgICFOdW1iZXIuaXNGaW5pdGUocHJpbWFyeS51c2VkUGVyY2VudClcbiAgICApIHtcbiAgICAgIHJldHVybiB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiLCByZWFzb246IFwicHJpbWFyeSB1c2VkUGVyY2VudCB1bmF2YWlsYWJsZVwiIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQ6IFwib2tcIixcbiAgICAgIHV0aWxpemF0aW9uUGN0OiBwcmltYXJ5LnVzZWRQZXJjZW50LFxuICAgICAgY2FjaGVBZ2VNczogTWF0aC5tYXgoRGF0ZS5ub3coKSAtIGNhY2hlZEF0LCAwKSxcbiAgICAgIHdpbmRvd0R1cmF0aW9uTWluczogcHJpbWFyeS53aW5kb3dEdXJhdGlvbk1pbnMsXG4gICAgICByZXNldHNBdDogcHJpbWFyeS5yZXNldHNBdCxcbiAgICAgIGxpbWl0SWQ6IHJhdGVMaW1pdHMubGltaXRJZCxcbiAgICB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHsga2luZDogXCJsb29rdXBfZmFpbGVkXCIsIHJlYXNvbjogKGUgYXMgRXJyb3IpLm1lc3NhZ2UgfTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBa0JBLGVBQXNCLHFCQUNwQixnQkFDaUM7Q0FDakMsSUFBSTtFQUNGLE1BQU0sRUFBRSxNQUFNLGFBQWEsTUFBTSxlQUFlO0VBQ2hELE1BQU0sYUFBYSxLQUFLO0VBQ3hCLE1BQU0sVUFBVSxZQUFZO0VBRTVCLElBQ0UsQ0FBQyxXQUNELE9BQU8sUUFBUSxnQkFBZ0IsWUFDL0IsQ0FBQyxPQUFPLFNBQVMsUUFBUSxXQUFXLEdBRXBDLE9BQU87R0FBRSxNQUFNO0dBQWlCLFFBQVE7RUFBa0M7RUFHNUUsT0FBTztHQUNMLE1BQU07R0FDTixnQkFBZ0IsUUFBUTtHQUN4QixZQUFZLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxVQUFVLENBQUM7R0FDN0Msb0JBQW9CLFFBQVE7R0FDNUIsVUFBVSxRQUFRO0dBQ2xCLFNBQVMsV0FBVztFQUN0QjtDQUNGLFNBQVMsR0FBRztFQUNWLE9BQU87R0FBRSxNQUFNO0dBQWlCLFFBQVMsRUFBWTtFQUFRO0NBQy9EO0FBQ0YifQ==
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXF1b3RhLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvb3BlbmFpL29wZW5haS1xdW90YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIE9wZW5BSUNyZWRlbnRpYWxzIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLnR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFF1b3RhUmF0ZUxpbWl0cywgdHlwZSBRdW90YVJhdGVMaW1pdFNuYXBzaG90IH0gZnJvbSBcIi4uL2NvbW1vbi9wcm92aWRlci10eXBlc1wiO1xuaW1wb3J0IHsgYnVpbGRDb2RleElkZW50aXR5SGVhZGVycyB9IGZyb20gXCIuL29wZW5haS1iYWNrZW5kLXByb3RvY29sXCI7XG5cbmV4cG9ydCBjb25zdCBDSEFUR1BUX1dIQU1fVVNBR0VfVVJMID0gXCJodHRwczovL2NoYXRncHQuY29tL2JhY2tlbmQtYXBpL3doYW0vdXNhZ2VcIiBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3BlbkFJUmF0ZUxpbWl0c1dpdGhNZXRhID0ge1xuICBkYXRhOiBRdW90YVJhdGVMaW1pdHM7XG4gIGNhY2hlZEF0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBPcGVuQUlRdW90YVVzYWdlUmVzdWx0ID1cbiAgfCB7XG4gICAgICBraW5kOiBcIm9rXCI7XG4gICAgICB1dGlsaXphdGlvblBjdDogbnVtYmVyO1xuICAgICAgY2FjaGVBZ2VNczogbnVtYmVyO1xuICAgICAgd2luZG93RHVyYXRpb25NaW5zOiBudW1iZXIgfCBudWxsO1xuICAgICAgcmVzZXRzQXQ6IG51bWJlciB8IG51bGw7XG4gICAgICBsaW1pdElkOiBzdHJpbmcgfCBudWxsO1xuICAgICAgcmF3PzogUXVvdGFSYXRlTGltaXRzO1xuICAgIH1cbiAgfCB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiOyByZWFzb246IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVF1b3RhSHR0cE9wdGlvbnMge1xuICBjcmVkZW50aWFsczogUGljazxPcGVuQUlDcmVkZW50aWFscywgXCJhY2Nlc3NUb2tlblwiIHwgXCJhY2NvdW50SWRcIj47XG4gIGZldGNoPzogdHlwZW9mIGZldGNoO1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZERpcmVjdChvcHRpb25zOiBPcGVuQUlRdW90YUh0dHBPcHRpb25zKTogUHJvbWlzZTxPcGVuQUlSYXRlTGltaXRzV2l0aE1ldGE+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCAob3B0aW9ucy5mZXRjaCA/PyBmZXRjaCkoQ0hBVEdQVF9XSEFNX1VTQUdFX1VSTCwge1xuICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICBoZWFkZXJzOiBidWlsZENvZGV4SWRlbnRpdHlIZWFkZXJzKFxuICAgICAgb3B0aW9ucy5jcmVkZW50aWFscy5hY2Nlc3NUb2tlbixcbiAgICAgIG9wdGlvbnMuY3JlZGVudGlhbHMuYWNjb3VudElkLFxuICAgICksXG4gICAgLi4uKG9wdGlvbnMuc2lnbmFsID8geyBzaWduYWw6IG9wdGlvbnMuc2lnbmFsIH0gOiB7fSksXG4gIH0pO1xuICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoYE9wZW5BSSBxdW90YSBsb29rdXAgZmFpbGVkOiBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICBjb25zdCBib2R5ID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGRhdGEgPSBub3JtYWxpemVXaGFtVXNhZ2UoYm9keSk7XG4gIHJldHVybiB7IGRhdGEsIGNhY2hlZEF0OiBEYXRlLm5vdygpIH07XG59XG5cbmZ1bmN0aW9uIHdpbmRvd0Zyb20odmFsdWU6IHVua25vd24pIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHJldHVybiBudWxsO1xuICBjb25zdCBzb3VyY2UgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY29uc3QgdXNlZFBlcmNlbnQgPSBOdW1iZXIoc291cmNlLnVzZWRQZXJjZW50ID8/IHNvdXJjZS51c2VkX3BlcmNlbnQpO1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZSh1c2VkUGVyY2VudCkpIHJldHVybiBudWxsO1xuICBjb25zdCBkdXJhdGlvbiA9IHNvdXJjZS53aW5kb3dEdXJhdGlvbk1pbnMgPz8gc291cmNlLndpbmRvd19taW51dGVzO1xuICBjb25zdCByZXNldHMgPSBzb3VyY2UucmVzZXRzQXQgPz8gc291cmNlLnJlc2V0X2F0O1xuICByZXR1cm4ge1xuICAgIHVzZWRQZXJjZW50LFxuICAgIHdpbmRvd0R1cmF0aW9uTWluczogZHVyYXRpb24gPT09IG51bGwgfHwgZHVyYXRpb24gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBOdW1iZXIoZHVyYXRpb24pLFxuICAgIHJlc2V0c0F0OiByZXNldHMgPT09IG51bGwgfHwgcmVzZXRzID09PSB1bmRlZmluZWQgPyBudWxsIDogTnVtYmVyKHJlc2V0cyksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHNuYXBzaG90RnJvbSh2YWx1ZTogdW5rbm93bik6IFF1b3RhUmF0ZUxpbWl0U25hcHNob3Qge1xuICBjb25zdCBzb3VyY2UgPSAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiID8gdmFsdWUgOiB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGxpbWl0SWQgPSBzb3VyY2UubGltaXRJZCA/PyBzb3VyY2UubGltaXRfaWQ7XG4gIGNvbnN0IGxpbWl0TmFtZSA9IHNvdXJjZS5saW1pdE5hbWUgPz8gc291cmNlLmxpbWl0X25hbWU7XG4gIHJldHVybiB7XG4gICAgbGltaXRJZDogdHlwZW9mIGxpbWl0SWQgPT09IFwic3RyaW5nXCIgPyBsaW1pdElkIDogbnVsbCxcbiAgICBsaW1pdE5hbWU6IHR5cGVvZiBsaW1pdE5hbWUgPT09IFwic3RyaW5nXCIgPyBsaW1pdE5hbWUgOiBudWxsLFxuICAgIHByaW1hcnk6IHdpbmRvd0Zyb20oc291cmNlLnByaW1hcnkgPz8gc291cmNlLnByaW1hcnlfd2luZG93KSxcbiAgICBzZWNvbmRhcnk6IHdpbmRvd0Zyb20oc291cmNlLnNlY29uZGFyeSA/PyBzb3VyY2Uuc2Vjb25kYXJ5X3dpbmRvdyksXG4gICAgY3JlZGl0czogKHNvdXJjZS5jcmVkaXRzID8/IG51bGwpIGFzIFF1b3RhUmF0ZUxpbWl0U25hcHNob3RbXCJjcmVkaXRzXCJdLFxuICAgIHBsYW5UeXBlOlxuICAgICAgdHlwZW9mIChzb3VyY2UucGxhblR5cGUgPz8gc291cmNlLnBsYW5fdHlwZSkgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBTdHJpbmcoc291cmNlLnBsYW5UeXBlID8/IHNvdXJjZS5wbGFuX3R5cGUpXG4gICAgICAgIDogbnVsbCxcbiAgICByYXRlTGltaXRSZWFjaGVkVHlwZTpcbiAgICAgIHR5cGVvZiAoc291cmNlLnJhdGVMaW1pdFJlYWNoZWRUeXBlID8/IHNvdXJjZS5yYXRlX2xpbWl0X3JlYWNoZWQpID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gU3RyaW5nKHNvdXJjZS5yYXRlTGltaXRSZWFjaGVkVHlwZSA/PyBzb3VyY2UucmF0ZV9saW1pdF9yZWFjaGVkKVxuICAgICAgICA6IG51bGwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVdoYW1Vc2FnZShib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFF1b3RhUmF0ZUxpbWl0cyB7XG4gIGlmIChib2R5LnJhdGVMaW1pdHMgJiYgdHlwZW9mIGJvZHkucmF0ZUxpbWl0cyA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBib2R5IGFzIFF1b3RhUmF0ZUxpbWl0cztcbiAgfVxuICBjb25zdCBjb250YWluZXIgPVxuICAgIGJvZHkucmF0ZV9saW1pdHMgJiYgdHlwZW9mIGJvZHkucmF0ZV9saW1pdHMgPT09IFwib2JqZWN0XCJcbiAgICAgID8gKGJvZHkucmF0ZV9saW1pdHMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgICA6IGJvZHk7XG4gIGNvbnN0IHNoYXJlZCA9IHtcbiAgICBwbGFuX3R5cGU6IGJvZHkucGxhbl90eXBlID8/IGNvbnRhaW5lci5wbGFuX3R5cGUsXG4gICAgY3JlZGl0czogYm9keS5jcmVkaXRzID8/IGNvbnRhaW5lci5jcmVkaXRzLFxuICAgIHJhdGVfbGltaXRfcmVhY2hlZDogYm9keS5yYXRlX2xpbWl0X3JlYWNoZWQgPz8gY29udGFpbmVyLnJhdGVfbGltaXRfcmVhY2hlZCxcbiAgfTtcbiAgY29uc3QgcHJpbWFyeSA9IHNuYXBzaG90RnJvbSh7XG4gICAgLi4uc2hhcmVkLFxuICAgIC4uLigoY29udGFpbmVyLnJhdGVfbGltaXQgPz8gY29udGFpbmVyKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gIH0pO1xuICBjb25zdCBhZGRpdGlvbmFsID0gQXJyYXkuaXNBcnJheShjb250YWluZXIuYWRkaXRpb25hbF9yYXRlX2xpbWl0cylcbiAgICA/IGNvbnRhaW5lci5hZGRpdGlvbmFsX3JhdGVfbGltaXRzXG4gICAgOiBBcnJheS5pc0FycmF5KGJvZHkuYWRkaXRpb25hbF9yYXRlX2xpbWl0cylcbiAgICAgID8gYm9keS5hZGRpdGlvbmFsX3JhdGVfbGltaXRzXG4gICAgICA6IFtdO1xuICBjb25zdCBieUlkOiBSZWNvcmQ8c3RyaW5nLCBRdW90YVJhdGVMaW1pdFNuYXBzaG90PiA9IHt9O1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGFkZGl0aW9uYWwpIHtcbiAgICBpZiAoIWVudHJ5IHx8IHR5cGVvZiBlbnRyeSAhPT0gXCJvYmplY3RcIikgY29udGludWU7XG4gICAgY29uc3Qgd3JhcHBlciA9IGVudHJ5IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IHNuYXBzaG90ID0gc25hcHNob3RGcm9tKHtcbiAgICAgIC4uLnNoYXJlZCxcbiAgICAgIC4uLigod3JhcHBlci5yYXRlX2xpbWl0ID8/IHdyYXBwZXIpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSxcbiAgICB9KTtcbiAgICBpZiAoc25hcHNob3QubGltaXRJZCkgYnlJZFtzbmFwc2hvdC5saW1pdElkXSA9IHNuYXBzaG90O1xuICB9XG4gIHJldHVybiB7XG4gICAgcmF0ZUxpbWl0czogcHJpbWFyeSxcbiAgICByYXRlTGltaXRzQnlMaW1pdElkOiBPYmplY3Qua2V5cyhieUlkKS5sZW5ndGggPyBieUlkIDogbnVsbCxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRPcGVuQUlRdW90YVVzYWdlKFxuICBzb3VyY2U6ICgoKSA9PiBQcm9taXNlPE9wZW5BSVJhdGVMaW1pdHNXaXRoTWV0YT4pIHwgT3BlbkFJUXVvdGFIdHRwT3B0aW9ucyxcbik6IFByb21pc2U8T3BlbkFJUXVvdGFVc2FnZVJlc3VsdD4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRpcmVjdCA9IHR5cGVvZiBzb3VyY2UgIT09IFwiZnVuY3Rpb25cIjtcbiAgICBjb25zdCB7IGRhdGEsIGNhY2hlZEF0IH0gPSBhd2FpdCAodHlwZW9mIHNvdXJjZSA9PT0gXCJmdW5jdGlvblwiID8gc291cmNlKCkgOiByZWFkRGlyZWN0KHNvdXJjZSkpO1xuICAgIGNvbnN0IHJhdGVMaW1pdHMgPSBkYXRhLnJhdGVMaW1pdHM7XG4gICAgY29uc3QgcHJpbWFyeSA9IHJhdGVMaW1pdHM/LnByaW1hcnk7XG5cbiAgICBpZiAoXG4gICAgICAhcHJpbWFyeSB8fFxuICAgICAgdHlwZW9mIHByaW1hcnkudXNlZFBlcmNlbnQgIT09IFwibnVtYmVyXCIgfHxcbiAgICAgICFOdW1iZXIuaXNGaW5pdGUocHJpbWFyeS51c2VkUGVyY2VudClcbiAgICApIHtcbiAgICAgIHJldHVybiB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiLCByZWFzb246IFwicHJpbWFyeSB1c2VkUGVyY2VudCB1bmF2YWlsYWJsZVwiIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQ6IFwib2tcIixcbiAgICAgIHV0aWxpemF0aW9uUGN0OiBwcmltYXJ5LnVzZWRQZXJjZW50LFxuICAgICAgY2FjaGVBZ2VNczogTWF0aC5tYXgoRGF0ZS5ub3coKSAtIGNhY2hlZEF0LCAwKSxcbiAgICAgIHdpbmRvd0R1cmF0aW9uTWluczogcHJpbWFyeS53aW5kb3dEdXJhdGlvbk1pbnMsXG4gICAgICByZXNldHNBdDogcHJpbWFyeS5yZXNldHNBdCxcbiAgICAgIGxpbWl0SWQ6IHJhdGVMaW1pdHMubGltaXRJZCxcbiAgICAgIC4uLihkaXJlY3QgPyB7IHJhdzogZGF0YSB9IDoge30pLFxuICAgIH07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4geyBraW5kOiBcImxvb2t1cF9mYWlsZWRcIiwgcmVhc29uOiAoZSBhcyBFcnJvcikubWVzc2FnZSB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBSUEsTUFBYSx5QkFBeUI7QUF5QnRDLGVBQWUsV0FBVyxTQUFvRTtDQUM1RixNQUFNLFdBQVcsT0FBTyxRQUFRLFNBQVMsTUFBQSxDQUFPLHdCQUF3QjtFQUN0RSxRQUFRO0VBQ1IsU0FBUywwQkFDUCxRQUFRLFlBQVksYUFDcEIsUUFBUSxZQUFZLFNBQ3RCO0VBQ0EsR0FBSSxRQUFRLFNBQVMsRUFBRSxRQUFRLFFBQVEsT0FBTyxJQUFJLENBQUM7Q0FDckQsQ0FBQztDQUNELElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxJQUFJLE1BQU0sb0NBQW9DLFNBQVMsUUFBUTtDQUd2RixPQUFPO0VBQUUsTUFESSxtQkFBbUIsTUFEWixTQUFTLEtBQUssQ0FFekI7RUFBTSxVQUFVLEtBQUssSUFBSTtDQUFFO0FBQ3RDO0FBRUEsU0FBUyxXQUFXLE9BQWdCO0NBQ2xDLElBQUksQ0FBQyxTQUFTLE9BQU8sVUFBVSxVQUFVLE9BQU87Q0FDaEQsTUFBTSxTQUFTO0NBQ2YsTUFBTSxjQUFjLE9BQU8sT0FBTyxlQUFlLE9BQU8sWUFBWTtDQUNwRSxJQUFJLENBQUMsT0FBTyxTQUFTLFdBQVcsR0FBRyxPQUFPO0NBQzFDLE1BQU0sV0FBVyxPQUFPLHNCQUFzQixPQUFPO0NBQ3JELE1BQU0sU0FBUyxPQUFPLFlBQVksT0FBTztDQUN6QyxPQUFPO0VBQ0w7RUFDQSxvQkFBb0IsYUFBYSxRQUFRLGFBQWEsU0FBWSxPQUFPLE9BQU8sUUFBUTtFQUN4RixVQUFVLFdBQVcsUUFBUSxXQUFXLFNBQVksT0FBTyxPQUFPLE1BQU07Q0FDMUU7QUFDRjtBQUVBLFNBQVMsYUFBYSxPQUF3QztDQUM1RCxNQUFNLFNBQVUsU0FBUyxPQUFPLFVBQVUsV0FBVyxRQUFRLENBQUM7Q0FDOUQsTUFBTSxVQUFVLE9BQU8sV0FBVyxPQUFPO0NBQ3pDLE1BQU0sWUFBWSxPQUFPLGFBQWEsT0FBTztDQUM3QyxPQUFPO0VBQ0wsU0FBUyxPQUFPLFlBQVksV0FBVyxVQUFVO0VBQ2pELFdBQVcsT0FBTyxjQUFjLFdBQVcsWUFBWTtFQUN2RCxTQUFTLFdBQVcsT0FBTyxXQUFXLE9BQU8sY0FBYztFQUMzRCxXQUFXLFdBQVcsT0FBTyxhQUFhLE9BQU8sZ0JBQWdCO0VBQ2pFLFNBQVUsT0FBTyxXQUFXO0VBQzVCLFVBQ0UsUUFBUSxPQUFPLFlBQVksT0FBTyxlQUFlLFdBQzdDLE9BQU8sT0FBTyxZQUFZLE9BQU8sU0FBUyxJQUMxQztFQUNOLHNCQUNFLFFBQVEsT0FBTyx3QkFBd0IsT0FBTyx3QkFBd0IsV0FDbEUsT0FBTyxPQUFPLHdCQUF3QixPQUFPLGtCQUFrQixJQUMvRDtDQUNSO0FBQ0Y7QUFFQSxTQUFTLG1CQUFtQixNQUFnRDtDQUMxRSxJQUFJLEtBQUssY0FBYyxPQUFPLEtBQUssZUFBZSxVQUNoRCxPQUFPO0NBRVQsTUFBTSxZQUNKLEtBQUssZUFBZSxPQUFPLEtBQUssZ0JBQWdCLFdBQzNDLEtBQUssY0FDTjtDQUNOLE1BQU0sU0FBUztFQUNiLFdBQVcsS0FBSyxhQUFhLFVBQVU7RUFDdkMsU0FBUyxLQUFLLFdBQVcsVUFBVTtFQUNuQyxvQkFBb0IsS0FBSyxzQkFBc0IsVUFBVTtDQUMzRDtDQUNBLE1BQU0sVUFBVSxhQUFhO0VBQzNCLEdBQUc7RUFDSCxHQUFLLFVBQVUsY0FBYztDQUMvQixDQUFDO0NBQ0QsTUFBTSxhQUFhLE1BQU0sUUFBUSxVQUFVLHNCQUFzQixJQUM3RCxVQUFVLHlCQUNWLE1BQU0sUUFBUSxLQUFLLHNCQUFzQixJQUN2QyxLQUFLLHlCQUNMLENBQUM7Q0FDUCxNQUFNLE9BQStDLENBQUM7Q0FDdEQsS0FBSyxNQUFNLFNBQVMsWUFBWTtFQUM5QixJQUFJLENBQUMsU0FBUyxPQUFPLFVBQVUsVUFBVTtFQUN6QyxNQUFNLFVBQVU7RUFDaEIsTUFBTSxXQUFXLGFBQWE7R0FDNUIsR0FBRztHQUNILEdBQUssUUFBUSxjQUFjO0VBQzdCLENBQUM7RUFDRCxJQUFJLFNBQVMsU0FBUyxLQUFLLFNBQVMsV0FBVztDQUNqRDtDQUNBLE9BQU87RUFDTCxZQUFZO0VBQ1oscUJBQXFCLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxTQUFTLE9BQU87Q0FDekQ7QUFDRjtBQUVBLGVBQXNCLHFCQUNwQixRQUNpQztDQUNqQyxJQUFJO0VBQ0YsTUFBTSxTQUFTLE9BQU8sV0FBVztFQUNqQyxNQUFNLEVBQUUsTUFBTSxhQUFhLE9BQU8sT0FBTyxXQUFXLGFBQWEsT0FBTyxJQUFJLFdBQVcsTUFBTTtFQUM3RixNQUFNLGFBQWEsS0FBSztFQUN4QixNQUFNLFVBQVUsWUFBWTtFQUU1QixJQUNFLENBQUMsV0FDRCxPQUFPLFFBQVEsZ0JBQWdCLFlBQy9CLENBQUMsT0FBTyxTQUFTLFFBQVEsV0FBVyxHQUVwQyxPQUFPO0dBQUUsTUFBTTtHQUFpQixRQUFRO0VBQWtDO0VBRzVFLE9BQU87R0FDTCxNQUFNO0dBQ04sZ0JBQWdCLFFBQVE7R0FDeEIsWUFBWSxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksVUFBVSxDQUFDO0dBQzdDLG9CQUFvQixRQUFRO0dBQzVCLFVBQVUsUUFBUTtHQUNsQixTQUFTLFdBQVc7R0FDcEIsR0FBSSxTQUFTLEVBQUUsS0FBSyxLQUFLLElBQUksQ0FBQztFQUNoQztDQUNGLFNBQVMsR0FBRztFQUNWLE9BQU87R0FBRSxNQUFNO0dBQWlCLFFBQVMsRUFBWTtFQUFRO0NBQy9EO0FBQ0YifQ==
@@ -1,12 +1,12 @@
1
1
  import { TokenModel } from "../../../application/token/token.model.js";
2
- import { deactivateAuthDeadToken } from "../../../application/qgrid/token-death.js";
3
2
  import { OPENAI_CLIENT_ID, OPENAI_TOKEN_URL } from "./openai-constants.js";
3
+ import { deactivateAuthDeadToken } from "../../../application/qgrid/token-death.js";
4
4
  import { getLogger } from "@logtape/logtape";
5
5
  //#region src/utils/providers/openai/openai-refresh.ts
6
6
  /**
7
7
  * OpenAI chatgptAuthTokens refresh handler.
8
8
  *
9
- * - codex app-server 가 401 받으면 `account/chatgptAuthTokens/refresh` server-request 를 보냄
9
+ * - direct HTTPS/WS transport가 401 refresh를 소유하고 저장된 refresh token으로 갱신함
10
10
  * - qgrid 가 DB 의 refresh_token 으로 새 access_token 을 발급받아 응답
11
11
  * - per-token inflight promise 로 concurrent refresh dedup
12
12
  * - rotation 감지: 새 refresh_token 있으면 DB 즉시 업데이트
@@ -112,4 +112,4 @@ async function doRefresh(tokenId) {
112
112
  //#endregion
113
113
  export { handleChatgptAuthTokensRefresh };
114
114
 
115
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXJlZnJlc2guanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLXJlZnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVuQUkgY2hhdGdwdEF1dGhUb2tlbnMgcmVmcmVzaCBoYW5kbGVyLlxuICpcbiAqIC0gY29kZXggYXBwLXNlcnZlciDqsIAgNDAxIOuwm+ycvOuptCBgYWNjb3VudC9jaGF0Z3B0QXV0aFRva2Vucy9yZWZyZXNoYCBzZXJ2ZXItcmVxdWVzdCDrpbwg67O064OEXG4gKiAtIHFncmlkIOqwgCBEQiDsnZggcmVmcmVzaF90b2tlbiDsnLzroZwg7IOIIGFjY2Vzc190b2tlbiDsnYQg67Cc6riJ67Cb7JWEIOydkeuLtVxuICogLSBwZXItdG9rZW4gaW5mbGlnaHQgcHJvbWlzZSDroZwgY29uY3VycmVudCByZWZyZXNoIGRlZHVwXG4gKiAtIHJvdGF0aW9uIOqwkOyngDog7IOIIHJlZnJlc2hfdG9rZW4g7J6I7Jy866m0IERCIOymieyLnCDsl4XrjbDsnbTtirhcbiAqL1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcblxuaW1wb3J0IHsgZGVhY3RpdmF0ZUF1dGhEZWFkVG9rZW4gfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vcWdyaWQvdG9rZW4tZGVhdGhcIjtcbmltcG9ydCB7IFRva2VuTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4ubW9kZWxcIjtcbmltcG9ydCB7IHR5cGUgT3BlbkFJQ3JlZGVudGlhbHMgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcInFncmlkXCIsIFwib3BlbmFpLXJlZnJlc2hcIl0pO1xuXG5pbXBvcnQgeyBPUEVOQUlfQ0xJRU5UX0lELCBPUEVOQUlfVE9LRU5fVVJMIH0gZnJvbSBcIi4vb3BlbmFpLWNvbnN0YW50c1wiO1xuXG4vLyDsnqzroZzqt7jsnbgg7Jm4IOuzteq1rCDrtojqsIDtlZwgcmVmcmVzaCDsi6TtjKgg7L2U65OcLiDslrTripAg6rKD7J2065OgIO2GoO2BsOydtCDso73sl4jri6TripQg7ZmV7KCVIOyLoO2YuOuLpC5cbmNvbnN0IFBFUk1BTkVOVF9GQUlMVVJFX0NPREVTID0gbmV3IFNldChbXG4gIFwicmVmcmVzaF90b2tlbl9leHBpcmVkXCIsXG4gIFwicmVmcmVzaF90b2tlbl9yZXVzZWRcIixcbiAgXCJyZWZyZXNoX3Rva2VuX2ludmFsaWRhdGVkXCIsXG5dKTtcblxuLy8gcGVyLXRva2VuIGluZmxpZ2h0IHByb21pc2UgZGVkdXAgKyBtaW5pbXVtIGludGVydmFsXG5jb25zdCBpbmZsaWdodFJlZnJlc2ggPSBuZXcgTWFwPG51bWJlciwgUHJvbWlzZTxSZWZyZXNoUmVzdWx0Pj4oKTtcbmNvbnN0IGxhc3RSZWZyZXNoVGltZSA9IG5ldyBNYXA8bnVtYmVyLCBudW1iZXI+KCk7XG5jb25zdCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUyA9IDVfMDAwO1xuXG5pbnRlcmZhY2UgUmVmcmVzaFJlc3VsdCB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGNoYXRncHRBY2NvdW50SWQ6IHN0cmluZztcbiAgY2hhdGdwdFBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ2hhdGdwdEF1dGhUb2tlbnNSZWZyZXNoKHRva2VuSWQ6IG51bWJlcik6IFByb21pc2U8UmVmcmVzaFJlc3VsdD4ge1xuICBsb2dnZXIuaW5mbyhgcmVmcmVzaCByZXF1ZXN0ZWQgZm9yIHRva2VuICR7dG9rZW5JZH0gKHBpZD0ke3Byb2Nlc3MucGlkfSlgKTtcbiAgY29uc3QgZXhpc3RpbmcgPSBpbmZsaWdodFJlZnJlc2guZ2V0KHRva2VuSWQpO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICBsb2dnZXIuaW5mbyhgcmVmcmVzaCBkZWR1cCBmb3IgdG9rZW4gJHt0b2tlbklkfWApO1xuICAgIHJldHVybiBleGlzdGluZztcbiAgfVxuXG4gIGNvbnN0IGxhc3RBdCA9IGxhc3RSZWZyZXNoVGltZS5nZXQodG9rZW5JZCkgPz8gMDtcbiAgaWYgKERhdGUubm93KCkgLSBsYXN0QXQgPCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUykge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoIHRvbyBzb29uIGZvciB0b2tlbiAke3Rva2VuSWR9LCByZWFkaW5nIGN1cnJlbnQgY3JlZHMgZnJvbSBEQmApO1xuICAgIHJldHVybiByZWFkQ3VycmVudENyZWRzKHRva2VuSWQpO1xuICB9XG5cbiAgbGFzdFJlZnJlc2hUaW1lLnNldCh0b2tlbklkLCBEYXRlLm5vdygpKTtcbiAgY29uc3QgcHJvbWlzZSA9IGRvUmVmcmVzaCh0b2tlbklkKTtcbiAgaW5mbGlnaHRSZWZyZXNoLnNldCh0b2tlbklkLCBwcm9taXNlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBwcm9taXNlO1xuICB9IGZpbmFsbHkge1xuICAgIGluZmxpZ2h0UmVmcmVzaC5kZWxldGUodG9rZW5JZCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZEN1cnJlbnRDcmVkcyh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHRocm93IG5ldyBFcnJvcihgdG9rZW4gJHt0b2tlbklkfSBub3QgZm91bmRgKTtcbiAgY29uc3QgY3JlZHMgPSB0b2tlbi5jcmVkZW50aWFscyBhcyBPcGVuQUlDcmVkZW50aWFscztcbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogY3JlZHMuYWNjZXNzVG9rZW4sXG4gICAgY2hhdGdwdEFjY291bnRJZDogY3JlZHMuYWNjb3VudElkLFxuICAgIGNoYXRncHRQbGFuVHlwZTogY3JlZHMucGxhblR5cGUsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvUmVmcmVzaCh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHRva2VuICR7dG9rZW5JZH0gbm90IGZvdW5kIG9yIG5vdCBvcGVuYWlgKTtcbiAgfVxuXG4gIGNvbnN0IGNyZWRzID0gdG9rZW4uY3JlZGVudGlhbHMgYXMgT3BlbkFJQ3JlZGVudGlhbHM7XG4gIGlmICghY3JlZHMucmVmcmVzaFRva2VuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB0b2tlbiAke3Rva2VuSWR9IGhhcyBubyByZWZyZXNoVG9rZW5gKTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGByZWZyZXNoaW5nIHRva2VuICR7dG9rZW4ubmFtZX0gKGlkPSR7dG9rZW5JZH0pYCk7XG5cbiAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKE9QRU5BSV9UT0tFTl9VUkwsIHtcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LFxuICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICBjbGllbnRfaWQ6IE9QRU5BSV9DTElFTlRfSUQsXG4gICAgICByZWZyZXNoX3Rva2VuOiBjcmVkcy5yZWZyZXNoVG9rZW4sXG4gICAgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcC5vaykge1xuICAgIGNvbnN0IGJvZHkgPSBhd2FpdCByZXNwLnRleHQoKS5jYXRjaCgoKSA9PiBcIlwiKTtcbiAgICAvLyA0MDEg67O466y47J2YIGVycm9yIOy9lOuTnOqwgCDthqDtgbAg7IKs66ed7J2YIOqysOygleyggSDsgqzsnbjsnbTri6QuXG4gICAgLy8gICByZWZyZXNoX3Rva2VuX2V4cGlyZWQgICAgIOKGkiByZWZyZXNoX3Rva2VuIOyekOyytCDrp4zro4xcbiAgICAvLyAgIHJlZnJlc2hfdG9rZW5fcmV1c2VkICAgICAg4oaSIOydtOuvuCDsgqzsmqnrkJwo7ZqM7KCEIO2PkOq4sOuQnCkgcmVmcmVzaF90b2tlbiDsnqzsgqzsmqkg4oaSIO2MqOuwgOumrCDrrLTtmqjtmZRcbiAgICAvLyAgIHJlZnJlc2hfdG9rZW5faW52YWxpZGF0ZWQg4oaSIOyEnOuyhOy4oSByZXZva2VcbiAgICAvLyDsnIQgM+qwnOuKlCDrqqjrkZAg7JiB6rWsIOyLpO2MqC4g7J6s65Ox66GdIOyZuCDrs7Xqtawg67aI6rCALlxuICAgIGxldCBlcnJvckNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgZXJyb3JDb2RlID0gKEpTT04ucGFyc2UoYm9keSkgYXMgeyBlcnJvcj86IHN0cmluZyB9KS5lcnJvcjtcbiAgICB9IGNhdGNoIHt9XG4gICAgbG9nZ2VyLmVycm9yKFxuICAgICAgYE9wZW5BSSByZWZyZXNoIEZBSUxFRCB0b2tlbj0ke3Rva2VuLm5hbWV9KGlkPSR7dG9rZW5JZH0pIHN0YXR1cz0ke3Jlc3Auc3RhdHVzfSBgICtcbiAgICAgICAgYGNvZGU9JHtlcnJvckNvZGUgPz8gXCI/XCJ9IGJvZHk9JHtib2R5fWAsXG4gICAgKTtcbiAgICAvLyDsmIHqtawg7Iuk7Yyo64qUIGVycm9yQ29kZSDroZzrp4wg7YyQ7KCV7ZWc64ukIOKAlCBzdGF0dXMg66W8IO2VqOq7mCDsmpTqtaztlZjrqbQgcHJvdmlkZXIg6rCAXG4gICAgLy8g7IOB7YOc7L2U65Oc66W8IOuwlOq/gCDrlYwg7YyQ7KCV7J20IOyhsOyaqe2eiCDrqY7ripTri6QuXG4gICAgaWYgKGVycm9yQ29kZSAmJiBQRVJNQU5FTlRfRkFJTFVSRV9DT0RFUy5oYXMoZXJyb3JDb2RlKSkge1xuICAgICAgYXdhaXQgZGVhY3RpdmF0ZUF1dGhEZWFkVG9rZW4oXG4gICAgICAgIHsgaWQ6IHRva2VuSWQsIG5hbWU6IHRva2VuLm5hbWUsIHByb3ZpZGVyOiBcIm9wZW5haVwiIH0sXG4gICAgICAgIGNyZWRzLnJlZnJlc2hUb2tlbixcbiAgICAgICAgYG9wZW5haToke2Vycm9yQ29kZX1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPcGVuQUkgcmVmcmVzaCBmYWlsZWQ6ICR7cmVzcC5zdGF0dXN9ICR7Ym9keX1gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSAoYXdhaXQgcmVzcC5qc29uKCkpIGFzIHtcbiAgICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICAgIGV4cGlyZXNfaW4/OiBudW1iZXI7XG4gICAgaWRfdG9rZW4/OiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgbmV3UmVmcmVzaFRva2VuID0gZGF0YS5yZWZyZXNoX3Rva2VuID8/IGNyZWRzLnJlZnJlc2hUb2tlbjtcbiAgY29uc3Qgcm90YXRlZCA9XG4gICAgZGF0YS5yZWZyZXNoX3Rva2VuICE9PSBudWxsICYmXG4gICAgZGF0YS5yZWZyZXNoX3Rva2VuICE9PSB1bmRlZmluZWQgJiZcbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IGNyZWRzLnJlZnJlc2hUb2tlbjtcbiAgaWYgKHJvdGF0ZWQpIHtcbiAgICBsb2dnZXIuaW5mbyhgcmVmcmVzaF90b2tlbiByb3RhdGVkIGZvciB0b2tlbiAke3Rva2VuLm5hbWV9YCk7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkQ3JlZHM6IE9wZW5BSUNyZWRlbnRpYWxzID0ge1xuICAgIC4uLmNyZWRzLFxuICAgIGFjY2Vzc1Rva2VuOiBkYXRhLmFjY2Vzc190b2tlbixcbiAgICByZWZyZXNoVG9rZW46IG5ld1JlZnJlc2hUb2tlbixcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdDogZGF0YS5leHBpcmVzX2luXG4gICAgICA/IERhdGUubm93KCkgKyBkYXRhLmV4cGlyZXNfaW4gKiAxMDAwXG4gICAgICA6IGNyZWRzLmFjY2Vzc1Rva2VuRXhwaXJlc0F0LFxuICAgIC4uLihkYXRhLmlkX3Rva2VuID8geyBpZFRva2VuOiBkYXRhLmlkX3Rva2VuIH0gOiB7fSksXG4gIH07XG5cbiAgLy8g7ZqM7KCEKHJvdGF0ZWQp7J20IOydvOyWtOuCrOuKlOuNsCDsnbQgc2F2ZSDqsIAg7Iuk7Yyo7ZWY66m0LCBPcGVuQUkg7Kq9IOyYmyByZWZyZXNoX3Rva2VuIOydgCDsnbTrr7hcbiAgLy8g7Y+Q6riw65CcIOyDge2DnOyXkOyEnCBEQiDsl5DripQg7JibIO2GoO2BsOydtCDrgqjripTri6Qg4oaSIOuLpOydjCByZWZyZXNoIOqwgCByZWZyZXNoX3Rva2VuX3JldXNlZCDroZxcbiAgLy8g7JiB6rWsIOyCrOunnS4g7J20IOq1rOqwhCDsi6TtjKjripQg7Yag7YGwIOyCrOunneydmCDsp4HsoJEg7JuQ7J247J2066+A66GcIOuwmOuTnOyLnCDtgazqsowg64Ko6ri064ukLlxuICB0cnkge1xuICAgIGF3YWl0IFRva2VuTW9kZWwuc2F2ZShbXG4gICAgICB7XG4gICAgICAgIGlkOiB0b2tlbklkLFxuICAgICAgICBwcm92aWRlcjogXCJvcGVuYWlcIixcbiAgICAgICAgY3JlZGVudGlhbHM6IHVwZGF0ZWRDcmVkcyxcbiAgICAgICAgbmFtZTogdG9rZW4ubmFtZSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoXG4gICAgICBgT3BlbkFJIHJlZnJlc2g6IERCIHNhdmUgRkFJTEVEIGFmdGVyIHJvdGF0aW9uKHJvdGF0ZWQ9JHtyb3RhdGVkfSkgYCArXG4gICAgICAgIGB0b2tlbj0ke3Rva2VuLm5hbWV9KGlkPSR7dG9rZW5JZH0pIOKAlCDsmJsgcmVmcmVzaF90b2tlbiDtj5DquLDrkKgsIERCIOuvuOuwmOyYgSDihpIg7Yag7YGwIOyCrOunnSDsnITtl5guIGVycj0ke1N0cmluZyhlKX1gLFxuICAgICk7XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGB0b2tlbiAke3Rva2VuLm5hbWV9IHJlZnJlc2hlZCBzdWNjZXNzZnVsbHkgKHJvdGF0ZWQ9JHtyb3RhdGVkfSlgKTtcblxuICByZXR1cm4ge1xuICAgIGFjY2Vzc1Rva2VuOiBkYXRhLmFjY2Vzc190b2tlbixcbiAgICBjaGF0Z3B0QWNjb3VudElkOiBjcmVkcy5hY2NvdW50SWQsXG4gICAgY2hhdGdwdFBsYW5UeXBlOiBjcmVkcy5wbGFuVHlwZSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQWNBLE1BQU0sU0FBUyxVQUFVLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQztBQUtwRCxNQUFNLDBDQUEwQixJQUFJLElBQUk7Q0FDdEM7Q0FDQTtDQUNBO0FBQ0YsQ0FBQztBQUdELE1BQU0sa0NBQWtCLElBQUksSUFBb0M7QUFDaEUsTUFBTSxrQ0FBa0IsSUFBSSxJQUFvQjtBQUNoRCxNQUFNLDBCQUEwQjtBQVFoQyxlQUFzQiwrQkFBK0IsU0FBeUM7Q0FDNUYsT0FBTyxLQUFLLCtCQUErQixRQUFRLFFBQVEsUUFBUSxJQUFJLEVBQUU7Q0FDekUsTUFBTSxXQUFXLGdCQUFnQixJQUFJLE9BQU87Q0FDNUMsSUFBSSxVQUFVO0VBQ1osT0FBTyxLQUFLLDJCQUEyQixTQUFTO0VBQ2hELE9BQU87Q0FDVDtDQUVBLE1BQU0sU0FBUyxnQkFBZ0IsSUFBSSxPQUFPLEtBQUs7Q0FDL0MsSUFBSSxLQUFLLElBQUksSUFBSSxTQUFTLHlCQUF5QjtFQUNqRCxPQUFPLEtBQUssOEJBQThCLFFBQVEsZ0NBQWdDO0VBQ2xGLE9BQU8saUJBQWlCLE9BQU87Q0FDakM7Q0FFQSxnQkFBZ0IsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDO0NBQ3ZDLE1BQU0s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
115
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXJlZnJlc2guanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLXJlZnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVuQUkgY2hhdGdwdEF1dGhUb2tlbnMgcmVmcmVzaCBoYW5kbGVyLlxuICpcbiAqIC0gZGlyZWN0IEhUVFBTL1dTIHRyYW5zcG9ydOqwgCA0MDEgcmVmcmVzaOulvCDshozsnKDtlZjqs6Ag7KCA7J6l65CcIHJlZnJlc2ggdG9rZW7snLzroZwg6rCx7Iug7ZWoXG4gKiAtIHFncmlkIOqwgCBEQiDsnZggcmVmcmVzaF90b2tlbiDsnLzroZwg7IOIIGFjY2Vzc190b2tlbiDsnYQg67Cc6riJ67Cb7JWEIOydkeuLtVxuICogLSBwZXItdG9rZW4gaW5mbGlnaHQgcHJvbWlzZSDroZwgY29uY3VycmVudCByZWZyZXNoIGRlZHVwXG4gKiAtIHJvdGF0aW9uIOqwkOyngDog7IOIIHJlZnJlc2hfdG9rZW4g7J6I7Jy866m0IERCIOymieyLnCDsl4XrjbDsnbTtirhcbiAqL1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcblxuaW1wb3J0IHsgZGVhY3RpdmF0ZUF1dGhEZWFkVG9rZW4gfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vcWdyaWQvdG9rZW4tZGVhdGhcIjtcbmltcG9ydCB7IFRva2VuTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4ubW9kZWxcIjtcbmltcG9ydCB7IHR5cGUgT3BlbkFJQ3JlZGVudGlhbHMgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcInFncmlkXCIsIFwib3BlbmFpLXJlZnJlc2hcIl0pO1xuXG5pbXBvcnQgeyBPUEVOQUlfQ0xJRU5UX0lELCBPUEVOQUlfVE9LRU5fVVJMIH0gZnJvbSBcIi4vb3BlbmFpLWNvbnN0YW50c1wiO1xuXG4vLyDsnqzroZzqt7jsnbgg7Jm4IOuzteq1rCDrtojqsIDtlZwgcmVmcmVzaCDsi6TtjKgg7L2U65OcLiDslrTripAg6rKD7J2065OgIO2GoO2BsOydtCDso73sl4jri6TripQg7ZmV7KCVIOyLoO2YuOuLpC5cbmNvbnN0IFBFUk1BTkVOVF9GQUlMVVJFX0NPREVTID0gbmV3IFNldChbXG4gIFwicmVmcmVzaF90b2tlbl9leHBpcmVkXCIsXG4gIFwicmVmcmVzaF90b2tlbl9yZXVzZWRcIixcbiAgXCJyZWZyZXNoX3Rva2VuX2ludmFsaWRhdGVkXCIsXG5dKTtcblxuLy8gcGVyLXRva2VuIGluZmxpZ2h0IHByb21pc2UgZGVkdXAgKyBtaW5pbXVtIGludGVydmFsXG5jb25zdCBpbmZsaWdodFJlZnJlc2ggPSBuZXcgTWFwPG51bWJlciwgUHJvbWlzZTxSZWZyZXNoUmVzdWx0Pj4oKTtcbmNvbnN0IGxhc3RSZWZyZXNoVGltZSA9IG5ldyBNYXA8bnVtYmVyLCBudW1iZXI+KCk7XG5jb25zdCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUyA9IDVfMDAwO1xuXG5pbnRlcmZhY2UgUmVmcmVzaFJlc3VsdCB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGNoYXRncHRBY2NvdW50SWQ6IHN0cmluZztcbiAgY2hhdGdwdFBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ2hhdGdwdEF1dGhUb2tlbnNSZWZyZXNoKHRva2VuSWQ6IG51bWJlcik6IFByb21pc2U8UmVmcmVzaFJlc3VsdD4ge1xuICBsb2dnZXIuaW5mbyhgcmVmcmVzaCByZXF1ZXN0ZWQgZm9yIHRva2VuICR7dG9rZW5JZH0gKHBpZD0ke3Byb2Nlc3MucGlkfSlgKTtcbiAgY29uc3QgZXhpc3RpbmcgPSBpbmZsaWdodFJlZnJlc2guZ2V0KHRva2VuSWQpO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICBsb2dnZXIuaW5mbyhgcmVmcmVzaCBkZWR1cCBmb3IgdG9rZW4gJHt0b2tlbklkfWApO1xuICAgIHJldHVybiBleGlzdGluZztcbiAgfVxuXG4gIGNvbnN0IGxhc3RBdCA9IGxhc3RSZWZyZXNoVGltZS5nZXQodG9rZW5JZCkgPz8gMDtcbiAgaWYgKERhdGUubm93KCkgLSBsYXN0QXQgPCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUykge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoIHRvbyBzb29uIGZvciB0b2tlbiAke3Rva2VuSWR9LCByZWFkaW5nIGN1cnJlbnQgY3JlZHMgZnJvbSBEQmApO1xuICAgIHJldHVybiByZWFkQ3VycmVudENyZWRzKHRva2VuSWQpO1xuICB9XG5cbiAgbGFzdFJlZnJlc2hUaW1lLnNldCh0b2tlbklkLCBEYXRlLm5vdygpKTtcbiAgY29uc3QgcHJvbWlzZSA9IGRvUmVmcmVzaCh0b2tlbklkKTtcbiAgaW5mbGlnaHRSZWZyZXNoLnNldCh0b2tlbklkLCBwcm9taXNlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBwcm9taXNlO1xuICB9IGZpbmFsbHkge1xuICAgIGluZmxpZ2h0UmVmcmVzaC5kZWxldGUodG9rZW5JZCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZEN1cnJlbnRDcmVkcyh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHRocm93IG5ldyBFcnJvcihgdG9rZW4gJHt0b2tlbklkfSBub3QgZm91bmRgKTtcbiAgY29uc3QgY3JlZHMgPSB0b2tlbi5jcmVkZW50aWFscyBhcyBPcGVuQUlDcmVkZW50aWFscztcbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogY3JlZHMuYWNjZXNzVG9rZW4sXG4gICAgY2hhdGdwdEFjY291bnRJZDogY3JlZHMuYWNjb3VudElkLFxuICAgIGNoYXRncHRQbGFuVHlwZTogY3JlZHMucGxhblR5cGUsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvUmVmcmVzaCh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHRva2VuICR7dG9rZW5JZH0gbm90IGZvdW5kIG9yIG5vdCBvcGVuYWlgKTtcbiAgfVxuXG4gIGNvbnN0IGNyZWRzID0gdG9rZW4uY3JlZGVudGlhbHMgYXMgT3BlbkFJQ3JlZGVudGlhbHM7XG4gIGlmICghY3JlZHMucmVmcmVzaFRva2VuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB0b2tlbiAke3Rva2VuSWR9IGhhcyBubyByZWZyZXNoVG9rZW5gKTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGByZWZyZXNoaW5nIHRva2VuICR7dG9rZW4ubmFtZX0gKGlkPSR7dG9rZW5JZH0pYCk7XG5cbiAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKE9QRU5BSV9UT0tFTl9VUkwsIHtcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIC8vIO2GoO2BsCDsl5Trk5ztj6zsnbjtirjripQgT0F1dGgg7ZGc7KSAIGZvcm0g7J247L2U65SpIOqzhOyVveydhCDqsJXsoJztlZzri6QuIEpTT04g7Jy866GcIOuztOuCtOuptFxuICAgIC8vIGFjY2VzcyB0b2tlbiDrp4zro4wg7ZuE7J2YIOuqqOuToCByZWZyZXNoIOqwgCDqsbDrtoDrkJjslrQg7Yag7YGw7J20IO2GteynuOuhnCDso73ripTri6QuXG4gICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgYm9keTogbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICBncmFudF90eXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgIGNsaWVudF9pZDogT1BFTkFJX0NMSUVOVF9JRCxcbiAgICAgIHJlZnJlc2hfdG9rZW46IGNyZWRzLnJlZnJlc2hUb2tlbixcbiAgICB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwLm9rKSB7XG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3AudGV4dCgpLmNhdGNoKCgpID0+IFwiXCIpO1xuICAgIC8vIDQwMSDrs7jrrLjsnZggZXJyb3Ig7L2U65Oc6rCAIO2GoO2BsCDsgqzrp53snZgg6rKw7KCV7KCBIOyCrOyduOydtOuLpC5cbiAgICAvLyAgIHJlZnJlc2hfdG9rZW5fZXhwaXJlZCAgICAg4oaSIHJlZnJlc2hfdG9rZW4g7J6Q7LK0IOunjOujjFxuICAgIC8vICAgcmVmcmVzaF90b2tlbl9yZXVzZWQgICAgICDihpIg7J2066+4IOyCrOyaqeuQnCjtmozsoIQg7Y+Q6riw65CcKSByZWZyZXNoX3Rva2VuIOyerOyCrOyaqSDihpIg7Yyo67CA66asIOustO2aqO2ZlFxuICAgIC8vICAgcmVmcmVzaF90b2tlbl9pbnZhbGlkYXRlZCDihpIg7ISc67KE7LihIHJldm9rZVxuICAgIC8vIOychCAz6rCc64qUIOuqqOuRkCDsmIHqtawg7Iuk7YyoLiDsnqzrk7HroZ0g7Jm4IOuzteq1rCDrtojqsIAuXG4gICAgbGV0IGVycm9yQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBlcnJvckNvZGUgPSAoSlNPTi5wYXJzZShib2R5KSBhcyB7IGVycm9yPzogc3RyaW5nIH0pLmVycm9yO1xuICAgIH0gY2F0Y2gge31cbiAgICBsb2dnZXIuZXJyb3IoXG4gICAgICBgT3BlbkFJIHJlZnJlc2ggRkFJTEVEIHRva2VuPSR7dG9rZW4ubmFtZX0oaWQ9JHt0b2tlbklkfSkgc3RhdHVzPSR7cmVzcC5zdGF0dXN9IGAgK1xuICAgICAgICBgY29kZT0ke2Vycm9yQ29kZSA/PyBcIj9cIn0gYm9keT0ke2JvZHl9YCxcbiAgICApO1xuICAgIC8vIOyYgeq1rCDsi6TtjKjripQgZXJyb3JDb2RlIOuhnOunjCDtjJDsoJXtlZzri6Qg4oCUIHN0YXR1cyDrpbwg7ZWo6ruYIOyalOq1rO2VmOuptCBwcm92aWRlciDqsIBcbiAgICAvLyDsg4Htg5zsvZTrk5zrpbwg67CU6r+AIOuVjCDtjJDsoJXsnbQg7KGw7Jqp7Z6IIOupjuuKlOuLpC5cbiAgICBpZiAoZXJyb3JDb2RlICYmIFBFUk1BTkVOVF9GQUlMVVJFX0NPREVTLmhhcyhlcnJvckNvZGUpKSB7XG4gICAgICBhd2FpdCBkZWFjdGl2YXRlQXV0aERlYWRUb2tlbihcbiAgICAgICAgeyBpZDogdG9rZW5JZCwgbmFtZTogdG9rZW4ubmFtZSwgcHJvdmlkZXI6IFwib3BlbmFpXCIgfSxcbiAgICAgICAgY3JlZHMucmVmcmVzaFRva2VuLFxuICAgICAgICBgb3BlbmFpOiR7ZXJyb3JDb2RlfWAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9wZW5BSSByZWZyZXNoIGZhaWxlZDogJHtyZXNwLnN0YXR1c30gJHtib2R5fWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwLmpzb24oKSkgYXMge1xuICAgIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gICAgZXhwaXJlc19pbj86IG51bWJlcjtcbiAgICBpZF90b2tlbj86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBuZXdSZWZyZXNoVG9rZW4gPSBkYXRhLnJlZnJlc2hfdG9rZW4gPz8gY3JlZHMucmVmcmVzaFRva2VuO1xuICBjb25zdCByb3RhdGVkID1cbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IG51bGwgJiZcbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IHVuZGVmaW5lZCAmJlxuICAgIGRhdGEucmVmcmVzaF90b2tlbiAhPT0gY3JlZHMucmVmcmVzaFRva2VuO1xuICBpZiAocm90YXRlZCkge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoX3Rva2VuIHJvdGF0ZWQgZm9yIHRva2VuICR7dG9rZW4ubmFtZX1gKTtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWRDcmVkczogT3BlbkFJQ3JlZGVudGlhbHMgPSB7XG4gICAgLi4uY3JlZHMsXG4gICAgYWNjZXNzVG9rZW46IGRhdGEuYWNjZXNzX3Rva2VuLFxuICAgIHJlZnJlc2hUb2tlbjogbmV3UmVmcmVzaFRva2VuLFxuICAgIGFjY2Vzc1Rva2VuRXhwaXJlc0F0OiBkYXRhLmV4cGlyZXNfaW5cbiAgICAgID8gRGF0ZS5ub3coKSArIGRhdGEuZXhwaXJlc19pbiAqIDEwMDBcbiAgICAgIDogY3JlZHMuYWNjZXNzVG9rZW5FeHBpcmVzQXQsXG4gICAgLi4uKGRhdGEuaWRfdG9rZW4gPyB7IGlkVG9rZW46IGRhdGEuaWRfdG9rZW4gfSA6IHt9KSxcbiAgfTtcblxuICAvLyDtmozsoIQocm90YXRlZCnsnbQg7J287Ja064Ks64qU642wIOydtCBzYXZlIOqwgCDsi6TtjKjtlZjrqbQsIE9wZW5BSSDsqr0g7JibIHJlZnJlc2hfdG9rZW4g7J2AIOydtOuvuFxuICAvLyDtj5DquLDrkJwg7IOB7YOc7JeQ7IScIERCIOyXkOuKlCDsmJsg7Yag7YGw7J20IOuCqOuKlOuLpCDihpIg64uk7J2MIHJlZnJlc2gg6rCAIHJlZnJlc2hfdG9rZW5fcmV1c2VkIOuhnFxuICAvLyDsmIHqtawg7IKs66edLiDsnbQg6rWs6rCEIOyLpO2MqOuKlCDthqDtgbAg7IKs66ed7J2YIOyngeygkSDsm5DsnbjsnbTrr4DroZwg67CY65Oc7IucIO2BrOqyjCDrgqjquLTri6QuXG4gIHRyeSB7XG4gICAgYXdhaXQgVG9rZW5Nb2RlbC5zYXZlKFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IHRva2VuSWQsXG4gICAgICAgIHByb3ZpZGVyOiBcIm9wZW5haVwiLFxuICAgICAgICBjcmVkZW50aWFsczogdXBkYXRlZENyZWRzLFxuICAgICAgICBuYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBPcGVuQUkgcmVmcmVzaDogREIgc2F2ZSBGQUlMRUQgYWZ0ZXIgcm90YXRpb24ocm90YXRlZD0ke3JvdGF0ZWR9KSBgICtcbiAgICAgICAgYHRva2VuPSR7dG9rZW4ubmFtZX0oaWQ9JHt0b2tlbklkfSkg4oCUIOyYmyByZWZyZXNoX3Rva2VuIO2PkOq4sOuQqCwgREIg66+467CY7JiBIOKGkiDthqDtgbAg7IKs66edIOychO2XmC4gZXJyPSR7U3RyaW5nKGUpfWAsXG4gICAgKTtcbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgbG9nZ2VyLmluZm8oYHRva2VuICR7dG9rZW4ubmFtZX0gcmVmcmVzaGVkIHN1Y2Nlc3NmdWxseSAocm90YXRlZD0ke3JvdGF0ZWR9KWApO1xuXG4gIHJldHVybiB7XG4gICAgYWNjZXNzVG9rZW46IGRhdGEuYWNjZXNzX3Rva2VuLFxuICAgIGNoYXRncHRBY2NvdW50SWQ6IGNyZWRzLmFjY291bnRJZCxcbiAgICBjaGF0Z3B0UGxhblR5cGU6IGNyZWRzLnBsYW5UeXBlLFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBY0EsTUFBTSxTQUFTLFVBQVUsQ0FBQyxTQUFTLGdCQUFnQixDQUFDO0FBS3BELE1BQU0sMENBQTBCLElBQUksSUFBSTtDQUN0QztDQUNBO0NBQ0E7QUFDRixDQUFDO0FBR0QsTUFBTSxrQ0FBa0IsSUFBSSxJQUFvQztBQUNoRSxNQUFNLGtDQUFrQixJQUFJLElBQW9CO0FBQ2hELE1BQU0sMEJBQTBCO0FBUWhDLGVBQXNCLCtCQUErQixTQUF5QztDQUM1RixPQUFPLEtBQUssK0JBQStCLFFBQVEsUUFBUSxRQUFRLElBQUksRUFBRTtDQUN6RSxNQUFNLFdBQVcsZ0JBQWdCLElBQUksT0FBTztDQUM1QyxJQUFJLFVBQVU7RUFDWixPQUFPLEtBQUssMkJBQTJCLFNB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
@@ -0,0 +1,72 @@
1
+ import { OpenAIProtocolError, normalizeOpenAIEvent } from "./openai-backend-protocol.js";
2
+ //#region src/utils/providers/openai/openai-sse.ts
3
+ function parseBlock(block) {
4
+ const data = [];
5
+ for (const line of block.replaceAll("\r\n", "\n").replaceAll("\r", "\n").split("\n")) {
6
+ if (line.startsWith(":")) continue;
7
+ const separator = line.indexOf(":");
8
+ const field = separator < 0 ? line : line.slice(0, separator);
9
+ let value = separator < 0 ? "" : line.slice(separator + 1);
10
+ if (value.startsWith(" ")) value = value.slice(1);
11
+ if (field === "data") data.push(value);
12
+ }
13
+ if (!data.length) return void 0;
14
+ const payload = data.join("\n");
15
+ if (payload === "[DONE]") return payload;
16
+ try {
17
+ return JSON.parse(payload);
18
+ } catch (error) {
19
+ throw new OpenAIProtocolError(`Invalid OpenAI SSE JSON: ${String(error)}`);
20
+ }
21
+ }
22
+ /** Parses arbitrary UTF-8/chunk boundaries and all complete SSE event blocks. */
23
+ async function* parseOpenAISSE(body) {
24
+ const reader = body.getReader();
25
+ const decoder = new TextDecoder();
26
+ let buffer = "";
27
+ try {
28
+ while (true) {
29
+ const { done, value } = await reader.read();
30
+ buffer += decoder.decode(value, { stream: !done });
31
+ let match;
32
+ while (match = /\r\n\r\n|\n\n|\r\r/.exec(buffer)) {
33
+ const block = buffer.slice(0, match.index);
34
+ buffer = buffer.slice(match.index + match[0].length);
35
+ const parsed = parseBlock(block);
36
+ if (parsed !== void 0) yield parsed;
37
+ }
38
+ if (done) break;
39
+ }
40
+ if (buffer.trim()) {
41
+ const parsed = parseBlock(buffer);
42
+ if (parsed !== void 0) yield parsed;
43
+ }
44
+ } finally {
45
+ reader.releaseLock();
46
+ }
47
+ }
48
+ /** Converts wire events and enforces exactly one successful terminal response. */
49
+ async function* normalizeOpenAISSE(body) {
50
+ let terminal = false;
51
+ for await (const raw of parseOpenAISSE(body)) {
52
+ if (raw === "[DONE]") {
53
+ if (!terminal) throw new OpenAIProtocolError("OpenAI stream ended before response.completed");
54
+ return;
55
+ }
56
+ if (terminal) throw new OpenAIProtocolError("OpenAI stream emitted an event after termination");
57
+ const event = normalizeOpenAIEvent(raw);
58
+ if (!event) continue;
59
+ if (event.type === "error") {
60
+ terminal = true;
61
+ yield event;
62
+ return;
63
+ }
64
+ if (event.type === "completed") terminal = true;
65
+ yield event;
66
+ }
67
+ if (!terminal) throw new OpenAIProtocolError("OpenAI SSE connection closed before a terminal event");
68
+ }
69
+ //#endregion
70
+ export { normalizeOpenAISSE, parseOpenAISSE };
71
+
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXNzZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL29wZW5haS9vcGVuYWktc3NlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIG5vcm1hbGl6ZU9wZW5BSUV2ZW50LFxuICBPcGVuQUlQcm90b2NvbEVycm9yLFxuICB0eXBlIE9wZW5BSU5vcm1hbGl6ZWRFdmVudCxcbn0gZnJvbSBcIi4vb3BlbmFpLWJhY2tlbmQtcHJvdG9jb2xcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlFdmVudFN0cmVhbSBleHRlbmRzIEFzeW5jSXRlcmFibGU8T3BlbkFJTm9ybWFsaXplZEV2ZW50PiB7fVxuXG5mdW5jdGlvbiBwYXJzZUJsb2NrKGJsb2NrOiBzdHJpbmcpOiB1bmtub3duIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGF0YTogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGJsb2NrLnJlcGxhY2VBbGwoXCJcXHJcXG5cIiwgXCJcXG5cIikucmVwbGFjZUFsbChcIlxcclwiLCBcIlxcblwiKS5zcGxpdChcIlxcblwiKSkge1xuICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCI6XCIpKSBjb250aW51ZTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBsaW5lLmluZGV4T2YoXCI6XCIpO1xuICAgIGNvbnN0IGZpZWxkID0gc2VwYXJhdG9yIDwgMCA/IGxpbmUgOiBsaW5lLnNsaWNlKDAsIHNlcGFyYXRvcik7XG4gICAgbGV0IHZhbHVlID0gc2VwYXJhdG9yIDwgMCA/IFwiXCIgOiBsaW5lLnNsaWNlKHNlcGFyYXRvciArIDEpO1xuICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiIFwiKSkgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgICBpZiAoZmllbGQgPT09IFwiZGF0YVwiKSBkYXRhLnB1c2godmFsdWUpO1xuICB9XG4gIGlmICghZGF0YS5sZW5ndGgpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHBheWxvYWQgPSBkYXRhLmpvaW4oXCJcXG5cIik7XG4gIGlmIChwYXlsb2FkID09PSBcIltET05FXVwiKSByZXR1cm4gcGF5bG9hZDtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShwYXlsb2FkKSBhcyB1bmtub3duO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKGBJbnZhbGlkIE9wZW5BSSBTU0UgSlNPTjogJHtTdHJpbmcoZXJyb3IpfWApO1xuICB9XG59XG5cbi8qKiBQYXJzZXMgYXJiaXRyYXJ5IFVURi04L2NodW5rIGJvdW5kYXJpZXMgYW5kIGFsbCBjb21wbGV0ZSBTU0UgZXZlbnQgYmxvY2tzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBwYXJzZU9wZW5BSVNTRShib2R5OiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pik6IEFzeW5jR2VuZXJhdG9yPHVua25vd24+IHtcbiAgY29uc3QgcmVhZGVyID0gYm9keS5nZXRSZWFkZXIoKTtcbiAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpO1xuICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgdHJ5IHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgIGJ1ZmZlciArPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSwgeyBzdHJlYW06ICFkb25lIH0pO1xuICAgICAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgICAgd2hpbGUgKChtYXRjaCA9IC9cXHJcXG5cXHJcXG58XFxuXFxufFxcclxcci8uZXhlYyhidWZmZXIpKSkge1xuICAgICAgICBjb25zdCBibG9jayA9IGJ1ZmZlci5zbGljZSgwLCBtYXRjaC5pbmRleCk7XG4gICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zbGljZShtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQmxvY2soYmxvY2spO1xuICAgICAgICBpZiAocGFyc2VkICE9PSB1bmRlZmluZWQpIHlpZWxkIHBhcnNlZDtcbiAgICAgIH1cbiAgICAgIGlmIChkb25lKSBicmVhaztcbiAgICB9XG4gICAgaWYgKGJ1ZmZlci50cmltKCkpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQmxvY2soYnVmZmVyKTtcbiAgICAgIGlmIChwYXJzZWQgIT09IHVuZGVmaW5lZCkgeWllbGQgcGFyc2VkO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICByZWFkZXIucmVsZWFzZUxvY2soKTtcbiAgfVxufVxuXG4vKiogQ29udmVydHMgd2lyZSBldmVudHMgYW5kIGVuZm9yY2VzIGV4YWN0bHkgb25lIHN1Y2Nlc3NmdWwgdGVybWluYWwgcmVzcG9uc2UuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIG5vcm1hbGl6ZU9wZW5BSVNTRShcbiAgYm9keTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4sXG4pOiBBc3luY0dlbmVyYXRvcjxPcGVuQUlOb3JtYWxpemVkRXZlbnQ+IHtcbiAgbGV0IHRlcm1pbmFsID0gZmFsc2U7XG4gIGZvciBhd2FpdCAoY29uc3QgcmF3IG9mIHBhcnNlT3BlbkFJU1NFKGJvZHkpKSB7XG4gICAgaWYgKHJhdyA9PT0gXCJbRE9ORV1cIikge1xuICAgICAgaWYgKCF0ZXJtaW5hbCkgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgc3RyZWFtIGVuZGVkIGJlZm9yZSByZXNwb25zZS5jb21wbGV0ZWRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0ZXJtaW5hbCkgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgc3RyZWFtIGVtaXR0ZWQgYW4gZXZlbnQgYWZ0ZXIgdGVybWluYXRpb25cIik7XG4gICAgY29uc3QgZXZlbnQgPSBub3JtYWxpemVPcGVuQUlFdmVudChyYXcpO1xuICAgIGlmICghZXZlbnQpIGNvbnRpbnVlO1xuICAgIGlmIChldmVudC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgIHRlcm1pbmFsID0gdHJ1ZTtcbiAgICAgIHlpZWxkIGV2ZW50O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJjb21wbGV0ZWRcIikgdGVybWluYWwgPSB0cnVlO1xuICAgIHlpZWxkIGV2ZW50O1xuICB9XG4gIGlmICghdGVybWluYWwpXG4gICAgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgU1NFIGNvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSBhIHRlcm1pbmFsIGV2ZW50XCIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQVFBLFNBQVMsV0FBVyxPQUFvQztDQUN0RCxNQUFNLE9BQWlCLENBQUM7Q0FDeEIsS0FBSyxNQUFNLFFBQVEsTUFBTSxXQUFXLFFBQVEsSUFBSSxDQUFDLENBQUMsV0FBVyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHO0VBQ3BGLElBQUksS0FBSyxXQUFXLEdBQUcsR0FBRztFQUMxQixNQUFNLFlBQVksS0FBSyxRQUFRLEdBQUc7RUFDbEMsTUFBTSxRQUFRLFlBQVksSUFBSSxPQUFPLEtBQUssTUFBTSxHQUFHLFNBQVM7RUFDNUQsSUFBSSxRQUFRLFlBQVksSUFBSSxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7RUFDekQsSUFBSSxNQUFNLFdBQVcsR0FBRyxHQUFHLFFBQVEsTUFBTSxNQUFNLENBQUM7RUFDaEQsSUFBSSxVQUFVLFFBQVEsS0FBSyxLQUFLLEtBQUs7Q0FDdkM7Q0FDQSxJQUFJLENBQUMsS0FBSyxRQUFRLE9BQU87Q0FDekIsTUFBTSxVQUFVLEtBQUssS0FBSyxJQUFJO0NBQzlCLElBQUksWUFBWSxVQUFVLE9BQU87Q0FDakMsSUFBSTtFQUNGLE9BQU8sS0FBSyxNQUFNLE9BQU87Q0FDM0IsU0FBUyxPQUFPO0VBQ2QsTUFBTSxJQUFJLG9CQUFvQiw0QkFBNEIsT0FBTyxLQUFLLEdBQUc7Q0FDM0U7QUFDRjs7QUFHQSxnQkFBdUIsZUFBZSxNQUEyRDtDQUMvRixNQUFNLFNBQVMsS0FBSyxVQUFVO0NBQzlCLE1BQU0sVUFBVSxJQUFJLFlBQVk7Q0FDaEMsSUFBSSxTQUFTO0NBQ2IsSUFBSTtFQUNGLE9BQU8sTUFBTTtHQUNYLE1BQU0sRUFBRSxNQUFNLFVBQVUsTUFBTSxPQUFPLEtBQUs7R0FDMUMsVUFBVSxRQUFRLE9BQU8sT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7R0FDakQsSUFBSTtHQUNKLE9BQVEsUUFBUSxxQkFBcUIsS0FBSyxNQUFNLEdBQUk7SUFDbEQsTUFBTSxRQUFRLE9BQU8sTUFBTSxHQUFHLE1BQU0sS0FBSztJQUN6QyxTQUFTLE9BQU8sTUFBTSxNQUFNLFFBQVEsTUFBTSxFQUFFLENBQUMsTUFBTTtJQUNuRCxNQUFNLFNBQVMsV0FBVyxLQUFLO0lBQy9CLElBQUksV0FBVyxRQUFXLE1BQU07R0FDbEM7R0FDQSxJQUFJLE1BQU07RUFDWjtFQUNBLElBQUksT0FBTyxLQUFLLEdBQUc7R0FDakIsTUFBTSxTQUFTLFdBQVcsTUFBTTtHQUNoQyxJQUFJLFdBQVcsUUFBVyxNQUFNO0VBQ2xDO0NBQ0YsVUFBVTtFQUNSLE9BQU8sWUFBWTtDQUNyQjtBQUNGOztBQUdBLGdCQUF1QixtQkFDckIsTUFDdUM7Q0FDdkMsSUFBSSxXQUFXO0NBQ2YsV0FBVyxNQUFNLE9BQU8sZUFBZSxJQUFJLEdBQUc7RUFDNUMsSUFBSSxRQUFRLFVBQVU7R0FDcEIsSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJLG9CQUFvQiwrQ0FBK0M7R0FDNUY7RUFDRjtFQUNBLElBQUksVUFBVSxNQUFNLElBQUksb0JBQW9CLGtEQUFrRDtFQUM5RixNQUFNLFFBQVEscUJBQXFCLEdBQUc7RUFDdEMsSUFBSSxDQUFDLE9BQU87RUFDWixJQUFJLE1BQU0sU0FBUyxTQUFTO0dBQzFCLFdBQVc7R0FDWCxNQUFNO0dBQ047RUFDRjtFQUNBLElBQUksTUFBTSxTQUFTLGFBQWEsV0FBVztFQUMzQyxNQUFNO0NBQ1I7Q0FDQSxJQUFJLENBQUMsVUFDSCxNQUFNLElBQUksb0JBQW9CLHNEQUFzRDtBQUN4RiJ9
@@ -0,0 +1,14 @@
1
+ //#region src/utils/providers/openai/openai-transport-config.ts
2
+ /**
3
+ * OpenAI 전송 방식 선택. 동시성 knob 은 없다 — direct 전환으로 요청은 Anthropic 과
4
+ * 동일하게 상한 없이 나가며, 상류 제한은 백엔드 응답이 진실이다.
5
+ */
6
+ function resolveOpenAITransportKind(env = process.env) {
7
+ const transport = env.QGRID_OPENAI_TRANSPORT ?? "websocket";
8
+ if (transport !== "https" && transport !== "websocket") throw new Error(`Invalid QGRID_OPENAI_TRANSPORT value: ${transport}. Expected https or websocket.`);
9
+ return transport;
10
+ }
11
+ //#endregion
12
+ export { resolveOpenAITransportKind };
13
+
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXRyYW5zcG9ydC1jb25maWcuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLXRyYW5zcG9ydC1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3BlbkFJVHJhbnNwb3J0S2luZCA9IFwiaHR0cHNcIiB8IFwid2Vic29ja2V0XCI7XG5cbi8qKlxuICogT3BlbkFJIOyghOyGoSDrsKnsi50g7ISg7YOdLiDrj5nsi5zshLEga25vYiDsnYAg7JeG64ukIOKAlCBkaXJlY3Qg7KCE7ZmY7Jy866GcIOyalOyyreydgCBBbnRocm9waWMg6rO8XG4gKiDrj5nsnbztlZjqsowg7IOB7ZWcIOyXhuydtCDrgpjqsIDrqbAsIOyDgeulmCDsoJztlZzsnYAg67Cx7JeU65OcIOydkeuLteydtCDsp4Tsi6TsnbTri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3BlbkFJVHJhbnNwb3J0S2luZChcbiAgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+ID0gcHJvY2Vzcy5lbnYsXG4pOiBPcGVuQUlUcmFuc3BvcnRLaW5kIHtcbiAgY29uc3QgdHJhbnNwb3J0ID0gZW52LlFHUklEX09QRU5BSV9UUkFOU1BPUlQgPz8gXCJ3ZWJzb2NrZXRcIjtcbiAgaWYgKHRyYW5zcG9ydCAhPT0gXCJodHRwc1wiICYmIHRyYW5zcG9ydCAhPT0gXCJ3ZWJzb2NrZXRcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIFFHUklEX09QRU5BSV9UUkFOU1BPUlQgdmFsdWU6ICR7dHJhbnNwb3J0fS4gRXhwZWN0ZWQgaHR0cHMgb3Igd2Vic29ja2V0LmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdHJhbnNwb3J0O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQU1BLFNBQWdCLDJCQUNkLE1BQTBDLFFBQVEsS0FDN0I7Q0FDckIsTUFBTSxZQUFZLElBQUksMEJBQTBCO0NBQ2hELElBQUksY0FBYyxXQUFXLGNBQWMsYUFDekMsTUFBTSxJQUFJLE1BQ1IseUNBQXlDLFVBQVUsK0JBQ3JEO0NBRUYsT0FBTztBQUNUIn0=
@@ -114,30 +114,28 @@ describe("MonitFrame.monitLogs", () => {
114
114
 
115
115
  it("piggybacks live vitals on every chunk, zeroed before dispatchers boot", async () => {
116
116
  QgridDispatcher.openaiDispatcher = {
117
- workerCount: 25,
118
- readyWorkerCount: 24,
119
- queueLength: 3,
120
- workerCountsByToken: [
121
- { name: "openai/haze", count: 12 },
122
- { name: "openai/nk", count: 13 },
117
+ inFlight: 3,
118
+ quotaByToken: [
119
+ { name: "openai/haze", usedPercent: 41, threshold: 80, blocked: false, resetsAt: null },
120
+ { name: "openai/nk", usedPercent: null, threshold: null, blocked: false, resetsAt: null },
123
121
  ],
124
122
  } as never;
125
123
  QgridDispatcher.anthropicDispatcher = {
126
124
  tokenCount: 8,
127
125
  tokenNames: ["anthropic/haze", "anthropic/noa"],
126
+ inFlight: 2,
128
127
  } as never;
129
128
  try {
130
129
  const chunk = await MonitFrame.monitLogs();
131
130
  expect(chunk.vitals).toEqual({
132
- openaiWorkerCount: 25,
133
- openaiReadyWorkerCount: 24,
134
- openaiQueueLength: 3,
135
- openaiWorkersByToken: [
136
- { name: "openai/haze", count: 12 },
137
- { name: "openai/nk", count: 13 },
131
+ openaiInFlight: 3,
132
+ openaiQuotaByToken: [
133
+ { name: "openai/haze", usedPercent: 41, threshold: 80, blocked: false, resetsAt: null },
134
+ { name: "openai/nk", usedPercent: null, threshold: null, blocked: false, resetsAt: null },
138
135
  ],
139
136
  anthropicTokenCount: 8,
140
137
  anthropicTokenNames: ["anthropic/haze", "anthropic/noa"],
138
+ anthropicInFlight: 2,
141
139
  });
142
140
  } finally {
143
141
  QgridDispatcher.openaiDispatcher = null;
@@ -145,15 +143,15 @@ describe("MonitFrame.monitLogs", () => {
145
143
  }
146
144
 
147
145
  const empty = await MonitFrame.monitLogs();
148
- expect(empty.vitals.openaiWorkerCount).toBe(0);
149
- expect(empty.vitals.openaiWorkersByToken).toEqual([]);
146
+ expect(empty.vitals.openaiInFlight).toBe(0);
147
+ expect(empty.vitals.openaiQuotaByToken).toEqual([]);
150
148
  expect(empty.vitals.anthropicTokenCount).toBe(0);
151
149
  expect(empty.vitals.anthropicTokenNames).toEqual([]);
152
150
  });
153
151
  });
154
152
 
155
153
  describe("MonitFrame.monitInfo", () => {
156
- it("returns the active DB connection, server url, and pool bounds without secrets", async () => {
154
+ it("returns the active DB connection, server url, and permit capacity without secrets", async () => {
157
155
  vi.stubEnv("HOST", "0.0.0.0");
158
156
  vi.stubEnv("PORT", "45000");
159
157
  vi.stubEnv("SONAMU_DB_HOST", "db.internal");
@@ -165,8 +163,7 @@ describe("MonitFrame.monitInfo", () => {
165
163
  expect(info.serverUrl).toBe("http://0.0.0.0:45000");
166
164
  expect(info.dbHost).toBe("db.internal");
167
165
  expect(info.dbName).toBe("qgrid_dev");
168
- expect(info.openai.minWorkersPerToken).toBeGreaterThan(0);
169
- expect(info.openai.maxWorkersPerToken).toBeGreaterThanOrEqual(info.openai.minWorkersPerToken);
166
+ expect(["https", "websocket"]).toContain(info.openai.transport);
170
167
  // allowlist — 연결 객체의 password/user 등은 절대 실리지 않는다.
171
168
  expect(Object.keys(info).toSorted()).toEqual(["dbHost", "dbName", "openai", "serverUrl"]);
172
169
  expect(JSON.stringify(info)).not.toContain("password");
@@ -6,10 +6,16 @@
6
6
  */
7
7
  import { api, BaseFrameClass, DB } from "sonamu";
8
8
 
9
- import { resolveOpenAIWorkerPoolConfig } from "../../utils/providers/openai/openai-worker-pool-config";
9
+ import { resolveOpenAITransportKind } from "../../utils/providers/openai/openai-transport-config";
10
10
  import { QgridDispatcher } from "../qgrid/qgrid.dispatcher";
11
+ import { RequestLogModel } from "../request-log/request-log.model";
11
12
  import { monitLogBuffer } from "./log-buffer";
12
- import { type MonitLogChunk, type MonitServerInfo, type MonitVitals } from "./monit.types";
13
+ import {
14
+ type MonitLogChunk,
15
+ type MonitServerInfo,
16
+ type MonitStats,
17
+ type MonitVitals,
18
+ } from "./monit.types";
13
19
 
14
20
  // 응답당 엔트리 상한 — 폴링 클라이언트는 다음 폴에서 이어서 따라잡는다.
15
21
  const RESPONSE_ENTRY_LIMIT = 1_000;
@@ -31,7 +37,7 @@ class MonitFrameClass extends BaseFrameClass {
31
37
  // 프로세스 정적 정보 — 폴링 불필요, 페이지당 1회 조회.
32
38
  @api({ httpMethod: "GET", clients: ["axios", "tanstack-query"] })
33
39
  async monitInfo(): Promise<MonitServerInfo> {
34
- const pool = resolveOpenAIWorkerPoolConfig();
40
+ const transport = resolveOpenAITransportKind();
35
41
  const host = process.env.HOST ?? "localhost";
36
42
  const port = process.env.PORT ?? "44900";
37
43
  const conn = activeDbConnection();
@@ -39,24 +45,29 @@ class MonitFrameClass extends BaseFrameClass {
39
45
  serverUrl: `http://${host}:${port}`,
40
46
  dbHost: conn.host ?? "localhost",
41
47
  dbName: conn.database ?? "qgrid",
42
- openai: {
43
- minWorkersPerToken: pool.minWorkersPerToken,
44
- maxWorkersPerToken: pool.maxWorkersPerToken,
45
- autoscale: pool.autoscale,
46
- },
48
+ openai: { transport },
47
49
  };
48
50
  }
51
+
52
+ // 최근 1시간 provider 별 요청/오류/캐시 통계. vitals 와 달리 request_logs 를 타므로
53
+ // 분리된 endpoint 로 두고 웹에서 더 느슨한 주기로 폴링한다. 읽기 전용이며 request log 를
54
+ // 남기지 않는 monit 경계는 동일하다.
55
+ @api({ httpMethod: "GET", clients: ["axios", "tanstack-query"] })
56
+ async monitStats(): Promise<MonitStats> {
57
+ const windowMinutes = 60;
58
+ const since = new Date(Date.now() - windowMinutes * 60_000);
59
+ return { windowMinutes, providers: await RequestLogModel.providerStatsSince(since) };
60
+ }
49
61
  }
50
62
 
51
63
  // dispatcher 미초기화(부팅 직후) 시 0 으로 응답한다 — 가벼운 스냅샷이라 오류로 만들지 않는다.
52
64
  function currentVitals(): MonitVitals {
53
65
  return {
54
- openaiWorkerCount: QgridDispatcher.openaiDispatcher?.workerCount ?? 0,
55
- openaiReadyWorkerCount: QgridDispatcher.openaiDispatcher?.readyWorkerCount ?? 0,
56
- openaiQueueLength: QgridDispatcher.openaiDispatcher?.queueLength ?? 0,
57
- openaiWorkersByToken: QgridDispatcher.openaiDispatcher?.workerCountsByToken ?? [],
66
+ openaiInFlight: QgridDispatcher.openaiDispatcher?.inFlight ?? 0,
67
+ openaiQuotaByToken: QgridDispatcher.openaiDispatcher?.quotaByToken ?? [],
58
68
  anthropicTokenCount: QgridDispatcher.anthropicDispatcher?.tokenCount ?? 0,
59
69
  anthropicTokenNames: QgridDispatcher.anthropicDispatcher?.tokenNames ?? [],
70
+ anthropicInFlight: QgridDispatcher.anthropicDispatcher?.inFlight ?? 0,
60
71
  };
61
72
  }
62
73
 
@@ -15,17 +15,30 @@ export const MonitLogEntry = z.object({
15
15
  });
16
16
  export type MonitLogEntry = z.infer<typeof MonitLogEntry>;
17
17
 
18
- // 폴링에 편승하는 라이브 카운트 — 깊은 워커/큐 진단은 audit 대시보드(별도)의 몫이고,
19
- // 여기는 "지금 몇 개 돌고 큐가 쌓이나"만 가볍게 답한다.
18
+ // 폴링에 편승하는 라이브 카운트 — 깊은 토큰 진단은 audit 대시보드(별도)의 몫이고,
19
+ // 여기는 "지금 요청이 몇 개 나가 있고 쿼터가 얼마나 찼나"만 가볍게 답한다.
20
20
  export const MonitVitals = z.object({
21
- openaiWorkerCount: z.number(),
22
- openaiReadyWorkerCount: z.number(),
23
- openaiQueueLength: z.number(),
24
- // 토큰별 현재 워커 수 — autoscale 로 늘고 주는 것을 토큰 단위로 본다
25
- openaiWorkersByToken: z.array(z.object({ name: z.string(), count: z.number() })),
21
+ // 지금 나가 있는 동시 요청 수 — 상한 없음(Anthropic 과 동일한 stateless 실행 모델).
22
+ // 토큰별 숫자는 노출하지 않는다: Anthropic 칩과 동일하게 이름 나열이 기본이고,
23
+ // 토큰 단위로 의미 있는 상태는 쿼터 스냅샷이 맡는다.
24
+ openaiInFlight: z.number(),
25
+ // 토큰별 쿼터 스냅샷 — dispatcher 의 60초 rate-limits 캐시에서만 읽는다(비신선이면 null).
26
+ // threshold 미설정 토큰은 쿼터 판정을 돌지 않아 usedPercent 가 계속 null 일 수 있다.
27
+ openaiQuotaByToken: z.array(
28
+ z.object({
29
+ name: z.string(),
30
+ usedPercent: z.number().nullable(),
31
+ threshold: z.number().nullable(),
32
+ blocked: z.boolean(),
33
+ // ms epoch — dispatcher 가 wham 의 unix 초를 정규화해서 내려준다
34
+ resetsAt: z.number().nullable(),
35
+ }),
36
+ ),
26
37
  anthropicTokenCount: z.number(),
27
- // fresh-spawn 이라 워커 수는 없다 — 풀에 어떤 토큰이 있는지만 보여준다
38
+ // fresh-spawn 이라 상주 프로세스가 없다 — 풀에 어떤 토큰이 있는지만 보여준다
28
39
  anthropicTokenNames: z.array(z.string()),
40
+ // 지금 실행 중인 Claude Code 프로세스 수
41
+ anthropicInFlight: z.number(),
29
42
  });
30
43
  export type MonitVitals = z.infer<typeof MonitVitals>;
31
44
 
@@ -45,10 +58,26 @@ export const MonitServerInfo = z.object({
45
58
  serverUrl: z.string(),
46
59
  dbHost: z.string(),
47
60
  dbName: z.string(),
61
+ // permit/큐 제거 후 남은 정적 설정은 전송 방식뿐이다. 동시성 상한은 없다.
48
62
  openai: z.object({
49
- minWorkersPerToken: z.number(),
50
- maxWorkersPerToken: z.number(),
51
- autoscale: z.boolean(),
63
+ transport: z.string(),
52
64
  }),
53
65
  });
54
66
  export type MonitServerInfo = z.infer<typeof MonitServerInfo>;
67
+
68
+ // 최근 1시간 provider 별 요청 통계 — request_logs 를 집계한다. vitals 와 달리 DB 를
69
+ // 타므로 별도 endpoint 로 분리해 더 느슨한 주기로 폴링한다.
70
+ export const MonitProviderStats = z.object({
71
+ provider: z.string(), // "openai" | "anthropic" | "unknown"
72
+ requests: z.number(),
73
+ errors: z.number(),
74
+ inputTokens: z.number(),
75
+ cacheReadTokens: z.number(),
76
+ });
77
+ export type MonitProviderStats = z.infer<typeof MonitProviderStats>;
78
+
79
+ export const MonitStats = z.object({
80
+ windowMinutes: z.number(),
81
+ providers: z.array(MonitProviderStats),
82
+ });
83
+ export type MonitStats = z.infer<typeof MonitStats>;