webcake-storefront-mcp 1.6.0 → 1.7.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.
@@ -1,4 +1,11 @@
1
1
  [
2
+ {
3
+ "v": "1.7.0",
4
+ "d": "23/06/2026",
5
+ "type": "Changed",
6
+ "en": "The web guide landing page (served via the serve command) is reframed to lead on full-storefront creation: the hero, meta description, \"What you…",
7
+ "vi": "Trang web guide (phục vụ qua lệnh serve) được viết lại để làm nổi bật việc xây dựng toàn bộ cửa hàng: hero, meta description, thư viện \"Bạn dựng…"
8
+ },
2
9
  {
3
10
  "v": "1.6.0",
4
11
  "d": "23/06/2026",
@@ -33,12 +40,5 @@
33
40
  "type": "Added",
34
41
  "en": "New create_site tool creates a brand-new storefront site for the current account (seeded with sample products, categories, and a blog), optionally…",
35
42
  "vi": "Tool mới create_site tạo một site storefront hoàn toàn mới cho tài khoản hiện tại (kèm sản phẩm, danh mục và blog mẫu), tự động chuyển sang site vừa…"
36
- },
37
- {
38
- "v": "1.2.0",
39
- "d": "23/06/2026",
40
- "type": "Added",
41
- "en": "upload_images replaces upload_image with batch support (1–20 sources per call), parallel uploads, and a dry_run mode that previews what would be…",
42
- "vi": "upload_images thay thế upload_image với khả năng xử lý hàng loạt (1–20 nguồn mỗi lần gọi), tải song song, và chế độ dry_run cho phép xem trước những…"
43
43
  }
44
44
  ]
