
वास्तविक समय npm/PyPI आपूर्ति-श्रृंखला खतरे का पता लगाना। व्यवहारिक श्रृंखला विश्लेषण, AST स्कैनिंग, IOC फ़ीड और समग्र स्कोरिंग इंजन।
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/10373/84132538a800a2879cff088259fe9e98e975a3fe37f8462fe731d6a06f82314a.png" alt="MUAD'DIB Logo" width="700">
</p>
<p align="center">
<a href="https://www.npmjs.com/package/muaddib-scanner"><img src="https://img.shields.io/npm/v/muaddib-scanner" alt="npm version"></a>
<a href="https://github.com/DNSZLSK/muad-dib/actions/workflows/scan.yml"><img src="https://github.com/DNSZLSK/muad-dib/actions/workflows/scan.yml/badge.svg" alt="CI"></a>
<a href="https://codecov.io/gh/DNSZLSK/muad-dib"><img src="https://codecov.io/gh/DNSZLSK/muad-dib/branch/master/graph/badge.svg" alt="Coverage"></a>
<a href="https://scorecard.dev/viewer/?uri=github.com/DNSZLSK/muad-dib"><img src="https://api.scorecard.dev/projects/github.com/DNSZLSK/muad-dib/badge" alt="OpenSSF Scorecard"></a>
<img src="https://img.shields.io/badge/license-AGPL--3.0--only-blue" alt="License">
<img src="https://img.shields.io/badge/node-%3E=18-brightgreen" alt="Node">
<img src="https://img.shields.io/badge/IOCs-225,000+-red" alt="IOCs">
</p>
<p align="center">
<a href="#installation">स्थापना</a> |
<a href="#usage">उपयोग</a> |
<a href="#features">विशेषताएँ</a> |
<a href="#vs-code">VS Code</a> |
<a href="#cicd">CI/CD</a>
</p>
<p align="center">
<a href="https://github.com/dnszlsk/muad-dib/blob/master/docs/README.fr.md">Version francaise</a>
</p>
---
## MUAD'DIB क्यों?
npm और PyPI सप्लाई-चेन हमले तेजी से बढ़ रहे हैं। Shai-Hulud ने 2025 में 25K+ रिपॉजिटरी से समझौता किया। मौजूदा टूल खतरों का पता लगाते हैं लेकिन प्रतिक्रिया देने में मदद नहीं करते।
MUAD'DIB **<!--stat:scanners-->22<!--/stat:scanners--> समानांतर स्कैनर** (<!--stat:rulesTotal-->278<!--/stat:rulesTotal--> डिटेक्शन नियम), एक **डीओबफस्केशन इंजन**, **इंटर-मॉड्यूल डेटाफ्लो विश्लेषण**, **कंपाउंड स्कोरिंग** (<!--stat:compound-->21<!--/stat:compound--> कंपाउंड नियम), और एक gVisor/Docker सैंडबॉक्स को जोड़ता है ताकि npm और PyPI पैकेजों में ज्ञात खतरों और संदिग्ध व्यवहार पैटर्न का पता लगाया जा सके। कोडबेस में एक XGBoost क्लासिफायर मौजूद है लेकिन **वर्तमान में निष्क्रिय** है (देखें [मूल्यांकन](#evaluation))।
---
## स्थिति
MUAD'DIB npm और PyPI के लिए एक मुफ्त, खुला और पूरी तरह से ऑडिट योग्य सप्लाई-चेन स्कैनर है। यह **ज्ञात** खतरों (225,000+ IOCs), इंस्टॉल-टाइम RCE, क्रेडेंशियल-फिर-एक्सफिल्ट्रेशन फ्लो, ओबफस्केटेड पेलोड, और अन्य संदिग्ध व्यवहार पैटर्न का पता लगाता है — स्थानीय रूप से, बिना किसी टेलीमेट्री के।
यह **AGPL-3.0** के तहत लाइसेंस प्राप्त है; उन संगठनों के लिए एक **वाणिज्यिक लाइसेंस** उपलब्ध है जिन्हें इसे मालिकाना उत्पाद में एम्बेड करने या बंद होस्टेड सेवा के रूप में चलाने की आवश्यकता है (देखें [लाइसेंस](#license))।
यह जानबूझकर सब कुछ करने की कोशिश नहीं करता — यह वास्तव में क्या पकड़ता है और क्या नहीं, इसके लिए देखें [दायरा](#scope)।
---
## दायरा
**पता लगाता है** (npm और PyPI): ज्ञात-दुर्भावनापूर्ण पैकेज (नाम + SHA256 IOC मिलान), टाइपोस्क्वाट्स, इंस्टॉल-टाइम RCE (लाइफसाइकिल `preinstall`/`postinstall`, `curl | sh`, Python इम्पोर्ट-टाइम, `binding.gyp`), क्रेडेंशियल पढ़ना फिर नेटवर्क एक्सफिल्ट्रेशन (इंट्रा- और क्रॉस-फाइल), ओबफस्केटेड / उच्च-एन्ट्रॉपी / स्टब-लोडर पेलोड, बाइनरी ड्रॉपर (`chmod +x` + exec/spawn), और एंटी-विश्लेषण एवेज़न मार्कर।
**दायरे से बाहर**: केवल-ब्राउज़र हमले (DOM/`window`, कोई Node.js API नहीं), नेटिव बाइनरी / WASM की *सामग्री* (कोई बाइनरी विश्लेषण नहीं), ज़ीरो-डे अज्ञात पैकेज (IOC फीड प्रतिक्रियाशील है), और गैर-npm/PyPI इकोसिस्टम (RubyGems, Maven, Go)। दृढ़ एंटी-सैंडबॉक्स फिंगरप्रिंटिंग और मल्टी-स्टेज रिमोट पेलोड ज्ञात फॉल्स-नेगेटिव जोखिम हैं। पूरा विवरण: [थ्रेट मॉडल](https://github.com/dnszlsk/muad-dib/blob/master/docs/threat-model.md)।
**कोई टेलीमेट्री नहीं।** आपका कोड और स्कैन परिणाम कभी भी आपकी मशीन नहीं छोड़ते — MUAD'DIB केवल थ्रेट-इंटेल फीड *डाउनलोड* करता है (`muaddib update`) और, स्कोरिंग के लिए, सार्वजनिक npm रजिस्ट्री मेटाडेटा पढ़ता है। वेबहुक अलर्ट ऑप्ट-इन हैं।
---
## स्थापना
### npm (अनुशंसित)
```bash
npm install -g muaddib-scanner
```
### स्रोत से
```bash
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm link
```
---
## उपयोग
### बुनियादी स्कैन
```bash
muaddib scan .
muaddib scan /path/to/project
```
npm (package.json, node_modules) और Python (requirements.txt, setup.py, pyproject.toml) दोनों निर्भरताओं को स्कैन करता है।
### इंटरैक्टिव मोड
```bash
muaddib
```
### सुरक्षित इंस्टॉल
```bash
muaddib install <package>
muaddib install lodash axios --save-dev
muaddib install suspicious-pkg --force # खतरों के बावजूद फोर्स इंस्टॉल
```
इंस्टॉल करने से पहले पैकेजों को खतरों के लिए स्कैन करता है। ज्ञात दुर्भावनापूर्ण पैकेजों को ब्लॉक करता है।
### जोखिम स्कोर
प्रत्येक स्कैन 0-100 जोखिम स्कोर प्रदर्शित करता है:
```
[SCORE] 58/100 [***********---------] HIGH
```
### व्याख्या मोड
```bash
muaddib scan . --explain
```
प्रत्येक डिटेक्शन के लिए नियम ID, MITRE ATT&CK तकनीक, संदर्भ और प्रतिक्रिया प्लेबुक दिखाता है।
### निर्यात
```bash
muaddib scan . --json > results.json # JSON
muaddib scan . --html report.html # HTML
muaddib scan . --sarif results.sarif # SARIF (GitHub Security)
```
### गंभीरता सीमा
```bash
muaddib scan . --fail-on critical # केवल CRITICAL पर विफल
muaddib scan . --fail-on high # HIGH और CRITICAL पर विफल (डिफ़ॉल्ट)
```
### पैरानॉयड मोड
```bash
muaddib scan . --paranoid
```
कम सहनशीलता के साथ अति-सख्त डिटेक्शन। किसी भी नेटवर्क एक्सेस, सबप्रोसेस निष्पादन, डायनामिक कोड मूल्यांकन और संवेदनशील फ़ाइल एक्सेस का पता लगाता है।
### वेबहुक अलर्ट
```bash
muaddib scan . --webhook "https://discord.com/api/webhooks/..."
```
सख्त फ़िल्टरिंग (v2.1.2): अलर्ट केवल IOC मिलान, सैंडबॉक्स-पुष्टि खतरों, या कैनरी टोकन एक्सफिल्ट्रेशन के लिए। प्राथमिकता ट्राइएज (v2.10.21): P1 (लाल, IOC/सैंडबॉक्स/कैनरी), P2 (नारंगी, उच्च-स्कोर/कंपाउंड), P3 (पीला, बाकी)।
### व्यवहारिक विसंगति डिटेक्शन (v2.0)
```bash
muaddib scan . --temporal-full # सभी 4 टेम्पोरल फीचर्स
muaddib scan . --temporal # अचानक लाइफसाइकिल स्क्रिप्ट डिटेक्शन
muaddib scan . --temporal-ast # संस्करणों के बीच AST अंतर
muaddib scan . --temporal-publish # प्रकाशन आवृत्ति विसंगति
muaddib scan . --temporal-maintainer # मेंटेनर परिवर्तन डिटेक्शन
```
पैकेज संस्करणों के बीच परिवर्तनों का विश्लेषण करके IOC डेटाबेस में दिखाई देने से **पहले** सप्लाई-चेन हमलों का पता लगाता है। विवरण के लिए देखें [मूल्यांकन पद्धति](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION_METHODOLOGY.md)।
### Docker सैंडबॉक्स
```bash
muaddib sandbox <package-name>
muaddib sandbox <package-name> --strict
```
पृथक Docker कंटेनर में डायनामिक विश्लेषण: strace, tcpdump, फाइलसिस्टम अंतर, कैनरी टोकन, CI-जागरूक वातावरण, और टाइम-बम डिटेक्शन के लिए मंकी-पैचिंग प्रीलोड ([0h, 72h, 7d] ऑफसेट पर मल्टी-रन)।
### अन्य कमांड
```bash
muaddib watch . # रीयल-टाइम मॉनिटरिंग
muaddib daemon # डेमॉन मोड (npm install का ऑटो-स्कैन)
muaddib update # IOCs अपडेट करें (तेज़, ~5s)
muaddib scrape # पूर्ण IOC रिफ्रेश (~5min)
muaddib diff HEAD~1 # पिछले कमिट के साथ खतरों की तुलना करें
muaddib init-hooks # प्री-कमिट हुक (husky/pre-commit/git)
muaddib scan . --breakdown # व्याख्यात्मक स्कोर विघटन
muaddib replay # ग्राउंड ट्रुथ सत्यापन (90/94 TPR@3, v2.11.48)
```
---
## विशेषताएँ
### <!--stat:scanners-->22<!--/stat:scanners--> समानांतर स्कैनर
| स्कैनर | डिटेक्शन |
|---------|-----------|
| AST Parse (acorn) | eval, Function, क्रेडेंशियल चोरी, बाइनरी ड्रॉपर, प्रोटोटाइप हुक |
| Pattern Matching | शेल कमांड, रिवर्स शेल, डेड मैन स्विच |
| Dataflow Analysis | क्रेडेंशियल पढ़ना + नेटवर्क भेजना (इंट्रा-फाइल और क्रॉस-फाइल) |
| Obfuscation Detection | JS ओबफस्केशन पैटर्न (.min.js छोड़ें) |
| Deobfuscation Pre-processing | स्ट्रिंग concat, charcode, base64, hex array, const प्रसार |
| Inter-module Dataflow | क्रॉस-फाइल टेंट प्रसार (3-हॉप चेन, क्लास मेथड) |
| Intent Coherence | इंट्रा-फाइल सोर्स-सिंक पेयरिंग (क्रेडेंशियल + eval/नेटवर्क) |
| Typosquatting | npm + PyPI (Levenshtein दूरी) |
| Python Scanner | requirements.txt, setup.py, pyproject.toml, 14K+ PyPI IOCs |
| Shannon Entropy | उच्च-एन्ट्रॉपी स्ट्रिंग्स (5.5 बिट्स + न्यूनतम 50 अक्षर) |
| AI Config Scanner | .cursorrules, CLAUDE.md, copilot-instructions.md इंजेक्शन |
| Package/Dependencies | लाइफसाइकिल स्क्रिप्ट, IOC मिलान (225K+ पैकेज) |
| GitHub Actions | Shai-Hulud बैकडोर डिटेक्शन |
| Hash Scanner | ज्ञात दुर्भावनापूर्ण फ़ाइल हैश |
| IOC Strings (intel-triage P1.1) | YARA-शैली स्ट्रिंग मिलान (Axios 2026, TeamPCP, GlassWorm, CanisterSprawl) |
| Anti-Forensic AST (intel-triage P1.2) | XOR लूप + सेल्फ-डिलीट + डिकॉय राइट कंपाउंड (csec autodelete) |
| Stub Package (intel-triage P1.3) | छोटी मुख्य फ़ाइल + बाहरी dep URL + लाइफसाइकिल हुक (ltidi चेन) |
| Monorepo Scanner | Lerna/pnpm-workspace/turbo डिटेक्शन (Sprint 1 ऑडिट MR-C2 फिक्स) |
| Trusted-Dep-Diff (ऑप्ट-इन) | रजिस्ट्री से विश्वसनीय dep tarballs के विरुद्ध अंतर (v2.10.x) |
| Python Source (PYSRC) | `__init__.py` / `setup.py` में इम्पोर्ट-टाइम / इंस्टॉल-टाइम RCE पैटर्न (v2.11.41 — TrapDoor PyPI गैप बंद करता है) |
| Python AST (PYAST) | टेंट-जागरूक डिटेक्टरों के साथ Tree-sitter-Python AST (v2.11.42+) |
| Anti-Scanner Injection (ASI) | टिप्पणियों/स्ट्रिंग्स में प्रॉम्प्ट-इंजेक्शन टेक्स्ट जो LLM कोड समीक्षक को स्वच्छ निर्णय देने या ओबफस्केटेड पेलोड को छोड़ने के लिए मजबूर करता है (ASI-001..004, Hades अभियान 2026-06) |
### <!--stat:rulesTotal-->278<!--/stat:rulesTotal--> डिटेक्शन नियम
सभी नियम (<!--stat:rulesCore-->273<!--/stat:rulesCore--> RULES + <!--stat:rulesParanoid-->5<!--/stat:rulesParanoid--> PARANOID) MITRE ATT&CK तकनीकों से मैप किए गए हैं। पूर्ण नियम संदर्भ के लिए देखें [SECURITY.md](https://github.com/dnszlsk/muad-dib/blob/master/SECURITY.md#detection-rules)।
### पता लगाए गए अभियान
| अभियान | स्थिति |
|----------|--------|
| GlassWorm (2026, 433+ पैकेज) | पता चला |
| Shai-Hulud v1/v2/v3 (2025) | पता चला |
| event-stream (2018) | पता चला |
| eslint-scope (2018) | पता चला |
| Protestware (node-ipc, colors, faker) | पता चला |
| Typosquats (crossenv, mongose, babelcli) | पता चला |
---
## VS Code
VS Code एक्सटेंशन स्वचालित रूप से आपके npm प्रोजेक्ट्स को स्कैन करता है।
```bash
code --install-extension dnszlsk.muaddib-vscode
```
- `MUAD'DIB: Scan Project` - पूरे प्रोजेक्ट को स्कैन करें
- `MUAD'DIB: Scan Current File` - वर्तमान फ़ाइल को स्कैन करें
- सेटिंग्स: `muaddib.autoScan`, `muaddib.webhookUrl`, `muaddib.failLevel`
पूर्ण दस्तावेज़ीकरण के लिए देखें [vscode-extension/README.md](https://github.com/dnszlsk/muad-dib/blob/master/vscode-extension/README.md)।
---
## CI/CD
### GitHub Actions (Marketplace)
न्यूनतम (HIGH+ खतरों पर बिल्ड विफल करें, एकल स्कैन):
```yaml
name: Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DNSZLSK/[email protected] # रिलीज़ किए गए टैग पर पिन करें
with:
fail-on: 'high'
```
**Security** टैब पर SARIF अपलोड के साथ (`security-events: write` की आवश्यकता है; SARIF उत्सर्जित करने के लिए दूसरा पास चलाता है):
```yaml
jobs:
scan:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- uses: DNSZLSK/[email protected]
with:
path: '.'
fail-on: 'high'
sarif: 'results.sarif'
```
**इनपुट**
| इनपुट | विवरण | डिफ़ॉल्ट |
|-------|-------------|---------|
| `path` | स्कैन करने का पथ | `.` |
| `fail-on` | विफल करने के लिए न्यूनतम गंभीरता (`critical`/`high`/`medium`/`low`/`none`) | `high` |
| `sarif` | SARIF आउटपुट फ़ाइल पथ — Security टैब पर अपलोड करने के लिए भी सेट करें | |
| `paranoid` | अति-सख्त डिटेक्शन (उच्च FPR) | `false` |
| `version` | इंस्टॉल करने के लिए `muaddib-scanner` npm संस्करण | `latest` |
**आउटपुट** (बाद के चरणों में `steps.<id>.outputs.*` के माध्यम से उपभोग करें)
| आउटपुट | विवरण |
|--------|-------------|
| `risk-score` | जोखिम स्कोर 0–100 |
| `risk-level` | `SAFE` / `LOW` / `MEDIUM` / `HIGH` / `CRITICAL` |
| `threats-count` | कुल पता लगाए गए खतरे |
| `critical-count` / `high-count` | गंभीरता के अनुसार खतरे |
| `exit-code` | `0` = `fail-on` गेट पास किया, अन्यथा गैर-शून्य |
| `sarif-file` | SARIF फ़ाइल का पथ (यदि `sarif` सेट नहीं है तो खाली) |
### प्री-कमिट हुक
```bash
muaddib init-hooks # ऑटो-डिटेक्ट (husky/pre-commit/git)
muaddib init-hooks --type husky # फोर्स husky
muaddib init-hooks --mode diff # केवल नए खतरों को ब्लॉक करें
```
pre-commit फ्रेमवर्क के साथ:
```yaml
repos:
- repo: https://github.com/DNSZLSK/muad-dib
rev: v2.11.139
hooks:
- id: muaddib-scan
```
---
## मूल्यांकन
अंतिम माप **v2.11.48** (2026-05-26), **केवल-नियम** (ML क्लासिफायर निष्क्रिय है — नीचे देखें)। ग्राउंड ट्रुथ: 94 इन-स्कोप वास्तविक-विश्व हमले + 200 रैंडम npm + 124 PyPI + 107 प्रतिकूल/होल्डआउट।
| मीट्रिक | परिणाम |
|--------|--------|
| डिटेक्शन दर (TPR@3) | **95.74%** (90/94) |
| अलर्ट दर (TPR@20) | **88.30%** (83/94) |
| FPR — क्यूरेटेड npm (548) | **1.10%** (6/545) |
| FPR — रैंडम npm (200) | **2.50%** (5/200) |
| FPR — PyPI (132) | **9.68%** (12/124) |
| ADR — प्रतिकूल + होल्डआउट | **96.26%** (103/107) |
| वाइल्ड TPR (Datadog 17K) | **92.8%** (13,538/14,587) |
**ML क्लासिफायर: निष्क्रिय।** एक XGBoost मॉडल `src/ml/` में मौजूद है लेकिन `muaddib scan` में कभी वायर्ड नहीं है, और 2026-04-08 से मॉनिटर में केवल LOG-ONLY चलता है (प्रशिक्षित मॉडल ढह गया, पुनः प्रशिक्षण लंबित)। उपरोक्त सभी संख्याएँ केवल-नियम हैं।
पूर्ण प्रोटोकॉल, प्रति-ट्रैक इतिहास, PyPI cap-35 चेतावनी, परिचालन (GHSA-नामित) कवरेज, और ML पुनः प्रशिक्षण पद्धति: [मूल्यांकन पद्धति](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION_METHODOLOGY.md)।
---
## योगदान
### IOCs जोड़ें
`iocs/` में YAML फ़ाइलें संपादित करें:
```yaml
- id: NEW-MALWARE-001
name: "malicious-package"
version: "*"
severity: critical
confidence: high
source: community
description: "Threat description"
references:
- https://example.com/article
mitre: T1195.002
```
### विकास
```bash
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm test
```
### परीक्षण
- **<!--stat:tests-->4545<!--/stat:tests--> परीक्षण** <!--stat:testFiles-->155<!--/stat:testFiles--> मॉड्यूलर परीक्षण फ़ाइलों में
- **56 फ़ज़ परीक्षण** - दूषित इनपुट, ReDoS, यूनिकोड, बाइनरी
- **Datadog 17K बेंचमार्क** - 14,587 पुष्टि किए गए मैलवेयर नमूने (इन-स्कोप)
- **ग्राउंड ट्रुथ सत्यापन** - 96 वास्तविक-विश्व हमले (95.74% TPR@3, 88.30% TPR@20 — 94 इन-स्कोप पर v2.11.48 पूर्ण माप)
- **फॉल्स पॉज़िटिव सत्यापन** (v2.11.48 माप) - 1.10% FPR नियम (6/545 स्कैन किए गए), 200 रैंडम पर 2.50%, 124/132 PyPI पर 9.68% (Track-D डाउनलोड फिक्स के बाद पहला ईमानदार माप)। ML क्लासिफायर वर्तमान में निष्क्रिय है — मूल्यांकन मीट्रिक्स → ML क्लासिफायर देखें।
---
## समुदाय
- Discord: https://discord.gg/y8zxSmue
---
## दस्तावेज़ीकरण
- [ब्लॉग](https://dnszlsk.github.io/muad-dib/blog/) - सप्लाई-चेन खतरा डिटेक्शन पर तकनीकी लेख
- [Carnet de bord](https://github.com/dnszlsk/muad-dib/blob/master/docs/CARNET_DE_BORD_MUADDIB.md) - विकास जर्नल (फ्रेंच में)
- [दस्तावेज़ीकरण सूचकांक](https://github.com/dnszlsk/muad-dib/blob/master/docs/INDEX.md) - सभी दस्तावेज़ एक स्थान पर
- [मूल्यांकन पद्धति](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION_METHODOLOGY.md) - प्रयोगात्मक प्रोटोकॉल, होल्डआउट स्कोर
- [थ्रेट मॉडल](https://github.com/dnszlsk/muad-dib/blob/master/docs/threat-model.md) - MUAD'DIB क्या पता लगाता है और क्या नहीं
- [सुरक्षा नीति](https://github.com/dnszlsk/muad-dib/blob/master/SECURITY.md) - डिटेक्शन नियम संदर्भ (<!--stat:rulesTotal-->278<!--/stat:rulesTotal--> नियम)
- [सुरक्षा ऑडिट](https://github.com/dnszlsk/muad-dib/blob/master/docs/SECURITY_AUDIT.md) - बायपास सत्यापन रिपोर्ट
- [FP विश्लेषण](https://github.com/dnszlsk/muad-dib/blob/master/docs/EVALUATION.md) - ऐतिहासिक फॉल्स पॉज़िटिव विश्लेषण
---
## लाइसेंस
MUAD'DIB **GNU Affero General Public License v3.0 only** (`AGPL-3.0-only`) के तहत लाइसेंस प्राप्त है — देखें [LICENSE](https://github.com/dnszlsk/muad-dib/blob/master/LICENSE) और [NOTICE](https://github.com/dnszlsk/muad-dib/blob/master/NOTICE)।
आप इसका उपयोग, अध्ययन, संशोधन और पुनर्वितरण करने के लिए स्वतंत्र हैं — नेटवर्क पर भी — बशर्ते कि व्युत्पन्न कार्य और नेटवर्क-तैनात संशोधन उसी लाइसेंस के तहत जारी किए जाएं।
**वाणिज्यिक लाइसेंसिंग:** MUAD'DIB को मालिकाना / बंद-स्रोत उत्पाद में एम्बेड करने के लिए, या AGPL की स्रोत-प्रकटीकरण बाध्यताओं के बिना होस्टेड सेवा के रूप में पेश करने के लिए, एक अलग वाणिज्यिक लाइसेंस उपलब्ध है। एक इश्यू खोलें या लेखक से संपर्क करें ([DNSZLSK](https://github.com/DNSZLSK))।
कॉपीराइट (C) 2026 DNSZLSK।
---
<p align="center">
<strong>The spice must flow. The worms must die.</strong>
</p>