feat: add xai media providers

Add xAI image generation and text-to-speech provider support with docs, live tests, and guarded provider HTTP handling.\n\nThanks @KateWilkins.
This commit is contained in:
KateWilkins
2026-04-23 00:07:39 +01:00
committed by GitHub
parent 386a0884d7
commit f342da5fcc
21 changed files with 1369 additions and 26 deletions

View File

@@ -79,6 +79,11 @@ const PROVIDER_CASES: LiveProviderCase[] = [
pluginName: "Vydra Provider",
providerId: "vydra",
},
{
pluginId: "xai",
pluginName: "xAI Provider",
providerId: "xai",
},
]
.filter((entry) => (providerFilter ? providerFilter.has(entry.providerId) : true))
.toSorted((left, right) => left.providerId.localeCompare(right.providerId));

View File

@@ -59,6 +59,7 @@ import { createRuntimeConfigVitestConfig } from "./vitest/vitest.runtime-config.
import { createScopedVitestConfig, resolveVitestIsolation } from "./vitest/vitest.scoped-config.ts";
import { createSecretsVitestConfig } from "./vitest/vitest.secrets.config.ts";
import { createSharedCoreVitestConfig } from "./vitest/vitest.shared-core.config.ts";
import { sharedVitestConfig } from "./vitest/vitest.shared.config.ts";
import { createTasksVitestConfig } from "./vitest/vitest.tasks.config.ts";
import { createToolingVitestConfig } from "./vitest/vitest.tooling.config.ts";
import { createTuiVitestConfig } from "./vitest/vitest.tui.config.ts";
@@ -321,7 +322,7 @@ describe("scoped vitest configs", () => {
});
it("keeps the broad agents lane on shared file parallelism", () => {
expect(defaultAgentsConfig.test?.fileParallelism).toBe(true);
expect(defaultAgentsConfig.test?.fileParallelism).toBe(sharedVitestConfig.test.fileParallelism);
});
it("keeps selected plugin-sdk and commands light lanes off the openclaw runtime setup", () => {