@salesforce/b2c-dx-mcp 3.2.1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/run.js +5 -9
- package/content/guidance/b2c/b2c-hooks/references/ORDER-HOOK-LIFECYCLE.md +1 -1
- package/content/guidance/b2c/b2c-onboarding/SKILL.md +4 -4
- package/content/guidance/b2c/b2c-ordering/SKILL.md +2 -2
- package/content/guidance/b2c/b2c-querying-data/SKILL.md +2 -2
- package/content/guidance/b2c/b2c-scapi-admin/SKILL.md +3 -3
- package/content/guidance/b2c/b2c-scapi-admin/references/CLIENT-EXAMPLES.md +4 -4
- package/content/guidance/b2c/b2c-scapi-shopper/SKILL.md +6 -6
- package/content/guidance/b2c/b2c-scapi-shopper/references/CLIENT-EXAMPLES.md +8 -9
- package/content/guidance/b2c-cli/b2c-cip/SKILL.md +3 -3
- package/content/guidance/b2c-cli/b2c-cip/references/SALES_ANALYSIS.md +1 -1
- package/content/guidance/b2c-cli/b2c-config/SKILL.md +54 -25
- package/content/guidance/b2c-cli/b2c-content/SKILL.md +1 -1
- package/content/guidance/b2c-cli/b2c-debug/SKILL.md +1 -1
- package/content/guidance/b2c-cli/b2c-docs/SKILL.md +23 -2
- package/content/guidance/b2c-cli/b2c-ecdn/SKILL.md +2 -0
- package/content/guidance/b2c-cli/b2c-ecdn/references/ADVANCED.md +1 -1
- package/content/guidance/b2c-cli/b2c-job/SKILL.md +9 -3
- package/content/guidance/b2c-cli/b2c-job/references/IMPORT.md +1 -1
- package/content/guidance/b2c-cli/b2c-job/references/RUN-AND-MONITOR.md +35 -6
- package/content/guidance/b2c-cli/b2c-metrics/SKILL.md +1 -1
- package/content/guidance/b2c-cli/b2c-mrt/SKILL.md +3 -3
- package/content/guidance/b2c-cli/b2c-scapi-custom/SKILL.md +1 -1
- package/content/guidance/b2c-cli/b2c-scapi-schemas/SKILL.md +6 -2
- package/content/guidance/b2c-cli/b2c-site-import-export/SKILL.md +1 -1
- package/content/guidance/b2c-cli/b2c-sites/SKILL.md +1 -1
- package/content/guidance/b2c-cli/b2c-slas/SKILL.md +1 -1
- package/content/guidance/b2c-ops/b2c-checkout-triage/SKILL.md +2 -2
- package/content/guidance/b2c-ops/b2c-edge-traffic-triage/SKILL.md +69 -0
- package/content/guidance/b2c-ops/b2c-job-health/SKILL.md +13 -8
- package/content/guidance/b2c-ops/b2c-order-failure-triage/SKILL.md +1 -1
- package/content/guidance/b2c-ops/b2c-order-failure-triage/references/order-evidence.md +2 -2
- package/content/guidance/b2c-ops/b2c-production-triage/SKILL.md +5 -4
- package/content/guidance/index.json +981 -259
- package/content/guidance/mcp/{cip → b2c-mcp-cip}/SKILL.md +10 -8
- package/content/guidance/mcp/{b2c-config → b2c-mcp-config}/SKILL.md +10 -9
- package/content/guidance/mcp/{debugger → b2c-mcp-debugger}/SKILL.md +9 -8
- package/content/guidance/mcp/b2c-mcp-scapi/SKILL.md +98 -0
- package/content/guidance/mcp/b2c-mcp-scapi/references/authentication.md +34 -0
- package/content/guidance/mcp/b2c-mcp-scapi/references/compose-verify.md +25 -0
- package/content/guidance/mcp/b2c-mcp-scapi/references/confirmation.md +30 -0
- package/content/guidance/mcp/b2c-mcp-scapi/references/discover.md +94 -0
- package/content/guidance/mcp/b2c-mcp-scapi/references/jobs.md +72 -0
- package/content/guidance/mcp/b2c-mcp-scapi/references/workflows.md +28 -0
- package/content/guidance/mcp/{server → b2c-mcp-server}/SKILL.md +52 -25
- package/content/guidance/storefront-next/sfnext-accessibility/SKILL.md +103 -0
- package/content/guidance/storefront-next/sfnext-accessibility/references/checklist.md +64 -0
- package/content/guidance/storefront-next/sfnext-analytics-consent/SKILL.md +91 -0
- package/content/guidance/storefront-next/sfnext-analytics-consent/references/CUSTOM-ADAPTER.md +49 -0
- package/content/guidance/storefront-next/sfnext-authentication/SKILL.md +86 -79
- package/content/guidance/storefront-next/sfnext-authentication/references/COOKIES.md +39 -0
- package/content/guidance/storefront-next/sfnext-authentication/references/LOGIN-FLOWS.md +59 -0
- package/content/guidance/storefront-next/sfnext-commerce-features/SKILL.md +67 -0
- package/content/guidance/storefront-next/sfnext-commerce-features/references/FEATURE-PREREQUISITES.md +37 -0
- package/content/guidance/storefront-next/sfnext-components/SKILL.md +98 -136
- package/content/guidance/storefront-next/sfnext-components/references/COMPONENT-AUTHORING.md +118 -0
- package/content/guidance/storefront-next/sfnext-components/references/SHAPE-TOKENS.md +51 -0
- package/content/guidance/storefront-next/sfnext-components/references/STORYBOOK.md +54 -0
- package/content/guidance/storefront-next/sfnext-components/references/TOKEN-SYSTEM.md +53 -0
- package/content/guidance/storefront-next/sfnext-components/references/TROUBLESHOOTING.md +19 -0
- package/content/guidance/storefront-next/sfnext-configuration/SKILL.md +116 -113
- package/content/guidance/storefront-next/sfnext-configuration/references/ENV-VARIABLES.md +55 -0
- package/content/guidance/storefront-next/sfnext-configuration/references/MULTI-SITE-URLS.md +137 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/SKILL.md +100 -150
- package/content/guidance/storefront-next/sfnext-data-fetching/references/ACTIONS.md +53 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/references/API-CLIENTS.md +34 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/references/LOADERS.md +73 -0
- package/content/guidance/storefront-next/sfnext-data-fetching/references/SCAPI-FETCHER.md +23 -77
- package/content/guidance/storefront-next/sfnext-deployment/SKILL.md +83 -97
- package/content/guidance/storefront-next/sfnext-deployment/references/MRT-DEPLOYMENT.md +37 -68
- package/content/guidance/storefront-next/sfnext-extensions/SKILL.md +73 -97
- package/content/guidance/storefront-next/sfnext-extensions/references/ACTION-HOOKS.md +57 -0
- package/content/guidance/storefront-next/sfnext-extensions/references/BASE-AUDIT.md +47 -44
- package/content/guidance/storefront-next/sfnext-extensions/references/CLI-AND-INSTALL.md +58 -0
- package/content/guidance/storefront-next/sfnext-extensions/references/EXTENSION-EXAMPLES.md +49 -86
- package/content/guidance/storefront-next/sfnext-hybrid-storefronts/SKILL.md +59 -114
- package/content/guidance/storefront-next/sfnext-hybrid-storefronts/references/HYBRID-PROXY-CONFIG.md +53 -90
- package/content/guidance/storefront-next/sfnext-i18n/SKILL.md +96 -131
- package/content/guidance/storefront-next/sfnext-i18n/references/locale-config.md +35 -0
- package/content/guidance/storefront-next/sfnext-overview/SKILL.md +101 -0
- package/content/guidance/storefront-next/sfnext-page-designer/SKILL.md +152 -131
- package/content/guidance/storefront-next/sfnext-page-designer/references/BUSINESS-MANAGER.md +46 -0
- package/content/guidance/storefront-next/sfnext-page-designer/references/COMPONENT-REGISTRY.md +86 -53
- package/content/guidance/storefront-next/sfnext-page-designer/references/DECORATOR-PATTERNS.md +119 -131
- package/content/guidance/storefront-next/sfnext-page-designer/references/REVIEW-CHECKLIST.md +83 -0
- package/content/guidance/storefront-next/sfnext-page-designer/references/TROUBLESHOOTING.md +35 -0
- package/content/guidance/storefront-next/sfnext-performance/SKILL.md +75 -105
- package/content/guidance/storefront-next/sfnext-performance/references/PERFORMANCE-REVIEW-CHECKLIST.md +85 -0
- package/content/guidance/storefront-next/sfnext-performance/references/SUSPENSE-AND-STREAMING.md +58 -0
- package/content/guidance/storefront-next/sfnext-project-setup/SKILL.md +103 -116
- package/content/guidance/storefront-next/sfnext-project-setup/references/PROJECT-STRUCTURE.md +61 -99
- package/content/guidance/storefront-next/sfnext-project-setup/references/SCRIPTS.md +47 -0
- package/content/guidance/storefront-next/sfnext-project-setup/references/SFNEXT-CLI.md +63 -0
- package/content/guidance/storefront-next/sfnext-quality-gates/SKILL.md +70 -0
- package/content/guidance/storefront-next/sfnext-quality-gates/references/lint-and-budgets.md +39 -0
- package/content/guidance/storefront-next/sfnext-revalidation/SKILL.md +121 -0
- package/content/guidance/storefront-next/sfnext-revalidation/references/POLICIES-AND-TAGS.md +55 -0
- package/content/guidance/storefront-next/sfnext-routing/SKILL.md +86 -143
- package/content/guidance/storefront-next/sfnext-routing/references/ROUTE-CONVENTIONS.md +51 -51
- package/content/guidance/storefront-next/sfnext-routing/references/URLS-AND-SEO-ROUTES.md +22 -0
- package/content/guidance/storefront-next/sfnext-scapi/SKILL.md +126 -0
- package/content/guidance/storefront-next/sfnext-scapi/references/WORKED-EXAMPLE.md +39 -0
- package/content/guidance/storefront-next/sfnext-security/SKILL.md +129 -0
- package/content/guidance/storefront-next/sfnext-security/references/COOKIE-DOMAIN.md +39 -0
- package/content/guidance/storefront-next/sfnext-security/references/TURNSTILE.md +43 -0
- package/content/guidance/storefront-next/sfnext-seo/SKILL.md +95 -0
- package/content/guidance/storefront-next/sfnext-seo/references/MULTI-DOMAIN-BASE-PATH.md +17 -0
- package/content/guidance/storefront-next/sfnext-seo/references/SEO-ROUTES.md +31 -0
- package/content/guidance/storefront-next/sfnext-state-management/SKILL.md +80 -89
- package/content/guidance/storefront-next/sfnext-state-management/references/PATTERNS.md +45 -0
- package/content/guidance/storefront-next/sfnext-testing/SKILL.md +105 -138
- package/content/guidance/storefront-next/sfnext-testing/references/E2E.md +38 -0
- package/content/guidance/storefront-next/sfnext-testing/references/STORYBOOK-PATTERNS.md +73 -94
- package/content/guidance/storefront-next/sfnext-testing/references/UNIT-AND-ROUTE-TESTS.md +60 -0
- package/content/guidance/storefront-next/sfnext-theming/SKILL.md +104 -0
- package/content/guidance/storefront-next/sfnext-theming/references/REBRAND-CHECKLIST.md +29 -0
- package/dist/commands/mcp.d.ts +8 -2
- package/dist/commands/mcp.js +54 -20
- package/dist/guidance.d.ts +4 -1
- package/dist/guidance.js +23 -5
- package/dist/registry.d.ts +2 -1
- package/dist/registry.js +3 -3
- package/dist/server.d.ts +10 -0
- package/dist/server.js +21 -0
- package/dist/skill-references.js +5 -5
- package/dist/tools/cartridges/index.js +1 -0
- package/dist/tools/cip/index.js +6 -3
- package/dist/tools/diagnostics/debug-capture-at-breakpoint.js +1 -1
- package/dist/tools/diagnostics/debug-set-breakpoints.js +1 -1
- package/dist/tools/diagnostics/debug-start-session.js +1 -1
- package/dist/tools/docs/docs-read.js +4 -2
- package/dist/tools/docs/docs-search.js +10 -8
- package/dist/tools/docs/topics.d.ts +5 -0
- package/dist/tools/docs/topics.js +5 -0
- package/dist/tools/scapi/index.d.ts +4 -1
- package/dist/tools/scapi/index.js +4 -2
- package/dist/tools/scapi/scapi-code.d.ts +2 -2
- package/dist/tools/scapi/scapi-code.js +106 -81
- package/dist/tools/scapi/scapi-schemas-list.js +93 -56
- package/dist/utils/types.d.ts +6 -0
- package/node_modules/@salesforce/b2c-agent-plugins/CHANGELOG.md +32 -0
- package/node_modules/@salesforce/b2c-agent-plugins/README.md +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/.codex-plugin/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-hooks/references/ORDER-HOOK-LIFECYCLE.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-onboarding/SKILL.md +4 -4
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-ordering/SKILL.md +2 -2
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-querying-data/SKILL.md +2 -2
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-admin/SKILL.md +3 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-admin/references/CLIENT-EXAMPLES.md +4 -4
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-shopper/SKILL.md +6 -6
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-shopper/references/CLIENT-EXAMPLES.md +8 -9
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/.codex-plugin/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-cip/SKILL.md +3 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-cip/references/SALES_ANALYSIS.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-config/SKILL.md +54 -25
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-content/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-debug/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-docs/SKILL.md +23 -2
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/SKILL.md +2 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/ADVANCED.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/SKILL.md +9 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/IMPORT.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/RUN-AND-MONITOR.md +35 -6
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-metrics/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/SKILL.md +3 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-scapi-custom/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-scapi-schemas/SKILL.md +6 -2
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-site-import-export/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-sites/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-slas/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/.codex-plugin/plugin.json +4 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/README.md +1 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/plugin.json +4 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-checkout-triage/SKILL.md +2 -2
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-edge-traffic-triage/SKILL.md +69 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-job-health/SKILL.md +13 -8
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-order-failure-triage/SKILL.md +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-order-failure-triage/references/order-evidence.md +2 -2
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-production-triage/SKILL.md +5 -4
- package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/README.md +4 -4
- package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/skills/figma-to-sfnext-pagedesigner/SKILL.md +76 -73
- package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/skills/figma-to-sfnext-pagedesigner/evals/trigger-evals.json +12 -10
- package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/skills/figma-to-sfnext-pagedesigner/references/PAGE-DESIGNER-SFN.md +49 -74
- package/node_modules/@salesforce/b2c-agent-plugins/package.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/.codex-plugin/plugin.json +9 -6
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/README.md +43 -22
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/plugin.json +9 -6
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-accessibility/SKILL.md +103 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-accessibility/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-accessibility/references/checklist.md +64 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-analytics-consent/SKILL.md +91 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-analytics-consent/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-analytics-consent/references/CUSTOM-ADAPTER.md +49 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/SKILL.md +86 -79
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/references/COOKIES.md +39 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/references/LOGIN-FLOWS.md +59 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-commerce-features/SKILL.md +67 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-commerce-features/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-commerce-features/references/FEATURE-PREREQUISITES.md +37 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/SKILL.md +98 -136
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/COMPONENT-AUTHORING.md +118 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/SHAPE-TOKENS.md +51 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/STORYBOOK.md +54 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/TOKEN-SYSTEM.md +53 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/TROUBLESHOOTING.md +19 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/SKILL.md +116 -113
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/references/ENV-VARIABLES.md +55 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/references/MULTI-SITE-URLS.md +137 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/SKILL.md +100 -150
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/ACTIONS.md +53 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/API-CLIENTS.md +34 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/LOADERS.md +73 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/SCAPI-FETCHER.md +23 -77
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-deployment/SKILL.md +83 -97
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-deployment/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-deployment/references/MRT-DEPLOYMENT.md +37 -68
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/SKILL.md +73 -97
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/ACTION-HOOKS.md +57 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/BASE-AUDIT.md +47 -44
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/CLI-AND-INSTALL.md +58 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/EXTENSION-EXAMPLES.md +49 -86
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-hybrid-storefronts/SKILL.md +59 -114
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-hybrid-storefronts/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-hybrid-storefronts/references/HYBRID-PROXY-CONFIG.md +53 -90
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-i18n/SKILL.md +96 -131
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-i18n/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-i18n/references/locale-config.md +35 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-overview/SKILL.md +101 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-overview/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/SKILL.md +152 -131
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/BUSINESS-MANAGER.md +46 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/COMPONENT-REGISTRY.md +86 -53
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/DECORATOR-PATTERNS.md +119 -131
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/REVIEW-CHECKLIST.md +83 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/TROUBLESHOOTING.md +35 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/SKILL.md +75 -105
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/references/PERFORMANCE-REVIEW-CHECKLIST.md +85 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/references/SUSPENSE-AND-STREAMING.md +58 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/SKILL.md +103 -116
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/PROJECT-STRUCTURE.md +61 -99
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/SCRIPTS.md +47 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/SFNEXT-CLI.md +63 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-quality-gates/SKILL.md +70 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-quality-gates/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-quality-gates/references/lint-and-budgets.md +39 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-revalidation/SKILL.md +121 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-revalidation/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-revalidation/references/POLICIES-AND-TAGS.md +55 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/SKILL.md +86 -143
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/references/ROUTE-CONVENTIONS.md +51 -51
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/references/URLS-AND-SEO-ROUTES.md +22 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi/SKILL.md +126 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi/references/WORKED-EXAMPLE.md +39 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/SKILL.md +129 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/references/COOKIE-DOMAIN.md +39 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/references/TURNSTILE.md +43 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/SKILL.md +95 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/references/MULTI-DOMAIN-BASE-PATH.md +17 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/references/SEO-ROUTES.md +31 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-state-management/SKILL.md +80 -89
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-state-management/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-state-management/references/PATTERNS.md +45 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/SKILL.md +105 -138
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/references/E2E.md +38 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/references/STORYBOOK-PATTERNS.md +73 -94
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/references/UNIT-AND-ROUTE-TESTS.md +60 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-theming/SKILL.md +104 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-theming/evals/trigger-evals.json +5 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-theming/references/REBRAND-CHECKLIST.md +29 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next-figma/skills/sfnext-create-figma-kit/SKILL.md +3 -3
- package/oclif.manifest.json +21 -4
- package/package.json +4 -4
- package/content/guidance/mcp/scapi/SKILL.md +0 -203
- package/content/guidance/mcp/scapi/references/jobs.md +0 -30
- package/content/guidance/storefront-next/sfnext-create-component/SKILL.md +0 -195
- package/content/guidance/storefront-next/sfnext-create-component/references/COMPONENT-AUTHORING.md +0 -206
- package/content/guidance/storefront-next/sfnext-create-component/references/PROJECT-STRUCTURE.md +0 -43
- package/content/guidance/storefront-next/sfnext-create-component/references/TOKEN-SYSTEM.md +0 -130
- package/content/guidance/storefront-next/sfnext-create-component/references/TROUBLESHOOTING.md +0 -34
- package/content/guidance/storefront-next/sfnext-create-vertical/SKILL.md +0 -135
- package/content/guidance/storefront-next/sfnext-create-vertical/references/COMPONENT-AUTHORING.md +0 -206
- package/content/guidance/storefront-next/sfnext-create-vertical/references/PROJECT-STRUCTURE.md +0 -43
- package/content/guidance/storefront-next/sfnext-create-vertical/references/TOKEN-SYSTEM.md +0 -130
- package/content/guidance/storefront-next/sfnext-create-vertical/references/TROUBLESHOOTING.md +0 -34
- package/content/guidance/storefront-next/sfnext-custom-apis/SKILL.md +0 -221
- package/content/guidance/storefront-next/sfnext-custom-apis/references/WORKFLOW-EXAMPLES.md +0 -294
- package/content/guidance/storefront-next/sfnext-data-fetching/references/LOADER-PATTERNS.md +0 -102
- package/content/guidance/storefront-next/sfnext-project-setup/references/ENV-VARIABLES.md +0 -82
- package/content/guidance/storefront-next/sfnext-scapi-management/SKILL.md +0 -203
- package/content/guidance/storefront-next/sfnext-scapi-management/references/CLI-COMMANDS.md +0 -122
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/SKILL.md +0 -195
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/evals/trigger-evals.json +0 -12
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/COMPONENT-AUTHORING.md +0 -206
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/PROJECT-STRUCTURE.md +0 -43
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/TOKEN-SYSTEM.md +0 -130
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/TROUBLESHOOTING.md +0 -34
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/SKILL.md +0 -135
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/evals/trigger-evals.json +0 -12
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/COMPONENT-AUTHORING.md +0 -206
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/PROJECT-STRUCTURE.md +0 -43
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/TOKEN-SYSTEM.md +0 -130
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/TROUBLESHOOTING.md +0 -34
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-custom-apis/SKILL.md +0 -221
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-custom-apis/evals/trigger-evals.json +0 -12
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-custom-apis/references/WORKFLOW-EXAMPLES.md +0 -294
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/LOADER-PATTERNS.md +0 -102
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/ENV-VARIABLES.md +0 -82
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi-management/SKILL.md +0 -203
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi-management/evals/trigger-evals.json +0 -12
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi-management/references/CLI-COMMANDS.md +0 -122
- /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/custom-apis.md +0 -0
- /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/custom-properties.md +0 -0
- /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/products.md +0 -0
- /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/promotions.md +0 -0
- /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/saving.md +0 -0
- /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/snippets.md +0 -0
- /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/tokens.md +0 -0
- /package/content/guidance/mcp/{server → b2c-mcp-server}/references/files.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: Discover and run CIP reports or analytics SQL for sales, merchandising, and technical operations
|
|
2
|
+
name: b2c-mcp-cip
|
|
3
|
+
description: Required before cip_query. Discover and run CIP reports or analytics SQL for sales, merchandising, and technical operations; resolve warehouse access, bound results, and interpret site/date scope.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# CIP analytics
|
|
@@ -8,7 +8,7 @@ description: Discover and run CIP reports or analytics SQL for sales, merchandis
|
|
|
8
8
|
Use CIP for warehouse analytics: sales, products, promotions, search, payments,
|
|
9
9
|
traffic, inventory, and API/controller trends. Use SCAPI for current records;
|
|
10
10
|
logs/metrics for immediate diagnosis.
|
|
11
|
-
Read this skill once through resources or `skills_read` (`mcp/cip`), then pass
|
|
11
|
+
Read this skill once through resources or `skills_read` (`mcp/b2c-mcp-cip`), then pass
|
|
12
12
|
`skillRead: true` to `cip_query`. Discovery needs no acknowledgment.
|
|
13
13
|
|
|
14
14
|
## Choose and discover
|
|
@@ -42,13 +42,13 @@ Reports & Dashboards data tracking enabled on supported 26.1+ environments.
|
|
|
42
42
|
No data or rejected access does not establish zero sales or a healthy system.
|
|
43
43
|
|
|
44
44
|
Missing values: `config_inspect` with masking; ask the user if the target cannot
|
|
45
|
-
be determined. [MCP configuration](skill://mcp/b2c-config/SKILL.md) explains resolution.
|
|
45
|
+
be determined. [MCP configuration](skill://mcp/b2c-mcp-config/SKILL.md) explains resolution.
|
|
46
46
|
For CLI equivalents, configuration, host selection, and availability caveats:
|
|
47
47
|
[existing CIP skill](skill://b2c-cli/b2c-cip/SKILL.md) (`skills_read` ID `b2c-cli/b2c-cip`)
|
|
48
|
-
and
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
and the analytics guide (`docs_read({query: "guide-analytics-reports-cip-ccac"})`,
|
|
49
|
+
[online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/analytics-reports-cip-ccac.md)), plus the CLI reference
|
|
50
|
+
(`cli-cip`, [online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/cli/cip.md)).
|
|
51
|
+
Read these conditionally, not as extra prerequisites.
|
|
52
52
|
Official [JDBC setup and limits](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/jdbc_access_guide.html).
|
|
53
53
|
|
|
54
54
|
## Query and interpret
|
|
@@ -84,3 +84,5 @@ Read further only for an unresolved question:
|
|
|
84
84
|
[starter queries](skill://b2c-cli/b2c-cip/references/STARTER_QUERIES.md), not the whole file.
|
|
85
85
|
Stop when the report and evidence answer the task; no follow-up skill read is required.
|
|
86
86
|
For incidents, correlate trends with logs and the relevant `b2c-ops` runbook.
|
|
87
|
+
|
|
88
|
+
Other MCP workflows and runbooks: [skill index](skill://mcp/b2c-mcp-server/SKILL.md#skill-index).
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: b2c-config
|
|
3
|
-
description: MCP configuration, authentication
|
|
2
|
+
name: b2c-mcp-config
|
|
3
|
+
description: Resolve B2C MCP configuration, authentication, and external access grants with masked inspection. Use for setup, credential, or wrong-target issues; routine config_inspect needs no skill read.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# MCP Configuration
|
|
7
7
|
|
|
8
|
-
For MCP installation
|
|
8
|
+
For MCP installation, tool selection, or other MCP workflows, see the
|
|
9
|
+
[server skill index](skill://mcp/b2c-mcp-server/SKILL.md#skill-index).
|
|
9
10
|
|
|
10
11
|
## Inspect resolved values
|
|
11
12
|
|
|
@@ -72,15 +73,15 @@ pages; follow returned `nextOffset` when the needed topic lies later in an artic
|
|
|
72
73
|
From the same project, `b2c setup inspect --json` uses the same resolver and
|
|
73
74
|
default masking. Match the environment, `--config`, and `--instance` selections
|
|
74
75
|
when comparing results. For CLI setup or configuration commands, consult
|
|
75
|
-
[b2c-cli/b2c-config](skill://b2c-cli/b2c-config/SKILL.md)
|
|
76
|
-
|
|
76
|
+
[b2c-cli/b2c-config](skill://b2c-cli/b2c-config/SKILL.md) or the shared
|
|
77
|
+
configuration documentation below.
|
|
77
78
|
For authentication specifically, `skills_read({id: "b2c-cli/b2c-config", section: "authentication"})`.
|
|
78
79
|
CLI browser-login instructions do not enable SCAPI Admin code-mode user auth.
|
|
79
80
|
|
|
80
81
|
## Further reading
|
|
81
82
|
|
|
82
|
-
Read only for the configuration issue at hand:
|
|
83
|
+
Read with `docs_read({query: ID})`, only for the configuration issue at hand:
|
|
83
84
|
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
85
|
+
- MCP configuration: `mcp-configuration` ([online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/configuration.md))
|
|
86
|
+
- Shared configuration and precedence: `guide-configuration` ([online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/configuration.md))
|
|
87
|
+
- Authentication setup: `guide-authentication` ([online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/authentication.md))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
2
|
+
name: b2c-mcp-debugger
|
|
3
|
+
description: Debug B2C Commerce server-side scripts with the MCP debugger tools, using bounded breakpoint capture, request triggering, state inspection, and reliable session cleanup.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# MCP Debugger Usage
|
|
@@ -54,18 +54,19 @@ next breakpoint or request completion. End sessions explicitly.
|
|
|
54
54
|
A timeout leaves the breakpoint armed. Check sessions for a late halt; end with
|
|
55
55
|
`clear_breakpoints: true` when finished. Do not leave an unbounded capture waiting.
|
|
56
56
|
- Configuration still unexplained after `config_inspect`: consult
|
|
57
|
-
[MCP configuration](skill://mcp/b2c-config/SKILL.md).
|
|
57
|
+
[MCP configuration](skill://mcp/b2c-mcp-config/SKILL.md).
|
|
58
58
|
- Missing BM permission/access key: `docs_read({query: "mcp-security"})` for debugger
|
|
59
59
|
requirements; `guide-authentication` for WebDAV key setup. For other setup issues,
|
|
60
60
|
`docs_search` with the specific error. If docs tools are unavailable, use
|
|
61
|
-
[debugger access](https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/security#debugger)
|
|
62
|
-
and [WebDAV key setup](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/authentication#webdav-access).
|
|
61
|
+
[debugger access](https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/security.md#debugger)
|
|
62
|
+
and [WebDAV key setup](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/authentication.md#webdav-access).
|
|
63
63
|
General WebDAV OAuth instructions do not apply to the debugger.
|
|
64
64
|
- Before repeating a failed request, check whether it already changed state.
|
|
65
65
|
|
|
66
66
|
## CLI or IDE, when requested
|
|
67
67
|
|
|
68
68
|
For terminal debugging use `b2c debug cli`; for a DAP client use `b2c debug`.
|
|
69
|
-
For those workflows, read [b2c-cli/b2c-debug](skill://b2c-cli/b2c-debug/SKILL.md)
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
For those workflows, read [b2c-cli/b2c-debug](skill://b2c-cli/b2c-debug/SKILL.md) or the
|
|
70
|
+
CLI debugger reference (`docs_read({query: "cli-debug"})`, [online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/cli/debug.md)).
|
|
71
|
+
|
|
72
|
+
Other MCP workflows and runbooks: [skill index](skill://mcp/b2c-mcp-server/SKILL.md#skill-index).
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: b2c-mcp-scapi
|
|
3
|
+
description: Required before scapi_search or scapi_execute. Discover standard and live custom SCAPI contracts, compose Admin and Shopper requests, and verify changes under configured authentication and Safety Mode.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SCAPI Code Mode
|
|
7
|
+
|
|
8
|
+
Dedicated tool first. Else `scapi_search` (find op) then `scapi_execute` (call it). Code = JS async arrow fn. No TypeScript, no imports.
|
|
9
|
+
Read this once, then pass `skillRead: true`. Reading does not authorize mutations.
|
|
10
|
+
Warehouse SQL/reports: `cip_*`, not here. Files: `webdav_*`. Local build/fs: terminal.
|
|
11
|
+
Operations or incidents (jobs, checkout, orders, eCDN traffic/bots): read the matching `b2c-ops` runbook from the [skill index](skill://mcp/b2c-mcp-server/SKILL.md#skill-index) first.
|
|
12
|
+
|
|
13
|
+
## `spec` shape (search and execute)
|
|
14
|
+
|
|
15
|
+
Only these exist. No `spec.schemas`, no `spec.operations`. Do not probe.
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
declare const spec: {
|
|
19
|
+
apis: Array<{id: string; apiFamily: string; apiName: string; apiVersion: string; status: string}>; // id: 'product/catalogs/v1'
|
|
20
|
+
paths: Record<string, Record<string, Operation>>; // fullPath -> lowercase method -> op
|
|
21
|
+
resolve(value: unknown, apiId: string): unknown; // expand local $ref
|
|
22
|
+
};
|
|
23
|
+
// fullPath = '/' + api id + path, e.g. '/product/catalogs/v1/organizations/{organizationId}/catalogs/{catalogId}'
|
|
24
|
+
interface Operation {
|
|
25
|
+
api: string;
|
|
26
|
+
operationId: string;
|
|
27
|
+
summary?: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
tags?: string[];
|
|
30
|
+
parameters: Array<{name: string; in: string; required?: boolean; schema?: unknown}>;
|
|
31
|
+
requestBody?: {required?: boolean; content: Record<string, {schema: any}>};
|
|
32
|
+
responses?: Record<string, unknown>;
|
|
33
|
+
security: Array<Record<string, string[]>>;
|
|
34
|
+
auth: {types: string[]; schemes: string[]; executable: boolean}; // executable = runtime support, not access
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`scapi_execute` also has (`async (input) => ...`, `input` = tool input):
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
declare const organizationId: string | undefined;
|
|
42
|
+
declare const siteId: string | undefined;
|
|
43
|
+
declare const scapi: {
|
|
44
|
+
request(o: {
|
|
45
|
+
method: string;
|
|
46
|
+
path: string;
|
|
47
|
+
query?: Record<string, unknown>;
|
|
48
|
+
body?: unknown;
|
|
49
|
+
}): Promise<{status: number; ok: boolean; data: any; diagnostic?: {code: string; message: string}}>;
|
|
50
|
+
};
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Rules
|
|
54
|
+
|
|
55
|
+
- Result cap 24 KB (`SCAPI_RESULT_TOO_LARGE`). Whole op = 6-20 KB. NEVER return `op` or `spec.paths` entries whole. List `{operationId, method, path, summary}`; then return only `parameters`/`requestBody` of ops you will call.
|
|
56
|
+
- Search prose too: `summary`, `description`, `tags`, not only operationId/path.
|
|
57
|
+
- `scapi_search` default `detail:"outline"` drops nested descriptions/examples. `detail:"full"` restores. Execute sees full.
|
|
58
|
+
- Default corpus = bundled standard. `schemas:"live"` = tenant (`c_*`, custom APIs, newer APIs); falls back to bundled with `warnings`. Tell user if `c_*`/custom APIs matter.
|
|
59
|
+
- `scapi.request` auths itself. Never fetch tokens first. Path `{organizationId}` auto-fills.
|
|
60
|
+
- Check `ok`/`status`. Writes: read back. Check before retry. Await every request.
|
|
61
|
+
- Limits: 20 calls, 4 parallel, 30 s. `fetch`/`WebSocket` disabled.
|
|
62
|
+
- Write needing approval pauses for client elicitation. Decline = whole run ends. Never fake approval.
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
// list candidates by prose
|
|
66
|
+
async () =>
|
|
67
|
+
Object.entries(spec.paths)
|
|
68
|
+
.flatMap(([path, methods]) =>
|
|
69
|
+
Object.entries(methods).map(([method, op]) => ({method, path, operationId: op.operationId, summary: op.summary})),
|
|
70
|
+
)
|
|
71
|
+
.filter((o) => /basket/i.test(o.summary ?? '') && /coupon|promotion/i.test(o.summary ?? ''));
|
|
72
|
+
|
|
73
|
+
// inspect only needed fields
|
|
74
|
+
async () => {
|
|
75
|
+
const op = spec.paths['/product/products/v1/organizations/{organizationId}/products/{productId}'].put;
|
|
76
|
+
const body = op.requestBody.content['application/json'].schema;
|
|
77
|
+
return {parameters: op.parameters, required: body.required, security: op.security, auth: op.auth};
|
|
78
|
+
};
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Authentication
|
|
82
|
+
|
|
83
|
+
- Admin `AmOAuth2`: Account Manager `clientId`/secret. Shopper `ShopperToken`: SLAS guest (`slasClientId`, needs `siteId`).
|
|
84
|
+
- Op's declared security picks credential. No auth option.
|
|
85
|
+
- Missing creds: `config_inspect`. 401/403: keep `status`/`data`/`diagnostic`. 403 alone != missing scope.
|
|
86
|
+
- Unsupported: registered-shopper-only ops, SLAS itself (`shopper/auth/v1`).
|
|
87
|
+
- Detail: [authentication](references/authentication.md).
|
|
88
|
+
|
|
89
|
+
## Read when needed (do not read all)
|
|
90
|
+
|
|
91
|
+
| Need | Read |
|
|
92
|
+
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
|
|
93
|
+
| Pick API for a task (jobs, code versions, sites, products, promotions); live/custom schemas; `c_*` fields; `expand` | [discover](references/discover.md) |
|
|
94
|
+
| Compose multi-call program, verify, paging, limits | [compose-verify](references/compose-verify.md) |
|
|
95
|
+
| Approval, cancel, `input_required` | [confirmation](references/confirmation.md) |
|
|
96
|
+
| Auth, scopes, token export | [authentication](references/authentication.md), [tokens](references/tokens.md) |
|
|
97
|
+
| Snippets (`codemode.search/describe/run`, `builtin/`, `user/`) | [workflows](references/workflows.md) |
|
|
98
|
+
| Custom API | [custom-apis](references/custom-apis.md) |
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# SCAPI authentication
|
|
2
|
+
|
|
3
|
+
- `scapi.request()` and snippets using it authenticate automatically. Do not acquire
|
|
4
|
+
or pass tokens first. For an explicitly requested token or external HTTP client,
|
|
5
|
+
use `auth.accountManager()` / `auth.slas()` in `scapi_execute`:
|
|
6
|
+
[token exports](tokens.md). These helpers are unavailable in search.
|
|
7
|
+
- The operation's declared security selects the credential; there is no auth option.
|
|
8
|
+
- Admin `AmOAuth2`: Account Manager credentials. Each request selects operation/tenant
|
|
9
|
+
scopes and reuses suitable cached tokens; no upfront scope union.
|
|
10
|
+
- Shopper `ShopperToken`: a SLAS guest shopper (`slasClientId`, plus `slasClientSecret`
|
|
11
|
+
for private clients; Storefront Next `.env` supplies both). Requests need `siteId`
|
|
12
|
+
(configured or `query.siteId`). The guest session is per site and persists across
|
|
13
|
+
executions for the server session, so baskets carry over. SLAS scopes are fixed on
|
|
14
|
+
the client, not requested per call; 401/403 diagnostics compare the token's scopes
|
|
15
|
+
with the operation's. `sfcc.shopper-standard` satisfies only operations that list it.
|
|
16
|
+
Public clients must allow redirect URI `http://localhost:3000/callback`.
|
|
17
|
+
- Missing credentials: `config_inspect` with masking. `clientId` is Admin;
|
|
18
|
+
`slasClientId` is Shopper. Configuration does not grant access.
|
|
19
|
+
- Scope rejection: grant reported scopes in Account Manager; check extra configured
|
|
20
|
+
scopes. Read/write alternatives are alternatives. Later failures do not undo writes.
|
|
21
|
+
- Unsupported: registered-shopper-only operations (`RegisteredShopperToken`),
|
|
22
|
+
trusted-system/agent on-behalf tokens, and SLAS itself (`shopper/auth/v1`).
|
|
23
|
+
`auth.slas({flow: 'registered', ...})` exports a registered token for external clients.
|
|
24
|
+
SLAS admin roles differ: `docs_read({query: "cli-slas"})` ([online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/cli/slas.md)).
|
|
25
|
+
- HTTP 401/403 retain `status`/`data` plus `diagnostic`; preserve these.
|
|
26
|
+
A 403 alone does not prove missing scopes.
|
|
27
|
+
|
|
28
|
+
For missing values or wrong targets, read [MCP configuration](skill://mcp/b2c-mcp-config/SKILL.md)
|
|
29
|
+
(`skills_read` ID `mcp/b2c-mcp-config`). For external client/role/tenant-filter setup,
|
|
30
|
+
use `docs_read({query: "guide-authentication"})`; official Admin authorization:
|
|
31
|
+
`commerce-api/authorization-for-admin-apis`, scope definitions: `commerce-api/auth-z-scope-catalog`.
|
|
32
|
+
For other access questions, search `docs_search` with the specific error and API.
|
|
33
|
+
If docs are unavailable, use the [authentication guide](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/authentication.md).
|
|
34
|
+
These are conditional setup references, not additional prerequisite reads.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Compose and verify
|
|
2
|
+
|
|
3
|
+
- Pass the execution `projectDirectory`; reuse resolved `organizationId`/`siteId`.
|
|
4
|
+
Encode path IDs. `{organizationId}` placeholders resolve automatically.
|
|
5
|
+
- Compose dependent calls with intermediate results and local helpers.
|
|
6
|
+
Pause for unresolved intent or contracts.
|
|
7
|
+
- Sequence dependent writes; batch independent reads at most four at a time.
|
|
8
|
+
Await all requests. Map rejections to `{id, error: String(error)}`;
|
|
9
|
+
raw `Promise.allSettled()` reasons lose Error details in JSON.
|
|
10
|
+
- PUT can create or update: check existence and intent; read back writes.
|
|
11
|
+
- Check `ok`/`status`: HTTP errors return; transport/auth/safety failures throw.
|
|
12
|
+
Preserve completed writes and failed stages. Check writes before retrying;
|
|
13
|
+
no program replay or automatic cleanup deletion.
|
|
14
|
+
- Filter/page at the API, then project/aggregate in code. Include IDs, verification
|
|
15
|
+
fields, errors, totals, and continuation inputs. Do not crop away missing data.
|
|
16
|
+
- Limits: 20 calls, four outstanding, 30 seconds of active execution, 24 KB returned.
|
|
17
|
+
Managed API/token calls are serialized within an execution. Narrow oversized
|
|
18
|
+
discovery; reduce live pages/projections.
|
|
19
|
+
- SDK safety applies per request, including POST searches. Use only authorized
|
|
20
|
+
targeted exceptions. Confirmation uses client elicitation; see below. Code mode does not
|
|
21
|
+
transfer binaries; use WebDAV tools for instance files, an external client for
|
|
22
|
+
binary SCAPI endpoints.
|
|
23
|
+
- `fetch` and `WebSocket` are disabled. Use `scapi.request()` inside programs;
|
|
24
|
+
direct HTTP belongs in an external client, outside MCP Safety Mode. Do not use
|
|
25
|
+
imports or other Node networking APIs to bypass this boundary.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Confirmation and cancellation
|
|
2
|
+
|
|
3
|
+
- A request requiring approval retains the running program and returns MCP
|
|
4
|
+
`input_required`. Let the client handle elicitation and the protocol retry;
|
|
5
|
+
never manufacture approval responses or modify opaque `requestState`.
|
|
6
|
+
- Retries validate the original code, input, and target arguments, then resume
|
|
7
|
+
the same execution. Repeated code is **not evaluated again**. Each request
|
|
8
|
+
needs its own approval; a whole program is not a transaction.
|
|
9
|
+
- Later managed calls wait for the pending decision. Earlier writes remain
|
|
10
|
+
applied. Prompts identify the organization, operation, method/path, and execution
|
|
11
|
+
ID. JSON previews are redacted and capped at five lines/400 characters; marked
|
|
12
|
+
truncation does not limit approval, which covers the full request.
|
|
13
|
+
Results include operation outcomes; `unknown` requires
|
|
14
|
+
checking the affected records before a fresh attempt.
|
|
15
|
+
- Decline/cancel terminates the entire execution, even if code catches errors.
|
|
16
|
+
Explicitly stop work with `scapi_execute({action: "cancel", executionId, skillRead: true})`;
|
|
17
|
+
omit code, input, project overrides, and protocol continuation state.
|
|
18
|
+
- Approval has no server deadline; waiting does not consume the active runtime
|
|
19
|
+
budget. At most four executions may be active per server, including pending
|
|
20
|
+
approvals. Cancel unwanted work to free a slot. Server shutdown or disconnect
|
|
21
|
+
releases retained workers; state does not survive a restart. Clients may impose
|
|
22
|
+
their own timeout. Duplicate responses never replay code or send a request twice.
|
|
23
|
+
- To change code/input/target, cancel unwanted retained work and start a fresh
|
|
24
|
+
execution without continuation state. Cancellation does not roll back writes.
|
|
25
|
+
Clients without form elicitation stop at confirmation-required requests.
|
|
26
|
+
|
|
27
|
+
For safety levels, rule matching, configuration precedence, and confirmation
|
|
28
|
+
semantics, read `docs_read({query: "guide-safety"})` when needed. If docs tools
|
|
29
|
+
are unavailable, use the [Safety Mode guide](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/safety.md).
|
|
30
|
+
This is an optional policy reference, not another prerequisite read.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# SCAPI discovery, result limits and tenant schemas
|
|
2
|
+
|
|
3
|
+
Every operation carries `summary`, `description` and `tags` (plus parameters, security and responses), so
|
|
4
|
+
search the prose as well as `operationId` and path. Descriptions are long: return `op.summary` when listing
|
|
5
|
+
candidates, and read `op.description` only for the operations you are about to call.
|
|
6
|
+
|
|
7
|
+
`scapi_search` returns each operation as an outline by default: its own `summary`, `description` and `tags`, with
|
|
8
|
+
parameters, schemas and responses but without nested descriptions or examples. Pass `detail: "full"` when you need
|
|
9
|
+
property-level descriptions or example payloads for the operations you are about to call (`scapi_execute` always
|
|
10
|
+
sees full operations). Results are capped at 24 KB of JSON for both tools (`SCAPI_RESULT_TOO_LARGE`). A whole resolved operation is
|
|
11
|
+
typically 6-20 KB and some exceed the cap alone, so never return `op` or `spec.paths` entries unprojected: list
|
|
12
|
+
`{operationId, method, path, summary}`, then return only `parameters` or `requestBody` for the operations you will call.
|
|
13
|
+
|
|
14
|
+
The `spec` object has exactly three members; there is no `spec.schemas` and no need to probe it:
|
|
15
|
+
|
|
16
|
+
- `spec.apis`: array of `{id, apiFamily, apiName, apiVersion, status, origin?}` (`id` is e.g. `product/catalogs/v1`).
|
|
17
|
+
- `spec.paths`: `{[fullPath]: {[method]: operation}}`, where `fullPath` starts with the API id (`/product/catalogs/v1/organizations/{organizationId}/catalogs/{catalogId}`) and methods are lowercase. Operations carry `operationId`, `api`, `summary`, `description`, `tags`, `parameters`, `requestBody`, `responses`, `security` and `auth`.
|
|
18
|
+
- `spec.resolve(value, apiId)`: expands local `$ref`s in a fragment.
|
|
19
|
+
|
|
20
|
+
## Discover
|
|
21
|
+
|
|
22
|
+
Discovery defaults to the bundled standard contracts offline; no credentials needed.
|
|
23
|
+
Pass `schemas: "live"` to search the configured tenant's Schemas API contracts
|
|
24
|
+
instead: tenant `c_*` properties, custom APIs, and APIs newer than the bundle.
|
|
25
|
+
Live search needs `sfcc.scapi-schemas`, uses the same project context as
|
|
26
|
+
`scapi_execute`, and caches per tenant for the server session (`refresh: true` refetches). Contracts that
|
|
27
|
+
failed to load are listed in `schemaFailures`. The result's `schemaSource` says which corpus was searched. If live
|
|
28
|
+
access fails (missing configuration, credentials or access), the search falls back to the bundled contracts,
|
|
29
|
+
reports `schemaSource: "bundled"` and explains why in `warnings`; tell the user when tenant `c_*` fields or custom
|
|
30
|
+
APIs matter, since the bundle has neither. Asking for a custom API (`custom/...`) never falls back. APIs with `origin: "local"` are
|
|
31
|
+
developer-supplied beta contracts (dw.json `scapi-schemas`, `SFCC_SCAPI_SCHEMAS` or `--scapi-schemas`). They replace the bundled and live versions in search and
|
|
32
|
+
execution. Schemas and responses can be huge.
|
|
33
|
+
Return only what the next decision needs:
|
|
34
|
+
|
|
35
|
+
1. Find APIs/operations through `spec.apis`/`spec.paths`; return method/path/operationId.
|
|
36
|
+
2. Narrow by `api` (a family, family/name or full id: `cdn`, `cdn/zones`, `cdn/zones/v1`), path, or `authType`; inspect required inputs and selected fields,
|
|
37
|
+
including `allOf` when present.
|
|
38
|
+
3. Inspect response fields only as needed; avoid whole operations/schema trees.
|
|
39
|
+
|
|
40
|
+
Local refs expand; recursive/deep refs retain `$ref`. `op.auth.executable` means
|
|
41
|
+
runtime support, not configured access; `op.security` gives scopes.
|
|
42
|
+
|
|
43
|
+
### Task map
|
|
44
|
+
|
|
45
|
+
Use these API IDs to narrow discovery; inspect the operation's inputs before calling.
|
|
46
|
+
Snippet names below have the `builtin/` prefix. Describe only the relevant snippet.
|
|
47
|
+
|
|
48
|
+
| Task | API / starting point |
|
|
49
|
+
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
50
|
+
| Review runs, including successes | `operation/jobs/v1`: `searchJobExecutions`; `job-execution-review` snippet |
|
|
51
|
+
| Inspect steps and exact log path | `operation/jobs/v1`: `getJobExecution`; `job-execution-inspect` snippet |
|
|
52
|
+
| Investigate failures with detail reads | `failed-job-triage` snippet; [jobs](jobs.md) |
|
|
53
|
+
| Start a job / stop an execution | `operation/jobs/v1`: `createJobExecution` / `deleteJobExecution`; confirm intent and active runs first; bodies for system jobs: [jobs](jobs.md#start-a-job) |
|
|
54
|
+
| Active/rollback versions, activation metadata | `dx/scripts/v1`: `getCodeVersions`; `code-version-inspect` snippet |
|
|
55
|
+
| Activate/create/delete a code version | `dx/scripts/v1`: `updateCodeVersion` / `createCodeVersion` / `deleteCodeVersion` |
|
|
56
|
+
| Site status, catalog, ordered cartridge path | `site/sites/v1`: `getSiteById`; `site-cartridge-inspect` snippet |
|
|
57
|
+
| Change a site's custom cartridge path | `site/sites/v1`: `replaceSiteCustomCartridges`; preserve order and unrelated entries |
|
|
58
|
+
| Basic product + optional category assignment | `create-product` snippet; [products](products.md) |
|
|
59
|
+
| Campaign assignments and promotion details | `campaign-promotions` snippet; [promotions](promotions.md) |
|
|
60
|
+
|
|
61
|
+
File content is WebDAV: `webdav_list` / `webdav_get` / `webdav_put`.
|
|
62
|
+
Deploy local cartridge files with `cartridge_deploy`. Job schedules/definitions
|
|
63
|
+
are not execution history; obtain expected schedules from Business Manager/user.
|
|
64
|
+
Do not fall back to a terminal merely because there is no dedicated job/site tool.
|
|
65
|
+
|
|
66
|
+
### Tenant custom properties and APIs
|
|
67
|
+
|
|
68
|
+
Bundled schemas omit tenant `c_*` definitions. Known custom fields can be sent
|
|
69
|
+
directly in standard Admin bodies; schema retrieval is optional. SCAPI validates
|
|
70
|
+
the payload. To discover tenant fields, search with `schemas: "live"` (narrow with
|
|
71
|
+
`api`), or fetch the live schema with `scapi_schemas_list`: `includeSchemas: true`,
|
|
72
|
+
`apiFamily`, `apiName`, `apiVersion`.
|
|
73
|
+
Custom-property expansion defaults to true; disable with `expandCustomProperties: false`.
|
|
74
|
+
`expandAll: true` returns the full contract (operation prose, examples, custom properties) instead of the
|
|
75
|
+
collapsed outline, which asks the Schemas API for only what it keeps. `include` selects Schemas API `expand`
|
|
76
|
+
sections directly (`summaries`, `descriptions`, `examples`, `external_docs`, `tags`, `titles`,
|
|
77
|
+
`custom_properties`, or `all`) when you want, say, only summaries. If live access fails, `scapi_schemas_list` returns
|
|
78
|
+
the bundled contract with `source: "bundled"` and a `warning`. Large contracts: fetch through `scapi_execute` and return only relevant
|
|
79
|
+
fields ([example](custom-properties.md)). Requires `sfcc.scapi-schemas`.
|
|
80
|
+
Use the same project/instance for schema lookup and writes.
|
|
81
|
+
|
|
82
|
+
Live contracts found by `schemas: "live"` search, expanded `scapi_schemas_list`
|
|
83
|
+
fetches, or Schemas API reads inside `scapi_execute` are cached for that tenant.
|
|
84
|
+
`scapi_execute` then routes to them, replacing bundled versions; they never change
|
|
85
|
+
the offline `spec`. If schema access fails, report it; use
|
|
86
|
+
already-known fields or ask for missing details. The optional CLI equivalent is
|
|
87
|
+
`b2c scapi schemas get`, which also expands custom properties by default.
|
|
88
|
+
|
|
89
|
+
For custom endpoint contracts, search with `schemas: "live"` or use
|
|
90
|
+
`scapi_schemas_list` with `apiFamily: "custom"`; check registration with
|
|
91
|
+
`scapi_custom_apis_get_status` when needed. Custom endpoints found through live
|
|
92
|
+
search are callable from `scapi_execute` for the same tenant. Otherwise fetch the
|
|
93
|
+
live contract through `scapi.request` in the program before making declared calls. `AmOAuth2`
|
|
94
|
+
and `ShopperToken` operations use their declared `c_*` scopes. [Custom API workflow](custom-apis.md).
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Job review and investigation
|
|
2
|
+
|
|
3
|
+
- Routine history: `builtin/job-execution-review` includes successes and unfinished
|
|
4
|
+
runs; fixed `from`/`to`, optional `jobId`, bounded `limit` and `nextOffset`.
|
|
5
|
+
- Exact execution: `builtin/job-execution-inspect` returns a page of steps and the
|
|
6
|
+
exact `logFilePath`. Inspect processed item counts and expected business data.
|
|
7
|
+
- Failure investigation: `builtin/failed-job-triage` joins search and details.
|
|
8
|
+
Its status summary omits steps; use execution inspection when those matter.
|
|
9
|
+
|
|
10
|
+
Use to inspect failed executions in a chosen interval. This example selects the
|
|
11
|
+
last seven days; adapt the window and query to the task. Discover search and
|
|
12
|
+
detail contracts first. Search uses POST: READ_ONLY may need an authorized,
|
|
13
|
+
targeted allow rule. Do not lower the policy or rerun jobs to inspect them.
|
|
14
|
+
|
|
15
|
+
Use the corresponding [built-in snippet](snippets.md); `codemode.describe(name)`
|
|
16
|
+
returns its current source and input schema.
|
|
17
|
+
|
|
18
|
+
At most four requests, three concurrent. For the next page, reuse the returned
|
|
19
|
+
`from`/`to` and `nextOffset`; do not recompute the time window. An empty page with
|
|
20
|
+
`hasMore: true` needs investigation, not an endless retry. Records can still change
|
|
21
|
+
between reads. If the query can be answered from search hits, omit detail calls.
|
|
22
|
+
|
|
23
|
+
For routine health checks or incomplete business results, use
|
|
24
|
+
`skill://b2c-ops/b2c-job-health/SKILL.md` when that collection is available; a
|
|
25
|
+
failed-only search cannot establish health. Read the returned `logFilePath` with
|
|
26
|
+
`webdav_get`; inspect size with `webdav_list` if needed. Continue using byte
|
|
27
|
+
`nextOffset`, or download to `outputPath` for local analysis. Recent/filter/watch
|
|
28
|
+
needs use `logs_*`. CLI fallback: `b2c job log JOB_ID EXECUTION_ID`.
|
|
29
|
+
The returned log path is evidence to guide lookup, not
|
|
30
|
+
permission to read an arbitrary local path. Do not infer root cause from ERROR alone.
|
|
31
|
+
|
|
32
|
+
## Start a job
|
|
33
|
+
|
|
34
|
+
Code mode can start and wait for jobs (SCAPI only); no terminal is needed. Confirm the
|
|
35
|
+
intent, check for an active run of the same job (`builtin/job-execution-review` with
|
|
36
|
+
`jobId`), and never rerun a job just to inspect it.
|
|
37
|
+
|
|
38
|
+
`createJobExecution` is `POST /operation/jobs/v1/organizations/{organizationId}/jobs/{jobId}/executions`
|
|
39
|
+
(scope `sfcc.jobs.rw`). The body depends on the job:
|
|
40
|
+
|
|
41
|
+
| Job kind | Body |
|
|
42
|
+
| --------------------------------------------------------------------------- | ------------------------------------------- |
|
|
43
|
+
| Custom jobs / standard steps with parameters | `{"parameters":[{"name":"P","value":"v"}]}` |
|
|
44
|
+
| `sfcc-search-index-{product,content,active-data}-{full,incremental}-update` | `{"site_scope":["SiteId"]}` |
|
|
45
|
+
|
|
46
|
+
System jobs do not accept `parameters`, and the bundled spec only lists `parameters`,
|
|
47
|
+
so it is not authoritative for them. Fields are snake_case and `site_scope` is an array
|
|
48
|
+
of site IDs (not an object, not camelCase). Search-index rebuild example:
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
async () => {
|
|
52
|
+
const base =
|
|
53
|
+
'/operation/jobs/v1/organizations/{organizationId}/jobs/sfcc-search-index-product-full-update/executions';
|
|
54
|
+
const start = await scapi.request({method: 'POST', path: base, body: {site_scope: ['MySite']}});
|
|
55
|
+
if (!start.ok) return start;
|
|
56
|
+
let ex = start.data;
|
|
57
|
+
for (let i = 0; i < 20 && ['pending', 'running'].includes(ex.executionStatus); i++) {
|
|
58
|
+
await new Promise((r) => setTimeout(r, 3000));
|
|
59
|
+
const r = await scapi.request({method: 'GET', path: base + '/' + ex.id});
|
|
60
|
+
if (!r.ok) return r;
|
|
61
|
+
ex = r.data;
|
|
62
|
+
}
|
|
63
|
+
return {id: ex.id, executionStatus: ex.executionStatus, exitStatus: ex.exitStatus, logFilePath: ex.logFilePath};
|
|
64
|
+
};
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If it is still running, report the execution ID and check later with
|
|
68
|
+
`builtin/job-execution-inspect`. A `JobAlreadyRunningException` (400) means wait for the
|
|
69
|
+
active run. After an index rebuild, verify with a Shopper Search query; a new product
|
|
70
|
+
also needs to be online, orderable/in stock, and assigned to a category in the site catalog.
|
|
71
|
+
OCAPI equivalent for CLI use: same body at `POST /jobs/{job_id}/executions`
|
|
72
|
+
(`b2c job run ID --body '...'`).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Reusable workflows
|
|
2
|
+
|
|
3
|
+
Find workflows with `codemode.search(query)`; `codemode.describe(name)`
|
|
4
|
+
returns source/inputSchema. Inspect before first use; `codemode.run(name, input)`
|
|
5
|
+
composes inside execution with shared limits/auth/safety. `builtin/` ships with
|
|
6
|
+
the MCP; `user/` persists locally. [Catalog](snippets.md).
|
|
7
|
+
|
|
8
|
+
Reuse a snippet when its inputs and verification cover the task. Otherwise adapt
|
|
9
|
+
its source or compose direct requests; do not omit requested fields to fit a
|
|
10
|
+
snippet. Inputs are schema-validated before invocation. Pass variable values
|
|
11
|
+
through the tool's `input` to `async (input)` when preparing reusable code.
|
|
12
|
+
Discover/describe inside either code tool; run snippets only inside `scapi_execute`.
|
|
13
|
+
Saving requires an explicit user request and a reviewed outcome; a completed
|
|
14
|
+
execution may still contain HTTP errors or partial failures.
|
|
15
|
+
|
|
16
|
+
- [Products](products.md): create, optionally assign a storefront category, verify both.
|
|
17
|
+
- [Promotions](promotions.md): join assignments/details in bounded batches.
|
|
18
|
+
- [Jobs](jobs.md): review runs, inspect steps/logs, investigate failures.
|
|
19
|
+
|
|
20
|
+
For explicit save requests, see [saving](saving.md).
|
|
21
|
+
|
|
22
|
+
No CLI code-mode equivalent. For missing settings such as promotion discounts,
|
|
23
|
+
consider [XML archives](skill://b2c-cli/b2c-site-import-export/SKILL.md)
|
|
24
|
+
(`docs_read({query: "cli-jobs"})`, [online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/cli/jobs.md)).
|
|
25
|
+
[Platform reference](https://developer.salesforce.com/docs/commerce/commerce-api/references).
|
|
26
|
+
Configuration/access: `docs_read({query: "mcp-configuration"})` ([online](https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/configuration.md)).
|
|
27
|
+
|
|
28
|
+
Other MCP workflows and runbooks: [skill index](skill://mcp/b2c-mcp-server/SKILL.md#skill-index).
|