@salesforce/b2c-cli 2.3.0 → 2.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.
Files changed (421) hide show
  1. package/bin/dev.js +8 -8
  2. package/bin/run.js +5 -7
  3. package/content/guidance/b2c/b2c-business-manager-extensions/SKILL.md +361 -0
  4. package/content/guidance/b2c/b2c-business-manager-extensions/references/EXTENSIONS-XML.md +458 -0
  5. package/content/guidance/b2c/b2c-controllers/SKILL.md +301 -0
  6. package/content/guidance/b2c/b2c-controllers/references/CLASSIC-PATTERNS.md +335 -0
  7. package/content/guidance/b2c/b2c-controllers/references/SFRA-PATTERNS.md +400 -0
  8. package/content/guidance/b2c/b2c-custom-api-development/SKILL.md +281 -0
  9. package/content/guidance/b2c/b2c-custom-api-development/references/CONTRACT.md +142 -0
  10. package/content/guidance/b2c/b2c-custom-api-development/references/IMPLEMENTATION.md +153 -0
  11. package/content/guidance/b2c/b2c-custom-api-development/references/TESTING.md +118 -0
  12. package/content/guidance/b2c/b2c-custom-caches/SKILL.md +279 -0
  13. package/content/guidance/b2c/b2c-custom-job-steps/SKILL.md +520 -0
  14. package/content/guidance/b2c/b2c-custom-job-steps/references/CHUNK-ORIENTED.md +377 -0
  15. package/content/guidance/b2c/b2c-custom-job-steps/references/JOBS-XML.md +212 -0
  16. package/content/guidance/b2c/b2c-custom-job-steps/references/STEPTYPES-JSON.md +373 -0
  17. package/content/guidance/b2c/b2c-custom-job-steps/references/TASK-ORIENTED.md +344 -0
  18. package/content/guidance/b2c/b2c-custom-objects/SKILL.md +327 -0
  19. package/content/guidance/b2c/b2c-custom-objects/references/OCAPI-SEARCH.md +298 -0
  20. package/content/guidance/b2c/b2c-forms/SKILL.md +242 -0
  21. package/content/guidance/b2c/b2c-forms/references/FORM-XML.md +409 -0
  22. package/content/guidance/b2c/b2c-hooks/SKILL.md +500 -0
  23. package/content/guidance/b2c/b2c-hooks/references/OCAPI-SCAPI-HOOKS.md +403 -0
  24. package/content/guidance/b2c/b2c-hooks/references/ORDER-HOOK-LIFECYCLE.md +169 -0
  25. package/content/guidance/b2c/b2c-hooks/references/SYSTEM-HOOKS.md +433 -0
  26. package/content/guidance/b2c/b2c-isml/SKILL.md +320 -0
  27. package/content/guidance/b2c/b2c-isml/references/EXPRESSIONS.md +366 -0
  28. package/content/guidance/b2c/b2c-isml/references/TAGS.md +443 -0
  29. package/content/guidance/b2c/b2c-localization/SKILL.md +344 -0
  30. package/content/guidance/b2c/b2c-localization/references/PATTERNS.md +407 -0
  31. package/content/guidance/b2c/b2c-logging/SKILL.md +352 -0
  32. package/content/guidance/b2c/b2c-logging/references/LOG-FILES.md +282 -0
  33. package/content/guidance/b2c/b2c-metadata/SKILL.md +406 -0
  34. package/content/guidance/b2c/b2c-metadata/references/SYSTEM-OBJECTS.md +320 -0
  35. package/content/guidance/b2c/b2c-metadata/references/XML-EXAMPLES.md +366 -0
  36. package/content/guidance/b2c/b2c-onboarding/SKILL.md +154 -0
  37. package/content/guidance/b2c/b2c-ordering/SKILL.md +391 -0
  38. package/content/guidance/b2c/b2c-page-designer/SKILL.md +410 -0
  39. package/content/guidance/b2c/b2c-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
  40. package/content/guidance/b2c/b2c-page-designer/references/META-DEFINITIONS.md +340 -0
  41. package/content/guidance/b2c/b2c-querying-data/SKILL.md +289 -0
  42. package/content/guidance/b2c/b2c-querying-data/references/PERFORMANCE-APIS.md +74 -0
  43. package/content/guidance/b2c/b2c-scapi-admin/SKILL.md +53 -0
  44. package/content/guidance/b2c/b2c-scapi-admin/references/CLIENT-EXAMPLES.md +440 -0
  45. package/content/guidance/b2c/b2c-scapi-admin/references/INTEGRATION-PATTERNS.md +518 -0
  46. package/content/guidance/b2c/b2c-scapi-admin/references/OAUTH-SCOPES.md +337 -0
  47. package/content/guidance/b2c/b2c-scapi-shopper/SKILL.md +56 -0
  48. package/content/guidance/b2c/b2c-scapi-shopper/references/CHECKOUT-FLOW.md +466 -0
  49. package/content/guidance/b2c/b2c-scapi-shopper/references/CLIENT-EXAMPLES.md +351 -0
  50. package/content/guidance/b2c/b2c-scapi-shopper/references/COMMON-PATTERNS.md +390 -0
  51. package/content/guidance/b2c/b2c-scapi-shopper/references/SCOPES.md +290 -0
  52. package/content/guidance/b2c/b2c-slas-auth-patterns/SKILL.md +420 -0
  53. package/content/guidance/b2c/b2c-slas-auth-patterns/references/PASSKEYS.md +126 -0
  54. package/content/guidance/b2c/b2c-slas-auth-patterns/references/SESSION-BRIDGE.md +267 -0
  55. package/content/guidance/b2c/b2c-slas-auth-patterns/references/TOKEN-LIFECYCLE.md +367 -0
  56. package/content/guidance/b2c/b2c-webservices/SKILL.md +318 -0
  57. package/content/guidance/b2c/b2c-webservices/references/FTP-SERVICES.md +524 -0
  58. package/content/guidance/b2c/b2c-webservices/references/HTTP-SERVICES.md +578 -0
  59. package/content/guidance/b2c/b2c-webservices/references/SERVICES-XML.md +351 -0
  60. package/content/guidance/b2c/b2c-webservices/references/SOAP-SERVICES.md +587 -0
  61. package/content/guidance/b2c-cli/b2c-am/SKILL.md +277 -0
  62. package/content/guidance/b2c-cli/b2c-bm-users-roles/SKILL.md +210 -0
  63. package/content/guidance/b2c-cli/b2c-cap/SKILL.md +131 -0
  64. package/content/guidance/b2c-cli/b2c-cip/SKILL.md +116 -0
  65. package/content/guidance/b2c-cli/b2c-cip/references/KNOWN_TABLES.md +105 -0
  66. package/content/guidance/b2c-cli/b2c-cip/references/SALES_ANALYSIS.md +50 -0
  67. package/content/guidance/b2c-cli/b2c-cip/references/STARTER_QUERIES.md +147 -0
  68. package/content/guidance/b2c-cli/b2c-code/SKILL.md +146 -0
  69. package/content/guidance/b2c-cli/b2c-config/SKILL.md +462 -0
  70. package/content/guidance/b2c-cli/b2c-content/SKILL.md +176 -0
  71. package/content/guidance/b2c-cli/b2c-debug/SKILL.md +138 -0
  72. package/content/guidance/b2c-cli/b2c-docs/SKILL.md +301 -0
  73. package/content/guidance/b2c-cli/b2c-ecdn/SKILL.md +135 -0
  74. package/content/guidance/b2c-cli/b2c-ecdn/references/ADVANCED.md +97 -0
  75. package/content/guidance/b2c-cli/b2c-ecdn/references/SECURITY.md +75 -0
  76. package/content/guidance/b2c-cli/b2c-import-set-migrations/SKILL.md +265 -0
  77. package/content/guidance/b2c-cli/b2c-job/SKILL.md +64 -0
  78. package/content/guidance/b2c-cli/b2c-job/references/EXPORT.md +121 -0
  79. package/content/guidance/b2c-cli/b2c-job/references/IMPORT.md +55 -0
  80. package/content/guidance/b2c-cli/b2c-job/references/RUN-AND-MONITOR.md +119 -0
  81. package/content/guidance/b2c-cli/b2c-logs/SKILL.md +249 -0
  82. package/content/guidance/b2c-cli/b2c-metrics/SKILL.md +315 -0
  83. package/content/guidance/b2c-cli/b2c-mrt/SKILL.md +207 -0
  84. package/content/guidance/b2c-cli/b2c-mrt/references/BUNDLE-COMMANDS.md +203 -0
  85. package/content/guidance/b2c-cli/b2c-mrt/references/ENVIRONMENT-COMMANDS.md +218 -0
  86. package/content/guidance/b2c-cli/b2c-mrt/references/PROJECT-COMMANDS.md +154 -0
  87. package/content/guidance/b2c-cli/b2c-sandbox/SKILL.md +112 -0
  88. package/content/guidance/b2c-cli/b2c-scapi-custom/SKILL.md +126 -0
  89. package/content/guidance/b2c-cli/b2c-scapi-schemas/SKILL.md +66 -0
  90. package/content/guidance/b2c-cli/b2c-scapi-schemas/references/CLI-EXAMPLES.md +108 -0
  91. package/content/guidance/b2c-cli/b2c-site-import-export/SKILL.md +57 -0
  92. package/content/guidance/b2c-cli/b2c-site-import-export/references/IMPORT-OPTIONS.md +118 -0
  93. package/content/guidance/b2c-cli/b2c-site-import-export/references/METADATA-XML.md +381 -0
  94. package/content/guidance/b2c-cli/b2c-site-import-export/references/WORKFLOWS.md +182 -0
  95. package/content/guidance/b2c-cli/b2c-sites/SKILL.md +112 -0
  96. package/content/guidance/b2c-cli/b2c-slas/SKILL.md +182 -0
  97. package/content/guidance/b2c-cli/b2c-webdav/SKILL.md +186 -0
  98. package/content/guidance/b2c-ops/b2c-checkout-triage/SKILL.md +68 -0
  99. package/content/guidance/b2c-ops/b2c-job-health/SKILL.md +75 -0
  100. package/content/guidance/b2c-ops/b2c-job-health/references/job-logs.md +21 -0
  101. package/content/guidance/b2c-ops/b2c-order-failure-triage/SKILL.md +66 -0
  102. package/content/guidance/b2c-ops/b2c-order-failure-triage/references/order-evidence.md +87 -0
  103. package/content/guidance/b2c-ops/b2c-production-triage/SKILL.md +87 -0
  104. package/content/guidance/b2c-ops/b2c-production-triage/references/escalation.md +57 -0
  105. package/content/guidance/index.json +1949 -0
  106. package/content/guidance/storefront-next/sfnext-accessibility/SKILL.md +103 -0
  107. package/content/guidance/storefront-next/sfnext-accessibility/references/checklist.md +64 -0
  108. package/content/guidance/storefront-next/sfnext-analytics-consent/SKILL.md +91 -0
  109. package/content/guidance/storefront-next/sfnext-analytics-consent/references/CUSTOM-ADAPTER.md +49 -0
  110. package/content/guidance/storefront-next/sfnext-authentication/SKILL.md +127 -0
  111. package/content/guidance/storefront-next/sfnext-authentication/references/COOKIES.md +39 -0
  112. package/content/guidance/storefront-next/sfnext-authentication/references/LOGIN-FLOWS.md +59 -0
  113. package/content/guidance/storefront-next/sfnext-commerce-features/SKILL.md +67 -0
  114. package/content/guidance/storefront-next/sfnext-commerce-features/references/FEATURE-PREREQUISITES.md +37 -0
  115. package/content/guidance/storefront-next/sfnext-components/SKILL.md +153 -0
  116. package/content/guidance/storefront-next/sfnext-components/references/COMPONENT-AUTHORING.md +118 -0
  117. package/content/guidance/storefront-next/sfnext-components/references/SHAPE-TOKENS.md +51 -0
  118. package/content/guidance/storefront-next/sfnext-components/references/STORYBOOK.md +54 -0
  119. package/content/guidance/storefront-next/sfnext-components/references/TOKEN-SYSTEM.md +53 -0
  120. package/content/guidance/storefront-next/sfnext-components/references/TROUBLESHOOTING.md +19 -0
  121. package/content/guidance/storefront-next/sfnext-configuration/SKILL.md +163 -0
  122. package/content/guidance/storefront-next/sfnext-configuration/references/ENV-VARIABLES.md +55 -0
  123. package/content/guidance/storefront-next/sfnext-configuration/references/MULTI-SITE-URLS.md +137 -0
  124. package/content/guidance/storefront-next/sfnext-data-fetching/SKILL.md +140 -0
  125. package/content/guidance/storefront-next/sfnext-data-fetching/references/ACTIONS.md +53 -0
  126. package/content/guidance/storefront-next/sfnext-data-fetching/references/API-CLIENTS.md +34 -0
  127. package/content/guidance/storefront-next/sfnext-data-fetching/references/LOADERS.md +73 -0
  128. package/content/guidance/storefront-next/sfnext-data-fetching/references/SCAPI-FETCHER.md +39 -0
  129. package/content/guidance/storefront-next/sfnext-deployment/SKILL.md +127 -0
  130. package/content/guidance/storefront-next/sfnext-deployment/references/MRT-DEPLOYMENT.md +59 -0
  131. package/content/guidance/storefront-next/sfnext-extensions/SKILL.md +118 -0
  132. package/content/guidance/storefront-next/sfnext-extensions/references/ACTION-HOOKS.md +57 -0
  133. package/content/guidance/storefront-next/sfnext-extensions/references/BASE-AUDIT.md +68 -0
  134. package/content/guidance/storefront-next/sfnext-extensions/references/CLI-AND-INSTALL.md +58 -0
  135. package/content/guidance/storefront-next/sfnext-extensions/references/EXTENSION-EXAMPLES.md +79 -0
  136. package/content/guidance/storefront-next/sfnext-hybrid-storefronts/SKILL.md +93 -0
  137. package/content/guidance/storefront-next/sfnext-hybrid-storefronts/references/HYBRID-PROXY-CONFIG.md +86 -0
  138. package/content/guidance/storefront-next/sfnext-i18n/SKILL.md +152 -0
  139. package/content/guidance/storefront-next/sfnext-i18n/references/locale-config.md +35 -0
  140. package/content/guidance/storefront-next/sfnext-overview/SKILL.md +101 -0
  141. package/content/guidance/storefront-next/sfnext-page-designer/SKILL.md +202 -0
  142. package/content/guidance/storefront-next/sfnext-page-designer/references/BUSINESS-MANAGER.md +46 -0
  143. package/content/guidance/storefront-next/sfnext-page-designer/references/COMPONENT-REGISTRY.md +111 -0
  144. package/content/guidance/storefront-next/sfnext-page-designer/references/DECORATOR-PATTERNS.md +168 -0
  145. package/content/guidance/storefront-next/sfnext-page-designer/references/REVIEW-CHECKLIST.md +83 -0
  146. package/content/guidance/storefront-next/sfnext-page-designer/references/TROUBLESHOOTING.md +35 -0
  147. package/content/guidance/storefront-next/sfnext-performance/SKILL.md +102 -0
  148. package/content/guidance/storefront-next/sfnext-performance/references/PERFORMANCE-REVIEW-CHECKLIST.md +85 -0
  149. package/content/guidance/storefront-next/sfnext-performance/references/SUSPENSE-AND-STREAMING.md +58 -0
  150. package/content/guidance/storefront-next/sfnext-project-setup/SKILL.md +147 -0
  151. package/content/guidance/storefront-next/sfnext-project-setup/references/PROJECT-STRUCTURE.md +61 -0
  152. package/content/guidance/storefront-next/sfnext-project-setup/references/SCRIPTS.md +47 -0
  153. package/content/guidance/storefront-next/sfnext-project-setup/references/SFNEXT-CLI.md +63 -0
  154. package/content/guidance/storefront-next/sfnext-quality-gates/SKILL.md +70 -0
  155. package/content/guidance/storefront-next/sfnext-quality-gates/references/lint-and-budgets.md +39 -0
  156. package/content/guidance/storefront-next/sfnext-revalidation/SKILL.md +121 -0
  157. package/content/guidance/storefront-next/sfnext-revalidation/references/POLICIES-AND-TAGS.md +55 -0
  158. package/content/guidance/storefront-next/sfnext-routing/SKILL.md +123 -0
  159. package/content/guidance/storefront-next/sfnext-routing/references/ROUTE-CONVENTIONS.md +65 -0
  160. package/content/guidance/storefront-next/sfnext-routing/references/URLS-AND-SEO-ROUTES.md +22 -0
  161. package/content/guidance/storefront-next/sfnext-scapi/SKILL.md +126 -0
  162. package/content/guidance/storefront-next/sfnext-scapi/references/WORKED-EXAMPLE.md +39 -0
  163. package/content/guidance/storefront-next/sfnext-security/SKILL.md +129 -0
  164. package/content/guidance/storefront-next/sfnext-security/references/COOKIE-DOMAIN.md +39 -0
  165. package/content/guidance/storefront-next/sfnext-security/references/TURNSTILE.md +43 -0
  166. package/content/guidance/storefront-next/sfnext-seo/SKILL.md +95 -0
  167. package/content/guidance/storefront-next/sfnext-seo/references/MULTI-DOMAIN-BASE-PATH.md +17 -0
  168. package/content/guidance/storefront-next/sfnext-seo/references/SEO-ROUTES.md +31 -0
  169. package/content/guidance/storefront-next/sfnext-state-management/SKILL.md +114 -0
  170. package/content/guidance/storefront-next/sfnext-state-management/references/PATTERNS.md +45 -0
  171. package/content/guidance/storefront-next/sfnext-testing/SKILL.md +151 -0
  172. package/content/guidance/storefront-next/sfnext-testing/references/E2E.md +38 -0
  173. package/content/guidance/storefront-next/sfnext-testing/references/STORYBOOK-PATTERNS.md +97 -0
  174. package/content/guidance/storefront-next/sfnext-testing/references/UNIT-AND-ROUTE-TESTS.md +60 -0
  175. package/content/guidance/storefront-next/sfnext-theming/SKILL.md +104 -0
  176. package/content/guidance/storefront-next/sfnext-theming/references/REBRAND-CHECKLIST.md +29 -0
  177. package/dist/commands/cap/install.d.ts +1 -0
  178. package/dist/commands/cap/list.d.ts +1 -0
  179. package/dist/commands/cap/pull.d.ts +1 -0
  180. package/dist/commands/cap/tasks.d.ts +1 -0
  181. package/dist/commands/cap/uninstall.d.ts +1 -0
  182. package/dist/commands/cip/describe.d.ts +1 -0
  183. package/dist/commands/cip/query.d.ts +1 -0
  184. package/dist/commands/cip/report/bot-traffic-share.d.ts +1 -0
  185. package/dist/commands/cip/report/checkout-funnel-dropoff.d.ts +1 -0
  186. package/dist/commands/cip/report/controller-error-rate-trend.d.ts +1 -0
  187. package/dist/commands/cip/report/controller-health-scorecard.d.ts +1 -0
  188. package/dist/commands/cip/report/customer-registration-trends.d.ts +1 -0
  189. package/dist/commands/cip/report/discount-depth-breakdown.d.ts +1 -0
  190. package/dist/commands/cip/report/inventory-stockout-by-location.d.ts +1 -0
  191. package/dist/commands/cip/report/new-vs-returning-buyer-revenue.d.ts +1 -0
  192. package/dist/commands/cip/report/ocapi-client-usage.d.ts +1 -0
  193. package/dist/commands/cip/report/ocapi-requests.d.ts +1 -0
  194. package/dist/commands/cip/report/payment-method-performance.d.ts +1 -0
  195. package/dist/commands/cip/report/product-co-purchase-analysis.d.ts +1 -0
  196. package/dist/commands/cip/report/promotion-discount-analysis.d.ts +1 -0
  197. package/dist/commands/cip/report/promotion-roi-leaderboard.d.ts +1 -0
  198. package/dist/commands/cip/report/recommender-effectiveness.d.ts +1 -0
  199. package/dist/commands/cip/report/remote-include-performance.d.ts +1 -0
  200. package/dist/commands/cip/report/revenue-by-channel.d.ts +1 -0
  201. package/dist/commands/cip/report/sales-analytics.d.ts +1 -0
  202. package/dist/commands/cip/report/sales-summary.d.ts +1 -0
  203. package/dist/commands/cip/report/scapi-cache-hit-ratio.d.ts +1 -0
  204. package/dist/commands/cip/report/scapi-error-rate-by-status.d.ts +1 -0
  205. package/dist/commands/cip/report/scapi-latency-distribution.d.ts +1 -0
  206. package/dist/commands/cip/report/scapi-traffic-latency.d.ts +1 -0
  207. package/dist/commands/cip/report/search-query-performance.d.ts +1 -0
  208. package/dist/commands/cip/report/top-referrers.d.ts +1 -0
  209. package/dist/commands/cip/report/top-selling-products.d.ts +1 -0
  210. package/dist/commands/cip/report/zero-result-searches.d.ts +1 -0
  211. package/dist/commands/cip/tables.d.ts +1 -0
  212. package/dist/commands/code/activate.d.ts +1 -0
  213. package/dist/commands/code/delete.d.ts +1 -0
  214. package/dist/commands/code/deploy.d.ts +1 -0
  215. package/dist/commands/code/download.d.ts +1 -0
  216. package/dist/commands/code/watch.d.ts +1 -0
  217. package/dist/commands/commands/search.d.ts +35 -0
  218. package/dist/commands/commands/search.js +85 -0
  219. package/dist/commands/commands/search.js.map +1 -0
  220. package/dist/commands/content/export.d.ts +1 -0
  221. package/dist/commands/content/list.d.ts +1 -0
  222. package/dist/commands/content/validate.d.ts +1 -0
  223. package/dist/commands/debug/cli.d.ts +1 -0
  224. package/dist/commands/debug/index.d.ts +1 -0
  225. package/dist/commands/docs/cache.d.ts +1 -0
  226. package/dist/commands/docs/download.d.ts +1 -0
  227. package/dist/commands/docs/read.d.ts +1 -0
  228. package/dist/commands/docs/schema.d.ts +1 -0
  229. package/dist/commands/docs/search.d.ts +1 -0
  230. package/dist/commands/docs/skill.d.ts +41 -0
  231. package/dist/commands/docs/skill.js +183 -0
  232. package/dist/commands/docs/skill.js.map +1 -0
  233. package/dist/commands/ecdn/cache/purge.d.ts +1 -0
  234. package/dist/commands/ecdn/certificates/add.d.ts +1 -0
  235. package/dist/commands/ecdn/certificates/delete.d.ts +1 -0
  236. package/dist/commands/ecdn/certificates/list.d.ts +1 -0
  237. package/dist/commands/ecdn/certificates/update.d.ts +1 -0
  238. package/dist/commands/ecdn/certificates/validate.d.ts +1 -0
  239. package/dist/commands/ecdn/cipher-suites/get.d.ts +1 -0
  240. package/dist/commands/ecdn/cipher-suites/update.d.ts +1 -0
  241. package/dist/commands/ecdn/firewall/create.d.ts +1 -0
  242. package/dist/commands/ecdn/firewall/delete.d.ts +1 -0
  243. package/dist/commands/ecdn/firewall/get.d.ts +1 -0
  244. package/dist/commands/ecdn/firewall/list.d.ts +1 -0
  245. package/dist/commands/ecdn/firewall/reorder.d.ts +1 -0
  246. package/dist/commands/ecdn/firewall/update.d.ts +1 -0
  247. package/dist/commands/ecdn/logpush/jobs/create.d.ts +1 -0
  248. package/dist/commands/ecdn/logpush/jobs/delete.d.ts +1 -0
  249. package/dist/commands/ecdn/logpush/jobs/get.d.ts +1 -0
  250. package/dist/commands/ecdn/logpush/jobs/list.d.ts +1 -0
  251. package/dist/commands/ecdn/logpush/jobs/update.d.ts +1 -0
  252. package/dist/commands/ecdn/logpush/ownership.d.ts +1 -0
  253. package/dist/commands/ecdn/mrt-rules/create.d.ts +1 -0
  254. package/dist/commands/ecdn/mrt-rules/delete.d.ts +1 -0
  255. package/dist/commands/ecdn/mrt-rules/get.d.ts +1 -0
  256. package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +1 -0
  257. package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +1 -0
  258. package/dist/commands/ecdn/mrt-rules/update.d.ts +1 -0
  259. package/dist/commands/ecdn/mtls/create.d.ts +1 -0
  260. package/dist/commands/ecdn/mtls/delete.d.ts +1 -0
  261. package/dist/commands/ecdn/mtls/get.d.ts +1 -0
  262. package/dist/commands/ecdn/mtls/issue.d.ts +1 -0
  263. package/dist/commands/ecdn/mtls/list.d.ts +1 -0
  264. package/dist/commands/ecdn/mtls/setup.d.ts +1 -0
  265. package/dist/commands/ecdn/origin-headers/delete.d.ts +1 -0
  266. package/dist/commands/ecdn/origin-headers/get.d.ts +1 -0
  267. package/dist/commands/ecdn/origin-headers/set.d.ts +1 -0
  268. package/dist/commands/ecdn/page-shield/notifications/create.d.ts +1 -0
  269. package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +1 -0
  270. package/dist/commands/ecdn/page-shield/notifications/list.d.ts +1 -0
  271. package/dist/commands/ecdn/page-shield/policies/create.d.ts +1 -0
  272. package/dist/commands/ecdn/page-shield/policies/delete.d.ts +1 -0
  273. package/dist/commands/ecdn/page-shield/policies/get.d.ts +1 -0
  274. package/dist/commands/ecdn/page-shield/policies/list.d.ts +1 -0
  275. package/dist/commands/ecdn/page-shield/policies/update.d.ts +1 -0
  276. package/dist/commands/ecdn/page-shield/scripts/get.d.ts +1 -0
  277. package/dist/commands/ecdn/page-shield/scripts/list.d.ts +1 -0
  278. package/dist/commands/ecdn/rate-limit/create.d.ts +1 -0
  279. package/dist/commands/ecdn/rate-limit/delete.d.ts +1 -0
  280. package/dist/commands/ecdn/rate-limit/get.d.ts +1 -0
  281. package/dist/commands/ecdn/rate-limit/list.d.ts +1 -0
  282. package/dist/commands/ecdn/rate-limit/update.d.ts +1 -0
  283. package/dist/commands/ecdn/security/get.d.ts +1 -0
  284. package/dist/commands/ecdn/security/update.d.ts +1 -0
  285. package/dist/commands/ecdn/speed/get.d.ts +1 -0
  286. package/dist/commands/ecdn/speed/update.d.ts +1 -0
  287. package/dist/commands/ecdn/waf/groups/list.d.ts +1 -0
  288. package/dist/commands/ecdn/waf/groups/update.d.ts +1 -0
  289. package/dist/commands/ecdn/waf/managed-rules/list.d.ts +1 -0
  290. package/dist/commands/ecdn/waf/managed-rules/update.d.ts +1 -0
  291. package/dist/commands/ecdn/waf/migrate.d.ts +1 -0
  292. package/dist/commands/ecdn/waf/owasp/get.d.ts +1 -0
  293. package/dist/commands/ecdn/waf/owasp/update.d.ts +1 -0
  294. package/dist/commands/ecdn/waf/rules/get.d.ts +1 -0
  295. package/dist/commands/ecdn/waf/rules/list.d.ts +1 -0
  296. package/dist/commands/ecdn/waf/rules/update.d.ts +1 -0
  297. package/dist/commands/ecdn/waf/rulesets/list.d.ts +1 -0
  298. package/dist/commands/ecdn/waf/rulesets/update.d.ts +1 -0
  299. package/dist/commands/ecdn/zones/create.d.ts +1 -0
  300. package/dist/commands/ecdn/zones/list.d.ts +1 -0
  301. package/dist/commands/job/execution/delete.d.ts +1 -0
  302. package/dist/commands/job/export.d.ts +1 -0
  303. package/dist/commands/job/import-set.d.ts +1 -0
  304. package/dist/commands/job/import.d.ts +1 -0
  305. package/dist/commands/job/log.d.ts +1 -0
  306. package/dist/commands/job/run.d.ts +1 -0
  307. package/dist/commands/job/search.d.ts +1 -0
  308. package/dist/commands/job/wait.d.ts +1 -0
  309. package/dist/commands/logs/get.d.ts +1 -0
  310. package/dist/commands/logs/list.d.ts +1 -0
  311. package/dist/commands/logs/tail.d.ts +1 -0
  312. package/dist/commands/metrics/controller.d.ts +1 -0
  313. package/dist/commands/metrics/ecdn.d.ts +1 -0
  314. package/dist/commands/metrics/mrt.d.ts +1 -0
  315. package/dist/commands/metrics/ocapi.d.ts +1 -0
  316. package/dist/commands/metrics/overall.d.ts +1 -0
  317. package/dist/commands/metrics/sales.d.ts +1 -0
  318. package/dist/commands/metrics/scapi-hooks.d.ts +1 -0
  319. package/dist/commands/metrics/scapi.d.ts +1 -0
  320. package/dist/commands/metrics/third-party.d.ts +1 -0
  321. package/dist/commands/mrt/bundle/delete.d.ts +1 -0
  322. package/dist/commands/mrt/bundle/deploy.d.ts +1 -0
  323. package/dist/commands/mrt/bundle/download.d.ts +1 -0
  324. package/dist/commands/mrt/bundle/history.d.ts +1 -0
  325. package/dist/commands/mrt/bundle/list.d.ts +1 -0
  326. package/dist/commands/mrt/bundle/save.d.ts +1 -0
  327. package/dist/commands/mrt/bundle/upload-v2.d.ts +1 -0
  328. package/dist/commands/mrt/env/access-control/list.d.ts +1 -0
  329. package/dist/commands/mrt/env/b2c.d.ts +1 -0
  330. package/dist/commands/mrt/env/clone.d.ts +1 -0
  331. package/dist/commands/mrt/env/create.d.ts +1 -0
  332. package/dist/commands/mrt/env/delete.d.ts +1 -0
  333. package/dist/commands/mrt/env/get.d.ts +1 -0
  334. package/dist/commands/mrt/env/invalidate.d.ts +1 -0
  335. package/dist/commands/mrt/env/list.d.ts +1 -0
  336. package/dist/commands/mrt/env/redirect/clone.d.ts +1 -0
  337. package/dist/commands/mrt/env/redirect/create.d.ts +1 -0
  338. package/dist/commands/mrt/env/redirect/delete.d.ts +1 -0
  339. package/dist/commands/mrt/env/redirect/list.d.ts +1 -0
  340. package/dist/commands/mrt/env/update.d.ts +1 -0
  341. package/dist/commands/mrt/env/var/delete.d.ts +1 -0
  342. package/dist/commands/mrt/env/var/list.d.ts +1 -0
  343. package/dist/commands/mrt/env/var/push.d.ts +1 -0
  344. package/dist/commands/mrt/env/var/set.d.ts +1 -0
  345. package/dist/commands/mrt/org/b2c.d.ts +1 -0
  346. package/dist/commands/mrt/org/cert/create.d.ts +1 -0
  347. package/dist/commands/mrt/org/cert/delete.d.ts +1 -0
  348. package/dist/commands/mrt/org/cert/get.d.ts +1 -0
  349. package/dist/commands/mrt/org/cert/list.d.ts +1 -0
  350. package/dist/commands/mrt/org/cert/restart-validation.d.ts +1 -0
  351. package/dist/commands/mrt/org/list.d.ts +1 -0
  352. package/dist/commands/mrt/org/member/add.d.ts +1 -0
  353. package/dist/commands/mrt/org/member/get.d.ts +1 -0
  354. package/dist/commands/mrt/org/member/list.d.ts +1 -0
  355. package/dist/commands/mrt/org/member/remove.d.ts +1 -0
  356. package/dist/commands/mrt/org/member/update.d.ts +1 -0
  357. package/dist/commands/mrt/project/create.d.ts +1 -0
  358. package/dist/commands/mrt/project/delete.d.ts +1 -0
  359. package/dist/commands/mrt/project/get.d.ts +1 -0
  360. package/dist/commands/mrt/project/list.d.ts +1 -0
  361. package/dist/commands/mrt/project/member/add.d.ts +1 -0
  362. package/dist/commands/mrt/project/member/get.d.ts +1 -0
  363. package/dist/commands/mrt/project/member/list.d.ts +1 -0
  364. package/dist/commands/mrt/project/member/remove.d.ts +1 -0
  365. package/dist/commands/mrt/project/member/update.d.ts +1 -0
  366. package/dist/commands/mrt/project/notification/delete.d.ts +1 -0
  367. package/dist/commands/mrt/project/notification/get.d.ts +1 -0
  368. package/dist/commands/mrt/project/update.d.ts +1 -0
  369. package/dist/commands/mrt/save-credentials.d.ts +1 -0
  370. package/dist/commands/mrt/tail-logs.d.ts +1 -0
  371. package/dist/commands/mrt/user/api-key.d.ts +1 -0
  372. package/dist/commands/mrt/user/email-prefs.d.ts +1 -0
  373. package/dist/commands/mrt/user/profile.d.ts +1 -0
  374. package/dist/commands/scaffold/init.js +2 -1
  375. package/dist/commands/scaffold/init.js.map +1 -1
  376. package/dist/commands/scapi/custom/status.d.ts +1 -0
  377. package/dist/commands/scapi/schemas/get.d.ts +1 -0
  378. package/dist/commands/scapi/schemas/list.d.ts +1 -0
  379. package/dist/commands/setup/ide/tsserver-plugin.d.ts +1 -0
  380. package/dist/commands/setup/ide/vscode-types.d.ts +1 -0
  381. package/dist/commands/setup/index.js +4 -3
  382. package/dist/commands/setup/index.js.map +1 -1
  383. package/dist/commands/setup/inspect.d.ts +1 -0
  384. package/dist/commands/setup/inspect.js +17 -2
  385. package/dist/commands/setup/inspect.js.map +1 -1
  386. package/dist/commands/setup/instance/create.d.ts +1 -0
  387. package/dist/commands/setup/instance/list.d.ts +1 -0
  388. package/dist/commands/setup/instance/remove.d.ts +1 -0
  389. package/dist/commands/setup/instance/set-active.d.ts +1 -0
  390. package/dist/commands/setup/openshell.d.ts +1 -0
  391. package/dist/commands/setup/skills.d.ts +1 -0
  392. package/dist/commands/slas/client/create.d.ts +1 -0
  393. package/dist/commands/slas/client/delete.d.ts +1 -0
  394. package/dist/commands/slas/client/get.d.ts +1 -0
  395. package/dist/commands/slas/client/list.d.ts +1 -0
  396. package/dist/commands/slas/client/open.d.ts +1 -0
  397. package/dist/commands/slas/client/update.d.ts +1 -0
  398. package/dist/commands/slas/token.d.ts +1 -0
  399. package/dist/commands/slas/token.js +2 -1
  400. package/dist/commands/slas/token.js.map +1 -1
  401. package/dist/commands/webdav/get.d.ts +1 -0
  402. package/dist/commands/webdav/mkdir.d.ts +2 -0
  403. package/dist/commands/webdav/mkdir.js +5 -3
  404. package/dist/commands/webdav/mkdir.js.map +1 -1
  405. package/dist/commands/webdav/put.d.ts +2 -0
  406. package/dist/commands/webdav/put.js +5 -3
  407. package/dist/commands/webdav/put.js.map +1 -1
  408. package/dist/commands/webdav/rm.d.ts +1 -0
  409. package/dist/help.d.ts +25 -0
  410. package/dist/help.js +96 -0
  411. package/dist/help.js.map +1 -0
  412. package/dist/lib/scaffold/generate-helper.js +3 -2
  413. package/dist/lib/scaffold/generate-helper.js.map +1 -1
  414. package/dist/lib/skills.d.ts +19 -0
  415. package/dist/lib/skills.js +75 -0
  416. package/dist/lib/skills.js.map +1 -0
  417. package/dist/utils/cip/command.d.ts +1 -0
  418. package/dist/utils/ecdn/zone-command.d.ts +1 -0
  419. package/dist/utils/slas/client.d.ts +1 -0
  420. package/oclif.manifest.json +10994 -7653
  421. package/package.json +11 -5
