# Compression Rules Format (اردو) 🌐 **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) · 🇺🇿 [uz](../../../uz/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇻🇳 [vi](../../../vi/docs/compression/COMPRESSION_RULES_FORMAT.md) · 🇳🇬 [yo](../../../yo/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) --- کمپریشن کے قواعد JSON فائلیں ہیں جو رن ٹائم پر لوڈ کی جاتی ہیں۔ انہیں دانستہ طور پر صرف ڈیٹا تک محدود رکھا گیا ہے تاکہ نئے لینگویج پیکس اور RTK کمانڈ فلٹرز کا انجن کوڈ تبدیل کیے بغیر جائزہ لیا جا سکے۔ > **مستند اسکیما (حقیقت کا بنیادی ماخذ):** [`open-sse/services/compression/rules/_schema.json`](../../open-sse/services/compression/rules/_schema.json) (JSON Schema draft 2020-12)۔ > ذیل کی مثالیں صرف وضاحت کے لیے ہیں — شک کی صورت میں اپنے پیک کی `_schema.json` کے مطابق توثیق کریں۔ ## Caveman رول پیکس Caveman رول پیکس یہاں موجود ہوتے ہیں: ```txt open-sse/services/compression/rules//.json ``` ہر پیک میں ایسی تبدیلیاں شامل ہوتی ہیں جو محفوظ حصوں کو الگ کرنے کے بعد عام نثر پر لاگو ہوتی ہیں۔ ```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` | ہاں | regex تبدیلی کے قواعد کی اَرے | | `rules[].name` | ہاں | مستقل رول کا نام | | `rules[].pattern` | ہاں | JavaScript regex سورس | | `rules[].flags` | نہیں | JavaScript regex فلیگز؛ ڈیفالٹ `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` کو حذف کیے۔ جب ایک regex میں متعدد متبادل ہوں جنہیں مختلف آؤٹ پٹس درکار ہوں تو `replacementMap` استعمال کریں؛ اس سے JSON رول پیکس صرف ڈیٹا تک محدود رہتے ہیں جبکہ زیادہ بھرپور بلٹ اِن TypeScript تبدیلی فنکشنز کا طرزِ عمل برقرار رہتا ہے۔ ## RTK فلٹر پیکس RTK فلٹرز یہاں موجود ہوتے ہیں: ```txt open-sse/services/compression/engines/rtk/filters/.json ``` ہر فلٹر یہ بیان کرتا ہے کہ کمانڈ آؤٹ پٹ کے کسی خاندان کو کیسے شناخت اور کمپریس کرنا ہے۔ ```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. پہلے سے موجود فلٹرز۔ پروجیکٹ/عالمی حسبِ ضرورت فائلوں میں ایک فلٹر آبجیکٹ یا فلٹر آبجیکٹس کی ایک ارے ہو سکتی ہے۔ غلط حسبِ ضرورت فلٹرز کو تشخیصی معلومات کے ساتھ چھوڑ دیا جاتا ہے؛ غلط پہلے سے موجود فلٹرز توثیق کو ناکام کر دیتے ہیں۔ پروجیکٹ ٹرسٹ فائل: ```json { "filtersSha256": "0123456789abcdef..." } ``` ماحولیاتی اوور رائیڈ `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=1` کسی ہیش کے بغیر پروجیکٹ فلٹرز پر اعتماد کرتا ہے اور اسے صرف کنٹرول شدہ مقامی ڈیولپمنٹ تک محدود رکھنا چاہیے۔ ## حفاظتی اصول - اصول کو idempotent رکھیں: ایک ہی فلٹر کو دو بار چلانے سے آؤٹ پٹ خراب نہیں ہونا چاہیے۔ - جہاں ممکن ہو، ایرر کا عین متن، فائل پاتھ، لائن نمبرز، اور کمانڈ کے خلاصے برقرار رکھیں۔ - ایسے اصولوں سے گریز کریں جو کوڈ بلاکس، JSON پے لوڈز، URLs، یا رازوں میں ترمیم کریں۔ - detector/filter ٹیسٹس میں نئی کمانڈ فیملیز کے لیے یونٹ کوریج شامل کریں۔ - ہر بلٹ اِن فلٹر اور مشترکہ کسٹم فلٹرز میں `tests[]` نمونے شامل کریں۔ ## توثیق رول پیکس کو استعمال سے پہلے validate کیا جاتا ہے۔ بلٹ اِن Caveman پیکس اور بلٹ اِن RTK فلٹرز validation کے دوران فوراً ناکام ہو جاتے ہیں، تاکہ خراب ریلیز assets کو ترسیل سے پہلے ہی پکڑ لیا جائے۔ parsing یا trust validation ناکام ہونے پر کسٹم RTK فلٹرز کو diagnostics کے ساتھ چھوڑ دیا جاتا ہے۔ مرکوز توثیق: ```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 ```