Files
OmniRoute/docs/i18n/phi/docs/compression/COMPRESSION_RULES_FORMAT.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* 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.
2026-09-18 13:16:46 -03:00

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:

  1. Mga project .rtk/filters.json file, ngunit pagkatapos lamang magkaroon ng katugmang .rtk/trust.json hash o kapag naka-enable ang trustProjectFilters.
  2. Global na DATA_DIR/rtk/filters.json.
  3. 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