UNPKG

hatch-slidev-builder-mcp

Version:

A comprehensive MCP server for creating Slidev presentations with component library, interactive elements, and team collaboration features

82 lines (81 loc) 2.33 kB
/** * Layer 3: Asset Intelligence Engine * Smart asset curation and management with semantic matching */ export interface AssetMetadata { id: string; type: 'icon' | 'image' | 'video' | 'chart' | 'diagram' | 'logo'; source: 'unsplash' | 'iconify' | 'freepik' | 'huggingface' | 'local' | 'supabase'; url: string; thumbnail_url?: string; alt_text: string; tags: string[]; semantic_score: number; brand_compliance: boolean; cultural_appropriateness: boolean; license: 'free' | 'attribution' | 'premium'; dimensions?: { width: number; height: number; }; } export interface AssetRecommendation { assets: AssetMetadata[]; reasoning: string; confidence_score: number; fallback_options: AssetMetadata[]; } export interface AssetQuery { content_context: string; slide_type: string; target_audience: string; brand_guidelines?: string; cultural_context?: string; preferred_style?: 'professional' | 'casual' | 'technical' | 'creative'; } export declare class AssetIntelligenceEngine { /** * Curate assets based on content context and brand guidelines */ static curateAssets(query: AssetQuery): Promise<AssetRecommendation>; /** * Extract search terms from content context */ private static extractSearchTerms; /** * Get style filter based on preferences */ private static getStyleFilter; /** * Search Unsplash for relevant images */ private static searchUnsplash; /** * Search Iconify for relevant icons */ private static searchIconify; /** * Search Freepik for premium assets */ private static searchFreepik; /** * Score assets based on relevance and context */ private static scoreAssets; /** * Generate reasoning for asset recommendations */ private static generateReasoning; /** * Calculate confidence score for recommendations */ private static calculateConfidenceScore; /** * Validate asset against brand guidelines */ static validateBrandCompliance(asset: AssetMetadata, brandGuidelines: any): boolean; /** * Check cultural appropriateness */ static checkCulturalAppropriateness(asset: AssetMetadata, context: string): boolean; }