---
read_when:
    - تكوين موافقات التنفيذ أو قوائم السماح
    - تنفيذ تجربة مستخدم الموافقة على exec في تطبيق macOS
    - مراجعة مطالبات الهروب من وضع الحماية وتداعياتها
sidebarTitle: Exec approvals
summary: 'الموافقات على تنفيذ المضيف: مقابض السياسة، وقوائم السماح، وسير عمل YOLO/الصارم'
title: موافقات التنفيذ
x-i18n:
    generated_at: "2026-06-27T18:40:52Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 44a4a5c9c56da458fdb25d5fe698df305af17188695d8befc1d4cfd8e8333e96
    source_path: tools/exec-approvals.md
    workflow: 16
---

موافقات تنفيذ الأوامر هي **حاجز حماية تطبيق المرافق / مضيف العقدة** للسماح
لوكيل داخل صندوق حماية بتشغيل أوامر على مضيف حقيقي (`gateway` أو `node`). وهي
قفل أمان: لا تُسمح الأوامر إلا عندما تتفق السياسة + قائمة السماح +
موافقة المستخدم (الاختيارية) كلها. تُطبَّق موافقات تنفيذ الأوامر **فوق**
سياسة الأدوات وبوابة الصلاحيات المرتفعة (ما لم تُضبط الصلاحيات المرتفعة على `full`، إذ
تتجاوز الموافقات).

للحصول على نظرة عامة مرتكزة على الأوضاع حول `deny` و`allowlist` و`ask` و`auto` و`full`،
وتخطيط Codex Guardian، وأذونات حاضنة ACPX، راجع
[أوضاع الأذونات](/ar/tools/permission-modes).

<Note>
السياسة الفعالة هي **الأكثر تقييدًا** بين `tools.exec.*` والقيم الافتراضية
للموافقات؛ إذا حُذف حقل موافقات، تُستخدم قيمة `tools.exec`. يستخدم تنفيذ الأوامر على المضيف
أيضًا حالة الموافقات المحلية على ذلك الجهاز - فوجود `ask: "always"` محليًا للمضيف
في ملف موافقات مضيف التنفيذ يستمر في طلب التأكيد حتى إذا طلبت القيم الافتراضية للجلسة
أو الإعدادات `ask: "on-miss"`.
</Note>

## فحص السياسة الفعالة

| الأمر                                                            | ما يعرضه                                                                              |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `openclaw approvals get` / `--gateway` / `--node <id\|name\|ip>` | السياسة المطلوبة، ومصادر سياسة المضيف، والنتيجة الفعالة.                              |
| `openclaw exec-policy show`                                      | العرض المدمج للجهاز المحلي.                                                           |
| `openclaw exec-policy set` / `preset`                            | مزامنة السياسة المحلية المطلوبة مع ملف موافقات المضيف المحلي في خطوة واحدة.           |

عندما يطلب نطاق محلي `host=node`، يبلّغ `exec-policy show` عن ذلك
النطاق على أنه مُدار من العقدة وقت التشغيل بدلًا من الإيحاء بأن ملف
الموافقات المحلي هو مصدر الحقيقة.

إذا كانت واجهة مستخدم تطبيق المرافق **غير متاحة**، فإن أي طلب كان سيؤدي
عادةً إلى مطالبة يُحسم عبر **بديل السؤال** (الافتراضي: `deny`).

<Tip>
يمكن لعملاء موافقات الدردشة الأصليين تهيئة وسائل ملائمة خاصة بالقناة على
رسالة الموافقة المعلقة. على سبيل المثال، تهيئ Matrix اختصارات تفاعلات
(`✅` السماح مرة واحدة، `❌` الرفض، `♾️` السماح دائمًا) مع إبقاء أوامر
`/approve ...` في الرسالة كبديل احتياطي.
</Tip>

## أين تُطبَّق

تُفرض موافقات تنفيذ الأوامر محليًا على مضيف التنفيذ:

- **مضيف Gateway** → عملية `openclaw` على جهاز Gateway.
- **مضيف العقدة** → مشغّل العقدة (تطبيق مرافق macOS أو مضيف عقدة بلا واجهة).

### نموذج الثقة

