> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wolffi.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# قناة WhatsApp

> ربط وولف فيش بـ WhatsApp للمراسلة

# بلا API، فقط رمز QR

تربط قناة WhatsApp تطبيق وولف فيش بحسابك على WhatsApp عبر بروتوكول الويب. لا حاجة لواجهة برمجية رسمية، ولا لحساب أعمال — فقط امسح رمز QR وسيكون مساعدك الذكي الشخصي متاحًا في WhatsApp.

## الإعداد

<Tabs>
  <Tab title="الخطوة 1: التفعيل">
    في وولف فيش، افتح **الإعدادات > WhatsApp** وفعّل القناة. سيظهر رمز QR.
  </Tab>

  <Tab title="الخطوة 2: مسح رمز QR">
    افتح WhatsApp على هاتفك:

    * **iOS**: الإعدادات > الأجهزة المرتبطة > ربط جهاز
    * **Android**: القائمة (ثلاث نقاط) > الأجهزة المرتبطة > ربط جهاز

    امسح رمز QR المعروض في وولف فيش.
  </Tab>

  <Tab title="الخطوة 3: تم الاتصال">
    بعد المصادقة، تتغير الحالة إلى **متصل**. تستمر الجلسة عبر إعادة تشغيل وولف فيش — لن تحتاج للمسح مجددًا إلا إذا فصلت الجهاز.
  </Tab>
</Tabs>

<Info>
  يتصل وولف فيش كجهاز مرتبط باستخدام بروتوكول WhatsApp متعدد الأجهزة. لا يحتاج هاتفك أن يبقى متصلًا بالإنترنت بعد الربط الأولي.
</Info>

## مسار الاتصال

```
QR displayed → Phone scans → Multi-device auth → Session keys stored → Persistent connection
```

تُخزّن مفاتيح الجلسة محليًا في مساحة العمل. طالما لم تفصل الجهاز من إعدادات WhatsApp، يستمر الاتصال بشكل دائم.

## الأوامر

نفس أوامر الشرطة المائلة المتاحة في Telegram تعمل في WhatsApp:

| الأمر      | الإجراء                                              |
| ---------- | ---------------------------------------------------- |
| `/stop`    | إلغاء المهمة الجارية حاليًا                          |
| `/new`     | بدء محادثة جديدة                                     |
| `/resume`  | متابعة المحادثة السابقة                              |
| `/delete`  | حذف المحادثة الحالية                                 |
| `/current` | عرض المحادثة النشطة                                  |
| `/status`  | تقرير النظام (النموذج، استخدام الذاكرة، وقت التشغيل) |
| `/local`   | التبديل إلى النموذج المحلي (Ollama)                  |
| `/cloud`   | التبديل إلى النموذج السحابي (Claude/OpenAI)          |

أرسل أي أمر كرسالة WhatsApp عادية — لا حاجة لتنسيق خاص.

## آلية الموافقة

عندما تُصنّف الـ amygdala استدعاء أداة، يستخدم WhatsApp رسائل نصية لأن الأزرار المضمّنة غير متوفرة:

```
[Approval Required]

Wolffish wants to execute:
  shell_exec: npm install express

Reply "approve" to proceed or "deny" to abort.
```

يتوقف الدور حتى ترد. الردود لا تتأثر بحالة الأحرف — `approve` و`Approve` و`APPROVE` و`yes` و`y` جميعها تعمل.

<Note>
  بخلاف أزرار Telegram المضمّنة، موافقات WhatsApp هي رسائل نصية عادية. تتعرّف القناة على كلمات الموافقة أو الرفض فقط عندما يكون هناك طلب موافقة معلّق.
</Note>

## إعادة الاتصال

إذا انقطع اتصال WebSocket (تغيير الشبكة، سكون/استيقاظ، إعادة تشغيل الخادم)، يعيد وولف فيش الاتصال تلقائيًا مع تأخير تصاعدي:

| المحاولة | التأخير                |
| -------- | ---------------------- |
| 1        | ثانيتان                |
| 2        | 4 ثوانٍ                |
| 3        | 8 ثوانٍ                |
| 4        | 16 ثانية               |
| 5-12     | 30 ثانية (الحد الأقصى) |

