37 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

import {
2026-03-18 23:58:49 +00:00
applyProviderConfigWithDefaultModelsPreset,
type OpenClawConfig,
} from "openclaw/plugin-sdk/provider-onboard";
import { XAI_BASE_URL, XAI_DEFAULT_MODEL_ID } from "./model-definitions.js";
2026-03-17 21:26:02 -07:00
import { buildXaiCatalogModels } from "./model-definitions.js";
export const XAI_DEFAULT_MODEL_REF = `xai/${XAI_DEFAULT_MODEL_ID}`;
2026-03-17 21:26:02 -07:00
function applyXaiProviderConfigWithApi(
cfg: OpenClawConfig,
api: "openai-completions" | "openai-responses",
2026-03-18 23:58:49 +00:00
primaryModelRef?: string,
2026-03-17 21:26:02 -07:00
): OpenClawConfig {
2026-03-18 23:58:49 +00:00
return applyProviderConfigWithDefaultModelsPreset(cfg, {
providerId: "xai",
2026-03-17 21:26:02 -07:00
api,
baseUrl: XAI_BASE_URL,
2026-03-17 21:26:02 -07:00
defaultModels: buildXaiCatalogModels(),
defaultModelId: XAI_DEFAULT_MODEL_ID,
2026-03-18 23:58:49 +00:00
aliases: [{ modelRef: XAI_DEFAULT_MODEL_REF, alias: "Grok" }],
primaryModelRef,
});
}
2026-03-17 21:26:02 -07:00
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 {
2026-03-18 23:58:49 +00:00
return applyXaiProviderConfigWithApi(cfg, "openai-completions", XAI_DEFAULT_MODEL_REF);
}