- يُعد المتصلون المصادق عليهم عبر Gateway مشغلين موثوقين لذلك Gateway.
- توسع العقد المقترنة قدرة المشغل الموثوق تلك إلى مضيف العقدة.
- تقلل موافقات تنفيذ الأوامر خطر التنفيذ العرضي، لكنها **ليست** حد مصادقة لكل مستخدم أو سياسة قراءة ملفات فقط.
- بعد الموافقة، يستطيع الأمر تعديل الملفات وفقًا لأذونات المضيف المحدد أو أذونات نظام ملفات صندوق الحماية.
- تربط عمليات مضيف العقدة الموافق عليها سياق التنفيذ القانوني: دليل العمل القانوني، وargv الدقيق، وربط البيئة عند وجوده، ومسار الملف التنفيذي المثبّت عند انطباق ذلك.
- بالنسبة إلى سكربتات shell واستدعاءات ملفات المفسرات/بيئات التشغيل المباشرة، يحاول OpenClaw أيضًا ربط مُعامل ملف محلي ملموس واحد. إذا تغيّر ذلك الملف المرتبط بعد الموافقة وقبل التنفيذ، تُرفض العملية بدلًا من تنفيذ محتوى انجرف.
- ربط الملفات مقصود أن يكون بأفضل جهد، **وليس** نموذجًا دلاليًا كاملًا لكل مسار تحميل لكل مفسر/بيئة تشغيل. إذا تعذر على وضع الموافقة تحديد ملف محلي ملموس واحد بالضبط لربطه، فإنه يرفض إصدار تشغيل مدعوم بالموافقة بدلًا من ادعاء تغطية كاملة.

### فصل macOS

- يمرر **خدمة مضيف العقدة** `system.run` إلى **تطبيق macOS** عبر IPC محلي.
- يفرض **تطبيق macOS** الموافقات وينفذ الأمر في سياق واجهة المستخدم.

## الإعدادات والتخزين

توجد الموافقات في ملف JSON محلي على مضيف التنفيذ. عند ضبط
`OPENCLAW_STATE_DIR`، يتبع الملف دليل الحالة ذلك؛
وإلا فإنه يستخدم دليل حالة OpenClaw الافتراضي:

```text
$OPENCLAW_STATE_DIR/exec-approvals.json
# otherwise
~/.openclaw/exec-approvals.json
```

يتبع مقبس الموافقة الافتراضي الجذر نفسه:
`$OPENCLAW_STATE_DIR/exec-approvals.sock`، أو
`~/.openclaw/exec-approvals.sock` عندما لا يكون المتغير مضبوطًا.

مثال مخطط:

```json
{
  "version": 1,
  "socket": {
    "path": "~/.openclaw/exec-approvals.sock",
    "token": "base64url-token"
  },
  "defaults": {
    "security": "deny",
    "ask": "on-miss",
    "askFallback": "deny",
    "autoAllowSkills": false
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "askFallback": "deny",
      "autoAllowSkills": true,
      "allowlist": [
        {
          "id": "B0C8C0B3-2C2D-4F8A-9A3C-5A4B3C2D1E0F",
          "pattern": "~/Projects/**/bin/rg",
          "source": "allow-always",
          "commandText": "rg -n TODO",
          "lastUsedAt": 1737150000000,
          "lastUsedCommand": "rg -n TODO",
          "lastResolvedPath": "/Users/user/Projects/.../bin/rg"
        }
      ]
    }
  }
}
```

## عناصر التحكم في السياسة

### `tools.exec.mode`

`tools.exec.mode` هو سطح السياسة المطبع المفضل لتنفيذ أوامر المضيف.
القيم هي:

- `deny` - حظر تنفيذ أوامر المضيف.
- `allowlist` - تشغيل الأوامر الموجودة في قائمة السماح فقط من دون سؤال.
- `ask` - استخدام سياسة قائمة السماح والسؤال عند عدم التطابق.
- `auto` - استخدام سياسة قائمة السماح، وتشغيل التطابقات الحتمية مباشرة، وإرسال حالات عدم التطابق التي تحتاج موافقة عبر المراجع التلقائي الأصلي في OpenClaw قبل الرجوع إلى مسار موافقة بشري.
- `full` - تشغيل تنفيذ أوامر المضيف من دون مطالبات موافقة.

