@wix/agent-skills 1.18.1 → 1.19.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 (74) hide show
  1. package/package.json +1 -1
  2. package/skills/wix-app/SKILL.md +13 -13
  3. package/skills/wix-app/references/APP_VALIDATION.md +7 -33
  4. package/skills/wix-app/references/BACKEND_API.md +151 -152
  5. package/skills/wix-app/references/DASHBOARD_PAGE.md +18 -14
  6. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +6 -3
  7. package/skills/wix-app/references/EXTENSION_REGISTRATION.md +12 -8
  8. package/skills/wix-app/references/WIX_PATTERNS_DOCS.md +23 -26
  9. package/skills/wix-app/references/dashboard-page/COLLECTION_TOOLKIT.md +7 -6
  10. package/skills/wix-app/references/dashboard-page/ENTITY_PAGE_TOOLKIT.md +71 -4
  11. package/skills/wix-app/references/dashboard-page/PATTERNS_BUNDLE_READING.md +67 -7
  12. package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +1 -1
  13. package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +9 -6
  14. package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +59 -89
  15. package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +23 -4
  16. package/skills/wix-base44-connector/SKILL.md +168 -48
  17. package/skills/wix-base44-connector/scripts/{utils.js → utils.cjs} +69 -48
  18. package/skills/wix-docs/SKILL.md +109 -111
  19. package/skills/wix-docs/references/API_SPEC_SEARCH.md +35 -23
  20. package/skills/wix-docs/references/CALLING.md +91 -0
  21. package/skills/wix-docs/references/EXTRACTING.md +5 -3
  22. package/skills/wix-headless/references/DOC_DISCOVERY.md +9 -3
  23. package/skills/wix-manage/SKILL.md +8 -2
  24. package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +59 -33
  25. package/skills/wix-manage/references/bookings/bookings-staff-setup.md +45 -22
  26. package/skills/wix-manage/references/bookings/multi-resource-service-creation.md +70 -12
  27. package/skills/wix-manage/references/calendar/configure-default-business-hours.md +53 -17
  28. package/skills/wix-manage/references/seo/manage-content-plan.md +247 -0
  29. package/skills/wix-manage/references/seo/manage-seo-tags.md +59 -6
  30. package/skills/wix-manage/references/stores/change-store-currency.md +10 -0
  31. package/skills/wix-manage/references/stores/create-product-catalog-v3.md +17 -1
  32. package/skills/wix-manage/references/stores/update-product-with-options.md +9 -0
  33. package/skills/wix-vibe-headless/SKILL.md +17 -18
  34. package/skills/wix-vibe-headless/install/pin-agents-md.cjs +1 -1
  35. package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed-with-install.md +119 -0
  36. package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +61 -67
  37. package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +31 -29
  38. package/skills/wix-vibe-headless/platforms/base44.md +18 -7
  39. package/skills/wix-vibe-headless/platforms/generic.md +13 -12
  40. package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +4 -13
  41. package/skills/wix-vibe-headless/references/blog/seed/SEED.md +4 -8
  42. package/skills/wix-vibe-headless/references/blog/seed/{seed-blog.js → seed-blog.cjs} +2 -3
  43. package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +5 -14
  44. package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +5 -9
  45. package/skills/wix-vibe-headless/references/bookings/seed/{seed-bookings.js → seed-bookings.cjs} +2 -2
  46. package/skills/wix-vibe-headless/references/bookings/seed/{seed-rentals.js → seed-rentals.cjs} +3 -3
  47. package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +1 -1
  48. package/skills/wix-vibe-headless/references/cms/seed/SEED.md +2 -2
  49. package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +4 -13
  50. package/skills/wix-vibe-headless/references/events/seed/SEED.md +3 -7
  51. package/skills/wix-vibe-headless/references/events/seed/{seed-events.js → seed-events.cjs} +2 -2
  52. package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +2 -1
  53. package/skills/wix-vibe-headless/references/forms/seed/SEED.md +1 -1
  54. package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +4 -13
  55. package/skills/wix-vibe-headless/references/members/seed/SEED.md +2 -3
  56. package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +4 -13
  57. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +1 -1
  58. package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +3 -7
  59. package/skills/wix-vibe-headless/references/portfolio/seed/{seed-portfolio.js → seed-portfolio.cjs} +2 -2
  60. package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +5 -14
  61. package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +1 -1
  62. package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +3 -7
  63. package/skills/wix-vibe-headless/references/pricing-plans/seed/{seed-pricing-plans.js → seed-pricing-plans.cjs} +2 -2
  64. package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +5 -15
  65. package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +3 -7
  66. package/skills/wix-vibe-headless/references/restaurants/seed/{seed-restaurants.js → seed-restaurants.cjs} +2 -2
  67. package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +363 -327
  68. package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +1 -0
  69. package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +2 -2
  70. package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +63 -78
  71. package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +59 -43
  72. package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +51 -14
  73. package/skills/wix-vibe-headless/references/storefront/seed/{seed-store.js → seed-store.cjs} +194 -28
  74. package/skills/wix-vibe-headless/references/storefront/app/pages/Shop.jsx +0 -75
