feat(ui): add compression settings tab, compression log viewer, and settings API route

- CompressionSettingsTab.tsx: full UI for compression config (enable/mode/caveman)
- CompressionLogTab.tsx: compression stats viewer with rulesApplied display
- /api/settings/compression: GET/PUT API route with Zod validation
- Settings page: wire CompressionSettingsTab under AI tab
- i18n: 28 compression keys added to all 33 locale files
This commit is contained in:
oyi77
2026-04-28 00:55:30 +07:00
parent 88dbefa141
commit c0d92f3569
36 changed files with 1502 additions and 36 deletions

View File

@@ -0,0 +1,137 @@
"use client";
import { useState, useEffect } from "react";
import { Card } from "@/shared/components";
import { useTranslations } from "next-intl";
interface CompressionStats {
originalTokens: number;
compressedTokens: number;
savingsPercent: number;
techniquesUsed: string[];
mode: string;
timestamp: number;
rulesApplied?: string[];
durationMs?: number;
}
interface LogEntry {
id: string;
timestamp: string;
model: string;
provider: string;
compressionStats?: CompressionStats | null;
}
export default function CompressionLogTab() {
const t = useTranslations("settings");
const [logs, setLogs] = useState<LogEntry[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
fetch("/api/logs?filter=compressed&limit=50")
.then((r) => (r.ok ? r.json() : []))
.then((data) => {
setLogs(Array.isArray(data) ? data : []);
})
.catch(() => {})
.finally(() => setLoading(false));
}, []);
if (loading) {
return (
<Card className="p-6">
<p className="text-sm text-text-muted">{t("loading")}</p>
</Card>
);
}
if (logs.length === 0) {
return (
<Card className="p-6">
<div className="flex items-center gap-3 mb-4">
<span className="material-symbols-outlined text-blue-500 text-[20px]">compress</span>
<h3 className="text-lg font-semibold">{t("compressionLogTitle")}</h3>
</div>
<p className="text-sm text-text-muted">{t("compressionLogEmpty")}</p>
</Card>
);
}
return (
<Card className="p-6">
<div className="flex items-center gap-3 mb-5">
<span className="material-symbols-outlined text-blue-500 text-[20px]">compress</span>
<h3 className="text-lg font-semibold">{t("compressionLogTitle")}</h3>
</div>
<div className="space-y-3">
{logs.map((entry) => {
const stats = entry.compressionStats;
if (!stats) return null;
return (
<div
key={entry.id}
className="p-3 rounded-lg border border-border/50 bg-surface/30 space-y-2"
>
<div className="flex items-center justify-between">
<div className="flex items-center gap-2 text-sm">
<span className="font-mono text-text-main">
{entry.provider}/{entry.model}
</span>
<span className="px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-500/10 text-blue-400 border border-blue-500/20">
{stats.mode}
</span>
</div>
<div className="flex items-center gap-3 text-xs text-text-muted">
<span>
{stats.originalTokens} {stats.compressedTokens} {t("tokens")}
</span>
<span
className={`font-medium ${
stats.savingsPercent >= 25
? "text-emerald-400"
: stats.savingsPercent >= 10
? "text-yellow-400"
: "text-text-muted"
}`}
>
-{stats.savingsPercent.toFixed(1)}%
</span>
{stats.durationMs !== undefined && <span>{stats.durationMs}ms</span>}
</div>
</div>
{stats.techniquesUsed.length > 0 && (
<div className="flex flex-wrap gap-1">
{stats.techniquesUsed.map((technique) => (
<span
key={technique}
className="px-1.5 py-0.5 rounded text-[10px] bg-surface text-text-muted border border-border/30"
>
{technique}
</span>
))}
</div>
)}
{stats.rulesApplied && stats.rulesApplied.length > 0 && (
<div className="flex flex-wrap gap-1">
{stats.rulesApplied.map((rule) => (
<span
key={rule}
className="px-1.5 py-0.5 rounded text-[10px] bg-purple-500/10 text-purple-400 border border-purple-500/20"
>
{rule.replace(/_/g, " ")}
</span>
))}
</div>
)}
</div>
);
})}
</div>
</Card>
);
}

View File

