mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-16 16:50:46 +00:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import {
|
|
listProfilesForProvider,
|
|
loadAuthProfileStoreForRuntime,
|
|
} from "openclaw/plugin-sdk/agent-runtime";
|
|
import { resolveEnvApiKey } from "openclaw/plugin-sdk/provider-auth";
|
|
import { defaultQaModelForMode, type QaProviderModeInput } from "./model-selection.js";
|
|
|
|
const QA_CODEX_OAUTH_LIVE_MODEL = "openai-codex/gpt-5.4";
|
|
|
|
export function resolveQaPreferredLiveModel() {
|
|
if (resolveEnvApiKey("openai")?.apiKey) {
|
|
return undefined;
|
|
}
|
|
try {
|
|
const store = loadAuthProfileStoreForRuntime(undefined, {
|
|
readOnly: true,
|
|
allowKeychainPrompt: false,
|
|
});
|
|
if (listProfilesForProvider(store, "openai").length > 0) {
|
|
return undefined;
|
|
}
|
|
return listProfilesForProvider(store, "openai-codex").length > 0
|
|
? QA_CODEX_OAUTH_LIVE_MODEL
|
|
: undefined;
|
|
} catch {
|
|
return undefined;
|
|
}
|
|
}
|
|
|
|
export function defaultQaRuntimeModelForMode(
|
|
mode: QaProviderModeInput,
|
|
options?: {
|
|
alternate?: boolean;
|
|
preferredLiveModel?: string;
|
|
},
|
|
) {
|
|
return defaultQaModelForMode(mode, {
|
|
...options,
|
|
preferredLiveModel: options?.preferredLiveModel ?? resolveQaPreferredLiveModel(),
|
|
});
|
|
}
|