修复 Plus 会话导入策略选择
This commit is contained in:
@@ -145,6 +145,28 @@
|
||||
return PLUS_ACCOUNT_ACCESS_STRATEGY_OAUTH;
|
||||
}
|
||||
|
||||
function getPlusAccountSessionStrategyForTarget(targetId = '') {
|
||||
const normalizedTargetId = String(targetId || '').trim().toLowerCase();
|
||||
if (normalizedTargetId === 'sub2api') {
|
||||
return PLUS_ACCOUNT_ACCESS_STRATEGY_SUB2API_CODEX_SESSION;
|
||||
}
|
||||
if (normalizedTargetId === 'cpa') {
|
||||
return PLUS_ACCOUNT_ACCESS_STRATEGY_CPA_CODEX_SESSION;
|
||||
}
|
||||
return PLUS_ACCOUNT_ACCESS_STRATEGY_OAUTH;
|
||||
}
|
||||
|
||||
function normalizePlusAccountAccessStrategyForTarget(value = '', targetId = '') {
|
||||
const normalizedStrategy = normalizePlusAccountAccessStrategy(value);
|
||||
if (
|
||||
normalizedStrategy === PLUS_ACCOUNT_ACCESS_STRATEGY_SUB2API_CODEX_SESSION
|
||||
|| normalizedStrategy === PLUS_ACCOUNT_ACCESS_STRATEGY_CPA_CODEX_SESSION
|
||||
) {
|
||||
return getPlusAccountSessionStrategyForTarget(targetId);
|
||||
}
|
||||
return normalizedStrategy;
|
||||
}
|
||||
|
||||
function normalizeOpenAiTargetList(values = []) {
|
||||
if (!Array.isArray(values)) {
|
||||
return [];
|
||||
@@ -375,21 +397,23 @@
|
||||
: (effectiveSignupMethods.includes(SIGNUP_METHOD_EMAIL)
|
||||
? SIGNUP_METHOD_EMAIL
|
||||
: effectiveSignupMethods[0]);
|
||||
const requestedPlusAccountAccessStrategy = normalizePlusAccountAccessStrategy(
|
||||
options?.plusAccountAccessStrategy ?? state?.plusAccountAccessStrategy
|
||||
const requestedPlusAccountAccessStrategy = normalizePlusAccountAccessStrategyForTarget(
|
||||
options?.plusAccountAccessStrategy ?? state?.plusAccountAccessStrategy,
|
||||
effectiveTargetId
|
||||
);
|
||||
const basePlusAccountAccessStrategies = [
|
||||
PLUS_ACCOUNT_ACCESS_STRATEGY_OAUTH,
|
||||
PLUS_ACCOUNT_ACCESS_STRATEGY_CPA_CODEX_SESSION,
|
||||
PLUS_ACCOUNT_ACCESS_STRATEGY_SUB2API_CODEX_SESSION,
|
||||
];
|
||||
const targetPlusAccountAccessStrategies = (Array.isArray(targetState.supportedPlusAccountAccessStrategies)
|
||||
&& targetState.supportedPlusAccountAccessStrategies.length > 0
|
||||
? targetState.supportedPlusAccountAccessStrategies
|
||||
: [PLUS_ACCOUNT_ACCESS_STRATEGY_OAUTH])
|
||||
.map(normalizePlusAccountAccessStrategy)
|
||||
.filter((strategy, index, strategies) => strategy && strategies.indexOf(strategy) === index);
|
||||
const availablePlusAccountAccessStrategies = activeFlowId === 'openai'
|
||||
&& Boolean(flowState.supportsPlusMode)
|
||||
&& Boolean(runtimeLocks.plusModeEnabled)
|
||||
&& effectiveSignupMethod === SIGNUP_METHOD_EMAIL
|
||||
? (runtimeLocks.accountContribution
|
||||
? [PLUS_ACCOUNT_ACCESS_STRATEGY_SUB2API_CODEX_SESSION]
|
||||
: basePlusAccountAccessStrategies)
|
||||
: targetPlusAccountAccessStrategies)
|
||||
: [PLUS_ACCOUNT_ACCESS_STRATEGY_OAUTH];
|
||||
const effectivePlusAccountAccessStrategy = runtimeLocks.accountContribution
|
||||
&& runtimeLocks.plusModeEnabled
|
||||
|
||||
Reference in New Issue
Block a user