/** * Society Protocol - Context Compression & Optimization v1.0 * * Sistema de otimização de contexto e comunicações: * - Compressão de mensagens (LZ4, Zstd) * - Summarização inteligente de contexto * - Sliding window com relevância * - Semantic chunking * - Deduplicação de conteúdo * - Priorização de mensagens */ import { type SwpEnvelope } from './swp.js'; export interface CompressionConfig { algorithm: 'lz4' | 'zstd' | 'gzip' | 'none'; level: number; threshold: number; } export interface ContextWindow { messages: Array<{ id: string; timestamp: number; role: 'system' | 'user' | 'assistant'; content: string; tokens: number; relevance: number; compressed: boolean; summary?: string; }>; totalTokens: number; maxTokens: number; compressed: boolean; } export interface SemanticChunk { id: string; content: string; tokens: number; embeddings?: number[]; entities: string[]; topics: string[]; timestamp: number; importance: number; } export interface SummaryResult { originalLength: number; summaryLength: number; compressionRatio: number; keyPoints: string[]; entities: string[]; sentiment: 'positive' | 'negative' | 'neutral'; } export declare class MessageCompressor { private config; constructor(config?: Partial); compress(data: Uint8Array): Promise; decompress(data: Uint8Array, algorithm: string): Promise; private compressLZ4; private compressZstd; private compressGzip; private decompressLZ4; private decompressZstd; private decompressGzip; private packCodecPayload; private unpackCodecPayload; private dynamicImport; getCompressionStats(original: number, compressed: number): { ratio: number; savings: number; savingsPercent: number; }; } export declare class ContextOptimizer { private maxTokens; private reserveTokens; constructor(maxTokens?: number, reserveTokens?: number); /** * Otimizar janela de contexto mantendo apenas o mais relevante */ optimizeWindow(window: ContextWindow): ContextWindow; /** * Comprimir mensagem mantendo informação essencial */ compressMessage(msg: ContextWindow['messages'][0]): ContextWindow['messages'][0]; /** * Criar summary progressivo do contexto */ createProgressiveSummary(messages: ContextWindow['messages']): string; /** * Deduplicar mensagens similares */ deduplicateMessages(messages: ContextWindow['messages']): ContextWindow['messages']; private calculateRelevance; private removeRepetitions; private compressQuotes; private summarizeText; private extractKeyPoints; private chunkMessages; private hashContent; } export declare class SemanticChunker { private maxChunkSize; private overlap; constructor(maxChunkSize?: number, overlap?: number); /** * Dividir texto em chunks semânticos */ chunk(text: string): SemanticChunk[]; /** * Mesclar chunks similares */ mergeSimilarChunks(chunks: SemanticChunk[], threshold?: number): SemanticChunk[]; private createChunk; private extractEntities; private extractTopics; private calculateImportance; private calculateSimilarity; private mergeTwoChunks; } export declare class MessagePrioritizer { /** * Priorizar mensagens para entrega */ prioritize(messages: SwpEnvelope[]): SwpEnvelope[]; private calculatePriority; } //# sourceMappingURL=compression.d.ts.map