منصوبے کے بارے میں

schemaui ایک Rust لائبریری اور CLI ہے جو JSON Schema دستاویزات (draft-07 کے مطابق) کو مکمل طور پر انٹرایکٹو ایڈیٹرز میں تبدیل کرتی ہے۔ یہ دو رینڈرنگ سطحیں پیش کرتی ہے: ایک Web UI (ایمبیڈڈ SPA جس میں تین پین لے آؤٹ ہے — schema نیویگیشن، فارم ایڈیٹر، لائیو JSON پیش نظارہ) اور ratatui اور crossterm پر مبنی کی بورڈ-فرسٹ TUI۔ دونوں ایک ہی schema → form → validate پائپ لائن کا اشتراک کرتے ہیں، ہر ترمیم کے بعد فوری ویلیڈیشن فیڈ بیک فراہم کرتے ہیں۔ اہم صلاحیتیں: - بھرپور schemas کو پارس کرتا ہے بشمول $ref، definitions، patternProperties، enums، عددی حدود، نیسٹڈ objects/arrays، oneOf/anyOf ویریئنٹس - سیکشنز اور اوورلیز: ٹاپ-لیول properties ٹیبز بن جاتی ہیں، نیسٹڈ objects سیکشنز میں فلیٹ ہو جاتے ہیں، پیچیدہ نوڈز مخصوص اوورلے ایڈیٹرز کھولتے ہیں - پلگ ایبل I/O: JSON/YAML/TOML ان پٹ لیتا ہے، stdout اور/یا متعدد فائلوں میں کسی بھی فعال فارمیٹ میں آؤٹ پٹ دیتا ہے - ایمبیڈڈ $schema، TOML #:schema، YAML لینگویج-سرور موڈلائنز کے ذریعے config schema کی خودکار شناخت - ریموٹ schema لوڈنگ (صرف CLI، فیچر-گیٹڈ) - AI ایجنٹ انٹیگریشن بذریعہ ساتھی اسکل a2ui-ask: ایجنٹس Web UI کو 0.0.0.0 پر بائنڈ کر کے چلاتے ہیں، صارفین براؤزر فارمز کو لائیو ویلیڈیشن کے ساتھ بھرتے ہیں، جوابات .schemaui/answers/ میں JSON آڈٹ ٹریل کے طور پر لکھے جاتے ہیں - ایمبیڈنگ کے لیے لائبریری API: Web کے لیے schemaui::web::session، TUI کے لیے SchemaUI::run، TuiFrontend کے ذریعے کسٹم فرنٹ اینڈ انجیکشن - CLI (schemaui-cli) جس میں web اور tui سب کمانڈز، ملٹی-ڈیسٹینیشن آؤٹ پٹ، stdin/inline specs آرکیٹیکچر: io::input config کو پارس/مرج کرتا ہے، schema loader/resolver فارم schema بناتا ہے، tui::state FormState/sections/reducers کا انتظام کرتا ہے، app::runtime ان پٹ روٹنگ/اوورلیز/اسٹیٹس کو ہینڈل کرتا ہے، tui::view ratatui کے ذریعے رینڈر کرتا ہے۔ ویلیڈیشن jsonschema::Validator استعمال کرتا ہے جو اسٹارٹ اپ پر ایک بار کمپائل ہوتا ہے؛ ہر ترمیم دستاویز کو دوبارہ بناتی ہے، ویلیڈیٹر چلاتی ہے، اور errors کو فیلڈ/گلوبل اسٹیٹس میں فیڈ کرتی ہے۔ فیچر فلیگز سامعین کے لحاظ سے تقسیم شدہ: schemaui-cli ڈیفالٹ میں TUI + Web + ریموٹ schema؛ لائبریری کریٹ ڈیفالٹ میں صرف tui + json۔ کم از کم ایک json، yaml، toml فیچر فعال ہونا ضروری ہے۔