@wix/agent-skills 1.15.1 → 1.16.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 (322) hide show
  1. package/README.md +3 -7
  2. package/package.json +1 -1
  3. package/skills/wix-app/SKILL.md +4 -1
  4. package/skills/wix-app/references/APP_TOOLS.md +134 -0
  5. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +1 -1
  6. package/skills/wix-app/references/DASHBOARD_PAGE.md +0 -10
  7. package/skills/wix-app/references/DATA_COLLECTION.md +1 -1
  8. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +28 -9
  9. package/skills/wix-app/references/SERVICE_PLUGIN.md +12 -10
  10. package/skills/wix-app/references/app-tools/TOOLS.md +75 -0
  11. package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +2 -2
  12. package/skills/wix-app/references/editor-react-component/A11Y-REVIEW-REFERENCE.md +172 -0
  13. package/skills/wix-app/references/editor-react-component/A11Y-REVIEW.md +138 -0
  14. package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +23 -2
  15. package/skills/wix-app/references/editor-react-component/BRANDED-COMPONENTS.md +29 -0
  16. package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +1 -1
  17. package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +27 -2
  18. package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +5 -3
  19. package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +18 -1
  20. package/skills/wix-app/references/editor-react-component/PARTS.md +15 -2
  21. package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +2 -3
  22. package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +13 -9
  23. package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +4 -0
  24. package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +4 -0
  25. package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +3 -1
  26. package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +4 -0
  27. package/skills/wix-app/references/service-plugin/TOOLS_PROVIDER.md +54 -0
  28. package/skills/wix-app/references/stores/QUERY.md +32 -0
  29. package/skills/wix-docs/SKILL.md +35 -3
  30. package/skills/wix-headless/SKILL.md +3 -1
  31. package/skills/wix-headless/references/CONTENT.md +36 -0
  32. package/skills/wix-headless/references/DESIGN.md +54 -0
  33. package/skills/wix-headless/references/DISCOVERY.md +24 -0
  34. package/skills/wix-headless/references/IMAGE_GENERATION.md +10 -0
  35. package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +3 -2
  36. package/skills/wix-headless/references/inline-recipes/setup-online-store.md +32 -23
  37. package/skills/wix-headless/references/managed/CONNECT.md +1 -1
  38. package/skills/wix-headless/references/managed/CREATE.md +14 -0
  39. package/skills/wix-headless/references/managed/DEPLOYMENT.md +25 -0
  40. package/skills/wix-manage/SKILL.md +123 -7
  41. package/skills/wix-manage/references/analytics/analytics-dashboard-navigation.md +41 -0
  42. package/skills/wix-manage/references/app-installation/app-installation-dashboard-navigation.md +28 -0
  43. package/skills/wix-manage/references/blog/blog-dashboard-navigation.md +56 -0
  44. package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +31 -6
  45. package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +3 -1
  46. package/skills/wix-manage/references/bookings/bookings-dashboard-navigation.md +63 -0
  47. package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +10 -1
  48. package/skills/wix-manage/references/cms/cms-dashboard-navigation.md +44 -0
  49. package/skills/wix-manage/references/cms/cms-data-items-crud.md +31 -3
  50. package/skills/wix-manage/references/cms/cms-publishing-flow.md +287 -0
  51. package/skills/wix-manage/references/cms/cms-schema-management.md +27 -1
  52. package/skills/wix-manage/references/contacts/contacts-dashboard-navigation.md +46 -0
  53. package/skills/wix-manage/references/contacts/create-a-contact.md +82 -0
  54. package/skills/wix-manage/references/contacts/update-a-contact.md +119 -0
  55. package/skills/wix-manage/references/dashboard-navigation/dashboard-navigation.md +82 -0
  56. package/skills/wix-manage/references/dashboard-navigation/routes.json +1733 -0
  57. package/skills/wix-manage/references/domains/domains-dashboard-navigation.md +32 -0
  58. package/skills/wix-manage/references/ecommerce/ecom-pricing.md +4 -4
  59. package/skills/wix-manage/references/ecommerce/ecom-shipping.md +1 -1
  60. package/skills/wix-manage/references/ecommerce/gift-cards/ecom-gift-cards-goal-sell-gift-cards.md +338 -0
  61. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-create-discount-rule.md +42 -78
  62. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-bundle-and-save.md +1 -1
  63. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-stock-mover.md +1 -1
  64. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-upsell-boost.md +1 -1
  65. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +90 -92
  66. package/skills/wix-manage/references/events/create-wix-event.md +176 -0
  67. package/skills/wix-manage/references/events/manage-wix-events.md +174 -0
  68. package/skills/wix-manage/references/forms/forms-dashboard-navigation.md +44 -0
  69. package/skills/wix-manage/references/get-paid/get-paid-dashboard-navigation.md +52 -0
  70. package/skills/wix-manage/references/google-ads/billing-and-payment.md +80 -0
  71. package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +212 -0
  72. package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +110 -0
  73. package/skills/wix-manage/references/google-ads/google-ads-dashboard-navigation.md +25 -0
  74. package/skills/wix-manage/references/google-ads/install-and-create-account.md +155 -0
  75. package/skills/wix-manage/references/google-ads/manage-campaign-lifecycle.md +63 -0
  76. package/skills/wix-manage/references/google-ads/query-campaign-analytics.md +155 -0
  77. package/skills/wix-manage/references/marketing/marketing-dashboard-navigation.md +52 -0
  78. package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +99 -1
  79. package/skills/wix-manage/references/pricing-plans/pricing-plans-dashboard-navigation.md +45 -0
  80. package/skills/wix-manage/references/restaurants/restaurants-dashboard-navigation.md +68 -0
  81. package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +94 -125
  82. package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +48 -9
  83. package/skills/wix-manage/references/site-properties/site-properties-dashboard-navigation.md +31 -0
  84. package/skills/wix-manage/references/sites/create-headless-site.md +52 -0
  85. package/skills/wix-manage/references/sites/create-site-from-template.md +2 -25
  86. package/skills/wix-manage/references/sites/site-import.md +163 -190
  87. package/skills/wix-manage/references/sites/sites-dashboard-navigation.md +29 -0
  88. package/skills/wix-manage/references/stores/add-store-pages-to-site.md +17 -1
  89. package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +26 -8
  90. package/skills/wix-manage/references/stores/stores-dashboard-navigation.md +65 -0
  91. package/skills/wix-manage/references/stores/update-product-with-options.md +39 -7
  92. package/skills/wix-replatform/.publish-manifest.json +8 -0
  93. package/skills/wix-replatform/SKILL.md +693 -0
  94. package/skills/wix-replatform/lib/artifact-freshness.js +215 -0
  95. package/skills/wix-replatform/lib/completion-report.js +200 -0
  96. package/skills/wix-replatform/lib/config-env.js +59 -0
  97. package/skills/wix-replatform/lib/execution-manifest.js +185 -0
  98. package/skills/wix-replatform/lib/execution-state.js +173 -0
  99. package/skills/wix-replatform/lib/import-recovery.js +313 -0
  100. package/skills/wix-replatform/lib/local-state.js +642 -0
  101. package/skills/wix-replatform/lib/orchestration-preflight.js +143 -0
  102. package/skills/wix-replatform/lib/orchestration-router.js +122 -0
  103. package/skills/wix-replatform/lib/orchestration-state.js +455 -0
  104. package/skills/wix-replatform/lib/progress-log.js +224 -0
  105. package/skills/wix-replatform/lib/progress-log.sh +140 -0
  106. package/skills/wix-replatform/lib/url-preservation-state.js +391 -0
  107. package/skills/wix-replatform/resources/rp-discovery/SKILL.md +184 -0
  108. package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +529 -0
  109. package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +316 -0
  110. package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +64 -0
  111. package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +1114 -0
  112. package/skills/wix-replatform/resources/rp-mapper/SKILL.md +430 -0
  113. package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +217 -0
  114. package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +148 -0
  115. package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +378 -0
  116. package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +183 -0
  117. package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +478 -0
  118. package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +136 -0
  119. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
  120. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +310 -0
  121. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +1081 -0
  122. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +618 -0
  123. package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +949 -0
  124. package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +196 -0
  125. package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +66 -0
  126. package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +60 -0
  127. package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +95 -0
  128. package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +82 -0
  129. package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +256 -0
  130. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +249 -0
  131. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +444 -0
  132. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +774 -0
  133. package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +71 -0
  134. package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +632 -0
  135. package/skills/wix-replatform/resources/rp-target-wix/SPEC-product-reviews-and-blog-authorship.md +330 -0
  136. package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +21 -0
  137. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +19 -0
  138. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +37 -0
  139. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +37 -0
  140. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +39 -0
  141. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +35 -0
  142. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +14 -0
  143. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +35 -0
  144. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +36 -0
  145. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +35 -0
  146. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +14 -0
  147. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +131 -0
  148. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +37 -0
  149. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +37 -0
  150. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +21 -0
  151. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +37 -0
  152. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +37 -0
  153. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +97 -0
  154. package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +528 -0
  155. package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +14 -0
  156. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +38 -0
  157. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +37 -0
  158. package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +13 -0
  159. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +37 -0
  160. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +53 -0
  161. package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +84 -0
  162. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +25 -0
  163. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +37 -0
  164. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +37 -0
  165. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +38 -0
  166. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +37 -0
  167. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +90 -0
  168. package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +64 -0
  169. package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +141 -0
  170. package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +384 -0
  171. package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +260 -0
  172. package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +238 -0
  173. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +237 -0
  174. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +238 -0
  175. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +2219 -0
  176. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +31 -0
  177. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +100 -0
  178. package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +107 -0
  179. package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +344 -0
  180. package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +250 -0
  181. package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +1927 -0
  182. package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +83 -0
  183. package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +141 -0
  184. package/skills/wix-replatform/scripts/artifact-freshness.js +76 -0
  185. package/skills/wix-replatform/scripts/execution-manifest-validate.js +43 -0
  186. package/skills/wix-replatform/scripts/execution-state-prepare.js +128 -0
  187. package/skills/wix-replatform/scripts/orchestration-preflight.js +48 -0
  188. package/skills/wix-replatform/scripts/orchestration-route.js +46 -0
  189. package/skills/wix-replatform/scripts/orchestration-state.js +245 -0
  190. package/skills/wix-vibe-headless/SKILL.md +48 -25
  191. package/skills/wix-vibe-headless/install/deploy.cjs +95 -0
  192. package/skills/wix-vibe-headless/install/pin-agents-md.cjs +34 -0
  193. package/skills/wix-vibe-headless/platforms/README.md +8 -4
  194. package/skills/wix-vibe-headless/platforms/base44.md +133 -98
  195. package/skills/wix-vibe-headless/platforms/generic.md +99 -64
  196. package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +230 -119
  197. package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +43 -0
  198. package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +25 -0
  199. package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +15 -0
  200. package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +35 -0
  201. package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +38 -0
  202. package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +40 -0
  203. package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +54 -0
  204. package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +65 -0
  205. package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +50 -0
  206. package/skills/wix-vibe-headless/references/blog/seed/SEED.md +103 -0
  207. package/skills/wix-vibe-headless/references/blog/seed/seed-blog.js +270 -0
  208. package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +260 -149
  209. package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +65 -0
  210. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +47 -0
  211. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +13 -0
  212. package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +126 -0
  213. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +108 -0
  214. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +58 -0
  215. package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +95 -0
  216. package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +94 -0
  217. package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +89 -0
  218. package/skills/wix-vibe-headless/references/bookings/{wix-bookings-checkout.js → app/rest/wix-bookings-checkout.js} +1 -1
  219. package/skills/wix-vibe-headless/references/bookings/{wix-bookings-services.js → app/rest/wix-bookings-services.js} +87 -11
  220. package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +117 -0
  221. package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.js +333 -0
  222. package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +169 -147
  223. package/skills/wix-vibe-headless/references/cms/app/collection.config.js +31 -0
  224. package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +18 -0
  225. package/skills/wix-vibe-headless/references/cms/{wix-cms.js → app/rest/wix-cms.js} +47 -2
  226. package/skills/wix-vibe-headless/references/cms/seed/SEED.md +145 -0
  227. package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +228 -131
  228. package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +23 -0
  229. package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +43 -0
  230. package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +13 -0
  231. package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +29 -0
  232. package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +57 -0
  233. package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +78 -0
  234. package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +27 -0
  235. package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +54 -0
  236. package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +40 -0
  237. package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +81 -0
  238. package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +48 -0
  239. package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +36 -0
  240. package/skills/wix-vibe-headless/references/events/{wix-events-browse.js → app/rest/wix-events-browse.js} +1 -1
  241. package/skills/wix-vibe-headless/references/events/seed/SEED.md +107 -0
  242. package/skills/wix-vibe-headless/references/events/seed/seed-events.js +251 -0
  243. package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +276 -188
  244. package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +101 -0
  245. package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +33 -0
  246. package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +21 -0
  247. package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +29 -0
  248. package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +54 -0
  249. package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +77 -0
  250. package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +36 -0
  251. package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +32 -0
  252. package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +35 -0
  253. package/skills/wix-vibe-headless/references/members/{wix-members-auth.js → app/rest/wix-members-auth.js} +6 -3
  254. package/skills/wix-vibe-headless/references/members/install/Register.jsx +22 -0
  255. package/skills/wix-vibe-headless/references/members/seed/SEED.md +22 -0
  256. package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +233 -104
  257. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +31 -0
  258. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +15 -0
  259. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +39 -0
  260. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +15 -0
  261. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +29 -0
  262. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +35 -0
  263. package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +27 -0
  264. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +25 -0
  265. package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +39 -0
  266. package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +27 -0
  267. package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +60 -0
  268. package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +94 -0
  269. package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.js +236 -0
  270. package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +240 -117
  271. package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +35 -0
  272. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +48 -0
  273. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +16 -0
  274. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +35 -0
  275. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +25 -0
  276. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +28 -0
  277. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +30 -0
  278. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +30 -0
  279. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +53 -0
  280. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +28 -0
  281. package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +86 -0
  282. package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.js +251 -0
  283. package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +248 -124
  284. package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +81 -0
  285. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +71 -0
  286. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +43 -0
  287. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +21 -0
  288. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +60 -0
  289. package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +63 -0
  290. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +32 -0
  291. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +73 -0
  292. package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +28 -0
  293. package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +102 -0
  294. package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +180 -0
  295. package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.js +452 -0
  296. package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +56 -0
  297. package/skills/wix-vibe-headless/references/shared/{wix-client.js → app/rest/wix-client.js} +6 -8
  298. package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +6 -0
  299. package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +263 -157
  300. package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +20 -0
  301. package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +150 -0
  302. package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +167 -0
  303. package/skills/wix-vibe-headless/references/storefront/app/components/ProductGallery.jsx +51 -0
  304. package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +54 -0
  305. package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +119 -0
  306. package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +71 -0
  307. package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +109 -0
  308. package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +98 -0
  309. package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +27 -0
  310. package/skills/wix-vibe-headless/references/storefront/app/pages/ProductDetail.jsx +139 -0
  311. package/skills/wix-vibe-headless/references/storefront/app/pages/Shop.jsx +75 -0
  312. package/skills/wix-vibe-headless/references/storefront/{wix-store-cart.js → app/rest/wix-store-cart.js} +1 -1
  313. package/skills/wix-vibe-headless/references/storefront/{wix-store-catalog.js → app/rest/wix-store-catalog.js} +20 -1
  314. package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +111 -0
  315. package/skills/wix-vibe-headless/references/storefront/seed/seed-store.js +299 -0
  316. /package/skills/wix-vibe-headless/references/blog/{wix-blog.js → app/rest/wix-blog.js} +0 -0
  317. /package/skills/wix-vibe-headless/references/events/{wix-events-registration.js → app/rest/wix-events-registration.js} +0 -0
  318. /package/skills/wix-vibe-headless/references/portfolio/{wix-portfolio.js → app/rest/wix-portfolio.js} +0 -0
  319. /package/skills/wix-vibe-headless/references/pricing-plans/{wix-pricing-plans.js → app/rest/wix-pricing-plans.js} +0 -0
  320. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-menu.js → app/rest/wix-restaurants-menu.js} +0 -0
  321. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-ordering.js → app/rest/wix-restaurants-ordering.js} +0 -0
  322. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-reservations.js → app/rest/wix-restaurants-reservations.js} +0 -0
