* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
15 KiB
Compression Rules Format (Türkçe)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Sıkıştırma kuralları, çalışma zamanında yüklenen JSON dosyalarıdır. Yeni dil paketlerinin ve RTK komut filtrelerinin motor kodu değiştirilmeden incelenebilmesi için kasıtlı olarak yalnızca veri içerirler.
Standart şema (tek doğruluk kaynağı):
open-sse/services/compression/rules/_schema.json(JSON Schema taslağı 2020-12). Aşağıdaki örnekler yalnızca açıklama amaçlıdır — emin olmadığınız durumlarda paketinizi_schema.jsonile doğrulayın.
Caveman Kural Paketleri
Caveman kural paketleri şu dizin altında bulunur:
open-sse/services/compression/rules/<language>/<pack>.json
Her paket, korunan bölgeler ayrıştırıldıktan sonra normal düzyazıya uygulanan değiştirme kurallarını içerir.
{
"language": "en",
"category": "filler",
"rules": [
{
"name": "question_to_directive",
"pattern": "\\b(?:Can you explain why|Could you show me how)\\b\\s*",
"replacement": "Explain why ",
"replacementMap": {
"can you explain why": "Explain why ",
"could you show me how": "Show how "
},
"flags": "gi",
"context": "all",
"category": "context",
"minIntensity": "lite",
"description": "Convert verbose questions into direct requests."
}
]
}
Caveman Alanları
| Alan | Zorunlu | Açıklama |
|---|---|---|
language |
evet | en, pt-BR, es gibi BCP-47 benzeri dil anahtarı |
category |
evet | Paket kategorisi dosya adı/kategorisi; örneğin filler veya dedup |
rules |
evet | Regex değiştirme kuralları dizisi |
rules[].name |
evet | Kararlı kural adı |
rules[].pattern |
evet | JavaScript regex kaynağı |
rules[].flags |
hayır | JavaScript regex bayrakları; varsayılan gi |
rules[].replacement |
hayır | Değiştirme dizesi veya replacementMap eşleşmediğinde kullanılacak geri dönüş değeri |
rules[].replacementMap |
hayır | Normalleştirilmiş eşleşen metne göre anahtarlanmış, eşleşmeye özgü değiştirmeler |
rules[].context |
hayır | all, user, assistant veya system; varsayılan all |
rules[].category |
hayır | filler, context, structural, dedup, terse veya ultra |
rules[].minIntensity |
hayır | lite, full veya ultra; varsayılan lite |
rules[].description |
hayır | İnsanların okuyabileceği kural özeti |
Büyük/küçük harfe duyarlı eşleşmenin önemli olduğu durumlarda flags kullanın; örneğin the OpenAI API ifadesini kaldırmadan küçük harfle başlayan düzyazıdan tanımlığı kaldırmak için. Tek bir regex, farklı çıktılar gerektiren birden fazla alternatife sahipse replacementMap kullanın; bu, daha zengin yerleşik TypeScript değiştirme fonksiyonlarının davranışını korurken JSON kural paketlerinin yalnızca veri içermesini sağlar.
RTK Filtre Paketleri
RTK filtreleri şu konumda bulunur:
open-sse/services/compression/engines/rtk/filters/<filter>.json
Her filtre, bir komut çıktısı ailesinin nasıl tanınacağını ve sıkıştırılacağını açıklar.
{
"id": "test-vitest",
"label": "Vitest output",
"category": "test",
"priority": 92,
"match": {
"outputTypes": ["test-vitest"],
"commands": ["vitest", "npm test", "npm run test"],
"patterns": ["\\bFAIL\\b", "\\bPASS\\b", "\\bTest Files\\b"]
},
"rules": {
"stripAnsi": true,
"replace": [{ "pattern": "\\s+\\[[0-9]+ms\\]", "replacement": "" }],
"matchOutput": [
{
"pattern": "All tests passed",
"message": "vitest: ok",
"unless": "FAIL|Error:"
}
],
"includePatterns": ["FAIL", "Error:", "Test Files", "Tests"],
"dropPatterns": ["^\\s*$", "Duration\\s+\\d+"],
"collapsePatterns": ["^\\s+at "],
"deduplicate": true,
"truncateLineAt": 240,
"maxLines": 160,
"headLines": 24,
"tailLines": 40,
"onEmpty": "vitest: ok",
"filterStderr": false
},
"preserve": {
"errorPatterns": ["FAIL", "Error:", "AssertionError"],
"summaryPatterns": ["Test Files", "Tests", "Snapshots"]
},
"tests": [
{
"name": "keeps failing tests",
"command": "vitest",
"input": "FAIL test/a.test.ts\\nError: boom\\nTest Files 1 failed",
"expected": "FAIL test/a.test.ts\\nError: boom\\nTest Files 1 failed"
}
]
}
RTK Alanları
| Alan | Zorunlu | Açıklama |
|---|---|---|
id |
evet | Kararlı filtre kimliği |
label |
evet | Kontrol panelinde okunabilir ad |
category |
evet | Filtre ailesi: git, test, build, shell, docker, package, infra, cloud, generic |
priority |
hayır | Birden fazla filtre eşleştiğinde daha yüksek önceliğe sahip olan kazanır |
match.outputTypes |
hayır | Bu filtreyi seçen algılayıcı çıktı kimlikleri |
match.commands |
hayır | Bu filtreyi seçen komut belirteçleri |
match.patterns |
hayır | Bu filtreyi çıktı metninden seçen regex kalıpları |
rules.stripAnsi |
hayır | Regex aşamalarından önce ANSI kaçış dizilerini kaldırır |
rules.replace |
hayır | Satır satır uygulanan sıralı regex değiştirmeleri |
rules.matchOutput |
hayır | İsteğe bağlı unless korumasına sahip kısa devre çıktı kuralları |
rules.includePatterns |
hayır | Korunmasına öncelik verilecek satırlar |
rules.dropPatterns |
hayır | Gürültü olarak kaldırılacak satırlar |
rules.collapsePatterns |
hayır | Daraltılabilecek, eşleşen yinelenmiş satırlar |
rules.deduplicate |
hayır | Yinelenen normalleştirilmiş satırları daraltır |
rules.truncateLineAt |
hayır | Satır başına Unicode güvenli karakter sınırı |
rules.maxLines |
hayır | Son kısım korunmadan önce tutulacak maksimum satır sayısı |
rules.headLines |
hayır | Kesme sırasında tutulan baştaki satırlar |
rules.tailLines |
hayır | Yakın tarihli bağlam için tutulan sondaki satırlar |
rules.onEmpty |
hayır | Filtreleme tüm içeriği kaldırdığında kullanılacak yedek mesaj |
rules.filterStderr |
hayır | Sonraki filtreleme aşamalarından önce yaygın stderr öneklerini normalleştirir |
preserve.errorPatterns |
hayır | Kesme işleminden sonra korunması gereken hata satırları |
preserve.summaryPatterns |
hayır | Kesme işleminden sonra korunması gereken özet satırları |
tests[] |
hayır | RTK doğrulama geçidi tarafından kullanılan satır içi doğrulama örnekleri |
RTK, bildirimsel aşamaları şu sırayla uygular: stripAnsi, filterStderr, replace,
matchOutput, dropPatterns/includePatterns, truncateLineAt, headLines/tailLines,
maxLines ve onEmpty.
Özel filtreler şu konumlardan yüklenebilir:
- Proje
.rtk/filters.jsondosyaları, yalnızca eşleşen bir.rtk/trust.jsonkarması mevcut olduktan veyatrustProjectFiltersetkinleştirildikten sonra. - Genel
DATA_DIR/rtk/filters.json. - Yerleşik filtreler.
Proje/genel özel dosyaları tek bir filtre nesnesi veya filtre nesneleri dizisi içerebilir. Geçersiz özel filtreler tanılama bilgileriyle atlanır; geçersiz yerleşik filtreler doğrulamanın başarısız olmasına neden olur.
Proje güven dosyası:
{
"filtersSha256": "0123456789abcdef..."
}
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=1 ortam geçersiz kılma ayarı, proje filtrelerine karma olmadan
güvenir ve yalnızca denetimli yerel geliştirme ortamlarıyla sınırlandırılmalıdır.
Güvenlik Kuralları
- Kuralları idempotent tutun: aynı filtrenin iki kez çalıştırılması çıktıyı bozmamalıdır.
- Mümkün olduğunda hata metnini, dosya yollarını, satır numaralarını ve komut özetlerini aynen koruyun.
- Kod bloklarını, JSON yüklerini, URL'leri veya gizli bilgileri değiştiren kurallardan kaçının.
- Dedektör/filtre testlerinde yeni komut aileleri için birim testi kapsamı ekleyin.
- Her yerleşik filtreye ve paylaşılan özel filtrelere
tests[]örnekleri ekleyin.
Doğrulama
Kural paketleri kullanılmadan önce doğrulanır. Yerleşik Caveman paketleri ve yerleşik RTK filtreleri, bozuk sürüm varlıklarının dağıtımdan önce yakalanması için doğrulama sırasında hızlıca başarısız olur. Özel RTK filtreleri, ayrıştırma veya güven doğrulaması başarısız olduğunda tanılama bilgileriyle birlikte atlanır.
Odaklı doğrulama:
node --import tsx/esm --test tests/unit/compression/rule-loader.test.ts tests/unit/compression/language-packs.test.ts
node --import tsx/esm --test tests/unit/compression/rtk-verify.test.ts tests/unit/compression/rtk-dsl-pipeline.test.ts