web-agent-bridge 1.2.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.ar.md +572 -446
- package/README.md +968 -933
- package/bin/agent-runner.js +465 -0
- package/bin/cli.js +138 -80
- package/bin/wab.js +80 -80
- package/examples/bidi-agent.js +119 -119
- package/examples/mcp-agent.js +94 -94
- package/examples/next-app-router/README.md +44 -0
- package/examples/puppeteer-agent.js +108 -108
- package/examples/saas-dashboard/README.md +55 -0
- package/examples/shopify-hydrogen/README.md +74 -0
- package/examples/vision-agent.js +171 -171
- package/examples/wordpress-elementor/README.md +77 -0
- package/package.json +71 -78
- package/public/.well-known/ai-assets.json +59 -0
- package/public/admin/login.html +84 -84
- package/public/ai.html +196 -0
- package/public/cookies.html +208 -208
- package/public/css/premium.css +317 -0
- package/public/css/styles.css +1235 -1235
- package/public/dashboard.html +704 -704
- package/public/demo.html +259 -0
- package/public/docs.html +585 -585
- package/public/feed.xml +89 -0
- package/public/index.html +581 -332
- package/public/js/auth-nav.js +31 -31
- package/public/js/auth-redirect.js +12 -12
- package/public/js/cookie-consent.js +56 -56
- package/public/js/wab-demo-page.js +721 -0
- package/public/js/ws-client.js +74 -74
- package/public/llms-full.txt +309 -0
- package/public/llms.txt +85 -0
- package/public/login.html +83 -83
- package/public/openapi.json +580 -0
- package/public/premium-dashboard.html +2487 -0
- package/public/premium.html +791 -0
- package/public/privacy.html +295 -295
- package/public/register.html +103 -103
- package/public/robots.txt +87 -0
- package/public/script/wab-consent.d.ts +36 -0
- package/public/script/wab-consent.js +104 -0
- package/public/script/wab-schema.js +131 -0
- package/public/script/wab.d.ts +108 -0
- package/public/script/wab.min.js +405 -0
- package/public/sitemap.xml +93 -0
- package/public/sovereign.html +660 -0
- package/public/terms.html +254 -254
- package/public/video/tutorial.mp4 +0 -0
- package/script/ai-agent-bridge.js +1558 -1513
- package/sdk/README.md +55 -55
- package/sdk/index.d.ts +118 -0
- package/sdk/index.js +257 -203
- package/sdk/package.json +14 -14
- package/sdk/schema-discovery.js +83 -0
- package/server/config/secrets.js +94 -92
- package/server/index.js +2 -9
- package/server/middleware/adminAuth.js +30 -30
- package/server/middleware/auth.js +41 -41
- package/server/middleware/rateLimits.js +24 -24
- package/server/migrations/001_add_analytics_indexes.sql +7 -7
- package/server/migrations/002_premium_features.sql +418 -0
- package/server/models/adapters/index.js +33 -33
- package/server/models/adapters/mysql.js +183 -183
- package/server/models/adapters/postgresql.js +172 -172
- package/server/models/adapters/sqlite.js +7 -7
- package/server/models/db.js +561 -561
- package/server/routes/admin-premium.js +671 -0
- package/server/routes/admin.js +247 -247
- package/server/routes/api.js +131 -138
- package/server/routes/auth.js +51 -51
- package/server/routes/billing.js +45 -45
- package/server/routes/discovery.js +406 -329
- package/server/routes/license.js +240 -240
- package/server/routes/noscript.js +543 -543
- package/server/routes/premium-v2.js +686 -0
- package/server/routes/premium.js +724 -0
- package/server/routes/sovereign.js +307 -0
- package/server/routes/wab-api.js +476 -476
- package/server/services/agent-memory.js +625 -0
- package/server/services/email.js +204 -204
- package/server/services/fairness.js +420 -420
- package/server/services/negotiation.js +439 -0
- package/server/services/plugins.js +747 -0
- package/server/services/premium.js +1883 -0
- package/server/services/reputation.js +465 -0
- package/server/services/self-healing.js +843 -0
- package/server/services/stripe.js +192 -192
- package/server/services/swarm.js +788 -0
- package/server/services/verification.js +481 -0
- package/server/services/vision.js +871 -0
- package/server/utils/cache.js +125 -125
- package/server/utils/migrate.js +81 -81
- package/server/utils/secureFields.js +50 -50
- package/server/ws.js +101 -101
- package/templates/artisan-marketplace.yaml +104 -0
- package/templates/book-price-scout.yaml +98 -0
- package/templates/electronics-price-tracker.yaml +108 -0
- package/templates/flight-deal-hunter.yaml +113 -0
- package/templates/freelancer-direct.yaml +116 -0
- package/templates/grocery-price-compare.yaml +93 -0
- package/templates/hotel-direct-booking.yaml +113 -0
- package/templates/local-services.yaml +98 -0
- package/templates/olive-oil-tunisia.yaml +88 -0
- package/templates/organic-farm-fresh.yaml +101 -0
- package/templates/restaurant-direct.yaml +97 -0
- package/docs/DEPLOY.md +0 -118
- package/docs/SPEC.md +0 -1540
- package/wab-mcp-adapter/README.md +0 -136
- package/wab-mcp-adapter/index.js +0 -555
- package/wab-mcp-adapter/package.json +0 -17
package/README.ar.md
CHANGED
|
@@ -1,446 +1,572 @@
|
|
|
1
|
-
<div dir="rtl" align="right">
|
|
2
|
-
|
|
3
|
-
# Web Agent Bridge (WAB) — جسر الوكيل الذكي
|
|
4
|
-
|
|
5
|
-
[](https://github.com/abokenan444/web-agent-bridge/actions/workflows/ci.yml)
|
|
6
|
-
[](https://opensource.org/licenses/MIT)
|
|
7
|
-
[](https://nodejs.org/)
|
|
8
|
-
[](https://hub.docker.com/)
|
|
9
|
-
|
|
10
|
-
**برمجية وسيطة مفتوحة المصدر تربط وكلاء الذكاء الاصطناعي بالمواقع الإلكترونية — توفر واجهة أوامر موحدة للأتمتة الذكية.**
|
|
11
|
-
|
|
12
|
-
يتيح WAB لأصحاب المواقع إضافة سكريبت يكشف واجهة `window.AICommands` لوكلاء الذكاء الاصطناعي. بدلاً من تحليل شيفرة HTML المعقدة، يقرأ الوكيل قائمة الإجراءات المتاحة وينفذها بدقة وأمان.
|
|
13
|
-
|
|
14
|
-
**[English Documentation](README.md)** | **العربية**
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## ✨ المميزات
|
|
19
|
-
|
|
20
|
-
- **اكتشاف تلقائي** — يكتشف الأزرار والنماذج وروابط التنقل تلقائياً
|
|
21
|
-
- **نظام صلاحيات** — تحكم دقيق بما يمكن لوكلاء الذكاء الاصطناعي فعله
|
|
22
|
-
- **واجهة موحدة** — كائن `window.AICommands` موحد يستخدمه أي وكيل
|
|
23
|
-
- **تحديد معدل الاستخدام** — حماية مدمجة ضد الإساءة
|
|
24
|
-
- **لوحة تحليلات** — تتبع تفاعل وكلاء الذكاء الاصطناعي مع موقعك
|
|
25
|
-
- **إجراءات مخصصة** — سجّل إجراءاتك الخاصة مع معالجات مخصصة
|
|
26
|
-
- **تحليلات فورية** — عبر WebSocket لمراقبة النشاط لحظياً
|
|
27
|
-
- **توافق WebDriver BiDi** — دعم البروتوكولات المعيارية للمتصفحات
|
|
28
|
-
- **مستويات اشتراك** — نواة مجانية + ميزات متقدمة مدفوعة
|
|
29
|
-
- **نظام أحداث** — اشترك في أحداث الجسر للمراقبة
|
|
30
|
-
- **صندوق حماية أمني** — عزل كامل مع توكنات جلسة، تحقق من الأصل، تأمين تلقائي
|
|
31
|
-
- **محددات ذاتية الإصلاح** — مقاومة لتغييرات DOM في المواقع الديناميكية (SPA)
|
|
32
|
-
- **وضع التخفي** — محاكاة سلوك بشري (حركة فأرة، كتابة طبيعية، تمرير تدريجي)
|
|
33
|
-
- **قواعد بيانات متعددة** — SQLite + PostgreSQL + MySQL عبر محوّلات قابلة للتبديل
|
|
34
|
-
- **SDK للوكلاء** — حزمة أدوات جاهزة لبناء وكلاء ذكاء اصطناعي
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
│
|
|
105
|
-
├──
|
|
106
|
-
│ ├──
|
|
107
|
-
│ ├──
|
|
108
|
-
│ ├──
|
|
109
|
-
│
|
|
110
|
-
│
|
|
111
|
-
|
|
112
|
-
│ └──
|
|
113
|
-
|
|
114
|
-
├──
|
|
115
|
-
├──
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
135
|
-
| `/api/
|
|
136
|
-
| `/api/
|
|
137
|
-
| `/api/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
|
144
|
-
|
|
145
|
-
| `/api/
|
|
146
|
-
| `/api/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
| `
|
|
162
|
-
| `
|
|
163
|
-
| `
|
|
164
|
-
| `
|
|
165
|
-
| `
|
|
166
|
-
| `
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
169
|
-
| `
|
|
170
|
-
| `
|
|
171
|
-
| `
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
//
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
##
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
```javascript
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
//
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
---
|
|
392
|
-
|
|
393
|
-
##
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
1
|
+
<div dir="rtl" align="right">
|
|
2
|
+
|
|
3
|
+
# Web Agent Bridge (WAB) — جسر الوكيل الذكي
|
|
4
|
+
|
|
5
|
+
[](https://github.com/abokenan444/web-agent-bridge/actions/workflows/ci.yml)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://hub.docker.com/)
|
|
9
|
+
|
|
10
|
+
**برمجية وسيطة مفتوحة المصدر تربط وكلاء الذكاء الاصطناعي بالمواقع الإلكترونية — توفر واجهة أوامر موحدة للأتمتة الذكية.**
|
|
11
|
+
|
|
12
|
+
يتيح WAB لأصحاب المواقع إضافة سكريبت يكشف واجهة `window.AICommands` لوكلاء الذكاء الاصطناعي. بدلاً من تحليل شيفرة HTML المعقدة، يقرأ الوكيل قائمة الإجراءات المتاحة وينفذها بدقة وأمان.
|
|
13
|
+
|
|
14
|
+
**[English Documentation](README.md)** | **العربية**
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## ✨ المميزات
|
|
19
|
+
|
|
20
|
+
- **اكتشاف تلقائي** — يكتشف الأزرار والنماذج وروابط التنقل تلقائياً
|
|
21
|
+
- **نظام صلاحيات** — تحكم دقيق بما يمكن لوكلاء الذكاء الاصطناعي فعله
|
|
22
|
+
- **واجهة موحدة** — كائن `window.AICommands` موحد يستخدمه أي وكيل
|
|
23
|
+
- **تحديد معدل الاستخدام** — حماية مدمجة ضد الإساءة
|
|
24
|
+
- **لوحة تحليلات** — تتبع تفاعل وكلاء الذكاء الاصطناعي مع موقعك
|
|
25
|
+
- **إجراءات مخصصة** — سجّل إجراءاتك الخاصة مع معالجات مخصصة
|
|
26
|
+
- **تحليلات فورية** — عبر WebSocket لمراقبة النشاط لحظياً
|
|
27
|
+
- **توافق WebDriver BiDi** — دعم البروتوكولات المعيارية للمتصفحات
|
|
28
|
+
- **مستويات اشتراك** — نواة مجانية + ميزات متقدمة مدفوعة
|
|
29
|
+
- **نظام أحداث** — اشترك في أحداث الجسر للمراقبة
|
|
30
|
+
- **صندوق حماية أمني** — عزل كامل مع توكنات جلسة، تحقق من الأصل، تأمين تلقائي
|
|
31
|
+
- **محددات ذاتية الإصلاح** — مقاومة لتغييرات DOM في المواقع الديناميكية (SPA)
|
|
32
|
+
- **وضع التخفي** — محاكاة سلوك بشري (حركة فأرة، كتابة طبيعية، تمرير تدريجي)
|
|
33
|
+
- **قواعد بيانات متعددة** — SQLite + PostgreSQL + MySQL عبر محوّلات قابلة للتبديل
|
|
34
|
+
- **SDK للوكلاء** — حزمة أدوات جاهزة لبناء وكلاء ذكاء اصطناعي
|
|
35
|
+
|
|
36
|
+
### الإصدار 2.0 — ميزات الحصن الرقمي
|
|
37
|
+
|
|
38
|
+
- **محرك التفاوض اللحظي** — يتفاوض وكيل الذكاء الاصطناعي على الأسعار مباشرة مع المواقع عبر جلسات متعددة الجولات، ٨ أنواع شروط، و٤ أنواع خصومات
|
|
39
|
+
- **درع مقاومة التزييف** — محرك تحقق متقاطع يقارن DOM مع لقطات الشاشة، يتحقق من الأسعار مقابل المعايير السوقية، يفحص الاتساق الزمني، ويقيس تشابه النصوص
|
|
40
|
+
- **نظام السمعة اللامركزي** — شهادات ثقة مشفرة من شبكة الوكلاء مع تقييم مرجح، مستويات ثقة (ناشئ ← موثق ← نموذجي)، ولوحة متصدرين عالمية
|
|
41
|
+
- **لوحة السيادة** — مركز قيادة لحظي يعرض رادار العدالة، درع الخصوصية، سجل التفاوض، فحوصات التحقق، ومبدّل نماذج الذكاء الاصطناعي
|
|
42
|
+
- **متجر قوالب الوكلاء** — ١١ قالب YAML جاهز (حجز فنادق، مقارنة بقالة، سوق حرفيين، صفقات طيران، إلخ) مع تشغيل من سطر الأوامر: `npx wab-agent run template.yaml`
|
|
43
|
+
- **تبديل عقل الوكيل** — بدّل بين Llama 3، GPT-4، Claude، Gemini، Mistral، أو Ollama (محلي) بدون إعادة إعداد
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 🚀 البدء السريع
|
|
48
|
+
|
|
49
|
+
### ١. التثبيت والتشغيل
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# الطريقة أ: استنساخ وتشغيل
|
|
53
|
+
git clone https://github.com/abokenan444/web-agent-bridge.git
|
|
54
|
+
cd web-agent-bridge
|
|
55
|
+
npm install
|
|
56
|
+
cp .env.example .env
|
|
57
|
+
npm start
|
|
58
|
+
|
|
59
|
+
# الطريقة ب: npx (أمر واحد)
|
|
60
|
+
npx web-agent-bridge start
|
|
61
|
+
|
|
62
|
+
# الطريقة ج: Docker
|
|
63
|
+
docker compose up -d
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### ٢. إنشاء حساب
|
|
67
|
+
|
|
68
|
+
زُر `http://localhost:3000/register` وأنشئ حساباً، ثم أضف موقعك من لوحة التحكم.
|
|
69
|
+
|
|
70
|
+
### ٣. إضافة السكريبت لموقعك
|
|
71
|
+
|
|
72
|
+
```html
|
|
73
|
+
<script>
|
|
74
|
+
window.AIBridgeConfig = {
|
|
75
|
+
licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
|
|
76
|
+
agentPermissions: {
|
|
77
|
+
readContent: true,
|
|
78
|
+
click: true,
|
|
79
|
+
fillForms: true,
|
|
80
|
+
scroll: true
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
</script>
|
|
84
|
+
<script src="http://localhost:3000/script/ai-agent-bridge.js"></script>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### ٤. الآن يمكن لوكلاء الذكاء الاصطناعي التفاعل
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
// من جانب وكيل الذكاء الاصطناعي
|
|
91
|
+
const bridge = window.AICommands;
|
|
92
|
+
const actions = bridge.getActions(); // اكتشاف الإجراءات
|
|
93
|
+
await bridge.execute("signup"); // تنفيذ إجراء
|
|
94
|
+
const info = bridge.getPageInfo(); // معلومات الصفحة
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 📁 هيكل المشروع
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
web-agent-bridge/
|
|
103
|
+
├── server/ # خادم Express.js
|
|
104
|
+
│ ├── index.js # نقطة البداية
|
|
105
|
+
│ ├── ws.js # WebSocket للتحليلات الفورية
|
|
106
|
+
│ ├── routes/
|
|
107
|
+
│ │ ├── auth.js # المصادقة (تسجيل/دخول)
|
|
108
|
+
│ │ ├── api.js # واجهة المواقع والتحليلات
|
|
109
|
+
│ │ └── license.js # التحقق من التراخيص والتتبع
|
|
110
|
+
│ ├── middleware/
|
|
111
|
+
│ │ └── auth.js # وسيط JWT
|
|
112
|
+
│ └── models/
|
|
113
|
+
│ └── db.js # قاعدة بيانات SQLite
|
|
114
|
+
├── public/ # الواجهة الأمامية
|
|
115
|
+
│ ├── index.html # الصفحة الرئيسية
|
|
116
|
+
│ ├── dashboard.html # لوحة التحكم
|
|
117
|
+
│ ├── docs.html # التوثيق
|
|
118
|
+
│ ├── login.html # تسجيل الدخول
|
|
119
|
+
│ └── register.html # التسجيل
|
|
120
|
+
├── script/
|
|
121
|
+
│ └── ai-agent-bridge.js # سكريبت الجسر
|
|
122
|
+
├── tests/ # الاختبارات
|
|
123
|
+
├── Dockerfile # حاوية Docker
|
|
124
|
+
├── docker-compose.yml # تشغيل Docker
|
|
125
|
+
└── package.json
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 🔌 واجهات API
|
|
131
|
+
|
|
132
|
+
### المصادقة
|
|
133
|
+
| النقطة | الطريقة | الوصف |
|
|
134
|
+
|---|---|---|
|
|
135
|
+
| `/api/auth/register` | POST | إنشاء حساب |
|
|
136
|
+
| `/api/auth/login` | POST | تسجيل الدخول |
|
|
137
|
+
| `/api/auth/me` | GET | بيانات المستخدم الحالي |
|
|
138
|
+
|
|
139
|
+
### المواقع
|
|
140
|
+
| النقطة | الطريقة | الوصف |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| `/api/sites` | GET | قائمة مواقعك |
|
|
143
|
+
| `/api/sites` | POST | إضافة موقع جديد |
|
|
144
|
+
| `/api/sites/:id` | GET | تفاصيل الموقع |
|
|
145
|
+
| `/api/sites/:id/config` | PUT | تحديث الإعدادات |
|
|
146
|
+
| `/api/sites/:id/tier` | PUT | تغيير مستوى الاشتراك |
|
|
147
|
+
| `/api/sites/:id` | DELETE | حذف الموقع |
|
|
148
|
+
| `/api/sites/:id/snippet` | GET | كود التضمين |
|
|
149
|
+
| `/api/sites/:id/analytics` | GET | بيانات التحليلات |
|
|
150
|
+
|
|
151
|
+
### التراخيص (عامة)
|
|
152
|
+
| النقطة | الطريقة | الوصف |
|
|
153
|
+
|---|---|---|
|
|
154
|
+
| `/api/license/verify` | POST | التحقق من مفتاح الترخيص |
|
|
155
|
+
| `/api/license/track` | POST | تسجيل حدث تحليلي |
|
|
156
|
+
|
|
157
|
+
### واجهات السيادة (الإصدار 2.0)
|
|
158
|
+
| النقطة | الطريقة | الوصف |
|
|
159
|
+
|---|---|---|
|
|
160
|
+
| `/api/sovereign/reputation/agents` | POST | تسجيل وكيل جديد |
|
|
161
|
+
| `/api/sovereign/reputation/attestations` | POST | إرسال شهادة ثقة |
|
|
162
|
+
| `/api/sovereign/reputation/sites/:siteId` | GET | سمعة الموقع |
|
|
163
|
+
| `/api/sovereign/reputation/leaderboard` | GET | لوحة المتصدرين |
|
|
164
|
+
| `/api/sovereign/negotiation/rules` | POST | إنشاء قاعدة تفاوض |
|
|
165
|
+
| `/api/sovereign/negotiation/sessions` | POST | فتح جلسة تفاوض |
|
|
166
|
+
| `/api/sovereign/negotiation/sessions/:id/propose` | POST | تقديم عرض مضاد |
|
|
167
|
+
| `/api/sovereign/negotiation/sessions/:id/confirm` | POST | تأكيد الصفقة |
|
|
168
|
+
| `/api/sovereign/verify/price` | POST | التحقق من السعر |
|
|
169
|
+
| `/api/sovereign/verify/text` | POST | التحقق من النص |
|
|
170
|
+
| `/api/sovereign/verify/page` | POST | التحقق الشامل للصفحة |
|
|
171
|
+
| `/api/sovereign/dashboard/sovereign` | GET | بيانات لوحة السيادة |
|
|
172
|
+
|
|
173
|
+
### WebSocket
|
|
174
|
+
| النقطة | الوصف |
|
|
175
|
+
|---|---|
|
|
176
|
+
| `ws://localhost:3000/ws/analytics` | تحليلات فورية لحظية |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## ⚙️ واجهة سكريبت الجسر
|
|
181
|
+
|
|
182
|
+
عند التحميل، يكشف `window.AICommands` الطرق التالية:
|
|
183
|
+
|
|
184
|
+
| الطريقة | الوصف |
|
|
185
|
+
|---|---|
|
|
186
|
+
| `getActions(category?)` | قائمة الإجراءات المتاحة |
|
|
187
|
+
| `getAction(name)` | الحصول على إجراء محدد |
|
|
188
|
+
| `execute(name, params?)` | تنفيذ إجراء |
|
|
189
|
+
| `readContent(selector)` | قراءة محتوى عنصر |
|
|
190
|
+
| `getPageInfo()` | معلومات الصفحة والجسر |
|
|
191
|
+
| `waitForElement(selector, timeout?)` | انتظار ظهور عنصر DOM |
|
|
192
|
+
| `waitForNavigation(timeout?)` | انتظار تغيير العنوان |
|
|
193
|
+
| `registerAction(def)` | تسجيل إجراء مخصص |
|
|
194
|
+
| `authenticate(key, meta?)` | مصادقة الوكيل |
|
|
195
|
+
| `refresh()` | إعادة مسح الصفحة |
|
|
196
|
+
| `toBiDi()` | الحصول على سياق WebDriver BiDi |
|
|
197
|
+
| `executeBiDi(command)` | تنفيذ أمر بصيغة BiDi |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 🔧 الإعدادات
|
|
202
|
+
|
|
203
|
+
```javascript
|
|
204
|
+
window.AIBridgeConfig = {
|
|
205
|
+
licenseKey: "WAB-XXXXX-XXXXX-XXXXX-XXXXX",
|
|
206
|
+
agentPermissions: {
|
|
207
|
+
readContent: true, // قراءة النص
|
|
208
|
+
click: true, // النقر على العناصر
|
|
209
|
+
fillForms: false, // ملء/إرسال النماذج
|
|
210
|
+
scroll: true, // تمرير الصفحة
|
|
211
|
+
navigate: false, // التنقل بين الصفحات
|
|
212
|
+
apiAccess: false, // استدعاء API داخلي (Pro+)
|
|
213
|
+
automatedLogin: false, // تسجيل دخول تلقائي (Starter+)
|
|
214
|
+
extractData: false // استخراج البيانات (Pro+)
|
|
215
|
+
},
|
|
216
|
+
restrictions: {
|
|
217
|
+
allowedSelectors: [],
|
|
218
|
+
blockedSelectors: [".private", "[data-private]"],
|
|
219
|
+
requireLoginForActions: ["apiAccess"],
|
|
220
|
+
rateLimit: { maxCallsPerMinute: 60 }
|
|
221
|
+
},
|
|
222
|
+
logging: { enabled: false, level: "basic" }
|
|
223
|
+
};
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 🔄 توافق WebDriver BiDi
|
|
229
|
+
|
|
230
|
+
يدعم السكريبت بروتوكول WebDriver BiDi للتواصل مع الوكلاء عبر معايير موحدة:
|
|
231
|
+
|
|
232
|
+
```javascript
|
|
233
|
+
// الحصول على سياق BiDi
|
|
234
|
+
const context = window.__wab_bidi.getContext();
|
|
235
|
+
|
|
236
|
+
// إرسال أمر BiDi
|
|
237
|
+
const result = await window.__wab_bidi.send({
|
|
238
|
+
id: 1,
|
|
239
|
+
method: 'wab.executeAction',
|
|
240
|
+
params: { name: 'signup', data: {} }
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
// الأوامر المدعومة:
|
|
244
|
+
// wab.getContext — سياق الصفحة والقدرات
|
|
245
|
+
// wab.getActions — قائمة الإجراءات
|
|
246
|
+
// wab.executeAction — تنفيذ إجراء
|
|
247
|
+
// wab.readContent — قراءة محتوى
|
|
248
|
+
// wab.getPageInfo — معلومات الصفحة
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 📊 التحليلات الفورية (WebSocket)
|
|
254
|
+
|
|
255
|
+
اتصل بنقطة WebSocket لتلقي إشعارات فورية:
|
|
256
|
+
|
|
257
|
+
```javascript
|
|
258
|
+
const ws = new WebSocket('ws://localhost:3000/ws/analytics');
|
|
259
|
+
|
|
260
|
+
// المصادقة
|
|
261
|
+
ws.onopen = () => {
|
|
262
|
+
ws.send(JSON.stringify({
|
|
263
|
+
type: 'auth',
|
|
264
|
+
token: 'your-jwt-token',
|
|
265
|
+
siteId: 'your-site-id'
|
|
266
|
+
}));
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
// تلقي الأحداث
|
|
270
|
+
ws.onmessage = (event) => {
|
|
271
|
+
const data = JSON.parse(event.data);
|
|
272
|
+
console.log('حدث جديد:', data);
|
|
273
|
+
// { type: 'analytic', actionName: '...', agentId: '...', success: true }
|
|
274
|
+
};
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## 💰 مستويات الاشتراك
|
|
280
|
+
|
|
281
|
+
| الميزة | مجاني | Starter | Pro | Enterprise |
|
|
282
|
+
|---|:---:|:---:|:---:|:---:|
|
|
283
|
+
| اكتشاف تلقائي | ✓ | ✓ | ✓ | ✓ |
|
|
284
|
+
| نقر/تمرير | ✓ | ✓ | ✓ | ✓ |
|
|
285
|
+
| ملء النماذج | ✓ | ✓ | ✓ | ✓ |
|
|
286
|
+
| تسجيل أساسي | ✓ | ✓ | ✓ | ✓ |
|
|
287
|
+
| تسجيل دخول تلقائي | ✗ | ✓ | ✓ | ✓ |
|
|
288
|
+
| لوحة تحليلات | ✗ | ✓ | ✓ | ✓ |
|
|
289
|
+
| وصول API | ✗ | ✗ | ✓ | ✓ |
|
|
290
|
+
| استخراج البيانات | ✗ | ✗ | ✓ | ✓ |
|
|
291
|
+
| تحديد معدل مخصص | ✗ | ✗ | ✗ | ✓ |
|
|
292
|
+
| Webhooks | ✗ | ✗ | ✗ | ✓ |
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## 🐳 تشغيل باستخدام Docker
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# بناء وتشغيل
|
|
300
|
+
docker compose up -d
|
|
301
|
+
|
|
302
|
+
# أو البناء يدوياً
|
|
303
|
+
docker build -t web-agent-bridge .
|
|
304
|
+
docker run -p 3000:3000 -e JWT_SECRET=your-secret -e JWT_SECRET_ADMIN=your-admin-secret web-agent-bridge
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## 🧪 الاختبارات
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
npm test
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
تشمل الاختبارات:
|
|
316
|
+
- واجهات المصادقة (تسجيل، دخول، التحقق من التوكن)
|
|
317
|
+
- واجهات إدارة المواقع (CRUD، الإعدادات، المستويات)
|
|
318
|
+
- واجهات التراخيص (التحقق، التتبع)
|
|
319
|
+
- خدمة الصفحات الثابتة
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## 🤖 Agent SDK — حزمة أدوات الوكيل
|
|
324
|
+
|
|
325
|
+
يضم WAB حزمة SDK جاهزة لبناء وكلاء ذكاء اصطناعي. راجع [`sdk/README.md`](sdk/README.md) للتوثيق الكامل.
|
|
326
|
+
|
|
327
|
+
```javascript
|
|
328
|
+
const puppeteer = require('puppeteer');
|
|
329
|
+
const { WABAgent } = require('web-agent-bridge/sdk');
|
|
330
|
+
|
|
331
|
+
const browser = await puppeteer.launch();
|
|
332
|
+
const page = await browser.newPage();
|
|
333
|
+
const agent = new WABAgent(page);
|
|
334
|
+
|
|
335
|
+
await agent.navigateAndWait('https://example.com');
|
|
336
|
+
const actions = await agent.getActions();
|
|
337
|
+
await agent.execute('signup', { email: 'user@test.com' });
|
|
338
|
+
await browser.close();
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## 📚 أمثلة الوكلاء
|
|
344
|
+
|
|
345
|
+
أمثلة جاهزة للتشغيل في مجلد [`examples/`](examples/):
|
|
346
|
+
|
|
347
|
+
| الملف | الوصف |
|
|
348
|
+
|---|---|
|
|
349
|
+
| `puppeteer-agent.js` | وكيل أساسي باستخدام Puppeteer و `window.AICommands` |
|
|
350
|
+
| `bidi-agent.js` | وكيل يستخدم بروتوكول WebDriver BiDi عبر `window.__wab_bidi` |
|
|
351
|
+
| `vision-agent.js` | وكيل رؤية — يحل أوصاف اللغة الطبيعية إلى إجراءات WAB |
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
node examples/puppeteer-agent.js http://localhost:3000
|
|
355
|
+
node examples/bidi-agent.js http://localhost:3000
|
|
356
|
+
node examples/vision-agent.js http://localhost:3000
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## 🗄️ دعم قواعد بيانات متعددة
|
|
362
|
+
|
|
363
|
+
يستخدم WAB قاعدة SQLite افتراضياً ويدعم PostgreSQL و MySQL عبر محوّلات قاعدة البيانات.
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
# SQLite (افتراضي — لا حاجة لإعداد)
|
|
367
|
+
npm start
|
|
368
|
+
|
|
369
|
+
# PostgreSQL
|
|
370
|
+
npm install pg
|
|
371
|
+
DB_ADAPTER=postgresql DATABASE_URL=postgres://user:pass@localhost:5432/wab npm start
|
|
372
|
+
|
|
373
|
+
# MySQL
|
|
374
|
+
npm install mysql2
|
|
375
|
+
DB_ADAPTER=mysql DATABASE_URL=mysql://user:pass@localhost:3306/wab npm start
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## 💻 واجهة سطر الأوامر (CLI)
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
# تشغيل الخادم
|
|
384
|
+
npx web-agent-bridge start
|
|
385
|
+
npx web-agent-bridge start --port 8080
|
|
386
|
+
|
|
387
|
+
# تهيئة مشروع جديد
|
|
388
|
+
npx web-agent-bridge init
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## 🔒 الأمان
|
|
394
|
+
|
|
395
|
+
### صندوق الحماية الأمني (Security Sandbox)
|
|
396
|
+
|
|
397
|
+
كل نسخة من الجسر تعمل داخل صندوق حماية يوفر:
|
|
398
|
+
|
|
399
|
+
- **توكنات جلسة** — توكن تشفيري فريد لكل جلسة يمنع هجمات الإعادة (Replay Attacks)
|
|
400
|
+
- **التحقق من الأصل** — فقط الأصول المصرح بها يمكنها التفاعل مع الجسر
|
|
401
|
+
- **تحقق من الأوامر** — كل أمر يُفحص من حيث الصيغة والطول وقائمة الحظر
|
|
402
|
+
- **سجل تدقيق** — كل إجراء يُسجّل بالتوقيت وبصمة الوكيل والحالة
|
|
403
|
+
- **حماية التصعيد** — محاولات الوصول لميزات أعلى تؤدي لتأمين تلقائي بعد 5 مخالفات
|
|
404
|
+
- **القفل التلقائي** — الجسر يصبح للقراءة فقط عند اكتشاف انتهاكات أمنية
|
|
405
|
+
|
|
406
|
+
### حماية الخادم
|
|
407
|
+
|
|
408
|
+
- **CSP (سياسة أمان المحتوى)** — حماية ضد XSS وحقن السكريبت
|
|
409
|
+
- **حماية iframe** — `frame-ancestors: 'none'` يمنع تحميل الموقع في إطارات غير موثوقة
|
|
410
|
+
- **تشفير كلمات المرور** — bcrypt بتكلفة 12
|
|
411
|
+
- **JWT** — توكن مؤقت ينتهي بعد 7 أيام
|
|
412
|
+
- **Rate Limiting** — تحديد معدل الطلبات
|
|
413
|
+
- **Helmet** — حماية رؤوس HTTP
|
|
414
|
+
- **حظر المحددات** — تقييد وصول الوكيل لعناصر محددة
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## 🔄 المحددات ذاتية الإصلاح (Self-Healing Selectors)
|
|
419
|
+
|
|
420
|
+
المواقع الحديثة (SPAs) تتغير باستمرار. نظام الإصلاح الذاتي يضمن استمرار عمل المحددات:
|
|
421
|
+
|
|
422
|
+
1. **البصمات** — عند اكتشاف الإجراءات، يُخزن WAB بصمة غنية لكل عنصر
|
|
423
|
+
2. **7 استراتيجيات** — عند تعطل محدد، يجرب WAB: `data-wab-id`، `data-testid`، ID، `aria-label`، `name`، مطابقة نصية ضبابية، موضع + دور
|
|
424
|
+
3. **مراقب SPA** — `MutationObserver` يرصد تغييرات DOM ويعيد اكتشاف الإجراءات تلقائياً
|
|
425
|
+
|
|
426
|
+
```javascript
|
|
427
|
+
// أضف هذا للاستقرار الأقصى
|
|
428
|
+
<button data-wab-id="signup-btn">إنشاء حساب</button>
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## 🥷 وضع التخفي (Stealth Mode)
|
|
434
|
+
|
|
435
|
+
لمواجهة أنظمة الحماية من البوتات:
|
|
436
|
+
|
|
437
|
+
```javascript
|
|
438
|
+
window.AIBridgeConfig = { stealth: { enabled: true } };
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
| الميزة | الوصف |
|
|
442
|
+
|---|---|
|
|
443
|
+
| سلسلة أحداث الفأرة | `mouseover → mouseenter → mousemove → mousedown → mouseup → click` |
|
|
444
|
+
| محاكاة الكتابة | حرف بحرف مع تأخير 30-120 مللي ثانية |
|
|
445
|
+
| تمرير تدريجي | خطوات متعددة بسرعة متغيرة |
|
|
446
|
+
| تأخيرات عشوائية | 50-400 مللي ثانية بين الإجراءات |
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## 🛠️ التقنيات
|
|
451
|
+
|
|
452
|
+
- **الخلفية**: Node.js + Express + WebSocket
|
|
453
|
+
- **قاعدة البيانات**: SQLite / PostgreSQL / MySQL
|
|
454
|
+
- **المصادقة**: JWT + bcrypt
|
|
455
|
+
- **الواجهة**: HTML/CSS/JS بدون أطر عمل
|
|
456
|
+
- **الأمان**: Helmet, CORS, CSP, Rate Limiting, Security Sandbox
|
|
457
|
+
- **الحاويات**: Docker + Docker Compose
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
## 💰 محرك التفاوض اللحظي
|
|
462
|
+
|
|
463
|
+
يحدد أصحاب المواقع قواعد التفاوض. يتفاوض وكيل الذكاء الاصطناعي على الأسعار في جلسات متعددة الجولات:
|
|
464
|
+
|
|
465
|
+
```javascript
|
|
466
|
+
// فتح جلسة تفاوض
|
|
467
|
+
const session = await fetch('/api/sovereign/negotiation/sessions', {
|
|
468
|
+
method: 'POST',
|
|
469
|
+
headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
|
|
470
|
+
body: JSON.stringify({
|
|
471
|
+
siteId: 'site-uuid',
|
|
472
|
+
agentId: 'agent-id',
|
|
473
|
+
originalPrice: 49.99,
|
|
474
|
+
itemId: 'product-123',
|
|
475
|
+
itemName: 'زيت زيتون ١ لتر'
|
|
476
|
+
})
|
|
477
|
+
}).then(r => r.json());
|
|
478
|
+
|
|
479
|
+
// تقديم عرض مضاد
|
|
480
|
+
const counter = await fetch(`/api/sovereign/negotiation/sessions/${session.sessionId}/propose`, {
|
|
481
|
+
method: 'POST',
|
|
482
|
+
headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
|
|
483
|
+
body: JSON.stringify({ agentId: 'agent-id', proposedPrice: 39.99 })
|
|
484
|
+
}).then(r => r.json());
|
|
485
|
+
// → { status: 'accepted', finalPrice: 42.49, message: 'صفقة! ...' }
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### أنواع الشروط
|
|
489
|
+
| الشرط | الوصف |
|
|
490
|
+
|---|---|
|
|
491
|
+
| `bulk_quantity` | خصم على الكميات الكبيرة |
|
|
492
|
+
| `loyalty` | مكافأة للعملاء المتكررين |
|
|
493
|
+
| `time_based` | عروض الساعة السعيدة |
|
|
494
|
+
| `first_purchase` | خصم ترحيبي للمشترين الجدد |
|
|
495
|
+
| `cart_value` | حد أدنى لقيمة السلة |
|
|
496
|
+
| `seasonal` | عروض موسمية بتواريخ محددة |
|
|
497
|
+
| `membership` | أسعار خاصة للأعضاء |
|
|
498
|
+
| `referral` | خصومات الإحالة |
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
## 🛡️ درع مقاومة التزييف (Anti-Hallucination Shield)
|
|
503
|
+
|
|
504
|
+
محرك تحقق متقاطع يكتشف أكاذيب الذكاء الاصطناعي قبل وصولها للمستخدم:
|
|
505
|
+
|
|
506
|
+
```javascript
|
|
507
|
+
// التحقق من سعر
|
|
508
|
+
const result = await fetch('/api/sovereign/verify/price', {
|
|
509
|
+
method: 'POST',
|
|
510
|
+
headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' },
|
|
511
|
+
body: JSON.stringify({
|
|
512
|
+
siteId: 'site-uuid',
|
|
513
|
+
domValue: 29.99,
|
|
514
|
+
visionValue: 29.99,
|
|
515
|
+
category: 'electronics',
|
|
516
|
+
itemName: 'كابل USB'
|
|
517
|
+
})
|
|
518
|
+
}).then(r => r.json());
|
|
519
|
+
// → { verified: true, confidence: 0.98, severity: 'none' }
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### طبقات التحقق
|
|
523
|
+
١. **DOM مقابل الرؤية** — يقارن السعر المستخرج من DOM مع قراءة لقطة الشاشة
|
|
524
|
+
٢. **المعيار السوقي** — يتحقق من السعر مقابل البيانات التاريخية للفئة
|
|
525
|
+
٣. **الاتساق الزمني** — يفحص هل تغير السعر بشكل مريب منذ آخر تحقق
|
|
526
|
+
٤. **النتيجة المركبة** — مزيج مرجح من جميع الطبقات مع تصنيف الخطورة
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
## 📦 متجر قوالب الوكلاء (Community Agent Hub)
|
|
531
|
+
|
|
532
|
+
قوالب YAML جاهزة لحالات الاستخدام الشائعة. شغّل أي قالب من سطر الأوامر:
|
|
533
|
+
|
|
534
|
+
```bash
|
|
535
|
+
# عرض القوالب المتاحة
|
|
536
|
+
npx wab-agent templates
|
|
537
|
+
|
|
538
|
+
# تشغيل قالب
|
|
539
|
+
npx wab-agent run olive-oil-tunisia --budget 50 --region tunis
|
|
540
|
+
|
|
541
|
+
# تشغيل مع خادم مخصص
|
|
542
|
+
npx wab-agent run hotel-direct-booking --server https://yourserver.com
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
### القوالب المتاحة
|
|
546
|
+
| القالب | الوصف |
|
|
547
|
+
|---|---|
|
|
548
|
+
| `olive-oil-tunisia` | زيت زيتون من مزارع تونسية صغيرة |
|
|
549
|
+
| `hotel-direct-booking` | حجز فنادق مباشر بدون وسطاء |
|
|
550
|
+
| `artisan-marketplace` | منتجات يدوية من حرفيين مستقلين |
|
|
551
|
+
| `grocery-price-compare` | مقارنة أسعار البقالة بين المتاجر المحلية |
|
|
552
|
+
| `freelancer-direct` | مستقلون بدون رسوم منصات |
|
|
553
|
+
| `restaurant-direct` | مطاعم بدون تطبيقات توصيل |
|
|
554
|
+
| `book-price-scout` | كتب من مكتبات مستقلة |
|
|
555
|
+
| `flight-deal-hunter` | رحلات مباشرة من شركات الطيران |
|
|
556
|
+
| `electronics-price-tracker` | تتبع أسعار الإلكترونيات |
|
|
557
|
+
| `local-services` | مزودي خدمات محليين |
|
|
558
|
+
| `organic-farm-fresh` | منتجات عضوية مباشرة من المزارع |
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
## 🤝 المساهمة
|
|
563
|
+
|
|
564
|
+
نرحب بالمساهمات! اقرأ [دليل المساهمة](CONTRIBUTING.md) للبدء.
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## 📄 الرخصة
|
|
569
|
+
|
|
570
|
+
MIT — مجاني للاستخدام والتعديل والتوزيع.
|
|
571
|
+
|
|
572
|
+
</div>
|