feat(codex): 拆分openai:compact为独立端点,简化Codex请求为透传模式

- 新增openai:compact端点类型(EndpointKind.COMPACT),独立于openai:cli
- OpenAICompactAdapter继承OpenAICliAdapter,自动标记compact模式
- Codex请求补丁改为纯透传:仅清理内部标记,不再修改客户端payload
- stream_policy支持openai:compact独立策略,compact端点移除stream字段
- candidate_builder支持compact回退到cli端点
- auth_type: vertex_ai重命名为service_account,保持向后兼容
- Vertex Provider新增api_formats与auth_type组合校验
- KeyAllowedModels对话框改为从Provider获取模型,展示provider_model_name
- Dialog内Select组件自动禁用Portal,修复层级遮挡问题
- 新增Codex compact端点回填迁移脚本
This commit is contained in:
fawney19
2026-03-01 23:55:26 +08:00
parent 4bf3a453e7
commit 97d42703da
37 changed files with 650 additions and 286 deletions
@@ -0,0 +1,19 @@
/**
* Provider 类型判断工具函数。
*
* 区分"密钥型"和"OAuth 账号型"两类 Provider,影响前端显示标签和操作入口。
*/
const oauthAccountProviderTypes = new Set([
'claude_code',
'codex',
'gemini_cli',
'antigravity',
'kiro',
])
export const isOAuthAccountProviderType = (providerType?: string | null): boolean =>
oauthAccountProviderTypes.has((providerType || '').toLowerCase())
export const isKeyManagedProviderType = (providerType?: string | null): boolean =>
!isOAuthAccountProviderType(providerType)