openclaw/extensions/xai/onboard.ts
2026-03-18 23:58:56 +00:00

37 lines
1.2 KiB
TypeScript

import {
applyProviderConfigWithDefaultModelsPreset,
type OpenClawConfig,
} from "openclaw/plugin-sdk/provider-onboard";
import { XAI_BASE_URL, XAI_DEFAULT_MODEL_ID } from "./model-definitions.js";
import { buildXaiCatalogModels } from "./model-definitions.js";
export const XAI_DEFAULT_MODEL_REF = `xai/${XAI_DEFAULT_MODEL_ID}`;
function applyXaiProviderConfigWithApi(
cfg: OpenClawConfig,
api: "openai-completions" | "openai-responses",
primaryModelRef?: string,
): OpenClawConfig {
return applyProviderConfigWithDefaultModelsPreset(cfg, {
providerId: "xai",
api,
baseUrl: XAI_BASE_URL,
defaultModels: buildXaiCatalogModels(),
defaultModelId: XAI_DEFAULT_MODEL_ID,
aliases: [{ modelRef: XAI_DEFAULT_MODEL_REF, alias: "Grok" }],
primaryModelRef,
});
}
export function applyXaiProviderConfig(cfg: OpenClawConfig): OpenClawConfig {
return applyXaiProviderConfigWithApi(cfg, "openai-completions");
}
export function applyXaiResponsesApiConfig(cfg: OpenClawConfig): OpenClawConfig {
return applyXaiProviderConfigWithApi(cfg, "openai-responses");
}
export function applyXaiConfig(cfg: OpenClawConfig): OpenClawConfig {
return applyXaiProviderConfigWithApi(cfg, "openai-completions", XAI_DEFAULT_MODEL_REF);
}