بعد 12 محاولة فاشلة، يتوقف وولف فيش عن المحاولة ويُعلّم القناة كمنفصلة. يمكنك إعادة الاتصال يدويًا من الإعدادات أو الانتظار حتى إعادة تشغيل التطبيق التالية.

<Tip>
  عمليًا، تنجح إعادة الاتصال من المحاولة الأولى أو الثانية لمشاكل الشبكة العابرة. تسلسل المحاولات الكامل (12 محاولة) لا يُستنفد إلا إذا أُلغيت الجلسة من هاتفك.
</Tip>

## معالجة الرسائل القديمة

تُتجاهل الرسائل الأقدم من 3 ساعات افتراضيًا. هذا يمنع وولف فيش من معالجة تراكم الرسائل التي وصلت أثناء عدم اتصاله — فتلك الرسائل غالبًا لم تعد تحتاج ردًا.

يمكن تعديل هذا الحد في `config.json`:

```json theme={null}
{
  "channels": {
    "whatsapp": {
      "staleMessageThresholdMs": 10800000
    }
  }
}
```

اضبطه على `0` لتعطيل فلتر الرسائل القديمة ومعالجة كل شيء بغض النظر عن عمره.

## الرسائل الصوتية

تُحوّل الرسائل الصوتية المرسلة في WhatsApp إلى نص عبر تقنية تحويل الكلام إلى نص (STT) في وولف فيش وتُعالج كمدخل نصي عادي. يحدث التحويل محليًا قبل دخول الرسالة إلى خط معالجة الذكاء.

## معالجة حالة الانشغال

إذا كان هناك دور يعمل عند وصول رسالة WhatsApp جديدة، يرسل وولف فيش إشعارًا مختصرًا:

```
I'm working on something right now. Your message is queued
and I'll get to it when I'm done.
```

تدخل الرسالة قائمة انتظار TurnRunner وتُعالج بالترتيب عند اكتمال الدور الحالي.

## نتائج المهام المفصّلة

افتراضيًا يستقبل WhatsApp **تغذية نظيفة** — ردود الوكيل، وأي ملفات أو صوت يُنتجه، والأخطاء. أما خطوات الأدوات الروتينية فتبقى في واجهة سطح المكتب.

بدّل ذلك من **الإعدادات → القنوات → WhatsApp → نتائج المهام المفصّلة**:

* **إيقاف (الافتراضي)** — رسائل الوكيل والنتائج الحاملة للملفات والأخطاء فقط.
* **تشغيل** — يُعاد بثّ كل استدعاء أداة وكل نتيجة وكل نشاط إلى المحادثة.

<Note>
  لا يغيّر الوضع المفصّل سوى ما يُرسَل إلى WhatsApp. أما الدور كاملًا فيُحفظ في السجل والذاكرة بغضّ النظر عن الإعداد.
</Note>

## ربط المحادثات

كل معرّف JID في WhatsApp (معرّف رقم الهاتف) يرتبط بمحادثة في وولف فيش. عمليًا:

* الرسائل التي ترسلها لنفسك (عبر "راسل نفسك" في WhatsApp) تنشئ محادثة واحدة
* إذا هيّأت وولف فيش للرد على جهة اتصال محددة، يحصل معرّف JID الخاص بها على محادثة منفصلة

المحادثات مشتركة بين القنوات — يمكنك البدء في WhatsApp والمتابعة في واجهة Electron أو Telegram.

## التفاصيل التقنية

تستخدم قناة WhatsApp مكتبة [Baileys](https://github.com/WhiskeySockets/Baileys)، وهي تنفيذ مفتوح المصدر بلغة TypeScript لبروتوكول WhatsApp Web. تتولى Baileys:

* توليد رمز QR والمصادقة متعددة الأجهزة
* إدارة اتصال WebSocket
* تشفير/فك تشفير الرسائل (بروتوكول Signal)
* تنزيل ورفع الوسائط
* مؤشرات الحضور والكتابة

<Warning>
  Baileys هي مكتبة خارجية تقوم بهندسة عكسية لبروتوكول WhatsApp Web. رغم استخدامها الواسع واستقرارها، إلا أنها غير مدعومة رسميًا من Meta. قد تتطلب تغييرات بروتوكول WhatsApp أحيانًا تحديثات للمكتبة.
</Warning>
