/** * compressContext — thin async wrapper around the token-compression engine. * * The underlying engine is a zero-dependency ESM module. We load it via a * dynamic import so that the CJS host (CommonJS SDK) can consume it without * any build-time changes or npm installs. */ /** Content type hint for compression strategy selection. */ export type ContentType = "code" | "prose" | "auto"; export interface CompressContextOptions { /** Fraction of tokens to remove (0–1). Default: 0.45 */ targetReduction?: number; /** Do not compress if context is shorter than this many tokens. Default: 80 */ minCompressionTokens?: number; /** Maximum number of sentences to keep. Default: 20 */ maxCompressionSentences?: number; /** * Content type hint. 'auto' (default) detects source code by heuristic and * skips compression for code blobs to preserve keyword density. * Set to 'code' to force passthrough, 'prose' to always compress. */ contentType?: ContentType; } export interface CompressContextResult { /** Compressed (or original, for code passthrough) text. */ compressedText: string; /** * Alias for compressedText — provided for callers that destructure * { compressedContext } from the result object. */ compressedContext: string; originalTokens: number; compressedTokens: number; reductionRatio: number; latencyMs: number; } /** * Compress `context` by extracting the sentences most relevant to `query`. * * When contentType is 'auto' (default), source code blobs are detected via * heuristic and returned as-is (passthrough) to preserve keyword density. * Set contentType='prose' to force compression regardless of content type. * * @param context - The raw context string to compress. * @param query - The query / task description used to score relevance. * @param options - Optional tuning knobs (all have sensible defaults). * @returns Compressed text with token-count stats and wall-clock latency. */ export declare function compressContext(context: string, query: string, options?: CompressContextOptions): Promise; //# sourceMappingURL=compressContext.d.ts.map