* 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.
16 KiB
Compression Rules Format (Filipino)
🌐 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 · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Ang mga panuntunan sa compression ay mga JSON file na nilo-load sa runtime. Sadyang data-only ang mga ito upang masuri ang mga bagong language pack at filter ng RTK command nang hindi binabago ang engine code.
Kanonikal na schema (pinagmumulan ng katotohanan):
open-sse/services/compression/rules/_schema.json(JSON Schema draft 2020-12). Ang mga halimbawa sa ibaba ay para sa paglalarawan lamang — kapag may pag-aalinlangan, i-validate ang iyong pack gamit ang_schema.json.
Mga Caveman Rule Pack
Matatagpuan ang mga Caveman rule pack sa:
open-sse/services/compression/rules/<language>/<pack>.json
Naglalaman ang bawat pack ng mga replacement na inilalapat sa karaniwang prosa matapos ihiwalay ang mga protektadong rehiyon.
{
"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."
}
]
}
Mga Field ng Caveman
| Field | Kinakailangan | Paglalarawan |
|---|---|---|
language |
oo | BCP-47-like na language key gaya ng en, pt-BR, es |
category |
oo | Filename/kategorya ng pack, halimbawa filler o dedup |
rules |
oo | Array ng mga regex replacement rule |
rules[].name |
oo | Matatag na pangalan ng panuntunan |
rules[].pattern |
oo | JavaScript regex source |
rules[].flags |
hindi | Mga JavaScript regex flag; default ang gi |
rules[].replacement |
hindi | Replacement string o fallback kapag walang tugma sa replacementMap |
rules[].replacementMap |
hindi | Mga replacement na partikular sa tugma, gamit ang normalized na matched text bilang key |
rules[].context |
hindi | all, user, assistant, o system; default ang all |
rules[].category |
hindi | filler, context, structural, dedup, terse, o ultra |
rules[].minIntensity |
hindi | lite, full, o ultra; default ang lite |
rules[].description |
hindi | Buod ng panuntunan na nababasa ng tao |
Gamitin ang flags kapag mahalaga ang case-sensitive na pagtutugma, halimbawa sa pag-aalis ng article bago ang lowercase na prosa
nang hindi inaalis ang the OpenAI API. Gamitin ang replacementMap kapag ang isang regex ay may maraming alternatibo
na nangangailangan ng magkakaibang output; pinananatili nitong data-only ang mga JSON rule pack habang pinapanatili ang gawi ng
mas mayamang built-in na mga TypeScript replacement function.
Mga RTK Filter Pack
Matatagpuan ang mga RTK filter sa ilalim ng:
open-sse/services/compression/engines/rtk/filters/<filter>.json
Inilalarawan ng bawat filter kung paano tukuyin at i-compress ang isang pamilya ng output ng command.
{
"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"
}
]
}
Mga Field ng RTK
| Field | Kinakailangan | Paglalarawan |
|---|---|---|
id |
oo | Matatag na id ng filter |
label |
oo | Pangalan na madaling basahin sa dashboard |
category |
oo | Pamilya ng filter: git, test, build, shell, docker, package, infra, cloud, generic |
priority |
hindi | Ang mas mataas na priyoridad ang mananaig kapag maraming filter ang tumugma |
match.outputTypes |
hindi | Mga output id ng detector na pipili sa filter na ito |
match.commands |
hindi | Mga token ng command na pipili sa filter na ito |
match.patterns |
hindi | Mga regex pattern na pipili sa filter na ito mula sa teksto ng output |
rules.stripAnsi |
hindi | Alisin ang mga ANSI escape sequence bago ang mga yugto ng regex |
rules.replace |
hindi | Mga nakaayos na regex substitution na inilalapat sa bawat linya |
rules.matchOutput |
hindi | Mga panuntunan sa short-circuit output na may opsyonal na unless guard |
rules.includePatterns |
hindi | Mga linyang mas gustong panatilihin |
rules.dropPatterns |
hindi | Mga linyang aalisin bilang ingay |
rules.collapsePatterns |
hindi | Mga paulit-ulit na tumutugmang linya na maaaring pagsama-samahin |
rules.deduplicate |
hindi | Pagsama-samahin ang mga duplikadong na-normalize na linya |
rules.truncateLineAt |
hindi | Unicode-safe na limitasyon ng character sa bawat linya |
rules.maxLines |
hindi | Pinakamataas na bilang ng mga linyang pananatilihin bago ang pagpapanatili sa hulihan |
rules.headLines |
hindi | Mga linya sa unahan na pananatilihin habang nagta-truncate |
rules.tailLines |
hindi | Mga linya sa hulihan na pananatilihin para sa pinakabagong konteksto |
rules.onEmpty |
hindi | Fallback na mensahe kapag inalis ng pag-filter ang lahat ng nilalaman |
rules.filterStderr |
hindi | I-normalize ang mga karaniwang prefix ng stderr bago ang mga susunod na yugto ng pag-filter |
preserve.errorPatterns |
hindi | Mga linya ng error na dapat manatili pagkatapos ng truncation |
preserve.summaryPatterns |
hindi | Mga linya ng buod na dapat manatili pagkatapos ng truncation |
tests[] |
hindi | Mga inline na sample ng beripikasyon na ginagamit ng RTK verify gate |
Inilalapat ng RTK ang mga deklaratibong yugto sa ganitong pagkakasunod-sunod: stripAnsi, filterStderr, replace,
matchOutput, dropPatterns/includePatterns, truncateLineAt, headLines/tailLines,
maxLines, at onEmpty.
Maaaring i-load ang mga custom na filter mula sa:
- Mga project
.rtk/filters.jsonfile, ngunit pagkatapos lamang magkaroon ng katugmang.rtk/trust.jsonhash o kapag naka-enable angtrustProjectFilters. - Global na
DATA_DIR/rtk/filters.json. - Mga built-in na filter.
Maaaring maglaman ang mga project/global custom file ng isang filter object o array ng mga filter object. Nilalaktawan ang mga di-wastong custom na filter nang may diagnostics; mabibigo naman sa validation ang mga di-wastong built-in na filter.
Trust file ng project:
{
"filtersSha256": "0123456789abcdef..."
}
Pinagkakatiwalaan ng environment override na OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=1 ang mga project filter nang walang
hash at dapat itong gamitin lamang sa kontroladong lokal na development.
Mga Panuntunan sa Kaligtasan
- Panatilihing idempotent ang mga panuntunan: hindi dapat masira ang output kapag pinatakbo nang dalawang beses ang parehong filter.
- Panatilihin ang eksaktong teksto ng error, mga file path, mga numero ng linya, at mga buod ng command hangga't maaari.
- Iwasan ang mga panuntunang nagbabago sa mga code block, JSON payload, URL, o secret.
- Magdagdag ng saklaw ng unit test para sa mga bagong pamilya ng command sa mga detector/filter test.
- Magdagdag ng mga sample na
tests[]sa bawat built-in na filter at sa mga nakabahaging custom na filter.
Pagpapatunay
Pinapatunayan ang mga rule pack bago gamitin. Agad na nabibigo ang mga built-in na Caveman pack at built-in na RTK filter habang isinasagawa ang pagpapatunay upang matukoy ang mga sirang release asset bago ipadala. Nilalaktawan ang mga custom na RTK filter na may mga diagnostic kapag nabigo ang pag-parse o pagpapatunay ng tiwala.
Nakatuong pagpapatunay:
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