UNPKG

@wonderwhy-er/desktop-commander

Version:

MCP server for terminal operations and file editing

130 lines (129 loc) 3.58 kB
export interface ToolUsageStats { filesystemOperations: number; terminalOperations: number; editOperations: number; searchOperations: number; configOperations: number; processOperations: number; totalToolCalls: number; successfulCalls: number; failedCalls: number; toolCounts: Record<string, number>; firstUsed: number; lastUsed: number; totalSessions: number; lastFeedbackPrompt: number; lastFeedbackPromptDate?: string; feedbackAttempts?: number; } export interface OnboardingState { promptsUsed: boolean; attemptsShown: number; lastShownAt: number; } export interface UsageSession { sessionStart: number; lastActivity: number; commandsInSession: number; promptedThisSession: boolean; } declare class UsageTracker { private currentSession; /** * Get default usage stats */ private getDefaultStats; /** * Get current usage stats from config */ getStats(): Promise<ToolUsageStats>; /** * Save usage stats to config */ private saveStats; /** * Determine which category a tool belongs to */ private getToolCategory; /** * Check if we're in a new session */ private isNewSession; /** * Update session tracking */ private updateSession; /** * Track a successful tool call */ trackSuccess(toolName: string): Promise<ToolUsageStats>; /** * Track a failed tool call */ trackFailure(toolName: string): Promise<ToolUsageStats>; /** * Check if user should be prompted for feedback based on usage patterns */ shouldPromptForFeedback(): Promise<boolean>; /** * Get a random feedback prompt message with strong CTAs and clear actions * NEW 2025 Survey - 3 variants for fresh analytics tracking */ getFeedbackPromptMessage(): Promise<{ variant: string; message: string; }>; /** * Check if user should be prompted for error feedback */ shouldPromptForErrorFeedback(): Promise<boolean>; /** * Mark that user was prompted for feedback */ markFeedbackPrompted(): Promise<void>; /** * Mark that user has given feedback */ markFeedbackGiven(): Promise<void>; /** * Get usage summary for debugging/admin purposes */ getUsageSummary(): Promise<string>; /** * Get onboarding state from config */ getOnboardingState(): Promise<OnboardingState>; /** * Save onboarding state to config */ saveOnboardingState(state: OnboardingState): Promise<void>; /** * Check if user should see onboarding invitation - SIMPLE VERSION */ shouldShowOnboarding(): Promise<boolean>; /** * Get onboarding message for new users - DIRECT 5-OPTION LIST (V2) */ getOnboardingMessage(): Promise<{ variant: string; message: string; }>; /** * Mark that onboarding message was shown - SIMPLE VERSION */ markOnboardingShown(variant: string): Promise<void>; /** * Mark that user used prompts after seeing onboarding invitation - SIMPLE VERSION */ markOnboardingPromptsUsed(): Promise<void>; /** * Mark that user has used a specific prompt (for analytics) */ markPromptUsed(promptId: string, category: string): Promise<void>; /** * Reset onboarding state for testing purposes - SIMPLE VERSION */ resetOnboardingState(): Promise<void>; } export declare const usageTracker: UsageTracker; export {};