UNPKG

route-claudecode

Version:

Advanced routing and transformation system for Claude Code outputs to multiple AI providers

85 lines 2.42 kB
/** * Simple Session Manager * Provides basic session tracking without concurrency control * * Key Features: * 1. Session metadata tracking * 2. Request ID generation * 3. Basic statistics * 4. No queuing or concurrency control */ import { EventEmitter } from 'events'; export interface SessionRequest { requestId: string; sessionId: string; conversationId: string; timestamp: Date; isStreaming: boolean; status: 'active' | 'completed' | 'failed'; sequenceNumber: number; startTime: number; endTime?: number; } export interface SessionStats { totalSessions: number; activeRequests: number; completedRequests: number; failedRequests: number; outOfOrderResponses: number; } /** * Simple session manager without concurrency control * Provides basic session tracking and request ID generation */ export declare class SimpleSessionManager extends EventEmitter { private port; private activeRequests; private sessionCounters; private completedRequests; private failedRequests; private outOfOrderResponses; private conversationHistory; constructor(port: number); /** * Generate a simple request ID without queuing * Format: sessionId:conversationId:timestamp:random */ generateRequestId(sessionId: string, conversationId: string, isStreaming?: boolean): string; /** * Mark request as completed */ completeRequest(requestId: string, finishReason?: string): void; /** * Mark request as failed */ failRequest(requestId: string, error: any): void; /** * Check if a request is active */ isRequestActive(requestId: string): boolean; /** * Get session statistics */ getSessionStats(): SessionStats; /** * Get active requests for a specific session */ getActiveRequests(sessionId: string, conversationId?: string): SessionRequest[]; /** * Get next counter for a session */ private getNextCounter; /** * Check if request completed out of order and log warning */ private checkRequestOrder; /** * Clean up expired sessions */ private cleanupExpiredSessions; } /** * Get or create simple session manager for a specific port */ export declare function getSimpleSessionManager(port: number): SimpleSessionManager; //# sourceMappingURL=simple-session-manager.d.ts.map