package/dist/web-guide.js CHANGED
@@ -79,13 +79,13 @@ function tile(name) {
79
79
  const META = {
80
80
  vi: {
81
81
  title: "WebCake Storefront — Tạo website bán hàng chỉ bằng cách trò chuyện",
82
- desc: "Bạn nói ý tưởng, trợ lý AI dựng trang, bạn xem trước rồi đăng lênkhông cần kéo-thả hay biết lập trình. Kết nối Claude, Cursor, Windsurf với cửa hàng WebCake/StoreCake của bạn.",
82
+ desc: "Bạn nói ý tưởng, trợ lý AI dựng cả cửa hàng — tạo sản phẩm, danh mục, trang bán hàng bài viết có ảnh rồi xuất bản. Không cần kéo-thả hay biết lập trình. Kết nối Claude, Cursor, Windsurf với cửa hàng WebCake/StoreCake của bạn.",
83
83
  keywords: "WebCake, StoreCake, storefront, AI, Claude, Cursor, Windsurf, tạo trang bán hàng, website bán hàng, no-code, bán hàng online, tạo trang bằng AI",
84
84
  locale: "vi_VN",
85
85
  },
86
86
  en: {
87
87
  title: "WebCake Storefront — Build your online store just by chatting",
88
- desc: "Tell your AI assistant what you want, it builds the page on your WebCake store, you review and publishno dragging blocks, no coding required. Works with Claude, Cursor, Windsurf and more.",
88
+ desc: "Tell your AI assistant your idea and it builds an entire store creating products, categories, shop pages and blog posts with images then publishes. No dragging blocks, no coding. Works with Claude, Cursor, Windsurf and more.",
89
89
  keywords: "WebCake, StoreCake, storefront, AI, Claude, Cursor, Windsurf, AI page builder, no-code, e-commerce, online store builder",
90
90
  locale: "en_US",
91
91
  },
@@ -139,11 +139,11 @@ const FAQ = {
139
139
  };
140
140
  const T = {
141
141
  vi: {
142
- sub: "Tạo website bán hàng chỉ bằng cách trò chuyện không cần biết lập trình",
142
+ sub: "Dựng cả một cửa hàng online — sản phẩm, danh mục, trang, bài viết — chỉ bằng cách trò chuyện. Không cần biết lập trình.",
143
143
  running: "Đang hoạt động",
144
- leadPre: "Bạn nói điều mình muốn, trợ lý AI dựng trang trên cửa hàng WebCake của bạn, bạn xem trước rồi ",
145
- leadGrad: "đăng lên là xong",
146
- leadPost: ". Không kéo-thả, không học gì thêm — chỉ cần nói chuyện như bình thường.",
144
+ leadPre: "Bạn nói ý tưởng, trợ lý AI dựng nguyên một cửa hàng trên WebCake tạo sản phẩm, danh mục và trang bán hàng có ảnh — bạn xem trước rồi ",
145
+ leadGrad: "đăng lên là bán",
146
+ leadPost: ". Không kéo-thả, không học gì thêm — nhanh hơn thuê người làm web cả tuần.",
147
147
  ctaStart: "Bắt đầu ngay",
148
148
  ctaStar: "Tặng sao trên GitHub",
149
149
  flowH2: "Chỉ 4 bước đơn giản",
@@ -157,67 +157,67 @@ const T = {
157
157
  howH2: "Tại sao dùng được ngay, không lo hỏng",
158
158
  how: [
159
159
  {
160
- icon: "layers",
161
- t: "Trang đẹp, đúng ý",
162
- d: "Trợ lý hiểu đúng bố cục cửa hàng WebCakebanner, lưới sản phẩm, form đặt hàng, đếm ngược dựng trang trông chuyên nghiệp ngay từ đầu.",
160
+ icon: "cart",
161
+ t: "Dữ liệu thật, không phải shop rỗng",
162
+ d: "Trợ lý tạo luôn sản phẩm, danh mục bài viết kèm ảnh nên lưới sản phẩm, danh mục, blog hiện nội dung thật ngay, trông như một shop đang chạy.",
163
163
  },
164
164
  {
165
165
  icon: "check2",
166
- t: "Không lo hỏng layout",
167
- d: "Trước khi lưu, trang được kiểm tra tự động: bố cục đúng không, các phần khớp nhau không. Nếu gì sai, trợ lý sẽ tự sửa.",
166
+ t: "Chuẩn trên mọi thiết bị",
167
+ d: "Trang dựng đúng hình lưới của WebCake tự tối ưu cho desktop, laptop, tablet điện thoại không lo vỡ layout.",
168
168
  },
169
169
  {
170
170
  icon: "shield",
171
171
  t: "An toàn — luôn xem trước khi lưu",
172
- d: "Mọi thay đổi đều được hiển thị để bạn xem trước. Chưa xác nhận thì cửa hàng chưa bị đụng tới — bạn hoàn toàn kiểm soát.",
172
+ d: "Mọi thay đổi đều hiển thị để bạn xem trước. Chưa xác nhận thì cửa hàng chưa bị đụng tới — bạn hoàn toàn kiểm soát.",
173
173
  },
174
174
  {
175
175
  icon: "edit",
176
- t: "Sửa nhẹ nhàng, đúng chỗ",
177
- d: "Nói \"đổi nút sang màu tím\" hay \"thêm phần đánh giá\" — chỉ đúng chỗ đó được sửa, mọi thứ còn lại giữ nguyên.",
176
+ t: "Chỉnh đúng chỗ, xuất bản tức thì",
177
+ d: "Nói \"đổi nút sang tím\" hay \"thêm phần đánh giá\" — chỉ chỗ đó đổi. Ưng rồi bảo \"đăng lên\" cửa hàng live ngay.",
178
178
  },
179
179
  ],
180
- buildH2: "Bạn thể tạo những trang nào",
180
+ buildH2: "Bạn dựng được cả một cửa hàng",
181
181
  uses: [
182
182
  {
183
- icon: "cart",
184
- t: "Trang bán 1 sản phẩm",
185
- e: '"Tạo trang cho serum dưỡng da của tôi ảnh gallery, giá bánnút đặt hàng."',
183
+ icon: "server",
184
+ t: "Cả cửa hàng từ con số 0",
185
+ e: '"Tạo cho tôi cửa hàng thời trang mới vài danh mục, ít sản phẩm có ảnh giá, rồi dựng trang chủ."',
186
186
  },
187
187
  {
188
- icon: "window",
189
- t: "Trang chủ cửa hàng",
190
- e: '"Tạo trang chủ banner giới thiệu, các sản phẩm nổi bật, ô đăng nhận tin."',
188
+ icon: "cart",
189
+ t: "Sản phẩm & danh mục có ảnh",
190
+ e: '"Thêm 6 sản phẩm áo thun vào danh mục \"Áo thun\" — kèm ảnh, giá tả."',
191
191
  },
192
192
  {
193
- icon: "flame",
194
- t: "Trang flash sale",
195
- e: '"Tạo trang flash sale đồng hồ đếm ngược, danh sách sản phẩm giảm giá, nút mua dính cố định."',
193
+ icon: "window",
194
+ t: "Trang chủ bán hàng",
195
+ e: '"Tạo trang chủbanner, lưới danh mục, sản phẩm nổi bật bài viết mới."',
196
196
  },
197
197
  {
198
- icon: "ticket",
199
- t: "Trang sự kiện / webinar",
200
- e: '"Tạo trang đăng sự kiện thời gian, lịch trình, form đăng tham dự."',
198
+ icon: "layers",
199
+ t: "Bộ trang bán hàng đầy đủ",
200
+ e: '"Dựng đủ bộ: trang sản phẩm, danh mục, giỏ hàng, thanh toán cảm ơn."',
201
201
  },
202
202
  {
203
- icon: "mail",
204
- t: "Thiệp mời",
205
- e: '"Tạo thiệp cưới onlinetên, ngày tháng, địa chỉ, form xác nhận tham dự."',
203
+ icon: "flame",
204
+ t: "Trang flash sale",
205
+ e: '"Tạo trang flash saleđồng hồ đếm ngược, sản phẩm giảm giá, nút mua dính cố định."',
206
206
  },
207
207
  {
208
208
  icon: "newspaper",
209
- t: "Trang blog / nội dung",
210
- e: '"Tạo trang blog với các bài viết nổi bật ô đăng nhận bản tin."',
209
+ t: "Blog & bài viết",
210
+ e: '"Tạo chuyên mục blog 3 bài viết ảnh bìa, rồi gắn vào trang blog."',
211
211
  },
212
212
  {
213
- icon: "link",
214
- t: "Link-in-bio",
215
- e: '"Tạo trang link-in-bio — ảnh đại diện, giới thiệu ngắn, 5 nút liên kết, mạng xã hội."',
213
+ icon: "shield",
214
+ t: "Trang thành viên",
215
+ e: '"Tạo trang đăng nhập, đăng lịch sử đơn hàng cho khách."',
216
216
  },
217
217
  {
218
218
  icon: "wand",
219
- t: "Bất cứ trang nào bạn muốn",
220
- e: '"…rồi \"đổi màu nút\" hay \"thêm phần hỏi đáp\" trợ sửa đúng chỗ đó thôi."',
219
+ t: "Rồi chỉnh & đăng lên",
220
+ e: '"…\"đổi màu nút\", \"thêm phần hỏi đáp\" rồi \"đăng lên cửa hàng\" xong."',
221
221
  },
222
222
  ],
223
223
  connectH2: "Kết nối trợ lý AI với cửa hàng của bạn",
@@ -254,8 +254,8 @@ const T = {
254
254
  },
255
255
  {
256
256
  icon: "cart",
257
- t: "Quản lý sản phẩm & đơn hàng",
258
- d: "Xem sản phẩm, đơn hàng, bộ sưu tập, khuyến mãi, combo và thông tin khách hàng.",
257
+ t: "Tạo & quản lý sản phẩm",
258
+ d: "Tạo sản phẩm, danh mục, combo, khuyến mãi (kèm ảnh); xem đơn hàng, bộ sưu tập và thông tin khách hàng.",
259
259
  },
260
260
  {
261
261
  icon: "newspaper",
@@ -279,8 +279,8 @@ const T = {
279
279
  },
280
280
  ],
281
281
  promptH2: "Ví dụ — nói với trợ lý như thế này",
282
- promptSub: "Bạn có thể nói tự nhiên bằng tiếng Việt. Ví dụ:",
283
- promptEx: "Tạo cho tôi một trang sản phẩm trên WebCake cho thương hiệu [tên thương hiệu].\nTrang cần có: ảnh sản phẩm lớn, têngiá, tả ngắn, nút \"Mua ngay\".\nKiểm tra kỹ trước khi lưu, rồi xuất bản lên cửa hàng của tôi.",
282
+ promptSub: "Bạn có thể nói tự nhiên bằng tiếng Việt. Ví dụ, dựng cả cửa hàng:",
283
+ promptEx: "Tạo cho tôi một cửa hàng WebCake mới cho thương hiệu [tên thương hiệu].\nTạo 2-3 danh mục, mỗi danh mục vài sản phẩm có ảnh, giá và mô tả.\nDựng trang chủ: banner, lưới danh mục, sản phẩm nổi bật và mục bài viết mới.\nThêm 1 chuyên mục blog với 1 bài viết.\nKiểm tra kỹ rồi xuất bản lên cửa hàng giúp tôi.",
284
284
  faqH2: "Câu hỏi thường gặp",
285
285
  newH2: "Có gì mới",
286
286
  newBadge: "MỚI",
@@ -301,11 +301,11 @@ const T = {
301
301
  ],
302
302
  },
303
303
  en: {
304
- sub: "Build your online store just by chatting no coding or drag-and-drop needed",
304
+ sub: "Build a whole online store — products, categories, pages, blog posts — just by chatting. No coding required.",
305
305
  running: "Up and running",
306
- leadPre: "You describe what you want, your AI assistant builds the page on your WebCake store, you review it and ",
306
+ leadPre: "You describe your idea, your AI assistant builds an entire store on WebCake — creating products, categories and shop pages with images — you preview it and ",
307
307
  leadGrad: "publish it — done",
308
- leadPost: ". No dragging blocks, nothing to learn — just talk like you normally would.",
308
+ leadPost: ". No dragging blocks, nothing to learn — faster than waiting weeks for a web agency.",
309
309
  ctaStart: "Get started",
310
310
  ctaStar: "Star on GitHub",
311
311
  flowH2: "Just 4 simple steps",
@@ -319,14 +319,14 @@ const T = {
319
319
  howH2: "Why you can trust it straight away",
320
320
  how: [
321
321
  {
322
- icon: "layers",
323
- t: "Pages that look great",
324
- d: "The assistant understands WebCake's store layoutbanners, product grids, order forms, countdowns and builds a professional-looking page right from your first message.",
322
+ icon: "cart",
323
+ t: "Real data, not an empty shell",
324
+ d: "The assistant also creates products, categories and blog posts with images so product grids, category tiles and the blog show real content immediately, like a store that's already trading.",
325
325
  },
326
326
  {
327
327
  icon: "check2",
328
- t: "No broken layouts",
329
- d: "Before saving, the page is automatically checked: is the layout correct, do the sections fit together? If anything is off, the assistant fixes it itself.",
328
+ t: "Looks right on every device",
329
+ d: "Pages are built on WebCake's real grid model and auto-tuned for desktop, laptop, tablet and phone no broken layouts.",
330
330
  },
331
331
  {
332
332
  icon: "shield",
@@ -335,51 +335,51 @@ const T = {
335
335
  },
336
336
  {
337
337
  icon: "edit",
338
- t: "Easy, precise edits",
339
- d: "Say \"change the button to purple\" or \"add a reviews section\" — only that exact spot is updated, everything else stays as it was.",
338
+ t: "Precise edits, instant publish",
339
+ d: "Say \"make the button purple\" or \"add a reviews section\" — only that spot changes. Happy? Say \"publish\" and your store is live.",
340
340
  },
341
341
  ],
342
- buildH2: "What you can create",
342
+ buildH2: "You build a whole store",
343
343
  uses: [
344
+ {
345
+ icon: "server",
346
+ t: "A whole store from scratch",
347
+ e: '"Build me a new fashion store — a few categories, some products with images and prices, then a homepage."',
348
+ },
344
349
  {
345
350
  icon: "cart",
346
- t: "Single product page",
347
- e: '"Create a page for my skincare serumphoto gallery, price, and an order button."',
351
+ t: "Products & categories with images",
352
+ e: '"Add 6 t-shirt products to the \"T-shirts\" category with images, prices and descriptions."',
348
353
  },
349
354
  {
350
355
  icon: "window",
351
356
  t: "Store homepage",
352
- e: '"Create a homepage — intro banner, featured products, newsletter sign-up."',
353
- },
354
- {
355
- icon: "flame",
356
- t: "Flash sale page",
357
- e: '"Create a flash sale page — big countdown timer, discounted products, sticky buy button."',
357
+ e: '"Create a homepage — banner, category grid, featured products and latest posts."',
358
358
  },
359
359
  {
360
- icon: "ticket",
361
- t: "Event / webinar page",
362
- e: '"Create an event sign-up page — date, schedule, registration form."',
360
+ icon: "layers",
361
+ t: "A full set of shop pages",
362
+ e: '"Build the full set: product page, category, cart, checkout and thank-you."',
363
363
  },
364
364
  {
365
- icon: "mail",
366
- t: "Invitation",
367
- e: '"Create a wedding invitenames, date, location, RSVP form."',
365
+ icon: "flame",
366
+ t: "Flash sale page",
367
+ e: '"Create a flash sale page countdown timer, discounted products, sticky buy button."',
368
368
  },
369
369
  {
370
370
  icon: "newspaper",
371
- t: "Blog / content page",
372
- e: '"Create a blog page with featured posts and a newsletter subscribe box."',
371
+ t: "Blog & articles",
372
+ e: '"Create a blog category and 3 articles with cover images, then wire up the blog page."',
373
373
  },
374
374
  {
375
- icon: "link",
376
- t: "Link-in-bio",
377
- e: '"Create a link-in-bio — profile photo, short bio, 5 link buttons, socials."',
375
+ icon: "shield",
376
+ t: "Member pages",
377
+ e: '"Create login, register and order-history pages for customers."',
378
378
  },
379
379
  {
380
380
  icon: "wand",
381
- t: "Anything you can think of",
382
- e: '"…then \"change the button colour\" or \"add an FAQ section\" just that part gets updated."',
381
+ t: "Then tweak & publish",
382
+ e: '"…\"change the button colour\", \"add an FAQ\", then \"publish to my store\" done."',
383
383
  },
384
384
  ],
385
385
  connectH2: "Connect your AI assistant to your store",
@@ -416,8 +416,8 @@ const T = {
416
416
  },
417
417
  {
418
418
  icon: "cart",
419
- t: "Products & orders",
420
- d: "View products, orders, collections, promotions, bundles, and customer information.",
419
+ t: "Create & manage products",
420
+ d: "Create products, categories, bundles and promotions (with images); view orders, collections and customer info.",
421
421
  },
422
422
  {
423
423
  icon: "newspaper",
@@ -441,8 +441,8 @@ const T = {
441
441
  },
442
442
  ],
443
443
  promptH2: "Example — here's what to say to your assistant",
444
- promptSub: "You can speak naturally. For example:",
445
- promptEx: "Create a product page on my WebCake store for [brand name].\nThe page should have: a large product image, name and price, a short description, and a \"Buy Now\" button.\nPlease check everything looks right before saving, then publish it to my store.",
444
+ promptSub: "You can speak naturally. For example, build a whole store:",
445
+ promptEx: "Create a new WebCake store for [brand name].\nCreate 2-3 categories, each with a few products that have images, prices and descriptions.\nBuild the homepage: banner, category grid, featured products and a latest-posts section.\nAdd a blog category with one article.\nCheck everything, then publish it to my store.",
446
446
  faqH2: "Frequently asked questions",
447
447
  newH2: "What's new",
448
448
  newBadge: "NEW",
@@ -584,22 +584,36 @@ export function guideHtml(origin, lang = "vi") {
584
584
  <meta name="twitter:image:alt" content="${m.title}">
585
585
  <script type="application/ld+json">${jsonLdScript}</script>
586
586
  <style>
587
- :root{--g:#108B67;--g7:#0c6f52;--ink:#11121e;--mut:#5e5f7a;--bg:#f6f5ff;--card:#ffffff;
588
- --line:rgba(16,14,40,.09);--shadow:0 1px 2px rgba(16,14,40,.05),0 6px 20px -12px rgba(16,14,40,.18);--code:#0e0d1a;
589
- --ic-fg:#0c6f52;--btn-hover:#0c6f52;--navbg:rgba(246,245,255,.82)}
590
- @media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#eaf1ee;--mut:#9fb0a9;--bg:#0f1714;--card:#18211d;
591
- --line:rgba(255,255,255,.09);--shadow:0 1px 2px rgba(0,0,0,.35),0 12px 34px -16px rgba(0,0,0,.6);--code:#0b120f;--g:#16a37c;--g7:#6fe6c0;--ic-fg:#8aecc9;--btn-hover:#1cba8d;--navbg:rgba(15,23,20,.82)}}
592
- :root[data-theme="dark"]{--ink:#eaf1ee;--mut:#9fb0a9;--bg:#0f1714;--card:#18211d;
593
- --line:rgba(255,255,255,.09);--shadow:0 1px 2px rgba(0,0,0,.35),0 12px 34px -16px rgba(0,0,0,.6);--code:#0b120f;--g:#16a37c;--g7:#6fe6c0;--ic-fg:#8aecc9;--btn-hover:#1cba8d;--navbg:rgba(15,23,20,.82)}
587
+ :root{--g:#108B67;--g7:#0c6f52;--ink:#13211c;--mut:#5a6b64;--bg:#f6faf8;--bg2:#e9f2ec;--card:#ffffff;
588
+ --line:rgba(16,48,38,.10);--shadow:0 1px 2px rgba(16,48,38,.05),0 6px 20px -12px rgba(16,48,38,.18);--code:#0c1a15;
589
+ --ic-fg:#0c6f52;--btn-hover:#0c6f52;--navbg:rgba(246,250,248,.82)}
590
+ @media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#eaf1ee;--mut:#9fb0a9;--bg:#0d1714;--bg2:#091310;--card:#161f1b;
591
+ --line:rgba(255,255,255,.09);--shadow:0 1px 2px rgba(0,0,0,.35),0 12px 34px -16px rgba(0,0,0,.6);--code:#0b120f;--g:#16a37c;--g7:#6fe6c0;--ic-fg:#8aecc9;--btn-hover:#1cba8d;--navbg:rgba(13,23,20,.82)}}
592
+ :root[data-theme="dark"]{--ink:#eaf1ee;--mut:#9fb0a9;--bg:#0d1714;--bg2:#091310;--card:#161f1b;
593
+ --line:rgba(255,255,255,.09);--shadow:0 1px 2px rgba(0,0,0,.35),0 12px 34px -16px rgba(0,0,0,.6);--code:#0b120f;--g:#16a37c;--g7:#6fe6c0;--ic-fg:#8aecc9;--btn-hover:#1cba8d;--navbg:rgba(13,23,20,.82)}
594
594
  *{box-sizing:border-box}
595
595
  html{scroll-behavior:auto}
596
596
  html.smooth{scroll-behavior:smooth}
597
597
  body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);
598
- background:var(--bg);line-height:1.62;overflow-x:hidden}
598
+ background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);background-attachment:fixed;
599
+ min-height:100vh;line-height:1.62;overflow-x:hidden}
600
+ /* layered "aurora" mesh of soft teal glows */
601
+ body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
602
+ background:
603
+ radial-gradient(58% 46% at 50% -8%,rgba(16,139,103,.12),transparent 70%),
604
+ radial-gradient(40% 38% at 100% 4%,rgba(20,168,124,.09),transparent 70%),
605
+ radial-gradient(46% 46% at 0% 100%,rgba(16,139,103,.08),transparent 70%)}
606
+ /* faint grid texture, masked so it only whispers near the top */
607
+ body::after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.55;
608
+ background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
609
+ background-size:46px 46px;
610
+ -webkit-mask:radial-gradient(120% 70% at 50% 0%,#000 0%,transparent 62%);
611
+ mask:radial-gradient(120% 70% at 50% 0%,#000 0%,transparent 62%)}
599
612
  .blobs{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
600
- .blobs b{position:absolute;border-radius:50%;filter:blur(90px);opacity:.16;will-change:transform}
613
+ .blobs b{position:absolute;border-radius:50%;filter:blur(100px);opacity:.13;will-change:transform}
601
614
  .blobs b:nth-child(1){width:560px;height:560px;right:-160px;top:-180px;background:radial-gradient(circle,#108B67,transparent 70%);animation:drift1 40s ease-in-out infinite}
602
615
  .blobs b:nth-child(2){width:440px;height:440px;left:-160px;bottom:-160px;background:radial-gradient(circle,#14a87c,transparent 70%);animation:drift2 48s ease-in-out infinite}
616
+ .blobs b:nth-child(3){width:380px;height:380px;left:46%;top:34%;background:radial-gradient(circle,#3fcf9e,transparent 70%);opacity:.08;animation:drift1 56s ease-in-out infinite}
603
617
  @keyframes drift1{50%{transform:translate(-50px,60px)}}
604
618
  @keyframes drift2{50%{transform:translate(40px,-50px)}}
605
619
  .wrap{max-width:900px;margin:0 auto;padding:48px 20px 72px}
@@ -793,7 +807,7 @@ export function guideHtml(origin, lang = "vi") {
793
807
  }
794
808
  </style></head>
795
809
  <body>
796
- <div class="blobs"><b></b><b></b></div>
810
+ <div class="blobs"><b></b><b></b><b></b></div>
797
811
  <div class="wrap">
798
812
 
799
813
  <header class="hero-in">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webcake-storefront-mcp",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "MCP server for the WebCake/StoreCake storefront builder — page CRUD, page authoring, products, orders, and more",
5
5
  "mcpName": "io.github.vuluu2k/webcake-storefront-mcp",
6
6
  "license": "MIT",