Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
B2C CLI, VSCode Extension, Skills+MCP, and Tooling SDK for Salesforce Agentforce Commerce B2C
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗[!NOTE] This project is Generally Available (GA). Please provide feedback via GitHub issues.
Salesforce B2C Commerce Command Line Tools.
[!TIP] Just looking for the B2C CLI or MCP install instructions? Visit the documentation site at https://salesforcecommercecloud.github.io/b2c-developer-tooling/ for the latest install guide and CLI reference.
Install B2C Commerce agent skills and plugins in your AI-powered editor. Three plugins are available: b2c-cli (CLI operations), b2c (development patterns), and b2c-dx-mcp (MCP server — Claude Code only).
Claude Code: run these commands in chat:
/plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
/plugin install b2c-cli@b2c-developer-tooling
/plugin install b2c@b2c-developer-tooling
/plugin install b2c-dx-mcp@b2c-developer-tooling
Claude Code does not auto-update third-party marketplaces by default. To get new releases automatically, run /plugin again, open Marketplaces, select b2c-developer-tooling, and choose Enable auto-update.
VS Code (GitHub Copilot): Command Palette (Cmd+Shift+P / Ctrl+Shift+P) → Chat: Install Plugin From Source → enter the repo SalesforceCommerceCloud/b2c-developer-tooling.
GitHub Copilot CLI:
copilot plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
copilot plugin install b2c-cli@b2c-developer-tooling
copilot plugin install b2c@b2c-developer-tooling
Cursor: add the marketplace from this repo URL in Cursor Settings → Plugins, then install b2c-cli / b2c.
Codex CLI: run /plugins and add from this repo (GitHub URL).
Gemini CLI: gemini extensions install https://github.com/SalesforceCommerceCloud/b2c-developer-tooling
Any supported IDE (file-copy install via CLI):
npx @salesforce/b2c-cli setup skills
For Windsurf, OpenCode, Agentforce Vibes, manual installs, and the full install matrix, see docs/guide/agent-skills.
This is a pnpm monorepo with the following packages:
| Package | Description |
|---|---|
b2c-cli | Command line interface built with oclif |
b2c-tooling-sdk | SDK/library for B2C Commerce operations; supports the CLI and can be used standalone |
b2c-dx-mcp | MCP server for B2C Commerce developer experience tools |
pnpm install
pnpm start
# or directly:
pnpm --filter @salesforce/b2c-cli run dev
# or using convenience script:
./cli
The dev mode uses Node.js --conditions=development to resolve TypeScript source files directly from @salesforce/b2c-tooling-sdk without needing to build first.
# Build all packages
pnpm -r run build
# Build individual packages
pnpm --filter @salesforce/b2c-cli run build
pnpm --filter @salesforce/b2c-tooling-sdk run build
Tests use Mocha + Chai with c8 for coverage. HTTP mocking uses MSW.
# Run all tests with coverage (also runs linter after tests)
pnpm test
# Run tests for a specific package
pnpm --filter @salesforce/b2c-tooling-sdk run test
# Run tests without coverage (faster)
pnpm --filter @salesforce/b2c-tooling-sdk run test:unit
# Watch mode for TDD
pnpm --filter @salesforce/b2c-tooling-sdk run test:watch
# Run a specific test file
cd packages/b2c-tooling-sdk
pnpm mocha "test/clients/webdav.test.ts"
# Run tests matching a pattern
pnpm mocha --grep "uploads a file" "test/**/*.test.ts"
Coverage reports are generated in each package's coverage/ directory:
coverage/index.html - HTML reportcoverage/lcov.info - LCOV format for CI integrationThe SDK package has a 5% coverage threshold that will fail the build if not met.
# Run linter only
pnpm --filter @salesforce/b2c-cli run lint
pnpm --filter @salesforce/b2c-tooling-sdk run lint
This project uses Prettier for code formatting.
# Format all packages
pnpm -r run format
# Check formatting without modifying files
pnpm -r run format:check
Documentation is built using TypeDoc for API reference generation and VitePress for the documentation site.
docs/ - VitePress documentation source
guide/ - User guide and getting startedcli/ - CLI command referenceapi/ - Generated API documentation (do not edit manually)typedoc.json - TypeDoc configuration with entry points for SDK modulespnpm run docs:dev
This runs typedoc to generate API docs, then starts VitePress in development mode with hot reload.
pnpm run docs:build
pnpm run docs:preview
The documentation site serves two versions:
/dev/) — built from the main branch, updated on every push to mainDoc-only releases (without bumping CLI/SDK/MCP versions) are possible by creating a changeset targeting @salesforce/b2c-dx-docs. See PUBLISHING.md for details.
API documentation is auto-generated from JSDoc comments in the @salesforce/b2c-tooling-sdk package. The entry points are defined in typedoc.json:
See the documentation site for the generated API reference.
auth - Authentication strategies (OAuth, API Key, Basic)instance - B2C instance configurationplatform - MRT and ODS clientsoperations/code - Cartridge code operationsoperations/jobs - Job executionoperations/sites - Site managementi18n - Internationalization utilitieslogging - Structured loggingWhen adding new public APIs, ensure they have comprehensive JSDoc comments as these will appear in the generated documentation.
The SDK ships several corpora derived from the B2C Commerce platform under packages/b2c-tooling-sdk/data/:
| Directory | Contents | Consumed by |
|---|---|---|
script-api/ | Script API reference markdown + search index | b2c docs search / docs read, MCP docs_* |
content-schemas/ | Page Designer / content metadefinition JSON schemas | b2c content validate |
xsd/ | Import/export XSD schemas + search index | b2c docs schema *, b2c validate, MCP validate_xml_schema |
xml-validator/ | libxml2 compiled to WebAssembly; built by wasm/xml-validator/build.sh and verified in CI | b2c validate, MCP validate_xml_schema |
job-steps/ | Standard job-step markdown + dataset + search index | b2c docs search / docs read |
All of these originate from the same documentation archive that b2c docs download fetches from an instance (the inner DWAPP-<version>-API-doc.zip). To refresh all of them to a new platform release at once, run the maintainer script against a current instance (it uses your default instance/auth via the CLI):
# Refresh every data set and regenerate the derived indexes
pnpm --filter @salesforce/b2c-tooling-sdk run refresh:docs-data
# Target a non-default instance, or keep the temp workdir for inspection
B2C_INSTANCE=my-sandbox KEEP_WORKDIR=1 pnpm --filter @salesforce/b2c-tooling-sdk run refresh:docs-data
The script prints the detected platform version (e.g. DWAPP 26.7). Afterward, review the diff under packages/b2c-tooling-sdk/data/ (index files always change their generatedAt timestamp; look for substantive schema/doc changes), run pnpm --filter @salesforce/b2c-tooling-sdk run test:agent, and add a changeset if the refresh changes user-facing behavior. See the sdk-module-development skill for details.
This project uses Changesets for version management and publishes to npm using OIDC trusted publishers.
| Release Type | npm Tag | Trigger |
|---|---|---|
| Stable | @latest | Merge version PR on main |
| Release Branch | @latest or @release-X.Y | Push to release/** branch |
| Nightly | @nightly | Scheduled (weekdays) or manual |
For detailed information about the release process, including release branches, see PUBLISHING.md.
# Create a changeset for your changes
pnpm changeset
# Check pending changesets
pnpm changeset status
Preview releases are available as tgz files on GitHub Releases for testing before npm publication.
The @salesforce/b2c-tooling-sdk package uses the exports field in package.json to define its public API surface. Each module is available as a subpath export:
import {OAuthStrategy} from '@salesforce/b2c-tooling-sdk/auth';
import {B2CInstance} from '@salesforce/b2c-tooling-sdk/instance';
import {getLogger} from '@salesforce/b2c-tooling-sdk/logging';
The development condition in exports enables direct TypeScript source resolution when using --conditions=development, which is how bin/dev.js works for local development.
We welcome contributions! Please see our Contributing Guide for details on how to get started, submit pull requests, and our code of conduct.
To prevent net-new third-party libraries from being added without discussion, PRs are checked by the 3PL Guard workflow (Net-new 3PL check).
package.json files in the PR and detects net-new external dependencies.needs-3pl-review and the check fails.3pl-approved label to allow the check to pass.needs-3pl-review is removed automatically.To enforce this as a merge gate, keep Net-new 3PL check as a required status check in branch protection.
For security concerns, please review our Security Policy. Report any security issues to [email protected].
This project is licensed under the Apache License 2.0. See LICENSE.txt for full details.
This project is provided "as-is" without warranty of any kind. While the CLI, SDK, and MCP server are Generally Available, the VS Code extension is currently in Developer Preview — see its documentation for details. Breaking changes to any component will follow a documented deprecation cycle.