@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-запуска.
45 lines • 2.31 kB
TypeScript
/**
* Tier matrix MCP — single source of truth.
*
* Поля:
* - reqPerDay — основной cut-off limit для tool-calls
* - concurrentSse — SSE-сессий per app
* - aiPerDay — лимит на AI-explain (отдельный counter)
* - graceFraction — 10 % grace выше дневного лимита перед hard cut-off
*/
export type Tier = 'FREE' | 'STANDARD' | 'PREMIUM' | 'UNLIMITED';
export interface TierLimits {
reqPerDay: number;
concurrentSse: number;
aiPerDay: number;
graceFraction: number;
}
export declare const TIER_LIMITS: Record<Tier, TierLimits>;
export interface QuotaDecision {
/** True → запрос можно пропускать. */
allowed: boolean;
/** Сколько req осталось до дневного лимита (или Infinity для UNLIMITED). */
remaining: number;
/** True → клиент уже в grace-зоне (warning, но allowed). */
overage?: boolean;
/** Если !allowed — сколько секунд до сброса. */
retryAfter?: number;
/** Текущий tier (echo back). */
tier: Tier;
}
/** Секунд до конца текущих UTC-суток. */
export declare function secondsUntilUtcMidnight(now?: Date): number;
/** Чистое решение: принимает текущий счётчик и tier, возвращает decision. */
export declare function decideQuota(currentUsed: number, tier: Tier): QuotaDecision;
/**
* Чистое решение для AI-quota: принимает текущий AI-счётчик и tier.
* Используется только для tools, помеченных как AI (например, `explain_error`).
*
* Семантика отличается от `decideQuota`: AI-quota — hard cut-off без grace
* (генерация дорогая, нет смысла превышать).
*/
export declare function decideAiQuota(currentUsed: number, tier: Tier): QuotaDecision;
/** Список tool-имён, считающихся AI (используют отдельную AI-квоту). */
export declare const AI_TOOL_NAMES: ReadonlySet<string>;
export declare function isAiTool(toolName: string): boolean;
//# sourceMappingURL=limits.d.ts.map