diff --git a/frontend/src/components/account/BulkEditAccountModal.vue b/frontend/src/components/account/BulkEditAccountModal.vue index 6e751df816..f66fb85fda 100644 --- a/frontend/src/components/account/BulkEditAccountModal.vue +++ b/frontend/src/components/account/BulkEditAccountModal.vue @@ -873,8 +873,8 @@

{{ t('admin.accounts.openai.wsModeDesc') }}

-

- {{ t(openAIWSModeConcurrencyHintKey) }} +

+ {{ t(openAIWSModeHintKey) }}

- resolveOpenAIWSModeConcurrencyHintKey(openaiOAuthResponsesWebSocketV2Mode.value) +const openAIWSModeHintKey = computed(() => + resolveOpenAIWSModeHintKey(openaiOAuthResponsesWebSocketV2Mode.value) ) -const openAIAPIKeyWSModeConcurrencyHintKey = computed(() => - resolveOpenAIWSModeConcurrencyHintKey(openaiAPIKeyResponsesWebSocketV2Mode.value) +const openAIAPIKeyWSModeHintKey = computed(() => + resolveOpenAIWSModeHintKey(openaiAPIKeyResponsesWebSocketV2Mode.value) ) // Model mapping helpers diff --git a/frontend/src/components/account/CreateAccountModal.vue b/frontend/src/components/account/CreateAccountModal.vue index 8e2ca7dcb7..54a6b2331f 100644 --- a/frontend/src/components/account/CreateAccountModal.vue +++ b/frontend/src/components/account/CreateAccountModal.vue @@ -3132,8 +3132,8 @@

{{ t('admin.accounts.openai.wsModeDesc') }}

-

- {{ t(openAIWSModeConcurrencyHintKey) }} +

+ {{ t(openAIWSModeHintKey) }}

@@ -3975,7 +3975,7 @@ import { OPENAI_WS_MODE_PASSTHROUGH, OPENAI_WS_MODE_HTTP_BRIDGE, isOpenAIWSModeEnabled, - resolveOpenAIWSModeConcurrencyHintKey, + resolveOpenAIWSModeHintKey, type OpenAIWSMode } from '@/utils/openaiWsMode' import OAuthAuthorizationFlow from './OAuthAuthorizationFlow.vue' @@ -4653,8 +4653,8 @@ const openaiResponsesWebSocketV2Mode = computed({ } }) -const openAIWSModeConcurrencyHintKey = computed(() => - resolveOpenAIWSModeConcurrencyHintKey(openaiResponsesWebSocketV2Mode.value) +const openAIWSModeHintKey = computed(() => + resolveOpenAIWSModeHintKey(openaiResponsesWebSocketV2Mode.value) ) const isOpenAIModelRestrictionDisabled = computed(() => diff --git a/frontend/src/components/account/EditAccountModal.vue b/frontend/src/components/account/EditAccountModal.vue index dad0bfc9f4..0d3c235bea 100644 --- a/frontend/src/components/account/EditAccountModal.vue +++ b/frontend/src/components/account/EditAccountModal.vue @@ -1871,8 +1871,8 @@

{{ t('admin.accounts.openai.wsModeDesc') }}

-

- {{ t(openAIWSModeConcurrencyHintKey) }} +

+ {{ t(openAIWSModeHintKey) }}

@@ -3101,7 +3101,7 @@ import { OPENAI_WS_MODE_PASSTHROUGH, OPENAI_WS_MODE_HTTP_BRIDGE, isOpenAIWSModeEnabled, - resolveOpenAIWSModeConcurrencyHintKey, + resolveOpenAIWSModeHintKey, type OpenAIWSMode, resolveOpenAIWSModeFromExtra } from '@/utils/openaiWsMode' @@ -3588,8 +3588,8 @@ const openaiResponsesWebSocketV2Mode = computed({ openaiOAuthResponsesWebSocketV2Mode.value = mode } }) -const openAIWSModeConcurrencyHintKey = computed(() => - resolveOpenAIWSModeConcurrencyHintKey(openaiResponsesWebSocketV2Mode.value) +const openAIWSModeHintKey = computed(() => + resolveOpenAIWSModeHintKey(openaiResponsesWebSocketV2Mode.value) ) const codexImageToolOptions = computed { expect(isOpenAIWSModeEnabled(OPENAI_WS_MODE_HTTP_BRIDGE)).toBe(true) }) - it('resolves concurrency hint key by mode', () => { - expect(resolveOpenAIWSModeConcurrencyHintKey(OPENAI_WS_MODE_OFF)).toBe( - 'admin.accounts.openai.wsModeConcurrencyHint' + it('hides the off hint and resolves each active mode separately', () => { + expect(resolveOpenAIWSModeHintKey(OPENAI_WS_MODE_OFF)).toBeNull() + expect(resolveOpenAIWSModeHintKey(OPENAI_WS_MODE_CTX_POOL)).toBe( + 'admin.accounts.openai.wsModeCtxPoolHint' ) - expect(resolveOpenAIWSModeConcurrencyHintKey(OPENAI_WS_MODE_CTX_POOL)).toBe( - 'admin.accounts.openai.wsModeConcurrencyHint' - ) - expect(resolveOpenAIWSModeConcurrencyHintKey(OPENAI_WS_MODE_PASSTHROUGH)).toBe( + expect(resolveOpenAIWSModeHintKey(OPENAI_WS_MODE_PASSTHROUGH)).toBe( 'admin.accounts.openai.wsModePassthroughHint' ) - expect(resolveOpenAIWSModeConcurrencyHintKey(OPENAI_WS_MODE_HTTP_BRIDGE)).toBe( - 'admin.accounts.openai.wsModePassthroughHint' + expect(resolveOpenAIWSModeHintKey(OPENAI_WS_MODE_HTTP_BRIDGE)).toBe( + 'admin.accounts.openai.wsModeHttpBridgeHint' ) }) }) diff --git a/frontend/src/utils/openaiWsMode.ts b/frontend/src/utils/openaiWsMode.ts index 77872bc656..b806746731 100644 --- a/frontend/src/utils/openaiWsMode.ts +++ b/frontend/src/utils/openaiWsMode.ts @@ -44,13 +44,23 @@ export const isOpenAIWSModeEnabled = (mode: OpenAIWSMode): boolean => { return mode !== OPENAI_WS_MODE_OFF } -export const resolveOpenAIWSModeConcurrencyHintKey = ( +export const resolveOpenAIWSModeHintKey = ( mode: OpenAIWSMode -): 'admin.accounts.openai.wsModeConcurrencyHint' | 'admin.accounts.openai.wsModePassthroughHint' => { - if (mode === OPENAI_WS_MODE_PASSTHROUGH || mode === OPENAI_WS_MODE_HTTP_BRIDGE) { - return 'admin.accounts.openai.wsModePassthroughHint' +): + | 'admin.accounts.openai.wsModeCtxPoolHint' + | 'admin.accounts.openai.wsModePassthroughHint' + | 'admin.accounts.openai.wsModeHttpBridgeHint' + | null => { + switch (mode) { + case OPENAI_WS_MODE_CTX_POOL: + return 'admin.accounts.openai.wsModeCtxPoolHint' + case OPENAI_WS_MODE_PASSTHROUGH: + return 'admin.accounts.openai.wsModePassthroughHint' + case OPENAI_WS_MODE_HTTP_BRIDGE: + return 'admin.accounts.openai.wsModeHttpBridgeHint' + default: + return null } - return 'admin.accounts.openai.wsModeConcurrencyHint' } export const resolveOpenAIWSModeFromExtra = (