mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-28 17:43:05 +00:00
47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
import { normalizeApiKeyInput, validateApiKeyInput } from "./auth-choice.api-key.js";
|
|
import {
|
|
ensureApiKeyFromOptionEnvOrPrompt,
|
|
normalizeSecretInputModeInput,
|
|
} from "./auth-choice.apply-helpers.js";
|
|
import type { ApplyAuthChoiceParams, ApplyAuthChoiceResult } from "./auth-choice.apply.js";
|
|
import { applyPrimaryModel } from "./model-picker.js";
|
|
import { applyAuthProfileConfig, setVolcengineApiKey } from "./onboard-auth.js";
|
|
|
|
/** Default model for Volcano Engine auth onboarding. */
|
|
export const VOLCENGINE_DEFAULT_MODEL = "volcengine-plan/ark-code-latest";
|
|
|
|
export async function applyAuthChoiceVolcengine(
|
|
params: ApplyAuthChoiceParams,
|
|
): Promise<ApplyAuthChoiceResult | null> {
|
|
if (params.authChoice !== "volcengine-api-key") {
|
|
return null;
|
|
}
|
|
|
|
const requestedSecretInputMode = normalizeSecretInputModeInput(params.opts?.secretInputMode);
|
|
await ensureApiKeyFromOptionEnvOrPrompt({
|
|
token: params.opts?.volcengineApiKey,
|
|
tokenProvider: "volcengine",
|
|
secretInputMode: requestedSecretInputMode,
|
|
config: params.config,
|
|
expectedProviders: ["volcengine"],
|
|
provider: "volcengine",
|
|
envLabel: "VOLCANO_ENGINE_API_KEY",
|
|
promptMessage: "Enter Volcano Engine API key",
|
|
normalize: normalizeApiKeyInput,
|
|
validate: validateApiKeyInput,
|
|
prompter: params.prompter,
|
|
setCredential: async (apiKey, mode) =>
|
|
setVolcengineApiKey(apiKey, params.agentDir, { secretInputMode: mode }),
|
|
});
|
|
const configWithAuth = applyAuthProfileConfig(params.config, {
|
|
profileId: "volcengine:default",
|
|
provider: "volcengine",
|
|
mode: "api_key",
|
|
});
|
|
const configWithModel = applyPrimaryModel(configWithAuth, VOLCENGINE_DEFAULT_MODEL);
|
|
return {
|
|
config: configWithModel,
|
|
agentModelOverride: VOLCENGINE_DEFAULT_MODEL,
|
|
};
|
|
}
|