UNPKG

n8n

Version:

n8n Workflow Automation Tool

59 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProviderPrefix = getProviderPrefix; exports.hasNativeWebSearchProvider = hasNativeWebSearchProvider; exports.isNativeWebSearchRequested = isNativeWebSearchRequested; exports.getNativeWebSearchProviderTools = getNativeWebSearchProviderTools; const api_types_1 = require("@n8n/api-types"); function getProviderPrefix(modelId) { const slashIdx = modelId.indexOf('/'); return slashIdx !== -1 ? modelId.slice(0, slashIdx) : ''; } function isNativeWebSearchProvider(provider) { return provider in api_types_1.NATIVE_WEB_SEARCH_TOOL_BY_PROVIDER; } function hasNativeWebSearchProvider(modelId) { return isNativeWebSearchProvider(getProviderPrefix(modelId)); } function isNativeWebSearchRequested(config) { const webSearch = config.config?.webSearch; return (webSearch?.provider === undefined || webSearch.provider === 'auto' || webSearch.provider === 'native'); } function getNativeWebSearchProviderTools(config, options) { const providerTools = { ...(config.providerTools ?? {}) }; const providerPrefix = getProviderPrefix(config.model); const nativeWebSearch = isNativeWebSearchProvider(providerPrefix) ? api_types_1.NATIVE_WEB_SEARCH_DEFAULTS_BY_PROVIDER[providerPrefix] : undefined; const explicitDisabled = config.config?.webSearch?.enabled === false; const isEnabled = !!nativeWebSearch && isNativeWebSearchRequested(config) && !explicitDisabled && (options.defaultEnabled === true || config.config?.webSearch?.enabled === true); for (const key of api_types_1.NATIVE_WEB_SEARCH_PROVIDER_TOOLS) { const toolProvider = api_types_1.NATIVE_WEB_SEARCH_PROVIDER_BY_TOOL[key]; if (!isEnabled || toolProvider !== providerPrefix) { delete providerTools[key]; } } if (isEnabled) { const hasProviderWebSearchTool = Object.entries(api_types_1.NATIVE_WEB_SEARCH_PROVIDER_BY_TOOL).some(([toolName, toolProvider]) => toolProvider === providerPrefix && toolName in providerTools); if (!hasProviderWebSearchTool) { providerTools[nativeWebSearch.toolName] = {}; } if (options.includeDefaultArgs) { for (const [toolName, toolProvider] of Object.entries(api_types_1.NATIVE_WEB_SEARCH_PROVIDER_BY_TOOL)) { if (toolProvider === providerPrefix && toolName in providerTools) { providerTools[toolName] = { ...nativeWebSearch.args, ...providerTools[toolName], }; } } } } return providerTools; } //# sourceMappingURL=native-web-search-provider-tools.js.map