عمارة توليد العقود والتوقعات Arxi
نظرة عامة تنفيذية
arxi-contract هو المولد/المدقق الحتمي القياسي لقطع أثر إسقاط Arxi. يقوم بإصدار مخرجات المخطط/العقد/المثال/المصطلحات/نصوص التلميحات تحت Docs/generated/arxi/ ويفرض فحوصات انحراف مغلقة عند الفشل.
توليد التلميحات أصبح الآن بيانات وصفية عالمية المستوى مع:
- بيان أدوات التلميحات المتوافقة مع الإصدارات السابقة (
tooltips.json), - كتالوج المصطلحات الغني (
tooltips.catalog.json), - pointer/token bindings for code blocks and JSON examples
روابط المؤشر/التوكن لكتل الشيفرة وأمثلة JSON (
tooltips.annotations.json), - مصطلحات القاموس (
glossary.md) التي تم إنشاؤها من نفس مصدر المصطلح.
سلطة الأثر
كود مولد موثوق:
crates/arxi-contract/src/lib.rscrates/arxi-contract/src/sidecar_api.rscrates/arxi-contract/src/sidecar_api/openapi.rscrates/arxi-contract/src/sidecar_api/artifacts.rscrates/arxi-contract/src/sidecar_api/specs/mod.rs
جذر مولد موثوق:
Docs/generated/arxi/
سلطة بيان الآلة:
index.json يتضمن إصدار العقد بالإضافة إلى بيانات التعريف الخاصة بـ SHA-256 لكل عنصر. عندما تكون عناصر واجهة برمجة التطبيقات الجانبية موجودة، يتم تطبيق بوابات التوافق من العناصر المولدة عبر scripts/ci/sidecar_contract_gates.py.
أوضاع المولدات
arxi-contract يدعم وضعين حتميين:
GenerateMode::Generate- يعيد توليد العناصر ويعيد كتابة جذر الإخراج.
- يزيل الملفات غير المتوقعة القديمة تحت جذر الإخراج.
- Fails closed if output-root traversal encounters symlinks or unsupported يفشل الإغلاق إذا واجهت عملية التنقل عبر الجذر في المخرجات روابط رمزية أو أنواع إدخال نظام ملفات غير مدعومة.
GenerateMode::Check- يفشل النظام عند فقدان الملفات، انحراف البايت، أو وجود ملفات غير متوقعة.
- Fails closed if expected paths resolve through symlinked roots/components يفشل الإغلاق إذا كانت المسارات المتوقعة تحل من خلال الجذور/المكونات المرتبطة برموز أو ملفات غير عادية.
تكامل واجهة سطر الأوامر:
arxi contract generatearxi contract check
نموذج الحتمية
تشمل عناصر التحكم في الحتمية:
- ترتيب مستقر للأصول عبر الخرائط/المجموعات المرتبة،
- ترميز JSON القياسي عبر JCS،
- تجزئة SHA-256 الصريحة لمدخلات البيان،
- مقارنة بايت وضع التحقق ضد الملفات الملتزمة.
إسقاط المخطط الواعي بالقيود
توليد المخطط هو على مرحلتين:
- استنتاج الشكل الهيكلي من عينات حتمية.
- تطبيق قيود المجال الموثوقة من خلال تراكب JSON-pointer.
تشمل تراكبات القيود:
- سياسات شكل نص UUID صارمة لجميع حقول الهوية،
- قيود السلسلة المعادية والطول الأقصى لحقول المعرف/النص،
- سياسة تعبير منتظم صارمة لنوع الحدث وحدود الطول،
- سياسة تعبير منتظم صارمة لـ
key_id(^[0-9a-f]{64}$)، - قيود مصفوفة بايت ذات طول ثابت لحقول التجزئة / التوقيع،
- تمثيلات صريحة قابلة للاحتواء للحقول الاختيارية،
- full
BundleSelectoralgebra projection (BySegment,BySegments,ByTrace,ByTimeRange,ByEnvelopeIds,ByFilter, recursive إسقاط الجبر الكامل لـBundleSelector(BySegment,BySegments,ByTrace,ByTimeRange,ByEnvelopeIds,ByFilter,Compositeالتكراري) عبر المخطط$defs.
تفشل الإسقاطات المغلقة إذا كانت مسارات المؤشر المتوقعة مفقودة أثناء تطبيق القيود.
مجموعة العناصر المنتجة
الملفات الصادرة الحالية v1:
index.jsonschemas/envelope.schema.jsonschemas/segment.schema.jsonschemas/bundle.schema.jsoncontracts/adapter.jsoncontracts/provider.json- glossary.md
tooltips.json- tooltips.catalog.json
- tooltips.annotations.json
examples/envelope.jsonexamples/segment.jsonexamples/bundle.jsonapis/sidecar.openapi.jsonapis/sidecar.errors.jsonapis/sidecar.enums.jsonapis/sidecar.examples.jsonapis/sidecar.compat.jsonconfig/sidecar.schema.jsonconfig/sidecar.compat.jsonconfig/sidecar.example.tomlconfig/sidecar.md
التوافق والتحقق
اختبارات وحدة arxi-contract تتحقق من:
- حتمية التوليد المتكرر،
- اتساق تجزئة البيان/بايت الملف،
- أمثلة مولدة تتحقق من صحة المخططات المولدة،
- يتضمن كتالوج التلميحات جميع أسماء طرق عقود الموصل/المزود،
- تغطية المصطلحات الأساسية المطلوبة على مستوى عالمي،
- مؤشرات كتالوج التلميحات تحل ضد العناصر الناتجة عن JSON،
- روابط توضيح التلميحات تشير فقط إلى مفاتيح المصطلحات المعرفة،
- schema/runtime invariance for
key_id, hostile text fields, and identifier عدم تغير المخطط/وقت التشغيل لـkey_id، حقول النص العدائية، وقيود الطول الأقصى للمعرف. - إصدار عنصر sidecar وإدراج البيان.
- تناسق سجل أخطاء sidecar وقاعدة التوافق.
- تناسق عقد عدم التكرار لواجهة OpenAPI/compat في sidecar.
- اتساق تكوين الأداة الجانبية (رابط المخطط/التوافق/المثال/المستندات).
arxi-contract اختبارات سلامة المسار المخصصة تتحقق من:
- وضع التوليد يرفض جذور المخرجات المرتبطة بالرموز.
- وضع التوليد يرفض المسارات الفرعية المرتبطة بالرموز تحت جذر الإخراج،
- تحقق من وضع التقارير عن انحراف البايت للقطع المعدلة،
- وضع التحقق يرفض ملفات الأرتيفكت المتوقعة المرتبطة بالرموز.
التنسيق والتكامل المستمر
نقطة دخول تنسيق الأوامر الواحدة:
scripts/ci/generate_all.sh
السلوك:
generate: regenerate contract artifacts + run sidecar contract gates +generate: إعادة توليد مكونات العقد + تشغيل بوابات العقد الجانبية + إعادة توليد وثائق تغطية الاختبار.check: run contract drift check + sidecar contract gates + docs driftcheck: تشغيل فحص انحراف العقد + بوابات عقد الجانبي + فحص انحراف الوثائق (فشل مغلق).- Optional release mode: if
ARXI_SIDECAR_PERF_GATE=1, enforce sidecar SLO metrics viascripts/ci/sidecar_perf_gate.pyagainst generated perf report وضع الإصدار الاختياري: إذا كانARXI_SIDECAR_PERF_GATE=1، فرض مقاييس SLO الخاصة بالسايدكار عبرscripts/ci/sidecar_perf_gate.pyضد تقارير الأداء الناتجة.
تعمل سير العمل في CI على تنفيذ ذلك في بوابات الجودة المطلوبة.
حدود تسليم الإسقاط
سياسة نقل موقع الويب/i18n وملكية المصطلحات:
Docs/roadmap/arxi_generated_contract_sync_and_glossary_policy.md
هذا يحدد متطلبات وجود الملف، والتحقق من التجزئة، واستقرار المسار، وملكية المصطلحات/الأدلة من مصدر واحد.