@@ -0,0 +1,416 @@
"use client";
import { useState, useEffect } from "react";
import { Card, Button } from "@/shared/components";
import { useTranslations } from "next-intl";
type CompressionMode = "off" | "lite" | "standard" | "aggressive" | "ultra";
interface CavemanConfig {
enabled: boolean;
compressRoles: ("user" | "assistant" | "system")[];
skipRules: string[];
minMessageLength: number;
preservePatterns: string[];
}
interface CompressionConfig {
enabled: boolean;
defaultMode: CompressionMode;
autoTriggerTokens: number;
cacheMinutes: number;
preserveSystemPrompt: boolean;
comboOverrides: Record<string, CompressionMode>;
cavemanConfig?: CavemanConfig;
}
const MODES: { value: CompressionMode; labelKey: string; descKey: string; icon: string }[] = [
{
value: "off",
labelKey: "compressionModeOff",
descKey: "compressionModeOffDesc",
icon: "block",
},
{
value: "lite",
labelKey: "compressionModeLite",
descKey: "compressionModeLiteDesc",
icon: "compress",
},
{
value: "standard",
labelKey: "compressionModeStandard",
descKey: "compressionModeStandardDesc",
icon: "speed",
},
];
const ROLE_OPTIONS: { value: "user" | "assistant" | "system"; labelKey: string }[] = [
{ value: "user", labelKey: "compressionRoleUser" },
{ value: "assistant", labelKey: "compressionRoleAssistant" },
{ value: "system", labelKey: "compressionRoleSystem" },
];
const ALL_CAVEMAN_RULES = [
"hedging_disclaimer",
"hedging_apology",
"hedging_uncertainty",
"redundant_please",
"redundant_note",
"redundant_remember",
"redundant_important_notice",
"structural_numbered_list_intro",
"structural_bullet_intro",
"structural_section_divider",
"structural_toc",
"whitespace_excessive_newlines",
"whitespace_trailing_spaces",
"markup_bold_emphasis",
"markup_italic_emphasis",
"markup_heading_decorations",
"content_repetition",
"question_to_directive",
"meta_instructional",
"filler_transition",
];
export default function CompressionSettingsTab() {
const t = useTranslations("settings");
const [config, setConfig] = useState<CompressionConfig>({
enabled: false,
defaultMode: "off",
autoTriggerTokens: 0,
cacheMinutes: 5,
preserveSystemPrompt: true,
comboOverrides: {},
cavemanConfig: {
enabled: true,
compressRoles: ["user"],
skipRules: [],
minMessageLength: 50,
preservePatterns: [],
},
});
const [saving, setSaving] = useState(false);
const [loading, setLoading] = useState(true);
const [status, setStatus] = useState<"" | "saved" | "error">("");
useEffect(() => {
fetch("/api/settings/compression")
.then((r) => (r.ok ? r.json() : null))
.then((data) => {
if (data) setConfig(data);
})
.catch(() => {})
.finally(() => setLoading(false));
}, []);
const save = async (updates: Partial<CompressionConfig>) => {
const newConfig = { ...config, ...updates };
setConfig(newConfig);
setSaving(true);
setStatus("");
try {
const res = await fetch("/api/settings/compression", {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(newConfig),
});
if (res.ok) {
setStatus("saved");
setTimeout(() => setStatus(""), 2000);
} else {
setStatus("error");
}
} catch {
setStatus("error");
} finally {
setSaving(false);
}
};
const toggleCavemanRole = (role: "user" | "assistant" | "system") => {
const currentRoles = config.cavemanConfig?.compressRoles ?? ["user"];
const newRoles = currentRoles.includes(role)
? currentRoles.filter((r) => r !== role)
: [...currentRoles, role];
save({
cavemanConfig: { ...config.cavemanConfig!, compressRoles: newRoles },
});
};
const toggleCavemanRule = (rule: string) => {
const currentSkip = config.cavemanConfig?.skipRules ?? [];
const newSkip = currentSkip.includes(rule)
? currentSkip.filter((r) => r !== rule)
: [...currentSkip, rule];
save({
cavemanConfig: { ...config.cavemanConfig!, skipRules: newSkip },
});
};
if (loading) {
return (
<Card className="p-6">
<p className="text-sm text-text-muted">{t("loading")}</p>
</Card>
);
}
return (
<Card className="p-6">
<div className="flex items-center gap-3 mb-5">
<div className="p-2 rounded-lg bg-blue-500/10 text-blue-500">
<span className="material-symbols-outlined text-[20px]" aria-hidden="true">
compress
</span>
</div>
<div>
<h3 className="text-lg font-semibold">{t("compressionTitle")}</h3>
<p className="text-sm text-text-muted">{t("compressionDesc")}</p>
</div>
{status === "saved" && (
<span className="ml-auto text-xs font-medium text-emerald-500 flex items-center gap-1">
<span className="material-symbols-outlined text-[14px]">check_circle</span> {t("saved")}
</span>
)}
{status === "error" && (
<span className="ml-auto text-xs font-medium text-red-500 flex items-center gap-1">
<span className="material-symbols-outlined text-[14px]">error</span> {t("saveFailed")}
</span>
)}
</div>
<div className="space-y-6">
<label className="flex items-center justify-between">
<span className="text-sm text-text-muted">{t("enabled")}</span>
<button
onClick={() => save({ enabled: !config.enabled })}
className={`relative w-10 h-5 rounded-full transition-colors ${
config.enabled ? "bg-green-500" : "bg-border"
}`}
>
<span
className={`absolute top-0.5 w-4 h-4 rounded-full bg-white transition-transform ${
config.enabled ? "left-5" : "left-0.5"
}`}
/>
</button>
</label>
{config.enabled && (
<div className="space-y-3">
<h4 className="text-sm font-medium text-text-main">{t("compressionMode")}</h4>
<div className="grid grid-cols-1 sm:grid-cols-3 gap-2">
{MODES.map((m) => (
<button
key={m.value}
onClick={() => save({ defaultMode: m.value })}
disabled={saving}
className={`flex items-start gap-3 p-3 rounded-lg border text-left transition-all ${
config.defaultMode === m.value
? "border-blue-500/50 bg-blue-500/5 ring-1 ring-blue-500/20"
: "border-border/50 hover:border-border hover:bg-surface/30"
}`}
>
<span
className={`material-symbols-outlined text-[20px] mt-0.5 ${
config.defaultMode === m.value ? "text-blue-500" : "text-text-muted"
}`}
>
{m.icon}
</span>
<div className="min-w-0">
<p
className={`text-sm font-medium ${
config.defaultMode === m.value ? "text-blue-400" : ""
}`}
>
{t(m.labelKey)}
</p>
<p className="text-xs text-text-muted mt-0.5 leading-relaxed">{t(m.descKey)}</p>
</div>
</button>
))}
</div>
</div>
)}
{config.enabled && (
<div className="space-y-3 pt-4 border-t border-border/30">
<h4 className="text-sm font-medium text-text-main">{t("compressionGeneral")}</h4>
<label className="flex items-center justify-between">
<span className="text-sm text-text-muted">{t("compressionAutoTrigger")}</span>
<div className="flex items-center gap-2">
<input
type="number"
min={0}
max={100000}
value={config.autoTriggerTokens}
onChange={(e) => save({ autoTriggerTokens: parseInt(e.target.value) || 0 })}
className="w-24 px-2 py-1 text-sm rounded border border-border bg-surface text-text-main"
/>
<span className="text-xs text-text-muted">{t("tokens")}</span>
</div>
</label>
<label className="flex items-center justify-between">
<span className="text-sm text-text-muted">{t("compressionCacheTTL")}</span>
<div className="flex items-center gap-2">
<input
type="number"
min={0}
max={1440}
value={config.cacheMinutes}
onChange={(e) => save({ cacheMinutes: parseInt(e.target.value) || 5 })}
className="w-24 px-2 py-1 text-sm rounded border border-border bg-surface text-text-main"
/>
<span className="text-xs text-text-muted">{t("minutes")}</span>
</div>
</label>
<label className="flex items-center justify-between">
<span className="text-sm text-text-muted">{t("compressionPreserveSystem")}</span>
<button
onClick={() => save({ preserveSystemPrompt: !config.preserveSystemPrompt })}
className={`relative w-10 h-5 rounded-full transition-colors ${
config.preserveSystemPrompt ? "bg-green-500" : "bg-border"
}`}
>
<span
className={`absolute top-0.5 w-4 h-4 rounded-full bg-white transition-transform ${
config.preserveSystemPrompt ? "left-5" : "left-0.5"
}`}
/>
</button>
</label>
</div>
)}
{config.enabled &&
config.defaultMode !== "off" &&
config.defaultMode !== "lite" &&
config.cavemanConfig && (
<div className="space-y-3 pt-4 border-t border-border/30">
<div className="flex items-center justify-between">
<div>
<h4 className="text-sm font-medium text-text-main">
{t("compressionCavemanConfig")}
</h4>
<p className="text-xs text-text-muted mt-0.5">
{t("compressionCavemanConfigDesc")}
</p>
</div>
<button
onClick={() =>
save({
cavemanConfig: {
...config.cavemanConfig!,
enabled: !config.cavemanConfig!.enabled,
},
})
}
className={`relative w-10 h-5 rounded-full transition-colors ${
config.cavemanConfig.enabled ? "bg-green-500" : "bg-border"
}`}
>
<span
className={`absolute top-0.5 w-4 h-4 rounded-full bg-white transition-transform ${
config.cavemanConfig.enabled ? "left-5" : "left-0.5"
}`}
/>
</button>
</div>
{config.cavemanConfig.enabled && (
<>
<div className="space-y-2">
<p className="text-sm text-text-muted">{t("compressionRoles")}</p>
<div className="flex flex-wrap gap-2">
{ROLE_OPTIONS.map((opt) => (
<button
key={opt.value}
onClick={() => toggleCavemanRole(opt.value)}
className={`px-3 py-1.5 rounded-lg text-xs font-medium border transition-all ${
config.cavemanConfig!.compressRoles.includes(opt.value)
? "border-blue-500/50 bg-blue-500/10 text-blue-400"
: "border-border/50 text-text-muted hover:border-border"
}`}
>
{t(opt.labelKey)}
</button>
))}
</div>
</div>
<label className="flex items-center justify-between">
<span className="text-sm text-text-muted">{t("compressionMinLength")}</span>
<input
type="number"
min={0}
max={100000}
value={config.cavemanConfig.minMessageLength}
onChange={(e) =>
save({
cavemanConfig: {
...config.cavemanConfig!,
minMessageLength: parseInt(e.target.value) || 50,
},
})
}
className="w-24 px-2 py-1 text-sm rounded border border-border bg-surface text-text-main"
/>
</label>
<div className="space-y-2">
<p className="text-sm text-text-muted">{t("compressionSkipRules")}</p>
<p className="text-xs text-text-muted">{t("compressionSkipRulesDesc")}</p>
<div className="grid grid-cols-2 sm:grid-cols-3 gap-1.5">
{ALL_CAVEMAN_RULES.map((rule) => (
<button
key={rule}
onClick={() => toggleCavemanRule(rule)}
className={`px-2 py-1 rounded text-xs border transition-all ${
config.cavemanConfig!.skipRules.includes(rule)
? "border-red-500/50 bg-red-500/10 text-red-400 line-through"
: "border-border/50 text-text-muted hover:border-border"
}`}
>
{rule.replace(/_/g, " ")}
</button>
))}
</div>
</div>
<div className="space-y-2">
<p className="text-sm text-text-muted">{t("compressionPreservePatterns")}</p>
<p className="text-xs text-text-muted">
{t("compressionPreservePatternsDesc")}
</p>
<textarea
value={(config.cavemanConfig.preservePatterns ?? []).join("\n")}
onChange={(e) => {
const patterns = e.target.value
.split("\n")
.map((p) => p.trim())
.filter(Boolean);
save({
cavemanConfig: {
...config.cavemanConfig!,
preservePatterns: patterns,
},
});
}}
placeholder="https?://\S+\n```[\s\S]*?```"
className="w-full min-h-[80px] px-3 py-2 text-sm rounded-lg border border-border bg-surface text-text-main font-mono resize-y"
/>
</div>
</>
)}
</div>
)}
</div>
</Card>
);
}

