UNPKG

n8n

Version:

n8n Workflow Automation Tool

37 lines (36 loc) 1.93 kB
import { Logger } from '@n8n/backend-common'; import type { User } from '@n8n/db'; import type { BuilderUsageItem, TraceStatus } from '@n8n/instance-ai'; import { InstanceSettings } from 'n8n-core'; import { Push } from '../../push'; import { AiService } from '../../services/ai.service'; import { InstanceActivationService } from '../../services/instance-activation.service'; import { Telemetry } from '../../telemetry'; import { InstanceAiSettingsService } from './instance-ai-settings.service'; import { InstanceAiMessageRepository } from './repositories/instance-ai-message.repository'; import { InstanceAiThreadRepository } from './repositories/instance-ai-thread.repository'; export declare class InstanceAiCreditService { private readonly aiService; private readonly telemetry; private readonly instanceSettings; private readonly push; private readonly threadRepo; private readonly settingsService; private readonly activationService; private readonly messageRepo; private readonly logger; private readonly claimedRunIds; static readonly CLAIM_DEDUPE_CACHE_SIZE = 1000; private static readonly CLAIM_MAX_ATTEMPTS; private quotaLockConfirmed; private messageThresholdReached; constructor(logger: Logger, aiService: AiService, telemetry: Telemetry, instanceSettings: InstanceSettings, push: Push, threadRepo: InstanceAiThreadRepository, settingsService: InstanceAiSettingsService, activationService: InstanceActivationService, messageRepo: InstanceAiMessageRepository); ensureQuotaLockApplied(user: User): Promise<void>; private shouldSkipQuotaLock; claimRunUsage(user: User, threadId: string, dedupeId: string, usage: BuilderUsageItem[], status: TraceStatus): Promise<number | undefined>; private getProxyAuth; private claimTokens; private claimTokensWithRetry; private accumulateThreadCredits; private rememberClaimedRunId; }