diff --git a/src/bundled-image-generation-providers.ts b/src/bundled-image-generation-providers.ts deleted file mode 100644 index bcd152c3352..00000000000 --- a/src/bundled-image-generation-providers.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { buildFalImageGenerationProvider } from "../extensions/fal/image-generation-provider.js"; -import { buildGoogleImageGenerationProvider } from "../extensions/google/image-generation-provider.js"; -import { - buildMinimaxImageGenerationProvider, - buildMinimaxPortalImageGenerationProvider, -} from "../extensions/minimax/image-generation-provider.js"; -import { buildOpenAIImageGenerationProvider } from "../extensions/openai/image-generation-provider.js"; -import type { ImageGenerationProviderPlugin } from "./plugins/types.js"; - -type BundledImageGenerationProviderEntry = { - pluginId: string; - provider: ImageGenerationProviderPlugin; -}; - -export function listBundledImageGenerationProviderEntries(): BundledImageGenerationProviderEntry[] { - return [ - { pluginId: "fal", provider: buildFalImageGenerationProvider() }, - { pluginId: "google", provider: buildGoogleImageGenerationProvider() }, - { pluginId: "minimax", provider: buildMinimaxImageGenerationProvider() }, - { pluginId: "minimax", provider: buildMinimaxPortalImageGenerationProvider() }, - { pluginId: "openai", provider: buildOpenAIImageGenerationProvider() }, - ]; -} diff --git a/src/bundled-web-search.entries.ts b/src/bundled-web-search.entries.ts deleted file mode 100644 index 00a82f22f72..00000000000 --- a/src/bundled-web-search.entries.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { createBraveWebSearchProvider } from "../extensions/brave/web-search-provider.js"; -import { createDuckDuckGoWebSearchProvider } from "../extensions/duckduckgo/web-search-provider.js"; -import { createExaWebSearchProvider } from "../extensions/exa/web-search-provider.js"; -import { createFirecrawlWebSearchProvider } from "../extensions/firecrawl/web-search-provider.js"; -import { createGeminiWebSearchProvider } from "../extensions/google/web-search-provider.js"; -import { createKimiWebSearchProvider } from "../extensions/moonshot/web-search-provider.js"; -import { createPerplexityWebSearchProvider } from "../extensions/perplexity/web-search-provider.js"; -import { createTavilyWebSearchProvider } from "../extensions/tavily/web-search-provider.js"; -import { createXaiWebSearchProvider } from "../extensions/xai/web-search.js"; -import type { PluginWebSearchProviderEntry } from "./plugins/types.js"; - -export function listBundledWebSearchProviderEntries(): PluginWebSearchProviderEntry[] { - return [ - { pluginId: "brave", ...createBraveWebSearchProvider() }, - { pluginId: "duckduckgo", ...createDuckDuckGoWebSearchProvider() }, - { pluginId: "exa", ...createExaWebSearchProvider() }, - { pluginId: "firecrawl", ...createFirecrawlWebSearchProvider() }, - { pluginId: "google", ...createGeminiWebSearchProvider() }, - { pluginId: "moonshot", ...createKimiWebSearchProvider() }, - { pluginId: "perplexity", ...createPerplexityWebSearchProvider() }, - { pluginId: "tavily", ...createTavilyWebSearchProvider() }, - { pluginId: "xai", ...createXaiWebSearchProvider() }, - ]; -} diff --git a/src/plugins/bundled-web-search.test.ts b/src/plugins/bundled-web-search.test.ts index be259e07220..3d8096b95fa 100644 --- a/src/plugins/bundled-web-search.test.ts +++ b/src/plugins/bundled-web-search.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { listBundledWebSearchProviderEntries } from "../bundled-web-search.entries.js"; import type { OpenClawConfig } from "../config/config.js"; +import { loadBundledCapabilityRuntimeRegistry } from "./bundled-capability-runtime.js"; import { BUNDLED_WEB_SEARCH_PLUGIN_IDS } from "./bundled-web-search-ids.js"; import { resolveBundledWebSearchPluginId } from "./bundled-web-search-provider-ids.js"; import { @@ -105,7 +105,13 @@ describe("bundled web search metadata", () => { it("keeps bundled provider metadata aligned with bundled plugin contracts", async () => { const fastPathProviders = listBundledWebSearchProviders(); - const bundledProviderEntries = listBundledWebSearchProviderEntries(); + const bundledProviderEntries = loadBundledCapabilityRuntimeRegistry({ + pluginIds: BUNDLED_WEB_SEARCH_PLUGIN_IDS, + pluginSdkResolution: "dist", + }).webSearchProviders.map((entry) => ({ + pluginId: entry.pluginId, + ...entry.provider, + })); expect( sortComparableEntries( diff --git a/src/plugins/bundled-web-search.ts b/src/plugins/bundled-web-search.ts index 7570a3e9346..4f6866753ed 100644 --- a/src/plugins/bundled-web-search.ts +++ b/src/plugins/bundled-web-search.ts @@ -1,5 +1,5 @@ -import { listBundledWebSearchProviderEntries } from "../bundled-web-search.entries.js"; import { BUNDLED_WEB_SEARCH_PLUGIN_IDS } from "./bundled-capability-metadata.js"; +import { loadBundledCapabilityRuntimeRegistry } from "./bundled-capability-runtime.js"; import { resolveBundledWebSearchPluginId as resolveBundledWebSearchPluginIdFromMap } from "./bundled-web-search-provider-ids.js"; import type { PluginLoadOptions } from "./loader.js"; import { loadPluginManifestRegistry } from "./manifest-registry.js"; @@ -11,7 +11,13 @@ let bundledWebSearchProvidersCache: BundledWebSearchProviderEntry[] | null = nul function loadBundledWebSearchProviders(): BundledWebSearchProviderEntry[] { if (!bundledWebSearchProvidersCache) { - bundledWebSearchProvidersCache = listBundledWebSearchProviderEntries(); + bundledWebSearchProvidersCache = loadBundledCapabilityRuntimeRegistry({ + pluginIds: BUNDLED_WEB_SEARCH_PLUGIN_IDS, + pluginSdkResolution: "dist", + }).webSearchProviders.map((entry) => ({ + pluginId: entry.pluginId, + ...entry.provider, + })); } return bundledWebSearchProvidersCache; } diff --git a/src/plugins/contracts/registry.ts b/src/plugins/contracts/registry.ts index d325a3b8bc8..feb5caf6f09 100644 --- a/src/plugins/contracts/registry.ts +++ b/src/plugins/contracts/registry.ts @@ -1,4 +1,3 @@ -import { listBundledImageGenerationProviderEntries } from "../../bundled-image-generation-providers.js"; import { BUNDLED_IMAGE_GENERATION_PLUGIN_IDS, BUNDLED_PLUGIN_CONTRACT_SNAPSHOTS, @@ -226,10 +225,16 @@ function loadMediaUnderstandingProviderContractRegistry(): MediaUnderstandingPro function loadImageGenerationProviderContractRegistry(): ImageGenerationProviderContractEntry[] { if (!imageGenerationProviderContractRegistryCache) { - imageGenerationProviderContractRegistryCache = - listBundledImageGenerationProviderEntries().filter((entry) => - BUNDLED_IMAGE_GENERATION_PLUGIN_IDS.includes(entry.pluginId), - ); + const registry = loadBundledCapabilityRuntimeRegistry({ + pluginIds: BUNDLED_IMAGE_GENERATION_PLUGIN_IDS, + pluginSdkResolution: "dist", + }); + imageGenerationProviderContractRegistryCache = registry.imageGenerationProviders.map( + (entry) => ({ + pluginId: entry.pluginId, + provider: entry.provider, + }), + ); } return imageGenerationProviderContractRegistryCache; }