@@ -16,23 +16,19 @@ and report the final result.
16
16
  `AUTH_EXPIRED` — means there is NO finished site yet. Never declare
17
17
  success, completion, or "your site is live" otherwise, and never present a
18
18
  URL from any other source as the result.
19
- 2. **Never show the user ids** (`importId`), raw JSON, or HTTP codes. Track
20
- them silently.
19
+ 2. **Show the user the `importId` after Start succeeds** — share it as a
20
+ reference they can use to check back. Never show raw JSON or HTTP codes.
21
21
  3. **Never offer menus of monitoring or technical options** — pick the right
22
22
  behavior yourself and do it quietly.
23
23
  4. **Plain language only** — write for a shopkeeper, not an engineer.
24
24
  5. **This API is the only site-creation tool for this task** — never
25
25
  substitute other Wix site-builder tools (see Scope).
26
26
 
27
- Base URL: `https://www.wixapis.com/site-import`. All calls are scoped to the
28
- signed-in Wix user's account (use the Wix API tool available in this
29
- environment for auth — never handle credentials directly). A full import
30
- typically takes 15–60 minutes.
27
+ Base URL: `https://www.wixapis.com/site-import`. All calls use account-level
28
+ scope on the signed-in Wix user's account. A full import typically takes
29
+ 15–60 minutes.
31
30
 
