UNPKG

claude-flow

Version:

Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration

80 lines 1.98 kB
/** * Production Rate Limiting * * Provides token bucket rate limiting with: * - Per-operation limits * - Per-user/agent limits * - Burst allowance * - Sliding window tracking * * @module @claude-flow/cli/production/rate-limiter */ export interface RateLimiterConfig { maxRequests: number; windowMs: number; burstMultiplier: number; whitelist: string[]; operationLimits: Record<string, { maxRequests: number; windowMs: number; }>; perUserLimits: boolean; maxTrackedUsers: number; } export interface RateLimitResult { allowed: boolean; remaining: number; resetAt: number; retryAfterMs?: number; } export declare class RateLimiter { private config; private buckets; private globalBucket; constructor(config?: Partial<RateLimiterConfig>); /** * Check if a request is allowed */ check(operation: string, userId?: string): RateLimitResult; /** * Consume a token (use after successful request) */ consume(operation: string, userId?: string): boolean; /** * Get current rate limit status */ getStatus(operation: string, userId?: string): { current: number; limit: number; remaining: number; resetAt: number; }; /** * Reset limits for a specific key */ reset(operation: string, userId?: string): void; /** * Reset all limits */ resetAll(): void; /** * Get statistics */ getStats(): { totalBuckets: number; activeUsers: number; mostLimitedOperations: Array<{ operation: string; requests: number; }>; }; private getLimits; private createBucket; private cleanupBuckets; } /** * Create a rate limiter with default config */ export declare function createRateLimiter(config?: Partial<RateLimiterConfig>): RateLimiter; export default RateLimiter; //# sourceMappingURL=rate-limiter.d.ts.map