Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## 0.0.13-beta.2 — 2026-07-11

### Docs
- Fix translation regressions from the #486 docs sync: strip hallucinated `{#…}` heading-ID syntax that broke MDX parsing (`ja/built-in-policies`), restore dropped YAML frontmatter (`tr/cli/hook`) and the `--cli …|hermes` inline code span (`he/configuration`), and un-translate an inline-code placeholder (`de/cli/auth`). (#487)

## 0.0.13-beta.1 — 2026-07-10

### Features
Expand Down
109 changes: 54 additions & 55 deletions docs/ar/architecture.mdx

Large diffs are not rendered by default.

301 changes: 153 additions & 148 deletions docs/ar/built-in-policies.mdx

Large diffs are not rendered by default.

75 changes: 37 additions & 38 deletions docs/ar/cli/audit.mdx

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions docs/ar/cli/auth.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
---
title: تسجيل الدخول
description: "قم بتسجيل الدخول إلى FailproofAI من سطر الأوامر لتفعيل التنبيهات والميزات المخصصة"
description: "سجّل دخولك إلى FailproofAI من واجهة سطر الأوامر لتفعيل التذكيرات والميزات المخصصة"
---

```bash
Expand All @@ -10,39 +10,39 @@ failproofai auth logout # revoke this session
failproofai auth whoami # print the signed-in identity
```

صيغة العلم القديم `--login` / `--logout` / `--whoami` لا تزال مقبولة كاسم مستعار للتوافق مع الإصدارات السابقة.
صيغة العلم القديمة `--login` / `--logout` / `--whoami` لا تزال مقبولة كحكم توافقي للعودة.

المصادقة اختيارية. السياسات والعرض البياني وصفحة `/audit` وكل ميزة محلية أخرى تعمل بالطريقة ذاتها سواء قمت بتسجيل الدخول أم لا. واجهة تسجيل الدخول موجودة حتى تتمكن الميزات التي **تحتاج** إلى هوية مستقرة (تنبيهات إعادة التدقيق اليوم، والمزيد في المستقبل) من وجود مكان تستند إليه.
المصادقة اختيارية. السياسات واللوحة الإلكترونية وصفحة `/audit` وكل ميزة محلية أخرى تعمل بنفس الطريقة سواء كنت مسجل دخول أم لا. تم إنشاء سطح تسجيل الدخول بحيث تتمتع الميزات التي **تحتاج** إلى هوية مستقرة (تذكيرات إعادة التدقيق اليوم، المزيد في المستقبل) بمكان لتثبيتها.

## تدفق تسجيل الدخول

```bash
failproofai auth login
```

يطلب بريدك الإلكتروني، ويرسل رمز لمرة واحدة مكون من 6 أرقام إلى هذا العنوان، ويطلب الرمز، وعند النجاح يكتب `~/.failproofai/auth.json` (mode `0600`). نفس الجلسة تصبح مرئية بعد ذلك في العرض البياني داخل التطبيق — النقر على `[ set a reminder ]` على `/audit` سيظهرك كمسجل دخول.
يطلب بريدك الإلكتروني، ويرسل رمز التحقق لمرة واحدة مكون من 6 أرقام إلى هذا العنوان، ويطلب الرمز، وعند النجاح يكتب `~/.failproofai/auth.json` (الوضع `0600`). تصبح نفس الجلسة مرئية بعد ذلك للوحة الإلكترونية في التطبيق — سيؤدي النقر على `[ set a reminder ]` على `/audit` إلى رؤيتك مسجل دخول.

يعرض العرض البياني نفس التدفق كمربع حوار مشروط على `/audit` للمستخدمين الذين لا يستخدمون سطر الأوامر.
تعرض لوحة المعلومات نفس التدفق كمربع حوار مشروط على `/audit` للمستخدمين الذين لا يلمسون واجهة سطر الأوامر أبداً.

## تسجيل الخروج

```bash
failproofai auth logout
```