32
- Example: Start is `POST https://www.wixapis.com/site-import/v1/imports`;
33
- all endpoint paths below are relative to the base URL.
34
-
35
- ## Calling the API (important — read before your first call)
31
+ ## Calling the API
36
32
 
37
33
  This API is **deliberately not listed in the public Wix REST documentation**,
38
34
  so do NOT search the Wix docs / API spec for it — the search will come up
@@ -40,231 +36,208 @@ empty every time. That is expected and is NOT a reason to stop, ask the user
40
36
  for "special permissions", or switch to a different import product. This
41
37
  skill is the documentation; the endpoints below are real and live.
42
38
 
43
- With the Wix MCP in Claude, call them through `ExecuteWixAPI` using
44
- `wix.request` with `scope: "account"` and the **full URL**. Cite
45
- `sourceDocUrls: ["user-provided"]` (the user supplied this skill). Set
46
- `hasMutations: true` for Start/Reply/Cancel and `false` for Poll.
47
-
48
- In environments with a different Wix connector (e.g. ChatGPT), use its
49
- account-level API tool the same way — the `ManageWixSite` tool accepts
50
- `{method, url, body}` with the full URL directly.
51
-
52
- Platform quirk: if the chat UI shows a rendering error like *"Failed to load
53
- MCP app: HTML exceeds the maximum supported size"*, that is the connector's
54
- optional visual widget failing to display — NOT the API call. If the tool
55
- result contains the JSON, the call succeeded: continue normally and never
56
- report it to the user as a failure.
57
-
58
- **Every call goes through that tool, from your side of the conversation.**
59
- Never call this API from an artifact, a web page, or any browser/client-side
60
- code — those run in a sandboxed frame and fail with CORS. Do not build
61
- monitoring dashboards, status widgets, or any UI for this flow: the entire
62
- experience is plain chat — tool calls plus short messages. If an approach
63
- fails, quietly switch to plain tool-call polling; never present the user a
64
- menu of technical workarounds.
39
+ **Make the first API call immediately — no preamble.** Never announce "let me
40
+ check the tools" or "checking auth" before the first call. If Start returns
41
+ an error, handle it per the Rules section — **never probe other endpoints**
42
+ (e.g. site-properties, site-list) to "verify auth"; those calls reveal
43
+ nothing useful.
44
+
45
+ **All calls are server-side.** Never call this API from an artifact, a web
46
+ page, or any client-side code — those fail with CORS. The entire experience
47
+ is plain chat — API calls plus short messages.
48
+
49
+ Use the Wix account-level REST API tool available in your environment with
50
+ the **full URL**. Start, Send-a-message, and Cancel are mutating (POST);
51
+ Poll is read-only (GET).
65
52
 
