openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
76 lines (75 loc) • 3.79 kB
JavaScript
import { c as resolveGpt5SystemPromptContribution, s as resolveGpt5PromptOverlayMode } from "../../gpt5-prompt-overlay-4NAHljmU.mjs";
import { t as definePluginEntry } from "../../plugin-entry-BsETFXpv.mjs";
import { r as resolvePluginConfigObject } from "../../plugin-config-runtime-fqShPC2k.mjs";
import "../../provider-model-metadata-nUm_0k1C.mjs";
import { r as buildProviderToolCompatFamilyHooks } from "../../provider-tools-CQ4ILRNN.mjs";
import { t as buildOpenAIImageGenerationProvider } from "../../image-generation-provider-D-BEqdrO.mjs";
import { t as openaiMediaUnderstandingProvider } from "../../media-understanding-provider-G65F2JxC.mjs";
import { t as openAiMemoryEmbeddingProviderAdapter } from "../../memory-embedding-adapter-BpxrOoe_.mjs";
import { t as buildOpenAIProvider } from "../../openai-provider-B2wErw1U.mjs";
import { t as OPENAI_QUICKSILVER_OFFER_PATH } from "../../realtime-quicksilver-session-Ctaho27I.mjs";
import { n as releaseOpenAIQuicksilverBrowserSessionBroker, t as acquireOpenAIQuicksilverBrowserSessionBroker } from "../../realtime-quicksilver-session-owner-BarMu0lg.mjs";
import { t as buildOpenAIRealtimeTranscriptionProvider } from "../../realtime-transcription-provider-factory-01Klu1BD.mjs";
import { t as buildOpenAIRealtimeVoiceProvider } from "../../realtime-voice-provider-factory-DtqAsJvg.mjs";
import { t as buildOpenAISpeechProvider } from "../../speech-provider-COGzQEtF.mjs";
//#region extensions/openai/index.ts
var openai_default = definePluginEntry({
id: "openai",
name: "OpenAI Provider",
description: "Bundled OpenAI provider plugins",
register(api) {
const { ensureAuthProfileStore, listProfilesForProvider, isProviderApiKeyConfigured } = api.runtime.modelAuth;
const openAIToolCompatHooks = buildProviderToolCompatFamilyHooks("openai");
const provider = buildOpenAIProvider();
api.registerProvider({
...provider,
...openAIToolCompatHooks,
resolveSystemPromptContribution: (ctx) => {
const pluginConfig = resolvePluginConfigObject(ctx.config, "openai") ?? (ctx.config ? void 0 : api.pluginConfig);
return resolveGpt5SystemPromptContribution({
config: ctx.config,
legacyPluginConfig: { personality: resolveGpt5PromptOverlayMode(void 0, pluginConfig) },
modelId: ctx.modelId,
trigger: ctx.trigger
});
}
});
api.registerEmbeddingProvider(openAiMemoryEmbeddingProviderAdapter);
api.registerImageGenerationProvider(buildOpenAIImageGenerationProvider({
ensureAuthProfileStore,
listProfilesForProvider,
isProviderApiKeyConfigured
}));
api.registerRealtimeTranscriptionProvider(buildOpenAIRealtimeTranscriptionProvider);
api.registerRealtimeVoiceProvider((context) => {
const quicksilverSession = api.registrationMode === "full" ? acquireOpenAIQuicksilverBrowserSessionBroker({
getConfig: () => api.runtime.config.current(),
logger: api.logger
}, context) : void 0;
if (quicksilverSession) {
api.registerHttpRoute({
path: OPENAI_QUICKSILVER_OFFER_PATH,
auth: "plugin",
match: "exact",
handler: quicksilverSession.handler
});
api.lifecycle.registerRuntimeLifecycle({
id: "openai-quicksilver-realtime-browser-session",
description: "Close OpenAI browser sidebands when the plugin stops",
cleanup: (ctx) => {
if (ctx.reason !== "disable") return;
return releaseOpenAIQuicksilverBrowserSessionBroker(quicksilverSession);
}
});
}
return buildOpenAIRealtimeVoiceProvider(context, {
quicksilverBrowserSessionBroker: quicksilverSession?.broker,
logger: api.logger
});
});
api.registerSpeechProvider(buildOpenAISpeechProvider());
api.registerMediaUnderstandingProvider(openaiMediaUnderstandingProvider);
}
});
//#endregion
export { openai_default as default };