يلغي الجلسة الحالية على الخادم ويحذف `~/.failproofai/auth.json`. إذا كان خادم api غير قابل للوصول، يتم إزالة الملف المحلي على أي حال — النية المحلية لتسجيل الخروج تفوز دائماً.
يلغي الجلسة الحالية على الخادم ويحذف `~/.failproofai/auth.json`. إذا كان خادم API غير قابل للوصول، يتم إزالة الملف المحلي على أي حال — النية المحلية لتسجيل الخروج تفوز دائماً.

## فحص الهوية

```bash
failproofai auth whoami
```

يطبع `<email> (<user uuid>)` ويخرج 0 عندما توجد جلسة صحيحة، أو `not signed in` ويخرج 1 بخلاف ذلك. ينعش رمز الوصول بصمت في الخلفية إذا كان على بعد دقيقة واحدة من انتهائه الصلاحية.
يطبع `<email> (<user uuid>)` والخروج 0 عند وجود جلسة صحيحة، أو `not signed in` والخروج 1 وإلا. ينعش رمز الوصول بصمت في الخلفية إذا كان في غضون دقيقة من انتهاء الصلاحية.

## تنبيه إعادة التدقيق المستمر
## تذكير إعادة التدقيق الدائم

عندما تنقر على **`[ set a reminder ]`** على صفحة `/audit` (أو تسجل الدخول عبر المربع الحواري الذي يحرسه الزر)، يكتب العرض البياني ملف مرافق صغير على `~/.failproofai/next-audit.json`:
عندما تنقر على **`[ set a reminder ]`** على صفحة `/audit` (أو تسجيل الدخول عبر المربع الحواري الذي يقيد الزر)، تكتب لوحة المعلومات ملف مرافق صغير في `~/.failproofai/next-audit.json`:

```json
{
Expand All @@ -52,11 +52,11 @@ failproofai auth whoami
}
```

هذا الملف محدد للبريد الإلكتروني الذي تم تعيينه له — تبديل جلسة سطر الأوامر إلى حساب مختلف يخفي أي تنبيه ينتمي للمستخدم السابق. الإزاحة الافتراضية هي **7 أيام**، قابلة للتكوين لاحقاً عندما يتم إطلاق جدول المهام. تم الإنشاء برمز `0600` مثل `auth.json`.
هذا الملف مخصص للبريد الإلكتروني الذي تم تعيينه له — سيؤدي تبديل جلسة CLI إلى حساب مختلف إلى إخفاء أي تذكير يخص المستخدم السابق. الإزاحة الافتراضية هي **7 أيام**، قابلة للتخصيص لاحقاً عند وصول المجدول. تم إنشاؤها بأذونات `0600` مثل `auth.json`.

نقطة نهاية `/api/auth/reminder` للعرض البياني تعرض `GET` (قراءة)، `POST` (تعيين / إعادة جدولة)، و `DELETE` (مسح) وتتطلب جلسة نشطة.
يعرّض نقطة نهاية لوحة المعلومات `/api/auth/reminder` الطلب `GET` (القراءة)، `POST` (التعيين / إعادة الجدولة)، و `DELETE` (المسح) ويتطلب جلسة نشطة.

## ما في `~/.failproofai/auth.json`
## ما يوجد في `~/.failproofai/auth.json`

```json
{
Expand All @@ -68,21 +68,21 @@ failproofai auth whoami
}
```

تم الإنشاء برمز `0600` (قراءة/كتابة خاصة بالمالك). رمز الوصول هو JWT مدة HS256 بمدة ساعة واحدة؛ رمز التحديث هو سلسلة عشوائية معتمة بحجم 256 بت يخزنها الخادم كـ `SHA-256(token)`. يتم الكشف عن إعادة تشغيل رمز التحديث من جانب الخادم وإلغاء كل جلسات المستخدم.
تم إنشاؤها بأذونات `0600` (قراءة/كتابة للمالك فقط). رمز الوصول هو HS256 JWT مدته ساعة واحدة؛ رمز التحديث عبارة عن سلسلة عشوائية معتمة من 256 بت يخزنها الخادم كـ `SHA-256(token)`. يتم الكشف عن إعادة تشغيل رمز التحديث من جانب الخادم ويلغي كل جلسة للمستخدم.

## متغيرات البيئة

