vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
94 lines • 3.21 kB
TypeScript
export type UserRole = 'admin' | 'manager' | 'developer' | 'viewer' | 'guest';
export type Permission = 'task:create' | 'task:read' | 'task:update' | 'task:delete' | 'task:execute' | 'project:create' | 'project:read' | 'project:update' | 'project:delete' | 'agent:manage' | 'agent:assign' | 'agent:monitor' | 'system:admin' | 'system:config' | 'system:audit' | 'file:read' | 'file:write' | 'file:execute';
export interface AuthToken {
id: string;
userId: string;
sessionId: string;
token: string;
refreshToken: string;
issuedAt: Date;
expiresAt: Date;
lastUsed: Date;
ipAddress?: string;
userAgent?: string;
permissions: Permission[];
role: UserRole;
metadata?: Record<string, unknown>;
}
export interface UserSession {
id: string;
userId: string;
role: UserRole;
permissions: Permission[];
createdAt: Date;
lastActivity: Date;
expiresAt: Date;
ipAddress?: string;
userAgent?: string;
isActive: boolean;
metadata?: Record<string, unknown>;
}
export interface AuthenticationResult {
success: boolean;
token?: AuthToken;
session?: UserSession;
error?: string;
requiresRefresh?: boolean;
}
export interface AuthorizationResult {
authorized: boolean;
reason?: string;
requiredPermission?: Permission;
userRole?: UserRole;
userPermissions?: Permission[];
}
export interface AuthenticationConfig {
enabled: boolean;
tokenSecret: string;
tokenExpirationMs: number;
refreshTokenExpirationMs: number;
sessionTimeoutMs: number;
maxConcurrentSessions: number;
enableRoleBasedAccess: boolean;
enableAuditLogging: boolean;
requireSecureTokens: boolean;
allowGuestAccess: boolean;
}
export declare class AuthenticationIntegration {
private static instance;
private config;
private activeSessions;
private activeTokens;
private sessionCleanupTimer;
private constructor();
static getInstance(config?: Partial<AuthenticationConfig>): AuthenticationIntegration;
authenticate(userId: string, role: UserRole, context?: {
ipAddress?: string;
userAgent?: string;
metadata?: Record<string, unknown>;
}): Promise<AuthenticationResult>;
validateToken(tokenString: string): Promise<AuthenticationResult>;
refreshToken(refreshTokenString: string): Promise<AuthenticationResult>;
authorize(sessionId: string, permission: Permission, resource?: {
type: string;
id?: string;
}): Promise<AuthorizationResult>;
logout(sessionId: string): Promise<boolean>;
private createAuthToken;
private getRolePermissions;
private generateSessionId;
private generateTokenId;
private generateSecureToken;
private generateSecureSecret;
private startSessionCleanup;
private cleanupExpiredSessions;
getAuthenticationStatistics(): {
activeSessions: number;
activeTokens: number;
sessionsByRole: Record<UserRole, number>;
averageSessionDuration: number;
};
shutdown(): Promise<void>;
}
export declare function getAuthenticationIntegration(): AuthenticationIntegration;
//# sourceMappingURL=auth-integration.d.ts.map