UNPKG

n8n

Version:

n8n Workflow Automation Tool

135 lines (134 loc) • 6.65 kB
import type { InstanceAiAdminSettingsResponse, InstanceAiAdminSettingsUpdateRequest, InstanceAiConnectionUpdate, InstanceAiUserPreferencesResponse, InstanceAiUserPreferencesUpdateRequest, InstanceAiProviderConnection, InstanceAiPermissions, InstanceAiSandboxProvider } from '@n8n/api-types'; import { GlobalConfig } from '@n8n/config'; import { DbLockService, SettingsRepository, UserRepository } from '@n8n/db'; import type { User } from '@n8n/db'; import type { ModelConfig } from '@n8n/instance-ai'; import { CredentialsFinderService } from '../../credentials/credentials-finder.service'; import { CredentialsService } from '../../credentials/credentials.service'; import { InstanceCredentialBroker, type InstanceCredentialUse } from '../../credentials/instance-credential-broker'; import { EventService } from '../../events/event.service'; import { AiService } from '../../services/ai.service'; import { UserService } from '../../services/user.service'; export interface InstanceAiSandboxStatus { enabled: boolean; provider: InstanceAiSandboxProvider; workflowBuilderAvailable: boolean; unavailableReason: string | null; } export declare const CREDENTIAL_TO_MODEL_PROVIDER: Record<string, string>; export declare const INSTANCE_AI_MODEL_CREDENTIAL_POLICY: InstanceCredentialUse; export declare const INSTANCE_AI_DAYTONA_CREDENTIAL_POLICY: InstanceCredentialUse; export declare const INSTANCE_AI_N8N_SANDBOX_CREDENTIAL_POLICY: InstanceCredentialUse; export declare const INSTANCE_AI_SEARCH_CREDENTIAL_POLICY: InstanceCredentialUse; export interface AdminModelSelection { modelCredentialId: string | null; modelName: string | null; } export interface AdminCredentialSelection extends AdminModelSelection { daytonaCredentialId: string | null; n8nSandboxCredentialId: string | null; searchCredentialId: string | null; } export declare class InstanceAiSettingsService { private readonly dbLockService; private readonly settingsRepository; private readonly userRepository; private readonly userService; private readonly aiService; private readonly credentialsService; private readonly credentialsFinderService; private readonly instanceCredentialBroker; private readonly eventService; private readonly config; private readonly deploymentConfig; private readonly environmentSandboxProvider; private sandboxProviderOverride?; private enabled; private mcpAccessEnabled; private permissions; private adminModelName; private searchDisabled; private adminN8nSandboxServiceUrl; private readonly environmentN8nSandboxServiceUrl; constructor(globalConfig: GlobalConfig, dbLockService: DbLockService, settingsRepository: SettingsRepository, userRepository: UserRepository, userService: UserService, aiService: AiService, credentialsService: CredentialsService, credentialsFinderService: CredentialsFinderService, instanceCredentialBroker: InstanceCredentialBroker, eventService: EventService); private get isCloud(); isProxyEnabled(): boolean; loadFromDb(): Promise<void>; getAdminSettings(): Promise<InstanceAiAdminSettingsResponse>; private buildAdminSettingsResponse; updateAdminSettings(update: InstanceAiAdminSettingsUpdateRequest, user?: User): Promise<InstanceAiAdminSettingsResponse>; private rejectConnectionConflicts; private upsertConnection; private prepareConnection; private prepareSandboxConnection; private runConnectionHooks; private upsertSandboxConnection; reloadFromDb(): Promise<void>; getUserPreferences(user: User): Promise<InstanceAiUserPreferencesResponse>; updateUserPreferences(user: User, update: InstanceAiUserPreferencesUpdateRequest): Promise<InstanceAiUserPreferencesResponse>; resolveModelConnectionForVerification(connection: InstanceAiConnectionUpdate): Promise<InstanceAiConnectionUpdate>; resolveSandboxConnectionForVerification(connection: InstanceAiConnectionUpdate): Promise<InstanceAiConnectionUpdate>; resolveSearchConnectionForVerification(connection: InstanceAiConnectionUpdate): Promise<InstanceAiConnectionUpdate>; private connectionForVerification; listInstanceModelCredentials(): Promise<InstanceAiProviderConnection[]>; listInstanceServiceCredentials(): Promise<InstanceAiProviderConnection[]>; resolveDaytonaConfig(): Promise<{ apiUrl?: string; apiKey?: string; }>; resolveN8nSandboxConfig(): Promise<{ serviceUrl?: string; apiKey?: string; }>; resolveSearchConfig(): Promise<{ braveApiKey?: string; searxngUrl?: string; }>; private validateAssignedServiceCredential; private resolveServiceCredential; private warnCredentialFallback; getPermissions(): InstanceAiPermissions; isMcpAccessEnabled(): boolean; isLocalGatewayDisabledForUser(userId: string): Promise<boolean>; isAgentEnabled(): boolean; isLocalGatewayDisabled(): boolean; isBrowserUseEnabled(): boolean; isActivationCapped(): boolean; getActivationLockMessageThreshold(): number; getSandboxStatus(): InstanceAiSandboxStatus; isInstanceAiEnabled(): boolean; isSetupCompleted(): Promise<boolean>; getConfiguredModelId(): string; resolveModelName(user: User): string; resolveModelConfig(user: User): Promise<ModelConfig>; resolveModelConfigForVerification(user: User, modelName?: string): Promise<ModelConfig>; buildModelConfigForConnection(connection: InstanceAiConnectionUpdate, modelName: string): ModelConfig; private resolveAdminModelConfig; private buildModelConfigFromCredential; private buildModelConfig; private static readonly MANAGED_ADMIN_FIELDS; private static readonly INSTANCE_CREDENTIAL_FIELDS; private static readonly MANAGED_PREFERENCE_FIELDS; private rejectEnvironmentManagedFields; private deploymentLabel; private rejectManagedFields; private validateAdminSettingsUpdate; private getSandboxUnavailableReason; private envVarModelConfig; private hasEnvironmentModelConnection; private hasEnvironmentModelName; private hasEnvironmentSandboxConnection; private hasEnvironmentSearchConnection; private isDirectSelfManaged; private envVarModelConfigForModel; private extractModelName; private applyAdminSettings; private readUserPreferences; private snapshotAdminSettings; private mergeAdminSettings; private readPersistedAdminSettings; private withPersistedAdminSettings; private readAdminModelSelection; private parsePersistedAdminSettings; private emitSettingsUpdated; }