mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 20:32:20 +03:00
Compress MCP registry and list metadata descriptions for tools, prompts, resources, and resource templates while keeping tool-response bodies unchanged. Expose those savings in compression status as `mcp_metadata_estimate` metadata rather than provider usage. Add Caveman rule-pack support for custom regex flags and match-specific replacement maps, update English rules for upstream parity, and tighten article and pleasantry handling. Also process RTK multipart text blocks independently so mixed media content compresses safely without duplicating output.
107 lines
3.2 KiB
TypeScript
107 lines
3.2 KiB
TypeScript
import { describe, it } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import {
|
|
applyCompression,
|
|
applyStackedCompression,
|
|
} from "../../../open-sse/services/compression/index.ts";
|
|
|
|
describe("compression pipeline integration", () => {
|
|
it("runs stacked compression in RTK then Caveman order", () => {
|
|
const body = {
|
|
messages: [
|
|
{
|
|
role: "tool",
|
|
content: Array.from({ length: 8 }, () => "same noisy line").join("\n"),
|
|
},
|
|
{
|
|
role: "user",
|
|
content: "Please provide a detailed explanation of the authentication configuration",
|
|
},
|
|
],
|
|
};
|
|
|
|
const result = applyStackedCompression(body, [
|
|
{ engine: "rtk", intensity: "standard" },
|
|
{ engine: "caveman", intensity: "full" },
|
|
]);
|
|
|
|
assert.equal(result.stats?.engine, "stacked");
|
|
assert.deepEqual(
|
|
result.stats?.engineBreakdown?.map((entry) => entry.engine),
|
|
["rtk", "caveman"]
|
|
);
|
|
assert.ok(result.stats?.techniquesUsed.includes("rtk-dedup"));
|
|
});
|
|
|
|
it("uses the default stacked pipeline when no explicit pipeline is provided", () => {
|
|
const body = {
|
|
messages: [{ role: "tool", content: Array.from({ length: 8 }, () => "same").join("\n") }],
|
|
};
|
|
|
|
const result = applyCompression(body, "stacked", {
|
|
config: {
|
|
enabled: true,
|
|
defaultMode: "stacked",
|
|
autoTriggerTokens: 0,
|
|
cacheMinutes: 5,
|
|
preserveSystemPrompt: true,
|
|
comboOverrides: {},
|
|
rtkConfig: {
|
|
enabled: true,
|
|
intensity: "standard",
|
|
applyToToolResults: true,
|
|
applyToCodeBlocks: false,
|
|
applyToAssistantMessages: false,
|
|
enabledFilters: [],
|
|
disabledFilters: [],
|
|
maxLinesPerResult: 120,
|
|
maxCharsPerResult: 12000,
|
|
deduplicateThreshold: 3,
|
|
},
|
|
},
|
|
});
|
|
|
|
assert.equal(result.stats?.engine, "stacked");
|
|
assert.deepEqual(
|
|
result.stats?.engineBreakdown?.map((entry) => entry.engine),
|
|
["rtk", "caveman"]
|
|
);
|
|
});
|
|
|
|
it("keeps multipart tool output safe through stacked RTK then Caveman", () => {
|
|
const imagePart = { type: "image_url", image_url: { url: "data:image/png;base64,abc" } };
|
|
const body = {
|
|
messages: [
|
|
{
|
|
role: "tool",
|
|
content: [
|
|
{
|
|
type: "text",
|
|
text: Array.from({ length: 12 }, () => "first repeated tool line").join("\n"),
|
|
},
|
|
imagePart,
|
|
{
|
|
type: "text",
|
|
text: Array.from({ length: 12 }, () => "second repeated tool line").join("\n"),
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
|
|
const result = applyStackedCompression(body, [
|
|
{ engine: "rtk", intensity: "standard" },
|
|
{ engine: "caveman", intensity: "full" },
|
|
]);
|
|
const content = (result.body.messages as typeof body.messages)[0].content;
|
|
|
|
assert.equal(result.stats?.engine, "stacked");
|
|
assert.ok(Array.isArray(content));
|
|
assert.match(content[0].text ?? "", /first repeated tool line/);
|
|
assert.match(content[2].text ?? "", /second repeated tool line/);
|
|
assert.notEqual(content[0].text, content[2].text);
|
|
assert.deepEqual(content[1], imagePart);
|
|
});
|
|
});
|