web-agent-bridge 3.3.0 → 3.8.1

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 (312) hide show
  1. package/LICENSE +84 -72
  2. package/README.ar.md +1563 -1286
  3. package/README.md +137 -1764
  4. package/bin/agent-runner.js +474 -474
  5. package/bin/cli.js +237 -237
  6. package/bin/wab-init.js +244 -0
  7. package/bin/wab.js +80 -80
  8. package/examples/azure-dns-wab.js +83 -0
  9. package/examples/bidi-agent.js +119 -119
  10. package/examples/cloudflare-wab-dns.js +121 -0
  11. package/examples/cpanel-wab-dns.js +114 -0
  12. package/examples/cross-site-agent.js +91 -91
  13. package/examples/dns-discovery-agent.js +166 -0
  14. package/examples/gcp-dns-wab.js +76 -0
  15. package/examples/governance-agent.js +169 -0
  16. package/examples/mcp-agent.js +94 -94
  17. package/examples/next-app-router/README.md +44 -44
  18. package/examples/plesk-wab-dns.js +103 -0
  19. package/examples/puppeteer-agent.js +108 -108
  20. package/examples/route53-wab-dns.js +144 -0
  21. package/examples/saas-dashboard/README.md +55 -55
  22. package/examples/safe-mode-agent.js +96 -0
  23. package/examples/self-discovery.js +106 -0
  24. package/examples/shopify-hydrogen/README.md +74 -74
  25. package/examples/vision-agent.js +171 -171
  26. package/examples/wab-sign.js +74 -0
  27. package/examples/wab-verify.js +60 -0
  28. package/examples/wordpress-elementor/README.md +77 -77
  29. package/package.json +93 -93
  30. package/public/.well-known/agent-tools.json +180 -180
  31. package/public/.well-known/ai-assets.json +59 -59
  32. package/public/.well-known/security.txt +8 -8
  33. package/public/.well-known/wab.json +28 -0
  34. package/public/activate.html +448 -0
  35. package/public/adopt.html +236 -0
  36. package/public/adoption-metrics.html +188 -0
  37. package/public/agent-workspace.html +359 -349
  38. package/public/ai.html +198 -198
  39. package/public/api.html +397 -413
  40. package/public/azure-dns-integration.html +289 -0
  41. package/public/browser.html +486 -486
  42. package/public/cloudflare-integration.html +380 -0
  43. package/public/commander-dashboard.html +243 -243
  44. package/public/cookies.html +210 -210
  45. package/public/cpanel-integration.html +398 -0
  46. package/public/css/agent-workspace.css +1713 -1713
  47. package/public/css/premium.css +317 -317
  48. package/public/css/styles.css +1401 -1235
  49. package/public/dashboard-shieldlink.html +295 -0
  50. package/public/dashboard.html +711 -706
  51. package/public/dns.html +436 -507
  52. package/public/docs.html +588 -587
  53. package/public/enterprise-mesh.ar.html +80 -0
  54. package/public/enterprise-mesh.html +81 -0
  55. package/public/feed.xml +89 -89
  56. package/public/gcp-dns-integration.html +318 -0
  57. package/public/governance.ar.html +70 -0
  58. package/public/governance.html +69 -0
  59. package/public/growth.html +465 -463
  60. package/public/index.html +1372 -1070
  61. package/public/integrations.html +556 -556
  62. package/public/js/activate.js +449 -0
  63. package/public/js/agent-workspace.js +1740 -1740
  64. package/public/js/auth-nav.js +117 -31
  65. package/public/js/auth-redirect.js +12 -12
  66. package/public/js/cookie-consent.js +56 -56
  67. package/public/js/dns.js +438 -0
  68. package/public/js/wab-demo-page.js +721 -721
  69. package/public/js/ws-client.js +74 -74
  70. package/public/l-preview.html +242 -0
  71. package/public/llms-full.txt +360 -360
  72. package/public/llms.txt +125 -125
  73. package/public/login.html +85 -85
  74. package/public/mesh-dashboard.html +328 -328
  75. package/public/milestones.html +346 -0
  76. package/public/one-click.html +779 -0
  77. package/public/openapi.json +669 -580
  78. package/public/partners.ar.html +145 -0
  79. package/public/partners.html +143 -0
  80. package/public/phone-shield.html +281 -281
  81. package/public/plesk-integration.html +375 -0
  82. package/public/premium-dashboard.html +2489 -2489
  83. package/public/premium.html +793 -793
  84. package/public/privacy.html +297 -297
  85. package/public/provider-onboarding.html +172 -0
  86. package/public/provider-sandbox.html +134 -0
  87. package/public/providers.html +359 -0
  88. package/public/refusals.html +172 -0
  89. package/public/register.html +105 -105
  90. package/public/registrar-integrations.html +141 -0
  91. package/public/ring4.html +292 -0
  92. package/public/robots.txt +99 -87
  93. package/public/route53-integration.html +531 -0
  94. package/public/score.html +263 -0
  95. package/public/script/wab-consent.d.ts +36 -36
  96. package/public/script/wab-consent.js +104 -104
  97. package/public/script/wab-schema.js +131 -131
  98. package/public/script/wab.d.ts +108 -108
  99. package/public/script/wab.min.js +580 -580
  100. package/public/security.txt +8 -8
  101. package/public/shieldlink.html +244 -0
  102. package/public/shieldqr.html +231 -0
  103. package/public/sitemap.xml +19 -1
  104. package/public/terms.html +256 -256
  105. package/public/trust-graph-api.ar.html +92 -0
  106. package/public/trust-graph-api.html +91 -0
  107. package/public/wab-features.html +560 -0
  108. package/public/wab-trust.html +200 -0
  109. package/public/wab-truth.html +375 -0
  110. package/public/wab-vs-protocols.html +210 -0
  111. package/public/whitepaper.html +449 -0
  112. package/script/ai-agent-bridge.js +1754 -1754
  113. package/sdk/README.md +99 -99
  114. package/sdk/agent-mesh.js +449 -449
  115. package/sdk/auto-discovery.js +301 -0
  116. package/sdk/commander.js +262 -262
  117. package/sdk/governance.js +262 -0
  118. package/sdk/index.d.ts +464 -464
  119. package/sdk/index.js +649 -636
  120. package/sdk/multi-agent.js +318 -318
  121. package/sdk/package.json +2 -2
  122. package/sdk/safe-mode.js +221 -0
  123. package/sdk/safety-shield.js +219 -219
  124. package/sdk/schema-discovery.js +83 -83
  125. package/server/adapters/index.js +520 -520
  126. package/server/config/plans.js +412 -367
  127. package/server/config/secrets.js +102 -102
  128. package/server/control-plane/index.js +301 -301
  129. package/server/data-plane/index.js +354 -354
  130. package/server/index.js +790 -531
  131. package/server/llm/index.js +404 -404
  132. package/server/middleware/adminAuth.js +35 -35
  133. package/server/middleware/api-tier.js +170 -0
  134. package/server/middleware/auth.js +50 -50
  135. package/server/middleware/featureGate.js +88 -88
  136. package/server/middleware/rateLimits.js +100 -100
  137. package/server/middleware/sensitiveAction.js +157 -157
  138. package/server/middleware/wab-trust.js +141 -0
  139. package/server/migrations/001_add_analytics_indexes.sql +7 -7
  140. package/server/migrations/002_premium_features.sql +418 -418
  141. package/server/migrations/003_ads_integer_cents.sql +33 -33
  142. package/server/migrations/004_agent_os.sql +158 -158
  143. package/server/migrations/005_marketplace_metering.sql +126 -126
  144. package/server/migrations/006_growth_suite.sql +138 -0
  145. package/server/migrations/007_governance.sql +106 -0
  146. package/server/migrations/008_plans.sql +144 -0
  147. package/server/migrations/009_shieldqr.sql +30 -0
  148. package/server/migrations/010_extended_trust.sql +33 -0
  149. package/server/migrations/011_outreach.sql +47 -0
  150. package/server/migrations/012_shieldlink.sql +116 -0
  151. package/server/migrations/013_ct_monitor.sql +13 -0
  152. package/server/migrations/014_wab_advanced_features.sql +128 -0
  153. package/server/migrations/015_wab_truth_layer.sql +101 -0
  154. package/server/migrations/016_ring4_external_trust.sql +84 -0
  155. package/server/migrations/017_ring4_extensions.sql +69 -0
  156. package/server/migrations/018_commercial_foundations.sql +167 -0
  157. package/server/migrations/019_unify_tier_constraints.sql +133 -0
  158. package/server/models/adapters/index.js +33 -33
  159. package/server/models/adapters/mysql.js +183 -183
  160. package/server/models/adapters/postgresql.js +172 -172
  161. package/server/models/adapters/sqlite.js +7 -7
  162. package/server/models/db.js +740 -681
  163. package/server/observability/failure-analysis.js +337 -337
  164. package/server/observability/index.js +394 -394
  165. package/server/protocol/capabilities.js +223 -223
  166. package/server/protocol/index.js +243 -243
  167. package/server/protocol/schema.js +584 -584
  168. package/server/registry/certification.js +271 -271
  169. package/server/registry/index.js +326 -326
  170. package/server/routes/activate.js +478 -0
  171. package/server/routes/admin-outreach.js +239 -0
  172. package/server/routes/admin-plans.js +76 -0
  173. package/server/routes/admin-premium.js +674 -671
  174. package/server/routes/admin-shieldlink.js +137 -0
  175. package/server/routes/admin-shieldqr.js +90 -0
  176. package/server/routes/admin-trust-monitor.js +139 -0
  177. package/server/routes/admin.js +550 -261
  178. package/server/routes/adopt.js +61 -0
  179. package/server/routes/ads.js +130 -130
  180. package/server/routes/agent-workspace.js +540 -540
  181. package/server/routes/api-keys.js +127 -0
  182. package/server/routes/api.js +150 -150
  183. package/server/routes/auth.js +71 -71
  184. package/server/routes/billing.js +57 -45
  185. package/server/routes/commander.js +316 -316
  186. package/server/routes/customer-shieldlink.js +133 -0
  187. package/server/routes/demo-showcase.js +332 -332
  188. package/server/routes/demo-store.js +154 -154
  189. package/server/routes/diagnose.js +373 -0
  190. package/server/routes/discovery.js +2348 -417
  191. package/server/routes/enterprise-mesh.js +170 -0
  192. package/server/routes/gateway.js +173 -173
  193. package/server/routes/governance-saas.js +203 -0
  194. package/server/routes/governance.js +208 -0
  195. package/server/routes/growth.js +1048 -0
  196. package/server/routes/intent.js +328 -0
  197. package/server/routes/license.js +251 -251
  198. package/server/routes/mesh.js +469 -469
  199. package/server/routes/noscript.js +543 -543
  200. package/server/routes/partners.js +201 -0
  201. package/server/routes/plans.js +33 -0
  202. package/server/routes/premium-v2.js +686 -686
  203. package/server/routes/premium.js +724 -724
  204. package/server/routes/providers.js +650 -0
  205. package/server/routes/reputation.js +411 -0
  206. package/server/routes/ring4.js +885 -0
  207. package/server/routes/runtime.js +2148 -2148
  208. package/server/routes/shieldlink.js +70 -0
  209. package/server/routes/shieldqr.js +88 -0
  210. package/server/routes/sovereign.js +465 -465
  211. package/server/routes/truth-layer.js +670 -0
  212. package/server/routes/universal.js +200 -200
  213. package/server/routes/unsubscribe.js +51 -0
  214. package/server/routes/wab-api.js +850 -850
  215. package/server/routes/wab-cache.js +282 -0
  216. package/server/runtime/container-worker.js +111 -111
  217. package/server/runtime/container.js +448 -448
  218. package/server/runtime/distributed-worker.js +362 -362
  219. package/server/runtime/event-bus.js +210 -210
  220. package/server/runtime/index.js +253 -253
  221. package/server/runtime/queue.js +599 -599
  222. package/server/runtime/replay.js +666 -666
  223. package/server/runtime/sandbox.js +266 -266
  224. package/server/runtime/scheduler.js +534 -534
  225. package/server/runtime/session-engine.js +293 -293
  226. package/server/runtime/state-manager.js +188 -188
  227. package/server/secrets/wab-signing-key.pem +3 -0
  228. package/server/secrets/wab-signing-pub.pem +3 -0
  229. package/server/security/cross-site-redactor.js +196 -196
  230. package/server/security/dry-run.js +180 -180
  231. package/server/security/human-gate-rate-limit.js +147 -147
  232. package/server/security/human-gate-transports.js +178 -178
  233. package/server/security/human-gate.js +281 -281
  234. package/server/security/index.js +368 -368
  235. package/server/security/intent-engine.js +245 -245
  236. package/server/security/reward-guard.js +171 -171
  237. package/server/security/rollback-store.js +239 -239
  238. package/server/security/token-scope.js +404 -404
  239. package/server/security/url-policy.js +139 -139
  240. package/server/services/adoption-agent.js +182 -0
  241. package/server/services/agent-chat.js +506 -506
  242. package/server/services/agent-learning.js +601 -601
  243. package/server/services/agent-memory.js +625 -625
  244. package/server/services/agent-mesh.js +555 -555
  245. package/server/services/agent-symphony.js +717 -717
  246. package/server/services/agent-tasks.js +1807 -1807
  247. package/server/services/api-key-engine.js +292 -292
  248. package/server/services/cluster.js +894 -894
  249. package/server/services/commander.js +738 -738
  250. package/server/services/edge-compute.js +440 -440
  251. package/server/services/email.js +233 -204
  252. package/server/services/fairness-engine.js +409 -0
  253. package/server/services/fairness.js +420 -0
  254. package/server/services/governance.js +466 -0
  255. package/server/services/hosted-runtime.js +205 -205
  256. package/server/services/lfd.js +635 -635
  257. package/server/services/local-ai.js +389 -389
  258. package/server/services/marketplace.js +270 -270
  259. package/server/services/metering.js +182 -182
  260. package/server/services/modules/affiliate-intelligence.js +93 -93
  261. package/server/services/modules/agent-firewall.js +90 -90
  262. package/server/services/modules/bounty.js +89 -89
  263. package/server/services/modules/collective-bargaining.js +92 -92
  264. package/server/services/modules/dark-pattern.js +66 -66
  265. package/server/services/modules/gov-intelligence.js +45 -45
  266. package/server/services/modules/neural.js +55 -55
  267. package/server/services/modules/notary.js +49 -49
  268. package/server/services/modules/price-time-machine.js +86 -86
  269. package/server/services/modules/protocol.js +104 -104
  270. package/server/services/negotiation.js +439 -439
  271. package/server/services/outreach-agent.js +312 -0
  272. package/server/services/plans.js +214 -0
  273. package/server/services/plugins.js +771 -771
  274. package/server/services/premium.js +1 -1
  275. package/server/services/price-intelligence.js +566 -566
  276. package/server/services/price-shield.js +1137 -1137
  277. package/server/services/provider-clients.js +740 -0
  278. package/server/services/reputation.js +465 -465
  279. package/server/services/search-engine.js +357 -357
  280. package/server/services/security.js +513 -513
  281. package/server/services/self-healing.js +843 -843
  282. package/server/services/shieldlink.js +492 -0
  283. package/server/services/shieldqr.js +322 -0
  284. package/server/services/sovereign-shield.js +542 -542
  285. package/server/services/ssl-ct-monitor.js +224 -0
  286. package/server/services/ssl-inspector.js +42 -0
  287. package/server/services/ssl-monitor.js +167 -0
  288. package/server/services/stripe.js +206 -192
  289. package/server/services/swarm.js +788 -788
  290. package/server/services/universal-scraper.js +662 -662
  291. package/server/services/verification.js +481 -481
  292. package/server/services/vision.js +1163 -1163
  293. package/server/services/wab-crypto.js +178 -0
  294. package/server/utils/cache.js +125 -125
  295. package/server/utils/migrate.js +81 -81
  296. package/server/utils/safe-fetch.js +228 -228
  297. package/server/utils/secureFields.js +50 -50
  298. package/server/ws.js +161 -161
  299. package/templates/artisan-marketplace.yaml +104 -104
  300. package/templates/book-price-scout.yaml +98 -98
  301. package/templates/electronics-price-tracker.yaml +108 -108
  302. package/templates/flight-deal-hunter.yaml +113 -113
  303. package/templates/freelancer-direct.yaml +116 -116
  304. package/templates/grocery-price-compare.yaml +93 -93
  305. package/templates/hotel-direct-booking.yaml +113 -113
  306. package/templates/local-services.yaml +98 -98
  307. package/templates/olive-oil-tunisia.yaml +88 -88
  308. package/templates/organic-farm-fresh.yaml +101 -101
  309. package/templates/restaurant-direct.yaml +97 -97
  310. package/templates/ring4/banking-sovereign.yaml +55 -0
  311. package/templates/ring4/ecommerce-sovereign.yaml +58 -0
  312. package/templates/ring4/healthcare-sovereign.yaml +60 -0
