diff --git a/changelog.d/features/14799-usage-limit-ignore-unpriced.md b/changelog.d/features/14799-usage-limit-ignore-unpriced.md new file mode 100644 index 00000000000..dcbb1aa63a6 --- /dev/null +++ b/changelog.d/features/14799-usage-limit-ignore-unpriced.md @@ -0,0 +1 @@ +- **feat(api-keys):** new `USAGE_LIMIT_IGNORE_UNPRICED` feature flag (Settings → Feature flags, off by default). When on, per-key USD usage quotas count models that have no price as $0 instead of failing closed (#12341), so keys that use subscription or free models without pricing rows are no longer reported and blocked as over quota. Priced spend is still enforced, and `dailyHasUnpricedUsage` / `weeklyHasUnpricedUsage` still report the unpriced usage ([#14799](https://github.com/diegosouzapw/OmniRoute/pull/14799)). diff --git a/docs/reference/FEATURE_FLAGS.md b/docs/reference/FEATURE_FLAGS.md index 00208b1bc35..eefe78174ed 100644 --- a/docs/reference/FEATURE_FLAGS.md +++ b/docs/reference/FEATURE_FLAGS.md @@ -46,7 +46,7 @@ A boolean flag is considered **enabled** when its effective value is `"true"`, ## Flag Catalog -80 flags across 6 categories. **Default** is the definition default — the value +81 flags across 6 categories. **Default** is the definition default — the value used when neither a DB override nor an environment variable is present. ### Security (10) @@ -91,7 +91,7 @@ used when neither a DB override nor an environment variable is present. | `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | boolean | `true` | | Allow adding/validating providers on local/private addresses (127.0.0.1, localhost, LAN). On by default (local-first); disable for strict public-only blocking. Cloud-metadata stays blocked. | | `ENABLE_CC_COMPATIBLE_PROVIDER` | boolean | `false` | ✓ | Enable Claude Code compatible provider mode. | -### Policies (5) +### Policies (6) | Key | Type | Default | Description | | ------------------------------- | ------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -99,6 +99,7 @@ used when neither a DB override nor an environment variable is present. | `RATE_LIMIT_AUTO_ENABLE` | boolean | `false` | Automatically enable rate limiting based on usage patterns. | | `DISABLE_CONTEXT_WINDOW_CHECKS` | boolean | `false` | Skip OmniRoute's local context-window / max-input-token check for direct single-model requests. Upstream limits still apply. | | `CAPABILITY_FILTER_ENABLED` | boolean | `false` | Reject requests before dispatch when the target model lacks required capabilities (vision, tools, structured output, context window). Protects direct single-provider requests that bypass the combo-layer compatibility filter. | +| `USAGE_LIMIT_IGNORE_UNPRICED` | boolean | `false` | Count usage of models that have no price as $0 in per-key USD usage quotas instead of treating the quota as exceeded. Off by default: an unpriced model or routing alias can hide real spend, so the quota fails closed. | | `RADAR_ENABLED` | boolean | `false` | Enable the OmniRoute Radar module (catalog feed screens and sync). Off by default; enabling only unlocks the UI — data sync remains a separate opt-in. | ### Runtime (33) diff --git a/src/i18n/messages/am.json b/src/i18n/messages/am.json index 9e6a11f07d6..be93b3045fc 100644 --- a/src/i18n/messages/am.json +++ b/src/i18n/messages/am.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "የታለመው ሞዴል አስፈላጊ ችሎታዎች (ምስል፣ መሣሪያዎች፣ የተዋቀረ ውጤት፣ የአውድ መስኮት) ከሌሉት፣ ጥያቄዎችን ከመላካቸው በፊት ውድቅ አድርግ። ይህ የጥምር-ንብርብር ተኳኋኝነት ማጣሪያን የሚያልፉ ቀጥተኛ የአንድ-አቅራቢ ጥያቄዎችን ይጠብቃል።", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ኮታው እንደተላለፈ ከመቁጠር ይልቅ፣ በእያንዳንዱ ቁልፍ የUSD አጠቃቀም ኮታዎች ውስጥ ዋጋ የሌላቸውን ሞዴሎች አጠቃቀም እንደ $0 ይቁጠሩ። በነባሪ ጠፍቷል፦ ዋጋ የሌለው ሞዴል ወይም የማዞሪያ ተለዋጭ ስም ትክክለኛ ወጪን ሊደብቅ ስለሚችል ኮታው ተዘግቶ ይከሽፋል።", "featureFlagDisableContextWindowChecksDescription": "ለቀጥተኛ የአንድ-ሞዴል ጥያቄዎች የOmniRouteን አካባቢያዊ የአውድ-መስኮት እና ከፍተኛ-የግቤት-ቶከን ማረጋገጫ ዝለል። የላይኛው ደረጃ አቅራቢዎች እውነተኛ ገደቦቻቸውን አሁንም ያስፈጽማሉ። የፕሮምፕት መጭመቅ እና የውጤት-ቶከን ገደቦች እንደነቁ ይቆያሉ።", "featureFlagSearchStatsHideDeletedConnectionsDescription": "የፍለጋ ስታቲስቲክስ እና የቅርብ ጊዜ ፍለጋዎች አሁንም ንቁ ግንኙነት ያላቸውን አቅራቢዎች ብቻ ይቆጥራሉ (እንደ duckduckgo-free ያሉ ቁልፍ የማይፈልጉ አቅራቢዎች ሁልጊዜ ይቆጠራሉ)። ሲጠፋ፣ የአቅራቢ መታወቂያ ያለው እያንዳንዱ የተያዘ የፍለጋ ረድፍ እንዳለ ይቆያል።", "publicSystem": { diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index ac89523fff9..ec94b210df7 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "رفض الطلبات قبل الإرسال عندما يفتقر النموذج المستهدف إلى القدرات المطلوبة (الرؤية، الأدوات، المخرجات المنظمة، نافذة السياق). يحمي الطلبات المباشرة من مزود واحد التي تتجاوز فلتر توافق الطبقة المجمعة.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "احتساب استخدام النماذج التي ليس لها سعر كـ $0 في حصص استخدام USD لكل مفتاح بدلًا من معاملة الحصة على أنها تم تجاوزها. معطّل افتراضيًا: يمكن لنموذج غير مسعر أو اسم مستعار للتوجيه أن يخفي الإنفاق الحقيقي، لذا تفشل الحصة في وضع الإغلاق.", "featureFlagDisableContextWindowChecksDescription": "تخطي فحص OmniRoute المحلي لنافذة السياق والحد الأقصى لرموز الإدخال للطلبات المباشرة ذات النموذج الواحد. لا يزال المزوّدون الخارجيون يفرضون حدودهم الفعلية. يظل ضغط المطالبات والحد الأقصى لرموز الإخراج مفعّلين.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "لا تشمل إحصاءات البحث وعمليات البحث الأخيرة إلا المزوّدين الذين لا يزال لديهم اتصال نشط (أما المزوّدون الذين لا يحتاجون إلى مفتاح، مثل duckduckgo-free، فيتم احتسابهم دائمًا). يؤدي إيقاف هذا الخيار إلى الاحتفاظ بكل صف بحث محفوظ يتضمن معرّف مزوّد.", "publicSystem": { diff --git a/src/i18n/messages/az.json b/src/i18n/messages/az.json index d474165d124..1c694abadf0 100644 --- a/src/i18n/messages/az.json +++ b/src/i18n/messages/az.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Tələb olunan imkanlar (görmə, alətlər, strukturlaşdırılmış çıxış, kontekst pəncərəsi) olmayan hədəf modelində göndərilmədən əvvəl tələbləri rədd edin. Kombinasiya qatının uyğunluq filtrini keçən birbaşa tək təminatçı tələblərini qoruyur.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Kvotanın aşıldığını hesab etmək əvəzinə, açar üzrə USD istifadə kvotalarında qiyməti olmayan modellərin istifadəsini $0 kimi hesablayın. Defolt olaraq deaktivdir: qiymətləndirilməmiş model və ya marşrutlaşdırma aliası real xərcləri gizlədə bilər, buna görə də kvota qapalı vəziyyətdə xəta verir.", "featureFlagDisableContextWindowChecksDescription": "Birbaşa tək model sorğuları üçün OmniRoute-un lokal kontekst pəncərəsi və maksimum giriş tokeni yoxlamasını keçin. Yuxarı səviyyəli provayderlər faktiki limitlərini yenə də tətbiq edirlər. Sorğu sıxışdırması və çıxış tokeni limitləri aktiv qalır.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Axtarış statistikası və son axtarışlar yalnız hələ də aktiv bağlantısı olan provayderləri nəzərə alır (duckduckgo-free kimi açarsız provayderlər həmişə nəzərə alınır). Söndürüldükdə provayder ID-si olan bütün saxlanılmış axtarış sətirləri qorunur.", "publicSystem": { diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json index eb3111d3fa9..d39e200cc73 100644 --- a/src/i18n/messages/bg.json +++ b/src/i18n/messages/bg.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Отхвърлете заявките преди изпращане, когато целевият модел няма необходимите възможности (визия, инструменти, структурирани изходи, контекстен прозорец). Защитава директните заявки от един доставчик, които заобикалят филтъра за съвместимост на комбинирания слой.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Отчитане на потреблението на модели без цена като $0 в квотите за потребление в USD за всеки ключ, вместо квотата да се счита за надвишена. Изключено по подразбиране: модел без цена или псевдоним за маршрутизиране може да скрие реални разходи, затова квотата се затваря при грешка.", "featureFlagDisableContextWindowChecksDescription": "Пропускане на локалната проверка на OmniRoute за контекстния прозорец и максималния брой входни токени при директни заявки към един модел. Външните доставчици продължават да налагат действителните си ограничения. Компресирането на подканите и ограниченията за изходните токени остават активни.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Статистиката за търсенията и скорошните търсения отчитат само доставчици, които все още имат активна връзка (доставчиците без ключ, като duckduckgo-free, винаги се отчитат). При „Изключено“ се запазва всеки съхранен запис за търсене с идентификатор на доставчик.", "publicSystem": { diff --git a/src/i18n/messages/bn.json b/src/i18n/messages/bn.json index 0e3364f7ae7..3cd21ce180d 100644 --- a/src/i18n/messages/bn.json +++ b/src/i18n/messages/bn.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "লক্ষ্য মডেলের প্রয়োজনীয় সক্ষমতা (দৃষ্টি, সরঞ্জাম, কাঠামোবদ্ধ আউটপুট, প্রসঙ্গ উইন্ডো) অনুপস্থিত থাকলে প্রেরণের আগে অনুরোধগুলি প্রত্যাখ্যান করুন। এটি কম্বো-লেয়ার সামঞ্জস্য ফিল্টারকে বাইপাস করা সরাসরি একক-প্রদানকারী অনুরোধগুলি রক্ষা করে।", + "featureFlagUsageLimitIgnoreUnpricedDescription": "কোটা অতিক্রান্ত হিসেবে বিবেচনা করার পরিবর্তে, প্রতি-কী USD ব্যবহারের কোটায় মূল্যবিহীন মডেলগুলোর ব্যবহার $0 হিসেবে গণনা করুন। ডিফল্টভাবে বন্ধ: একটি মূল্যহীন মডেল বা রাউটিং উপনাম প্রকৃত খরচ গোপন করতে পারে, তাই কোটা ফেইল ক্লোজড হয়।", "featureFlagDisableContextWindowChecksDescription": "সরাসরি একক-মডেল অনুরোধের জন্য OmniRoute-এর স্থানীয় কনটেক্সট-উইন্ডো এবং সর্বোচ্চ-ইনপুট-টোকেন যাচাই এড়িয়ে যান। আপস্ট্রিম প্রোভাইডাররা এখনও তাদের প্রকৃত সীমা প্রয়োগ করে। প্রম্পট কম্প্রেশন এবং আউটপুট-টোকেন সীমা সক্রিয় থাকে।", "featureFlagSearchStatsHideDeletedConnectionsDescription": "অনুসন্ধানের পরিসংখ্যান এবং সাম্প্রতিক অনুসন্ধানে শুধু সেইসব প্রদানকারীকে গণনা করা হয়, যাদের সংযোগ এখনও সক্রিয় রয়েছে (duckduckgo-free-এর মতো কী-বিহীন প্রদানকারীকে সবসময় গণনা করা হয়)। বন্ধ থাকলে প্রদানকারী ID-সহ সংরক্ষিত প্রতিটি অনুসন্ধান সারি রাখা হয়।", "publicSystem": { diff --git a/src/i18n/messages/bs.json b/src/i18n/messages/bs.json index ff0e0f00338..91c98d9700a 100644 --- a/src/i18n/messages/bs.json +++ b/src/i18n/messages/bs.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Odbijte zahtjeve prije slanja kada ciljni model nema potrebne mogućnosti (vid, alati, strukturirani izlaz, kontekstni prozor). Štiti direktne zahtjeve jednog provajdera koji zaobilaze filter kompatibilnosti combo-sloja.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Računaj potrošnju modela koji nemaju cijenu kao $0 u USD kvotama potrošnje po ključu umjesto da se kvota tretira kao prekoračena. Podrazumijevano isključeno: model bez cijene ili alias za rutiranje može sakriti stvarnu potrošnju, pa se kvota automatski odbija.", "featureFlagDisableContextWindowChecksDescription": "Preskoči lokalnu provjeru kontekstnog prozora i maksimalnog broja ulaznih tokena OmniRoute-a za direktne zahtjeve jednog modela. Upstream provajderi i dalje primjenjuju svoja stvarna ograničenja. Kompresija prompta i ograničenja izlaznih tokena ostaju aktivni.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statistike pretrage i nedavne pretrage računaju samo provajdere koji i dalje imaju aktivnu konekciju (provajderi bez ključa kao što je duckduckgo-free uvijek se računaju). Isključivanje zadržava svaki red pretrage sa ID-jem provajdera.", "publicSystem": { diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json index 59fd2792e16..9ef00c3ccfc 100644 --- a/src/i18n/messages/cs.json +++ b/src/i18n/messages/cs.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Odmítnout požadavky před odesláním, když cílový model postrádá požadované schopnosti (vidění, nástroje, strukturovaný výstup, kontextové okno). Chrání přímé požadavky od jednotlivých poskytovatelů, které obcházejí filtr kompatibility kombinované vrstvy.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Započítávat využití modelů bez ceny jako $0 v kvótách využití v USD pro jednotlivé klíče namísto považování kvóty za překročenou. Ve výchozím nastavení vypnuto: neoceněný model nebo alias směrování může skrýt skutečnou útratu, takže kvóta selhává v uzavřeném stavu (fail closed).", "featureFlagDisableContextWindowChecksDescription": "Přeskočit místní kontrolu velikosti kontextového okna a maximálního počtu vstupních tokenů v OmniRoute u přímých požadavků na jeden model. Poskytovatelé stále vynucují své skutečné limity. Komprese promptů a omezení počtu výstupních tokenů zůstávají aktivní.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statistiky vyhledávání a nedávná vyhledávání zahrnují pouze poskytovatele, kteří mají stále aktivní připojení (poskytovatelé bez klíče, jako je duckduckgo-free, se započítávají vždy). Vypnutí zachová všechny uchované řádky vyhledávání s ID poskytovatele.", "publicSystem": { diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json index e340cfb66a4..2038cd1872b 100644 --- a/src/i18n/messages/da.json +++ b/src/i18n/messages/da.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Afvis anmodninger før afsendelse, når målmodellen mangler de nødvendige funktioner (vision, værktøjer, struktureret output, kontekstvindue). Beskytter direkte anmodninger fra en enkelt udbyder, der omgår kombinationslagets kompatibilitetsfilter.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Tæl forbrug af modeller uden pris som $0 i USD-forbrugskvoter pr. nøgle i stedet for at behandle kvoten som overskredet. Deaktiveret som standard: en model uden pris eller et routingalias kan skjule det reelle forbrug, så kvoten fejler lukket.", "featureFlagDisableContextWindowChecksDescription": "Spring OmniRoute's lokale kontrol af kontekstvindue og maksimalt antal inputtokens over for direkte anmodninger til en enkelt model. Opstrømsudbydere håndhæver stadig deres faktiske grænser. Promptkomprimering og grænser for outputtokens forbliver aktive.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Søgestatistik og seneste søgninger tæller kun udbydere, der stadig har en aktiv forbindelse (nøglefri udbydere såsom duckduckgo-free tæller altid med). Fra bevarer alle gemte søgerækker med et udbyder-id.", "publicSystem": { diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index 386f081ede7..77051f52965 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Lehnen Sie Anfragen ab, bevor sie versendet werden, wenn das Zielmodell über die erforderlichen Funktionen (Vision, Werkzeuge, strukturierte Ausgabe, Kontextfenster) nicht verfügt. Schützt direkte Einzelanbieteranfragen, die den Kombo-Schicht-Kompatibilitätsfilter umgehen.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Die Nutzung von Modellen ohne Preis in USD-Nutzungskontingenten pro Schlüssel als $0 zählen, anstatt das Kontingent als überschritten zu behandeln. Standardmäßig deaktiviert: Ein Modell ohne Preis oder ein Routing-Alias kann tatsächliche Ausgaben verbergen, sodass das Kontingent geschlossen fehlschlägt.", "featureFlagDisableContextWindowChecksDescription": "Lokale Kontextfenster- und Maximaleingabetoken-Prüfung von OmniRoute für direkte Einzelmodell-Anfragen überspringen. Upstream-Anbieter erzwingen weiterhin ihre tatsächlichen Grenzen. Prompt-Komprimierung und Ausgabetoken-Grenzen bleiben aktiv.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Suchstatistiken und kürzlich durchgeführte Suchen berücksichtigen nur Anbieter, die noch über eine aktive Verbindung verfügen (Anbieter ohne Schlüssel wie duckduckgo-free werden immer berücksichtigt). Bei „Aus“ wird jede gespeicherte Suchzeile mit einer Anbieter-ID beibehalten.", "publicSystem": { diff --git a/src/i18n/messages/el.json b/src/i18n/messages/el.json index 5f32ec2914c..b77d2235993 100644 --- a/src/i18n/messages/el.json +++ b/src/i18n/messages/el.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Απόρριψη αιτημάτων πριν από την αποστολή, όταν το μοντέλο προορισμού δεν διαθέτει τις απαιτούμενες δυνατότητες (όραση, εργαλεία, δομημένη έξοδος, παράθυρο περιβάλλοντος). Προστατεύει τα απευθείας αιτήματα προς έναν μεμονωμένο πάροχο που παρακάμπτουν το φίλτρο συμβατότητας του επιπέδου combo.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Υπολογισμός της χρήσης μοντέλων χωρίς τιμή ως $0 στις ποσοστώσεις χρήσης USD ανά κλειδί, αντί να θεωρείται ότι η ποσόστωση έχει εξαντληθεί. Απενεργοποιημένο από προεπιλογή: ένα μοντέλο χωρίς τιμή ή ένα ψευδώνυμο δρομολόγησης μπορεί να αποκρύψει την πραγματική δαπάνη, οπότε η ποσόστωση αποκλείεται σε περίπτωση αποτυχίας.", "featureFlagDisableContextWindowChecksDescription": "Παράλειψη του τοπικού ελέγχου παραθύρου περιβάλλοντος και μέγιστου αριθμού διακριτικών εισόδου του OmniRoute για απευθείας αιτήματα προς ένα μεμονωμένο μοντέλο. Οι upstream πάροχοι εξακολουθούν να επιβάλλουν τα πραγματικά τους όρια. Η συμπίεση προτροπής και τα ανώτατα όρια διακριτικών εξόδου παραμένουν ενεργά.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Τα στατιστικά αναζήτησης και οι πρόσφατες αναζητήσεις περιλαμβάνουν μόνο παρόχους που εξακολουθούν να έχουν ενεργή σύνδεση (οι πάροχοι χωρίς κλειδί, όπως ο duckduckgo-free, περιλαμβάνονται πάντα). Όταν η ρύθμιση είναι απενεργοποιημένη, διατηρείται κάθε αποθηκευμένη εγγραφή αναζήτησης που έχει αναγνωριστικό παρόχου.", "publicSystem": { diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index 5544b968d7e..07187d86eac 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Reject requests before dispatch when the target model lacks required capabilities (vision, tools, structured output, context window). Protects direct single-provider requests that bypass the combo-layer compatibility filter.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Count usage of models that have no price as $0 in per-key USD usage quotas instead of treating the quota as exceeded. Off by default: an unpriced model or routing alias can hide real spend, so the quota fails closed.", "featureFlagDisableContextWindowChecksDescription": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Search stats and recent searches only count providers that still have a live connection (keyless providers such as duckduckgo-free always count). Off keeps every retained search row with a provider id.", "publicSystem": { diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json index 55874af27fd..88c6d8e9c88 100644 --- a/src/i18n/messages/es.json +++ b/src/i18n/messages/es.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Rechazar solicitudes antes del despacho cuando el modelo objetivo carece de capacidades requeridas (visión, herramientas, salida estructurada, ventana de contexto). Protege las solicitudes directas de un solo proveedor que eluden el filtro de compatibilidad de la capa combinada.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Contabiliza el uso de modelos sin precio como $0 en las cuotas de uso en USD por clave en lugar de considerar la cuota como excedida. Desactivado de forma predeterminada: un modelo sin precio o un alias de enrutamiento puede ocultar el gasto real, por lo que la cuota se bloquea ante fallos.", "featureFlagDisableContextWindowChecksDescription": "Omite la comprobación local de OmniRoute de la ventana de contexto y del máximo de tokens de entrada para las solicitudes directas a un único modelo. Los proveedores ascendentes siguen aplicando sus límites reales. La compresión de prompts y los límites de tokens de salida permanecen activos.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Las estadísticas de búsqueda y las búsquedas recientes solo cuentan los proveedores que aún tienen una conexión activa (los proveedores sin clave, como duckduckgo-free, siempre cuentan). Si se desactiva esta opción, se conservan todas las filas de búsqueda retenidas con un id de proveedor.", "publicSystem": { diff --git a/src/i18n/messages/et.json b/src/i18n/messages/et.json index 79de1a20cec..c32b5763889 100644 --- a/src/i18n/messages/et.json +++ b/src/i18n/messages/et.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Lükka päringud enne edastamist tagasi, kui sihtmudelil puuduvad nõutavad võimalused (nägemine, tööriistad, struktureeritud väljund, kontekstiaken). See kaitseb ühe teenusepakkuja otsepäringuid, mis mööduvad kombokihi ühilduvusfiltrist.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Arvesta hinnata mudelite kasutus võtmepõhistes USD-kasutuskvootides $0-na, selle asemel et käsitleda kvooti ületatuna. Vaikimisi väljas: hinnata mudel või marsruutimisalias võib varjata tegelikke kulusid, seega keeldub kvoot tõrke korral toimimast.", "featureFlagDisableContextWindowChecksDescription": "Jäta ühe mudeli otsepäringute puhul OmniRoute'i kohalik kontekstiakna ja sisendtokenite maksimumarvu kontroll vahele. Ülesvoolu teenusepakkujad jõustavad endiselt oma tegelikud piirangud. Viiba tihendamine ja väljundtokenite piirangud jäävad aktiivseks.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Otsingustatistika ja hiljutised otsingud arvestavad ainult teenusepakkujaid, millel on endiselt aktiivne ühendus (võtmeta teenusepakkujaid, nagu duckduckgo-free, arvestatakse alati). Valik „Väljas“ säilitab iga alleshoitud otsingurea koos teenusepakkuja ID-ga.", "publicSystem": { diff --git a/src/i18n/messages/fa.json b/src/i18n/messages/fa.json index 25a8a81d5f4..74194e8d148 100644 --- a/src/i18n/messages/fa.json +++ b/src/i18n/messages/fa.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "درخواست‌ها را قبل از ارسال رد کنید زمانی که مدل هدف قابلیت‌های مورد نیاز (بینایی، ابزارها، خروجی ساختاریافته، پنجره زمینه) را ندارد. از درخواست‌های مستقیم تک‌تأمین‌کننده که فیلتر سازگاری لایه ترکیبی را دور می‌زنند، محافظت می‌کند.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "محاسبه مصرف مدل‌های بدون قیمت به‌عنوان $0 در سهمیه‌های مصرف USD به ازای هر کلید به‌جای اینکه سهمیه تمام‌شده تلقی شود. به‌طور پیش‌فرض غیرفعال است: یک مدل بدون قیمت یا نام مستعار مسیریابی می‌تواند هزینه واقعی را پنهان کند، بنابراین سهمیه مسدود می‌شود.", "featureFlagDisableContextWindowChecksDescription": "برای درخواستهای مستقیم تکمدلی، بررسی محلی OmniRoute درباره پنجره زمینه و حداکثر توکنهای ورودی را نادیده بگیرید. ارائهدهندگان بالادستی همچنان محدودیتهای واقعی خود را اعمال میکنند. فشردهسازی پرامپت و سقف توکنهای خروجی فعال باقی میمانند.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "آمار جستوجو و جستوجوهای اخیر فقط ارائهدهندگانی را محاسبه میکنند که همچنان اتصال فعالی دارند (ارائهدهندگان بدون کلید مانند duckduckgo-free همیشه محاسبه میشوند). در حالت خاموش، همه ردیفهای جستوجوی نگهداریشده که دارای شناسه ارائهدهنده هستند حفظ میشوند.", "publicSystem": { diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json index 074286fe17b..c9837ce61dd 100644 --- a/src/i18n/messages/fi.json +++ b/src/i18n/messages/fi.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Hylkää pyynnöt ennen lähettämistä, kun kohdemallilta puuttuu vaadittuja ominaisuuksia (näkö, työkalut, jäsennelty ulostulo, kontekstikkelu). Suojaa suorat yhden tarjoajan pyynnöt, jotka ohittavat yhdistelmäkerroksen yhteensopivuussuodattimen.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Laske hinnattomien mallien käyttö $0:ksi avainkohtaisissa USD-käyttökiintiöissä sen sijaan, että kiintiö katsottaisiin ylittyneeksi. Oletusarvoisesti poissa käytöstä: hinnoittelematon malli tai reititysalias voi piilottaa todellisen kulutuksen, joten kiintiö epäonnistuu suljettu-tilaan.", "featureFlagDisableContextWindowChecksDescription": "Ohita OmniRouten paikallinen konteksti-ikkunan ja syötetokenien enimmäismäärän tarkistus suorissa yhden mallin pyynnöissä. Ylävirran palveluntarjoajat valvovat edelleen todellisia rajojaan. Kehotteen pakkaus ja tulostetokenien enimmäismäärät pysyvät käytössä.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Hakutilastot ja viimeisimmät haut huomioivat vain palveluntarjoajat, joilla on edelleen aktiivinen yhteys (avaimettomat palveluntarjoajat, kuten duckduckgo-free, huomioidaan aina). Pois käytöstä -asetus säilyttää jokaisen tallennetun hakurivin, jolla on palveluntarjoajan tunnus.", "publicSystem": { diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index ec274f8916b..24f09c9a0ab 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Rejeter les demandes avant l'expédition lorsque le modèle cible manque des capacités requises (vision, outils, sortie structurée, fenêtre de contexte). Protège les demandes directes à un seul fournisseur qui contournent le filtre de compatibilité de la couche combo.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Compter l'utilisation des modèles sans prix comme $0 dans les quotas d'utilisation en USD par clé au lieu de considérer le quota comme dépassé. Désactivé par défaut : un modèle sans prix ou un alias de routage peut masquer les dépenses réelles, le quota est donc bloquant en cas d'échec.", "featureFlagDisableContextWindowChecksDescription": "Ignorer la vérification locale d’OmniRoute concernant la fenêtre de contexte et le nombre maximal de jetons d’entrée pour les requêtes directes adressées à un seul modèle. Les fournisseurs en amont appliquent toujours leurs limites réelles. La compression des prompts et les plafonds de jetons de sortie restent actifs.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Les statistiques de recherche et les recherches récentes ne prennent en compte que les fournisseurs disposant encore d’une connexion active (les fournisseurs sans clé tels que duckduckgo-free sont toujours pris en compte). Lorsque cette option est désactivée, chaque ligne de recherche conservée garde un identifiant de fournisseur.", "publicSystem": { diff --git a/src/i18n/messages/ga.json b/src/i18n/messages/ga.json index ff70a917992..508bdd22f6b 100644 --- a/src/i18n/messages/ga.json +++ b/src/i18n/messages/ga.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Diúltaigh d’iarratais sula seoltar iad nuair nach bhfuil na cumais riachtanacha ag an spriocmhúnla (fís, uirlisí, aschur struchtúrtha, fuinneog chomhthéacsúil). Cosnaíonn sé iarratais dhíreacha ar sholáthraí aonair a sheachnaíonn scagaire comhoiriúnachta na sraithe teaglamaí.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Áirigh úsáid samhlacha nach bhfuil aon phraghas orthu mar $0 i gcuótaí úsáide USD in aghaidh eochrach in ionad caitheamh leis an gcuóta mar rud sáraithe. As de réir réamhshocraithe: is féidir le samhail gan phraghas nó ailias ródaithe fíorchaiteachas a cheilt, mar sin teipeann ar an gcuóta ar bhealach dúnta.", "featureFlagDisableContextWindowChecksDescription": "Fág seiceáil áitiúil OmniRoute ar an bhfuinneog chomhthéacsúil agus ar uaslíon na gcomharthaí ionchuir ar lár le haghaidh iarratais dhíreacha ar mhúnla aonair. Cuireann soláthraithe réamhtheachtacha a dteorainneacha iarbhír i bhfeidhm fós. Fanann comhbhrú leideanna agus teorainneacha ar chomharthaí aschuir gníomhach.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Ní áirítear i staitisticí cuardaigh ná i gcuardaigh le déanaí ach soláthraithe a bhfuil nasc beo acu fós (áirítear soláthraithe gan eochair amhail duckduckgo-free i gcónaí). Nuair atá sé as, coinnítear gach ró cuardaigh a coinníodh agus a bhfuil aitheantas soláthraí aige.", "publicSystem": { diff --git a/src/i18n/messages/gu.json b/src/i18n/messages/gu.json index c5a043fee6d..2c8aa1652c5 100644 --- a/src/i18n/messages/gu.json +++ b/src/i18n/messages/gu.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "જ્યારે લક્ષ્ય મોડેલમાં જરૂરી ક્ષમતાઓ (દૃષ્ટિ, સાધનો, રચિત આઉટપુટ, સંદર્ભ વિન્ડો) નથી ત્યારે વિતરણ પહેલાં વિનંતીઓને નકારી નાખો. કોમ્બો-લેયર સુસંગતતા ફિલ્ટરને બાયપાસ કરતી સીધી એકલ-પ્રદાતા વિનંતિઓને સુરક્ષિત કરે છે.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ક્વોટા વટાવી ગયો છે તેમ ગણવાને બદલે, કી-દીઠ USD વપરાશ ક્વોટામાં કિંમત વિનાના મોડલ્સના વપરાશને $0 તરીકે ગણો. ડિફૉલ્ટ રૂપે બંધ: કિંમત વગરનું મોડલ અથવા રૂટિંગ ઉપનામ વાસ્તવિક ખર્ચ છુપાવી શકે છે, તેથી ક્વોટા બંધ થઈ જાય છે.", "featureFlagDisableContextWindowChecksDescription": "સીધી સિંગલ-મોડેલ વિનંતીઓ માટે OmniRouteની સ્થાનિક કોન્ટેક્સ્ટ-વિન્ડો અને મહત્તમ-ઇનપુટ-ટોકન ચકાસણીને અવગણો. અપસ્ટ્રીમ પ્રદાતાઓ હજી પણ તેમની વાસ્તવિક મર્યાદાઓ લાગુ કરે છે. પ્રોમ્પ્ટ કમ્પ્રેશન અને આઉટપુટ-ટોકન મર્યાદાઓ સક્રિય રહે છે.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "શોધના આંકડા અને તાજેતરની શોધોમાં ફક્ત એવા પ્રદાતાઓની ગણતરી થાય છે જેમનું કનેક્શન હજી સક્રિય છે (duckduckgo-free જેવા કી-રહિત પ્રદાતાઓ હંમેશાં ગણાય છે). બંધ કરવાથી પ્રદાતા ID ધરાવતી દરેક જાળવી રાખેલી શોધ પંક્તિ રહે છે.", "publicSystem": { diff --git a/src/i18n/messages/ha.json b/src/i18n/messages/ha.json index abf2d5835e0..34b43dcf86d 100644 --- a/src/i18n/messages/ha.json +++ b/src/i18n/messages/ha.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Ƙi buƙatu kafin aikawa idan samfurin da aka nufa ba shi da iyawar da ake buƙata (gani, kayan aiki, tsararren fitarwa, taga mahallin bayani). Wannan yana kare buƙatun kai-tsaye na mai samarwa guda ɗaya waɗanda ke tsallake matatar dacewa ta combo-layer.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Ƙididdige amfani da samfuran da ba su da farashi a matsayin $0 a cikin iyakokin amfani da USD na kowane maɓalli maimakon ɗaukar cewa an wuce iyakar. A kashe yake ta tsohuwa: samfurin da ba shi da farashi ko sunan laƙabin zaɓin hanya na iya ɓoye ainihin kuɗin da aka kashe, don haka iyakar tana toshewa.", "featureFlagDisableContextWindowChecksDescription": "Tsallake binciken taga mahallin bayani da iyakar token na shigarwa na OmniRoute don buƙatun kai-tsaye na samfuri guda ɗaya. Masu samarwa na waje za su ci gaba da tilasta ainihin iyakokinsu. Matse prompt da iyakokin token na fitarwa za su ci gaba da aiki.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Ƙididdigar bincike da binciken baya-bayan nan suna ƙirga kawai masu samarwa da har yanzu suke da haɗi mai aiki (masu samarwa marasa maɓalli kamar duckduckgo-free koyaushe ana ƙirga su). Kashewa yana adana kowane layin bincike da aka riƙe tare da ID na mai samarwa.", "publicSystem": { diff --git a/src/i18n/messages/he.json b/src/i18n/messages/he.json index 11262d42d18..30653c711e4 100644 --- a/src/i18n/messages/he.json +++ b/src/i18n/messages/he.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "דחה בקשות לפני שליחה כאשר המודל המטרה חסר יכולות נדרשות (חזון, כלים, פלט מובנה, חלון הקשר). מגן על בקשות ישירות מספק אחד שעוקפות את מסנן ההתאמה של שכבת הקומבו.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ספירת השימוש במודלים שאין להם מחיר כ-$0 במכסות שימוש ב-USD לפי מפתח, במקום להתייחס למכסה כאילו נחרגה. מושבת כברירת מחדل: מודל ללא תמחור או כינוי ניתוב עלולים להסתיר הוצאות אמיתיות, ולכן המכסה נכשלת במצב סגור.", "featureFlagDisableContextWindowChecksDescription": "דלגו על הבדיקה המקומית של OmniRoute לחלון ההקשר ולמספר המרבי של אסימוני קלט עבור בקשות ישירות למודל יחיד. הספקים החיצוניים עדיין אוכפים את המגבלות שלהם בפועל. דחיסת הנחיות והגבלות על אסימוני פלט נשארות פעילות.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "סטטיסטיקות החיפוש והחיפושים האחרונים סופרים רק ספקים שעדיין יש להם חיבור פעיל (ספקים ללא מפתח, כגון duckduckgo-free, נספרים תמיד). במצב כבוי, כל רשומת חיפוש שנשמרה נשארת עם מזהה ספק.", "publicSystem": { diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json index 138e739d55f..59c82dce69b 100644 --- a/src/i18n/messages/hi.json +++ b/src/i18n/messages/hi.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "डिस्पैच से पहले अनुरोधों को अस्वीकार करें जब लक्षित मॉडल आवश्यक क्षमताओं (दृष्टि, उपकरण, संरचित आउटपुट, संदर्भ विंडो) से रहित हो। यह सीधे एकल-प्रदाता अनुरोधों की रक्षा करता है जो कॉम्बो-लेयर संगतता फ़िल्टर को बायपास करते हैं।", + "featureFlagUsageLimitIgnoreUnpricedDescription": "कोटा पार हो गया मानने के बजाय, प्रति-कुंजी USD उपयोग कोटा में बिना मूल्य वाले मॉडलों के उपयोग को $0 के रूप में गिनें। डिफ़ॉल्ट रूप से बंद: बिना मूल्य वाला मॉडल या रूटिंग उपनाम वास्तविक खर्च को छिपा सकता है, इसलिए कोटा फ़ेल क्लोज़ हो जाता है।", "featureFlagDisableContextWindowChecksDescription": "सीधे एकल-मॉडल अनुरोधों के लिए OmniRoute की स्थानीय कॉन्टेक्स्ट-विंडो और अधिकतम-इनपुट-टोकन जाँच को छोड़ें। अपस्ट्रीम प्रदाता अब भी अपनी वास्तविक सीमाएँ लागू करते हैं। प्रॉम्प्ट कम्प्रेशन और आउटपुट-टोकन सीमाएँ सक्रिय रहेंगी।", "featureFlagSearchStatsHideDeletedConnectionsDescription": "खोज के आँकड़ों और हाल की खोजों में केवल उन्हीं प्रदाताओं को गिना जाता है जिनका कनेक्शन अभी भी सक्रिय है (duckduckgo-free जैसे कुंजी-रहित प्रदाता हमेशा गिने जाते हैं)। बंद होने पर, प्रदाता आईडी वाली खोज की प्रत्येक संधारित पंक्ति रखी जाती है।", "publicSystem": { diff --git a/src/i18n/messages/hr.json b/src/i18n/messages/hr.json index 077a58496be..e6810de770e 100644 --- a/src/i18n/messages/hr.json +++ b/src/i18n/messages/hr.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Odbija zahtjeve prije slanja kada ciljnom modelu nedostaju potrebne mogućnosti (vizija, alati, strukturirani izlaz, kontekstni prozor). Štiti izravne zahtjeve prema jednom pružatelju koji zaobilaze filtar kompatibilnosti sloja combo-layer.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Računaj potrošnju modela koji nemaju cijenu kao $0 u kvotama potrošnje u USD po ključu umjesto da se kvota tretira kao prekoračena. Prema zadanim postavkama isključeno: model bez cijene ili pseudonim za usmjeravanje može sakriti stvarnu potrošnju, pa se kvota blokira u slučaju pogreške.", "featureFlagDisableContextWindowChecksDescription": "Preskače lokalnu provjeru kontekstnog prozora i maksimalnog broja ulaznih tokena sustava OmniRoute za izravne zahtjeve prema jednom modelu. Uzlazni pružatelji i dalje primjenjuju svoja stvarna ograničenja. Kompresija upita i ograničenja izlaznih tokena ostaju aktivni.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statistika pretraživanja i nedavna pretraživanja broje samo pružatelje koji još uvijek imaju aktivnu vezu (pružatelji bez ključa, poput duckduckgo-free, uvijek se broje). Kad je opcija isključena, zadržava se svaki spremljeni redak pretraživanja s ID-jem pružatelja.", "publicSystem": { diff --git a/src/i18n/messages/hu.json b/src/i18n/messages/hu.json index bf4c6c54600..65842bf4da4 100644 --- a/src/i18n/messages/hu.json +++ b/src/i18n/messages/hu.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Elutasítja a kéréseket a kiszállítás előtt, amikor a célmodell hiányzik a szükséges képességekből (látás, eszközök, strukturált kimenet, kontextusablak). Védi a közvetlen, egy szolgáltatótól érkező kéréseket, amelyek megkerülik a kombinált réteg kompatibilitási szűrőt.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Az ár nélküli modellek használatát $0-ként számolja a kulcsonkénti USD használati kvótákban, ahelyett, hogy túllépettként kezelné a kvótát. Alapértelmezés szerint kikapcsolva: egy ár nélküli modell vagy útválasztási álnév elrejtheti a valós költést, így a kvóta hiba esetén lezár.", "featureFlagDisableContextWindowChecksDescription": "Az OmniRoute helyi kontextusablak-ellenőrzésének és a bemeneti tokenek maximális számára vonatkozó ellenőrzésének kihagyása közvetlen, egyetlen modellt használó kéréseknél. A külső szolgáltatók továbbra is érvényesítik a tényleges korlátaikat. A prompttömörítés és a kimeneti tokenek korlátozása aktív marad.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "A keresési statisztikák és a legutóbbi keresések csak azokat a szolgáltatókat veszik figyelembe, amelyek még aktív kapcsolattal rendelkeznek (a kulcs nélküli szolgáltatók, például a duckduckgo-free, mindig beleszámítanak). Kikapcsolt állapotban minden megőrzött keresési sor megmarad szolgáltatói azonosítóval.", "publicSystem": { diff --git a/src/i18n/messages/hy.json b/src/i18n/messages/hy.json index a18b5bd75a1..8a269ee561c 100644 --- a/src/i18n/messages/hy.json +++ b/src/i18n/messages/hy.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Մերժել հարցումները նախքան ուղարկումը, երբ թիրախային մոդելը չունի պահանջվող հնարավորությունները (տեսողություն, գործիքներ, կառուցվածքային ելք, համատեքստի պատուհան)։ Պաշտպանում է մեկ մատակարարին ուղղակիորեն ուղարկվող հարցումները, որոնք շրջանցում են համակցման շերտի համատեղելիության զտիչը։", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Գին չունեցող մոդելների օգտագործումը հաշվարկել որպես $0 ըստ բանալու USD-ով օգտագործման քվոտաներում՝ քվոտան գերազանցված համարելու փոխարեն։ Լռելյայն անջատված է․ գին չունեցող մոդելը կամ երթուղման այլանունը կարող են թաքցնել իրական ծախսը, ուստի քվոտան արգելափակվում է։", "featureFlagDisableContextWindowChecksDescription": "Մեկ մոդելին ուղղակիորեն ուղարկվող հարցումների համար բաց թողնել OmniRoute-ի տեղային համատեքստի պատուհանի և մուտքային թոքենների առավելագույն քանակի ստուգումը։ Վերին մակարդակի մատակարարները շարունակում են կիրառել իրենց փաստացի սահմանաչափերը։ Հուշման սեղմումն ու ելքային թոքենների սահմանաչափերը շարունակում են գործել։", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Որոնման վիճակագրությունը և վերջին որոնումները հաշվի են առնում միայն այն մատակարարներին, որոնք դեռ ակտիվ կապ ունեն (առանց բանալու մատակարարները, օրինակ՝ duckduckgo-free, միշտ հաշվի են առնվում)։ Անջատված վիճակում պահպանվում են որոնման բոլոր տողերը՝ մատակարարի նույնացուցիչով։", "publicSystem": { diff --git a/src/i18n/messages/id.json b/src/i18n/messages/id.json index 863bf9300a6..3098b93632c 100644 --- a/src/i18n/messages/id.json +++ b/src/i18n/messages/id.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Tolak permintaan sebelum pengiriman ketika model target tidak memiliki kemampuan yang diperlukan (visi, alat, output terstruktur, jendela konteks). Melindungi permintaan penyedia tunggal langsung yang melewati filter kompatibilitas lapisan kombinasi.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Hitung penggunaan model yang tidak memiliki harga sebagai $0 dalam kuota penggunaan USD per kunci alih-alih menganggap kuota telah terlampaui. Nonaktif secara default: model tanpa harga atau alias perutean dapat menyembunyikan pengeluaran sebenarnya, sehingga kuota gagal tertutup.", "featureFlagDisableContextWindowChecksDescription": "Lewati pemeriksaan lokal OmniRoute atas jendela konteks dan token input maksimum untuk permintaan langsung ke satu model. Penyedia upstream tetap memberlakukan batas aktual mereka. Kompresi prompt dan batas token output tetap aktif.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statistik pencarian dan pencarian terbaru hanya menghitung penyedia yang masih memiliki koneksi aktif (penyedia tanpa kunci seperti duckduckgo-free selalu dihitung). Jika dinonaktifkan, setiap baris pencarian tersimpan yang memiliki ID penyedia tetap disertakan.", "publicSystem": { diff --git a/src/i18n/messages/ig.json b/src/i18n/messages/ig.json index 72429ef5d97..b696eb17b0e 100644 --- a/src/i18n/messages/ig.json +++ b/src/i18n/messages/ig.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Jụ arịrịọ tupu izipu ya mgbe ụdị e lekwasịrị anya enweghị ikike ndị achọrọ (ọhụụ, ngwaọrụ, nsonaazụ ahaziri, windo ọnọdụ). Nke a na-echebe arịrịọ kpọmkwem nke otu onye na-eweta ọrụ, nke na-agafeghị nzacha ndakọrịta nke combo-layer.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Gụọ ojiji nke model ndị na-enweghị ọnụahịa dị ka $0 n'oke ojiji USD nke igodo ọ bụla kama iwere na agafela oke ahụ. A gbanyụrụ ya na ndabara: model na-enweghị ọnụahịa ma ọ bụ aha ọzọ maka nhazi ụzọ nwere ike izochi ezigbo mmefu, ya mere oke ahụ na-emechi ma jụ arịrịọ mgbe o dara.", "featureFlagDisableContextWindowChecksDescription": "Mafee nyocha mpaghara nke OmniRoute maka windo ọnọdụ na oke token ntinye kachasị n'arịrịọ kpọmkwem nke otu ụdị. Ndị na-eweta ọrụ dị n'elu ka na-amanye oke ha n'ezie. Mkpakọ prompt na oke token nsonaazụ ka na-arụ ọrụ.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Ndekọ ọnụ ọgụgụ ọchụchọ na ọchụchọ ndị e mere n'oge na-adịbeghị anya na-agụ naanị ndị na-eweta ọrụ ka nwere njikọ na-arụ ọrụ (a na-agụ ndị na-eweta ọrụ na-enweghị igodo dịka duckduckgo-free mgbe niile). Ịgbanyụ ya na-edobe ahịrị ọchụchọ niile echekwara nwere ID onye na-eweta ọrụ.", "publicSystem": { diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json index fc5388ae348..eb44a196417 100644 --- a/src/i18n/messages/it.json +++ b/src/i18n/messages/it.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Rifiuta le richieste prima della spedizione quando il modello di destinazione manca delle capacità richieste (visione, strumenti, output strutturato, finestra di contesto). Protegge le richieste dirette a singolo fornitore che bypassano il filtro di compatibilità del livello combinato.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Conteggia l'utilizzo dei modelli senza prezzo come $0 nelle quote di utilizzo in USD per chiave invece di considerare la quota come superata. Disattivato per impostazione predefinita: un modello senza prezzo o un alias di routing può nascondere la spesa reale, quindi la quota fallisce bloccandosi.", "featureFlagDisableContextWindowChecksDescription": "Ignora il controllo locale di OmniRoute sulla finestra di contesto e sul numero massimo di token di input per le richieste dirette a un singolo modello. I provider upstream applicano comunque i propri limiti effettivi. La compressione dei prompt e i limiti dei token di output rimangono attivi.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Le statistiche di ricerca e le ricerche recenti conteggiano solo i fornitori che dispongono ancora di una connessione attiva (i fornitori senza chiave, come duckduckgo-free, vengono sempre conteggiati). Se l'opzione è disattivata, vengono mantenute tutte le righe di ricerca conservate con un ID fornitore.", "publicSystem": { diff --git a/src/i18n/messages/ja.json b/src/i18n/messages/ja.json index 97ba39ad6cb..69ed2b6cc34 100644 --- a/src/i18n/messages/ja.json +++ b/src/i18n/messages/ja.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ディスパッチ前にリクエストを拒否します。ターゲットモデルに必要な機能(ビジョン、ツール、構造化出力、コンテキストウィンドウ)が欠けている場合。コンボレイヤーの互換性フィルターをバイパスする直接の単一プロバイダーリクエストを保護します。", + "featureFlagUsageLimitIgnoreUnpricedDescription": "クォータを超過したものとして扱う代わりに、キー単位のUSD使用量クォータで価格設定のないモデルの使用量を $0 としてカウントします。デフォルトではオフです。価格のないモデルやルーティングエイリアスによって実際の支出が隠れる可能性があるため、クォータはクローズ状態で失敗(拒否)します。", "featureFlagDisableContextWindowChecksDescription": "単一モデルへの直接リクエストについて、OmniRoute のローカルなコンテキストウィンドウと最大入力トークン数のチェックをスキップします。上流プロバイダーでは、実際の制限が引き続き適用されます。プロンプト圧縮と出力トークン数の上限も引き続き有効です。", "featureFlagSearchStatsHideDeletedConnectionsDescription": "検索統計と最近の検索には、接続が有効なプロバイダーのみが含まれます(duckduckgo-free などのキーレスプロバイダーは常に含まれます)。オフにすると、プロバイダー ID が設定された保持済みの検索行がすべて維持されます。", "publicSystem": { diff --git a/src/i18n/messages/ka.json b/src/i18n/messages/ka.json index fcbeccc1193..c125375bd2f 100644 --- a/src/i18n/messages/ka.json +++ b/src/i18n/messages/ka.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "გაგზავნამდე უარყოფს მოთხოვნებს, როდესაც სამიზნე მოდელს საჭირო შესაძლებლობები (ხედვა, ხელსაწყოები, სტრუქტურირებული გამომავალი, კონტექსტის ფანჯარა) არ გააჩნია. იცავს უშუალოდ ერთი პროვაიდერისადმი გაგზავნილ მოთხოვნებს, რომლებიც კომბინირებული შრის თავსებადობის ფილტრს გვერდს უვლიან.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "იმის ნაცვლად, რომ კვოტა გადაჭარბებულად ჩაითვალოს, თითოეული გასაღებისთვის USD-ის გამოყენების კვოტებში უფასო მოდელების გამოყენება $0-ად აღრიცხეთ. ნაგულისხმევად გამორთულია: მოდელმა ფასის გარეშე ან მარშრუტიზაციის ფსევდონიმმა შესაძლოა რეალური დანახარჯი დამალოს, ამიტომ კვოტა უარყოფით იხურება.", "featureFlagDisableContextWindowChecksDescription": "ერთი მოდელისადმი უშუალოდ გაგზავნილი მოთხოვნებისთვის გამოტოვეთ OmniRoute-ის კონტექსტის ფანჯრისა და შეყვანის ტოკენების მაქსიმალური რაოდენობის ლოკალური შემოწმება. ზემდგომი პროვაიდერები კვლავ იყენებენ საკუთარ რეალურ შეზღუდვებს. პრომპტის შეკუმშვა და გამომავალი ტოკენების ლიმიტები აქტიური რჩება.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "ძიების სტატისტიკა და ბოლო ძიებები ითვალისწინებს მხოლოდ იმ პროვაიდერებს, რომლებსაც ჯერ კიდევ აქვთ აქტიური კავშირი (გასაღების არმომთხოვნი პროვაიდერები, როგორიცაა duckduckgo-free, ყოველთვის ითვლება). გამორთვის შემთხვევაში შენარჩუნდება ძიების ყველა ჩანაწერი, რომელსაც პროვაიდერის ID აქვს.", "publicSystem": { diff --git a/src/i18n/messages/km.json b/src/i18n/messages/km.json index 0f1899b1485..16f2e1f3f47 100644 --- a/src/i18n/messages/km.json +++ b/src/i18n/messages/km.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "បដិសេធសំណើមុនពេលបញ្ជូន នៅពេលម៉ូដែលគោលដៅខ្វះសមត្ថភាពដែលត្រូវការ (ចក្ខុវិស័យ ឧបករណ៍ លទ្ធផលមានរចនាសម្ព័ន្ធ បង្អួចបរិបទ)។ វាការពារសំណើទៅកាន់អ្នកផ្តល់សេវាតែមួយដោយផ្ទាល់ ដែលរំលងតម្រងភាពត្រូវគ្នានៃស្រទាប់បន្សំ។", + "featureFlagUsageLimitIgnoreUnpricedDescription": "រាប់ការប្រើប្រាស់ម៉ូដែលដែលគ្មានតម្លៃជា $0 នៅក្នុងកូតាការប្រើប្រាស់ជា USD តាមសោនីមួយៗ ជំនួសឱ្យការចាត់ទុកថាកូតាត្រូវបានលើសកំណត់។ បិទតាមលំនាំដើម៖ ម៉ូដែលដែលគ្មានតម្លៃ ឬឈ្មោះហៅក្រៅនៃការកំណត់ផ្លូវអាចលាក់បាំងការចំណាយពិតប្រាកដ ដូច្នេះកូតានឹងបរាជ័យដោយបិទការចូលប្រើ។", "featureFlagDisableContextWindowChecksDescription": "រំលងការត្រួតពិនិត្យបង្អួចបរិបទ និងចំនួនថូខិនបញ្ចូលអតិបរមាក្នុងមូលដ្ឋានរបស់ OmniRoute សម្រាប់សំណើទៅកាន់ម៉ូដែលតែមួយដោយផ្ទាល់។ អ្នកផ្តល់សេវាខាងលើនៅតែអនុវត្តដែនកំណត់ជាក់ស្តែងរបស់ពួកគេ។ ការបង្ហាប់ប្រូម និងដែនកំណត់ថូខិនលទ្ធផលនៅតែដំណើរការ។", "featureFlagSearchStatsHideDeletedConnectionsDescription": "ស្ថិតិស្វែងរក និងការស្វែងរកថ្មីៗ រាប់បញ្ចូលតែអ្នកផ្តល់សេវាដែលនៅមានការតភ្ជាប់សកម្មប៉ុណ្ណោះ (អ្នកផ្តល់សេវាដែលមិនត្រូវការសោ ដូចជា duckduckgo-free ត្រូវបានរាប់បញ្ចូលជានិច្ច)។ ការបិទនឹងរក្សាទុករាល់ជួរទិន្នន័យស្វែងរកដែលបានរក្សាទុក ដោយមានលេខសម្គាល់អ្នកផ្តល់សេវា។", "publicSystem": { diff --git a/src/i18n/messages/kn.json b/src/i18n/messages/kn.json index fa54e14aa37..04392ee2bf0 100644 --- a/src/i18n/messages/kn.json +++ b/src/i18n/messages/kn.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ಗುರಿ ಮಾದರಿಯಲ್ಲಿ ಅಗತ್ಯ ಸಾಮರ್ಥ್ಯಗಳು (ವಿಷನ್, ಪರಿಕರಗಳು, ಸಂರಚಿತ ಔಟ್ಪುಟ್, ಸಂದರ್ಭ ವಿಂಡೋ) ಇಲ್ಲದಿದ್ದಾಗ ರವಾನಿಸುವ ಮೊದಲು ವಿನಂತಿಗಳನ್ನು ತಿರಸ್ಕರಿಸಿ. ಇದು ಕಾಂಬೊ-ಲೇಯರ್ ಹೊಂದಾಣಿಕೆ ಫಿಲ್ಟರ್ ಅನ್ನು ತಪ್ಪಿಸುವ ನೇರ ಏಕ-ಪೂರೈಕೆದಾರ ವಿನಂತಿಗಳನ್ನು ರಕ್ಷಿಸುತ್ತದೆ.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ಕೋಟಾ ಮೀರಿದೆ ಎಂದು ಪರಿಗಣಿಸುವ ಬದಲಿಗೆ, ಪ್ರತಿ-ಕೀ USD ಬಳಕೆ ಕೋಟಾಗಳಲ್ಲಿ ಬೆಲೆಯಿಲ್ಲದ ಮಾದರಿಗಳ ಬಳಕೆಯನ್ನು $0 ಎಂದು ಪರಿಗಣಿಸಿ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್: ಬೆಲೆಯಿಲ್ಲದ ಮಾದರಿ ಅಥವಾ ರೂಟಿಂಗ್ ಅಲಿಯಾಸ್ ನೈಜ ವೆಚ್ಚವನ್ನು ಮರೆಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ಕೋಟಾ ವಿಫಲವಾದಾಗ ಡೀಫಾಲ್ಟ್ ಆಗಿ ನಿರಾಕರಿಸುತ್ತದೆ.", "featureFlagDisableContextWindowChecksDescription": "ನೇರ ಏಕ-ಮಾದರಿ ವಿನಂತಿಗಳಿಗಾಗಿ OmniRoute ನ ಸ್ಥಳೀಯ ಸಂದರ್ಭ-ವಿಂಡೋ ಮತ್ತು ಗರಿಷ್ಠ-ಇನ್ಪುಟ್-ಟೋಕನ್ ಪರಿಶೀಲನೆಯನ್ನು ಬಿಟ್ಟುಬಿಡಿ. ಅಪ್ಸ್ಟ್ರೀಮ್ ಪೂರೈಕೆದಾರರು ತಮ್ಮ ನೈಜ ಮಿತಿಗಳನ್ನು ಇನ್ನೂ ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ. ಪ್ರಾಂಪ್ಟ್ ಸಂಕುಚನ ಮತ್ತು ಔಟ್ಪುಟ್-ಟೋಕನ್ ಮಿತಿಗಳು ಸಕ್ರಿಯವಾಗಿಯೇ ಇರುತ್ತವೆ.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "ಹುಡುಕಾಟದ ಅಂಕಿಅಂಶಗಳು ಮತ್ತು ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು ಇನ್ನೂ ಸಕ್ರಿಯ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿರುವ ಪೂರೈಕೆದಾರರನ್ನು ಮಾತ್ರ ಎಣಿಸುತ್ತವೆ (duckduckgo-free ನಂತಹ ಕೀಲಿರಹಿತ ಪೂರೈಕೆದಾರರನ್ನು ಯಾವಾಗಲೂ ಎಣಿಸಲಾಗುತ್ತದೆ). ಆಫ್ ಮಾಡಿದರೆ, ಉಳಿಸಿಕೊಂಡಿರುವ ಪ್ರತಿಯೊಂದು ಹುಡುಕಾಟ ಸಾಲನ್ನೂ ಪೂರೈಕೆದಾರರ ಐಡಿಯೊಂದಿಗೆ ಇರಿಸಿಕೊಳ್ಳುತ್ತದೆ.", "publicSystem": { diff --git a/src/i18n/messages/ko.json b/src/i18n/messages/ko.json index 4270eb76f52..c30a0a613b2 100644 --- a/src/i18n/messages/ko.json +++ b/src/i18n/messages/ko.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "대상 모델에 필수 기능(비전, 도구, 구조화된 출력, 컨텍스트 창)이 부족할 경우 요청을 발송 전에 거부합니다. 콤보 레이어 호환성 필터를 우회하는 직접 단일 공급자 요청을 보호합니다.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "할당량이 초과된 것으로 처리하는 대신 키별 USD 사용량 할당량에서 가격 정보가 없는 모델의 사용량을 $0로 계산합니다. 기본값은 꺼짐입니다: 가격 정보가 없는 모델이나 라우팅 별칭은 실제 지출을 숨길 수 있으므로 할당량은 닫힌 상태로 실패합니다.", "featureFlagDisableContextWindowChecksDescription": "단일 모델로 직접 요청할 때 OmniRoute의 로컬 컨텍스트 창 및 최대 입력 토큰 검사를 건너뜁니다. 업스트림 제공업체는 여전히 실제 한도를 적용합니다. 프롬프트 압축과 출력 토큰 상한은 계속 적용됩니다.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "검색 통계와 최근 검색에는 현재 연결이 활성화된 제공업체만 포함됩니다(duckduckgo-free와 같이 키가 필요 없는 제공업체는 항상 포함됨). 이 옵션을 끄면 제공업체 ID가 있는 보존된 모든 검색 행이 유지됩니다.", "publicSystem": { diff --git a/src/i18n/messages/lt.json b/src/i18n/messages/lt.json index c91ce1ce19c..0f7d002b322 100644 --- a/src/i18n/messages/lt.json +++ b/src/i18n/messages/lt.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Atmesti užklausas prieš jas perduodant, kai tikslinis modelis neturi reikiamų galimybių (vaizdų apdorojimo, įrankių, struktūrizuotos išvesties, konteksto lango). Tai apsaugo tiesiogines vienam teikėjui skirtas užklausas, kurios apeina derinių lygmens suderinamumo filtrą.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Kainos neturinčių modelių naudojimą pagal raktą nustatytose USD naudojimo kvotose skaičiuoti kaip $0, užuot laikant, kad kvota viršyta. Pagal numatytąsias nuostatas išjungta: modelis be kainos arba nukreipimo alternatyvusis pavadinimas gali paslėpti faktines išlaidas, todėl kvota klaidos atveju blokuojama.", "featureFlagDisableContextWindowChecksDescription": "Tiesioginėms vieno modelio užklausoms praleisti OmniRoute vietinę konteksto lango ir didžiausio įvesties žetonų skaičiaus patikrą. Išoriniai teikėjai vis tiek taiko savo faktinius apribojimus. Raginimų glaudinimas ir išvesties žetonų apribojimai lieka aktyvūs.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Paieškos statistikoje ir naujausiose paieškose skaičiuojami tik tie teikėjai, kurie vis dar turi aktyvų ryšį (teikėjai, kuriems nereikia rakto, pvz., duckduckgo-free, skaičiuojami visada). Pasirinkus „Išjungta“, įtraukiama kiekviena išsaugota paieškos eilutė su teikėjo ID.", "publicSystem": { diff --git a/src/i18n/messages/lv.json b/src/i18n/messages/lv.json index d81a357ddb3..98e4b266764 100644 --- a/src/i18n/messages/lv.json +++ b/src/i18n/messages/lv.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Noraidīt pieprasījumus pirms nosūtīšanas, ja mērķa modelim trūkst nepieciešamo iespēju (attēlu apstrāde, rīki, strukturēta izvade, konteksta logs). Aizsargā tiešus viena pakalpojumu sniedzēja pieprasījumus, kas apiet combo-layer saderības filtru.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Skaitīt modeļu bez cenas izmantošanu kā $0 katras atslēgas USD izmantošanas kvotās, nevis uzskatīt kvotu par pārsniegtu. Pēc noklusējuma izslēgts: modelis bez cenas vai maršrutēšanas aizstājvārds var slēpt faktiskos izdevumus, tāpēc kvota kļūdas gadījumā tiek bloķēta.", "featureFlagDisableContextWindowChecksDescription": "Izlaist OmniRoute lokālo konteksta loga un max-input-token pārbaudi tiešiem viena modeļa pieprasījumiem. Augšupējie pakalpojumu sniedzēji joprojām piemēro savus faktiskos ierobežojumus. Uzvedņu saspiešana un izvades marķieru ierobežojumi paliek aktīvi.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Meklēšanas statistikā un nesenajos meklējumos tiek ņemti vērā tikai tie nodrošinātāji, kuriem joprojām ir aktīvs savienojums (nodrošinātāji bez atslēgas, piemēram, duckduckgo-free, tiek ņemti vērā vienmēr). Ja opcija ir izslēgta, tiek saglabāta katra paturētā meklēšanas rinda ar nodrošinātāja ID.", "publicSystem": { diff --git a/src/i18n/messages/ml.json b/src/i18n/messages/ml.json index 751dacf3780..ab5911349a5 100644 --- a/src/i18n/messages/ml.json +++ b/src/i18n/messages/ml.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ലക്ഷ്യമാക്കിയ മോഡലിന് ആവശ്യമായ ശേഷികൾ (വിഷൻ, ടൂളുകൾ, ഘടനാബദ്ധമായ ഔട്ട്പുട്ട്, കോൺടെക്സ്റ്റ് വിൻഡോ) ഇല്ലെങ്കിൽ അഭ്യർത്ഥനകൾ അയയ്ക്കുന്നതിന് മുമ്പ് നിരസിക്കുക. കോംബോ-ലെയർ അനുയോജ്യതാ ഫിൽട്ടർ മറികടക്കുന്ന നേരിട്ടുള്ള ഒറ്റ-പ്രൊവൈഡർ അഭ്യർത്ഥനകളെ ഇത് പരിരക്ഷിക്കുന്നു.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ക്വാട്ട കവിഞ്ഞതായി കണക്കാക്കുന്നതിന് പകരം, ഓരോ കീയ്ക്കുമുള്ള USD ഉപയോഗ ക്വാട്ടകളിൽ വിലയില്ലാത്ത മോഡലുകളുടെ ഉപയോഗം $0 ആയി കണക്കാക്കുക. ഡിഫോൾട്ടായി ഓഫാണ്: വില നിശ്ചയിക്കാത്ത മോഡലിനോ റൂട്ടിംഗ് അപരനാമത്തിനോ യഥാർത്ഥ ചെലവ് മറച്ചുവെക്കാൻ കഴിയും, അതിനാൽ ക്വാട്ട അടച്ച നിലയിൽ പരാജയപ്പെടുന്നു.", "featureFlagDisableContextWindowChecksDescription": "നേരിട്ടുള്ള ഒറ്റ-മോഡൽ അഭ്യർത്ഥനകൾക്കായി OmniRoute-ന്റെ ലോക്കൽ കോൺടെക്സ്റ്റ്-വിൻഡോ, പരമാവധി ഇൻപുട്ട്-ടോക്കൺ പരിശോധനകൾ ഒഴിവാക്കുക. അപ്സ്ട്രീം പ്രൊവൈഡർമാർ അവരുടെ യഥാർഥ പരിധികൾ തുടർന്നും നടപ്പാക്കും. പ്രോംപ്റ്റ് കംപ്രഷനും ഔട്ട്പുട്ട്-ടോക്കൺ പരിധികളും സജീവമായി തുടരും.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "തിരയൽ സ്ഥിതിവിവരക്കണക്കുകളും സമീപകാല തിരയലുകളും ഇപ്പോഴും സജീവ കണക്ഷനുള്ള പ്രൊവൈഡർമാരെ മാത്രമേ കണക്കാക്കൂ (duckduckgo-free പോലുള്ള കീ ആവശ്യമില്ലാത്ത പ്രൊവൈഡർമാരെ എല്ലായ്പ്പോഴും കണക്കാക്കും). ഓഫാക്കിയാൽ, പ്രൊവൈഡർ ഐഡിയുള്ള നിലനിർത്തിയ എല്ലാ തിരയൽ വരികളും സൂക്ഷിക്കും.", "publicSystem": { diff --git a/src/i18n/messages/mr.json b/src/i18n/messages/mr.json index 048b0d54967..c26fef5feae 100644 --- a/src/i18n/messages/mr.json +++ b/src/i18n/messages/mr.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "डिस्पॅच करण्यापूर्वी विनंत्या नाकारल्या जातात जेव्हा लक्ष्य मॉडेल आवश्यक क्षमतांचा अभाव असतो (दृष्टी, साधने, संरचित आउटपुट, संदर्भ विंडो). कॉम्बो-लेयर सुसंगतता फिल्टरला बायपास करणाऱ्या थेट एकल-प्रदात्याच्या विनंत्यांचे संरक्षण करते.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "कोटा ओलांडला गेला असल्याचे मानण्याऐवजी, प्रति-की USD वापर कोट्यामध्ये किंमत नसलेल्या मॉडेल्सचा वापर $0 म्हणून मोजा. डीफॉल्टनुसार बंद: किंमत नसलेले मॉडेल किंवा रूटिंग Alias वास्तविक खर्च लपवू शकते, त्यामुळे कोटा fail closed होतो.", "featureFlagDisableContextWindowChecksDescription": "थेट एकल-मॉडेल विनंत्यांसाठी OmniRoute ची स्थानिक context-window आणि max-input-token तपासणी वगळा. अपस्ट्रीम प्रदाते तरीही त्यांच्या वास्तविक मर्यादा लागू करतात. प्रॉम्प्ट कॉम्प्रेशन आणि आउटपुट-टोकन मर्यादा सक्रिय राहतात.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "शोध आकडेवारी आणि अलीकडील शोधांमध्ये फक्त अद्याप सक्रिय कनेक्शन असलेले प्रदाते मोजले जातात (duckduckgo-free सारखे की-विरहित प्रदाते नेहमी मोजले जातात). बंद केल्यास, प्रदाता आयडी असलेली प्रत्येक जतन केलेली शोध पंक्ती ठेवली जाते.", "publicSystem": { diff --git a/src/i18n/messages/ms.json b/src/i18n/messages/ms.json index 5477c4f4a2f..83216b647ae 100644 --- a/src/i18n/messages/ms.json +++ b/src/i18n/messages/ms.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Tolak permintaan sebelum penghantaran apabila model sasaran tidak mempunyai keupayaan yang diperlukan (penglihatan, alat, output terstruktur, tetingkap konteks). Melindungi permintaan penyedia tunggal secara langsung yang mengabaikan penapis keserasian lapisan gabungan.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Kira penggunaan model yang tiada harga sebagai $0 dalam kuota penggunaan USD setiap kunci dan bukannya menganggap kuota telah melebihi had. Dimatikan secara lalai: model tanpa harga atau alias penghalaan boleh menyembunyikan perbelanjaan sebenar, jadi kuota gagal ditutup.", "featureFlagDisableContextWindowChecksDescription": "Langkau semakan tetingkap konteks dan token input maksimum setempat OmniRoute untuk permintaan terus bagi model tunggal. Penyedia huluan masih menguatkuasakan had sebenar mereka. Pemampatan gesaan dan had token output kekal aktif.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statistik carian dan carian terkini hanya mengira penyedia yang masih mempunyai sambungan aktif (penyedia tanpa kunci seperti duckduckgo-free sentiasa dikira). Apabila dimatikan, setiap baris carian yang disimpan dengan ID penyedia akan dikekalkan.", "publicSystem": { diff --git a/src/i18n/messages/mt.json b/src/i18n/messages/mt.json index 4f555ec9696..373bc20cc82 100644 --- a/src/i18n/messages/mt.json +++ b/src/i18n/messages/mt.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Irrifjuta t-talbiet qabel jintbagħtu meta l-mudell fil-mira ma jkollux il-kapaċitajiet meħtieġa (viżjoni, għodod, output strutturat, tieqa tal-kuntest). Jipproteġi t-talbiet diretti lil fornitur wieħed li jaqbżu l-filtru tal-kompatibbiltà tas-saff tal-kombinazzjonijiet.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Għodd l-użu ta’ mudelli li m’għandhomx prezz bħala $0 fil-kwoti tal-użu f'USD għal kull ċavetta minflok ma tqis li l-kwota nqabżet. Diżattivat b’mod awtomatiku: mudell mingħajr prezz jew isem alternattiv tad-direzzjonar jista’ jaħbi l-infiq reali, għalhekk il-kwota tfalli billi tiċħad l-aċċess.", "featureFlagDisableContextWindowChecksDescription": "Aqbeż il-verifika lokali ta' OmniRoute għat-tieqa tal-kuntest u l-għadd massimu ta' tokens tal-input għal talbiet diretti lil mudell wieħed. Il-fornituri upstream xorta jinfurzaw il-limiti effettivi tagħhom. Il-kompressjoni tal-prompt u l-limiti tat-tokens tal-output jibqgħu attivi.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "L-istatistika tat-tiftix u t-tiftix reċenti jgħoddu biss il-fornituri li għad għandhom konnessjoni attiva (fornituri mingħajr ċavetta bħal duckduckgo-free dejjem jingħaddu). Meta jkun mitfi, jinżammu r-ringieli kollha tat-tiftix li jkunu ġew miżmuma u li jkollhom ID tal-fornitur.", "publicSystem": { diff --git a/src/i18n/messages/my.json b/src/i18n/messages/my.json index 77cdc10e937..7f1d166bdbf 100644 --- a/src/i18n/messages/my.json +++ b/src/i18n/messages/my.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ပစ်မှတ်မော်ဒယ်တွင် လိုအပ်သော စွမ်းဆောင်ရည်များ (အမြင်၊ ကိရိယာများ၊ ဖွဲ့စည်းပုံကျ အထွက်၊ ကွန်တက်စ်ဝင်းဒိုး) မရှိပါက ဖြန့်ပို့ခြင်းမပြုမီ တောင်းဆိုမှုများကို ပယ်ချပါ။ ၎င်းသည် combo-layer လိုက်ဖက်ညီမှု စစ်ထုတ်မှုကို ကျော်လွှားသော တစ်ခုတည်းသောပံ့ပိုးသူထံ တိုက်ရိုက်တောင်းဆိုမှုများကို ကာကွယ်ပေးသည်။", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ခွဲတမ်းကျော်လွန်သွားသည်ဟု သတ်မှတ်မည့်အစား ဈေးနှုန်းမရှိသော မော်ဒယ်များ၏ အသုံးပြုမှုကို key တစ်ခုချင်းစီအတွက် USD အသုံးပြုမှု ခွဲတမ်းများတွင် $0 အဖြစ် သတ်မှတ်ပါ။ ပုံသေအားဖြင့် ပိတ်ထားသည်: ဈေးနှုန်းမသတ်မှတ်ထားသော မော်ဒယ် သို့မဟုတ် လမ်းကြောင်းသတ်မှတ်ခြင်း အမည်လွှဲသည် အမှန်တကယ် သုံးစွဲငွေကို ဖုံးကွယ်ထားနိုင်သောကြောင့် ခွဲတမ်းသည် လုံခြုံရေးအရ ပိတ်ဆို့၍ မအောင်မြင်ခြင်း ဖြစ်စေသည်။", "featureFlagDisableContextWindowChecksDescription": "တစ်ခုတည်းသောမော်ဒယ်ထံ တိုက်ရိုက်တောင်းဆိုမှုများအတွက် OmniRoute ၏ စက်တွင်း ကွန်တက်စ်ဝင်းဒိုးနှင့် အများဆုံးထည့်သွင်းတိုကင် စစ်ဆေးမှုကို ကျော်ပါ။ အထက်ပိုင်းဝန်ဆောင်မှုပေးသူများက ၎င်းတို့၏ အမှန်တကယ်ကန့်သတ်ချက်များကို ဆက်လက်အတည်ပြုကျင့်သုံးမည်ဖြစ်သည်။ ပရောမ့်ချုံ့ခြင်းနှင့် အထွက်တိုကင် အများဆုံးကန့်သတ်ချက်များမှာ ဆက်လက်အသက်ဝင်နေမည်ဖြစ်သည်။", "featureFlagSearchStatsHideDeletedConnectionsDescription": "ရှာဖွေမှုစာရင်းအင်းများနှင့် မကြာသေးမီက ရှာဖွေမှုများတွင် လက်ရှိချိတ်ဆက်မှုရှိနေသေးသော ဝန်ဆောင်မှုပေးသူများကိုသာ ထည့်သွင်းရေတွက်သည် (duckduckgo-free ကဲ့သို့ သော့မလိုသော ဝန်ဆောင်မှုပေးသူများကို အမြဲရေတွက်သည်)။ ပိတ်ထားပါက ထိန်းသိမ်းထားသော ရှာဖွေမှုအတန်းတိုင်းကို ဝန်ဆောင်မှုပေးသူ ID နှင့်အတူ ဆက်လက်ထားရှိသည်။", "publicSystem": { diff --git a/src/i18n/messages/ne.json b/src/i18n/messages/ne.json index c2be9c00f81..0a20a2c1776 100644 --- a/src/i18n/messages/ne.json +++ b/src/i18n/messages/ne.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "लक्षित मोडेलमा आवश्यक क्षमताहरू (भिजन, उपकरणहरू, संरचित आउटपुट, कन्टेक्स्ट विन्डो) नभएमा डिस्प्याच गर्नुअघि अनुरोधहरू अस्वीकार गर्नुहोस्। यसले कम्बो-लेयरको अनुकूलता फिल्टरलाई बाइपास गर्ने प्रत्यक्ष एकल-प्रदायक अनुरोधहरूलाई सुरक्षित गर्छ।", + "featureFlagUsageLimitIgnoreUnpricedDescription": "कोटा नाघेको मान्नुको सट्टा प्रति-कुञ्जी USD प्रयोग कोटामा मूल्य नभएका मोडेलहरूको प्रयोगलाई $0 का रूपमा गणना गर्नुहोस्। पूर्वनिर्धारित रूपमा बन्द: मूल्य नभएको मोडेल वा राउटिङ उपनामले वास्तविक खर्च लुकाउन सक्छ, त्यसैले कोटा fail-closed हुन्छ।", "featureFlagDisableContextWindowChecksDescription": "प्रत्यक्ष एकल-मोडेल अनुरोधहरूका लागि OmniRoute को स्थानीय कन्टेक्स्ट-विन्डो र अधिकतम-इनपुट-टोकन जाँच छोड्नुहोस्। अपस्ट्रिम प्रदायकहरूले अझै पनि आफ्ना वास्तविक सीमाहरू लागू गर्छन्। प्रम्प्ट कम्प्रेसन र आउटपुट-टोकन सीमाहरू सक्रिय रहन्छन्।", "featureFlagSearchStatsHideDeletedConnectionsDescription": "खोज तथ्याङ्क र हालैका खोजहरूले अझै सक्रिय जडान भएका प्रदायकहरूलाई मात्र गणना गर्छन् (duckduckgo-free जस्ता कुञ्जीरहित प्रदायकहरू सधैँ गणना हुन्छन्)। बन्द गर्दा प्रदायक ID भएका सुरक्षित राखिएका सबै खोज पङ्क्तिहरू कायम रहन्छन्।", "publicSystem": { diff --git a/src/i18n/messages/nl.json b/src/i18n/messages/nl.json index 43ce93b832b..cef3e54e8b3 100644 --- a/src/i18n/messages/nl.json +++ b/src/i18n/messages/nl.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Weiger verzoeken vóór verzending wanneer het doellmodel ontbrekende vereiste mogelijkheden heeft (zicht, tools, gestructureerde output, contextvenster). Beschermt directe verzoeken van een enkele aanbieder die de compatibiliteitsfilter van de comb-laag omzeilen.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Tel het gebruik van modellen zonder prijs als $0 in USD-gebruiksquota per sleutel in plaats van het quotum als overschreden te beschouwen. Standaard uitgeschakeld: een model zonder prijs of een routeringsalias kan werkelijke uitgaven verbergen, waardoor het quotum fail-closed gaat.", "featureFlagDisableContextWindowChecksDescription": "Sla de lokale controle van OmniRoute op het contextvenster en het maximale aantal invoertokens over voor rechtstreekse verzoeken aan één model. Upstreamproviders blijven hun daadwerkelijke limieten afdwingen. Promptcompressie en limieten voor uitvoertokens blijven actief.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Zoekstatistieken en recente zoekopdrachten tellen alleen providers mee die nog een actieve verbinding hebben (providers zonder sleutel, zoals duckduckgo-free, tellen altijd mee). Als deze optie is uitgeschakeld, blijven alle bewaarde zoekrijen met een provider-id behouden.", "publicSystem": { diff --git a/src/i18n/messages/no.json b/src/i18n/messages/no.json index 17b73bf8a7e..3d02ec34c5c 100644 --- a/src/i18n/messages/no.json +++ b/src/i18n/messages/no.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Avvis forespørselene før utsendelse når målmodellen mangler nødvendige funksjoner (visjon, verktøy, strukturert utdata, kontekstvindu). Beskytter direkte forespørseler fra enkeltleverandører som omgår kombinasjonslagets kompatibilitetsfilter.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Tell bruk av modeller som ikke har noen pris som $0 i USD-brukskvoter per nøkkel i stedet for å behandle kvoten som overskredet. Av som standard: en modell uten pris eller et rutingsalias kan skjule faktisk forbruk, så kvoten feiler lukket.", "featureFlagDisableContextWindowChecksDescription": "Hopp over OmniRoutes lokale kontroll av kontekstvindu og maksimalt antall inndatatokener for direkte forespørsler til én enkelt modell. Oppstrømsleverandører håndhever fortsatt sine faktiske grenser. Komprimering av ledetekster og grenser for utdatatokener forblir aktive.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Søkestatistikk og nylige søk teller bare leverandører som fortsatt har en aktiv tilkobling (leverandører uten nøkkel, som duckduckgo-free, teller alltid). Når funksjonen er av, beholdes alle lagrede søkerader med en leverandør-ID.", "publicSystem": { diff --git a/src/i18n/messages/or.json b/src/i18n/messages/or.json index f1cd2b5c182..411634f804a 100644 --- a/src/i18n/messages/or.json +++ b/src/i18n/messages/or.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ଲକ୍ଷ୍ୟ ମଡେଲ୍ରେ ଆବଶ୍ୟକ କ୍ଷମତାଗୁଡ଼ିକ (ଭିଜନ୍, ଟୁଲ୍, ଷ୍ଟ୍ରକ୍ଚର୍ଡ ଆଉଟପୁଟ୍, କଣ୍ଟେକ୍ସ୍ଟ ୱିଣ୍ଡୋ) ନଥିଲେ ଡିସ୍ପାଚ୍ ପୂର୍ବରୁ ଅନୁରୋଧଗୁଡ଼ିକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରନ୍ତୁ। ଏହା କମ୍ବୋ-ଲେୟର୍ ସୁସଙ୍ଗତତା ଫିଲ୍ଟର୍କୁ ବାଇପାସ୍ କରୁଥିବା ସିଧାସଳଖ ଏକକ-ପ୍ରଦାନକାରୀ ଅନୁରୋଧଗୁଡ଼ିକୁ ସୁରକ୍ଷିତ କରେ।", + "featureFlagUsageLimitIgnoreUnpricedDescription": "କୋଟା ଅତିକ୍ରାନ୍ତ ହୋଇଥିବା ଭାବେ ଧରିବା ପରିବର୍ତ୍ତେ ପ୍ରତି-କୀ USD ବ୍ୟବହାର କୋଟାରେ ମୂଲ୍ୟ ନଥିବା ମଡେଲଗୁଡ଼ିକର ବ୍ୟବହାରକୁ $0 ଭାବେ ଗଣନା କରନ୍ତୁ। ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ: ମୂଲ୍ୟ ନଥିବା ଏକ ମଡେଲ୍ କିମ୍ବା ରାଉଟିଂ ଉପନାମ ପ୍ରକୃତ ଖର୍ଚ୍ଚକୁ ଲୁଚାଇ ପାରେ, ତେଣୁ କୋଟା ସୁରକ୍ଷାମୂଳକ ଭାବେ ଅବରୋଧ ହୁଏ।", "featureFlagDisableContextWindowChecksDescription": "ସିଧାସଳଖ ଏକକ-ମଡେଲ୍ ଅନୁରୋଧଗୁଡ଼ିକ ପାଇଁ OmniRouteର ସ୍ଥାନୀୟ କଣ୍ଟେକ୍ସ୍ଟ-ୱିଣ୍ଡୋ ଏବଂ ସର୍ବାଧିକ-ଇନପୁଟ୍-ଟୋକନ୍ ଯାଞ୍ଚକୁ ଏଡ଼ାନ୍ତୁ। ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରଦାନକାରୀମାନେ ତଥାପି ସେମାନଙ୍କର ପ୍ରକୃତ ସୀମାଗୁଡ଼ିକୁ ଲାଗୁ କରିବେ। ପ୍ରମ୍ପ୍ଟ କମ୍ପ୍ରେସନ୍ ଏବଂ ଆଉଟପୁଟ୍-ଟୋକନ୍ ସୀମା ସକ୍ରିୟ ରହିବ।", "featureFlagSearchStatsHideDeletedConnectionsDescription": "ସନ୍ଧାନ ପରିସଂଖ୍ୟାନ ଏବଂ ସାମ୍ପ୍ରତିକ ସନ୍ଧାନଗୁଡ଼ିକରେ କେବଳ ସେହି ପ୍ରଦାନକାରୀମାନଙ୍କୁ ଗଣନା କରାଯାଏ ଯେଉଁମାନଙ୍କର ସଂଯୋଗ ଏବେ ବି ସକ୍ରିୟ ଅଛି (duckduckgo-free ପରି କୀ-ବିହୀନ ପ୍ରଦାନକାରୀମାନଙ୍କୁ ସବୁବେଳେ ଗଣନା କରାଯାଏ)। ଏହା ବନ୍ଦ ଥିଲେ, ପ୍ରଦାନକାରୀ ଆଇଡି ଥିବା ପ୍ରତ୍ୟେକ ସଂରକ୍ଷିତ ସନ୍ଧାନ ଧାଡ଼ିକୁ ରଖାଯାଏ।", "publicSystem": { diff --git a/src/i18n/messages/pa.json b/src/i18n/messages/pa.json index fb7c41404bf..2d9f96a5b85 100644 --- a/src/i18n/messages/pa.json +++ b/src/i18n/messages/pa.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ਜਦੋਂ ਟਾਰਗੇਟ ਮਾਡਲ ਵਿੱਚ ਲੋੜੀਂਦੀਆਂ ਸਮਰੱਥਾਵਾਂ (ਵਿਜ਼ਨ, ਟੂਲ, ਸਟ੍ਰਕਚਰਡ ਆਉਟਪੁੱਟ, ਕਾਂਟੈਕਸਟ ਵਿੰਡੋ) ਨਾ ਹੋਣ, ਤਾਂ ਡਿਸਪੈਚ ਤੋਂ ਪਹਿਲਾਂ ਬੇਨਤੀਆਂ ਅਸਵੀਕਾਰ ਕਰੋ। ਇਹ ਉਹਨਾਂ ਸਿੱਧੀਆਂ ਸਿੰਗਲ-ਪ੍ਰੋਵਾਈਡਰ ਬੇਨਤੀਆਂ ਦੀ ਸੁਰੱਖਿਆ ਕਰਦਾ ਹੈ ਜੋ ਕੌਂਬੋ-ਲੇਅਰ ਅਨੁਕੂਲਤਾ ਫਿਲਟਰ ਨੂੰ ਬਾਈਪਾਸ ਕਰਦੀਆਂ ਹਨ।", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ਕੋਟਾ ਸੀਮਾ ਤੋਂ ਵੱਧ ਮੰਨਣ ਦੀ ਬਜਾਏ ਪ੍ਰਤੀ-ਕੁੰਜੀ USD ਵਰਤੋਂ ਕੋਟੇ ਵਿੱਚ ਬਿਨਾਂ ਕੀਮਤ ਵਾਲੇ ਮਾਡਲਾਂ ਦੀ ਵਰਤੋਂ ਨੂੰ $0 ਵਜੋਂ ਗਿਣੋ। ਮੂਲ ਰੂਪ ਵਿੱਚ ਬੰਦ: ਬਿਨਾਂ ਕੀਮਤ ਵਾਲਾ ਮਾਡਲ ਜਾਂ ਰੂਟਿੰਗ ਉਪਨਾਮ ਅਸਲ ਖਰਚ ਨੂੰ ਛੁਪਾ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਕੋਟਾ ਫੇਲ-ਕਲੋਜ਼ਡ ਹੁੰਦਾ ਹੈ।", "featureFlagDisableContextWindowChecksDescription": "ਸਿੱਧੀਆਂ ਸਿੰਗਲ-ਮਾਡਲ ਬੇਨਤੀਆਂ ਲਈ OmniRoute ਦੀ ਸਥਾਨਕ ਕਾਂਟੈਕਸਟ-ਵਿੰਡੋ ਅਤੇ ਅਧਿਕਤਮ-ਇਨਪੁੱਟ-ਟੋਕਨ ਜਾਂਚ ਨੂੰ ਛੱਡੋ। ਅੱਪਸਟ੍ਰੀਮ ਪ੍ਰੋਵਾਈਡਰ ਫਿਰ ਵੀ ਆਪਣੀਆਂ ਅਸਲ ਸੀਮਾਵਾਂ ਲਾਗੂ ਕਰਦੇ ਹਨ। ਪ੍ਰੌਂਪਟ ਕੰਪ੍ਰੈਸ਼ਨ ਅਤੇ ਆਉਟਪੁੱਟ-ਟੋਕਨ ਸੀਮਾਵਾਂ ਸਰਗਰਮ ਰਹਿੰਦੀਆਂ ਹਨ।", "featureFlagSearchStatsHideDeletedConnectionsDescription": "ਖੋਜ ਅੰਕੜੇ ਅਤੇ ਹਾਲੀਆ ਖੋਜਾਂ ਸਿਰਫ਼ ਉਹਨਾਂ ਪ੍ਰਦਾਤਾਵਾਂ ਨੂੰ ਗਿਣਦੀਆਂ ਹਨ ਜਿਨ੍ਹਾਂ ਦਾ ਕਨੈਕਸ਼ਨ ਅਜੇ ਵੀ ਸਰਗਰਮ ਹੈ (ਕੁੰਜੀ-ਰਹਿਤ ਪ੍ਰਦਾਤਾ, ਜਿਵੇਂ ਕਿ duckduckgo-free, ਹਮੇਸ਼ਾ ਗਿਣੇ ਜਾਂਦੇ ਹਨ)। ਬੰਦ ਕਰਨ ਨਾਲ ਪ੍ਰਦਾਤਾ ID ਵਾਲੀ ਹਰ ਸੰਭਾਲੀ ਹੋਈ ਖੋਜ ਕਤਾਰ ਬਰਕਰਾਰ ਰਹਿੰਦੀ ਹੈ।", "publicSystem": { diff --git a/src/i18n/messages/phi.json b/src/i18n/messages/phi.json index 0020f221626..279dedd99c0 100644 --- a/src/i18n/messages/phi.json +++ b/src/i18n/messages/phi.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Tanggihan ang mga kahilingan bago ang pagpapadala kapag ang target na modelo ay kulang sa mga kinakailangang kakayahan (paningin, mga tool, nakabalangkas na output, bintana ng konteksto). Pinoprotektahan ang mga direktang kahilingan mula sa isang tagapagbigay na lumalampas sa filter ng pagiging tugma ng combo-layer.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Bilangin ang paggamit ng mga modelong walang presyo bilang $0 sa mga quota sa paggamit ng USD bawat key sa halip na ituring na lumampas na sa quota. Naka-off bilang default: ang isang modelong walang presyo o routing alias ay maaaring magtago ng tunay na nagastos, kaya nagfe-fail closed ang quota.", "featureFlagDisableContextWindowChecksDescription": "Laktawan ang lokal na pagsusuri ng OmniRoute sa context window at maximum na input token para sa mga direktang kahilingan sa iisang modelo. Ipinapatupad pa rin ng mga upstream provider ang kanilang aktuwal na limitasyon. Nananatiling aktibo ang prompt compression at mga limitasyon sa output token.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Binibilang lamang ng mga estadistika sa paghahanap at mga kamakailang paghahanap ang mga provider na mayroon pa ring aktibong koneksyon (palaging binibilang ang mga provider na walang susi gaya ng duckduckgo-free). Kapag naka-off, pinapanatili ang bawat nakaimbak na hilera ng paghahanap na may provider id.", "publicSystem": { diff --git a/src/i18n/messages/pl.json b/src/i18n/messages/pl.json index a2c916588e7..15559573f96 100644 --- a/src/i18n/messages/pl.json +++ b/src/i18n/messages/pl.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Odrzuć żądania przed wysyłką, gdy docelowy model nie ma wymaganych możliwości (wizja, narzędzia, strukturalne wyjście, okno kontekstowe). Chroni bezpośrednie żądania od pojedynczego dostawcy, które omijają filtr zgodności warstwy kombinacyjnej.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Licz użycie modeli bez określonej ceny jako $0 w limitach użycia w USD na klucz, zamiast traktować limit jako przekroczony. Domyślnie wyłączone: model bez ceny lub alias routingu może ukryć rzeczywiste wydatki, dlatego limit blokuje dostęp (fail-closed).", "featureFlagDisableContextWindowChecksDescription": "Pomiń lokalne sprawdzanie przez OmniRoute rozmiaru okna kontekstu i maksymalnej liczby tokenów wejściowych dla bezpośrednich żądań kierowanych do jednego modelu. Dostawcy nadrzędni nadal egzekwują swoje rzeczywiste limity. Kompresja promptów i limity tokenów wyjściowych pozostają aktywne.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statystyki wyszukiwania i ostatnie wyszukiwania uwzględniają tylko dostawców, którzy nadal mają aktywne połączenie (dostawcy niewymagający klucza, tacy jak duckduckgo-free, są uwzględniani zawsze). Wyłączenie tej opcji zachowuje każdy przechowywany wpis wyszukiwania z identyfikatorem dostawcy.", "publicSystem": { diff --git a/src/i18n/messages/pt-BR.json b/src/i18n/messages/pt-BR.json index 3d8c08e8beb..8cb52e37f27 100644 --- a/src/i18n/messages/pt-BR.json +++ b/src/i18n/messages/pt-BR.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Rejeitar requisições antes do despacho quando o modelo alvo nao possui as capacidades necessarias (visao, ferramentas, saída estruturada, janela de contexto). Protege requisições diretas que ignoram o filtro de compatibilidade do combo.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Contar o uso de modelos sem preço como $0 nas cotas de uso em USD por chave, em vez de tratar a cota como excedida. Desativado por padrão: um modelo sem preço ou alias de roteamento pode ocultar o gasto real, fazendo com que a cota falhe fechada.", "featureFlagDisableContextWindowChecksDescription": "Ignora a verificação local do OmniRoute para janela de contexto e limite máximo de tokens de entrada em solicitações diretas a um único modelo. Os provedores upstream continuam aplicando seus limites reais. A compactação de prompts e os limites de tokens de saída permanecem ativos.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "As estatísticas de pesquisa e as pesquisas recentes contabilizam apenas os provedores que ainda têm uma conexão ativa (provedores sem chave, como duckduckgo-free, são sempre contabilizados). A opção Desativado mantém todas as linhas de pesquisa retidas com um ID de provedor.", "publicSystem": { diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json index 25985120f28..b6e09f9b509 100644 --- a/src/i18n/messages/pt.json +++ b/src/i18n/messages/pt.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Rejeitar pedidos antes do envio quando o modelo de destino não tiver as capacidades necessárias (visão, ferramentas, saída estruturada, janela de contexto). Protege pedidos diretos de um único fornecedor que contornam o filtro de compatibilidade da camada combinada.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Contar a utilização de modelos sem preço como $0 nas quotas de utilização em USD por chave, em vez de tratar a quota como excedida. Desativado por predefinição: um modelo sem preço ou alias de encaminhamento pode ocultar o gasto real, pelo que a quota falha fechada.", "featureFlagDisableContextWindowChecksDescription": "Ignorar a verificação local do OmniRoute relativa à janela de contexto e ao número máximo de tokens de entrada para pedidos diretos de um único modelo. Os fornecedores a montante continuam a aplicar os respetivos limites reais. A compressão de prompts e os limites de tokens de saída permanecem ativos.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "As estatísticas de pesquisa e as pesquisas recentes só contabilizam fornecedores que ainda tenham uma ligação ativa (os fornecedores sem chave, como duckduckgo-free, são sempre contabilizados). A opção Desativado mantém todas as linhas de pesquisa retidas com um ID de fornecedor.", "publicSystem": { diff --git a/src/i18n/messages/ro.json b/src/i18n/messages/ro.json index 8a8a6da4b6e..c7d90209925 100644 --- a/src/i18n/messages/ro.json +++ b/src/i18n/messages/ro.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Respinge cererile înainte de expediere atunci când modelul țintă nu are capabilitățile necesare (viziune, instrumente, ieșire structurată, fereastră de context). Protejează cererile directe de un singur furnizor care ocolesc filtrul de compatibilitate al stratului combinat.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Contorizează utilizarea modelelor fără preț ca $0 în cotele de utilizare USD per cheie în loc să trateze cota ca fiind depășită. Dezactivat în mod implicit: un model fără preț sau un alias de dirijare poate ascunde cheltuielile reale, astfel încât cota eșuează în mod închis.", "featureFlagDisableContextWindowChecksDescription": "Omite verificarea locală OmniRoute privind fereastra de context și numărul maxim de tokenuri de intrare pentru solicitările directe către un singur model. Furnizorii din amonte își aplică în continuare limitele reale. Comprimarea promptului și limitele pentru tokenurile de ieșire rămân active.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statisticile căutărilor și căutările recente iau în calcul doar furnizorii care au încă o conexiune activă (furnizorii fără cheie, precum duckduckgo-free, sunt luați întotdeauna în calcul). Opțiunea Oprit păstrează fiecare rând de căutare salvat care are un ID de furnizor.", "publicSystem": { diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json index ddc9529dc29..b4301374695 100644 --- a/src/i18n/messages/ru.json +++ b/src/i18n/messages/ru.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Отклонять запросы перед отправкой, когда целевая модель не имеет необходимых возможностей (визуализация, инструменты, структурированный вывод, контекстное окно). Защищает прямые запросы от единственного поставщика, которые обходят фильтр совместимости комбинированного слоя.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Учитывать использование моделей без цены как $0 в квотах использования в USD для каждого ключа вместо того, чтобы считать квоту превышенной. Отключено по умолчанию: модель без цены или псевдоним маршрутизации могут скрыть реальные расходы, поэтому квота блокируется при сбое (fail-closed).", "featureFlagDisableContextWindowChecksDescription": "Пропускать локальную проверку размера контекстного окна и максимального количества входных токенов в OmniRoute для прямых запросов к одной модели. Провайдеры по-прежнему применяют свои фактические ограничения. Сжатие промпта и ограничения количества выходных токенов остаются активными.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Статистика поиска и недавние поисковые запросы учитывают только провайдеров, с которыми всё ещё установлено активное соединение (провайдеры без ключей, такие как duckduckgo-free, учитываются всегда). При выборе «Выкл.» сохраняются все сохранённые строки поиска с идентификатором провайдера.", "publicSystem": { diff --git a/src/i18n/messages/si.json b/src/i18n/messages/si.json index 4c678a3d13c..2c14076a7ca 100644 --- a/src/i18n/messages/si.json +++ b/src/i18n/messages/si.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ඉලක්ක මාදිලියට අවශ්ය හැකියාවන් (දෘශ්ය, මෙවලම්, ව්යුහගත ප්රතිදානය, සන්දර්භ කවුළුව) නොමැති විට යැවීමට පෙර ඉල්ලීම් ප්රතික්ෂේප කරන්න. මෙය සංයෝජන-ස්තර අනුකූලතා පෙරහන මඟහරින සෘජු තනි-සැපයුම්කරු ඉල්ලීම් ආරක්ෂා කරයි.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "කෝටාව ඉක්මවා ඇති බවට සැලකීම වෙනුවට, එක් එක් යතුර සඳහා වන USD භාවිත කෝටාවන්හි මිලක් නොමැති මාදිලිවල භාවිතය $0 ලෙස ගණන් කරන්න. පෙරනිමියෙන් අක්රියයි: මිල නියම නොකළ මාදිලියක් හෝ මාර්ගගත කිරීමේ අන්වර්ථ නාමයක් මඟින් සැබෑ වියදම සැඟවිය හැකි බැවින්, කෝටාව පෙරනිමියෙන් අවහිර වී අසාර්ථක වේ.", "featureFlagDisableContextWindowChecksDescription": "සෘජු තනි-මාදිලි ඉල්ලීම් සඳහා OmniRoute හි දේශීය සන්දර්භ-කවුළු සහ උපරිම-ආදාන-ටෝකන පරීක්ෂාව මඟහරින්න. උඩුගං සැපයුම්කරුවන් තවමත් ඔවුන්ගේ සැබෑ සීමාවන් බලාත්මක කරයි. ප්රේරක සම්පීඩනය සහ ප්රතිදාන-ටෝකන සීමා සක්රියව පවතී.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "සෙවුම් සංඛ්යාලේඛන සහ මෑත සෙවුම් සඳහා ගණනය කරනු ලබන්නේ තවමත් සක්රිය සම්බන්ධතාවක් ඇති සැපයුම්කරුවන් පමණි (duckduckgo-free වැනි යතුරු රහිත සැපයුම්කරුවන් සැමවිටම ගණනය කෙරේ). අක්රිය කළ විට, සැපයුම්කරුගේ හැඳුනුම්කාරකයක් සහිත රඳවාගත් සෑම සෙවුම් පේළියක්ම තබා ගනී.", "publicSystem": { diff --git a/src/i18n/messages/sk.json b/src/i18n/messages/sk.json index 6af8edb81c2..ad5f6ed84d3 100644 --- a/src/i18n/messages/sk.json +++ b/src/i18n/messages/sk.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Zamietnuť požiadavky pred odoslaním, keď cieľový model postráda požadované schopnosti (vízia, nástroje, štruktúrovaný výstup, kontextové okno). Chráni priamu požiadavku od jedného poskytovateľa, ktorá obchádza filter kompatibility kombinovanej vrstvy.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Započítavať využitie modelov bez stanovenej ceny ako $0 v kvótach využitia v USD na kľúč namiesto toho, aby sa kvóta považovala za prekročenú. Predvolene vypnuté: model bez ceny alebo alias smerovania môže skryť skutočné výdavky, takže kvóta zlyhá v uzatvorenom stave.", "featureFlagDisableContextWindowChecksDescription": "Pri priamych požiadavkách na jeden model preskočiť lokálnu kontrolu kontextového okna a maximálneho počtu vstupných tokenov v OmniRoute. Poskytovatelia vyššej úrovne naďalej uplatňujú svoje skutočné limity. Kompresia výzvy a limity výstupných tokenov zostávajú aktívne.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Štatistiky vyhľadávania a nedávne vyhľadávania počítajú iba poskytovateľov, ktorí majú stále aktívne pripojenie (poskytovatelia bez kľúča, ako napríklad duckduckgo-free, sa počítajú vždy). Pri možnosti Vypnuté sa zachová každý uchovaný riadok vyhľadávania s ID poskytovateľa.", "publicSystem": { diff --git a/src/i18n/messages/sl.json b/src/i18n/messages/sl.json index d1612456d46..1806da3a49f 100644 --- a/src/i18n/messages/sl.json +++ b/src/i18n/messages/sl.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Zavrni zahteve pred posredovanjem, ko ciljni model nima zahtevanih zmogljivosti (slikovni vhod, orodja, strukturiran izhod, kontekstno okno). Ščiti neposredne zahteve za enega ponudnika, ki obidejo filter združljivosti kombinacijskega sloja.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Štejte porabo modelov brez določene cene kot $0 v kvotah porabe v USD na ključ, namesto da se kvota obravnava kot presežena. Privzeto je izklopljeno: model brez cene ali usmerjevalni vzdevek lahko skrije dejansko porabo, zato kvota ob napaki zavrne zahteve.", "featureFlagDisableContextWindowChecksDescription": "Preskoči lokalno preverjanje kontekstnega okna in največjega števila vhodnih žetonov v OmniRoute za neposredne zahteve za posamezen model. Ponudniki v zaledju še vedno uveljavljajo svoje dejanske omejitve. Stiskanje pozivov in omejitve izhodnih žetonov ostanejo aktivni.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statistika iskanja in nedavna iskanja upoštevajo samo ponudnike, ki imajo še vedno aktivno povezavo (ponudniki brez ključa, kot je duckduckgo-free, se vedno upoštevajo). Možnost Izklopljeno ohrani vse shranjene vrstice iskanja z ID-jem ponudnika.", "publicSystem": { diff --git a/src/i18n/messages/sr.json b/src/i18n/messages/sr.json index 844a77eee52..abe3fd8e746 100644 --- a/src/i18n/messages/sr.json +++ b/src/i18n/messages/sr.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Одбиј захтеве пре слања када циљни модел не поседује потребне могућности (визуелни унос, алати, структурирани излаз, контекстни прозор). Штити директне захтеве ка појединачном добављачу који заобилазе филтер компатибилности комбо-слоја.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Рачунај коришћење модела који немају цену као $0 у USD квотама коришћења по кључу уместо да се квота третира као прекорачена. Подразумевано је искључено: модел без цене или алијас рутирања може сакрити стварну потрошњу, па квота подразумевано блокира захтеве.", "featureFlagDisableContextWindowChecksDescription": "Прескочи локалну проверу контекстног прозора и максималног броја улазних токена OmniRoute-а за директне захтеве ка појединачном моделу. Добављачи услуга и даље примењују своја стварна ограничења. Компресија упита и ограничења излазних токена остају активни.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Статистика претраге и недавне претраге рачунају само добављаче који и даље имају активну везу (добављачи без кључа, као што је duckduckgo-free, увек се рачунају). Искључивањем се задржава сваки сачувани ред претраге са ID-ом добављача.", "publicSystem": { diff --git a/src/i18n/messages/sv.json b/src/i18n/messages/sv.json index 53f2c7c4524..f2f3a0665c9 100644 --- a/src/i18n/messages/sv.json +++ b/src/i18n/messages/sv.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Avvisa förfrågningar innan de skickas när målmodellen saknar nödvändiga funktioner (vision, verktyg, strukturerad utdata, kontextfönster). Skyddar direkta förfrågningar från en enda leverantör som kringgår kompatibilitetsfiltret för kombinationslager.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Räkna användning av modeller som saknar pris som $0 i USD-användningskvoter per nyckel istället för att behandla kvoten som överskriden. Av som standard: en modell utan pris eller ett routningsalias kan dölja faktiska kostnader, så kvoten blockeras vid fel.", "featureFlagDisableContextWindowChecksDescription": "Hoppa över OmniRoutes lokala kontroll av kontextfönster och maximalt antal indatatoken för direkta förfrågningar till en enskild modell. Uppströmsleverantörer tillämpar fortfarande sina faktiska gränser. Promptkomprimering och gränser för utdatatoken förblir aktiva.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Sökstatistik och senaste sökningar räknar endast leverantörer som fortfarande har en aktiv anslutning (nyckellösa leverantörer som duckduckgo-free räknas alltid). När funktionen är avstängd behålls varje sparad sökrad med ett leverantörs-ID.", "publicSystem": { diff --git a/src/i18n/messages/sw.json b/src/i18n/messages/sw.json index ea8431aefb3..6f38d2b547a 100644 --- a/src/i18n/messages/sw.json +++ b/src/i18n/messages/sw.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "kataa maombi kabla ya kutuma wakati mfano wa lengo hauna uwezo unaohitajika (maono, zana, matokeo yaliyoandikwa, dirisha la muktadha). Inalinda maombi ya moja kwa moja kutoka kwa mtoa huduma mmoja ambayo yanapita chujio cha ulinganifu wa safu ya mchanganyiko.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Hesabu matumizi ya modeli zisizo na bei kama $0 katika viwango vya matumizi vya USD kwa kila ufunguo badala ya kuchukulia kuwa kiwango kimezidiwa. Imezimwa kwa chaguomsingi: modeli isiyo na bei au jina mbadala la uelekezaji inaweza kuficha matumizi halisi, hivyo kiwango hushindwa kikiwa kimefungwa.", "featureFlagDisableContextWindowChecksDescription": "Ruka ukaguzi wa ndani wa OmniRoute wa dirisha la muktadha na kiwango cha juu cha tokeni za ingizo kwa maombi ya moja kwa moja ya muundo mmoja. Watoa huduma wa nje bado hutekeleza vikomo vyao halisi. Mfinyazo wa kidokezo na vikomo vya tokeni za towe huendelea kutumika.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Takwimu za utafutaji na utafutaji wa hivi karibuni huhesabu tu watoa huduma ambao bado wana muunganisho unaotumika (watoa huduma wasiohitaji ufunguo kama vile duckduckgo-free huhesabiwa kila wakati). Hali ya Kuzima huhifadhi kila safu ya utafutaji iliyohifadhiwa yenye kitambulisho cha mtoa huduma.", "publicSystem": { diff --git a/src/i18n/messages/ta.json b/src/i18n/messages/ta.json index 962e445b406..659b6caa281 100644 --- a/src/i18n/messages/ta.json +++ b/src/i18n/messages/ta.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "விருப்பமான மாதிரி தேவையான திறன்களை (காணல், கருவிகள், கட்டமைக்கப்பட்ட வெளியீடு, சூழல் ஜன்னல்) இன்றி இருந்தால், அனுப்புவதற்கு முன் கோரிக்கைகளை நிராகரிக்கவும். கம்போ-லேயர் ஒத்திசைவு வடிகட்டியை தவிர்க்கும் நேரடி ஒற்றை வழங்குநர் கோரிக்கைகளை பாதுகாக்கிறது.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "ஒதுக்கீடு மீறப்பட்டதாகக் கருதுவதற்குப் பதிலாக, ஒவ்வொரு விசைக்குமான USD பயன்பாட்டு ஒதுக்கீடுகளில் விலையற்ற மாதிரிகளின் பயன்பாட்டை $0 ஆகக் கணக்கிடுங்கள். இயல்பாக முடக்கப்பட்டுள்ளது: விலையற்ற மாதிரி அல்லது வழித்தட மாற்றுப்பெயர் உண்மையான செலவை மறைக்கக்கூடும் என்பதால், ஒதுக்கீடு மூடப்பட்டு தோல்வியடைகிறது.", "featureFlagDisableContextWindowChecksDescription": "நேரடி ஒற்றை-மாடல் கோரிக்கைகளுக்கு OmniRoute-இன் உள்ளூர் சூழல்-சாளரம் மற்றும் அதிகபட்ச-உள்ளீட்டு-டோக்கன் சரிபார்ப்பைத் தவிர்க்கவும். மேல்நிலை வழங்குநர்கள் தங்களின் உண்மையான வரம்புகளைத் தொடர்ந்து அமல்படுத்துவார்கள். தூண்டுரை சுருக்கமும் வெளியீட்டு-டோக்கன் உச்சவரம்புகளும் செயலில் இருக்கும்.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "தேடல் புள்ளிவிவரங்களும் சமீபத்திய தேடல்களும் இன்னும் செயலிலுள்ள இணைப்பைக் கொண்ட வழங்குநர்களை மட்டுமே கணக்கிடும் (duckduckgo-free போன்ற விசையற்ற வழங்குநர்கள் எப்போதும் கணக்கிடப்படுவர்). முடக்கப்பட்ட நிலையில், வழங்குநர் id கொண்ட தக்கவைக்கப்பட்ட ஒவ்வொரு தேடல் வரிசையும் வைத்திருக்கப்படும்.", "publicSystem": { diff --git a/src/i18n/messages/te.json b/src/i18n/messages/te.json index 7653fa41216..a05be7123d9 100644 --- a/src/i18n/messages/te.json +++ b/src/i18n/messages/te.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ప్రయోజనాలు అవసరమైన సామర్థ్యాలు (దృష్టి, సాధనాలు, నిర్మిత అవుట్‌పుట్, సందర్భం విండో) లేని లక్ష్య మోడల్ ముందు పంపిణీకి అభ్యర్థనలను తిరస్కరించండి. కాంబో-లేయర్ అనుకూలత ఫిల్టర్‌ను దాటించే ప్రత్యక్ష సింగిల్-ప్రొవైడర్ అభ్యర్థనలను రక్షిస్తుంది.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "కోటా మించిపోయినట్లు పరిగణించకుండా, ప్రతి కీ USD వినియోగ కోటాలలో ధర లేని మోడళ్ల వినియోగాన్ని $0గా లెక్కించండి. డిఫాల్ట్‌గా ఆఫ్ చేయబడి ఉంటుంది: ధర లేని మోడల్ లేదా రూటింగ్ మారుపేరు నిజమైన ఖర్చును దాచవచ్చు, కాబట్టి కోటా ఫెయిల్ క్లోజ్ అవుతుంది.", "featureFlagDisableContextWindowChecksDescription": "నేరుగా పంపే సింగిల్-మోడల్ అభ్యర్థనల కోసం OmniRoute యొక్క స్థానిక కాంటెక్స్ట్-విండో మరియు గరిష్ఠ-ఇన్పుట్-టోకెన్ తనిఖీని దాటవేయండి. అప్స్ట్రీమ్ ప్రొవైడర్లు ఇప్పటికీ వారి వాస్తవ పరిమితులను అమలు చేస్తారు. ప్రాంప్ట్ కంప్రెషన్ మరియు అవుట్పుట్-టోకెన్ పరిమితులు సక్రియంగానే ఉంటాయి.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "శోధన గణాంకాలు మరియు ఇటీవలి శోధనలు ఇప్పటికీ సక్రియ కనెక్షన్ ఉన్న ప్రొవైడర్లను మాత్రమే లెక్కిస్తాయి (duckduckgo-free వంటి కీ అవసరం లేని ప్రొవైడర్లు ఎల్లప్పుడూ లెక్కించబడతారు). Off చేస్తే, provider id ఉన్న ప్రతి నిల్వ చేసిన శోధన వరుస అలాగే ఉంటుంది.", "publicSystem": { diff --git a/src/i18n/messages/th.json b/src/i18n/messages/th.json index abd469445c2..e8677c44036 100644 --- a/src/i18n/messages/th.json +++ b/src/i18n/messages/th.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "ปฏิเสธคำขอก่อนการส่งเมื่อโมเดลเป้าหมายขาดความสามารถที่จำเป็น (วิสัยทัศน์, เครื่องมือ, ผลลัพธ์ที่มีโครงสร้าง, หน้าต่างบริบท) ป้องกันคำขอจากผู้ให้บริการเดียวที่ข้ามตัวกรองความเข้ากันได้ของเลเยอร์รวม", + "featureFlagUsageLimitIgnoreUnpricedDescription": "นับการใช้งานโมเดลที่ไม่มีราคาเป็น $0 ในโควตาการใช้งาน USD ต่อคีย์ แทนที่จะถือว่าเกินโควตา ปิดใช้งานเป็นค่าเริ่มต้น: โมเดลที่ไม่มีการกำหนดราคาหรือนามแฝงการกำหนดเส้นทางอาจซ่อนค่าใช้จ่ายจริง ดังนั้นโควตาจึงล้มเหลวแบบปิดการทำงาน", "featureFlagDisableContextWindowChecksDescription": "ข้ามการตรวจสอบหน้าต่างบริบทและโทเค็นอินพุตสูงสุดภายในเครื่องของ OmniRoute สำหรับคำขอโดยตรงที่ใช้โมเดลเดียว ผู้ให้บริการต้นทางยังคงบังคับใช้ขีดจำกัดจริงของตน การบีบอัดพรอมต์และขีดจำกัดโทเค็นเอาต์พุตยังคงทำงานอยู่", "featureFlagSearchStatsHideDeletedConnectionsDescription": "สถิติการค้นหาและการค้นหาล่าสุดจะนับเฉพาะผู้ให้บริการที่ยังมีการเชื่อมต่อที่ใช้งานอยู่ (ผู้ให้บริการที่ไม่ต้องใช้คีย์ เช่น duckduckgo-free จะถูกนับเสมอ) เมื่อปิด ระบบจะนับแถวข้อมูลการค้นหาที่เก็บไว้ทุกรายการซึ่งมี ID ผู้ให้บริการ", "publicSystem": { diff --git a/src/i18n/messages/tr.json b/src/i18n/messages/tr.json index 882e41d651c..65e5aaf2df1 100644 --- a/src/i18n/messages/tr.json +++ b/src/i18n/messages/tr.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Hedef model gerekli yeteneklere (görüş, araçlar, yapılandırılmış çıktı, bağlam penceresi) sahip olmadığında, gönderimden önce istekleri reddedin. Kombinasyon katmanı uyumluluk filtresini atlayan doğrudan tek sağlayıcı isteklerini korur.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Kotanın aşıldığını varsaymak yerine, anahtar başına USD kullanım kotalarında fiyatı olmayan modellerin kullanımını $0 olarak sayın. Varsayılan olarak kapalıdır: fiyatlandırılmamış bir model veya yönlendirme takma adı gerçek harcamayı gizleyebilir, bu nedenle kota kapalı kalarak başarısız olur.", "featureFlagDisableContextWindowChecksDescription": "Doğrudan tek modelli istekler için OmniRoute'un yerel bağlam penceresi ve maksimum giriş tokeni denetimlerini atlayın. Üst sağlayıcılar kendi gerçek sınırlarını uygulamaya devam eder. İstem sıkıştırma ve çıkış tokeni sınırları etkin kalır.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Arama istatistikleri ve son aramalar yalnızca hâlâ etkin bağlantısı olan sağlayıcıları hesaba katar (duckduckgo-free gibi anahtarsız sağlayıcılar her zaman hesaba katılır). Bu seçenek kapalıyken, sağlayıcı kimliği olan tüm saklanan arama satırları korunur.", "publicSystem": { diff --git a/src/i18n/messages/uk-UA.json b/src/i18n/messages/uk-UA.json index ac8eb433c68..2a93559a6e0 100644 --- a/src/i18n/messages/uk-UA.json +++ b/src/i18n/messages/uk-UA.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Відхиляйте запити перед відправкою, коли цільова модель не має необхідних можливостей (зір, інструменти, структурований вихід, контекстне вікно). Захищає прямі запити від одного постачальника, які обходять фільтр сумісності комбінаційного шару.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Враховувати використання моделей без ціни як $0 у квотах використання в USD для кожного ключа замість того, щоб вважати квоту перевищеною. За замовчуванням вимкнено: модель без ціни або псевдонім маршрутизації можуть приховати реальні витрати, тому квота блокується (fail-closed).", "featureFlagDisableContextWindowChecksDescription": "Пропускати локальну перевірку контекстного вікна та максимальної кількості вхідних токенів OmniRoute для прямих запитів до однієї моделі. Зовнішні провайдери все одно застосовують свої фактичні обмеження. Стиснення запитів і ліміти вихідних токенів залишаються активними.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Статистика пошуку та нещодавні пошуки враховують лише провайдерів, які все ще мають активне підключення (провайдери без ключів, як-от duckduckgo-free, враховуються завжди). Якщо опцію вимкнено, враховується кожен збережений запис пошуку з ідентифікатором провайдера.", "publicSystem": { diff --git a/src/i18n/messages/ur.json b/src/i18n/messages/ur.json index bbe9a5c67ac..70b47412476 100644 --- a/src/i18n/messages/ur.json +++ b/src/i18n/messages/ur.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "جب ہدف ماڈل میں ضروری صلاحیتیں (نظریات، ٹولز، منظم آؤٹ پٹ، سیاق و سباق کی کھڑکی) نہیں ہوتیں تو بھیجنے سے پہلے درخواستوں کو مسترد کریں۔ یہ براہ راست واحد فراہم کنندہ کی درخواستوں کی حفاظت کرتا ہے جو کمبو-لیئر کی ہم آہنگی کے فلٹر کو نظر انداز کرتی ہیں۔", + "featureFlagUsageLimitIgnoreUnpricedDescription": "کوٹہ سے تجاوز سمجھنے کے بجائے، فی کلید USD استعمال کے کوٹوں میں بغیر قیمت والے ماڈلز کے استعمال کو $0 کے طور پر شمار کریں۔ ڈیفالٹ طور پر بند ہے: بغیر قیمت والا ماڈل یا روٹنگ عرفی نام حقیقی خرچ کو چھپا سکتا ہے، اس لیے کوٹہ فیل کلوزڈ ہو جاتا ہے۔", "featureFlagDisableContextWindowChecksDescription": "براہ راست واحد ماڈل کی درخواستوں کے لیے OmniRoute کی مقامی context-window اور max-input-token جانچ کو نظر انداز کریں۔ اپ اسٹریم فراہم کنندگان بدستور اپنی اصل حدود نافذ کرتے ہیں۔ Prompt compression اور output-token caps فعال رہتے ہیں۔", "featureFlagSearchStatsHideDeletedConnectionsDescription": "تلاش کے اعداد و شمار اور حالیہ تلاشوں میں صرف ان فراہم کنندگان کو شمار کیا جاتا ہے جن کا کنکشن اب بھی فعال ہو (بغیر کلید والے فراہم کنندگان، جیسے duckduckgo-free، ہمیشہ شمار ہوتے ہیں)۔ بند کرنے پر provider id والی ہر محفوظ کردہ تلاش کی قطار برقرار رہتی ہے۔", "publicSystem": { diff --git a/src/i18n/messages/uz.json b/src/i18n/messages/uz.json index 26f77b5e55f..4d7545879a4 100644 --- a/src/i18n/messages/uz.json +++ b/src/i18n/messages/uz.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Maqsadli modelda zarur imkoniyatlar (tasvirni koʻrish, vositalar, tuzilgan chiqish, kontekst oynasi) boʻlmasa, soʻrovlarni yuborishdan oldin rad eting. Bu kombinatsiya qatlamidagi moslik filtrini chetlab oʻtadigan yagona provayderga yoʻnaltirilgan bevosita soʻrovlarni himoya qiladi.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Kvotadan oshib ketgan deb hisoblash oʻrniga, har bir kalit boʻyicha USD sarf-xarajat kvotalarida narxi belgilanmagan modellardan foydalanishni $0 deb hisoblang. Standart holatda oʻchiq: narxlanmagan model yoki marshrutlash taxallusi haqiqiy xarajatni yashirishi mumkin, shuning uchun kvota yopiq holatda ishlamay qoladi.", "featureFlagDisableContextWindowChecksDescription": "Yagona modelga yoʻnaltirilgan bevosita soʻrovlar uchun OmniRoute'ning mahalliy kontekst oynasi va maksimal kirish tokenlari tekshiruvini oʻtkazib yuboring. Yuqori oqimdagi provayderlar oʻzlarining amaldagi cheklovlarini baribir qoʻllaydi. Promptni siqish va chiqish tokenlari cheklovlari faol qoladi.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Qidiruv statistikasi va soʻnggi qidiruvlarda faqat faol ulanishga ega provayderlar hisobga olinadi (duckduckgo-free kabi kalitsiz provayderlar har doim hisobga olinadi). Oʻchiq holatda provayder identifikatoriga ega barcha saqlab qolingan qidiruv qatorlari saqlanadi.", "publicSystem": { diff --git a/src/i18n/messages/vi.json b/src/i18n/messages/vi.json index b84f89747bd..9fe078bc574 100644 --- a/src/i18n/messages/vi.json +++ b/src/i18n/messages/vi.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Từ chối yêu cầu trước khi gửi đi khi mô hình đích thiếu các khả năng bắt buộc (thị giác, công cụ, đầu ra có cấu trúc, cửa sổ ngữ cảnh). Bảo vệ các yêu cầu trực tiếp đến một nhà cung cấp khi chúng bỏ qua bộ lọc tương thích của combo.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Tính mức sử dụng của các mô hình không có giá là $0 trong hạn ngạch sử dụng USD cho mỗi khóa thay vì coi hạn ngạch đã bị vượt quá. Mặc định tắt: một mô hình chưa định giá hoặc bí danh định tuyến có thể che giấu chi tiêu thực tế, do đó hạn ngạch sẽ bị từ chối mặc định (fail-closed).", "featureFlagDisableContextWindowChecksDescription": "Bỏ qua kiểm tra cục bộ của OmniRoute về cửa sổ ngữ cảnh và giới hạn token đầu vào tối đa cho yêu cầu trực tiếp đến một mô hình đơn lẻ. Nhà cung cấp thượng nguồn vẫn áp dụng các giới hạn thực tế. Tính năng nén prompt và giới hạn token đầu ra vẫn hoạt động.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Thống kê tìm kiếm và các lượt tìm kiếm gần đây chỉ tính những nhà cung cấp vẫn còn kết nối hoạt động (các nhà cung cấp không cần khóa như duckduckgo-free luôn được tính). Khi tắt, mọi hàng tìm kiếm được lưu giữ có ID nhà cung cấp đều được giữ lại.", "publicSystem": { diff --git a/src/i18n/messages/yo.json b/src/i18n/messages/yo.json index f56cc51ebc8..3f4294ce2bd 100644 --- a/src/i18n/messages/yo.json +++ b/src/i18n/messages/yo.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "Kọ àwọn ìbéèrè kí a tó fi wọ́n ránṣẹ́ nígbà tí àwòṣe àfojúsùn kò bá ní àwọn agbára tí a nílò (ìríran, irinṣẹ́, àbájáde tó ní ìṣètò, fèrèsé àyíká-ọ̀rọ̀). Èyí ń dáàbò bo àwọn ìbéèrè olùpèsè-kan tààrà tí ó ré àlẹ̀mọ́ ìbámu combo-layer kọjá.", + "featureFlagUsageLimitIgnoreUnpricedDescription": "Ka lílo àwọn awoṣe tí kò ní iye owó sí $0 nínú àwọn ìwọ̀n lílo USD fún kọ́kọ́rọ́ kọ̀ọ̀kan dípò kí a kà á sí pé ó ti kọjá ìwọ̀n. Ó wà ní pípa ní àkọ́kọ́: awoṣe tí a kò fún ní iye owó tàbí orúkọ ìnagijẹ ìdarí ipa-ọ̀nà lè fi ìnáwó gidi pamọ́, nítorí náà ìwọ̀n náà yóò kọ ìbéèrè sílẹ̀.", "featureFlagDisableContextWindowChecksDescription": "Fo àyẹ̀wò fèrèsé àyíká-ọ̀rọ̀ àti àyẹ̀wò iye token ìwọlé tó pọ̀jù ti OmniRoute fún àwọn ìbéèrè àwòṣe-kan tààrà. Àwọn olùpèsè upstream ṣì ń fi àwọn ààlà gidi wọn múlẹ̀. Ìfúnpọ̀ prompt àti àwọn ààlà token àbájáde ṣì ń ṣiṣẹ́.", "featureFlagSearchStatsHideDeletedConnectionsDescription": "Àwọn ìṣirò ìṣàwárí àti àwọn ìṣàwárí àìpẹ́ yóò ka àwọn olùpèsè tí àsopọ̀ wọn ṣì ń ṣiṣẹ́ nìkan (àwọn olùpèsè tí kò nílò kọ́kọ́rọ́ bíi duckduckgo-free ni a máa ń kà nígbà gbogbo). Pípa yóò pa gbogbo ìlà ìṣàwárí tí a ti fi pamọ́ tí ó ní ID olùpèsè mọ́.", "publicSystem": { diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index a6d567e4d87..ab8b46a9447 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "在目标模型缺少所需能力(视觉、工具、结构化输出、上下文窗口)时,拒绝调度前的请求。保护绕过组合层兼容性过滤器的直接单一提供者请求。", + "featureFlagUsageLimitIgnoreUnpricedDescription": "在按密钥的 USD 使用配额中,将未定价模型的使用量计为 $0,而不是视为超出配额。默认关闭:未定价模型或路由别名可能会隐藏实际支出,因此配额采取故障闭合。", "featureFlagDisableContextWindowChecksDescription": "对于直接发送到单个模型的请求,跳过 OmniRoute 本地的上下文窗口和最大输入令牌检查。上游提供者仍会强制执行其实际限制。提示词压缩和输出令牌上限仍然有效。", "featureFlagSearchStatsHideDeletedConnectionsDescription": "搜索统计信息和最近搜索仅统计仍有有效连接的提供者(无需密钥的提供者,如 duckduckgo-free,始终会被统计)。关闭此选项后,会保留每一条带有提供者 ID 的已留存搜索记录。", "publicSystem": { diff --git a/src/i18n/messages/zh-TW.json b/src/i18n/messages/zh-TW.json index 9bb1f119712..06a9374877e 100644 --- a/src/i18n/messages/zh-TW.json +++ b/src/i18n/messages/zh-TW.json @@ -13916,6 +13916,7 @@ } }, "featureFlagCapabilityFilterEnabledDescription": "在目標模型缺乏所需功能(視覺、工具、結構化輸出、上下文窗口)時,拒絕發送前的請求。保護繞過組合層兼容性過濾器的直接單一提供者請求。", + "featureFlagUsageLimitIgnoreUnpricedDescription": "在每個金鑰的 USD 用量配額中,將未定價模型的使用量計為 $0,而非視為超出配額。預設關閉:未定價模型或路由別名可能會隱藏實際支出,因此配額採取封閉式失敗。", "featureFlagDisableContextWindowChecksDescription": "對直接的單一模型請求,略過 OmniRoute 的本機上下文視窗與輸入權杖上限檢查。上游提供者仍會強制執行其實際限制。提示詞壓縮與輸出權杖上限仍會生效。", "featureFlagSearchStatsHideDeletedConnectionsDescription": "搜尋統計資料與最近的搜尋只會計入仍有有效連線的提供者(不需要金鑰的提供者,例如 duckduckgo-free,則一律會計入)。關閉後,將保留每一筆含有提供者 ID 的搜尋記錄。", "publicSystem": { diff --git a/src/lib/usage/apiKeyUsageLimits.ts b/src/lib/usage/apiKeyUsageLimits.ts index e6ffacc2b1a..629b552fb9e 100644 --- a/src/lib/usage/apiKeyUsageLimits.ts +++ b/src/lib/usage/apiKeyUsageLimits.ts @@ -2,6 +2,7 @@ import { getDbInstance } from "@/lib/db/core"; import type { ProviderLimitsCacheEntry } from "@/lib/db/providerLimits"; import { getProviderQuotaWindowStartIso } from "@/lib/db/quotaResetEvents"; import { calculateCostDetailed } from "./costCalculator"; +import { isFeatureFlagEnabled } from "@/shared/utils/featureFlags"; import { errorResponse, resolveRetryAfterInstant, @@ -442,8 +443,9 @@ async function getApiKeyUsdSpendSince(apiKeyId: string, sinceIso: string): Promi if (!priced) { hasUnpricedUsage = true; console.warn( - `[apiKeyUsageLimits] no pricing found for ${provider}/${model} — usage counted as $0 ` + - "and enforcement is failing closed for this window (#12341)" + `[apiKeyUsageLimits] no pricing found for ${provider}/${model} — usage counted as $0; ` + + "a configured USD quota fails closed for this window unless " + + "USAGE_LIMIT_IGNORE_UNPRICED is on (#12341)" ); } total += costUsd; @@ -484,14 +486,17 @@ export async function getApiKeyUsageLimitStatus( // as an invisible $0 — treat the limit as exceeded rather than trust an // undercounted spend total. A window with no configured limit was never // enforced, so unpriced usage there is only logged, not blocking. + // USAGE_LIMIT_IGNORE_UNPRICED is the operator opt-out: unpriced usage then + // stays at $0 and only priced spend counts toward the limit. + const failClosedOnUnpriced = !isFeatureFlagEnabled("USAGE_LIMIT_IGNORE_UNPRICED"); const dailyExceeded = enabled && dailyLimitUsd !== null && - (dailySpentUsd >= dailyLimitUsd || dailySpend.hasUnpricedUsage); + (dailySpentUsd >= dailyLimitUsd || (failClosedOnUnpriced && dailySpend.hasUnpricedUsage)); const weeklyExceeded = enabled && weeklyLimitUsd !== null && - (weeklySpentUsd >= weeklyLimitUsd || weeklySpend.hasUnpricedUsage); + (weeklySpentUsd >= weeklyLimitUsd || (failClosedOnUnpriced && weeklySpend.hasUnpricedUsage)); return { enabled, diff --git a/src/shared/constants/featureFlagDefinitions.ts b/src/shared/constants/featureFlagDefinitions.ts index 1bd198f0a3d..12cc377ab3f 100644 --- a/src/shared/constants/featureFlagDefinitions.ts +++ b/src/shared/constants/featureFlagDefinitions.ts @@ -393,7 +393,7 @@ export const FEATURE_FLAG_DEFINITIONS: FeatureFlagDefinition[] = [ warningLevel: "info", }, - // ──────────────── Policies (5) ──────────────── + // ──────────────── Policies (6) ──────────────── { key: "TOOL_POLICY_MODE", label: "Tool Policy Mode", @@ -441,6 +441,18 @@ export const FEATURE_FLAG_DEFINITIONS: FeatureFlagDefinition[] = [ requiresRestart: false, warningLevel: "caution", }, + { + key: "USAGE_LIMIT_IGNORE_UNPRICED", + label: "Ignore Unpriced Usage in USD Quotas", + description: + "Count usage of models that have no price as $0 in per-key USD usage quotas instead of treating the quota as exceeded. Off by default: an unpriced model or routing alias can hide real spend, so the quota fails closed.", + descriptionI18nKey: "featureFlagUsageLimitIgnoreUnpricedDescription", + category: "policies", + defaultValue: "false", + type: "boolean", + requiresRestart: false, + warningLevel: "caution", + }, { key: "RADAR_ENABLED", label: "Radar", diff --git a/tests/unit/api-key-budget-alias-auto-12341.test.ts b/tests/unit/api-key-budget-alias-auto-12341.test.ts index 276a0341994..43bdbe07a6d 100644 --- a/tests/unit/api-key-budget-alias-auto-12341.test.ts +++ b/tests/unit/api-key-budget-alias-auto-12341.test.ts @@ -111,3 +111,69 @@ test("control: a priced model routed at the same tokens does NOT trip fail-close assert.equal(status.dailyHasUnpricedUsage, false); assert.equal(status.dailyExceeded, false); }); + +test("USAGE_LIMIT_IGNORE_UNPRICED=true: unpriced usage counts as $0 instead of failing the quota closed", async () => { + const previous = process.env.USAGE_LIMIT_IGNORE_UNPRICED; + process.env.USAGE_LIMIT_IGNORE_UNPRICED = "true"; + try { + const { created, metadata } = await makeMeteredKey(); + + await usageHistory.saveRequestUsage({ + provider: "cursor", + model: "auto", + apiKeyId: created.id, + apiKeyName: "Budget Alias Key", + tokens: { input: 1_000_000, output: 1_000_000 }, + success: true, + timestamp: "2026-06-19T12:00:00.000Z", + }); + + const status = await usageLimits.getApiKeyUsageLimitStatus( + { ...metadata, allowedConnections: null }, + { now: () => NOW } + ); + + assert.equal(status.dailySpentUsd, 0); + assert.equal(status.dailyHasUnpricedUsage, true, "the unpriced usage is still reported"); + assert.equal(status.dailyExceeded, false, "an operator opt-in skips the fail-closed rule"); + assert.equal(status.weeklyExceeded, false); + } finally { + if (previous === undefined) delete process.env.USAGE_LIMIT_IGNORE_UNPRICED; + else process.env.USAGE_LIMIT_IGNORE_UNPRICED = previous; + } +}); + +test("USAGE_LIMIT_IGNORE_UNPRICED=true still enforces priced spend over the limit", async () => { + const previous = process.env.USAGE_LIMIT_IGNORE_UNPRICED; + process.env.USAGE_LIMIT_IGNORE_UNPRICED = "true"; + try { + const { updatePricing } = await import("@/lib/db/settings"); + await updatePricing({ + openai: { + "gpt-4o": { input: 20, cached: 20, output: 20, reasoning: 20, cache_creation: 20 }, + }, + }); + const { created, metadata } = await makeMeteredKey(); + + await usageHistory.saveRequestUsage({ + provider: "openai", + model: "gpt-4o", + apiKeyId: created.id, + apiKeyName: "Budget Alias Key", + tokens: { input: 1_000_000, output: 0 }, + success: true, + timestamp: "2026-06-19T12:00:00.000Z", + }); + + const status = await usageLimits.getApiKeyUsageLimitStatus( + { ...metadata, allowedConnections: null }, + { now: () => NOW } + ); + + assert.equal(status.dailySpentUsd, 20); + assert.equal(status.dailyExceeded, true, "$20 spent against a $10 daily limit"); + } finally { + if (previous === undefined) delete process.env.USAGE_LIMIT_IGNORE_UNPRICED; + else process.env.USAGE_LIMIT_IGNORE_UNPRICED = previous; + } +}); diff --git a/tests/unit/feature-flags-settings.test.ts b/tests/unit/feature-flags-settings.test.ts index 10d6d59ecc4..36ae2368120 100644 --- a/tests/unit/feature-flags-settings.test.ts +++ b/tests/unit/feature-flags-settings.test.ts @@ -50,7 +50,9 @@ const { // per-address 429, default off) takes the registry to 79. // PROXY_POOL_SHARED_EGRESS_ORDER (shared-egress pool ordering, default off) // takes it to 80. -const EXPECTED_FEATURE_FLAG_COUNT = 80; +// USAGE_LIMIT_IGNORE_UNPRICED (opt-in flag to count unpriced usage as $0 in USD +// quotas, default off) takes it to 81. +const EXPECTED_FEATURE_FLAG_COUNT = 81; // ────────────────────────────────────────────────────── // Test group 1 — Flag definitions registry