tryaii-mcp-server
Version:
TryAII MCP Server - 15+ AI models with comparison, cost tracking, and collective intelligence
91 lines • 2.22 kB
TypeScript
import { EncryptedData } from '../utils/encryption.js';
export interface EnhancedMCPSession {
userId: string;
apiKeyId: string;
keyPrefix: string;
userName?: string;
userEmail?: string;
permissions: string[];
usageQuota?: {
maxRequests: number;
maxCost: number;
resetPeriod: string;
};
metadata: {
connectionSource: string;
clientVersion?: string;
lastActivity: Date;
};
}
export interface Session {
sessionId: string;
userId: string;
apiKeyId: string;
createdAt: Date;
lastActivity: Date;
requestQueue: RequestQueue;
status: 'active' | 'idle' | 'expired';
encryptedUserData?: EncryptedData | null;
userProvider?: string;
userContext?: {
keyPrefix: string;
userName?: string | undefined;
userEmail?: string | undefined;
permissions: string[];
connectionSource?: string | undefined;
clientVersion?: string | undefined;
};
balanceInfo?: {
totalCost: number;
balanceResult?: any;
};
}
export interface RequestQueue {
pending: PendingRequest[];
processing: ProcessingRequest | null;
completed: CompletedRequest[];
}
export interface PendingRequest {
id: string;
method: string;
params: any;
timestamp: Date;
resolve: (value: any) => void;
reject: (error: Error) => void;
timeout?: NodeJS.Timeout;
}
export interface ProcessingRequest {
id: string;
method: string;
params: any;
startTime: Date;
timeout?: NodeJS.Timeout;
}
export interface CompletedRequest {
id: string;
method: string;
success: boolean;
result?: any;
error?: string;
processingTime: number;
completedAt: Date;
}
export interface SessionMetrics {
sessionId: string;
userId: string;
totalRequests: number;
successfulRequests: number;
failedRequests: number;
averageProcessingTime: number;
totalCost: number;
createdAt: Date;
lastActivity: Date;
status: string;
}
export interface QueueStatus {
pending: number;
processing: boolean;
completed: number;
averageWaitTime: number;
}
//# sourceMappingURL=session.d.ts.map