@@ -1,5 +1,5 @@
1
1
  // Rentals seed helpers — run at BUILD TIME via exec_tool (NOT shipped in the app).
2
- // A DELTA on seed-bookings.js: Wix Rentals has no APIs of its own, so a rental is a Bookings
2
+ // A DELTA on seed-bookings.cjs: Wix Rentals has no APIs of its own, so a rental is a Bookings
3
3
  // service carrying rentals-specific field values. Everything about the transport, images and
4
4
  // error handling is the same; only the create order and the service payload differ.
5
5
  //
@@ -9,7 +9,7 @@
9
9
  // Usage (build-time exec_tool) — prefer `setupRentals`, which runs the whole flow in the one order
10
10
  // that works and threads the resource ids into each service for you:
11
11
  // const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
12
- // const seed = require("/app/.agents/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.js");
12
+ // const seed = require("/app/.agents/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.cjs");
13
13
  // const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
14
14
  // await seed.setupRentals(ctx, {
15
15
  // resourceTypeName: "Meeting rooms",
@@ -27,7 +27,7 @@
27
27
  // 2. Resources created before the service, and their ids listed in `serviceResources[].resourceIds`.
28
28
  // 3. No category — a rental is surfaced by its `appId`, not by a Bookings category.
29
29
  //
30
- // Images are reused from seed-bookings.js — require both.
30
+ // Images are reused from seed-bookings.cjs — require both.
31
31
  // Source recipe: wix-headless/references/inline-recipes/setup-rentals.md.
32
32
 
33
33
  const API = "https://www.wixapis.com";
@@ -148,7 +148,7 @@ Validate the mime type and the size there as well.
148
148
 
149
149
  ## Fallback — beyond the helpers
150
150
  Need something the helpers don't cover? Call it yourself with `wixApiRequest`, but look up the exact
151
- endpoint/method/body in the official Wix reference first (or use the `wix-docs` skill) — never guess.
151
+ endpoint/method/body in the official Wix reference first (or use the documentation skill available in your environment) — never guess.
152
152
  - Data Items API: https://dev.wix.com/docs/api-reference/business-solutions/cms/data-items.md
153
153
  - Partial update (Patch): https://dev.wix.com/docs/api-reference/business-solutions/cms/data-items/patch-data-item.md
154
154
  - Upsert by id (Save): https://dev.wix.com/docs/api-reference/business-solutions/cms/data-items/save-data-item.md
@@ -141,5 +141,5 @@ permission scope, and the response envelope.
141
141
  - Bulk Insert Data Item References: https://dev.wix.com/docs/api-reference/business-solutions/cms/data-items/bulk-insert-data-item-references.md
142
142
  - Data Items API: https://dev.wix.com/docs/api-reference/business-solutions/cms/data-items.md
143
143
  - Collections: https://dev.wix.com/docs/api-reference/business-solutions/cms/collection-management/data-collections.md
144
- - Anything not covered → use the `wix-docs` skill (search + read the live reference); never guess.
145
- - Anything not covered → use the `wix-docs` skill (search + read the live reference); never guess.
144
+ - Anything not covered → use the documentation skill available in your environment (search + read the live reference); never guess.
145
+ - Anything not covered → use the documentation skill available in your environment (search + read the live reference); never guess.
@@ -47,16 +47,9 @@ end). (Files missing? the install's `deploy` result lists what it wrote; re-run
47
47
  `references/events/app/` → `src/`.)
48
48
 
49
49
 
50
- ## STEP 2 — Theme (nothing to style on the shipped components)
51
- The shipped components carry **no palette of their own** — they render from base44's design tokens in
52
- `src/index.css` (`:root`/`.dark`: `--background`, `--foreground`, `--card`, `--primary`, `--muted`,
53
- `--border`, `--radius`, `--font-*`) via shadcn Tailwind classes (`bg-card`, `text-foreground`,
54
- `bg-primary`, `text-muted-foreground`, `border-border`, `rounded-lg`, `font-display`). Those tokens
55
- are **already set to the brand by the design phase**, so the shipped pages are themed with zero work
56
- here. To adjust the palette, edit `index.css` (`:root` **and** `.dark`) — the base44 way; **never add
57
- a parallel theme file (e.g. a `theme.css`) or restyle the shipped JSX.** Build the Home/Header you add
58
- (STEP 3) from the **same** base44 tokens/classes so it matches automatically. A dark brand is just
59
- base44's dark palette in `index.css` — no per-component work.
50
+ ## STEP 2 — Theme
51
+ Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
52
+ share the same colors and typography.
60
53
 
61
54
  ## STEP 3 — Wire routes + provider (surgical `find_replace` on `src/App.jsx`, never a rewrite)
62
55
  **No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
@@ -206,10 +199,9 @@ official Wix Events API reference first, never guess:
206
199
  - Member login + "my registrations" → the **members** vertical (`references/members/INSTRUCTIONS.md`).
207
200
 
208
201
  Fallback only — when you hit an error or need something not shown here: read the relevant shipped file
209
- under `src/`, or look it up via the **`wix-docs`** skill.
202
+ under `src/`, or look it up via the documentation skill available in your environment.
210
203
 
211
204
  ## Hard rules
