Skip to content

Commit e3995d6

Browse files
committed
feat: replace per-agent booleans with compression_model
Rework compression fields per gateway review: - Add compression_model, compression_semantic_preservation_threshold - Deprecate enable_compression, add compression_technique - Remove enable_claude_compression / enable_opencode_compression Ref: EDGEE-1185
1 parent 848a73e commit e3995d6

1 file changed

Lines changed: 29 additions & 21 deletions

File tree

edgee/__init__.py

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)