agentis
Version:
A TypeScript framework for building sophisticated multi-agent systems
24 lines (23 loc) • 800 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.rateLimit = void 0;
// Simple in-memory rate limiting
const REQUESTS = new Map();
const WINDOW_MS = 60000; // 1 minute
const MAX_REQUESTS = 60; // 60 requests per minute
const rateLimit = async (message, agent, next) => {
const now = Date.now();
const key = message.sender_id;
// Initialize or clean up old requests
if (!REQUESTS.has(key)) {
REQUESTS.set(key, []);
}
const requests = REQUESTS.get(key).filter(timestamp => now - timestamp < WINDOW_MS);
if (requests.length >= MAX_REQUESTS) {
throw new Error('Rate limit exceeded. Please try again later.');
}
requests.push(now);
REQUESTS.set(key, requests);
await next();
};
exports.rateLimit = rateLimit;