web-agent-bridge 3.0.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/LICENSE +72 -21
  2. package/README.ar.md +1286 -1073
  3. package/README.md +1764 -1535
  4. package/bin/agent-runner.js +474 -474
  5. package/bin/cli.js +237 -138
  6. package/bin/wab.js +80 -80
  7. package/examples/bidi-agent.js +119 -119
  8. package/examples/cross-site-agent.js +91 -91
  9. package/examples/mcp-agent.js +94 -94
  10. package/examples/next-app-router/README.md +44 -44
  11. package/examples/puppeteer-agent.js +108 -108
  12. package/examples/saas-dashboard/README.md +55 -55
  13. package/examples/shopify-hydrogen/README.md +74 -74
  14. package/examples/vision-agent.js +171 -171
  15. package/examples/wordpress-elementor/README.md +77 -77
  16. package/package.json +17 -3
  17. package/public/.well-known/agent-tools.json +180 -180
  18. package/public/.well-known/ai-assets.json +59 -59
  19. package/public/.well-known/ai-plugin.json +28 -0
  20. package/public/.well-known/security.txt +8 -0
  21. package/public/agent-workspace.html +349 -347
  22. package/public/ai.html +198 -196
  23. package/public/api.html +413 -0
  24. package/public/browser.html +486 -484
  25. package/public/commander-dashboard.html +243 -243
  26. package/public/cookies.html +210 -208
  27. package/public/css/agent-workspace.css +1713 -1713
  28. package/public/css/premium.css +317 -317
  29. package/public/css/styles.css +1235 -1235
  30. package/public/dashboard.html +706 -704
  31. package/public/demo.html +1770 -1
  32. package/public/dns.html +507 -0
  33. package/public/docs.html +587 -585
  34. package/public/feed.xml +89 -89
  35. package/public/growth.html +463 -0
  36. package/public/index.html +341 -9
  37. package/public/integrations.html +556 -0
  38. package/public/js/agent-workspace.js +1740 -1740
  39. package/public/js/auth-nav.js +31 -31
  40. package/public/js/auth-redirect.js +12 -12
  41. package/public/js/cookie-consent.js +56 -56
  42. package/public/js/wab-demo-page.js +721 -721
  43. package/public/js/ws-client.js +74 -74
  44. package/public/llms-full.txt +360 -309
  45. package/public/llms.txt +125 -86
  46. package/public/login.html +85 -83
  47. package/public/mesh-dashboard.html +328 -328
  48. package/public/openapi.json +580 -580
  49. package/public/phone-shield.html +281 -0
  50. package/public/premium-dashboard.html +2489 -2487
  51. package/public/premium.html +793 -791
  52. package/public/privacy.html +297 -295
  53. package/public/register.html +105 -103
  54. package/public/robots.txt +87 -87
  55. package/public/script/wab-consent.d.ts +36 -36
  56. package/public/script/wab-consent.js +104 -104
  57. package/public/script/wab-schema.js +131 -131
  58. package/public/script/wab.d.ts +108 -108
  59. package/public/script/wab.min.js +580 -580
  60. package/public/security.txt +8 -0
  61. package/public/terms.html +256 -254
  62. package/script/ai-agent-bridge.js +1754 -1754
  63. package/sdk/README.md +99 -99
  64. package/sdk/agent-mesh.js +449 -449
  65. package/sdk/commander.js +262 -262
  66. package/sdk/index.d.ts +464 -464
  67. package/sdk/index.js +18 -1
  68. package/sdk/multi-agent.js +318 -318
  69. package/sdk/package.json +12 -1
  70. package/sdk/safety-shield.js +219 -0
  71. package/sdk/schema-discovery.js +83 -83
  72. package/server/adapters/index.js +520 -520
  73. package/server/config/plans.js +367 -367
  74. package/server/config/secrets.js +102 -102
  75. package/server/control-plane/index.js +301 -301
  76. package/server/data-plane/index.js +354 -354
  77. package/server/index.js +175 -19
  78. package/server/llm/index.js +404 -404
  79. package/server/middleware/adminAuth.js +35 -35
  80. package/server/middleware/auth.js +50 -50
  81. package/server/middleware/featureGate.js +88 -88
  82. package/server/middleware/rateLimits.js +100 -100
  83. package/server/middleware/sensitiveAction.js +157 -0
  84. package/server/migrations/001_add_analytics_indexes.sql +7 -7
  85. package/server/migrations/002_premium_features.sql +418 -418
  86. package/server/migrations/003_ads_integer_cents.sql +33 -33
  87. package/server/migrations/004_agent_os.sql +158 -158
  88. package/server/migrations/005_marketplace_metering.sql +126 -126
  89. package/server/models/adapters/index.js +33 -33
  90. package/server/models/adapters/mysql.js +183 -183
  91. package/server/models/adapters/postgresql.js +172 -172
  92. package/server/models/adapters/sqlite.js +7 -7
  93. package/server/models/db.js +681 -681
  94. package/server/observability/failure-analysis.js +337 -337
  95. package/server/observability/index.js +394 -394
  96. package/server/protocol/capabilities.js +223 -223
  97. package/server/protocol/index.js +243 -243
  98. package/server/protocol/schema.js +584 -584
  99. package/server/registry/certification.js +271 -271
  100. package/server/registry/index.js +326 -326
  101. package/server/routes/admin-premium.js +671 -671
  102. package/server/routes/admin.js +261 -261
  103. package/server/routes/ads.js +130 -130
  104. package/server/routes/agent-workspace.js +540 -378
  105. package/server/routes/api.js +150 -150
  106. package/server/routes/auth.js +71 -71
  107. package/server/routes/billing.js +45 -45
  108. package/server/routes/commander.js +316 -316
  109. package/server/routes/demo-showcase.js +332 -0
  110. package/server/routes/demo-store.js +154 -0
  111. package/server/routes/discovery.js +417 -406
  112. package/server/routes/gateway.js +173 -0
  113. package/server/routes/license.js +251 -240
  114. package/server/routes/mesh.js +469 -469
  115. package/server/routes/noscript.js +543 -543
  116. package/server/routes/premium-v2.js +686 -686
  117. package/server/routes/premium.js +724 -724
  118. package/server/routes/runtime.js +2148 -2147
  119. package/server/routes/sovereign.js +465 -385
  120. package/server/routes/universal.js +200 -177
  121. package/server/routes/wab-api.js +850 -491
  122. package/server/runtime/container-worker.js +111 -111
  123. package/server/runtime/container.js +448 -448
  124. package/server/runtime/distributed-worker.js +362 -362
  125. package/server/runtime/event-bus.js +210 -210
  126. package/server/runtime/index.js +253 -253
  127. package/server/runtime/queue.js +599 -599
  128. package/server/runtime/replay.js +666 -666
  129. package/server/runtime/sandbox.js +266 -266
  130. package/server/runtime/scheduler.js +534 -534
  131. package/server/runtime/session-engine.js +293 -293
  132. package/server/runtime/state-manager.js +188 -188
  133. package/server/security/cross-site-redactor.js +196 -0
  134. package/server/security/dry-run.js +180 -0
  135. package/server/security/human-gate-rate-limit.js +147 -0
  136. package/server/security/human-gate-transports.js +178 -0
  137. package/server/security/human-gate.js +281 -0
  138. package/server/security/index.js +368 -368
  139. package/server/security/intent-engine.js +245 -0
  140. package/server/security/reward-guard.js +171 -0
  141. package/server/security/rollback-store.js +239 -0
  142. package/server/security/token-scope.js +404 -0
  143. package/server/security/url-policy.js +139 -0
  144. package/server/services/agent-chat.js +506 -506
  145. package/server/services/agent-learning.js +601 -575
  146. package/server/services/agent-memory.js +625 -625
  147. package/server/services/agent-mesh.js +555 -539
  148. package/server/services/agent-symphony.js +717 -717
  149. package/server/services/agent-tasks.js +1807 -1807
  150. package/server/services/api-key-engine.js +292 -0
  151. package/server/services/cluster.js +894 -894
  152. package/server/services/commander.js +738 -738
  153. package/server/services/edge-compute.js +440 -440
  154. package/server/services/email.js +204 -204
  155. package/server/services/hosted-runtime.js +205 -205
  156. package/server/services/lfd.js +635 -616
  157. package/server/services/local-ai.js +389 -389
  158. package/server/services/marketplace.js +270 -270
  159. package/server/services/metering.js +182 -182
  160. package/server/services/modules/affiliate-intelligence.js +93 -0
  161. package/server/services/modules/agent-firewall.js +90 -0
  162. package/server/services/modules/bounty.js +89 -0
  163. package/server/services/modules/collective-bargaining.js +92 -0
  164. package/server/services/modules/dark-pattern.js +66 -0
  165. package/server/services/modules/gov-intelligence.js +45 -0
  166. package/server/services/modules/neural.js +55 -0
  167. package/server/services/modules/notary.js +49 -0
  168. package/server/services/modules/price-time-machine.js +86 -0
  169. package/server/services/modules/protocol.js +104 -0
  170. package/server/services/negotiation.js +439 -439
  171. package/server/services/plugins.js +771 -771
  172. package/server/services/premium.js +1 -1
  173. package/server/services/price-intelligence.js +566 -565
  174. package/server/services/price-shield.js +1137 -1137
  175. package/server/services/reputation.js +465 -465
  176. package/server/services/search-engine.js +357 -357
  177. package/server/services/security.js +513 -513
  178. package/server/services/self-healing.js +843 -843
  179. package/server/services/sovereign-shield.js +542 -0
  180. package/server/services/stripe.js +192 -192
  181. package/server/services/swarm.js +788 -788
  182. package/server/services/universal-scraper.js +662 -661
  183. package/server/services/verification.js +481 -481
  184. package/server/services/vision.js +1163 -1163
  185. package/server/utils/cache.js +125 -125
  186. package/server/utils/migrate.js +81 -81
  187. package/server/utils/safe-fetch.js +228 -0
  188. package/server/utils/secureFields.js +50 -50
  189. package/server/ws.js +161 -161
  190. package/templates/artisan-marketplace.yaml +104 -104
  191. package/templates/book-price-scout.yaml +98 -98
  192. package/templates/electronics-price-tracker.yaml +108 -108
  193. package/templates/flight-deal-hunter.yaml +113 -113
  194. package/templates/freelancer-direct.yaml +116 -116
  195. package/templates/grocery-price-compare.yaml +93 -93
  196. package/templates/hotel-direct-booking.yaml +113 -113
  197. package/templates/local-services.yaml +98 -98
  198. package/templates/olive-oil-tunisia.yaml +88 -88
  199. package/templates/organic-farm-fresh.yaml +101 -101
  200. package/templates/restaurant-direct.yaml +97 -97
  201. package/server/services/fairness-engine.js +0 -409
  202. package/server/services/fairness.js +0 -420
