/** * Smart Glob Tool - 75% Token Reduction * * Achieves token reduction through: * 1. Path-only results (no file content unless requested) * 2. Smart pagination (limit results, return counts) * 3. Cached pattern results (reuse glob results) * 4. Metadata filtering (filter before returning) * 5. Intelligent sorting (most relevant first) * * Target: 75% reduction vs listing all files with content */ import { CacheEngine } from '../../core/cache-engine.js'; import { TokenCounter } from '../../core/token-counter.js'; import { MetricsCollector } from '../../core/metrics.js'; export interface FileMetadata { path: string; relativePath: string; name: string; extension: string; size: number; modified: Date; type: 'file' | 'directory'; fileType?: string; } export interface SmartGlobOptions { cwd?: string; absolute?: boolean; ignore?: string[]; onlyFiles?: boolean; onlyDirectories?: boolean; extensions?: string[]; excludeExtensions?: string[]; minSize?: number; maxSize?: number; modifiedAfter?: Date; modifiedBefore?: Date; includeMetadata?: boolean; includeContent?: boolean; maxContentSize?: number; limit?: number; offset?: number; sortBy?: 'name' | 'size' | 'modified' | 'path'; sortOrder?: 'asc' | 'desc'; useCache?: boolean; ttl?: number; } export interface SmartGlobResult { success: boolean; pattern: string; metadata: { totalMatches: number; returnedCount: number; truncated: boolean; tokensSaved: number; tokenCount: number; originalTokenCount: number; compressionRatio: number; duration: number; cacheHit: boolean; }; files?: Array; error?: string; } export declare class SmartGlobTool { private cache; private tokenCounter; private metrics; constructor(cache: CacheEngine, tokenCounter: TokenCounter, metrics: MetricsCollector); /** * Smart glob with filtering, pagination, and minimal token output */ glob(pattern: string, options?: SmartGlobOptions): Promise; /** * Sort files by specified field */ private sortFiles; /** * Get glob statistics */ getStats(): { totalGlobs: number; cacheHits: number; totalTokensSaved: number; averageReduction: number; }; } /** * Get smart glob tool instance */ export declare function getSmartGlobTool(cache: CacheEngine, tokenCounter: TokenCounter, metrics: MetricsCollector): SmartGlobTool; /** * CLI function - Creates resources and uses factory */ export declare function runSmartGlob(pattern: string, options?: SmartGlobOptions): Promise; /** * MCP Tool Definition */ export declare const SMART_GLOB_TOOL_DEFINITION: { name: string; description: string; inputSchema: { type: string; properties: { pattern: { type: string; description: string; }; cwd: { type: string; description: string; }; includeMetadata: { type: string; description: string; default: boolean; }; includeContent: { type: string; description: string; default: boolean; }; extensions: { type: string; items: { type: string; }; description: string; }; limit: { type: string; description: string; }; sortBy: { type: string; enum: string[]; description: string; default: string; }; }; required: string[]; }; }; //# sourceMappingURL=smart-glob.d.ts.map