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
TypeScript
/**
* 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