28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import type { OpenClawConfig } from "../../config/config.js";
|
|
import { ensureAuthProfileStore, listProfilesForProvider } from "../auth-profiles.js";
|
|
import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "../defaults.js";
|
|
import { resolveEnvApiKey } from "../model-auth.js";
|
|
import { resolveConfiguredModelRef } from "../model-selection.js";
|
|
|
|
export function resolveDefaultModelRef(cfg?: OpenClawConfig): { provider: string; model: string } {
|
|
if (cfg) {
|
|
const resolved = resolveConfiguredModelRef({
|
|
cfg,
|
|
defaultProvider: DEFAULT_PROVIDER,
|
|
defaultModel: DEFAULT_MODEL,
|
|
});
|
|
return { provider: resolved.provider, model: resolved.model };
|
|
}
|
|
return { provider: DEFAULT_PROVIDER, model: DEFAULT_MODEL };
|
|
}
|
|
|
|
export function hasAuthForProvider(params: { provider: string; agentDir: string }): boolean {
|
|
if (resolveEnvApiKey(params.provider)?.apiKey) {
|
|
return true;
|
|
}
|
|
const store = ensureAuthProfileStore(params.agentDir, {
|
|
allowKeychainPrompt: false,
|
|
});
|
|
return listProfilesForProvider(store, params.provider).length > 0;
|
|
}
|