212
- - Style via base44 design tokens (`index.css` / shadcn Tailwind classes), never by rewriting the shipped components or adding a parallel theme file.
213
205
  - Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped `Events`/`EventDetail` to add chrome.
214
206
  - The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your `Header` is plain in-flow markup (not `position:fixed`).
215
207
  - Paid ticket checkout goes through the shipped reserve → `getTicketCheckoutUrl` redirect (the Wix-hosted ticket form) — never a hand-built registration/ticket/payment URL.
@@ -225,7 +217,6 @@ parallel.
225
217
 
226
218
  ## Verify (before declaring done)
227
219
  - [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
228
- - [ ] Brand palette lives in `index.css` (`:root`/`.dark`); no parallel theme file; shipped components/pages not restyled or rewritten.
229
220
  - [ ] Opened the vertical's data route(s) (not just the home page) and confirmed the shipped components render themed (surface, text, brand) with images.
230
221
  - [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all routes; shipped `Events`/`EventDetail` untouched; content clears the fixed chrome.
231
222
  - [ ] Event grid renders live events; clicking a card opens the detail page by `slug`; visitor token persists across reload.
@@ -1,6 +1,6 @@
1
1
  # Events — seeding
2
2
 
3
- Seed Wix Events (Events V3) by **calling `seed-events.js`** — don't hand-write the REST calls. It's
3
+ Seed Wix Events (Events V3) by **calling `seed-events.cjs`** — don't hand-write the REST calls. It's
4
4
  a build-time module (run via `exec_tool`, not shipped in the app) that abstracts every Wix Events
5
5
  seed operation. `require` it and call the functions with plain data.
6
6
 
@@ -14,11 +14,7 @@ after create, and **publishing is one-way**. So per event: create DRAFT → (tic
14
14
  ```js
15
15
  // build-time exec_tool
16
16
  const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
17
- const fs = require("fs");
18
- // exec_tool's require can return EMPTY exports for these build-time modules — load the file itself:
19
- const seed = (() => { const m = { exports: {} };
20
- new Function("module", "exports", "require", fs.readFileSync("/app/.agents/skills/wix-vibe-headless/references/events/seed/seed-events.js", "utf8"))(m, m.exports, require);
21
- return m.exports; })();
17
+ const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/events/seed/seed-events.cjs"));
22
18
  const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
23
19
 
24
20
  // DEFAULT — one call runs the whole flow per event (create DRAFT → tiers → publish), then resolves
@@ -94,7 +90,7 @@ Free/RSVP events need neither.
94
90
 
95
91
  ## Reference
96
92
  If a call returns a shape you didn't expect, or you need an operation this module doesn't cover,
97
- use the **`wix-docs`** skill to search + read the live Wix API reference — never guess. The
93
+ use the documentation skill available in your environment to search + read the live Wix API reference — never guess. The
98
94
  authoritative source recipe is `wix-headless/references/inline-recipes/setup-events.md`.
99
95
 
100
96
  Read a method's page before writing its call: it carries the exact body shape, the required
@@ -8,7 +8,7 @@
8
8
  //
9
9
  // Usage (build-time exec_tool):
10
10
  // const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix"); // Base44 (generic: use $TOKEN)
11
- // const seed = require("/app/.agents/skills/wix-vibe-headless/references/events/seed/seed-events.js");
11
+ // const seed = require("/app/.agents/skills/wix-vibe-headless/references/events/seed/seed-events.cjs");
12
12
  // const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
13
13
  //
14
14
  // // setupEvents installs the Wix Events app first (installEventsApp) — base44 sites may not have it.
@@ -31,7 +31,7 @@
31
31
  // const file = await seed.importImage(ctx, imageUrl); // → { id, url } (Wix Media file id + wixstatic url)
32
32
  // await seed.setEventMainImage(ctx, { eventId: ev.id, id: file.id, url: file.url, height: 1024, width: 1024, altText: ev.slug });
33
33
  //
34
- // If any call fails with a shape the caller didn't expect, fall back to the wix-docs skill
34
+ // If any call fails with a shape the caller didn't expect, fall back to the documentation skill available in your environment
35
35
  // (search + read the live Wix API reference) — never guess. Source recipe (authoritative):
36
36
  // wix-headless/references/inline-recipes/setup-events.md.
37
37
 
@@ -422,7 +422,8 @@ Don't reach for `role="form"`, an `aria-label` on an input that already has a `<
422
422
  Three sources answer what this file doesn't: the **JSDoc** in `hooks/useWixForm.js` and
423
423
  `lib/wix-form-schema-utils.js`; the **Wix reference** below; and `seed/SEED.md` for how a field was
424
424
  authored, and REVISE for changing one. Calling an endpoint the helpers don't wrap is fine via
425
- `wixApiRequest` — look up the exact method and body first (or the `wix-docs` skill), never guess.
425
+ `wixApiRequest` — first look up the exact method and body in official Wix API documentation using
426
+ the documentation skill available in your environment; never guess.
426
427
 
427
428
  - Form object (the shape `form` and its fields arrive in): https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/form-object.md
428
429
  - Form Schemas API: https://dev.wix.com/docs/api-reference/crm/forms/form-schemas.md
@@ -25,7 +25,7 @@ The six steps, each with a section below:
25
25
 
26
26
  Wix Forms is a **CRM** API, not Business Solutions. Read the page before writing a call you don't
27
27
  find here — never guess a shape. For anything these pages don't settle — a response shape you didn't
28
- expect, or an operation this doc doesn't cover — use the **`wix-docs`** skill to search + read the
28
+ expect, or an operation this doc doesn't cover — use the documentation skill available in your environment to search + read the
29
29
  live Wix API reference.
30
30
 
31
31
  | step | title | page | what it settles |
@@ -72,16 +72,9 @@ fallback — a runtime error, or a field the snippets don't cover (see "Fallback
72
72
  > the top of the file — read that, not the whole body, if you need the contract.
73
73
 
74
74
 
75
- ## STEP 2 — Theme (nothing to style on the shipped components)
76
- The shipped components carry **no palette of their own** — they render from base44's design tokens
77
- in `src/index.css` (`:root`/`.dark`: `--background`, `--foreground`, `--card`, `--primary`, `--muted`,
78
- `--border`, `--radius`, `--font-*`) via shadcn Tailwind classes (`bg-card`, `text-foreground`,
79
- `bg-primary`, `text-muted-foreground`, `border-border`, `rounded-lg`, `font-display`). Those tokens
80
- are **already set to the brand by the design phase**, so the shipped auth surfaces are themed with
81
- zero work here. To adjust the palette, edit `index.css` (`:root` **and** `.dark`) — the base44 way;
82
- **never add a parallel theme file (e.g. a `theme.css`) or restyle the shipped JSX.** Build the
83
- Home/Header you add (STEP 3) from the **same** base44 tokens/classes so it matches automatically. A
84
- dark brand is just base44's dark palette in `index.css` — no per-component work.
75
+ ## STEP 2 — Theme
76
+ Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
77
+ share the same colors and typography.
85
78
 
86
79
  ## STEP 3 — Wire routes + provider (surgical `find_replace` on `src/App.jsx`, never a rewrite)
87
80
  **No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
@@ -254,10 +247,9 @@ Members Area app:
254
247
 
255
248
  Fallback only — when you hit an error or need something not shown here (password reset, custom SSO
256
249
  connection ids, a profile field these snippets don't have): read the relevant shipped file under
257
- `src/rest/`, or look it up via the **`wix-docs`** skill.
250
+ `src/rest/`, or look it up via the documentation skill available in your environment.
258
251
 
259
252
  ## Hard rules
260
- - Style via base44 design tokens (`index.css` / shadcn Tailwind classes), never by rewriting the shipped components or adding a parallel theme file.
261
253
  - **Custom login only** — the member logs in on **your** UI; never redirect them to a Wix-hosted login page.
262
254
  - **One shared client** — login swaps the token set on `wix-client.js`; reuse it for everything so the
263
255
  member identity carries across the app. Never mint a second client or re-mint anonymously after login.
@@ -283,7 +275,6 @@ site's `metaSiteId` from the handoff / `ListWixSites`):
283
275
 
284
276
  ## Verify (before declaring done)
285
277
  - [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
286
- - [ ] Brand palette lives in `index.css` (`:root`/`.dark`); no parallel theme file; shipped components/pages not restyled or rewritten.
287
278
  - [ ] Opened the vertical's data route(s) (not just the home page) — `/login` and `/account` — and confirmed the shipped components render themed (surface, text, brand) with images.
288
279
  - [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all routes; shipped `Login`/`Account`/`Callback` untouched; content clears the fixed chrome; `<MemberProvider>` wraps the tree; `<MemberMenu/>` in the header.
289
280
  - [ ] Sign-up: `register()` reaches `SUCCESS` (or `REQUIRE_EMAIL_VERIFICATION` handled via the code entry).
@@ -2,15 +2,14 @@
2
2
 
3
3
  **Nothing to seed.** Members login is the identity layer: members **self-register** through the
4
4
  Wix login page, so there is no member to create at build time and nothing lands in a `seeded`
5
- map. There is intentionally no `seed-*.js` here.
5
+ map. There is intentionally no `seed-*.cjs` here.
6
6
 
7
7
  The members work is entirely **frontend wiring** (custom login, account area, gated content) —
8
8
  see this vertical's `INSTRUCTIONS.md` and the reference components.
9
9
 
10
10
  _Optional, off by default:_ only if a run's prompt explicitly asks to exercise the pricing-plans
11
11
  purchase path end-to-end, one test member may be created — keep this off so headless runs stay
12
- deterministic and don't stall on an interactive login. If you need that, use the **`wix-docs`**
13
- skill for the current member-create shape (source: `wix-headless/references/SEED.md` § members).
12
+ deterministic and don't stall on an interactive login. If you need that, use the documentation skill available in your environment for the current member-create shape (source: `wix-headless/references/SEED.md` § members).
14
13
 
15
14
  ## Reference
16
15
  Members self-register, so this vertical seeds nothing. These are the methods to read if you do reach
@@ -48,16 +48,9 @@ end). (Files missing? the install's `deploy` result lists what it wrote; re-run
48
48
  `references/portfolio/app/` → `src/`.)
49
49
 
50
50
 
51
- ## STEP 2 — Theme (nothing to style on the shipped components)
52
- The shipped components carry **no palette of their own** — they render from base44's design tokens in
53
- `src/index.css` (`:root`/`.dark`: `--background`, `--foreground`, `--card`, `--primary`, `--muted`,
54
- `--border`, `--radius`, `--font-*`) via shadcn Tailwind classes (`bg-card`, `text-foreground`,
55
- `bg-primary`, `text-muted-foreground`, `border-border`, `rounded-lg`, `font-display`). Those tokens
56
- are **already set to the brand by the design phase**, so the shipped pages are themed with zero work
57
- here. To adjust the palette, edit `index.css` (`:root` **and** `.dark`) — the base44 way; **never add
58
- a parallel theme file (e.g. a `theme.css`) or restyle the shipped JSX.** Build the Home/Header you add
59
- (STEP 3) from the **same** base44 tokens/classes so it matches automatically. A dark brand is just
60
- base44's dark palette in `index.css` — no per-component work.
51
+ ## STEP 2 — Theme
52
+ Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
53
+ share the same colors and typography.
61
54
 
62
55
  ## STEP 3 — Wire routes (surgical `find_replace` on `src/App.jsx`, never a rewrite)
63
56
  **No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
@@ -196,12 +189,11 @@ Cover images live at `collection.coverImage.imageInfo.url` and `project.coverIma
196
189
 
197
190
  Fallback only — when you hit an error or need something not shown here (collection SEO, portfolio
198
191
  settings, a field these snippets don't have): read the relevant shipped file under `src/`, or look
199
- it up via the **`wix-docs`** skill / the Portfolio API reference. Each helper in `wix-portfolio.js`
192
+ it up via the documentation skill available in your environment / the Portfolio API reference. Each helper in `wix-portfolio.js`
200
193
  links its own reference page inline; the whole area is here:
201
194
  - Portfolio (collections, projects, project items): https://dev.wix.com/docs/api-reference/business-solutions/portfolio.md
202
195
 
203
196
  ## Hard rules
204
- - Style via base44 design tokens (`index.css` / shadcn Tailwind classes), never by rewriting the shipped components or adding a parallel theme file.
205
197
  - Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped
206
198
  `Portfolio`/`CollectionPage`/`ProjectDetail` to add chrome.
207
199
  - The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your
@@ -222,7 +214,6 @@ Seed collections and projects per `seed/SEED.md` — separate from this client b
222
214
 
223
215
  ## Verify (before declaring done)
224
216
  - [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
225
- - [ ] Brand palette lives in `index.css` (`:root`/`.dark`); no parallel theme file; shipped components/pages not restyled or rewritten.
226
217
  - [ ] Opened the vertical's data route(s) (`/portfolio`, a collection, a project) — not just the home page — and confirmed the shipped components render themed (surface, text, brand) with images.
227
218
  - [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all
228
219
  routes; shipped `Portfolio`/`CollectionPage`/`ProjectDetail` untouched; content clears the fixed chrome.
@@ -16,7 +16,7 @@ export default function ProjectMedia({ item }) {
16
16
  }
17
17
  if (item.type === "VIDEO") {
18
18
  // resolutions[].url is the confirmed field; posters[0] is the poster (sub-shape not in the
19
- // helper JSDoc — posters[0].url used here; confirm in wix-docs if a brand needs more).
19
+ // helper JSDoc — posters[0].url used here; confirm in documentation skill available in your environment if a brand needs more).
20
20
  const vi = item.video?.videoInfo;
21
21
  const src = https(vi?.resolutions?.[0]?.url);
22
22
  const poster = https(vi?.posters?.[0]?.url);
@@ -1,6 +1,6 @@
1
1
  # Portfolio — seeding
2
2
 
3
- Seed a Wix Portfolio by **calling `seed-portfolio.js`** — don't hand-write the REST calls. It's
3
+ Seed a Wix Portfolio by **calling `seed-portfolio.cjs`** — don't hand-write the REST calls. It's
4
4
  a build-time module (run via `exec_tool`, not shipped in the app) that abstracts every Wix
5
5
  Portfolio seed operation. `require` it and call the functions with plain data.
6
6
 
@@ -17,11 +17,7 @@ first, then thread their real ids into each project.
17
17
  ```js
18
18
  // build-time exec_tool
19
19
  const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
20
- const fs = require("fs");
21
- // exec_tool's require can return EMPTY exports for these build-time modules — load the file itself:
22
- const seed = (() => { const m = { exports: {} };
23
- new Function("module", "exports", "require", fs.readFileSync("/app/.agents/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.js", "utf8"))(m, m.exports, require);
24
- return m.exports; })();
20
+ const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.cjs"));
25
21
  const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
26
22
 
27
23
  const summary = await seed.setupPortfolio(ctx, {
@@ -79,7 +75,7 @@ hide. `setupPortfolio` **installs the Wix Portfolio app first** (`installPortfol
79
75
 
80
76
  ## Reference
81
77
  If a call returns a shape you didn't expect, or you need an operation this module doesn't cover,
82
- use the **`wix-docs`** skill to search + read the live Wix API reference — never guess. The
78
+ use the documentation skill available in your environment to search + read the live Wix API reference — never guess. The
83
79
  authoritative source recipe is `wix-headless/references/inline-recipes/setup-portfolio.md`.
84
80
 
85
81
  **Transcribed from the recipe — NOT yet live-verified.** The endpoints/fields mirror
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // Usage (build-time exec_tool):
8
8
  // const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix"); // Base44
9
- // const seed = require("/app/.agents/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.js");
9
+ // const seed = require("/app/.agents/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.cjs");
10
10
  // const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
11
11
  //
12
12
  // const collections = await seed.createCollections(ctx, [{ title, description }]); // STEP 1
@@ -19,7 +19,7 @@
19
19
  // await seed.createProjectItems(ctx, [{ projectId: projects[0].id, sortOrder: 1, title, imageId: files[0].id, height:1024, width:1024 }]);
20
20
  //
21
21
  // **NOT yet live-verified — transcribed from setup-portfolio.md.** If any call fails with a
22
- // shape the caller didn't expect, fall back to the wix-docs skill (search + read the live Wix
22
+ // shape the caller didn't expect, fall back to the documentation skill available in your environment (search + read the live Wix
23
23
  // API reference) — never guess. Source recipe (authoritative):
24
24
  // wix-headless/references/inline-recipes/setup-portfolio.md.
25
25
 
@@ -51,16 +51,9 @@ end). (Files missing? the install's `deploy` result lists what it wrote; re-run
51
51
  `references/pricing-plans/app/` → `src/`.)
52
52
 
53
53
 
54
- ## STEP 2 — Theme (nothing to style on the shipped components)
55
- The shipped components carry **no palette of their own** — they render from base44's design tokens
56
- in `src/index.css` (`:root`/`.dark`: `--background`, `--foreground`, `--card`, `--primary`,
57
- `--muted`, `--border`, `--radius`, `--font-*`) via shadcn Tailwind classes (`bg-card`,
58
- `text-foreground`, `bg-primary`, `text-muted-foreground`, `border-border`, `rounded-lg`,
59
- `font-display`). Those tokens are **already set to the brand by the design phase**, so the shipped
60
- pages are themed with zero work here. To adjust the palette, edit `index.css` (`:root` **and**
61
- `.dark`) — the base44 way; **never add a parallel theme file (e.g. a `theme.css`) or restyle the
62
- shipped JSX.** Build the Home/Header you add (STEP 3) from the **same** base44 tokens/classes so it
63
- matches automatically. A dark brand is just base44's dark palette in `index.css` — no per-component work.
54
+ ## STEP 2 — Theme
55
+ Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
56
+ share the same colors and typography.
64
57
 
65
58
  ## STEP 3 — Wire routes + provider (surgical `find_replace` on `src/App.jsx`, never a rewrite)
66
59
  **No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
@@ -192,7 +185,7 @@ window.location.href = await checkout(plan.id, { thankYouPageUrl: `${window.loca
192
185
  const orders = await getMyPlanOrders({ orderStatuses: ["ACTIVE"] }); // omit orderStatuses for all
193
186
 
194
187
  // Plan image: plan.image is a WixMedia object { id, width, height, altText } with NO .url. The shipped
195
- // cards render text only to avoid this. To show it, resolve the WixMedia `id` to a URL (wix-docs),
188
+ // cards render text only to avoid this. To show it, resolve the WixMedia `id` to a URL (documentation skill available in your environment),
196
189
  // or omit — never <img src={plan.image}> / <img src={plan.image.url}> (undefined / [object Object]).
197
190
  ```
198
191
 
@@ -208,10 +201,9 @@ method, and body first (never guess):
208
201
  - Headless redirect session: https://dev.wix.com/docs/api-reference/business-management/headless/redirects/create-redirect-session.md
209
202
 
210
203
  Fallback only — when you hit an error or need something not shown here: read the relevant shipped
211
- file under `src/`, or look it up via the **`wix-docs`** skill.
204
+ file under `src/`, or look it up via the documentation skill available in your environment.
212
205
 
213
206
  ## Hard rules
214
- - Style via base44 design tokens (`index.css` / shadcn Tailwind classes), never by rewriting the shipped components or adding a parallel theme file.
215
207
  - Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped
216
208
  `Plans`/`PlanDetail`/`MyPlans` to add chrome.
217
209
  - The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your
@@ -233,7 +225,6 @@ in parallel.
233
225
 
234
226
  ## Verify (before declaring done)
235
227
  - [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
236
- - [ ] Brand palette lives in `index.css` (`:root`/`.dark`); no parallel theme file; shipped components/pages not restyled or rewritten.
237
228
  - [ ] Opened the vertical's data route(s) (not just the home page) and confirmed the shipped
238
229
  components render themed (surface, text, brand) with images.
239
230
  - [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps
@@ -1,6 +1,6 @@
1
1
  // Member plan-order row — pure UI for the "My plans" screen. Renders only fields the Order object
2
2
  // actually returns (planName, status, start/end dates); for anything else (amount paid, next-billing)
3
- // look it up in the Orders API reference (wix-docs) — never invent it. Styled with base44 design
3
+ // look it up in the Orders API reference (documentation skill available in your environment) — never invent it. Styled with base44 design
4
4
  // tokens (shadcn Tailwind classes).
5
5
 
6
6
  // Each status carries its OWN text colour: a shared `text-primary-foreground` over a varying
@@ -1,6 +1,6 @@
1
1
  # Pricing Plans — seeding
2
2
 
3
- Seed Wix Pricing Plans (Plans V3) by **calling `seed-pricing-plans.js`** — don't hand-write the
3
+ Seed Wix Pricing Plans (Plans V3) by **calling `seed-pricing-plans.cjs`** — don't hand-write the
4
4
  REST calls. It's a build-time module (run via `exec_tool`, not shipped in the app) that abstracts
5
5
  every Pricing Plans + Benefit Programs seed operation. `require` it and call the functions with
6
6
  plain data.
@@ -10,11 +10,7 @@ plain data.
10
10
  ```js
11
11
  // build-time exec_tool
12
12
  const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
13
- const fs = require("fs");
14
- // exec_tool's require can return EMPTY exports for these build-time modules — load the file itself:
15
- const seed = (() => { const m = { exports: {} };
16
- new Function("module", "exports", "require", fs.readFileSync("/app/.agents/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.js", "utf8"))(m, m.exports, require);
17
- return m.exports; })();
13
+ const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.cjs"));
18
14
  const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
19
15
 
20
16
  // setupPricingPlans installs the Wix Pricing Plans app first (idempotent) — base44 sites may not have it.
@@ -74,7 +70,7 @@ is NOT a plan field or a perk). Those ids come from the **bookings seed**
74
70
 
75
71
  ## Reference
76
72
  If a call returns a shape you didn't expect, or you need an operation this module doesn't cover,
77
- use the **`wix-docs`** skill to search + read the live Wix API reference — never guess. The
73
+ use the documentation skill available in your environment to search + read the live Wix API reference — never guess. The
78
74
  authoritative source recipe is `wix-headless/references/inline-recipes/setup-pricing-plans.md`.
79
75
 
80
76
  Read a method's page before writing its call: it carries the exact body shape, the required
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // Usage (build-time exec_tool):
9
9
  // const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix"); // Base44
10
- // const seed = require("/app/.agents/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.js");
10
+ // const seed = require("/app/.agents/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.cjs");
11
11
  // const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
12
12
  //
13
13
  // // Bookings is seeded FIRST — its service ids feed a plan's coverage (see SEED.md).
@@ -20,7 +20,7 @@
20
20
  // // Then, per plan that covers bookings services (STEP 2; skip entirely with no bookings):
21
21
  // await seed.attachBookingsCoverage(ctx, plans[0].id, plans[0].coveredServiceIds);
22
22
  //
23
- // If any call fails with a shape the caller didn't expect, fall back to the wix-docs skill
23
+ // If any call fails with a shape the caller didn't expect, fall back to the documentation skill available in your environment
24
24
  // (search + read the live Wix API reference) — never guess. Source recipe (authoritative):
25
25
  // wix-headless/references/inline-recipes/setup-pricing-plans.md.
26
26
 
@@ -51,17 +51,9 @@ end). (Files missing? the install's `deploy` result lists what it wrote; re-run
51
51
  `references/restaurants/app/` → `src/`.)
52
52
 
53
53
 
54
- ## STEP 2 — Theme (nothing to style on the shipped components)
55
- The shipped components (menu, item dialog, order cart, reservations) carry **no palette of their
56
- own** — they render from base44's design tokens in `src/index.css` (`:root`/`.dark`: `--background`,
57
- `--foreground`, `--card`, `--primary`, `--muted`, `--border`, `--radius`, `--font-*`) via shadcn
58
- Tailwind classes (`bg-card`, `text-foreground`, `bg-primary`, `text-muted-foreground`,
59
- `border-border`, `rounded-lg`, `font-display`). Those tokens are **already set to the brand by the
60
- design phase**, so the shipped pages are themed with zero work here. To adjust the palette, edit
61
- `index.css` (`:root` **and** `.dark`) — the base44 way; **never add a parallel theme file (e.g. a
62
- `theme.css`) or restyle the shipped JSX.** Build the Home/Header you add (STEP 3) from the **same**
63
- base44 tokens/classes so it matches automatically. A dark brand is just base44's dark palette in
64
- `index.css` — no per-component work.
54
+ ## STEP 2 — Theme
55
+ Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
56
+ share the same colors and typography.
65
57
 
66
58
  ## STEP 3 — Wire routes + provider (surgical `find_replace` on `src/App.jsx`, never a rewrite)
67
59
  **No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
@@ -217,7 +209,7 @@ Building something beyond the shipped pages, or need a path these snippets don't
217
209
  Modifier up-charges / price-variant selection / special requests on the **cart line** are **not**
218
210
  wired into `addItemToCart` — the restaurants `catalogReference.options` shape for these isn't
219
211
  documented for client add-to-cart, so `ItemDialog` displays modifier groups for the diner but sends
220
- only quantity. To wire them, confirm the shape via the **`wix-docs`** skill / the reference first,
212
+ only quantity. To wire them, confirm the shape via the documentation skill available in your environment / the reference first,
221
213
  never guess:
222
214
  - Restaurants API reference: https://dev.wix.com/docs/api-reference/business-solutions/restaurants.md
223
215
  - Sample flows (cart options): https://dev.wix.com/docs/api-reference/business-solutions/restaurants/online-orders/sample-flows.md
@@ -226,10 +218,9 @@ never guess:
226
218
  in lets them see their own order/reservation history.
227
219
 
228
220
  Fallback only — when you hit an error or need something not shown here: read the relevant shipped
229
- file under `src/`, or look it up via the **`wix-docs`** skill.
221
+ file under `src/`, or look it up via the documentation skill available in your environment.
230
222
 
231
223
  ## Hard rules
232
- - Style via base44 design tokens (`index.css` / shadcn Tailwind classes), never by rewriting the shipped components or adding a parallel theme file.
233
224
  - Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped `Menu`/`Reservations` to add chrome.
234
225
  - The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your `Header` is plain in-flow markup (not `position:fixed`).
235
226
  - Order through the shipped cart: `addItem()` → `checkout()` (redirect-session) — never a hand-built `/checkout`, ordering, or reservation URL.
@@ -252,7 +243,6 @@ run in parallel.
252
243
 
253
244
  ## Verify (before declaring done)
254
245
  - [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
255
- - [ ] Brand palette lives in `index.css` (`:root`/`.dark`); no parallel theme file; shipped components/pages not restyled or rewritten.
256
246
  - [ ] Opened `/menu` and `/reservations` (not just the home page) and confirmed the shipped components render themed (surface, text, brand) with images.
257
247
  - [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all routes; shipped `Menu`/`Reservations` untouched; content clears the fixed chrome; `<OrderCartProvider>` wraps the tree; `<OrderCartDrawer/>` mounted; `<OrderCartButton/>` in the header.
258
248
  - [ ] `getFullMenu()` renders real sections/items with prices, variants, modifiers, and labels; empty catalog shows the shipped empty state (no mock items).
@@ -1,6 +1,6 @@
1
1
  # Restaurants — seeding
2
2
 
3
- Seed a Wix Restaurants site by **calling `seed-restaurants.js`** — don't hand-write the REST calls.
3
+ Seed a Wix Restaurants site by **calling `seed-restaurants.cjs`** — don't hand-write the REST calls.
4
4
  It's a build-time module (run via `exec_tool`, not shipped in the app) that abstracts every seed
5
5
  operation across the vertical's four recipes: the **menu** (always) plus three on-demand add-ons —
6
6
  **online ordering**, **table reservations**, and **experiences**. `require` it and call the functions
@@ -18,11 +18,7 @@ across exec calls. Online ordering and table reservations run only when the plan
18
18
  ```js
19
19
  // build-time exec_tool
20
20
  const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix");
21
- const fs = require("fs");
22
- // exec_tool's require can return EMPTY exports for these build-time modules — load the file itself:
23
- const seed = (() => { const m = { exports: {} };
24
- new Function("module", "exports", "require", fs.readFileSync("/app/.agents/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.js", "utf8"))(m, m.exports, require);
25
- return m.exports; })();
21
+ const seed = require(require("path").resolve(".agents/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.cjs"));
26
22
  const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
27
23
 
28
24
  const result = await seed.setupRestaurants(ctx, {
@@ -155,7 +151,7 @@ await seed.createExperiences(ctx, loc.id, [{ configuration: { /* per Create-Expe
155
151
 
156
152
  ## Reference
157
153
  If a call returns a shape you didn't expect, or you need an operation this module doesn't cover, use the
158
- **`wix-docs`** skill to search + read the live Wix API reference — never guess. The **Experiences** create
154
+ documentation skill available in your environment to search + read the live Wix API reference — never guess. The **Experiences** create
159
155
  payload especially lives in the docs (fields evolve). The authoritative source recipes are
160
156
  `wix-headless/references/inline-recipes/setup-restaurants.md`, `setup-restaurant-orders.md`,
161
157
  `setup-restaurant-reservations.md`, and `setup-restaurant-experiences.md`.
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // Usage (build-time exec_tool):
8
8
  // const { accessToken } = await base44.asServiceRole.connectors.getConnection("wix"); // Base44 (generic: use $TOKEN)
9
- // const seed = require("/app/.agents/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.js");
9
+ // const seed = require("/app/.agents/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.cjs");
10
10
  // const ctx = { token: accessToken, siteId: WIX_METASITE_ID };
11
11
  //
12
12
  // // --- MENU (always; the seedable core) ---
@@ -38,7 +38,7 @@
38
38
  //
39
39
  // **NOT yet live-verified — transcribed from setup-restaurants.md / setup-restaurant-orders.md /
40
40
  // setup-restaurant-reservations.md / setup-restaurant-experiences.md.** If any call fails with a
41
- // shape the caller didn't expect, fall back to the wix-docs skill (search + read the live Wix API
41
+ // shape the caller didn't expect, fall back to the documentation skill available in your environment (search + read the live Wix API
42
42
  // reference) — never guess.
43
43
  //
44
44
  // ── PRECONDITIONS the recipes flag (record in the handoff, do NOT fail the seed) ─────────────────