🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 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 · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 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
Ir-regoli tal-kompressjoni huma fajls JSON li jitgħabbew waqt it-tħaddim. Huma intenzjonalment jinkludu data biss sabiex pakketti lingwistiċi ġodda u filtri tal-kmandi RTK ikunu jistgħu jiġu rieżaminati mingħajr ma jinbidel il-kodiċi tal-magna.
Skema kanonika (sors tal-verità):
open-sse/services/compression/rules/_schema.json(JSON Schema abbozz 2020-12). L-eżempji ta’ hawn taħt huma illustrattivi — meta jkollok dubju, ivvalida l-pakkett tiegħek ma’_schema.json.
Il-pakketti tar-regoli Caveman jinsabu taħt:
open-sse/services/compression/rules/<language>/<pack>.jsonKull pakkett fih sostituzzjonijiet li japplikaw għal proża normali wara li r-reġjuni protetti jiġu iżolati.
{
"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."
}
]
}| Qasam | Meħtieġ | Deskrizzjoni |
|---|---|---|
language |
iva | Kodiċi tal-lingwa simili għal BCP-47 bħal en, pt-BR, es |
category |
iva | Isem il-fajl/kategorija tal-pakkett, pereżempju filler jew dedup |
rules |
iva | Array ta’ regoli ta’ sostituzzjoni regex |
rules[].name |
iva | Isem stabbli tar-regola |
rules[].pattern |
iva | Sors tar-regex ta’ JavaScript |
rules[].flags |
le | Flags tar-regex ta’ JavaScript; il-valur predefinit huwa gi |
rules[].replacement |
le | Stringa ta’ sostituzzjoni jew alternattiva meta replacementMap ma ssibx qbil |
rules[].replacementMap |
le | Sostituzzjonijiet speċifiċi għall-qbil, indiċjati bit-test normalizzat li jkun tqabbel |
rules[].context |
le | all, user, assistant, jew system; il-valur predefinit huwa all |
rules[].category |
le | filler, context, structural, dedup, terse, jew ultra |
rules[].minIntensity |
le | lite, full, jew ultra; il-valur predefinit huwa lite |
rules[].description |
le | Sommarju tar-regola li jinqara mill-bniedem |
Uża flags meta jkun importanti li t-tqabbil ikun sensittiv għall-każ, pereżempju għat-tneħħija ta’ artiklu qabel proża b’ittri żgħar mingħajr ma jitneħħa the OpenAI API. Uża replacementMap meta regex waħda jkollha diversi alternattivi li jeħtieġu outputs differenti; dan iżomm il-pakketti tar-regoli JSON bħala data biss filwaqt li jippreserva l-imġiba tal-funzjonijiet ta’ sostituzzjoni TypeScript integrati u aktar sofistikati.
Il-filtri RTK jinsabu taħt:
open-sse/services/compression/engines/rtk/filters/<filter>.jsonKull filtru jiddeskrivi kif tiġi rikonoxxuta u kkompressata familja ta’ outputs tal-kmandi.
{
"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"
}
]
}| Qasam | Meħtieġ | Deskrizzjoni |
|---|---|---|
id |
iva | Identifikatur stabbli tal-filtru |
label |
iva | Isem li jista’ jinqara mid-dashboard |
category |
iva | Familja tal-filtru: git, test, build, shell, docker, package, infra, cloud, generic |
priority |
le | Il-prijorità ogħla tirbaħ meta jaqblu diversi filtri |
match.outputTypes |
le | Identifikaturi tal-output tad-detector li jagħżlu dan il-filtru |
match.commands |
le | Tokens tal-kmand li jagħżlu dan il-filtru |
match.patterns |
le | Mudelli regex li jagħżlu dan il-filtru mit-test tal-output |
rules.stripAnsi |
le | Neħħi s-sekwenzi escape ANSI qabel l-istadji regex |
rules.replace |
le | Sostituzzjonijiet regex ordnati applikati linja b’linja |
rules.matchOutput |
le | Regoli tal-output li jwaqqfu l-ipproċessar minnufih, b’kundizzjoni fakultattiva unless |
rules.includePatterns |
le | Linji li għandhom jingħataw preferenza biex jiġu ppreservati |
rules.dropPatterns |
le | Linji li għandhom jitneħħew bħala storbju |
rules.collapsePatterns |
le | Linji ripetuti li jaqblu u li jistgħu jiġu kkollassati |
rules.deduplicate |
le | Ikkollassa linji normalizzati duplikati |
rules.truncateLineAt |
le | Limitu ta’ karattri għal kull linja li huwa sikur għall-Unicode |
rules.maxLines |
le | Numru massimu ta’ linji miżmuma qabel il-preservazzjoni tat-tarf |
rules.headLines |
le | Linji tal-bidu miżmuma waqt it-tronkament |
rules.tailLines |
le | Linji tat-tarf miżmuma għall-kuntest reċenti |
rules.onEmpty |
le | Messaġġ alternattiv meta l-iffiltrar ineħħi l-kontenut kollu |
rules.filterStderr |
le | Innormallizza prefissi komuni ta’ stderr qabel l-istadji sussegwenti tal-iffiltrar |
preserve.errorPatterns |
le | Linji tal-iżbalji li għandhom jibqgħu wara t-tronkament |
preserve.summaryPatterns |
le | Linji tas-sommarju li għandhom jibqgħu wara t-tronkament |
tests[] |
le | Kampjuni ta’ verifika inline użati mill-kontroll verify ta’ RTK |
RTK japplika l-istadji dikjarattivi f’din l-ordni: stripAnsi, filterStderr, replace,
matchOutput, dropPatterns/includePatterns, truncateLineAt, headLines/tailLines,
maxLines, u onEmpty.
Filtri personalizzati jistgħu jitgħabbew minn:
- Fajls tal-proġett
.rtk/filters.jsonbiss wara li jkun preżenti hash korrispondenti f’.rtk/trust.jsonjew ikun attivattrustProjectFilters. DATA_DIR/rtk/filters.jsonglobali.- Filtri integrati.
Fajls personalizzati tal-proġett/globali jistgħu jinkludu oġġett wieħed ta’ filtru jew array ta’ oġġetti ta’ filtri. Filtri personalizzati invalidi jinqabżu b’dijanjostika; filtri integrati invalidi jwasslu biex il-validazzjoni tfalli.
Fajl tal-fiduċja tal-proġett:
{
"filtersSha256": "0123456789abcdef..."
}Is-sovraspożizzjoni tal-ambjent OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=1 tafda l-filtri tal-proġett mingħajr
hash u għandha tkun limitata għal żvilupp lokali kkontrollat.
- Żomm ir-regoli idempotenti: it-tħaddim tal-istess filtru darbtejn m'għandux jikkorrompi l-output.
- Ippreserva fejn possibbli t-test eżatt tal-iżbalji, il-paths tal-fajls, in-numri tal-linji, u s-sommarji tal-kmandi.
- Evita regoli li jimmodifikaw blokok tal-kodiċi, payloads JSON, URLs, jew sigrieti.
- Żid kopertura ta' unit tests għal familji ġodda ta' kmandi fit-tests tad-detector/filtru.
- Żid kampjuni
tests[]ma' kull filtru integrat u mal-filtri personalizzati kondiviżi.
Il-pakketti tar-regoli jiġu vvalidati qabel l-użu. Il-pakketti Caveman integrati u l-filtri RTK integrati jieqfu immedjatament waqt il-validazzjoni sabiex assets tar-rilaxx difettużi jinqabdu qabel id-distribuzzjoni. Il-filtri RTK personalizzati jinqabżu b'dijanjostiċi meta l-parsing jew il-validazzjoni tal-fiduċja tfalli.
Validazzjoni ffukata:
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