@sethdouglasford/claude-flow
Version:
Claude Code Flow - Advanced AI-powered development workflows with SPARC methodology
60 lines • 2.07 kB
TypeScript
/**
* Session manager for MCP connections
*/
import { MCPSession, MCPInitializeParams, MCPConfig } from "../utils/types.js";
import { ILogger } from "../core/logger.js";
export interface ISessionManager {
createSession(transport: "stdio" | "http" | "websocket"): MCPSession;
getSession(id: string): MCPSession | undefined;
initializeSession(sessionId: string, params: MCPInitializeParams): void;
authenticateSession(sessionId: string, credentials: unknown): boolean;
updateActivity(sessionId: string): void;
removeSession(sessionId: string): void;
getActiveSessions(): MCPSession[];
cleanupExpiredSessions(): void;
getSessionMetrics(): {
total: number;
active: number;
authenticated: number;
expired: number;
};
}
/**
* Session manager implementation
*/
export declare class SessionManager implements ISessionManager {
private config;
private logger;
private sessions;
private authConfig;
private sessionTimeout;
private maxSessions;
private cleanupInterval?;
constructor(config: MCPConfig, logger: ILogger);
createSession(transport: "stdio" | "http" | "websocket"): MCPSession;
getSession(id: string): MCPSession | undefined;
initializeSession(sessionId: string, params: MCPInitializeParams): void;
authenticateSession(sessionId: string, credentials: unknown): boolean;
updateActivity(sessionId: string): void;
removeSession(sessionId: string): void;
getActiveSessions(): MCPSession[];
cleanupExpiredSessions(): void;
getSessionMetrics(): {
total: number;
active: number;
authenticated: number;
expired: number;
};
destroy(): void;
private generateSessionId;
private isSessionExpired;
private validateProtocolVersion;
private authenticateToken;
private authenticateBasic;
private authenticateOAuth;
private extractToken;
private extractBasicAuth;
private extractAuthData;
private hashPassword;
}
//# sourceMappingURL=session-manager.d.ts.map