web-agent-bridge 3.0.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +72 -21
- package/README.ar.md +1286 -1073
- package/README.md +1764 -1535
- package/bin/agent-runner.js +474 -474
- package/bin/cli.js +237 -138
- package/bin/wab.js +80 -80
- package/examples/bidi-agent.js +119 -119
- package/examples/cross-site-agent.js +91 -91
- package/examples/mcp-agent.js +94 -94
- package/examples/next-app-router/README.md +44 -44
- package/examples/puppeteer-agent.js +108 -108
- package/examples/saas-dashboard/README.md +55 -55
- package/examples/shopify-hydrogen/README.md +74 -74
- package/examples/vision-agent.js +171 -171
- package/examples/wordpress-elementor/README.md +77 -77
- package/package.json +17 -3
- package/public/.well-known/agent-tools.json +180 -180
- package/public/.well-known/ai-assets.json +59 -59
- package/public/.well-known/ai-plugin.json +28 -0
- package/public/.well-known/security.txt +8 -0
- package/public/agent-workspace.html +349 -347
- package/public/ai.html +198 -196
- package/public/api.html +413 -0
- package/public/browser.html +486 -484
- package/public/commander-dashboard.html +243 -243
- package/public/cookies.html +210 -208
- package/public/css/agent-workspace.css +1713 -1713
- package/public/css/premium.css +317 -317
- package/public/css/styles.css +1235 -1235
- package/public/dashboard.html +706 -704
- package/public/demo.html +1770 -1
- package/public/dns.html +507 -0
- package/public/docs.html +587 -585
- package/public/feed.xml +89 -89
- package/public/growth.html +463 -0
- package/public/index.html +341 -9
- package/public/integrations.html +556 -0
- package/public/js/agent-workspace.js +1740 -1740
- 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 -721
- package/public/js/ws-client.js +74 -74
- package/public/llms-full.txt +360 -309
- package/public/llms.txt +125 -86
- package/public/login.html +85 -83
- package/public/mesh-dashboard.html +328 -328
- package/public/openapi.json +580 -580
- package/public/phone-shield.html +281 -0
- package/public/premium-dashboard.html +2489 -2487
- package/public/premium.html +793 -791
- package/public/privacy.html +297 -295
- package/public/register.html +105 -103
- package/public/robots.txt +87 -87
- package/public/script/wab-consent.d.ts +36 -36
- package/public/script/wab-consent.js +104 -104
- package/public/script/wab-schema.js +131 -131
- package/public/script/wab.d.ts +108 -108
- package/public/script/wab.min.js +580 -580
- package/public/security.txt +8 -0
- package/public/terms.html +256 -254
- package/script/ai-agent-bridge.js +1754 -1754
- package/sdk/README.md +99 -99
- package/sdk/agent-mesh.js +449 -449
- package/sdk/commander.js +262 -262
- package/sdk/index.d.ts +464 -464
- package/sdk/index.js +18 -1
- package/sdk/multi-agent.js +318 -318
- package/sdk/package.json +12 -1
- package/sdk/safety-shield.js +219 -0
- package/sdk/schema-discovery.js +83 -83
- package/server/adapters/index.js +520 -520
- package/server/config/plans.js +367 -367
- package/server/config/secrets.js +102 -102
- package/server/control-plane/index.js +301 -301
- package/server/data-plane/index.js +354 -354
- package/server/index.js +175 -19
- package/server/llm/index.js +404 -404
- package/server/middleware/adminAuth.js +35 -35
- package/server/middleware/auth.js +50 -50
- package/server/middleware/featureGate.js +88 -88
- package/server/middleware/rateLimits.js +100 -100
- package/server/middleware/sensitiveAction.js +157 -0
- package/server/migrations/001_add_analytics_indexes.sql +7 -7
- package/server/migrations/002_premium_features.sql +418 -418
- package/server/migrations/003_ads_integer_cents.sql +33 -33
- package/server/migrations/004_agent_os.sql +158 -158
- package/server/migrations/005_marketplace_metering.sql +126 -126
- 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 +681 -681
- package/server/observability/failure-analysis.js +337 -337
- package/server/observability/index.js +394 -394
- package/server/protocol/capabilities.js +223 -223
- package/server/protocol/index.js +243 -243
- package/server/protocol/schema.js +584 -584
- package/server/registry/certification.js +271 -271
- package/server/registry/index.js +326 -326
- package/server/routes/admin-premium.js +671 -671
- package/server/routes/admin.js +261 -261
- package/server/routes/ads.js +130 -130
- package/server/routes/agent-workspace.js +540 -378
- package/server/routes/api.js +150 -150
- package/server/routes/auth.js +71 -71
- package/server/routes/billing.js +45 -45
- package/server/routes/commander.js +316 -316
- package/server/routes/demo-showcase.js +332 -0
- package/server/routes/demo-store.js +154 -0
- package/server/routes/discovery.js +417 -406
- package/server/routes/gateway.js +173 -0
- package/server/routes/license.js +251 -240
- package/server/routes/mesh.js +469 -469
- package/server/routes/noscript.js +543 -543
- package/server/routes/premium-v2.js +686 -686
- package/server/routes/premium.js +724 -724
- package/server/routes/runtime.js +2148 -2147
- package/server/routes/sovereign.js +465 -385
- package/server/routes/universal.js +200 -177
- package/server/routes/wab-api.js +850 -491
- package/server/runtime/container-worker.js +111 -111
- package/server/runtime/container.js +448 -448
- package/server/runtime/distributed-worker.js +362 -362
- package/server/runtime/event-bus.js +210 -210
- package/server/runtime/index.js +253 -253
- package/server/runtime/queue.js +599 -599
- package/server/runtime/replay.js +666 -666
- package/server/runtime/sandbox.js +266 -266
- package/server/runtime/scheduler.js +534 -534
- package/server/runtime/session-engine.js +293 -293
- package/server/runtime/state-manager.js +188 -188
- package/server/security/cross-site-redactor.js +196 -0
- package/server/security/dry-run.js +180 -0
- package/server/security/human-gate-rate-limit.js +147 -0
- package/server/security/human-gate-transports.js +178 -0
- package/server/security/human-gate.js +281 -0
- package/server/security/index.js +368 -368
- package/server/security/intent-engine.js +245 -0
- package/server/security/reward-guard.js +171 -0
- package/server/security/rollback-store.js +239 -0
- package/server/security/token-scope.js +404 -0
- package/server/security/url-policy.js +139 -0
- package/server/services/agent-chat.js +506 -506
- package/server/services/agent-learning.js +601 -575
- package/server/services/agent-memory.js +625 -625
- package/server/services/agent-mesh.js +555 -539
- package/server/services/agent-symphony.js +717 -717
- package/server/services/agent-tasks.js +1807 -1807
- package/server/services/api-key-engine.js +292 -0
- package/server/services/cluster.js +894 -894
- package/server/services/commander.js +738 -738
- package/server/services/edge-compute.js +440 -440
- package/server/services/email.js +204 -204
- package/server/services/hosted-runtime.js +205 -205
- package/server/services/lfd.js +635 -616
- package/server/services/local-ai.js +389 -389
- package/server/services/marketplace.js +270 -270
- package/server/services/metering.js +182 -182
- package/server/services/modules/affiliate-intelligence.js +93 -0
- package/server/services/modules/agent-firewall.js +90 -0
- package/server/services/modules/bounty.js +89 -0
- package/server/services/modules/collective-bargaining.js +92 -0
- package/server/services/modules/dark-pattern.js +66 -0
- package/server/services/modules/gov-intelligence.js +45 -0
- package/server/services/modules/neural.js +55 -0
- package/server/services/modules/notary.js +49 -0
- package/server/services/modules/price-time-machine.js +86 -0
- package/server/services/modules/protocol.js +104 -0
- package/server/services/negotiation.js +439 -439
- package/server/services/plugins.js +771 -771
- package/server/services/premium.js +1 -1
- package/server/services/price-intelligence.js +566 -565
- package/server/services/price-shield.js +1137 -1137
- package/server/services/reputation.js +465 -465
- package/server/services/search-engine.js +357 -357
- package/server/services/security.js +513 -513
- package/server/services/self-healing.js +843 -843
- package/server/services/sovereign-shield.js +542 -0
- package/server/services/stripe.js +192 -192
- package/server/services/swarm.js +788 -788
- package/server/services/universal-scraper.js +662 -661
- package/server/services/verification.js +481 -481
- package/server/services/vision.js +1163 -1163
- package/server/utils/cache.js +125 -125
- package/server/utils/migrate.js +81 -81
- package/server/utils/safe-fetch.js +228 -0
- package/server/utils/secureFields.js +50 -50
- package/server/ws.js +161 -161
- package/templates/artisan-marketplace.yaml +104 -104
- package/templates/book-price-scout.yaml +98 -98
- package/templates/electronics-price-tracker.yaml +108 -108
- package/templates/flight-deal-hunter.yaml +113 -113
- package/templates/freelancer-direct.yaml +116 -116
- package/templates/grocery-price-compare.yaml +93 -93
- package/templates/hotel-direct-booking.yaml +113 -113
- package/templates/local-services.yaml +98 -98
- package/templates/olive-oil-tunisia.yaml +88 -88
- package/templates/organic-farm-fresh.yaml +101 -101
- package/templates/restaurant-direct.yaml +97 -97
- package/server/services/fairness-engine.js +0 -409
- package/server/services/fairness.js +0 -420
package/README.ar.md
CHANGED
|
@@ -1,1073 +1,1286 @@
|
|
|
1
|
-
<div dir="rtl" align="right">
|
|
2
|
-
|
|
3
|
-
# Web Agent Bridge (WAB) — جسر الوكيل الذكي
|
|
4
|
-
|
|
5
|
-
[](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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
├──
|
|
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
|
-
| `/api/
|
|
353
|
-
| `/api/
|
|
354
|
-
| `/api/
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
| `/api/
|
|
361
|
-
| `/api/
|
|
362
|
-
| `/api/
|
|
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
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
```
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
```
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
```
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
//
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
//
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
```
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
|
950
|
-
|
|
951
|
-
|
|
|
952
|
-
|
|
|
953
|
-
|
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
```
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
|
1032
|
-
|
|
1033
|
-
|
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
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
|
+
[](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>
|