openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
144 lines (143 loc) • 5.58 kB
JavaScript
import { t as definePluginEntry } from "../../plugin-entry-zfBGJaNO.js";
import { t as buildGoogleGeminiCliBackend } from "../../cli-backend-_dS2dNnJ.js";
import { n as registerGoogleGeminiCliProvider } from "../../gemini-cli-provider-B4ogMvUa.js";
import { c as createGoogleMusicGenerationProviderMetadata, l as createGoogleVideoGenerationProviderMetadata } from "../../generation-provider-metadata-DFHTgxtH.js";
import { t as geminiMemoryEmbeddingProviderAdapter } from "../../memory-embedding-adapter-ChM0oAou.js";
import { n as registerGoogleProvider } from "../../provider-registration-DXQgz6Es.js";
import { t as createLazyGoogleRealtimeVoiceProvider } from "../../realtime-voice-lazy-BOLOHwvt.js";
import { t as buildGoogleSpeechProvider } from "../../speech-provider-BdBWI69Y.js";
import { t as createGeminiWebSearchProvider } from "../../gemini-web-search-provider-BeX2RNTy.js";
//#region extensions/google/index.ts
let googleImageGenerationProviderPromise = null;
let googleMediaUnderstandingProviderPromise = null;
let googleMusicGenerationProviderPromise = null;
let googleVideoGenerationProviderPromise = null;
async function loadGoogleImageGenerationProvider() {
if (!googleImageGenerationProviderPromise) googleImageGenerationProviderPromise = import("./image-generation-provider.js").then((mod) => mod.buildGoogleImageGenerationProvider());
return await googleImageGenerationProviderPromise;
}
async function loadGoogleMediaUnderstandingProvider() {
if (!googleMediaUnderstandingProviderPromise) googleMediaUnderstandingProviderPromise = import("./media-understanding-provider.js").then((mod) => mod.googleMediaUnderstandingProvider);
return await googleMediaUnderstandingProviderPromise;
}
async function loadGoogleMusicGenerationProvider() {
if (!googleMusicGenerationProviderPromise) googleMusicGenerationProviderPromise = import("./music-generation-provider.js").then((mod) => mod.buildGoogleMusicGenerationProvider());
return await googleMusicGenerationProviderPromise;
}
async function loadGoogleVideoGenerationProvider() {
if (!googleVideoGenerationProviderPromise) googleVideoGenerationProviderPromise = import("./video-generation-provider.js").then((mod) => mod.buildGoogleVideoGenerationProvider());
return await googleVideoGenerationProviderPromise;
}
async function loadGoogleRequiredMediaUnderstandingProvider() {
const provider = await loadGoogleMediaUnderstandingProvider();
if (!provider.transcribeAudio || !provider.describeVideo) throw new Error("google media understanding provider missing required handlers");
return provider;
}
function createLazyGoogleImageGenerationProvider() {
return {
id: "google",
label: "Google",
defaultModel: "gemini-3.1-flash-image",
models: ["gemini-3.1-flash-image", "gemini-3-pro-image"],
capabilities: {
generate: {
maxCount: 4,
supportsSize: true,
supportsAspectRatio: true,
supportsResolution: true
},
edit: {
enabled: true,
maxCount: 4,
maxInputImages: 5,
supportsSize: true,
supportsAspectRatio: true,
supportsResolution: true
},
geometry: {
sizes: [
"1024x1024",
"1024x1536",
"1536x1024",
"1024x1792",
"1792x1024"
],
aspectRatios: [
"1:1",
"2:3",
"3:2",
"3:4",
"4:3",
"4:5",
"5:4",
"9:16",
"16:9",
"21:9"
],
resolutions: [
"1K",
"2K",
"4K"
]
}
},
generateImage: async (req) => (await loadGoogleImageGenerationProvider()).generateImage(req)
};
}
function createLazyGoogleMediaUnderstandingProvider() {
return {
id: "google",
capabilities: [
"image",
"audio",
"video"
],
defaultModels: {
image: "gemini-3-flash-preview",
audio: "gemini-3-flash-preview",
video: "gemini-3-flash-preview"
},
autoPriority: {
image: 30,
audio: 40,
video: 10
},
nativeDocumentInputs: ["pdf"],
describeImage: void 0,
describeImages: void 0,
transcribeAudio: async (...args) => await (await loadGoogleRequiredMediaUnderstandingProvider()).transcribeAudio(...args),
describeVideo: async (...args) => await (await loadGoogleRequiredMediaUnderstandingProvider()).describeVideo(...args)
};
}
function createLazyGoogleMusicGenerationProvider() {
return {
...createGoogleMusicGenerationProviderMetadata(),
generateMusic: async (...args) => await (await loadGoogleMusicGenerationProvider()).generateMusic(...args)
};
}
function createLazyGoogleVideoGenerationProvider() {
return {
...createGoogleVideoGenerationProviderMetadata(),
generateVideo: async (...args) => await (await loadGoogleVideoGenerationProvider()).generateVideo(...args)
};
}
var google_default = definePluginEntry({
id: "google",
name: "Google Plugin",
description: "Bundled Google plugin",
register(api) {
api.registerCliBackend(buildGoogleGeminiCliBackend());
registerGoogleGeminiCliProvider(api);
registerGoogleProvider(api);
api.registerEmbeddingProvider(geminiMemoryEmbeddingProviderAdapter);
api.registerImageGenerationProvider(createLazyGoogleImageGenerationProvider());
api.registerMediaUnderstandingProvider(createLazyGoogleMediaUnderstandingProvider());
api.registerMusicGenerationProvider(createLazyGoogleMusicGenerationProvider());
api.registerRealtimeVoiceProvider(createLazyGoogleRealtimeVoiceProvider());
api.registerSpeechProvider(buildGoogleSpeechProvider());
api.registerVideoGenerationProvider(createLazyGoogleVideoGenerationProvider());
api.registerWebSearchProvider(createGeminiWebSearchProvider());
}
});
//#endregion
export { google_default as default };