mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-05 23:02:10 +03:00
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:
137
src/app/(dashboard)/dashboard/logs/CompressionLogTab.tsx
Normal file
137
src/app/(dashboard)/dashboard/logs/CompressionLogTab.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
@@ -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 />
|
||||
|
||||
66
src/app/api/settings/compression/route.ts
Normal file
66
src/app/api/settings/compression/route.ts
Normal 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 });
|
||||
}
|
||||
}
|
||||
@@ -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": "مترجم",
|
||||
|
||||
@@ -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": "Преводач",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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ä",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "מתרגם",
|
||||
|
||||
@@ -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": "अनुवादक",
|
||||
|
||||
@@ -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ó",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "翻訳者",
|
||||
|
||||
@@ -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": "번역기",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Переводчик",
|
||||
|
||||
@@ -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ľ",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "นักแปล",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Перекладач",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "翻译器",
|
||||
|
||||
Reference in New Issue
Block a user