web-agent-bridge 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/LICENSE +21 -21
  2. package/README.ar.md +446 -446
  3. package/README.md +780 -844
  4. package/bin/cli.js +80 -80
  5. package/bin/wab.js +80 -80
  6. package/examples/bidi-agent.js +119 -119
  7. package/examples/mcp-agent.js +94 -94
  8. package/examples/next-app-router/README.md +44 -0
  9. package/examples/puppeteer-agent.js +108 -108
  10. package/examples/saas-dashboard/README.md +55 -0
  11. package/examples/shopify-hydrogen/README.md +74 -0
  12. package/examples/vision-agent.js +171 -171
  13. package/examples/wordpress-elementor/README.md +77 -0
  14. package/package.json +69 -78
  15. package/public/.well-known/ai-assets.json +59 -0
  16. package/public/admin/login.html +84 -84
  17. package/public/ai.html +196 -0
  18. package/public/cookies.html +208 -208
  19. package/public/css/premium.css +317 -0
  20. package/public/css/styles.css +1235 -1235
  21. package/public/dashboard.html +704 -704
  22. package/public/demo.html +259 -0
  23. package/public/docs.html +585 -585
  24. package/public/feed.xml +89 -0
  25. package/public/index.html +495 -332
  26. package/public/js/auth-nav.js +31 -31
  27. package/public/js/auth-redirect.js +12 -12
  28. package/public/js/cookie-consent.js +56 -56
  29. package/public/js/wab-demo-page.js +721 -0
  30. package/public/js/ws-client.js +74 -74
  31. package/public/llms-full.txt +309 -0
  32. package/public/llms.txt +85 -0
  33. package/public/login.html +83 -83
  34. package/public/openapi.json +580 -0
  35. package/public/premium-dashboard.html +2487 -0
  36. package/public/premium.html +791 -0
  37. package/public/privacy.html +295 -295
  38. package/public/register.html +103 -103
  39. package/public/robots.txt +87 -0
  40. package/public/script/wab-consent.d.ts +36 -0
  41. package/public/script/wab-consent.js +104 -0
  42. package/public/script/wab-schema.js +131 -0
  43. package/public/script/wab.d.ts +108 -0
  44. package/public/script/wab.min.js +234 -0
  45. package/public/sitemap.xml +93 -0
  46. package/public/terms.html +254 -254
  47. package/public/video/tutorial.mp4 +0 -0
  48. package/script/ai-agent-bridge.js +1558 -1513
  49. package/sdk/README.md +55 -55
  50. package/sdk/index.d.ts +118 -0
  51. package/sdk/index.js +257 -203
  52. package/sdk/package.json +14 -14
  53. package/sdk/schema-discovery.js +83 -0
  54. package/server/config/secrets.js +94 -92
  55. package/server/index.js +0 -9
  56. package/server/middleware/adminAuth.js +30 -30
  57. package/server/middleware/auth.js +41 -41
  58. package/server/middleware/rateLimits.js +24 -24
  59. package/server/migrations/001_add_analytics_indexes.sql +7 -7
  60. package/server/migrations/002_premium_features.sql +418 -0
  61. package/server/models/adapters/index.js +33 -33
  62. package/server/models/adapters/mysql.js +183 -183
  63. package/server/models/adapters/postgresql.js +172 -172
  64. package/server/models/adapters/sqlite.js +7 -7
  65. package/server/models/db.js +561 -561
  66. package/server/routes/admin-premium.js +671 -0
  67. package/server/routes/admin.js +247 -247
  68. package/server/routes/api.js +131 -138
  69. package/server/routes/auth.js +51 -51
  70. package/server/routes/billing.js +45 -45
  71. package/server/routes/discovery.js +406 -329
  72. package/server/routes/license.js +240 -240
  73. package/server/routes/noscript.js +543 -543
  74. package/server/routes/premium-v2.js +686 -0
  75. package/server/routes/premium.js +724 -0
  76. package/server/routes/wab-api.js +476 -476
  77. package/server/services/agent-memory.js +625 -0
  78. package/server/services/email.js +204 -204
  79. package/server/services/fairness.js +420 -420
  80. package/server/services/plugins.js +747 -0
  81. package/server/services/premium.js +1883 -0
  82. package/server/services/self-healing.js +843 -0
  83. package/server/services/stripe.js +192 -192
  84. package/server/services/swarm.js +788 -0
  85. package/server/services/vision.js +871 -0
  86. package/server/utils/cache.js +125 -125
  87. package/server/utils/migrate.js +81 -81
  88. package/server/utils/secureFields.js +50 -50
  89. package/server/ws.js +101 -101
  90. package/docs/DEPLOY.md +0 -118
  91. package/docs/SPEC.md +0 -1540
  92. package/wab-mcp-adapter/README.md +0 -136
  93. package/wab-mcp-adapter/index.js +0 -555
  94. package/wab-mcp-adapter/package.json +0 -17