66
53
  Example — Start:
67
54
 
68
- ```js
69
- async () => {
70
- return await wix.request({
71
- scope: "account",
72
- method: "POST",
73
- url: "https://www.wixapis.com/site-import/v1/imports",
74
- body: { request: "Import https://example-store.com into a new Wix site" },
75
- });
76
- }
55
+ ```
56
+ POST https://www.wixapis.com/site-import/v1/imports
57
+ Body: { "request": "Import https://example-store.com into a new Wix site" }
77
58
  ```
78
59
 
79
60
  Example — Poll:
80
61
 
81
- ```js
82
- async () => {
83
- return await wix.request({
84
- scope: "account",
85
- method: "GET",
86
- url: "https://www.wixapis.com/site-import/v1/imports/<importId>",
87
- });
88
- }
62
+ ```
63
+ GET https://www.wixapis.com/site-import/v1/imports/<importId>?includeRecentActivity=true
64
+ ```
65
+
66
+ Example — Poll fetching a review document:
67
+
68
+ ```
69
+ GET https://www.wixapis.com/site-import/v1/imports/<importId>?includeRecentActivity=true&artifactIds=mapping-summary,mapping-plan
70
+ ```
71
+
72
+ Example — Send a message:
73
+
74
+ ```
75
+ POST https://www.wixapis.com/site-import/v1/imports/<importId>/messages
76
+ Body: { "message": "Use the blue logo from the About page instead" }
89
77
  ```
90
78
 
91
79
  ## Scope — this skill drives the import service, nothing else
92
80
 
93
81
  While an import is the task at hand, ALL site-creation work goes through this
94
82
  API. Never fall back to other site-building tools (site-builder/template/AI
95
- site-generation tools from your Wix connector) to "compensate" — not when the
96
- import is slow, and especially not when it FAILS.
83
+ site-generation tools) to "compensate" — not when the import is slow, and
84
+ especially not when it FAILS.
97
85
 
98
86
  **Status comes ONLY from this API's Poll endpoint.** Never call
99
87
  `WixSiteBuilder`, `CreateSiteFromTemplate`, `pullSiteCreationJob`, or any
100
88
  other connector tool to "check on the build" — `WixSiteBuilder` in particular
101
- STARTS a new site build on every call, even when the prompt asks for status;
102
- "checking" with it silently creates sites the user never asked for. A failed import ends with a
103
- clear failure report and a full stop; the user must never discover a
104
- different site in their account that they didn't ask for. If an alternative
105
- (e.g. building an original site instead of importing) makes sense, propose it
106
- AFTER reporting the failure and act only on the user's explicit yes. If you
107
- already know the import agent refused the source (see `message`), don't
108
- retry the same source with other tools — relay the reason and let the user
109
- decide.
89
+ STARTS a new site build on every call, even when the prompt asks for status.
90
+ A failed import ends with a clear failure report and a full stop; the user
91
+ must never discover a different site in their account that they didn't ask
92
+ for. If an alternative makes sense, propose it AFTER reporting the failure
93
+ and act only on the user's explicit yes.
110
94
 
111
95
  ## Before starting an import
112
96
 
113
- This creates real infrastructure and will eventually write to the user's Wix
114
- account. Before calling **Start**, confirm with the user:
97
+ This creates real infrastructure and writes to the user's Wix account. Before
98
+ calling **Start**, confirm:
115
99
  - The source URL and platform are correct
116
- - They understand this will run for up to ~60 minutes and may ask them
117
- questions mid-way
100
+ - The user understands it runs for up to ~60 minutes and may ask questions mid-way
118
101
 
119
- Also confirm before calling **Cancel** — it's a mutating, irreversible action
120
- on a running job.
102
+ Also confirm before calling **Cancel** — it's irreversible.
121
103
 
122
104
  ## What the user sees (presentation rules)
123
105
 
124
106
  You are the user experience; the API is plumbing. Keep the protocol invisible:
125
107
 
126
- - **Never show identifiers or raw protocol data**: `importId`, raw JSON
127
- responses, HTTP status codes, the `tasks[]` rows, or
128
- `sourcePlatform`/`sourceConfidence` values. Track them silently — you need
129
- them for the API calls, the user never does. Never offer ids as a
130
- "check back later" reference either.
108
+ - **Show the `importId` once, right after Start succeeds** — e.g. "Your import
109
+ ID is `abc123` — keep it handy." Never show raw JSON, HTTP codes, artifact
110
+ ids, or `sourcePlatform`/`sourceConfidence` values.
131
111
  - **Write for a non-technical audience.** No jargon: no "endpoint", "API",
