Spaces:
Runtime error
Runtime error
| import { describe, it } from "node:test"; | |
| import assert from "node:assert/strict"; | |
| import { | |
| selectCompressionStrategy, | |
| getEffectiveMode, | |
| applyCompression, | |
| } from "../../open-sse/services/compression/strategySelector.ts"; | |
| import { | |
| applyLiteCompression, | |
| replaceImageUrls, | |
| } from "../../open-sse/services/compression/lite.ts"; | |
| import { | |
| createCompressionStats, | |
| estimateCompressionTokens, | |
| } from "../../open-sse/services/compression/stats.ts"; | |
| import type { CompressionConfig } from "../../open-sse/services/compression/types.ts"; | |
| const baseConfig: CompressionConfig = { | |
| enabled: true, | |
| defaultMode: "lite", | |
| autoTriggerTokens: 0, | |
| cacheMinutes: 5, | |
| preserveSystemPrompt: true, | |
| comboOverrides: {}, | |
| }; | |
| describe("Full Compression Pipeline", () => { | |
| it("end-to-end: lite mode compresses whitespace and tracks stats", () => { | |
| const body = { | |
| messages: [ | |
| { role: "system", content: "You are helpful." }, | |
| { role: "system", content: "You are helpful." }, | |
| { role: "user", content: "hello\n\n\n\nworld" }, | |
| ], | |
| }; | |
| // Step 1: Select strategy | |
| const mode = selectCompressionStrategy(baseConfig, null, 100); | |
| assert.equal(mode, "lite"); | |
| // Step 2: Apply compression | |
| const result = applyCompression(body, mode); | |
| assert.equal(result.compressed, true); | |
| assert.ok(result.stats); | |
| // Step 3: Verify stats | |
| assert.ok(result.stats!.originalTokens > 0); | |
| assert.ok(result.stats!.compressedTokens > 0); | |
| assert.ok(result.stats!.compressedTokens <= result.stats!.originalTokens); | |
| assert.ok(result.stats!.savingsPercent >= 0); | |
| assert.equal(result.stats!.mode, "lite"); | |
| }); | |
| it("end-to-end: off mode returns unchanged body", () => { | |
| const body = { messages: [{ role: "user", content: "test" }] }; | |
| const offConfig = { ...baseConfig, enabled: false }; | |
| const mode = selectCompressionStrategy(offConfig, null, 100); | |
| assert.equal(mode, "off"); | |
| const result = applyCompression(body, mode); | |
| assert.equal(result.compressed, false); | |
| assert.equal(result.stats, null); | |
| }); | |
| it("end-to-end: combo override selects lite for specific combo", () => { | |
| const config: CompressionConfig = { | |
| ...baseConfig, | |
| defaultMode: "off" as const, | |
| comboOverrides: { "my-combo": "lite" as const }, | |
| }; | |
| const body = { messages: [{ role: "user", content: "test\n\n\n\nmessage" }] }; | |
| const mode = selectCompressionStrategy(config, "my-combo", 100); | |
| assert.equal(mode, "lite"); | |
| const result = applyCompression(body, mode); | |
| assert.equal(result.compressed, true); | |
| }); | |
| it("end-to-end: auto-trigger activates compression", () => { | |
| const config: CompressionConfig = { | |
| ...baseConfig, | |
| defaultMode: "off" as const, | |
| autoTriggerTokens: 50, | |
| }; | |
| const body = { messages: [{ role: "user", content: "x".repeat(1000) }] }; | |
| // Below threshold → off | |
| const mode1 = getEffectiveMode(config, null, 10); | |
| assert.equal(mode1, "off"); | |
| // Above threshold → lite | |
| const mode2 = getEffectiveMode(config, null, 100); | |
| assert.equal(mode2, "lite"); | |
| }); | |
| it("lite compression + stats pipeline works together", () => { | |
| const body = { | |
| messages: [ | |
| { role: "system", content: "Be helpful." }, | |
| { role: "system", content: "Be helpful." }, | |
| { role: "user", content: "hello\n\n\n\nworld" }, | |
| { role: "user", content: "hello\n\n\n\nworld" }, | |
| ], | |
| }; | |
| const result = applyLiteCompression(body); | |
| assert.equal(result.compressed, true); | |
| assert.ok(result.stats); | |
| assert.ok(result.stats.savingsPercent > 0); | |
| assert.ok(result.stats.techniquesUsed.length >= 1); | |
| }); | |
| it("lite compression preserves multimodal image payloads unless non-vision is explicit", () => { | |
| const dataUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"; | |
| const body = { | |
| messages: [ | |
| { | |
| role: "user", | |
| content: [ | |
| { type: "text", text: "Describe this image" }, | |
| { type: "image_url", image_url: { url: dataUrl } }, | |
| ], | |
| }, | |
| ], | |
| }; | |
| const preserved = applyLiteCompression(body, { model: "openai/gpt-4.1" }); | |
| assert.equal(preserved.compressed, false); | |
| assert.deepEqual(preserved.body, body); | |
| const placeholder = replaceImageUrls(body, { model: "text-only-model", supportsVision: false }); | |
| assert.equal(placeholder.applied, true); | |
| const content = placeholder.body.messages?.[0]?.content; | |
| assert.ok(Array.isArray(content)); | |
| assert.deepEqual(content[1], { type: "text", text: "[image: png]" }); | |
| }); | |
| it("token estimation is consistent", () => { | |
| const text = "hello world this is a test"; | |
| const tokens = estimateCompressionTokens(text); | |
| assert.equal(tokens, Math.ceil(text.length / 4)); | |
| const obj = { messages: [{ role: "user", content: text }] }; | |
| const objTokens = estimateCompressionTokens(obj); | |
| assert.equal(objTokens, Math.ceil(JSON.stringify(obj).length / 4)); | |
| }); | |
| }); | |