Files
OmniRoute/docs/i18n/sr/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

18 KiB
Raw Blame History

Compression Rules Format (Српски)

🌐 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 · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Правила компресије су JSON датотеке које се учитавају током извршавања. Намерно садрже само податке како би нови језички пакети и филтери RTK команди могли да се прегледају без измене кода механизма.

Канонска шема (меродавни извор): open-sse/services/compression/rules/_schema.json (JSON Schema нацрт 2020-12). Примери у наставку служе као илустрација — ако нисте сигурни, проверите свој пакет у односу на _schema.json.

Caveman пакети правила

Caveman пакети правила налазе се у:

open-sse/services/compression/rules/<language>/<pack>.json

Сваки пакет садржи замене које се примењују на обичан прозни текст након што се заштићене области издвоје.

{
  "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 поља

Поље Обавезно Опис
language да Кључ језика сличан BCP-47 стандарду, као што су en, pt-BR, es
category да Назив датотеке/категорија пакета, на пример filler или dedup
rules да Низ правила замене регуларним изразима
rules[].name да Стабилан назив правила
rules[].pattern да Извор JavaScript регуларног израза
rules[].flags не Ознаке JavaScript регуларног израза; подразумевано gi
rules[].replacement не Ниска за замену или резервна вредност када replacementMap нема подударање
rules[].replacementMap не Замене специфичне за подударање, чији су кључеви нормализовани подударени текстови
rules[].context не all, user, assistant или system; подразумевано all
rules[].category не filler, context, structural, dedup, terse или ultra
rules[].minIntensity не lite, full или ultra; подразумевано lite
rules[].description не Људски читљив сажетак правила

Користите flags када је важно подударање осетљиво на величину слова, на пример при уклањању члана испред прозног текста написаног малим словима, без уклањања the OpenAI API. Користите replacementMap када један регуларни израз има више алтернатива којима су потребни различити излази; тако JSON пакети правила остају ограничени само на податке, уз очување понашања напреднијих уграђених TypeScript функција за замену.

Пакети RTK филтера

RTK филтери се налазе у:

open-sse/services/compression/engines/rtk/filters/<filter>.json

Сваки филтер описује како се препознаје и компресује одређена породица излаза команди.

{
  "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 поља

Поље Обавезно Опис
id да Стабилан идентификатор филтера
label да Назив читљив на контролној табли
category да Породица филтера: git, test, build, shell, docker, package, infra, cloud, generic
priority не Виши приоритет побеђује када се подудара више филтера
match.outputTypes не Идентификатори излаза детектора који бирају овај филтер
match.commands не Токени команди који бирају овај филтер
match.patterns не Обрасци регуларних израза који бирају овај филтер на основу текста излаза
rules.stripAnsi не Уклања ANSI излазне секвенце пре фаза са регуларним изразима
rules.replace не Уређене замене регуларним изразима које се примењују ред по ред
rules.matchOutput не Правила излаза за рани прекид са опционалним условом unless
rules.includePatterns не Редови чије очување треба преферирати
rules.dropPatterns не Редови које треба уклонити као шум
rules.collapsePatterns не Поновљени подударни редови који се могу сажети
rules.deduplicate не Сажима дуплиране нормализоване редове
rules.truncateLineAt не Ограничење броја знакова по реду, безбедно за Unicode
rules.maxLines не Максималан број задржаних редова пре очувања завршних редова
rules.headLines не Почетни редови који се задржавају током скраћивања
rules.tailLines не Завршни редови који се задржавају ради недавног контекста
rules.onEmpty не Резервна порука када филтрирање уклони сав садржај
rules.filterStderr не Нормализује уобичајене stderr префиксе пре каснијих фаза филтрирања
preserve.errorPatterns не Редови са грешкама који треба да преживе скраћивање
preserve.summaryPatterns не Редови са резимеом који треба да преживе скраћивање
tests[] не Уграђени примери за проверу које користи RTK механизам за верификацију

RTK примењује декларативне фазе овим редоследом: stripAnsi, filterStderr, replace, matchOutput, dropPatterns/includePatterns, truncateLineAt, headLines/tailLines, maxLines и onEmpty.

Прилагођени филтери могу да се учитају из:

  1. Пројектних датотека .rtk/filters.json тек након што постоји одговарајући хеш у .rtk/trust.json или је омогућен trustProjectFilters.
  2. Глобалне датотеке DATA_DIR/rtk/filters.json.
  3. Уграђених филтера.

Пројектне/глобалне прилагођене датотеке могу да садрже један објекат филтера или низ објеката филтера. Неважећи прилагођени филтери се прескачу уз дијагностичке поруке; неважећи уграђени филтери доводе до неуспешне валидације.

Пројектна датотека поверења:

{
  "filtersSha256": "0123456789abcdef..."
}

Променљива окружења OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=1 означава пројектне филтере као поуздане без хеша и треба је ограничити на контролисани локални развој.

Безбедносна правила

  • Нека правила буду идемпотентна: покретање истог филтера два пута не сме да оштети излаз.
  • Сачувајте тачан текст грешака, путање датотека, бројеве редова и сажетке команди где год је то могуће.
  • Избегавајте правила која мењају блокове кода, JSON садржаје, URL адресе или тајне податке.
  • Додајте покривеност јединичним тестовима за нове породице команди у тестовима детектора/филтера.
  • Додајте tests[] примере сваком уграђеном филтеру и дељеним прилагођеним филтерима.

Валидација

Пакети правила се валидирају пре употребе. Уграђени Caveman пакети и уграђени RTK филтери одмах пријављују грешку током валидације како би неисправни ресурси издања били откривени пре испоруке. Прилагођени RTK филтери се прескачу уз дијагностичке поруке када рашчлањивање или валидација поверења не успе.

Циљана валидација:

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