UNPKG

xc-mcp

Version:

MCP server that wraps Xcode command-line tools for iOS/macOS development workflows

73 lines 2.24 kB
import { XcodeProject } from '../types/xcode.js'; export interface BuildConfig { scheme: string; configuration: string; destination?: string; sdk?: string; derivedDataPath?: string; } export interface BuildMetrics { timestamp: Date; config: BuildConfig; success: boolean; duration?: number; errorCount: number; warningCount: number; buildSizeBytes: number; } export interface ProjectInfo { path: string; lastModified: Date; projectData: XcodeProject; preferredScheme?: string; lastSuccessfulConfig?: BuildConfig; } export interface DependencyInfo { lastChecked: Date; packageResolved?: Record<string, unknown>; podfileLock?: string; carthageResolved?: string; } export declare class ProjectCache { private projectConfigs; private buildHistory; private dependencyCache; private cacheMaxAge; constructor(); setCacheMaxAge(milliseconds: number): void; getCacheMaxAge(): number; clearCache(): void; getProjectInfo(projectPath: string, force?: boolean): Promise<ProjectInfo>; getPreferredBuildConfig(projectPath: string): Promise<BuildConfig | null>; recordBuildResult(projectPath: string, config: BuildConfig, metrics: Omit<BuildMetrics, 'config'>): void; getBuildHistory(projectPath: string, limit?: number): BuildMetrics[]; getPerformanceTrends(projectPath: string): { avgBuildTime?: number; successRate: number; recentErrorCount: number; buildTimeImprovement?: number; }; getDependencyInfo(projectPath: string): Promise<DependencyInfo | null>; getCacheStats(): { projectCount: number; buildHistoryCount: number; dependencyCount: number; cacheMaxAgeMs: number; cacheMaxAgeHuman: string; }; private isProjectCacheValid; private isDependencyCacheValid; private normalizePath; private formatDuration; /** * Load persisted state from disk */ private loadPersistedState; /** * Persist state to disk with debouncing */ private saveStateTimeout; private persistStateDebounced; } export declare const projectCache: ProjectCache; //# sourceMappingURL=project-cache.d.ts.map