Skip to content

Latest commit

 

History

History
192 lines (160 loc) · 22.1 KB

COMPRESSION_RULES_FORMAT.md

File metadata and controls

192 lines (160 loc) · 22.1 KB

Compression Rules Format (ಕನ್ನಡ)

🌐 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 · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 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


ಸಂಕೋಚನ ನಿಯಮಗಳು ರನ್ಟೈಮ್ನಲ್ಲಿ ಲೋಡ್ ಆಗುವ 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 ಹೌದು en, pt-BR, es ಮುಂತಾದ BCP-47-ಸದೃಶ ಭಾಷಾ ಕೀ
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 ಬಳಸಿ; ಇದು ಹೆಚ್ಚು ಸಮೃದ್ಧವಾದ ಅಂತರ್ನಿರ್ಮಿತ TypeScript ಬದಲಿ ಫಂಕ್ಷನ್ಗಳ ನಡವಳಿಕೆಯನ್ನು ಉಳಿಸಿಕೊಂಡೇ JSON ನಿಯಮ ಪ್ಯಾಕ್ಗಳನ್ನು ಡೇಟಾ-ಮಾತ್ರವಾಗಿ ಇರಿಸುತ್ತದೆ.

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 ಹೌದು ಸ್ಥಿರ ಫಿಲ್ಟರ್ 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 ಎಸ್ಕೇಪ್ ಅನುಕ್ರಮಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ
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 ಹ್ಯಾಶ್ ಇದ್ದ ನಂತರ ಮಾತ್ರ ಪ್ರಾಜೆಕ್ಟ್ .rtk/filters.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