| المتغير | الافتراضي | الغرض |
| Variable | Default | Purpose |
|---|---|---|
| `FAILPROOF_API_URL` | `https://api.befailproof.ai` | تجاوز عنوان URL الأساسي لخادم api. مفيد للتطوير المحلي مقابل خادم api مستضاف ذاتياً. |
| `FAILPROOFAI_AUTH_DIR` | `~/.failproofai` | تجاوز حيث يتم تخزين `auth.json`. في الأساس للاختبارات. |
| `FAILPROOF_API_URL` | `https://api.befailproof.ai` | تجاوز عنوان URL الأساسي لخادم API. مفيد للتطوير المحلي مقابل خادم API الذي يستضيفه بنفسه. |
| `FAILPROOFAI_AUTH_DIR` | `~/.failproofai` | تجاوز حيث يتم تخزين `auth.json`. في الغالب للاختبارات. |

انظر [متغيرات البيئة](/ar/cli/environment-variables) للقائمة الكاملة.
انظر [متغيرات البيئة](/ar/cli/environment-variables) للحصول على القائمة الكاملة.

## استكشاف الأخطاء

**"لم يتمكن من الوصول إلى خادم api"** — لا يمكن لسطر الأوامر فتح اتصال TCP بـ `FAILPROOF_API_URL`. تحقق من شبكتك، أو عيّن `FAILPROOF_API_URL` إذا كنت تقوم بتشغيل خادم api مستضاف ذاتياً.
**"Could not reach the api-server"** — لا يستطيع CLI فتح اتصال TCP بـ `FAILPROOF_API_URL`. تحقق من شبكتك، أو عيّن `FAILPROOF_API_URL` إذا كنت تقوم بتشغيل خادم API الذي تستضيفه بنفسك.

**"تم تجاوز حد المعدل"** — عدد كبير جداً من محاولات تسجيل الدخول في نافذة 15 دقيقة لهذا البريد الإلكتروني (5/بريد) أو IP (20/IP)، أو فترة انتظار إعادة إرسال 30 ثانية بعد الطلب السابق للبريد الإلكتروني ذاته. تتضمن رسالة الخطأ نافذة إعادة المحاولة بالثواني.
**"Rate limited"** — عدد كبير جداً من محاولات تسجيل الدخول في نافذة 15 دقيقة لهذا البريد الإلكتروني (5/البريد الإلكتروني) أو IP (20/IP)، أو فترة إعادة إرسال مدتها 30 ثانية بعد الطلب السابق لنفس البريد الإلكتروني. تتضمن رسالة الخطأ نافذة إعادة المحاولة بالثواني.

**تم رفض الرمز** — كانت OTP خاطئة أو انتهت صلاحيتها أو ضربت الصف قفل التخمين الخاطئ 5 مرات. شغّل `failproofai auth login` مرة أخرى لطلب رمز جديد.
**Code rejected** — كانت كلمة المرور لمرة واحدة خاطئة أو منتهية الصلاحية، أو أن الصف تعرض لقفل 5 تخمينات خاطئة. شغّل `failproofai auth login` مرة أخرى لطلب رمز جديد.
11 changes: 6 additions & 5 deletions docs/ar/cli/dashboard.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
---
title: عرض الجلسات
description: "قم بتشغيل لوحة التحكم لاستعراض جلسات الوكيل وإدارة السياسات"
---
Expand All @@ -7,23 +8,23 @@ description: "قم بتشغيل لوحة التحكم لاستعراض جلسا
failproofai
```

يبدأ لوحة التحكم الويب على `http://localhost:8020`.
يبدأ لوحة التحكم على الويب في `http://localhost:8020`.

## الخيارات

| العلم | الوصف |
|------|-------------|
| `--port <number>` | المنفذ المراد الاستماع عليه (القيمة الافتراضية: `8020`) |
| `--allowed-origins <origins>` | مضيفين/عناوين IP مفصولة بفواصل مسموحة للوصول إلى موارد التطوير |
| `--port <number>` | المنفذ الذي سيتم الاستماع عليه (الافتراضي: `8020`) |
| `--allowed-origins <origins>` | قائمة مضيفين/عناوين IP مفصولة بفواصل مسموح لها بالوصول إلى موارد التطوير |

