UNPKG

@inso_web/els-mcp

Version:

MCP-сервер поверх INSO Error Logs Service. Read-only tools (search, analytics, fingerprinting, correlations) для подключения Claude Desktop/Code и ChatGPT к логам ошибок. Streamable HTTP transport + stdio для npx-запуска.

60 lines 2.51 kB
/** * Cache TTL policies per "tool class". * * Источник: `todo/error-logs-service/mcp/05-high-load.md` § 2.1. * * Class имена используются: * - как `tool_class` label в Prometheus метриках (`mcp_cache_hit_ratio`); * - как первая часть Redis key namespace (`mcp:cache:{class}:...`). * * Изменения дефолтов делайте здесь, не в `cachedElsClient.ts` — chair pattern. * * Значения можно override через ENV `MCP_CACHE_TTL_OVERRIDE_{CLASS}=secs` * (см. `src/config.ts`). */ export declare const CACHE_POLICIES: { readonly log_details: 3600; readonly traffic_long: 300; readonly traffic_short: 60; readonly top_messages: 120; readonly stats_breakdown: 120; readonly search_recent: 15; readonly list_apps: 30; readonly heatmap: 300; readonly histogram: 60; readonly baseline: 300; readonly version_timeline: 300; readonly grouped_errors: 120; }; export type CacheClass = keyof typeof CACHE_POLICIES; export interface CachePolicyOverrides { [k: string]: number | undefined; } /** * Объединяет дефолтные политики с user overrides из конфига. */ export declare function resolvePolicies(overrides?: CachePolicyOverrides): Record<CacheClass, number>; /** * Стабильный sha256 hash от объекта параметров (отсортированные ключи). * * НЕ криптографически стойкий — это просто детерминированный fingerprint. * Используется для построения cache key (paramsHash). * * Возвращает base64url-encoded 16 chars. */ export declare function paramsHash(params: Record<string, unknown>): string; /** * Tenant-isolated cache key builder. * * **Обязательная** проверка: в key всегда присутствует tenant-идентификатор * (`appSlug` или `keyPrefix`). Иначе — `Error`. * * Формат: * `mcp:cache:{scope}:{tenant}:{...parts}` * * Это **единственный** разрешённый путь создания cache key в проекте. * * @throws Error если tenant=null AND keyPrefix=empty (cross-tenant leak guard) */ export declare function tenantKey(scope: string, appSlug: string | null, parts: Array<string | number>, fallbackKeyPrefix?: string): string; //# sourceMappingURL=policies.d.ts.map