UNPKG

manifest

Version:

Self-hosted Manifest LLM router with embedded server, SQLite database, and dashboard

73 lines 2.91 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RoutingCacheService = void 0; const common_1 = require("@nestjs/common"); const TTL_MS = 120_000; const MAX_ENTRIES = 5_000; function getOrExpire(map, key) { const cached = map.get(key); if (!cached) return undefined; if (cached.expiresAt > Date.now()) return cached.data; map.delete(key); return undefined; } function setWithEviction(map, key, data) { if (map.size >= MAX_ENTRIES && !map.has(key)) { const firstKey = map.keys().next().value; if (firstKey !== undefined) map.delete(firstKey); } map.set(key, { data, expiresAt: Date.now() + TTL_MS }); } let RoutingCacheService = class RoutingCacheService { tiers = new Map(); providers = new Map(); customProviders = new Map(); apiKeys = new Map(); getTiers(agentId) { return getOrExpire(this.tiers, agentId) ?? null; } setTiers(agentId, data) { setWithEviction(this.tiers, agentId, data); } getProviders(agentId) { return getOrExpire(this.providers, agentId) ?? null; } setProviders(agentId, data) { setWithEviction(this.providers, agentId, data); } getCustomProviders(agentId) { return getOrExpire(this.customProviders, agentId) ?? null; } setCustomProviders(agentId, data) { setWithEviction(this.customProviders, agentId, data); } getApiKey(agentId, provider, authType) { return getOrExpire(this.apiKeys, `${agentId}:${provider}:${authType ?? 'default'}`); } setApiKey(agentId, provider, apiKey, authType) { setWithEviction(this.apiKeys, `${agentId}:${provider}:${authType ?? 'default'}`, apiKey); } invalidateAgent(agentId) { this.tiers.delete(agentId); this.providers.delete(agentId); this.customProviders.delete(agentId); const prefix = `${agentId}:`; const toDelete = [...this.apiKeys.keys()].filter((k) => k.startsWith(prefix)); for (const k of toDelete) this.apiKeys.delete(k); } }; exports.RoutingCacheService = RoutingCacheService; exports.RoutingCacheService = RoutingCacheService = __decorate([ (0, common_1.Injectable)() ], RoutingCacheService); //# sourceMappingURL=routing-cache.service.js.map