لتوجيه لوحة التحكم إلى مجلد مشروع Claude غير افتراضي، قم بتعيين متغير البيئة `CLAUDE_PROJECTS_PATH` عند بدء التشغيل.
لتوجيه لوحة التحكم إلى مجلد Claude project غير افتراضي، قم بتعيين متغير البيئة `CLAUDE_PROJECTS_PATH` عند التشغيل.

## أمثلة

```bash
# قم بالتشغيل على منفذ مختلف
failproofai --port 9000

# استخدم مسار مشاريع Claude مخصص عبر متغير البيئة
# استخدم مسار Claude projects مخصص عبر متغير البيئة
CLAUDE_PROJECTS_PATH=~/my-claude-projects failproofai
```
25 changes: 13 additions & 12 deletions docs/ar/cli/environment-variables.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
---
title: متغيرات البيئة
description: "تكوين سلوك failproofai باستخدام متغيرات البيئة"
---
Expand All @@ -9,39 +10,39 @@ description: "تكوين سلوك failproofai باستخدام متغيرات ا
|----------|-------------|
| `PORT` | منفذ لوحة التحكم (الافتراضي: `8020`) |
| `CLAUDE_PROJECTS_PATH` | تجاوز موقع مجلدات مشاريع Claude Code |
| `FAILPROOFAI_DISABLE_PAGES=policies,projects` | صفحات لوحة التحكم المفصولة بفواصل لإخفاؤها |
| `FAILPROOFAI_ALLOWED_DEV_ORIGINS` | المضيفون/عناوين IP المسموح لها بالوصول إلى موارد التطوير. نفس `--allowed-origins`. |
| `FAILPROOFAI_DISABLE_PAGES=policies,projects` | صفحات لوحة التحكم المراد إخفاؤها مفصولة بفواصل |
| `FAILPROOFAI_ALLOWED_DEV_ORIGINS` | المضيفون/عناوين IP المسموح لهم بالوصول إلى موارد التطوير. نفس `--allowed-origins`. |

## تسجيل السجلات

| المتغير | الوصف |
|----------|-------------|
| `FAILPROOFAI_LOG_LEVEL=info\|warn\|error` | مستوى سجل الخادم (الافتراضي: `warn`) |
| `FAILPROOFAI_HOOK_LOG_FILE` | مسار ملف السجل المخصص للخطاف، أو `true` للقيمة الافتراضية (`~/.failproofai/logs/hooks.log`) |
| `FAILPROOFAI_HOOK_LOG_FILE` | مسار ملف سجل hook مخصص، أو `true` للقيمة الافتراضية (`~/.failproofai/logs/hooks.log`) |

## بيانات الاستخدام
## جمع البيانات

| المتغير | الوصف |
|----------|-------------|
| `FAILPROOFAI_TELEMETRY_DISABLED=1` | تعطيل بيانات الاستخدام المجهولة |
| `FAILPROOFAI_TELEMETRY_DISABLED=1` | تعطيل جمع بيانات الاستخدام المجهول |

## المصادقة

| المتغير | الوصف |
|----------|-------------|
| `FAILPROOF_API_URL` | تجاوز عنوان URL الأساسي للخادم الذي تستخدمه `failproofai auth` وحوار مصادقة لوحة التحكم. القيمة الافتراضية `https://api.befailproof.ai`؛ اضبطها على `http://localhost:8080` (أو في أي مكان آخر) عند تشغيل خادم api محلي. |
| `FAILPROOFAI_AUTH_DIR` | تجاوز موقع تخزين `auth.json` (الافتراضي: `~/.failproofai`). مفيد بشكل أساسي للاختبارات المعزولة. |
| `FAILPROOF_API_URL` | تجاوز عنوان URL الأساسي لخادم API الذي يستخدمه `failproofai auth` ومربع حوار مصادقة لوحة التحكم. القيمة الافتراضية `https://api.befailproof.ai`؛ عيّنها إلى `http://localhost:8080` (أو حيثما يكون) عند تشغيل خادم api محلي. |
| `FAILPROOFAI_AUTH_DIR` | تجاوز موقع تخزين `auth.json` (الافتراضي: `~/.failproofai`). مفيد في الغالب للاختبارات المعزولة. |

