web-agent-bridge 3.2.0 → 3.4.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 +84 -72
- package/README.ar.md +1304 -1152
- package/README.md +298 -1635
- package/bin/agent-runner.js +474 -474
- package/bin/cli.js +237 -138
- package/bin/wab-init.js +223 -0
- package/bin/wab.js +80 -80
- package/examples/azure-dns-wab.js +83 -0
- package/examples/bidi-agent.js +119 -119
- package/examples/cloudflare-wab-dns.js +121 -0
- package/examples/cpanel-wab-dns.js +114 -0
- package/examples/cross-site-agent.js +91 -91
- package/examples/dns-discovery-agent.js +166 -0
- package/examples/gcp-dns-wab.js +76 -0
- package/examples/governance-agent.js +169 -0
- package/examples/mcp-agent.js +94 -94
- package/examples/next-app-router/README.md +44 -44
- package/examples/plesk-wab-dns.js +103 -0
- package/examples/puppeteer-agent.js +108 -108
- package/examples/route53-wab-dns.js +144 -0
- package/examples/saas-dashboard/README.md +55 -55
- package/examples/safe-mode-agent.js +96 -0
- package/examples/shopify-hydrogen/README.md +74 -74
- package/examples/vision-agent.js +171 -171
- package/examples/wab-sign.js +74 -0
- package/examples/wab-verify.js +60 -0
- package/examples/wordpress-elementor/README.md +77 -77
- package/package.json +19 -6
- package/public/.well-known/agent-tools.json +180 -180
- package/public/.well-known/ai-assets.json +59 -59
- package/public/.well-known/security.txt +8 -0
- package/public/.well-known/wab.json +28 -0
- package/public/activate.html +368 -0
- package/public/adoption-metrics.html +188 -0
- package/public/agent-workspace.html +349 -349
- package/public/ai.html +198 -198
- package/public/api.html +413 -412
- package/public/azure-dns-integration.html +289 -0
- package/public/browser.html +486 -486
- package/public/cloudflare-integration.html +380 -0
- package/public/commander-dashboard.html +243 -243
- package/public/cookies.html +210 -210
- package/public/cpanel-integration.html +398 -0
- package/public/css/agent-workspace.css +1713 -1713
- package/public/css/premium.css +317 -317
- package/public/css/styles.css +1263 -1235
- package/public/dashboard.html +707 -706
- package/public/dns.html +436 -0
- package/public/docs.html +588 -587
- package/public/feed.xml +89 -89
- package/public/gcp-dns-integration.html +318 -0
- package/public/growth.html +465 -463
- package/public/index.html +1266 -982
- package/public/integrations.html +556 -0
- package/public/js/activate.js +145 -0
- package/public/js/agent-workspace.js +1740 -1740
- package/public/js/auth-nav.js +65 -31
- package/public/js/auth-redirect.js +12 -12
- package/public/js/cookie-consent.js +56 -56
- package/public/js/dns.js +438 -0
- package/public/js/wab-demo-page.js +721 -721
- package/public/js/ws-client.js +74 -74
- package/public/llms-full.txt +360 -360
- package/public/llms.txt +125 -125
- package/public/login.html +85 -85
- package/public/mesh-dashboard.html +328 -328
- package/public/openapi.json +669 -580
- package/public/phone-shield.html +281 -0
- package/public/plesk-integration.html +375 -0
- package/public/premium-dashboard.html +2489 -2489
- package/public/premium.html +793 -793
- package/public/privacy.html +297 -297
- package/public/provider-onboarding.html +172 -0
- package/public/provider-sandbox.html +134 -0
- package/public/providers.html +359 -0
- package/public/register.html +105 -105
- package/public/registrar-integrations.html +141 -0
- package/public/robots.txt +99 -87
- package/public/route53-integration.html +531 -0
- 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/shieldqr.html +231 -0
- package/public/sitemap.xml +6 -0
- package/public/terms.html +256 -256
- package/public/wab-trust.html +200 -0
- package/public/wab-vs-protocols.html +210 -0
- package/public/whitepaper.html +449 -0
- package/script/ai-agent-bridge.js +1754 -1754
- package/sdk/README.md +99 -99
- package/sdk/agent-mesh.js +449 -449
- package/sdk/auto-discovery.js +288 -0
- package/sdk/commander.js +262 -262
- package/sdk/governance.js +262 -0
- package/sdk/index.d.ts +464 -464
- package/sdk/index.js +25 -1
- package/sdk/multi-agent.js +318 -318
- package/sdk/package.json +2 -2
- package/sdk/safe-mode.js +221 -0
- 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 +670 -427
- 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/migrations/007_governance.sql +106 -0
- package/server/migrations/008_plans.sql +144 -0
- package/server/migrations/009_shieldqr.sql +30 -0
- package/server/migrations/010_extended_trust.sql +33 -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 +740 -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-plans.js +76 -0
- package/server/routes/admin-premium.js +673 -671
- package/server/routes/admin-shieldqr.js +90 -0
- package/server/routes/admin-trust-monitor.js +83 -0
- package/server/routes/admin.js +549 -261
- package/server/routes/ads.js +130 -130
- package/server/routes/agent-workspace.js +540 -540
- package/server/routes/api.js +150 -150
- package/server/routes/auth.js +71 -71
- package/server/routes/billing.js +57 -45
- package/server/routes/commander.js +316 -316
- package/server/routes/demo-showcase.js +332 -332
- package/server/routes/demo-store.js +154 -0
- package/server/routes/discovery.js +2348 -417
- package/server/routes/gateway.js +173 -157
- package/server/routes/governance.js +208 -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/plans.js +33 -0
- package/server/routes/premium-v2.js +686 -686
- package/server/routes/premium.js +724 -724
- package/server/routes/providers.js +650 -0
- package/server/routes/runtime.js +2148 -2147
- package/server/routes/shieldqr.js +88 -0
- package/server/routes/sovereign.js +465 -385
- package/server/routes/universal.js +200 -185
- package/server/routes/wab-api.js +850 -501
- 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 -261
- 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 +233 -204
- package/server/services/governance.js +466 -0
- package/server/services/hosted-runtime.js +205 -205
- package/server/services/lfd.js +635 -635
- 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 -93
- package/server/services/modules/agent-firewall.js +90 -90
- package/server/services/modules/bounty.js +89 -89
- package/server/services/modules/collective-bargaining.js +92 -92
- package/server/services/modules/dark-pattern.js +66 -66
- package/server/services/modules/gov-intelligence.js +45 -45
- package/server/services/modules/neural.js +55 -55
- package/server/services/modules/notary.js +49 -49
- package/server/services/modules/price-time-machine.js +86 -86
- package/server/services/modules/protocol.js +104 -104
- package/server/services/negotiation.js +439 -439
- package/server/services/plans.js +214 -0
- package/server/services/plugins.js +771 -771
- package/server/services/premium.js +1 -1
- package/server/services/price-intelligence.js +566 -566
- package/server/services/price-shield.js +1137 -1137
- package/server/services/provider-clients.js +740 -0
- 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/shieldqr.js +322 -0
- package/server/services/sovereign-shield.js +542 -0
- package/server/services/ssl-inspector.js +42 -0
- package/server/services/ssl-monitor.js +167 -0
- package/server/services/stripe.js +205 -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/services/wab-crypto.js +178 -0
- 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/public/score.html +0 -263
- package/server/migrations/006_growth_suite.sql +0 -138
- package/server/routes/growth.js +0 -962
- package/server/services/fairness-engine.js +0 -409
- package/server/services/fairness.js +0 -420
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" dir="ltr">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>WAB Integrations — Deploy Web Agent Bridge Anywhere</title>
|
|
7
|
+
<meta name="description" content="Deploy Web Agent Bridge in one click to Vercel, Netlify, Railway, Cloudflare Workers, WordPress, Docker, or any Linux server. Make your site AI-ready instantly.">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<style>body{background:#0a0e1a;color:#f0f4ff;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0;min-height:100vh}</style>
|
|
11
|
+
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
|
12
|
+
<noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet"></noscript>
|
|
13
|
+
<link rel="stylesheet" href="/css/styles.css?v=3.2.0">
|
|
14
|
+
<style>
|
|
15
|
+
.int-hero{padding:120px 0 40px;text-align:center}
|
|
16
|
+
.int-hero h1{font-size:3rem;margin:0 0 16px;background:linear-gradient(135deg,#6366f1,#8b5cf6,#ec4899);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
|
|
17
|
+
.int-hero .subtitle{font-size:1.2rem;color:#94a3b8;max-width:760px;margin:0 auto 32px;line-height:1.6}
|
|
18
|
+
.lang-switch{display:flex;justify-content:center;gap:8px;margin-bottom:24px}
|
|
19
|
+
.lang-switch button{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#f0f4ff;padding:8px 20px;border-radius:8px;cursor:pointer;font-size:.9rem;transition:.2s;font-family:inherit}
|
|
20
|
+
.lang-switch button.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent}
|
|
21
|
+
.section-title{text-align:center;font-size:2.2rem;margin:60px 0 12px;color:#f0f4ff}
|
|
22
|
+
.section-sub{text-align:center;color:#94a3b8;max-width:700px;margin:0 auto 40px;padding:0 20px;line-height:1.6}
|
|
23
|
+
.int-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:24px;padding:0 24px;max-width:1280px;margin:0 auto 60px}
|
|
24
|
+
.int-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:28px;transition:.3s;display:flex;flex-direction:column}
|
|
25
|
+
.int-card:hover{border-color:rgba(99,102,241,.4);transform:translateY(-3px);box-shadow:0 10px 40px rgba(99,102,241,.15)}
|
|
26
|
+
.int-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
|
|
27
|
+
.int-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0}
|
|
28
|
+
.int-icon-vercel{background:#000;border:1px solid #333}
|
|
29
|
+
.int-icon-netlify{background:rgba(0,173,175,.15);color:#00adaf}
|
|
30
|
+
.int-icon-railway{background:rgba(139,92,246,.15);color:#a78bfa}
|
|
31
|
+
.int-icon-cloudflare{background:rgba(243,128,32,.15);color:#f38020}
|
|
32
|
+
.int-icon-docker{background:rgba(36,150,237,.15);color:#2496ed}
|
|
33
|
+
.int-icon-wordpress{background:rgba(33,117,155,.15);color:#21759b}
|
|
34
|
+
.int-icon-linux{background:rgba(252,186,3,.12);color:#fcba03}
|
|
35
|
+
.int-icon-dns{background:rgba(34,197,94,.15);color:#4ade80}
|
|
36
|
+
.int-card h3{margin:0;font-size:1.25rem;color:#f0f4ff}
|
|
37
|
+
.int-card .tag{display:inline-block;padding:3px 10px;border-radius:6px;font-size:.7rem;font-weight:600;margin-left:6px;vertical-align:middle}
|
|
38
|
+
.tag-free{background:rgba(34,197,94,.15);color:#4ade80}
|
|
39
|
+
.tag-edge{background:rgba(243,128,32,.15);color:#f38020}
|
|
40
|
+
.tag-cms{background:rgba(99,102,241,.15);color:#818cf8}
|
|
41
|
+
.tag-coming{background:rgba(245,158,11,.15);color:#fbbf24}
|
|
42
|
+
.int-card .desc{color:#94a3b8;font-size:.95rem;line-height:1.6;margin:0 0 16px;flex:1}
|
|
43
|
+
.int-features{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:6px}
|
|
44
|
+
.int-features li{color:#cbd5e1;font-size:.85rem;padding-left:22px;position:relative;line-height:1.5}
|
|
45
|
+
.int-features li::before{content:'✓';color:#4ade80;position:absolute;left:0;font-weight:700}
|
|
46
|
+
[dir="rtl"] .int-features li{padding-left:0;padding-right:22px}
|
|
47
|
+
[dir="rtl"] .int-features li::before{left:auto;right:0}
|
|
48
|
+
.int-steps{background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:14px 18px;margin:0 0 16px}
|
|
49
|
+
.int-steps h5{margin:0 0 10px;font-size:.82rem;color:#a5b4fc;text-transform:uppercase;letter-spacing:.5px}
|
|
50
|
+
.int-steps ol{margin:0;padding-left:18px;color:#94a3b8;font-size:.85rem;line-height:1.7}
|
|
51
|
+
[dir="rtl"] .int-steps ol{padding-left:0;padding-right:18px}
|
|
52
|
+
.int-steps code{background:rgba(99,102,241,.1);color:#a5b4fc;padding:2px 6px;border-radius:4px;font-family:'JetBrains Mono',monospace;font-size:.78rem}
|
|
53
|
+
[dir="rtl"] .int-steps code{direction:ltr;display:inline-block}
|
|
54
|
+
.deploy-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto}
|
|
55
|
+
.deploy-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;font-weight:600;font-size:.88rem;text-decoration:none;transition:.2s;border:1px solid transparent}
|
|
56
|
+
.deploy-btn:hover{transform:translateY(-1px)}
|
|
57
|
+
.btn-vercel{background:#000;color:#fff;border-color:#333}
|
|
58
|
+
.btn-vercel:hover{background:#111}
|
|
59
|
+
.btn-netlify{background:#00adaf;color:#fff}
|
|
60
|
+
.btn-railway{background:#8b5cf6;color:#fff}
|
|
61
|
+
.btn-cloudflare{background:#f38020;color:#fff}
|
|
62
|
+
.btn-docker{background:#2496ed;color:#fff}
|
|
63
|
+
.btn-wordpress{background:#21759b;color:#fff}
|
|
64
|
+
.btn-linux{background:linear-gradient(135deg,#fcba03,#f59e0b);color:#000}
|
|
65
|
+
.btn-dns{background:#4ade80;color:#064e3b}
|
|
66
|
+
.btn-outline{background:transparent;color:#cbd5e1;border-color:rgba(255,255,255,.12)}
|
|
67
|
+
.btn-outline:hover{background:rgba(255,255,255,.05);color:#fff}
|
|
68
|
+
.long-desc{max-width:820px;margin:0 auto 60px;padding:0 24px;color:#cbd5e1;font-size:.95rem;line-height:1.75}
|
|
69
|
+
.long-desc .box{background:rgba(99,102,241,.06);border:1px solid rgba(99,102,241,.18);border-radius:14px;padding:22px 26px;margin:18px 0}
|
|
70
|
+
.long-desc h4{margin:0 0 8px;color:#a5b4fc;font-size:1.05rem}
|
|
71
|
+
.long-desc code{background:rgba(0,0,0,.35);color:#a5b4fc;padding:2px 7px;border-radius:4px;font-family:'JetBrains Mono',monospace;font-size:.85rem}
|
|
72
|
+
.long-desc pre{background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:16px 18px;overflow-x:auto;font-family:'JetBrains Mono',monospace;font-size:.82rem;color:#a5b4fc;line-height:1.7}
|
|
73
|
+
[dir="rtl"] .long-desc pre,[dir="rtl"] .long-desc code{direction:ltr;text-align:left}
|
|
74
|
+
.matrix-section{max-width:1100px;margin:0 auto 60px;padding:0 24px}
|
|
75
|
+
.matrix-table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}
|
|
76
|
+
.matrix-table th,.matrix-table td{padding:14px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);font-size:.88rem}
|
|
77
|
+
[dir="rtl"] .matrix-table th,[dir="rtl"] .matrix-table td{text-align:right}
|
|
78
|
+
.matrix-table th{background:rgba(99,102,241,.1);color:#a5b4fc;font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.5px}
|
|
79
|
+
.matrix-table td{color:#cbd5e1}
|
|
80
|
+
.matrix-table tr:last-child td{border-bottom:none}
|
|
81
|
+
.matrix-table .yes{color:#4ade80}
|
|
82
|
+
.matrix-table .no{color:#ef4444}
|
|
83
|
+
.matrix-table .partial{color:#fbbf24}
|
|
84
|
+
.cta-section{text-align:center;padding:60px 24px 80px;max-width:900px;margin:0 auto}
|
|
85
|
+
.cta-section h2{font-size:2rem;margin-bottom:12px}
|
|
86
|
+
.cta-section p{color:#94a3b8;margin-bottom:24px;font-size:1.05rem}
|
|
87
|
+
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
|
|
88
|
+
[hidden]{display:none!important}
|
|
89
|
+
@media(max-width:640px){
|
|
90
|
+
.int-hero h1{font-size:2rem}
|
|
91
|
+
.int-hero .subtitle{font-size:1rem;padding:0 20px}
|
|
92
|
+
.section-title{font-size:1.6rem}
|
|
93
|
+
}
|
|
94
|
+
</style>
|
|
95
|
+
</head>
|
|
96
|
+
<body>
|
|
97
|
+
|
|
98
|
+
<!-- ═══════════ NAVBAR ═══════════ -->
|
|
99
|
+
<nav class="navbar" id="navbar">
|
|
100
|
+
<div class="container">
|
|
101
|
+
<a href="/" class="navbar-brand">
|
|
102
|
+
<div class="brand-icon">⚡</div>
|
|
103
|
+
<span>WAB</span>
|
|
104
|
+
</a>
|
|
105
|
+
<ul class="navbar-links">
|
|
106
|
+
<li><a href="/">Home</a></li>
|
|
107
|
+
<li><a href="/docs">Docs</a></li>
|
|
108
|
+
<li><a href="/api">API</a></li>
|
|
109
|
+
<li><a href="/integrations" class="active">Integrations</a></li>
|
|
110
|
+
<li><a href="/phone-shield">Phone Shield</a></li>
|
|
111
|
+
<li><a href="/demo">Demo</a></li>
|
|
112
|
+
<li><a href="/workspace">Workspace</a></li>
|
|
113
|
+
</ul>
|
|
114
|
+
<div class="navbar-actions">
|
|
115
|
+
<a href="/login" class="btn btn-ghost" data-wab-auth="guest">Sign In</a>
|
|
116
|
+
<a href="/dashboard" class="btn btn-ghost" data-wab-auth="signed-in" style="display:none">Dashboard</a>
|
|
117
|
+
<a href="/register" class="btn btn-primary btn-sm" data-wab-auth="guest">Get Started</a>
|
|
118
|
+
</div>
|
|
119
|
+
<button class="mobile-menu-btn" >☰</button>
|
|
120
|
+
</div>
|
|
121
|
+
</nav>
|
|
122
|
+
|
|
123
|
+
<!-- ═══════════ HERO ═══════════ -->
|
|
124
|
+
<section class="int-hero">
|
|
125
|
+
<div class="container">
|
|
126
|
+
<div class="lang-switch">
|
|
127
|
+
<button id="btn-en" class="active" onclick="switchLang('en')">English</button>
|
|
128
|
+
<button id="btn-ar" onclick="switchLang('ar')">العربية</button>
|
|
129
|
+
</div>
|
|
130
|
+
<h1 data-en="Deploy WAB Anywhere" data-ar="انشر WAB في أي مكان">Deploy WAB Anywhere</h1>
|
|
131
|
+
<p class="subtitle" data-en="One-click deploys to Vercel, Netlify, Railway, Cloudflare Workers, WordPress, Docker, and any Linux server. Make your website AI-ready in under two minutes — no developer required." data-ar="نشر بنقرة واحدة إلى Vercel و Netlify و Railway و Cloudflare Workers و WordPress و Docker وأي خادم لينكس. اجعل موقعك جاهزاً للذكاء الاصطناعي في أقل من دقيقتين — بدون مطوّر.">One-click deploys to Vercel, Netlify, Railway, Cloudflare Workers, WordPress, Docker, and any Linux server. Make your website AI-ready in under two minutes — no developer required.</p>
|
|
132
|
+
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap">
|
|
133
|
+
<a href="#platforms" class="btn btn-primary" data-en="Browse Platforms" data-ar="استعرض المنصات">Browse Platforms</a>
|
|
134
|
+
<a href="#infrastructure" class="btn btn-ghost" data-en="Infrastructure Integrations" data-ar="تكاملات البنية التحتية">Infrastructure Integrations</a>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
</section>
|
|
138
|
+
|
|
139
|
+
<!-- ═══════════ STRATEGY / PHILOSOPHY ═══════════ -->
|
|
140
|
+
<div class="long-desc">
|
|
141
|
+
<div class="box">
|
|
142
|
+
<h4 data-en="From Optional Library → Default Web Infrastructure" data-ar="من مكتبة اختيارية → إلى بنية تحتية افتراضية للويب">From Optional Library → Default Web Infrastructure</h4>
|
|
143
|
+
<p data-en="Most websites will never install an AI-compatibility library by choice. To reach every site on the web, WAB must integrate at the same layers that already power the internet: hosting control panels, web servers, CMSs, CDNs, and DNS. Every integration on this page targets one of those layers — shifting the cost of adoption from individual developers to the infrastructure itself." data-ar="معظم المواقع لن تثبّت مكتبة توافق مع الذكاء الاصطناعي باختيارها. للوصول إلى كل موقع على الويب، يجب أن يندمج WAB في نفس الطبقات التي تشغّل الإنترنت بالفعل: لوحات تحكم الاستضافة، وخوادم الويب، وأنظمة إدارة المحتوى، وشبكات توصيل المحتوى، ونظام DNS. كل تكامل في هذه الصفحة يستهدف إحدى تلك الطبقات — فينقل عبء التبني من المطوّر الفردي إلى البنية التحتية نفسها.">Most websites will never install an AI-compatibility library by choice. To reach every site on the web, WAB must integrate at the same layers that already power the internet: hosting control panels, web servers, CMSs, CDNs, and DNS. Every integration on this page targets one of those layers — shifting the cost of adoption from individual developers to the infrastructure itself.</p>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
|
|
147
|
+
<!-- ═══════════ PLATFORMS / ONE-CLICK DEPLOY ═══════════ -->
|
|
148
|
+
<h2 class="section-title" id="platforms" data-en="One-Click Cloud Deployments" data-ar="نشر سحابي بنقرة واحدة">One-Click Cloud Deployments</h2>
|
|
149
|
+
<p class="section-sub" data-en="Fork, configure, and run WAB on your preferred platform. All templates are open-source (MIT) and include production-ready defaults." data-ar="انسخ وكوّن وشغّل WAB على منصتك المفضلة. كل القوالب مفتوحة المصدر (MIT) وتتضمن إعدادات جاهزة للإنتاج.">Fork, configure, and run WAB on your preferred platform. All templates are open-source (MIT) and include production-ready defaults.</p>
|
|
150
|
+
|
|
151
|
+
<div class="int-grid">
|
|
152
|
+
|
|
153
|
+
<!-- ─── Vercel ───────────────────────────────────────────────────── -->
|
|
154
|
+
<div class="int-card">
|
|
155
|
+
<div class="int-head">
|
|
156
|
+
<div class="int-icon int-icon-vercel">▲</div>
|
|
157
|
+
<h3>Vercel <span class="tag tag-free" data-en="Free tier" data-ar="طبقة مجانية">Free tier</span></h3>
|
|
158
|
+
</div>
|
|
159
|
+
<p class="desc" data-en="Deploy WAB as a serverless Next.js-style project. Zero config, global edge network, instant HTTPS. Ideal for starter sites and landing pages that need AI-agent compatibility without running a server." data-ar="انشر WAB كمشروع بدون خادم بنمط Next.js. بدون إعدادات، شبكة حافة عالمية، HTTPS فوري. مثالي للمواقع الأولى وصفحات الهبوط التي تحتاج توافقاً مع وكلاء الذكاء الاصطناعي دون تشغيل خادم.">Deploy WAB as a serverless Next.js-style project. Zero config, global edge network, instant HTTPS. Ideal for starter sites and landing pages that need AI-agent compatibility without running a server.</p>
|
|
160
|
+
<ul class="int-features">
|
|
161
|
+
<li data-en="Serverless functions with auto-scaling" data-ar="دوال بدون خادم مع توسع تلقائي">Serverless functions with auto-scaling</li>
|
|
162
|
+
<li data-en="Global edge delivery on 20+ regions" data-ar="توصيل عالمي على أكثر من 20 منطقة">Global edge delivery on 20+ regions</li>
|
|
163
|
+
<li data-en="Automatic JWT secret prompting" data-ar="طلب تلقائي لمفاتيح JWT">Automatic JWT secret prompting</li>
|
|
164
|
+
<li data-en="Free SSL + custom domain" data-ar="SSL مجاني + نطاق مخصص">Free SSL + custom domain</li>
|
|
165
|
+
</ul>
|
|
166
|
+
<div class="int-steps">
|
|
167
|
+
<h5 data-en="Steps" data-ar="الخطوات">Steps</h5>
|
|
168
|
+
<ol>
|
|
169
|
+
<li data-en="Click the Deploy button below" data-ar="اضغط زر النشر بالأسفل">Click the Deploy button below</li>
|
|
170
|
+
<li data-en="Sign in to Vercel (or create a free account)" data-ar="سجّل الدخول إلى Vercel (أو أنشئ حساباً مجانياً)">Sign in to Vercel (or create a free account)</li>
|
|
171
|
+
<li data-en="Enter <code>JWT_SECRET</code> and <code>JWT_SECRET_ADMIN</code> when prompted" data-ar="أدخل <code>JWT_SECRET</code> و <code>JWT_SECRET_ADMIN</code> عند الطلب">Enter <code>JWT_SECRET</code> and <code>JWT_SECRET_ADMIN</code> when prompted</li>
|
|
172
|
+
<li data-en="Your WAB instance is live in under 60 seconds" data-ar="مثيل WAB الخاص بك يعمل في أقل من 60 ثانية">Your WAB instance is live in under 60 seconds</li>
|
|
173
|
+
</ol>
|
|
174
|
+
</div>
|
|
175
|
+
<div class="deploy-row">
|
|
176
|
+
<a class="deploy-btn btn-vercel" href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fabokenan444%2Fweb-agent-bridge&env=JWT_SECRET,JWT_SECRET_ADMIN&envDescription=Required%20security%20secrets%20for%20WAB&project-name=web-agent-bridge&repository-name=web-agent-bridge" target="_blank" rel="noopener">▲ <span data-en="Deploy to Vercel" data-ar="نشر إلى Vercel">Deploy to Vercel</span></a>
|
|
177
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/tree/master/integrations/vercel" target="_blank" rel="noopener" data-en="Docs" data-ar="التوثيق">Docs</a>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<!-- ─── Netlify ──────────────────────────────────────────────────── -->
|
|
182
|
+
<div class="int-card">
|
|
183
|
+
<div class="int-head">
|
|
184
|
+
<div class="int-icon int-icon-netlify">◇</div>
|
|
185
|
+
<h3>Netlify <span class="tag tag-free" data-en="Free tier" data-ar="طبقة مجانية">Free tier</span></h3>
|
|
186
|
+
</div>
|
|
187
|
+
<p class="desc" data-en="Deploy WAB using Netlify Edge Functions. Includes pre-built <code>wab-discovery</code> and <code>wab-ping</code> functions that serve your well-known document at the edge — globally cached, always fast." data-ar="انشر WAB عبر Netlify Edge Functions. يشمل دوال <code>wab-discovery</code> و <code>wab-ping</code> جاهزة تخدم مستند well-known على الحافة — مخزّن مؤقتاً عالمياً، سريع دائماً.">Deploy WAB using Netlify Edge Functions. Includes pre-built <code>wab-discovery</code> and <code>wab-ping</code> functions that serve your well-known document at the edge — globally cached, always fast.</p>
|
|
188
|
+
<ul class="int-features">
|
|
189
|
+
<li data-en="Edge functions with zero cold starts" data-ar="دوال على الحافة بدون بدء بارد">Edge functions with zero cold starts</li>
|
|
190
|
+
<li data-en="Built-in <code>/.well-known/wab.json</code>" data-ar="مسار <code>/.well-known/wab.json</code> مدمج">Built-in <code>/.well-known/wab.json</code></li>
|
|
191
|
+
<li data-en="Automatic HTTPS + CDN" data-ar="HTTPS + CDN تلقائي">Automatic HTTPS + CDN</li>
|
|
192
|
+
<li data-en="Git-connected continuous deploy" data-ar="نشر مستمر متصل بـ Git">Git-connected continuous deploy</li>
|
|
193
|
+
</ul>
|
|
194
|
+
<div class="int-steps">
|
|
195
|
+
<h5 data-en="Steps" data-ar="الخطوات">Steps</h5>
|
|
196
|
+
<ol>
|
|
197
|
+
<li data-en="Click Deploy to Netlify" data-ar="اضغط نشر إلى Netlify">Click Deploy to Netlify</li>
|
|
198
|
+
<li data-en="Authorize GitHub + pick repo name" data-ar="صرّح لـ GitHub + اختر اسم المستودع">Authorize GitHub + pick repo name</li>
|
|
199
|
+
<li data-en="Set env vars in Site Settings → Environment" data-ar="ضع متغيرات البيئة في إعدادات الموقع ← Environment">Set env vars in Site Settings → Environment</li>
|
|
200
|
+
<li data-en="Visit <code>/.well-known/wab.json</code> to verify" data-ar="زر <code>/.well-known/wab.json</code> للتحقق">Visit <code>/.well-known/wab.json</code> to verify</li>
|
|
201
|
+
</ol>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="deploy-row">
|
|
204
|
+
<a class="deploy-btn btn-netlify" href="https://app.netlify.com/start/deploy?repository=https://github.com/abokenan444/web-agent-bridge" target="_blank" rel="noopener">◇ <span data-en="Deploy to Netlify" data-ar="نشر إلى Netlify">Deploy to Netlify</span></a>
|
|
205
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/tree/master/integrations/netlify" target="_blank" rel="noopener" data-en="Docs" data-ar="التوثيق">Docs</a>
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
<!-- ─── Railway ──────────────────────────────────────────────────── -->
|
|
210
|
+
<div class="int-card">
|
|
211
|
+
<div class="int-head">
|
|
212
|
+
<div class="int-icon int-icon-railway">🚂</div>
|
|
213
|
+
<h3>Railway <span class="tag tag-free" data-en="$5 credit/mo" data-ar="رصيد 5$ شهرياً">$5 credit/mo</span></h3>
|
|
214
|
+
</div>
|
|
215
|
+
<p class="desc" data-en="The best option for production self-hosting. Persistent SQLite storage, always-on containers, no cold starts, and free $5/mo credits — enough to power a small-to-medium WAB instance indefinitely." data-ar="الخيار الأفضل للاستضافة الذاتية في الإنتاج. تخزين SQLite دائم، حاويات دائمة التشغيل، بدون بدء بارد، ورصيد 5$ شهرياً مجاني — يكفي لتشغيل مثيل WAB صغير إلى متوسط بشكل دائم.">The best option for production self-hosting. Persistent SQLite storage, always-on containers, no cold starts, and free $5/mo credits — enough to power a small-to-medium WAB instance indefinitely.</p>
|
|
216
|
+
<ul class="int-features">
|
|
217
|
+
<li data-en="Persistent volume for SQLite" data-ar="حجم تخزين دائم لـ SQLite">Persistent volume for SQLite</li>
|
|
218
|
+
<li data-en="Always-on, no cold starts" data-ar="دائم التشغيل، بدون بدء بارد">Always-on, no cold starts</li>
|
|
219
|
+
<li data-en="Custom domains + free SSL" data-ar="نطاقات مخصصة + SSL مجاني">Custom domains + free SSL</li>
|
|
220
|
+
<li data-en="Push-to-deploy from GitHub" data-ar="نشر فوري عبر Git Push">Push-to-deploy from GitHub</li>
|
|
221
|
+
</ul>
|
|
222
|
+
<div class="int-steps">
|
|
223
|
+
<h5 data-en="Steps" data-ar="الخطوات">Steps</h5>
|
|
224
|
+
<ol>
|
|
225
|
+
<li data-en="Click Deploy on Railway" data-ar="اضغط نشر على Railway">Click Deploy on Railway</li>
|
|
226
|
+
<li data-en="Add volume mount at <code>/data</code>" data-ar="أضف نقطة تحميل حجم عند <code>/data</code>">Add volume mount at <code>/data</code></li>
|
|
227
|
+
<li data-en="Set <code>JWT_SECRET</code> + <code>JWT_SECRET_ADMIN</code>" data-ar="اضبط <code>JWT_SECRET</code> + <code>JWT_SECRET_ADMIN</code>">Set <code>JWT_SECRET</code> + <code>JWT_SECRET_ADMIN</code></li>
|
|
228
|
+
<li data-en="Your instance stays online 24/7" data-ar="مثيلك يبقى متصلاً 24/7">Your instance stays online 24/7</li>
|
|
229
|
+
</ol>
|
|
230
|
+
</div>
|
|
231
|
+
<div class="deploy-row">
|
|
232
|
+
<a class="deploy-btn btn-railway" href="https://railway.app/template/web-agent-bridge?referralCode=wab" target="_blank" rel="noopener">🚂 <span data-en="Deploy on Railway" data-ar="نشر على Railway">Deploy on Railway</span></a>
|
|
233
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/tree/master/integrations/railway" target="_blank" rel="noopener" data-en="Docs" data-ar="التوثيق">Docs</a>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
|
|
237
|
+
<!-- ─── Cloudflare Workers (Edge) ────────────────────────────────── -->
|
|
238
|
+
<div class="int-card">
|
|
239
|
+
<div class="int-head">
|
|
240
|
+
<div class="int-icon int-icon-cloudflare">⛅</div>
|
|
241
|
+
<h3>Cloudflare Workers <span class="tag tag-edge" data-en="Edge" data-ar="حافة">Edge</span></h3>
|
|
242
|
+
</div>
|
|
243
|
+
<p class="desc" data-en="Run WAB at the edge on 300+ global data centers. Your well-known document and WAB headers are injected on every response without touching your origin server. Works with <strong>any</strong> website behind Cloudflare — even if your origin doesn't support WAB." data-ar="شغّل WAB على الحافة عبر أكثر من 300 مركز بيانات حول العالم. مستند well-known وترويسات WAB تُحقن في كل استجابة دون لمس الخادم الأصلي. يعمل مع <strong>أي</strong> موقع خلف Cloudflare — حتى لو كان خادمك الأصلي لا يدعم WAB.">Run WAB at the edge on 300+ global data centers. Your well-known document and WAB headers are injected on every response without touching your origin server. Works with <strong>any</strong> website behind Cloudflare — even if your origin doesn't support WAB.</p>
|
|
244
|
+
<ul class="int-features">
|
|
245
|
+
<li data-en="300+ edge POPs worldwide" data-ar="أكثر من 300 نقطة حافة حول العالم">300+ edge POPs worldwide</li>
|
|
246
|
+
<li data-en="Zero cold starts (V8 isolates)" data-ar="بدون بدء بارد (عزلات V8)">Zero cold starts (V8 isolates)</li>
|
|
247
|
+
<li data-en="Injects <code>X-WAB-*</code> headers on every response" data-ar="يحقن ترويسات <code>X-WAB-*</code> في كل استجابة">Injects <code>X-WAB-*</code> headers on every response</li>
|
|
248
|
+
<li data-en="Per-IP rate limiting + CORS" data-ar="تحديد معدل لكل IP + CORS">Per-IP rate limiting + CORS</li>
|
|
249
|
+
<li data-en="100K requests/day free" data-ar="100 ألف طلب يومياً مجاناً">100K requests/day free</li>
|
|
250
|
+
</ul>
|
|
251
|
+
<div class="int-steps">
|
|
252
|
+
<h5 data-en="Steps" data-ar="الخطوات">Steps</h5>
|
|
253
|
+
<ol>
|
|
254
|
+
<li data-en="Install Wrangler: <code>npm i -g wrangler</code>" data-ar="ثبّت Wrangler: <code>npm i -g wrangler</code>">Install Wrangler: <code>npm i -g wrangler</code></li>
|
|
255
|
+
<li data-en="<code>wrangler login</code> then clone the repo" data-ar="<code>wrangler login</code> ثم انسخ المستودع">Wrangler login, then clone the repo</li>
|
|
256
|
+
<li data-en="Set 4 secrets: <code>WAB_SERVER_URL</code>, <code>WAB_SITE_ID</code>, <code>WAB_API_KEY</code>, <code>ORIGIN_URL</code>" data-ar="اضبط 4 أسرار: <code>WAB_SERVER_URL</code> و <code>WAB_SITE_ID</code> و <code>WAB_API_KEY</code> و <code>ORIGIN_URL</code>">Set 4 secrets: <code>WAB_SERVER_URL</code>, <code>WAB_SITE_ID</code>, <code>WAB_API_KEY</code>, <code>ORIGIN_URL</code></li>
|
|
257
|
+
<li data-en="<code>wrangler deploy</code> → live globally" data-ar="<code>wrangler deploy</code> ← متاح عالمياً">Wrangler deploy — live globally</li>
|
|
258
|
+
</ol>
|
|
259
|
+
</div>
|
|
260
|
+
<div class="deploy-row">
|
|
261
|
+
<a class="deploy-btn btn-cloudflare" href="https://deploy.workers.cloudflare.com/?url=https://github.com/abokenan444/web-agent-bridge" target="_blank" rel="noopener">⛅ <span data-en="Deploy to Workers" data-ar="نشر إلى Workers">Deploy to Workers</span></a>
|
|
262
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/tree/master/integrations/cloudflare-worker" target="_blank" rel="noopener" data-en="Docs" data-ar="التوثيق">Docs</a>
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
265
|
+
|
|
266
|
+
<!-- ─── Docker ───────────────────────────────────────────────────── -->
|
|
267
|
+
<div class="int-card">
|
|
268
|
+
<div class="int-head">
|
|
269
|
+
<div class="int-icon int-icon-docker">🐳</div>
|
|
270
|
+
<h3>Docker Compose <span class="tag tag-free" data-en="Self-hosted" data-ar="استضافة ذاتية">Self-hosted</span></h3>
|
|
271
|
+
</div>
|
|
272
|
+
<p class="desc" data-en="Production-grade multi-stage Dockerfile + Nginx compose stack with optional Let's Encrypt SSL. Run WAB on any VPS, bare-metal server, or local machine with one command." data-ar="ملف Dockerfile متعدد المراحل جاهز للإنتاج + حزمة compose مع Nginx و SSL عبر Let's Encrypt اختياري. شغّل WAB على أي VPS أو خادم مخصص أو جهازك المحلي بأمر واحد.">Production-grade multi-stage Dockerfile + Nginx compose stack with optional Let's Encrypt SSL. Run WAB on any VPS, bare-metal server, or local machine with one command.</p>
|
|
273
|
+
<ul class="int-features">
|
|
274
|
+
<li data-en="Multi-stage build (~80MB final image)" data-ar="بناء متعدد المراحل (~80MB)">Multi-stage build (~80MB final image)</li>
|
|
275
|
+
<li data-en="Included Nginx reverse proxy" data-ar="وكيل عكسي Nginx مضمّن">Included Nginx reverse proxy</li>
|
|
276
|
+
<li data-en="Optional Let's Encrypt via Certbot" data-ar="Let's Encrypt اختياري عبر Certbot">Optional Let's Encrypt via Certbot</li>
|
|
277
|
+
<li data-en="Health checks + auto-restart" data-ar="فحوصات صحة + إعادة تشغيل تلقائية">Health checks + auto-restart</li>
|
|
278
|
+
</ul>
|
|
279
|
+
<div class="int-steps">
|
|
280
|
+
<h5 data-en="Steps" data-ar="الخطوات">Steps</h5>
|
|
281
|
+
<ol>
|
|
282
|
+
<li data-en="<code>git clone</code> the repo" data-ar="<code>git clone</code> المستودع">Clone the repo</li>
|
|
283
|
+
<li data-en="<code>cp .env.example .env</code> and fill secrets" data-ar="<code>cp .env.example .env</code> واملأ الأسرار">Copy .env.example to .env and fill secrets</li>
|
|
284
|
+
<li data-en="<code>docker compose -f docker-compose.nginx.yml up -d</code>" data-ar="<code>docker compose -f docker-compose.nginx.yml up -d</code>">Run docker compose up</li>
|
|
285
|
+
<li data-en="Point your DNS A record to the server" data-ar="وجّه سجل DNS A إلى الخادم">Point your DNS A record to the server</li>
|
|
286
|
+
</ol>
|
|
287
|
+
</div>
|
|
288
|
+
<div class="deploy-row">
|
|
289
|
+
<a class="deploy-btn btn-docker" href="https://github.com/abokenan444/web-agent-bridge/blob/master/docker-compose.nginx.yml" target="_blank" rel="noopener">🐳 <span data-en="View compose.yml" data-ar="اعرض compose.yml">View compose.yml</span></a>
|
|
290
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/blob/master/Dockerfile" target="_blank" rel="noopener" data-en="Dockerfile" data-ar="Dockerfile">Dockerfile</a>
|
|
291
|
+
</div>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
<!-- ─── Linux Installer ──────────────────────────────────────────── -->
|
|
295
|
+
<div class="int-card">
|
|
296
|
+
<div class="int-head">
|
|
297
|
+
<div class="int-icon int-icon-linux">🐧</div>
|
|
298
|
+
<h3>Linux One-Liner <span class="tag tag-free" data-en="Any server" data-ar="أي خادم">Any server</span></h3>
|
|
299
|
+
</div>
|
|
300
|
+
<p class="desc" data-en="A single <code>curl | sudo bash</code> command installs WAB on Ubuntu, Debian, CentOS, RHEL, or Alpine. Detects your distro, installs Node.js if missing, creates a system user, writes a systemd service, opens your firewall, and runs a health check." data-ar="أمر <code>curl | sudo bash</code> واحد يثبّت WAB على Ubuntu و Debian و CentOS و RHEL أو Alpine. يكتشف توزيعتك، يثبّت Node.js إن لم يكن موجوداً، ينشئ مستخدم نظام، يكتب خدمة systemd، يفتح الجدار الناري، ويجري فحص صحة.">A single <code>curl | sudo bash</code> command installs WAB on Ubuntu, Debian, CentOS, RHEL, or Alpine. Detects your distro, installs Node.js if missing, creates a system user, writes a systemd service, opens your firewall, and runs a health check.</p>
|
|
301
|
+
<ul class="int-features">
|
|
302
|
+
<li data-en="Works on Ubuntu / Debian / CentOS / RHEL / Alpine" data-ar="يعمل على Ubuntu / Debian / CentOS / RHEL / Alpine">Works on Ubuntu / Debian / CentOS / RHEL / Alpine</li>
|
|
303
|
+
<li data-en="Auto-generates JWT secrets" data-ar="يولّد مفاتيح JWT تلقائياً">Auto-generates JWT secrets</li>
|
|
304
|
+
<li data-en="Installs <code>systemd</code> service + enables on boot" data-ar="يثبّت خدمة <code>systemd</code> + يفعّلها عند الإقلاع">Installs <code>systemd</code> service + enables on boot</li>
|
|
305
|
+
<li data-en="Opens port in UFW / firewalld automatically" data-ar="يفتح المنفذ في UFW / firewalld تلقائياً">Opens port in UFW / firewalld automatically</li>
|
|
306
|
+
</ul>
|
|
307
|
+
<div class="int-steps">
|
|
308
|
+
<h5 data-en="Steps" data-ar="الخطوات">Steps</h5>
|
|
309
|
+
<ol>
|
|
310
|
+
<li data-en="SSH into your server" data-ar="اتصل بخادمك عبر SSH">SSH into your server</li>
|
|
311
|
+
<li data-en="Run the one-liner (see button)" data-ar="شغّل الأمر المختصر (انظر الزر)">Run the one-liner (see button)</li>
|
|
312
|
+
<li data-en="Wait ~2 minutes" data-ar="انتظر دقيقتين">Wait ~2 minutes</li>
|
|
313
|
+
<li data-en="<code>systemctl status wab</code> → active" data-ar="<code>systemctl status wab</code> ← نشط">Check systemctl status wab → active</li>
|
|
314
|
+
</ol>
|
|
315
|
+
</div>
|
|
316
|
+
<div class="deploy-row">
|
|
317
|
+
<a class="deploy-btn btn-linux" href="#linux-oneliner">🐧 <span data-en="Copy Command" data-ar="انسخ الأمر">Copy Command</span></a>
|
|
318
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/tree/master/integrations/install" target="_blank" rel="noopener" data-en="Installer Docs" data-ar="توثيق المثبّت">Installer Docs</a>
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
<!-- ─── Linux One-Liner Command ───────────────────────────────────── -->
|
|
325
|
+
<div class="long-desc" id="linux-oneliner">
|
|
326
|
+
<div class="box">
|
|
327
|
+
<h4 data-en="Linux One-Line Install" data-ar="تثبيت لينكس بسطر واحد">Linux One-Line Install</h4>
|
|
328
|
+
<p data-en="Copy and paste on any modern Linux server (requires sudo):" data-ar="انسخ والصق على أي خادم لينكس حديث (يتطلب sudo):">Copy and paste on any modern Linux server (requires sudo):</p>
|
|
329
|
+
<pre id="oneliner">curl -fsSL https://raw.githubusercontent.com/abokenan444/web-agent-bridge/master/integrations/install/install.sh | sudo bash</pre>
|
|
330
|
+
<p><button class="btn btn-primary btn-sm" onclick="copyOneliner()" data-en="📋 Copy" data-ar="📋 نسخ">📋 Copy</button> <span id="copied" style="color:#4ade80;margin-left:10px;display:none" data-en="✓ Copied" data-ar="✓ تم النسخ">✓ Copied</span></p>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
<!-- ═══════════ INFRASTRUCTURE LAYER ═══════════ -->
|
|
335
|
+
<h2 class="section-title" id="infrastructure" data-en="Infrastructure Integrations" data-ar="تكاملات البنية التحتية">Infrastructure Integrations</h2>
|
|
336
|
+
<p class="section-sub" data-en="These integrations make WAB part of the default web stack — activating automatically for millions of sites without individual developer action." data-ar="هذه التكاملات تجعل WAB جزءاً من الطبقة الافتراضية للويب — تُفعَّل تلقائياً لملايين المواقع دون تدخل مطوّر فردي.">These integrations make WAB part of the default web stack — activating automatically for millions of sites without individual developer action.</p>
|
|
337
|
+
|
|
338
|
+
<div class="int-grid">
|
|
339
|
+
|
|
340
|
+
<!-- ─── WordPress Must-Use ──────────────────────────────────────── -->
|
|
341
|
+
<div class="int-card">
|
|
342
|
+
<div class="int-head">
|
|
343
|
+
<div class="int-icon int-icon-wordpress">W</div>
|
|
344
|
+
<h3>WordPress <span class="tag tag-cms" data-en="Must-Use" data-ar="Must-Use">Must-Use Plugin</span></h3>
|
|
345
|
+
</div>
|
|
346
|
+
<p class="desc" data-en="A Must-Use plugin that lives in <code>mu-plugins/</code> and <strong>cannot be deactivated</strong> by site admins. Loaded on every request before regular plugins — exactly how Apache modules work. Perfect for hosting providers to install once across all customer sites." data-ar="إضافة Must-Use توضع في <code>mu-plugins/</code> و<strong>لا يمكن تعطيلها</strong> من قبل مسؤولي الموقع. تُحمّل في كل طلب قبل الإضافات العادية — تماماً كعمل وحدات Apache. مثالية لمزودي الاستضافة للتثبيت مرة واحدة عبر جميع مواقع العملاء.">A Must-Use plugin that lives in <code>mu-plugins/</code> and <strong>cannot be deactivated</strong> by site admins. Loaded on every request before regular plugins — exactly how Apache modules work. Perfect for hosting providers to install once across all customer sites.</p>
|
|
347
|
+
<ul class="int-features">
|
|
348
|
+
<li data-en="Auto-loaded — no activation needed" data-ar="تُحمّل تلقائياً — لا حاجة للتفعيل">Auto-loaded — no activation needed</li>
|
|
349
|
+
<li data-en="Injects <code>X-WAB-*</code> headers on every page" data-ar="تحقن ترويسات <code>X-WAB-*</code> في كل صفحة">Injects <code>X-WAB-*</code> headers on every page</li>
|
|
350
|
+
<li data-en="Serves <code>/.well-known/wab.json</code>" data-ar="تخدم <code>/.well-known/wab.json</code>">Serves <code>/.well-known/wab.json</code></li>
|
|
351
|
+
<li data-en="Configurable via <code>wp-config.php</code>" data-ar="قابلة للضبط عبر <code>wp-config.php</code>">Configurable via <code>wp-config.php</code></li>
|
|
352
|
+
<li data-en="WP-CLI auto-installer included" data-ar="مثبّت WP-CLI تلقائي مضمّن">WP-CLI auto-installer included</li>
|
|
353
|
+
</ul>
|
|
354
|
+
<div class="int-steps">
|
|
355
|
+
<h5 data-en="Steps (hosting provider)" data-ar="الخطوات (مزود استضافة)">Steps (hosting provider)</h5>
|
|
356
|
+
<ol>
|
|
357
|
+
<li data-en="Run <code>install-wab-mu.sh --wp-path /var/www/html</code>" data-ar="شغّل <code>install-wab-mu.sh --wp-path /var/www/html</code>">Run install-wab-mu.sh --wp-path /var/www/html</li>
|
|
358
|
+
<li data-en="Include in your WordPress auto-installer template" data-ar="أدرجها في قالب مثبّت WordPress الخاص بك">Include in your WordPress auto-installer template</li>
|
|
359
|
+
<li data-en="Every new site boots WAB-ready" data-ar="كل موقع جديد يُقلع جاهزاً مع WAB">Every new site boots WAB-ready</li>
|
|
360
|
+
</ol>
|
|
361
|
+
</div>
|
|
362
|
+
<div class="deploy-row">
|
|
363
|
+
<a class="deploy-btn btn-wordpress" href="https://github.com/abokenan444/web-agent-bridge/blob/master/web-agent-bridge-wordpress/mu-plugin/web-agent-bridge-mu.php" target="_blank" rel="noopener">W <span data-en="Download MU Plugin" data-ar="تنزيل إضافة MU">Download MU Plugin</span></a>
|
|
364
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/tree/master/web-agent-bridge-wordpress/mu-plugin" target="_blank" rel="noopener" data-en="Docs" data-ar="التوثيق">Docs</a>
|
|
365
|
+
</div>
|
|
366
|
+
</div>
|
|
367
|
+
|
|
368
|
+
<!-- ─── cPanel / Plesk / DirectAdmin (Coming Soon) ─────────────── -->
|
|
369
|
+
<div class="int-card">
|
|
370
|
+
<div class="int-head">
|
|
371
|
+
<div class="int-icon int-icon-linux">🎛️</div>
|
|
372
|
+
<h3>cPanel / Plesk / DirectAdmin <span class="tag tag-coming" data-en="Coming Q3 2026" data-ar="قريباً Q3 2026">Coming Q3 2026</span></h3>
|
|
373
|
+
</div>
|
|
374
|
+
<p class="desc" data-en="Native control-panel extensions that install WAB automatically on every new hosting account — no action required from the end user. Targeting millions of shared-hosting sites with a single partner integration." data-ar="إضافات أصلية للوحات التحكم تثبّت WAB تلقائياً على كل حساب استضافة جديد — دون أي تدخل من المستخدم النهائي. تستهدف ملايين مواقع الاستضافة المشتركة بتكامل واحد مع الشريك.">Native control-panel extensions that install WAB automatically on every new hosting account — no action required from the end user. Targeting millions of shared-hosting sites with a single partner integration.</p>
|
|
375
|
+
<ul class="int-features">
|
|
376
|
+
<li data-en="cPanel AutoInstaller hook" data-ar="خطاف AutoInstaller لـ cPanel">cPanel AutoInstaller hook</li>
|
|
377
|
+
<li data-en="Plesk Extensions Catalog entry" data-ar="إدراج في كاتالوج إضافات Plesk">Plesk Extensions Catalog entry</li>
|
|
378
|
+
<li data-en="DirectAdmin Plugin System" data-ar="نظام إضافات DirectAdmin">DirectAdmin Plugin System</li>
|
|
379
|
+
<li data-en="Per-site on/off toggle in UI" data-ar="مفتاح تشغيل/إيقاف لكل موقع في الواجهة">Per-site on/off toggle in UI</li>
|
|
380
|
+
</ul>
|
|
381
|
+
<div class="int-steps">
|
|
382
|
+
<h5 data-en="Partner with us" data-ar="شارك معنا">Partner with us</h5>
|
|
383
|
+
<ol>
|
|
384
|
+
<li data-en="Hosting providers: email <code>partners@webagentbridge.com</code>" data-ar="مزودو الاستضافة: راسلوا <code>partners@webagentbridge.com</code>">Hosting providers: email partners@webagentbridge.com</li>
|
|
385
|
+
<li data-en="Join the early-access pilot program" data-ar="انضم لبرنامج الوصول المبكر">Join the early-access pilot program</li>
|
|
386
|
+
<li data-en="Get a free commercial licence" data-ar="احصل على ترخيص تجاري مجاني">Get a free commercial licence</li>
|
|
387
|
+
</ol>
|
|
388
|
+
</div>
|
|
389
|
+
<div class="deploy-row">
|
|
390
|
+
<a class="deploy-btn btn-outline" href="mailto:partners@webagentbridge.com" data-en="Contact Partnerships" data-ar="تواصل مع الشراكات">Contact Partnerships</a>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
|
|
394
|
+
<!-- ─── Apache / Nginx Modules (Coming Soon) ───────────────────── -->
|
|
395
|
+
<div class="int-card">
|
|
396
|
+
<div class="int-head">
|
|
397
|
+
<div class="int-icon int-icon-linux">⚙️</div>
|
|
398
|
+
<h3>Apache / Nginx Modules <span class="tag tag-coming" data-en="Coming Q4 2026" data-ar="قريباً Q4 2026">Coming Q4 2026</span></h3>
|
|
399
|
+
</div>
|
|
400
|
+
<p class="desc" data-en="Native <code>mod_wab</code> (Apache) and <code>ngx_wab</code> (Nginx) modules that inject WAB headers and serve discovery documents at the web-server layer — zero application-layer install required. The fastest possible integration — headers set before PHP/Node even run." data-ar="وحدات أصلية <code>mod_wab</code> (Apache) و <code>ngx_wab</code> (Nginx) تحقن ترويسات WAB وتخدم مستندات الاكتشاف على طبقة خادم الويب — بدون تثبيت على طبقة التطبيق. أسرع تكامل ممكن — تُضبط الترويسات قبل تشغيل PHP/Node حتى.">Native <code>mod_wab</code> (Apache) and <code>ngx_wab</code> (Nginx) modules that inject WAB headers and serve discovery documents at the web-server layer — zero application-layer install required. The fastest possible integration — headers set before PHP/Node even run.</p>
|
|
401
|
+
<ul class="int-features">
|
|
402
|
+
<li data-en="Runs at the web server (not the app)" data-ar="يعمل على خادم الويب (وليس التطبيق)">Runs at the web server (not the app)</li>
|
|
403
|
+
<li data-en="<code>WABEnabled On</code> directive" data-ar="توجيه <code>WABEnabled On</code>">WABEnabled On directive</li>
|
|
404
|
+
<li data-en="Dynamic module (no rebuild required)" data-ar="وحدة ديناميكية (بدون إعادة بناء)">Dynamic module (no rebuild required)</li>
|
|
405
|
+
<li data-en="Available via apt / yum / dnf" data-ar="متاحة عبر apt / yum / dnf">Available via apt / yum / dnf</li>
|
|
406
|
+
</ul>
|
|
407
|
+
<div class="int-steps">
|
|
408
|
+
<h5 data-en="Preview" data-ar="معاينة">Preview</h5>
|
|
409
|
+
<ol>
|
|
410
|
+
<li data-en="<code>apt install libapache2-mod-wab</code>" data-ar="<code>apt install libapache2-mod-wab</code>">apt install libapache2-mod-wab</li>
|
|
411
|
+
<li data-en="Add <code>WABEnabled On</code> to vhost" data-ar="أضف <code>WABEnabled On</code> إلى vhost">Add WABEnabled On to vhost</li>
|
|
412
|
+
<li data-en="<code>systemctl reload apache2</code>" data-ar="<code>systemctl reload apache2</code>">systemctl reload apache2</li>
|
|
413
|
+
</ol>
|
|
414
|
+
</div>
|
|
415
|
+
<div class="deploy-row">
|
|
416
|
+
<a class="deploy-btn btn-outline" href="https://github.com/abokenan444/web-agent-bridge/discussions" target="_blank" rel="noopener" data-en="Join Discussion" data-ar="انضم للنقاش">Join Discussion</a>
|
|
417
|
+
</div>
|
|
418
|
+
</div>
|
|
419
|
+
|
|
420
|
+
<!-- ─── DNS Discovery (Proposed Standard) ──────────────────────── -->
|
|
421
|
+
<div class="int-card">
|
|
422
|
+
<div class="int-head">
|
|
423
|
+
<div class="int-icon int-icon-dns">🌐</div>
|
|
424
|
+
<h3>DNS Discovery <span class="tag tag-coming" data-en="RFC Draft" data-ar="مسودة RFC">RFC Draft</span></h3>
|
|
425
|
+
</div>
|
|
426
|
+
<p class="desc" data-en="Adding a single <code>TXT</code> record to your DNS makes your site discoverable by every WAB-compliant AI agent — no code, no plugin, no server changes. Works exactly like SPF / DKIM / DMARC for email: a native protocol-level signal." data-ar="إضافة سجل <code>TXT</code> واحد إلى DNS يجعل موقعك قابلاً للاكتشاف من قبل كل وكيل ذكاء اصطناعي يدعم WAB — بدون كود، بدون إضافة، بدون تغيير في الخادم. يعمل تماماً مثل SPF / DKIM / DMARC للبريد: إشارة أصيلة على طبقة البروتوكول.">Adding a single <code>TXT</code> record to your DNS makes your site discoverable by every WAB-compliant AI agent — no code, no plugin, no server changes. Works exactly like SPF / DKIM / DMARC for email: a native protocol-level signal.</p>
|
|
427
|
+
<ul class="int-features">
|
|
428
|
+
<li data-en="No server code required" data-ar="بدون كود خادم">No server code required</li>
|
|
429
|
+
<li data-en="Works on any domain, any registrar" data-ar="يعمل على أي نطاق، أي مسجّل">Works on any domain, any registrar</li>
|
|
430
|
+
<li data-en="Agents discover your endpoint via DNS" data-ar="الوكلاء يكتشفون نقطة النهاية عبر DNS">Agents discover your endpoint via DNS</li>
|
|
431
|
+
<li data-en="Proposed as IETF RFC draft" data-ar="مقترح كمسودة IETF RFC">Proposed as IETF RFC draft</li>
|
|
432
|
+
</ul>
|
|
433
|
+
<div class="int-steps">
|
|
434
|
+
<h5 data-en="Example record" data-ar="مثال على السجل">Example record</h5>
|
|
435
|
+
<ol>
|
|
436
|
+
<li><code style="display:block;margin-top:6px">_wab.example.com. TXT "v=wab; endpoint=https://example.com/.well-known/wab.json"</code></li>
|
|
437
|
+
</ol>
|
|
438
|
+
</div>
|
|
439
|
+
<div class="deploy-row">
|
|
440
|
+
<a class="deploy-btn btn-dns" href="https://github.com/abokenan444/web-agent-bridge/tree/master/docs" target="_blank" rel="noopener">🌐 <span data-en="Read Spec" data-ar="اقرأ المواصفة">Read Spec</span></a>
|
|
441
|
+
</div>
|
|
442
|
+
</div>
|
|
443
|
+
|
|
444
|
+
</div>
|
|
445
|
+
|
|
446
|
+
<!-- ═══════════ COMPARISON MATRIX ═══════════ -->
|
|
447
|
+
<h2 class="section-title" data-en="Platform Comparison" data-ar="مقارنة المنصات">Platform Comparison</h2>
|
|
448
|
+
<div class="matrix-section">
|
|
449
|
+
<table class="matrix-table">
|
|
450
|
+
<thead>
|
|
451
|
+
<tr>
|
|
452
|
+
<th data-en="Platform" data-ar="المنصة">Platform</th>
|
|
453
|
+
<th data-en="Free Tier" data-ar="طبقة مجانية">Free Tier</th>
|
|
454
|
+
<th data-en="Persistent DB" data-ar="قاعدة بيانات دائمة">Persistent DB</th>
|
|
455
|
+
<th data-en="Always-On" data-ar="دائم التشغيل">Always-On</th>
|
|
456
|
+
<th data-en="Best For" data-ar="الأفضل لـ">Best For</th>
|
|
457
|
+
</tr>
|
|
458
|
+
</thead>
|
|
459
|
+
<tbody>
|
|
460
|
+
<tr><td>Vercel</td><td class="yes">✓</td><td class="no">✗</td><td class="partial" data-en="Cold starts" data-ar="بدء بارد">Cold starts</td><td data-en="Landing pages, demos" data-ar="صفحات هبوط، عروض">Landing pages, demos</td></tr>
|
|
461
|
+
<tr><td>Netlify</td><td class="yes">✓</td><td class="no">✗</td><td class="partial" data-en="Cold starts" data-ar="بدء بارد">Cold starts</td><td data-en="JAMstack, edge functions" data-ar="JAMstack، دوال حافة">JAMstack, edge functions</td></tr>
|
|
462
|
+
<tr><td>Railway</td><td class="partial">$5/mo credit</td><td class="yes">✓</td><td class="yes">✓</td><td data-en="Production self-hosting" data-ar="استضافة ذاتية للإنتاج">Production self-hosting</td></tr>
|
|
463
|
+
<tr><td>Cloudflare Workers</td><td class="yes">✓ 100K/day</td><td class="no" data-en="Needs KV/D1" data-ar="يحتاج KV/D1">Needs KV/D1</td><td class="yes">✓</td><td data-en="Global edge, high traffic" data-ar="حافة عالمية، حركة مرور عالية">Global edge, high traffic</td></tr>
|
|
464
|
+
<tr><td>Docker VPS</td><td class="partial" data-en="Your cost" data-ar="على حسابك">Your cost</td><td class="yes">✓</td><td class="yes">✓</td><td data-en="Full control, custom stacks" data-ar="تحكم كامل، حزم مخصصة">Full control, custom stacks</td></tr>
|
|
465
|
+
<tr><td data-en="Linux bare-metal" data-ar="لينكس مخصص">Linux bare-metal</td><td class="partial" data-en="Your cost" data-ar="على حسابك">Your cost</td><td class="yes">✓</td><td class="yes">✓</td><td data-en="Enterprise, compliance" data-ar="مؤسسات، امتثال">Enterprise, compliance</td></tr>
|
|
466
|
+
<tr><td>WordPress (MU)</td><td class="yes">✓</td><td class="yes">✓</td><td class="yes">✓</td><td data-en="Existing WP sites" data-ar="مواقع WP الحالية">Existing WP sites</td></tr>
|
|
467
|
+
</tbody>
|
|
468
|
+
</table>
|
|
469
|
+
</div>
|
|
470
|
+
|
|
471
|
+
<!-- ═══════════ CTA ═══════════ -->
|
|
472
|
+
<section class="cta-section">
|
|
473
|
+
<h2 data-en="Not sure which to pick?" data-ar="غير متأكد ماذا تختار؟">Not sure which to pick?</h2>
|
|
474
|
+
<p data-en="For most sites, start with Railway (persistent + always-on). For edge performance, use Cloudflare Workers. For instant serverless, use Vercel or Netlify." data-ar="لمعظم المواقع، ابدأ بـ Railway (دائم + متصل دائماً). لأداء الحافة، استخدم Cloudflare Workers. للبدون خادم الفوري، استخدم Vercel أو Netlify.">For most sites, start with Railway (persistent + always-on). For edge performance, use Cloudflare Workers. For instant serverless, use Vercel or Netlify.</p>
|
|
475
|
+
<div class="cta-row">
|
|
476
|
+
<a href="/demo" class="btn btn-primary" data-en="Try the Live Demo" data-ar="جرّب العرض الحي">Try the Live Demo</a>
|
|
477
|
+
<a href="/phone-shield" class="btn btn-ghost" data-en="Open Phone Shield" data-ar="افتح درع الهاتف">Open Phone Shield</a>
|
|
478
|
+
<a href="/api" class="btn btn-ghost" data-en="API Docs" data-ar="توثيق API">API Docs</a>
|
|
479
|
+
<a href="/docs" class="btn btn-ghost" data-en="Full Docs" data-ar="التوثيق الكامل">Full Docs</a>
|
|
480
|
+
</div>
|
|
481
|
+
</section>
|
|
482
|
+
|
|
483
|
+
<!-- ═══════════ FOOTER ═══════════ -->
|
|
484
|
+
<footer class="footer">
|
|
485
|
+
<div class="container">
|
|
486
|
+
<div class="footer-grid">
|
|
487
|
+
<div class="footer-brand">
|
|
488
|
+
<a href="/" class="navbar-brand">
|
|
489
|
+
<div class="brand-icon">⚡</div>
|
|
490
|
+
<span>Web Agent Bridge</span>
|
|
491
|
+
</a>
|
|
492
|
+
<p data-en="Open-source middleware for AI agent and website interaction." data-ar="وسيط مفتوح المصدر للتفاعل بين وكلاء الذكاء الاصطناعي والمواقع.">Open-source middleware for AI agent and website interaction.</p>
|
|
493
|
+
</div>
|
|
494
|
+
<div class="footer-col">
|
|
495
|
+
<h4 data-en="Product" data-ar="المنتج">Product</h4>
|
|
496
|
+
<ul>
|
|
497
|
+
<li><a href="/docs" data-en="Documentation" data-ar="التوثيق">Documentation</a></li>
|
|
498
|
+
<li><a href="/api" data-en="API Gateway" data-ar="بوابة API">API Gateway</a></li>
|
|
499
|
+
<li><a href="/integrations" data-en="Integrations" data-ar="التكاملات">Integrations</a></li>
|
|
500
|
+
<li><a href="/demo">Demo</a></li>
|
|
501
|
+
</ul>
|
|
502
|
+
</div>
|
|
503
|
+
<div class="footer-col">
|
|
504
|
+
<h4 data-en="Deploy" data-ar="نشر">Deploy</h4>
|
|
505
|
+
<ul>
|
|
506
|
+
<li><a href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fabokenan444%2Fweb-agent-bridge" target="_blank" rel="noopener">Vercel</a></li>
|
|
507
|
+
<li><a href="https://app.netlify.com/start/deploy?repository=https://github.com/abokenan444/web-agent-bridge" target="_blank" rel="noopener">Netlify</a></li>
|
|
508
|
+
<li><a href="https://railway.app/template/web-agent-bridge" target="_blank" rel="noopener">Railway</a></li>
|
|
509
|
+
<li><a href="https://deploy.workers.cloudflare.com/?url=https://github.com/abokenan444/web-agent-bridge" target="_blank" rel="noopener">Cloudflare</a></li>
|
|
510
|
+
</ul>
|
|
511
|
+
</div>
|
|
512
|
+
<div class="footer-col">
|
|
513
|
+
<h4 data-en="Legal" data-ar="قانوني">Legal</h4>
|
|
514
|
+
<ul>
|
|
515
|
+
<li><a href="/privacy" data-en="Privacy" data-ar="الخصوصية">Privacy</a></li>
|
|
516
|
+
<li><a href="/terms" data-en="Terms" data-ar="الشروط">Terms</a></li>
|
|
517
|
+
<li><a href="/cookies" data-en="Cookies" data-ar="ملفات الارتباط">Cookies</a></li>
|
|
518
|
+
</ul>
|
|
519
|
+
</div>
|
|
520
|
+
</div>
|
|
521
|
+
<div class="footer-bottom">
|
|
522
|
+
<span>© 2026 Web Agent Bridge. MIT License.</span>
|
|
523
|
+
</div>
|
|
524
|
+
</div>
|
|
525
|
+
</footer>
|
|
526
|
+
|
|
527
|
+
<script>
|
|
528
|
+
function switchLang(lang){
|
|
529
|
+
var isAr = lang === 'ar';
|
|
530
|
+
document.documentElement.lang = lang;
|
|
531
|
+
document.documentElement.dir = isAr ? 'rtl' : 'ltr';
|
|
532
|
+
document.getElementById('btn-en').classList.toggle('active', !isAr);
|
|
533
|
+
document.getElementById('btn-ar').classList.toggle('active', isAr);
|
|
534
|
+
document.querySelectorAll('[data-en]').forEach(function(el){
|
|
535
|
+
el.innerHTML = el.getAttribute(isAr ? 'data-ar' : 'data-en');
|
|
536
|
+
});
|
|
537
|
+
try { localStorage.setItem('wab-lang', lang); } catch(e){}
|
|
538
|
+
}
|
|
539
|
+
(function(){
|
|
540
|
+
try {
|
|
541
|
+
var saved = localStorage.getItem('wab-lang');
|
|
542
|
+
if (saved === 'ar') switchLang('ar');
|
|
543
|
+
} catch(e){}
|
|
544
|
+
})();
|
|
545
|
+
function copyOneliner(){
|
|
546
|
+
var text = document.getElementById('oneliner').textContent.trim();
|
|
547
|
+
navigator.clipboard.writeText(text).then(function(){
|
|
548
|
+
var c = document.getElementById('copied');
|
|
549
|
+
c.style.display = 'inline';
|
|
550
|
+
setTimeout(function(){ c.style.display = 'none'; }, 2000);
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
</script>
|
|
554
|
+
|
|
555
|
+
</body>
|
|
556
|
+
</html>
|