# 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) · 🇮🇳 [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) · 🇳🇬 [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 வரைவு 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` | ஆம் | `en`, `pt-BR`, `es` போன்ற BCP-47-ஐ ஒத்த மொழிச் சாவி | | `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` என்பதை அகற்றாமல், சிற்றெழுத்து உரைநடைக்கு முன் வரும் article-ஐ அகற்றும்போது இதைப் பயன்படுத்தலாம். ஒரு regex-இல் வெவ்வேறு வெளியீடுகள் தேவைப்படும் பல மாற்றுகள் இருக்கும்போது `replacementMap`-ஐப் பயன்படுத்தவும்; இது, அதிக செயல்திறன் கொண்ட உள்ளமைக்கப்பட்ட TypeScript மாற்றீட்டுச் செயல்பாடுகளின் நடத்தையைத் தக்கவைத்தபடியே, JSON விதித் தொகுப்புகளை தரவு மட்டுமே கொண்டவையாக வைத்திருக்கிறது. ## RTK வடிகட்டி தொகுப்புகள் RTK வடிகட்டிகள் பின்வரும் இடத்தில் உள்ளன: ```txt open-sse/services/compression/engines/rtk/filters/.json ``` ஒவ்வொரு வடிகட்டியும் ஒரு கட்டளை வெளியீட்டுக் குடும்பத்தை எவ்வாறு அடையாளம் கண்டு சுருக்குவது என்பதை விவரிக்கிறது. ```json { "id": "test-vitest", "label": "Vitest வெளியீடு", "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: சரி", "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: சரி", "filterStderr": false }, "preserve": { "errorPatterns": ["FAIL", "Error:", "AssertionError"], "summaryPatterns": ["Test Files", "Tests", "Snapshots"] }, "tests": [ { "name": "தோல்வியடைந்த சோதனைகளை வைத்திருக்கிறது", "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` | ஆம் | நிலையான வடிகட்டி id | | `label` | ஆம் | முகப்புப் பலகையில் வாசிக்கக்கூடிய பெயர் | | `category` | ஆம் | வடிகட்டி குடும்பம்: git, test, build, shell, docker, package, infra, cloud, generic | | `priority` | இல்லை | பல வடிகட்டிகள் பொருந்தும்போது அதிக முன்னுரிமை கொண்டது தேர்வாகும் | | `match.outputTypes` | இல்லை | இந்த வடிகட்டியைத் தேர்ந்தெடுக்கும் கண்டறிவான் வெளியீட்டு id-கள் | | `match.commands` | இல்லை | இந்த வடிகட்டியைத் தேர்ந்தெடுக்கும் கட்டளை டோக்கன்கள் | | `match.patterns` | இல்லை | வெளியீட்டு உரையிலிருந்து இந்த வடிகட்டியைத் தேர்ந்தெடுக்கும் regex வடிவங்கள் | | `rules.stripAnsi` | இல்லை | regex கட்டங்களுக்கு முன் ANSI escape தொடர்களை அகற்றும் | | `rules.replace` | இல்லை | ஒவ்வொரு வரியாகவும் பயன்படுத்தப்படும் வரிசைப்படுத்தப்பட்ட regex மாற்றீடுகள் | | `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/trust.json` hash இருந்த பின்னரே திட்டத்தின் `.rtk/filters.json` கோப்புகள் ஏற்றப்படும் அல்லது `trustProjectFilters` இயக்கப்பட்டிருக்க வேண்டும். 2. உலகளாவிய `DATA_DIR/rtk/filters.json`. 3. உள்ளமைந்த வடிகட்டிகள். திட்டம்/உலகளாவிய தனிப்பயன் கோப்புகள் ஒரு வடிகட்டி பொருளையோ அல்லது வடிகட்டி பொருட்களின் வரிசையையோ கொண்டிருக்கலாம். செல்லுபடியாகாத தனிப்பயன் வடிகட்டிகள் கண்டறிதல் தகவல்களுடன் தவிர்க்கப்படும்; செல்லுபடியாகாத உள்ளமைந்த வடிகட்டிகள் சரிபார்ப்பைத் தோல்வியடையச் செய்யும். திட்ட நம்பகக் கோப்பு: ```json { "filtersSha256": "0123456789abcdef..." } ``` சூழல் மீறமைப்பு `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=1`, hash இன்றியே திட்ட வடிகட்டிகளை நம்புகிறது; இது கட்டுப்படுத்தப்பட்ட உள்ளூர் மேம்பாட்டிற்கு மட்டுமே வரையறுக்கப்பட வேண்டும். ## பாதுகாப்பு விதிகள் - விதிகளை மீள்செயல்படுத்தக்கூடியவையாக வைத்திருங்கள்: ஒரே வடிப்பானை இருமுறை இயக்குவது வெளியீட்டைச் சிதைக்கக் கூடாது. - சாத்தியமான இடங்களில் துல்லியமான பிழை உரை, கோப்புப் பாதைகள், வரி எண்கள் மற்றும் கட்டளைச் சுருக்கங்களை அப்படியே பாதுகாக்கவும். - குறியீட்டுத் தொகுதிகள், JSON தரவுச் சுமைகள், URL-கள் அல்லது ரகசியங்களை மாற்றும் விதிகளைத் தவிர்க்கவும். - கண்டறிவான்/வடிப்பான் சோதனைகளில் புதிய கட்டளைக் குடும்பங்களுக்கான அலகுச் சோதனை உள்ளடக்கத்தைச் சேர்க்கவும். - ஒவ்வொரு உள்ளமைந்த வடிப்பானிலும் பகிரப்பட்ட தனிப்பயன் வடிப்பான்களிலும் `tests[]` மாதிரிகளைச் சேர்க்கவும். ## சரிபார்ப்பு விதித் தொகுப்புகள் பயன்படுத்தப்படுவதற்கு முன் சரிபார்க்கப்படுகின்றன. உள்ளமைந்த Caveman தொகுப்புகளும் உள்ளமைந்த RTK வடிப்பான்களும் சரிபார்ப்பின்போது உடனடியாகத் தோல்வியடைவதால், சிதைந்த வெளியீட்டுச் சொத்துகள் அனுப்பப்படுவதற்கு முன்பே கண்டறியப்படுகின்றன. பாகுபடுத்தல் அல்லது நம்பகத்தன்மைச் சரிபார்ப்பு தோல்வியடையும்போது, தனிப்பயன் RTK வடிப்பான்கள் கண்டறிதல் தகவல்களுடன் தவிர்க்கப்படுகின்றன. குறிப்பிட்ட சரிபார்ப்பு: ```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 ```