UNPKG

apple-hig-mcp

Version:

High-performance MCP server providing instant access to Apple's Human Interface Guidelines via hybrid static/dynamic content delivery

103 lines 3.1 kB
/** * Static HIG Content Provider * * Loads pre-generated HIG content from static files with fallback to live scraping. */ import type { HIGResource, ApplePlatform, HIGCategory, SearchResult } from './types.js'; interface StaticContentMetadata { lastUpdated: string; totalSections: number; sectionsByPlatform: Record<ApplePlatform, number>; sectionsByCategory: Record<HIGCategory, number>; totalSize: number; generationDuration: number; } interface StaticSection { title: string; platform: ApplePlatform; category: HIGCategory; url: string; id: string; lastUpdated: string; content: string; } export declare class HIGStaticContentProvider { private contentDir; private searchIndex; private crossReferences; private metadata; private contentCache; private availabilityCache; private enhancedSearch; constructor(contentDir?: string); /** * Get content directory for production environments */ private getProductionContentDir; /** * Initialize the static content provider */ initialize(): Promise<boolean>; /** * Check if static content is available (cached for performance) */ isAvailable(): Promise<boolean>; /** * Get content age in milliseconds */ getContentAge(): number | null; /** * Check if content is stale (older than 6 months) */ isContentStale(): boolean; /** * List all available resources */ listResources(): Promise<HIGResource[]>; /** * Get content for a specific resource */ getResource(uri: string): Promise<HIGResource | null>; /** * Search static content with enhanced keyword matching and synonym expansion */ searchContent(query: string, platform?: ApplePlatform, category?: HIGCategory, limit?: number): Promise<SearchResult[]>; /** * Get synonym expansions for search terms */ private expandQueryWithSynonyms; /** * Simple keyword search on static content (fallback when advanced search fails) */ keywordSearchContent(query: string, platform?: ApplePlatform, category?: HIGCategory, limit?: number): Promise<SearchResult[]>; /** * Get a specific section by ID */ getSection(sectionId: string): Promise<StaticSection | null>; /** * Get related sections for a given section ID */ getRelatedSections(sectionId: string): string[]; /** * Get generation metadata */ getMetadata(): StaticContentMetadata | null; private loadMetadata; private loadSearchIndex; private loadCrossReferences; private getCategoryCount; private parseResourceURI; private getPlatformContent; private getCategoryContent; private getUpdatesContent; private getSectionsForPlatform; private getSectionsForCategory; private generateFilename; private parseMarkdownFile; private getAttributionText; private stringToPlatform; private stringToCategory; private formatCategoryName; } export {}; //# sourceMappingURL=static-content.d.ts.map