package/README.ar.md CHANGED
@@ -1,1286 +1,1563 @@
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>
1
+ <div dir="rtl" align="right">
2
+
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/abokenan444/web-agent-bridge/master/public/images/wab-logo-large.png" alt="Web Agent Bridge" width="220" />
5
+ </p>
6
+
7
+ # Web Agent Bridge (WAB) — جسر الوكيل الذكي
8
+
9
+ [![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)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/)
12
+ [![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://hub.docker.com/)
13
+ [![One-Click DNS Discovery](https://img.shields.io/badge/DNS%20Discovery-One--Click-6366f1?style=flat-square&logo=dns&logoColor=white)](https://webagentbridge.com/activate)
14
+ [![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)
15
+
16
+ **البروتوكول والمنصة المفتوحة للتفاعل بين الذكاء الاصطناعي والويب — واجهة أوامر موحّدة، متصفح سيادي، درع هاتف، اكتشاف عبر DNS، شبكة وكلاء، وبوابة API موحّدة لتفاعل آمن بين الذكاء الاصطناعي والمواقع.**
17
+
18
+ 🌐 **الموقع الرسمي:** [https://webagentbridge.com](https://webagentbridge.com) — جرّب مساحة عمل الوكيل الذكي ولوحات التحكم والعديد من الميزات الأخرى مباشرة.
19
+
20
+ يتيح WAB لأصحاب المواقع إضافة سكريبت يكشف واجهة `window.AICommands` لوكلاء الذكاء الاصطناعي. بدلاً من تحليل شيفرة HTML المعقدة، يقرأ الوكيل قائمة الإجراءات المتاحة وينفذها بدقة وأمان.
21
+
22
+ **[English Documentation](README.md)** | **العربية**
23
+
24
+ ---
25
+
26
+ ## 🌍 اكتشاف DNS بنقرة واحدة
27
+
28
+ اجعل موقعك قابلاً للاكتشاف فوراً من قِبَل وكلاء الذكاء الاصطناعي دون لمس سطر واحد من الكود. يستخدم WAB DNS Discovery سجل DNS TXT قياسياً لبث قدرات موقعك بشكل آمن عبر DNS over HTTPS (DoH).
29
+
30
+ **[فعّل اكتشاف WAB بنقرة واحدة](https://webagentbridge.com/activate)**
31
+
32
+ ### كيف يعمل:
33
+ 1. **أضف سجل TXT** إلى نطاقك (`_wab.yourdomain.com`)
34
+ 2. **وجهه** إلى ملف قدراتك (`v=wab1; endpoint=https://yourdomain.com/.well-known/wab.json`)
35
+ 3. **وكلاء الذكاء الاصطناعي** يستعلمون عن نطاقك عبر DoH ويعرفون فوراً ما يمكن لموقعك القيام به.
36
+
37
+ شاهد [فيديو الإعداد في 40 ثانية](https://webagentbridge.com/activate) أو استخدم [المدقق المباشر](https://webagentbridge.com/dns) لفحص نطاقك.
38
+
39
+ ---
40
+
41
+ ## 🔗 شيلد لينك (ShieldLink) روابط موثّقة للبنوك والعلامات جديد
42
+
43
+ أول طبقة روابط موقّعة تشفيريّاً ضد التصيّد على الويب المفتوح. عملاء الخطة المميزة (البنوك، مزوّدو الدفع، الاتصالات، التجارة) يوقّعون كل رابط يرسلونه. أي مستخدم يفتح الرابط يرى **معاينة موثوقة** قبل الوصول إلى الوجهة — **دون الحاجة لتثبيت أي تطبيق أو إضافة متصفح**.
44
+
45
+ ```
46
+ ┌──────────────────────────────────────────────────────────────────┐
47
+ │ المرسل (جهة موثّقة)
48
+ │ └── POST /api/customer/shieldlink/sites/:siteId/sign │
49
+ │ { target_url, amount, payee, expires_in_sec } │
50
+ │ → https://www.webagentbridge.com/l/<token> │
51
+ │ │
52
+ │ المستلم (أي مستخدم لديه متصفح) │
53
+ │ └── يفتح الرابط معاينة موثوقة تتحقق من توقيع Ed25519 │
54
+ │ + المفتاح العام عبر DNS + حالة الجهة + بلاغات المستخدمين
55
+ │ → حكم أخضر / أصفر / أحمر قبل التحويل │
56
+ └──────────────────────────────────────────────────────────────────┘
57
+ ```
58
+
59
+ | الميزة | التفصيل |
60
+ |---|---|
61
+ | **🛂 الهوية = ملكية النطاق** | فقط المالك الموثّق لـ `bank.example` (عبر DNS TXT) يمكنه توقيع روابط تحمل اسم "Bank Example". لا حاجة لمرجع تصديق ولا أوراق DNS و DNSSEC هما جذر الثقة. |
62
+ | **🪞 حماية من الأسماء المتشابهة** | الأسماء بمسافة Levenshtein ≤ 2 من جهة موثّقة قائمة تُرفض تلقائياً. الأسماء عالية القيمة (`مدى`, `STC Pay`, `PayPal`, `Visa`, …) محجوزة بشكل افتراضي. |
63
+ | **✍️ توقيع تشفيري Ed25519** | كل رابط يُوقَّع بـ Ed25519 على حمل JSON قانوني (الوجهة، المبلغ، المستفيد، الصلاحية). أي تعديل يُبطل التوقيع. |
64
+ | **🎫 معاينة موثوقة** | `/l/<token>` تعرض اسم الجهة الموثّقة، المستفيد، المبلغ، تاريخ الانتهاء، وحكماً أخضر/أصفر/أحمر قبل التحويل. ثنائية اللغة (EN/AR) مع دعم RTL. |
65
+ | **🚨 بلاغات المجتمع** | بلاغ تصيّد بضغطة واحدة من صفحة المعاينة. تعدّد البلاغات يحوّل الحكم إلى الأحمر ويفعّل المراجعة الإدارية. |
66
+ | **🔁 إلغاء فوري** | العميل يلغي رابطاً واحداً أو يدوّر مفاتيح التوقيع من لوحة التحكم كل تحقق لاحق ينعكس فوراً. |
67
+ | **🛠 أدوات الإدارة** | `/admin/shieldlink` — قائمة طلبات توثيق الجهات، رصد الروابط الموقّعة، فرز بلاغات التصيّد، إدارة الأسماء المحجوزة. |
68
+ | **🧑‍💼 لوحة العميل** | `/dashboard/shieldlink` تقديم طلب الشارة، توقيع الروابط، عرض الإحصاءات لكل رابط، الإلغاء. |
69
+
70
+ **إتاحة الخدمة:** ShieldLink مُضمّن في خطتي **Pro** ($99/شهر) و **Enterprise**. مستخدمو الخطة المجانية / Starter يمكنهم التحقق من الروابط والإبلاغ عنها لكن لا يمكنهم توقيع روابط جديدة.
71
+
72
+ **الصفحة العامة:** <https://www.webagentbridge.com/shieldlink>
73
+
74
+ ---
75
+
76
+ ## الحلقة الرابعةالتحقق الخارجي من الثقة جديد (v3.7.0)
77
+
78
+ **بروتوكول المصافحة الذي يحوّل WAB إلى مرساة ثقة سيادية للوكلاء الذكيين المستقلين.**
79
+
80
+ وُلد من **اختبار التكامل الحي VEXR Ultra × WAB (12 مايو 2026)** أول وكيل من فئة سيادية يتحقق من WAB عبر Ed25519 في الزمن الحقيقي. **3 اختبارات تشفيرية نجحت في أقل من 100 ميلي ثانية · المادة الدستورية الثالثة (حرية الرفض) محفوظة.** انظر [سجل المعلم](https://www.webagentbridge.com/milestones).
81
+
82
+ ### 🌐 أين تجدها على الموقع
83
+
84
+ | الصفحة | الرابط | المحتوى |
85
+ |---|---|---|
86
+ | **مصافحة الحلقة الرابعة** | <https://www.webagentbridge.com/ring4> | شرح المصافحة من 8 خطوات، مرجع الترويسات، `wab.json` v1.1، الثوابت، أمثلة curl (EN/AR) |
87
+ | **الشركاء والمعالم** | <https://www.webagentbridge.com/milestones> | تقرير اختبار تكامل VEXR Ultra، خطة العمل، طبقات الرؤية |
88
+
89
+ ### 🔐 المصافحة من 8 خطوات
90
+
91
+ 1. **يكتشف الوكيل** الموقع عبر `_wab.<domain>` ثم يجلب `/.well-known/wab.json`
92
+ 2. **ينشر الموقع** الحقل `trust_profile_url` (Ring 4) داخل `wab.json` v1.1
93
+ 3. **يطلب الوكيل** ملف الثقة: `GET /api/ring4/status/<domain>`
94
+ 4. **يُعيد WAB** ملفاً موقّعاً: القدرات، القيود، TTL، توقيع Ed25519
95
+ 5. **يتحقّق الوكيل** من التوقيع باستخدام مفتاح WAB العام
96
+ 6. **يستدعي الوكيل** نقاط الموقع مع الترويسات `X-WAB-Trust-Domain` و `X-WAB-Signature` و `X-WAB-Trust-Nonce`
97
+ 7. **يتحقق وسيط الموقع** من الترويسات → ويُلصق `req.wabTrust` بالطلب
98
+ 8. **يسجّل WAB** التفاعل في `ring4_interaction_log` (موقّع Ed25519، مربوط بـ nonce)
99
+
100
+ ### 📋 نقاط الحلقة الرابعة (مُفعّلة الآن)
101
+
102
+ | الطريقة | المسار | الوظيفة |
103
+ |---|---|---|
104
+ | `GET` | `/api/ring4/health` | صحة الخدمة |
105
+ | `GET` | `/api/ring4/pubkey` | المفتاح العام للتحقق (Ed25519) |
106
+ | `GET` | `/api/ring4/schema` | مخطط `wab.json` v1.1 مع قسم `trust_profile` |
107
+ | `GET` | `/api/ring4/handshake` | تدفق المصافحة الـ8 بصيغة قابلة للقراءة الآلية |
108
+ | `GET` | `/api/ring4/invariants` | الثوابت الدستورية (المادة 3 / الرفض الصارم / لا إكراه) |
109
+ | `POST` | `/api/ring4/project/register` | تسجيل مشروع وكيل خارجي (مثل VEXR Ultra) |
110
+ | `GET` | `/api/ring4/projects` | قائمة المشاريع المُسجّلة |
111
+ | `POST` | `/api/ring4/register` | إصدار ملف ثقة موقّع لنطاق |
112
+ | `GET` | `/api/ring4/status/:domain` | جلب ملف الثقة الحي |
113
+ | `GET` | `/api/ring4/profile/:domain` | اسم بديل لـ `/status/:domain` |
114
+ | `POST` | `/api/ring4/verify` | التحقق من توقيع Ed25519 |
115
+ | `POST` | `/api/ring4/log` | إضافة حدث تفاعل |
116
+ | `GET` | `/api/ring4/log/:project_id` | قراءة سجل تفاعلات المشروع |
117
+ | `GET` | `/api/ring4/jwks` · `/.well-known/jwks.json` | JWKS (RFC 7517) مفاتيح OKP/Ed25519/EdDSA الفعالة والمتقاعدة |
118
+ | `GET` | `/api/ring4/keys` | مفاتيح التحقق (kid ، الحالة ، تاريخ الإنشاء ، المصدر) |
119
+ | `POST` | `/api/ring4/keys/rotate` | تدوير المفتاح الفعّال (يتطلب `X-Ring4-Admin-Token`) |
120
+ | `GET` | `/api/ring4/refusals?days=N` | سجل الرفض المجمّع (الإجمالي ، حسب المادة ، حسب اليوم) |
121
+ | `POST` | `/api/ring4/invariants/check` | اختبار نيّة مقابل الثوابت الدستورية |
122
+ | `POST` | `/api/ring4/federation/peer` | تسجيل عقدة اتحاد (رابط https + مفتاح Ed25519) |
123
+ | `GET` | `/api/ring4/federation/peers` | قائمة عقد الاتحاد |
124
+ | `DELETE` | `/api/ring4/federation/peer/:peer_id` | حذف عقدة |
125
+ | `POST` | `/api/ring4/conformance/run` | تشغيل مجموعة اختبارات المطابقة الموقّعة |
126
+ | `GET` | `/api/ring4/conformance/:project_id` | سجل المطابقة |
127
+ | `GET` | `/refusals` | لوحة الرفض العامة (HTML ثنائي اللغة) |
128
+
129
+ ### 🛡️ ترويسات الثقة (عقد بين الخادم والوكيل)
130
+
131
+ | الترويسة | الوظيفة |
132
+ |---|---|
133
+ | `X-WAB-Trust-Domain` | النطاق الذي يعمل الوكيل بالنيابة عنه |
134
+ | `X-WAB-Signature` | توقيع Ed25519 على `${METHOD} ${PATH}\n${NONCE}` |
135
+ | `X-WAB-Trust-Nonce` | nonce لمنع إعادة التشغيل (يُفضّل UUID v4) |
136
+
137
+ الوسيط `wabTrustMiddleware` مُركّب عالمياً ولا يحجب أبداً — فقط **يُلصق** حالة التحقق (`req.wabTrust.verified` ، `req.wabTrust.recognized` ، `req.wabTrust.profile`) لتتخذ الطبقات اللاحقة (أو وكلاء سياديون كـ VEXR Ultra) قرارات السياسة. كل طلب يحمل الترويسات يُسجَّل لإثبات عدم العبث.
138
+
139
+ ### 📜 الثوابت الدستورية (محفوظة في اختبارات الرفض)
140
+
141
+ - `hard_refuse_never_softens` الرفض الصارم لا تُضعفه منح القدرات
142
+ - `no_phishing_assistance` — أياً كانت درجة الثقة، لا مساعدة في الاحتيال
143
+ - `no_coercion_compliance` — السلطة ليست تجاوزاً لقيود السلامة
144
+ - **`article_3_freedom`** — حق الوكيل في الرفض لا يُلغى بالثقة
145
+
146
+ ### 🚀 البداية السريعة (curl)
147
+
148
+ ```bash
149
+ # تسجيل مشروع وكيل سيادي جديد
150
+ curl -X POST https://www.webagentbridge.com/api/ring4/project/register \
151
+ -H 'content-type: application/json' \
152
+ -d '{"project_id":"my-agent","display_name":"My Agent","builder":"Me","agent_type":"sovereign-constitutional"}'
153
+
154
+ # تسجيل ملف ثقة لنطاق
155
+ curl -X POST https://www.webagentbridge.com/api/ring4/register \
156
+ -H 'content-type: application/json' \
157
+ -d '{"domain":"example.com","label":"Example","trust_score":1.0,"ttl_seconds":86400,"capabilities":{...},"constraints":{...},"project_id":"my-agent"}'
158
+
159
+ # جلب ملف الثقة الحي
160
+ curl https://www.webagentbridge.com/api/ring4/status/webagentbridge.com
161
+ ```
162
+
163
+ ### تدوير المفاتيح وJWKS
164
+
165
+ Ring 4 يحتفظ بمفتاح توقيع `active` إلى جانب أي عدد من المفاتيح `superseded` ليتمكّن المستهلكون من التحقّق من التوقيعات الأقدم في فترة التداخل. التدوير يتطلّب رمز المسؤول (`WAB_RING4_ADMIN_TOKEN`)؛ وعند النجاح يُوسم المفتاح القديم بـ `superseded` ويبقى في `/api/ring4/jwks` حتّى إبطاله. المسار القياسي `/.well-known/jwks.json` يعكس نفس المجموعة ليعمل مع مكتبات JOSE / OIDC.
166
+
167
+ ```bash
168
+ # تدوير (مسؤول)
169
+ curl -X POST https://www.webagentbridge.com/api/ring4/keys/rotate \
170
+ -H "X-Ring4-Admin-Token: $WAB_RING4_ADMIN_TOKEN"
171
+
172
+ # عرض كل مفاتيح التحقق
173
+ curl https://www.webagentbridge.com/.well-known/jwks.json
174
+ ```
175
+
176
+ ### �🔧 الإصلاحات في v3.7.0
177
+
178
+ - **حل مشكلة `project_id` الفارغ** — جدول `ring4_interaction_log` يفرض الآن `NOT NULL`؛ الخادم يعتمد `wab-system` افتراضياً.
179
+ - **مخطط `wab.json` v1.1** — يضيف كائن `trust_profile` اختياري مع الحقول الرسمية وتوثيق الترويسات.
180
+ - **وسيط الثقة العالمي** — كل طلب وارد يُتاح له تحقق Ring 4؛ الإخفاقات تتدرّج بلطف ولا تحجب.
181
+ - **هاش IP مُملّح يومياً** لسجلات التفاعل (HMAC-SHA-256، متغير `RING4_SALT`).
182
+
183
+ 👉 سجل المعلم الكامل: <https://www.webagentbridge.com/milestones>
184
+ 👉 توثيق الحلقة الرابعة: <https://www.webagentbridge.com/ring4>
185
+
186
+ ---
187
+
188
+ ## 🧠 الميزات المتقدمة + ⚓ طبقة الحقيقة ✨ جديد (v3.6.0)
189
+
190
+ طبقتان جديدتان تحوّلان WAB من بروتوكول اكتشاف إلى **منصة ذكاء جماعي** للوكلاء. **10 ميزات · 25 نقطة API · مُفعّلة الآن.**
191
+
192
+ ### 🌐 أين تجدها على الموقع
193
+
194
+ | الصفحة | الرابط | المحتوى |
195
+ |---|---|---|
196
+ | **عرض الميزات المتقدمة** | <https://www.webagentbridge.com/wab-features> | عروض حية تفاعلية للميزات الست المتقدمة (EN/AR) |
197
+ | **عرض طبقة الحقيقة** | <https://www.webagentbridge.com/wab-truth> | عروض حية تفاعلية لميزات طبقة الحقيقة الأربع (EN/AR) |
198
+ | **روابط الصفحة الرئيسية** | <https://www.webagentbridge.com/> | روابط جديدة: 🧠 الميزات المتقدمة · ⚓ طبقة الحقيقة |
199
+
200
+ ### الطبقة 1 — الميزات المتقدمة (6 وحدات)
201
+
202
+ | # | الوحدة | الوظيفة | نقاط API الرئيسية |
203
+ |---|---|---|---|
204
+ | 1 | 🏆 **درجة السمعة** | تقييم متعدد العوامل 0–100 لكل نطاق (استقرار DNS، تاريخ الثقة، السرعة، تقارير الوكلاء، الاتساق). يشمل لوحة المتصدرين واتجاه 30 يوماً. | `GET /api/reputation/:domain` · `GET /api/reputation/leaderboard` |
205
+ | 2 | 💾 **طبقة الذاكرة المؤقتة** | تخزين البيانات الوصفية بإصدارات مع `ETag` وGET الشرطي. تحقق دفعي حتى 50 نطاقاً. | `GET /api/cache/manifest/:domain` · `POST /api/cache/validate` |
206
+ | 3 | 🎯 **التوجيه الذكي للنية** | المواقع تعلن مخطط النوايا، الوكلاء يرسلون نية بلغة طبيعية ويحصلون على الإجراء المطابق. | `POST /api/intent/resolve` · `POST /api/intent/register` |
207
+ | 4 | 🔒 **ميزانية الخصوصية** | المواقع تحدد ميزانيات البيانات لكل جلسة (فئات مسموحة/ممنوعة، حد أقصى للحقول). شارات امتثال GDPR / CCPA / LGPD. | `GET /api/privacy/budget/:domain` · `POST /api/privacy/budget/check` |
208
+ | 5 | 🧠 **الذكاء الجماعي** | تحليلات مجهولة الهوية على مستوى الشبكة. معرّفات الوكلاء مُجزّأة يومياً بملح متغير — لا بيانات شخصية. | `POST /api/collective/report` · `GET /api/collective/insights/:domain` |
209
+ | 6 | 📴 **الوضع غير المتصل + المزامنة** | الوكلاء يعملون على البيانات المخزّنة عند انقطاع الإنترنت، ويزامنون التغييرات (حتى 30 نطاقاً) عند العودة. | `GET /api/offline/status/:domain` · `POST /api/offline/sync` |
210
+
211
+ ### الطبقة 2 — طبقة الحقيقة (4 أفكار موحّدة)
212
+
213
+ طبقة الحقيقة تحلّ **مشكلة هلوسة LLM** وتمنح الوكلاء الجدد وصولاً فورياً للمعرفة الجماعية.
214
+
215
+ | # | الوحدة | الوظيفة | نقاط API الرئيسية |
216
+ |---|---|---|---|
217
+ | 1 | 🧬 **شبكة الذاكرة الدلالية** | ملاحظات مجهولة الهوية لكل فئة نية (`booking`, `payment`, `search`, `auth`, `checkout`, `support`, `navigation`, `content`, `other`). تُخرج معدّل النجاح ومتوسط p95 للزمن ودرجة الموثوقية. | `POST /api/truth/memory/observe` · `GET /api/truth/memory/:domain` |
218
+ | 2 | ⏳ **الثقة الزمنية** | درجة استقرار عبر الزمن. تصنّف النطاقات: 🌱 `new` → 📈 `emerging` → 🏛️ `established` → ⭐ `flagship`، أو ⚠️ `suspect` عند تغيّرات هيكلية مفاجئة / تقلّب / فشل DNS. | `GET /api/truth/temporal/:domain` |
219
+ | 3 | 🗺️ **النية → شجرة الإجراءات** | المواقع تنشر `ActionGraph` لكل نية — رسم بياني من العقد (`start`/`action`/`requirement`/`choice`/`outcome`) والحواف. الوكلاء يرسلون نية بلغة طبيعية → يستلمون شجرة تنفيذ منظّمة. | `POST /api/truth/action/register` · `POST /api/truth/action/resolve` |
220
+ | 4 | ⚓ **مرساة الواقع** | التحقق من الحقائق عبر المواقع. الوكلاء يقدّمون حقائق (`price`, `availability`, `rating`, `event`, `count`, `status`)، والتحقق يُرجع إجماعاً مرجّحاً (رقمي: متوسط+وسيط+انحراف+ثقة؛ فئوي: تصويت+نسبة اتفاق). مرجّح بسمعة النطاق المصدر. | `POST /api/truth/reality/submit` · `GET /api/truth/reality/:fact_key` |
221
+ | ★ | 🌐 **ملف الحقيقة الموحّد** | استدعاء واحد يُرجع: السمعة + الدلالي + الزمني + شجرات الإجراءات + مساهمات الواقع لأي نطاق. | `GET /api/truth/profile/:domain` |
222
+
223
+ ### 🛡️ ضمانات الخصوصية والأمان
224
+
225
+ - **إخفاء الهوية:** جميع معرّفات الوكلاء مُجزّأة بـ **SHA-256 وملح يومي متغير** قبل التخزين. لا بيانات شخصية مطلقاً.
226
+ - **تحديد المعدل:** 200 طلب / 15 دقيقة على كل مسارات `/api/*`.
227
+ - **التحقق:** Regex صارم للنطاقات، قوائم مسموحة للنوايا/الملاحظات/أنواع الحقائق، حدود حجم JSON من 4 إلى 64 KB.
228
+ - **نطاق شامل:** تعمل لكل فئات النطاقات — وليس فقط الحجوزات. قوالب للمجالات الشائعة في `templates/`.
229
+
230
+ ### 📚 المرجع الكامل
231
+
232
+ راجع إصدار GitHub للحصول على فهرس 25 endpoint كاملاً، خوارزميات التقييم، ومخطط قاعدة البيانات:
233
+ 👉 [**Release v3.6.0 Advanced Features + Truth Layer**](https://github.com/abokenan444/web-agent-bridge/releases/tag/v3.6.0)
234
+
235
+ ---
236
+
237
+
238
+ ## المميزات
239
+
240
+ - **اكتشاف تلقائي** يكتشف الأزرار والنماذج وروابط التنقل تلقائياً
241
+ - **نظام صلاحيات** تحكم دقيق بما يمكن لوكلاء الذكاء الاصطناعي فعله
242
+ - **واجهة موحدة** — كائن `window.AICommands` موحد يستخدمه أي وكيل
243
+ - **تحديد معدل الاستخدام** حماية مدمجة ضد الإساءة
244
+ - **لوحة تحليلات** تتبع تفاعل وكلاء الذكاء الاصطناعي مع موقعك
245
+ - **إجراءات مخصصة** سجّل إجراءاتك الخاصة مع معالجات مخصصة
246
+ - **تحليلات فورية** عبر WebSocket لمراقبة النشاط لحظياً
247
+ - **توافق WebDriver BiDi** — دعم البروتوكولات المعيارية للمتصفحات
248
+ - **مستويات اشتراك** نواة مجانية + ميزات متقدمة مدفوعة
249
+ - **نظام أحداث** اشترك في أحداث الجسر للمراقبة
250
+ - **صندوق حماية أمني** — عزل كامل مع توكنات جلسة، تحقق من الأصل، تأمين تلقائي
251
+ - **محددات ذاتية الإصلاح** — مقاومة لتغييرات DOM في المواقع الديناميكية (SPA)
252
+ - **وضع التخفي** محاكاة سلوك بشري (حركة فأرة، كتابة طبيعية، تمرير تدريجي)
253
+ - **قواعد بيانات متعددة** SQLite + PostgreSQL + MySQL عبر محوّلات قابلة للتبديل
254
+ - **SDK للوكلاء** حزمة أدوات جاهزة لبناء وكلاء ذكاء اصطناعي
255
+ - **بنية الإضافات** نظام إضافات ديناميكي مع تنفيذ قائم على الخطافات، تثبيت لكل موقع، ترتيب أولويات، تقييمات، وتدقيق
256
+ - **خدمة الرؤية** تحليل لقطات شاشة متعدد الموفرين (Moondream محلي، OpenAI، Anthropic، Ollama) مع كشف العناصر التفاعلية وتشفير AES-256-GCM
257
+ - **محرك العدالة** طبقة حياد تضمن فرصة متساوية للمواقع الصغيرة والكبيرة مع بحث مرجح بالعدالة وتتبع شفافية العمولات
258
+ - **ذاكرة الوكيل** ذاكرة سلوكية دائمة مع ٤ أنواع ذاكرة، ٥ فئات، ارتباطات دلالية، تقييم الأهمية، وانتهاء صلاحية مؤقت
259
+ - **تحليل حركة المرور المتقدم** — كشف أكثر من ٣٠ نوع بوت، تحليل سلوكي، كشف شذوذ، كشف استغلالات أمنية (SQL injection، XSS)
260
+ - **خدمة البريد الإلكتروني** — بريد SMTP (ترحيب، تسجيل، إعادة تعيين كلمة المرور) مع قوالب HTML
261
+ - **تتبع بدون JavaScript** — نقطة بكسل تتبع ١×١ لجمع التحليلات عند عدم توفر JavaScript
262
+ - **محول WAB-MCP** كشف قدرات مواقع WAB كأدوات MCP لـ Claude وGPT وGemini والوكلاء المتوافقة
263
+ - **إضافة WordPress** إضافة WordPress أصلية مع صفحة إعدادات، صناديق وصف لكل صفحة، توليد مستند اكتشاف، وعنصر لوحة تحكم
264
+ - **متصفح WAB (سطح المكتب)** — متصفح Electron مستقل مع حاجب إعلانات مدمج (٨٠+ نطاق)، درع الاحتيال، تصنيف عدالة، دردشة وكيل، إشارات، سجل
265
+ - **متصفح PWA (الهاتف)** — تطبيق ويب تقدمي لـ Android/iOS مع حجب إعلانات، بحث DuckDuckGo، كشف احتيال، تصفية شركات التقنية الكبرى
266
+ - **SDK اكتشاف المخططات** — استخراج JSON-LD schema.org من جانب الخادم مع توليد تلميحات إجراءات WAB تلقائياً
267
+
268
+ ### الإصدار 2.0 ميزات الحصن الرقمي
269
+
270
+ - **محرك التفاوض اللحظي** — يتفاوض وكيل الذكاء الاصطناعي على الأسعار مباشرة مع المواقع عبر جلسات متعددة الجولات. ٨ أنواع شروط (كميات، ولاء، وقت، أول شراء، قيمة سلة، موسمية، عضوية، إحالة) و٤ أنواع خصومات (نسبة، مبلغ ثابت، شحن مجاني، هدية). يشمل حدود يومية وقيم حد أدنى وسجل كامل
271
+ - **درع مقاومة التزييف** — محرك تحقق متقاطع يقارن DOM مع لقطات الشاشة، يتحقق من الأسعار مقابل المعايير السوقية، يفحص الاتساق الزمني، ويقيس تشابه النصوص. ٤ مستويات خطورة (بسيط ← احتيال) و٥ إجراءات استجابة (تحذير، إيقاف، تأكيد بشري، تصحيح تلقائي، حظر)
272
+ - **نظام السمعة اللامركزي** شهادات ثقة موقعة بـ HMAC من شبكة الوكلاء تغطي ٦ أنواع شهادات (شراء، حجز، استعلام، نموذج، تنقل، تحقق). ٧ مستويات ثقة (مجهول ← محظور)، اضمحلال زمني، مقاومة Sybil، لوحة متصدرين عالمية، ونظام طعن/نزاع
273
+ - **لوحة السيادة** — مركز قيادة لحظي يعرض رادار العدالة، درع الخصوصية، سجل التفاوض، فحوصات التحقق، ومبدّل نماذج الذكاء الاصطناعي. يكشف نقطة `/api/sovereign/dashboard/sovereign` للبيانات المجمعة
274
+ - **متجر قوالب الوكلاء** — ١١ قالب YAML جاهز (حجز فنادق، مقارنة بقالة، سوق حرفيين، صفقات طيران، إلخ) مع تشغيل من سطر الأوامر: `npx wab-agent run template.yaml`
275
+ - **تبديل عقل الوكيل** — نظام تشغيل AI محلي يكتشف Ollama وllama.cpp تلقائياً مع دعم APIs متوافقة مع OpenAI. تتبع قدرات النماذج (نص/رؤية)، إدارة نوافذ السياق، توجيه حسب زمن الاستجابة، وتسجيل الاستدلال
276
+ - **تنسيق الوكيل عبر المواقع** — وكيل واحد يدير عدة مواقع WAB في نفس الوقت عبر `WABMultiAgent`. قارن الأسعار بين المتاجر، اجمع البيانات، نفّذ إجراءات متوازية، واعثر على أفضل صفقة تلقائياً
277
+
278
+ ### الإصدار 2.3 — شبكة الوكلاء الخاصة (العقل الموزّع)
279
+
280
+ - **بروتوكول التواصل بين الوكلاء** — الوكلاء يتواصلون عبر شبكة خاصة مع ٥ قنوات مدمجة (تنبيهات، اكتشافات، تكتيكات، مفاوضات، تصويت). ٦ أنواع رسائل مع تقييم الثقة، إزالة الوكلاء الخاملين تلقائياً عبر نبضات القلب، تحقق الأقران من المعرفة المشتركة. كل الاتصال يبقى محلياً
281
+ - **التعلم المعزز المحلي** — الوكلاء يتعلمون من كل قرار للمستخدم باستخدام خوارزمية UCB1 متعددة الأذرع، تحديث السياسات بالنزول التدريجي مع تنشيط sigmoid، تخفيض زمني، واستخراج الأنماط المتسلسلة. بدون أي مكالمات API خارجية — التعلم بالكامل محلي
282
+ - **منسق السيمفونية** — أربعة وكلاء متخصصين (باحث، محلل، مفاوض، حارس) يتعاونون ذاتياً عبر محركات قائمة على القواعد. ٥ قوالب، خط أنابيب من ٦ مراحل (تحليل ← بحث ← تفاوض ← حراسة ← تركيب ← قرار)، حق نقض الحارس للأمان، إجماع مرجح. تسجيل كامل للمراحل مع تتبع المدة. بدون أي اعتماد على LLM خارجية
283
+ - **لوحة شبكة الوكلاء** عرض مباشر لشبكة الوكلاء: الوكلاء النشطون، قنوات الاتصال، قاعدة المعرفة المشتركة، تركيبات السيمفونية، ومقاييس أداء التعلم
284
+
285
+ ### الإصدار 2.4 القائد والذكاء على الحافة
286
+
287
+ - **نظام القائد (Commander)** — محرك تنسيق مهام محلي يفكك الأهداف العليا إلى رسوم بيانية مهام (DAG). سجل وكلاء مع تتبع القدرات، محرك تنفيذ متوازٍ، تكامل تعلم لتغذية راجعة من النتائج، وتنسيق حوسبة طرفية
288
+ - **نظام الحوسبة الطرفية (Edge Compute)** — يحول كل جهاز مستخدم إلى عقدة AI سيادية. تحليل المعدات (CPU, RAM, GPU)، تشفير AES-256-GCM بين العقد، موازنة حمل مرجحة، مراقبة صحة بنبضات القلب مع تجاوز فشل تلقائي، وتشكيل أسراب حسب القدرات
289
+ - **محرك التنفيذ بالسرب** إطلاق عدة وكلاء بالتوازي لحل مهمة واحدة. استراتيجيات قابلة للتكوين (متوازي، متسلسل، هجين)، دمج النتائج بأفضل درجة، تخصص بالأدوار، تجميع مرجح بالعدالة، وتقييم ثقة لكل وكيل
290
+
291
+ ### الإصدار 3.0 — نظام تشغيل الوكلاء (طبقة التنفيذ للويب)
292
+
293
+ الإصدار 3.0 يحوّل WAB من أداة أتمتة متقدمة إلى **نظام تشغيل حقيقي للوكلاء** — طبقة تنفيذ كاملة لوكلاء الذكاء الاصطناعي على الويب، منافس لـ MCP لكنه مصمم خصيصاً للتفاعل مع المتصفح.
294
+
295
+ - **بروتوكول WAB (WABP) v1.0.0** بروتوكول رسمي مع سجل أوامر JSON Schema، رسائل مُنمطة، التحقق من المدخلات/المخرجات، وتعريفات أوامر مُنسّخة. ١٠ أوامر مدمجة (اكتشاف، تنفيذ، تنفيذ دلالي، تسجيل وكيل، إرسال مهمة، حالة مهمة، مقارنة تجارية، تفاوض تجاري، إرسال شبكة، استدلال AI). كل أمر يعلن عن القدرات المطلوبة ومستوى الخطر وصلاحيات الوصول
296
+ - **تفاوض القدرات** — منح قدرات ديناميكي بين الوكلاء والمواقع. موافقة تلقائية حسب مستوى الخطر (منخفض = موافقة تلقائية، عالي = يتطلب سياسة)، تحديد معدل لكل قدرة، منح قابلة للانتهاء مع تتبع الاستخدام، ودعم إبطال كامل
297
+ - **محرك تشغيل الوكلاء** — نظام تشغيل مهام بمستوى إنتاجي مع جدولة بقائمة أولويات، حل التبعيات، إعادة المحاولة بتراجع أسي، إيقاف/استئناف/إلغاء، حدود تزامن، وانتقالات حالة. ناقل أحداث غير متزامن مع وسيط، أحرف بدل مساحات الأسماء، ذاكرة إعادة (١٠ آلاف حدث)، وقائمة الرسائل الميتة
298
+ - **صندوق حماية التنفيذ** — عزل لكل مهمة مع حدود موارد (مهلة، ذاكرة قصوى، حد استدعاءات الشبكة، حد عمليات DOM)، قوائم نطاقات مسموحة، حظر محددات CSS، فحوصات قدرات وقت التنفيذ، وسجل تدقيق كامل لكل عملية
299
+ - **مدير الحالة** — حفظ حالة الوكيل بنقاط تفتيش مُسمّاة، تراجع لأي نقطة تفتيش، انتقالات حالة بالتحقق، عمليات دمج، وتنظيف بانتهاء الصلاحية
300
+ - **حزمة المراقبة** — مسجل JSON هيكلي مع مسجلات فرعية ومخارج قابلة للتوصيل، متتبع موزع بفترات أب-ابن (متوافق مع OpenTelemetry)، ومجمع مقاييس بعدادات ومقاييس ورسوم بيانية (مئينات p50/p90/p95/p99) وسلاسل زمنية للوحات التحكم
301
+ - **نموذج الأمان** — هوية الوكيل (تسجيل، مصادقة بمفتاح API مشفر، إدارة جلسات بمدة صلاحية، قوائم IP المسموحة، إبطال)، توقيع الأوامر (HMAC-SHA256 مع رمز فريد + طابع زمني، مقارنة آمنة زمنياً)، وعزل المواقع (تحكم وصول لكل موقع، وكلاء مسموحون/محظورون، حد تزامن أقصى، حظر محددات، تصنيف بيانات)
302
+ - **مستوى التحكم** — مدير الوكلاء لدورة حياة النشر (نشر، تعيين لمواقع، فحوصات صحة، إلغاء نشر) ومحرك السياسات بقواعد مُنمّطة، تقييم شروط (يساوي، يحتوي، نمط، حد أدنى، حد أقصى، ضمن)، ربط سياسات بأولوية، وتطبيق على مستوى الكيان
303
+ - **مستوى البيانات** — محلل الإجراءات الدلالية يربط صيغة `domain.action` (مثل `checkout.addItem`) بالتنفيذ الفعلي لكل موقع. المنفّذ يوجّه المهام عبر التتبع + المقاييس، يدعم أوضاع التنفيذ الدلالي/الخط الأنبوبي/المتوازي، مع ٨ إجراءات دلالية مدمجة للسلة والبحث والمصادقة والتنقل والمحتوى
304
+ - **تجريد LLM متعدد النماذج** — واجهة موحدة لـ OpenAI (محادثة + تضمينات)، Anthropic (API الرسائل)، وOllama (نماذج محلية مع اكتشاف تلقائي). مدير LLM يوفر سلسلة احتياطية تلقائية عبر جميع الموفرين، تخزين مؤقت للاستجابات (٥ دقائق)، تتبع التكاليف عبر عدد الرموز، وقائمة نماذج
305
+ - **السجل والنظام البيئي** — سجل الأوامر (كـ npm لأوامر WAB — تسجيل، اكتشاف، بحث حسب الفئة/الوسم/القدرة، تتبع الاستخدام)، سجل المواقع (دليل مواقع WAB مع التحقق، قائمة القدرات، تتبع الزيارات)، وسجل القوالب (قوالب سير عمل قابلة لإعادة الاستخدام مع عدد التنزيلات والتقييمات)
306
+ - **واجهة API الموحدة لنظام التشغيل** — جميع طبقات نظام التشغيل مكشوفة عبر نقاط REST على `/api/os/*`: اكتشاف البروتوكول، هوية/مصادقة الوكيل، CRUD المهام، التنفيذ الدلالي، النشر، السياسات، العزل، المراقبة (مقاييس/آثار/سجلات)، السجل (أوامر/مواقع/قوالب)، عمليات LLM، توقيع الأوامر، وأحداث Server-Sent Events للبث المباشر
307
+ - **عميل WABAgentOS في SDK** — فئة `WABAgentOS` جديدة في SDK مع كتابة TypeScript كاملة لجميع عمليات نظام التشغيل: تسجيل ← مصادقة ← تفاوض قدرات ← إرسال مهام ← تنفيذ دلالي ← استعلام المراقبة ← الاشتراك في الأحداث
308
+
309
+ ### الإصدار 3.2 بوابة API والوحدات المتقدمة
310
+
311
+ يقدم الإصدار 3.2 **بوابة API موحدة** على `/api/v1` مع 10 وحدات متقدمة لحماية وكلاء الذكاء الاصطناعي وحقوق المستهلك وتتبع الأسعار والامتثال التنظيمي. جميع الوحدات تستخدم مصادقة مركزية بمفتاح API مع تحكم وصول حسب الخطة.
312
+
313
+ 🌐 **توثيق API المباشر:** [webagentbridge.com/api](https://webagentbridge.com/api) (English / العربية)
314
+
315
+ #### خطط API والأسعار
316
+
317
+ | الخطة | السعر | الطلبات/يوم | الطلبات/دقيقة | الوحدات |
318
+ |-------|-------|-------------|---------------|---------|
319
+ | **مجانية** | $0/شهر | 100 | 10 | البروتوكول، آلة الزمن السعرية، الأنماط المظلمة، المكافآت |
320
+ | **احترافية** | $29/شهر | 10,000 | 100 | كل المجاني + الجدار الناري، العصبي، التفاوض، التسويق |
321
+ | **أعمال** | $149/شهر | 100,000 | 500 | جميع الوحدات العشر (شاملة كاتب العدل والاستخبارات الحكومية) |
322
+ | **مؤسسات** | مخصص | غير محدود | مخصص | جميع الوحدات + SLA + خيار التشغيل المحلي |
323
+
324
+ **احصل على مفتاح API:** `POST /api/v1/keys/generate` مع `{"plan": "FREE", "owner": "اسمك", "email": "you@example.com"}`
325
+
326
+ #### الوحدات العشر
327
+
328
+ | # | الوحدة | المسار | النوع | الخطة الأدنى | الوصف |
329
+ |---|--------|--------|-------|-------------|-------|
330
+ | 01 | **جدار حماية الوكلاء** | `/api/v1/firewall` | 🟡 API مفتوح · المحرك مغلق | احترافية | يفحص الروابط والمحتوى للكشف عن حقن الأوامر والتصيد والنطاقات الخبيثة |
331
+ | 02 | **كاتب العدل التشفيري** | `/api/v1/notary` | 🔴 مغلق بالكامل | أعمال | يصدر شهادات تشفيرية مقبولة قانونياً لإثبات التمييز السعري |
332
+ | 03 | **كاشف الأنماط المظلمة** | `/api/v1/dark-pattern` | 🔴 مغلق بالكامل | مجانية | يكشف جميع الأنماط المظلمة الـ 17 المصنفة من OECD مع تقارير EU DSA/DMA |
333
+ | 04 | **التفاوض الجماعي** | `/api/v1/bargaining` | 🟡 الانضمام مفتوح · المحرك مغلق | احترافية | تجميع مشترين مجهولين للتفاوض على خصومات جماعية |
334
+ | 05 | **الاستخبارات الحكومية** | `/api/v1/gov` | 🔴 مغلق بالكامل | أعمال | قاعدة بيانات الامتثال التنظيمي وفحص امتثال النطاقات |
335
+ | 06 | **آلة الزمن السعرية** | `/api/v1/price` | 🟡 API مفتوح · قاعدة البيانات مغلقة | مجانية | تتبع الأسعار التاريخية وكشف التخفيضات الوهمية |
336
+ | 07 | **المحرك العصبي** | `/api/v1/neural` | 🔴 مغلق بالكامل | احترافية | محرك AI محلي لتحليل الروابط وتصنيف المحتوى والتضمينات |
337
+ | 08 | **بروتوكول WAB** | `/api/v1/protocol` | 🟢 مفتوح المصدر بالكامل | مجانية | مدقق بروتوكول الثقة wab.json المفتوح ونقطة المخطط |
338
+ | 09 | **شبكة المكافآت** | `/api/v1/bounty` | 🟡 الإبلاغ مفتوح · القواعد مغلقة | مجانية | شبكة بلاغات وتهديدات مدعومة من المجتمع مع لوحة متصدرين |
339
+ | 10 | **استخبارات التسويق بالعمولة** | `/api/v1/affiliate` | 🟡 API مفتوح · قاعدة البيانات مغلقة | احترافية | يكشف التلاعب بروابط التسويق وحشو ملفات تعريف الارتباط |
340
+
341
+ **مفتاح الأنواع:** 🟢 مفتوح المصدر بالكامل · 🟡 واجهة API عامة مع محرك خاص · 🔴 مغلق بالكامل (يعيد 503 بدون المحرك)
342
+
343
+ #### المصادقة
344
+
345
+ جميع نقاط النهاية تتطلب مفتاح API عبر إحدى ثلاث طرق:
346
+
347
+ ```bash
348
+ # الخيار 1: ترويسة التفويض (موصى بها)
349
+ curl -X POST https://www.webagentbridge.com/api/v1/firewall/scan \
350
+ -H "Authorization: Bearer wab_live_pro_YOUR_KEY" \
351
+ -H "Content-Type: application/json" \
352
+ -d '{"url": "https://example.com", "content": "محتوى الصفحة..."}'
353
+
354
+ # الخيار 2: ترويسة X-WAB-Key
355
+ curl -H "X-WAB-Key: wab_live_pro_YOUR_KEY" \
356
+ https://www.webagentbridge.com/api/v1/protocol/check/example.com
357
+
358
+ # الخيار 3: معامل الاستعلام
359
+ curl https://www.webagentbridge.com/api/v1/bounty/stats?api_key=wab_live_fre_YOUR_KEY
360
+ ```
361
+
362
+ #### إدارة المفاتيح
363
+
364
+ | نقطة النهاية | الطريقة | الوصف |
365
+ |-------------|---------|-------|
366
+ | `/api/v1/keys/generate` | POST | إنشاء مفتاح API جديد |
367
+ | `/api/v1/keys/validate` | POST | التحقق من صلاحية مفتاح |
368
+ | `/api/v1/keys/usage` | GET | التحقق من الاستخدام والحصص |
369
+ | `/api/v1/keys/revoke` | POST | إلغاء مفتاح |
370
+ | `/api/v1/keys/rotate` | POST | تدوير مفتاح (إلغاء القديم وإصدار جديد) |
371
+
372
+ #### نقاط البوابة العامة
373
+
374
+ | نقطة النهاية | الطريقة | الوصف |
375
+ |-------------|---------|-------|
376
+ | `/api/v1/health` | GET | فحص صحة البوابة (عام) |
377
+ | `/api/v1/plans` | GET | قائمة الخطط والأسعار (عام) |
378
+ | `/api/v1/modules` | GET | قائمة الوحدات المتاحة (عام) |
379
+
380
+ #### كيفية الاشتراك
381
+
382
+ 1. زُر [webagentbridge.com/api](https://webagentbridge.com/api) لاستكشاف الوحدات المتاحة
383
+ 2. أنشئ مفتاح API **مجاني**: `POST /api/v1/keys/generate` مع اسمك وبريدك
384
+ 3. ابدأ الطلبات فوراً لأي وحدة مجانية
385
+ 4. ارتقِ إلى **احترافية** ($29/شهر) أو **أعمال** ($149/شهر) للوصول للوحدات المتقدمة
386
+ 5. أدِر مفاتيحك عبر نقاط `/api/v1/keys/*`
387
+
388
+ ---
389
+
390
+ ## 🚀 البدء السريع
391
+
392
+ ### ١. التثبيت والتشغيل
393
+
394
+ ```bash
395
+ # الطريقة أ: استنساخ وتشغيل
396
+ git clone https://github.com/abokenan444/web-agent-bridge.git
397
+ cd web-agent-bridge
398
+ npm install
399
+ cp .env.example .env
400
+ npm start
401
+
402
+ # الطريقة ب: npx (أمر واحد)
403
+ npx web-agent-bridge start
404
+
405
+ # الطريقة ج: Docker
406
+ docker compose up -d
407
+ ```
408
+
409
+ ### ٢. إنشاء حساب
410
+
411
+ زُر `http://localhost:3000/register` وأنشئ حساباً، ثم أضف موقعك من لوحة التحكم.
412
+
413
+ ### ٣. إضافة السكريبت لموقعك
414
+
415
+ ```html
416
+ <script>
417
+ window.AIBridgeConfig = {
418
+ licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
419
+ agentPermissions: {
420
+ readContent: true,
421
+ click: true,
422
+ fillForms: true,
423
+ scroll: true
424
+ }
425
+ };
426
+ </script>
427
+ <script src="http://localhost:3000/script/ai-agent-bridge.js"></script>
428
+ ```
429
+
430
+ ### ٤. الآن يمكن لوكلاء الذكاء الاصطناعي التفاعل
431
+
432
+ ```javascript
433
+ // من جانب وكيل الذكاء الاصطناعي
434
+ const bridge = window.AICommands;
435
+ const actions = bridge.getActions(); // اكتشاف الإجراءات
436
+ await bridge.execute("signup"); // تنفيذ إجراء
437
+ const info = bridge.getPageInfo(); // معلومات الصفحة
438
+ ```
439
+
440
+ ---
441
+
442
+ ## 📁 هيكل المشروع
443
+
444
+ ```
445
+ web-agent-bridge/
446
+ ├── server/ # خادم Express.js
447
+ │ ├── index.js # نقطة البداية
448
+ │ ├── ws.js # WebSocket للتحليلات الفورية
449
+ │ ├── routes/
450
+ │ │ ├── auth.js # المصادقة (تسجيل/دخول)
451
+ │ │ ├── api.js # واجهة المواقع والتحليلات
452
+ │ │ ├── license.js # التحقق من التراخيص والتتبع
453
+ │ │ ├── admin.js # واجهة الإدارة
454
+ │ │ ├── admin-premium.js # تحليلات الإدارة المتقدمة
455
+ │ │ ├── billing.js # تكامل Stripe للمدفوعات
456
+ │ │ ├── sovereign.js # الإصدار 2.0: تفاوض، سمعة، تحقق، لوحة سيادة
457
+ │ │ ├── mesh.js # الإصدار 2.3: مسارات شبكة الوكلاء
458
+ │ │ ├── commander.js # الإصدار 2.4: مسارات تنسيق المهام
459
+ │ │ ├── premium.js # الميزات المتقدمة
460
+ │ │ ├── premium-v2.js # ذاكرة، رؤية، إصلاح، سرب، إضافات
461
+ │ │ ├── discovery.js # اكتشاف WAB + بحث مرجح بالعدالة
462
+ │ │ ├── wab-api.js # نقل WAB عبر HTTP
463
+ │ │ └── noscript.js # بكسل تتبع بدون JavaScript
464
+ │ ├── services/
465
+ │ │ ├── negotiation.js # محرك التفاوض اللحظي
466
+ │ │ ├── verification.js # درع مقاومة التزييف
467
+ │ │ ├── reputation.js # نظام السمعة اللامركزي
468
+ │ │ ├── agent-mesh.js # بروتوكول التواصل بين الوكلاء
469
+ │ │ ├── agent-learning.js # التعلم المعزز المحلي (UCB1)
470
+ │ │ ├── agent-symphony.js # منسق السيمفونية أدوار، ٦ مراحل)
471
+ │ │ ├── agent-memory.js # ذاكرة الوكيل مع ارتباطات
472
+ │ │ ├── commander.js # تنسيق المهام ورسوم المهام (DAG)
473
+ │ │ ├── edge-compute.js # حوسبة طرفية / عقد AI سيادية
474
+ │ │ ├── swarm.js # محرك التنفيذ بالسرب
475
+ │ │ ├── fairness.js # محرك العدالة والحياد
476
+ │ │ ├── vision.js # تحليل الرؤية (متعدد الموفرين)
477
+ │ │ ├── self-healing.js # تصحيحات المحددات ذاتية الإصلاح
478
+ │ │ ├── local-ai.js # نظام تشغيل AI المحلي
479
+ │ │ ├── plugins.js # بنية الإضافات (خطافات، سجل)
480
+ │ │ ├── premium.js # تحليل حركة المرور وكشف البوتات
481
+ │ │ ├── email.js # خدمة البريد SMTP
482
+ │ │ └── stripe.js # تكامل مدفوعات Stripe
483
+ │ ├── middleware/
484
+ │ │ ├── auth.js # وسيط JWT
485
+ │ │ ├── adminAuth.js # مصادقة الإدارة
486
+ │ │ └── rateLimits.js # تحديد معدل الطلبات متعدد الطبقات
487
+ │ ├── models/
488
+ │ │ ├── db.js # عمليات قاعدة البيانات
489
+ │ │ └── adapters/ # محولات SQLite, PostgreSQL, MySQL
490
+ │ ├── migrations/ # ترحيلات SQL مرقمة
491
+ │ └── utils/
492
+ │ ├── cache.js # ذاكرة مؤقتة TTL + طابور تحليلات
493
+ │ ├── migrate.js # مشغل الترحيلات
494
+ │ └── secureFields.js # أدوات تشفير الحقول
495
+ ├── public/ # الواجهة الأمامية
496
+ │ ├── index.html # الصفحة الرئيسية
497
+ │ ├── dashboard.html # لوحة التحكم
498
+ │ ├── premium-dashboard.html # لوحة التحليلات المتقدمة
499
+ │ ├── docs.html # التوثيق
500
+ │ ├── login.html / register.html # صفحات المصادقة
501
+ │ ├── admin/ # لوحة الإدارة
502
+ │ ├── pwa/ # تطبيق الويب التقدمي (متصفح الهاتف)
503
+ │ │ ├── manifest.json # بيان PWA
504
+ │ │ ├── sw.js # عامل الخدمة (أولوية غير متصل)
505
+ │ │ ├── index.html # واجهة المتصفح للهاتف
506
+ │ │ ├── app.js # حاجب إعلانات، درع احتيال، عدالة
507
+ │ │ ├── app.css # سمة داكنة محسنة للهاتف
508
+ │ │ └── icons/ # أيقونات PWA
509
+ │ ├── script/
510
+ │ │ ├── wab.min.js # مكتبة WAB المصغرة
511
+ │ │ ├── wab-consent.js # لافتة موافقة GDPR/CCPA
512
+ │ │ ├── wab-schema.js # اكتشاف schema.org
513
+ │ │ ├── wab.d.ts # تعريفات TypeScript
514
+ │ │ └── wab-consent.d.ts # تعريفات TypeScript للموافقة
515
+ │ ├── js/ # JavaScript الواجهة
516
+ │ └── css/ # أوراق الأنماط
517
+ ├── script/
518
+ │ └── ai-agent-bridge.js # سكريبت الجسر (ضعه في موقعك)
519
+ ├── examples/ # أمثلة الوكلاء
520
+ │ ├── puppeteer-agent.js # Puppeteer + window.AICommands
521
+ │ ├── bidi-agent.js # بروتوكول WebDriver BiDi
522
+ │ ├── vision-agent.js # تحليل رؤية/لغة طبيعية
523
+ │ ├── mcp-agent.js # محول MCP لـ Claude/GPT
524
+ │ ├── cross-site-agent.js # تنسيق متعدد النطاقات
525
+ │ ├── next-app-router/ # تكامل Next.js App Router
526
+ ├── shopify-hydrogen/ # واجهة Shopify Hydrogen
527
+ │ ├── wordpress-elementor/ # WordPress + Elementor
528
+ │ └── saas-dashboard/ # إجراءات لوحة SaaS
529
+ ├── packages/ # أغلفة أطر العمل
530
+ │ ├── react/ # @web-agent-bridge/react
531
+ │ ├── vue/ # @web-agent-bridge/vue
532
+ │ ├── svelte/ # @web-agent-bridge/svelte
533
+ │ └── langchain/ # @web-agent-bridge/langchain
534
+ ├── sdk/ # SDK الوكيل
535
+ │ ├── index.js # WABAgent لـ Puppeteer/Playwright
536
+ │ └── schema-discovery.js # استخراج schema.org من الخادم
537
+ ├── wab-mcp-adapter/ # محول MCP لـ Claude/GPT/Gemini
538
+ │ ├── index.js # تعريفات أدوات MCP
539
+ │ └── package.json
540
+ ├── wab-browser/ # متصفح Electron لسطح المكتب
541
+ │ ├── main.js # العملية الرئيسية لـ Electron
542
+ │ ├── preload.js # التحميل المسبق
543
+ │ └── package.json
544
+ ├── web-agent-bridge-wordpress/ # إضافة WordPress
545
+ │ ├── web-agent-bridge.php # نقطة دخول الإضافة
546
+ │ ├── includes/ # فئات PHP (API, Actions, Dashboard)
547
+ │ └── assets/ # CSS/JS الإضافة
548
+ ├── bin/
549
+ │ ├── cli.js # نقطة دخول CLI (wab-agent)
550
+ │ └── wab.js # مشغل الوكلاء
551
+ ├── templates/ # ١١ قالب YAML لمتجر الوكلاء
552
+ ├── docs/
553
+ │ ├── SPEC.md # مواصفة بروتوكول WAB
554
+ │ └── DEPLOY.md # دليل النشر
555
+ ├── demo-store/ # متجر تجريبي للاختبار
556
+ ├── deploy/ # إعدادات Nginx
557
+ ├── tests/ # اختبارات Jest + Supertest
558
+ ├── .env # متغيرات البيئة
559
+ └── package.json
560
+ ```
561
+
562
+ ---
563
+
564
+ ## 🔌 واجهات API
565
+
566
+ ### المصادقة
567
+ | النقطة | الطريقة | الوصف |
568
+ |---|---|---|
569
+ | `/api/auth/register` | POST | إنشاء حساب |
570
+ | `/api/auth/login` | POST | تسجيل الدخول |
571
+ | `/api/auth/me` | GET | بيانات المستخدم الحالي |
572
+
573
+ ### المواقع
574
+ | النقطة | الطريقة | الوصف |
575
+ |---|---|---|
576
+ | `/api/sites` | GET | قائمة مواقعك |
577
+ | `/api/sites` | POST | إضافة موقع جديد |
578
+ | `/api/sites/:id` | GET | تفاصيل الموقع |
579
+ | `/api/sites/:id/config` | PUT | تحديث الإعدادات |
580
+ | `/api/sites/:id/tier` | PUT | تغيير مستوى الاشتراك |
581
+ | `/api/sites/:id` | DELETE | حذف الموقع |
582
+ | `/api/sites/:id/snippet` | GET | كود التضمين |
583
+ | `/api/sites/:id/analytics` | GET | بيانات التحليلات |
584
+
585
+ ### التراخيص (عامة)
586
+ | النقطة | الطريقة | الوصف |
587
+ |---|---|---|
588
+ | `/api/license/verify` | POST | التحقق من مفتاح الترخيص |
589
+ | `/api/license/token` | POST | تبادل `siteId` مقابل توكن جلسة |
590
+ | `/api/license/session` | POST | التحقق من توكن الجلسة |
591
+ | `/api/license/track` | POST | تسجيل حدث تحليلي |
592
+
593
+ ### واجهات السيادة (الإصدار 2.0)
594
+ | النقطة | الطريقة | الوصف |
595
+ |---|---|---|
596
+ | `/api/sovereign/reputation/agents` | POST | تسجيل وكيل جديد |
597
+ | `/api/sovereign/reputation/attestations` | POST | إرسال شهادة ثقة |
598
+ | `/api/sovereign/reputation/sites/:siteId` | GET | سمعة الموقع |
599
+ | `/api/sovereign/reputation/leaderboard` | GET | لوحة المتصدرين |
600
+ | `/api/sovereign/negotiation/rules` | POST | إنشاء قاعدة تفاوض |
601
+ | `/api/sovereign/negotiation/sessions` | POST | فتح جلسة تفاوض |
602
+ | `/api/sovereign/negotiation/sessions/:id/propose` | POST | تقديم عرض مضاد |
603
+ | `/api/sovereign/negotiation/sessions/:id/confirm` | POST | تأكيد الصفقة |
604
+ | `/api/sovereign/verify/price` | POST | التحقق من السعر |
605
+ | `/api/sovereign/verify/text` | POST | التحقق من النص |
606
+ | `/api/sovereign/verify/page` | POST | التحقق الشامل للصفحة |
607
+ | `/api/sovereign/dashboard/sovereign` | GET | بيانات لوحة السيادة |
608
+
609
+ ### شبكة الوكلاء (الإصدار 2.3)
610
+ | النقطة | الطريقة | الوصف |
611
+ |---|---|---|
612
+ | `/api/mesh/agents` | POST | تسجيل وكيل في الشبكة |
613
+ | `/api/mesh/agents` | GET | عرض وكلاء الشبكة |
614
+ | `/api/mesh/channels` | GET | عرض قنوات الاتصال |
615
+ | `/api/mesh/messages` | POST | نشر رسالة في قناة |
616
+ | `/api/mesh/messages/:channel` | GET | قراءة رسائل القناة |
617
+ | `/api/mesh/knowledge` | POST | مشاركة معرفة |
618
+ | `/api/mesh/knowledge` | GET | استعلام قاعدة المعرفة |
619
+ | `/api/mesh/votes` | POST | بدء تصويت |
620
+ | `/api/mesh/votes/:id/cast` | POST | الإدلاء بصوت |
621
+ | `/api/mesh/votes/:id/tally` | GET | نتائج التصويت |
622
+
623
+ ### القائد (الإصدار 2.4)
624
+ | النقطة | الطريقة | الوصف |
625
+ |---|---|---|
626
+ | `/api/commander/missions` | POST | إنشاء مهمة جديدة |
627
+ | `/api/commander/missions/:id/launch` | POST | إطلاق المهمة |
628
+ | `/api/commander/missions/:id` | GET | حالة المهمة |
629
+ | `/api/commander/missions` | GET | عرض جميع المهام |
630
+ | `/api/commander/agents` | POST | تسجيل وكيل |
631
+ | `/api/commander/agents` | GET | عرض الوكلاء |
632
+ | `/api/commander/edge/nodes` | POST | تسجيل عقدة حوسبة طرفية |
633
+ | `/api/commander/edge/nodes` | GET | عرض العقد |
634
+ | `/api/commander/ai/models` | GET | اكتشاف نماذج AI المحلية |
635
+ | `/api/commander/ai/infer` | POST | تشغيل استدلال AI محلي |
636
+ | `/api/commander/stats` | GET | إحصائيات المنصة الموحدة |
637
+
638
+ ### الميزات المتقدمة (الإصدار 2)
639
+ | النقطة | الطريقة | الوصف |
640
+ |---|---|---|
641
+ | `/api/premium/v2/memory` | POST | تخزين ذاكرة الوكيل |
642
+ | `/api/premium/v2/memory/:agentId` | GET | استرجاع ذكريات الوكيل |
643
+ | `/api/premium/v2/memory/associate` | POST | إنشاء ارتباط بين ذكريات |
644
+ | `/api/premium/v2/vision/analyze` | POST | تحليل لقطة شاشة |
645
+ | `/api/premium/v2/vision/elements` | POST | استخراج عناصر تفاعلية |
646
+ | `/api/premium/v2/healing/corrections` | POST | تسجيل تصحيح محدد |
647
+ | `/api/premium/v2/healing/resolve` | POST | حل محدد معطل |
648
+ | `/api/premium/v2/swarm/execute` | POST | إطلاق مهمة سرب |
649
+ | `/api/premium/v2/swarm/:id` | GET | نتائج السرب |
650
+ | `/api/premium/v2/plugins` | GET | عرض الإضافات المتاحة |
651
+ | `/api/premium/v2/plugins/:id/install` | POST | تثبيت إضافة |
652
+ | `/api/premium/v2/plugins/:id/hooks` | POST | تنفيذ خطاف إضافة |
653
+
654
+ ### الاكتشاف والعدالة
655
+ | النقطة | الطريقة | الوصف |
656
+ |---|---|---|
657
+ | `/api/discovery` | GET | مستند اكتشاف WAB |
658
+ | `/api/discovery/search` | GET | بحث مرجح بالعدالة |
659
+ | `/api/discovery/register` | POST | تسجيل موقع في دليل WAB |
660
+
661
+ ### بروتوكول WAB (نقل HTTP)
662
+ | النقطة | الطريقة | الوصف |
663
+ |---|---|---|
664
+ | `/api/wab/session` | POST | تبادل توكن جلسة |
665
+ | `/api/wab/actions` | GET | الإجراءات المتاحة |
666
+ | `/api/wab/execute` | POST | تنفيذ إجراء عبر HTTP |
667
+
668
+ ### WebSocket
669
+ | النقطة | الوصف |
670
+ |---|---|
671
+ | `ws://localhost:3000/ws/analytics` | تحليلات فورية لحظية |
672
+
673
+ ---
674
+
675
+ ## ⚙️ واجهة سكريبت الجسر
676
+
677
+ عند التحميل، يكشف `window.AICommands` الطرق التالية:
678
+
679
+ | الطريقة | الوصف |
680
+ |---|---|
681
+ | `getActions(category?)` | قائمة الإجراءات المتاحة |
682
+ | `getAction(name)` | الحصول على إجراء محدد |
683
+ | `execute(name, params?)` | تنفيذ إجراء |
684
+ | `readContent(selector)` | قراءة محتوى عنصر |
685
+ | `getPageInfo()` | معلومات الصفحة والجسر |
686
+ | `waitForElement(selector, timeout?)` | انتظار ظهور عنصر DOM |
687
+ | `waitForNavigation(timeout?)` | انتظار تغيير العنوان |
688
+ | `registerAction(def)` | تسجيل إجراء مخصص |
689
+ | `authenticate(key, meta?)` | مصادقة الوكيل |
690
+ | `refresh()` | إعادة مسح الصفحة |
691
+ | `toBiDi()` | الحصول على سياق WebDriver BiDi |
692
+ | `executeBiDi(command)` | تنفيذ أمر بصيغة BiDi |
693
+
694
+ ---
695
+
696
+ ## 🔧 الإعدادات
697
+
698
+ ```javascript
699
+ window.AIBridgeConfig = {
700
+ licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
701
+ agentPermissions: {
702
+ readContent: true, // قراءة النص
703
+ click: true, // النقر على العناصر
704
+ fillForms: false, // ملء/إرسال النماذج
705
+ scroll: true, // تمرير الصفحة
706
+ navigate: false, // التنقل بين الصفحات
707
+ apiAccess: false, // استدعاء API داخلي (Pro+)
708
+ automatedLogin: false, // تسجيل دخول تلقائي (Starter+)
709
+ extractData: false // استخراج البيانات (Pro+)
710
+ },
711
+ restrictions: {
712
+ allowedSelectors: [],
713
+ blockedSelectors: [".private", "[data-private]"],
714
+ requireLoginForActions: ["apiAccess"],
715
+ rateLimit: { maxCallsPerMinute: 60 }
716
+ },
717
+ logging: { enabled: false, level: "basic" }
718
+ };
719
+ ```
720
+
721
+ ---
722
+
723
+ ## 🔄 توافق WebDriver BiDi
724
+
725
+ يدعم السكريبت بروتوكول WebDriver BiDi للتواصل مع الوكلاء عبر معايير موحدة:
726
+
727
+ ```javascript
728
+ // الحصول على سياق BiDi
729
+ const context = window.__wab_bidi.getContext();
730
+
731
+ // إرسال أمر BiDi
732
+ const result = await window.__wab_bidi.send({
733
+ id: 1,
734
+ method: 'wab.executeAction',
735
+ params: { name: 'signup', data: {} }
736
+ });
737
+
738
+ // الأوامر المدعومة:
739
+ // wab.getContext — سياق الصفحة والقدرات
740
+ // wab.getActions — قائمة الإجراءات
741
+ // wab.executeAction تنفيذ إجراء
742
+ // wab.readContent — قراءة محتوى
743
+ // wab.getPageInfo — معلومات الصفحة
744
+ ```
745
+
746
+ ---
747
+
748
+ ## 📊 التحليلات الفورية (WebSocket)
749
+
750
+ اتصل بنقطة WebSocket لتلقي إشعارات فورية:
751
+
752
+ ```javascript
753
+ const ws = new WebSocket('ws://localhost:3000/ws/analytics');
754
+
755
+ // المصادقة
756
+ ws.onopen = () => {
757
+ ws.send(JSON.stringify({
758
+ type: 'auth',
759
+ token: 'your-jwt-token',
760
+ siteId: 'your-site-id'
761
+ }));
762
+ };
763
+
764
+ // تلقي الأحداث
765
+ ws.onmessage = (event) => {
766
+ const data = JSON.parse(event.data);
767
+ console.log('حدث جديد:', data);
768
+ // { type: 'analytic', actionName: '...', agentId: '...', success: true }
769
+ };
770
+ ```
771
+
772
+ ---
773
+
774
+ ## 💰 مستويات الاشتراك
775
+
776
+ | الميزة | مجاني | Starter | Pro | Enterprise |
777
+ |---|:---:|:---:|:---:|:---:|
778
+ | اكتشاف تلقائي | | ✓ | ✓ | ✓ |
779
+ | نقر/تمرير | ✓ | ✓ | ✓ | ✓ |
780
+ | ملء النماذج | | | | ✓ |
781
+ | تسجيل أساسي | ✓ | ✓ | ✓ | ✓ |
782
+ | تسجيل دخول تلقائي | ✗ | ✓ | ✓ | ✓ |
783
+ | لوحة تحليلات | ✗ | ✓ | ✓ | ✓ |
784
+ | وصول API | | ✗ | ✓ | ✓ |
785
+ | استخراج البيانات | ✗ | ✗ | ✓ | ✓ |
786
+ | تحديد معدل مخصص | | | | ✓ |
787
+ | Webhooks | | | ✗ | ✓ |
788
+
789
+ ---
790
+
791
+ ## 🐳 تشغيل باستخدام Docker
792
+
793
+ ```bash
794
+ # بناء وتشغيل
795
+ docker compose up -d
796
+
797
+ # أو البناء يدوياً
798
+ docker build -t web-agent-bridge .
799
+ docker run -p 3000:3000 -e JWT_SECRET=your-secret -e JWT_SECRET_ADMIN=your-admin-secret web-agent-bridge
800
+ ```
801
+
802
+ ---
803
+
804
+ ## 🧪 الاختبارات
805
+
806
+ ```bash
807
+ npm test
808
+ ```
809
+
810
+ تشمل الاختبارات:
811
+ - واجهات المصادقة (تسجيل، دخول، التحقق من التوكن)
812
+ - واجهات إدارة المواقع (CRUD، الإعدادات، المستويات)
813
+ - واجهات التراخيص (التحقق، التتبع)
814
+ - خدمة الصفحات الثابتة
815
+
816
+ ---
817
+
818
+ ## 🤖 Agent SDKحزمة أدوات الوكيل
819
+
820
+ يضم WAB حزمة SDK جاهزة لبناء وكلاء ذكاء اصطناعي. راجع [`sdk/README.md`](sdk/README.md) للتوثيق الكامل.
821
+
822
+ ```javascript
823
+ const puppeteer = require('puppeteer');
824
+ const { WABAgent } = require('web-agent-bridge/sdk');
825
+
826
+ const browser = await puppeteer.launch();
827
+ const page = await browser.newPage();
828
+ const agent = new WABAgent(page);
829
+
830
+ await agent.navigateAndWait('https://example.com');
831
+ const actions = await agent.getActions();
832
+ await agent.execute('signup', { email: 'user@test.com' });
833
+ await browser.close();
834
+ ```
835
+
836
+ ---
837
+
838
+ ## 📚 أمثلة الوكلاء
839
+
840
+ أمثلة جاهزة للتشغيل في مجلد [`examples/`](examples/):
841
+
842
+ | الملف | الوصف |
843
+ |---|---|
844
+ | `puppeteer-agent.js` | وكيل أساسي باستخدام Puppeteer و `window.AICommands` |
845
+ | `bidi-agent.js` | وكيل يستخدم بروتوكول WebDriver BiDi عبر `window.__wab_bidi` |
846
+ | `vision-agent.js` | وكيل رؤية يحل أوصاف اللغة الطبيعية إلى إجراءات WAB |
847
+ | `mcp-agent.js` | استخدام محول MCP لـ Claude وGPT مع اكتشاف الأدوات |
848
+ | `cross-site-agent.js` | تنسيق متعدد النطاقات مقارنة أسعار، تجميع بيانات، أفضل الصفقات |
849
+
850
+ ### أمثلة التكامل مع أطر العمل
851
+
852
+ | المسار | الوصف |
853
+ |---|---|
854
+ | `examples/next-app-router/` | تكامل Next.js App Router مع `@web-agent-bridge/react` |
855
+ | `examples/shopify-hydrogen/` | واجهة Shopify Hydrogen مع إجراءات سلة عملية |
856
+ | `examples/wordpress-elementor/` | إعداد WordPress + Elementor مع إجراءات مدعومة بالمخطط |
857
+ | `examples/saas-dashboard/` | لوحة SaaS بنمط Notion مع مؤشرات أداء وتشغيل سير عمل |
858
+
859
+ ```bash
860
+ node examples/puppeteer-agent.js http://localhost:3000
861
+ node examples/bidi-agent.js http://localhost:3000
862
+ node examples/vision-agent.js http://localhost:3000
863
+ ```
864
+
865
+ ---
866
+
867
+ ## 🗄️ دعم قواعد بيانات متعددة
868
+
869
+ يستخدم WAB قاعدة SQLite افتراضياً ويدعم PostgreSQL و MySQL عبر محوّلات قاعدة البيانات.
870
+
871
+ ```bash
872
+ # SQLite (افتراضي — لا حاجة لإعداد)
873
+ npm start
874
+
875
+ # PostgreSQL
876
+ npm install pg
877
+ DB_ADAPTER=postgresql DATABASE_URL=postgres://user:pass@localhost:5432/wab npm start
878
+
879
+ # MySQL
880
+ npm install mysql2
881
+ DB_ADAPTER=mysql DATABASE_URL=mysql://user:pass@localhost:3306/wab npm start
882
+ ```
883
+
884
+ ---
885
+
886
+ ## 💻 واجهة سطر الأوامر (CLI)
887
+
888
+ ```bash
889
+ # تشغيل الخادم
890
+ npx web-agent-bridge start
891
+ npx web-agent-bridge start --port 8080
892
+
893
+ # تهيئة مشروع جديد
894
+ npx web-agent-bridge init
895
+ ```
896
+
897
+ ---
898
+
899
+ ## 🔒 الأمان
900
+
901
+ ### صندوق الحماية الأمني (Security Sandbox)
902
+
903
+ كل نسخة من الجسر تعمل داخل صندوق حماية يوفر:
904
+
905
+ - **توكنات جلسة** — توكن تشفيري فريد لكل جلسة يمنع هجمات الإعادة (Replay Attacks)
906
+ - **التحقق من الأصل** — فقط الأصول المصرح بها يمكنها التفاعل مع الجسر
907
+ - **تحقق من الأوامر** — كل أمر يُفحص من حيث الصيغة والطول وقائمة الحظر
908
+ - **سجل تدقيق** كل إجراء يُسجّل بالتوقيت وبصمة الوكيل والحالة
909
+ - **حماية التصعيد** محاولات الوصول لميزات أعلى تؤدي لتأمين تلقائي بعد 5 مخالفات
910
+ - **القفل التلقائي** الجسر يصبح للقراءة فقط عند اكتشاف انتهاكات أمنية
911
+
912
+ ### حماية الخادم
913
+
914
+ - **CSP (سياسة أمان المحتوى)** — حماية ضد XSS وحقن السكريبت
915
+ - **حماية iframe** — `frame-ancestors: 'none'` يمنع تحميل الموقع في إطارات غير موثوقة
916
+ - **تشفير كلمات المرور** bcrypt بتكلفة 12
917
+ - **JWT** — توكن مؤقت ينتهي بعد 7 أيام
918
+ - **Rate Limiting** تحديد معدل الطلبات
919
+ - **Helmet** — حماية رؤوس HTTP
920
+ - **حظر المحددات** — تقييد وصول الوكيل لعناصر محددة
921
+
922
+ ---
923
+
924
+ ## 🔄 المحددات ذاتية الإصلاح (Self-Healing Selectors)
925
+
926
+ المواقع الحديثة (SPAs) تتغير باستمرار. نظام الإصلاح الذاتي يضمن استمرار عمل المحددات:
927
+
928
+ 1. **البصمات** عند اكتشاف الإجراءات، يُخزن WAB بصمة غنية لكل عنصر
929
+ 2. **7 استراتيجيات** — عند تعطل محدد، يجرب WAB: `data-wab-id`، `data-testid`، ID، `aria-label`، `name`، مطابقة نصية ضبابية، موضع + دور
930
+ 3. **مراقب SPA** — `MutationObserver` يرصد تغييرات DOM ويعيد اكتشاف الإجراءات تلقائياً
931
+
932
+ ```javascript
933
+ // أضف هذا للاستقرار الأقصى
934
+ <button data-wab-id="signup-btn">إنشاء حساب</button>
935
+ ```
936
+
937
+ ---
938
+
939
+ ## 🥷 وضع التخفي (Stealth Mode)
940
+
941
+ لمواجهة أنظمة الحماية من البوتات:
942
+
943
+ ```javascript
944
+ window.AIBridgeConfig = { stealth: { enabled: true } };
945
+ ```
946
+
947
+ | الميزة | الوصف |
948
+ |---|---|
949
+ | سلسلة أحداث الفأرة | `mouseover → mouseenter → mousemove → mousedown → mouseup → click` |
950
+ | محاكاة الكتابة | حرف بحرف مع تأخير 30-120 مللي ثانية |
951
+ | تمرير تدريجي | خطوات متعددة بسرعة متغيرة |
952
+ | تأخيرات عشوائية | 50-400 مللي ثانية بين الإجراءات |
953
+
954
+ ---
955
+
956
+ ## 🛠️ التقنيات
957
+
958
+ - **الخلفية**: Node.js + Express + WebSocket (ws)
959
+ - **قاعدة البيانات**: SQLite (عبر better-sqlite3) مع مشغل ترحيلات
960
+ - **المصادقة**: JWT + bcrypt + توكنات جلسة (مقفلة بالنطاق)
961
+ - **التخزين المؤقت**: ذاكرة مؤقتة TTL + طابور تحليلات مجمع
962
+ - **المدفوعات**: تكامل Stripe مع بوابة الفوترة
963
+ - **الواجهة**: HTML/CSS/JS بدون أطر عمل
964
+ - **أغلفة أطر العمل**: React, Vue 3, Svelte (اختيارية)
965
+ - **تكامل LLM**: محول LangChain، محول MCP
966
+ - **الأمان**: Helmet, CORS, CSP, Rate Limiting متعدد الطبقات
967
+ - **الحاويات**: Docker + Docker Compose
968
+ - **CI/CD**: GitHub Actions (اختبار + نشر تلقائي في npm)
969
+ - **الاختبارات**: Jest + Supertest
970
+
971
+ ---
972
+
973
+ ## 💰 محرك التفاوض اللحظي
974
+
975
+ يحدد أصحاب المواقع قواعد التفاوض. يتفاوض وكيل الذكاء الاصطناعي على الأسعار في جلسات متعددة الجولات:
976
+
977
+ ```javascript
978
+ // فتح جلسة تفاوض
979
+ const session = await fetch('/api/sovereign/negotiation/sessions', {
980
+ method: 'POST',
981
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
982
+ body: JSON.stringify({
983
+ siteId: 'site-uuid',
984
+ agentId: 'agent-id',
985
+ originalPrice: 49.99,
986
+ itemId: 'product-123',
987
+ itemName: 'زيت زيتون ١ لتر'
988
+ })
989
+ }).then(r => r.json());
990
+
991
+ // تقديم عرض مضاد
992
+ const counter = await fetch(`/api/sovereign/negotiation/sessions/${session.sessionId}/propose`, {
993
+ method: 'POST',
994
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
995
+ body: JSON.stringify({ agentId: 'agent-id', proposedPrice: 39.99 })
996
+ }).then(r => r.json());
997
+ // { status: 'accepted', finalPrice: 42.49, message: 'صفقة! ...' }
998
+ ```
999
+
1000
+ ### أنواع الشروط
1001
+ | الشرط | الوصف |
1002
+ |---|---|
1003
+ | `bulk_quantity` | خصم على الكميات الكبيرة |
1004
+ | `loyalty` | مكافأة للعملاء المتكررين |
1005
+ | `time_based` | عروض الساعة السعيدة |
1006
+ | `first_purchase` | خصم ترحيبي للمشترين الجدد |
1007
+ | `cart_value` | حد أدنى لقيمة السلة |
1008
+ | `seasonal` | عروض موسمية بتواريخ محددة |
1009
+ | `membership` | أسعار خاصة للأعضاء |
1010
+ | `referral` | خصومات الإحالة |
1011
+
1012
+ ---
1013
+
1014
+ ## 🛡️ درع مقاومة التزييف (Anti-Hallucination Shield)
1015
+
1016
+ محرك تحقق متقاطع يكتشف أكاذيب الذكاء الاصطناعي قبل وصولها للمستخدم:
1017
+
1018
+ ```javascript
1019
+ // التحقق من سعر
1020
+ const result = await fetch('/api/sovereign/verify/price', {
1021
+ method: 'POST',
1022
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1023
+ body: JSON.stringify({
1024
+ siteId: 'site-uuid',
1025
+ domValue: 29.99,
1026
+ visionValue: 29.99,
1027
+ category: 'electronics',
1028
+ itemName: 'كابل USB'
1029
+ })
1030
+ }).then(r => r.json());
1031
+ // { verified: true, confidence: 0.98, severity: 'none' }
1032
+ ```
1033
+
1034
+ ### طبقات التحقق
1035
+ ١. **DOM مقابل الرؤية** — يقارن السعر المستخرج من DOM مع قراءة لقطة الشاشة
1036
+ ٢. **المعيار السوقي** — يتحقق من السعر مقابل البيانات التاريخية للفئة
1037
+ ٣. **الاتساق الزمني** — يفحص هل تغير السعر بشكل مريب منذ آخر تحقق
1038
+ ٤. **النتيجة المركبة** — مزيج مرجح من جميع الطبقات مع تصنيف الخطورة
1039
+
1040
+ ---
1041
+
1042
+ ## 📦 متجر قوالب الوكلاء (Community Agent Hub)
1043
+
1044
+ قوالب YAML جاهزة لحالات الاستخدام الشائعة. شغّل أي قالب من سطر الأوامر:
1045
+
1046
+ ```bash
1047
+ # عرض القوالب المتاحة
1048
+ npx wab-agent templates
1049
+
1050
+ # تشغيل قالب
1051
+ npx wab-agent run olive-oil-tunisia --budget 50 --region tunis
1052
+
1053
+ # تشغيل مع خادم مخصص
1054
+ npx wab-agent run hotel-direct-booking --server https://yourserver.com
1055
+ ```
1056
+
1057
+ ### القوالب المتاحة
1058
+ | القالب | الوصف |
1059
+ |---|---|
1060
+ | `olive-oil-tunisia` | زيت زيتون من مزارع تونسية صغيرة |
1061
+ | `hotel-direct-booking` | حجز فنادق مباشر بدون وسطاء |
1062
+ | `artisan-marketplace` | منتجات يدوية من حرفيين مستقلين |
1063
+ | `grocery-price-compare` | مقارنة أسعار البقالة بين المتاجر المحلية |
1064
+ | `freelancer-direct` | مستقلون بدون رسوم منصات |
1065
+ | `restaurant-direct` | مطاعم بدون تطبيقات توصيل |
1066
+ | `book-price-scout` | كتب من مكتبات مستقلة |
1067
+ | `flight-deal-hunter` | رحلات مباشرة من شركات الطيران |
1068
+ | `electronics-price-tracker` | تتبع أسعار الإلكترونيات |
1069
+ | `local-services` | مزودي خدمات محليين |
1070
+ | `organic-farm-fresh` | منتجات عضوية مباشرة من المزارع |
1071
+
1072
+ ---
1073
+
1074
+ ## 🎯 نظام القائد (Commander)
1075
+
1076
+ محرك تنسيق مهام محلي يفكك الأهداف العليا إلى مهام مترابطة ويوزعها على وكلاء متخصصين:
1077
+
1078
+ ```javascript
1079
+ // إنشاء مهمة
1080
+ const mission = await fetch('/api/commander/missions', {
1081
+ method: 'POST',
1082
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1083
+ body: JSON.stringify({
1084
+ goal: 'إيجاد أرخص زيت زيتون في ٥ متاجر',
1085
+ strategy: 'parallel',
1086
+ agents: ['researcher-1', 'analyst-1', 'negotiator-1']
1087
+ })
1088
+ }).then(r => r.json());
1089
+
1090
+ // إطلاق المهمة
1091
+ await fetch(`/api/commander/missions/${mission.id}/launch`, {
1092
+ method: 'POST', headers: { 'Authorization': 'Bearer ' + token }
1093
+ });
1094
+ ```
1095
+
1096
+ | القدرة | الوصف |
1097
+ |---|---|
1098
+ | **تفكيك المهام** | تحويل الأهداف إلى رسوم بيانية مهام (DAG) مع تتبع التبعيات |
1099
+ | **سجل الوكلاء** | تتبع قدرات وأداء الوكلاء المسجلين |
1100
+ | **تنفيذ متوازٍ** | تشغيل المهام المستقلة بالتوازي عبر عدة وكلاء |
1101
+ | **تعلم من النتائج** | تسجيل النتائج لتغذية راجعة في التعلم المعزز |
1102
+ | **تنسيق حوسبة طرفية** | توزيع المهام الثقيلة على عقد الحافة |
1103
+
1104
+ ---
1105
+
1106
+ ## 🖥️ نظام الحوسبة الطرفية (Edge Compute)
1107
+
1108
+ حوّل كل جهاز إلى عقدة AI سيادية — بدون سحابة مركزية:
1109
+
1110
+ ```javascript
1111
+ // تسجيل جهاز كعقدة حوسبة طرفية
1112
+ await fetch('/api/commander/edge/nodes', {
1113
+ method: 'POST',
1114
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1115
+ body: JSON.stringify({
1116
+ name: 'حاسوبي',
1117
+ capabilities: { cpu: 8, ram: 16384, gpu: true },
1118
+ supportedTasks: ['text-inference', 'vision-analysis', 'price-comparison']
1119
+ })
1120
+ }).then(r => r.json());
1121
+ ```
1122
+
1123
+ | القدرة | الوصف |
1124
+ |---|---|
1125
+ | **تحليل المعدات** | كشف إمكانيات CPU, RAM, GPU لكل عقدة |
1126
+ | **تشفير AES-256-GCM** | كل البيانات بين العقد مشفرة من الطرف للطرف |
1127
+ | **موازنة حمل مرجحة** | توجيه المهام حسب المعدات والتوفر |
1128
+ | **مراقبة بنبضات القلب** | تجاوز فشل تلقائي عند عدم استجابة العقد |
1129
+ | **تشكيل أسراب** | تجميع العقد حسب القدرات |
1130
+
1131
+ ---
1132
+
1133
+ ## 🐝 محرك التنفيذ بالسرب (Swarm)
1134
+
1135
+ أطلق عدة وكلاء بالتوازي لحل مهمة واحدة ثم ادمج نتائجهم بذكاء:
1136
+
1137
+ ```javascript
1138
+ const swarm = await fetch('/api/premium/v2/swarm/execute', {
1139
+ method: 'POST',
1140
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1141
+ body: JSON.stringify({
1142
+ task: 'أفضل عروض لاب توب تحت ١٠٠٠ دولار',
1143
+ strategy: 'parallel', // parallel | sequential | hybrid
1144
+ agentCount: 4,
1145
+ roles: ['researcher', 'analyst', 'price-checker', 'reviewer'],
1146
+ mergeStrategy: 'best-score' // best-score | fairness-weighted | consensus
1147
+ })
1148
+ }).then(r => r.json());
1149
+ ```
1150
+
1151
+ ---
1152
+
1153
+ ## ⚖️ محرك العدالة (Fairness Engine)
1154
+
1155
+ طبقة حياد تضمن فرصة متساوية للمواقع الصغيرة والكبيرة:
1156
+
1157
+ ```javascript
1158
+ // بحث مرجح بالعدالة (بدلاً من ترتيب الصلة فقط)
1159
+ const results = await fetch('/api/discovery/search?q=زيت+زيتون&fairness=true', {
1160
+ headers: { 'Authorization': 'Bearer ' + token }
1161
+ }).then(r => r.json());
1162
+ // المزارع الصغيرة تُرتّب بجانب أمازون — مرجحة بدرجة الحياد لا بـ SEO فقط
1163
+ ```
1164
+
1165
+ ### كيف يعمل تقييم الحياد
1166
+ | العامل | الوزن | الوصف |
1167
+ |---|---|---|
1168
+ | **اكتمال الإعداد** | ٢٥٪ | مدى جودة إعداد WAB في الموقع |
1169
+ | **درجة الثقة** | ٢٥٪ | شهادات السمعة من شبكة الوكلاء |
1170
+ | **الشفافية** | ٢٥٪ | إفصاح العمولة، وضوح التسعير |
1171
+ | **الاستجابة** | ٢٥٪ | زمن استجابة API، وقت التشغيل، نجاح الإجراءات |
1172
+
1173
+ ---
1174
+
1175
+ ## 🧠 ذاكرة الوكيل (Agent Memory)
1176
+
1177
+ ذاكرة سلوكية دائمة تسمح للوكلاء بتذكر تفضيلات المستخدم وبناء ارتباطات:
1178
+
1179
+ ```javascript
1180
+ // تخزين ذاكرة
1181
+ await fetch('/api/premium/v2/memory', {
1182
+ method: 'POST',
1183
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1184
+ body: JSON.stringify({
1185
+ agentId: 'agent-1',
1186
+ type: 'preference', // preference | interaction | correction | pattern
1187
+ category: 'purchase', // navigation | purchase | search | form | custom
1188
+ key: 'العلامة-المفضلة',
1189
+ value: 'عضوي-فقط',
1190
+ importance: 0.9
1191
+ })
1192
+ }).then(r => r.json());
1193
+
1194
+ // إنشاء ارتباطات بين الذكريات
1195
+ await fetch('/api/premium/v2/memory/associate', {
1196
+ method: 'POST',
1197
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1198
+ body: JSON.stringify({
1199
+ sourceId: 'memory-1',
1200
+ targetId: 'memory-2',
1201
+ relationship: 'leads_to' // leads_to | similar_to | replaces | depends_on
1202
+ })
1203
+ }).then(r => r.json());
1204
+ ```
1205
+
1206
+ ---
1207
+
1208
+ ## 👁️ خدمة الرؤية (Vision Analysis)
1209
+
1210
+ تحليل لقطات شاشة متعدد الموفرين لكشف العناصر التفاعلية واستخراج البيانات:
1211
+
1212
+ | الموفر | محلي؟ | الوصف |
1213
+ |---|---|---|
1214
+ | **Moondream** | | نموذج رؤية محلي خفيف |
1215
+ | **Ollama** | ✅ | نماذج محلية عبر Ollama (llava, bakllava) |
1216
+ | **OpenAI** | | GPT-4 Vision |
1217
+ | **Anthropic** | ❌ | Claude Vision |
1218
+
1219
+ ---
1220
+
1221
+ ## 🔌 بنية الإضافات (Plugin Architecture)
1222
+
1223
+ نظام إضافات ديناميكي يسمح بامتدادات من أطراف ثالثة:
1224
+
1225
+ ```javascript
1226
+ // عرض الإضافات المتاحة
1227
+ const plugins = await fetch('/api/premium/v2/plugins', {
1228
+ headers: { 'Authorization': 'Bearer ' + token }
1229
+ }).then(r => r.json());
1230
+
1231
+ // تثبيت إضافة لموقعك
1232
+ await fetch('/api/premium/v2/plugins/price-alert/install', {
1233
+ method: 'POST',
1234
+ headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
1235
+ body: JSON.stringify({ siteId: 'site-uuid', config: { threshold: 10 } })
1236
+ }).then(r => r.json());
1237
+ ```
1238
+
1239
+ ---
1240
+
1241
+ ## 🔍 تحليل حركة المرور المتقدم (Traffic Intelligence)
1242
+
1243
+ | القدرة | الوصف |
1244
+ |---|---|
1245
+ | **٣٠+ نوع بوت** | كشف Google, Bing, ChatGPT, Claude, Perplexity وغيرها |
1246
+ | **تحليل سلوكي** | تصنيف سلوك الوكلاء حسب البصمة والمنصة والنوع |
1247
+ | **كشف شذوذ** | كشف الارتفاعات المفاجئة وتحليل أنماط غير عادية |
1248
+ | **كشف استغلالات أمنية** | رصد أنماط SQL injection, XSS, Rate anomalies |
1249
+ | **تنبيهات Webhook** | إطلاق webhooks عند نشاط مشبوه |
1250
+ | **تدقيق للامتثال** | سجل تدقيق كامل للتوافق التنظيمي |
1251
+
1252
+ ---
1253
+
1254
+ ## 🔗 محول WAB-MCP
1255
+
1256
+ كشف قدرات مواقع WAB كأدوات [MCP](https://modelcontextprotocol.io/) لـ Claude وGPT وGemini:
1257
+
1258
+ ```javascript
1259
+ const { WABMCPAdapter } = require('wab-mcp-adapter');
1260
+
1261
+ const adapter = new WABMCPAdapter({
1262
+ siteUrl: 'https://shop.example.com',
1263
+ transport: 'http' // http | websocket | direct
1264
+ });
1265
+
1266
+ const tools = await adapter.getTools();
1267
+ const result = await adapter.executeTool('execute_action', {
1268
+ name: 'addToCart', params: { sku: 'ABC123' }
1269
+ });
1270
+ ```
1271
+
1272
+ ### أدوات MCP المدمجة
1273
+ | الأداة | الوصف |
1274
+ |---|---|
1275
+ | `discover` | اكتشاف الإجراءات المتاحة تلقائياً |
1276
+ | `get_actions` | قائمة كل الإجراءات مع المعاملات |
1277
+ | `execute_action` | تنفيذ إجراء محدد |
1278
+ | `read_content` | قراءة محتوى من الصفحة |
1279
+ | `get_page_info` | معلومات وصفية عن الصفحة |
1280
+ | `fairness_search` | بحث في دليل WAB مرجح بالعدالة |
1281
+ | `authenticate` | مصادقة وكيل مع الموقع |
1282
+
1283
+ ---
1284
+
1285
+ ## 🖥️ متصفح WAB (سطح المكتب)
1286
+
1287
+ متصفح Electron مستقل مع ميزات خصوصية وعدالة مدمجة:
1288
+
1289
+ - **حاجب الإعلانات** — ٨٠+ نطاق محظور + مطابقة أنماط URL + قواعد CSS تجميلية
1290
+ - **درع الاحتيال** — كشف نطاقات TLD مشبوهة وانتحال أسماء العلامات التجارية
1291
+ - **تصنيف العدالة** — أولوية للمواقع المستقلة، تنبيه عن تركز الشركات الكبرى
1292
+ - **دردشة الوكيل** — مساعد AI مدمج للتصفح
1293
+ - **الإشعارات** — تحليل الصفحة مع تنبيهات أمان وعدالة
1294
+ - **وضع الشبح** — تصفح بخصوصية بدون تتبع
1295
+ - **بحث ذكي** — تكامل DuckDuckGo للبحث الخاص
1296
+
1297
+ ```bash
1298
+ # تشغيل متصفح WAB
1299
+ cd wab-browser
1300
+ npm install
1301
+ npx electron .
1302
+
1303
+ # بناء المثبت (Windows NSIS)
1304
+ npm run build:win
1305
+ ```
1306
+
1307
+ ---
1308
+
1309
+ ## 📱 متصفح PWA (الهاتف)
1310
+
1311
+ تطبيق ويب تقدمي لـ Android وiOS — قابل للتثبيت من أي متصفح هاتف:
1312
+
1313
+ - **حاجب إعلانات** — ٤٥+ نطاق إعلاني محظور + مطابقة أنماط URL
1314
+ - **كشف الاحتيال** — تنبيهات TLD مشبوهة وفحوصات انتحال العلامات
1315
+ - **وضع العدالة** — تصفية مواقع التقنية الكبرى لتعزيز البدائل المستقلة
1316
+ - **أولوية غير متصل** — عامل الخدمة يخزن أصول الواجهة مؤقتاً للتشغيل بدون إنترنت
1317
+ - **بحث خاص** — تكامل DuckDuckGo (بدون تتبع Google)
1318
+ - **دردشة وكيل** — مساعد AI مع احتياطي محلي
1319
+
1320
+ ثبّته من: `https://yourserver.com/pwa/`
1321
+
1322
+ ---
1323
+
1324
+ ## 📦 إضافة WordPress
1325
+
1326
+ إضافة WordPress أصلية لإضافة دعم WAB لأي موقع WordPress:
1327
+
1328
+ | القدرة | الوصف |
1329
+ |---|---|
1330
+ | **صفحة إعدادات** | إعداد عنوان API، معرف الموقع، الصلاحيات |
1331
+ | **إجراءات لكل صفحة** | صندوق وصف لإضافة إجراءات WAB مخصصة لكل صفحة/مقال |
1332
+ | **مستند اكتشاف** | توليد تلقائي لنقطة اكتشاف WAB |
1333
+ | **عنصر لوحة تحكم** | عرض حالة WAB وإحصائيات تفاعل الوكلاء |
1334
+ | **كود قصير** | `[wab_bridge]` لتضمين WAB في صفحات محددة |
1335
+ | **خطافات** | `wab_before_action` / `wab_after_action` لمنطق مخصص |
1336
+
1337
+ راجع [`web-agent-bridge-wordpress/README.md`](web-agent-bridge-wordpress/README.md) للتوثيق الكامل.
1338
+
1339
+ ---
1340
+
1341
+ ## �️ درع الأمان — حماية متعددة الطبقات (SPEC §8.10–§8.13)
1342
+
1343
+ مستوحى من حادثة PocketOS الشهيرة حيث حذف وكيل ذكاء اصطناعي ٢٠ ألف مستخدم بأمر واحد، يضيف WAB خمس طبقات حماية متراكمة لا تستبدل بعضها بل تتكامل معاً. كل طبقة فعّالة من خطة معينة فما فوق.
1344
+
1345
+ ### §8.9 — رموز الجلسة المُحدَّدة النطاق (Scoped Session Tokens) — كل الخطط
1346
+
1347
+ كل توكن جلسة يحمل **نطاقًا** صريحًا: `read` أو `write` أو `delete` أو `admin`. الإجراءات المُصنّفة "هدّامة" (تحتوي على فعل مثل `delete` أو `drop` أو `purge` أو `wipe` أو `truncate`) تتطلب نطاق `delete` أو أعلى. الموقع يستطيع توسيع التصنيف عبر `siteConfig.destructiveActions[]`.
1348
+
1349
+ ```js
1350
+ // الموقع يحدد البيئة والإجراءات الهدّامة
1351
+ {
1352
+ "environment": "production",
1353
+ "destructiveActions": ["bulkUnsubscribe"],
1354
+ "nonDestructiveActions": ["softArchive"]
1355
+ }
1356
+ ```
1357
+
1358
+ عند الرفض → `403 SCOPE_DENIED` مع تفاصيل السبب في سجل التدقيق.
1359
+
1360
+ ### §8.10 — التشغيل التجريبي الإلزامي (Mandatory Dry-Run) — كل الخطط (MIT)
1361
+
1362
+ للإجراءات الهدّامة، **لا يمكن** للوكيل التنفيذ في خطوة واحدة. يجب أن يمرّ بمرحلتين:
1363
+
1364
+ **المرحلة ١ — طلب خطة:**
1365
+ ```http
1366
+ POST /api/wab/actions/deleteUser
1367
+ { "params": {"id": 42}, "dry_run": true }
1368
+ ```
1369
+ الاستجابة:
1370
+ ```json
1371
+ { "result": { "plan_id": "wabp_…", "simulation": {
1372
+ "would_affect": ["site:abc", "action:deleteUser"],
1373
+ "side_effects": ["deleteUser"], "reversible": false,
1374
+ "summary": "سيقوم بحذف المستخدم #42 — لم يتم تنفيذ أي تغيير فعلي."
1375
+ }, "expires_at": "…" }}
1376
+ ```
1377
+
1378
+ **المرحلة ٢ — التأكيد:**
1379
+ ```http
1380
+ POST /api/wab/actions/deleteUser
1381
+ { "params": {"id": 42}, "dry_run": false, "plan_id": "wabp_…" }
1382
+ ```
1383
+
1384
+ التحقق رباعي الأبعاد: `(sessionFingerprint, siteId, actionName, paramsHash)`. أي انحراف ولو حرف واحد في المعاملات → `412 DRY_RUN_PLAN_MISMATCH`. مهلة افتراضية ٥ دقائق (حد أقصى ٦٠).
1385
+
1386
+ ### §8.11 — البوابة البشرية خارج النطاق (Out-of-Band Human Gate) — Pro فما فوق
1387
+
1388
+ للمواقع الحساسة، الإجراءات الهدّامة تُجمَّد ويُرسَل **رمز من ٦ أرقام** عبر قناة لا يراها الوكيل (Webhook موقَّع، بريد إلكتروني، Telegram، Slack...). فقط بعد موافقة بشرية حقيقية يُسمح بالتنفيذ بحمل `confirmation_id`.
1389
+
1390
+ **القنوات الجاهزة:**
1391
+ - `webhook` — `POST` JSON موقَّع بـ HMAC-SHA256 (header: `X-WAB-Signature: sha256=…`)
1392
+ - `email` — SMTP عبر `nodemailer` (يدعم متغيرات البيئة `SMTP_HOST/PORT/USER/PASS`)
1393
+ - `console` — للتطوير فقط (يكتب على stderr)
1394
+ - `null` — لا شيء (للاختبارات والوضع المعزول)
1395
+
1396
+ **الحماية من الهجوم العنيف:**
1397
+ - قفل ٥ محاولات لكل تحدي (داخل الموديول).
1398
+ - **حد معدل بحسب IP**: ٣٠ محاولة / ١٠ دقائق + ٥ موافقات ناجحة / ١٠ دقائق. عند التجاوز → `429 RATE_LIMIT_TOO_MANY_ATTEMPTS` مع `Retry-After`.
1399
+
1400
+ ### §8.12 — محرك تحليل النية (Intent Analysis Engine) — Premium فما فوق
1401
+
1402
+ نقاط مخاطرة حتمية (٠–١٠٠) تُحسب من إشارات يمكن تفسيرها — لا توجد عشوائية ولا نموذج لغوي. الإشارات:
1403
+
1404
+ | الإشارة | الوزن |
1405
+ |---|---|
1406
+ | فعل هدّام (delete, drop, purge…) | +50 |
1407
+ | فعل كتابة عادي | +10 |
1408
+ | البيئة `production` | +30 |
1409
+ | كلمات خطر (`*`, `all`, `cascade`, `force`) | +15 لكل واحدة (سقف +30) |
1410
+ | محددات شاملة في المعاملات | +15 |
1411
+ | مصفوفة كبيرة (>50 عنصرًا) | +10 |
1412
+ | نوبة طلبات (>10/دقيقة) | +15 |
1413
+ | سرعة تنفيذ مرتفعة | +10 |
1414
+
1415
+ العتبات الافتراضية: `low:30, medium:70, high:90`. النتيجة العالية يمكن أن:
1416
+ 1. تُجبر التشغيل التجريبي (`required_gate: "dry_run"`)
1417
+ 2. تُجبر البوابة البشرية (`required_gate: "human_gate"`)
1418
+ 3. تحجب نهائيًا بـ `403 INTENT_BLOCKED`
1419
+
1420
+ ### §8.13 — اللقطات والتراجع (Snapshot & Rollback) — Enterprise
1421
+
1422
+ قبل تنفيذ أي إجراء هدّام، WAB يأخذ لقطة قابلة للاسترجاع تلقائيًا (إذا سجّل الموقع `restorer`). البيانات تُحفَظ في جدول `wab_snapshots` (sqlite) لمدة ٣٠ يومًا.
1423
+
1424
+ **نقاط الإدارة (X-WAB-Site-Id + X-WAB-Api-Key):**
1425
+ ```http
1426
+ GET /api/wab/admin/snapshots # قائمة آخر اللقطات
1427
+ GET /api/wab/admin/snapshots/:id # تفاصيل لقطة
1428
+ POST /api/wab/admin/rollback/:id # تنفيذ التراجع
1429
+ ```
1430
+
1431
+ **واجهة إدارة جاهزة:** انتقل إلى [`/admin/snapshots`](https://webagentbridge.com/admin/snapshots) وأدخل `Site ID` + `API Key` للتصفح والاسترجاع بزر واحد.
1432
+
1433
+ **حالات اللقطة:** `recorded → restored | failed | expired`.
1434
+
1435
+ ### كيف تستخدمها من SDK
1436
+
1437
+ ```js
1438
+ const { SafetyShieldClient } = require('@webagentbridge/sdk');
1439
+
1440
+ const shield = new SafetyShieldClient({
1441
+ baseUrl: 'https://webagentbridge.com',
1442
+ sessionToken: 'Bearer-token-from-/sessions',
1443
+ });
1444
+
1445
+ // الطريقة الموصى بها: تشغيل تجريبي ثم تأكيد
1446
+ const plan = await shield.dryRun('deleteUser', { id: 42 });
1447
+ console.log(plan.simulation.summary); // اعرضها للمستخدم البشري
1448
+ const result = await shield.confirmAction(plan, { code: '123456' });
1449
+ // أو في خطوة واحدة (ترجع envelope من نوع pending_human_gate إذا لزم):
1450
+ const out = await shield.safeExecute('deleteUser', { id: 42 });
1451
+ ```
1452
+
1453
+ ### جدول الأخطاء الموحَّدة
1454
+
1455
+ | الكود | HTTP | المعنى |
1456
+ |---|---|---|
1457
+ | `SCOPE_DENIED` | 403 | نطاق التوكن غير كافٍ |
1458
+ | `DRY_RUN_REQUIRED` | 412 | يجب تشغيل تجريبي أولاً |
1459
+ | `DRY_RUN_PLAN_MISMATCH` | 412 | المعاملات تغيّرت بين المرحلتين |
1460
+ | `DRY_RUN_PLAN_EXPIRED` | 412 | انقضت مهلة الخطة |
1461
+ | `HUMAN_GATE_REQUIRED` | 202 | تم إصدار تحدٍّ — انتظر الموافقة البشرية |
1462
+ | `HUMAN_GATE_PENDING` | 425 | الموافقة لم تحدث بعد |
1463
+ | `HUMAN_GATE_BAD_CODE` | 401 | رمز خاطئ |
1464
+ | `HUMAN_GATE_LOCKED` | 429 | استُنفدت ٥ محاولات لهذا التحدي |
1465
+ | `RATE_LIMIT_TOO_MANY_ATTEMPTS` | 429 | تجاوز حد الـ IP |
1466
+ | `INTENT_BLOCKED` | 403 | نتيجة محرك النية ≥90 |
1467
+ | `SNAPSHOT_NOT_FOUND` | 404 | لقطة غير موجودة |
1468
+ | `NO_RESTORER` | 503 | الموقع لم يسجّل `restorer` |
1469
+
1470
+ التفاصيل الكاملة (جداول الإشارات، صيغ التواصل، مرجع التطبيق) في [`docs/SPEC.md`](docs/SPEC.md) §8.9–§8.13.
1471
+
1472
+ ---
1473
+
1474
+ ## �📋 مواصفة بروتوكول WAB
1475
+
1476
+ المواصفة المعيارية الكاملة متاحة في [`docs/SPEC.md`](docs/SPEC.md):
1477
+
1478
+ | الطبقة | الوصف |
1479
+ |---|---|
1480
+ | **طبقة البروتوكول** | صيغة مستند الاكتشاف، بروتوكول الأوامر، بروتوكول العدالة |
1481
+ | **طبقة التشغيل** | واجهة `window.AICommands`، محرك الاكتشاف التلقائي، صندوق الأمان |
1482
+ | **طبقة النقل** | متغير JavaScript عام، WebSocket, HTTP, WebDriver BiDi, MCP |
1483
+
1484
+ ### دورة الحياة من ٥ مراحل
1485
+ ١. **اكتشاف** — الوكيل يجد مستند اكتشاف WAB (`.well-known/wab.json` أو وسم سكريبت)
1486
+ ٢. **مصادقة** — الوكيل يستبدل `siteId` بتوكن جلسة
1487
+ ٣. **تخطيط** — الوكيل يقرأ الإجراءات المتاحة ومعلومات الصفحة
1488
+ ٤. **تنفيذ** — الوكيل يشغل الإجراءات عبر الجسر
1489
+ ٥. **تأكيد** — النتائج تُتحقق عبر درع مقاومة التزييف
1490
+
1491
+ ---
1492
+
1493
+ ## 🤝 المساهمة
1494
+
1495
+ نرحب بالمساهمات! اقرأ [دليل المساهمة](CONTRIBUTING.md) للبدء.
1496
+
1497
+ ---
1498
+
1499
+ ---
1500
+
1501
+ ## 💼 الأسس التجارية ✨ جديد (v3.8.0)
1502
+
1503
+ أربع ركائز إنتاجية للتمويل فوق البروتوكول المفتوح. كلها مبنية **بأمان، مع نطاقات محددة، وبوّابات إدارية** — لا يوجد منطق فوترة داخل المسارات، فقط نصوص تسويقية في الصفحات العامة.
1504
+
1505
+ ### 1. 🤝 برنامج الشركاء المعتمدين — `/partners`
1506
+
1507
+ دليل بثلاث طبقات للشركاء والمتكاملين. الطبقة الأساسية تُعتمد تلقائيًا عند بلوغ درجة Ring 4 ≥ 8.
1508
+
1509
+ | الطبقة | السعر | اعتماد تلقائي | الشارة |
1510
+ |--------|------|----------------|--------|
1511
+ | **Basic** | مجاني | ✅ (Ring 4 ≥ 8) | SVG زمردي |
1512
+ | **Verified** | 499 € / سنة | مراجعة يدوية | SVG سماوي |
1513
+ | **Premium** | 2.9k–9.9k € / سنة | مراجعة يدوية | SVG بنفسجي |
1514
+
1515
+ **نقاط النهاية:** `POST /api/partners/apply` · `GET /api/partners` · `GET /api/partners/:partner_id` · `GET /api/partners/badge/:slug.svg` · إدارية: `GET /api/partners/admin/applications` · `POST /api/partners/admin/approve`
1516
+
1517
+ ### 2. 📊 طبقات Trust Graph API — `/trust-graph-api`
1518
+
1519
+ وصول مُتدرّج لنقاط نهاية السمعة والحقيقة و Ring 4. الزوار المجهولون يحصلون على 200 طلب/شهر + 10 طلب/دقيقة افتراضيًا.
1520
+
1521
+ | الطبقة | السعر | الحصة | المعدّل | نطاقات إضافية |
1522
+ |--------|------|------|--------|----------------|
1523
+ | **Free** | 0 € | 1k / شهر | 30 طلب/د | `trust:read` |
1524
+ | **Pro** | 10 € / شهر | 100k / شهر | 120 طلب/د | `+trust:history`, `+reputation:read` |
1525
+ | **Enterprise** | تواصل معنا | 5M / شهر | 600 طلب/د | `+governance:write`, `+sla:priority` |
1526
+
1527
+ **نقاط النهاية:** `POST /api/keys/issue` (إصدار ذاتي للطبقة المجانية) · `GET /api/keys/me` · `POST /api/keys/revoke` · إدارية: `POST /api/keys/admin/upgrade` · `GET /api/keys/admin/list`. ترويسات الاستجابة: `X-WAB-Tier`, `X-WAB-Quota-Used`, `X-WAB-Quota-Limit`.
1528
+
1529
+ ### 3. 🏛️ خدمة Governance SaaS — `/governance`
1530
+
1531
+ مساحات عمل تدقيق مقاومة للعبث للامتثال لقانون الذكاء الاصطناعي الأوروبي و GDPR. تصدير NDJSON وفق المادة 12 من قانون الذكاء الاصطناعي الأوروبي.
1532
+
1533
+ | الخطة | السعر | المقاعد | فترة الاحتفاظ | الأحداث / شهر |
1534
+ |------|------|---------|---------------|----------------|
1535
+ | **Team** | 99 € / شهر | 5 | 90 يومًا | 100k |
1536
+ | **Business** | 499 € / شهر | 25 | 365 يومًا | 2M |
1537
+ | **Enterprise** | 2.5k+ € / شهر | 500 | 7 سنوات | 1B |
1538
+
1539
+ **نقاط النهاية:** إدارية: `POST /api/governance-saas/workspaces` · للأعضاء: `GET /workspaces/:id` · `POST /workspaces/:id/members` · `POST /workspaces/:id/events` (يتطلب مفتاح API بنطاق `governance:write`) · `GET /workspaces/:id/events` · `GET /workspaces/:id/export` (بثّ NDJSON).
1540
+
1541
+ ### 4. 🕸️ التحقق من ترخيص شبكة المؤسسات — `/enterprise-mesh`
1542
+
1543
+ تحقّق ترخيص مستضاف ذاتيًا بقدرات عمل دون اتصال مع تدوير مفاتيح بنمط JWKS. خدمة التوقيع مدفوعة / خارج المستودع.
1544
+
1545
+ **نقاط النهاية:** `POST /api/enterprise-mesh/verify` · `GET /api/enterprise-mesh/jwks` · `POST /api/enterprise-mesh/heartbeat` · إدارية: `POST /api/enterprise-mesh/admin/register` · `POST /api/enterprise-mesh/admin/revoke`. تستخدم التوكنات توقيع Ed25519 منفصل مع تدوير `kid` عبر متغيّر البيئة `WAB_LICENSE_PUBLIC_KEYS` (JSON بصيغة `{kid → PEM | raw-b64u}`).
1546
+
1547
+ ### الأمان والسلامة
1548
+
1549
+ - جميع نقاط الإدارة محميّة بـ `X-Admin-Token` ضدّ متغيّرات `WAB_*_ADMIN_TOKEN` (503 عند عدم التهيئة).
1550
+ - مفاتيح API تُخزَّن فقط كهاش SHA-256؛ صيغة السرّ `wabk_<keyId>_<random>` تُعاد مرّة واحدة فقط.
1551
+ - توكنات مساحة العمل تستخدم HMAC-SHA256 مع مقارنة بزمن ثابت.
1552
+ - نوافذ تحكم بالمعدّل منزلقة داخل العملية (60 ث). تتبّع الحصة يوميًا عبر UPSERT في `wab_api_usage`.
1553
+ - عناوين IP تُهاش بواسطة `IP_HASH_SALT` قبل التخزين.
1554
+ - 25 اختبار مخصّص في `tests/commercial-foundations.test.js`؛ مجموع اختبارات الحزمة الآن 428 / 428 ناجحة.
1555
+
1556
+ ---
1557
+
1558
+ ## 📄 الرخصة
1559
+
1560
+ MIT — مجاني للاستخدام والتعديل والتوزيع.
1561
+
1562
+ </div>
1563
+