File size: 4,239 Bytes
9c7d451
 
f8ef20f
 
 
 
 
 
 
 
9c7d451
 
eac2890
69d6091
14ecab6
946ba4f
9c7d451
 
14ecab6
eac2890
946ba4f
eac2890
 
 
9c7d451
946ba4f
9c7d451
 
45633b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b560e7a
 
 
 
 
 
 
 
 
 
 
 
 
905c229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9c7d451
eac2890
9c7d451
eac2890
f8ef20f
 
 
 
 
 
 
eac2890
9c7d451
 
 
eac2890
 
 
 
 
 
 
 
 
 
69d6091
 
 
eac2890
 
 
905c229
 
 
 
 
 
 
 
 
 
 
 
 
eac2890
9c7d451
 
14ecab6
 
 
 
 
 
45633b6
 
b560e7a
 
9c7d451
45633b6
 
 
 
 
 
 
 
 
 
 
 
 
b560e7a
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
"""Transform modules for Headroom SDK."""

from .anchor_selector import (
    AnchorSelector,
    AnchorStrategy,
    AnchorWeights,
    DataPattern,
    calculate_information_score,
    compute_item_hash,
)
from .base import Transform
from .cache_aligner import CacheAligner
from .content_detector import ContentType, DetectionResult, detect_content_type
from .diff_compressor import DiffCompressionResult, DiffCompressor, DiffCompressorConfig
from .intelligent_context import ContextStrategy, IntelligentContextManager
from .log_compressor import LogCompressionResult, LogCompressor, LogCompressorConfig
from .pipeline import TransformPipeline
from .rolling_window import RollingWindow
from .scoring import EmbeddingProvider, MessageScore, MessageScorer
from .search_compressor import (
    SearchCompressionResult,
    SearchCompressor,
    SearchCompressorConfig,
)
from .smart_crusher import SmartCrusher, SmartCrusherConfig
from .text_compressor import TextCompressionResult, TextCompressor, TextCompressorConfig
from .tool_crusher import ToolCrusher

# ML-based compression (optional dependency)
try:
    from .llmlingua_compressor import (  # noqa: F401
        LLMLinguaCompressor,
        LLMLinguaConfig,
        LLMLinguaResult,
        compress_with_llmlingua,
        is_llmlingua_model_loaded,
        unload_llmlingua_model,
    )

    _LLMLINGUA_AVAILABLE = True
except ImportError:
    _LLMLINGUA_AVAILABLE = False

# HTML content extraction (optional dependency - requires trafilatura)
try:
    from .html_extractor import (  # noqa: F401
        HTMLExtractionResult,
        HTMLExtractor,
        HTMLExtractorConfig,
        is_html_content,
    )

    _HTML_EXTRACTOR_AVAILABLE = True
except ImportError:
    _HTML_EXTRACTOR_AVAILABLE = False

# AST-based code compression (optional dependency)
from .code_compressor import (
    CodeAwareCompressor,
    CodeCompressionResult,
    CodeCompressorConfig,
    CodeLanguage,
    DocstringMode,
    detect_language,
    is_tree_sitter_available,
)

# Content routing (always available, lazy-loads compressors)
from .content_router import (
    CompressionStrategy,
    ContentRouter,
    ContentRouterConfig,
    RouterCompressionResult,
)

__all__ = [
    # Base
    "Transform",
    "TransformPipeline",
    # Anchor selection
    "AnchorSelector",
    "AnchorStrategy",
    "AnchorWeights",
    "DataPattern",
    "calculate_information_score",
    "compute_item_hash",
    # JSON compression
    "ToolCrusher",
    "SmartCrusher",
    "SmartCrusherConfig",
    # Text compression (coding tasks)
    "ContentType",
    "DetectionResult",
    "detect_content_type",
    "SearchCompressor",
    "SearchCompressorConfig",
    "SearchCompressionResult",
    "LogCompressor",
    "LogCompressorConfig",
    "LogCompressionResult",
    "DiffCompressor",
    "DiffCompressorConfig",
    "DiffCompressionResult",
    "TextCompressor",
    "TextCompressorConfig",
    "TextCompressionResult",
    # Code-aware compression (AST-based)
    "CodeAwareCompressor",
    "CodeCompressorConfig",
    "CodeCompressionResult",
    "CodeLanguage",
    "DocstringMode",
    "detect_language",
    "is_tree_sitter_available",
    # Content routing
    "ContentRouter",
    "ContentRouterConfig",
    "RouterCompressionResult",
    "CompressionStrategy",
    # Other transforms
    "CacheAligner",
    "RollingWindow",
    # Intelligent context management
    "IntelligentContextManager",
    "ContextStrategy",
    "MessageScorer",
    "MessageScore",
    "EmbeddingProvider",
    # ML-based compression (optional)
    "_LLMLINGUA_AVAILABLE",
    # HTML extraction (optional)
    "_HTML_EXTRACTOR_AVAILABLE",
]

# Conditionally add LLMLingua exports
if _LLMLINGUA_AVAILABLE:
    __all__.extend(
        [
            "LLMLinguaCompressor",
            "LLMLinguaConfig",
            "LLMLinguaResult",
            "compress_with_llmlingua",
            "is_llmlingua_model_loaded",
            "unload_llmlingua_model",
        ]
    )

# Conditionally add HTML extractor exports
if _HTML_EXTRACTOR_AVAILABLE:
    __all__.extend(
        [
            "HTMLExtractor",
            "HTMLExtractorConfig",
            "HTMLExtractionResult",
            "is_html_content",
        ]
    )