@wonderwhy-er/desktop-commander
Version:
MCP server for terminal operations and file editing
60 lines (59 loc) • 1.59 kB
TypeScript
declare class FeatureFlagManager {
private flags;
private lastFetch;
private cachePath;
private cacheMaxAge;
private flagUrl;
private refreshInterval;
private freshFetchPromise;
private resolveFreshFetch;
private loadedFromCache;
constructor();
/**
* Initialize - load from cache and start background refresh
*/
initialize(): Promise<void>;
/**
* Get a flag value
*/
get(flagName: string, defaultValue?: any): any;
/**
* Get all flags for debugging
*/
getAll(): Record<string, any>;
/**
* Manually refresh flags immediately (for testing)
*/
refresh(): Promise<boolean>;
/**
* Check if flags were loaded from cache (vs fresh fetch)
*/
wasLoadedFromCache(): boolean;
/**
* Wait for fresh flags to be fetched from network.
* Use this when you need to ensure flags are loaded before making decisions
* (e.g., A/B test assignments for new users who don't have a cache yet)
*
* Has a hard timeout to prevent blocking MCP startup if the fetch hangs.
* See: https://github.com/wonderwhy-er/DesktopCommanderMCP/issues/465
*/
waitForFreshFlags(): Promise<void>;
/**
* Load flags from local cache
*/
private loadFromCache;
/**
* Fetch flags from remote URL
*/
private fetchFlags;
/**
* Save flags to local cache
*/
private saveToCache;
/**
* Cleanup on shutdown
*/
destroy(): void;
}
export declare const featureFlagManager: FeatureFlagManager;
export {};