## مطالبة التشغيل الأول
## طلب التشغيل الأول

| المتغير | الوصف |
|----------|-------------|
| `FAILPROOFAI_NO_FIRST_RUN=1` | تخطي المطالبة التي تعرض تثبيت السياسات عند استدعاء `failproofai` الأول الفارغ |
| `FAILPROOFAI_NO_FIRST_RUN=1` | تخطي الطلب الذي يعرض تثبيت السياسات عند استدعاء `failproofai` الأول الأساسي |

## نموذج اللغة (لتقييم السياسة)
## LLM (لتقييم السياسات)

| المتغير | الوصف |
|----------|-------------|
| `FAILPROOFAI_LLM_BASE_URL` | نقطة نهاية واجهة برمجة التطبيقات للنموذج (الافتراضي: `https://api.openai.com/v1`) |
| `FAILPROOFAI_LLM_API_KEY` | مفتاح واجهة برمجة التطبيقات لسياسات مدعومة بنموذج اللغة |
| `FAILPROOFAI_LLM_BASE_URL` | نقطة نهاية LLM API (الافتراضي: `https://api.openai.com/v1`) |
| `FAILPROOFAI_LLM_API_KEY` | مفتاح API لسياسات مدعومة بـ LLM |
| `FAILPROOFAI_LLM_MODEL` | اسم النموذج (الافتراضي: `gpt-4o-mini`) |
16 changes: 8 additions & 8 deletions docs/ar/cli/hook.mdx
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
---
title: معالج الخطاف (داخلي)
title: معالج Hook (داخلي)
description: "العملية الفرعية التي يستدعيها Claude Code عند كل حدث أداة"
---

```bash
failproofai --hook <EventType>
```

هذا هو الأمر المسجل في `settings.json` الخاص بـ Claude Code بواسطة `failproofai policies --install`. لا تستدعيه مباشرة عادةً.
هذا هو الأمر المسجل في `settings.json` الخاص بـ Claude Code بواسطة `failproofai policies --install`. عادة لا تستدعيه مباشرة.

يقرأ حمولة JSON من stdin، ويقيّم جميع السياسات المفعلة، ويخرج برمز يشير إلى القرار:
يقرأ حمولة JSON من stdin، ويقيّم جميع السياسات المفعّلة، ويخرج برمز يشير إلى القرار:

| رمز الخروج | القرار | التأثير |
|-----------|--------|--------|
| `0` | `allow` | السماح بالإجراء |
| `1` | `deny` | حظر الإجراء - يرى Claude سبب الرفض |
| `2` | `instruct` | حقن التوجيهات في سياق Claude |
| `2` | `instruct` | إدراج الإرشادات في سياق Claude |

### أنواع الأحداث المدعومة

| الفئة | الأحداث |
|------|--------|
| **تنفيذ الأدوات** | `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied` |
|----------|--------|
| **تنفيذ الأداة** | `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied` |
| **دورة حياة الجلسة** | `SessionStart`, `SessionEnd`, `Stop`, `StopFailure` |
| **تفاعل المستخدم** | `UserPromptSubmit`, `Notification`, `Elicitation`, `ElicitationResult` |
| **التفاعل مع المستخدم** | `UserPromptSubmit`, `Notification`, `Elicitation`, `ElicitationResult` |
| **الوكلاء الفرعيون والمهام** | `SubagentStart`, `SubagentStop`, `TaskCreated`, `TaskCompleted`, `TeammateIdle` |
| **التكوين** | `InstructionsLoaded`, `ConfigChange`, `CwdChanged` |
| **الإعدادات** | `InstructionsLoaded`, `ConfigChange`, `CwdChanged` |
| **نظام الملفات** | `FileChanged`, `WorktreeCreate`, `WorktreeRemove` |
| **السياق** | `PreCompact`, `PostCompact` |
Loading