@@ -59,17 +59,20 @@ class InputObject:
5959 tools : list [dict ] | None = None
6060 tool_choice : str | dict | None = None
6161 tags : list [str ] | None = None
62- enable_compression : bool | None = (
63- None # Enable token compression (gateway-internal, not sent to providers )
62+ compression_model : str | None = (
63+ None # Compression model: agentic, claude, opencode, cursor, customer (gateway-internal )
6464 )
6565 compression_rate : float | None = (
6666 None # Compression rate 0.0-1.0 (gateway-internal, not sent to providers)
6767 )
68- enable_claude_compression : bool | None = (
69- None # Enable Claude-specific tool compression (gateway-internal, not sent to providers)
68+ compression_semantic_preservation_threshold : int | None = (
69+ None # Semantic preservation threshold 0-100 (gateway-internal)
70+ )
71+ enable_compression : bool | None = (
72+ None # DEPRECATED: Use compression_model instead
7073 )
71- enable_opencode_compression : bool | None = (
72- None # Enable OpenCode-specific tool compression (gateway-internal, not sent to providers)
74+ compression_technique : str | None = (
75+ None # DEPRECATED: Use compression_model instead
7376 )
7477
7578
@@ -224,28 +227,31 @@ def send(
224227 tools = None
225228 tool_choice = None
226229 tags = None
227- enable_compression = None
230+ compression_model = None
228231 compression_rate = None
229- enable_claude_compression = None
230- enable_opencode_compression = None
232+ compression_semantic_preservation_threshold = None
233+ enable_compression = None
234+ compression_technique = None
231235 elif isinstance (input , InputObject ):
232236 messages = input .messages
233237 tools = input .tools
234238 tool_choice = input .tool_choice
235239 tags = input .tags
236- enable_compression = input .enable_compression
240+ compression_model = input .compression_model
237241 compression_rate = input .compression_rate
238- enable_claude_compression = input .enable_claude_compression
239- enable_opencode_compression = input .enable_opencode_compression
242+ compression_semantic_preservation_threshold = input .compression_semantic_preservation_threshold
243+ enable_compression = input .enable_compression
244+ compression_technique = input .compression_technique
240245 else :
241246 messages = input .get ("messages" , [])
242247 tools = input .get ("tools" )
243248 tool_choice = input .get ("tool_choice" )
244249 tags = input .get ("tags" )
245- enable_compression = input .get ("enable_compression " )
250+ compression_model = input .get ("compression_model " )
246251 compression_rate = input .get ("compression_rate" )
247- enable_claude_compression = input .get ("enable_claude_compression" )
248- enable_opencode_compression = input .get ("enable_opencode_compression" )
252+ compression_semantic_preservation_threshold = input .get ("compression_semantic_preservation_threshold" )
253+ enable_compression = input .get ("enable_compression" )
254+ compression_technique = input .get ("compression_technique" )
249255
250256 body : dict = {"model" : model , "messages" : messages }
251257 if stream :
@@ -256,14 +262,16 @@ def send(
256262 body ["tool_choice" ] = tool_choice
257263 if tags :
258264 body ["tags" ] = tags
259- if enable_compression is not None :
260- body ["enable_compression " ] = enable_compression
265+ if compression_model is not None :
266+ body ["compression_model " ] = compression_model
261267 if compression_rate is not None :
262268 body ["compression_rate" ] = compression_rate
263- if enable_claude_compression is not None :
264- body ["enable_claude_compression" ] = enable_claude_compression
265- if enable_opencode_compression is not None :
266- body ["enable_opencode_compression" ] = enable_opencode_compression
269+ if compression_semantic_preservation_threshold is not None :
270+ body ["compression_semantic_preservation_threshold" ] = compression_semantic_preservation_threshold
271+ if enable_compression is not None :
272+ body ["enable_compression" ] = enable_compression
273+ if compression_technique is not None :
274+ body ["compression_technique" ] = compression_technique
267275
268276 request = Request (
269277 f"{ self .base_url } { API_ENDPOINT } " ,
0 commit comments