mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-11-01 00:27:30 +00:00
refactor(frontend): merge Codex image bridge and tool policy into one four-state control
Replace the two adjacent account-level controls (3-state injection bridge + 2-state explicit tool policy) in EditAccountModal with a single four-state selector: follow channel / force inject / no injection / block all. The four states map onto the existing extra keys (codex_image_generation_bridge, codex_image_generation_explicit_tool_policy) with no backend change; strip already disables the bridge upstream, so the effective decision space is exactly these four states. - load: strip takes precedence and reads as "block all"; legacy bridge_enabled key still recognized and cleaned up on save - save: block writes policy=strip and drops the bridge override; inherit clears both keys - semantic accent colors per state (sky/emerald/amber/rose) with dark mode support; state badge follows the same palette - replace account-scope i18n keys in zh/en (channel-scope keys untouched) - rewrite specs to cover all four states (25/25 passing)
This commit is contained in:
@@ -3557,25 +3557,21 @@ export default {
|
||||
codexCLIOnlyAppServer: 'Allow Codex app-server clients',
|
||||
codexCLIOnlyAppServerDesc:
|
||||
"Effective only when the switch above is on. When enabled, this account also allows third-party clients that embed the Codex engine over the app-server protocol (e.g. Claude Code's codex plugin); they still pass the global engine-fingerprint gate. OR-combined with the global app-server toggle.",
|
||||
codexImageGenerationBridge: 'Codex image-generation bridge',
|
||||
codexImageGenerationBridgeDesc:
|
||||
'Account policy takes precedence over channel and global settings. Only controls whether Codex requests through the /responses text endpoint receive the image_generation tool; standalone image-generation endpoints are unaffected.',
|
||||
codexImageGenerationBridgeInherit: 'Follow channel',
|
||||
codexImageGenerationBridgeInheritDesc: 'Do not write an account override; use the channel or global policy.',
|
||||
codexImageGenerationBridgeEnabled: 'Force on',
|
||||
codexImageGenerationBridgeEnabledDesc: 'Allow image tool injection for Codex /responses requests.',
|
||||
codexImageGenerationBridgeDisabled: 'Force off',
|
||||
codexImageGenerationBridgeDisabledDesc: 'Block image tool injection for Codex /responses requests.',
|
||||
codexImageGenerationBridgeBadgeInherit: 'Channel policy',
|
||||
codexImageGenerationBridgeBadgeEnabled: 'Account on',
|
||||
codexImageGenerationBridgeBadgeDisabled: 'Account off',
|
||||
codexImageToolPolicy: 'Codex image tool forwarding',
|
||||
codexImageToolPolicyDesc:
|
||||
'Only applies to client-provided image_generation tools in Codex /responses text requests; standalone image-generation endpoints are unaffected.',
|
||||
codexImageToolPolicyAllow: 'Allow',
|
||||
codexImageToolPolicyAllowDesc: 'Default behavior. Keep client-provided image_generation tools.',
|
||||
codexImageToolPolicyStrip: 'Remove',
|
||||
codexImageToolPolicyStripDesc: 'Delete image_generation tools and matching tool_choice before forwarding.',
|
||||
codexImageTool: 'Codex image tool',
|
||||
codexImageToolDesc:
|
||||
'One policy for the image_generation tool on Codex /responses text requests: whether it is auto-injected, and whether client-provided tools pass through. Account policy takes precedence over channel and global settings; standalone image-generation endpoints are unaffected.',
|
||||
codexImageToolInherit: 'Follow channel',
|
||||
codexImageToolInheritDesc: 'No account override; injection follows the channel or global policy, and client-provided image tools pass through.',
|
||||
codexImageToolEnabled: 'Force inject',
|
||||
codexImageToolEnabledDesc: 'Always inject the image tool for Codex /responses requests.',
|
||||
codexImageToolDisabled: 'No injection',
|
||||
codexImageToolDisabledDesc: 'Never auto-inject; client-provided image tools still pass through.',
|
||||
codexImageToolBlock: 'Block all',
|
||||
codexImageToolBlockDesc: 'No injection, and client-provided image tools plus matching tool_choice are removed.',
|
||||
codexImageToolBadgeInherit: 'Channel policy',
|
||||
codexImageToolBadgeEnabled: 'Force inject',
|
||||
codexImageToolBadgeDisabled: 'No injection',
|
||||
codexImageToolBadgeBlock: 'Blocked',
|
||||
compactMode: 'Compact mode',
|
||||
compactModeDesc:
|
||||
'Controls how this account participates in /responses/compact routing. Auto follows probe results, Force On always allows, Force Off always excludes.',
|
||||
|
||||
@@ -3730,24 +3730,21 @@ export default {
|
||||
codexCLIOnlyDesc: '仅对 OpenAI OAuth 生效。开启后仅允许 Codex 官方客户端家族访问;关闭后完全绕过并保持原逻辑。',
|
||||
codexCLIOnlyAppServer: '允许 Codex app-server 客户端',
|
||||
codexCLIOnlyAppServerDesc: '仅在上方开关开启时生效。开启后本账号额外放行内嵌 Codex 引擎、经 app-server 协议接入的第三方客户端(如 Claude Code 的 codex 插件),仍需通过全局引擎指纹门;与全局 app-server 开关取 OR(任一开即放行)。',
|
||||
codexImageGenerationBridge: 'Codex 图片生成桥接',
|
||||
codexImageGenerationBridgeDesc:
|
||||
'账号级策略优先于渠道和全局配置。仅控制 Codex 走 /responses 文本端点时是否注入 image_generation 工具;不影响独立图片生成接口。',
|
||||
codexImageGenerationBridgeInherit: '跟随渠道',
|
||||
codexImageGenerationBridgeInheritDesc: '不写入账号覆盖,继续使用渠道或全局策略。',
|
||||
codexImageGenerationBridgeEnabled: '强制开启',
|
||||
codexImageGenerationBridgeEnabledDesc: '允许 Codex /responses 请求获得图片工具注入。',
|
||||
codexImageGenerationBridgeDisabled: '强制关闭',
|
||||
codexImageGenerationBridgeDisabledDesc: '阻断 Codex /responses 的图片工具注入。',
|
||||
codexImageGenerationBridgeBadgeInherit: '渠道策略',
|
||||
codexImageGenerationBridgeBadgeEnabled: '账号开启',
|
||||
codexImageGenerationBridgeBadgeDisabled: '账号关闭',
|
||||
codexImageToolPolicy: 'Codex 图片工具传递策略',
|
||||
codexImageToolPolicyDesc: '仅作用于 Codex /responses 文本端点中客户端显式携带的 image_generation tool;不影响独立图片生成接口。',
|
||||
codexImageToolPolicyAllow: '放行',
|
||||
codexImageToolPolicyAllowDesc: '默认行为,保留客户端显式发送的 image_generation tool。',
|
||||
codexImageToolPolicyStrip: '移除',
|
||||
codexImageToolPolicyStripDesc: '转发前删除 image_generation tool 和指向它的 tool_choice。',
|
||||
codexImageTool: 'Codex 图片工具',
|
||||
codexImageToolDesc:
|
||||
'统一控制 Codex /responses 文本请求的 image_generation 图片工具:是否自动注入,以及客户端自带该工具时是否放行。账号级策略优先于渠道和全局配置,不影响独立图片生成接口。',
|
||||
codexImageToolInherit: '跟随渠道',
|
||||
codexImageToolInheritDesc: '不写入账号覆盖,是否注入由渠道或全局策略决定;客户端自带的图片工具照常放行。',
|
||||
codexImageToolEnabled: '强制注入',
|
||||
codexImageToolEnabledDesc: '始终为 Codex /responses 请求注入图片工具。',
|
||||
codexImageToolDisabled: '关闭注入',
|
||||
codexImageToolDisabledDesc: '不自动注入;客户端自带的图片工具仍会放行。',
|
||||
codexImageToolBlock: '完全阻断',
|
||||
codexImageToolBlockDesc: '不注入,并移除客户端自带的图片工具及指向它的 tool_choice。',
|
||||
codexImageToolBadgeInherit: '渠道策略',
|
||||
codexImageToolBadgeEnabled: '强制注入',
|
||||
codexImageToolBadgeDisabled: '关闭注入',
|
||||
codexImageToolBadgeBlock: '完全阻断',
|
||||
compactMode: 'Compact 模式',
|
||||
compactModeDesc:
|
||||
'控制本账号在 /responses/compact 调度中的参与方式。Auto 跟随探测结果,Force On 强制允许,Force Off 强制排除。',
|
||||
|
||||
Reference in New Issue
Block a user