@ooples/token-optimizer-mcp
Version:
Intelligent context window optimization for Claude Code - store content externally via caching and compression, freeing up your context window for what matters
215 lines • 5.34 kB
TypeScript
/**
* Smart Processes Tool - 60% Token Reduction
*
* Monitors running processes with:
* - Process filtering (hide noise)
* - Resource usage tracking
* - Smart aggregation
* - Anomaly detection
*/
import { CacheEngine } from '../../core/cache-engine.js';
import { TokenCounter } from '../../core/token-counter.js';
import { MetricsCollector } from '../../core/metrics.js';
interface SmartProcessesOptions {
/**
* Filter processes by name pattern
*/
filter?: string;
/**
* Show only high CPU usage processes (> threshold %)
*/
cpuThreshold?: number;
/**
* Show only high memory usage processes (> threshold MB)
*/
memoryThreshold?: number;
/**
* Include system processes
*/
includeSystem?: boolean;
/**
* Maximum number of processes to show
*/
limit?: number;
/**
* Project root directory
*/
projectRoot?: string;
/**
* Use cached snapshot (for comparison)
*/
useCache?: boolean;
/**
* Maximum cache age in seconds
*/
maxCacheAge?: number;
}
interface SmartProcessesOutput {
/**
* Summary of process state
*/
summary: {
totalProcesses: number;
filteredCount: number;
highCpuCount: number;
highMemoryCount: number;
timestamp: number;
};
/**
* Top processes by resource usage
*/
topProcesses: {
byCpu: Array<{
pid: number;
name: string;
cpu: number;
memory: number;
}>;
byMemory: Array<{
pid: number;
name: string;
cpu: number;
memory: number;
}>;
};
/**
* Anomalies detected
*/
anomalies: Array<{
type: 'cpu_spike' | 'memory_leak' | 'zombie' | 'duplicate';
severity: 'high' | 'medium' | 'low';
message: string;
processes: Array<{
pid: number;
name: string;
}>;
}>;
/**
* Resource usage trends (if cache available)
*/
trends?: {
cpuDelta: number;
memoryDelta: number;
processCountDelta: number;
};
/**
* Token reduction metrics
*/
metrics: {
originalTokens: number;
compactedTokens: number;
reductionPercentage: number;
};
}
export declare class SmartProcesses {
private cache;
private cacheNamespace;
private platform;
constructor(cache: CacheEngine, _tokenCounter: TokenCounter, _metrics: MetricsCollector, _projectRoot?: string);
/**
* Get process information with smart filtering and caching
*/
run(options?: SmartProcessesOptions): Promise<SmartProcessesOutput>;
/**
* Capture current process snapshot
*/
private captureSnapshot;
/**
* Get list of running processes
*/
private getProcessList;
/**
* Get processes on Windows
*/
private getWindowsProcesses;
/**
* Get processes on Unix/Linux/macOS
*/
private getUnixProcesses;
/**
* Filter processes based on criteria
*/
private filterProcesses;
/**
* Get cached snapshot
*/
private getCachedSnapshot;
/**
* Cache snapshot
*/
private cacheSnapshot;
/**
* Detect anomalies in process list
*/
private detectAnomalies;
/**
* Calculate resource usage trends
*/
private calculateTrends;
/**
* Transform process data to smart output
*/
private transformOutput;
/**
* Estimate original output size (full process list)
*/
private estimateOriginalOutputSize;
/**
* Estimate compact output size
*/
private estimateCompactSize;
/**
* Close cache connection
*/
close(): void;
}
/**
* Factory function for creating SmartProcesses with shared resources (for benchmarks)
*/
export declare function getSmartProcessesTool(cache: CacheEngine, tokenCounter: TokenCounter, metrics: MetricsCollector, projectRoot?: string): SmartProcesses;
/**
* CLI-friendly function for running smart processes
*/
export declare function runSmartProcesses(options?: SmartProcessesOptions): Promise<string>;
export declare const SMART_PROCESSES_TOOL_DEFINITION: {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
filter: {
type: string;
description: string;
};
cpuThreshold: {
type: string;
description: string;
};
memoryThreshold: {
type: string;
description: string;
};
includeSystem: {
type: string;
description: string;
default: boolean;
};
limit: {
type: string;
description: string;
default: number;
};
projectRoot: {
type: string;
description: string;
};
compareWithPrevious: {
type: string;
description: string;
default: boolean;
};
};
};
};
export {};
//# sourceMappingURL=smart-processes.d.ts.map