From 2bf28dd9958e48c913d58116a4ebf34c0e408b36 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2026 14:34:38 +0000 Subject: [PATCH 1/2] chore: version packages --- .changeset/RELEASE | 2 +- .changeset/admin-operator-runbooks.md | 9 -- .changeset/api-browser-setup-help.md | 5 - .changeset/bm-users-create.md | 5 - .changeset/calm-orders-authorize.md | 5 - .changeset/cip-mcp-analytics.md | 10 -- .changeset/configuration-guide-accuracy.md | 6 -- .../controller-embedded-component-types.md | 5 - .changeset/docs-release-notes.md | 5 - .../fix-scapi-system-job-configuration.md | 6 -- .../fix-vscode-global-instance-selection.md | 7 -- .changeset/mcp-debugger-screenshot.md | 7 -- .changeset/mcp-embedded-skills-and-tools.md | 11 --- .changeset/mcp-instance-file-workflows.md | 7 -- .changeset/mcp-operational-snippets.md | 7 -- .changeset/mcp-project-instructions.md | 6 -- .changeset/mcp-skill-resource-discovery.md | 5 - .../mrt-backend-env-and-legacy-probe.md | 5 - .changeset/mrt-backend-flag.md | 9 -- .changeset/mrt-bundle-upload-v2.md | 11 --- .changeset/mrt-flag-char-deconfliction.md | 10 -- .changeset/mrt-read-only-mode.md | 5 - .changeset/mrt-skill-sfcc-backend-doc.md | 5 - .changeset/mrt-storefront-alias.md | 18 ---- .changeset/preserve-nightly-sdk-version.md | 5 - .changeset/scapi-code-mode.md | 13 --- .changeset/scapi-migration.md | 19 ---- .../scapi-ocapi-deprecation-detection.md | 10 -- .changeset/slas-get-config-client.md | 8 -- .changeset/slas-shopper-http-middleware.md | 7 -- .changeset/slas-token-correlation-debug.md | 5 - .../storefront-next-canonical-guidance.md | 7 -- .changeset/toolkit-docs-redesign.md | 6 -- .claude-plugin/marketplace.json | 14 +-- docs/CHANGELOG.md | 60 +++++++++++ docs/package.json | 2 +- packages/b2c-cli/CHANGELOG.md | 59 +++++++++++ packages/b2c-cli/package.json | 2 +- packages/b2c-dx-mcp/CHANGELOG.md | 34 +++++++ packages/b2c-dx-mcp/package.json | 2 +- packages/b2c-tooling-sdk/CHANGELOG.md | 99 +++++++++++++++++++ packages/b2c-tooling-sdk/package.json | 6 +- packages/b2c-vs-extension/CHANGELOG.md | 29 ++++++ packages/b2c-vs-extension/package.json | 2 +- plugins/b2c-dx-mcp/.codex-plugin/plugin.json | 15 ++- plugins/b2c-dx-mcp/.mcp.json | 5 +- plugins/b2c-dx-mcp/mcp.json | 5 +- plugins/b2c-dx-mcp/plugin.json | 11 ++- schemas/CHANGELOG.md | 11 +++ schemas/package.json | 13 ++- skills/CHANGELOG.md | 78 +++++++++++++++ skills/b2c-cli/.codex-plugin/plugin.json | 2 +- skills/b2c-cli/plugin.json | 2 +- skills/b2c-ops/.codex-plugin/plugin.json | 15 ++- skills/b2c-ops/plugin.json | 15 ++- skills/b2c/.codex-plugin/plugin.json | 2 +- skills/b2c/plugin.json | 2 +- skills/package.json | 2 +- .../storefront-next/.codex-plugin/plugin.json | 2 +- skills/storefront-next/plugin.json | 2 +- 60 files changed, 456 insertions(+), 286 deletions(-) delete mode 100644 .changeset/admin-operator-runbooks.md delete mode 100644 .changeset/api-browser-setup-help.md delete mode 100644 .changeset/bm-users-create.md delete mode 100644 .changeset/calm-orders-authorize.md delete mode 100644 .changeset/cip-mcp-analytics.md delete mode 100644 .changeset/configuration-guide-accuracy.md delete mode 100644 .changeset/controller-embedded-component-types.md delete mode 100644 .changeset/docs-release-notes.md delete mode 100644 .changeset/fix-scapi-system-job-configuration.md delete mode 100644 .changeset/fix-vscode-global-instance-selection.md delete mode 100644 .changeset/mcp-debugger-screenshot.md delete mode 100644 .changeset/mcp-embedded-skills-and-tools.md delete mode 100644 .changeset/mcp-instance-file-workflows.md delete mode 100644 .changeset/mcp-operational-snippets.md delete mode 100644 .changeset/mcp-project-instructions.md delete mode 100644 .changeset/mcp-skill-resource-discovery.md delete mode 100644 .changeset/mrt-backend-env-and-legacy-probe.md delete mode 100644 .changeset/mrt-backend-flag.md delete mode 100644 .changeset/mrt-bundle-upload-v2.md delete mode 100644 .changeset/mrt-flag-char-deconfliction.md delete mode 100644 .changeset/mrt-read-only-mode.md delete mode 100644 .changeset/mrt-skill-sfcc-backend-doc.md delete mode 100644 .changeset/mrt-storefront-alias.md delete mode 100644 .changeset/preserve-nightly-sdk-version.md delete mode 100644 .changeset/scapi-code-mode.md delete mode 100644 .changeset/scapi-migration.md delete mode 100644 .changeset/scapi-ocapi-deprecation-detection.md delete mode 100644 .changeset/slas-get-config-client.md delete mode 100644 .changeset/slas-shopper-http-middleware.md delete mode 100644 .changeset/slas-token-correlation-debug.md delete mode 100644 .changeset/storefront-next-canonical-guidance.md delete mode 100644 .changeset/toolkit-docs-redesign.md create mode 100644 schemas/CHANGELOG.md diff --git a/.changeset/RELEASE b/.changeset/RELEASE index 30d903933..1f0c30731 100644 --- a/.changeset/RELEASE +++ b/.changeset/RELEASE @@ -1 +1 @@ -Tue Aug 25 15:42:11 UTC 2026 +Tue Sep 15 14:34:37 UTC 2026 diff --git a/.changeset/admin-operator-runbooks.md b/.changeset/admin-operator-runbooks.md deleted file mode 100644 index c2e81e45a..000000000 --- a/.changeset/admin-operator-runbooks.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@salesforce/b2c-agent-plugins': minor -'@salesforce/b2c-dx-mcp': minor -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-cli': minor -'@salesforce/b2c-dx-docs': patch ---- - -Add b2c-ops runbooks for job health, checkout and failed-order investigation, and incident triage, available as a skills plugin, through CLI installation, and included in the MCP. Add an Operations guide with example requests, recovery checks, and handoffs to administrators, developers, providers, or Salesforce Support. diff --git a/.changeset/api-browser-setup-help.md b/.changeset/api-browser-setup-help.md deleted file mode 100644 index de2662ec7..000000000 --- a/.changeset/api-browser-setup-help.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'b2c-vs-extension': patch ---- - -Add in-editor API Browser setup help for Admin and Shopper connections. Remove misleading Swagger authorization controls and show token failures with guidance instead of leaving authentication pending. diff --git a/.changeset/bm-users-create.md b/.changeset/bm-users-create.md deleted file mode 100644 index 898c6acd4..000000000 --- a/.changeset/bm-users-create.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-cli': minor ---- - -Add `b2c bm users create` to create a Business Manager user (create-or-replace), rounding out the `bm users` lifecycle alongside list/get/search/update/delete. Runs over SCAPI with OCAPI fallback like the other `bm users` commands. Flags: `--email` (required), `--first-name`, `--last-name`, `--external-id`, `--password`, `--role` (repeatable), `--disabled`, and preferred locales. Note that most instances use SSO with Account Manager and reject creating *local* BM users with `LocalUserCreationException` — creation succeeds only when the instance is configured to allow local users. diff --git a/.changeset/calm-orders-authorize.md b/.changeset/calm-orders-authorize.md deleted file mode 100644 index 268d7fd23..000000000 --- a/.changeset/calm-orders-authorize.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-agent-plugins': patch ---- - -Lead SCAPI checkout guidance with the documented order payment-instrument authorization, placement, and failure lifecycle while retaining single-phase order hook orchestration as an option. diff --git a/.changeset/cip-mcp-analytics.md b/.changeset/cip-mcp-analytics.md deleted file mode 100644 index 7eaca36a0..000000000 --- a/.changeset/cip-mcp-analytics.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@salesforce/b2c-dx-mcp': minor -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-agent-plugins': patch -'@salesforce/b2c-dx-docs': patch ---- - -Analyze B2C Commerce sales, merchandising, and technical trends directly through MCP with CIP report discovery and SQL queries. Includes analytics skills, shared configuration and Safety Mode support, and bounded, cancellable queries without a separate CLI installation. - -Report discovery includes source tables and sales metric definitions. Sales, payment, and promotion reports return unavailable averages for zero-count groups instead of failing on division by zero. diff --git a/.changeset/configuration-guide-accuracy.md b/.changeset/configuration-guide-accuracy.md deleted file mode 100644 index 8a13844e4..000000000 --- a/.changeset/configuration-guide-accuracy.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-tooling-sdk': patch ---- - -Refresh the shared configuration guide with complete SLAS and instance settings, clearer connection examples, and corrected authentication and credential precedence guidance on the site and in documentation search. diff --git a/.changeset/controller-embedded-component-types.md b/.changeset/controller-embedded-component-types.md deleted file mode 100644 index ad8487b0c..000000000 --- a/.changeset/controller-embedded-component-types.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': minor ---- - -Allow `embedded: true` component types on `arch_type: controller`. Previously the component type schema required `arch_type` to be `headless` whenever `embedded` was `true`; embedded content blocks (ECBs) are now supported on both headless and controller storefronts. The `embedded` ⟺ `component_id` requirement is unchanged. diff --git a/.changeset/docs-release-notes.md b/.changeset/docs-release-notes.md deleted file mode 100644 index e059e4008..000000000 --- a/.changeset/docs-release-notes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-dx-docs': patch ---- - -Add searchable release notes with product filters, shared updates, and optional release highlights. Include published releases from July 2026 onward, with links to older releases on GitHub. diff --git a/.changeset/fix-scapi-system-job-configuration.md b/.changeset/fix-scapi-system-job-configuration.md deleted file mode 100644 index e347b89eb..000000000 --- a/.changeset/fix-scapi-system-job-configuration.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': patch -'@salesforce/b2c-agent-plugins': patch ---- - -Fix SCAPI system-job requests so site archive imports and exports, including Page Designer content exports, use the required configuration format. Preserve OCAPI compatibility retries and clarify content authentication guidance. diff --git a/.changeset/fix-vscode-global-instance-selection.md b/.changeset/fix-vscode-global-instance-selection.md deleted file mode 100644 index 365d08b3c..000000000 --- a/.changeset/fix-vscode-global-instance-selection.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'b2c-vs-extension': patch -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-tooling-sdk': patch ---- - -Made VS Code instance selection workspace-specific by default, with explicit actions to set or follow the shared default without unexpectedly changing other tools and workspaces. Opening an instance's configuration now reveals its exact named entry. diff --git a/.changeset/mcp-debugger-screenshot.md b/.changeset/mcp-debugger-screenshot.md deleted file mode 100644 index fd7aec7f4..000000000 --- a/.changeset/mcp-debugger-screenshot.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@salesforce/b2c-dx-docs': patch ---- - -Illustrate homepage and MCP workflows with debugging, order-investigation, promotion-review, and product-creation screenshots. Replace CLI sandbox and import-set placeholders with readable terminal captures. - -Label B2C Ops skills and administrator tooling as beta. diff --git a/.changeset/mcp-embedded-skills-and-tools.md b/.changeset/mcp-embedded-skills-and-tools.md deleted file mode 100644 index 32a5059fa..000000000 --- a/.changeset/mcp-embedded-skills-and-tools.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@salesforce/b2c-dx-mcp': major -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-agent-plugins': patch -'@salesforce/b2c-dx-docs': patch -'b2c-vs-extension': patch ---- - -Add embedded Commerce skills through MCP resources and searchable `skills_read`, with focused configuration, authentication, and workflow guidance and consistent CLI/MCP recommendations. Enable all toolsets by default, streamline debugging and logging, identify tool effects for client approval controls, and support MCP 2026-07-28 alongside earlier clients. Include concise installation, capabilities, configuration, and security documentation. - -Update explicit tool selections to use `debug_control`, `debug_inspect`, `logs_watch`, and `mrt_logs_watch`; remove `pwakit_get_guidelines` and `scapi_custom_api_generate_scaffold`. Remove `--allow-non-ga-tools` from launch commands. Use `--toolsets` or `--tools` to customize the catalog and `b2c scaffold generate custom-api` for local scaffolding. diff --git a/.changeset/mcp-instance-file-workflows.md b/.changeset/mcp-instance-file-workflows.md deleted file mode 100644 index 08a3bce35..000000000 --- a/.changeset/mcp-instance-file-workflows.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@salesforce/b2c-dx-mcp': minor -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-dx-docs': patch ---- - -Add MCP tools to browse instance files, read exact logs, and upload or download files without a separate CLI. Cartridge deployment now supports selected files and explicit code versions, with clearer reporting when uploads succeed but reload or cleanup fails. diff --git a/.changeset/mcp-operational-snippets.md b/.changeset/mcp-operational-snippets.md deleted file mode 100644 index eb957bcb8..000000000 --- a/.changeset/mcp-operational-snippets.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-dx-mcp': patch -'@salesforce/b2c-agent-plugins': patch ---- - -Add reusable workflows for job history, execution steps, code versions, and site cartridge paths. Update MCP task guidance and operational runbooks to use these workflows and exact job-log reads with less reliance on the CLI. diff --git a/.changeset/mcp-project-instructions.md b/.changeset/mcp-project-instructions.md deleted file mode 100644 index 8196fdb18..000000000 --- a/.changeset/mcp-project-instructions.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-tooling-sdk': patch ---- - -Add a Project Setup guide with optional assistant instructions and team conventions for MCP and standalone skills users, linked from the product pages and available through documentation search. diff --git a/.changeset/mcp-skill-resource-discovery.md b/.changeset/mcp-skill-resource-discovery.md deleted file mode 100644 index 1c2d88635..000000000 --- a/.changeset/mcp-skill-resource-discovery.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-dx-mcp': patch ---- - -Clarify how assistants discover tools and read bundled MCP skills, distinguishing resource reads from native assistant skill commands. diff --git a/.changeset/mrt-backend-env-and-legacy-probe.md b/.changeset/mrt-backend-env-and-legacy-probe.md deleted file mode 100644 index 6f65b53b2..000000000 --- a/.changeset/mrt-backend-env-and-legacy-probe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': patch ---- - -Fix two `b2c mrt` backend-selection issues. `SFCC_MRT_BACKEND` is now honored by `mrt` commands (previously only the unprefixed `MRT_BACKEND` was read, unlike the other `SFCC_`-prefixed MRT env vars). And `--mrt-backend legacy` no longer emits a spurious SCAPI `[StatefulAuth]` warning — the SCAPI backend is no longer probed when it cannot be used. diff --git a/.changeset/mrt-backend-flag.md b/.changeset/mrt-backend-flag.md deleted file mode 100644 index b114d12f0..000000000 --- a/.changeset/mrt-backend-flag.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@salesforce/b2c-cli': minor -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-agent-plugins': patch ---- - -Add a `--mrt-backend` flag (`auto` | `legacy` | `scapi`, default `auto`; also `MRT_BACKEND` env var or `mrtBackend` in `dw.json`) to `b2c mrt` commands. It lets `mrt bundle history` and `mrt bundle deploy ` run over the SCAPI Storefront Deployments API (OAuth, scopes `sfcc.storefront.deployments[.rw]`) instead of the legacy MRT Cloud API (per-user API key). `auto` prefers SCAPI when `--short-code`/`--tenant-id` and client-credentials or JWT Bearer auth are configured, otherwise uses legacy, and falls back to legacy on safe pre-execution errors (surfacing the SCAPI error instead when no legacy credentials are configured, so the real failure isn't masked); `scapi` never silently falls back. All other MRT commands — and `mrt bundle deploy`'s local-build push path — remain on the legacy backend. - -Under `--json`, these commands return the serving backend's native response verbatim (legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`) — the human-readable table is normalized across backends, but `--json` is not, so pin `legacy` or `scapi` when a script needs a stable shape. Legacy-only flags (`--api-key`, `--cloud-origin`, `--credentials-file`) now print a warning under `--mrt-backend scapi` (where the legacy backend that honors them never runs). `--project` also gains a `--storefront` / `-s` alias for the SCAPI storefront ID. diff --git a/.changeset/mrt-bundle-upload-v2.md b/.changeset/mrt-bundle-upload-v2.md deleted file mode 100644 index 5733a5ec5..000000000 --- a/.changeset/mrt-bundle-upload-v2.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@salesforce/b2c-cli': minor -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-agent-plugins': patch ---- - -Add `b2c mrt bundle upload-v2` for building and uploading v2-format Managed Runtime bundles. The v2 archive is a gzip tar whose files live under a configurable root directory (default `bld/`) with the SSR configuration written inside the archive at `{root-dir}/{config-path}` (default `bld/.mrt/config.json`), uploaded as multipart/form-data. This command is upload-only — deploy the returned bundle ID with `b2c mrt bundle deploy -e `. Every server-side parameter (root dir, config path, match mode, SSR patterns/parameters, dependencies, and CC overrides) is exposed as a flag. The SDK adds matching `createBundleV2`, `pushBundleV2`, and `uploadBundleV2` operations. - -Bundle commands now read SSR configuration (`ssrOnly`/`ssrShared`/`ssrParameters`) from `config.server.ts` in the project directory, loaded straight from source, so it no longer needs to be compiled into the build output. Use `--project-directory` to point at a project other than the current directory (a compiled `config.server.js`/`config.server.mjs` and the legacy `build/config.server.js` are still accepted). For `upload-v2`, an on-disk v2 config file (`{build-dir}/{config-path}`) still takes precedence when present; command flags override the resolved values per key. The SDK's `createBundle`/`createBundleV2` gain a `projectDirectory` option for this. - -Bundles now include the project's declared dependencies as bundle metadata (v1 `bundle_metadata.dependencies`; v2 `bundleMetadata.dependencies` inside the archive config), derived from the project `package.json` (`dependencies` + `devDependencies`) — matching pwa-kit/storefront-next. Explicitly provided dependencies (v2 `--dependencies`) or dependencies already present in the v2 config file take precedence; collection is best-effort and never blocks a bundle if `package.json` is missing or unreadable. diff --git a/.changeset/mrt-flag-char-deconfliction.md b/.changeset/mrt-flag-char-deconfliction.md deleted file mode 100644 index 065a14931..000000000 --- a/.changeset/mrt-flag-char-deconfliction.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@salesforce/b2c-cli': major -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-agent-plugins': patch ---- - -De-conflict short flags on the `mrt` command surface so each `-x` means one thing: - -- `--cloud-origin` moved from `-o` to `-u`, freeing `-o` for `--organization` (`mrt project create` / `list`) and `--output` (`mrt bundle download`) — which previously shadowed the base flag. **Breaking:** update any scripts passing `-o` for the cloud origin; the long form `--cloud-origin` is unchanged. -- `mrt project notification create` / `update`: `--target` (the notification's target-environment list) now also accepts `--environment` / `-e` as aliases, since a notification target _is_ an environment. These two commands no longer expose the standalone single-value `--environment` flag — it was unused there and its `--target` alias collided with the command's own `--target`. diff --git a/.changeset/mrt-read-only-mode.md b/.changeset/mrt-read-only-mode.md deleted file mode 100644 index d14eb8958..000000000 --- a/.changeset/mrt-read-only-mode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': minor ---- - -MRT commands are now aware of Managed Runtime maintenance (read-only) mode. Read commands (list, get) print a non-blocking warning but still run, while write commands (deploys, bundle uploads, environment changes) are blocked with a clear, actionable error instead of a raw API response — both pointing to the Managed Runtime Admin status page for current status and ETA. diff --git a/.changeset/mrt-skill-sfcc-backend-doc.md b/.changeset/mrt-skill-sfcc-backend-doc.md deleted file mode 100644 index 6369ad072..000000000 --- a/.changeset/mrt-skill-sfcc-backend-doc.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-agent-plugins': patch ---- - -Document `SFCC_MRT_BACKEND` as a supported way to select the `b2c mrt` backend (alongside `MRT_BACKEND`) in the b2c-mrt skill. diff --git a/.changeset/mrt-storefront-alias.md b/.changeset/mrt-storefront-alias.md deleted file mode 100644 index 4e158e909..000000000 --- a/.changeset/mrt-storefront-alias.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -'@salesforce/b2c-cli': major -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-agent-plugins': patch ---- - -Add `storefront` as an alias for `project` across the `mrt` command surface, matching the terminology of the SCAPI MRT API. `b2c mrt storefront ` now works identically to `b2c mrt project ` (including the `member` and `notification` subtopics), and `--storefront` / `-s` are accepted anywhere `--project` / `-p` is. The new `MRT_STOREFRONT` / `SFCC_MRT_STOREFRONT` environment variables act as fallbacks for `MRT_PROJECT` / `SFCC_MRT_PROJECT`. The `project` / `--project` (`-p`) forms and the existing `MRT_PROJECT` variables continue to work unchanged. - -`-s` now uniformly means `--project` / `--storefront` on **every** `mrt` command. To make that consistent, two commands changed their own short flags (**breaking**): - -- `mrt project create` no longer has a `--slug` flag. Set the new project's slug with `--project` / `--storefront` (`-p` / `-s`) instead — e.g. `b2c mrt project create "My Storefront" -o my-org -s my-storefront`. When omitted, MRT auto-generates the slug from the name (unchanged). **Update any scripts using `--slug`.** -- `mrt bundle save` moved `--save-dir` from `-s` to `-d`, freeing `-s` for the storefront alias. **Update any scripts using `-s` for the save directory** (the long form `--save-dir` is unchanged). - -`mrt project get`, `update`, and `delete` accept the project slug **either** as a positional argument **or** via `--project` / `--storefront` (`-p` / `-s`; also honoring `MRT_PROJECT` and `dw.json`). Symmetrically, `mrt env create` and `mrt env delete` now accept the environment slug **either** as a positional argument **or** via `--environment` / `-e` (also honoring `MRT_ENVIRONMENT` and `dw.json`). An explicit positional still wins when both are given. - -Error messages surface the alias too: the "MRT project is required" errors now mention `--project` / `--storefront` (`-p` / `-s`), and passing a flag twice through an alias (e.g. `-p x -s y`) now reports which long and short forms refer to the same flag instead of the bare "can only be specified once". - -On the `mrt project notification` commands, `--environment` (`-e`) is now the primary flag for specifying environments (previously `--target`), matching the rest of the `mrt` surface. `--target` / `-t` are retained as aliases so existing scripts keep working, and command output and `--help` now say "environment" / "Environments" rather than "target". `notification list` follows suit with an `--environment` filter and an `Environments` column. diff --git a/.changeset/preserve-nightly-sdk-version.md b/.changeset/preserve-nightly-sdk-version.md deleted file mode 100644 index dbf0d4fde..000000000 --- a/.changeset/preserve-nightly-sdk-version.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': patch ---- - -Preserve snapshot versions after packing the SDK so nightly CLI and MCP releases install the matching nightly SDK instead of an older stable version. diff --git a/.changeset/scapi-code-mode.md b/.changeset/scapi-code-mode.md deleted file mode 100644 index 2e53cefbd..000000000 --- a/.changeset/scapi-code-mode.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -'@salesforce/b2c-dx-mcp': minor -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-api-schemas': minor -'@salesforce/b2c-agent-plugins': patch -'@salesforce/b2c-dx-docs': patch ---- - -Add SCAPI code mode with offline discovery of 594 Admin and Shopper operations and standard or custom Admin API execution using automatic authentication and SDK Safety Mode. Compose requests and return focused results through `scapi_search` and `scapi_execute`, with bounded execution and actionable access errors. - -Discover tenant custom API contracts live and execute their declared Admin operations. Live schema reads include custom-property definitions by default; known custom fields work directly in standard Admin requests. Bundled schemas remain tenant-independent. - -Reuse built-in workflows for product creation with optional category assignment, campaign/promotion inspection, and failed-job triage, or save reviewed workflows for later use. Export Account Manager and SLAS tokens when an external client needs them; normal SCAPI requests authenticate automatically. Code mode restricts local filesystem/process APIs to keep programs focused on API workflows; use terminal and file tools for local development. diff --git a/.changeset/scapi-migration.md b/.changeset/scapi-migration.md deleted file mode 100644 index 00bea120a..000000000 --- a/.changeset/scapi-migration.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@salesforce/b2c-cli': major -'@salesforce/b2c-tooling-sdk': major -'b2c-vs-extension': minor -'@salesforce/b2c-dx-docs': minor -'@salesforce/b2c-agent-plugins': patch ---- - -Migrate `job`, `code`, `bm users`, `bm roles`, `sites`, and catalog discovery to SCAPI-first operation with a temporary OCAPI compatibility fallback. `auto` tries SCAPI when its coordinates and stateless authentication are available, pins the selected backend for multi-request operations, and falls back only on safe capability/auth/request rejections. Site cartridge-path writes, portable BM user search, disabled-user updates, system-job triggers, SDK/CLI/MCP code-version discovery, and VS Code jobs/code/catalog surfaces now participate. Inventory-list enumeration, BM `whoami`, access-key administration, and raw OCAPI user-search JSON remain temporary OCAPI compatibility operations because the current live SCAPI schemas have no equivalent. Explicit SCAPI mode rejects these operations before contacting OCAPI and identifies B2C Commerce release 26.8 as the current capability baseline. - -`setup instance create` accepts optional SCAPI coordinates for SCAPI-first active-code-version detection. They are not required in `auto`; missing coordinates select OCAPI, and failed interactive detection reports the reason before allowing manual entry. - -This is a major release because JSON/results can change shape during the migration. `job run`, `job wait`, and `job search` return canonical camelCase fields with either backend, including OCAPI fallback; consumers must update fields such as `execution_status` to `executionStatus`. Other commands can retain backend-specific shapes, for which explicitly selecting OCAPI preserves the legacy shape. SDK high-level code helpers accept an explicit scripts backend; dual-backend factories and `JobsCompatibilityBackend` expose reusable fallback without making implicit backend selection an SDK-wide policy. - -SCAPI currently requires client-credentials or JWT Bearer authentication. Browser-based user auth continues through OCAPI/WebDAV and is selected by `auto`; explicit SCAPI with user auth errors clearly until the platform adds support. - -GitHub Action v2 adopts CLI 2.x and its camelCase job results. Existing `@v1` workflows remain on the maintained CLI 1.x line, preserving the OCAPI behavior and legacy result shapes of operations migrated in CLI 2 until consumers update their Action references to `@v2`. CLI 1.x commands designed specifically for SCAPI continue to use SCAPI. - -The VS Code extension uses configured tenant IDs consistently in API Browser, keeps partial export discovery warnings in the output log instead of showing notifications, and supports JWT-authenticated OCAPI fallback equivalently to client credentials. diff --git a/.changeset/scapi-ocapi-deprecation-detection.md b/.changeset/scapi-ocapi-deprecation-detection.md deleted file mode 100644 index 937e817a3..000000000 --- a/.changeset/scapi-ocapi-deprecation-detection.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': patch -'@salesforce/b2c-cli': patch -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-agent-plugins': patch ---- - -Detect deprecated OCAPI instances and guide users to SCAPI. - -When an instance has OCAPI disabled, `code`, `job`, `bm`, `sites`, and `cap` commands now fail with an actionable message — naming the exact SCAPI scope the operation needs (e.g. `sfcc.scripts` / `sfcc.scripts.rw`) — instead of an opaque "Failed to ..." error. Documentation and agent skills for `code`, `job`, and `bm` are now SCAPI-first, presenting OCAPI as the deprecated fallback. diff --git a/.changeset/slas-get-config-client.md b/.changeset/slas-get-config-client.md deleted file mode 100644 index a7b1c6755..000000000 --- a/.changeset/slas-get-config-client.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@salesforce/b2c-cli': patch -'@salesforce/b2c-tooling-sdk': patch -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-agent-plugins': patch ---- - -Allow SLAS client `get`, `update`, `delete`, and `open` commands to use the configured SLAS client ID when their positional client ID is omitted, while keeping the positional value as an explicit override. diff --git a/.changeset/slas-shopper-http-middleware.md b/.changeset/slas-shopper-http-middleware.md deleted file mode 100644 index 029b482c6..000000000 --- a/.changeset/slas-shopper-http-middleware.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': patch -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-agent-plugins': patch ---- - -Apply shared HTTP middleware to SLAS shopper token flows so custom headers such as `SFCC_EXTRA_HEADERS` reach every request. Preserve redirect and cancellation settings when adding extra request parameters, and document the token response shape. diff --git a/.changeset/slas-token-correlation-debug.md b/.changeset/slas-token-correlation-debug.md deleted file mode 100644 index 6a339c16e..000000000 --- a/.changeset/slas-token-correlation-debug.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': patch ---- - -Include SLAS response correlation IDs in debug logs to help diagnose shopper authentication failures without enabling trace logging. diff --git a/.changeset/storefront-next-canonical-guidance.md b/.changeset/storefront-next-canonical-guidance.md deleted file mode 100644 index 78e12e0ea..000000000 --- a/.changeset/storefront-next-canonical-guidance.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-tooling-sdk': patch -'@salesforce/b2c-agent-plugins': patch ---- - -Refocus Storefront Next guidance on managing existing storefronts with environment-variable updates, logs, deployments, and assistant support. Link to Salesforce's Business Manager setup guides and align the included skills and documentation search with that workflow. diff --git a/.changeset/toolkit-docs-redesign.md b/.changeset/toolkit-docs-redesign.md deleted file mode 100644 index 228801756..000000000 --- a/.changeset/toolkit-docs-redesign.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-tooling-sdk': patch ---- - -Redesign the documentation with clearer navigation, quick installation for AI tools, and terminal examples throughout the CLI reference. Highlight documentation search for developers, administrators, and merchants, plus live debugging with an assistant. Explain Safety Mode configuration and confirmations across the CLI, MCP, and IDE extension. Add an llms.txt setup guide and discoverable Markdown pages for agents. Update the bundled documentation search index with the revised guides and setup instructions. diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index dd9bb4484..1a216a8ef 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -17,7 +17,7 @@ "source": "./skills/b2c-cli", "category": "productivity", "strict": false, - "version": "1.8.5" + "version": "1.9.0" }, { "name": "b2c", @@ -29,7 +29,7 @@ "source": "./skills/b2c", "category": "productivity", "strict": false, - "version": "1.8.5" + "version": "1.9.0" }, { "name": "b2c-ops", @@ -41,7 +41,7 @@ "source": "./skills/b2c-ops", "category": "productivity", "strict": false, - "version": "1.8.5" + "version": "1.9.0" }, { "name": "b2c-dx-mcp", @@ -53,7 +53,7 @@ "source": "./plugins/b2c-dx-mcp", "category": "productivity", "strict": false, - "version": "2.1.2" + "version": "3.0.0" }, { "name": "storefront-next", @@ -65,11 +65,11 @@ "source": "./skills/storefront-next", "category": "productivity", "strict": false, - "version": "1.8.5" + "version": "1.9.0" }, { "name": "storefront-next-figma", - "description": "Figma design-kit skills for Storefront Next verticals \u2014 duplicate the kit, sync brand variables, and publish Code Connect. Requires the Figma MCP server.", + "description": "Figma design-kit skills for Storefront Next verticals — duplicate the kit, sync brand variables, and publish Code Connect. Requires the Figma MCP server.", "author": { "name": "Salesforce" }, @@ -81,7 +81,7 @@ }, { "name": "figma-to-sfnext-pagedesigner", - "description": "Convert a Figma frame into live Storefront Next Page Designer blocks \u2014 React components with decorator metadata, brand-token reconciliation, and product data loaders. Requires the Figma MCP server.", + "description": "Convert a Figma frame into live Storefront Next Page Designer blocks — React components with decorator metadata, brand-token reconciliation, and product data loaders. Requires the Figma MCP server.", "author": { "name": "Salesforce" }, diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b677e99b1..9d2c66159 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,65 @@ # @salesforce/b2c-dx-docs +## 0.4.0 + +### Minor Changes + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Migrate `job`, `code`, `bm users`, `bm roles`, `sites`, and catalog discovery to SCAPI-first operation with a temporary OCAPI compatibility fallback. `auto` tries SCAPI when its coordinates and stateless authentication are available, pins the selected backend for multi-request operations, and falls back only on safe capability/auth/request rejections. Site cartridge-path writes, portable BM user search, disabled-user updates, system-job triggers, SDK/CLI/MCP code-version discovery, and VS Code jobs/code/catalog surfaces now participate. Inventory-list enumeration, BM `whoami`, access-key administration, and raw OCAPI user-search JSON remain temporary OCAPI compatibility operations because the current live SCAPI schemas have no equivalent. Explicit SCAPI mode rejects these operations before contacting OCAPI and identifies B2C Commerce release 26.8 as the current capability baseline. (Thanks [@clavery](https://github.com/clavery)!) + + `setup instance create` accepts optional SCAPI coordinates for SCAPI-first active-code-version detection. They are not required in `auto`; missing coordinates select OCAPI, and failed interactive detection reports the reason before allowing manual entry. + + This is a major release because JSON/results can change shape during the migration. `job run`, `job wait`, and `job search` return canonical camelCase fields with either backend, including OCAPI fallback; consumers must update fields such as `execution_status` to `executionStatus`. Other commands can retain backend-specific shapes, for which explicitly selecting OCAPI preserves the legacy shape. SDK high-level code helpers accept an explicit scripts backend; dual-backend factories and `JobsCompatibilityBackend` expose reusable fallback without making implicit backend selection an SDK-wide policy. + + SCAPI currently requires client-credentials or JWT Bearer authentication. Browser-based user auth continues through OCAPI/WebDAV and is selected by `auto`; explicit SCAPI with user auth errors clearly until the platform adds support. + + GitHub Action v2 adopts CLI 2.x and its camelCase job results. Existing `@v1` workflows remain on the maintained CLI 1.x line, preserving the OCAPI behavior and legacy result shapes of operations migrated in CLI 2 until consumers update their Action references to `@v2`. CLI 1.x commands designed specifically for SCAPI continue to use SCAPI. + + The VS Code extension uses configured tenant IDs consistently in API Browser, keeps partial export discovery warnings in the output log instead of showing notifications, and supports JWT-authenticated OCAPI fallback equivalently to client credentials. + +### Patch Changes + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Add b2c-ops runbooks for job health, checkout and failed-order investigation, and incident triage, available as a skills plugin, through CLI installation, and included in the MCP. Add an Operations guide with example requests, recovery checks, and handoffs to administrators, developers, providers, or Salesforce Support. (Thanks [@clavery](https://github.com/clavery)!) + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Analyze B2C Commerce sales, merchandising, and technical trends directly through MCP with CIP report discovery and SQL queries. Includes analytics skills, shared configuration and Safety Mode support, and bounded, cancellable queries without a separate CLI installation. (Thanks [@clavery](https://github.com/clavery)!) + + Report discovery includes source tables and sales metric definitions. Sales, payment, and promotion reports return unavailable averages for zero-count groups instead of failing on division by zero. + +- [#681](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/681) [`6c8bd53`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6c8bd53064a5ebcc51c9d40b464121bf68539ab5) - Refresh the shared configuration guide with complete SLAS and instance settings, clearer connection examples, and corrected authentication and credential precedence guidance on the site and in documentation search. (Thanks [@clavery](https://github.com/clavery)!) + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Add searchable release notes with product filters, shared updates, and optional release highlights. Include published releases from July 2026 onward, with links to older releases on GitHub. (Thanks [@clavery](https://github.com/clavery)!) + +- [#643](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/643) [`f208d0c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/f208d0c0be40f9b597f8bcba8636feb3be011ff2) - Made VS Code instance selection workspace-specific by default, with explicit actions to set or follow the shared default without unexpectedly changing other tools and workspaces. Opening an instance's configuration now reveals its exact named entry. (Thanks [@clavery](https://github.com/clavery)!) + +- [#683](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/683) [`5741d42`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/5741d42beae402a664282738aa883e1d9fb8d903) - Illustrate homepage and MCP workflows with debugging, order-investigation, promotion-review, and product-creation screenshots. Replace CLI sandbox and import-set placeholders with readable terminal captures. (Thanks [@clavery](https://github.com/clavery)!) + + Label B2C Ops skills and administrator tooling as beta. + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add embedded Commerce skills through MCP resources and searchable `skills_read`, with focused configuration, authentication, and workflow guidance and consistent CLI/MCP recommendations. Enable all toolsets by default, streamline debugging and logging, identify tool effects for client approval controls, and support MCP 2026-07-28 alongside earlier clients. Include concise installation, capabilities, configuration, and security documentation. (Thanks [@clavery](https://github.com/clavery)!) + + Update explicit tool selections to use `debug_control`, `debug_inspect`, `logs_watch`, and `mrt_logs_watch`; remove `pwakit_get_guidelines` and `scapi_custom_api_generate_scaffold`. Remove `--allow-non-ga-tools` from launch commands. Use `--toolsets` or `--tools` to customize the catalog and `b2c scaffold generate custom-api` for local scaffolding. + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Add MCP tools to browse instance files, read exact logs, and upload or download files without a separate CLI. Cartridge deployment now supports selected files and explicit code versions, with clearer reporting when uploads succeed but reload or cleanup fails. (Thanks [@clavery](https://github.com/clavery)!) + +- [#683](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/683) [`5741d42`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/5741d42beae402a664282738aa883e1d9fb8d903) - Add a Project Setup guide with optional assistant instructions and team conventions for MCP and standalone skills users, linked from the product pages and available through documentation search. (Thanks [@clavery](https://github.com/clavery)!) + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add SCAPI code mode with offline discovery of 594 Admin and Shopper operations and standard or custom Admin API execution using automatic authentication and SDK Safety Mode. Compose requests and return focused results through `scapi_search` and `scapi_execute`, with bounded execution and actionable access errors. (Thanks [@clavery](https://github.com/clavery)!) + + Discover tenant custom API contracts live and execute their declared Admin operations. Live schema reads include custom-property definitions by default; known custom fields work directly in standard Admin requests. Bundled schemas remain tenant-independent. + + Reuse built-in workflows for product creation with optional category assignment, campaign/promotion inspection, and failed-job triage, or save reviewed workflows for later use. Export Account Manager and SLAS tokens when an external client needs them; normal SCAPI requests authenticate automatically. Code mode restricts local filesystem/process APIs to keep programs focused on API workflows; use terminal and file tools for local development. + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Detect deprecated OCAPI instances and guide users to SCAPI. (Thanks [@clavery](https://github.com/clavery)!) + + When an instance has OCAPI disabled, `code`, `job`, `bm`, `sites`, and `cap` commands now fail with an actionable message — naming the exact SCAPI scope the operation needs (e.g. `sfcc.scripts` / `sfcc.scripts.rw`) — instead of an opaque "Failed to ..." error. Documentation and agent skills for `code`, `job`, and `bm` are now SCAPI-first, presenting OCAPI as the deprecated fallback. + +- [#642](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/642) [`a0214e4`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/a0214e43c1d3a6f148634af1741f7cee0785551b) - Allow SLAS client `get`, `update`, `delete`, and `open` commands to use the configured SLAS client ID when their positional client ID is omitted, while keeping the positional value as an explicit override. (Thanks [@clavery](https://github.com/clavery)!) + +- [#675](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/675) [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec) - Apply shared HTTP middleware to SLAS shopper token flows so custom headers such as `SFCC_EXTRA_HEADERS` reach every request. Preserve redirect and cancellation settings when adding extra request parameters, and document the token response shape. (Thanks [@clavery](https://github.com/clavery)!) + +- [#677](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/677) [`de36e4a`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/de36e4a5f99a38ad102b8314d14ec515602ce16d) - Refocus Storefront Next guidance on managing existing storefronts with environment-variable updates, logs, deployments, and assistant support. Link to Salesforce's Business Manager setup guides and align the included skills and documentation search with that workflow. (Thanks [@clavery](https://github.com/clavery)!) + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Redesign the documentation with clearer navigation, quick installation for AI tools, and terminal examples throughout the CLI reference. Highlight documentation search for developers, administrators, and merchants, plus live debugging with an assistant. Explain Safety Mode configuration and confirmations across the CLI, MCP, and IDE extension. Add an llms.txt setup guide and discoverable Markdown pages for agents. Update the bundled documentation search index with the revised guides and setup instructions. (Thanks [@clavery](https://github.com/clavery)!) + ## 0.3.23 ### Patch Changes diff --git a/docs/package.json b/docs/package.json index b633bf796..c9d658030 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@salesforce/b2c-dx-docs", - "version": "0.3.23", + "version": "0.4.0", "private": true, "type": "module", "description": "Documentation for B2C Developer Tooling", diff --git a/packages/b2c-cli/CHANGELOG.md b/packages/b2c-cli/CHANGELOG.md index 64b2881ce..95111a71c 100644 --- a/packages/b2c-cli/CHANGELOG.md +++ b/packages/b2c-cli/CHANGELOG.md @@ -1,5 +1,64 @@ # @salesforce/b2c-cli +## 2.0.0 + +### Major Changes + +- [#676](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/676) [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2) - De-conflict short flags on the `mrt` command surface so each `-x` means one thing: (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + - `--cloud-origin` moved from `-o` to `-u`, freeing `-o` for `--organization` (`mrt project create` / `list`) and `--output` (`mrt bundle download`) — which previously shadowed the base flag. **Breaking:** update any scripts passing `-o` for the cloud origin; the long form `--cloud-origin` is unchanged. + - `mrt project notification create` / `update`: `--target` (the notification's target-environment list) now also accepts `--environment` / `-e` as aliases, since a notification target _is_ an environment. These two commands no longer expose the standalone single-value `--environment` flag — it was unused there and its `--target` alias collided with the command's own `--target`. + +- [#676](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/676) [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2) - Add `storefront` as an alias for `project` across the `mrt` command surface, matching the terminology of the SCAPI MRT API. `b2c mrt storefront ` now works identically to `b2c mrt project ` (including the `member` and `notification` subtopics), and `--storefront` / `-s` are accepted anywhere `--project` / `-p` is. The new `MRT_STOREFRONT` / `SFCC_MRT_STOREFRONT` environment variables act as fallbacks for `MRT_PROJECT` / `SFCC_MRT_PROJECT`. The `project` / `--project` (`-p`) forms and the existing `MRT_PROJECT` variables continue to work unchanged. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + `-s` now uniformly means `--project` / `--storefront` on **every** `mrt` command. To make that consistent, two commands changed their own short flags (**breaking**): + - `mrt project create` no longer has a `--slug` flag. Set the new project's slug with `--project` / `--storefront` (`-p` / `-s`) instead — e.g. `b2c mrt project create "My Storefront" -o my-org -s my-storefront`. When omitted, MRT auto-generates the slug from the name (unchanged). **Update any scripts using `--slug`.** + - `mrt bundle save` moved `--save-dir` from `-s` to `-d`, freeing `-s` for the storefront alias. **Update any scripts using `-s` for the save directory** (the long form `--save-dir` is unchanged). + + `mrt project get`, `update`, and `delete` accept the project slug **either** as a positional argument **or** via `--project` / `--storefront` (`-p` / `-s`; also honoring `MRT_PROJECT` and `dw.json`). Symmetrically, `mrt env create` and `mrt env delete` now accept the environment slug **either** as a positional argument **or** via `--environment` / `-e` (also honoring `MRT_ENVIRONMENT` and `dw.json`). An explicit positional still wins when both are given. + + Error messages surface the alias too: the "MRT project is required" errors now mention `--project` / `--storefront` (`-p` / `-s`), and passing a flag twice through an alias (e.g. `-p x -s y`) now reports which long and short forms refer to the same flag instead of the bare "can only be specified once". + + On the `mrt project notification` commands, `--environment` (`-e`) is now the primary flag for specifying environments (previously `--target`), matching the rest of the `mrt` surface. `--target` / `-t` are retained as aliases so existing scripts keep working, and command output and `--help` now say "environment" / "Environments" rather than "target". `notification list` follows suit with an `--environment` filter and an `Environments` column. + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Migrate `job`, `code`, `bm users`, `bm roles`, `sites`, and catalog discovery to SCAPI-first operation with a temporary OCAPI compatibility fallback. `auto` tries SCAPI when its coordinates and stateless authentication are available, pins the selected backend for multi-request operations, and falls back only on safe capability/auth/request rejections. Site cartridge-path writes, portable BM user search, disabled-user updates, system-job triggers, SDK/CLI/MCP code-version discovery, and VS Code jobs/code/catalog surfaces now participate. Inventory-list enumeration, BM `whoami`, access-key administration, and raw OCAPI user-search JSON remain temporary OCAPI compatibility operations because the current live SCAPI schemas have no equivalent. Explicit SCAPI mode rejects these operations before contacting OCAPI and identifies B2C Commerce release 26.8 as the current capability baseline. (Thanks [@clavery](https://github.com/clavery)!) + + `setup instance create` accepts optional SCAPI coordinates for SCAPI-first active-code-version detection. They are not required in `auto`; missing coordinates select OCAPI, and failed interactive detection reports the reason before allowing manual entry. + + This is a major release because JSON/results can change shape during the migration. `job run`, `job wait`, and `job search` return canonical camelCase fields with either backend, including OCAPI fallback; consumers must update fields such as `execution_status` to `executionStatus`. Other commands can retain backend-specific shapes, for which explicitly selecting OCAPI preserves the legacy shape. SDK high-level code helpers accept an explicit scripts backend; dual-backend factories and `JobsCompatibilityBackend` expose reusable fallback without making implicit backend selection an SDK-wide policy. + + SCAPI currently requires client-credentials or JWT Bearer authentication. Browser-based user auth continues through OCAPI/WebDAV and is selected by `auto`; explicit SCAPI with user auth errors clearly until the platform adds support. + + GitHub Action v2 adopts CLI 2.x and its camelCase job results. Existing `@v1` workflows remain on the maintained CLI 1.x line, preserving the OCAPI behavior and legacy result shapes of operations migrated in CLI 2 until consumers update their Action references to `@v2`. CLI 1.x commands designed specifically for SCAPI continue to use SCAPI. + + The VS Code extension uses configured tenant IDs consistently in API Browser, keeps partial export discovery warnings in the output log instead of showing notifications, and supports JWT-authenticated OCAPI fallback equivalently to client credentials. + +### Minor Changes + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Add b2c-ops runbooks for job health, checkout and failed-order investigation, and incident triage, available as a skills plugin, through CLI installation, and included in the MCP. Add an Operations guide with example requests, recovery checks, and handoffs to administrators, developers, providers, or Salesforce Support. (Thanks [@clavery](https://github.com/clavery)!) + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Add `b2c bm users create` to create a Business Manager user (create-or-replace), rounding out the `bm users` lifecycle alongside list/get/search/update/delete. Runs over SCAPI with OCAPI fallback like the other `bm users` commands. Flags: `--email` (required), `--first-name`, `--last-name`, `--external-id`, `--password`, `--role` (repeatable), `--disabled`, and preferred locales. Note that most instances use SSO with Account Manager and reject creating _local_ BM users with `LocalUserCreationException` — creation succeeds only when the instance is configured to allow local users. (Thanks [@clavery](https://github.com/clavery)!) + +- [#662](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/662) [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701) - Add a `--mrt-backend` flag (`auto` | `legacy` | `scapi`, default `auto`; also `MRT_BACKEND` env var or `mrtBackend` in `dw.json`) to `b2c mrt` commands. It lets `mrt bundle history` and `mrt bundle deploy ` run over the SCAPI Storefront Deployments API (OAuth, scopes `sfcc.storefront.deployments[.rw]`) instead of the legacy MRT Cloud API (per-user API key). `auto` prefers SCAPI when `--short-code`/`--tenant-id` and client-credentials or JWT Bearer auth are configured, otherwise uses legacy, and falls back to legacy on safe pre-execution errors (surfacing the SCAPI error instead when no legacy credentials are configured, so the real failure isn't masked); `scapi` never silently falls back. All other MRT commands — and `mrt bundle deploy`'s local-build push path — remain on the legacy backend. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + Under `--json`, these commands return the serving backend's native response verbatim (legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`) — the human-readable table is normalized across backends, but `--json` is not, so pin `legacy` or `scapi` when a script needs a stable shape. Legacy-only flags (`--api-key`, `--cloud-origin`, `--credentials-file`) now print a warning under `--mrt-backend scapi` (where the legacy backend that honors them never runs). `--project` also gains a `--storefront` / `-s` alias for the SCAPI storefront ID. + +- [#646](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/646) [`c9cf71f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c9cf71fad0981e6a580581735062b171c70ba5d6) - Add `b2c mrt bundle upload-v2` for building and uploading v2-format Managed Runtime bundles. The v2 archive is a gzip tar whose files live under a configurable root directory (default `bld/`) with the SSR configuration written inside the archive at `{root-dir}/{config-path}` (default `bld/.mrt/config.json`), uploaded as multipart/form-data. This command is upload-only — deploy the returned bundle ID with `b2c mrt bundle deploy -e `. Every server-side parameter (root dir, config path, match mode, SSR patterns/parameters, dependencies, and CC overrides) is exposed as a flag. The SDK adds matching `createBundleV2`, `pushBundleV2`, and `uploadBundleV2` operations. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + Bundle commands now read SSR configuration (`ssrOnly`/`ssrShared`/`ssrParameters`) from `config.server.ts` in the project directory, loaded straight from source, so it no longer needs to be compiled into the build output. Use `--project-directory` to point at a project other than the current directory (a compiled `config.server.js`/`config.server.mjs` and the legacy `build/config.server.js` are still accepted). For `upload-v2`, an on-disk v2 config file (`{build-dir}/{config-path}`) still takes precedence when present; command flags override the resolved values per key. The SDK's `createBundle`/`createBundleV2` gain a `projectDirectory` option for this. + + Bundles now include the project's declared dependencies as bundle metadata (v1 `bundle_metadata.dependencies`; v2 `bundleMetadata.dependencies` inside the archive config), derived from the project `package.json` (`dependencies` + `devDependencies`) — matching pwa-kit/storefront-next. Explicitly provided dependencies (v2 `--dependencies`) or dependencies already present in the v2 config file take precedence; collection is best-effort and never blocks a bundle if `package.json` is missing or unreadable. + +### Patch Changes + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Detect deprecated OCAPI instances and guide users to SCAPI. (Thanks [@clavery](https://github.com/clavery)!) + + When an instance has OCAPI disabled, `code`, `job`, `bm`, `sites`, and `cap` commands now fail with an actionable message — naming the exact SCAPI scope the operation needs (e.g. `sfcc.scripts` / `sfcc.scripts.rw`) — instead of an opaque "Failed to ..." error. Documentation and agent skills for `code`, `job`, and `bm` are now SCAPI-first, presenting OCAPI as the deprecated fallback. + +- [#642](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/642) [`a0214e4`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/a0214e43c1d3a6f148634af1741f7cee0785551b) - Allow SLAS client `get`, `update`, `delete`, and `open` commands to use the configured SLAS client ID when their positional client ID is omitted, while keeping the positional value as an explicit override. (Thanks [@clavery](https://github.com/clavery)!) + +- Updated dependencies [[`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`6c8bd53`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6c8bd53064a5ebcc51c9d40b464121bf68539ab5), [`3751091`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/3751091325208907e5a79932a621e2020e3a0014), [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f), [`f208d0c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/f208d0c0be40f9b597f8bcba8636feb3be011ff2), [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`5741d42`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/5741d42beae402a664282738aa883e1d9fb8d903), [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701), [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701), [`c9cf71f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c9cf71fad0981e6a580581735062b171c70ba5d6), [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2), [`2dbbf72`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2dbbf72c60579fa314a4a8db64e178d8fc83978b), [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2), [`1b6bdf8`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1b6bdf87c0670e0ecc955d0acaa672859ca0c73e), [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a), [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663), [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663), [`a0214e4`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/a0214e43c1d3a6f148634af1741f7cee0785551b), [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec), [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec), [`de36e4a`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/de36e4a5f99a38ad102b8314d14ec515602ce16d), [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f)]: + - @salesforce/b2c-tooling-sdk@2.0.0 + ## 1.23.2 ### Patch Changes diff --git a/packages/b2c-cli/package.json b/packages/b2c-cli/package.json index 27fb4d210..a7ef54310 100644 --- a/packages/b2c-cli/package.json +++ b/packages/b2c-cli/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/b2c-cli", "description": "A Salesforce B2C Commerce CLI", - "version": "1.23.2", + "version": "2.0.0", "author": "Charles Lavery", "bin": { "b2c": "./bin/run.js" diff --git a/packages/b2c-dx-mcp/CHANGELOG.md b/packages/b2c-dx-mcp/CHANGELOG.md index b3172dd84..4f0284ae1 100644 --- a/packages/b2c-dx-mcp/CHANGELOG.md +++ b/packages/b2c-dx-mcp/CHANGELOG.md @@ -1,5 +1,39 @@ # @salesforce/b2c-dx-mcp +## 3.0.0 + +### Major Changes + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add embedded Commerce skills through MCP resources and searchable `skills_read`, with focused configuration, authentication, and workflow guidance and consistent CLI/MCP recommendations. Enable all toolsets by default, streamline debugging and logging, identify tool effects for client approval controls, and support MCP 2026-07-28 alongside earlier clients. Include concise installation, capabilities, configuration, and security documentation. (Thanks [@clavery](https://github.com/clavery)!) + + Update explicit tool selections to use `debug_control`, `debug_inspect`, `logs_watch`, and `mrt_logs_watch`; remove `pwakit_get_guidelines` and `scapi_custom_api_generate_scaffold`. Remove `--allow-non-ga-tools` from launch commands. Use `--toolsets` or `--tools` to customize the catalog and `b2c scaffold generate custom-api` for local scaffolding. + +### Minor Changes + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Add b2c-ops runbooks for job health, checkout and failed-order investigation, and incident triage, available as a skills plugin, through CLI installation, and included in the MCP. Add an Operations guide with example requests, recovery checks, and handoffs to administrators, developers, providers, or Salesforce Support. (Thanks [@clavery](https://github.com/clavery)!) + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Analyze B2C Commerce sales, merchandising, and technical trends directly through MCP with CIP report discovery and SQL queries. Includes analytics skills, shared configuration and Safety Mode support, and bounded, cancellable queries without a separate CLI installation. (Thanks [@clavery](https://github.com/clavery)!) + + Report discovery includes source tables and sales metric definitions. Sales, payment, and promotion reports return unavailable averages for zero-count groups instead of failing on division by zero. + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Add MCP tools to browse instance files, read exact logs, and upload or download files without a separate CLI. Cartridge deployment now supports selected files and explicit code versions, with clearer reporting when uploads succeed but reload or cleanup fails. (Thanks [@clavery](https://github.com/clavery)!) + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add SCAPI code mode with offline discovery of 594 Admin and Shopper operations and standard or custom Admin API execution using automatic authentication and SDK Safety Mode. Compose requests and return focused results through `scapi_search` and `scapi_execute`, with bounded execution and actionable access errors. (Thanks [@clavery](https://github.com/clavery)!) + + Discover tenant custom API contracts live and execute their declared Admin operations. Live schema reads include custom-property definitions by default; known custom fields work directly in standard Admin requests. Bundled schemas remain tenant-independent. + + Reuse built-in workflows for product creation with optional category assignment, campaign/promotion inspection, and failed-job triage, or save reviewed workflows for later use. Export Account Manager and SLAS tokens when an external client needs them; normal SCAPI requests authenticate automatically. Code mode restricts local filesystem/process APIs to keep programs focused on API workflows; use terminal and file tools for local development. + +### Patch Changes + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Add reusable workflows for job history, execution steps, code versions, and site cartridge paths. Update MCP task guidance and operational runbooks to use these workflows and exact job-log reads with less reliance on the CLI. (Thanks [@clavery](https://github.com/clavery)!) + +- [#683](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/683) [`5741d42`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/5741d42beae402a664282738aa883e1d9fb8d903) - Clarify how assistants discover tools and read bundled MCP skills, distinguishing resource reads from native assistant skill commands. (Thanks [@clavery](https://github.com/clavery)!) + +- Updated dependencies [[`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f), [`46ab439`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/46ab439b4b306809f161a110669d9fce9376c8d5), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`6c8bd53`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6c8bd53064a5ebcc51c9d40b464121bf68539ab5), [`3751091`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/3751091325208907e5a79932a621e2020e3a0014), [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f), [`f208d0c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/f208d0c0be40f9b597f8bcba8636feb3be011ff2), [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`5741d42`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/5741d42beae402a664282738aa883e1d9fb8d903), [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701), [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701), [`c9cf71f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c9cf71fad0981e6a580581735062b171c70ba5d6), [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2), [`2dbbf72`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2dbbf72c60579fa314a4a8db64e178d8fc83978b), [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701), [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2), [`1b6bdf8`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1b6bdf87c0670e0ecc955d0acaa672859ca0c73e), [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a), [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663), [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663), [`a0214e4`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/a0214e43c1d3a6f148634af1741f7cee0785551b), [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec), [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec), [`de36e4a`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/de36e4a5f99a38ad102b8314d14ec515602ce16d), [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f)]: + - @salesforce/b2c-agent-plugins@1.9.0 + - @salesforce/b2c-tooling-sdk@2.0.0 + ## 2.1.2 ### Patch Changes diff --git a/packages/b2c-dx-mcp/package.json b/packages/b2c-dx-mcp/package.json index 5f4bc9056..84a7a8cc3 100644 --- a/packages/b2c-dx-mcp/package.json +++ b/packages/b2c-dx-mcp/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/b2c-dx-mcp", "description": "MCP server for B2C Commerce developer experience tools", - "version": "2.1.2", + "version": "3.0.0", "author": "Salesforce", "license": "Apache-2.0", "repository": "SalesforceCommerceCloud/b2c-developer-tooling", diff --git a/packages/b2c-tooling-sdk/CHANGELOG.md b/packages/b2c-tooling-sdk/CHANGELOG.md index 596456241..246708f73 100644 --- a/packages/b2c-tooling-sdk/CHANGELOG.md +++ b/packages/b2c-tooling-sdk/CHANGELOG.md @@ -1,5 +1,104 @@ # @salesforce/b2c-tooling-sdk +## 2.0.0 + +### Major Changes + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Migrate `job`, `code`, `bm users`, `bm roles`, `sites`, and catalog discovery to SCAPI-first operation with a temporary OCAPI compatibility fallback. `auto` tries SCAPI when its coordinates and stateless authentication are available, pins the selected backend for multi-request operations, and falls back only on safe capability/auth/request rejections. Site cartridge-path writes, portable BM user search, disabled-user updates, system-job triggers, SDK/CLI/MCP code-version discovery, and VS Code jobs/code/catalog surfaces now participate. Inventory-list enumeration, BM `whoami`, access-key administration, and raw OCAPI user-search JSON remain temporary OCAPI compatibility operations because the current live SCAPI schemas have no equivalent. Explicit SCAPI mode rejects these operations before contacting OCAPI and identifies B2C Commerce release 26.8 as the current capability baseline. (Thanks [@clavery](https://github.com/clavery)!) + + `setup instance create` accepts optional SCAPI coordinates for SCAPI-first active-code-version detection. They are not required in `auto`; missing coordinates select OCAPI, and failed interactive detection reports the reason before allowing manual entry. + + This is a major release because JSON/results can change shape during the migration. `job run`, `job wait`, and `job search` return canonical camelCase fields with either backend, including OCAPI fallback; consumers must update fields such as `execution_status` to `executionStatus`. Other commands can retain backend-specific shapes, for which explicitly selecting OCAPI preserves the legacy shape. SDK high-level code helpers accept an explicit scripts backend; dual-backend factories and `JobsCompatibilityBackend` expose reusable fallback without making implicit backend selection an SDK-wide policy. + + SCAPI currently requires client-credentials or JWT Bearer authentication. Browser-based user auth continues through OCAPI/WebDAV and is selected by `auto`; explicit SCAPI with user auth errors clearly until the platform adds support. + + GitHub Action v2 adopts CLI 2.x and its camelCase job results. Existing `@v1` workflows remain on the maintained CLI 1.x line, preserving the OCAPI behavior and legacy result shapes of operations migrated in CLI 2 until consumers update their Action references to `@v2`. CLI 1.x commands designed specifically for SCAPI continue to use SCAPI. + + The VS Code extension uses configured tenant IDs consistently in API Browser, keeps partial export discovery warnings in the output log instead of showing notifications, and supports JWT-authenticated OCAPI fallback equivalently to client credentials. + +### Minor Changes + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Add b2c-ops runbooks for job health, checkout and failed-order investigation, and incident triage, available as a skills plugin, through CLI installation, and included in the MCP. Add an Operations guide with example requests, recovery checks, and handoffs to administrators, developers, providers, or Salesforce Support. (Thanks [@clavery](https://github.com/clavery)!) + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Analyze B2C Commerce sales, merchandising, and technical trends directly through MCP with CIP report discovery and SQL queries. Includes analytics skills, shared configuration and Safety Mode support, and bounded, cancellable queries without a separate CLI installation. (Thanks [@clavery](https://github.com/clavery)!) + + Report discovery includes source tables and sales metric definitions. Sales, payment, and promotion reports return unavailable averages for zero-count groups instead of failing on division by zero. + +- [#666](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/666) [`3751091`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/3751091325208907e5a79932a621e2020e3a0014) - Allow `embedded: true` component types on `arch_type: controller`. Previously the component type schema required `arch_type` to be `headless` whenever `embedded` was `true`; embedded content blocks (ECBs) are now supported on both headless and controller storefronts. The `embedded` ⟺ `component_id` requirement is unchanged. (Thanks [@favour-onukogu](https://github.com/favour-onukogu)!) + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add embedded Commerce skills through MCP resources and searchable `skills_read`, with focused configuration, authentication, and workflow guidance and consistent CLI/MCP recommendations. Enable all toolsets by default, streamline debugging and logging, identify tool effects for client approval controls, and support MCP 2026-07-28 alongside earlier clients. Include concise installation, capabilities, configuration, and security documentation. (Thanks [@clavery](https://github.com/clavery)!) + + Update explicit tool selections to use `debug_control`, `debug_inspect`, `logs_watch`, and `mrt_logs_watch`; remove `pwakit_get_guidelines` and `scapi_custom_api_generate_scaffold`. Remove `--allow-non-ga-tools` from launch commands. Use `--toolsets` or `--tools` to customize the catalog and `b2c scaffold generate custom-api` for local scaffolding. + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Add MCP tools to browse instance files, read exact logs, and upload or download files without a separate CLI. Cartridge deployment now supports selected files and explicit code versions, with clearer reporting when uploads succeed but reload or cleanup fails. (Thanks [@clavery](https://github.com/clavery)!) + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Add reusable workflows for job history, execution steps, code versions, and site cartridge paths. Update MCP task guidance and operational runbooks to use these workflows and exact job-log reads with less reliance on the CLI. (Thanks [@clavery](https://github.com/clavery)!) + +- [#662](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/662) [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701) - Add a `--mrt-backend` flag (`auto` | `legacy` | `scapi`, default `auto`; also `MRT_BACKEND` env var or `mrtBackend` in `dw.json`) to `b2c mrt` commands. It lets `mrt bundle history` and `mrt bundle deploy ` run over the SCAPI Storefront Deployments API (OAuth, scopes `sfcc.storefront.deployments[.rw]`) instead of the legacy MRT Cloud API (per-user API key). `auto` prefers SCAPI when `--short-code`/`--tenant-id` and client-credentials or JWT Bearer auth are configured, otherwise uses legacy, and falls back to legacy on safe pre-execution errors (surfacing the SCAPI error instead when no legacy credentials are configured, so the real failure isn't masked); `scapi` never silently falls back. All other MRT commands — and `mrt bundle deploy`'s local-build push path — remain on the legacy backend. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + Under `--json`, these commands return the serving backend's native response verbatim (legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`) — the human-readable table is normalized across backends, but `--json` is not, so pin `legacy` or `scapi` when a script needs a stable shape. Legacy-only flags (`--api-key`, `--cloud-origin`, `--credentials-file`) now print a warning under `--mrt-backend scapi` (where the legacy backend that honors them never runs). `--project` also gains a `--storefront` / `-s` alias for the SCAPI storefront ID. + +- [#646](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/646) [`c9cf71f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c9cf71fad0981e6a580581735062b171c70ba5d6) - Add `b2c mrt bundle upload-v2` for building and uploading v2-format Managed Runtime bundles. The v2 archive is a gzip tar whose files live under a configurable root directory (default `bld/`) with the SSR configuration written inside the archive at `{root-dir}/{config-path}` (default `bld/.mrt/config.json`), uploaded as multipart/form-data. This command is upload-only — deploy the returned bundle ID with `b2c mrt bundle deploy -e `. Every server-side parameter (root dir, config path, match mode, SSR patterns/parameters, dependencies, and CC overrides) is exposed as a flag. The SDK adds matching `createBundleV2`, `pushBundleV2`, and `uploadBundleV2` operations. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + Bundle commands now read SSR configuration (`ssrOnly`/`ssrShared`/`ssrParameters`) from `config.server.ts` in the project directory, loaded straight from source, so it no longer needs to be compiled into the build output. Use `--project-directory` to point at a project other than the current directory (a compiled `config.server.js`/`config.server.mjs` and the legacy `build/config.server.js` are still accepted). For `upload-v2`, an on-disk v2 config file (`{build-dir}/{config-path}`) still takes precedence when present; command flags override the resolved values per key. The SDK's `createBundle`/`createBundleV2` gain a `projectDirectory` option for this. + + Bundles now include the project's declared dependencies as bundle metadata (v1 `bundle_metadata.dependencies`; v2 `bundleMetadata.dependencies` inside the archive config), derived from the project `package.json` (`dependencies` + `devDependencies`) — matching pwa-kit/storefront-next. Explicitly provided dependencies (v2 `--dependencies`) or dependencies already present in the v2 config file take precedence; collection is best-effort and never blocks a bundle if `package.json` is missing or unreadable. + +- [#676](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/676) [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2) - De-conflict short flags on the `mrt` command surface so each `-x` means one thing: (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + - `--cloud-origin` moved from `-o` to `-u`, freeing `-o` for `--organization` (`mrt project create` / `list`) and `--output` (`mrt bundle download`) — which previously shadowed the base flag. **Breaking:** update any scripts passing `-o` for the cloud origin; the long form `--cloud-origin` is unchanged. + - `mrt project notification create` / `update`: `--target` (the notification's target-environment list) now also accepts `--environment` / `-e` as aliases, since a notification target _is_ an environment. These two commands no longer expose the standalone single-value `--environment` flag — it was unused there and its `--target` alias collided with the command's own `--target`. + +- [#661](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/661) [`2dbbf72`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2dbbf72c60579fa314a4a8db64e178d8fc83978b) - MRT commands are now aware of Managed Runtime maintenance (read-only) mode. Read commands (list, get) print a non-blocking warning but still run, while write commands (deploys, bundle uploads, environment changes) are blocked with a clear, actionable error instead of a raw API response — both pointing to the Managed Runtime Admin status page for current status and ETA. (Thanks [@o-olaosebikan](https://github.com/o-olaosebikan)!) + +- [#676](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/676) [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2) - Add `storefront` as an alias for `project` across the `mrt` command surface, matching the terminology of the SCAPI MRT API. `b2c mrt storefront ` now works identically to `b2c mrt project ` (including the `member` and `notification` subtopics), and `--storefront` / `-s` are accepted anywhere `--project` / `-p` is. The new `MRT_STOREFRONT` / `SFCC_MRT_STOREFRONT` environment variables act as fallbacks for `MRT_PROJECT` / `SFCC_MRT_PROJECT`. The `project` / `--project` (`-p`) forms and the existing `MRT_PROJECT` variables continue to work unchanged. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + `-s` now uniformly means `--project` / `--storefront` on **every** `mrt` command. To make that consistent, two commands changed their own short flags (**breaking**): + - `mrt project create` no longer has a `--slug` flag. Set the new project's slug with `--project` / `--storefront` (`-p` / `-s`) instead — e.g. `b2c mrt project create "My Storefront" -o my-org -s my-storefront`. When omitted, MRT auto-generates the slug from the name (unchanged). **Update any scripts using `--slug`.** + - `mrt bundle save` moved `--save-dir` from `-s` to `-d`, freeing `-s` for the storefront alias. **Update any scripts using `-s` for the save directory** (the long form `--save-dir` is unchanged). + + `mrt project get`, `update`, and `delete` accept the project slug **either** as a positional argument **or** via `--project` / `--storefront` (`-p` / `-s`; also honoring `MRT_PROJECT` and `dw.json`). Symmetrically, `mrt env create` and `mrt env delete` now accept the environment slug **either** as a positional argument **or** via `--environment` / `-e` (also honoring `MRT_ENVIRONMENT` and `dw.json`). An explicit positional still wins when both are given. + + Error messages surface the alias too: the "MRT project is required" errors now mention `--project` / `--storefront` (`-p` / `-s`), and passing a flag twice through an alias (e.g. `-p x -s y`) now reports which long and short forms refer to the same flag instead of the bare "can only be specified once". + + On the `mrt project notification` commands, `--environment` (`-e`) is now the primary flag for specifying environments (previously `--target`), matching the rest of the `mrt` surface. `--target` / `-t` are retained as aliases so existing scripts keep working, and command output and `--help` now say "environment" / "Environments" rather than "target". `notification list` follows suit with an `--environment` filter and an `Environments` column. + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add SCAPI code mode with offline discovery of 594 Admin and Shopper operations and standard or custom Admin API execution using automatic authentication and SDK Safety Mode. Compose requests and return focused results through `scapi_search` and `scapi_execute`, with bounded execution and actionable access errors. (Thanks [@clavery](https://github.com/clavery)!) + + Discover tenant custom API contracts live and execute their declared Admin operations. Live schema reads include custom-property definitions by default; known custom fields work directly in standard Admin requests. Bundled schemas remain tenant-independent. + + Reuse built-in workflows for product creation with optional category assignment, campaign/promotion inspection, and failed-job triage, or save reviewed workflows for later use. Export Account Manager and SLAS tokens when an external client needs them; normal SCAPI requests authenticate automatically. Code mode restricts local filesystem/process APIs to keep programs focused on API workflows; use terminal and file tools for local development. + +### Patch Changes + +- [#681](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/681) [`6c8bd53`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6c8bd53064a5ebcc51c9d40b464121bf68539ab5) - Refresh the shared configuration guide with complete SLAS and instance settings, clearer connection examples, and corrected authentication and credential precedence guidance on the site and in documentation search. (Thanks [@clavery](https://github.com/clavery)!) + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Fix SCAPI system-job requests so site archive imports and exports, including Page Designer content exports, use the required configuration format. Preserve OCAPI compatibility retries and clarify content authentication guidance. (Thanks [@clavery](https://github.com/clavery)!) + +- [#643](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/643) [`f208d0c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/f208d0c0be40f9b597f8bcba8636feb3be011ff2) - Made VS Code instance selection workspace-specific by default, with explicit actions to set or follow the shared default without unexpectedly changing other tools and workspaces. Opening an instance's configuration now reveals its exact named entry. (Thanks [@clavery](https://github.com/clavery)!) + +- [#683](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/683) [`5741d42`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/5741d42beae402a664282738aa883e1d9fb8d903) - Add a Project Setup guide with optional assistant instructions and team conventions for MCP and standalone skills users, linked from the product pages and available through documentation search. (Thanks [@clavery](https://github.com/clavery)!) + +- [#662](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/662) [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701) - Fix two `b2c mrt` backend-selection issues. `SFCC_MRT_BACKEND` is now honored by `mrt` commands (previously only the unprefixed `MRT_BACKEND` was read, unlike the other `SFCC_`-prefixed MRT env vars). And `--mrt-backend legacy` no longer emits a spurious SCAPI `[StatefulAuth]` warning — the SCAPI backend is no longer probed when it cannot be used. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + +- [`1b6bdf8`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1b6bdf87c0670e0ecc955d0acaa672859ca0c73e) - Preserve snapshot versions after packing the SDK so nightly CLI and MCP releases install the matching nightly SDK instead of an older stable version. (Thanks [@clavery](https://github.com/clavery)!) + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Detect deprecated OCAPI instances and guide users to SCAPI. (Thanks [@clavery](https://github.com/clavery)!) + + When an instance has OCAPI disabled, `code`, `job`, `bm`, `sites`, and `cap` commands now fail with an actionable message — naming the exact SCAPI scope the operation needs (e.g. `sfcc.scripts` / `sfcc.scripts.rw`) — instead of an opaque "Failed to ..." error. Documentation and agent skills for `code`, `job`, and `bm` are now SCAPI-first, presenting OCAPI as the deprecated fallback. + +- [#642](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/642) [`a0214e4`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/a0214e43c1d3a6f148634af1741f7cee0785551b) - Allow SLAS client `get`, `update`, `delete`, and `open` commands to use the configured SLAS client ID when their positional client ID is omitted, while keeping the positional value as an explicit override. (Thanks [@clavery](https://github.com/clavery)!) + +- [#675](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/675) [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec) - Apply shared HTTP middleware to SLAS shopper token flows so custom headers such as `SFCC_EXTRA_HEADERS` reach every request. Preserve redirect and cancellation settings when adding extra request parameters, and document the token response shape. (Thanks [@clavery](https://github.com/clavery)!) + +- [#675](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/675) [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec) - Include SLAS response correlation IDs in debug logs to help diagnose shopper authentication failures without enabling trace logging. (Thanks [@clavery](https://github.com/clavery)!) + +- [#677](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/677) [`de36e4a`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/de36e4a5f99a38ad102b8314d14ec515602ce16d) - Refocus Storefront Next guidance on managing existing storefronts with environment-variable updates, logs, deployments, and assistant support. Link to Salesforce's Business Manager setup guides and align the included skills and documentation search with that workflow. (Thanks [@clavery](https://github.com/clavery)!) + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Redesign the documentation with clearer navigation, quick installation for AI tools, and terminal examples throughout the CLI reference. Highlight documentation search for developers, administrators, and merchants, plus live debugging with an assistant. Explain Safety Mode configuration and confirmations across the CLI, MCP, and IDE extension. Add an llms.txt setup guide and discoverable Markdown pages for agents. Update the bundled documentation search index with the revised guides and setup instructions. (Thanks [@clavery](https://github.com/clavery)!) + +- Updated dependencies [[`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a)]: + - @salesforce/b2c-api-schemas@0.2.0 + ## 1.24.2 ### Patch Changes diff --git a/packages/b2c-tooling-sdk/package.json b/packages/b2c-tooling-sdk/package.json index 61de5f4e7..544f54a90 100644 --- a/packages/b2c-tooling-sdk/package.json +++ b/packages/b2c-tooling-sdk/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/b2c-tooling-sdk", "description": "Core tooling library for Salesforce B2C Commerce CLI", - "version": "1.24.2", + "version": "2.0.0", "author": "Charles Lavery", "license": "Apache-2.0", "repository": "SalesforceCommerceCloud/b2c-developer-tooling", @@ -265,7 +265,9 @@ "generate:help-corpus": "tsx scripts/generate-help-corpus.ts", "enrich:docs": "tsx scripts/enrich-docs.ts" }, - "bundledDependencies": ["@salesforce/b2c-api-schemas"], + "bundledDependencies": [ + "@salesforce/b2c-api-schemas" + ], "devDependencies": { "@eslint/compat": "catalog:", "@oclif/core": "catalog:", diff --git a/packages/b2c-vs-extension/CHANGELOG.md b/packages/b2c-vs-extension/CHANGELOG.md index 9b25d09cf..32a7a7ea7 100644 --- a/packages/b2c-vs-extension/CHANGELOG.md +++ b/packages/b2c-vs-extension/CHANGELOG.md @@ -1,5 +1,34 @@ # Change Log +## 1.2.0 + +### Minor Changes + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Migrate `job`, `code`, `bm users`, `bm roles`, `sites`, and catalog discovery to SCAPI-first operation with a temporary OCAPI compatibility fallback. `auto` tries SCAPI when its coordinates and stateless authentication are available, pins the selected backend for multi-request operations, and falls back only on safe capability/auth/request rejections. Site cartridge-path writes, portable BM user search, disabled-user updates, system-job triggers, SDK/CLI/MCP code-version discovery, and VS Code jobs/code/catalog surfaces now participate. Inventory-list enumeration, BM `whoami`, access-key administration, and raw OCAPI user-search JSON remain temporary OCAPI compatibility operations because the current live SCAPI schemas have no equivalent. Explicit SCAPI mode rejects these operations before contacting OCAPI and identifies B2C Commerce release 26.8 as the current capability baseline. (Thanks [@clavery](https://github.com/clavery)!) + + `setup instance create` accepts optional SCAPI coordinates for SCAPI-first active-code-version detection. They are not required in `auto`; missing coordinates select OCAPI, and failed interactive detection reports the reason before allowing manual entry. + + This is a major release because JSON/results can change shape during the migration. `job run`, `job wait`, and `job search` return canonical camelCase fields with either backend, including OCAPI fallback; consumers must update fields such as `execution_status` to `executionStatus`. Other commands can retain backend-specific shapes, for which explicitly selecting OCAPI preserves the legacy shape. SDK high-level code helpers accept an explicit scripts backend; dual-backend factories and `JobsCompatibilityBackend` expose reusable fallback without making implicit backend selection an SDK-wide policy. + + SCAPI currently requires client-credentials or JWT Bearer authentication. Browser-based user auth continues through OCAPI/WebDAV and is selected by `auto`; explicit SCAPI with user auth errors clearly until the platform adds support. + + GitHub Action v2 adopts CLI 2.x and its camelCase job results. Existing `@v1` workflows remain on the maintained CLI 1.x line, preserving the OCAPI behavior and legacy result shapes of operations migrated in CLI 2 until consumers update their Action references to `@v2`. CLI 1.x commands designed specifically for SCAPI continue to use SCAPI. + + The VS Code extension uses configured tenant IDs consistently in API Browser, keeps partial export discovery warnings in the output log instead of showing notifications, and supports JWT-authenticated OCAPI fallback equivalently to client credentials. + +### Patch Changes + +- [#681](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/681) [`6c8bd53`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6c8bd53064a5ebcc51c9d40b464121bf68539ab5) - Add in-editor API Browser setup help for Admin and Shopper connections. Remove misleading Swagger authorization controls and show token failures with guidance instead of leaving authentication pending. (Thanks [@clavery](https://github.com/clavery)!) + +- [#643](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/643) [`f208d0c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/f208d0c0be40f9b597f8bcba8636feb3be011ff2) - Made VS Code instance selection workspace-specific by default, with explicit actions to set or follow the shared default without unexpectedly changing other tools and workspaces. Opening an instance's configuration now reveals its exact named entry. (Thanks [@clavery](https://github.com/clavery)!) + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add embedded Commerce skills through MCP resources and searchable `skills_read`, with focused configuration, authentication, and workflow guidance and consistent CLI/MCP recommendations. Enable all toolsets by default, streamline debugging and logging, identify tool effects for client approval controls, and support MCP 2026-07-28 alongside earlier clients. Include concise installation, capabilities, configuration, and security documentation. (Thanks [@clavery](https://github.com/clavery)!) + + Update explicit tool selections to use `debug_control`, `debug_inspect`, `logs_watch`, and `mrt_logs_watch`; remove `pwakit_get_guidelines` and `scapi_custom_api_generate_scaffold`. Remove `--allow-non-ga-tools` from launch commands. Use `--toolsets` or `--tools` to customize the catalog and `b2c scaffold generate custom-api` for local scaffolding. + +- Updated dependencies [[`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`6c8bd53`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6c8bd53064a5ebcc51c9d40b464121bf68539ab5), [`3751091`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/3751091325208907e5a79932a621e2020e3a0014), [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f), [`f208d0c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/f208d0c0be40f9b597f8bcba8636feb3be011ff2), [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05), [`5741d42`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/5741d42beae402a664282738aa883e1d9fb8d903), [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701), [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701), [`c9cf71f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c9cf71fad0981e6a580581735062b171c70ba5d6), [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2), [`2dbbf72`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2dbbf72c60579fa314a4a8db64e178d8fc83978b), [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2), [`1b6bdf8`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1b6bdf87c0670e0ecc955d0acaa672859ca0c73e), [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a), [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663), [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663), [`a0214e4`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/a0214e43c1d3a6f148634af1741f7cee0785551b), [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec), [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec), [`de36e4a`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/de36e4a5f99a38ad102b8314d14ec515602ce16d), [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f)]: + - @salesforce/b2c-tooling-sdk@2.0.0 + ## 1.1.4 ### Patch Changes diff --git a/packages/b2c-vs-extension/package.json b/packages/b2c-vs-extension/package.json index 21ccc1af6..3901c3d7d 100644 --- a/packages/b2c-vs-extension/package.json +++ b/packages/b2c-vs-extension/package.json @@ -2,7 +2,7 @@ "name": "b2c-vs-extension", "displayName": "Salesforce B2C Commerce", "description": "Tools for developing on Salesforce B2C Commerce, including cartridge deployment, script debugging and IntelliSense, and sandbox management.", - "version": "1.1.4", + "version": "1.2.0", "publisher": "Salesforce", "icon": "media/icon.png", "license": "Apache-2.0", diff --git a/plugins/b2c-dx-mcp/.codex-plugin/plugin.json b/plugins/b2c-dx-mcp/.codex-plugin/plugin.json index c5735110a..9b5164b9c 100644 --- a/plugins/b2c-dx-mcp/.codex-plugin/plugin.json +++ b/plugins/b2c-dx-mcp/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "b2c-dx-mcp", - "version": "2.1.2", + "version": "3.0.0", "description": "Build, debug, and deploy Salesforce B2C Commerce with your AI assistant. Includes documentation, workflow skills, and Salesforce Commerce API tools.", "author": { "name": "Salesforce", @@ -9,14 +9,23 @@ "homepage": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/", "repository": "https://github.com/SalesforceCommerceCloud/b2c-developer-tooling", "license": "Apache-2.0", - "keywords": ["salesforce", "b2c-commerce", "commerce-cloud", "mcp", "developer-tools"], + "keywords": [ + "salesforce", + "b2c-commerce", + "commerce-cloud", + "mcp", + "developer-tools" + ], "interface": { "displayName": "B2C DX MCP", "shortDescription": "Build, debug, deploy, and manage B2C Commerce.", "longDescription": "B2C Commerce tools and expertise for your AI assistant: build storefronts, deploy cartridges, debug scripts, inspect logs, investigate failed jobs, and work with products and promotions through SCAPI code mode.", "developerName": "Salesforce", "category": "Developer Tools", - "capabilities": ["Read", "Write"], + "capabilities": [ + "Read", + "Write" + ], "websiteURL": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/", "brandColor": "#0D9DDA", "defaultPrompt": [ diff --git a/plugins/b2c-dx-mcp/.mcp.json b/plugins/b2c-dx-mcp/.mcp.json index d93f2a7a4..63b7b58ea 100644 --- a/plugins/b2c-dx-mcp/.mcp.json +++ b/plugins/b2c-dx-mcp/.mcp.json @@ -2,7 +2,10 @@ "mcpServers": { "b2c-dx-mcp": { "command": "npx", - "args": ["-y", "@salesforce/b2c-dx-mcp@2.1.2"] + "args": [ + "-y", + "@salesforce/b2c-dx-mcp@3.0.0" + ] } } } diff --git a/plugins/b2c-dx-mcp/mcp.json b/plugins/b2c-dx-mcp/mcp.json index 288c3a998..08473b844 100644 --- a/plugins/b2c-dx-mcp/mcp.json +++ b/plugins/b2c-dx-mcp/mcp.json @@ -4,7 +4,10 @@ "b2c-dx-mcp": { "type": "stdio", "command": "npx", - "args": ["-y", "@salesforce/b2c-dx-mcp@2.1.2"] + "args": [ + "-y", + "@salesforce/b2c-dx-mcp@3.0.0" + ] } } } diff --git a/plugins/b2c-dx-mcp/plugin.json b/plugins/b2c-dx-mcp/plugin.json index 4bd585129..4ed46f9ea 100644 --- a/plugins/b2c-dx-mcp/plugin.json +++ b/plugins/b2c-dx-mcp/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "b2c-dx-mcp", - "version": "2.1.2", + "version": "3.0.0", "description": "Build, debug, and deploy Salesforce B2C Commerce with your AI assistant. Includes documentation, workflow skills, and Salesforce Commerce API tools.", "author": { "name": "Salesforce" @@ -9,7 +9,14 @@ "homepage": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/", "repository": "https://github.com/SalesforceCommerceCloud/b2c-developer-tooling", "license": "Apache-2.0", - "keywords": ["salesforce", "b2c-commerce", "commerce-cloud", "mcp", "scapi", "ocapi"], + "keywords": [ + "salesforce", + "b2c-commerce", + "commerce-cloud", + "mcp", + "scapi", + "ocapi" + ], "extensions": { "com.openai": { "interface": { diff --git a/schemas/CHANGELOG.md b/schemas/CHANGELOG.md new file mode 100644 index 000000000..135527ea3 --- /dev/null +++ b/schemas/CHANGELOG.md @@ -0,0 +1,11 @@ +# @salesforce/b2c-api-schemas + +## 0.2.0 + +### Minor Changes + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add SCAPI code mode with offline discovery of 594 Admin and Shopper operations and standard or custom Admin API execution using automatic authentication and SDK Safety Mode. Compose requests and return focused results through `scapi_search` and `scapi_execute`, with bounded execution and actionable access errors. (Thanks [@clavery](https://github.com/clavery)!) + + Discover tenant custom API contracts live and execute their declared Admin operations. Live schema reads include custom-property definitions by default; known custom fields work directly in standard Admin requests. Bundled schemas remain tenant-independent. + + Reuse built-in workflows for product creation with optional category assignment, campaign/promotion inspection, and failed-job triage, or save reviewed workflows for later use. Export Account Manager and SLAS tokens when an external client needs them; normal SCAPI requests authenticate automatically. Code mode restricts local filesystem/process APIs to keep programs focused on API workflows; use terminal and file tools for local development. diff --git a/schemas/package.json b/schemas/package.json index e7612b8e3..586357e94 100644 --- a/schemas/package.json +++ b/schemas/package.json @@ -1,8 +1,15 @@ { "name": "@salesforce/b2c-api-schemas", - "version": "0.1.0", + "version": "0.2.0", "private": true, "description": "Language-neutral standard SCAPI OpenAPI contracts", - "files": ["manifest.json", "scapi", "README.md"], - "exports": {"./manifest.json": "./manifest.json", "./package.json": "./package.json"} + "files": [ + "manifest.json", + "scapi", + "README.md" + ], + "exports": { + "./manifest.json": "./manifest.json", + "./package.json": "./package.json" + } } diff --git a/skills/CHANGELOG.md b/skills/CHANGELOG.md index 8a1091561..3a5e80d88 100644 --- a/skills/CHANGELOG.md +++ b/skills/CHANGELOG.md @@ -1,5 +1,83 @@ # @salesforce/b2c-agent-plugins +## 1.9.0 + +### Minor Changes + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Add b2c-ops runbooks for job health, checkout and failed-order investigation, and incident triage, available as a skills plugin, through CLI installation, and included in the MCP. Add an Operations guide with example requests, recovery checks, and handoffs to administrators, developers, providers, or Salesforce Support. (Thanks [@clavery](https://github.com/clavery)!) + +### Patch Changes + +- [`46ab439`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/46ab439b4b306809f161a110669d9fce9376c8d5) - Lead SCAPI checkout guidance with the documented order payment-instrument authorization, placement, and failure lifecycle while retaining single-phase order hook orchestration as an option. (Thanks [@clavery](https://github.com/clavery)!) + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Analyze B2C Commerce sales, merchandising, and technical trends directly through MCP with CIP report discovery and SQL queries. Includes analytics skills, shared configuration and Safety Mode support, and bounded, cancellable queries without a separate CLI installation. (Thanks [@clavery](https://github.com/clavery)!) + + Report discovery includes source tables and sales metric definitions. Sales, payment, and promotion reports return unavailable averages for zero-count groups instead of failing on division by zero. + +- [#672](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/672) [`304f0eb`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/304f0eba3188b6dc62974ba2e63dea4fa9aaf84f) - Fix SCAPI system-job requests so site archive imports and exports, including Page Designer content exports, use the required configuration format. Preserve OCAPI compatibility retries and clarify content authentication guidance. (Thanks [@clavery](https://github.com/clavery)!) + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add embedded Commerce skills through MCP resources and searchable `skills_read`, with focused configuration, authentication, and workflow guidance and consistent CLI/MCP recommendations. Enable all toolsets by default, streamline debugging and logging, identify tool effects for client approval controls, and support MCP 2026-07-28 alongside earlier clients. Include concise installation, capabilities, configuration, and security documentation. (Thanks [@clavery](https://github.com/clavery)!) + + Update explicit tool selections to use `debug_control`, `debug_inspect`, `logs_watch`, and `mrt_logs_watch`; remove `pwakit_get_guidelines` and `scapi_custom_api_generate_scaffold`. Remove `--allow-non-ga-tools` from launch commands. Use `--toolsets` or `--tools` to customize the catalog and `b2c scaffold generate custom-api` for local scaffolding. + +- [#680](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/680) [`6503d81`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/6503d815fd4f942b74f494633cd430b680f33c05) - Add reusable workflows for job history, execution steps, code versions, and site cartridge paths. Update MCP task guidance and operational runbooks to use these workflows and exact job-log reads with less reliance on the CLI. (Thanks [@clavery](https://github.com/clavery)!) + +- [#662](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/662) [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701) - Add a `--mrt-backend` flag (`auto` | `legacy` | `scapi`, default `auto`; also `MRT_BACKEND` env var or `mrtBackend` in `dw.json`) to `b2c mrt` commands. It lets `mrt bundle history` and `mrt bundle deploy ` run over the SCAPI Storefront Deployments API (OAuth, scopes `sfcc.storefront.deployments[.rw]`) instead of the legacy MRT Cloud API (per-user API key). `auto` prefers SCAPI when `--short-code`/`--tenant-id` and client-credentials or JWT Bearer auth are configured, otherwise uses legacy, and falls back to legacy on safe pre-execution errors (surfacing the SCAPI error instead when no legacy credentials are configured, so the real failure isn't masked); `scapi` never silently falls back. All other MRT commands — and `mrt bundle deploy`'s local-build push path — remain on the legacy backend. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + Under `--json`, these commands return the serving backend's native response verbatim (legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`) — the human-readable table is normalized across backends, but `--json` is not, so pin `legacy` or `scapi` when a script needs a stable shape. Legacy-only flags (`--api-key`, `--cloud-origin`, `--credentials-file`) now print a warning under `--mrt-backend scapi` (where the legacy backend that honors them never runs). `--project` also gains a `--storefront` / `-s` alias for the SCAPI storefront ID. + +- [#646](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/646) [`c9cf71f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c9cf71fad0981e6a580581735062b171c70ba5d6) - Add `b2c mrt bundle upload-v2` for building and uploading v2-format Managed Runtime bundles. The v2 archive is a gzip tar whose files live under a configurable root directory (default `bld/`) with the SSR configuration written inside the archive at `{root-dir}/{config-path}` (default `bld/.mrt/config.json`), uploaded as multipart/form-data. This command is upload-only — deploy the returned bundle ID with `b2c mrt bundle deploy -e `. Every server-side parameter (root dir, config path, match mode, SSR patterns/parameters, dependencies, and CC overrides) is exposed as a flag. The SDK adds matching `createBundleV2`, `pushBundleV2`, and `uploadBundleV2` operations. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + Bundle commands now read SSR configuration (`ssrOnly`/`ssrShared`/`ssrParameters`) from `config.server.ts` in the project directory, loaded straight from source, so it no longer needs to be compiled into the build output. Use `--project-directory` to point at a project other than the current directory (a compiled `config.server.js`/`config.server.mjs` and the legacy `build/config.server.js` are still accepted). For `upload-v2`, an on-disk v2 config file (`{build-dir}/{config-path}`) still takes precedence when present; command flags override the resolved values per key. The SDK's `createBundle`/`createBundleV2` gain a `projectDirectory` option for this. + + Bundles now include the project's declared dependencies as bundle metadata (v1 `bundle_metadata.dependencies`; v2 `bundleMetadata.dependencies` inside the archive config), derived from the project `package.json` (`dependencies` + `devDependencies`) — matching pwa-kit/storefront-next. Explicitly provided dependencies (v2 `--dependencies`) or dependencies already present in the v2 config file take precedence; collection is best-effort and never blocks a bundle if `package.json` is missing or unreadable. + +- [#676](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/676) [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2) - De-conflict short flags on the `mrt` command surface so each `-x` means one thing: (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + - `--cloud-origin` moved from `-o` to `-u`, freeing `-o` for `--organization` (`mrt project create` / `list`) and `--output` (`mrt bundle download`) — which previously shadowed the base flag. **Breaking:** update any scripts passing `-o` for the cloud origin; the long form `--cloud-origin` is unchanged. + - `mrt project notification create` / `update`: `--target` (the notification's target-environment list) now also accepts `--environment` / `-e` as aliases, since a notification target _is_ an environment. These two commands no longer expose the standalone single-value `--environment` flag — it was unused there and its `--target` alias collided with the command's own `--target`. + +- [#662](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/662) [`2f92310`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2f923102522bb83006b43e9adf6fb0e777c43701) - Document `SFCC_MRT_BACKEND` as a supported way to select the `b2c mrt` backend (alongside `MRT_BACKEND`) in the b2c-mrt skill. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + +- [#676](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/676) [`2924738`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/29247384d95e37ab8b8e739a191621ab3e1bd0d2) - Add `storefront` as an alias for `project` across the `mrt` command surface, matching the terminology of the SCAPI MRT API. `b2c mrt storefront ` now works identically to `b2c mrt project ` (including the `member` and `notification` subtopics), and `--storefront` / `-s` are accepted anywhere `--project` / `-p` is. The new `MRT_STOREFRONT` / `SFCC_MRT_STOREFRONT` environment variables act as fallbacks for `MRT_PROJECT` / `SFCC_MRT_PROJECT`. The `project` / `--project` (`-p`) forms and the existing `MRT_PROJECT` variables continue to work unchanged. (Thanks [@kieran-sf](https://github.com/kieran-sf)!) + + `-s` now uniformly means `--project` / `--storefront` on **every** `mrt` command. To make that consistent, two commands changed their own short flags (**breaking**): + - `mrt project create` no longer has a `--slug` flag. Set the new project's slug with `--project` / `--storefront` (`-p` / `-s`) instead — e.g. `b2c mrt project create "My Storefront" -o my-org -s my-storefront`. When omitted, MRT auto-generates the slug from the name (unchanged). **Update any scripts using `--slug`.** + - `mrt bundle save` moved `--save-dir` from `-s` to `-d`, freeing `-s` for the storefront alias. **Update any scripts using `-s` for the save directory** (the long form `--save-dir` is unchanged). + + `mrt project get`, `update`, and `delete` accept the project slug **either** as a positional argument **or** via `--project` / `--storefront` (`-p` / `-s`; also honoring `MRT_PROJECT` and `dw.json`). Symmetrically, `mrt env create` and `mrt env delete` now accept the environment slug **either** as a positional argument **or** via `--environment` / `-e` (also honoring `MRT_ENVIRONMENT` and `dw.json`). An explicit positional still wins when both are given. + + Error messages surface the alias too: the "MRT project is required" errors now mention `--project` / `--storefront` (`-p` / `-s`), and passing a flag twice through an alias (e.g. `-p x -s y`) now reports which long and short forms refer to the same flag instead of the bare "can only be specified once". + + On the `mrt project notification` commands, `--environment` (`-e`) is now the primary flag for specifying environments (previously `--target`), matching the rest of the `mrt` surface. `--target` / `-t` are retained as aliases so existing scripts keep working, and command output and `--help` now say "environment" / "Environments" rather than "target". `notification list` follows suit with an `--environment` filter and an `Environments` column. + +- [#670](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/670) [`407075c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/407075c8d6b69647afbc31ac15004941be84957a) - Add SCAPI code mode with offline discovery of 594 Admin and Shopper operations and standard or custom Admin API execution using automatic authentication and SDK Safety Mode. Compose requests and return focused results through `scapi_search` and `scapi_execute`, with bounded execution and actionable access errors. (Thanks [@clavery](https://github.com/clavery)!) + + Discover tenant custom API contracts live and execute their declared Admin operations. Live schema reads include custom-property definitions by default; known custom fields work directly in standard Admin requests. Bundled schemas remain tenant-independent. + + Reuse built-in workflows for product creation with optional category assignment, campaign/promotion inspection, and failed-job triage, or save reviewed workflows for later use. Export Account Manager and SLAS tokens when an external client needs them; normal SCAPI requests authenticate automatically. Code mode restricts local filesystem/process APIs to keep programs focused on API workflows; use terminal and file tools for local development. + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Migrate `job`, `code`, `bm users`, `bm roles`, `sites`, and catalog discovery to SCAPI-first operation with a temporary OCAPI compatibility fallback. `auto` tries SCAPI when its coordinates and stateless authentication are available, pins the selected backend for multi-request operations, and falls back only on safe capability/auth/request rejections. Site cartridge-path writes, portable BM user search, disabled-user updates, system-job triggers, SDK/CLI/MCP code-version discovery, and VS Code jobs/code/catalog surfaces now participate. Inventory-list enumeration, BM `whoami`, access-key administration, and raw OCAPI user-search JSON remain temporary OCAPI compatibility operations because the current live SCAPI schemas have no equivalent. Explicit SCAPI mode rejects these operations before contacting OCAPI and identifies B2C Commerce release 26.8 as the current capability baseline. (Thanks [@clavery](https://github.com/clavery)!) + + `setup instance create` accepts optional SCAPI coordinates for SCAPI-first active-code-version detection. They are not required in `auto`; missing coordinates select OCAPI, and failed interactive detection reports the reason before allowing manual entry. + + This is a major release because JSON/results can change shape during the migration. `job run`, `job wait`, and `job search` return canonical camelCase fields with either backend, including OCAPI fallback; consumers must update fields such as `execution_status` to `executionStatus`. Other commands can retain backend-specific shapes, for which explicitly selecting OCAPI preserves the legacy shape. SDK high-level code helpers accept an explicit scripts backend; dual-backend factories and `JobsCompatibilityBackend` expose reusable fallback without making implicit backend selection an SDK-wide policy. + + SCAPI currently requires client-credentials or JWT Bearer authentication. Browser-based user auth continues through OCAPI/WebDAV and is selected by `auto`; explicit SCAPI with user auth errors clearly until the platform adds support. + + GitHub Action v2 adopts CLI 2.x and its camelCase job results. Existing `@v1` workflows remain on the maintained CLI 1.x line, preserving the OCAPI behavior and legacy result shapes of operations migrated in CLI 2 until consumers update their Action references to `@v2`. CLI 1.x commands designed specifically for SCAPI continue to use SCAPI. + + The VS Code extension uses configured tenant IDs consistently in API Browser, keeps partial export discovery warnings in the output log instead of showing notifications, and supports JWT-authenticated OCAPI fallback equivalently to client credentials. + +- [#413](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/413) [`3773648`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/37736482722f91bca319a1b20887c01571e97663) - Detect deprecated OCAPI instances and guide users to SCAPI. (Thanks [@clavery](https://github.com/clavery)!) + + When an instance has OCAPI disabled, `code`, `job`, `bm`, `sites`, and `cap` commands now fail with an actionable message — naming the exact SCAPI scope the operation needs (e.g. `sfcc.scripts` / `sfcc.scripts.rw`) — instead of an opaque "Failed to ..." error. Documentation and agent skills for `code`, `job`, and `bm` are now SCAPI-first, presenting OCAPI as the deprecated fallback. + +- [#642](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/642) [`a0214e4`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/a0214e43c1d3a6f148634af1741f7cee0785551b) - Allow SLAS client `get`, `update`, `delete`, and `open` commands to use the configured SLAS client ID when their positional client ID is omitted, while keeping the positional value as an explicit override. (Thanks [@clavery](https://github.com/clavery)!) + +- [#675](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/675) [`b2b026c`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/b2b026c109c6d3aad219ddd9603bfe59d426e8ec) - Apply shared HTTP middleware to SLAS shopper token flows so custom headers such as `SFCC_EXTRA_HEADERS` reach every request. Preserve redirect and cancellation settings when adding extra request parameters, and document the token response shape. (Thanks [@clavery](https://github.com/clavery)!) + +- [#677](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/677) [`de36e4a`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/de36e4a5f99a38ad102b8314d14ec515602ce16d) - Refocus Storefront Next guidance on managing existing storefronts with environment-variable updates, logs, deployments, and assistant support. Link to Salesforce's Business Manager setup guides and align the included skills and documentation search with that workflow. (Thanks [@clavery](https://github.com/clavery)!) + ## 1.8.5 ### Patch Changes diff --git a/skills/b2c-cli/.codex-plugin/plugin.json b/skills/b2c-cli/.codex-plugin/plugin.json index 3f7047efb..57988e624 100644 --- a/skills/b2c-cli/.codex-plugin/plugin.json +++ b/skills/b2c-cli/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "b2c-cli", - "version": "1.8.5", + "version": "1.9.0", "description": "B2C CLI Skills for Salesforce Commerce Cloud development.", "author": { "name": "Salesforce" diff --git a/skills/b2c-cli/plugin.json b/skills/b2c-cli/plugin.json index 75b27d940..ac88e19d8 100644 --- a/skills/b2c-cli/plugin.json +++ b/skills/b2c-cli/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "b2c-cli", - "version": "1.8.5", + "version": "1.9.0", "description": "B2C CLI Skills for Salesforce Commerce Cloud development.", "author": { "name": "Salesforce" diff --git a/skills/b2c-ops/.codex-plugin/plugin.json b/skills/b2c-ops/.codex-plugin/plugin.json index 2f0f7530f..70cb6386e 100644 --- a/skills/b2c-ops/.codex-plugin/plugin.json +++ b/skills/b2c-ops/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "b2c-ops", - "version": "1.8.5", + "version": "1.9.0", "description": "B2C Commerce operator and administrator runbooks for job health, checkout and failed orders, and incident triage.", "author": { "name": "Salesforce" @@ -8,7 +8,14 @@ "homepage": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/", "repository": "https://github.com/SalesforceCommerceCloud/b2c-developer-tooling", "license": "Apache-2.0", - "keywords": ["salesforce", "b2c-commerce", "operations", "administration", "runbooks", "incident-triage"], + "keywords": [ + "salesforce", + "b2c-commerce", + "operations", + "administration", + "runbooks", + "incident-triage" + ], "skills": "./skills/", "interface": { "displayName": "B2C Operations", @@ -16,7 +23,9 @@ "longDescription": "Review scheduled work, investigate checkout and failed orders, and prepare evidence-backed handoffs using B2C Commerce tools.", "developerName": "Salesforce", "category": "Productivity", - "capabilities": ["Read"], + "capabilities": [ + "Read" + ], "logo": "./assets/logo.svg", "composerIcon": "./assets/logo.svg", "brandColor": "#0D9DDA", diff --git a/skills/b2c-ops/plugin.json b/skills/b2c-ops/plugin.json index 394087373..1bff6ff5f 100644 --- a/skills/b2c-ops/plugin.json +++ b/skills/b2c-ops/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "b2c-ops", - "version": "1.8.5", + "version": "1.9.0", "description": "B2C Commerce operator and administrator runbooks for job health, checkout and failed orders, and incident triage.", "author": { "name": "Salesforce" @@ -9,7 +9,14 @@ "homepage": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/", "repository": "https://github.com/SalesforceCommerceCloud/b2c-developer-tooling", "license": "Apache-2.0", - "keywords": ["salesforce", "b2c-commerce", "operations", "administration", "runbooks", "incident-triage"], + "keywords": [ + "salesforce", + "b2c-commerce", + "operations", + "administration", + "runbooks", + "incident-triage" + ], "extensions": { "com.openai": { "interface": { @@ -18,7 +25,9 @@ "longDescription": "Review scheduled work, investigate checkout and failed orders, and prepare evidence-backed handoffs using B2C Commerce tools.", "developerName": "Salesforce", "category": "Productivity", - "capabilities": ["Read"], + "capabilities": [ + "Read" + ], "logo": "./assets/logo.svg", "composerIcon": "./assets/logo.svg", "brandColor": "#0D9DDA", diff --git a/skills/b2c/.codex-plugin/plugin.json b/skills/b2c/.codex-plugin/plugin.json index bcad74090..78ff2850e 100644 --- a/skills/b2c/.codex-plugin/plugin.json +++ b/skills/b2c/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "b2c", - "version": "1.8.5", + "version": "1.9.0", "description": "B2C Commerce development skills including Custom API development guides.", "author": { "name": "Salesforce" diff --git a/skills/b2c/plugin.json b/skills/b2c/plugin.json index dd3d3d32f..61f835542 100644 --- a/skills/b2c/plugin.json +++ b/skills/b2c/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "b2c", - "version": "1.8.5", + "version": "1.9.0", "description": "B2C Commerce development skills including Custom API development guides.", "author": { "name": "Salesforce" diff --git a/skills/package.json b/skills/package.json index 4a8d6eed6..72af3f305 100644 --- a/skills/package.json +++ b/skills/package.json @@ -1,6 +1,6 @@ { "name": "@salesforce/b2c-agent-plugins", - "version": "1.8.5", + "version": "1.9.0", "description": "B2C Commerce agent skills plugins for development and operations. Private — distributed via GitHub release zips.", "private": true } diff --git a/skills/storefront-next/.codex-plugin/plugin.json b/skills/storefront-next/.codex-plugin/plugin.json index fb176936b..7aa8e28a5 100644 --- a/skills/storefront-next/.codex-plugin/plugin.json +++ b/skills/storefront-next/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "storefront-next", - "version": "1.8.5", + "version": "1.9.0", "description": "Storefront Next development skills for building React 19 storefronts on Salesforce B2C Commerce.", "author": { "name": "Salesforce" diff --git a/skills/storefront-next/plugin.json b/skills/storefront-next/plugin.json index e042657d6..531928e6e 100644 --- a/skills/storefront-next/plugin.json +++ b/skills/storefront-next/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "storefront-next", - "version": "1.8.5", + "version": "1.9.0", "description": "Storefront Next development skills for building React 19 storefronts on Salesforce B2C Commerce.", "author": { "name": "Salesforce" From f7d40ebf0bfd76a0cbd6a4c1d7ff72b732f6454c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2026 14:34:42 +0000 Subject: [PATCH 2/2] chore: trigger CI checks