Files
openclaw/extensions/qa-lab/src/model-selection.runtime.ts
2026-04-12 23:34:54 -07:00

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(),
});
}