عن المشروع

يُعد schemaui مكتبة Rust وأداة CLI يحوّلان مستندات JSON Schema (المتوافقة مع draft-07) إلى محررات تفاعلية بالكامل. ويوفر سطحي عرض: واجهة ويب (SPA مضمنة بتخطيط من ثلاثة أجزاء — تنقل المخطط، ومحرر النماذج، ومعاينة JSON الحية) وواجهة TUI تعتمد على لوحة المفاتيح ومدعومة بـ ratatui وcrossterm. يشترك السطحان في خط المعالجة نفسه: مخطط ← نموذج ← تحقق، مما يقدّم ملاحظات تحقق فورية بعد كل تعديل. القدرات الرئيسية: - يحلل مخططات غنية تشمل $ref وdefinitions وpatternProperties وenums والنطاقات الرقمية والكائنات/المصفوفات المتداخلة ومتغيرات oneOf/anyOf - الأقسام والطبقات: تتحول الخصائص عالية المستوى إلى علامات تبويب، وتُسطَّح الكائنات المتداخلة إلى أقسام، وتفتح العقد المعقدة محررات طبقات مخصصة - إدخال/إخراج قابل للتوصيل: يقبل JSON/YAML/TOML، ويصدر إلى stdout و/أو ملفات متعددة بأي تنسيق مفعّل - اكتشاف تلقائي لمخطط التكوين عبر $schema المضمن، وTOML #:schema، وسطور modelines الخاصة بخادم لغة YAML - تحميل المخططات عن بُعد (في CLI فقط، ومقيّد بميزة) - تكامل وكلاء الذكاء الاصطناعي عبر المهارة المرافقة a2ui-ask: يطلق الوكلاء واجهة الويب مرتبطة بـ 0.0.0.0، ويملأ المستخدمون نماذج المتصفح مع تحقق حي، وتُكتب الإجابات في .schemaui/answers/ بتنسيق JSON كسجل تدقيق - واجهة برمجة مكتبة للتضمين: schemaui::web::session للويب، وSchemaUI::run لـ TUI، وحقن واجهة أمامية مخصصة عبر TuiFrontend - CLI (schemaui-cli) مع أمرين فرعيين web وtui، وإخراج متعدد الوجهات، ومواصفات stdin/مضمنة البنية: ي解析 io::input التكوين ويدمجه، ويبني محمّل/حالّ المخطط مخطط النموذج، وتدير tui::state حالة FormState والأقسام والمخفِّضات، ويعالج app::runtime توجيه الإدخال والطبقات والحالة، ويعرض tui::view عبر ratatui. يستخدم التحقق jsonschema::Validator الذي يُترجم مرة واحدة عند بدء التشغيل؛ وكل تعديل يعيد بناء المستند، ويشغّل المتحقق، ويغذي الأخطاء إلى حالة الحقل/الحالة العامة. تنقسم أعلام الميزات حسب الجمهور: يعتمد schemaui-cli افتراضيًا على TUI + Web + المخطط عن بُعد؛ وتعتمد حزمة المكتبة افتراضيًا على tui + json فقط. يتطلب الأمر تفعيل ميزة واحدة على الأقل من json أو yaml أو toml.