title: التكوين description: “صيغة ملف التكوين، نظام النطاقات الثلاثة، وقواعد الدمج” icon: gear
يستخدم failproofai ملفات تكوين JSON للتحكم في السياسات النشطة، وكيفية تصرفها، وأين يتم تحميل السياسات المخصصة. تم تصميم التكوين ليكون سهل المشاركة مع فريقك - قم بالتزام به في المستودع الخاص بك وسيحصل كل مطور على نفس شبكة الأمان للوكيل.نطاقات التكوين
هناك ثلاثة نطاقات تكوين، يتم تقييمها بترتيب الأولوية:| النطاق | مسار الملف | الغرض |
|---|---|---|
| مشروع | .failproofai/policies-config.json | إعدادات لكل مستودع، مرتبطة بالتحكم في الإصدار |
| محلي | .failproofai/policies-config.local.json | تجاوزات شخصية لكل مستودع، في gitignored |
| عام | ~/.failproofai/policies-config.json | الإعدادات الافتراضية على مستوى المستخدم عبر جميع المشاريع |
قواعد الدمج
enabledPolicies - اتحاد جميع النطاقات الثلاثة. السياسة المفعلة في أي مستوى تكون نشطة.
policyParams - النطاق الأول الذي يحدد معاملات السياسة المعينة يفوز كليًا. لا يوجد دمج عميق للقيم ضمن معاملات السياسة.
customPoliciesPath - النطاق الأول الذي يحدده يفوز.
llm - النطاق الأول الذي يحدده يفوز.
صيغة ملف التكوين
مرجع الحقول
enabledPolicies
النوع: string[]
قائمة أسماء السياسات التي سيتم تفعيلها. يجب أن تطابق الأسماء بالضبط معرفات السياسة التي يعرضها failproofai policies. انظر السياسات المدمجة للقائمة الكاملة.
السياسات غير الموجودة في enabledPolicies غير نشطة، حتى لو كانت لديها إدخالات في policyParams.
policyParams
النوع: Record<string, Record<string, unknown>>
تجاوزات معاملات لكل سياسة. المفتاح الخارجي هو اسم السياسة؛ المفاتيح الداخلية خاصة بكل سياسة. تتوثق كل سياسة معاملاتها المتاحة في السياسات المدمجة.
إذا كانت السياسة لديها معاملات ولكنك لم تحددها، يتم استخدام الإعدادات الافتراضية المدمجة للسياسة. المستخدمون الذين لا يقومون بتكوين policyParams على الإطلاق يحصلون على سلوك مطابق للإصدارات السابقة.
المفاتيح غير المعروفة داخل كتلة معاملات السياسة يتم تجاهلها بصمت في وقت إطلاق hook ولكن يتم وضع علامة عليها كتحذيرات عند تشغيل failproofai policies.
hint (عام)
النوع: string (اختياري)
رسالة تُضاف إلى السبب عندما تُرجع سياسة deny أو instruct. استخدمها لإعطاء Claude توجيهات قابلة للتنفيذ دون تعديل السياسة نفسها.
يعمل مع أي نوع سياسة — مدمج، مخصص (custom/)، اتفاقية مشروع (.failproofai-project/)، أو اتفاقية مستخدم (.failproofai-user/).
block-force-push، يرى Claude: “Force-pushing is blocked. Try creating a fresh branch instead.”
القيم غير الحرفية والسلاسل الفارغة يتم تجاهلها بصمت. إذا لم يتم تعيين hint، فإن السلوك لم يتغير (متوافق للخلف).
customPoliciesPath
النوع: string (مسار مطلق)
المسار إلى ملف JavaScript يحتوي على سياسات hook مخصصة. يتم تعيينه تلقائيًا بواسطة failproofai policies --install --custom <path> (يتم حل المسار إلى مسار مطلق قبل تخزينه).
يتم تحميل الملف جديدًا في كل حدث hook - لا يوجد تخزين مؤقت. انظر السياسات المخصصة لتفاصيل الإنشاء.
السياسات القائمة على الاتفاقية
بالإضافة إلىcustomPoliciesPath الصريح، يقوم failproofai تلقائيًا باكتشاف وتحميل ملفات السياسة من المجلدات .failproofai/policies/:
| المستوى | المجلد | النطاق |
|---|---|---|
| مشروع | .failproofai/policies/ | مشاركة مع الفريق عبر التحكم في الإصدار |
| مستخدم | ~/.failproofai/policies/ | شخصي، ينطبق على جميع المشاريع |
*policies.{js,mjs,ts} (مثل security-policies.mjs, workflow-policies.js). الملفات الأخرى في المجلد يتم تجاهلها.
لا يلزم التكوين: لا تتطلب سياسات الاتفاقية إدخالات في policies-config.json. فقط أسقط الملفات في المجلد وسيتم التقاطها في حدث hook التالي.
التحميل المتحد: يتم مسح كلا مجلدي الاتفاقية للمشروع والمستخدم. جميع الملفات المطابقة من كلا المستويين يتم تحميلها (بخلاف customPoliciesPath الذي يستخدم نطاق-أول-يفوز).
انظر السياسات المخصصة لمزيد من التفاصيل والأمثلة.
llm
النوع: object (اختياري)
تكوين عميل LLM للسياسات التي تقوم باستدعاءات AI. غير مطلوب لمعظم الإعدادات.
إدارة التكوين من CLI
تقوم أوامرpolicies --install و policies --uninstall بالكتابة إلى settings.json لـ Claude Code (نقاط دخول hook)، بينما policies-config.json هو الملف الذي تديره مباشرة. الاثنان منفصلان:
settings.json- يخبر Claude Code باستدعاءfailproofai --hook <event>في كل استخدام أداةpolicies-config.json- يخبر failproofai بالسياسات التي يجب تقييمها وبأي معاملات
policies-config.json مباشرة في أي وقت؛ التغييرات تصبح نافذة المفعول فورًا في حدث hook التالي بدون الحاجة لإعادة التشغيل.
مثال: تكوين على مستوى المشروع مع إعدادات الفريق الافتراضية
التزم.failproofai/policies-config.json بمستودعك:
.failproofai/policies-config.local.json (في gitignored) للتجاوزات الشخصية دون التأثير على زملائه.