package/README.ar.md CHANGED
@@ -1,1073 +1,1286 @@
1
- <div dir="rtl" align="right">
2
-
3
- # Web Agent Bridge (WAB) — جسر الوكيل الذكي
4
-
5
- [![CI](https://github.com/abokenan444/web-agent-bridge/actions/workflows/ci.yml/badge.svg)](https://github.com/abokenan444/web-agent-bridge/actions/workflows/ci.yml)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
- [![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/)
8
- [![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://hub.docker.com/)
9
-
10
- **برمجية وسيطة مفتوحة المصدر تربط وكلاء الذكاء الاصطناعي بالمواقع الإلكترونية — توفر واجهة أوامر موحدة للأتمتة الذكية.**
11
-
12
- 🌐 **الموقع الرسمي:** [https://webagentbridge.com](https://webagentbridge.com) — جرّب مساحة عمل الوكيل الذكي ولوحات التحكم والعديد من الميزات الأخرى مباشرة.
13
-
14
- يتيح WAB لأصحاب المواقع إضافة سكريبت يكشف واجهة `window.AICommands` لوكلاء الذكاء الاصطناعي. بدلاً من تحليل شيفرة HTML المعقدة، يقرأ الوكيل قائمة الإجراءات المتاحة وينفذها بدقة وأمان.
15
-
16
- **[English Documentation](README.md)** | **العربية**
17
-
18
- ---
19
-
20
- ## ✨ المميزات
21
-
22
- - **اكتشاف تلقائي** — يكتشف الأزرار والنماذج وروابط التنقل تلقائياً
23
- - **نظام صلاحيات**تحكم دقيق بما يمكن لوكلاء الذكاء الاصطناعي فعله
24
- - **واجهة موحدة**كائن `window.AICommands` موحد يستخدمه أي وكيل
25
- - **تحديد معدل الاستخدام** حماية مدمجة ضد الإساءة
26
- - **لوحة تحليلات**تتبع تفاعل وكلاء الذكاء الاصطناعي مع موقعك
27
- - **إجراءات مخصصة**سجّل إجراءاتك الخاصة مع معالجات مخصصة
28
- - **تحليلات فورية**عبر WebSocket لمراقبة النشاط لحظياً
29
- - **توافق WebDriver BiDi** دعم البروتوكولات المعيارية للمتصفحات
30
- - **مستويات اشتراك**نواة مجانية + ميزات متقدمة مدفوعة
31
- - **نظام أحداث**اشترك في أحداث الجسر للمراقبة
32
- - **صندوق حماية أمني** عزل كامل مع توكنات جلسة، تحقق من الأصل، تأمين تلقائي
33
- - **محددات ذاتية الإصلاح**مقاومة لتغييرات DOM في المواقع الديناميكية (SPA)
34
- - **وضع التخفي**محاكاة سلوك بشري (حركة فأرة، كتابة طبيعية، تمرير تدريجي)
35
- - **قواعد بيانات متعددة** SQLite + PostgreSQL + MySQL عبر محوّلات قابلة للتبديل
36
- - **SDK للوكلاء**حزمة أدوات جاهزة لبناء وكلاء ذكاء اصطناعي
37
- - **بنية الإضافات**نظام إضافات ديناميكي مع تنفيذ قائم على الخطافات، تثبيت لكل موقع، ترتيب أولويات، تقييمات، وتدقيق
38
- - **خدمة الرؤية**تحليل لقطات شاشة متعدد الموفرين (Moondream محلي، OpenAI، Anthropic، Ollama) مع كشف العناصر التفاعلية وتشفير AES-256-GCM
39
- - **محرك العدالة**طبقة حياد تضمن فرصة متساوية للمواقع الصغيرة والكبيرة مع بحث مرجح بالعدالة وتتبع شفافية العمولات
40
- - **ذاكرة الوكيل**ذاكرة سلوكية دائمة مع ٤ أنواع ذاكرة، ٥ فئات، ارتباطات دلالية، تقييم الأهمية، وانتهاء صلاحية مؤقت
41
- - **تحليل حركة المرور المتقدم** كشف أكثر من ٣٠ نوع بوت، تحليل سلوكي، كشف شذوذ، كشف استغلالات أمنية (SQL injection، XSS)
42
- - **خدمة البريد الإلكتروني**بريد SMTP (ترحيب، تسجيل، إعادة تعيين كلمة المرور) مع قوالب HTML
43
- - **تتبع بدون JavaScript**نقطة بكسل تتبع ١×١ لجمع التحليلات عند عدم توفر JavaScript
44
- - **محول WAB-MCP** — كشف قدرات مواقع WAB كأدوات MCP لـ Claude وGPT وGemini والوكلاء المتوافقة
45
- - **إضافة WordPress** — إضافة WordPress أصلية مع صفحة إعدادات، صناديق وصف لكل صفحة، توليد مستند اكتشاف، وعنصر لوحة تحكم
46
- - **متصفح WAB (سطح المكتب)** — متصفح Electron مستقل مع حاجب إعلانات مدمج (٨٠+ نطاق)، درع الاحتيال، تصنيف عدالة، دردشة وكيل، إشارات، سجل
47
- - **متصفح PWA (الهاتف)** — تطبيق ويب تقدمي لـ Android/iOS مع حجب إعلانات، بحث DuckDuckGo، كشف احتيال، تصفية شركات التقنية الكبرى
48
- - **SDK اكتشاف المخططات**استخراج JSON-LD schema.org من جانب الخادم مع توليد تلميحات إجراءات WAB تلقائياً
49
-
50
- ### الإصدار 2.0 — ميزات الحصن الرقمي
51
-
52
- - **محرك التفاوض اللحظي** — يتفاوض وكيل الذكاء الاصطناعي على الأسعار مباشرة مع المواقع عبر جلسات متعددة الجولات. ٨ أنواع شروط (كميات، ولاء، وقت، أول شراء، قيمة سلة، موسمية، عضوية، إحالة) و٤ أنواع خصومات (نسبة، مبلغ ثابت، شحن مجاني، هدية). يشمل حدود يومية وقيم حد أدنى وسجل كامل
53
- - **درع مقاومة التزييف**محرك تحقق متقاطع يقارن DOM مع لقطات الشاشة، يتحقق من الأسعار مقابل المعايير السوقية، يفحص الاتساق الزمني، ويقيس تشابه النصوص. ٤ مستويات خطورة (بسيط احتيال) و٥ إجراءات استجابة (تحذير، إيقاف، تأكيد بشري، تصحيح تلقائي، حظر)
54
- - **نظام السمعة اللامركزي**شهادات ثقة موقعة بـ HMAC من شبكة الوكلاء تغطي ٦ أنواع شهادات (شراء، حجز، استعلام، نموذج، تنقل، تحقق). ٧ مستويات ثقة (مجهولمحظور)، اضمحلال زمني، مقاومة Sybil، لوحة متصدرين عالمية، ونظام طعن/نزاع
55
- - **لوحة السيادة**مركز قيادة لحظي يعرض رادار العدالة، درع الخصوصية، سجل التفاوض، فحوصات التحقق، ومبدّل نماذج الذكاء الاصطناعي. يكشف نقطة `/api/sovereign/dashboard/sovereign` للبيانات المجمعة
56
- - **متجر قوالب الوكلاء** ١١ قالب YAML جاهز (حجز فنادق، مقارنة بقالة، سوق حرفيين، صفقات طيران، إلخ) مع تشغيل من سطر الأوامر: `npx wab-agent run template.yaml`
57
- - **تبديل عقل الوكيل**نظام تشغيل AI محلي يكتشف Ollama وllama.cpp تلقائياً مع دعم APIs متوافقة مع OpenAI. تتبع قدرات النماذج (نص/رؤية)، إدارة نوافذ السياق، توجيه حسب زمن الاستجابة، وتسجيل الاستدلال
58
- - **تنسيق الوكيل عبر المواقع** وكيل واحد يدير عدة مواقع WAB في نفس الوقت عبر `WABMultiAgent`. قارن الأسعار بين المتاجر، اجمع البيانات، نفّذ إجراءات متوازية، واعثر على أفضل صفقة تلقائياً
59
-
60
- ### الإصدار 2.3 — شبكة الوكلاء الخاصة (العقل الموزّع)
61
-
62
- - **بروتوكول التواصل بين الوكلاء** — الوكلاء يتواصلون عبر شبكة خاصة مع ٥ قنوات مدمجة (تنبيهات، اكتشافات، تكتيكات، مفاوضات، تصويت). ٦ أنواع رسائل مع تقييم الثقة، إزالة الوكلاء الخاملين تلقائياً عبر نبضات القلب، تحقق الأقران من المعرفة المشتركة. كل الاتصال يبقى محلياً
63
- - **التعلم المعزز المحلي** — الوكلاء يتعلمون من كل قرار للمستخدم باستخدام خوارزمية UCB1 متعددة الأذرع، تحديث السياسات بالنزول التدريجي مع تنشيط sigmoid، تخفيض زمني، واستخراج الأنماط المتسلسلة. بدون أي مكالمات API خارجية التعلم بالكامل محلي
64
- - **منسق السيمفونية**أربعة وكلاء متخصصين (باحث، محلل، مفاوض، حارس) يتعاونون ذاتياً عبر محركات قائمة على القواعد. ٥ قوالب، خط أنابيب من ٦ مراحل (تحليل ← بحث ← تفاوض ← حراسة ← تركيب ← قرار)، حق نقض الحارس للأمان، إجماع مرجح. تسجيل كامل للمراحل مع تتبع المدة. بدون أي اعتماد على LLM خارجية
65
- - **لوحة شبكة الوكلاء** عرض مباشر لشبكة الوكلاء: الوكلاء النشطون، قنوات الاتصال، قاعدة المعرفة المشتركة، تركيبات السيمفونية، ومقاييس أداء التعلم
66
-
67
- ### الإصدار 2.4 — القائد والذكاء على الحافة
68
-
69
- - **نظام القائد (Commander)** — محرك تنسيق مهام محلي يفكك الأهداف العليا إلى رسوم بيانية مهام (DAG). سجل وكلاء مع تتبع القدرات، محرك تنفيذ متوازٍ، تكامل تعلم لتغذية راجعة من النتائج، وتنسيق حوسبة طرفية
70
- - **نظام الحوسبة الطرفية (Edge Compute)** — يحول كل جهاز مستخدم إلى عقدة AI سيادية. تحليل المعدات (CPU, RAM, GPU)، تشفير AES-256-GCM بين العقد، موازنة حمل مرجحة، مراقبة صحة بنبضات القلب مع تجاوز فشل تلقائي، وتشكيل أسراب حسب القدرات
71
- - **محرك التنفيذ بالسرب**إطلاق عدة وكلاء بالتوازي لحل مهمة واحدة. استراتيجيات قابلة للتكوين (متوازي، متسلسل، هجيندمج النتائج بأفضل درجة، تخصص بالأدوار، تجميع مرجح بالعدالة، وتقييم ثقة لكل وكيل
72
-
73
- ### الإصدار 3.0 — نظام تشغيل الوكلاء (طبقة التنفيذ للويب)
74
-
75
- الإصدار 3.0 يحوّل WAB من أداة أتمتة متقدمة إلى **نظام تشغيل حقيقي للوكلاء** — طبقة تنفيذ كاملة لوكلاء الذكاء الاصطناعي على الويب، منافس لـ MCP لكنه مصمم خصيصاً للتفاعل مع المتصفح.
76
-
77
- - **بروتوكول WAB (WABP) v1.0.0** — بروتوكول رسمي مع سجل أوامر JSON Schema، رسائل مُنمطة، التحقق من المدخلات/المخرجات، وتعريفات أوامر مُنسّخة. ١٠ أوامر مدمجة (اكتشاف، تنفيذ، تنفيذ دلالي، تسجيل وكيل، إرسال مهمة، حالة مهمة، مقارنة تجارية، تفاوض تجاري، إرسال شبكة، استدلال AI). كل أمر يعلن عن القدرات المطلوبة ومستوى الخطر وصلاحيات الوصول
78
- - **تفاوض القدرات**منح قدرات ديناميكي بين الوكلاء والمواقع. موافقة تلقائية حسب مستوى الخطر (منخفض = موافقة تلقائية، عالي = يتطلب سياسة)، تحديد معدل لكل قدرة، منح قابلة للانتهاء مع تتبع الاستخدام، ودعم إبطال كامل
79
- - **محرك تشغيل الوكلاء** نظام تشغيل مهام بمستوى إنتاجي مع جدولة بقائمة أولويات، حل التبعيات، إعادة المحاولة بتراجع أسي، إيقاف/استئناف/إلغاء، حدود تزامن، وانتقالات حالة. ناقل أحداث غير متزامن مع وسيط، أحرف بدل مساحات الأسماء، ذاكرة إعادة (١٠ آلاف حدث)، وقائمة الرسائل الميتة
80
- - **صندوق حماية التنفيذ**عزل لكل مهمة مع حدود موارد (مهلة، ذاكرة قصوى، حد استدعاءات الشبكة، حد عمليات DOM)، قوائم نطاقات مسموحة، حظر محددات CSS، فحوصات قدرات وقت التنفيذ، وسجل تدقيق كامل لكل عملية
81
- - **مدير الحالة**حفظ حالة الوكيل بنقاط تفتيش مُسمّاة، تراجع لأي نقطة تفتيش، انتقالات حالة بالتحقق، عمليات دمج، وتنظيف بانتهاء الصلاحية
82
- - **حزمة المراقبة**مسجل JSON هيكلي مع مسجلات فرعية ومخارج قابلة للتوصيل، متتبع موزع بفترات أب-ابن (متوافق مع OpenTelemetry)، ومجمع مقاييس بعدادات ومقاييس ورسوم بيانية (مئينات p50/p90/p95/p99) وسلاسل زمنية للوحات التحكم
83
- - **نموذج الأمان**هوية الوكيل (تسجيل، مصادقة بمفتاح API مشفر، إدارة جلسات بمدة صلاحية، قوائم IP المسموحة، إبطال)، توقيع الأوامر (HMAC-SHA256 مع رمز فريد + طابع زمني، مقارنة آمنة زمنياًوعزل المواقع (تحكم وصول لكل موقع، وكلاء مسموحون/محظورون، حد تزامن أقصى، حظر محددات، تصنيف بيانات)
84
- - **مستوى التحكم**مدير الوكلاء لدورة حياة النشر (نشر، تعيين لمواقع، فحوصات صحة، إلغاء نشر) ومحرك السياسات بقواعد مُنمّطة، تقييم شروط (يساوي، يحتوي، نمط، حد أدنى، حد أقصى، ضمنربط سياسات بأولوية، وتطبيق على مستوى الكيان
85
- - **مستوى البيانات**محلل الإجراءات الدلالية يربط صيغة `domain.action` (مثل `checkout.addItem`) بالتنفيذ الفعلي لكل موقع. المنفّذ يوجّه المهام عبر التتبع + المقاييس، يدعم أوضاع التنفيذ الدلالي/الخط الأنبوبي/المتوازي، مع ٨ إجراءات دلالية مدمجة للسلة والبحث والمصادقة والتنقل والمحتوى
86
- - **تجريد LLM متعدد النماذج** واجهة موحدة لـ OpenAI (محادثة + تضمينات)، Anthropic (API الرسائل)، وOllama (نماذج محلية مع اكتشاف تلقائي). مدير LLM يوفر سلسلة احتياطية تلقائية عبر جميع الموفرين، تخزين مؤقت للاستجابات دقائق)، تتبع التكاليف عبر عدد الرموز، وقائمة نماذج
87
- - **السجل والنظام البيئي**سجل الأوامر (كـ npm لأوامر WAB تسجيل، اكتشاف، بحث حسب الفئة/الوسم/القدرة، تتبع الاستخدام)، سجل المواقع (دليل مواقع WAB مع التحقق، قائمة القدرات، تتبع الزيارات)، وسجل القوالب (قوالب سير عمل قابلة لإعادة الاستخدام مع عدد التنزيلات والتقييمات)
88
- - **واجهة API الموحدة لنظام التشغيل** جميع طبقات نظام التشغيل مكشوفة عبر نقاط REST على `/api/os/*`: اكتشاف البروتوكول، هوية/مصادقة الوكيل، CRUD المهام، التنفيذ الدلالي، النشر، السياسات، العزل، المراقبة (مقاييس/آثار/سجلاتالسجل (أوامر/مواقع/قوالب)، عمليات LLM، توقيع الأوامر، وأحداث Server-Sent Events للبث المباشر
89
- - **عميل WABAgentOS في SDK**فئة `WABAgentOS` جديدة في SDK مع كتابة TypeScript كاملة لجميع عمليات نظام التشغيل: تسجيل مصادقة تفاوض قدرات إرسال مهام تنفيذ دلالي استعلام المراقبة الاشتراك في الأحداث
90
-
91
- ---
92
-
93
- ## 🚀 البدء السريع
94
-
95
- ### ١. التثبيت والتشغيل
96
-
97
- ```bash
98
- # الطريقة أ: استنساخ وتشغيل
99
- git clone https://github.com/abokenan444/web-agent-bridge.git
100
- cd web-agent-bridge
101
- npm install
102
- cp .env.example .env
103
- npm start
104
-
105
- # الطريقة ب: npx (أمر واحد)
106
- npx web-agent-bridge start
107
-
108
- # الطريقة ج: Docker
109
- docker compose up -d
110
- ```
111
-
112
- ### ٢. إنشاء حساب
113
-
114
- زُر `http://localhost:3000/register` وأنشئ حساباً، ثم أضف موقعك من لوحة التحكم.
115
-
116
- ### ٣. إضافة السكريبت لموقعك
117
-
118
- ```html
119
- <script>
120
- window.AIBridgeConfig = {
121
- licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
122
- agentPermissions: {
123
- readContent: true,
124
- click: true,
125
- fillForms: true,
126
- scroll: true
127
- }
128
- };
129
- </script>
130
- <script src="http://localhost:3000/script/ai-agent-bridge.js"></script>
131
- ```
132
-
133
- ### ٤. الآن يمكن لوكلاء الذكاء الاصطناعي التفاعل
134
-
135
- ```javascript
136
- // من جانب وكيل الذكاء الاصطناعي
137
- const bridge = window.AICommands;
138
- const actions = bridge.getActions(); // اكتشاف الإجراءات
139
- await bridge.execute("signup"); // تنفيذ إجراء
140
- const info = bridge.getPageInfo(); // معلومات الصفحة
141
- ```
142
-
143
- ---
144
-
145
- ## 📁 هيكل المشروع
146
-
147
- ```
148
- web-agent-bridge/
149
- ├── server/ # خادم Express.js
150
- │ ├── index.js # نقطة البداية
151
- │ ├── ws.js # WebSocket للتحليلات الفورية
152
- │ ├── routes/
153
- │ │ ├── auth.js # المصادقة (تسجيل/دخول)
154
- │ │ ├── api.js # واجهة المواقع والتحليلات
155
- │ │ ├── license.js # التحقق من التراخيص والتتبع
156
- │ │ ├── admin.js # واجهة الإدارة
157
- │ │ ├── admin-premium.js # تحليلات الإدارة المتقدمة
158
- │ │ ├── billing.js # تكامل Stripe للمدفوعات
159
- │ │ ├── sovereign.js # الإصدار 2.0: تفاوض، سمعة، تحقق، لوحة سيادة
160
- │ │ ├── mesh.js # الإصدار 2.3: مسارات شبكة الوكلاء
161
- │ │ ├── commander.js # الإصدار 2.4: مسارات تنسيق المهام
162
- │ │ ├── premium.js # الميزات المتقدمة
163
- │ │ ├── premium-v2.js # ذاكرة، رؤية، إصلاح، سرب، إضافات
164
- │ │ ├── discovery.js # اكتشاف WAB + بحث مرجح بالعدالة
165
- │ │ ├── wab-api.js # نقل WAB عبر HTTP
166
- │ │ └── noscript.js # بكسل تتبع بدون JavaScript
167
- │ ├── services/
168
- │ │ ├── negotiation.js # محرك التفاوض اللحظي
169
- │ │ ├── verification.js # درع مقاومة التزييف
170
- │ │ ├── reputation.js # نظام السمعة اللامركزي
171
- │ │ ├── agent-mesh.js # بروتوكول التواصل بين الوكلاء
172
- │ │ ├── agent-learning.js # التعلم المعزز المحلي (UCB1)
173
- │ │ ├── agent-symphony.js # منسق السيمفونية (٤ أدوار، ٦ مراحل)
174
- │ │ ├── agent-memory.js # ذاكرة الوكيل مع ارتباطات
175
- │ │ ├── commander.js # تنسيق المهام ورسوم المهام (DAG)
176
- │ │ ├── edge-compute.js # حوسبة طرفية / عقد AI سيادية
177
- │ │ ├── swarm.js # محرك التنفيذ بالسرب
178
- │ │ ├── fairness.js # محرك العدالة والحياد
179
- │ │ ├── vision.js # تحليل الرؤية (متعدد الموفرين)
180
- │ │ ├── self-healing.js # تصحيحات المحددات ذاتية الإصلاح
181
- │ │ ├── local-ai.js # نظام تشغيل AI المحلي
182
- │ │ ├── plugins.js # بنية الإضافات (خطافات، سجل)
183
- │ │ ├── premium.js # تحليل حركة المرور وكشف البوتات
184
- │ │ ├── email.js # خدمة البريد SMTP
185
- │ │ └── stripe.js # تكامل مدفوعات Stripe
186
- │ ├── middleware/
187
- │ │ ├── auth.js # وسيط JWT
188
- │ │ ├── adminAuth.js # مصادقة الإدارة
189
- │ │ └── rateLimits.js # تحديد معدل الطلبات متعدد الطبقات
190
- │ ├── models/
191
- │ │ ├── db.js # عمليات قاعدة البيانات
192
- │ │ └── adapters/ # محولات SQLite, PostgreSQL, MySQL
193
- │ ├── migrations/ # ترحيلات SQL مرقمة
194
- │ └── utils/
195
- │ ├── cache.js # ذاكرة مؤقتة TTL + طابور تحليلات
196
- │ ├── migrate.js # مشغل الترحيلات
197
- │ └── secureFields.js # أدوات تشفير الحقول
198
- ├── public/ # الواجهة الأمامية
199
- │ ├── index.html # الصفحة الرئيسية
200
- │ ├── dashboard.html # لوحة التحكم
201
- │ ├── premium-dashboard.html # لوحة التحليلات المتقدمة
202
- │ ├── docs.html # التوثيق
203
- │ ├── login.html / register.html # صفحات المصادقة
204
- │ ├── admin/ # لوحة الإدارة
205
- │ ├── pwa/ # تطبيق الويب التقدمي (متصفح الهاتف)
206
- │ │ ├── manifest.json # بيان PWA
207
- │ │ ├── sw.js # عامل الخدمة (أولوية غير متصل)
208
- │ │ ├── index.html # واجهة المتصفح للهاتف
209
- │ │ ├── app.js # حاجب إعلانات، درع احتيال، عدالة
210
- │ │ ├── app.css # سمة داكنة محسنة للهاتف
211
- │ │ └── icons/ # أيقونات PWA
212
- │ ├── script/
213
- │ │ ├── wab.min.js # مكتبة WAB المصغرة
214
- │ │ ├── wab-consent.js # لافتة موافقة GDPR/CCPA
215
- │ │ ├── wab-schema.js # اكتشاف schema.org
216
- │ │ ├── wab.d.ts # تعريفات TypeScript
217
- │ │ └── wab-consent.d.ts # تعريفات TypeScript للموافقة
218
- │ ├── js/ # JavaScript الواجهة
219
- │ └── css/ # أوراق الأنماط
220
- ├── script/
221
- │ └── ai-agent-bridge.js # سكريبت الجسر (ضعه في موقعك)
222
- ├── examples/ # أمثلة الوكلاء
223
- │ ├── puppeteer-agent.js # Puppeteer + window.AICommands
224
- │ ├── bidi-agent.js # بروتوكول WebDriver BiDi
225
- │ ├── vision-agent.js # تحليل رؤية/لغة طبيعية
226
- │ ├── mcp-agent.js # محول MCP لـ Claude/GPT
227
- │ ├── cross-site-agent.js # تنسيق متعدد النطاقات
228
- │ ├── next-app-router/ # تكامل Next.js App Router
229
- ├── shopify-hydrogen/ # واجهة Shopify Hydrogen
230
- │ ├── wordpress-elementor/ # WordPress + Elementor
231
- └── saas-dashboard/ # إجراءات لوحة SaaS
232
- ├── packages/ # أغلفة أطر العمل
233
- │ ├── react/ # @web-agent-bridge/react
234
- │ ├── vue/ # @web-agent-bridge/vue
235
- │ ├── svelte/ # @web-agent-bridge/svelte
236
- └── langchain/ # @web-agent-bridge/langchain
237
- ├── sdk/ # SDK الوكيل
238
- │ ├── index.js # WABAgent لـ Puppeteer/Playwright
239
- └── schema-discovery.js # استخراج schema.org من الخادم
240
- ├── wab-mcp-adapter/ # محول MCP لـ Claude/GPT/Gemini
241
- │ ├── index.js # تعريفات أدوات MCP
242
- └── package.json
243
- ├── wab-browser/ # متصفح Electron لسطح المكتب
244
- │ ├── main.js # العملية الرئيسية لـ Electron
245
- │ ├── preload.js # التحميل المسبق
246
- │ └── package.json
247
- ├── web-agent-bridge-wordpress/ # إضافة WordPress
248
- │ ├── web-agent-bridge.php # نقطة دخول الإضافة
249
- │ ├── includes/ # فئات PHP (API, Actions, Dashboard)
250
- └── assets/ # CSS/JS الإضافة
251
- ├── bin/
252
- │ ├── cli.js # نقطة دخول CLI (wab-agent)
253
- └── wab.js # مشغل الوكلاء
254
- ├── templates/ # ١١ قالب YAML لمتجر الوكلاء
255
- ├── docs/
256
- │ ├── SPEC.md # مواصفة بروتوكول WAB
257
- └── DEPLOY.md # دليل النشر
258
- ├── demo-store/ # متجر تجريبي للاختبار
259
- ├── deploy/ # إعدادات Nginx
260
- ├── tests/ # اختبارات Jest + Supertest
261
- ├── .env # متغيرات البيئة
262
- └── package.json
263
- ```
264
-
265
- ---
266
-
267
- ## 🔌 واجهات API
268
-
269
- ### المصادقة
270
- | النقطة | الطريقة | الوصف |
271
- |---|---|---|
272
- | `/api/auth/register` | POST | إنشاء حساب |
273
- | `/api/auth/login` | POST | تسجيل الدخول |
274
- | `/api/auth/me` | GET | بيانات المستخدم الحالي |
275
-
276
- ### المواقع
277
- | النقطة | الطريقة | الوصف |
278
- |---|---|---|
279
- | `/api/sites` | GET | قائمة مواقعك |
280
- | `/api/sites` | POST | إضافة موقع جديد |
281
- | `/api/sites/:id` | GET | تفاصيل الموقع |
282
- | `/api/sites/:id/config` | PUT | تحديث الإعدادات |
283
- | `/api/sites/:id/tier` | PUT | تغيير مستوى الاشتراك |
284
- | `/api/sites/:id` | DELETE | حذف الموقع |
285
- | `/api/sites/:id/snippet` | GET | كود التضمين |
286
- | `/api/sites/:id/analytics` | GET | بيانات التحليلات |
287
-
288
- ### التراخيص (عامة)
289
- | النقطة | الطريقة | الوصف |
290
- |---|---|---|
291
- | `/api/license/verify` | POST | التحقق من مفتاح الترخيص |
292
- | `/api/license/token` | POST | تبادل `siteId` مقابل توكن جلسة |
293
- | `/api/license/session` | POST | التحقق من توكن الجلسة |
294
- | `/api/license/track` | POST | تسجيل حدث تحليلي |
295
-
296
- ### واجهات السيادة (الإصدار 2.0)
297
- | النقطة | الطريقة | الوصف |
298
- |---|---|---|
299
- | `/api/sovereign/reputation/agents` | POST | تسجيل وكيل جديد |
300
- | `/api/sovereign/reputation/attestations` | POST | إرسال شهادة ثقة |
301
- | `/api/sovereign/reputation/sites/:siteId` | GET | سمعة الموقع |
302
- | `/api/sovereign/reputation/leaderboard` | GET | لوحة المتصدرين |
303
- | `/api/sovereign/negotiation/rules` | POST | إنشاء قاعدة تفاوض |
304
- | `/api/sovereign/negotiation/sessions` | POST | فتح جلسة تفاوض |
305
- | `/api/sovereign/negotiation/sessions/:id/propose` | POST | تقديم عرض مضاد |
306
- | `/api/sovereign/negotiation/sessions/:id/confirm` | POST | تأكيد الصفقة |
307
- | `/api/sovereign/verify/price` | POST | التحقق من السعر |
308
- | `/api/sovereign/verify/text` | POST | التحقق من النص |
309
- | `/api/sovereign/verify/page` | POST | التحقق الشامل للصفحة |
310
- | `/api/sovereign/dashboard/sovereign` | GET | بيانات لوحة السيادة |
311
-
312
- ### شبكة الوكلاء (الإصدار 2.3)
313
- | النقطة | الطريقة | الوصف |
314
- |---|---|---|
315
- | `/api/mesh/agents` | POST | تسجيل وكيل في الشبكة |
316
- | `/api/mesh/agents` | GET | عرض وكلاء الشبكة |
317
- | `/api/mesh/channels` | GET | عرض قنوات الاتصال |
318
- | `/api/mesh/messages` | POST | نشر رسالة في قناة |
319
- | `/api/mesh/messages/:channel` | GET | قراءة رسائل القناة |
320
- | `/api/mesh/knowledge` | POST | مشاركة معرفة |
321
- | `/api/mesh/knowledge` | GET | استعلام قاعدة المعرفة |
322
- | `/api/mesh/votes` | POST | بدء تصويت |
323
- | `/api/mesh/votes/:id/cast` | POST | الإدلاء بصوت |
324
- | `/api/mesh/votes/:id/tally` | GET | نتائج التصويت |
325
-
326
- ### القائد (الإصدار 2.4)
327
- | النقطة | الطريقة | الوصف |
328
- |---|---|---|
329
- | `/api/commander/missions` | POST | إنشاء مهمة جديدة |
330
- | `/api/commander/missions/:id/launch` | POST | إطلاق المهمة |
331
- | `/api/commander/missions/:id` | GET | حالة المهمة |
332
- | `/api/commander/missions` | GET | عرض جميع المهام |
333
- | `/api/commander/agents` | POST | تسجيل وكيل |
334
- | `/api/commander/agents` | GET | عرض الوكلاء |
335
- | `/api/commander/edge/nodes` | POST | تسجيل عقدة حوسبة طرفية |
336
- | `/api/commander/edge/nodes` | GET | عرض العقد |
337
- | `/api/commander/ai/models` | GET | اكتشاف نماذج AI المحلية |
338
- | `/api/commander/ai/infer` | POST | تشغيل استدلال AI محلي |
339
- | `/api/commander/stats` | GET | إحصائيات المنصة الموحدة |
340
-
341
- ### الميزات المتقدمة (الإصدار 2)
342
- | النقطة | الطريقة | الوصف |
343
- |---|---|---|
344
- | `/api/premium/v2/memory` | POST | تخزين ذاكرة الوكيل |
345
- | `/api/premium/v2/memory/:agentId` | GET | استرجاع ذكريات الوكيل |
346
- | `/api/premium/v2/memory/associate` | POST | إنشاء ارتباط بين ذكريات |
347
- | `/api/premium/v2/vision/analyze` | POST | تحليل لقطة شاشة |
348
- | `/api/premium/v2/vision/elements` | POST | استخراج عناصر تفاعلية |
349
- | `/api/premium/v2/healing/corrections` | POST | تسجيل تصحيح محدد |
350
- | `/api/premium/v2/healing/resolve` | POST | حل محدد معطل |
351
- | `/api/premium/v2/swarm/execute` | POST | إطلاق مهمة سرب |
352
- | `/api/premium/v2/swarm/:id` | GET | نتائج السرب |
353
- | `/api/premium/v2/plugins` | GET | عرض الإضافات المتاحة |
354
- | `/api/premium/v2/plugins/:id/install` | POST | تثبيت إضافة |
355
- | `/api/premium/v2/plugins/:id/hooks` | POST | تنفيذ خطاف إضافة |
356
-
357
- ### الاكتشاف والعدالة
358
- | النقطة | الطريقة | الوصف |
359
- |---|---|---|
360
- | `/api/discovery` | GET | مستند اكتشاف WAB |
361
- | `/api/discovery/search` | GET | بحث مرجح بالعدالة |
362
- | `/api/discovery/register` | POST | تسجيل موقع في دليل WAB |
363
-
364
- ### بروتوكول WAB (نقل HTTP)
365
- | النقطة | الطريقة | الوصف |
366
- |---|---|---|
367
- | `/api/wab/session` | POST | تبادل توكن جلسة |
368
- | `/api/wab/actions` | GET | الإجراءات المتاحة |
369
- | `/api/wab/execute` | POST | تنفيذ إجراء عبر HTTP |
370
-
371
- ### WebSocket
372
- | النقطة | الوصف |
373
- |---|---|
374
- | `ws://localhost:3000/ws/analytics` | تحليلات فورية لحظية |
375
-
376
- ---
377
-
378
- ## ⚙️ واجهة سكريبت الجسر
379
-
380
- عند التحميل، يكشف `window.AICommands` الطرق التالية:
381
-
382
- | الطريقة | الوصف |
383
- |---|---|
384
- | `getActions(category?)` | قائمة الإجراءات المتاحة |
385
- | `getAction(name)` | الحصول على إجراء محدد |
386
- | `execute(name, params?)` | تنفيذ إجراء |
387
- | `readContent(selector)` | قراءة محتوى عنصر |
388
- | `getPageInfo()` | معلومات الصفحة والجسر |
389
- | `waitForElement(selector, timeout?)` | انتظار ظهور عنصر DOM |
390
- | `waitForNavigation(timeout?)` | انتظار تغيير العنوان |
391
- | `registerAction(def)` | تسجيل إجراء مخصص |
392
- | `authenticate(key, meta?)` | مصادقة الوكيل |
393
- | `refresh()` | إعادة مسح الصفحة |
394
- | `toBiDi()` | الحصول على سياق WebDriver BiDi |
395
- | `executeBiDi(command)` | تنفيذ أمر بصيغة BiDi |
396
-
397
- ---
398
-
399
- ## 🔧 الإعدادات
400
-
401
- ```javascript
402
- window.AIBridgeConfig = {
403
- licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
404
- agentPermissions: {
405
- readContent: true, // قراءة النص
406
- click: true, // النقر على العناصر
407
- fillForms: false, // ملء/إرسال النماذج
408
- scroll: true, // تمرير الصفحة
409
- navigate: false, // التنقل بين الصفحات
410
- apiAccess: false, // استدعاء API داخلي (Pro+)
411
- automatedLogin: false, // تسجيل دخول تلقائي (Starter+)
412
- extractData: false // استخراج البيانات (Pro+)
413
- },
414
- restrictions: {
415
- allowedSelectors: [],
416
- blockedSelectors: [".private", "[data-private]"],
417
- requireLoginForActions: ["apiAccess"],
418
- rateLimit: { maxCallsPerMinute: 60 }
419
- },
420
- logging: { enabled: false, level: "basic" }
421
- };
422
- ```
423
-
424
- ---
425
-
426
- ## 🔄 توافق WebDriver BiDi
427
-
428
- يدعم السكريبت بروتوكول WebDriver BiDi للتواصل مع الوكلاء عبر معايير موحدة:
429
-
430
- ```javascript
431
- // الحصول على سياق BiDi
432
- const context = window.__wab_bidi.getContext();
433
-
434
- // إرسال أمر BiDi
435
- const result = await window.__wab_bidi.send({
436
- id: 1,
437
- method: 'wab.executeAction',
438
- params: { name: 'signup', data: {} }
439
- });
440
-
441
- // الأوامر المدعومة:
442
- // wab.getContext — سياق الصفحة والقدرات
443
- // wab.getActions — قائمة الإجراءات
444
- // wab.executeAction تنفيذ إجراء
445
- // wab.readContent — قراءة محتوى
446
- // wab.getPageInfo — معلومات الصفحة
447
- ```
448
-
449
- ---
450
-
451
- ## 📊 التحليلات الفورية (WebSocket)
452
-
453
- اتصل بنقطة WebSocket لتلقي إشعارات فورية:
454
-
455
- ```javascript
456
- const ws = new WebSocket('ws://localhost:3000/ws/analytics');
457
-
458
- // المصادقة
459
- ws.onopen = () => {
460
- ws.send(JSON.stringify({
461
- type: 'auth',
462
- token: 'your-jwt-token',
463
- siteId: 'your-site-id'
464
- }));
465
- };
466
-
467
- // تلقي الأحداث
468
- ws.onmessage = (event) => {
469
- const data = JSON.parse(event.data);
470
- console.log('حدث جديد:', data);
471
- // { type: 'analytic', actionName: '...', agentId: '...', success: true }
472
- };
473
- ```
474
-
475
- ---
476
-
477
- ## 💰 مستويات الاشتراك
478
-
479
- | الميزة | مجاني | Starter | Pro | Enterprise |
480
- |---|:---:|:---:|:---:|:---:|
481
- | اكتشاف تلقائي | ✓ | ✓ | ✓ | ✓ |
482
- | نقر/تمرير | ✓ | ✓ | ✓ | ✓ |
483
- | ملء النماذج | ✓ | ✓ | ✓ | ✓ |
484
- | تسجيل أساسي | ✓ | ✓ | ✓ | ✓ |
485
- | تسجيل دخول تلقائي | ✗ | ✓ | ✓ | ✓ |
486
- | لوحة تحليلات | ✗ | ✓ | ✓ | ✓ |
487
- | وصول API | ✗ | ✗ | ✓ | ✓ |
488
- | استخراج البيانات | ✗ | ✗ | ✓ | ✓ |
489
- | تحديد معدل مخصص | ✗ | ✗ | ✗ | ✓ |
490
- | Webhooks | | ✗ | ✗ | ✓ |
491
-
492
- ---
493
-
494
- ## 🐳 تشغيل باستخدام Docker
495
-
496
- ```bash
497
- # بناء وتشغيل
498
- docker compose up -d
499
-
500
- # أو البناء يدوياً
501
- docker build -t web-agent-bridge .
502
- docker run -p 3000:3000 -e JWT_SECRET=your-secret -e JWT_SECRET_ADMIN=your-admin-secret web-agent-bridge
503
- ```
504
-
505
- ---
506
-
507
- ## 🧪 الاختبارات
508
-
509
- ```bash
510
- npm test
511
- ```
512
-
513
- تشمل الاختبارات:
514
- - واجهات المصادقة (تسجيل، دخول، التحقق من التوكن)
515
- - واجهات إدارة المواقع (CRUD، الإعدادات، المستويات)
516
- - واجهات التراخيص (التحقق، التتبع)
517
- - خدمة الصفحات الثابتة
518
-
519
- ---
520
-
521
- ## 🤖 Agent SDK — حزمة أدوات الوكيل
522
-
523
- يضم WAB حزمة SDK جاهزة لبناء وكلاء ذكاء اصطناعي. راجع [`sdk/README.md`](sdk/README.md) للتوثيق الكامل.
524
-
525
- ```javascript
526
- const puppeteer = require('puppeteer');
527
- const { WABAgent } = require('web-agent-bridge/sdk');
528
-
529
- const browser = await puppeteer.launch();
530
- const page = await browser.newPage();
531
- const agent = new WABAgent(page);
532
-
533
- await agent.navigateAndWait('https://example.com');
534
- const actions = await agent.getActions();
535
- await agent.execute('signup', { email: 'user@test.com' });
536
- await browser.close();
537
- ```
538
-
539
- ---
540
-
541
- ## 📚 أمثلة الوكلاء
542
-
543
- أمثلة جاهزة للتشغيل في مجلد [`examples/`](examples/):
544
-
545
- | الملف | الوصف |
546
- |---|---|
547
- | `puppeteer-agent.js` | وكيل أساسي باستخدام Puppeteer و `window.AICommands` |
548
- | `bidi-agent.js` | وكيل يستخدم بروتوكول WebDriver BiDi عبر `window.__wab_bidi` |
549
- | `vision-agent.js` | وكيل رؤية — يحل أوصاف اللغة الطبيعية إلى إجراءات WAB |
550
- | `mcp-agent.js` | استخدام محول MCP لـ Claude وGPT مع اكتشاف الأدوات |
551
- | `cross-site-agent.js` | تنسيق متعدد النطاقات مقارنة أسعار، تجميع بيانات، أفضل الصفقات |
552
-
553
- ### أمثلة التكامل مع أطر العمل
554
-
555
- | المسار | الوصف |
556
- |---|---|
557
- | `examples/next-app-router/` | تكامل Next.js App Router مع `@web-agent-bridge/react` |
558
- | `examples/shopify-hydrogen/` | واجهة Shopify Hydrogen مع إجراءات سلة عملية |
559
- | `examples/wordpress-elementor/` | إعداد WordPress + Elementor مع إجراءات مدعومة بالمخطط |
560
- | `examples/saas-dashboard/` | لوحة SaaS بنمط Notion مع مؤشرات أداء وتشغيل سير عمل |
561
-
562
- ```bash
563
- node examples/puppeteer-agent.js http://localhost:3000
564
- node examples/bidi-agent.js http://localhost:3000
565
- node examples/vision-agent.js http://localhost:3000
566
- ```
567
-
568
- ---
569
-
570
- ## 🗄️ دعم قواعد بيانات متعددة
571
-
572
- يستخدم WAB قاعدة SQLite افتراضياً ويدعم PostgreSQL و MySQL عبر محوّلات قاعدة البيانات.
573
-
574
- ```bash
575
- # SQLite (افتراضي — لا حاجة لإعداد)
576
- npm start
577
-
578
- # PostgreSQL
579
- npm install pg
580
- DB_ADAPTER=postgresql DATABASE_URL=postgres://user:pass@localhost:5432/wab npm start
581
-
582
- # MySQL
583
- npm install mysql2
584
- DB_ADAPTER=mysql DATABASE_URL=mysql://user:pass@localhost:3306/wab npm start
585
- ```
586
-
587
- ---
588
-
589
- ## 💻 واجهة سطر الأوامر (CLI)
590
-
591
- ```bash
592
- # تشغيل الخادم
593
- npx web-agent-bridge start
594
- npx web-agent-bridge start --port 8080
595
-
596
- # تهيئة مشروع جديد
597
- npx web-agent-bridge init
598
- ```
599
-
600
- ---
601
-
602
- ## 🔒 الأمان
603
-
604
- ### صندوق الحماية الأمني (Security Sandbox)
605
-
606
- كل نسخة من الجسر تعمل داخل صندوق حماية يوفر:
607
-
608
- - **توكنات جلسة** — توكن تشفيري فريد لكل جلسة يمنع هجمات الإعادة (Replay Attacks)
609
- - **التحقق من الأصل** — فقط الأصول المصرح بها يمكنها التفاعل مع الجسر
610
- - **تحقق من الأوامر** — كل أمر يُفحص من حيث الصيغة والطول وقائمة الحظر
611
- - **سجل تدقيق** كل إجراء يُسجّل بالتوقيت وبصمة الوكيل والحالة
612
- - **حماية التصعيد** — محاولات الوصول لميزات أعلى تؤدي لتأمين تلقائي بعد 5 مخالفات
613
- - **القفل التلقائي** — الجسر يصبح للقراءة فقط عند اكتشاف انتهاكات أمنية
614
-
615
- ### حماية الخادم
616
-
617
- - **CSP (سياسة أمان المحتوى)** — حماية ضد XSS وحقن السكريبت
618
- - **حماية iframe** — `frame-ancestors: 'none'` يمنع تحميل الموقع في إطارات غير موثوقة
619
- - **تشفير كلمات المرور** — bcrypt بتكلفة 12
620
- - **JWT** — توكن مؤقت ينتهي بعد 7 أيام
621
- - **Rate Limiting** — تحديد معدل الطلبات
622
- - **Helmet** — حماية رؤوس HTTP
623
- - **حظر المحددات** تقييد وصول الوكيل لعناصر محددة
624
-
625
- ---
626
-
627
- ## 🔄 المحددات ذاتية الإصلاح (Self-Healing Selectors)
628
-
629
- المواقع الحديثة (SPAs) تتغير باستمرار. نظام الإصلاح الذاتي يضمن استمرار عمل المحددات:
630
-
631
- 1. **البصمات** عند اكتشاف الإجراءات، يُخزن WAB بصمة غنية لكل عنصر
632
- 2. **7 استراتيجيات** — عند تعطل محدد، يجرب WAB: `data-wab-id`، `data-testid`، ID، `aria-label`، `name`، مطابقة نصية ضبابية، موضع + دور
633
- 3. **مراقب SPA** `MutationObserver` يرصد تغييرات DOM ويعيد اكتشاف الإجراءات تلقائياً
634
-
635
- ```javascript
636
- // أضف هذا للاستقرار الأقصى
637
- <button data-wab-id="signup-btn">إنشاء حساب</button>
638
- ```
639
-
640
- ---
641
-
642
- ## 🥷 وضع التخفي (Stealth Mode)
643
-
644
- لمواجهة أنظمة الحماية من البوتات:
645
-
646
- ```javascript
647
- window.AIBridgeConfig = { stealth: { enabled: true } };
648
- ```
649
-
650
- | الميزة | الوصف |
651
- |---|---|
652
- | سلسلة أحداث الفأرة | `mouseover mouseenter mousemove mousedown → mouseup → click` |
653
- | محاكاة الكتابة | حرف بحرف مع تأخير 30-120 مللي ثانية |
654
- | تمرير تدريجي | خطوات متعددة بسرعة متغيرة |
655
- | تأخيرات عشوائية | 50-400 مللي ثانية بين الإجراءات |
656
-
657
- ---
658
-
659
- ## 🛠️ التقنيات
660
-
661
- - **الخلفية**: Node.js + Express + WebSocket (ws)
662
- - **قاعدة البيانات**: SQLite (عبر better-sqlite3) مع مشغل ترحيلات
663
- - **المصادقة**: JWT + bcrypt + توكنات جلسة (مقفلة بالنطاق)
664
- - **التخزين المؤقت**: ذاكرة مؤقتة TTL + طابور تحليلات مجمع
665
- - **المدفوعات**: تكامل Stripe مع بوابة الفوترة
666
- - **الواجهة**: HTML/CSS/JS بدون أطر عمل
667
- - **أغلفة أطر العمل**: React, Vue 3, Svelte (اختيارية)
668
- - **تكامل LLM**: محول LangChain، محول MCP
669
- - **الأمان**: Helmet, CORS, CSP, Rate Limiting متعدد الطبقات
670
- - **الحاويات**: Docker + Docker Compose
671
- - **CI/CD**: GitHub Actions (اختبار + نشر تلقائي في npm)
672
- - **الاختبارات**: Jest + Supertest
673
-
674
- ---
675
-
676
- ## 💰 محرك التفاوض اللحظي
677
-
678
- يحدد أصحاب المواقع قواعد التفاوض. يتفاوض وكيل الذكاء الاصطناعي على الأسعار في جلسات متعددة الجولات:
679
-
680
- ```javascript
681
- // فتح جلسة تفاوض
682
- const session = await fetch('/api/sovereign/negotiation/sessions', {
683
- method: 'POST',
684
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
685
- body: JSON.stringify({
686
- siteId: 'site-uuid',
687
- agentId: 'agent-id',
688
- originalPrice: 49.99,
689
- itemId: 'product-123',
690
- itemName: 'زيت زيتون ١ لتر'
691
- })
692
- }).then(r => r.json());
693
-
694
- // تقديم عرض مضاد
695
- const counter = await fetch(`/api/sovereign/negotiation/sessions/${session.sessionId}/propose`, {
696
- method: 'POST',
697
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
698
- body: JSON.stringify({ agentId: 'agent-id', proposedPrice: 39.99 })
699
- }).then(r => r.json());
700
- // { status: 'accepted', finalPrice: 42.49, message: 'صفقة! ...' }
701
- ```
702
-
703
- ### أنواع الشروط
704
- | الشرط | الوصف |
705
- |---|---|
706
- | `bulk_quantity` | خصم على الكميات الكبيرة |
707
- | `loyalty` | مكافأة للعملاء المتكررين |
708
- | `time_based` | عروض الساعة السعيدة |
709
- | `first_purchase` | خصم ترحيبي للمشترين الجدد |
710
- | `cart_value` | حد أدنى لقيمة السلة |
711
- | `seasonal` | عروض موسمية بتواريخ محددة |
712
- | `membership` | أسعار خاصة للأعضاء |
713
- | `referral` | خصومات الإحالة |
714
-
715
- ---
716
-
717
- ## 🛡️ درع مقاومة التزييف (Anti-Hallucination Shield)
718
-
719
- محرك تحقق متقاطع يكتشف أكاذيب الذكاء الاصطناعي قبل وصولها للمستخدم:
720
-
721
- ```javascript
722
- // التحقق من سعر
723
- const result = await fetch('/api/sovereign/verify/price', {
724
- method: 'POST',
725
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
726
- body: JSON.stringify({
727
- siteId: 'site-uuid',
728
- domValue: 29.99,
729
- visionValue: 29.99,
730
- category: 'electronics',
731
- itemName: 'كابل USB'
732
- })
733
- }).then(r => r.json());
734
- // { verified: true, confidence: 0.98, severity: 'none' }
735
- ```
736
-
737
- ### طبقات التحقق
738
- ١. **DOM مقابل الرؤية** — يقارن السعر المستخرج من DOM مع قراءة لقطة الشاشة
739
- ٢. **المعيار السوقي** — يتحقق من السعر مقابل البيانات التاريخية للفئة
740
- ٣. **الاتساق الزمني** — يفحص هل تغير السعر بشكل مريب منذ آخر تحقق
741
- ٤. **النتيجة المركبة** مزيج مرجح من جميع الطبقات مع تصنيف الخطورة
742
-
743
- ---
744
-
745
- ## 📦 متجر قوالب الوكلاء (Community Agent Hub)
746
-
747
- قوالب YAML جاهزة لحالات الاستخدام الشائعة. شغّل أي قالب من سطر الأوامر:
748
-
749
- ```bash
750
- # عرض القوالب المتاحة
751
- npx wab-agent templates
752
-
753
- # تشغيل قالب
754
- npx wab-agent run olive-oil-tunisia --budget 50 --region tunis
755
-
756
- # تشغيل مع خادم مخصص
757
- npx wab-agent run hotel-direct-booking --server https://yourserver.com
758
- ```
759
-
760
- ### القوالب المتاحة
761
- | القالب | الوصف |
762
- |---|---|
763
- | `olive-oil-tunisia` | زيت زيتون من مزارع تونسية صغيرة |
764
- | `hotel-direct-booking` | حجز فنادق مباشر بدون وسطاء |
765
- | `artisan-marketplace` | منتجات يدوية من حرفيين مستقلين |
766
- | `grocery-price-compare` | مقارنة أسعار البقالة بين المتاجر المحلية |
767
- | `freelancer-direct` | مستقلون بدون رسوم منصات |
768
- | `restaurant-direct` | مطاعم بدون تطبيقات توصيل |
769
- | `book-price-scout` | كتب من مكتبات مستقلة |
770
- | `flight-deal-hunter` | رحلات مباشرة من شركات الطيران |
771
- | `electronics-price-tracker` | تتبع أسعار الإلكترونيات |
772
- | `local-services` | مزودي خدمات محليين |
773
- | `organic-farm-fresh` | منتجات عضوية مباشرة من المزارع |
774
-
775
- ---
776
-
777
- ## 🎯 نظام القائد (Commander)
778
-
779
- محرك تنسيق مهام محلي يفكك الأهداف العليا إلى مهام مترابطة ويوزعها على وكلاء متخصصين:
780
-
781
- ```javascript
782
- // إنشاء مهمة
783
- const mission = await fetch('/api/commander/missions', {
784
- method: 'POST',
785
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
786
- body: JSON.stringify({
787
- goal: 'إيجاد أرخص زيت زيتون في ٥ متاجر',
788
- strategy: 'parallel',
789
- agents: ['researcher-1', 'analyst-1', 'negotiator-1']
790
- })
791
- }).then(r => r.json());
792
-
793
- // إطلاق المهمة
794
- await fetch(`/api/commander/missions/${mission.id}/launch`, {
795
- method: 'POST', headers: { 'Authorization': 'Bearer ' + token }
796
- });
797
- ```
798
-
799
- | القدرة | الوصف |
800
- |---|---|
801
- | **تفكيك المهام** | تحويل الأهداف إلى رسوم بيانية مهام (DAG) مع تتبع التبعيات |
802
- | **سجل الوكلاء** | تتبع قدرات وأداء الوكلاء المسجلين |
803
- | **تنفيذ متوازٍ** | تشغيل المهام المستقلة بالتوازي عبر عدة وكلاء |
804
- | **تعلم من النتائج** | تسجيل النتائج لتغذية راجعة في التعلم المعزز |
805
- | **تنسيق حوسبة طرفية** | توزيع المهام الثقيلة على عقد الحافة |
806
-
807
- ---
808
-
809
- ## 🖥️ نظام الحوسبة الطرفية (Edge Compute)
810
-
811
- حوّل كل جهاز إلى عقدة AI سيادية — بدون سحابة مركزية:
812
-
813
- ```javascript
814
- // تسجيل جهاز كعقدة حوسبة طرفية
815
- await fetch('/api/commander/edge/nodes', {
816
- method: 'POST',
817
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
818
- body: JSON.stringify({
819
- name: 'حاسوبي',
820
- capabilities: { cpu: 8, ram: 16384, gpu: true },
821
- supportedTasks: ['text-inference', 'vision-analysis', 'price-comparison']
822
- })
823
- }).then(r => r.json());
824
- ```
825
-
826
- | القدرة | الوصف |
827
- |---|---|
828
- | **تحليل المعدات** | كشف إمكانيات CPU, RAM, GPU لكل عقدة |
829
- | **تشفير AES-256-GCM** | كل البيانات بين العقد مشفرة من الطرف للطرف |
830
- | **موازنة حمل مرجحة** | توجيه المهام حسب المعدات والتوفر |
831
- | **مراقبة بنبضات القلب** | تجاوز فشل تلقائي عند عدم استجابة العقد |
832
- | **تشكيل أسراب** | تجميع العقد حسب القدرات |
833
-
834
- ---
835
-
836
- ## 🐝 محرك التنفيذ بالسرب (Swarm)
837
-
838
- أطلق عدة وكلاء بالتوازي لحل مهمة واحدة ثم ادمج نتائجهم بذكاء:
839
-
840
- ```javascript
841
- const swarm = await fetch('/api/premium/v2/swarm/execute', {
842
- method: 'POST',
843
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
844
- body: JSON.stringify({
845
- task: 'أفضل عروض لاب توب تحت ١٠٠٠ دولار',
846
- strategy: 'parallel', // parallel | sequential | hybrid
847
- agentCount: 4,
848
- roles: ['researcher', 'analyst', 'price-checker', 'reviewer'],
849
- mergeStrategy: 'best-score' // best-score | fairness-weighted | consensus
850
- })
851
- }).then(r => r.json());
852
- ```
853
-
854
- ---
855
-
856
- ## ⚖️ محرك العدالة (Fairness Engine)
857
-
858
- طبقة حياد تضمن فرصة متساوية للمواقع الصغيرة والكبيرة:
859
-
860
- ```javascript
861
- // بحث مرجح بالعدالة (بدلاً من ترتيب الصلة فقط)
862
- const results = await fetch('/api/discovery/search?q=زيت+زيتون&fairness=true', {
863
- headers: { 'Authorization': 'Bearer ' + token }
864
- }).then(r => r.json());
865
- // المزارع الصغيرة تُرتّب بجانب أمازون مرجحة بدرجة الحياد لا بـ SEO فقط
866
- ```
867
-
868
- ### كيف يعمل تقييم الحياد
869
- | العامل | الوزن | الوصف |
870
- |---|---|---|
871
- | **اكتمال الإعداد** | ٢٥٪ | مدى جودة إعداد WAB في الموقع |
872
- | **درجة الثقة** | ٢٥٪ | شهادات السمعة من شبكة الوكلاء |
873
- | **الشفافية** | ٢٥٪ | إفصاح العمولة، وضوح التسعير |
874
- | **الاستجابة** | ٢٥٪ | زمن استجابة API، وقت التشغيل، نجاح الإجراءات |
875
-
876
- ---
877
-
878
- ## 🧠 ذاكرة الوكيل (Agent Memory)
879
-
880
- ذاكرة سلوكية دائمة تسمح للوكلاء بتذكر تفضيلات المستخدم وبناء ارتباطات:
881
-
882
- ```javascript
883
- // تخزين ذاكرة
884
- await fetch('/api/premium/v2/memory', {
885
- method: 'POST',
886
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
887
- body: JSON.stringify({
888
- agentId: 'agent-1',
889
- type: 'preference', // preference | interaction | correction | pattern
890
- category: 'purchase', // navigation | purchase | search | form | custom
891
- key: 'العلامة-المفضلة',
892
- value: 'عضوي-فقط',
893
- importance: 0.9
894
- })
895
- }).then(r => r.json());
896
-
897
- // إنشاء ارتباطات بين الذكريات
898
- await fetch('/api/premium/v2/memory/associate', {
899
- method: 'POST',
900
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
901
- body: JSON.stringify({
902
- sourceId: 'memory-1',
903
- targetId: 'memory-2',
904
- relationship: 'leads_to' // leads_to | similar_to | replaces | depends_on
905
- })
906
- }).then(r => r.json());
907
- ```
908
-
909
- ---
910
-
911
- ## 👁️ خدمة الرؤية (Vision Analysis)
912
-
913
- تحليل لقطات شاشة متعدد الموفرين لكشف العناصر التفاعلية واستخراج البيانات:
914
-
915
- | الموفر | محلي؟ | الوصف |
916
- |---|---|---|
917
- | **Moondream** | ✅ | نموذج رؤية محلي خفيف |
918
- | **Ollama** | | نماذج محلية عبر Ollama (llava, bakllava) |
919
- | **OpenAI** | ❌ | GPT-4 Vision |
920
- | **Anthropic** | ❌ | Claude Vision |
921
-
922
- ---
923
-
924
- ## 🔌 بنية الإضافات (Plugin Architecture)
925
-
926
- نظام إضافات ديناميكي يسمح بامتدادات من أطراف ثالثة:
927
-
928
- ```javascript
929
- // عرض الإضافات المتاحة
930
- const plugins = await fetch('/api/premium/v2/plugins', {
931
- headers: { 'Authorization': 'Bearer ' + token }
932
- }).then(r => r.json());
933
-
934
- // تثبيت إضافة لموقعك
935
- await fetch('/api/premium/v2/plugins/price-alert/install', {
936
- method: 'POST',
937
- headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
938
- body: JSON.stringify({ siteId: 'site-uuid', config: { threshold: 10 } })
939
- }).then(r => r.json());
940
- ```
941
-
942
- ---
943
-
944
- ## 🔍 تحليل حركة المرور المتقدم (Traffic Intelligence)
945
-
946
- | القدرة | الوصف |
947
- |---|---|
948
- | **٣٠+ نوع بوت** | كشف Google, Bing, ChatGPT, Claude, Perplexity وغيرها |
949
- | **تحليل سلوكي** | تصنيف سلوك الوكلاء حسب البصمة والمنصة والنوع |
950
- | **كشف شذوذ** | كشف الارتفاعات المفاجئة وتحليل أنماط غير عادية |
951
- | **كشف استغلالات أمنية** | رصد أنماط SQL injection, XSS, Rate anomalies |
952
- | **تنبيهات Webhook** | إطلاق webhooks عند نشاط مشبوه |
953
- | **تدقيق للامتثال** | سجل تدقيق كامل للتوافق التنظيمي |
954
-
955
- ---
956
-
957
- ## 🔗 محول WAB-MCP
958
-
959
- كشف قدرات مواقع WAB كأدوات [MCP](https://modelcontextprotocol.io/) لـ Claude وGPT وGemini:
960
-
961
- ```javascript
962
- const { WABMCPAdapter } = require('wab-mcp-adapter');
963
-
964
- const adapter = new WABMCPAdapter({
965
- siteUrl: 'https://shop.example.com',
966
- transport: 'http' // http | websocket | direct
967
- });
968
-
969
- const tools = await adapter.getTools();
970
- const result = await adapter.executeTool('execute_action', {
971
- name: 'addToCart', params: { sku: 'ABC123' }
972
- });
973
- ```
974
-
975
- ### أدوات MCP المدمجة
976
- | الأداة | الوصف |
977
- |---|---|
978
- | `discover` | اكتشاف الإجراءات المتاحة تلقائياً |
979
- | `get_actions` | قائمة كل الإجراءات مع المعاملات |
980
- | `execute_action` | تنفيذ إجراء محدد |
981
- | `read_content` | قراءة محتوى من الصفحة |
982
- | `get_page_info` | معلومات وصفية عن الصفحة |
983
- | `fairness_search` | بحث في دليل WAB مرجح بالعدالة |
984
- | `authenticate` | مصادقة وكيل مع الموقع |
985
-
986
- ---
987
-
988
- ## 🖥️ متصفح WAB (سطح المكتب)
989
-
990
- متصفح Electron مستقل مع ميزات خصوصية وعدالة مدمجة:
991
-
992
- - **حاجب الإعلانات** — ٨٠+ نطاق محظور + مطابقة أنماط URL + قواعد CSS تجميلية
993
- - **درع الاحتيال** كشف نطاقات TLD مشبوهة وانتحال أسماء العلامات التجارية
994
- - **تصنيف العدالة** — أولوية للمواقع المستقلة، تنبيه عن تركز الشركات الكبرى
995
- - **دردشة الوكيل** مساعد AI مدمج للتصفح
996
- - **الإشعارات** — تحليل الصفحة مع تنبيهات أمان وعدالة
997
- - **وضع الشبح** تصفح بخصوصية بدون تتبع
998
- - **بحث ذكي** تكامل DuckDuckGo للبحث الخاص
999
-
1000
- ```bash
1001
- # تشغيل متصفح WAB
1002
- cd wab-browser
1003
- npm install
1004
- npx electron .
1005
-
1006
- # بناء المثبت (Windows NSIS)
1007
- npm run build:win
1008
- ```
1009
-
1010
- ---
1011
-
1012
- ## 📱 متصفح PWA (الهاتف)
1013
-
1014
- تطبيق ويب تقدمي لـ Android وiOS — قابل للتثبيت من أي متصفح هاتف:
1015
-
1016
- - **حاجب إعلانات** — ٤٥+ نطاق إعلاني محظور + مطابقة أنماط URL
1017
- - **كشف الاحتيال** تنبيهات TLD مشبوهة وفحوصات انتحال العلامات
1018
- - **وضع العدالة** تصفية مواقع التقنية الكبرى لتعزيز البدائل المستقلة
1019
- - **أولوية غير متصل** — عامل الخدمة يخزن أصول الواجهة مؤقتاً للتشغيل بدون إنترنت
1020
- - **بحث خاص** — تكامل DuckDuckGo (بدون تتبع Google)
1021
- - **دردشة وكيل** — مساعد AI مع احتياطي محلي
1022
-
1023
- ثبّته من: `https://yourserver.com/pwa/`
1024
-
1025
- ---
1026
-
1027
- ## 📦 إضافة WordPress
1028
-
1029
- إضافة WordPress أصلية لإضافة دعم WAB لأي موقع WordPress:
1030
-
1031
- | القدرة | الوصف |
1032
- |---|---|
1033
- | **صفحة إعدادات** | إعداد عنوان API، معرف الموقع، الصلاحيات |
1034
- | **إجراءات لكل صفحة** | صندوق وصف لإضافة إجراءات WAB مخصصة لكل صفحة/مقال |
1035
- | **مستند اكتشاف** | توليد تلقائي لنقطة اكتشاف WAB |
1036
- | **عنصر لوحة تحكم** | عرض حالة WAB وإحصائيات تفاعل الوكلاء |
1037
- | **كود قصير** | `[wab_bridge]` لتضمين WAB في صفحات محددة |
1038
- | **خطافات** | `wab_before_action` / `wab_after_action` لمنطق مخصص |
1039
-
1040
- راجع [`web-agent-bridge-wordpress/README.md`](web-agent-bridge-wordpress/README.md) للتوثيق الكامل.
1041
-
1042
- ---
1043
-
1044
- ## 📋 مواصفة بروتوكول WAB
1045
-
1046
- المواصفة المعيارية الكاملة متاحة في [`docs/SPEC.md`](docs/SPEC.md):
1047
-
1048
- | الطبقة | الوصف |
1049
- |---|---|
1050
- | **طبقة البروتوكول** | صيغة مستند الاكتشاف، بروتوكول الأوامر، بروتوكول العدالة |
1051
- | **طبقة التشغيل** | واجهة `window.AICommands`، محرك الاكتشاف التلقائي، صندوق الأمان |
1052
- | **طبقة النقل** | متغير JavaScript عام، WebSocket, HTTP, WebDriver BiDi, MCP |
1053
-
1054
- ### دورة الحياة من ٥ مراحل
1055
- ١. **اكتشاف** الوكيل يجد مستند اكتشاف WAB (`.well-known/wab.json` أو وسم سكريبت)
1056
- ٢. **مصادقة** الوكيل يستبدل `siteId` بتوكن جلسة
1057
- ٣. **تخطيط** — الوكيل يقرأ الإجراءات المتاحة ومعلومات الصفحة
1058
- ٤. **تنفيذ** الوكيل يشغل الإجراءات عبر الجسر
1059
- ٥. **تأكيد** النتائج تُتحقق عبر درع مقاومة التزييف
1060
-
1061
- ---
1062
-
1063
- ## 🤝 المساهمة
1064
-
1065
- نرحب بالمساهمات! اقرأ [دليل المساهمة](CONTRIBUTING.md) للبدء.
1066
-
1067
- ---
1068
-
1069
- ## 📄 الرخصة
1070
-
1071
- MIT — مجاني للاستخدام والتعديل والتوزيع.
1072
-
1073
- </div>
1
+ <div dir="rtl" align="right">
2
+
3
+ # Web Agent Bridge (WAB) — جسر الوكيل الذكي
4
+
5
+ [![CI](https://github.com/abokenan444/web-agent-bridge/actions/workflows/ci.yml/badge.svg)](https://github.com/abokenan444/web-agent-bridge/actions/workflows/ci.yml)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/)
8
+ [![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://hub.docker.com/)
9
+ [![Discord](https://img.shields.io/badge/Discord-%D8%A7%D9%86%D8%B6%D9%85%20%D9%84%D9%84%D9%85%D8%AC%D8%AA%D9%85%D8%B9-5865F2?logo=discord&logoColor=white)](https://discord.gg/NnbpJYEF)
10
+
11
+ **البروتوكول والمنصة المفتوحة للتفاعل بين الذكاء الاصطناعي والويب — واجهة أوامر موحّدة، متصفح سيادي، درع هاتف، اكتشاف عبر DNS، شبكة وكلاء، وبوابة API موحّدة لتفاعل آمن بين الذكاء الاصطناعي والمواقع.**
12
+
13
+ 🌐 **الموقع الرسمي:** [https://webagentbridge.com](https://webagentbridge.com) — جرّب مساحة عمل الوكيل الذكي ولوحات التحكم والعديد من الميزات الأخرى مباشرة.
14
+
15
+ يتيح WAB لأصحاب المواقع إضافة سكريبت يكشف واجهة `window.AICommands` لوكلاء الذكاء الاصطناعي. بدلاً من تحليل شيفرة HTML المعقدة، يقرأ الوكيل قائمة الإجراءات المتاحة وينفذها بدقة وأمان.
16
+
17
+ **[English Documentation](README.md)** | **العربية**
18
+
19
+ ---
20
+
21
+ ## ✨ المميزات
22
+
23
+ - **اكتشاف تلقائي**يكتشف الأزرار والنماذج وروابط التنقل تلقائياً
24
+ - **نظام صلاحيات**تحكم دقيق بما يمكن لوكلاء الذكاء الاصطناعي فعله
25
+ - **واجهة موحدة**كائن `window.AICommands` موحد يستخدمه أي وكيل
26
+ - **تحديد معدل الاستخدام** حماية مدمجة ضد الإساءة
27
+ - **لوحة تحليلات**تتبع تفاعل وكلاء الذكاء الاصطناعي مع موقعك
28
+ - **إجراءات مخصصة**سجّل إجراءاتك الخاصة مع معالجات مخصصة
29
+ - **تحليلات فورية**عبر WebSocket لمراقبة النشاط لحظياً
30
+ - **توافق WebDriver BiDi** دعم البروتوكولات المعيارية للمتصفحات
31
+ - **مستويات اشتراك**نواة مجانية + ميزات متقدمة مدفوعة
32
+ - **نظام أحداث**اشترك في أحداث الجسر للمراقبة
33
+ - **صندوق حماية أمني**عزل كامل مع توكنات جلسة، تحقق من الأصل، تأمين تلقائي
34
+ - **محددات ذاتية الإصلاح** مقاومة لتغييرات DOM في المواقع الديناميكية (SPA)
35
+ - **وضع التخفي**محاكاة سلوك بشري (حركة فأرة، كتابة طبيعية، تمرير تدريجي)
36
+ - **قواعد بيانات متعددة** SQLite + PostgreSQL + MySQL عبر محوّلات قابلة للتبديل
37
+ - **SDK للوكلاء**حزمة أدوات جاهزة لبناء وكلاء ذكاء اصطناعي
38
+ - **بنية الإضافات**نظام إضافات ديناميكي مع تنفيذ قائم على الخطافات، تثبيت لكل موقع، ترتيب أولويات، تقييمات، وتدقيق
39
+ - **خدمة الرؤية**تحليل لقطات شاشة متعدد الموفرين (Moondream محلي، OpenAI، Anthropic، Ollama) مع كشف العناصر التفاعلية وتشفير AES-256-GCM
40
+ - **محرك العدالة**طبقة حياد تضمن فرصة متساوية للمواقع الصغيرة والكبيرة مع بحث مرجح بالعدالة وتتبع شفافية العمولات
41
+ - **ذاكرة الوكيل**ذاكرة سلوكية دائمة مع ٤ أنواع ذاكرة، ٥ فئات، ارتباطات دلالية، تقييم الأهمية، وانتهاء صلاحية مؤقت
42
+ - **تحليل حركة المرور المتقدم** كشف أكثر من ٣٠ نوع بوت، تحليل سلوكي، كشف شذوذ، كشف استغلالات أمنية (SQL injection، XSS)
43
+ - **خدمة البريد الإلكتروني**بريد SMTP (ترحيب، تسجيل، إعادة تعيين كلمة المرور) مع قوالب HTML
44
+ - **تتبع بدون JavaScript** — نقطة بكسل تتبع ١×١ لجمع التحليلات عند عدم توفر JavaScript
45
+ - **محول WAB-MCP** — كشف قدرات مواقع WAB كأدوات MCP لـ Claude وGPT وGemini والوكلاء المتوافقة
46
+ - **إضافة WordPress** — إضافة WordPress أصلية مع صفحة إعدادات، صناديق وصف لكل صفحة، توليد مستند اكتشاف، وعنصر لوحة تحكم
47
+ - **متصفح WAB (سطح المكتب)** — متصفح Electron مستقل مع حاجب إعلانات مدمج (٨٠+ نطاق)، درع الاحتيال، تصنيف عدالة، دردشة وكيل، إشارات، سجل
48
+ - **متصفح PWA (الهاتف)**تطبيق ويب تقدمي لـ Android/iOS مع حجب إعلانات، بحث DuckDuckGo، كشف احتيال، تصفية شركات التقنية الكبرى
49
+ - **SDK اكتشاف المخططات** — استخراج JSON-LD schema.org من جانب الخادم مع توليد تلميحات إجراءات WAB تلقائياً
50
+
51
+ ### الإصدار 2.0 — ميزات الحصن الرقمي
52
+
53
+ - **محرك التفاوض اللحظي**يتفاوض وكيل الذكاء الاصطناعي على الأسعار مباشرة مع المواقع عبر جلسات متعددة الجولات. ٨ أنواع شروط (كميات، ولاء، وقت، أول شراء، قيمة سلة، موسمية، عضوية، إحالة) و٤ أنواع خصومات (نسبة، مبلغ ثابت، شحن مجاني، هدية). يشمل حدود يومية وقيم حد أدنى وسجل كامل
54
+ - **درع مقاومة التزييف**محرك تحقق متقاطع يقارن DOM مع لقطات الشاشة، يتحقق من الأسعار مقابل المعايير السوقية، يفحص الاتساق الزمني، ويقيس تشابه النصوص. ٤ مستويات خطورة (بسيطاحتيال) و٥ إجراءات استجابة (تحذير، إيقاف، تأكيد بشري، تصحيح تلقائي، حظر)
55
+ - **نظام السمعة اللامركزي** شهادات ثقة موقعة بـ HMAC من شبكة الوكلاء تغطي ٦ أنواع شهادات (شراء، حجز، استعلام، نموذج، تنقل، تحقق). ٧ مستويات ثقة (مجهول ← محظور)، اضمحلال زمني، مقاومة Sybil، لوحة متصدرين عالمية، ونظام طعن/نزاع
56
+ - **لوحة السيادة**مركز قيادة لحظي يعرض رادار العدالة، درع الخصوصية، سجل التفاوض، فحوصات التحقق، ومبدّل نماذج الذكاء الاصطناعي. يكشف نقطة `/api/sovereign/dashboard/sovereign` للبيانات المجمعة
57
+ - **متجر قوالب الوكلاء**١١ قالب YAML جاهز (حجز فنادق، مقارنة بقالة، سوق حرفيين، صفقات طيران، إلخ) مع تشغيل من سطر الأوامر: `npx wab-agent run template.yaml`
58
+ - **تبديل عقل الوكيل**نظام تشغيل AI محلي يكتشف Ollama وllama.cpp تلقائياً مع دعم APIs متوافقة مع OpenAI. تتبع قدرات النماذج (نص/رؤية)، إدارة نوافذ السياق، توجيه حسب زمن الاستجابة، وتسجيل الاستدلال
59
+ - **تنسيق الوكيل عبر المواقع** — وكيل واحد يدير عدة مواقع WAB في نفس الوقت عبر `WABMultiAgent`. قارن الأسعار بين المتاجر، اجمع البيانات، نفّذ إجراءات متوازية، واعثر على أفضل صفقة تلقائياً
60
+
61
+ ### الإصدار 2.3 — شبكة الوكلاء الخاصة (العقل الموزّع)
62
+
63
+ - **بروتوكول التواصل بين الوكلاء** — الوكلاء يتواصلون عبر شبكة خاصة مع ٥ قنوات مدمجة (تنبيهات، اكتشافات، تكتيكات، مفاوضات، تصويت). ٦ أنواع رسائل مع تقييم الثقة، إزالة الوكلاء الخاملين تلقائياً عبر نبضات القلب، تحقق الأقران من المعرفة المشتركة. كل الاتصال يبقى محلياً
64
+ - **التعلم المعزز المحلي** الوكلاء يتعلمون من كل قرار للمستخدم باستخدام خوارزمية UCB1 متعددة الأذرع، تحديث السياسات بالنزول التدريجي مع تنشيط sigmoid، تخفيض زمني، واستخراج الأنماط المتسلسلة. بدون أي مكالمات API خارجية التعلم بالكامل محلي
65
+ - **منسق السيمفونية**أربعة وكلاء متخصصين (باحث، محلل، مفاوض، حارس) يتعاونون ذاتياً عبر محركات قائمة على القواعد. ٥ قوالب، خط أنابيب من ٦ مراحل (تحليل ← بحث ← تفاوض ← حراسة ← تركيب ← قرار)، حق نقض الحارس للأمان، إجماع مرجح. تسجيل كامل للمراحل مع تتبع المدة. بدون أي اعتماد على LLM خارجية
66
+ - **لوحة شبكة الوكلاء** — عرض مباشر لشبكة الوكلاء: الوكلاء النشطون، قنوات الاتصال، قاعدة المعرفة المشتركة، تركيبات السيمفونية، ومقاييس أداء التعلم
67
+
68
+ ### الإصدار 2.4 — القائد والذكاء على الحافة
69
+
70
+ - **نظام القائد (Commander)** — محرك تنسيق مهام محلي يفكك الأهداف العليا إلى رسوم بيانية مهام (DAG). سجل وكلاء مع تتبع القدرات، محرك تنفيذ متوازٍ، تكامل تعلم لتغذية راجعة من النتائج، وتنسيق حوسبة طرفية
71
+ - **نظام الحوسبة الطرفية (Edge Compute)** يحول كل جهاز مستخدم إلى عقدة AI سيادية. تحليل المعدات (CPU, RAM, GPUتشفير AES-256-GCM بين العقد، موازنة حمل مرجحة، مراقبة صحة بنبضات القلب مع تجاوز فشل تلقائي، وتشكيل أسراب حسب القدرات
72
+ - **محرك التنفيذ بالسرب** — إطلاق عدة وكلاء بالتوازي لحل مهمة واحدة. استراتيجيات قابلة للتكوين (متوازي، متسلسل، هجين)، دمج النتائج بأفضل درجة، تخصص بالأدوار، تجميع مرجح بالعدالة، وتقييم ثقة لكل وكيل
73
+
74
+ ### الإصدار 3.0 — نظام تشغيل الوكلاء (طبقة التنفيذ للويب)
75
+
76
+ الإصدار 3.0 يحوّل WAB من أداة أتمتة متقدمة إلى **نظام تشغيل حقيقي للوكلاء** — طبقة تنفيذ كاملة لوكلاء الذكاء الاصطناعي على الويب، منافس لـ MCP لكنه مصمم خصيصاً للتفاعل مع المتصفح.
77
+
78
+ - **بروتوكول WAB (WABP) v1.0.0** بروتوكول رسمي مع سجل أوامر JSON Schema، رسائل مُنمطة، التحقق من المدخلات/المخرجات، وتعريفات أوامر مُنسّخة. ١٠ أوامر مدمجة (اكتشاف، تنفيذ، تنفيذ دلالي، تسجيل وكيل، إرسال مهمة، حالة مهمة، مقارنة تجارية، تفاوض تجاري، إرسال شبكة، استدلال AI). كل أمر يعلن عن القدرات المطلوبة ومستوى الخطر وصلاحيات الوصول
79
+ - **تفاوض القدرات**منح قدرات ديناميكي بين الوكلاء والمواقع. موافقة تلقائية حسب مستوى الخطر (منخفض = موافقة تلقائية، عالي = يتطلب سياسة)، تحديد معدل لكل قدرة، منح قابلة للانتهاء مع تتبع الاستخدام، ودعم إبطال كامل
80
+ - **محرك تشغيل الوكلاء**نظام تشغيل مهام بمستوى إنتاجي مع جدولة بقائمة أولويات، حل التبعيات، إعادة المحاولة بتراجع أسي، إيقاف/استئناف/إلغاء، حدود تزامن، وانتقالات حالة. ناقل أحداث غير متزامن مع وسيط، أحرف بدل مساحات الأسماء، ذاكرة إعادة (١٠ آلاف حدث)، وقائمة الرسائل الميتة
81
+ - **صندوق حماية التنفيذ** عزل لكل مهمة مع حدود موارد (مهلة، ذاكرة قصوى، حد استدعاءات الشبكة، حد عمليات DOM)، قوائم نطاقات مسموحة، حظر محددات CSS، فحوصات قدرات وقت التنفيذ، وسجل تدقيق كامل لكل عملية
82
+ - **مدير الحالة**حفظ حالة الوكيل بنقاط تفتيش مُسمّاة، تراجع لأي نقطة تفتيش، انتقالات حالة بالتحقق، عمليات دمج، وتنظيف بانتهاء الصلاحية
83
+ - **حزمة المراقبة**مسجل JSON هيكلي مع مسجلات فرعية ومخارج قابلة للتوصيل، متتبع موزع بفترات أب-ابن (متوافق مع OpenTelemetryومجمع مقاييس بعدادات ومقاييس ورسوم بيانية (مئينات p50/p90/p95/p99) وسلاسل زمنية للوحات التحكم
84
+ - **نموذج الأمان**هوية الوكيل (تسجيل، مصادقة بمفتاح API مشفر، إدارة جلسات بمدة صلاحية، قوائم IP المسموحة، إبطال)، توقيع الأوامر (HMAC-SHA256 مع رمز فريد + طابع زمني، مقارنة آمنة زمنياًوعزل المواقع (تحكم وصول لكل موقع، وكلاء مسموحون/محظورون، حد تزامن أقصى، حظر محددات، تصنيف بيانات)
85
+ - **مستوى التحكم**مدير الوكلاء لدورة حياة النشر (نشر، تعيين لمواقع، فحوصات صحة، إلغاء نشر) ومحرك السياسات بقواعد مُنمّطة، تقييم شروط (يساوي، يحتوي، نمط، حد أدنى، حد أقصى، ضمن)، ربط سياسات بأولوية، وتطبيق على مستوى الكيان
86
+ - **مستوى البيانات**محلل الإجراءات الدلالية يربط صيغة `domain.action` (مثل `checkout.addItem`) بالتنفيذ الفعلي لكل موقع. المنفّذ يوجّه المهام عبر التتبع + المقاييس، يدعم أوضاع التنفيذ الدلالي/الخط الأنبوبي/المتوازي، مع ٨ إجراءات دلالية مدمجة للسلة والبحث والمصادقة والتنقل والمحتوى
87
+ - **تجريد LLM متعدد النماذج** واجهة موحدة لـ OpenAI (محادثة + تضمينات)، Anthropic (API الرسائل)، وOllama (نماذج محلية مع اكتشاف تلقائي). مدير LLM يوفر سلسلة احتياطية تلقائية عبر جميع الموفرين، تخزين مؤقت للاستجابات (٥ دقائق)، تتبع التكاليف عبر عدد الرموز، وقائمة نماذج
88
+ - **السجل والنظام البيئي** سجل الأوامر (كـ npm لأوامر WAB تسجيل، اكتشاف، بحث حسب الفئة/الوسم/القدرة، تتبع الاستخدام)، سجل المواقع (دليل مواقع WAB مع التحقق، قائمة القدرات، تتبع الزياراتوسجل القوالب (قوالب سير عمل قابلة لإعادة الاستخدام مع عدد التنزيلات والتقييمات)
89
+ - **واجهة API الموحدة لنظام التشغيل** جميع طبقات نظام التشغيل مكشوفة عبر نقاط REST على `/api/os/*`: اكتشاف البروتوكول، هوية/مصادقة الوكيل، CRUD المهام، التنفيذ الدلالي، النشر، السياسات، العزل، المراقبة (مقاييس/آثار/سجلات)، السجل (أوامر/مواقع/قوالب)، عمليات LLM، توقيع الأوامر، وأحداث Server-Sent Events للبث المباشر
90
+ - **عميل WABAgentOS في SDK** — فئة `WABAgentOS` جديدة في SDK مع كتابة TypeScript كاملة لجميع عمليات نظام التشغيل: تسجيل ← مصادقة ← تفاوض قدرات ← إرسال مهام ← تنفيذ دلالي ← استعلام المراقبة ← الاشتراك في الأحداث
91
+
92
+ ### الإصدار 3.2 — بوابة API والوحدات المتقدمة
93
+
94
+ يقدم الإصدار 3.2 **بوابة API موحدة** على `/api/v1` مع 10 وحدات متقدمة لحماية وكلاء الذكاء الاصطناعي وحقوق المستهلك وتتبع الأسعار والامتثال التنظيمي. جميع الوحدات تستخدم مصادقة مركزية بمفتاح API مع تحكم وصول حسب الخطة.
95
+
96
+ 🌐 **توثيق API المباشر:** [webagentbridge.com/api](https://webagentbridge.com/api) (English / العربية)
97
+
98
+ #### خطط API والأسعار
99
+
100
+ | الخطة | السعر | الطلبات/يوم | الطلبات/دقيقة | الوحدات |
101
+ |-------|-------|-------------|---------------|---------|
102
+ | **مجانية** | $0/شهر | 100 | 10 | البروتوكول، آلة الزمن السعرية، الأنماط المظلمة، المكافآت |
103
+ | **احترافية** | $29/شهر | 10,000 | 100 | كل المجاني + الجدار الناري، العصبي، التفاوض، التسويق |
104
+ | **أعمال** | $149/شهر | 100,000 | 500 | جميع الوحدات العشر (شاملة كاتب العدل والاستخبارات الحكومية) |
105
+ | **مؤسسات** | مخصص | غير محدود | مخصص | جميع الوحدات + SLA + خيار التشغيل المحلي |
106
+
107
+ **احصل على مفتاح API:** `POST /api/v1/keys/generate` مع `{"plan": "FREE", "owner": "اسمك", "email": "you@example.com"}`
108
+
109
+ #### الوحدات العشر
110
+
111
+ | # | الوحدة | المسار | النوع | الخطة الأدنى | الوصف |
112
+ |---|--------|--------|-------|-------------|-------|
113
+ | 01 | **جدار حماية الوكلاء** | `/api/v1/firewall` | 🟡 API مفتوح · المحرك مغلق | احترافية | يفحص الروابط والمحتوى للكشف عن حقن الأوامر والتصيد والنطاقات الخبيثة |
114
+ | 02 | **كاتب العدل التشفيري** | `/api/v1/notary` | 🔴 مغلق بالكامل | أعمال | يصدر شهادات تشفيرية مقبولة قانونياً لإثبات التمييز السعري |
115
+ | 03 | **كاشف الأنماط المظلمة** | `/api/v1/dark-pattern` | 🔴 مغلق بالكامل | مجانية | يكشف جميع الأنماط المظلمة الـ 17 المصنفة من OECD مع تقارير EU DSA/DMA |
116
+ | 04 | **التفاوض الجماعي** | `/api/v1/bargaining` | 🟡 الانضمام مفتوح · المحرك مغلق | احترافية | تجميع مشترين مجهولين للتفاوض على خصومات جماعية |
117
+ | 05 | **الاستخبارات الحكومية** | `/api/v1/gov` | 🔴 مغلق بالكامل | أعمال | قاعدة بيانات الامتثال التنظيمي وفحص امتثال النطاقات |
118
+ | 06 | **آلة الزمن السعرية** | `/api/v1/price` | 🟡 API مفتوح · قاعدة البيانات مغلقة | مجانية | تتبع الأسعار التاريخية وكشف التخفيضات الوهمية |
119
+ | 07 | **المحرك العصبي** | `/api/v1/neural` | 🔴 مغلق بالكامل | احترافية | محرك AI محلي لتحليل الروابط وتصنيف المحتوى والتضمينات |
120
+ | 08 | **بروتوكول WAB** | `/api/v1/protocol` | 🟢 مفتوح المصدر بالكامل | مجانية | مدقق بروتوكول الثقة wab.json المفتوح ونقطة المخطط |
121
+ | 09 | **شبكة المكافآت** | `/api/v1/bounty` | 🟡 الإبلاغ مفتوح · القواعد مغلقة | مجانية | شبكة بلاغات وتهديدات مدعومة من المجتمع مع لوحة متصدرين |
122
+ | 10 | **استخبارات التسويق بالعمولة** | `/api/v1/affiliate` | 🟡 API مفتوح · قاعدة البيانات مغلقة | احترافية | يكشف التلاعب بروابط التسويق وحشو ملفات تعريف الارتباط |
123
+
124
+ **مفتاح الأنواع:** 🟢 مفتوح المصدر بالكامل · 🟡 واجهة API عامة مع محرك خاص · 🔴 مغلق بالكامل (يعيد 503 بدون المحرك)
125
+
126
+ #### المصادقة
127
+
128
+ جميع نقاط النهاية تتطلب مفتاح API عبر إحدى ثلاث طرق:
129
+
130
+ ```bash
131
+ # الخيار 1: ترويسة التفويض (موصى بها)
132
+ curl -X POST https://www.webagentbridge.com/api/v1/firewall/scan \
133
+ -H "Authorization: Bearer wab_live_pro_YOUR_KEY" \
134
+ -H "Content-Type: application/json" \
135
+ -d '{"url": "https://example.com", "content": "محتوى الصفحة..."}'
136
+
137
+ # الخيار 2: ترويسة X-WAB-Key
138
+ curl -H "X-WAB-Key: wab_live_pro_YOUR_KEY" \
139
+ https://www.webagentbridge.com/api/v1/protocol/check/example.com
140
+
141
+ # الخيار 3: معامل الاستعلام
142
+ curl https://www.webagentbridge.com/api/v1/bounty/stats?api_key=wab_live_fre_YOUR_KEY
143
+ ```
144
+
145
+ #### إدارة المفاتيح
146
+
147
+ | نقطة النهاية | الطريقة | الوصف |
148
+ |-------------|---------|-------|
149
+ | `/api/v1/keys/generate` | POST | إنشاء مفتاح API جديد |
150
+ | `/api/v1/keys/validate` | POST | التحقق من صلاحية مفتاح |
151
+ | `/api/v1/keys/usage` | GET | التحقق من الاستخدام والحصص |
152
+ | `/api/v1/keys/revoke` | POST | إلغاء مفتاح |
153
+ | `/api/v1/keys/rotate` | POST | تدوير مفتاح (إلغاء القديم وإصدار جديد) |
154
+
155
+ #### نقاط البوابة العامة
156
+
157
+ | نقطة النهاية | الطريقة | الوصف |
158
+ |-------------|---------|-------|
159
+ | `/api/v1/health` | GET | فحص صحة البوابة (عام) |
160
+ | `/api/v1/plans` | GET | قائمة الخطط والأسعار (عام) |
161
+ | `/api/v1/modules` | GET | قائمة الوحدات المتاحة (عام) |
162
+
163
+ #### كيفية الاشتراك
164
+
165
+ 1. زُر [webagentbridge.com/api](https://webagentbridge.com/api) لاستكشاف الوحدات المتاحة
166
+ 2. أنشئ مفتاح API **مجاني**: `POST /api/v1/keys/generate` مع اسمك وبريدك
167
+ 3. ابدأ الطلبات فوراً لأي وحدة مجانية
168
+ 4. ارتقِ إلى **احترافية** ($29/شهر) أو **أعمال** ($149/شهر) للوصول للوحدات المتقدمة
169
+ 5. أدِر مفاتيحك عبر نقاط `/api/v1/keys/*`
170
+
171
+ ---
172
+
173
+ ## 🚀 البدء السريع
174
+
175
+ ### ١. التثبيت والتشغيل
176
+
177
+ ```bash
178
+ # الطريقة أ: استنساخ وتشغيل
179
+ git clone https://github.com/abokenan444/web-agent-bridge.git
180
+ cd web-agent-bridge
181
+ npm install
182
+ cp .env.example .env
183
+ npm start
184
+
185
+ # الطريقة ب: npx (أمر واحد)
186
+ npx web-agent-bridge start
187
+
188
+ # الطريقة ج: Docker
189
+ docker compose up -d
190
+ ```
191
+
192
+ ### ٢. إنشاء حساب
193
+
194
+ زُر `http://localhost:3000/register` وأنشئ حساباً، ثم أضف موقعك من لوحة التحكم.
195
+
196
+ ### ٣. إضافة السكريبت لموقعك
197
+
198
+ ```html
199
+ <script>
200
+ window.AIBridgeConfig = {
201
+ licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
202
+ agentPermissions: {
203
+ readContent: true,
204
+ click: true,
205
+ fillForms: true,
206
+ scroll: true
207
+ }
208
+ };
209
+ </script>
210
+ <script src="http://localhost:3000/script/ai-agent-bridge.js"></script>
211
+ ```
212
+
213
+ ### ٤. الآن يمكن لوكلاء الذكاء الاصطناعي التفاعل
214
+
215
+ ```javascript
216
+ // من جانب وكيل الذكاء الاصطناعي
217
+ const bridge = window.AICommands;
218
+ const actions = bridge.getActions(); // اكتشاف الإجراءات
219
+ await bridge.execute("signup"); // تنفيذ إجراء
220
+ const info = bridge.getPageInfo(); // معلومات الصفحة
221
+ ```
222
+
223
+ ---
224
+
225
+ ## 📁 هيكل المشروع
226
+
227
+ ```
228
+ web-agent-bridge/
229
+ ├── server/ # خادم Express.js
230
+ │ ├── index.js # نقطة البداية
231
+ ├── ws.js # WebSocket للتحليلات الفورية
232
+ ├── routes/
233
+ ├── auth.js # المصادقة (تسجيل/دخول)
234
+ ├── api.js # واجهة المواقع والتحليلات
235
+ ├── license.js # التحقق من التراخيص والتتبع
236
+ │ ├── admin.js # واجهة الإدارة
237
+ │ │ ├── admin-premium.js # تحليلات الإدارة المتقدمة
238
+ ├── billing.js # تكامل Stripe للمدفوعات
239
+ │ ├── sovereign.js # الإصدار 2.0: تفاوض، سمعة، تحقق، لوحة سيادة
240
+ │ │ ├── mesh.js # الإصدار 2.3: مسارات شبكة الوكلاء
241
+ ├── commander.js # الإصدار 2.4: مسارات تنسيق المهام
242
+ │ ├── premium.js # الميزات المتقدمة
243
+ │ │ ├── premium-v2.js # ذاكرة، رؤية، إصلاح، سرب، إضافات
244
+ ├── discovery.js # اكتشاف WAB + بحث مرجح بالعدالة
245
+ ├── wab-api.js # نقل WAB عبر HTTP
246
+ └── noscript.js # بكسل تتبع بدون JavaScript
247
+ ├── services/
248
+ ├── negotiation.js # محرك التفاوض اللحظي
249
+ ├── verification.js # درع مقاومة التزييف
250
+ │ ├── reputation.js # نظام السمعة اللامركزي
251
+ │ │ ├── agent-mesh.js # بروتوكول التواصل بين الوكلاء
252
+ ├── agent-learning.js # التعلم المعزز المحلي (UCB1)
253
+ │ ├── agent-symphony.js # منسق السيمفونية (٤ أدوار، ٦ مراحل)
254
+ │ │ ├── agent-memory.js # ذاكرة الوكيل مع ارتباطات
255
+ │ │ ├── commander.js # تنسيق المهام ورسوم المهام (DAG)
256
+ ├── edge-compute.js # حوسبة طرفية / عقد AI سيادية
257
+ │ ├── swarm.js # محرك التنفيذ بالسرب
258
+ │ │ ├── fairness.js # محرك العدالة والحياد
259
+ │ │ ├── vision.js # تحليل الرؤية (متعدد الموفرين)
260
+ │ │ ├── self-healing.js # تصحيحات المحددات ذاتية الإصلاح
261
+ │ │ ├── local-ai.js # نظام تشغيل AI المحلي
262
+ │ │ ├── plugins.js # بنية الإضافات (خطافات، سجل)
263
+ │ │ ├── premium.js # تحليل حركة المرور وكشف البوتات
264
+ │ │ ├── email.js # خدمة البريد SMTP
265
+ │ │ └── stripe.js # تكامل مدفوعات Stripe
266
+ │ ├── middleware/
267
+ │ │ ├── auth.js # وسيط JWT
268
+ │ │ ├── adminAuth.js # مصادقة الإدارة
269
+ │ │ └── rateLimits.js # تحديد معدل الطلبات متعدد الطبقات
270
+ │ ├── models/
271
+ │ │ ├── db.js # عمليات قاعدة البيانات
272
+ │ │ └── adapters/ # محولات SQLite, PostgreSQL, MySQL
273
+ │ ├── migrations/ # ترحيلات SQL مرقمة
274
+ │ └── utils/
275
+ │ ├── cache.js # ذاكرة مؤقتة TTL + طابور تحليلات
276
+ │ ├── migrate.js # مشغل الترحيلات
277
+ │ └── secureFields.js # أدوات تشفير الحقول
278
+ ├── public/ # الواجهة الأمامية
279
+ │ ├── index.html # الصفحة الرئيسية
280
+ │ ├── dashboard.html # لوحة التحكم
281
+ │ ├── premium-dashboard.html # لوحة التحليلات المتقدمة
282
+ │ ├── docs.html # التوثيق
283
+ │ ├── login.html / register.html # صفحات المصادقة
284
+ │ ├── admin/ # لوحة الإدارة
285
+ │ ├── pwa/ # تطبيق الويب التقدمي (متصفح الهاتف)
286
+ │ │ ├── manifest.json # بيان PWA
287
+ │ │ ├── sw.js # عامل الخدمة (أولوية غير متصل)
288
+ │ │ ├── index.html # واجهة المتصفح للهاتف
289
+ │ │ ├── app.js # حاجب إعلانات، درع احتيال، عدالة
290
+ │ │ ├── app.css # سمة داكنة محسنة للهاتف
291
+ │ │ └── icons/ # أيقونات PWA
292
+ │ ├── script/
293
+ │ │ ├── wab.min.js # مكتبة WAB المصغرة
294
+ │ │ ├── wab-consent.js # لافتة موافقة GDPR/CCPA
295
+ │ │ ├── wab-schema.js # اكتشاف schema.org
296
+ │ │ ├── wab.d.ts # تعريفات TypeScript
297
+ │ │ └── wab-consent.d.ts # تعريفات TypeScript للموافقة
298
+ │ ├── js/ # JavaScript الواجهة
299
+ │ └── css/ # أوراق الأنماط
300
+ ├── script/
301
+ │ └── ai-agent-bridge.js # سكريبت الجسر (ضعه في موقعك)
302
+ ├── examples/ # أمثلة الوكلاء
303
+ │ ├── puppeteer-agent.js # Puppeteer + window.AICommands
304
+ │ ├── bidi-agent.js # بروتوكول WebDriver BiDi
305
+ │ ├── vision-agent.js # تحليل رؤية/لغة طبيعية
306
+ │ ├── mcp-agent.js # محول MCP لـ Claude/GPT
307
+ │ ├── cross-site-agent.js # تنسيق متعدد النطاقات
308
+ │ ├── next-app-router/ # تكامل Next.js App Router
309
+ │ ├── shopify-hydrogen/ # واجهة Shopify Hydrogen
310
+ │ ├── wordpress-elementor/ # WordPress + Elementor
311
+ │ └── saas-dashboard/ # إجراءات لوحة SaaS
312
+ ├── packages/ # أغلفة أطر العمل
313
+ │ ├── react/ # @web-agent-bridge/react
314
+ │ ├── vue/ # @web-agent-bridge/vue
315
+ │ ├── svelte/ # @web-agent-bridge/svelte
316
+ │ └── langchain/ # @web-agent-bridge/langchain
317
+ ├── sdk/ # SDK الوكيل
318
+ │ ├── index.js # WABAgent لـ Puppeteer/Playwright
319
+ │ └── schema-discovery.js # استخراج schema.org من الخادم
320
+ ├── wab-mcp-adapter/ # محول MCP لـ Claude/GPT/Gemini
321
+ │ ├── index.js # تعريفات أدوات MCP
322
+ │ └── package.json
323
+ ├── wab-browser/ # متصفح Electron لسطح المكتب
324
+ │ ├── main.js # العملية الرئيسية لـ Electron
325
+ │ ├── preload.js # التحميل المسبق
326
+ │ └── package.json
327
+ ├── web-agent-bridge-wordpress/ # إضافة WordPress
328
+ │ ├── web-agent-bridge.php # نقطة دخول الإضافة
329
+ │ ├── includes/ # فئات PHP (API, Actions, Dashboard)
330
+ │ └── assets/ # CSS/JS الإضافة
331
+ ├── bin/
332
+ │ ├── cli.js # نقطة دخول CLI (wab-agent)
333
+ │ └── wab.js # مشغل الوكلاء
334
+ ├── templates/ # ١١ قالب YAML لمتجر الوكلاء
335
+ ├── docs/
336
+ │ ├── SPEC.md # مواصفة بروتوكول WAB
337
+ │ └── DEPLOY.md # دليل النشر
338
+ ├── demo-store/ # متجر تجريبي للاختبار
339
+ ├── deploy/ # إعدادات Nginx
340
+ ├── tests/ # اختبارات Jest + Supertest
341
+ ├── .env # متغيرات البيئة
342
+ └── package.json
343
+ ```
344
+
345
+ ---
346
+
347
+ ## 🔌 واجهات API
348
+
349
+ ### المصادقة
350
+ | النقطة | الطريقة | الوصف |
351
+ |---|---|---|
352
+ | `/api/auth/register` | POST | إنشاء حساب |
353
+ | `/api/auth/login` | POST | تسجيل الدخول |
354
+ | `/api/auth/me` | GET | بيانات المستخدم الحالي |
355
+
356
+ ### المواقع
357
+ | النقطة | الطريقة | الوصف |
358
+ |---|---|---|
359
+ | `/api/sites` | GET | قائمة مواقعك |
360
+ | `/api/sites` | POST | إضافة موقع جديد |
361
+ | `/api/sites/:id` | GET | تفاصيل الموقع |
362
+ | `/api/sites/:id/config` | PUT | تحديث الإعدادات |
363
+ | `/api/sites/:id/tier` | PUT | تغيير مستوى الاشتراك |
364
+ | `/api/sites/:id` | DELETE | حذف الموقع |
365
+ | `/api/sites/:id/snippet` | GET | كود التضمين |
366
+ | `/api/sites/:id/analytics` | GET | بيانات التحليلات |
367
+
368
+ ### التراخيص (عامة)
369
+ | النقطة | الطريقة | الوصف |
370
+ |---|---|---|
371
+ | `/api/license/verify` | POST | التحقق من مفتاح الترخيص |
372
+ | `/api/license/token` | POST | تبادل `siteId` مقابل توكن جلسة |
373
+ | `/api/license/session` | POST | التحقق من توكن الجلسة |
374
+ | `/api/license/track` | POST | تسجيل حدث تحليلي |
375
+
376
+ ### واجهات السيادة (الإصدار 2.0)
377
+ | النقطة | الطريقة | الوصف |
378
+ |---|---|---|
379
+ | `/api/sovereign/reputation/agents` | POST | تسجيل وكيل جديد |
380
+ | `/api/sovereign/reputation/attestations` | POST | إرسال شهادة ثقة |
381
+ | `/api/sovereign/reputation/sites/:siteId` | GET | سمعة الموقع |
382
+ | `/api/sovereign/reputation/leaderboard` | GET | لوحة المتصدرين |
383
+ | `/api/sovereign/negotiation/rules` | POST | إنشاء قاعدة تفاوض |
384
+ | `/api/sovereign/negotiation/sessions` | POST | فتح جلسة تفاوض |
385
+ | `/api/sovereign/negotiation/sessions/:id/propose` | POST | تقديم عرض مضاد |
386
+ | `/api/sovereign/negotiation/sessions/:id/confirm` | POST | تأكيد الصفقة |
387
+ | `/api/sovereign/verify/price` | POST | التحقق من السعر |
388
+ | `/api/sovereign/verify/text` | POST | التحقق من النص |
389
+ | `/api/sovereign/verify/page` | POST | التحقق الشامل للصفحة |
390
+ | `/api/sovereign/dashboard/sovereign` | GET | بيانات لوحة السيادة |
391
+
392
+ ### شبكة الوكلاء (الإصدار 2.3)
393
+ | النقطة | الطريقة | الوصف |
394
+ |---|---|---|
395
+ | `/api/mesh/agents` | POST | تسجيل وكيل في الشبكة |
396
+ | `/api/mesh/agents` | GET | عرض وكلاء الشبكة |
397
+ | `/api/mesh/channels` | GET | عرض قنوات الاتصال |
398
+ | `/api/mesh/messages` | POST | نشر رسالة في قناة |
399
+ | `/api/mesh/messages/:channel` | GET | قراءة رسائل القناة |
400
+ | `/api/mesh/knowledge` | POST | مشاركة معرفة |
401
+ | `/api/mesh/knowledge` | GET | استعلام قاعدة المعرفة |
402
+ | `/api/mesh/votes` | POST | بدء تصويت |
403
+ | `/api/mesh/votes/:id/cast` | POST | الإدلاء بصوت |
404
+ | `/api/mesh/votes/:id/tally` | GET | نتائج التصويت |
405
+
406
+ ### القائد (الإصدار 2.4)
407
+ | النقطة | الطريقة | الوصف |
408
+ |---|---|---|
409
+ | `/api/commander/missions` | POST | إنشاء مهمة جديدة |
410
+ | `/api/commander/missions/:id/launch` | POST | إطلاق المهمة |
411
+ | `/api/commander/missions/:id` | GET | حالة المهمة |
412
+ | `/api/commander/missions` | GET | عرض جميع المهام |
413
+ | `/api/commander/agents` | POST | تسجيل وكيل |
414
+ | `/api/commander/agents` | GET | عرض الوكلاء |
415
+ | `/api/commander/edge/nodes` | POST | تسجيل عقدة حوسبة طرفية |
416
+ | `/api/commander/edge/nodes` | GET | عرض العقد |
417
+ | `/api/commander/ai/models` | GET | اكتشاف نماذج AI المحلية |
418
+ | `/api/commander/ai/infer` | POST | تشغيل استدلال AI محلي |
419
+ | `/api/commander/stats` | GET | إحصائيات المنصة الموحدة |
420
+
421
+ ### الميزات المتقدمة (الإصدار 2)
422
+ | النقطة | الطريقة | الوصف |
423
+ |---|---|---|
424
+ | `/api/premium/v2/memory` | POST | تخزين ذاكرة الوكيل |
425
+ | `/api/premium/v2/memory/:agentId` | GET | استرجاع ذكريات الوكيل |
426
+ | `/api/premium/v2/memory/associate` | POST | إنشاء ارتباط بين ذكريات |
427
+ | `/api/premium/v2/vision/analyze` | POST | تحليل لقطة شاشة |
428
+ | `/api/premium/v2/vision/elements` | POST | استخراج عناصر تفاعلية |
429
+ | `/api/premium/v2/healing/corrections` | POST | تسجيل تصحيح محدد |
430
+ | `/api/premium/v2/healing/resolve` | POST | حل محدد معطل |
431
+ | `/api/premium/v2/swarm/execute` | POST | إطلاق مهمة سرب |
432
+ | `/api/premium/v2/swarm/:id` | GET | نتائج السرب |
433
+ | `/api/premium/v2/plugins` | GET | عرض الإضافات المتاحة |
434
+ | `/api/premium/v2/plugins/:id/install` | POST | تثبيت إضافة |
435
+ | `/api/premium/v2/plugins/:id/hooks` | POST | تنفيذ خطاف إضافة |
436
+
437
+ ### الاكتشاف والعدالة
438
+ | النقطة | الطريقة | الوصف |
439
+ |---|---|---|
440
+ | `/api/discovery` | GET | مستند اكتشاف WAB |
441
+ | `/api/discovery/search` | GET | بحث مرجح بالعدالة |
442
+ | `/api/discovery/register` | POST | تسجيل موقع في دليل WAB |
443
+
444
+ ### بروتوكول WAB (نقل HTTP)
445
+ | النقطة | الطريقة | الوصف |
446
+ |---|---|---|
447
+ | `/api/wab/session` | POST | تبادل توكن جلسة |
448
+ | `/api/wab/actions` | GET | الإجراءات المتاحة |
449
+ | `/api/wab/execute` | POST | تنفيذ إجراء عبر HTTP |
450
+
451
+ ### WebSocket
452
+ | النقطة | الوصف |
453
+ |---|---|
454
+ | `ws://localhost:3000/ws/analytics` | تحليلات فورية لحظية |
455
+
456
+ ---
457
+
458
+ ## ⚙️ واجهة سكريبت الجسر
459
+
460
+ عند التحميل، يكشف `window.AICommands` الطرق التالية:
461
+
462
+ | الطريقة | الوصف |
463
+ |---|---|
464
+ | `getActions(category?)` | قائمة الإجراءات المتاحة |
465
+ | `getAction(name)` | الحصول على إجراء محدد |
466
+ | `execute(name, params?)` | تنفيذ إجراء |
467
+ | `readContent(selector)` | قراءة محتوى عنصر |
468
+ | `getPageInfo()` | معلومات الصفحة والجسر |
469
+ | `waitForElement(selector, timeout?)` | انتظار ظهور عنصر DOM |
470
+ | `waitForNavigation(timeout?)` | انتظار تغيير العنوان |
471
+ | `registerAction(def)` | تسجيل إجراء مخصص |
472
+ | `authenticate(key, meta?)` | مصادقة الوكيل |
473
+ | `refresh()` | إعادة مسح الصفحة |
474
+ | `toBiDi()` | الحصول على سياق WebDriver BiDi |
475
+ | `executeBiDi(command)` | تنفيذ أمر بصيغة BiDi |
476
+
477
+ ---
478
+
479
+ ## 🔧 الإعدادات
480
+
481
+ ```javascript
482
+ window.AIBridgeConfig = {
483
+ licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
484
+ agentPermissions: {
485
+ readContent: true, // قراءة النص
486
+ click: true, // النقر على العناصر
487
+ fillForms: false, // ملء/إرسال النماذج
488
+ scroll: true, // تمرير الصفحة
489
+ navigate: false, // التنقل بين الصفحات
490
+ apiAccess: false, // استدعاء API داخلي (Pro+)
491
+ automatedLogin: false, // تسجيل دخول تلقائي (Starter+)
492
+ extractData: false // استخراج البيانات (Pro+)
493
+ },
494
+ restrictions: {
495
+ allowedSelectors: [],
496
+ blockedSelectors: [".private", "[data-private]"],
497
+ requireLoginForActions: ["apiAccess"],
498
+ rateLimit: { maxCallsPerMinute: 60 }
499
+ },
500
+ logging: { enabled: false, level: "basic" }
501
+ };
502
+ ```
503
+
504
+ ---
505
+
506
+ ## 🔄 توافق WebDriver BiDi
507
+
508
+ يدعم السكريبت بروتوكول WebDriver BiDi للتواصل مع الوكلاء عبر معايير موحدة:
509
+
510
+ ```javascript
511
+ // الحصول على سياق BiDi
512
+ const context = window.__wab_bidi.getContext();
513
+
514
+ // إرسال أمر BiDi
515
+ const result = await window.__wab_bidi.send({
516
+ id: 1,
517
+ method: 'wab.executeAction',
518
+ params: { name: 'signup', data: {} }
519
+ });
520
+
521
+ // الأوامر المدعومة:
522
+ // wab.getContext — سياق الصفحة والقدرات
523
+ // wab.getActions — قائمة الإجراءات
524
+ // wab.executeAction — تنفيذ إجراء
525
+ // wab.readContent — قراءة محتوى
526
+ // wab.getPageInfo — معلومات الصفحة
527
+ ```
528
+
529
+ ---
530
+
531
+ ## 📊 التحليلات الفورية (WebSocket)
532
+
533
+ اتصل بنقطة WebSocket لتلقي إشعارات فورية:
534
+
535
+ ```javascript
536
+ const ws = new WebSocket('ws://localhost:3000/ws/analytics');
537
+
538
+ // المصادقة
539
+ ws.onopen = () => {
540
+ ws.send(JSON.stringify({
541
+ type: 'auth',
542
+ token: 'your-jwt-token',
543
+ siteId: 'your-site-id'
544
+ }));
545
+ };
546
+
547
+ // تلقي الأحداث
548
+ ws.onmessage = (event) => {
549
+ const data = JSON.parse(event.data);
550
+ console.log('حدث جديد:', data);
551
+ // { type: 'analytic', actionName: '...', agentId: '...', success: true }
552
+ };
553
+ ```
554
+
555
+ ---
556
+
557
+ ## 💰 مستويات الاشتراك
558
+
559
+ | الميزة | مجاني | Starter | Pro | Enterprise |
560
+ |---|:---:|:---:|:---:|:---:|
561
+ | اكتشاف تلقائي | ✓ | ✓ | ✓ | ✓ |
562
+ | نقر/تمرير | ✓ | ✓ | ✓ | ✓ |
563
+ | ملء النماذج | ✓ | ✓ | ✓ | ✓ |
564
+ | تسجيل أساسي | ✓ | ✓ | ✓ | ✓ |
565
+ | تسجيل دخول تلقائي | ✗ | ✓ | ✓ | ✓ |
566
+ | لوحة تحليلات | ✗ | ✓ | ✓ | ✓ |
567
+ | وصول API | ✗ | ✗ | ✓ | ✓ |
568
+ | استخراج البيانات | ✗ | ✗ | ✓ | ✓ |
569
+ | تحديد معدل مخصص | ✗ | ✗ | ✗ | ✓ |
570
+ | Webhooks | | ✗ | ✗ | ✓ |
571
+
572
+ ---
573
+
574
+ ## 🐳 تشغيل باستخدام Docker
575
+
576
+ ```bash
577
+ # بناء وتشغيل
578
+ docker compose up -d
579
+
580
+ # أو البناء يدوياً
581
+ docker build -t web-agent-bridge .
582
+ docker run -p 3000:3000 -e JWT_SECRET=your-secret -e JWT_SECRET_ADMIN=your-admin-secret web-agent-bridge
583
+ ```
584
+
585
+ ---
586
+
587
+ ## 🧪 الاختبارات
588
+
589
+ ```bash
590
+ npm test
591
+ ```
592
+
593
+ تشمل الاختبارات:
594
+ - واجهات المصادقة (تسجيل، دخول، التحقق من التوكن)
595
+ - واجهات إدارة المواقع (CRUD، الإعدادات، المستويات)
596
+ - واجهات التراخيص (التحقق، التتبع)
597
+ - خدمة الصفحات الثابتة
598
+
599
+ ---
600
+
601
+ ## 🤖 Agent SDK — حزمة أدوات الوكيل
602
+
603
+ يضم WAB حزمة SDK جاهزة لبناء وكلاء ذكاء اصطناعي. راجع [`sdk/README.md`](sdk/README.md) للتوثيق الكامل.
604
+
605
+ ```javascript
606
+ const puppeteer = require('puppeteer');
607
+ const { WABAgent } = require('web-agent-bridge/sdk');
608
+
609
+ const browser = await puppeteer.launch();
610
+ const page = await browser.newPage();
611
+ const agent = new WABAgent(page);
612
+
613
+ await agent.navigateAndWait('https://example.com');
614
+ const actions = await agent.getActions();
615
+ await agent.execute('signup', { email: 'user@test.com' });
616
+ await browser.close();
617
+ ```
618
+
619
+ ---
620
+
621
+ ## 📚 أمثلة الوكلاء
622
+
623
+ أمثلة جاهزة للتشغيل في مجلد [`examples/`](examples/):
624
+
625
+ | الملف | الوصف |
626
+ |---|---|
627
+ | `puppeteer-agent.js` | وكيل أساسي باستخدام Puppeteer و `window.AICommands` |
628
+ | `bidi-agent.js` | وكيل يستخدم بروتوكول WebDriver BiDi عبر `window.__wab_bidi` |
629
+ | `vision-agent.js` | وكيل رؤية يحل أوصاف اللغة الطبيعية إلى إجراءات WAB |
630
+ | `mcp-agent.js` | استخدام محول MCP لـ Claude وGPT مع اكتشاف الأدوات |
631
+ | `cross-site-agent.js` | تنسيق متعدد النطاقات مقارنة أسعار، تجميع بيانات، أفضل الصفقات |
632
+
633
+ ### أمثلة التكامل مع أطر العمل
634
+
635
+ | المسار | الوصف |
636
+ |---|---|
637
+ | `examples/next-app-router/` | تكامل Next.js App Router مع `@web-agent-bridge/react` |
638
+ | `examples/shopify-hydrogen/` | واجهة Shopify Hydrogen مع إجراءات سلة عملية |
639
+ | `examples/wordpress-elementor/` | إعداد WordPress + Elementor مع إجراءات مدعومة بالمخطط |
640
+ | `examples/saas-dashboard/` | لوحة SaaS بنمط Notion مع مؤشرات أداء وتشغيل سير عمل |
641
+
642
+ ```bash
643
+ node examples/puppeteer-agent.js http://localhost:3000
644
+ node examples/bidi-agent.js http://localhost:3000
645
+ node examples/vision-agent.js http://localhost:3000
646
+ ```
647
+
648
+ ---
649
+
650
+ ## 🗄️ دعم قواعد بيانات متعددة
651
+
652
+ يستخدم WAB قاعدة SQLite افتراضياً ويدعم PostgreSQL و MySQL عبر محوّلات قاعدة البيانات.
653
+
654
+ ```bash
655
+ # SQLite (افتراضي لا حاجة لإعداد)
656
+ npm start
657
+
658
+ # PostgreSQL
659
+ npm install pg
660
+ DB_ADAPTER=postgresql DATABASE_URL=postgres://user:pass@localhost:5432/wab npm start
661
+
662
+ # MySQL
663
+ npm install mysql2
664
+ DB_ADAPTER=mysql DATABASE_URL=mysql://user:pass@localhost:3306/wab npm start
665
+ ```
666
+
667
+ ---
668
+
669
+ ## 💻 واجهة سطر الأوامر (CLI)
670
+
671
+ ```bash
672
+ # تشغيل الخادم
673
+ npx web-agent-bridge start
674
+ npx web-agent-bridge start --port 8080
675
+
676
+ # تهيئة مشروع جديد
677
+ npx web-agent-bridge init
678
+ ```
679
+
680
+ ---
681
+
682
+ ## 🔒 الأمان
683
+
684
+ ### صندوق الحماية الأمني (Security Sandbox)
685
+
686
+ كل نسخة من الجسر تعمل داخل صندوق حماية يوفر:
687
+
688
+ - **توكنات جلسة** — توكن تشفيري فريد لكل جلسة يمنع هجمات الإعادة (Replay Attacks)
689
+ - **التحقق من الأصل** — فقط الأصول المصرح بها يمكنها التفاعل مع الجسر
690
+ - **تحقق من الأوامر** — كل أمر يُفحص من حيث الصيغة والطول وقائمة الحظر
691
+ - **سجل تدقيق** — كل إجراء يُسجّل بالتوقيت وبصمة الوكيل والحالة
692
+ - **حماية التصعيد** — محاولات الوصول لميزات أعلى تؤدي لتأمين تلقائي بعد 5 مخالفات
693
+ - **القفل التلقائي** — الجسر يصبح للقراءة فقط عند اكتشاف انتهاكات أمنية
694
+
695
+ ### حماية الخادم
696
+
697
+ - **CSP (سياسة أمان المحتوى)** حماية ضد XSS وحقن السكريبت
698
+ - **حماية iframe** — `frame-ancestors: 'none'` يمنع تحميل الموقع في إطارات غير موثوقة
699
+ - **تشفير كلمات المرور** — bcrypt بتكلفة 12
700
+ - **JWT** توكن مؤقت ينتهي بعد 7 أيام
701
+ - **Rate Limiting** — تحديد معدل الطلبات
702
+ - **Helmet** — حماية رؤوس HTTP
703
+ - **حظر المحددات** — تقييد وصول الوكيل لعناصر محددة
704
+
705
+ ---
706
+
707
+ ## 🔄 المحددات ذاتية الإصلاح (Self-Healing Selectors)
708
+
709
+ المواقع الحديثة (SPAs) تتغير باستمرار. نظام الإصلاح الذاتي يضمن استمرار عمل المحددات:
710
+
711
+ 1. **البصمات** عند اكتشاف الإجراءات، يُخزن WAB بصمة غنية لكل عنصر
712
+ 2. **7 استراتيجيات** — عند تعطل محدد، يجرب WAB: `data-wab-id`، `data-testid`، ID، `aria-label`، `name`، مطابقة نصية ضبابية، موضع + دور
713
+ 3. **مراقب SPA** — `MutationObserver` يرصد تغييرات DOM ويعيد اكتشاف الإجراءات تلقائياً
714
+
715
+ ```javascript
716
+ // أضف هذا للاستقرار الأقصى
717
+ <button data-wab-id="signup-btn">إنشاء حساب</button>
718
+ ```
719
+
720
+ ---
721
+
722
+ ## 🥷 وضع التخفي (Stealth Mode)
723
+
724
+ لمواجهة أنظمة الحماية من البوتات:
725
+
726
+ ```javascript
727
+ window.AIBridgeConfig = { stealth: { enabled: true } };
728
+ ```
729
+
730
+ | الميزة | الوصف |
731
+ |---|---|
732
+ | سلسلة أحداث الفأرة | `mouseover → mouseenter → mousemove → mousedown → mouseup → click` |
733
+ | محاكاة الكتابة | حرف بحرف مع تأخير 30-120 مللي ثانية |
734
+ | تمرير تدريجي | خطوات متعددة بسرعة متغيرة |
735
+ | تأخيرات عشوائية | 50-400 مللي ثانية بين الإجراءات |
736
+
737
+ ---
738
+
739
+ ## 🛠️ التقنيات
740
+
741
+ - **الخلفية**: Node.js + Express + WebSocket (ws)
742
+ - **قاعدة البيانات**: SQLite (عبر better-sqlite3) مع مشغل ترحيلات
743
+ - **المصادقة**: JWT + bcrypt + توكنات جلسة (مقفلة بالنطاق)
744
+ - **التخزين المؤقت**: ذاكرة مؤقتة TTL + طابور تحليلات مجمع
745
+ - **المدفوعات**: تكامل Stripe مع بوابة الفوترة
746
+ - **الواجهة**: HTML/CSS/JS بدون أطر عمل
747
+ - **أغلفة أطر العمل**: React, Vue 3, Svelte (اختيارية)
748
+ - **تكامل LLM**: محول LangChain، محول MCP
749
+ - **الأمان**: Helmet, CORS, CSP, Rate Limiting متعدد الطبقات
750
+ - **الحاويات**: Docker + Docker Compose
751
+ - **CI/CD**: GitHub Actions (اختبار + نشر تلقائي في npm)
752
+ - **الاختبارات**: Jest + Supertest
753
+
754
+ ---
755
+
756
+ ## 💰 محرك التفاوض اللحظي
757
+
758
+ يحدد أصحاب المواقع قواعد التفاوض. يتفاوض وكيل الذكاء الاصطناعي على الأسعار في جلسات متعددة الجولات:
759
+
760
+ ```javascript
761
+ // فتح جلسة تفاوض
762
+ const session = await fetch('/api/sovereign/negotiation/sessions', {
763
+ method: 'POST',
764
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
765
+ body: JSON.stringify({
766
+ siteId: 'site-uuid',
767
+ agentId: 'agent-id',
768
+ originalPrice: 49.99,
769
+ itemId: 'product-123',
770
+ itemName: 'زيت زيتون ١ لتر'
771
+ })
772
+ }).then(r => r.json());
773
+
774
+ // تقديم عرض مضاد
775
+ const counter = await fetch(`/api/sovereign/negotiation/sessions/${session.sessionId}/propose`, {
776
+ method: 'POST',
777
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
778
+ body: JSON.stringify({ agentId: 'agent-id', proposedPrice: 39.99 })
779
+ }).then(r => r.json());
780
+ // → { status: 'accepted', finalPrice: 42.49, message: 'صفقة! ...' }
781
+ ```
782
+
783
+ ### أنواع الشروط
784
+ | الشرط | الوصف |
785
+ |---|---|
786
+ | `bulk_quantity` | خصم على الكميات الكبيرة |
787
+ | `loyalty` | مكافأة للعملاء المتكررين |
788
+ | `time_based` | عروض الساعة السعيدة |
789
+ | `first_purchase` | خصم ترحيبي للمشترين الجدد |
790
+ | `cart_value` | حد أدنى لقيمة السلة |
791
+ | `seasonal` | عروض موسمية بتواريخ محددة |
792
+ | `membership` | أسعار خاصة للأعضاء |
793
+ | `referral` | خصومات الإحالة |
794
+
795
+ ---
796
+
797
+ ## 🛡️ درع مقاومة التزييف (Anti-Hallucination Shield)
798
+
799
+ محرك تحقق متقاطع يكتشف أكاذيب الذكاء الاصطناعي قبل وصولها للمستخدم:
800
+
801
+ ```javascript
802
+ // التحقق من سعر
803
+ const result = await fetch('/api/sovereign/verify/price', {
804
+ method: 'POST',
805
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
806
+ body: JSON.stringify({
807
+ siteId: 'site-uuid',
808
+ domValue: 29.99,
809
+ visionValue: 29.99,
810
+ category: 'electronics',
811
+ itemName: 'كابل USB'
812
+ })
813
+ }).then(r => r.json());
814
+ // { verified: true, confidence: 0.98, severity: 'none' }
815
+ ```
816
+
817
+ ### طبقات التحقق
818
+ ١. **DOM مقابل الرؤية** — يقارن السعر المستخرج من DOM مع قراءة لقطة الشاشة
819
+ ٢. **المعيار السوقي** — يتحقق من السعر مقابل البيانات التاريخية للفئة
820
+ ٣. **الاتساق الزمني** يفحص هل تغير السعر بشكل مريب منذ آخر تحقق
821
+ ٤. **النتيجة المركبة** — مزيج مرجح من جميع الطبقات مع تصنيف الخطورة
822
+
823
+ ---
824
+
825
+ ## 📦 متجر قوالب الوكلاء (Community Agent Hub)
826
+
827
+ قوالب YAML جاهزة لحالات الاستخدام الشائعة. شغّل أي قالب من سطر الأوامر:
828
+
829
+ ```bash
830
+ # عرض القوالب المتاحة
831
+ npx wab-agent templates
832
+
833
+ # تشغيل قالب
834
+ npx wab-agent run olive-oil-tunisia --budget 50 --region tunis
835
+
836
+ # تشغيل مع خادم مخصص
837
+ npx wab-agent run hotel-direct-booking --server https://yourserver.com
838
+ ```
839
+
840
+ ### القوالب المتاحة
841
+ | القالب | الوصف |
842
+ |---|---|
843
+ | `olive-oil-tunisia` | زيت زيتون من مزارع تونسية صغيرة |
844
+ | `hotel-direct-booking` | حجز فنادق مباشر بدون وسطاء |
845
+ | `artisan-marketplace` | منتجات يدوية من حرفيين مستقلين |
846
+ | `grocery-price-compare` | مقارنة أسعار البقالة بين المتاجر المحلية |
847
+ | `freelancer-direct` | مستقلون بدون رسوم منصات |
848
+ | `restaurant-direct` | مطاعم بدون تطبيقات توصيل |
849
+ | `book-price-scout` | كتب من مكتبات مستقلة |
850
+ | `flight-deal-hunter` | رحلات مباشرة من شركات الطيران |
851
+ | `electronics-price-tracker` | تتبع أسعار الإلكترونيات |
852
+ | `local-services` | مزودي خدمات محليين |
853
+ | `organic-farm-fresh` | منتجات عضوية مباشرة من المزارع |
854
+
855
+ ---
856
+
857
+ ## 🎯 نظام القائد (Commander)
858
+
859
+ محرك تنسيق مهام محلي يفكك الأهداف العليا إلى مهام مترابطة ويوزعها على وكلاء متخصصين:
860
+
861
+ ```javascript
862
+ // إنشاء مهمة
863
+ const mission = await fetch('/api/commander/missions', {
864
+ method: 'POST',
865
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
866
+ body: JSON.stringify({
867
+ goal: 'إيجاد أرخص زيت زيتون في ٥ متاجر',
868
+ strategy: 'parallel',
869
+ agents: ['researcher-1', 'analyst-1', 'negotiator-1']
870
+ })
871
+ }).then(r => r.json());
872
+
873
+ // إطلاق المهمة
874
+ await fetch(`/api/commander/missions/${mission.id}/launch`, {
875
+ method: 'POST', headers: { 'Authorization': 'Bearer ' + token }
876
+ });
877
+ ```
878
+
879
+ | القدرة | الوصف |
880
+ |---|---|
881
+ | **تفكيك المهام** | تحويل الأهداف إلى رسوم بيانية مهام (DAG) مع تتبع التبعيات |
882
+ | **سجل الوكلاء** | تتبع قدرات وأداء الوكلاء المسجلين |
883
+ | **تنفيذ متوازٍ** | تشغيل المهام المستقلة بالتوازي عبر عدة وكلاء |
884
+ | **تعلم من النتائج** | تسجيل النتائج لتغذية راجعة في التعلم المعزز |
885
+ | **تنسيق حوسبة طرفية** | توزيع المهام الثقيلة على عقد الحافة |
886
+
887
+ ---
888
+
889
+ ## 🖥️ نظام الحوسبة الطرفية (Edge Compute)
890
+
891
+ حوّل كل جهاز إلى عقدة AI سيادية — بدون سحابة مركزية:
892
+
893
+ ```javascript
894
+ // تسجيل جهاز كعقدة حوسبة طرفية
895
+ await fetch('/api/commander/edge/nodes', {
896
+ method: 'POST',
897
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
898
+ body: JSON.stringify({
899
+ name: 'حاسوبي',
900
+ capabilities: { cpu: 8, ram: 16384, gpu: true },
901
+ supportedTasks: ['text-inference', 'vision-analysis', 'price-comparison']
902
+ })
903
+ }).then(r => r.json());
904
+ ```
905
+
906
+ | القدرة | الوصف |
907
+ |---|---|
908
+ | **تحليل المعدات** | كشف إمكانيات CPU, RAM, GPU لكل عقدة |
909
+ | **تشفير AES-256-GCM** | كل البيانات بين العقد مشفرة من الطرف للطرف |
910
+ | **موازنة حمل مرجحة** | توجيه المهام حسب المعدات والتوفر |
911
+ | **مراقبة بنبضات القلب** | تجاوز فشل تلقائي عند عدم استجابة العقد |
912
+ | **تشكيل أسراب** | تجميع العقد حسب القدرات |
913
+
914
+ ---
915
+
916
+ ## 🐝 محرك التنفيذ بالسرب (Swarm)
917
+
918
+ أطلق عدة وكلاء بالتوازي لحل مهمة واحدة ثم ادمج نتائجهم بذكاء:
919
+
920
+ ```javascript
921
+ const swarm = await fetch('/api/premium/v2/swarm/execute', {
922
+ method: 'POST',
923
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
924
+ body: JSON.stringify({
925
+ task: 'أفضل عروض لاب توب تحت ١٠٠٠ دولار',
926
+ strategy: 'parallel', // parallel | sequential | hybrid
927
+ agentCount: 4,
928
+ roles: ['researcher', 'analyst', 'price-checker', 'reviewer'],
929
+ mergeStrategy: 'best-score' // best-score | fairness-weighted | consensus
930
+ })
931
+ }).then(r => r.json());
932
+ ```
933
+
934
+ ---
935
+
936
+ ## ⚖️ محرك العدالة (Fairness Engine)
937
+
938
+ طبقة حياد تضمن فرصة متساوية للمواقع الصغيرة والكبيرة:
939
+
940
+ ```javascript
941
+ // بحث مرجح بالعدالة (بدلاً من ترتيب الصلة فقط)
942
+ const results = await fetch('/api/discovery/search?q=زيت+زيتون&fairness=true', {
943
+ headers: { 'Authorization': 'Bearer ' + token }
944
+ }).then(r => r.json());
945
+ // المزارع الصغيرة تُرتّب بجانب أمازون — مرجحة بدرجة الحياد لا بـ SEO فقط
946
+ ```
947
+
948
+ ### كيف يعمل تقييم الحياد
949
+ | العامل | الوزن | الوصف |
950
+ |---|---|---|
951
+ | **اكتمال الإعداد** | ٢٥٪ | مدى جودة إعداد WAB في الموقع |
952
+ | **درجة الثقة** | ٢٥٪ | شهادات السمعة من شبكة الوكلاء |
953
+ | **الشفافية** | ٢٥٪ | إفصاح العمولة، وضوح التسعير |
954
+ | **الاستجابة** | ٢٥٪ | زمن استجابة API، وقت التشغيل، نجاح الإجراءات |
955
+
956
+ ---
957
+
958
+ ## 🧠 ذاكرة الوكيل (Agent Memory)
959
+
960
+ ذاكرة سلوكية دائمة تسمح للوكلاء بتذكر تفضيلات المستخدم وبناء ارتباطات:
961
+
962
+ ```javascript
963
+ // تخزين ذاكرة
964
+ await fetch('/api/premium/v2/memory', {
965
+ method: 'POST',
966
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
967
+ body: JSON.stringify({
968
+ agentId: 'agent-1',
969
+ type: 'preference', // preference | interaction | correction | pattern
970
+ category: 'purchase', // navigation | purchase | search | form | custom
971
+ key: 'العلامة-المفضلة',
972
+ value: 'عضوي-فقط',
973
+ importance: 0.9
974
+ })
975
+ }).then(r => r.json());
976
+
977
+ // إنشاء ارتباطات بين الذكريات
978
+ await fetch('/api/premium/v2/memory/associate', {
979
+ method: 'POST',
980
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
981
+ body: JSON.stringify({
982
+ sourceId: 'memory-1',
983
+ targetId: 'memory-2',
984
+ relationship: 'leads_to' // leads_to | similar_to | replaces | depends_on
985
+ })
986
+ }).then(r => r.json());
987
+ ```
988
+
989
+ ---
990
+
991
+ ## 👁️ خدمة الرؤية (Vision Analysis)
992
+
993
+ تحليل لقطات شاشة متعدد الموفرين لكشف العناصر التفاعلية واستخراج البيانات:
994
+
995
+ | الموفر | محلي؟ | الوصف |
996
+ |---|---|---|
997
+ | **Moondream** | | نموذج رؤية محلي خفيف |
998
+ | **Ollama** | | نماذج محلية عبر Ollama (llava, bakllava) |
999
+ | **OpenAI** | ❌ | GPT-4 Vision |
1000
+ | **Anthropic** | ❌ | Claude Vision |
1001
+
1002
+ ---
1003
+
1004
+ ## 🔌 بنية الإضافات (Plugin Architecture)
1005
+
1006
+ نظام إضافات ديناميكي يسمح بامتدادات من أطراف ثالثة:
1007
+
1008
+ ```javascript
1009
+ // عرض الإضافات المتاحة
1010
+ const plugins = await fetch('/api/premium/v2/plugins', {
1011
+ headers: { 'Authorization': 'Bearer ' + token }
1012
+ }).then(r => r.json());
1013
+
1014
+ // تثبيت إضافة لموقعك
1015
+ await fetch('/api/premium/v2/plugins/price-alert/install', {
1016
+ method: 'POST',
1017
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1018
+ body: JSON.stringify({ siteId: 'site-uuid', config: { threshold: 10 } })
1019
+ }).then(r => r.json());
1020
+ ```
1021
+
1022
+ ---
1023
+
1024
+ ## 🔍 تحليل حركة المرور المتقدم (Traffic Intelligence)
1025
+
1026
+ | القدرة | الوصف |
1027
+ |---|---|
1028
+ | **٣٠+ نوع بوت** | كشف Google, Bing, ChatGPT, Claude, Perplexity وغيرها |
1029
+ | **تحليل سلوكي** | تصنيف سلوك الوكلاء حسب البصمة والمنصة والنوع |
1030
+ | **كشف شذوذ** | كشف الارتفاعات المفاجئة وتحليل أنماط غير عادية |
1031
+ | **كشف استغلالات أمنية** | رصد أنماط SQL injection, XSS, Rate anomalies |
1032
+ | **تنبيهات Webhook** | إطلاق webhooks عند نشاط مشبوه |
1033
+ | **تدقيق للامتثال** | سجل تدقيق كامل للتوافق التنظيمي |
1034
+
1035
+ ---
1036
+
1037
+ ## 🔗 محول WAB-MCP
1038
+
1039
+ كشف قدرات مواقع WAB كأدوات [MCP](https://modelcontextprotocol.io/) لـ Claude وGPT وGemini:
1040
+
1041
+ ```javascript
1042
+ const { WABMCPAdapter } = require('wab-mcp-adapter');
1043
+
1044
+ const adapter = new WABMCPAdapter({
1045
+ siteUrl: 'https://shop.example.com',
1046
+ transport: 'http' // http | websocket | direct
1047
+ });
1048
+
1049
+ const tools = await adapter.getTools();
1050
+ const result = await adapter.executeTool('execute_action', {
1051
+ name: 'addToCart', params: { sku: 'ABC123' }
1052
+ });
1053
+ ```
1054
+
1055
+ ### أدوات MCP المدمجة
1056
+ | الأداة | الوصف |
1057
+ |---|---|
1058
+ | `discover` | اكتشاف الإجراءات المتاحة تلقائياً |
1059
+ | `get_actions` | قائمة كل الإجراءات مع المعاملات |
1060
+ | `execute_action` | تنفيذ إجراء محدد |
1061
+ | `read_content` | قراءة محتوى من الصفحة |
1062
+ | `get_page_info` | معلومات وصفية عن الصفحة |
1063
+ | `fairness_search` | بحث في دليل WAB مرجح بالعدالة |
1064
+ | `authenticate` | مصادقة وكيل مع الموقع |
1065
+
1066
+ ---
1067
+
1068
+ ## 🖥️ متصفح WAB (سطح المكتب)
1069
+
1070
+ متصفح Electron مستقل مع ميزات خصوصية وعدالة مدمجة:
1071
+
1072
+ - **حاجب الإعلانات** — ٨٠+ نطاق محظور + مطابقة أنماط URL + قواعد CSS تجميلية
1073
+ - **درع الاحتيال** — كشف نطاقات TLD مشبوهة وانتحال أسماء العلامات التجارية
1074
+ - **تصنيف العدالة** — أولوية للمواقع المستقلة، تنبيه عن تركز الشركات الكبرى
1075
+ - **دردشة الوكيل** — مساعد AI مدمج للتصفح
1076
+ - **الإشعارات** — تحليل الصفحة مع تنبيهات أمان وعدالة
1077
+ - **وضع الشبح** — تصفح بخصوصية بدون تتبع
1078
+ - **بحث ذكي** — تكامل DuckDuckGo للبحث الخاص
1079
+
1080
+ ```bash
1081
+ # تشغيل متصفح WAB
1082
+ cd wab-browser
1083
+ npm install
1084
+ npx electron .
1085
+
1086
+ # بناء المثبت (Windows NSIS)
1087
+ npm run build:win
1088
+ ```
1089
+
1090
+ ---
1091
+
1092
+ ## 📱 متصفح PWA (الهاتف)
1093
+
1094
+ تطبيق ويب تقدمي لـ Android وiOS — قابل للتثبيت من أي متصفح هاتف:
1095
+
1096
+ - **حاجب إعلانات** — ٤٥+ نطاق إعلاني محظور + مطابقة أنماط URL
1097
+ - **كشف الاحتيال** — تنبيهات TLD مشبوهة وفحوصات انتحال العلامات
1098
+ - **وضع العدالة** — تصفية مواقع التقنية الكبرى لتعزيز البدائل المستقلة
1099
+ - **أولوية غير متصل** — عامل الخدمة يخزن أصول الواجهة مؤقتاً للتشغيل بدون إنترنت
1100
+ - **بحث خاص** — تكامل DuckDuckGo (بدون تتبع Google)
1101
+ - **دردشة وكيل** — مساعد AI مع احتياطي محلي
1102
+
1103
+ ثبّته من: `https://yourserver.com/pwa/`
1104
+
1105
+ ---
1106
+
1107
+ ## 📦 إضافة WordPress
1108
+
1109
+ إضافة WordPress أصلية لإضافة دعم WAB لأي موقع WordPress:
1110
+
1111
+ | القدرة | الوصف |
1112
+ |---|---|
1113
+ | **صفحة إعدادات** | إعداد عنوان API، معرف الموقع، الصلاحيات |
1114
+ | **إجراءات لكل صفحة** | صندوق وصف لإضافة إجراءات WAB مخصصة لكل صفحة/مقال |
1115
+ | **مستند اكتشاف** | توليد تلقائي لنقطة اكتشاف WAB |
1116
+ | **عنصر لوحة تحكم** | عرض حالة WAB وإحصائيات تفاعل الوكلاء |
1117
+ | **كود قصير** | `[wab_bridge]` لتضمين WAB في صفحات محددة |
1118
+ | **خطافات** | `wab_before_action` / `wab_after_action` لمنطق مخصص |
1119
+
1120
+ راجع [`web-agent-bridge-wordpress/README.md`](web-agent-bridge-wordpress/README.md) للتوثيق الكامل.
1121
+
1122
+ ---
1123
+
1124
+ ## �️ درع الأمان — حماية متعددة الطبقات (SPEC §8.10–§8.13)
1125
+
1126
+ مستوحى من حادثة PocketOS الشهيرة حيث حذف وكيل ذكاء اصطناعي ٢٠ ألف مستخدم بأمر واحد، يضيف WAB خمس طبقات حماية متراكمة لا تستبدل بعضها بل تتكامل معاً. كل طبقة فعّالة من خطة معينة فما فوق.
1127
+
1128
+ ### §8.9 — رموز الجلسة المُحدَّدة النطاق (Scoped Session Tokens) — كل الخطط
1129
+
1130
+ كل توكن جلسة يحمل **نطاقًا** صريحًا: `read` أو `write` أو `delete` أو `admin`. الإجراءات المُصنّفة "هدّامة" (تحتوي على فعل مثل `delete` أو `drop` أو `purge` أو `wipe` أو `truncate`) تتطلب نطاق `delete` أو أعلى. الموقع يستطيع توسيع التصنيف عبر `siteConfig.destructiveActions[]`.
1131
+
1132
+ ```js
1133
+ // الموقع يحدد البيئة والإجراءات الهدّامة
1134
+ {
1135
+ "environment": "production",
1136
+ "destructiveActions": ["bulkUnsubscribe"],
1137
+ "nonDestructiveActions": ["softArchive"]
1138
+ }
1139
+ ```
1140
+
1141
+ عند الرفض → `403 SCOPE_DENIED` مع تفاصيل السبب في سجل التدقيق.
1142
+
1143
+ ### §8.10 — التشغيل التجريبي الإلزامي (Mandatory Dry-Run) — كل الخطط (MIT)
1144
+
1145
+ للإجراءات الهدّامة، **لا يمكن** للوكيل التنفيذ في خطوة واحدة. يجب أن يمرّ بمرحلتين:
1146
+
1147
+ **المرحلة ١ — طلب خطة:**
1148
+ ```http
1149
+ POST /api/wab/actions/deleteUser
1150
+ { "params": {"id": 42}, "dry_run": true }
1151
+ ```
1152
+ الاستجابة:
1153
+ ```json
1154
+ { "result": { "plan_id": "wabp_…", "simulation": {
1155
+ "would_affect": ["site:abc", "action:deleteUser"],
1156
+ "side_effects": ["deleteUser"], "reversible": false,
1157
+ "summary": "سيقوم بحذف المستخدم #42 — لم يتم تنفيذ أي تغيير فعلي."
1158
+ }, "expires_at": "…" }}
1159
+ ```
1160
+
1161
+ **المرحلة ٢ — التأكيد:**
1162
+ ```http
1163
+ POST /api/wab/actions/deleteUser
1164
+ { "params": {"id": 42}, "dry_run": false, "plan_id": "wabp_…" }
1165
+ ```
1166
+
1167
+ التحقق رباعي الأبعاد: `(sessionFingerprint, siteId, actionName, paramsHash)`. أي انحراف ولو حرف واحد في المعاملات → `412 DRY_RUN_PLAN_MISMATCH`. مهلة افتراضية ٥ دقائق (حد أقصى ٦٠).
1168
+
1169
+ ### §8.11 — البوابة البشرية خارج النطاق (Out-of-Band Human Gate) — Pro فما فوق
1170
+
1171
+ للمواقع الحساسة، الإجراءات الهدّامة تُجمَّد ويُرسَل **رمز من ٦ أرقام** عبر قناة لا يراها الوكيل (Webhook موقَّع، بريد إلكتروني، Telegram، Slack...). فقط بعد موافقة بشرية حقيقية يُسمح بالتنفيذ بحمل `confirmation_id`.
1172
+
1173
+ **القنوات الجاهزة:**
1174
+ - `webhook` — `POST` JSON موقَّع بـ HMAC-SHA256 (header: `X-WAB-Signature: sha256=…`)
1175
+ - `email` — SMTP عبر `nodemailer` (يدعم متغيرات البيئة `SMTP_HOST/PORT/USER/PASS`)
1176
+ - `console` — للتطوير فقط (يكتب على stderr)
1177
+ - `null` — لا شيء (للاختبارات والوضع المعزول)
1178
+
1179
+ **الحماية من الهجوم العنيف:**
1180
+ - قفل ٥ محاولات لكل تحدي (داخل الموديول).
1181
+ - **حد معدل بحسب IP**: ٣٠ محاولة / ١٠ دقائق + ٥ موافقات ناجحة / ١٠ دقائق. عند التجاوز → `429 RATE_LIMIT_TOO_MANY_ATTEMPTS` مع `Retry-After`.
1182
+
1183
+ ### §8.12 — محرك تحليل النية (Intent Analysis Engine) — Premium فما فوق
1184
+
1185
+ نقاط مخاطرة حتمية (٠–١٠٠) تُحسب من إشارات يمكن تفسيرها — لا توجد عشوائية ولا نموذج لغوي. الإشارات:
1186
+
1187
+ | الإشارة | الوزن |
1188
+ |---|---|
1189
+ | فعل هدّام (delete, drop, purge…) | +50 |
1190
+ | فعل كتابة عادي | +10 |
1191
+ | البيئة `production` | +30 |
1192
+ | كلمات خطر (`*`, `all`, `cascade`, `force`) | +15 لكل واحدة (سقف +30) |
1193
+ | محددات شاملة في المعاملات | +15 |
1194
+ | مصفوفة كبيرة (>50 عنصرًا) | +10 |
1195
+ | نوبة طلبات (>10/دقيقة) | +15 |
1196
+ | سرعة تنفيذ مرتفعة | +10 |
1197
+
1198
+ العتبات الافتراضية: `low:30, medium:70, high:90`. النتيجة العالية يمكن أن:
1199
+ 1. تُجبر التشغيل التجريبي (`required_gate: "dry_run"`)
1200
+ 2. تُجبر البوابة البشرية (`required_gate: "human_gate"`)
1201
+ 3. تحجب نهائيًا بـ `403 INTENT_BLOCKED`
1202
+
1203
+ ### §8.13 — اللقطات والتراجع (Snapshot & Rollback) — Enterprise
1204
+
1205
+ قبل تنفيذ أي إجراء هدّام، WAB يأخذ لقطة قابلة للاسترجاع تلقائيًا (إذا سجّل الموقع `restorer`). البيانات تُحفَظ في جدول `wab_snapshots` (sqlite) لمدة ٣٠ يومًا.
1206
+
1207
+ **نقاط الإدارة (X-WAB-Site-Id + X-WAB-Api-Key):**
1208
+ ```http
1209
+ GET /api/wab/admin/snapshots # قائمة آخر اللقطات
1210
+ GET /api/wab/admin/snapshots/:id # تفاصيل لقطة
1211
+ POST /api/wab/admin/rollback/:id # تنفيذ التراجع
1212
+ ```
1213
+
1214
+ **واجهة إدارة جاهزة:** انتقل إلى [`/admin/snapshots`](https://webagentbridge.com/admin/snapshots) وأدخل `Site ID` + `API Key` للتصفح والاسترجاع بزر واحد.
1215
+
1216
+ **حالات اللقطة:** `recorded → restored | failed | expired`.
1217
+
1218
+ ### كيف تستخدمها من SDK
1219
+
1220
+ ```js
1221
+ const { SafetyShieldClient } = require('@webagentbridge/sdk');
1222
+
1223
+ const shield = new SafetyShieldClient({
1224
+ baseUrl: 'https://webagentbridge.com',
1225
+ sessionToken: 'Bearer-token-from-/sessions',
1226
+ });
1227
+
1228
+ // الطريقة الموصى بها: تشغيل تجريبي ثم تأكيد
1229
+ const plan = await shield.dryRun('deleteUser', { id: 42 });
1230
+ console.log(plan.simulation.summary); // اعرضها للمستخدم البشري
1231
+ const result = await shield.confirmAction(plan, { code: '123456' });
1232
+ // أو في خطوة واحدة (ترجع envelope من نوع pending_human_gate إذا لزم):
1233
+ const out = await shield.safeExecute('deleteUser', { id: 42 });
1234
+ ```
1235
+
1236
+ ### جدول الأخطاء الموحَّدة
1237
+
1238
+ | الكود | HTTP | المعنى |
1239
+ |---|---|---|
1240
+ | `SCOPE_DENIED` | 403 | نطاق التوكن غير كافٍ |
1241
+ | `DRY_RUN_REQUIRED` | 412 | يجب تشغيل تجريبي أولاً |
1242
+ | `DRY_RUN_PLAN_MISMATCH` | 412 | المعاملات تغيّرت بين المرحلتين |
1243
+ | `DRY_RUN_PLAN_EXPIRED` | 412 | انقضت مهلة الخطة |
1244
+ | `HUMAN_GATE_REQUIRED` | 202 | تم إصدار تحدٍّ — انتظر الموافقة البشرية |
1245
+ | `HUMAN_GATE_PENDING` | 425 | الموافقة لم تحدث بعد |
1246
+ | `HUMAN_GATE_BAD_CODE` | 401 | رمز خاطئ |
1247
+ | `HUMAN_GATE_LOCKED` | 429 | استُنفدت ٥ محاولات لهذا التحدي |
1248
+ | `RATE_LIMIT_TOO_MANY_ATTEMPTS` | 429 | تجاوز حد الـ IP |
1249
+ | `INTENT_BLOCKED` | 403 | نتيجة محرك النية ≥90 |
1250
+ | `SNAPSHOT_NOT_FOUND` | 404 | لقطة غير موجودة |
1251
+ | `NO_RESTORER` | 503 | الموقع لم يسجّل `restorer` |
1252
+
1253
+ التفاصيل الكاملة (جداول الإشارات، صيغ التواصل، مرجع التطبيق) في [`docs/SPEC.md`](docs/SPEC.md) §8.9–§8.13.
1254
+
1255
+ ---
1256
+
1257
+ ## �📋 مواصفة بروتوكول WAB
1258
+
1259
+ المواصفة المعيارية الكاملة متاحة في [`docs/SPEC.md`](docs/SPEC.md):
1260
+
1261
+ | الطبقة | الوصف |
1262
+ |---|---|
1263
+ | **طبقة البروتوكول** | صيغة مستند الاكتشاف، بروتوكول الأوامر، بروتوكول العدالة |
1264
+ | **طبقة التشغيل** | واجهة `window.AICommands`، محرك الاكتشاف التلقائي، صندوق الأمان |
1265
+ | **طبقة النقل** | متغير JavaScript عام، WebSocket, HTTP, WebDriver BiDi, MCP |
1266
+
1267
+ ### دورة الحياة من ٥ مراحل
1268
+ ١. **اكتشاف** — الوكيل يجد مستند اكتشاف WAB (`.well-known/wab.json` أو وسم سكريبت)
1269
+ ٢. **مصادقة** — الوكيل يستبدل `siteId` بتوكن جلسة
1270
+ ٣. **تخطيط** — الوكيل يقرأ الإجراءات المتاحة ومعلومات الصفحة
1271
+ ٤. **تنفيذ** — الوكيل يشغل الإجراءات عبر الجسر
1272
+ ٥. **تأكيد** — النتائج تُتحقق عبر درع مقاومة التزييف
1273
+
1274
+ ---
1275
+
1276
+ ## 🤝 المساهمة
1277
+
1278
+ نرحب بالمساهمات! اقرأ [دليل المساهمة](CONTRIBUTING.md) للبدء.
1279
+
1280
+ ---
1281
+
1282
+ ## 📄 الرخصة
1283
+
1284
+ MIT — مجاني للاستخدام والتعديل والتوزيع.
1285
+
1286
+ </div>