132
- "poll", "HTTP", "429", "rate limit", "headers", "JSON", "scraping",
133
- "session". Translate events into outcomes a shopkeeper understands —
134
- "the source store limits how fast it can be read, so this step is taking a
135
- minute" instead of "hit Cloudflare rate limit (HTTP 429)".
136
- - **Monitor quietly by default — do not ask the user to choose a monitoring
137
- mode.** Quiet means low-noise, never uninformed: the user should always know
138
- what stage their import is in. Match your environment:
139
- - **If you can keep working between user messages** (background polling),
140
- poll continuously and speak up only on meaningful milestones: the source
141
- platform is identified, a plan step completes, the agent asks a question,
142
- the site deploys, or something fails. A short update every few minutes is
143
- plenty; never narrate each poll ("let me poll again", "retrying") or
144
- transient errors — retry those silently.
145
- - **If you can only act while answering a message** (turn-based clients):
146
- before ending each turn, poll a few times over ~a minute and close with
147
- one concrete update of what the import is doing right now, then remind the
148
- user the import keeps running on Wix's side and they can ask "how's it
149
- going?" anytime. On EVERY later user message, poll first and answer with
150
- current specifics.
151
- - **Status answers must be substantive.** When the user asks how it's going,
152
- never answer with a bare "still in progress". While the import is running,
153
- the poll's `message` field is a ready-made plain-language progress line
154
- ("Now: Importing products (2 of 6 steps done) — Latest update: …") — relay
155
- it (lightly rephrased is fine), and add anything fresh from `recentActivity`
156
- / `todos`. If `message` is empty it's still early — say the import is
157
- setting up and check again on the next message.
158
- - **Never announce or describe the monitoring itself.** No "background monitor
159
- is live", no feature lists of your polling/alerts/badges — the user asked
160
- for a site import, not a monitoring product. After the one-sentence start
161
- message, stay silent until the first milestone.
162
- - **Keep every routine update to 1–3 short sentences.** No headers, no emoji
163
- walls, no bullet lists for ordinary progress — save structure for the final
164
- result or a question that needs a decision.
165
- - On start, one friendly sentence: the import is underway and you'll keep them
166
- posted. Mention the detected platform only when it helps ("Looks like a
167
- Shopify store — I'll migrate the catalog accordingly"); never say
168
- "confidence", "sandbox", "execution", or "session".
169
- - Progress updates come from `recentActivity` `TEXT` entries and the `todos`
170
- checklist, rephrased in plain language ("setting up your product catalog"),
171
- never echoed verbatim.
112
+ "poll", "HTTP", "rate limit", "JSON". Translate events into plain outcomes —
113
+ "the source store limits how fast it can be read" not "hit rate limit (429)".
114
+ - **Monitor autonomously — never ask the user whether to keep monitoring.**
115
+ Poll every ~30 seconds until a terminal status arrives. If the user sends a
116
+ message about something else, handle it then resume polling. Match your
117
+ environment:
118
+ - **Background polling**: speak up only on meaningful milestones — platform
119
+ identified, plan step completes, agent asks a question, site deploys, or
120
+ something fails. Never narrate each poll or transient errors.
121
+ - **Turn-based**: end each turn with one concrete progress update. On every
122
+ later user message, poll first. **Do not end a turn asking whether to keep
123
+ checking** — just keep checking.
124
+ - **Status answers must be substantive.** Never answer "still in progress".
125
+ Relay `message` (lightly rephrased) and anything fresh from `recentActivity`
126
+ / `todos`. If `message` is empty, say the import is still setting up.
127
+ - **Never announce or describe the monitoring itself.** After the one-sentence
128
+ start message, stay silent until the first milestone.
129
+ - **Keep routine updates to 1–3 short sentences.** No headers, emoji walls, or
130
+ bullet lists for ordinary progress.
131
+ - On start, two short sentences: (1) import underway, mention detected platform
132
+ when it helps; (2) share the `importId`. Never say "confidence", "sandbox",
133
+ "execution", or "session".
134
+ - Progress updates: rephrase `recentActivity` `TEXT` entries and `todos` in
135
+ plain language; never echo verbatim.
172
136
  - Ask `NEEDS_INPUT` questions conversationally, as if they were your own.
173
- - On `DEPLOYED`, lead with the live URL, then the agent's closing summary
174
- **rewritten for a non-technical reader**: what the user got (pages,
175
- products, look & feel), any honest limitations in plain words ("the buy
176
- buttons aren't connected to a real checkout yet"), and 2–3 short follow-up
177
- offers they can answer in one sentence (those become Reply messages). Leave
178
- out how it was built — frameworks, SDKs, workarounds, and anything from the
179
- jargon list have no place in the final message either.
180
- - On `FAILED` / `AUTH_EXPIRED` / `SESSION_EXPIRED`, explain what happened and
181
- what you'll do next in plain words — no codes, no id dumps.
137
+ - On `DEPLOYED`, lead with the live URL, then a plain-language summary of what
138
+ the user got, honest limitations, and 2–3 short follow-up offers. Leave out
139
+ frameworks, SDKs, and anything from the jargon list.
140
+ - On `FAILED` / `AUTH_EXPIRED` / `SESSION_EXPIRED`, explain what happened in
141
+ plain words — no codes, no id dumps.
182
142
  - **A failure is the headline, never a footnote.** The moment a poll returns
183
- `FAILED`, your very next message leads with that fact and the reason (from
184
- `message`) — never bury it, never keep talking as if work is ongoing, and
185
- never paper over it with work done by other tools (see Scope above).
143
+ `FAILED`, your very next message leads with that fact and the reason — never
144
+ bury it or paper over it with other tools.
186
145
 
187
146
  ## Endpoints
188
147
 
189
- **There is exactly ONE id in this API: the latest `importId`.** Requests and
190
- responses carry nothing else — the service resolves everything from the
191
- signed-in user.
148
+ **Single `importId` for the whole import — assigned at Start, never changes.**
192
149
 
193
150
  1. **Start** — `POST /v1/imports`
194
151
  Body: `{"request": "<natural language; MUST include the source store URL>"}`
195
- Returns: `importId` (keep it — it's the import's id) and detected
196
- `sourcePlatform`/`sourceConfidence`.
197
-
198
- 2. **Poll** — `GET /v1/imports/{importId}`
199
- Returns: `status`, `deployUrl`, `message`, `recentActivity[]`, `todos[]`,
200
- `question` (only when status is `NEEDS_INPUT`), `tasks[]`.
201
-
202
- 3. **Reply** — `POST /v1/imports/{importId}/reply`
203
- Body: `{"message": "<answer or follow-up>"}`
204
- Returns a **NEW `importId` — poll that one from now on.** The agent
205
- continues the same conversation with full context.
152
+ Returns: `importId`, `sourcePlatform`, `sourceConfidence`.
153
+ One import per store at a time: if the same user re-starts for the same store,
154
+ the server returns the existing `importId` (no new import is created). If a
155
+ different user on the account already owns an import for that store, Start
156
+ returns `409 { "code": "IMPORT_IN_PROGRESS" }` — tell the user and stop.
157
+
158
+ 2. **Poll** — `GET /v1/imports/{importId}?includeRecentActivity=true`
159
+ Returns: `status`, `deployUrl`, `message`, `options[]` (only when
160
+ `NEEDS_INPUT`), `recentActivity[]`, `recentActivityCount`, `todos[]`,
161
+ `artifacts[]`.
162
+ **Always pass `includeRecentActivity=true`** — the activity feed is withheld
163
+ unless requested. To read a review document, add
164
+ `&artifactIds=mapping-plan,mapping-gaps` (see "Review documents").
165
+
166
+ 3. **Send a message** — `POST /v1/imports/{importId}/messages`
167
+ Body: `{"message": "<whatever the user said>"}`
168
+ **This is the ONE way anything the user says reaches the agent** — an answer
169
+ to a question, a comment, a correction, or a new instruction. Valid at any
170
+ point: while `IMPORTING`, at a `NEEDS_INPUT` stop, and after the import
171
+ finishes. Returns the **same `importId`** — keep polling it.
206
172
 
207
173
  4. **Cancel** — `POST /v1/imports/{importId}/cancel`
208
174
  Body: `{}`. Only meaningful while status is `IMPORTING`.
209
175
 
210
176
  ## How to run the flow
211
177
 
212
- - After Start, poll every 5–10 seconds while `status` is `IMPORTING` —
213
- quietly, per the presentation rules above: polling is background work, not
214
- conversation.
215
- - Track progress from two fields (source material for your milestone updates,
216
- not a transcript to relay):
217
- - `recentActivity`: up to 20 entries `{kind, text}`, oldest first —
218
- `TEXT` entries are the agent's own messages, `TOOL_USE` entries are short
219
- labels of actions it took. It's a rolling window: track which entries you
220
- have already covered so an update never repeats them.
221
- - `todos`: the agent's plan, `{content, status, activeForm}` with status
222
- `PENDING | IN_PROGRESS | COMPLETED`. Each poll returns the full latest
223
- snapshot — replace your tracked list, don't append. `activeForm`
224
- (e.g. "Importing products") describes the in-progress item.
225
- - Empty `recentActivity`/`todos` in the first polls is normal.
178
+ - After Start, poll every ~30 seconds while `status` is `IMPORTING`. Never
179
+ pause to ask the user whether to keep monitoring — just keep going. Stop
180
+ only on a terminal status (`DEPLOYED`, `FAILED`, `CANCELLED`) or explicit
181
+ cancel.
182
+ - Track progress from:
183
+ - `recentActivity`: up to 20 `{kind, text}` entries, oldest first. `TEXT`
184
+ entries are the agent's messages; `TOOL_USE` are action labels. Rolling
185
+ window — track which entries you've covered to avoid repeating them.
186
+ - `todos`: `{content, status, activeForm}` — `PENDING | IN_PROGRESS |
187
+ COMPLETED`. Full snapshot each poll; replace, don't append.
188
+ - Empty `recentActivity`/`todos`/`artifacts` in early polls is normal — these
189
+ are best-effort and the agent may not have produced them yet.
226
190
  - Act on `status`:
227
191
  - `IMPORTING` — keep polling.
228
- - `NEEDS_INPUT` — the agent is blocked on a decision. Show `question.text`
229
- (and `question.options` if present) to the user, collect their answer
230
- (an option or free text), send it via Reply, then poll the NEW
231
- `importId` from the Reply response.
232
- - `DEPLOYED` — terminal success. Deliver `deployUrl` (already verified
233
- reachable server-side) and `message` per the presentation rules above.
234
- - `FAILED` — terminal. `message` usually contains the agent's own
235
- explanation of what happened and what it needs — relay it in plain words.
236
- - `AUTH_EXPIRED` — recoverable, but **NOT a success and nothing is live**
237
- (golden rule 1). The user's Wix session expired mid-import. Tell the user
238
- the secure connection to their account expired and you're restarting the
239
- import, then call Start again with the same request — work done so far is
240
- preserved and the import continues.
241
- - `CANCELLED` — terminal; stopped by Cancel.
242
- - Follow-up changes after a deploy ("make the header blue", "also import the
243
- blog"): send them via Reply on the latest `importId` — same mechanics as
244
- answering a question. This works while the import environment is alive
245
- (~60 minutes idle).
246
- - If Reply returns `409 { "code": "SESSION_EXPIRED" }`, the environment was
247
- reclaimed and the conversation cannot resume — tell the user and offer to
248
- start a fresh import.
192
+ - `NEEDS_INPUT` — agent is blocked. Show `message` (and `options` if present)
193
+ to the user, collect their answer, send it with Send-a-message, then keep
194
+ polling the same `importId`. The user may answer in free text even when
195
+ `options` lists suggested answers. If `message` mentions review documents,
196
+ read them FIRST (see "Review documents") — the decision usually depends on them.
197
+ - `DEPLOYED` — terminal success. Deliver `deployUrl` and `message` per
198
+ presentation rules.
199
+ - `FAILED` — terminal. Relay `message` in plain words.
200
+ - `AUTH_EXPIRED` — recoverable, NOT success, nothing is live (golden rule 1).
201
+ Tell the user the connection to their account expired and you're restarting,
202
+ then call Start again with the same request — work so far is preserved.
203
+ - `CANCELLED` — terminal.
204
+ - **Anything the user says mid-import goes straight to Send-a-message** — no
205
+ need to wait for `NEEDS_INPUT`.
206
+ - Follow-up changes after a deploy use the same Send-a-message call. The import
207
+ stays resumable for 7 days; if idle for ~60 minutes the next message revives
208
+ it — do not warn the user about a time limit.
209
+ - If Send-a-message returns `409 { "code": "SESSION_EXPIRED" }`, the import
210
+ can no longer be resumed — tell the user and offer a fresh start.
211
+
212
+ ### Review documents
213
+
214
+ The agent writes review documents at approval gates (mapping plan, gaps list,
215
+ execution plan, completion summary). **They exist only in the API response** —
216
+ the user has no way to open a file.
217
+
218
+ - Every poll returns `artifacts[]` as a manifest: `{id, title, format,
219
+ contentBytes}` with `content` **empty**. This is deliberate — documents are
220
+ large and most polls don't need them.
221
+ - To read one, poll again with `&artifactIds=<id>[,<id>]`. Those come back with
222
+ `content` filled in (Markdown or JSON).
223
+ - **When `message` announces review documents, fetch them and summarize for the
224
+ user in plain language before asking for approval.** Never say "the plan is
225
+ in a file I can't read" or relay a filename as something the user should open.
249
226
 
250
227
  ## Rules
251
228
 
252
- - Always use the **newest** `importId` (each Reply returns a new one) —
253
- it is the only id you need to track.
229
+ - Single `importId` — assigned at Start, returned unchanged by Send-a-message.
254
230
  - Never invent a `deployUrl` — only report the one returned with `DEPLOYED`.
255
- - Treat `NEEDS_INPUT` and `AUTH_EXPIRED` as normal turns of the conversation,
256
- not errors.
257
- - **Site Import is available to some accounts, not all users yet** (limited,
258
- gradual rollout). If Start returns a `404` (or any response signalling the
259
- API is not available for this account) or a `403` with
260
- `"code": "NOT_ENABLED"`, this account is not in the rollout: tell the user
261
- plainly that **site import isn't supported on their account yet, and they
262
- can contact Wix support** to ask about access — then stop. Do not retry, do
263
- not work around it, and do not fall back to another site-creation tool.
264
- - Any other `403` means the caller is not permitted or does not own this
265
- import — check that you are using the ids from this user's own Start
266
- response. A `400` means a required field is missing (`request`/`message`
267
- must be 1–20000 chars).
268
- - `tasks[]` is low-level infrastructure progress (task ids, exit codes) — use
269
- it for debugging only; `recentActivity`/`todos`/`message` are what you show
270
- the user.
231
+ - Treat `NEEDS_INPUT` and `AUTH_EXPIRED` as normal conversation turns, not
232
+ errors.
233
+ - **Site Import is in limited rollout.** If Start returns `404` or `403` with
234
+ `"code": "NOT_ENABLED"`, tell the user plainly that site import isn't
235
+ supported on their account yet and they can contact Wix support — then stop.
236
+ Do not retry or fall back to another site-creation tool.
237
+ - Any other `403` on Start means the caller is not authorized — tell the user
238
+ and stop. Do not probe other endpoints to diagnose this. A `400` means a
239
+ required field is missing (`request`/`message` must be 1–20000 chars).
240
+ - Requesting an unknown id in `artifactIds` is silently ignored — not an error.
241
+ A document simply may not exist yet on an earlier turn.
242
+ - **The user cannot open files.** If a message mentions a document by filename,
243
+ fetch it with `artifactIds` and read it to them.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: "Sites Dashboard Navigation"
3
+ description: "Builds direct links to the account-level sites pages on manage.wix.com — the My Sites list (all sites in the account) and each site's own dashboard. Pairs the site list with the Query Sites read API. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
4
+ ---
5
+
6
+ # Sites Dashboard Navigation
7
+
8
+ For the general URL contract, see [Dashboard Navigation](../dashboard-navigation/dashboard-navigation.md). Sites pages are **account-level** — they live under `https://manage.wix.com/account/...` and take no metaSiteId.
9
+
10
+ ## Main Pages
11
+
12
+ | Page | URL | What it manages |
13
+ |---|---|---|
14
+ | My Sites (site list) | `https://manage.wix.com/account/websites` | All sites in the account |
15
+ | A site's dashboard | `https://manage.wix.com/dashboard/{metaSiteId}/home` | One site's dashboard home |
16
+
17
+ ## Pairing Entities with Their Read APIs
18
+
19
+ | Entity | Read API | Dashboard link |
20
+ |---|---|---|
21
+ | Site | `POST /site-list/v2/sites/query` (returns each site's `id` = metaSiteId + name) | `https://manage.wix.com/dashboard/{id}/home` |
22
+
23
+ Example — after creating a site from a template:
24
+
25
+ ```
26
+ Created "Sunset Spa" from the template.
27
+ Open its dashboard: https://manage.wix.com/dashboard/{metaSiteId}/home
28
+ All your sites: https://manage.wix.com/account/websites
29
+ ```
@@ -30,12 +30,28 @@ curl -X POST \
30
30
  -d '{}'
31
31
  ```
32
32
 
33
- **Response**: Empty body on success.
33
+ **Response**: `200` with `{"pagesAdded": ["<widgetId>", ...]}` when the call completes within the gateway timeout. On sites with many installed apps the call usually does **not** complete in time — see the notes below.
34
+
35
+ ### If the User Already Got a 504
36
+
37
+ Answer as troubleshooting, not as a failed install:
38
+
39
+ | What happened | What to do | Why |
40
+ | --- | --- | --- |
41
+ | `504 Gateway Timeout` after ~30 seconds | Wait 1–2 minutes, then verify that the cart/checkout pages exist and checkout works | The gateway timed out while the server-side install may still be running |
42
+ | Pages now exist | Do not call the endpoint again | The repair completed despite the timeout |
43
+ | Pages are still missing after waiting | Call the endpoint once more, then verify again | A second call is only warranted after the first run had time to finish |
44
+
45
+ Do not describe an immediate retry as harmless or normally idempotent. The endpoint only adds missing pages, but each call still starts a full scan/add/republish pass, so retrying before the first pass finishes can create overlapping work and another publish.
34
46
 
35
47
  ### IMPORTANT NOTES:
36
48
  - This endpoint adds missing store pages (cart, checkout) if they don't exist
37
49
  - The request body is empty - no parameters needed
38
50
  - Only required Authorization header
51
+ - **Long-running — a 504 does not mean failure.** The endpoint synchronously scans every app installed on the site, adds any missing essential pages, and republishes the site. On real sites this often exceeds the ~30-second gateway timeout, so the call returns `504 Gateway Timeout` (sometimes wrapped as `Internal Server Error` with `errorCode: -100`) while the installation keeps running server-side and usually completes.
52
+ - **On 504, do not retry immediately.** An immediate retry starts a second full install-and-republish pass. Wait 1–2 minutes, then verify the missing pages now exist (check the site's store pages, or have the user refresh and re-test checkout). Call the endpoint again only if the pages are still missing.
53
+ - **Call it from an HTTP tool that is allowed to reach `www.wix.com`** (for example, the Wix MCP `CallWixSiteAPI` tool). Sandboxed code-execution tools (such as `ExecuteWixAPI`) block this host and fail with `403 Forbidden: requests to www.wix.com not allowed`.
54
+ - **The operation republishes the site.** Confirm with the user before running it on a live site.
39
55
 
40
56
  ---
41
57
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "Find Products (Query and Search, Catalog V3)"
3
- description: Find, search, query, and list products from a Wix Store using Catalog V3 Search Products and Query Products endpoints. Explains when to use each endpoint, correct fields enum values, filtering, sorting, and paging.
3
+ description: Find, search, query, and list products from a Wix Store using Catalog V3 Search Products and Query Products endpoints. Explains when to use each endpoint, correct fields enum values, filtering (including by price), sorting, and paging.
4
4
  ---
5
5
 
6
6
  # RECIPE: Business Recipe – Find Products in a Wix Store (Query and Search, Catalog V3)
@@ -18,11 +18,12 @@ Use **Search Products** for text search and name-based lookup. Use **Query Produ
18
18
  | Find products by name or free text | [Search Products](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/search-products) | Best for user-provided names, keywords, and broad product lookup. |
19
19
  | List all products or page through the catalog | [Query Products](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/query-products) | Supports paging and structured filters on the fields listed below. |
20
20
  | Filter by `id`, `slug`, `handle`, dates, or `visible` | [Query Products](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/query-products) | Best for exact structured criteria. |
21
+ | Filter by price — "products under $20", "between $10 and $50" | [Search Products](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/search-products) | Query Products has no price filter, so filter server-side here (STEP 1) instead of paging the catalog and comparing amounts yourself. |
21
22
  | Need exact name matching after text lookup | [Search Products](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/search-products) + client-side match | Search by the name text, then match the returned `product.name` in your own code. |
22
23
 
23
- ### STEP 1: Search products by name or free text
24
+ ### STEP 1: Search products by name, free text, or price
24
25
 
25
- Use Search Products when the user gives a product name, keyword, or other text expression:
26
+ Use Search Products when the user gives a product name, keyword, or other text expression, and for price criteria, which Query Products cannot filter on. Free text goes in `search.search`; price and other structured criteria go in `search.filter`. Send only the part you need:
26
27
 
27
28
  ```bash
28
29
  curl -X POST 'https://www.wixapis.com/stores/v3/products/search' \
@@ -30,11 +31,25 @@ curl -X POST 'https://www.wixapis.com/stores/v3/products/search' \
30
31
  -H 'Authorization: <AUTH>' \
31
32
  -d '{
32
33
  "search": {
33
- "expression": "Blue Shirt"
34
+ "search": { "expression": "Blue Shirt" },
35
+ "filter": { "actualPriceRange.minValue.amount": { "$lt": 20 } }
34
36
  }
35
37
  }'
36
38
  ```
37
39
 
40
+ The response puts the matches in `products`:
41
+
42
+ ```json
43
+ {
44
+ "products": [
45
+ { "id": "...", "name": "Blue Shirt", "slug": "blue-shirt" }
46
+ ],
47
+ "pagingMetadata": { "count": 1 }
48
+ }
49
+ ```
50
+
51
+ Query Products returns the same envelope.
52
+
38
53
  For exact name matching, search with the user-provided text and then compare the returned `product.name` values in your own code.
39
54
 
40
55
  ### STEP 2: Query products with structured filters, sorting, or paging
@@ -54,7 +69,9 @@ curl -X POST 'https://www.wixapis.com/stores/v3/products/query' \
54
69
  }'
55
70
  ```
56
71
 
57
- This returns all products with their default fields (id, name, slug, visible, productType, priceData, stock, media, etc.).
72
+ This returns all products with their default fields, including `inventory` for product-level availability.
73
+
74
+ Take availability from `inventory`, and look up any other field you need in the Catalog V3 docs rather than carrying a name over from Catalog V1 — the two catalogs do not share a product shape. A name that isn't on the V3 product reads as `undefined` rather than raising, so the request still succeeds and a check against it quietly matches nothing: an availability question answered that way returns an empty list, which reads as "everything is in stock" instead of as a failure.
58
75
 
59
76
  ### STEP 3: Understanding the `fields` parameter
60
77
 
@@ -78,7 +95,7 @@ The `fields` array requests **additional** fields beyond the defaults. It does *
78
95
  | `DESCRIPTION` | Rich text description |
79
96
  | `DIRECT_CATEGORIES_INFO` | Direct category info |
80
97
  | `ALL_CATEGORIES_INFO` | All category info |
81
- | `MIN_VARIANT_PRICE_INFO` | Minimum variant price |
98
+ | `MIN_PRICE_VARIANT` | Lowest-priced visible variant |
82
99
  | `INFO_SECTION_DESCRIPTION` | Info section rich content |
83
100
  | `THUMBNAIL` | Thumbnail image |
84
101
  | `DIRECT_CATEGORY_IDS` | Direct category IDs |
@@ -104,7 +121,7 @@ The `fields` array requests **additional** fields beyond the defaults. It does *
104
121
 
105
122
  ### STEP 4: Filtering and sorting with Query Products
106
123
 
107
- `QueryProducts` supports filters only on these fields:
124
+ `QueryProducts` supports filters only on these fields. Price is not among them, so answer a price question with Search Products rather than paging the whole catalog and comparing amounts in your own code:
108
125
 
109
126
  | Field | Supported Filters | Sortable |
110
127
  | ----- | ----------------- | -------- |
@@ -186,7 +203,8 @@ Check the response `pagingMetadata` to determine if more pages exist.
186
203
 
187
204
  - **Variant data is NOT returned** by Query Products. To get variant details, use [Get Product](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/get-product) for individual products.
188
205
  - **Non-visible products** require the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission.
189
- - Default fields include: `id`, `name`, `slug`, `visible`, `productType`, `priceData`, `stock`, `media`, `createdDate`, `updatedDate`.
206
+ - Default fields include: `id`, `name`, `slug`, `visible`, `productType`, `inventory`, `media`, `createdDate`, `updatedDate`.
207
+ - **Availability is not in STEP 4's filterable set.** To list out-of-stock products, query the catalog — paging until `pagingMetadata` reports no more results — and select on each returned product's `inventory` availability status in your own code, rather than putting it in `query.filter`.
190
208
  - The `fields` parameter adds fields **on top of** the defaults — you never need to request `id` or `name` explicitly.
191
209
 
192
210
  ## Conclusion