View File

@@ -21,6 +21,7 @@ import ModelsDevSyncTab from "./components/ModelsDevSyncTab";
import ResilienceTab from "./components/ResilienceTab";
import CliproxyapiSettingsTab from "./components/CliproxyapiSettingsTab";
import PayloadRulesTab from "./components/PayloadRulesTab";
import CompressionSettingsTab from "./components/CompressionSettingsTab";
import ModelRoutingSection from "@/shared/components/ModelRoutingSection";
const tabs = [
@@ -93,6 +94,7 @@ export default function SettingsPage() {
{activeTab === "ai" && (
<div className="flex flex-col gap-6">
<ThinkingBudgetTab />
<CompressionSettingsTab />
<SystemPromptTab />
<CacheSettingsTab />
<MemorySkillsTab />

View File

@@ -0,0 +1,66 @@
import { NextResponse } from "next/server";
import { getCompressionSettings, updateCompressionSettings } from "@/lib/db/compression";
import { isValidationFailure, validateBody } from "@/shared/validation/helpers";
import { z } from "zod";
const compressionModeValues = ["off", "lite", "standard", "aggressive", "ultra"] as const;
const cavemanConfigSchema = z.object({
enabled: z.boolean().optional(),
compressRoles: z.array(z.enum(["user", "assistant", "system"])).optional(),
skipRules: z.array(z.string()).optional(),
minMessageLength: z.number().min(0).optional(),
preservePatterns: z.array(z.string()).optional(),
});
const updateCompressionSchema = z.object({
enabled: z.boolean().optional(),
defaultMode: z.enum(compressionModeValues).optional(),
autoTriggerTokens: z.number().min(0).optional(),
cacheMinutes: z.number().min(0).optional(),
preserveSystemPrompt: z.boolean().optional(),
comboOverrides: z.record(z.string(), z.enum(compressionModeValues)).optional(),
cavemanConfig: cavemanConfigSchema.optional(),
});
export async function GET() {
try {
const config = getCompressionSettings();
return NextResponse.json(config);
} catch (error) {
console.error("Error reading compression config:", error);
return NextResponse.json({ error: "Failed to read compression config" }, { status: 500 });
}
}
export async function PUT(request: Request) {
let rawBody: unknown;
try {
rawBody = await request.json();
} catch {
return NextResponse.json(
{
error: {
message: "Invalid request",
details: [{ field: "body", message: "Invalid JSON body" }],
},
},
{ status: 400 }
);
}
try {
const validation = validateBody(updateCompressionSchema, rawBody);
if (isValidationFailure(validation)) {
return NextResponse.json({ error: validation.error }, { status: 400 });
}
const body = validation.data;
updateCompressionSettings(body as unknown as Record<string, unknown>);
const config = getCompressionSettings();
return NextResponse.json(config);
} catch (error) {
console.error("Error updating compression config:", error);
return NextResponse.json({ error: "Failed to update compression config" }, { status: 500 });
}
}

View File

@@ -2412,7 +2412,33 @@
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
"contextRelaySummaryModel": "Summary Model",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "مترجم",

View File

@@ -2412,7 +2412,33 @@
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Преводач",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Překladatel",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary"
"contextRelayMaxMessages": "Max Messages For Summary",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Oversætter",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
"contextRelayMaxMessages": "Max Messages For Summary",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Übersetzer",

View File

@@ -1084,14 +1084,26 @@
"failedReorder": "Failed to reorder models",
"builderFlowTitle": "Combo Builder Flow",
"builderStage": {
"basics": { "label": "Basics", "description": "Name and starting template" },
"steps": { "label": "Steps", "description": "Provider, model, and account selection" },
"strategy": { "label": "Strategy", "description": "Routing behavior and advanced settings" },
"basics": {
"label": "Basics",
"description": "Name and starting template"
},
"steps": {
"label": "Steps",
"description": "Provider, model, and account selection"
},
"strategy": {
"label": "Strategy",
"description": "Routing behavior and advanced settings"
},
"intelligent": {
"label": "Smart Routing",
"description": "Auto-routing candidate pool, presets, and scoring"
},
"review": { "label": "Review", "description": "Final validation before saving" }
"review": {
"label": "Review",
"description": "Final validation before saving"
}
},
"builderStageVisited": "Stage completed",
"builderStageCurrent": "Current stage",
@@ -2452,7 +2464,34 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
"minutes": "minutes"
},
"translator": {
"title": "Translator",

View File

@@ -2412,7 +2412,33 @@
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
"contextRelaySummaryModel": "Summary Model",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Traductor",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
"contextRelaySummaryModel": "Summary Model",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Kääntäjä",

View File

@@ -2412,7 +2412,33 @@
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Traducteur",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
"contextRelayMaxMessages": "Max Messages For Summary",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "מתרגם",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "अनुवादक",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Fordító",

View File

@@ -2412,7 +2412,33 @@
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Penerjemah",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayMaxMessages": "Max Messages For Summary"
"contextRelayMaxMessages": "Max Messages For Summary",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Traduttore",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "翻訳者",

View File

@@ -2412,7 +2412,33 @@
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "번역기",

View File

@@ -2412,7 +2412,33 @@
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model"
"contextRelaySummaryModel": "Summary Model",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Penterjemah",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Vertaler",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Oversetter",

View File

@@ -2412,7 +2412,33 @@
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model"
"contextRelaySummaryModel": "Summary Model",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Tagasalin",

View File

@@ -2412,7 +2412,33 @@
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelaySummaryModel": "Summary Model"
"contextRelaySummaryModel": "Summary Model",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Tłumacz",

View File

@@ -2464,7 +2464,33 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Tradutor",

View File

@@ -2464,7 +2464,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos."
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Tradutor",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model"
"contextRelaySummaryModel": "Summary Model",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Traducător",

View File

@@ -2436,7 +2436,33 @@
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Переводчик",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
"contextRelayMaxMessages": "Max Messages For Summary",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Prekladateľ",

View File

@@ -2412,7 +2412,33 @@
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Översättare",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
"contextRelayMaxMessages": "Max Messages For Summary",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "นักแปล",

View File

@@ -2412,7 +2412,33 @@
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Çeviri",

View File

@@ -2412,7 +2412,33 @@
"contextRelayMaxMessages": "Max Messages For Summary",
"contextRelaySummaryModel": "Summary Model",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelayHandoffThreshold": "Handoff Threshold"
"contextRelayHandoffThreshold": "Handoff Threshold",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Перекладач",

View File

@@ -2412,7 +2412,33 @@
"contextRelayHandoffThreshold": "Handoff Threshold",
"contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
"contextRelaySummaryModel": "Summary Model",
"contextRelayMaxMessages": "Max Messages For Summary"
"contextRelayMaxMessages": "Max Messages For Summary",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "Người phiên dịch",

View File

@@ -2502,7 +2502,33 @@
"wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
"noExactAliasesConfigured": "No exact-match aliases configured.",
"wildcardRulesTitle": "Wildcard Rules",
"noWildcardAliasesConfigured": "No wildcard aliases configured."
"noWildcardAliasesConfigured": "No wildcard aliases configured.",
"compressionTitle": "Prompt Compression",
"compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
"compressionMode": "Compression Mode",
"compressionModeOff": "Off",
"compressionModeOffDesc": "No compression applied",
"compressionModeLite": "Lite",
"compressionModeLiteDesc": "Whitespace and blank line reduction",
"compressionModeStandard": "Standard (Caveman)",
"compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
"compressionGeneral": "General Settings",
"compressionAutoTrigger": "Auto-Trigger Threshold",
"compressionCacheTTL": "Cache TTL",
"compressionPreserveSystem": "Preserve System Prompt",
"compressionCavemanConfig": "Caveman Engine Configuration",
"compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
"compressionRoles": "Compress Message Roles",
"compressionRoleUser": "User",
"compressionRoleAssistant": "Assistant",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimum Message Length",
"compressionSkipRules": "Skip Compression Rules",
"compressionSkipRulesDesc": "Click rules to skip them during compression",
"compressionPreservePatterns": "Preserve Patterns",
"compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
"compressionLogTitle": "Compression Log",
"compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled."
},
"translator": {
"title": "翻译器",