@wix/agent-skills 1.35.1 → 1.36.1
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/package.json +8 -3
- package/skills/wix-app/references/CODE_QUALITY.md +1 -1
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +27 -29
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +1 -1
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +26 -25
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +12 -42
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +9 -20
- package/skills/wix-app/references/editor-react-component/MANIFEST-ERRORS.md +5 -4
- package/skills/wix-app/references/editor-react-component/PARTS.md +1 -1
- package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +1 -1
- package/skills/wix-app/references/editor-react-component/VECTOR-ART.md +95 -0
- package/skills/wix-app/references/editor-react-component/VISUAL-QUALITY.md +39 -0
- package/skills/wix-docs/references/CALLING.md +1 -1
- package/skills/wix-headless-kit/guides/api-run.md +1 -1
- package/skills/wix-headless-kit/install/pins.json +1 -1
- package/skills/wix-headless-templates/blog/seed/seed-blog.mjs +1 -1
- package/skills/wix-headless-templates/donations/app/wix/donations/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/app/wix/donations/donate.ts +1 -1
- package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donate.ts +1 -1
- package/skills/wix-headless-templates/donations/rest/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/rest/donate.ts +1 -1
- package/skills/wix-headless-templates/events/seed/seed-events.mjs +1 -1
- package/skills/wix-headless-templates/faq/INSTRUCTIONS.md +1 -1
- package/skills/wix-headless-templates/faq/app/wix/faq/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/project/src/wix/faq/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/rest/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/seed/SEED.md +1 -1
- package/skills/wix-headless-templates/faq/seed/read-site.mjs +1 -1
- package/skills/wix-headless-templates/faq/seed/seed-faq.mjs +5 -5
- package/skills/wix-headless-templates/forms/app/wix/forms/forms.ts +2 -2
- package/skills/wix-headless-templates/forms/app/wix/forms/submissions.ts +2 -2
- package/skills/wix-headless-templates/forms/project/src/wix/forms/forms.ts +2 -2
- package/skills/wix-headless-templates/forms/project/src/wix/forms/submissions.ts +2 -2
- package/skills/wix-headless-templates/members/seed/read-site.mjs +1 -1
- package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-access.ts +1 -1
- package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-access.ts +1 -1
- package/skills/wix-headless-templates/pricing-plans/rest/plan-access.ts +1 -1
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/menu.ts +0 -1
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/menu.ts +0 -1
- package/skills/wix-headless-templates/restaurants/rest/menu.ts +0 -1
- package/skills/wix-headless-templates/shared/rest/client.ts +1 -1
- package/skills/wix-headless-templates/shared/seed/site.mjs +2 -1
- package/skills/wix-manage/SKILL.md +3 -3
- package/skills/wix-manage/references/cms/cms-data-items-crud.md +78 -1
- package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +11 -11
- package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +0 -1
- package/skills/wix-manage/references/google-ads/install-and-create-account.md +0 -1
- package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +20 -51
- package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +4 -4
- package/skills/wix-manage/references/rich-content/ricos-converter-service.md +1 -1
- package/skills/wix-base44-connector/SKILL.md +0 -437
- package/skills/wix-base44-connector/references/CAPABILITY_MAP.md +0 -78
- package/skills/wix-base44-connector/scripts/utils.cjs +0 -466
- package/skills/wix-export/SKILL.md +0 -83
- package/skills/wix-harmony-editor/.publish-manifest.json +0 -8
- package/skills/wix-harmony-editor/COPY-SITE.md +0 -494
- package/skills/wix-harmony-editor/SKILL.md +0 -317
- package/skills/wix-harmony-editor/scripts/copy/build-description.mjs +0 -249
- package/skills/wix-harmony-editor/scripts/copy/check-description.mjs +0 -225
- package/skills/wix-harmony-editor/scripts/copy/check-mirror.mjs +0 -89
- package/skills/wix-harmony-editor/scripts/copy/compare-preview.mjs +0 -76
- package/skills/wix-harmony-editor/scripts/copy/deploy-description.mjs +0 -212
- package/skills/wix-harmony-editor/scripts/copy/desc-hash.mjs +0 -44
- package/skills/wix-harmony-editor/scripts/copy/editor-run.mjs +0 -45
- package/skills/wix-harmony-editor/scripts/copy/export-page.mjs +0 -53
- package/skills/wix-harmony-editor/scripts/copy/find-interactions.mjs +0 -76
- package/skills/wix-harmony-editor/scripts/copy/hide-scrollbars.mjs +0 -16
- package/skills/wix-harmony-editor/scripts/copy/import-media.mjs +0 -150
- package/skills/wix-harmony-editor/scripts/copy/link-url.mjs +0 -27
- package/skills/wix-harmony-editor/scripts/copy/lint-api.mjs +0 -56
- package/skills/wix-harmony-editor/scripts/copy/measure-source.mjs +0 -211
- package/skills/wix-harmony-editor/scripts/copy/merge-mirrors.mjs +0 -29
- package/skills/wix-harmony-editor/scripts/copy/mirror-site.mjs +0 -92
- package/skills/wix-harmony-editor/scripts/copy/mobile-stage.mjs +0 -56
- package/skills/wix-harmony-editor/scripts/copy/preview-widths.mjs +0 -73
- package/skills/wix-harmony-editor/scripts/copy/render-plate.mjs +0 -67
- package/skills/wix-harmony-editor/scripts/copy/serve-mirror.mjs +0 -102
- package/skills/wix-harmony-editor/scripts/copy/snapshot-capabilities.mjs +0 -40
- package/skills/wix-harmony-editor/scripts/copy/split-sections.mjs +0 -191
- package/skills/wix-harmony-editor/scripts/copy/upload-media-manager.mjs +0 -61
- package/skills/wix-harmony-editor/scripts/launch.sh +0 -359
- package/skills/wix-headless/SKILL.md +0 -151
- package/skills/wix-headless/references/AI_FEATURES.md +0 -178
- package/skills/wix-headless/references/CAPABILITIES.md +0 -117
- package/skills/wix-headless/references/CONTENT.md +0 -36
- package/skills/wix-headless/references/DESIGN.md +0 -55
- package/skills/wix-headless/references/DISCOVERY.md +0 -80
- package/skills/wix-headless/references/DOC_DISCOVERY.md +0 -43
- package/skills/wix-headless/references/FEEDBACK.md +0 -129
- package/skills/wix-headless/references/IMAGE_GENERATION.md +0 -80
- package/skills/wix-headless/references/SDK_HANDOFF.md +0 -108
- package/skills/wix-headless/references/SEED.md +0 -74
- package/skills/wix-headless/references/SETUP.md +0 -60
- package/skills/wix-headless/references/astro.md +0 -98
- package/skills/wix-headless/references/inline-recipes/experience-donations.md +0 -102
- package/skills/wix-headless/references/inline-recipes/experience-store.md +0 -49
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +0 -196
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +0 -590
- package/skills/wix-headless/references/inline-recipes/how-to-code-bookings.md +0 -279
- package/skills/wix-headless/references/inline-recipes/how-to-code-cms.md +0 -163
- package/skills/wix-headless/references/inline-recipes/how-to-code-donations.md +0 -146
- package/skills/wix-headless/references/inline-recipes/how-to-code-events.md +0 -203
- package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +0 -696
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +0 -124
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +0 -160
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +0 -118
- package/skills/wix-headless/references/inline-recipes/how-to-code-portfolio.md +0 -132
- package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +0 -126
- package/skills/wix-headless/references/inline-recipes/how-to-code-rentals.md +0 -254
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +0 -191
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +0 -213
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurants.md +0 -161
- package/skills/wix-headless/references/inline-recipes/setup-blog.md +0 -175
- package/skills/wix-headless/references/inline-recipes/setup-bookings.md +0 -232
- package/skills/wix-headless/references/inline-recipes/setup-cms.md +0 -200
- package/skills/wix-headless/references/inline-recipes/setup-donations.md +0 -15
- package/skills/wix-headless/references/inline-recipes/setup-events.md +0 -196
- package/skills/wix-headless/references/inline-recipes/setup-forms.md +0 -288
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +0 -214
- package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +0 -155
- package/skills/wix-headless/references/inline-recipes/setup-pricing-plans.md +0 -229
- package/skills/wix-headless/references/inline-recipes/setup-rentals.md +0 -254
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +0 -73
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +0 -197
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +0 -136
- package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +0 -152
- package/skills/wix-headless/references/managed/AUTHENTICATION.md +0 -71
- package/skills/wix-headless/references/managed/CONNECT.md +0 -74
- package/skills/wix-headless/references/managed/CREATE.md +0 -149
- package/skills/wix-headless/references/managed/DEPLOYMENT.md +0 -104
- package/skills/wix-headless/references/non-astro.md +0 -59
- package/skills/wix-headless/references/self-managed/AUTHENTICATION.md +0 -22
- package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +0 -15
- package/skills/wix-headless/references/stripe/AUTHENTICATION.md +0 -55
- package/skills/wix-headless/references/stripe/DEPLOYMENT.md +0 -71
- package/skills/wix-headless/scripts/bootstrap.mjs +0 -156
- package/skills/wix-headless-replatform/.publish-manifest.json +0 -8
- package/skills/wix-headless-replatform/SKILL.md +0 -116
- package/skills/wix-headless-replatform/agents/openai.yaml +0 -6
- package/skills/wix-headless-replatform/references/control-and-visual-fidelity-contract.md +0 -43
- package/skills/wix-headless-replatform/references/extraction-schema.md +0 -187
- package/skills/wix-headless-replatform/references/interaction-runtime-contract.md +0 -137
- package/skills/wix-headless-replatform/references/layout-blueprint-contract.md +0 -41
- package/skills/wix-headless-replatform/references/output-contract.md +0 -93
- package/skills/wix-headless-replatform/references/post-build-gap-contract.md +0 -125
- package/skills/wix-headless-replatform/references/qa-checklist.md +0 -83
- package/skills/wix-headless-replatform/references/safety.md +0 -19
- package/skills/wix-headless-replatform/references/ui-normalization-contract.md +0 -70
- package/skills/wix-headless-replatform/references/workflow.md +0 -157
- package/skills/wix-headless-replatform/registry/README.md +0 -20
- package/skills/wix-headless-replatform/registry/approvals/button/shadcn-default-ac60ef5.json +0 -28
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/button.tsx +0 -54
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/capabilities.json +0 -60
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/contract.md +0 -48
- package/skills/wix-headless-replatform/registry/licenses/shadcn-ui-ac60ef5-MIT.txt +0 -21
- package/skills/wix-headless-replatform/registry/registry.json +0 -36
- package/skills/wix-headless-replatform/resources/rp-facelift/SKILL.md +0 -32
- package/skills/wix-headless-replatform/resources/rp-project-context/SKILL.md +0 -62
- package/skills/wix-headless-replatform/resources/rp-qa-gap-loop/SKILL.md +0 -64
- package/skills/wix-headless-replatform/resources/rp-source-evidence/SKILL.md +0 -42
- package/skills/wix-headless-replatform/resources/rp-ui-implementation/SKILL.md +0 -73
- package/skills/wix-headless-replatform/schemas/build-plan.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/candidate.schema.json +0 -19
- package/skills/wix-headless-replatform/schemas/common.schema.json +0 -33
- package/skills/wix-headless-replatform/schemas/decision-patch.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/decision-request.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/extraction-gap.schema.json +0 -28
- package/skills/wix-headless-replatform/schemas/extraction-manifest.schema.json +0 -34
- package/skills/wix-headless-replatform/schemas/final-report.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/foundation.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/metadata.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/observation-packet.schema.json +0 -17
- package/skills/wix-headless-replatform/schemas/page-capture.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/page-resolution.schema.json +0 -33
- package/skills/wix-headless-replatform/schemas/shared-chrome.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/unit.schema.json +0 -40
- package/skills/wix-headless-replatform/scripts/assemble-extraction.mjs +0 -844
- package/skills/wix-headless-replatform/scripts/benchmark-extraction.mjs +0 -163
- package/skills/wix-headless-replatform/scripts/browser-extraction-preflight.mjs +0 -42
- package/skills/wix-headless-replatform/scripts/build-extracted-homepage.mjs +0 -228
- package/skills/wix-headless-replatform/scripts/clear-wix-starter.mjs +0 -87
- package/skills/wix-headless-replatform/scripts/create-wix-project.mjs +0 -505
- package/skills/wix-headless-replatform/scripts/discover-urls.mjs +0 -142
- package/skills/wix-headless-replatform/scripts/extract-assets.mjs +0 -140
- package/skills/wix-headless-replatform/scripts/extract-design-system.mjs +0 -637
- package/skills/wix-headless-replatform/scripts/extract-interactions.mjs +0 -1903
- package/skills/wix-headless-replatform/scripts/extract-page.mjs +0 -2461
- package/skills/wix-headless-replatform/scripts/extract-seo.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/extract-tokens.mjs +0 -63
- package/skills/wix-headless-replatform/scripts/finalize-extraction-report.mjs +0 -126
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.mjs +0 -180
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.test.mjs +0 -98
- package/skills/wix-headless-replatform/scripts/finalize-migration-website.mjs +0 -103
- package/skills/wix-headless-replatform/scripts/generate-control-state-contract.mjs +0 -176
- package/skills/wix-headless-replatform/scripts/generate-design-md.mjs +0 -261
- package/skills/wix-headless-replatform/scripts/generate-extraction-validators.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/generate-invoice-download-backend.mjs +0 -342
- package/skills/wix-headless-replatform/scripts/generate-layout-blueprint.mjs +0 -140
- package/skills/wix-headless-replatform/scripts/generate-repeater-cms.mjs +0 -22
- package/skills/wix-headless-replatform/scripts/generate-route-plan.mjs +0 -143
- package/skills/wix-headless-replatform/scripts/generate-scene-contract.mjs +0 -288
- package/skills/wix-headless-replatform/scripts/generate-ui-normalization.mjs +0 -266
- package/skills/wix-headless-replatform/scripts/generate-visual-assets.mjs +0 -111
- package/skills/wix-headless-replatform/scripts/lib/browser-tooling.mjs +0 -570
- package/skills/wix-headless-replatform/scripts/lib/common.mjs +0 -329
- package/skills/wix-headless-replatform/scripts/lib/component-capabilities.mjs +0 -121
- package/skills/wix-headless-replatform/scripts/lib/component-registry.mjs +0 -282
- package/skills/wix-headless-replatform/scripts/lib/content-boundary.mjs +0 -61
- package/skills/wix-headless-replatform/scripts/lib/extraction-contract.mjs +0 -374
- package/skills/wix-headless-replatform/scripts/lib/extraction-detectors.mjs +0 -243
- package/skills/wix-headless-replatform/scripts/lib/extraction-validators.generated.mjs +0 -1139
- package/skills/wix-headless-replatform/scripts/lib/font-contract.mjs +0 -326
- package/skills/wix-headless-replatform/scripts/lib/frontend-automation-state.mjs +0 -184
- package/skills/wix-headless-replatform/scripts/lib/gap-analysis.mjs +0 -396
- package/skills/wix-headless-replatform/scripts/lib/html-extract.mjs +0 -168
- package/skills/wix-headless-replatform/scripts/lib/interaction-bootstrap.mjs +0 -10
- package/skills/wix-headless-replatform/scripts/lib/interaction-runtime.mjs +0 -194
- package/skills/wix-headless-replatform/scripts/lib/interaction-timeline.mjs +0 -348
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/classifiers.mjs +0 -141
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/geometry.mjs +0 -43
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/vocabulary.mjs +0 -18
- package/skills/wix-headless-replatform/scripts/lib/ui-normalization.css +0 -64
- package/skills/wix-headless-replatform/scripts/optimize-svg.mjs +0 -31
- package/skills/wix-headless-replatform/scripts/post-build-gap.mjs +0 -358
- package/skills/wix-headless-replatform/scripts/provision-repeater-cms.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/record-gap-decision.mjs +0 -39
- package/skills/wix-headless-replatform/scripts/replay-extraction.mjs +0 -107
- package/skills/wix-headless-replatform/scripts/resolve-home-page.mjs +0 -96
- package/skills/wix-headless-replatform/scripts/site-clone.mjs +0 -658
- package/skills/wix-headless-replatform/scripts/validate-font-contract.mjs +0 -29
- package/skills/wix-headless-replatform/scripts/verify-interactions.mjs +0 -669
- package/skills/wix-headless-replatform/scripts/visual-qa.mjs +0 -370
- package/skills/wix-import/SKILL.md +0 -90
- package/skills/wix-replatform/.publish-manifest.json +0 -8
- package/skills/wix-replatform/CLI.md +0 -162
- package/skills/wix-replatform/README.md +0 -52
- package/skills/wix-replatform/SKILL.md +0 -238
- package/skills/wix-replatform/console/account.css +0 -1
- package/skills/wix-replatform/console/app.css +0 -1
- package/skills/wix-replatform/console/app.js +0 -117
- package/skills/wix-replatform/console/index.html +0 -4
- package/skills/wix-replatform/console/json.css +0 -11
- package/skills/wix-replatform/lib/agent-adapters/index.js +0 -71
- package/skills/wix-replatform/lib/app-page-routing.js +0 -75
- package/skills/wix-replatform/lib/artifact-freshness.js +0 -225
- package/skills/wix-replatform/lib/blocked-data-requests.js +0 -427
- package/skills/wix-replatform/lib/census-reconciliation.js +0 -426
- package/skills/wix-replatform/lib/completion-report.js +0 -1580
- package/skills/wix-replatform/lib/config-env.js +0 -133
- package/skills/wix-replatform/lib/confirmed-pictures.js +0 -212
- package/skills/wix-replatform/lib/dependency-readiness.js +0 -423
- package/skills/wix-replatform/lib/dependency-recovery.js +0 -21
- package/skills/wix-replatform/lib/destination-choice.js +0 -163
- package/skills/wix-replatform/lib/destination-handoff.js +0 -62
- package/skills/wix-replatform/lib/destination-http.js +0 -81
- package/skills/wix-replatform/lib/destination-route.js +0 -98
- package/skills/wix-replatform/lib/destination.js +0 -919
- package/skills/wix-replatform/lib/discovered-census.js +0 -231
- package/skills/wix-replatform/lib/discovered-set-status.js +0 -255
- package/skills/wix-replatform/lib/document-url-guard.js +0 -203
- package/skills/wix-replatform/lib/entity-qa-attestation.js +0 -339
- package/skills/wix-replatform/lib/entity-verification.js +0 -18
- package/skills/wix-replatform/lib/execution-capability.js +0 -120
- package/skills/wix-replatform/lib/execution-log.js +0 -170
- package/skills/wix-replatform/lib/execution-manifest.js +0 -203
- package/skills/wix-replatform/lib/execution-state.js +0 -195
- package/skills/wix-replatform/lib/expectations-ledger.js +0 -96
- package/skills/wix-replatform/lib/generated-plugin-handoff.js +0 -140
- package/skills/wix-replatform/lib/import-readiness-contract.js +0 -23
- package/skills/wix-replatform/lib/import-recovery.js +0 -1107
- package/skills/wix-replatform/lib/imported-redirect-targets.js +0 -608
- package/skills/wix-replatform/lib/internal-link-reconciliation.js +0 -166
- package/skills/wix-replatform/lib/link-audit.js +0 -173
- package/skills/wix-replatform/lib/link-census.js +0 -194
- package/skills/wix-replatform/lib/link-plan.js +0 -148
- package/skills/wix-replatform/lib/link-verification.js +0 -274
- package/skills/wix-replatform/lib/link-write-journal.js +0 -42
- package/skills/wix-replatform/lib/local-state.js +0 -1481
- package/skills/wix-replatform/lib/member-completion.js +0 -658
- package/skills/wix-replatform/lib/member-crosswalk.js +0 -69
- package/skills/wix-replatform/lib/member-outcome-registry.js +0 -265
- package/skills/wix-replatform/lib/migration-completion.js +0 -311
- package/skills/wix-replatform/lib/operator-identity.js +0 -47
- package/skills/wix-replatform/lib/orchestration-decisions.js +0 -248
- package/skills/wix-replatform/lib/orchestration-preflight.js +0 -525
- package/skills/wix-replatform/lib/orchestration-router.js +0 -698
- package/skills/wix-replatform/lib/orchestration-state.js +0 -631
- package/skills/wix-replatform/lib/order-reference-readiness.js +0 -30
- package/skills/wix-replatform/lib/payments-outcome-registry.js +0 -200
- package/skills/wix-replatform/lib/plugin-cms-fallback.js +0 -618
- package/skills/wix-replatform/lib/preservation-approval-stamp.js +0 -54
- package/skills/wix-replatform/lib/product-media-deferral.js +0 -96
- package/skills/wix-replatform/lib/progress-log.js +0 -240
- package/skills/wix-replatform/lib/progress-log.sh +0 -140
- package/skills/wix-replatform/lib/read-back-approval.js +0 -184
- package/skills/wix-replatform/lib/read-back-comparison.js +0 -136
- package/skills/wix-replatform/lib/read-back-contract.js +0 -243
- package/skills/wix-replatform/lib/read-back-extract.js +0 -118
- package/skills/wix-replatform/lib/read-back-gate.js +0 -734
- package/skills/wix-replatform/lib/read-back-reads.js +0 -94
- package/skills/wix-replatform/lib/read-back-state.js +0 -107
- package/skills/wix-replatform/lib/read-back-summary.js +0 -81
- package/skills/wix-replatform/lib/rerun-conflicts.js +0 -334
- package/skills/wix-replatform/lib/run-controller.js +0 -401
- package/skills/wix-replatform/lib/seo-outcome-registry.js +0 -45
- package/skills/wix-replatform/lib/setup-verification.js +0 -148
- package/skills/wix-replatform/lib/source-access.js +0 -231
- package/skills/wix-replatform/lib/source-coverage.js +0 -1130
- package/skills/wix-replatform/lib/source-secrets.js +0 -277
- package/skills/wix-replatform/lib/structured-link-patch.js +0 -59
- package/skills/wix-replatform/lib/task-state.js +0 -110
- package/skills/wix-replatform/lib/url-preservation-report.js +0 -319
- package/skills/wix-replatform/lib/url-preservation-state.js +0 -739
- package/skills/wix-replatform/lib/url-redirect-plan.js +0 -728
- package/skills/wix-replatform/lib/url-verification.js +0 -315
- package/skills/wix-replatform/lib/user-action-effects.js +0 -42
- package/skills/wix-replatform/lib/user-actions.js +0 -264
- package/skills/wix-replatform/lib/website-handoff.js +0 -1220
- package/skills/wix-replatform/lib/wix-client-callers.js +0 -54
- package/skills/wix-replatform/lib/wix-dashboard-url.js +0 -35
- package/skills/wix-replatform/lib/write-verification-state.js +0 -92
- package/skills/wix-replatform/lib/write-verification.js +0 -274
- package/skills/wix-replatform/resources/rp-destination/SKILL.md +0 -137
- package/skills/wix-replatform/resources/rp-discovery/SKILL.md +0 -357
- package/skills/wix-replatform/resources/rp-discovery/scripts/promote-source-coverage.js +0 -47
- package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +0 -1369
- package/skills/wix-replatform/resources/rp-execute-import/scripts/shipping-estimate-audit.js +0 -70
- package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +0 -482
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/execute-setup.js +0 -442
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +0 -64
- package/skills/wix-replatform/resources/rp-execution-policy/SKILL.md +0 -112
- package/skills/wix-replatform/resources/rp-execution-policy/lib/coupon-currency-plan-report.js +0 -143
- package/skills/wix-replatform/resources/rp-execution-policy/lib/payments-report.js +0 -244
- package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +0 -3158
- package/skills/wix-replatform/resources/rp-mapper/SKILL.md +0 -947
- package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +0 -217
- package/skills/wix-replatform/resources/rp-mapper/lib/structure-bridge-planning.js +0 -303
- package/skills/wix-replatform/resources/rp-mapper/scripts/coverage-reconcile.js +0 -88
- package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +0 -148
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +0 -378
- package/skills/wix-replatform/resources/rp-preflight/SKILL.md +0 -40
- package/skills/wix-replatform/resources/rp-project-intake/SKILL.md +0 -55
- package/skills/wix-replatform/resources/rp-quick-runtime/SKILL.md +0 -60
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/import-progress.js +0 -89
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/limit-recovery.js +0 -36
- package/skills/wix-replatform/resources/rp-quick-shopify/SKILL.md +0 -123
- package/skills/wix-replatform/resources/rp-quick-shopify/quick-mode.json +0 -124
- package/skills/wix-replatform/resources/rp-quick-shopify/scripts/quick-mode.js +0 -522
- package/skills/wix-replatform/resources/rp-quick-woocommerce/SKILL.md +0 -56
- package/skills/wix-replatform/resources/rp-quick-woocommerce/quick-mode.json +0 -91
- package/skills/wix-replatform/resources/rp-quick-woocommerce/scripts/quick-mode.js +0 -255
- package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +0 -253
- package/skills/wix-replatform/resources/rp-setup-discovery/scripts/quick-setup-plan.js +0 -44
- package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +0 -481
- package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +0 -136
- 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 +0 -310
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +0 -1081
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +0 -618
- package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +0 -969
- package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +0 -196
- package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +0 -66
- package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +0 -60
- package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +0 -95
- package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +0 -82
- package/skills/wix-replatform/resources/rp-source-inputs/SKILL.md +0 -66
- package/skills/wix-replatform/resources/rp-source-sfcc/SKILL.md +0 -153
- package/skills/wix-replatform/resources/rp-source-shopify/SKILL.md +0 -394
- package/skills/wix-replatform/resources/rp-source-shopify/lib/discovery-reads.js +0 -200
- package/skills/wix-replatform/resources/rp-source-shopify/lib/import-findings.js +0 -34
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk-sqlite-worker.js +0 -44
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk.js +0 -1470
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-cli.js +0 -446
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-gift-cards.js +0 -474
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-protected-fields.js +0 -879
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-session.js +0 -426
- package/skills/wix-replatform/resources/rp-source-shopify/queries/articles.graphql +0 -24
- package/skills/wix-replatform/resources/rp-source-shopify/queries/blogs.graphql +0 -18
- package/skills/wix-replatform/resources/rp-source-shopify/queries/collections.graphql +0 -40
- package/skills/wix-replatform/resources/rp-source-shopify/queries/customers.graphql +0 -76
- package/skills/wix-replatform/resources/rp-source-shopify/queries/delivery-profiles.graphql +0 -51
- package/skills/wix-replatform/resources/rp-source-shopify/queries/discounts.graphql +0 -35
- package/skills/wix-replatform/resources/rp-source-shopify/queries/files.graphql +0 -20
- package/skills/wix-replatform/resources/rp-source-shopify/queries/gift-cards.graphql +0 -18
- package/skills/wix-replatform/resources/rp-source-shopify/queries/inventory.graphql +0 -31
- package/skills/wix-replatform/resources/rp-source-shopify/queries/locations.graphql +0 -21
- package/skills/wix-replatform/resources/rp-source-shopify/queries/menus.graphql +0 -21
- package/skills/wix-replatform/resources/rp-source-shopify/queries/metaobjects.graphql +0 -30
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-core.graphql +0 -150
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-fulfillments.graphql +0 -36
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-refunds.graphql +0 -48
- package/skills/wix-replatform/resources/rp-source-shopify/queries/pages.graphql +0 -20
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-address.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-email.graphql +0 -6
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-name.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-phone.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-address.graphql +0 -12
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-email.graphql +0 -6
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-name.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-phone.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/queries/products.graphql +0 -73
- package/skills/wix-replatform/resources/rp-source-shopify/queries/url-redirects.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-discovery.js +0 -693
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-extract.js +0 -283
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-gift-card-remedy.js +0 -191
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-session-check.js +0 -115
- package/skills/wix-replatform/resources/rp-source-shopify/source-schema.example.json +0 -201
- package/skills/wix-replatform/resources/rp-source-wordpress/PLUGIN-READ-PLANS.md +0 -146
- package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +0 -970
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/blocked-data-handlers.js +0 -73
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.js +0 -115
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.test-fixture.js +0 -91
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/coupon-discovery.js +0 -440
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/currency-gate.js +0 -125
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.js +0 -252
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.json +0 -183
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-summary.mjs +0 -333
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/invoice-discovery.js +0 -426
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-disposition.js +0 -400
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-entity-read-plan.js +0 -633
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-knowledge.js +0 -1127
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.js +0 -194
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.json +0 -100
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/sampled-ids-batch.js +0 -157
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/secret-value-guard.js +0 -234
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/store-currency.js +0 -101
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/structure-bridge-reader.js +0 -755
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.js +0 -1074
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.test-fixture.js +0 -149
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/woo-inventory.js +0 -25
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +0 -444
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-image-url.js +0 -186
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-plugin-detect.js +0 -1422
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-redirect-sources.js +0 -343
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +0 -680
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/yoast-product-seo-evidence.js +0 -272
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/README.md +0 -373
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/advanced-custom-fields.json +0 -101
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/back-in-stock-notifier-for-woocommerce.json +0 -81
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/capabilities-pending-decision.json +0 -128
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/cms-fallback-eligible.json +0 -18
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/contact-form-7.json +0 -104
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/facebook-for-woocommerce.json +0 -44
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/fingerprint-aliases.json +0 -49
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/free-gifts-for-woocommerce.json +0 -94
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/index.json +0 -863
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mailpoet.json +0 -52
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/membership-for-woocommerce.json +0 -161
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mwb-bookings-for-woocommerce.json +0 -180
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/no-migration-needed.json +0 -286
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pricing-deals-for-woocommerce.json +0 -79
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/product-extras-for-woocommerce.json +0 -120
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pw-woocommerce-gift-cards.json +0 -128
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/requires-development.json +0 -88
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seo-by-rank-math.json +0 -80
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seriously-simple-podcasting.json +0 -46
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/strong-testimonials.json +0 -55
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/subscriptions-for-woocommerce.json +0 -99
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/tablepress.json +0 -55
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/the-events-calendar.json +0 -160
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/ti-woocommerce-wishlist.json +0 -81
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-checkout-field-editor-pro.json +0 -60
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-discount-rules.json +0 -74
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-product-bundle.json +0 -75
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-gift-cards.json +0 -60
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-other-payment-gateway.json +0 -44
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-pdf-invoices-packing-slips.json +0 -57
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-product-addon.json +0 -141
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-progressive-discounts.json +0 -54
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wordpress-seo.json +0 -158
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpc-composite-products.json +0 -97
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpforms-lite.json +0 -86
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/capture-store-settings.js +0 -90
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge-validate.js +0 -51
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge.js +0 -103
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +0 -2409
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-plugin-inventory.js +0 -273
- package/skills/wix-replatform/resources/rp-source-wordpress/secret-value-patterns.v1.json +0 -11
- package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +0 -71
- package/skills/wix-replatform/resources/rp-source-wordpress/sub-parts.json +0 -13
- package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +0 -1046
- package/skills/wix-replatform/resources/rp-target-wix/app-page-routing-capabilities.json +0 -36
- package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +0 -57
- package/skills/wix-replatform/resources/rp-target-wix/domains/SERVICE-PLUGINS.md +0 -322
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/docs-survey.json +0 -70
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +0 -29
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +0 -83
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +0 -95
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +0 -66
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/docs-survey.json +0 -332
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/domain.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/booking.json +0 -181
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service-add-on.json +0 -130
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service.json +0 -180
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/docs-survey.json +0 -161
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +0 -25
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +0 -67
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/docs-survey.json +0 -204
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +0 -27
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +0 -275
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +0 -105
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +0 -77
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/docs-survey.json +0 -306
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +0 -44
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/delivery-profile.json +0 -171
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/discount-rule.json +0 -182
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-applied-discount.json +0 -129
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-invoice-document.json +0 -192
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item-options.json +0 -123
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +0 -85
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-merchant-note.json +0 -112
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-payment.json +0 -191
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +0 -164
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +0 -462
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/pickup-location.json +0 -122
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/shipping-option.json +0 -98
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/wishlist-item.json +0 -86
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/docs-survey.json +0 -128
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/domain.json +0 -38
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/category.json +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/event.json +0 -107
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/registration-form.json +0 -89
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/rsvp.json +0 -118
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/ticket-definition.json +0 -93
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/docs-survey.json +0 -86
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/domain.json +0 -56
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form-submission.json +0 -121
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form.json +0 -134
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/domain.json +0 -50
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card-product.json +0 -87
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card.json +0 -130
- package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +0 -1418
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +0 -24
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/docs-survey.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +0 -23
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/custom-field.json +0 -82
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member-about.json +0 -77
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +0 -205
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/domain.json +0 -46
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan-order.json +0 -137
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan.json +0 -133
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/docs-survey.json +0 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/domain.json +0 -36
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/amazon-shop-connect.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/ebay-shop-connect.json +0 -67
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/google-youtube-connect.json +0 -72
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/meta-catalog-connect.json +0 -74
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/pinterest-catalog-connect.json +0 -69
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/tiktok-catalog-connect.json +0 -61
- package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/docs-survey.json +0 -109
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/domain.json +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/item-seo-tags.json +0 -148
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/seo-pattern.json +0 -91
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/site-seo-tags.json +0 -79
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/docs-survey.json +0 -32
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/domain.json +0 -49
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/entities/business-contact.json +0 -103
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/docs-survey.json +0 -203
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +0 -42
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/back-in-stock-request.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/brand.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +0 -81
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +0 -241
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +0 -118
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-customization.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +0 -79
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +0 -221
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/promotion.json +0 -84
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/review.json +0 -178
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/subscription-product.json +0 -87
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/docs-survey.json +0 -106
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/domain.json +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/manual-tax-mapping.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-group.json +0 -94
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-region.json +0 -113
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-settings.json +0 -65
- package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-author-attribution.js +0 -165
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-client.js +0 -60
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-duplicates.js +0 -201
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-ledger.js +0 -306
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-report.js +0 -229
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-stage.js +0 -55
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build.js +0 -715
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-media.js +0 -567
- package/skills/wix-replatform/resources/rp-target-wix/lib/bulk-results.js +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-extended-fields.js +0 -194
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-import.js +0 -133
- package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +0 -150
- package/skills/wix-replatform/resources/rp-target-wix/lib/coupon-redemption-drift.js +0 -491
- package/skills/wix-replatform/resources/rp-target-wix/lib/customer-member.js +0 -104
- package/skills/wix-replatform/resources/rp-target-wix/lib/data-extension-schema.js +0 -673
- package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +0 -835
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-balance-reconciliation.js +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-build.js +0 -566
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-redemption-build.js +0 -249
- package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +0 -260
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-applied-discount-build.js +0 -63
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-buyer.js +0 -187
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-channel-build.js +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-history.js +0 -1027
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-invoice-contract.js +0 -90
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-payment-mapping.js +0 -420
- package/skills/wix-replatform/resources/rp-target-wix/lib/pricing-plan-definition.js +0 -177
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-import.js +0 -151
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-seo.js +0 -723
- package/skills/wix-replatform/resources/rp-target-wix/lib/seo-redirects.js +0 -353
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-build.js +0 -1437
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-option-stage.js +0 -354
- package/skills/wix-replatform/resources/rp-target-wix/lib/store-config-build.js +0 -134
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-category-attach.js +0 -221
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-inventory.js +0 -248
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +0 -321
- package/skills/wix-replatform/resources/rp-target-wix/lib/tax-build.js +0 -231
- package/skills/wix-replatform/resources/rp-target-wix/lib/url-mapper-transport.js +0 -28
- package/skills/wix-replatform/resources/rp-target-wix/lib/value-utils.js +0 -14
- package/skills/wix-replatform/resources/rp-target-wix/lib/variant-correlation.js +0 -34
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +0 -388
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +0 -255
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +0 -6041
- package/skills/wix-replatform/resources/rp-target-wix/lib/write-verification.js +0 -3
- package/skills/wix-replatform/resources/rp-target-wix/scripts/docs-survey-sync.js +0 -150
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +0 -69
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +0 -100
- package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +0 -112
- package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +0 -484
- package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +0 -318
- package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +0 -2831
- package/skills/wix-replatform/resources/rp-telemetry/lib/transcript-digest.js +0 -318
- package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +0 -83
- package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +0 -243
- package/skills/wix-replatform/resources/rp-website-continuation/SKILL.md +0 -94
- package/skills/wix-replatform/scripts/artifact-freshness.js +0 -76
- package/skills/wix-replatform/scripts/census-reconciliation.js +0 -25
- package/skills/wix-replatform/scripts/cms-fallback.js +0 -89
- package/skills/wix-replatform/scripts/discovered-census.js +0 -26
- package/skills/wix-replatform/scripts/discovered-set-status.js +0 -33
- package/skills/wix-replatform/scripts/entity-qa-attestation.js +0 -130
- package/skills/wix-replatform/scripts/execution-health-check.js +0 -415
- package/skills/wix-replatform/scripts/execution-manifest-validate.js +0 -43
- package/skills/wix-replatform/scripts/execution-state-prepare.js +0 -128
- package/skills/wix-replatform/scripts/expectations-ledger.js +0 -44
- package/skills/wix-replatform/scripts/import-contract-verify.js +0 -183
- package/skills/wix-replatform/scripts/internal-link-audit.js +0 -90
- package/skills/wix-replatform/scripts/item-seo-tags-verify.js +0 -205
- package/skills/wix-replatform/scripts/migration-completion.js +0 -76
- package/skills/wix-replatform/scripts/orchestration-preflight.js +0 -67
- package/skills/wix-replatform/scripts/orchestration-route.js +0 -77
- package/skills/wix-replatform/scripts/orchestration-state.js +0 -381
- package/skills/wix-replatform/scripts/read-back-gate.js +0 -175
- package/skills/wix-replatform/scripts/replatform-console.js +0 -146
- package/skills/wix-replatform/scripts/replatform.js +0 -436
- package/skills/wix-replatform/scripts/source-secrets.js +0 -77
- package/skills/wix-replatform/scripts/url-redirects.js +0 -286
- package/skills/wix-replatform/scripts/user-action.js +0 -58
- package/skills/wix-replatform/scripts/website-handoff-generate.js +0 -64
- package/skills/wix-replatform/scripts/wix-dashboard-url.js +0 -54
- package/skills/wix-replatform/scripts/wix-destination.js +0 -143
- package/skills/wix-replatform/scripts/wix-headless-scaffold.js +0 -762
- package/skills/wix-vibe-headless/SKILL.md +0 -183
- package/skills/wix-vibe-headless/install/deploy.cjs +0 -221
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +0 -35
- package/skills/wix-vibe-headless/platforms/README.md +0 -26
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed-with-install.md +0 -127
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +0 -121
- package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +0 -87
- package/skills/wix-vibe-headless/platforms/base44.md +0 -148
- package/skills/wix-vibe-headless/platforms/generic.md +0 -132
- package/skills/wix-vibe-headless/references/_shared/nav/nav.tanstack.js +0 -30
- package/skills/wix-vibe-headless/references/_shared/routing.md +0 -86
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +0 -270
- package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +0 -43
- package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +0 -25
- package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +0 -35
- package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +0 -38
- package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +0 -40
- package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +0 -54
- package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +0 -65
- package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +0 -50
- package/skills/wix-vibe-headless/references/blog/app/rest/wix-blog.js +0 -217
- package/skills/wix-vibe-headless/references/blog/seed/SEED.md +0 -99
- package/skills/wix-vibe-headless/references/blog/seed/seed-blog.cjs +0 -269
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +0 -342
- package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +0 -65
- package/skills/wix-vibe-headless/references/bookings/app/components/RentalDurationPicker.jsx +0 -67
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +0 -47
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +0 -13
- package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +0 -126
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useRentalDuration.js +0 -128
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +0 -110
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +0 -58
- package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +0 -95
- package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +0 -94
- package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +0 -89
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-checkout.js +0 -148
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-rentals.js +0 -250
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-services.js +0 -300
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +0 -154
- package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.cjs +0 -333
- package/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.cjs +0 -267
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +0 -178
- package/skills/wix-vibe-headless/references/cms/app/collection.config.js +0 -31
- package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +0 -18
- package/skills/wix-vibe-headless/references/cms/app/rest/wix-cms.js +0 -231
- package/skills/wix-vibe-headless/references/cms/seed/SEED.md +0 -145
- package/skills/wix-vibe-headless/references/donations/INSTRUCTIONS.md +0 -88
- package/skills/wix-vibe-headless/references/donations/app/rest/wix-donations.js +0 -112
- package/skills/wix-vibe-headless/references/donations/seed/SEED.md +0 -11
- package/skills/wix-vibe-headless/references/donations/tests/donations.test.mjs +0 -258
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +0 -267
- package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +0 -23
- package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +0 -43
- package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +0 -13
- package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +0 -29
- package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +0 -57
- package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +0 -78
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +0 -27
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +0 -54
- package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +0 -40
- package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +0 -81
- package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +0 -48
- package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +0 -36
- package/skills/wix-vibe-headless/references/events/app/rest/wix-events-browse.js +0 -136
- package/skills/wix-vibe-headless/references/events/app/rest/wix-events-registration.js +0 -187
- package/skills/wix-vibe-headless/references/events/seed/SEED.md +0 -103
- package/skills/wix-vibe-headless/references/events/seed/seed-events.cjs +0 -251
- package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +0 -487
- package/skills/wix-vibe-headless/references/forms/app/hooks/useWixForm.js +0 -425
- package/skills/wix-vibe-headless/references/forms/app/lib/wix-form-schema-utils.js +0 -187
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms-submissions.js +0 -238
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms.js +0 -108
- package/skills/wix-vibe-headless/references/forms/seed/SEED.md +0 -1836
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +0 -328
- package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +0 -101
- package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +0 -33
- package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +0 -21
- package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +0 -29
- package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +0 -54
- package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +0 -77
- package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +0 -36
- package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +0 -32
- package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +0 -35
- package/skills/wix-vibe-headless/references/members/app/rest/wix-members-auth.js +0 -390
- package/skills/wix-vibe-headless/references/members/install/Register.jsx +0 -22
- package/skills/wix-vibe-headless/references/members/seed/SEED.md +0 -21
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +0 -270
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +0 -31
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +0 -39
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +0 -29
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +0 -35
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +0 -27
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +0 -25
- package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +0 -39
- package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +0 -27
- package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +0 -60
- package/skills/wix-vibe-headless/references/portfolio/app/rest/wix-portfolio.js +0 -223
- package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +0 -90
- package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.cjs +0 -236
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +0 -280
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +0 -35
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +0 -48
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +0 -16
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +0 -35
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +0 -25
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +0 -28
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +0 -30
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +0 -30
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +0 -53
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +0 -28
- package/skills/wix-vibe-headless/references/pricing-plans/app/rest/wix-pricing-plans.js +0 -157
- package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +0 -82
- package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.cjs +0 -251
- package/skills/wix-vibe-headless/references/rentals/INSTRUCTIONS.md +0 -13
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +0 -290
- package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +0 -81
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +0 -71
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +0 -43
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +0 -21
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +0 -72
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +0 -66
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +0 -32
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +0 -73
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +0 -28
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +0 -102
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-menu.js +0 -224
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +0 -218
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-reservations.js +0 -107
- package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +0 -176
- package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.cjs +0 -452
- package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +0 -56
- package/skills/wix-vibe-headless/references/shared/app/lib/nav.js +0 -9
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-client.js +0 -185
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +0 -8
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +0 -471
- package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +0 -20
- package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +0 -167
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +0 -83
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductCard.js +0 -104
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +0 -163
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +0 -83
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useVariantOptions.js +0 -76
- package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +0 -64
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-cart.js +0 -176
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +0 -218
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +0 -174
- package/skills/wix-vibe-headless/references/storefront/seed/seed-store.cjs +0 -546
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# wix-replatform
|
|
2
|
-
|
|
3
|
-
`wix-replatform` is a migration skill for moving business data from another platform into
|
|
4
|
-
Wix.
|
|
5
|
-
|
|
6
|
-
Its public entrypoint is `wix-replatform`. The bundled internal resources handle the workflow
|
|
7
|
-
stages behind that entrypoint.
|
|
8
|
-
|
|
9
|
-
## Quick start
|
|
10
|
-
|
|
11
|
-
Install the skill:
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npx skills add wix/skills/skills/wix-replatform
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Or install it globally:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npx skills add wix/skills/skills/wix-replatform -g
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Then, in your agent:
|
|
24
|
-
|
|
25
|
-
1. Invoke `wix-replatform`.
|
|
26
|
-
2. If you want the migration to run end to end with grouped intake and no routine
|
|
27
|
-
checkpoint pauses, invoke it as `wix-replatform in 1-click mode`.
|
|
28
|
-
3. Provide the source site URL and any required destination/source-access details.
|
|
29
|
-
4. Follow the routed workflow through discovery, mapping, setup, code generation, and import.
|
|
30
|
-
5. Choose whether the run is backend-only (`management`) or backend + storefront
|
|
31
|
-
(`website`).
|
|
32
|
-
6. After setup discovery, the skill writes `website/handoff.json` even for backend-only
|
|
33
|
-
runs. In `website` mode it also asks for a late `websiteScope` decision so the
|
|
34
|
-
storefront skill can start with suggested scopes based on the discovered content. In
|
|
35
|
-
`1-click mode`, it picks the deterministic default instead of pausing.
|
|
36
|
-
7. If the delivery mode is `website`, continue into the frontend phase through the
|
|
37
|
-
migration project's `website/handoff.json` package.
|
|
38
|
-
|
|
39
|
-
If the user explicitly asks for `1-click mode`, the skill should gather any missing
|
|
40
|
-
required inputs up front once, record `automationMode=one_click` with `source: "user"`, record routine
|
|
41
|
-
mapping/execution approvals as `approved` with `decidedBy: "agent"`, create a demo
|
|
42
|
-
member for blog import when needed, and continue through the frontend phase as well when
|
|
43
|
-
`deliveryMode=management_and_website` (or user input `both`). `deliveryMode=website` is
|
|
44
|
-
frontend-only.
|
|
45
|
-
|
|
46
|
-
For CSV, explicit user-requested 1-click also accepts a passing sample preview as the agent
|
|
47
|
-
and continues without routine questions. Without that explicit user-authored decision, CSV
|
|
48
|
-
keeps its normal mapping review, sample-preview validation, and execution-plan approval
|
|
49
|
-
pauses. File upload alone never implies 1-click.
|
|
50
|
-
|
|
51
|
-
Migration artifacts are written to a local project directory such as `migrations/<project>/`.
|
|
52
|
-
They are not written back into the skill package.
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: wix-replatform
|
|
3
|
-
description: >-
|
|
4
|
-
Routes RePlatform source-to-Wix migrations to the next required workflow module by
|
|
5
|
-
inspecting authoritative migration artifacts. Use when starting, resuming, or recovering
|
|
6
|
-
a migration run.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# wix-replatform
|
|
10
|
-
|
|
11
|
-
`wix-replatform` is the compact supervisor for a resumable source-to-Wix migration. It
|
|
12
|
-
selects one internal module for the active stage; it does not carry every stage procedure
|
|
13
|
-
in its own context.
|
|
14
|
-
|
|
15
|
-
## Always-active contract
|
|
16
|
-
|
|
17
|
-
- Resolve the active project under `migrations/<project>/` (or `REPLATFORM_MIGRATIONS_DIR`)
|
|
18
|
-
before inspecting or creating anything. Only that project's artifacts are authoritative.
|
|
19
|
-
- Preserve `EXPECTATIONS.md` at that project root. It is the user's free-form record of
|
|
20
|
-
how they expected the run to behave; initialization creates it once and never overwrites it.
|
|
21
|
-
- Start/resume `resources/rp-telemetry/` at the beginning of every run and finalize it at
|
|
22
|
-
a terminal state. Never hand-write telemetry events.
|
|
23
|
-
- Use orchestration JSON plus validated stage artifacts as resume authority. Logs and chat
|
|
24
|
-
history are diagnostic context only.
|
|
25
|
-
- Preserve user data: write idempotently, dedupe by source identity, resume rather than
|
|
26
|
-
restart, and never create a second destination site for a migration.
|
|
27
|
-
- Never print secrets, secret-bearing config contents, tokens, or credentials. Report only
|
|
28
|
-
key names and present/blank/missing status.
|
|
29
|
-
- Do not declare a migration complete from prose or a single artifact. The deterministic
|
|
30
|
-
router and aggregate completion artifact own terminal completion.
|
|
31
|
-
|
|
32
|
-
## CLI-launched runs and human actions
|
|
33
|
-
|
|
34
|
-
When a migration is started through `replatform`, the terminal is deliberately
|
|
35
|
-
non-interactive: do not use an agent question UI, ask for stdin, or wait for a person in the
|
|
36
|
-
current agent turn. The runner owns process lifecycle and emits only observed events; it does
|
|
37
|
-
not replace this skill's router or completion receipts.
|
|
38
|
-
|
|
39
|
-
When a human choice, review, approval, or manual prerequisite is needed, create a durable
|
|
40
|
-
request with `node skills/wix-replatform/scripts/user-action.js create --project <projectDir>
|
|
41
|
-
--request-file <request.json>`, then end the turn. Put only reviewed artifact paths in the
|
|
42
|
-
request. The person can later use `replatform requests`, `replatform show`, and
|
|
43
|
-
`replatform answer`; a resumed agent reads the answered request from
|
|
44
|
-
`orchestration/user-actions/`, never from reconstructed chat context.
|
|
45
|
-
|
|
46
|
-
Cancellation is not completion. If the runner has recorded `cancel_requested`, `canceled`, or
|
|
47
|
-
`interrupted`, preserve partial/recovery artifacts and let a later explicit `replatform resume`
|
|
48
|
-
route recovery. Never create aggregate migration completion from an aborted execution report.
|
|
49
|
-
|
|
50
|
-
## Pipeline
|
|
51
|
-
|
|
52
|
-
```text
|
|
53
|
-
intake → destination → source inputs → preflight → (standard: discovery → mapping → codegen;
|
|
54
|
-
quick: adapter preflight → quick plan) → setup discovery → website handoff
|
|
55
|
-
→ safety review/approval → setup → import
|
|
56
|
-
→ storefront continuation (website only) → aggregate finalization
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Delivery modes are `management` (backend only), `website` (frontend only), and
|
|
60
|
-
`management_and_website` (the integrated flow above). Accept user input `both` as
|
|
61
|
-
`management_and_website` and persist the canonical value.
|
|
62
|
-
|
|
63
|
-
For `deliveryMode=management`, aggregate finalization requires valid backend import
|
|
64
|
-
accounting. For `deliveryMode=management_and_website`, it additionally requires a current
|
|
65
|
-
`website/completion.json` with completed screenshot review, no unresolved critical/high
|
|
66
|
-
gaps, and release evidence. `execution/completion-report.json` is backend accounting,
|
|
67
|
-
never website-migration completion by itself.
|
|
68
|
-
|
|
69
|
-
## Route before acting
|
|
70
|
-
|
|
71
|
-
On every new or resumed turn:
|
|
72
|
-
|
|
73
|
-
1. Resolve the project and initialize/load its orchestration artifacts.
|
|
74
|
-
2. Run `node skills/wix-replatform/scripts/orchestration-route.js <projectDir>`.
|
|
75
|
-
3. Dispatch the `nextResource` to a Developer subagent instead of loading and following it
|
|
76
|
-
yourself. Give it the project directory and the resource to run; it follows that
|
|
77
|
-
resource's contract exactly as written, unchanged. Read back only its result — never its
|
|
78
|
-
transcript, tool output, or logs.
|
|
79
|
-
- A Developer subagent may fan out to its own sub-subagents, only when it is certain
|
|
80
|
-
doing so is harmless — read-only work with no shared state and no write to anything
|
|
81
|
-
durable — and only if the host agent happens to support it. It must never fan out for
|
|
82
|
-
anything that writes shared state; that stays one write at a time, exactly as each
|
|
83
|
-
resource's own contract already does today. If the host agent doesn't support nested
|
|
84
|
-
dispatch, the Developer just does the work itself, sequentially.
|
|
85
|
-
4. Dispatch a QA subagent to check the Developer's result against that resource's own
|
|
86
|
-
stated required outputs (its own "artifacts to create or update" or "## Output"
|
|
87
|
-
section, and any review/gap documents it defines). QA is read-only — it never writes or
|
|
88
|
-
calls Wix. If something's missing, dispatch a new Developer for the same resource with
|
|
89
|
-
QA's findings; otherwise the stage is done.
|
|
90
|
-
5. At the end of each pipeline phase (discovery, mapping, setup discovery, import, and so
|
|
91
|
-
on — see the pipeline above; a phase spans several resource-level stages), dispatch a QA
|
|
92
|
-
subagent to review that phase's documents as a whole (for example
|
|
93
|
-
`mapping/review/mapping-summary.md` and `mapping-gaps.json`, or
|
|
94
|
-
`execution/completion-report.json`) before routing to the next phase. This catches
|
|
95
|
-
anything a single per-task check could miss. For the import phase specifically, this
|
|
96
|
-
review must be entity-by-entity against the accepted mapping plan, not a skim of the
|
|
97
|
-
top-level status string — see `rp-execute-import`'s "Entity-by-entity QA" section. Any
|
|
98
|
-
run-fixing dispatch mid-phase (a crash fix, a slowness fix, a resumed pass) does not
|
|
99
|
-
itself satisfy this; run the phase-level QA again once the fix lands, since fixing one
|
|
100
|
-
entity's defect certifies nothing about its neighbors.
|
|
101
|
-
6. Route again after every stage boundary. Never decide the next stage from memory.
|
|
102
|
-
|
|
103
|
-
The router (`lib/orchestration-router.js`) is the only routing and resume authority. It
|
|
104
|
-
recomputes the route from decisions, approvals, preflight, `run.json` `status` and the phase
|
|
105
|
-
outputs on every call; `run.json.currentState` is diagnostic only, never a routing input.
|
|
106
|
-
|
|
107
|
-
- A recorded rejection stops the route in every mode, one-click included:
|
|
108
|
-
`execution_approval_rejected` is `blocked` before any setup or import write, and
|
|
109
|
-
`mapping_approval_rejected` returns to `rp-mapper` for a new plan.
|
|
110
|
-
- A gated output that exists but is unusable (`source_schema_invalid`, `mapping_plan_invalid`,
|
|
111
|
-
`setup_plan_invalid`, `setup_requirements_invalid`, `execution_manifest_invalid`) is
|
|
112
|
-
`blocked` with `errors` and the producer as `nextResource`. Do not re-run the producer
|
|
113
|
-
automatically; report the errors to the Import Operator and stop.
|
|
114
|
-
- The import routes (`missing_completion_report`, `quick_mode_import_required`) carry
|
|
115
|
-
`importProgress`. `interrupted` lists `recoveryArtifacts`: resume that import, which
|
|
116
|
-
reconciles before any create. Never start a second import.
|
|
117
|
-
|
|
118
|
-
If an artifact is malformed, partial, stale, or fails its validator, treat its producing
|
|
119
|
-
stage as incomplete and route to the producer. Do not make parallel replacement artifacts.
|
|
120
|
-
|
|
121
|
-
A user action whose reviewed artifacts changed after it was created is refused with
|
|
122
|
-
`user_action_stale` and stays pending. Create a new request from the current artifacts.
|
|
123
|
-
|
|
124
|
-
**Catching up a finished migration is a rerun, not a new project.** When the user asks to pull
|
|
125
|
-
in records that arrived or changed since the import — "the source kept selling", "these orders
|
|
126
|
-
are missing", "re-run it" — reuse the same project, destination, mapping, generated importer
|
|
127
|
-
and crosswalk, and route to `rp-execute-import` → "Rerunning an import for new and modified
|
|
128
|
-
records". Do not scaffold a second project or re-approve an unchanged mapping; a
|
|
129
|
-
mapping or scope *change* does go back through the existing gates. A rerun's revision conflicts
|
|
130
|
-
are user decisions even in 1-click mode.
|
|
131
|
-
|
|
132
|
-
## Demand-loaded module map
|
|
133
|
-
|
|
134
|
-
| Router situation | Dispatch |
|
|
135
|
-
|---|---|
|
|
136
|
-
| project, delivery mode, source mode, or grouped intake is unresolved | `resources/rp-project-intake/` |
|
|
137
|
-
| destination is absent, conflicting, or needs creation/adoption | `resources/rp-destination/` |
|
|
138
|
-
| source URL/files/config/acquisition mode/credentials are required, including source credentials said to exist already on another site | `resources/rp-source-inputs/` |
|
|
139
|
-
| deterministic preflight is missing or blocked | `resources/rp-preflight/` |
|
|
140
|
-
| quick mode needs platform resolution, endpoint preflight, plan, extraction, or import | selected `resources/rp-quick-<platform>/` |
|
|
141
|
-
| source schema is missing | `resources/rp-discovery/` and its selected source adapter |
|
|
142
|
-
| mapping is missing or needs review | `resources/rp-mapper/` |
|
|
143
|
-
| Wix requirements are missing | `resources/rp-setup-discovery/` |
|
|
144
|
-
| import code/review is missing or stale | `resources/rp-import-codegen/` |
|
|
145
|
-
| setup verification is missing | `resources/rp-execute-setup/` |
|
|
146
|
-
| backend completion report is missing | `resources/rp-execute-import/` |
|
|
147
|
-
| frontend-only work, or integrated website handoff/build/gap loop/release receipt is incomplete | `resources/rp-website-continuation/` |
|
|
148
|
-
| aggregate completion is missing | `resources/rp-execution-policy/` |
|
|
149
|
-
|
|
150
|
-
The resource named by the route is the complete stage contract, dispatched as described in
|
|
151
|
-
"Route before acting" — the main session itself never loads it directly. Only the
|
|
152
|
-
dispatched Developer loads source-file, secret, scaffolding, or storefront procedures, and
|
|
153
|
-
only for the stage that actually needs them; nothing about a stage where they're irrelevant
|
|
154
|
-
is loaded, by the main session or the Developer.
|
|
155
|
-
|
|
156
|
-
## Interaction policy
|
|
157
|
-
|
|
158
|
-
Normal mode asks only for a missing required input, a genuinely ambiguous active project,
|
|
159
|
-
or a mandatory write approval. Ask one question at a time unless a module says otherwise.
|
|
160
|
-
|
|
161
|
-
When the user says `add to expectations: <note>` (or an unambiguous natural-language
|
|
162
|
-
equivalent), append the note to the active project's `EXPECTATIONS.md` before continuing.
|
|
163
|
-
Use `scripts/expectations-ledger.js` so the entry retains the supplied statement plus safe
|
|
164
|
-
current context (stage/state, relevant project-relative artifacts, and known entity/field
|
|
165
|
-
labels). Do not treat this as approval or silently change a mapping. Never record secrets,
|
|
166
|
-
tokens, raw customer data, or raw source records; redact them if supplied and say so.
|
|
167
|
-
|
|
168
|
-
Before writes, preserve the mandatory execution-plan approval gate. Read-only discovery,
|
|
169
|
-
mapping, setup verification, code generation, and review happen before it.
|
|
170
|
-
|
|
171
|
-
## Quick management import mode
|
|
172
|
-
|
|
173
|
-
When `managementImportMode=quick`, select the platform adapter only after the deterministic
|
|
174
|
-
source probe identifies a compatible platform. Quick mode is a bounded public-data import:
|
|
175
|
-
the adapter's versioned `quick-mode.json` owns its source routes, entity graph, field matrix,
|
|
176
|
-
and exclusions. Do not run agentic discovery, mapping, or project-specific code generation for
|
|
177
|
-
the quick backend branch. Still run destination setup, application installation, Catalog-V3 and
|
|
178
|
-
notification safety checks, execution approval, shared write runtime, crosswalks, and completion
|
|
179
|
-
accounting. If no adapter qualifies, persist the unsupported-mode result and ask the user to
|
|
180
|
-
select standard mode; never silently fall back.
|
|
181
|
-
|
|
182
|
-
Halt only for missing/invalid required input, a manual action with no API, or a systemic
|
|
183
|
-
failure/data-loss risk. A halt must persist the code, evidence, owner, and exact unblock
|
|
184
|
-
action; never silently stop.
|
|
185
|
-
|
|
186
|
-
## 1-click mode
|
|
187
|
-
|
|
188
|
-
When explicitly requested by the user, record `automationMode=one_click` with
|
|
189
|
-
`source=user` and apply the following. A missing mode or a `one_click` value recorded as
|
|
190
|
-
`deterministic_inference`/`prior_artifact` is normal interactive mode and must not skip a
|
|
191
|
-
checkpoint:
|
|
192
|
-
|
|
193
|
-
- collect all still-missing intake values in one grouped request; then do not pause for
|
|
194
|
-
routine approvals;
|
|
195
|
-
- record mapping and execution approvals as `approved`, `decidedBy=agent`; skipping a
|
|
196
|
-
pause without state is invalid;
|
|
197
|
-
- for CSV/file-only runs, validate and accept the required sample preview as the agent;
|
|
198
|
-
without explicit user-authored one-click, pause for the normal mapping review, sample
|
|
199
|
-
preview validation, and execution approval;
|
|
200
|
-
- default to a new isolated site unless an existing destination is explicitly supplied or
|
|
201
|
-
already pinned, but never default the new site's type (Headless, Studio or Harmony): ask it
|
|
202
|
-
in the grouped intake; choose website scope deterministically from discovered route families;
|
|
203
|
-
- retry PATH/tool-resolution failures under the operator's compatible interactive login shell;
|
|
204
|
-
request required browser/network sandbox escalation and retry before calling it blocked;
|
|
205
|
-
- retry the obvious recovery before stopping: aligned shell first for PATH/tool failures,
|
|
206
|
-
then the required escalation retry for sandboxed browser or network/API failures;
|
|
207
|
-
- continue through the complete selected deliverable. In `management_and_website` mode that includes
|
|
208
|
-
frontend build, post-build gap analysis, bounded fix loop, and release receipt; when the
|
|
209
|
-
user selected facelift at intake, it also includes the separate post-clone facelift review;
|
|
210
|
-
- before yielding, re-route. A 1-click run is only `completed` with
|
|
211
|
-
`completion/migration-completion.json`, or `blocked` with a typed durable blocker.
|
|
212
|
-
|
|
213
|
-
Use the operator's compatible local Node/Yarn shell when recovering from a PATH or tool
|
|
214
|
-
resolution failure. Machine-specific shell paths belong only in local, git-excluded agent
|
|
215
|
-
instructions.
|
|
216
|
-
|
|
217
|
-
**Repo-local interactive shell contract:** a PATH/tool-resolution failure on first attempt may
|
|
218
|
-
mean the command ran under a plain, non-interactive shell that never sourced the operator's
|
|
219
|
-
Node/Yarn profile. Resolve the operator's compatible login shell from the local environment or
|
|
220
|
-
git-excluded agent instructions, verify that it is executable, and retry the exact same command
|
|
221
|
-
through that shell in interactive login mode so the profile that resolves `node`/`yarn`/`npx`
|
|
222
|
-
loads. Do not hardcode a machine-specific shell path in this public skill. Only escalate to a
|
|
223
|
-
durable blocker if the compatible-shell retry itself fails.
|
|
224
|
-
|
|
225
|
-
## Guardrails
|
|
226
|
-
|
|
227
|
-
- Never bypass a validator, approval-state update, verified notification mute, or
|
|
228
|
-
Catalog-V3 gate to make a stage appear finished.
|
|
229
|
-
- `website` means frontend only; `management_and_website` means the integrated backend and
|
|
230
|
-
frontend migration. Never hand the integrated migration destination to the frontend skill
|
|
231
|
-
or create a second frontend site in that mode.
|
|
232
|
-
- A Studio or Harmony destination (`targetSiteType`) is created and verified by
|
|
233
|
-
`rp-destination`'s coordinator and is never published, unpublished or handed to
|
|
234
|
-
`wix-headless-replatform`; its website and publication remain operator handoff items.
|
|
235
|
-
- Do not implement a storefront manually when `wix-headless-replatform` is unavailable;
|
|
236
|
-
persist a blocker with the exact required runtime capability.
|
|
237
|
-
- In management mode, still generate `website/handoff.*` after setup discovery so a later
|
|
238
|
-
storefront can start without repeating backend discovery.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.account-check{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border:1px solid #cbdbe7;background:#f4f8fb;border-radius:9px;padding:14px;margin:16px 0}.account-heading{font-weight:700;margin:0 0 7px!important}.account-check code{display:block;max-width:500px;overflow-wrap:anywhere;color:#173f5f;font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace;margin:3px 0 7px}.account-check .muted code{display:inline;font:inherit}.account-check .error{display:block;margin:5px 0 0}.account-check button{flex:none}@media(max-width:520px){.account-check{flex-direction:column}.account-check button{width:100%}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{font-family:ui-sans-serif,system-ui,sans-serif;color:#18212b;background:#f6f8fa}*{box-sizing:border-box}body{margin:0}header{height:58px;background:#fff;border-bottom:1px solid #dce3e9;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.brand{font-weight:750;color:#152f48;text-decoration:none}.brand span{font-weight:400;color:#647487;margin-left:8px}#connection{font-size:12px;color:#647487}main{display:grid;grid-template-columns:230px minmax(0,1fr);height:calc(100vh - 58px)}aside{background:#fff;border-right:1px solid #dce3e9;padding:16px}aside button,#new-project{width:100%}h1{margin:0 0 6px;font-size:26px}h2{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#647487;margin:24px 0 8px}.project{width:100%;text-align:left;background:transparent;color:#263442;padding:10px;border:0;border-radius:8px;margin:2px 0}.project:hover,.project.active{background:#edf3f8}.project small{display:block;color:#647487;margin-top:3px}#content{padding:30px;max-width:1050px;width:100%;min-height:0;overflow:hidden}.empty{max-width:480px;margin:15vh auto}.status{display:flex;gap:12px;align-items:center;margin-bottom:22px;color:#5d6d7e}.pill{font-size:12px;border-radius:999px;padding:5px 9px;background:#e8eef4;color:#314a62;font-weight:700}.attention{background:#fff8e7;border:1px solid #ecd99e;border-radius:10px;padding:16px;margin:20px 0;display:flex;gap:16px;align-items:center}.attention p{margin:4px 0 0;color:#5e5131}.attention button{margin-left:auto}.grid{display:grid;grid-template-columns:1fr 280px;gap:24px}.card{background:#fff;border:1px solid #dce3e9;border-radius:11px;padding:18px}.card h3{font-size:14px;margin:0 0 12px}.work-card{margin:0 0 24px}.work-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.work-heading h3{margin-bottom:3px}.work-heading p{margin:0}.work-summary{font-size:13px;color:#314a62;font-weight:650}.task-list,.agent-list{list-style:none;padding:0;margin:14px 0 0}.task-row{border-top:1px solid #edf0f3;padding:12px 0}.task-main,.agent-row{display:flex;align-items:center;gap:9px}.task-main{align-items:flex-start}.task-title{font-weight:700}.task-completed{text-decoration:line-through;color:#68798b}.task-check{color:#257349;font-size:17px;font-weight:800;line-height:18px}.task-state-icon{color:#7d8b98;font-size:18px;line-height:17px}.spinner{width:16px;height:16px;border:2px solid #bdd0df;border-top-color:#23669e;border-radius:50%;display:inline-block;flex:0 0 auto;animation:spin .8s linear infinite}.spinner.small{width:12px;height:12px;border-width:2px}.agent-list{margin:9px 0 0 25px}.agent-row{font-size:13px;padding:4px 0}.agent-row.agent-child{margin-left:16px}.agent-row .muted{margin-left:auto}.agent-empty{margin:8px 0 0 25px}@keyframes spin{to{transform:rotate(360deg)}}.activity-card{height:calc(100vh - 340px);min-height:260px;display:flex;flex-direction:column;min-height:0}.activity-feed{overflow-y:auto;min-height:0;padding-right:4px}.event{padding:12px 0;border-bottom:1px solid #edf0f3;font-size:14px}.event summary{cursor:pointer}.event summary::marker{color:#647487}.event small{display:block;color:#68798b;margin-top:3px}.event pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f7f9;border-radius:7px;padding:10px;font-size:12px;line-height:1.4;color:#334759}.event.heartbeat{color:#788796}button{font:inherit;border:0;border-radius:8px;padding:9px 12px;font-weight:650;background:#e8eef4;color:#20384d;cursor:pointer}button.primary{background:#23669e;color:#fff}button.danger{color:#9b3030;background:#fff;border:1px solid #d99d9d}.actions{display:flex;gap:8px;flex-wrap:wrap}.muted{color:#68798b;font-size:13px}dialog{border:0;border-radius:12px;padding:0;max-width:720px;width:calc(100% - 32px);max-height:calc(100vh - 32px);overflow:hidden;box-shadow:0 20px 60px #0004}dialog::backdrop{background:#14233388}.dialog-body{padding:26px}.dialog-body h1{font-size:22px}.dialog-body p{line-height:1.5}.artifact{display:flex;justify-content:space-between;align-items:center;border:1px solid #dce3e9;padding:12px;border-radius:9px;margin:15px 0}.choice{display:block;border:1px solid #d4dee7;border-radius:9px;padding:12px;margin:9px 0}.choice small{display:block;margin:4px 0 0 24px;color:#68798b}.choice input{margin-right:8px}textarea,input,select{font:inherit;width:100%;padding:9px;border:1px solid #bdcbd7;border-radius:7px;margin:5px 0 12px}label{font-size:13px;font-weight:650;display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{min-width:0}.file-preview{max-height:min(58vh,560px);overflow:auto;white-space:pre;overflow-wrap:normal;background:#f4f7f9;border:1px solid #dce3e9;border-radius:7px;padding:12px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#334759}.footer{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.error{color:#9c3030;margin-top:12px}@media(max-width:720px){main{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 58px)}aside{border-right:0;border-bottom:1px solid #dce3e9}.grid{grid-template-columns:1fr}#content{padding:20px;overflow:visible}.activity-card{height:60vh}.file-preview{max-height:48vh}.form-grid{grid-template-columns:1fr}.attention{align-items:flex-start;flex-direction:column}.attention button{margin-left:0}.work-heading{flex-direction:column;gap:4px}}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
const token = new URLSearchParams(location.search).get('token');
|
|
2
|
-
const q = (s) => document.querySelector(s); let selected = null; let events = []; let stream;
|
|
3
|
-
const api = async (path, options = {}) => { const join = path.includes('?') ? '&' : '?'; const res = await fetch(`${path}${join}token=${encodeURIComponent(token)}`, { ...options, headers: { 'content-type': 'application/json', ...(options.headers || {}) } }); const data = await res.json(); if (!res.ok) throw new Error(data.error || 'Request failed'); return data; };
|
|
4
|
-
const esc = (value) => String(value ?? '').replace(/[&<>"]/g, (c) => ({ '&':'&','<':'<','>':'>','"':'"' }[c]));
|
|
5
|
-
function routeState() { const params = new URLSearchParams(location.search); return { project: params.get('project'), request: params.get('request'), artifact: params.get('artifact'), cursor: params.get('cursor') }; }
|
|
6
|
-
function updateRoute(values) { const url = new URL(location.href); for (const [key, value] of Object.entries(values)) { if (value === null || value === undefined || value === '') url.searchParams.delete(key); else url.searchParams.set(key, value); } history.replaceState(null, '', `${url.pathname}?${url.searchParams.toString()}${url.hash}`); }
|
|
7
|
-
function statusName(s) { if (/_running$/.test(s || '')) return 'Ready to continue'; return ({ running:'Running', waiting_for_user:'Waiting for you', awaiting_user_action:'Waiting for you', blocked:'Blocked', canceled:'Canceled', interrupted:'Interrupted', timed_out:'Timed out', completed:'Completed', failed:'Failed' })[s] || 'Ready to start'; }
|
|
8
|
-
function readable(value) { return String(value || '').replaceAll('_', ' ').replace(/\b\w/g, (c) => c.toUpperCase()); }
|
|
9
|
-
function structuredArtifact(file) {
|
|
10
|
-
const structured = /(?:application\/(?:json|x-ndjson)|(?:json|jsonl|ndjson))/.test(`${file.mediaType} ${file.path}`.toLowerCase());
|
|
11
|
-
if (!structured) return null;
|
|
12
|
-
try {
|
|
13
|
-
const isLines = /(?:jsonl|ndjson)/.test(`${file.mediaType} ${file.path}`.toLowerCase());
|
|
14
|
-
return isLines ? file.content.split('\n').filter(Boolean).map((line) => JSON.parse(line)) : JSON.parse(file.content);
|
|
15
|
-
} catch { return null; }
|
|
16
|
-
}
|
|
17
|
-
function jsonMarkup(value) {
|
|
18
|
-
const raw = JSON.stringify(value, null, 2);
|
|
19
|
-
return raw.replace(/("(?:\\.|[^"\\])*")(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g, (match, string, colon, literal) => {
|
|
20
|
-
const kind = string ? (colon ? 'json-key' : 'json-string') : literal ? 'json-literal' : 'json-number';
|
|
21
|
-
return `<span class="${kind}">${esc(string || literal || match)}</span>${colon || ''}`;
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
function fileLanguage(file) {
|
|
25
|
-
const source = `${file.mediaType || ''} ${file.path || ''}`.toLowerCase();
|
|
26
|
-
if (/(?:application\/(?:json|x-ndjson)|(?:json|jsonl|ndjson))/.test(source)) return 'json';
|
|
27
|
-
if (/(?:javascript|ecmascript|\.m?js\b|\.cjs\b)/.test(source)) return 'javascript';
|
|
28
|
-
if (/(?:typescript|\.tsx?\b)/.test(source)) return 'typescript';
|
|
29
|
-
if (/(?:text\/css|\.css\b)/.test(source)) return 'css';
|
|
30
|
-
if (/(?:text\/html|\.html?\b)/.test(source)) return 'html';
|
|
31
|
-
if (/(?:text\/markdown|\.md\b)/.test(source)) return 'markdown';
|
|
32
|
-
return 'text';
|
|
33
|
-
}
|
|
34
|
-
function codeMarkup(content, language) {
|
|
35
|
-
const escaped = esc(content);
|
|
36
|
-
if (language === 'json') return escaped;
|
|
37
|
-
if (language === 'html') return escaped.replace(/(<\/?)([A-Za-z][\w-]*)([^&]*?)(\/??>)/g, '$1<span class="syntax-tag">$2</span>$3$4');
|
|
38
|
-
if (language === 'markdown') return escaped.replace(/^(#{1,6}\s.*)$/gm, '<span class="syntax-heading">$1</span>').replace(/(`[^`]+`)/g, '<span class="syntax-code">$1</span>');
|
|
39
|
-
if (language === 'javascript' || language === 'typescript') return escaped.replace(/(\/\/[^\n]*|\/\*[\s\S]*?\*\/)/g, '<span class="syntax-comment">$1</span>').replace(/\b(const|let|var|function|async|await|return|if|else|for|while|class|new|import|from|export|throw|try|catch)\b/g, '<span class="syntax-keyword">$1</span>');
|
|
40
|
-
if (language === 'css') return escaped.replace(/(\/\*[\s\S]*?\*\/)/g, '<span class="syntax-comment">$1</span>').replace(/(^|\n)([^{}\n]+)(?=\s*\{)/g, '$1<span class="syntax-selector">$2</span>');
|
|
41
|
-
return escaped;
|
|
42
|
-
}
|
|
43
|
-
async function projects() { try { const data = await api('/api/projects'); q('#projects').innerHTML = data.projects.map((p) => `<button class="project ${p.project === selected ? 'active':''}" data-project="${esc(p.project)}">${esc(p.project)}<small>${esc(statusName(p.router?.state || p.activeRun?.status || p.orchestration?.status))}</small></button>`).join('') || '<p class="muted">No migration projects yet.</p>'; document.querySelectorAll('[data-project]').forEach((b) => b.onclick = () => openProject(b.dataset.project)); } catch (e) { q('#projects').textContent = e.message; } }
|
|
44
|
-
function eventMarkup(event) { return `<details class="event ${event.type === 'heartbeat' ? 'heartbeat':''}" data-event-id="${esc(event.eventId || '')}"><summary><strong>${esc(readable(event.type))}</strong><small>${esc(event.message || '')} · ${esc(event.timestamp ? new Date(event.timestamp).toLocaleString() : 'just now')}</small></summary><pre>${esc(JSON.stringify(event, null, 2))}</pre></details>`; }
|
|
45
|
-
function appendActivity(event) { const feed = q('.activity-feed'); if (!feed) return; feed.querySelector('.empty-activity')?.remove(); feed.insertAdjacentHTML('afterbegin', eventMarkup(event)); }
|
|
46
|
-
function taskIcon(state) { return state === 'running' ? '<span class="spinner" aria-hidden="true"></span>' : state === 'completed' ? '<span class="task-check" aria-hidden="true">✓</span>' : '<span class="task-state-icon" aria-hidden="true">•</span>'; }
|
|
47
|
-
function workMarkup(data) {
|
|
48
|
-
const tasks = data?.tasks || []; const agents = data?.agents || []; const runningTasks = tasks.filter((task) => task.state === 'running').length; const runningAgents = agents.filter((agent) => agent.state === 'running').length;
|
|
49
|
-
if (!tasks.length) return `<div class="work-heading"><div><h3>Work</h3><p class="muted">Persisted work state</p></div><p class="muted">No tasks recorded</p></div><p class="muted">Work details will appear after the supervisor records a route. Observed activity below is not treated as task state.</p>`;
|
|
50
|
-
const rows = tasks.map((task) => {
|
|
51
|
-
const assigned = agents.filter((agent) => agent.taskId === task.taskId); const active = assigned.filter((agent) => agent.state === 'running');
|
|
52
|
-
const agentRows = assigned.length ? `<ul class="agent-list">${assigned.map((agent) => `<li class="agent-row agent-${esc(agent.state)} ${agent.parentAgentId ? 'agent-child':''}">${agent.state === 'running' ? '<span class="spinner small" aria-hidden="true"></span>' : agent.state === 'completed' ? '<span class="task-check" aria-hidden="true">✓</span>' : '<span class="task-state-icon" aria-hidden="true">•</span>'}<span>${esc(agent.label)}</span><span class="muted">${esc(readable(agent.state))}</span></li>`).join('')}</ul>` : '<p class="agent-empty muted">No agent has been recorded for this task.</p>';
|
|
53
|
-
const topology = active.length && !active.some((agent) => agent.parentAgentId) ? '<p class="agent-empty muted">No additional agent detail reported.</p>' : '';
|
|
54
|
-
return `<li class="task-row task-${esc(task.state)}" data-task-id="${esc(task.taskId)}"><div class="task-main">${taskIcon(task.state)}<div><div class="task-title ${task.state === 'completed' ? 'task-completed':''}">${esc(task.title)}</div><div class="muted">${esc(readable(task.state))}${task.route?.reason ? ` · ${esc(readable(task.route.reason))}` : ''}</div></div></div>${agentRows}${topology}</li>`;
|
|
55
|
-
}).join('');
|
|
56
|
-
return `<div class="work-heading"><div><h3>Work</h3><p class="muted">Persisted work state</p></div><p class="work-summary">${runningTasks ? `${runningTasks} running task${runningTasks === 1 ? '' : 's'}` : 'No running tasks'} · ${runningAgents} active agent${runningAgents === 1 ? '' : 's'}</p></div><ul class="task-list">${rows}</ul>`;
|
|
57
|
-
}
|
|
58
|
-
function renderWork(tasks) { const panel = q('#work-panel'); if (panel) panel.innerHTML = workMarkup(tasks); }
|
|
59
|
-
function panelMarkup(status, requests) {
|
|
60
|
-
const state = status.activeRun?.status || status.latestResult?.outcome || status.orchestration?.status || 'ready'; const pending = requests.find((r) => r.status === 'pending');
|
|
61
|
-
const attention = pending ? `<div class="attention"><div><strong>${esc(pending.title)}</strong><p>${esc(pending.prompt)}</p></div><button class="primary" id="open-request">Review decision</button></div>` : '';
|
|
62
|
-
const rawState = status.router?.reason || status.latestResult?.nextAction || 'ready';
|
|
63
|
-
return { state, pending, attention, current: `<div class="card"><h3>Current state</h3><p>${esc(readable(rawState))}</p><p class="muted">Technical state: ${esc(rawState)}</p><div class="actions">${!status.activeRun && state !== 'completed' ? '<button class="primary" id="resume">Resume</button>' : ''}${status.activeRun ? '<button class="danger" id="cancel">Stop migration</button>' : ''}</div></div>`, requests: `<div class="card" style="margin-top:16px"><h3>Requests</h3><p class="muted">${requests.length} total · ${requests.filter((r)=>r.status==='pending').length} pending</p></div>` };
|
|
64
|
-
}
|
|
65
|
-
function bindPanels(pending) {
|
|
66
|
-
if (pending) q('#open-request').onclick = () => requestView(pending); if (q('#resume')) q('#resume').onclick = () => start(true); if (q('#cancel')) q('#cancel').onclick = cancelRun;
|
|
67
|
-
}
|
|
68
|
-
function renderDurablePanels(status, requests) {
|
|
69
|
-
const panel = panelMarkup(status, requests); const statusLine = q('#status-line'); if (!statusLine) return;
|
|
70
|
-
statusLine.innerHTML = `<span class="pill">${esc(statusName(panel.state))}</span><span>${status.eventStream?.lastEventAt ? `Last observed ${esc(new Date(status.eventStream.lastEventAt).toLocaleString())}` : 'No recent observation'}</span>`;
|
|
71
|
-
q('#attention-area').innerHTML = panel.attention; q('#current-state-card').innerHTML = panel.current; q('#requests-card').innerHTML = panel.requests; bindPanels(panel.pending);
|
|
72
|
-
}
|
|
73
|
-
function render(status, requests, tasks) {
|
|
74
|
-
const rows = events.slice(-200).reverse().map(eventMarkup).join('') || '<p class="muted empty-activity">No observed activity yet.</p>';
|
|
75
|
-
q('#content').innerHTML = `<h1>${esc(selected)}</h1><div class="status" id="status-line"></div><div id="attention-area"></div><section class="card work-card" id="work-panel">${workMarkup(tasks)}</section><div class="grid"><div class="card activity-card"><h3>Observed activity</h3><div class="activity-feed" aria-label="Observed migration activity">${rows}</div></div><div><div id="current-state-card"></div><div id="requests-card"></div></div></div>`;
|
|
76
|
-
renderDurablePanels(status, requests);
|
|
77
|
-
}
|
|
78
|
-
async function refreshTasks() { if (!selected) return null; const tasks = await api(`/api/tasks?project=${encodeURIComponent(selected)}`); renderWork(tasks); return tasks; }
|
|
79
|
-
async function refresh() { if (!selected) return null; const [status, requests, tasks] = await Promise.all([api(`/api/status?project=${encodeURIComponent(selected)}`), api(`/api/requests?project=${encodeURIComponent(selected)}`), api(`/api/tasks?project=${encodeURIComponent(selected)}`)]); render(status, requests, tasks); return { status, requests, tasks }; }
|
|
80
|
-
let durableRefreshTimer;
|
|
81
|
-
function scheduleDurableRefresh() { if (durableRefreshTimer || !selected) return; durableRefreshTimer = setTimeout(async () => { durableRefreshTimer = null; try { const [status, requests, tasks] = await Promise.all([api(`/api/status?project=${encodeURIComponent(selected)}`), api(`/api/requests?project=${encodeURIComponent(selected)}`), api(`/api/tasks?project=${encodeURIComponent(selected)}`)]); renderDurablePanels(status, requests); renderWork(tasks); projects().catch(() => {}); } catch {} }, 100); }
|
|
82
|
-
function connect() { stream?.close(); if (!selected) return; stream = new EventSource(`/api/events?project=${encodeURIComponent(selected)}&token=${encodeURIComponent(token)}`); stream.onopen = () => { q('#connection').textContent = 'Live'; scheduleDurableRefresh(); }; stream.onerror = () => q('#connection').textContent = 'Reconnecting…'; stream.addEventListener('migration', (message) => { const event = JSON.parse(message.data); if (events.some((x) => x.eventId && x.eventId === event.eventId)) return; events.push(event); appendActivity(event); scheduleDurableRefresh(); }); }
|
|
83
|
-
async function openProject(project, { updateUrl = true } = {}) { if (updateUrl) updateRoute({ project, request: null, artifact: null, cursor: null }); selected = project; events = []; await projects(); const state = await refresh(); connect(); return state; }
|
|
84
|
-
function cancelRun() { const d = modal(`<form class="dialog-body" id="cancel-form"><h1>Stop migration?</h1><p>This asks the supervisor to stop gracefully. Recovery artifacts are preserved, and you can resume later.</p><label>Reason<input id="cancel-reason" value="canceled by operator"></label><p class="error" id="cancel-error"></p><div class="footer"><button type="button" data-close>Keep running</button><button class="danger" type="submit">Stop migration</button></div></form>`); q('#cancel-form').onsubmit = async (event) => { event.preventDefault(); try { await api('/api/cancel', { method:'POST', body:JSON.stringify({ project:selected, reason:q('#cancel-reason').value }) }); d.close(); await refresh(); } catch (e) { q('#cancel-error').textContent = e.message; } }; }
|
|
85
|
-
function modal(html, { onClose = null } = {}) { const d = q('#dialog'); d.innerHTML = html; if (!d.open) d.showModal(); d.querySelector('[data-close]')?.addEventListener('click', () => d.close()); d.onclose = onClose; return d; }
|
|
86
|
-
async function showArtifact(item, cursor = 0, opener = null, { updateUrl = true } = {}) { const d = q('#file-dialog'); if (opener) d.returnFocus = opener; if (updateUrl) updateRoute({ artifact: item, cursor: String(cursor) }); try { const file = await api(`/api/show?project=${encodeURIComponent(selected)}&item=${encodeURIComponent(item)}&cursor=${cursor}`); const language = fileLanguage(file); const parsed = structuredArtifact(file); const content = parsed === null ? codeMarkup(file.content, language) : jsonMarkup(parsed); d.innerHTML = `<div class="dialog-body"><h1>${esc(file.path)}</h1><p class="muted">${esc(file.mediaType)} · showing ${file.emittedBytes} of ${file.totalBytes} bytes</p><pre class="file-preview language-${language}${parsed === null ? '' : ' structured-json'}" aria-label="${esc(file.path)} preview">${content}</pre><div class="footer">${file.nextCursor !== null ? '<button id="more">Show more</button>' : '<span></span>'}<button data-close>Close</button></div></div>`; if (!d.open) d.showModal(); d.querySelector('[data-close]').onclick = () => d.close(); d.onclose = () => { updateRoute({ artifact: null, cursor: null }); d.returnFocus?.focus(); d.returnFocus = null; }; if (file.nextCursor !== null) d.querySelector('#more').onclick = () => showArtifact(item, file.nextCursor); } catch (e) { alert(e.message); } }
|
|
87
|
-
async function loadWixAccount() {
|
|
88
|
-
const result = q('#wix-account-result'); const acknowledgement = q('#ack');
|
|
89
|
-
if (!result) return;
|
|
90
|
-
result.textContent = 'Checking the local Wix CLI account…';
|
|
91
|
-
try {
|
|
92
|
-
const account = await api('/api/account');
|
|
93
|
-
if (account.authState === 'authenticated' && account.identity) {
|
|
94
|
-
result.innerHTML = `<strong>Authenticated Wix CLI identity</strong><code>${esc(account.identity)}</code><span class="muted">Reported directly by <code>wix whoami</code>. Confirm that this account is authorized before continuing.</span>`;
|
|
95
|
-
acknowledgement?.removeAttribute('disabled');
|
|
96
|
-
} else result.innerHTML = `<strong>Wix CLI identity could not be confirmed</strong><span class="error">${esc(account.reason || 'Run wix login, then refresh this check.')}</span>`;
|
|
97
|
-
} catch (error) { result.innerHTML = `<strong>Wix CLI identity could not be confirmed</strong><span class="error">${esc(error.message)}</span>`; }
|
|
98
|
-
}
|
|
99
|
-
async function requestView(row, { updateUrl = true } = {}) {
|
|
100
|
-
const request = await api(`/api/show?project=${encodeURIComponent(selected)}&item=${encodeURIComponent(row.requestId)}`);
|
|
101
|
-
if (updateUrl) updateRoute({ project: selected, request: request.requestId, artifact: null, cursor: null });
|
|
102
|
-
const artifacts = request.artifactRefs.map((a) => `<div class="artifact"><span><strong>${esc(a.path)}</strong><br><span class="muted">${esc(a.mediaType)}</span></span><button data-artifact="${esc(a.path)}">Open</button></div>`).join('');
|
|
103
|
-
const operatorInstructions = request.operatorInstructions ? `<section class="operator-instructions"><p><strong>Open Terminal and run this:</strong></p><pre class="file-preview" aria-label="Terminal command">${esc(request.operatorInstructions.command)}</pre><button type="button" id="copy-terminal-command">Copy command</button><p class="muted">${esc(request.operatorInstructions.confirmation)}</p></section>` : '';
|
|
104
|
-
const destinationAccountCheck = request.kind === 'manual_action' && request.stage === 'destination'; let response = '';
|
|
105
|
-
if (request.response.mode === 'choice') response = `<fieldset><legend>Your decision</legend>${request.choices.map((c) => `<label class="choice"><input required type="radio" name="answer" value="${esc(c.id)}">${esc(c.label)}${c.description ? `<small>${esc(c.description)}</small>`:''}</label>`).join('')}</fieldset><label>Review note <span class="muted">(optional)</span><textarea id="answer-note" maxlength="10000" placeholder="Add context for this decision"></textarea></label>`;
|
|
106
|
-
else if (request.response.mode === 'text') response = '<label>Response<textarea id="answer" maxlength="10000" required></textarea></label>';
|
|
107
|
-
else response = destinationAccountCheck ? '<label>Confirmation<textarea id="ack-note" maxlength="10000" required placeholder="I confirm the CLI identity is authorized to create this destination."></textarea></label><p class="muted">Your confirmation will be recorded with the required acknowledgement.</p>' : '<label class="choice"><input type="checkbox" id="ack" required>I completed the required manual step.</label>';
|
|
108
|
-
const accountCheck = destinationAccountCheck ? '<section class="account-check" aria-live="polite"><div><p class="account-heading">Current Wix CLI account</p><div id="wix-account-result">Checking the local Wix CLI account…</div></div><button type="button" id="refresh-wix-account">Refresh</button></section>' : '';
|
|
109
|
-
const d = modal(`<form class="dialog-body" id="answer-form"><div class="pill">${esc(request.kind)}</div><h1>${esc(request.title)}</h1><p>${esc(request.prompt)}</p>${operatorInstructions}${accountCheck}${artifacts}${response}<p class="error" id="form-error"></p><div class="footer"><button type="button" data-close>Cancel</button><span><button type="submit" name="mode" value="save">Save answer only</button> <button class="primary" type="submit" name="mode" value="continue">Submit and resume</button></span></div></form>`, { onClose: () => updateRoute({ request: null, artifact: null, cursor: null }) });
|
|
110
|
-
d.querySelectorAll('[data-artifact]').forEach((b) => b.onclick = (event) => showArtifact(b.dataset.artifact, 0, event.currentTarget));
|
|
111
|
-
d.querySelector('#copy-terminal-command')?.addEventListener('click', async () => { try { await navigator.clipboard.writeText(request.operatorInstructions.command); d.querySelector('#copy-terminal-command').textContent = 'Copied'; } catch { d.querySelector('#copy-terminal-command').textContent = 'Copy unavailable'; } });
|
|
112
|
-
if (destinationAccountCheck) { q('#refresh-wix-account').onclick = loadWixAccount; loadWixAccount(); }
|
|
113
|
-
q('#answer-form').onsubmit = async (event) => { event.preventDefault(); const submit = event.submitter.value; const payload = { project:selected, requestId:request.requestId, continue:submit === 'continue' }; if (request.response.mode === 'choice') { payload.choice = new FormData(event.currentTarget).get('answer'); const note = q('#answer-note').value.trim(); if (note) payload.note = note; } else if (request.response.mode === 'text') payload.text = q('#answer').value; else if (destinationAccountCheck) { payload.acknowledged = true; payload.note = q('#ack-note').value.trim(); } else payload.acknowledged = q('#ack').checked; try { await api('/api/answer', { method:'POST', body:JSON.stringify(payload) }); d.close(); await refresh(); } catch (e) { q('#form-error').textContent = e.message; } };
|
|
114
|
-
}
|
|
115
|
-
function start(resume = false) { if (resume) return api('/api/run', {method:'POST',body:JSON.stringify({project:selected,resume:true})}).then(refresh).catch((e)=>alert(e.message)); const d = modal(`<form class="dialog-body" id="new-form"><h1>New migration</h1><div class="form-grid"><label>Project name<input name="project" required pattern="[A-Za-z0-9][A-Za-z0-9_-]{0,99}"></label><label>Source URL<input name="sourceUrl" type="url"></label><label>Source mode<select name="sourceMode"><option value="public_content">Public content</option><option value="authenticated_api">Authenticated API</option><option value="private_data">Private data</option><option value="files_only">Files only</option></select></label><label>Delivery mode<select name="deliveryMode"><option value="management">Management</option><option value="website">Website</option><option value="management_and_website">Management + website</option></select></label><label>Destination<input name="destination" placeholder="new or existing:site-id" value="new"></label><label>Agent<select name="agent"><option value="auto">Automatic</option><option value="codex">Codex</option><option value="claude">Claude</option></select></label><label>Import mode<select name="managementImportMode"><option value="standard">Standard</option><option value="quick">Quick</option></select></label></div><label>Files (optional)<input id="files" type="file" multiple></label><p class="error" id="new-error"></p><div class="footer"><button type="button" data-close>Cancel</button><button class="primary">Check and start migration</button></div></form>`); q('#new-form').onsubmit = async (e) => { e.preventDefault(); const data = Object.fromEntries(new FormData(e.currentTarget)); try { const doctor = await api(`/api/doctor?agent=${encodeURIComponent(data.agent)}`); if (!doctor.adapters.some((adapter) => adapter.ok)) throw new Error('No selected agent is ready. Complete the local authentication/prerequisite shown by replatform doctor, then retry.'); const files=[]; for (const file of q('#files').files) { const base64 = await new Promise((resolve,reject)=>{const r=new FileReader();r.onload=()=>resolve(String(r.result).split(',')[1]);r.onerror=reject;r.readAsDataURL(file);}); const result=await api('/api/upload',{method:'POST',body:JSON.stringify({project:data.project,name:file.name,contentBase64:base64})});files.push(result.name); } await api('/api/run',{method:'POST',body:JSON.stringify({project:data.project,options:{...data,files}})}); d.close(); await openProject(data.project); } catch (err) { q('#new-error').textContent=err.message; } }; }
|
|
116
|
-
async function restoreRoute() { const route = routeState(); if (!route.project) return; const state = await openProject(route.project, { updateUrl: false }); if (!route.request) return; const row = state?.requests.find((item) => item.requestId === route.request && item.status === 'pending'); if (!row) { updateRoute({ request: null, artifact: null, cursor: null }); return; } await requestView(row, { updateUrl: false }); if (route.artifact) await showArtifact(route.artifact, Number(route.cursor) || 0, null, { updateUrl: false }); }
|
|
117
|
-
q('#new-project').onclick = () => start(false); projects().then(restoreRoute).catch((error) => { q('#content').textContent = error.message; });
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>RePlatform console</title><link rel="stylesheet" href="/app.css"><link rel="stylesheet" href="/json.css"><link rel="stylesheet" href="/account.css"></head>
|
|
3
|
-
<body><header><a href="/" class="brand">RePlatform <span>Migration console</span></a><div id="connection">Choose a migration</div></header>
|
|
4
|
-
<main><aside><button id="new-project">New migration</button><h2>Migrations</h2><div id="projects" aria-live="polite"></div></aside><section id="content" aria-live="polite"><div class="empty"><h1>Choose a migration</h1><p>Open an existing project or start a new migration.</p></div></section></main><dialog id="dialog"></dialog><dialog id="file-dialog"></dialog><script src="/app.js"></script></body></html>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
.structured-json { color: #263947; }
|
|
2
|
-
.structured-json .json-key { color: #175f9f; }
|
|
3
|
-
.structured-json .json-string { color: #8b3d20; }
|
|
4
|
-
.structured-json .json-number { color: #7650a8; }
|
|
5
|
-
.structured-json .json-literal { color: #267052; font-weight: 650; }
|
|
6
|
-
.file-preview .syntax-comment { color: #647487; font-style: italic; }
|
|
7
|
-
.file-preview .syntax-keyword { color: #7650a8; font-weight: 650; }
|
|
8
|
-
.file-preview .syntax-tag { color: #175f9f; font-weight: 650; }
|
|
9
|
-
.file-preview .syntax-heading { color: #175f9f; font-weight: 700; }
|
|
10
|
-
.file-preview .syntax-code { color: #8b3d20; }
|
|
11
|
-
.file-preview .syntax-selector { color: #175f9f; font-weight: 650; }
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { spawn, spawnSync } = require('node:child_process');
|
|
4
|
-
|
|
5
|
-
const ADAPTERS = {
|
|
6
|
-
codex: {
|
|
7
|
-
executable: 'codex',
|
|
8
|
-
args(prompt) { return ['exec', '--json', prompt]; },
|
|
9
|
-
},
|
|
10
|
-
claude: {
|
|
11
|
-
executable: 'claude',
|
|
12
|
-
args(prompt) { return ['-p', '--output-format', 'stream-json', '--verbose', prompt]; },
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
function probe(id, { executablePath } = {}) {
|
|
17
|
-
const adapter = ADAPTERS[id];
|
|
18
|
-
if (!adapter) return { ok: false, id, reason: 'unknown_adapter' };
|
|
19
|
-
const executable = executablePath || adapter.executable;
|
|
20
|
-
const result = spawnSync(executable, ['--version'], { encoding: 'utf8', timeout: 5000 });
|
|
21
|
-
if (result.error) return { ok: false, id, executable, reason: result.error.code === 'ENOENT' ? 'not_installed' : 'probe_failed' };
|
|
22
|
-
if (result.status !== 0) return { ok: false, id, executable, reason: 'version_failed' };
|
|
23
|
-
return { ok: true, id, executable, version: `${result.stdout || result.stderr}`.trim(), capabilities: ['headless', 'events', 'session', 'cwd', 'cancel'] };
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function chooseAdapter(id = 'auto', options = {}) {
|
|
27
|
-
const ids = id === 'auto' ? ['codex', 'claude'] : [id];
|
|
28
|
-
const probes = ids.map((candidate) => probe(candidate, { executablePath: options.agentPath }));
|
|
29
|
-
const selected = probes.find((result) => result.ok);
|
|
30
|
-
return selected ? { ...selected, probes } : { ok: false, reason: id === 'auto' ? 'no_compatible_agent' : 'agent_unavailable', probes };
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function launch(id, { cwd, prompt, executablePath, onEvent, onWorker }) {
|
|
34
|
-
const adapter = ADAPTERS[id];
|
|
35
|
-
if (!adapter) throw new Error(`unknown adapter: ${id}`);
|
|
36
|
-
const child = spawn(executablePath || adapter.executable, adapter.args(prompt), {
|
|
37
|
-
cwd,
|
|
38
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
39
|
-
detached: process.platform !== 'win32',
|
|
40
|
-
});
|
|
41
|
-
let buffered = '';
|
|
42
|
-
child.stdout.on('data', (chunk) => {
|
|
43
|
-
buffered += chunk;
|
|
44
|
-
let newline;
|
|
45
|
-
while ((newline = buffered.indexOf('\n')) >= 0) {
|
|
46
|
-
const line = buffered.slice(0, newline);
|
|
47
|
-
buffered = buffered.slice(newline + 1);
|
|
48
|
-
if (!line.trim()) continue;
|
|
49
|
-
let raw;
|
|
50
|
-
try { raw = JSON.parse(line); } catch { raw = { text: line }; }
|
|
51
|
-
onEvent?.({ type: 'vendor_event', raw });
|
|
52
|
-
// Worker reporting is an explicit adapter capability. Do not infer workers from a
|
|
53
|
-
// vendor event unless a future adapter supplies this parser and its own schema.
|
|
54
|
-
if (typeof adapter.workerReport === 'function') {
|
|
55
|
-
const worker = adapter.workerReport(raw);
|
|
56
|
-
if (worker) onWorker?.(worker);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
child.stderr.on('data', (chunk) => onEvent?.({ type: 'vendor_stderr', message: String(chunk).trim() }));
|
|
61
|
-
return child;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function requestCancel(child) {
|
|
65
|
-
if (!child || child.exitCode !== null) return false;
|
|
66
|
-
if (process.platform !== 'win32' && child.pid) process.kill(-child.pid, 'SIGTERM');
|
|
67
|
-
else child.kill('SIGTERM');
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
module.exports = { ADAPTERS, probe, chooseAdapter, launch, requestCancel };
|