mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 09:41:11 +00:00
fix(test): restore support shard boundaries
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
"../../src/plugin-sdk/provider-onboard.ts",
|
||||
"../../src/plugin-sdk/provider-stream-shared.ts",
|
||||
"../../src/plugin-sdk/provider-tools.ts",
|
||||
"../../src/plugin-sdk/provider-web-search-contract.ts",
|
||||
"../../src/plugin-sdk/provider-web-search.ts",
|
||||
"../../src/plugin-sdk/runtime-doctor.ts",
|
||||
"../../src/plugin-sdk/runtime-env.ts",
|
||||
|
||||
@@ -3175,6 +3175,9 @@ export const GENERATED_BASE_CONFIG_SCHEMA: BaseConfigSchemaResponse = {
|
||||
description:
|
||||
"Optional repository root shown in the system prompt runtime line (overrides auto-detect).",
|
||||
},
|
||||
systemPromptOverride: {
|
||||
type: "string",
|
||||
},
|
||||
skipBootstrap: {
|
||||
type: "boolean",
|
||||
},
|
||||
@@ -5376,6 +5379,9 @@ export const GENERATED_BASE_CONFIG_SCHEMA: BaseConfigSchemaResponse = {
|
||||
agentDir: {
|
||||
type: "string",
|
||||
},
|
||||
systemPromptOverride: {
|
||||
type: "string",
|
||||
},
|
||||
model: {
|
||||
anyOf: [
|
||||
{
|
||||
|
||||
@@ -1,98 +1,31 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
loadBundledMusicGenerationProviders,
|
||||
loadBundledVideoGenerationProviders,
|
||||
} from "../../test/helpers/media-generation/bundled-provider-builders.js";
|
||||
import { listSupportedMusicGenerationModes } from "../music-generation/capabilities.js";
|
||||
import type { MusicGenerationProvider } from "../music-generation/types.js";
|
||||
import { BUNDLED_PLUGIN_CONTRACT_SNAPSHOTS } from "../plugins/contracts/inventory/bundled-capability-metadata.js";
|
||||
import { listSupportedVideoGenerationModes } from "../video-generation/capabilities.js";
|
||||
import type { VideoGenerationProvider } from "../video-generation/types.js";
|
||||
|
||||
type VideoProviderEntry = {
|
||||
pluginId: string;
|
||||
provider: VideoGenerationProvider;
|
||||
};
|
||||
|
||||
type MusicProviderEntry = {
|
||||
pluginId: string;
|
||||
provider: MusicGenerationProvider;
|
||||
};
|
||||
|
||||
function expectedBundledVideoProviderPluginIds(): string[] {
|
||||
return BUNDLED_PLUGIN_CONTRACT_SNAPSHOTS.filter((entry) => entry.videoGenerationProviderIds.length > 0)
|
||||
return BUNDLED_PLUGIN_CONTRACT_SNAPSHOTS.filter(
|
||||
(entry) => entry.videoGenerationProviderIds.length > 0,
|
||||
)
|
||||
.map((entry) => entry.pluginId)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
}
|
||||
|
||||
function expectedBundledMusicProviderPluginIds(): string[] {
|
||||
return BUNDLED_PLUGIN_CONTRACT_SNAPSHOTS.filter((entry) => entry.musicGenerationProviderIds.length > 0)
|
||||
return BUNDLED_PLUGIN_CONTRACT_SNAPSHOTS.filter(
|
||||
(entry) => entry.musicGenerationProviderIds.length > 0,
|
||||
)
|
||||
.map((entry) => entry.pluginId)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
}
|
||||
|
||||
async function loadBundledVideoGenerationProviders(): Promise<VideoProviderEntry[]> {
|
||||
const [
|
||||
{ buildAlibabaVideoGenerationProvider },
|
||||
{ buildBytePlusVideoGenerationProvider },
|
||||
{ buildComfyVideoGenerationProvider },
|
||||
{ buildFalVideoGenerationProvider },
|
||||
{ buildGoogleVideoGenerationProvider },
|
||||
{ buildMinimaxVideoGenerationProvider },
|
||||
{ buildOpenAIVideoGenerationProvider },
|
||||
{ buildQwenVideoGenerationProvider },
|
||||
{ buildRunwayVideoGenerationProvider },
|
||||
{ buildTogetherVideoGenerationProvider },
|
||||
{ buildVydraVideoGenerationProvider },
|
||||
{ buildXaiVideoGenerationProvider },
|
||||
] = await Promise.all([
|
||||
import("../../extensions/alibaba/video-generation-provider.js"),
|
||||
import("../../extensions/byteplus/video-generation-provider.js"),
|
||||
import("../../extensions/comfy/video-generation-provider.js"),
|
||||
import("../../extensions/fal/video-generation-provider.js"),
|
||||
import("../../extensions/google/video-generation-provider.js"),
|
||||
import("../../extensions/minimax/video-generation-provider.js"),
|
||||
import("../../extensions/openai/video-generation-provider.js"),
|
||||
import("../../extensions/qwen/video-generation-provider.js"),
|
||||
import("../../extensions/runway/video-generation-provider.js"),
|
||||
import("../../extensions/together/video-generation-provider.js"),
|
||||
import("../../extensions/vydra/video-generation-provider.js"),
|
||||
import("../../extensions/xai/video-generation-provider.js"),
|
||||
]);
|
||||
|
||||
return [
|
||||
{ pluginId: "alibaba", provider: buildAlibabaVideoGenerationProvider() },
|
||||
{ pluginId: "byteplus", provider: buildBytePlusVideoGenerationProvider() },
|
||||
{ pluginId: "comfy", provider: buildComfyVideoGenerationProvider() },
|
||||
{ pluginId: "fal", provider: buildFalVideoGenerationProvider() },
|
||||
{ pluginId: "google", provider: buildGoogleVideoGenerationProvider() },
|
||||
{ pluginId: "minimax", provider: buildMinimaxVideoGenerationProvider() },
|
||||
{ pluginId: "openai", provider: buildOpenAIVideoGenerationProvider() },
|
||||
{ pluginId: "qwen", provider: buildQwenVideoGenerationProvider() },
|
||||
{ pluginId: "runway", provider: buildRunwayVideoGenerationProvider() },
|
||||
{ pluginId: "together", provider: buildTogetherVideoGenerationProvider() },
|
||||
{ pluginId: "vydra", provider: buildVydraVideoGenerationProvider() },
|
||||
{ pluginId: "xai", provider: buildXaiVideoGenerationProvider() },
|
||||
];
|
||||
}
|
||||
|
||||
async function loadBundledMusicGenerationProviders(): Promise<MusicProviderEntry[]> {
|
||||
const [
|
||||
{ buildComfyMusicGenerationProvider },
|
||||
{ buildGoogleMusicGenerationProvider },
|
||||
{ buildMinimaxMusicGenerationProvider },
|
||||
] = await Promise.all([
|
||||
import("../../extensions/comfy/music-generation-provider.js"),
|
||||
import("../../extensions/google/music-generation-provider.js"),
|
||||
import("../../extensions/minimax/music-generation-provider.js"),
|
||||
]);
|
||||
|
||||
return [
|
||||
{ pluginId: "comfy", provider: buildComfyMusicGenerationProvider() },
|
||||
{ pluginId: "google", provider: buildGoogleMusicGenerationProvider() },
|
||||
{ pluginId: "minimax", provider: buildMinimaxMusicGenerationProvider() },
|
||||
];
|
||||
}
|
||||
|
||||
describe("bundled media-generation provider capabilities", () => {
|
||||
it("declares explicit mode support for every bundled video-generation provider", async () => {
|
||||
const entries = await loadBundledVideoGenerationProviders();
|
||||
it("declares explicit mode support for every bundled video-generation provider", () => {
|
||||
const entries = loadBundledVideoGenerationProviders();
|
||||
expect(entries.map((entry) => entry.pluginId).toSorted()).toEqual(
|
||||
expectedBundledVideoProviderPluginIds(),
|
||||
);
|
||||
@@ -133,8 +66,8 @@ describe("bundled media-generation provider capabilities", () => {
|
||||
}
|
||||
});
|
||||
|
||||
it("declares explicit generate/edit support for every bundled music-generation provider", async () => {
|
||||
const entries = await loadBundledMusicGenerationProviders();
|
||||
it("declares explicit generate/edit support for every bundled music-generation provider", () => {
|
||||
const entries = loadBundledMusicGenerationProviders();
|
||||
expect(entries.map((entry) => entry.pluginId).toSorted()).toEqual(
|
||||
expectedBundledMusicProviderPluginIds(),
|
||||
);
|
||||
|
||||
@@ -1,12 +1,24 @@
|
||||
// Narrow shared exports for web-search contract surfaces.
|
||||
|
||||
import type { WebSearchProviderPlugin } from "../plugins/types.js";
|
||||
// Public contract-safe web-search registration helpers for provider plugins.
|
||||
|
||||
import type {
|
||||
WebSearchCredentialResolutionSource,
|
||||
WebSearchProviderSetupContext,
|
||||
WebSearchProviderPlugin,
|
||||
WebSearchProviderToolDefinition,
|
||||
} from "../plugins/types.js";
|
||||
export {
|
||||
getScopedCredentialValue,
|
||||
getTopLevelCredentialValue,
|
||||
mergeScopedSearchConfig,
|
||||
resolveProviderWebSearchPluginConfig,
|
||||
setScopedCredentialValue,
|
||||
setProviderWebSearchPluginConfigValue,
|
||||
setTopLevelCredentialValue,
|
||||
} from "../agents/tools/web-search-provider-config.js";
|
||||
export { enablePluginInConfig } from "../plugins/enable.js";
|
||||
export type { WebSearchProviderPlugin };
|
||||
export type {
|
||||
WebSearchCredentialResolutionSource,
|
||||
WebSearchProviderSetupContext,
|
||||
WebSearchProviderPlugin,
|
||||
WebSearchProviderToolDefinition,
|
||||
};
|
||||
|
||||
52
test/helpers/media-generation/bundled-provider-builders.ts
Normal file
52
test/helpers/media-generation/bundled-provider-builders.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
import { buildAlibabaVideoGenerationProvider } from "../../../extensions/alibaba/video-generation-provider.js";
|
||||
import { buildBytePlusVideoGenerationProvider } from "../../../extensions/byteplus/video-generation-provider.js";
|
||||
import { buildComfyMusicGenerationProvider } from "../../../extensions/comfy/music-generation-provider.js";
|
||||
import { buildComfyVideoGenerationProvider } from "../../../extensions/comfy/video-generation-provider.js";
|
||||
import { buildFalVideoGenerationProvider } from "../../../extensions/fal/video-generation-provider.js";
|
||||
import { buildGoogleMusicGenerationProvider } from "../../../extensions/google/music-generation-provider.js";
|
||||
import { buildGoogleVideoGenerationProvider } from "../../../extensions/google/video-generation-provider.js";
|
||||
import { buildMinimaxMusicGenerationProvider } from "../../../extensions/minimax/music-generation-provider.js";
|
||||
import { buildMinimaxVideoGenerationProvider } from "../../../extensions/minimax/video-generation-provider.js";
|
||||
import { buildOpenAIVideoGenerationProvider } from "../../../extensions/openai/video-generation-provider.js";
|
||||
import { buildQwenVideoGenerationProvider } from "../../../extensions/qwen/video-generation-provider.js";
|
||||
import { buildRunwayVideoGenerationProvider } from "../../../extensions/runway/video-generation-provider.js";
|
||||
import { buildTogetherVideoGenerationProvider } from "../../../extensions/together/video-generation-provider.js";
|
||||
import { buildVydraVideoGenerationProvider } from "../../../extensions/vydra/video-generation-provider.js";
|
||||
import { buildXaiVideoGenerationProvider } from "../../../extensions/xai/video-generation-provider.js";
|
||||
import type { MusicGenerationProvider } from "../../../src/music-generation/types.js";
|
||||
import type { VideoGenerationProvider } from "../../../src/video-generation/types.js";
|
||||
|
||||
export type BundledVideoProviderEntry = {
|
||||
pluginId: string;
|
||||
provider: VideoGenerationProvider;
|
||||
};
|
||||
|
||||
export type BundledMusicProviderEntry = {
|
||||
pluginId: string;
|
||||
provider: MusicGenerationProvider;
|
||||
};
|
||||
|
||||
export function loadBundledVideoGenerationProviders(): BundledVideoProviderEntry[] {
|
||||
return [
|
||||
{ pluginId: "alibaba", provider: buildAlibabaVideoGenerationProvider() },
|
||||
{ pluginId: "byteplus", provider: buildBytePlusVideoGenerationProvider() },
|
||||
{ pluginId: "comfy", provider: buildComfyVideoGenerationProvider() },
|
||||
{ pluginId: "fal", provider: buildFalVideoGenerationProvider() },
|
||||
{ pluginId: "google", provider: buildGoogleVideoGenerationProvider() },
|
||||
{ pluginId: "minimax", provider: buildMinimaxVideoGenerationProvider() },
|
||||
{ pluginId: "openai", provider: buildOpenAIVideoGenerationProvider() },
|
||||
{ pluginId: "qwen", provider: buildQwenVideoGenerationProvider() },
|
||||
{ pluginId: "runway", provider: buildRunwayVideoGenerationProvider() },
|
||||
{ pluginId: "together", provider: buildTogetherVideoGenerationProvider() },
|
||||
{ pluginId: "vydra", provider: buildVydraVideoGenerationProvider() },
|
||||
{ pluginId: "xai", provider: buildXaiVideoGenerationProvider() },
|
||||
];
|
||||
}
|
||||
|
||||
export function loadBundledMusicGenerationProviders(): BundledMusicProviderEntry[] {
|
||||
return [
|
||||
{ pluginId: "comfy", provider: buildComfyMusicGenerationProvider() },
|
||||
{ pluginId: "google", provider: buildGoogleMusicGenerationProvider() },
|
||||
{ pluginId: "minimax", provider: buildMinimaxMusicGenerationProvider() },
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user