n8n
Version:
n8n Workflow Automation Tool
37 lines (36 loc) • 1.93 kB
TypeScript
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;
}