@@ -0,0 +1,317 @@
1
+ /* ═══════════════════════════════════════════════════════════════════════
2
+ Premium Services Page Styles
3
+ ═══════════════════════════════════════════════════════════════════════ */
4
+
5
+ .active-link {
6
+ color: var(--accent-purple) !important;
7
+ }
8
+
9
+ /* ─── Premium Hero ────────────────────────────────────────────────── */
10
+ .premium-hero {
11
+ min-height: 70vh;
12
+ display: flex;
13
+ align-items: center;
14
+ text-align: center;
15
+ background: var(--gradient-hero);
16
+ position: relative;
17
+ overflow: hidden;
18
+ padding-top: 120px;
19
+ padding-bottom: 80px;
20
+ }
21
+
22
+ .premium-hero::before {
23
+ content: '';
24
+ position: absolute;
25
+ top: -50%;
26
+ left: -50%;
27
+ width: 200%;
28
+ height: 200%;
29
+ background:
30
+ radial-gradient(circle at 30% 30%, rgba(139,92,246,0.08) 0%, transparent 50%),
31
+ radial-gradient(circle at 70% 70%, rgba(236,72,153,0.06) 0%, transparent 50%);
32
+ animation: heroGlow 15s ease-in-out infinite alternate;
33
+ }
34
+
35
+ .premium-hero-content {
36
+ position: relative;
37
+ z-index: 1;
38
+ max-width: 800px;
39
+ margin: 0 auto;
40
+ }
41
+
42
+ .premium-hero h1 {
43
+ margin-bottom: 24px;
44
+ }
45
+
46
+ .premium-hero p {
47
+ font-size: 1.15rem;
48
+ color: var(--text-secondary);
49
+ max-width: 640px;
50
+ margin: 0 auto 36px;
51
+ line-height: 1.7;
52
+ }
53
+
54
+ /* ─── Tier Pills ──────────────────────────────────────────────────── */
55
+ .tier-pills {
56
+ display: flex;
57
+ gap: 16px;
58
+ justify-content: center;
59
+ flex-wrap: wrap;
60
+ }
61
+
62
+ .tier-pill {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: 14px;
66
+ background: var(--bg-card);
67
+ border: 1px solid var(--border-color);
68
+ border-radius: var(--radius-lg);
69
+ padding: 16px 24px;
70
+ min-width: 220px;
71
+ transition: all var(--transition-normal);
72
+ }
73
+
74
+ .tier-pill.active {
75
+ border-color: var(--accent-purple);
76
+ box-shadow: 0 0 20px rgba(139,92,246,0.15);
77
+ }
78
+
79
+ .tier-pill:hover {
80
+ border-color: var(--border-hover);
81
+ transform: translateY(-2px);
82
+ }
83
+
84
+ .tier-pill-icon {
85
+ width: 40px;
86
+ height: 40px;
87
+ border-radius: var(--radius-md);
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: center;
91
+ font-size: 1rem;
92
+ flex-shrink: 0;
93
+ }
94
+
95
+ .tier-pill strong {
96
+ display: block;
97
+ font-size: 0.9rem;
98
+ color: var(--text-primary);
99
+ }
100
+
101
+ .tier-pill span {
102
+ font-size: 0.8rem;
103
+ color: var(--text-muted);
104
+ }
105
+
106
+ /* ─── Service Row ─────────────────────────────────────────────────── */
107
+ .service-row {
108
+ display: flex;
109
+ gap: 32px;
110
+ padding: 48px 0;
111
+ border-bottom: 1px solid var(--border-color);
112
+ align-items: flex-start;
113
+ }
114
+
115
+ .service-row:last-child {
116
+ border-bottom: none;
117
+ }
118
+
119
+ .service-number {
120
+ font-size: 3rem;
121
+ font-weight: 900;
122
+ letter-spacing: -0.04em;
123
+ background: linear-gradient(135deg, rgba(139,92,246,0.3), rgba(59,130,246,0.1));
124
+ -webkit-background-clip: text;
125
+ -webkit-text-fill-color: transparent;
126
+ background-clip: text;
127
+ min-width: 70px;
128
+ text-align: center;
129
+ line-height: 1;
130
+ padding-top: 8px;
131
+ }
132
+
133
+ .service-body {
134
+ flex: 1;
135
+ min-width: 0;
136
+ }
137
+
138
+ .service-head {
139
+ display: flex;
140
+ align-items: center;
141
+ gap: 16px;
142
+ margin-bottom: 12px;
143
+ }
144
+
145
+ .service-icon {
146
+ width: 52px;
147
+ height: 52px;
148
+ border-radius: var(--radius-md);
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: center;
152
+ font-size: 1.5rem;
153
+ flex-shrink: 0;
154
+ }
155
+
156
+ .service-head h3 {
157
+ margin-bottom: 4px;
158
+ font-size: 1.35rem;
159
+ }
160
+
161
+ .service-tiers {
162
+ display: flex;
163
+ gap: 6px;
164
+ flex-wrap: wrap;
165
+ }
166
+
167
+ .service-body > p {
168
+ color: var(--text-secondary);
169
+ font-size: 1rem;
170
+ line-height: 1.7;
171
+ margin-bottom: 24px;
172
+ max-width: 700px;
173
+ }
174
+
175
+ /* ─── Service Feature Grid ────────────────────────────────────────── */
176
+ .service-features {
177
+ display: grid;
178
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
179
+ gap: 16px;
180
+ }
181
+
182
+ .sf-item {
183
+ display: flex;
184
+ gap: 14px;
185
+ padding: 16px;
186
+ background: var(--bg-card);
187
+ border: 1px solid var(--border-color);
188
+ border-radius: var(--radius-md);
189
+ transition: border-color var(--transition-fast);
190
+ }
191
+
192
+ .sf-item:hover {
193
+ border-color: var(--border-hover);
194
+ }
195
+
196
+ .sf-icon {
197
+ font-size: 1.25rem;
198
+ flex-shrink: 0;
199
+ width: 28px;
200
+ text-align: center;
201
+ padding-top: 2px;
202
+ }
203
+
204
+ .sf-item strong {
205
+ display: block;
206
+ font-size: 0.88rem;
207
+ color: var(--text-primary);
208
+ margin-bottom: 4px;
209
+ }
210
+
211
+ .sf-item span {
212
+ font-size: 0.82rem;
213
+ color: var(--text-muted);
214
+ line-height: 1.5;
215
+ }
216
+
217
+ /* ─── Comparison Table ────────────────────────────────────────────── */
218
+ .compare-table {
219
+ width: 100%;
220
+ border-collapse: collapse;
221
+ }
222
+
223
+ .compare-table th,
224
+ .compare-table td {
225
+ padding: 14px 20px;
226
+ font-size: 0.88rem;
227
+ }
228
+
229
+ .compare-table th {
230
+ background: var(--bg-surface);
231
+ color: var(--text-muted);
232
+ font-weight: 700;
233
+ text-transform: uppercase;
234
+ letter-spacing: 0.04em;
235
+ font-size: 0.78rem;
236
+ }
237
+
238
+ .compare-table td {
239
+ border-bottom: 1px solid var(--border-color);
240
+ color: var(--text-secondary);
241
+ }
242
+
243
+ .compare-table tr:last-child td {
244
+ border-bottom: none;
245
+ }
246
+
247
+ .compare-table tr:hover td {
248
+ background: rgba(59,130,246,0.03);
249
+ }
250
+
251
+ .tc {
252
+ text-align: center !important;
253
+ }
254
+
255
+ .highlight-col {
256
+ background: rgba(139,92,246,0.04);
257
+ }
258
+
259
+ .compare-table .check {
260
+ color: var(--accent-green);
261
+ font-weight: 700;
262
+ font-size: 1rem;
263
+ }
264
+
265
+ .compare-table .cross {
266
+ color: var(--text-muted);
267
+ font-size: 0.9rem;
268
+ }
269
+
270
+ /* ─── Premium CTA ─────────────────────────────────────────────────── */
271
+ .premium-cta {
272
+ max-width: 700px;
273
+ margin: 0 auto;
274
+ }
275
+
276
+ .premium-cta h2 {
277
+ margin-bottom: 16px;
278
+ }
279
+
280
+ .premium-cta p {
281
+ color: var(--text-secondary);
282
+ font-size: 1.1rem;
283
+ line-height: 1.7;
284
+ }
285
+
286
+ /* ─── Responsive ──────────────────────────────────────────────────── */
287
+ @media (max-width: 768px) {
288
+ .service-row {
289
+ flex-direction: column;
290
+ gap: 16px;
291
+ }
292
+
293
+ .service-number {
294
+ min-width: auto;
295
+ font-size: 2.2rem;
296
+ }
297
+
298
+ .service-features {
299
+ grid-template-columns: 1fr;
300
+ }
301
+
302
+ .tier-pills {
303
+ flex-direction: column;
304
+ align-items: center;
305
+ }
306
+
307
+ .tier-pill {
308
+ width: 100%;
309
+ max-width: 360px;
310
+ }
311
+
312
+ .compare-table th,
313
+ .compare-table td {
314
+ padding: 10px 12px;
315
+ font-size: 0.8rem;
316
+ }
317
+ }