@net3/queuer
Version:
75 lines (66 loc) • 1.56 kB
text/typescript
export interface QueueConfiguration {
id: string;
mcpToolName: string;
// Timing
delayType: 'fixed' | 'random';
delayUnit: 'seconds' | 'minutes' | 'hours' | 'days';
delayValue?: number;
delayMin?: number;
delayMax?: number;
// Rate limits
dailyLimit: number;
hourlyLimit: number;
// Active hours
activeHours?: {
timezone: string;
schedule: {
[day: string]: {
enabled: boolean;
start?: string;
end?: string;
};
};
};
// Metadata
createdAt: number;
updatedAt: number;
lastUsed?: number;
totalProcessed: number;
}
export interface QueueState {
queueId: string;
lastReleaseTime: number;
itemCount: number;
currentExecutingItem: string | null;
lastExecutedTime: number;
version: number;
}
export interface QueueUsage {
date: string;
hour: string;
dailyCount: number;
hourlyCount: number;
}
export interface QueueItem {
id: string;
queueId: string;
releaseTime: number;
targetAction: string;
actionConfig: any;
status: 'scheduled' | 'processing' | 'completed' | 'failed';
createdAt: number;
lastError?: string;
}
export interface QueueStatus {
pendingItems: number;
currentlyExecuting: string | null;
lastExecutedTime: string | null;
dailyUsed: number;
dailyLimit: number;
dailyRemaining: number | null;
hourlyUsed: number;
hourlyLimit: number;
hourlyRemaining: number | null;
isWithinActiveHours?: boolean;
nextActiveWindow?: string;
}