UNPKG

@the_cfdude/productboard-mcp

Version:

Model Context Protocol server for Productboard REST API with dynamic tool loading

152 lines (151 loc) 3.79 kB
/** * Basic context-aware features (simplified approach) * Provides intelligent response adaptation and user context awareness */ export interface ContextData { userId?: string; sessionId?: string; userPreferences?: { dataFormat?: 'detailed' | 'standard' | 'basic'; includeMetadata?: boolean; maxResults?: number; timezone?: string; language?: string; }; recentQueries?: string[]; workspaceContext?: { id?: string; name?: string; permissions?: string[]; }; instanceContext?: { name?: string; features?: string[]; limits?: Record<string, number>; }; } export interface ContextualResponse { data: unknown; metadata?: { responseFormat?: string; adaptations?: string[]; suggestions?: string[]; relatedActions?: string[]; }; userGuidance?: { nextSteps?: string[]; tips?: string[]; warnings?: string[]; }; } export interface AdaptationRule { condition: (context: ContextData, query: string, response: unknown) => boolean; adaptation: (context: ContextData, query: string, response: unknown) => ContextualResponse; priority: number; description: string; } /** * Basic context-aware response adapter */ export declare class ContextAwareAdapter { private adaptationRules; private contextCache; constructor(); /** * Set user context for session */ setContext(sessionId: string, context: ContextData): void; /** * Get user context for session */ getContext(sessionId: string): ContextData; /** * Clear context for session */ clearContext(sessionId: string): void; /** * Adapt response based on context */ adaptResponse(sessionId: string, query: string, originalResponse: unknown): ContextualResponse; /** * Add custom adaptation rule */ addAdaptationRule(rule: AdaptationRule): void; /** * Initialize default adaptation rules */ private initializeDefaultRules; /** * Update recent queries for context */ private updateRecentQueries; /** * Check if response is a large dataset */ private isLargeDataset; /** * Check if response is an error */ private isErrorResponse; /** * Check if response contains detailed information */ private isDetailedResponse; /** * Check if response contains restricted data */ private containsRestrictedData; /** * Summarize large response */ private summarizeResponse; /** * Simplify detailed response */ private simplifyResponse; /** * Filter response by permissions */ private filterByPermissions; /** * Extract error information */ private extractErrorInfo; /** * Generate basic suggestions based on context and query */ private generateBasicSuggestions; /** * Generate related actions based on context and query */ private generateRelatedActions; /** * Generate next steps based on context and query */ private generateNextSteps; /** * Generate contextual tips */ private generateTips; /** * Generate error recovery steps */ private generateErrorRecoverySteps; /** * Generate error-specific tips */ private generateErrorTips; /** * Get context statistics */ getContextStats(): { totalSessions: number; activeRules: number; averageAdaptations: number; }; /** * Clean old context data */ cleanOldContexts(_maxAgeMs?: number): number; } export declare const contextAwareAdapter: ContextAwareAdapter;