@@ -0,0 +1,462 @@
1
+ ---
2
+ name: b2c-config
3
+ description: Configure B2C CLI/MCP authentication, instances, and project defaults; troubleshoot missing credentials, wrong targets, or configuration precedence. Routine inspection can use config_inspect or b2c setup inspect directly.
4
+ ---
5
+
6
+ # B2C Config Skill
7
+
8
+ For routine inspection, call `config_inspect` or `b2c setup inspect` directly;
9
+ no skill read is required. Keep secrets redacted; manually reading `dw.json` is usually unnecessary. Read the relevant section
10
+ here when configuring sources or diagnosing unexpected/missing values.
11
+
12
+ | Task | CLI | MCP | Preference / difference | Fallback |
13
+ | ------------------------------------ | ----------------------- | ----------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
14
+ | Inspect resolved configuration | `b2c setup inspect` | `config_inspect` | Either; same resolver, redacted by default. MCP accepts per-call project/instance overrides. | Inspect source files only for edits or unresolved issues. |
15
+ | Change configuration or authenticate | `b2c setup`, `b2c auth` | No configuration-writing equivalent | CLI; inspect command help for the requested operation. | Edit the intended configuration source. |
16
+
17
+ If `b2c` is unavailable, use `npx @salesforce/b2c-cli`.
18
+
19
+ ## How the CLI Discovers Configuration
20
+
21
+ The CLI **automatically detects** instance hostname, credentials, tenant ID, MRT API key, and other settings from multiple sources. **You usually do not need to pass `--server`, `--client-id`, `--client-secret`, `--username`, `--password`, `--tenant-id`, `--short-code`, or `--api-key` as flags** — the CLI picks them up from the environment or config files.
22
+
23
+ Sources, in resolution order (highest priority first):
24
+
25
+ 1. **CLI flags and environment variables** — explicit values always win. Shell variables win over the env file; toolkit variables (`SFCC_*`, `MRT_*`) in the project's `.env` (or the file selected with `--dotenv-file` / `SFCC_DOTENV_FILE`) come next.
26
+ 2. **Plugin sources (high priority)** — custom configuration plugins (e.g., secret managers).
27
+ 3. **`dw.json`** — selected by `--config` / `SFCC_CONFIG`, the env file, the project-local file, or the shared global `dw.json`. Supports a single instance or a `configs[]` array with `active: true` / `-i <name>` selection.
28
+ 4. **Storefront Next variables** — fallbacks that only fill fields missing from the selected `dw.json` entry (see below).
29
+ 5. **`~/.mobify`** — home-directory file (MRT API key only).
30
+ 6. **Plugin sources (low priority)**.
31
+ 7. **`package.json`** under the `b2c` key — non-sensitive project defaults (e.g., `shortCode`, `clientId`, `mrtProject`). Sensitive fields like `clientSecret`/`password` are intentionally **not** allowed here.
32
+
33
+ Hostname protection applies between sources: if an env file's `SFCC_SERVER` differs from the selected `dw.json` entry's hostname, that whole entry is skipped (`HOSTNAME_MISMATCH` warning). If no source sets a tenant ID and the hostname is a sandbox hostname (`abcd-001.dx.commercecloud.salesforce.com`), the tenant ID is derived (`abcd_001`); a conflicting configured tenant ID produces a `TENANT_MISMATCH` warning. Conversely, if no source sets a hostname and the tenant ID is a sandbox tenant (`abcd_001`, including a Storefront Next `f_ecom_abcd_001` organization ID), the hostname is derived (`abcd-001.dx.commercecloud.salesforce.com`).
34
+
35
+ Use `--dotenv-file .env.staging` (or `SFCC_DOTENV_FILE`) to use another env file instead of `.env`; it replaces `.env` rather than layering on it. `--dotenv-file ""` uses no env file, and `--config ""` uses no `dw.json`.
36
+
37
+ For unexpected values, inspect resolved configuration and sources with `config_inspect` or `b2c setup inspect`.
38
+
39
+ ### Storefront Next Environment Compatibility
40
+
41
+ The resolver accepts these Storefront Next variables as fallbacks, so a project
42
+ can reuse its existing B2C Commerce and SLAS configuration. The `PUBLIC__app__*`
43
+ and `COMMERCE_API_SLAS_SECRET` variables rank below `dw.json`: with `-i stg`,
44
+ stg's own tenant, short code, site, and SLAS client are kept and these only fill gaps.
45
+
46
+ | Storefront Next variable | Resolved field | Default toolkit variable |
47
+ | -------------------------------------------- | ------------------ | ------------------------- |
48
+ | `PUBLIC__app__commerce__api__clientId` | `slasClientId` | `SFCC_SLAS_CLIENT_ID` |
49
+ | `PUBLIC__app__commerce__api__organizationId` | `tenantId` | `SFCC_TENANT_ID` |
50
+ | `PUBLIC__app__commerce__api__shortCode` | `shortCode` | `SFCC_SHORTCODE` |
51
+ | `COMMERCE_API_SLAS_SECRET` | `slasClientSecret` | `SFCC_SLAS_CLIENT_SECRET` |
52
+ | `PUBLIC__app__defaultSiteId` | `siteId` | `SFCC_SITE_ID` |
53
+ | `MRT_PROJECT` | `mrtProject` | `MRT_PROJECT` |
54
+ | `MRT_TARGET` | `mrtEnvironment` | `MRT_ENVIRONMENT` |
55
+
56
+ Explicit flags, default toolkit variables, and the selected `dw.json` entry win over these fallbacks. `MRT_PROJECT` and `MRT_TARGET` are toolkit variables and keep toolkit priority.
57
+
58
+ ### Shared Global Default
59
+
60
+ Use a shared fallback when the same `dw.json`-format file should work across the CLI, MCP server, and B2C DX VS Code extension:
61
+
62
+ ```bash
63
+ b2c setup default-config set /path/to/dw.json
64
+ b2c setup default-config get
65
+ b2c setup default-config unset
66
+ ```
67
+
68
+ The configuration-file selection order is: explicit `--config`; process `SFCC_CONFIG`; env file `SFCC_CONFIG`; project-local `dw.json`; global default. The global file never replaces an explicit or project-local choice. An explicit path (`--config` / `SFCC_CONFIG`) is used on its own, without the global file; `setup inspect` notes when the global default is skipped.
69
+
70
+ A discovered project `dw.json` and the global `dw.json` form one instance catalog. `-i <name>` searches the primary file first and then the global file, with same-name primary entries shadowing global entries. Each selected instance is complete—its fields are not merged with a matching entry in the other file. Instance list/remove/set-active operate across both files; create writes to the primary file when present and otherwise to the global `dw.json`.
71
+
72
+ Without `-i`, an active primary instance wins. A root-level primary configuration with no `active` field is its implicit default; set its root to `active: false` to opt it out and allow an active/default global instance to be selected. `b2c setup inspect` shows both files in its Sources section and marks the selected file.
73
+
74
+ ### MCP Project Context
75
+
76
+ For MCP installation or tool selection, use `mcp/b2c-mcp-server` when
77
+ available or the [MCP configuration guide](https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/configuration.md) (`b2c docs read mcp-configuration`).
78
+ These are client launch settings; `config_inspect` reports B2C values and sources,
79
+ not enabled toolsets or client filters. Project `.env` does not select MCP tools.
80
+
81
+ Local MCP project tools accept `projectDirectory`. Tools that resolve B2C/MRT configuration accept the same flat `projectDirectory`, `configPath`, and `instanceName` arguments. This override is especially important for plugin installs, where the MCP process working directory may be the plugin directory rather than the open project. For each configuration-aware call, the MCP server:
82
+
83
+ 1. Parses `.env` from `projectDirectory`.
84
+ 2. Applies all supported B2C/MRT environment variables from that file.
85
+ 3. Selects a `dw.json`-format configuration file in this order: per-call `configPath`; startup `--config` / `SFCC_CONFIG`; project `.env` `SFCC_CONFIG`; `${projectDirectory}/dw.json`; shared global default. An explicit path is used without the shared global default. Storefront Next variables from the project `.env` only fill gaps below `dw.json`.
86
+ 4. Resolves relative per-call `configPath` and project `.env` `SFCC_CONFIG` values from `projectDirectory`.
87
+ 5. Selects `instanceName`, when supplied, from the primary file first and then the shared global `dw.json`, without changing either file.
88
+ 6. Continues through the normal tooling configuration sources, including registered plugin sources, MRT credentials, and `package.json`.
89
+ 7. Resolves specialized paths such as `cartridgeDirectory`, `buildDirectory`, and `outputDirectory` from the same root when relative.
90
+
91
+ Project `.env` values are scoped to that MCP call so one project's environment does not leak into another.
92
+
93
+ Each project/config-aware result includes an authoritative, compact `resolution` block. It reports the selected project, configuration file, instance, hostname, and specialized directories without relying on paths embedded in tool descriptions. Session and watch start calls retain it, and their list tools expose it for later follow-up calls. The MCP `config_inspect` tool additionally returns the full source graph and uses the same SDK resolver and registered CLI plugin configuration sources as `b2c setup inspect`. Use `projectDirectory`, `configPath`, and/or `instanceName` to compare the intended project, file, and instance.
94
+
95
+ ### `dw.json` Key Casing
96
+
97
+ Field names in `dw.json` accept **both camelCase and kebab-case** — they're equivalent. For example:
98
+
99
+ | Either form works |
100
+ | ------------------------------------------------------------------------- |
101
+ | `clientId` ≡ `client-id` |
102
+ | `clientSecret` ≡ `client-secret` |
103
+ | `codeVersion` ≡ `code-version` |
104
+ | `tenantId` ≡ `tenant-id` |
105
+ | `shortCode` ≡ `short-code` ≡ `scapi-shortcode` |
106
+ | `webdavHostname` ≡ `webdav-hostname` ≡ `webdav-server` ≡ `secureHostname` |
107
+ | `certificatePassphrase` ≡ `certificate-passphrase` ≡ `passphrase` |
108
+
109
+ Legacy aliases like `server` (for `hostname`) are also still supported. If a value isn't being picked up, casing is rarely the cause — check spelling, then run `b2c setup inspect` to see what the CLI actually parsed.
110
+
111
+ A JSON Schema for `dw.json` is published at `https://salesforcecommercecloud.github.io/b2c-developer-tooling/schemas/dw.schema.json` (the B2C DX VS Code extension applies it automatically). Add it as `"$schema"` in a `dw.json` for editor validation and completion.
112
+
113
+ For the full field reference, see the [Configuration guide](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/configuration.md) (`b2c docs read guide-configuration`).
114
+
115
+ ## Authentication
116
+
117
+ Most commands that interact with a B2C Commerce instance require authentication. The CLI supports several methods:
118
+
119
+ - **Client credentials (API client):** Configure `clientId` and `clientSecret` in dw.json or environment variables. This is the default for automated/CI use.
120
+ - **Browser-based (implicit OAuth):** Use `--user-auth` on any OAuth-enabled command to authenticate interactively via the browser. This opens Account Manager in your default browser for login.
121
+ - **Basic auth:** Configure `username` and `password` for WebDAV operations.
122
+ - **Stateful sessions:** Use `b2c auth login` for persistent browser-based login sessions or `b2c auth client` for persistent client authentication. Later commands reuse the valid saved session when no other client is configured.
123
+
124
+ ### `--user-auth` Flag
125
+
126
+ Many commands support `--user-auth` to use browser-based OAuth instead of client credentials. As of B2C Commerce release 26.8, SCAPI Admin APIs do not support this flow; migrated commands use OCAPI in `auto` mode, while explicit SCAPI reports an actionable authentication error before making an API request. User auth remains useful when:
127
+
128
+ - You don't have a `clientSecret` configured
129
+ - You need user-level permissions (e.g., Account Manager admin roles)
130
+ - You're working interactively
131
+
132
+ ```bash
133
+ # Interactive browser-based auth for any OAuth command
134
+ b2c sandbox list --user-auth
135
+ b2c scapi schemas list --user-auth
136
+ b2c auth token --user-auth
137
+ ```
138
+
139
+ Coding agents can also use `--user-auth` — the browser flow works in any environment where a browser can be opened. The flag is exclusive with `--auth-methods`.
140
+
141
+ **Running behind a proxy:** If `localhost:8080` isn't reachable by the browser (e.g., running in a container or behind a reverse proxy), set `SFCC_REDIRECT_URI` to the proxy URL. The local OAuth server still listens on the default port (or `SFCC_OAUTH_LOCAL_PORT`), but the redirect URI sent to Account Manager will use your proxy URL. Add the proxy URL to the API client's redirect URLs in Account Manager.
142
+
143
+ ## Tenant ID and Organization ID
144
+
145
+ B2C Commerce uses two related identifiers:
146
+
147
+ - **Tenant ID** — the short form (e.g., `zzxy_prd` or `zzxy-prd`)
148
+ - **Organization ID** — the SCAPI form with `f_ecom_` prefix (e.g., `f_ecom_zzxy_prd`)
149
+
150
+ The CLI automatically normalizes and translates between these formats. You can provide either form in configuration or flags — the CLI handles the conversion. It also extracts tenant IDs from hostnames (e.g., `zzxy-prd.dx.commercecloud.salesforce.com` resolves to `zzxy_prd`).
151
+
152
+ In dw.json or environment variables, use the `tenantId` config key. The CLI will add the `f_ecom_` prefix when making SCAPI calls.
153
+
154
+ ## Inspecting Configuration
155
+
156
+ Use `b2c setup inspect` to view the resolved configuration and understand where each value comes from. Use `b2c setup instance` commands to manage named instance configurations.
157
+
158
+ > **Note:** `b2c setup config` works as an alias for `b2c setup inspect`.
159
+
160
+ ### When to Use
161
+
162
+ Use `b2c setup inspect` when you need to:
163
+
164
+ - Verify which configuration file is being used
165
+ - Check if environment variables are being read correctly
166
+ - Debug authentication failures by confirming credentials are loaded
167
+ - Understand credential source priority (dw.json vs env vars vs plugins)
168
+ - Identify hostname mismatch protection issues
169
+ - Verify MRT API key is loaded from ~/.mobify
170
+
171
+ ### View Current Configuration
172
+
173
+ ```bash
174
+ # Display resolved configuration (sensitive values masked by default)
175
+ b2c setup inspect
176
+
177
+ # View configuration for a specific instance from dw.json
178
+ b2c setup inspect -i staging
179
+
180
+ # View configuration with a specific config file
181
+ b2c setup inspect --config /path/to/dw.json
182
+ ```
183
+
184
+ ### Debug Sensitive Values
185
+
186
+ ```bash
187
+ # Reveal secrets only when the user explicitly requests their values
188
+ b2c setup inspect --unmask
189
+ ```
190
+
191
+ ### JSON Output for Scripting
192
+
193
+ ```bash
194
+ # Output as JSON for parsing in scripts
195
+ b2c setup inspect --json
196
+
197
+ # Pretty-print with jq
198
+ b2c setup inspect --json | jq '.config'
199
+
200
+ # Check which sources are loaded
201
+ b2c setup inspect --json | jq '.sources'
202
+ ```
203
+
204
+ ## IDE Integration
205
+
206
+ Use `b2c setup ide` to configure IDE tooling that consumes the resolved CLI configuration and to enable Script API IntelliSense.
207
+
208
+ ```bash
209
+ # Vendor Script API TypeScript definitions + jsconfig.json (plain VS Code, WebStorm, etc.)
210
+ b2c setup ide vscode-types
211
+
212
+ # Print the TS Server plugin path for LSP-based editors (Neovim, Helix, Zed, ...)
213
+ b2c setup ide tsserver-plugin --json
214
+ ```
215
+
216
+ The B2C DX VS Code extension needs no setup — it injects the same TypeScript Server plugin at runtime.
217
+
218
+ ## OpenShell Sandbox (Beta)
219
+
220
+ `b2c setup openshell` creates an NVIDIA OpenShell sandbox from the resolved configuration. Secrets stay on the OpenShell gateway, and the sandbox can reach only the B2C hosts in use, at the configured Safety Mode level (or `NONE` if unset); Safety Mode rules carry over. Requires the `openshell` CLI with a running gateway, and Docker.
221
+
222
+ ```bash
223
+ # Sandbox for the active instance at the configured Safety Mode level
224
+ b2c setup openshell
225
+
226
+ # Read-only sandbox
227
+ b2c setup openshell --safety-level READ_ONLY
228
+
229
+ # Allow writes but not deletes; include the MCP server
230
+ b2c setup openshell --safety-level NO_DELETE --mcp
231
+
232
+ # Write the policy, profiles, Dockerfile, and setup.sh without running anything
233
+ b2c setup openshell --dry-run
234
+
235
+ # Run a command in the sandbox
236
+ openshell sandbox exec -n b2c-<instance> -- b2c code list
237
+ ```
238
+
239
+ Edit `.openshell/<sandbox>/policy.yaml` and re-run to apply it; use `--recreate` after changing secrets or configuration. Add hosts with `--allow-host`. Only client credentials work in the sandbox (no browser login). See the [Agent Sandboxing guide](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/agent-sandboxing.md#openshell) (`b2c docs read guide-agent-sandboxing`).
240
+
241
+ ## Managing Instances
242
+
243
+ ### List Configured Instances
244
+
245
+ ```bash
246
+ # Show all instances from dw.json
247
+ b2c setup instance list
248
+
249
+ # Output as JSON
250
+ b2c setup instance list --json
251
+ ```
252
+
253
+ ### Create a New Instance
254
+
255
+ ```bash
256
+ # Interactive mode - prompts for all values
257
+ b2c setup instance create staging
258
+
259
+ # With hostname
260
+ b2c setup instance create staging --hostname staging.example.com
261
+
262
+ # Create and set as active
263
+ b2c setup instance create staging --hostname staging.example.com --active
264
+
265
+ # Optionally save SCAPI coordinates and use SCAPI-first active-version detection
266
+ b2c setup instance create staging --hostname staging.example.com \
267
+ --short-code kv7kzm78 --tenant-id zzxy_prd --api-backend auto
268
+
269
+ # Non-interactive mode (for scripts)
270
+ b2c setup instance create staging \
271
+ --hostname staging.example.com \
272
+ --username admin \
273
+ --password secret \
274
+ --force
275
+ ```
276
+
277
+ `shortCode` and `tenantId` are optional. When present with stateless OAuth, setup tries SCAPI first to detect the active code version; otherwise `auto` uses OCAPI. If detection fails, interactive setup reports the reason and allows manual code-version entry.
278
+
279
+ ### Switch Active Instance
280
+
281
+ ```bash
282
+ # Set staging as the default instance
283
+ b2c setup instance set-active staging
284
+
285
+ # Now commands use staging by default
286
+ b2c code list # Uses staging
287
+ ```
288
+
289
+ ### Remove an Instance
290
+
291
+ ```bash
292
+ # Remove with confirmation prompt
293
+ b2c setup instance remove staging
294
+
295
+ # Remove without confirmation
296
+ b2c setup instance remove staging --force
297
+ ```
298
+
299
+ ## Understanding the Output
300
+
301
+ The `setup inspect` command displays configuration organized by category:
302
+
303
+ - **Instance**: hostname, webdavHostname (if set), codeVersion
304
+ - **Authentication (Basic)**: username, password (for WebDAV)
305
+ - **Authentication (OAuth)**: clientId, clientSecret, scopes and authMethods (if set), accountManagerHost (if set)
306
+ - **Authentication (JWT Bearer)**: jwtCertPath, jwtKeyPath, jwtPassphrase (only shown when configured)
307
+ - **Authentication (SLAS)**: slasClientId, slasClientSecret (only shown when configured)
308
+ - **TLS/mTLS**: certificate, certificatePassphrase, selfSigned (only shown when configured)
309
+ - **SCAPI**: shortCode, tenantId
310
+ - **Commerce Intelligence (CIP)**: cipHost (only shown when configured)
311
+ - **On-Demand Sandbox (ODS)**: sandboxApiHost, realm (only shown when configured)
312
+ - **Managed Runtime (MRT)**: mrtProject, mrtEnvironment, mrtApiKey, mrtOrigin (if set)
313
+ - **Project**: configured deployment, content, and documentation defaults
314
+ - **Metadata**: siteId, instanceName, and projectDirectory (only shown when configured)
315
+ - **Safety**: effective level, level-based confirmation, source column, and rule count after combining instance, global-file, and environment settings (only shown when configured). `SafetyFile` identifies the global file listed in Sources; `SafetyEnv` identifies environment settings. Use `--verbose` for numbered rules in matching order with their sources, or `--json` for the complete effective safety object. Explicit confirmation rules still apply when level confirmation is disabled.
316
+ - **Sources**: List of all configuration sources that were loaded
317
+
318
+ Each value shows its source in brackets:
319
+
320
+ - `[DwJsonSource]` — Value from the primary `dw.json` file
321
+ - `[default]` — Value from the shared default `dw.json` (shown as `DwJsonSource (default)` in the Sources table)
322
+ - `[EnvSource]` — Value from an SFCC\_\* environment variable
323
+ - `[MobifySource]` — Value from ~/.mobify file
324
+ - `[PackageJsonSource]` — Value from package.json `b2c` key
325
+ - Plugin-provided source names (e.g., a credential plugin)
326
+
327
+ ## Configuration Priority
328
+
329
+ Values are resolved with this priority (highest to lowest):
330
+
331
+ 1. CLI flags and environment variables (shell, then env file `SFCC_*`/`MRT_*`)
332
+ 2. Plugin sources (high priority)
333
+ 3. dw.json file
334
+ 4. Storefront Next variables (fallbacks)
335
+ 5. ~/.mobify file (MRT API key only)
336
+ 6. Plugin sources (low priority)
337
+ 7. package.json `b2c` key
338
+
339
+ When troubleshooting, check the source column to understand which configuration is taking precedence.
340
+
341
+ ## Project Defaults in package.json
342
+
343
+ Put non-sensitive defaults shared by the project under the `b2c` key. `siteId` supplies the default site/channel for commands that accept configured site context. For content commands, set `contentLibrary` and list the same ID with `siteLibrary: true` when it is the site's private library:
344
+
345
+ ```json
346
+ {
347
+ "b2c": {
348
+ "siteId": "RefArch",
349
+ "contentLibrary": "RefArch",
350
+ "libraries": [{"id": "RefArch", "siteLibrary": true}]
351
+ }
352
+ }
353
+ ```
354
+
355
+ With this configuration, `b2c content list` and `b2c content export homepage` default to the `RefArch` site-private library without `--library` or `--site-library`. CLI flags, environment variables, and `dw.json` remain higher-priority overrides. Keep credentials, passwords, secrets, hostnames, and other environment-specific connection data out of `package.json`.
356
+
357
+ ## Troubleshooting
358
+
359
+ **Always start with `b2c setup inspect`** — it shows resolved values and their sources. Keep masking enabled; use `--json` for scripting. If a value isn't where you expect, the source column will tell you which file/env var/plugin won.
360
+
361
+ ### Command says "credentials required" or "client-id is required"
362
+
363
+ - The CLI is not finding `clientId`/`clientSecret`. Run `b2c setup inspect` and check the OAuth section.
364
+ - Check the selected configuration path and sources; defaults are project-local `dw.json` then the shared global default, without a parent-directory search.
365
+ - Confirm `SFCC_CLIENT_ID`/`SFCC_CLIENT_SECRET` env vars are exported in _this_ shell, not just defined elsewhere.
366
+ - Credential groups are **atomic**: if `clientId` comes from one source and `clientSecret` from a lower-priority one, the lower-priority secret is discarded. Provide both from the same source, or use a higher-priority override.
367
+
368
+ ### Command targets the wrong instance
369
+
370
+ - `b2c setup inspect` will show the resolved hostname and its source.
371
+ - For multi-instance `dw.json`, the `active: true` config is used by default. Override with `-i <name>` per-command, or change the default with `b2c setup instance set-active <name>`.
372
+ - `SFCC_SERVER` (or any env var) overrides `dw.json`. Unset it if you want `dw.json` to win.
373
+ - **Hostname mismatch protection:** if you pass `--server` (or `SFCC_SERVER`) that differs from the `dw.json` hostname, the CLI ignores **all** other values from `dw.json` to prevent mixing credentials across instances. Either match the hostname or pass full credentials explicitly.
374
+
375
+ ### `dw.json` is not being picked up
376
+
377
+ - Check the `Sources` block from `b2c setup inspect` — if `DwJsonSource` isn't listed, the file wasn't found.
378
+ - The CLI uses the selected project directory, not a parent-directory search. Run from your project root, set `SFCC_PROJECT_DIRECTORY`, or pass `--config /path/to/dw.json`.
379
+ - Ensure the file is valid JSON (a parse error silently skips it).
380
+ - Field name casing doesn't matter — both `clientId` and `client-id` work. See "dw.json Key Casing" above.
381
+
382
+ ### 401/403 errors on SCAPI/OCAPI calls
383
+
384
+ - Confirm the resolved `clientId`/`clientSecret` belong to the _target_ instance (Account Manager scopes the API client per tenant).
385
+ - Check OAuth scopes: required scopes vary by command (e.g., `sfcc.cdn-zones`, `sfcc.orders`). Pass `--auth-scope` or set `SFCC_OAUTH_SCOPES`.
386
+ - For SCAPI commands, verify `tenantId` is correct — tenant IDs use underscores (`zzxy_001`), hostnames use hyphens (`zzxy-001`). The CLI normalizes between them, but a wrong tenant ID will produce 403s.
387
+
388
+ ### Missing `tenantId` / `shortCode`
389
+
390
+ - These resolve from `dw.json`, `SFCC_TENANT_ID`/`SFCC_SHORTCODE`, or `package.json`. Run `b2c setup inspect` to see which source provided them.
391
+ - For sandboxes, `tenantId` is derived from the hostname (replace `-` with `_`): `zzxy-001.dx...` → `zzxy_001`. The reverse also applies: with a sandbox tenant ID and no hostname, the hostname is derived.
392
+
393
+ ### MRT commands say "API key required"
394
+
395
+ - `MRT_API_KEY` (or `SFCC_MRT_API_KEY`) env var, or `~/.mobify` file (`{ "api_key": "..." }`).
396
+ - When using `--cloud-origin <host>`, the CLI looks for `~/.mobify--<host>` instead of plain `~/.mobify`.
397
+
398
+ ### Sensitive values masked in `setup inspect`
399
+
400
+ - By default secrets show as `admi...REDACTED`. Keep masking enabled for routine troubleshooting. Use `--unmask` only when the user explicitly requests secret values.
401
+
402
+ ### Missing values
403
+
404
+ - If a field shows `-`, no source provided it. Check spelling in `dw.json`, env var presence, and plugin output. Remember: `clientSecret`, `password`, and `mrtApiKey` cannot be set via `package.json` — use `dw.json` or env vars.
405
+
406
+ ### Wrong source taking precedence
407
+
408
+ - Review the priority list in "How the CLI Discovers Configuration" above. Common surprise: env vars (or a `.env` file) override `dw.json`, and an env file `SFCC_SERVER` with a different hostname skips the `dw.json` entry entirely. Storefront Next variables never override `dw.json`.
409
+
410
+ ### Still stuck
411
+
412
+ Compare two outputs:
413
+
414
+ ```bash
415
+ b2c setup inspect --json > expected.json # in a known-good shell
416
+ # ... run the failing command in the broken shell, then:
417
+ b2c setup inspect --json > actual.json
418
+ diff expected.json actual.json
419
+ ```
420
+
421
+ The diff usually points directly at the missing or overridden field.
422
+
423
+ ## Getting Admin OAuth Tokens
424
+
425
+ Use `b2c auth token` to get an admin OAuth access token for Account Manager credentials (OCAPI and Admin APIs). This is useful for testing APIs, scripting, or CI/CD pipelines.
426
+
427
+ ```bash
428
+ # Get access token (outputs raw token to stdout)
429
+ b2c auth token
430
+
431
+ # Get token with browser-based auth
432
+ b2c auth token --user-auth
433
+
434
+ # Get token with specific scopes (accepts multiple: repeat --auth-scope or comma-separate)
435
+ b2c auth token --auth-scope sfcc.orders --auth-scope sfcc.products
436
+ b2c auth token --auth-scope "sfcc.orders,sfcc.products"
437
+
438
+ # Get token as JSON (includes expiration and scopes)
439
+ b2c auth token --json
440
+
441
+ # Use in curl for OCAPI calls
442
+ curl -H "Authorization: Bearer $(b2c auth token)" \
443
+ "https://your-instance.dx.commercecloud.salesforce.com/s/-/dw/data/v24_1/sites"
444
+ ```
445
+
446
+ The token is obtained using the `clientId` and `clientSecret` from your configuration (dw.json or environment variables). If only `clientId` is configured, or `--user-auth` is used, an implicit OAuth flow is used (browser-based).
447
+
448
+ **Note:** This command returns **admin** tokens for OCAPI/Admin APIs. For **shopper** tokens (SLAS), see the `b2c-slas` skill.
449
+
450
+ > **Calling SCAPI Admin APIs (system or custom)?** The token must carry the tenant scope `SALESFORCE_COMMERCE_API:<tenant_id>` **plus** the API-specific scopes. `b2c auth token` does not add the tenant scope for you (unlike the SCAPI subcommands such as `b2c scapi custom status`), so pass it explicitly:
451
+ >
452
+ > ```bash
453
+ > b2c auth token \
454
+ > --auth-scope "SALESFORCE_COMMERCE_API:zzpq_013" \
455
+ > --auth-scope sfcc.orders --auth-scope sfcc.products.rw
456
+ > ```
457
+ >
458
+ > See the `b2c:b2c-scapi-admin` and `b2c:b2c-custom-api-development` skills for details.
459
+
460
+ ## More Commands
461
+
462
+ See `b2c setup --help` for other setup commands including `b2c setup skills` for AI agent skill installation.
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: b2c-content
3
+ description: Export, list, and validate Page Designer content from B2C Commerce libraries. Use this skill whenever the user needs to export Page Designer pages, components, or content blocks, list pages in a content library, validate page JSON or metadefinitions, discover page IDs, migrate content between instances, or work with library XML offline. Also use when extracting content for review or building content deployment pipelines -- even if they just say 'export the homepage' or 'what pages are in the shared library'.
4
+ ---
5
+
6
+ # B2C Content Skill
7
+
8
+ Use the `b2c` CLI to export, list, and validate Page Designer content from Salesforce B2C Commerce content libraries.
9
+
10
+ > **Tip:** If `b2c` is not installed globally, use `npx @salesforce/b2c-cli` instead (e.g., `npx @salesforce/b2c-cli content export homepage`).
11
+
12
+ ## Configuration & Authentication
13
+
14
+ The CLI auto-discovers the target instance and credentials from `SFCC_*` environment variables (including project `.env`), the selected project-local or shared `dw.json`, and configuration plugins. `package.json` supplies only non-sensitive defaults. **Flags like `--server`, `--client-id`, `--client-secret`, `--username`, and `--password` are usually unnecessary** — only pass them to override what's auto-detected.
15
+
16
+ Run `b2c setup inspect` to see the resolved configuration and which source provided each value (use `--json` for scripting; secrets stay masked by default). For precedence rules and troubleshooting, see the `b2c-cli:b2c-config` skill.
17
+
18
+ Online export/list starts a system export job: SCAPI uses `sfcc.jobs.rw` plus the tenant scope; WebDAV downloads the archive and assets. `--api-backend ocapi` forces OCAPI; `auto` permits fallback. If an error only mentions OCAPI, retry with `--api-backend scapi` to expose the SCAPI failure before assuming OCAPI permissions are needed.
19
+
20
+ ## Examples
21
+
22
+ ### Export Pages
23
+
24
+ ```bash
25
+ # export a single page from a shared library
26
+ b2c content export homepage --library SharedLibrary
27
+
28
+ # export multiple pages
29
+ b2c content export homepage about-us contact --library SharedLibrary
30
+
31
+ # export pages matching a regex pattern
32
+ b2c content export "hero-.*" --library SharedLibrary --regex
33
+
34
+ # export to a specific output directory
35
+ b2c content export homepage --library SharedLibrary -o ./my-export
36
+
37
+ # export a specific component by ID
38
+ b2c content export hero-banner --library SharedLibrary
39
+
40
+ # export a content block (reusable fragment) by ID
41
+ b2c content export DiscoverContentBlock --library RefArch --site-library
42
+
43
+ # export from a site-private library
44
+ b2c content export homepage --library RefArch --site-library
45
+
46
+ # preview without downloading (dry run)
47
+ b2c content export homepage --library SharedLibrary --dry-run
48
+
49
+ # export with JSON output
50
+ b2c content export homepage --library SharedLibrary --json
51
+
52
+ # export from a local XML file (offline, no instance needed)
53
+ b2c content export homepage --library SharedLibrary --library-file ./library.xml --offline
54
+
55
+ # filter pages by folder classification
56
+ b2c content export homepage --library SharedLibrary --folder seasonal
57
+
58
+ # custom asset extraction paths
59
+ b2c content export homepage --library SharedLibrary -q "image.path" -q "video.url"
60
+
61
+ # include orphan components in export
62
+ b2c content export homepage --library SharedLibrary --keep-orphans
63
+ ```
64
+
65
+ ### Export Directly into an Import-Set Migration
66
+
67
+ The focused content exporter writes standard archive-relative `libraries/` or site-library files directly into the directory passed to `--output`; unlike `b2c job export`, it does not add a generated `*_export` wrapper. Preview first, then use the final timestamped migration directory and review the exported XML and assets in place:
68
+
69
+ ```bash
70
+ b2c content export homepage --library SharedLibrary --dry-run --show-tree
71
+ b2c content export homepage \
72
+ --library SharedLibrary \
73
+ --output migrations/20260815T120000-update-homepage
74
+ ```
75
+
76
+ For a site-private library, configure or pass `--site-library`. Do not require a temporary directory and copy step. Never write into an existing or applied migration. See `b2c-cli:b2c-import-set-migrations` for archive identity, trimming, and deployment rules.
77
+
78
+ ### List Content
79
+
80
+ ```bash
81
+ # list all content in a library
82
+ b2c content list --library SharedLibrary
83
+
84
+ # list only pages
85
+ b2c content list --library SharedLibrary --type page
86
+
87
+ # list content blocks (reusable fragments; includes unlinked blocks)
88
+ b2c content list --library SharedLibrary --type fragment
89
+
90
+ # list including components
91
+ b2c content list --library SharedLibrary --components
92
+
93
+ # show tree structure
94
+ b2c content list --library SharedLibrary --tree
95
+
96
+ # list from a site-private library
97
+ b2c content list --library RefArch --site-library
98
+
99
+ # list from a local XML file
100
+ b2c content list --library SharedLibrary --library-file ./library.xml
101
+
102
+ # JSON output
103
+ b2c content list --library SharedLibrary --json
104
+ ```
105
+
106
+ ### Content Blocks
107
+
108
+ Content blocks are Page Designer "content blocks" — reusable `fragment.*`-typed content that is **shared** across pages (one definition, linked from many places). They are listed distinctly in the tree as `(CONTENT BLOCK)`, counted separately in export summaries, and can be exported by ID like a component (a Layout content block keeps its region children). `b2c content list --type fragment` shows the deduplicated catalog of every content block in a library, including blocks not currently linked to any page.
109
+
110
+ ### Configuration
111
+
112
+ The `--library` flag can be configured in `dw.json` or `package.json` so you don't need to pass it every time:
113
+
114
+ ```json
115
+ // dw.json
116
+ {
117
+ "hostname": "my-sandbox.demandware.net",
118
+ "content-library": "SharedLibrary"
119
+ }
120
+ ```
121
+
122
+ ```json
123
+ // package.json
124
+ {
125
+ "b2c": {
126
+ "contentLibrary": "SharedLibrary"
127
+ }
128
+ }
129
+ ```
130
+
131
+ With a configured library, commands become shorter:
132
+
133
+ ```bash
134
+ b2c content export homepage
135
+ b2c content list --type page
136
+ ```
137
+
138
+ ### Validate Metadefinitions
139
+
140
+ ```bash
141
+ # validate a single metadefinition file
142
+ b2c content validate cartridge/experience/pages/storePage.json
143
+
144
+ # validate all metadefinitions in a directory recursively
145
+ b2c content validate cartridge/experience/
146
+
147
+ # validate with a glob pattern
148
+ b2c content validate 'cartridge/experience/**/*.json'
149
+
150
+ # explicitly specify the schema type
151
+ b2c content validate --type componenttype mycomponent.json
152
+
153
+ # JSON output for CI/scripting
154
+ b2c content validate cartridge/experience/ --json
155
+ ```
156
+
157
+ Schema types are auto-detected from file paths (`experience/pages/` → pagetype, `experience/components/` → componenttype) and from JSON content. Use `--type` to override.
158
+
159
+ ### More Commands
160
+
161
+ See `b2c content --help` for a full list of available commands and options in the `content` topic.
162
+
163
+ ## Troubleshooting
164
+
165
+ - **"Library is required"** -- Set `--library` flag or configure `content-library` in `dw.json`.
166
+ - **Authentication errors** -- Inspect resolved configuration first. SCAPI needs client-credentials or JWT authentication with `sfcc.jobs.rw` and the tenant scope; browser login is OCAPI/WebDAV-only. Use `b2c-cli:b2c-config` for setup. `--library-file` skips the remote export job; add `--offline` to skip asset downloads too.
167
+ - **Library not found** -- Verify the library ID matches exactly. For site-private libraries, add `--site-library`.
168
+ - **No content found** -- Check that the page/content IDs exist. Use `b2c content list` to discover available IDs.
169
+ - **Timeout errors** -- Large libraries may exceed the default timeout. Use `--timeout <seconds>` to increase it.
170
+
171
+ ## Related Skills
172
+
173
+ - `b2c-cli:b2c-import-set-migrations` - Ordered, idempotent migrations built from focused content exports
174
+ - `b2c-cli:b2c-site-import-export` - Site archive import/export operations
175
+ - `b2c-cli:b2c-webdav` - Low-level file operations on content libraries
176
+ - `b2c-cli:b2c-config` - Configuration and credential management