UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

62 lines (61 loc) 3.5 kB
import { c as normalizeOptionalLowercaseString } from "./string-coerce-CIXf7egm.js"; import { C as requireActivePluginRegistry } from "./runtime-BL4wZfTq.js"; import { t as listRegisteredPluginCommands } from "./plugin-command-registry-BOeSDUSE.js"; import { n as getLoadedChannelPlugin } from "./registry-Cz6cv4VC.js"; import "./plugins-Cozj1Enf.js"; import { n as projectPluginCommandNativeMetadata, t as pluginCommandSupportsChannel } from "./plugin-command-metadata-jSFxBwiS.js"; import { i as resolveReadOnlyChannelCommandDefaults } from "./read-only-command-defaults-CUJu-1dU.js"; //#region src/plugins/command-specs.ts function resolvePluginTextName(command) { return command.name.trim() || command.name; } function pluginNativeCommandsEnabled(providerName, options) { if (!providerName) return true; const commandDefaults = options.config ? resolveReadOnlyChannelCommandDefaults(providerName, { ...options, config: options.config }) : void 0; return (getLoadedChannelPlugin(providerName)?.commands ?? commandDefaults)?.nativeCommandsAutoEnabled === true; } function getPluginCommandSpecs(provider, options = {}) { const providerName = normalizeOptionalLowercaseString(provider); if (!pluginNativeCommandsEnabled(providerName, options)) return []; return listProviderPluginCommandSpecs(providerName); } function getPluginCommandEntrySpecs(provider, options = {}) { const providerName = normalizeOptionalLowercaseString(provider); const nativeCommandsEnabled = pluginNativeCommandsEnabled(providerName, options); return listRegisteredPluginCommands(requireActivePluginRegistry()).map((cmd) => serializePluginCommandEntrySpec(cmd, providerName, nativeCommandsEnabled)).filter((spec) => spec !== null); } function getPluginCommandEntrySpecsFromRegistrations(commands, provider, options = {}) { const providerName = normalizeOptionalLowercaseString(provider); const nativeCommandsEnabled = pluginNativeCommandsEnabled(providerName, options); return commands.map((entry) => serializePluginCommandEntrySpec(entry.command, providerName, nativeCommandsEnabled)).filter((spec) => spec !== null); } /** Resolve plugin command specs for a provider's native naming surface without support gating. */ function listProviderPluginCommandSpecs(provider) { return listRegisteredPluginCommands(requireActivePluginRegistry()).filter((cmd) => pluginCommandSupportsChannel(cmd, provider)).map((cmd) => serializePluginCommandSpec(cmd, provider)); } function serializePluginCommandSpec(cmd, provider) { const metadata = projectPluginCommandNativeMetadata(cmd, provider); const spec = { name: metadata.name, description: metadata.description, acceptsArgs: metadata.acceptsArgs }; if (metadata.descriptionLocalizations) spec.descriptionLocalizations = { ...metadata.descriptionLocalizations }; return spec; } function serializePluginCommandEntrySpec(cmd, provider, nativeCommandsEnabled) { if (!pluginCommandSupportsChannel(cmd, provider)) return null; const nativeName = nativeCommandsEnabled ? projectPluginCommandNativeMetadata(cmd, provider).name : void 0; return { name: resolvePluginTextName(cmd), description: cmd.description.trim(), acceptsArgs: cmd.acceptsArgs ?? false, ...nativeName ? { nativeName } : {}, ...cmd.clientPresentation ? { clientPresentation: cmd.clientPresentation } : {} }; } //#endregion export { listProviderPluginCommandSpecs as i, getPluginCommandEntrySpecsFromRegistrations as n, getPluginCommandSpecs as r, getPluginCommandEntrySpecs as t };