لا تزال `tools.exec.security` / `tools.exec.ask` القديمة مدعومة وتظل لها الأولوية
عند ضبطها في نطاق جلسة أو وكيل أضيق.

### `exec.security`

<ParamField path="security" type='"deny" | "allowlist" | "full"'>
  - `deny` - حظر جميع طلبات تنفيذ أوامر المضيف.
  - `allowlist` - السماح بالأوامر الموجودة في قائمة السماح فقط.
  - `full` - السماح بكل شيء (مكافئ للصلاحيات المرتفعة).

</ParamField>

### `exec.ask`

<ParamField path="ask" type='"off" | "on-miss" | "always"'>
  سياسة السؤال المضبوطة لتنفيذ أوامر المضيف. تتحكم في سلوك مطالبة الموافقة
  الأساسي من `tools.exec.ask` والقيم الافتراضية لموافقات المضيف. لا يستطيع
  وسيط الأداة `ask` لكل استدعاء (راجع [أداة Exec](/ar/tools/exec#parameters))
  إلا تشديد ذلك الأساس، وتتجاهله استدعاءات النموذج الناشئة من القنوات
  عندما يكون سؤال المضيف الفعال `off`.

- `off` - لا تطالب أبدًا.
- `on-miss` - المطالبة فقط عندما لا تطابق قائمة السماح.
- `always` - المطالبة عند كل أمر. الثقة الدائمة `allow-always` **لا** تكبت المطالبات عندما يكون وضع السؤال الفعال `always`.

</ParamField>

### `askFallback`

<ParamField path="askFallback" type='"deny" | "allowlist" | "full"'>
  الحسم عندما تكون المطالبة مطلوبة لكن لا توجد واجهة مستخدم يمكن الوصول إليها. إذا حُذف هذا
  الحقل، يستخدم OpenClaw القيمة الافتراضية `deny`.

- `deny` - الحظر.
- `allowlist` - السماح فقط إذا طابقت قائمة السماح.
- `full` - السماح.

</ParamField>

### `tools.exec.strictInlineEval`

<ParamField path="strictInlineEval" type="boolean">
  عند `true`، يعامل OpenClaw صيغ تقييم الشيفرة المضمنة على أنها تتطلب الموافقة فقط
  حتى إذا كان ملف المفسر التنفيذي نفسه موجودًا في قائمة السماح. هذا دفاع متعمق
  لمحملات المفسرات التي لا تنطبق بوضوح على مُعامل ملف ثابت واحد.
</ParamField>

أمثلة يلتقطها الوضع الصارم:

- `python -c`
- `node -e`, `node --eval`, `node -p`
- `ruby -e`
- `perl -e`, `perl -E`
- `php -r`
- `lua -e`
- `osascript -e`

في الوضع الصارم، لا تزال هذه الأوامر تحتاج إلى موافقة صريحة، ولا
يُبقي `allow-always` إدخالات قائمة سماح جديدة لها تلقائيًا.

### `tools.exec.commandHighlighting`

<ParamField path="commandHighlighting" type="boolean" default="false">
  يتحكم في العرض فقط ضمن مطالبات الموافقة على تنفيذ الأوامر. عند تفعيله،
  قد يرفق OpenClaw مقاطع أوامر مشتقة من المحلل حتى تتمكن مطالبات الموافقة عبر Web
  من تمييز رموز الأوامر. اضبطه على `true` لتفعيل
  تمييز نص الأمر.
</ParamField>

لا يغير هذا الإعداد `security` أو `ask` أو مطابقة قائمة السماح أو
سلوك تقييم الشيفرة المضمنة الصارم أو تمرير الموافقات أو تنفيذ الأوامر.
يمكن ضبطه عموميًا تحت `tools.exec.commandHighlighting` أو لكل
وكيل تحت `agents.list[].tools.exec.commandHighlighting`.

## وضع YOLO (بلا موافقة)

إذا أردت تشغيل تنفيذ أوامر المضيف من دون مطالبات موافقة، فيجب فتح
**طبقتي** السياسة معًا - سياسة تنفيذ الأوامر المطلوبة في إعدادات OpenClaw
(`tools.exec.*`) **و** سياسة الموافقات المحلية للمضيف في
ملف موافقات مضيف التنفيذ.

يضبط OpenClaw القيمة الافتراضية لـ `askFallback` المحذوفة على `deny`. اضبط
`askFallback` للمضيف على `full` صراحةً عندما ينبغي لمطالبة موافقة بلا واجهة مستخدم
أن ترجع إلى السماح.

| الطبقة                | إعداد YOLO                 |
| --------------------- | -------------------------- |
| `tools.exec.security` | `full` على `gateway`/`node` |
| `tools.exec.ask`      | `off`                      |
| `askFallback` للمضيف  | `full`                     |

<Warning>
**فروقات مهمة:**

- يختار `tools.exec.host=auto` **أين** يعمل تنفيذ الأوامر: صندوق الحماية عند توفره، وإلا Gateway.
- يختار YOLO **كيف** تتم الموافقة على تنفيذ أوامر المضيف: `security=full` مع `ask=off`.
- في وضع YOLO، **لا** يضيف OpenClaw بوابة موافقة إرشادية منفصلة لتعمية الأوامر أو طبقة رفض فحص مسبق للسكربتات فوق سياسة تنفيذ أوامر المضيف المضبوطة.
- لا يجعل `auto` توجيه Gateway تجاوزًا مجانيًا من جلسة داخل صندوق حماية. يُسمح بطلب `host=node` لكل استدعاء من `auto`؛ ولا يُسمح بـ `host=gateway` من `auto` إلا عندما لا يكون أي تشغيل صندوق حماية نشطًا. للحصول على افتراضي ثابت غير تلقائي، اضبط `tools.exec.host` أو استخدم `/exec host=...` صراحةً.

</Warning>

يمكن للمزودين المدعومين بواجهة CLI الذين يعرضون وضع أذونات غير تفاعلي خاصًا بهم
اتباع هذه السياسة. تضيف Claude CLI
`--permission-mode bypassPermissions` عندما تكون سياسة تنفيذ الأوامر الفعالة في OpenClaw
هي YOLO. بالنسبة إلى جلسات Claude الحية المُدارة من OpenClaw، تكون
سياسة تنفيذ الأوامر الفعالة في OpenClaw هي المرجع على وضع أذونات Claude الأصلي:
يطبع YOLO عمليات الإطلاق الحية إلى `--permission-mode bypassPermissions`، وتطبع
سياسة تنفيذ الأوامر الفعالة المقيّدة عمليات الإطلاق الحية إلى
`--permission-mode default`، حتى إذا حددت وسائط Claude الخلفية الخام وضعًا آخر.

إذا أردت إعدادًا أكثر تحفظًا، شدد سياسة تنفيذ الأوامر في OpenClaw مجددًا إلى
`allowlist` / `on-miss` أو `deny`.

### إعداد دائم "عدم المطالبة أبدًا" لمضيف Gateway

<Steps>
  <Step title="Set the requested config policy">
    ```bash
    openclaw config set tools.exec.host gateway
    openclaw config set tools.exec.security full
    openclaw config set tools.exec.ask off
    openclaw gateway restart
    ```
  </Step>
  <Step title="Match the host approvals file">
    ```bash
    openclaw approvals set --stdin <<'EOF'
    {
      version: 1,
      defaults: {
        security: "full",
        ask: "off",
        askFallback: "full"
      }
    }
    EOF
    ```
  </Step>
</Steps>

### اختصار محلي

```bash
openclaw exec-policy preset yolo
```

يحدّث ذلك الاختصار المحلي كليهما:

- `tools.exec.host/security/ask` المحلي.
- القيم الافتراضية لملف الموافقات المحلي، بما في ذلك `askFallback: "full"`.

إنه محلي فقط عن قصد. لتغيير موافقات مضيف Gateway أو مضيف العقدة
عن بُعد، استخدم `openclaw approvals set --gateway` أو
`openclaw approvals set --node <id|name|ip>`.

### مضيف العقدة

بالنسبة إلى مضيف العقدة، طبّق ملف الموافقات نفسه على تلك العقدة بدلًا من ذلك:

```bash
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'
{
  version: 1,
  defaults: {
    security: "full",
    ask: "off",
    askFallback: "full"
  }
}
EOF
```

<Note>
**قيود محلية فقط:**

- لا يزامن `openclaw exec-policy` موافقات العقدة.
- يُرفض `openclaw exec-policy set --host node`.
- تُجلب موافقات تنفيذ الأوامر للعقدة من العقدة وقت التشغيل، لذلك يجب أن تستخدم التحديثات المستهدفة للعقدة `openclaw approvals --node ...`.

</Note>

### اختصار للجلسة فقط

- يغيّر `/exec security=full ask=off` الجلسة الحالية فقط.
- يُعدّ `/elevated full` اختصار طوارئ يتخطّى موافقات exec فقط عندما
  تُحلّ كل من السياسة المطلوبة وملف موافقات المضيف إلى
  `security: "full"` و`ask: "off"`. أما ملف مضيف أشد صرامة، مثل
  `ask: "always"`، فسيظل يعرض مطالبة.

إذا ظل ملف موافقات المضيف أشد صرامة من الإعداد، فستظل سياسة المضيف
الأشد صرامة هي الفائزة.

## قائمة السماح (لكل وكيل)

قوائم السماح **لكل وكيل**. إذا وُجد عدة وكلاء، فبدّل الوكيل الذي
تحرّره في تطبيق macOS. الأنماط هي مطابقات glob.

يمكن أن تكون الأنماط مسارات ثنائية محلولة بصيغة glob أو أسماء أوامر مجردة بصيغة glob.
تطابق الأسماء المجردة الأوامر المستدعاة عبر `PATH` فقط، لذا يمكن أن يطابق `rg`
المسار `/opt/homebrew/bin/rg` عندما يكون الأمر هو `rg`، لكن **ليس** `./rg` أو
`/tmp/rg`. استخدم glob لمسار عندما تريد الوثوق بموقع ثنائي محدد واحد.

تُرحّل إدخالات `agents.default` القديمة إلى `agents.main` عند التحميل.
ما تزال سلاسل shell مثل `echo ok && pwd` تحتاج إلى أن يفي كل مقطع علوي
بقواعد قائمة السماح.

أمثلة:

- `rg`
- `~/Projects/**/bin/peekaboo`
- `~/.local/bin/*`
- `/opt/homebrew/bin/rg`

### تقييد الوسائط باستخدام argPattern

أضف `argPattern` عندما يجب أن يطابق إدخال قائمة السماح ثنائياً وشكلاً
محدداً للوسائط. يقيّم OpenClaw التعبير النمطي
مقابل وسائط الأمر المحللة، مع استبعاد رمز الملف التنفيذي
(`argv[0]`). بالنسبة إلى الإدخالات المكتوبة يدوياً، تُدمج الوسائط باستخدام
مسافة واحدة، لذا ثبّت النمط عندما تحتاج إلى مطابقة دقيقة.

```json
{
  "version": 1,
  "agents": {
    "main": {
      "allowlist": [
        {
          "pattern": "python3",
          "argPattern": "^safe\\.py$"
        }
      ]
    }
  }
}
```

يسمح ذلك الإدخال بـ `python3 safe.py`؛ أما `python3 other.py` فهو عدم
مطابقة لقائمة السماح. إذا كان هناك أيضاً إدخال يعتمد على المسار فقط للثنائي نفسه،
فيمكن للوسائط غير المطابقة أن تعود إلى ذلك الإدخال المعتمد على المسار فقط. احذف الإدخال
المعتمد على المسار فقط عندما يكون الهدف هو تقييد الثنائي بالوسائط المعلنة.

يمكن للإدخالات المحفوظة بواسطة تدفقات الموافقة استخدام تنسيق فاصل داخلي
لمطابقة argv بدقة. فضّل واجهة المستخدم أو تدفق الموافقة لإعادة توليد تلك
الإدخالات بدلاً من تحرير القيمة المشفرة يدوياً. إذا تعذر على OpenClaw
تحليل argv لمقطع أمر، فلن تطابق الإدخالات التي تحتوي على `argPattern`.

يدعم كل إدخال في قائمة السماح:

| الحقل              | المعنى                                                       |
| ------------------ | ------------------------------------------------------------- |
| `pattern`          | glob لمسار ثنائي محلول أو glob لاسم أمر مجرد           |
| `argPattern`       | regex اختياري لـ argv؛ الإدخالات المحذوفة تكون معتمدة على المسار فقط            |
| `id`               | UUID ثابت مستخدم لهوية واجهة المستخدم                              |
| `source`           | مصدر الإدخال، مثل `allow-always`                          |
| `commandText`      | نص الأمر الملتقط عندما أنشأ تدفق موافقة الإدخال |
| `lastUsedAt`       | الطابع الزمني لآخر استخدام                                           |
| `lastUsedCommand`  | آخر أمر طابق                                     |
| `lastResolvedPath` | آخر مسار ثنائي محلول                                     |

## السماح التلقائي لواجهات CLI الخاصة بـ Skills

عند تفعيل **السماح التلقائي لواجهات CLI الخاصة بـ Skills**، تُعامل الملفات التنفيذية المشار إليها بواسطة
Skills المعروفة كأنها في قائمة السماح على العُقد (Node في macOS أو مضيف
Node بلا واجهة). يستخدم هذا `skills.bins` عبر Gateway RPC لجلب
قائمة ثنائيات Skills. عطّل هذا إذا كنت تريد قوائم سماح يدوية صارمة.

<Warning>
- هذه **قائمة سماح ضمنية للتيسير**، منفصلة عن إدخالات قائمة السماح اليدوية للمسارات.
- وهي مخصصة لبيئات المشغلين الموثوقة حيث يكون Gateway وNode داخل حدود الثقة نفسها.
- إذا كنت تتطلب ثقة صريحة صارمة، فأبقِ `autoAllowSkills: false` واستخدم إدخالات قائمة السماح اليدوية للمسارات فقط.

</Warning>

## الثنائيات الآمنة وتمرير الموافقات

للاطلاع على الثنائيات الآمنة (المسار السريع المعتمد على stdin فقط)، وتفاصيل ربط المفسر،
وكيفية تمرير مطالبات الموافقة إلى Slack/Discord/Telegram (أو تشغيلها كعملاء موافقة
أصليين)، راجع
[الموافقات على Exec - متقدم](/ar/tools/exec-approvals-advanced).

## التحرير في واجهة التحكم

استخدم بطاقة **واجهة التحكم → العُقد → الموافقات على Exec** لتحرير الافتراضيات،
والتجاوزات لكل وكيل، وقوائم السماح. اختر نطاقاً (الافتراضيات أو وكيل)،
وعدّل السياسة، وأضف/أزل أنماط قائمة السماح، ثم **احفظ**. تعرض واجهة المستخدم
بيانات وصفية لآخر استخدام لكل نمط حتى تتمكن من إبقاء القائمة مرتبة.

يختار محدد الهدف **Gateway** (الموافقات المحلية) أو **Node**.
يجب أن تعلن العُقد عن `system.execApprovals.get/set` (تطبيق macOS أو
مضيف Node بلا واجهة). إذا لم تعلن عقدة عن موافقات exec بعد،
فحرّر ملف الموافقات المحلي الخاص بها مباشرة.

CLI: يدعم `openclaw approvals` تحرير Gateway أو Node - راجع
[CLI للموافقات](/ar/cli/approvals).

## تدفق الموافقة

عندما تكون المطالبة مطلوبة، يبث Gateway
`exec.approval.requested` إلى عملاء المشغلين. تحلّه واجهة التحكم وتطبيق macOS
عبر `exec.approval.resolve`، ثم يمرر Gateway الطلب
الموافق عليه إلى مضيف Node.

بالنسبة إلى `host=node`، تتضمن طلبات الموافقة حمولة `systemRunPlan`
قياسية. يستخدم Gateway تلك الخطة باعتبارها سياق
command/cwd/session الرسمي عند تمرير طلبات `system.run`
الموافق عليها.

هذا مهم لزمن انتظار الموافقة غير المتزامنة:

- يجهّز مسار exec في Node خطة قياسية واحدة مقدماً.
- يخزن سجل الموافقة تلك الخطة وبيانات الربط الوصفية الخاصة بها.
- بعد الموافقة، تعيد استدعاءة `system.run` النهائية الممررة استخدام الخطة المخزنة بدلاً من الوثوق بتعديلات لاحقة من المستدعي.
- إذا غيّر المستدعي `command` أو `rawCommand` أو `cwd` أو `agentId` أو `sessionKey` بعد إنشاء طلب الموافقة، يرفض Gateway التشغيل الممرر باعتباره عدم تطابق في الموافقة.

## أحداث النظام

تظهر دورة حياة exec كرسائل نظام:

- `Exec running` (فقط إذا تجاوز الأمر عتبة إشعار التشغيل).
- `Exec finished`.

تُنشر هذه إلى جلسة الوكيل بعد أن يبلّغ Node عن الحدث.
تُعد موافقات exec المرفوضة نهائية لأمر المضيف نفسه: لا يعمل الأمر.
بالنسبة إلى موافقات الوكيل الرئيسي غير المتزامنة ذات الجلسة الأصلية،
ينشر OpenClaw الرفض مرة أخرى داخل تلك الجلسة كمتابعة داخلية حتى يتمكن
الوكيل من التوقف عن انتظار الأمر غير المتزامن وتجنب إصلاح نتيجة مفقودة.
إذا لم تكن هناك جلسة أو تعذر استئناف الجلسة، فلا يزال بإمكان OpenClaw
الإبلاغ عن رفض موجز إلى المشغل أو مسار المحادثة المباشر. لا تُنشر الرفضات الخاصة
بجلسات الوكلاء الفرعيين مرة أخرى داخل الوكيل الفرعي.
تصدر موافقات exec المستضافة على Gateway أحداث دورة الحياة نفسها عندما
ينتهي الأمر (واختيارياً عندما يعمل لمدة أطول من العتبة).
تعيد أوامر exec المحكومة بالموافقة استخدام معرّف الموافقة بوصفه `runId` في هذه
الرسائل لتسهيل الربط.

## سلوك الموافقة المرفوضة

عند رفض موافقة exec غير متزامنة، يتعامل OpenClaw مع أمر المضيف على أنه
نهائي ومغلق عند الفشل. بالنسبة إلى جلسات الوكيل الرئيسي، يُسلّم الرفض كمتابعة
جلسة داخلية تُخبر الوكيل بأن الأمر غير المتزامن لم يعمل.
يحافظ ذلك على استمرارية النص دون كشف مخرجات أمر قديمة. إذا
لم يكن تسليم الجلسة متاحاً، يعود OpenClaw إلى رفض موجز للمشغل أو
للمحادثة المباشرة عندما يوجد مسار آمن.

## الآثار

- **`full`** قوي؛ فضّل قوائم السماح عندما يكون ذلك ممكناً.
- **`ask`** يبقيك ضمن الحلقة مع السماح بموافقات سريعة.
- تمنع قوائم السماح لكل وكيل تسرّب موافقات وكيل إلى وكلاء آخرين.
- لا تنطبق الموافقات إلا على طلبات exec للمضيف الواردة من **مرسلين مخولين**. لا يستطيع المرسلون غير المخولين إصدار `/exec`.
- يُعد `/exec security=full` وسيلة تيسير على مستوى الجلسة للمشغلين المخولين ويتخطى الموافقات حسب التصميم. لحظر exec للمضيف حظراً صارماً، اضبط أمان الموافقات على `deny` أو ارفض أداة `exec` عبر سياسة الأدوات.

## ذات صلة

<CardGroup cols={2}>
  <Card title="الموافقات على Exec - متقدم" href="/ar/tools/exec-approvals-advanced" icon="gear">
    الثنائيات الآمنة، وربط المفسر، وتمرير الموافقات إلى الدردشة.
  </Card>
  <Card title="أداة Exec" href="/ar/tools/exec" icon="terminal">
    أداة تنفيذ أوامر shell.
  </Card>
  <Card title="الوضع المرتفع" href="/ar/tools/elevated" icon="shield-exclamation">
    مسار طوارئ يتخطى الموافقات أيضاً.
  </Card>
  <Card title="العزل" href="/ar/gateway/sandboxing" icon="box">
    أوضاع العزل والوصول إلى مساحة العمل.
  </Card>
  <Card title="الأمان" href="/ar/gateway/security" icon="lock">
    نموذج الأمان والتقوية.
  </Card>
  <Card title="العزل مقابل سياسة الأدوات مقابل الوضع المرتفع" href="/ar/gateway/sandbox-vs-tool-policy-vs-elevated" icon="sliders">
    متى تستخدم كل عنصر تحكم.
  </Card>
  <Card title="Skills" href="/ar/tools/skills" icon="sparkles">
    سلوك السماح التلقائي المدعوم بـ Skills.
  </Card>
</CardGroup>
