@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.
- package/README.md +3 -7
- package/package.json +1 -1
- package/skills/wix-app/SKILL.md +4 -1
- package/skills/wix-app/references/APP_TOOLS.md +134 -0
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +1 -1
- package/skills/wix-app/references/DASHBOARD_PAGE.md +0 -10
- package/skills/wix-app/references/DATA_COLLECTION.md +1 -1
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +28 -9
- package/skills/wix-app/references/SERVICE_PLUGIN.md +12 -10
- package/skills/wix-app/references/app-tools/TOOLS.md +75 -0
- package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +2 -2
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW-REFERENCE.md +172 -0
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW.md +138 -0
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +23 -2
- package/skills/wix-app/references/editor-react-component/BRANDED-COMPONENTS.md +29 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +1 -1
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +27 -2
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +5 -3
- package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +18 -1
- package/skills/wix-app/references/editor-react-component/PARTS.md +15 -2
- package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +2 -3
- package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +13 -9
- package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +4 -0
- package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +4 -0
- package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +3 -1
- package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +4 -0
- package/skills/wix-app/references/service-plugin/TOOLS_PROVIDER.md +54 -0
- package/skills/wix-app/references/stores/QUERY.md +32 -0
- package/skills/wix-docs/SKILL.md +35 -3
- package/skills/wix-headless/SKILL.md +3 -1
- package/skills/wix-headless/references/CONTENT.md +36 -0
- package/skills/wix-headless/references/DESIGN.md +54 -0
- package/skills/wix-headless/references/DISCOVERY.md +24 -0
- package/skills/wix-headless/references/IMAGE_GENERATION.md +10 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +3 -2
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +32 -23
- package/skills/wix-headless/references/managed/CONNECT.md +1 -1
- package/skills/wix-headless/references/managed/CREATE.md +14 -0
- package/skills/wix-headless/references/managed/DEPLOYMENT.md +25 -0
- package/skills/wix-manage/SKILL.md +123 -7
- package/skills/wix-manage/references/analytics/analytics-dashboard-navigation.md +41 -0
- package/skills/wix-manage/references/app-installation/app-installation-dashboard-navigation.md +28 -0
- package/skills/wix-manage/references/blog/blog-dashboard-navigation.md +56 -0
- package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +31 -6
- package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +3 -1
- package/skills/wix-manage/references/bookings/bookings-dashboard-navigation.md +63 -0
- package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +10 -1
- package/skills/wix-manage/references/cms/cms-dashboard-navigation.md +44 -0
- package/skills/wix-manage/references/cms/cms-data-items-crud.md +31 -3
- package/skills/wix-manage/references/cms/cms-publishing-flow.md +287 -0
- package/skills/wix-manage/references/cms/cms-schema-management.md +27 -1
- package/skills/wix-manage/references/contacts/contacts-dashboard-navigation.md +46 -0
- package/skills/wix-manage/references/contacts/create-a-contact.md +82 -0
- package/skills/wix-manage/references/contacts/update-a-contact.md +119 -0
- package/skills/wix-manage/references/dashboard-navigation/dashboard-navigation.md +82 -0
- package/skills/wix-manage/references/dashboard-navigation/routes.json +1733 -0
- package/skills/wix-manage/references/domains/domains-dashboard-navigation.md +32 -0
- package/skills/wix-manage/references/ecommerce/ecom-pricing.md +4 -4
- package/skills/wix-manage/references/ecommerce/ecom-shipping.md +1 -1
- package/skills/wix-manage/references/ecommerce/gift-cards/ecom-gift-cards-goal-sell-gift-cards.md +338 -0
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-create-discount-rule.md +42 -78
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-bundle-and-save.md +1 -1
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-stock-mover.md +1 -1
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-upsell-boost.md +1 -1
- package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +90 -92
- package/skills/wix-manage/references/events/create-wix-event.md +176 -0
- package/skills/wix-manage/references/events/manage-wix-events.md +174 -0
- package/skills/wix-manage/references/forms/forms-dashboard-navigation.md +44 -0
- package/skills/wix-manage/references/get-paid/get-paid-dashboard-navigation.md +52 -0
- package/skills/wix-manage/references/google-ads/billing-and-payment.md +80 -0
- package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +212 -0
- package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +110 -0
- package/skills/wix-manage/references/google-ads/google-ads-dashboard-navigation.md +25 -0
- package/skills/wix-manage/references/google-ads/install-and-create-account.md +155 -0
- package/skills/wix-manage/references/google-ads/manage-campaign-lifecycle.md +63 -0
- package/skills/wix-manage/references/google-ads/query-campaign-analytics.md +155 -0
- package/skills/wix-manage/references/marketing/marketing-dashboard-navigation.md +52 -0
- package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +99 -1
- package/skills/wix-manage/references/pricing-plans/pricing-plans-dashboard-navigation.md +45 -0
- package/skills/wix-manage/references/restaurants/restaurants-dashboard-navigation.md +68 -0
- package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +94 -125
- package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +48 -9
- package/skills/wix-manage/references/site-properties/site-properties-dashboard-navigation.md +31 -0
- package/skills/wix-manage/references/sites/create-headless-site.md +52 -0
- package/skills/wix-manage/references/sites/create-site-from-template.md +2 -25
- package/skills/wix-manage/references/sites/site-import.md +163 -190
- package/skills/wix-manage/references/sites/sites-dashboard-navigation.md +29 -0
- package/skills/wix-manage/references/stores/add-store-pages-to-site.md +17 -1
- package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +26 -8
- package/skills/wix-manage/references/stores/stores-dashboard-navigation.md +65 -0
- package/skills/wix-manage/references/stores/update-product-with-options.md +39 -7
- package/skills/wix-replatform/.publish-manifest.json +8 -0
- package/skills/wix-replatform/SKILL.md +693 -0
- package/skills/wix-replatform/lib/artifact-freshness.js +215 -0
- package/skills/wix-replatform/lib/completion-report.js +200 -0
- package/skills/wix-replatform/lib/config-env.js +59 -0
- package/skills/wix-replatform/lib/execution-manifest.js +185 -0
- package/skills/wix-replatform/lib/execution-state.js +173 -0
- package/skills/wix-replatform/lib/import-recovery.js +313 -0
- package/skills/wix-replatform/lib/local-state.js +642 -0
- package/skills/wix-replatform/lib/orchestration-preflight.js +143 -0
- package/skills/wix-replatform/lib/orchestration-router.js +122 -0
- package/skills/wix-replatform/lib/orchestration-state.js +455 -0
- package/skills/wix-replatform/lib/progress-log.js +224 -0
- package/skills/wix-replatform/lib/progress-log.sh +140 -0
- package/skills/wix-replatform/lib/url-preservation-state.js +391 -0
- package/skills/wix-replatform/resources/rp-discovery/SKILL.md +184 -0
- package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +529 -0
- package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +316 -0
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +64 -0
- package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +1114 -0
- package/skills/wix-replatform/resources/rp-mapper/SKILL.md +430 -0
- package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +217 -0
- package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +148 -0
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +378 -0
- package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +183 -0
- package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +478 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +136 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +310 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +1081 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +618 -0
- package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +949 -0
- package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +196 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +66 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +60 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +95 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +82 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +256 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +249 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +444 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +774 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +71 -0
- package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +632 -0
- package/skills/wix-replatform/resources/rp-target-wix/SPEC-product-reviews-and-blog-authorship.md +330 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +21 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +19 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +39 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +35 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +35 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +36 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +35 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +131 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +21 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +97 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +528 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +38 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +13 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +53 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +84 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +25 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +38 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +90 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +64 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +141 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +384 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +260 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +238 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +237 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +238 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +2219 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +31 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +100 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +107 -0
- package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +344 -0
- package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +250 -0
- package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +1927 -0
- package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +83 -0
- package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +141 -0
- package/skills/wix-replatform/scripts/artifact-freshness.js +76 -0
- package/skills/wix-replatform/scripts/execution-manifest-validate.js +43 -0
- package/skills/wix-replatform/scripts/execution-state-prepare.js +128 -0
- package/skills/wix-replatform/scripts/orchestration-preflight.js +48 -0
- package/skills/wix-replatform/scripts/orchestration-route.js +46 -0
- package/skills/wix-replatform/scripts/orchestration-state.js +245 -0
- package/skills/wix-vibe-headless/SKILL.md +48 -25
- package/skills/wix-vibe-headless/install/deploy.cjs +95 -0
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +34 -0
- package/skills/wix-vibe-headless/platforms/README.md +8 -4
- package/skills/wix-vibe-headless/platforms/base44.md +133 -98
- package/skills/wix-vibe-headless/platforms/generic.md +99 -64
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +230 -119
- package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +43 -0
- package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +25 -0
- package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +15 -0
- package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +35 -0
- package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +38 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +40 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +54 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +65 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +50 -0
- package/skills/wix-vibe-headless/references/blog/seed/SEED.md +103 -0
- package/skills/wix-vibe-headless/references/blog/seed/seed-blog.js +270 -0
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +260 -149
- package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +65 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +47 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +13 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +126 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +108 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +58 -0
- package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +95 -0
- package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +94 -0
- package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +89 -0
- package/skills/wix-vibe-headless/references/bookings/{wix-bookings-checkout.js → app/rest/wix-bookings-checkout.js} +1 -1
- package/skills/wix-vibe-headless/references/bookings/{wix-bookings-services.js → app/rest/wix-bookings-services.js} +87 -11
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +117 -0
- package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.js +333 -0
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +169 -147
- package/skills/wix-vibe-headless/references/cms/app/collection.config.js +31 -0
- package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +18 -0
- package/skills/wix-vibe-headless/references/cms/{wix-cms.js → app/rest/wix-cms.js} +47 -2
- package/skills/wix-vibe-headless/references/cms/seed/SEED.md +145 -0
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +228 -131
- package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +23 -0
- package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +43 -0
- package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +13 -0
- package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +29 -0
- package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +57 -0
- package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +78 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +27 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +54 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +40 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +81 -0
- package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +48 -0
- package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +36 -0
- package/skills/wix-vibe-headless/references/events/{wix-events-browse.js → app/rest/wix-events-browse.js} +1 -1
- package/skills/wix-vibe-headless/references/events/seed/SEED.md +107 -0
- package/skills/wix-vibe-headless/references/events/seed/seed-events.js +251 -0
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +276 -188
- package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +101 -0
- package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +33 -0
- package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +21 -0
- package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +29 -0
- package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +54 -0
- package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +77 -0
- package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +36 -0
- package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +32 -0
- package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +35 -0
- package/skills/wix-vibe-headless/references/members/{wix-members-auth.js → app/rest/wix-members-auth.js} +6 -3
- package/skills/wix-vibe-headless/references/members/install/Register.jsx +22 -0
- package/skills/wix-vibe-headless/references/members/seed/SEED.md +22 -0
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +233 -104
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +31 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +15 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +39 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +15 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +29 -0
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +35 -0
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +27 -0
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +25 -0
- package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +39 -0
- package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +27 -0
- package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +60 -0
- package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +94 -0
- package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.js +236 -0
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +240 -117
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +35 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +48 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +16 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +35 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +25 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +28 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +30 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +30 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +53 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +28 -0
- package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +86 -0
- package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.js +251 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +248 -124
- package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +81 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +71 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +43 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +21 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +60 -0
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +63 -0
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +32 -0
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +73 -0
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +28 -0
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +102 -0
- package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +180 -0
- package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.js +452 -0
- package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +56 -0
- package/skills/wix-vibe-headless/references/shared/{wix-client.js → app/rest/wix-client.js} +6 -8
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +6 -0
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +263 -157
- package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +20 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +150 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +167 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGallery.jsx +51 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +54 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +119 -0
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +71 -0
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +109 -0
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +98 -0
- package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +27 -0
- package/skills/wix-vibe-headless/references/storefront/app/pages/ProductDetail.jsx +139 -0
- package/skills/wix-vibe-headless/references/storefront/app/pages/Shop.jsx +75 -0
- package/skills/wix-vibe-headless/references/storefront/{wix-store-cart.js → app/rest/wix-store-cart.js} +1 -1
- package/skills/wix-vibe-headless/references/storefront/{wix-store-catalog.js → app/rest/wix-store-catalog.js} +20 -1
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +111 -0
- package/skills/wix-vibe-headless/references/storefront/seed/seed-store.js +299 -0
- /package/skills/wix-vibe-headless/references/blog/{wix-blog.js → app/rest/wix-blog.js} +0 -0
- /package/skills/wix-vibe-headless/references/events/{wix-events-registration.js → app/rest/wix-events-registration.js} +0 -0
- /package/skills/wix-vibe-headless/references/portfolio/{wix-portfolio.js → app/rest/wix-portfolio.js} +0 -0
- /package/skills/wix-vibe-headless/references/pricing-plans/{wix-pricing-plans.js → app/rest/wix-pricing-plans.js} +0 -0
- /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-menu.js → app/rest/wix-restaurants-menu.js} +0 -0
- /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-ordering.js → app/rest/wix-restaurants-ordering.js} +0 -0
- /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. **
|
|
20
|
-
|
|
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
|
|
28
|
-
signed-in Wix user's account
|
|
29
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
```
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
```
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
|
96
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
|
114
|
-
|
|
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
|
-
-
|
|
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
|
|
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
|
-
- **
|
|
127
|
-
|
|
128
|
-
`sourcePlatform`/`sourceConfidence` values.
|
|
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", "
|
|
133
|
-
"
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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
|
|
184
|
-
|
|
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
|
-
**
|
|
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`
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
- `recentActivity`: up to 20
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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` —
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
`
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
- `AUTH_EXPIRED` — recoverable,
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
- Follow-up changes after a deploy
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
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
|
-
-
|
|
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
|
|
256
|
-
|
|
257
|
-
- **Site Import is
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
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**:
|
|
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
|
|
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
|
|
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
|
-
| `
|
|
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`, `
|
|
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
|