# Compression Rules Format (Yorùbá) 🌐 **Languages:** 🇺🇸 [English](../../../../compression/COMPRESSION_RULES_FORMAT.md) · 🇪🇹 [am](../../../am/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇸🇦 [ar](../../../ar/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇦🇿 [az](../../../az/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇧🇬 [bg](../../../bg/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇧🇩 [bn](../../../bn/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇧🇦 [bs](../../../bs/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇨🇿 [cs](../../../cs/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇩🇰 [da](../../../da/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇩🇪 [de](../../../de/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇬🇷 [el](../../../el/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇪🇸 [es](../../../es/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇪🇪 [et](../../../et/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇷 [fa](../../../fa/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇫🇮 [fi](../../../fi/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇫🇷 [fr](../../../fr/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇪 [ga](../../../ga/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [gu](../../../gu/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇳🇬 [ha](../../../ha/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇱 [he](../../../he/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [hi](../../../hi/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇭🇷 [hr](../../../hr/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇭🇺 [hu](../../../hu/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇦🇲 [hy](../../../hy/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇩 [id](../../../id/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇳🇬 [ig](../../../ig/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇹 [it](../../../it/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇯🇵 [ja](../../../ja/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇬🇪 [ka](../../../ka/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇰🇭 [km](../../../km/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [kn](../../../kn/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇰🇷 [ko](../../../ko/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇱🇹 [lt](../../../lt/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇱🇻 [lv](../../../lv/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [ml](../../../ml/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [mr](../../../mr/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇲🇾 [ms](../../../ms/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇲🇹 [mt](../../../mt/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇲🇲 [my](../../../my/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇳🇵 [ne](../../../ne/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇳🇱 [nl](../../../nl/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇳🇴 [no](../../../no/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [or](../../../or/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [pa](../../../pa/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇵🇭 [phi](../../../phi/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇵🇱 [pl](../../../pl/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇵🇹 [pt](../../../pt/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇷🇴 [ro](../../../ro/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇷🇺 [ru](../../../ru/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇱🇰 [si](../../../si/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇸🇰 [sk](../../../sk/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇸🇮 [sl](../../../sl/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇷🇸 [sr](../../../sr/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇸🇪 [sv](../../../sv/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇰🇪 [sw](../../../sw/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [ta](../../../ta/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇮🇳 [te](../../../te/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇹🇭 [th](../../../th/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇹🇷 [tr](../../../tr/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇵🇰 [ur](../../../ur/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇺🇿 [uz](../../../uz/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇻🇳 [vi](../../../vi/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/compression/COMPRESSION_RULES_FORMAT.md) --- Àwọn òfin fún ìfúnpọ̀ jẹ́ àwọn fáìlì JSON tí a máa ń kó wọlé ní àkókò ìṣiṣẹ́. A mọ̀ọ́mọ̀ ṣe wọ́n gẹ́gẹ́ bí dátà nìkan kí a lè ṣe àyẹ̀wò àwọn àkójọpọ̀ èdè tuntun àti àwọn àsẹ̀ RTK láì yí kóòdù ẹ́ńjìnnì padà. > **Àwòrán ìlànà àṣẹ (orísun òtítọ́):** [`open-sse/services/compression/rules/_schema.json`](../../open-sse/services/compression/rules/_schema.json) (JSON Schema draft 2020-12). > Àwọn àpẹẹrẹ tó wà nísàlẹ̀ jẹ́ fún àlàyé — nígbà tí kò bá dá ọ lójú, fìdí àkójọpọ̀ rẹ múlẹ̀ ní ìbámu pẹ̀lú `_schema.json`. ## Àwọn Àkójọpọ̀ Òfin Caveman Àwọn àkójọpọ̀ òfin Caveman wà lábẹ́: ```txt open-sse/services/compression/rules//.json ``` Àkójọpọ̀ kọ̀ọ̀kan ní àwọn ìrọ́pò tó kan ọ̀rọ̀ àkọsílẹ̀ déédé lẹ́yìn tí a bá ya àwọn agbègbè tí a dáàbò bò sọ́tọ̀. ```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." } ] } ``` ### Àwọn Pápá Caveman | Pápá | Dandan | Àpèjúwe | | ------------------------ | ------ | ----------------------------------------------------------------------------- | | `language` | bẹ́ẹ̀ni | Kọ́kọ́rọ́ èdè bíi BCP-47, gẹ́gẹ́ bí `en`, `pt-BR`, `es` | | `category` | bẹ́ẹ̀ni | Orúkọ fáìlì/ẹ̀ka àkójọpọ̀, fún àpẹẹrẹ `filler` tàbí `dedup` | | `rules` | bẹ́ẹ̀ni | Àkójọ àwọn òfin ìrọ́pò regex | | `rules[].name` | bẹ́ẹ̀ni | Orúkọ òfin tí kò yí padà | | `rules[].pattern` | bẹ́ẹ̀ni | Orísun regex JavaScript | | `rules[].flags` | rárá | Àwọn àmì regex JavaScript; àiyípadà `gi` | | `rules[].replacement` | rárá | Ọ̀rọ̀ ìrọ́pò tàbí ohun àfẹ̀yìntì nígbà tí `replacementMap` kò bá rí ohun tó bá mu | | `rules[].replacementMap` | rárá | Àwọn ìrọ́pò pàtó fún ìbámu tí ọ̀rọ̀ ìbámu tí a ti ṣe déédé jẹ́ kọ́kọ́rọ́ wọn | | `rules[].context` | rárá | `all`, `user`, `assistant`, tàbí `system`; àiyípadà `all` | | `rules[].category` | rárá | `filler`, `context`, `structural`, `dedup`, `terse`, tàbí `ultra` | | `rules[].minIntensity` | rárá | `lite`, `full`, tàbí `ultra`; àiyípadà `lite` | | `rules[].description` | rárá | Àkótán òfin tí ènìyàn lè kà | Lo `flags` nígbà tí ìbámu tó fiyè sí bí lẹ́tà ṣe tóbi tàbí kékeré bá ṣe pàtàkì, fún àpẹẹrẹ yíyọ article kúrò níwájú ọ̀rọ̀ àkọsílẹ̀ tó bẹ̀rẹ̀ pẹ̀lú lẹ́tà kékeré láì yọ `the OpenAI API` kúrò. Lo `replacementMap` nígbà tí regex kan bá ní àwọn àṣàyàn púpọ̀ tó nílò àwọn àbájáde ọ̀tọ̀ọ̀tọ̀; èyí ń jẹ́ kí àwọn àkójọpọ̀ òfin JSON jẹ́ dátà nìkan, nígbà tó tún ń pa ìhùwàsí àwọn iṣẹ́ ìrọ́pò TypeScript àkóbá tó lágbára mọ́. ## Àwọn Àkójọpọ̀ Àlẹ̀mọ́ RTK Àwọn àlẹ̀mọ́ RTK wà lábẹ́: ```txt open-sse/services/compression/engines/rtk/filters/.json ``` Àlẹ̀mọ́ kọ̀ọ̀kan ṣàpèjúwe bí a ṣe lè dá ìdílé àbájáde-àṣẹ kan mọ̀ àti bí a ṣe lè fún un pọ̀. ```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" } ] } ``` ### Àwọn Ààyè RTK | Ààyè | Dandan | Àpèjúwe | | -------------------------- | ------ | ---------------------------------------------------------------------------- | | `id` | bẹ́ẹ̀ni | Id àlẹ̀mọ́ tí kò yí padà | | `label` | bẹ́ẹ̀ni | Orúkọ tí ó ṣeé kà lórí pátákó ìṣàkóso | | `category` | bẹ́ẹ̀ni | Ìdílé àlẹ̀mọ́: git, test, build, shell, docker, package, infra, cloud, generic | | `priority` | bẹ́ẹ̀kọ́ | Èyí tí ipò rẹ̀ ga jù ni yóò borí nígbà tí ọ̀pọ̀ àlẹ̀mọ́ bá bá mu | | `match.outputTypes` | bẹ́ẹ̀kọ́ | Àwọn id àbájáde olùṣàwárí tí ń yan àlẹ̀mọ́ yìí | | `match.commands` | bẹ́ẹ̀kọ́ | Àwọn àmì àṣẹ tí ń yan àlẹ̀mọ́ yìí | | `match.patterns` | bẹ́ẹ̀kọ́ | Àwọn àpẹẹrẹ regex tí ń yan àlẹ̀mọ́ yìí láti inú ọ̀rọ̀ àbájáde | | `rules.stripAnsi` | bẹ́ẹ̀kọ́ | Yọ àwọn ìtẹ̀lé àsálà ANSI kúrò ṣáájú àwọn ìpele regex | | `rules.replace` | bẹ́ẹ̀kọ́ | Àwọn ìrọ́pò regex tí a tò létòlétò, tí a ń lò lórí ìlà kọ̀ọ̀kan | | `rules.matchOutput` | bẹ́ẹ̀kọ́ | Àwọn òfin àbájáde ìdádúró-kíákíá pẹ̀lú aṣọ́ `unless` tí kò pọn dandan | | `rules.includePatterns` | bẹ́ẹ̀kọ́ | Àwọn ìlà tí ó yẹ kí a fún ní ààyò láti pa mọ́ | | `rules.dropPatterns` | bẹ́ẹ̀kọ́ | Àwọn ìlà tí a ó yọ kúrò gẹ́gẹ́ bí ariwo | | `rules.collapsePatterns` | bẹ́ẹ̀kọ́ | Àwọn ìlà tí ó bá àpẹẹrẹ mu tí wọ́n túnra wọn ṣe, tí a lè ṣú papọ̀ | | `rules.deduplicate` | bẹ́ẹ̀kọ́ | Ṣú àwọn ìlà tí a ti mú dọ́gba tí ó ṣe àdáwòkọ papọ̀ | | `rules.truncateLineAt` | bẹ́ẹ̀kọ́ | Òpin iye àmì lẹ́tà fún ìlà kọ̀ọ̀kan tí ó ní ààbò Unicode | | `rules.maxLines` | bẹ́ẹ̀kọ́ | Iye ìlà tó pọ̀ jù tí a ó pa mọ́ ṣáájú pípa ìparí mọ́ | | `rules.headLines` | bẹ́ẹ̀kọ́ | Àwọn ìlà ìbẹ̀rẹ̀ tí a ó pa mọ́ nígbà gígé kúrú | | `rules.tailLines` | bẹ́ẹ̀kọ́ | Àwọn ìlà ìparí tí a ó pa mọ́ fún àyíká ọ̀rọ̀ tuntun | | `rules.onEmpty` | bẹ́ẹ̀kọ́ | Ìfiranṣẹ́ àfidípò nígbà tí àlẹ̀mọ́ bá yọ gbogbo àkóónú kúrò | | `rules.filterStderr` | bẹ́ẹ̀kọ́ | Mú àwọn ìpele-iṣáájú stderr tí ó wọ́pọ̀ dọ́gba ṣáájú àwọn ìpele àlẹ̀mọ́ tó tẹ̀lé | | `preserve.errorPatterns` | bẹ́ẹ̀kọ́ | Àwọn ìlà àṣìṣe tí ó yẹ kí ó yè gígé kúrú | | `preserve.summaryPatterns` | bẹ́ẹ̀kọ́ | Àwọn ìlà àkótán tí ó yẹ kí ó yè gígé kúrú | | `tests[]` | bẹ́ẹ̀kọ́ | Àwọn àpẹẹrẹ ìfàṣẹsí inú-ìlà tí ibodè ìjẹ́rìísí RTK ń lò | RTK ń lo àwọn ìpele àlàyé ní ìtòlẹ́sẹẹsẹ yìí: `stripAnsi`, `filterStderr`, `replace`, `matchOutput`, `dropPatterns`/`includePatterns`, `truncateLineAt`, `headLines`/`tailLines`, `maxLines`, àti `onEmpty`. A lè kó àwọn àlẹ̀mọ́ àdáni láti: 1. Àwọn fáìlì `.rtk/filters.json` inú iṣẹ́ náà, kìkì lẹ́yìn tí hash `.rtk/trust.json` tí ó bá mu bá wà tàbí tí `trustProjectFilters` bá ṣiṣẹ́. 2. `DATA_DIR/rtk/filters.json` àgbáyé. 3. Àwọn àlẹ̀mọ́ tí a kọ́ sínú ẹ̀rọ. Àwọn fáìlì àdáni inú iṣẹ́/àgbáyé lè ní ohun àlẹ̀mọ́ kan tàbí àkójọpọ̀ àwọn ohun àlẹ̀mọ́. A máa fò àwọn àlẹ̀mọ́ àdáni tí kò bófin mu kọjá pẹ̀lú àyẹ̀wò àṣìṣe; àwọn àlẹ̀mọ́ inú-ẹ̀rọ tí kò bófin mu yóò mú ìfàṣẹsí kùnà. Fáìlì ìgbẹ́kẹ̀lé iṣẹ́: ```json { "filtersSha256": "0123456789abcdef..." } ``` Ìyípadà àyíká `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=1` fọkàn tán àwọn àlẹ̀mọ́ iṣẹ́ láìsí hash, ó sì yẹ kí a fi mọ́ ìdàgbàsókè agbègbè tí a ń ṣàkóso. ## Àwọn Òfin Ààbò - Jẹ́ kí àwọn òfin lè ṣiṣẹ́ léraléra láìyí àbájáde padà: ṣíṣe àsẹ kan náà lẹ́ẹ̀mejì kò gbọ́dọ̀ ba àbájáde jẹ́. - Ṣe ìtọ́jú ọ̀rọ̀ àṣìṣe gẹ́gẹ́ bí ó ti rí, àwọn ipa-ọ̀nà fáìlì, àwọn nọ́ńbà ìlà, àti àwọn àkótán àṣẹ níbi tí ó bá ṣeé ṣe. - Yẹra fún àwọn òfin tí ń ṣàtúnṣe àwọn ìdípọ̀ kóòdù, àwọn payload JSON, àwọn URL, tàbí àwọn àṣírí. - Ṣàfikún ìdánwò unit fún àwọn ìdílé àṣẹ tuntun nínú àwọn ìdánwò olùṣàwárí/àsẹ. - Ṣàfikún àwọn àpẹẹrẹ `tests[]` sí gbogbo àsẹ tí a kọ sínú ètò àti sí àwọn àsẹ àkànṣe tí a pín ní àjọlò. ## Ìfọwọ́sí A máa ń fọwọ́sí àwọn àkójọpọ̀ òfin kí a tó lò wọ́n. Àwọn àkójọpọ̀ Caveman tí a kọ sínú ètò àti àwọn àsẹ RTK tí a kọ sínú ètò máa ń dáwọ́ dúró lẹ́sẹ̀kẹsẹ̀ nígbà ìfọwọ́sí kí a lè ṣàwárí àwọn ohun èlò ìtújáde tó ti bàjẹ́ kí a tó fi wọ́n ránṣẹ́. A máa ń foju àwọn àsẹ RTK àkànṣe kọ pẹ̀lú àlàyé àyẹ̀wò nígbà tí ìtúpalẹ̀ tàbí ìfọwọ́sí ìgbẹ́kẹ̀lé bá kùnà. Ìfọwọ́sí tó dá lórí ohun pàtó: ```bash 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 ```