sfcc-dev-mcp 1.0.15 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +3 -1
- package/.github/ISSUE_TEMPLATE/documentation.yml +2 -2
- package/.github/ISSUE_TEMPLATE/question.yml +1 -1
- package/.github/PULL_REQUEST_TEMPLATE/documentation.md +1 -1
- package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +1 -1
- package/.github/agents/official-docs-researcher.agent.md +56 -0
- package/.github/instructions/mcp-node-tests.instructions.md +12 -916
- package/.github/instructions/mcp-yml-tests.instructions.md +14 -742
- package/.github/pull_request_template.md +1 -1
- package/.github/skills/agent-authoring/SKILL.md +66 -0
- package/.github/skills/mcp-log-debugging/SKILL.md +69 -0
- package/.github/skills/mcp-programmatic-testing/SKILL.md +142 -0
- package/.github/skills/mcp-yaml-testing/SKILL.md +136 -0
- package/.github/skills/salesforce-developer-site-scraper/SKILL.md +102 -0
- package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +205 -0
- package/.github/skills/salesforce-help-site-scraper/SKILL.md +84 -0
- package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +212 -0
- package/.github/skills/skill-authoring/SKILL.md +228 -0
- package/.github/skills/skill-authoring/references/PATTERNS.md +384 -0
- package/.github/workflows/ci.yml +3 -3
- package/.github/workflows/deploy-pages.yml +9 -19
- package/.github/workflows/publish.yml +5 -2
- package/.github/workflows/update-docs.yml +1 -1
- package/AGENTS.md +140 -286
- package/CONTRIBUTING.md +10 -22
- package/README.md +48 -16
- package/ai-instructions/{github-copilot/copilot-instructions.md → AGENTS.md} +99 -127
- package/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
- package/{dist/docs/best-practices/cartridge_creation.md → ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
- package/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
- package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
- package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
- package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
- package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
- package/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
- package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
- package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
- package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
- package/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
- package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
- package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
- package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
- package/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
- package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
- package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
- package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
- package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
- package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
- package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
- package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
- package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
- package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
- package/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
- package/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
- package/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
- package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
- package/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
- package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
- package/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
- package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
- package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
- package/{dist/docs/best-practices/performance.md → ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
- package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
- package/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
- package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
- package/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
- package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
- package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
- package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
- package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
- package/{dist/docs/best-practices/sfra_controllers.md → ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
- package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
- package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
- package/{dist/docs/best-practices/sfra_scss.md → ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
- package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
- package/dist/ai-instructions/AGENTS.md +628 -0
- package/dist/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
- package/{docs/best-practices/cartridge_creation.md → dist/ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
- package/dist/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
- package/dist/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
- package/dist/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
- package/dist/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
- package/dist/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
- package/dist/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
- package/dist/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
- package/dist/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
- package/dist/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
- package/dist/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
- package/dist/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
- package/dist/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
- package/dist/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
- package/dist/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
- package/dist/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
- package/dist/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
- package/dist/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
- package/dist/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
- package/{docs/best-practices/performance.md → dist/ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
- package/dist/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
- package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
- package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
- package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
- package/dist/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
- package/dist/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
- package/dist/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
- package/dist/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
- package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
- package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
- package/{docs/best-practices/sfra_controllers.md → dist/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
- package/dist/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
- package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
- package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
- package/dist/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
- package/{docs/best-practices/sfra_scss.md → dist/ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
- package/dist/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
- package/dist/clients/agent-instructions-client.d.ts +66 -0
- package/dist/clients/agent-instructions-client.d.ts.map +1 -0
- package/dist/clients/agent-instructions-client.js +277 -0
- package/dist/clients/agent-instructions-client.js.map +1 -0
- package/dist/clients/base/abstract-documentation-client.d.ts +146 -0
- package/dist/clients/base/abstract-documentation-client.d.ts.map +1 -0
- package/dist/clients/base/abstract-documentation-client.js +265 -0
- package/dist/clients/base/abstract-documentation-client.js.map +1 -0
- package/dist/clients/base/oauth-token.d.ts +18 -0
- package/dist/clients/base/oauth-token.d.ts.map +1 -1
- package/dist/clients/base/oauth-token.js +45 -2
- package/dist/clients/base/oauth-token.js.map +1 -1
- package/dist/clients/cartridge/cartridge-generation-client.d.ts +59 -0
- package/dist/clients/cartridge/cartridge-generation-client.d.ts.map +1 -0
- package/dist/clients/cartridge/cartridge-generation-client.js +224 -0
- package/dist/clients/cartridge/cartridge-generation-client.js.map +1 -0
- package/dist/clients/cartridge/cartridge-structure.d.ts +17 -0
- package/dist/clients/cartridge/cartridge-structure.d.ts.map +1 -0
- package/dist/clients/cartridge/cartridge-structure.js +33 -0
- package/dist/clients/cartridge/cartridge-structure.js.map +1 -0
- package/dist/clients/cartridge/cartridge-templates.d.ts +22 -0
- package/dist/clients/cartridge/cartridge-templates.d.ts.map +1 -0
- package/dist/clients/cartridge/cartridge-templates.js +225 -0
- package/dist/clients/cartridge/cartridge-templates.js.map +1 -0
- package/dist/clients/cartridge/index.d.ts +7 -0
- package/dist/clients/cartridge/index.d.ts.map +1 -0
- package/dist/clients/cartridge/index.js +7 -0
- package/dist/clients/cartridge/index.js.map +1 -0
- package/dist/clients/docs/documentation-scanner.d.ts +5 -2
- package/dist/clients/docs/documentation-scanner.d.ts.map +1 -1
- package/dist/clients/docs/documentation-scanner.js +38 -23
- package/dist/clients/docs/documentation-scanner.js.map +1 -1
- package/dist/clients/docs-client.d.ts +13 -4
- package/dist/clients/docs-client.d.ts.map +1 -1
- package/dist/clients/docs-client.js +44 -11
- package/dist/clients/docs-client.js.map +1 -1
- package/dist/clients/isml-client.d.ts +71 -0
- package/dist/clients/isml-client.d.ts.map +1 -0
- package/dist/clients/isml-client.js +252 -0
- package/dist/clients/isml-client.js.map +1 -0
- package/dist/clients/ocapi/code-versions-client.d.ts.map +1 -1
- package/dist/clients/ocapi/code-versions-client.js +6 -1
- package/dist/clients/ocapi/code-versions-client.js.map +1 -1
- package/dist/clients/ocapi-client.d.ts +9 -101
- package/dist/clients/ocapi-client.d.ts.map +1 -1
- package/dist/clients/ocapi-client.js +11 -93
- package/dist/clients/ocapi-client.js.map +1 -1
- package/dist/clients/script-debugger/index.d.ts +5 -0
- package/dist/clients/script-debugger/index.d.ts.map +1 -0
- package/dist/clients/script-debugger/index.js +5 -0
- package/dist/clients/script-debugger/index.js.map +1 -0
- package/dist/clients/script-debugger/script-debugger-client.d.ts +147 -0
- package/dist/clients/script-debugger/script-debugger-client.d.ts.map +1 -0
- package/dist/clients/script-debugger/script-debugger-client.js +591 -0
- package/dist/clients/script-debugger/script-debugger-client.js.map +1 -0
- package/dist/clients/sfra-client.d.ts +13 -62
- package/dist/clients/sfra-client.d.ts.map +1 -1
- package/dist/clients/sfra-client.js +105 -326
- package/dist/clients/sfra-client.js.map +1 -1
- package/dist/config/configuration-factory.d.ts +1 -1
- package/dist/config/configuration-factory.d.ts.map +1 -1
- package/dist/config/configuration-factory.js +5 -1
- package/dist/config/configuration-factory.js.map +1 -1
- package/dist/config/dw-json-loader.d.ts +7 -0
- package/dist/config/dw-json-loader.d.ts.map +1 -1
- package/dist/config/dw-json-loader.js +92 -15
- package/dist/config/dw-json-loader.js.map +1 -1
- package/dist/config/workspace-roots.d.ts +143 -0
- package/dist/config/workspace-roots.d.ts.map +1 -0
- package/dist/config/workspace-roots.js +448 -0
- package/dist/config/workspace-roots.js.map +1 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +3 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/core/handlers/abstract-client-handler.d.ts +52 -0
- package/dist/core/handlers/abstract-client-handler.d.ts.map +1 -0
- package/dist/core/handlers/abstract-client-handler.js +51 -0
- package/dist/core/handlers/abstract-client-handler.js.map +1 -0
- package/dist/core/handlers/agent-instructions-handler.d.ts +17 -0
- package/dist/core/handlers/agent-instructions-handler.d.ts.map +1 -0
- package/dist/core/handlers/agent-instructions-handler.js +38 -0
- package/dist/core/handlers/agent-instructions-handler.js.map +1 -0
- package/dist/core/handlers/base-handler.d.ts +3 -68
- package/dist/core/handlers/base-handler.d.ts.map +1 -1
- package/dist/core/handlers/base-handler.js +11 -84
- package/dist/core/handlers/base-handler.js.map +1 -1
- package/dist/core/handlers/cartridge-handler.d.ts +10 -11
- package/dist/core/handlers/cartridge-handler.d.ts.map +1 -1
- package/dist/core/handlers/cartridge-handler.js +10 -28
- package/dist/core/handlers/cartridge-handler.js.map +1 -1
- package/dist/core/handlers/client-factory.d.ts +12 -2
- package/dist/core/handlers/client-factory.d.ts.map +1 -1
- package/dist/core/handlers/client-factory.js +28 -1
- package/dist/core/handlers/client-factory.js.map +1 -1
- package/dist/core/handlers/code-version-handler.d.ts +11 -11
- package/dist/core/handlers/code-version-handler.d.ts.map +1 -1
- package/dist/core/handlers/code-version-handler.js +13 -27
- package/dist/core/handlers/code-version-handler.js.map +1 -1
- package/dist/core/handlers/docs-handler.d.ts +6 -12
- package/dist/core/handlers/docs-handler.d.ts.map +1 -1
- package/dist/core/handlers/docs-handler.js +11 -36
- package/dist/core/handlers/docs-handler.js.map +1 -1
- package/dist/core/handlers/isml-handler.d.ts +11 -0
- package/dist/core/handlers/isml-handler.d.ts.map +1 -0
- package/dist/core/handlers/isml-handler.js +18 -0
- package/dist/core/handlers/isml-handler.js.map +1 -0
- package/dist/core/handlers/job-log-handler.d.ts +8 -7
- package/dist/core/handlers/job-log-handler.d.ts.map +1 -1
- package/dist/core/handlers/job-log-handler.js +14 -5
- package/dist/core/handlers/job-log-handler.js.map +1 -1
- package/dist/core/handlers/log-handler.d.ts +8 -7
- package/dist/core/handlers/log-handler.d.ts.map +1 -1
- package/dist/core/handlers/log-handler.js +14 -5
- package/dist/core/handlers/log-handler.js.map +1 -1
- package/dist/core/handlers/script-debugger-handler.d.ts +18 -0
- package/dist/core/handlers/script-debugger-handler.d.ts.map +1 -0
- package/dist/core/handlers/script-debugger-handler.js +31 -0
- package/dist/core/handlers/script-debugger-handler.js.map +1 -0
- package/dist/core/handlers/sfra-handler.d.ts +6 -12
- package/dist/core/handlers/sfra-handler.d.ts.map +1 -1
- package/dist/core/handlers/sfra-handler.js +11 -36
- package/dist/core/handlers/sfra-handler.js.map +1 -1
- package/dist/core/handlers/simple-client-handler.d.ts +41 -0
- package/dist/core/handlers/simple-client-handler.d.ts.map +1 -0
- package/dist/core/handlers/simple-client-handler.js +49 -0
- package/dist/core/handlers/simple-client-handler.js.map +1 -0
- package/dist/core/handlers/system-object-handler.d.ts +11 -11
- package/dist/core/handlers/system-object-handler.d.ts.map +1 -1
- package/dist/core/handlers/system-object-handler.js +13 -27
- package/dist/core/handlers/system-object-handler.js.map +1 -1
- package/dist/core/handlers/validation-helpers.d.ts +22 -24
- package/dist/core/handlers/validation-helpers.d.ts.map +1 -1
- package/dist/core/handlers/validation-helpers.js +89 -39
- package/dist/core/handlers/validation-helpers.js.map +1 -1
- package/dist/core/instruction-advisor.d.ts +28 -0
- package/dist/core/instruction-advisor.d.ts.map +1 -0
- package/dist/core/instruction-advisor.js +114 -0
- package/dist/core/instruction-advisor.js.map +1 -0
- package/dist/core/server.d.ts +25 -0
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +151 -11
- package/dist/core/server.js.map +1 -1
- package/dist/core/tool-definitions.d.ts +6 -854
- package/dist/core/tool-definitions.d.ts.map +1 -1
- package/dist/core/tool-definitions.js +8 -1064
- package/dist/core/tool-definitions.js.map +1 -1
- package/dist/core/tool-schemas/agent-instruction-tools.d.ts +77 -0
- package/dist/core/tool-schemas/agent-instruction-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/agent-instruction-tools.js +72 -0
- package/dist/core/tool-schemas/agent-instruction-tools.js.map +1 -0
- package/dist/core/tool-schemas/cartridge-tools.d.ts +27 -0
- package/dist/core/tool-schemas/cartridge-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/cartridge-tools.js +29 -0
- package/dist/core/tool-schemas/cartridge-tools.js.map +1 -0
- package/dist/core/tool-schemas/code-version-tools.d.ts +28 -0
- package/dist/core/tool-schemas/code-version-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/code-version-tools.js +28 -0
- package/dist/core/tool-schemas/code-version-tools.js.map +1 -0
- package/dist/core/tool-schemas/documentation-tools.d.ts +139 -0
- package/dist/core/tool-schemas/documentation-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/documentation-tools.js +104 -0
- package/dist/core/tool-schemas/documentation-tools.js.map +1 -0
- package/dist/core/tool-schemas/index.d.ts +17 -0
- package/dist/core/tool-schemas/index.d.ts.map +1 -0
- package/dist/core/tool-schemas/index.js +19 -0
- package/dist/core/tool-schemas/index.js.map +1 -0
- package/dist/core/tool-schemas/isml-tools.d.ts +98 -0
- package/dist/core/tool-schemas/isml-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/isml-tools.js +89 -0
- package/dist/core/tool-schemas/isml-tools.js.map +1 -0
- package/dist/core/tool-schemas/log-tools.d.ts +221 -0
- package/dist/core/tool-schemas/log-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/log-tools.js +180 -0
- package/dist/core/tool-schemas/log-tools.js.map +1 -0
- package/dist/core/tool-schemas/script-debugger-tools.d.ts +44 -0
- package/dist/core/tool-schemas/script-debugger-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/script-debugger-tools.js +83 -0
- package/dist/core/tool-schemas/script-debugger-tools.js.map +1 -0
- package/dist/core/tool-schemas/sfra-tools.d.ts +63 -0
- package/dist/core/tool-schemas/sfra-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/sfra-tools.js +65 -0
- package/dist/core/tool-schemas/sfra-tools.js.map +1 -0
- package/dist/core/tool-schemas/shared-schemas.d.ts +350 -0
- package/dist/core/tool-schemas/shared-schemas.d.ts.map +1 -0
- package/dist/core/tool-schemas/shared-schemas.js +153 -0
- package/dist/core/tool-schemas/shared-schemas.js.map +1 -0
- package/dist/core/tool-schemas/system-object-tools.d.ts +511 -0
- package/dist/core/tool-schemas/system-object-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/system-object-tools.js +126 -0
- package/dist/core/tool-schemas/system-object-tools.js.map +1 -0
- package/dist/docs/dw_net/HTTPClient.md +46 -2
- package/dist/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
- package/dist/docs/dw_order/Basket.md +7 -7
- package/dist/docs/dw_order/BasketMgr.md +22 -6
- package/dist/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
- package/dist/docs/dw_svc/ServiceCallback.md +2 -2
- package/dist/docs/isml/isactivedatacontext.md +382 -0
- package/dist/docs/isml/isactivedatahead.md +566 -0
- package/dist/docs/isml/isanalyticsoff.md +537 -0
- package/dist/docs/isml/isapplepay.md +667 -0
- package/dist/docs/isml/isbreak.md +687 -0
- package/dist/docs/isml/isbuynow.md +682 -0
- package/dist/docs/isml/iscache.md +802 -0
- package/dist/docs/isml/iscomment.md +794 -0
- package/dist/docs/isml/iscomponent.md +797 -0
- package/dist/docs/isml/iscontent.md +594 -0
- package/dist/docs/isml/iscontinue.md +563 -0
- package/dist/docs/isml/iscookie.md +798 -0
- package/dist/docs/isml/isdecorate.md +818 -0
- package/dist/docs/isml/isif.md +737 -0
- package/dist/docs/isml/isinclude.md +874 -0
- package/dist/docs/isml/isloop.md +377 -0
- package/dist/docs/isml/ismodule.md +844 -0
- package/dist/docs/isml/isnext.md +672 -0
- package/dist/docs/isml/isobject.md +760 -0
- package/dist/docs/isml/ispayment.md +577 -0
- package/dist/docs/isml/ispaymentmessages.md +664 -0
- package/dist/docs/isml/isprint.md +875 -0
- package/dist/docs/isml/isredirect.md +716 -0
- package/dist/docs/isml/isremove.md +725 -0
- package/dist/docs/isml/isreplace.md +783 -0
- package/dist/docs/isml/isscript.md +859 -0
- package/dist/docs/isml/isselect.md +908 -0
- package/dist/docs/isml/isset.md +585 -0
- package/dist/docs/isml/isslot.md +824 -0
- package/dist/docs/isml/isstatus.md +711 -0
- package/dist/main.d.ts +16 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +60 -28
- package/dist/main.js.map +1 -1
- package/dist/services/index.d.ts +4 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/tool-configs/agent-instructions-tool-config.d.ts +6 -0
- package/dist/tool-configs/agent-instructions-tool-config.d.ts.map +1 -0
- package/dist/tool-configs/agent-instructions-tool-config.js +74 -0
- package/dist/tool-configs/agent-instructions-tool-config.js.map +1 -0
- package/dist/tool-configs/code-version-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/code-version-tool-config.js +0 -5
- package/dist/tool-configs/code-version-tool-config.js.map +1 -1
- package/dist/tool-configs/docs-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/docs-tool-config.js +0 -7
- package/dist/tool-configs/docs-tool-config.js.map +1 -1
- package/dist/tool-configs/isml-tool-config.d.ts +11 -0
- package/dist/tool-configs/isml-tool-config.d.ts.map +1 -0
- package/dist/tool-configs/isml-tool-config.js +77 -0
- package/dist/tool-configs/isml-tool-config.js.map +1 -0
- package/dist/tool-configs/job-log-tool-config.d.ts +1 -2
- package/dist/tool-configs/job-log-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/job-log-tool-config.js +11 -15
- package/dist/tool-configs/job-log-tool-config.js.map +1 -1
- package/dist/tool-configs/log-tool-config.d.ts +1 -2
- package/dist/tool-configs/log-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/log-tool-config.js +35 -51
- package/dist/tool-configs/log-tool-config.js.map +1 -1
- package/dist/tool-configs/script-debugger-tool-config.d.ts +11 -0
- package/dist/tool-configs/script-debugger-tool-config.d.ts.map +1 -0
- package/dist/tool-configs/script-debugger-tool-config.js +35 -0
- package/dist/tool-configs/script-debugger-tool-config.js.map +1 -0
- package/dist/tool-configs/sfra-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/sfra-tool-config.js +0 -11
- package/dist/tool-configs/sfra-tool-config.js.map +1 -1
- package/dist/tool-configs/system-object-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/system-object-tool-config.js +0 -5
- package/dist/tool-configs/system-object-tool-config.js.map +1 -1
- package/dist/types/types.d.ts +2 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/cache.d.ts +12 -10
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +47 -47
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/category-utils.d.ts +31 -0
- package/dist/utils/category-utils.d.ts.map +1 -0
- package/dist/utils/category-utils.js +45 -0
- package/dist/utils/category-utils.js.map +1 -0
- package/dist/utils/log-tool-constants.d.ts +16 -13
- package/dist/utils/log-tool-constants.d.ts.map +1 -1
- package/dist/utils/log-tool-constants.js +10 -11
- package/dist/utils/log-tool-constants.js.map +1 -1
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +35 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/markdown-utils.d.ts +60 -0
- package/dist/utils/markdown-utils.d.ts.map +1 -0
- package/dist/utils/markdown-utils.js +206 -0
- package/dist/utils/markdown-utils.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +12 -4
- package/dist/utils/path-resolver.d.ts.map +1 -1
- package/dist/utils/path-resolver.js +22 -8
- package/dist/utils/path-resolver.js.map +1 -1
- package/dist/utils/path-validation.d.ts +40 -0
- package/dist/utils/path-validation.d.ts.map +1 -0
- package/dist/utils/path-validation.js +84 -0
- package/dist/utils/path-validation.js.map +1 -0
- package/docs/dw_net/HTTPClient.md +46 -2
- package/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
- package/docs/dw_order/Basket.md +7 -7
- package/docs/dw_order/BasketMgr.md +22 -6
- package/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
- package/docs/dw_svc/ServiceCallback.md +2 -2
- package/docs/isml/isactivedatacontext.md +382 -0
- package/docs/isml/isactivedatahead.md +566 -0
- package/docs/isml/isanalyticsoff.md +537 -0
- package/docs/isml/isapplepay.md +667 -0
- package/docs/isml/isbreak.md +687 -0
- package/docs/isml/isbuynow.md +682 -0
- package/docs/isml/iscache.md +802 -0
- package/docs/isml/iscomment.md +794 -0
- package/docs/isml/iscomponent.md +797 -0
- package/docs/isml/iscontent.md +594 -0
- package/docs/isml/iscontinue.md +563 -0
- package/docs/isml/iscookie.md +798 -0
- package/docs/isml/isdecorate.md +818 -0
- package/docs/isml/isif.md +737 -0
- package/docs/isml/isinclude.md +874 -0
- package/docs/isml/isloop.md +377 -0
- package/docs/isml/ismodule.md +844 -0
- package/docs/isml/isnext.md +672 -0
- package/docs/isml/isobject.md +760 -0
- package/docs/isml/ispayment.md +577 -0
- package/docs/isml/ispaymentmessages.md +664 -0
- package/docs/isml/isprint.md +875 -0
- package/docs/isml/isredirect.md +716 -0
- package/docs/isml/isremove.md +725 -0
- package/docs/isml/isreplace.md +783 -0
- package/docs/isml/isscript.md +859 -0
- package/docs/isml/isselect.md +908 -0
- package/docs/isml/isset.md +585 -0
- package/docs/isml/isslot.md +824 -0
- package/docs/isml/isstatus.md +711 -0
- package/docs-site-v2/.vitepress/config.mts +190 -0
- package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +96 -0
- package/docs-site-v2/.vitepress/theme/components/Callout.vue +10 -0
- package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +14 -0
- package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +82 -0
- package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +552 -0
- package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +87 -0
- package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +70 -0
- package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +14 -0
- package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +20 -0
- package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +20 -0
- package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +48 -0
- package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +85 -0
- package/docs-site-v2/.vitepress/theme/custom.css +1373 -0
- package/docs-site-v2/.vitepress/theme/index.ts +39 -0
- package/docs-site-v2/data/skills.ts +147 -0
- package/docs-site-v2/data/tools.ts +490 -0
- package/docs-site-v2/development/index.md +151 -0
- package/docs-site-v2/examples/index.md +333 -0
- package/docs-site-v2/features/index.md +144 -0
- package/docs-site-v2/guide/ai-interfaces.md +58 -0
- package/docs-site-v2/guide/configuration.md +208 -0
- package/docs-site-v2/guide/index.md +50 -0
- package/docs-site-v2/index.md +32 -0
- package/docs-site-v2/package-lock.json +2511 -0
- package/docs-site-v2/package.json +15 -0
- package/docs-site-v2/public/android-chrome-192x192.png +0 -0
- package/docs-site-v2/public/android-chrome-512x512.png +0 -0
- package/docs-site-v2/public/apple-touch-icon.png +0 -0
- package/docs-site-v2/public/favicon-16x16.png +0 -0
- package/docs-site-v2/public/favicon-32x32.png +0 -0
- package/docs-site-v2/public/favicon.ico +0 -0
- package/docs-site-v2/public/index.css +4174 -0
- package/docs-site-v2/public/llms.txt +44 -0
- package/docs-site-v2/public/logo-dark.svg +8 -0
- package/docs-site-v2/public/logo.svg +8 -0
- package/{docs-site → docs-site-v2}/public/robots.txt +1 -6
- package/{docs-site → docs-site-v2}/public/site.webmanifest +1 -1
- package/{docs-site → docs-site-v2}/public/sitemap.xml +33 -12
- package/docs-site-v2/script-debugger/index.md +105 -0
- package/docs-site-v2/scripts/generate-llms.js +71 -0
- package/docs-site-v2/scripts/generate-sitemap.js +97 -0
- package/docs-site-v2/security/index.md +115 -0
- package/docs-site-v2/skills/index.md +40 -0
- package/docs-site-v2/tools/index.md +36 -0
- package/docs-site-v2/troubleshooting/index.md +204 -0
- package/eslint.config.js +3 -1
- package/memories/repo/docs-site-v2-build.json +11 -0
- package/package.json +18 -14
- package/scripts/validate-server-json.js +68 -0
- package/server.json +4 -6
- package/src/clients/agent-instructions-client.ts +370 -0
- package/src/clients/base/abstract-documentation-client.ts +405 -0
- package/src/clients/base/oauth-token.ts +52 -2
- package/src/clients/cartridge/cartridge-generation-client.ts +302 -0
- package/src/clients/cartridge/cartridge-structure.ts +37 -0
- package/src/clients/cartridge/cartridge-templates.ts +246 -0
- package/src/clients/cartridge/index.ts +6 -0
- package/src/clients/docs/documentation-scanner.ts +44 -28
- package/src/clients/docs-client.ts +54 -14
- package/src/clients/isml-client.ts +353 -0
- package/src/clients/ocapi/code-versions-client.ts +7 -1
- package/src/clients/ocapi-client.ts +11 -166
- package/src/clients/script-debugger/index.ts +5 -0
- package/src/clients/script-debugger/script-debugger-client.ts +754 -0
- package/src/clients/sfra-client.ts +134 -397
- package/src/config/configuration-factory.ts +6 -1
- package/src/config/dw-json-loader.ts +96 -15
- package/src/config/workspace-roots.ts +540 -0
- package/src/constants/index.ts +1 -0
- package/src/core/handlers/abstract-client-handler.ts +85 -0
- package/src/core/handlers/agent-instructions-handler.ts +48 -0
- package/src/core/handlers/base-handler.ts +17 -127
- package/src/core/handlers/cartridge-handler.ts +13 -33
- package/src/core/handlers/client-factory.ts +32 -2
- package/src/core/handlers/code-version-handler.ts +17 -32
- package/src/core/handlers/docs-handler.ts +12 -44
- package/src/core/handlers/isml-handler.ts +19 -0
- package/src/core/handlers/job-log-handler.ts +19 -8
- package/src/core/handlers/log-handler.ts +19 -8
- package/src/core/handlers/script-debugger-handler.ts +46 -0
- package/src/core/handlers/sfra-handler.ts +12 -44
- package/src/core/handlers/simple-client-handler.ts +78 -0
- package/src/core/handlers/system-object-handler.ts +17 -32
- package/src/core/handlers/validation-helpers.ts +87 -47
- package/src/core/instruction-advisor.ts +122 -0
- package/src/core/server.ts +178 -13
- package/src/core/tool-definitions.ts +25 -1071
- package/src/core/tool-schemas/agent-instruction-tools.ts +72 -0
- package/src/core/tool-schemas/cartridge-tools.ts +29 -0
- package/src/core/tool-schemas/code-version-tools.ts +28 -0
- package/src/core/tool-schemas/documentation-tools.ts +104 -0
- package/src/core/tool-schemas/index.ts +27 -0
- package/src/core/tool-schemas/isml-tools.ts +89 -0
- package/src/core/tool-schemas/log-tools.ts +196 -0
- package/src/core/tool-schemas/script-debugger-tools.ts +83 -0
- package/src/core/tool-schemas/sfra-tools.ts +65 -0
- package/src/core/tool-schemas/shared-schemas.ts +158 -0
- package/src/core/tool-schemas/system-object-tools.ts +127 -0
- package/src/main.ts +63 -30
- package/src/services/index.ts +4 -10
- package/src/tool-configs/agent-instructions-tool-config.ts +83 -0
- package/src/tool-configs/cartridge-tool-config.ts +1 -1
- package/src/tool-configs/code-version-tool-config.ts +0 -5
- package/src/tool-configs/docs-tool-config.ts +0 -7
- package/src/tool-configs/isml-tool-config.ts +87 -0
- package/src/tool-configs/job-log-tool-config.ts +18 -17
- package/src/tool-configs/log-tool-config.ts +49 -64
- package/src/tool-configs/script-debugger-tool-config.ts +69 -0
- package/src/tool-configs/sfra-tool-config.ts +0 -11
- package/src/tool-configs/system-object-tool-config.ts +0 -5
- package/src/types/types.ts +2 -0
- package/src/utils/cache.ts +49 -54
- package/src/utils/category-utils.ts +70 -0
- package/src/utils/log-tool-constants.ts +25 -17
- package/src/utils/logger.ts +38 -1
- package/src/utils/markdown-utils.ts +280 -0
- package/src/utils/path-resolver.ts +25 -9
- package/src/utils/path-validation.ts +113 -0
- package/tests/base-handler.test.ts +1 -1
- package/tests/cache.test.ts +2 -2
- package/tests/cartridge-handler.test.ts +4 -4
- package/tests/client-factory.test.ts +1 -1
- package/tests/code-version-handler.test.ts +3 -3
- package/tests/docs-handler.test.ts +2 -2
- package/tests/documentation-scanner.test.ts +4 -4
- package/tests/isml-client.test.ts +463 -0
- package/tests/isml-handler.test.ts +375 -0
- package/tests/job-log-handler.test.ts +1 -1
- package/tests/log-handler.test.ts +8 -8
- package/tests/log-validation.test.ts +149 -0
- package/tests/mcp/README.md +22 -18
- package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +30 -12
- package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +387 -0
- package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +14 -8
- package/tests/mcp/node/get-isml-categories.programmatic.test.js +278 -0
- package/tests/mcp/node/get-isml-element.programmatic.test.js +278 -0
- package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +363 -0
- package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +24 -24
- package/tests/mcp/node/get-sfra-document.programmatic.test.js +4 -2
- package/tests/mcp/node/list-isml-elements.programmatic.test.js +311 -0
- package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +2 -33
- package/tests/mcp/node/search-isml-elements.programmatic.test.js +325 -0
- package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +5 -9
- package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +7 -9
- package/tests/mcp/node/tools.docs-only.programmatic.test.js +42 -65
- package/tests/mcp/node/tools.full-mode.programmatic.test.js +7 -8
- package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +2 -2
- package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +281 -0
- package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +330 -0
- package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +294 -0
- package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +334 -0
- package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +2 -2
- package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +13 -13
- package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +13 -13
- package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +1 -16
- package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +212 -0
- package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +312 -0
- package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +1 -1
- package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +1 -1
- package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +1 -1
- package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +3 -57
- package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +3 -3
- package/tests/oauth-token.test.ts +107 -12
- package/tests/ocapi-client.test.ts +53 -106
- package/tests/script-debugger-client.test.ts +430 -0
- package/tests/servers/sfcc-mock-server/src/app.js +15 -0
- package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +258 -0
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +396 -0
- package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +5 -0
- package/tests/servers/sfcc-mock-server/src/routes/storefront.js +86 -0
- package/tests/servers/sfcc-mock-server/src/routes/webdav.js +6 -4
- package/tests/validation-helpers.test.ts +0 -31
- package/tests/workspace-roots.test.ts +227 -0
- package/ai-instructions/claude-desktop/claude_custom_instructions.md +0 -321
- package/ai-instructions/cursor/.cursor/rules/debugging-workflows.mdc +0 -171
- package/ai-instructions/cursor/.cursor/rules/hooks-development.mdc +0 -168
- package/ai-instructions/cursor/.cursor/rules/isml-templates.mdc +0 -209
- package/ai-instructions/cursor/.cursor/rules/job-framework.mdc +0 -379
- package/ai-instructions/cursor/.cursor/rules/performance-optimization.mdc +0 -215
- package/ai-instructions/cursor/.cursor/rules/scapi-endpoints.mdc +0 -98
- package/ai-instructions/cursor/.cursor/rules/security-patterns.mdc +0 -375
- package/ai-instructions/cursor/.cursor/rules/sfcc-development.mdc +0 -144
- package/ai-instructions/cursor/.cursor/rules/sfra-controllers.mdc +0 -376
- package/ai-instructions/cursor/.cursor/rules/sfra-models.mdc +0 -412
- package/ai-instructions/cursor/.cursor/rules/system-objects.mdc +0 -383
- package/ai-instructions/cursor/.cursor/rules/testing-patterns.mdc +0 -418
- package/dist/clients/best-practices-client.d.ts +0 -57
- package/dist/clients/best-practices-client.d.ts.map +0 -1
- package/dist/clients/best-practices-client.js +0 -288
- package/dist/clients/best-practices-client.js.map +0 -1
- package/dist/clients/cartridge-generation-client.d.ts +0 -57
- package/dist/clients/cartridge-generation-client.d.ts.map +0 -1
- package/dist/clients/cartridge-generation-client.js +0 -384
- package/dist/clients/cartridge-generation-client.js.map +0 -1
- package/dist/clients/logs/index.d.ts +0 -13
- package/dist/clients/logs/index.d.ts.map +0 -1
- package/dist/clients/logs/index.js +0 -15
- package/dist/clients/logs/index.js.map +0 -1
- package/dist/clients/logs/log-analyzer.d.ts +0 -55
- package/dist/clients/logs/log-analyzer.d.ts.map +0 -1
- package/dist/clients/logs/log-analyzer.js +0 -228
- package/dist/clients/logs/log-analyzer.js.map +0 -1
- package/dist/clients/logs/log-client.d.ts +0 -87
- package/dist/clients/logs/log-client.d.ts.map +0 -1
- package/dist/clients/logs/log-client.js +0 -418
- package/dist/clients/logs/log-client.js.map +0 -1
- package/dist/clients/logs/log-constants.d.ts +0 -37
- package/dist/clients/logs/log-constants.d.ts.map +0 -1
- package/dist/clients/logs/log-constants.js +0 -37
- package/dist/clients/logs/log-constants.js.map +0 -1
- package/dist/clients/logs/log-file-discovery.d.ts +0 -62
- package/dist/clients/logs/log-file-discovery.d.ts.map +0 -1
- package/dist/clients/logs/log-file-discovery.js +0 -238
- package/dist/clients/logs/log-file-discovery.js.map +0 -1
- package/dist/clients/logs/log-file-reader.d.ts +0 -53
- package/dist/clients/logs/log-file-reader.d.ts.map +0 -1
- package/dist/clients/logs/log-file-reader.js +0 -194
- package/dist/clients/logs/log-file-reader.js.map +0 -1
- package/dist/clients/logs/log-formatter.d.ts +0 -90
- package/dist/clients/logs/log-formatter.d.ts.map +0 -1
- package/dist/clients/logs/log-formatter.js +0 -189
- package/dist/clients/logs/log-formatter.js.map +0 -1
- package/dist/clients/logs/log-processor.d.ts +0 -91
- package/dist/clients/logs/log-processor.d.ts.map +0 -1
- package/dist/clients/logs/log-processor.js +0 -328
- package/dist/clients/logs/log-processor.js.map +0 -1
- package/dist/clients/logs/log-types.d.ts +0 -69
- package/dist/clients/logs/log-types.d.ts.map +0 -1
- package/dist/clients/logs/log-types.js +0 -5
- package/dist/clients/logs/log-types.js.map +0 -1
- package/dist/clients/logs/webdav-client-manager.d.ts +0 -28
- package/dist/clients/logs/webdav-client-manager.d.ts.map +0 -1
- package/dist/clients/logs/webdav-client-manager.js +0 -77
- package/dist/clients/logs/webdav-client-manager.js.map +0 -1
- package/dist/core/handlers/abstract-log-tool-handler.d.ts +0 -35
- package/dist/core/handlers/abstract-log-tool-handler.d.ts.map +0 -1
- package/dist/core/handlers/abstract-log-tool-handler.js +0 -46
- package/dist/core/handlers/abstract-log-tool-handler.js.map +0 -1
- package/dist/core/handlers/best-practices-handler.d.ts +0 -17
- package/dist/core/handlers/best-practices-handler.d.ts.map +0 -1
- package/dist/core/handlers/best-practices-handler.js +0 -43
- package/dist/core/handlers/best-practices-handler.js.map +0 -1
- package/dist/core/handlers/job-log-tool-config.d.ts +0 -8
- package/dist/core/handlers/job-log-tool-config.d.ts.map +0 -1
- package/dist/core/handlers/job-log-tool-config.js +0 -76
- package/dist/core/handlers/job-log-tool-config.js.map +0 -1
- package/dist/core/handlers/log-tool-config.d.ts +0 -8
- package/dist/core/handlers/log-tool-config.d.ts.map +0 -1
- package/dist/core/handlers/log-tool-config.js +0 -73
- package/dist/core/handlers/log-tool-config.js.map +0 -1
- package/dist/docs/best-practices/isml_templates.md +0 -1933
- package/dist/docs/best-practices/job_framework.md +0 -1173
- package/dist/docs/best-practices/scapi_custom_endpoint.md +0 -963
- package/dist/docs/best-practices/sfra_client_side_js.md +0 -736
- package/dist/docs/best-practices/sfra_models.md +0 -1142
- package/dist/tool-configs/best-practices-tool-config.d.ts +0 -11
- package/dist/tool-configs/best-practices-tool-config.d.ts.map +0 -1
- package/dist/tool-configs/best-practices-tool-config.js +0 -59
- package/dist/tool-configs/best-practices-tool-config.js.map +0 -1
- package/dist/utils/job-log-tool-config.d.ts +0 -8
- package/dist/utils/job-log-tool-config.d.ts.map +0 -1
- package/dist/utils/job-log-tool-config.js +0 -76
- package/dist/utils/job-log-tool-config.js.map +0 -1
- package/dist/utils/job-log-utils.d.ts +0 -34
- package/dist/utils/job-log-utils.d.ts.map +0 -1
- package/dist/utils/job-log-utils.js +0 -60
- package/dist/utils/job-log-utils.js.map +0 -1
- package/dist/utils/log-cache.d.ts +0 -53
- package/dist/utils/log-cache.d.ts.map +0 -1
- package/dist/utils/log-cache.js +0 -114
- package/dist/utils/log-cache.js.map +0 -1
- package/dist/utils/log-tool-config.d.ts +0 -8
- package/dist/utils/log-tool-config.d.ts.map +0 -1
- package/dist/utils/log-tool-config.js +0 -73
- package/dist/utils/log-tool-config.js.map +0 -1
- package/dist/utils/log-tool-utils.d.ts +0 -39
- package/dist/utils/log-tool-utils.d.ts.map +0 -1
- package/dist/utils/log-tool-utils.js +0 -94
- package/dist/utils/log-tool-utils.js.map +0 -1
- package/docs/best-practices/isml_templates.md +0 -1933
- package/docs/best-practices/job_framework.md +0 -1173
- package/docs/best-practices/scapi_custom_endpoint.md +0 -963
- package/docs/best-practices/sfra_client_side_js.md +0 -736
- package/docs/best-practices/sfra_models.md +0 -1142
- package/docs-site/App.tsx +0 -103
- package/docs-site/README.md +0 -113
- package/docs-site/components/Badge.tsx +0 -38
- package/docs-site/components/BreadcrumbSchema.tsx +0 -34
- package/docs-site/components/CodeBlock.tsx +0 -132
- package/docs-site/components/Collapsible.tsx +0 -40
- package/docs-site/components/ConfigBuilder.tsx +0 -118
- package/docs-site/components/ConfigHero.tsx +0 -19
- package/docs-site/components/ConfigModeTabs.tsx +0 -42
- package/docs-site/components/Layout.tsx +0 -174
- package/docs-site/components/LightCodeContainer.tsx +0 -44
- package/docs-site/components/NewcomerCTA.tsx +0 -57
- package/docs-site/components/NextStepsStrip.tsx +0 -23
- package/docs-site/components/OnThisPage.tsx +0 -91
- package/docs-site/components/SEO.tsx +0 -79
- package/docs-site/components/Search.tsx +0 -207
- package/docs-site/components/Sidebar.tsx +0 -96
- package/docs-site/components/StructuredData.tsx +0 -72
- package/docs-site/components/ToolCard.tsx +0 -84
- package/docs-site/components/ToolFilters.tsx +0 -39
- package/docs-site/components/Typography.tsx +0 -30
- package/docs-site/components/VersionBadge.tsx +0 -18
- package/docs-site/components/icons.tsx +0 -37
- package/docs-site/constants.tsx +0 -34
- package/docs-site/index.html +0 -62
- package/docs-site/main.tsx +0 -16
- package/docs-site/metadata.json +0 -5
- package/docs-site/package-lock.json +0 -3966
- package/docs-site/package.json +0 -35
- package/docs-site/pages/AIInterfacesPage.tsx +0 -610
- package/docs-site/pages/ConfigurationPage.tsx +0 -315
- package/docs-site/pages/DevelopmentPage.tsx +0 -607
- package/docs-site/pages/ExamplesPage.tsx +0 -558
- package/docs-site/pages/FeaturesPage.tsx +0 -353
- package/docs-site/pages/HomePage.tsx +0 -1046
- package/docs-site/pages/SecurityPage.tsx +0 -372
- package/docs-site/pages/ToolsPage.tsx +0 -205
- package/docs-site/pages/TroubleshootingPage.tsx +0 -590
- package/docs-site/postcss.config.js +0 -6
- package/docs-site/public/.well-known/security.txt +0 -6
- package/docs-site/public/android-chrome-192x192.png +0 -0
- package/docs-site/public/android-chrome-512x512.png +0 -0
- package/docs-site/public/apple-touch-icon.png +0 -0
- package/docs-site/public/favicon-16x16.png +0 -0
- package/docs-site/public/favicon-32x32.png +0 -0
- package/docs-site/public/favicon.ico +0 -0
- package/docs-site/public/llms.txt +0 -47
- package/docs-site/scripts/generate-search-index.js +0 -323
- package/docs-site/scripts/generate-sitemap.js +0 -156
- package/docs-site/scripts/search-dev.js +0 -112
- package/docs-site/src/styles/input.css +0 -248
- package/docs-site/src/styles/prism-theme.css +0 -124
- package/docs-site/tailwind.config.js +0 -70
- package/docs-site/tsconfig.json +0 -29
- package/docs-site/types.ts +0 -16
- package/docs-site/utils/search.ts +0 -132
- package/docs-site/utils/toolsData.ts +0 -116
- package/docs-site/vite.config.ts +0 -63
- package/src/clients/best-practices-client.ts +0 -332
- package/src/clients/cartridge-generation-client.ts +0 -507
- package/src/clients/logs/index.ts +0 -18
- package/src/clients/logs/log-analyzer.ts +0 -289
- package/src/clients/logs/log-client.ts +0 -540
- package/src/clients/logs/log-constants.ts +0 -53
- package/src/clients/logs/log-file-discovery.ts +0 -299
- package/src/clients/logs/log-file-reader.ts +0 -227
- package/src/clients/logs/log-formatter.ts +0 -258
- package/src/clients/logs/log-processor.ts +0 -402
- package/src/clients/logs/log-types.ts +0 -80
- package/src/clients/logs/webdav-client-manager.ts +0 -93
- package/src/core/handlers/abstract-log-tool-handler.ts +0 -64
- package/src/core/handlers/best-practices-handler.ts +0 -55
- package/src/core/handlers/job-log-tool-config.ts +0 -89
- package/src/core/handlers/log-tool-config.ts +0 -98
- package/src/tool-configs/best-practices-tool-config.ts +0 -68
- package/src/utils/job-log-tool-config.ts +0 -89
- package/src/utils/job-log-utils.ts +0 -78
- package/src/utils/log-cache.ts +0 -134
- package/src/utils/log-tool-config.ts +0 -98
- package/src/utils/log-tool-utils.ts +0 -122
- package/tests/best-practices-handler.test.ts +0 -236
- package/tests/job-log-utils.test.ts +0 -182
- package/tests/mcp/node/get-available-best-practice-guides.docs-only.programmatic.test.js +0 -516
- package/tests/mcp/node/get-best-practice-guide.docs-only.programmatic.test.js +0 -733
- package/tests/mcp/node/get-hook-reference.docs-only.programmatic.test.js +0 -185
- package/tests/mcp/node/search-best-practices.docs-only.programmatic.test.js +0 -836
- package/tests/mcp/yaml/get-available-best-practice-guides.docs-only.test.mcp.yml +0 -885
- package/tests/mcp/yaml/get-available-best-practice-guides.full-mode.test.mcp.yml +0 -885
- package/tests/mcp/yaml/get-best-practice-guide.docs-only.test.mcp.yml +0 -462
- package/tests/mcp/yaml/get-best-practice-guide.full-mode.test.mcp.yml +0 -462
- package/tests/mcp/yaml/get-hook-reference.docs-only.test.mcp.yml +0 -321
- package/tests/mcp/yaml/get-hook-reference.full-mode.test.mcp.yml +0 -321
- package/tests/mcp/yaml/search-best-practices.docs-only.test.mcp.yml +0 -655
- package/tests/mcp/yaml/search-best-practices.full-mode.test.mcp.yml +0 -655
- /package/{docs-site → docs-site-v2}/public/404.html +0 -0
- /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods-no-mcp.png +0 -0
- /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods.png +0 -0
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: SFCC ISML Optimisation rules and best practices
|
|
3
|
-
globs: cartridges/**/*.isml
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# ISML Templates Development
|
|
8
|
-
|
|
9
|
-
Use this rule when creating or modifying ISML templates in SFCC.
|
|
10
|
-
|
|
11
|
-
## Mandatory MCP Tools Sequence
|
|
12
|
-
|
|
13
|
-
**BEFORE writing ANY ISML template code:**
|
|
14
|
-
1. `mcp_sfcc-dev_get_best_practice_guide` with guideName: "isml_templates"
|
|
15
|
-
2. `mcp_sfcc-dev_search_best_practices` with query: "security"
|
|
16
|
-
3. `mcp_sfcc-dev_search_best_practices` with query: "performance"
|
|
17
|
-
4. `mcp_sfcc-dev_search_sfcc_classes` with query: relevant business domain
|
|
18
|
-
|
|
19
|
-
## 🎯 ISML Override Path Requirements - MANDATORY MCP VERIFICATION
|
|
20
|
-
|
|
21
|
-
**CRITICAL**: For ANY ISML template override, verify paths with MCP tools:
|
|
22
|
-
|
|
23
|
-
### Template Override MCP Workflow:
|
|
24
|
-
```
|
|
25
|
-
MANDATORY sequence for template overrides:
|
|
26
|
-
1. → mcp_sfcc-dev_get_best_practice_guide(guideName: "isml_templates")
|
|
27
|
-
2. → Review "SFRA Template Directory Structure" section
|
|
28
|
-
3. → Confirm exact override path: cartridge/templates/default/[exact_base_path]
|
|
29
|
-
4. → Verify cartridge path priority requirements
|
|
30
|
-
5. → Generate template ONLY after path verification
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Override Path Rules from MCP Guide:
|
|
34
|
-
- **Exact Path Match**: Custom template must match base cartridge path exactly
|
|
35
|
-
- **Directory Structure**: Maintain complete hierarchy from templates/default/
|
|
36
|
-
- **File Name Match**: Override file must have identical name to base template
|
|
37
|
-
- **Cartridge Priority**: Custom cartridge first in path (app_custom_mybrand:app_storefront_base)
|
|
38
|
-
|
|
39
|
-
**NEVER create ISML overrides without MCP tool verification!**
|
|
40
|
-
|
|
41
|
-
## MCP-Guided ISML Development Process
|
|
42
|
-
|
|
43
|
-
### Step 1: Get ISML Best Practices
|
|
44
|
-
```
|
|
45
|
-
Use: mcp_sfcc-dev_get_best_practice_guide with guideName: "isml_templates"
|
|
46
|
-
Purpose: Get comprehensive ISML template patterns, security guidelines, and optimization strategies
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Step 2: Security Implementation Patterns
|
|
50
|
-
```
|
|
51
|
-
Use: mcp_sfcc-dev_search_best_practices with query: "security"
|
|
52
|
-
Purpose: Get input validation, XSS prevention, and secure template patterns
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### Step 3: Performance Optimization
|
|
56
|
-
```
|
|
57
|
-
Use: mcp_sfcc-dev_search_best_practices with query: "performance"
|
|
58
|
-
Purpose: Get template performance guidelines and optimization strategies
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Step 4: SFCC API Research
|
|
62
|
-
```
|
|
63
|
-
Use: mcp_sfcc-dev_search_sfcc_classes with query: [relevant domain]
|
|
64
|
-
Use: mcp_sfcc-dev_get_sfcc_class_info with className: [template objects]
|
|
65
|
-
Purpose: Understand available template objects and methods
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## MCP-Enhanced ISML Template Pattern
|
|
69
|
-
|
|
70
|
-
```html
|
|
71
|
-
<iscache type="relative" hour="24"/>
|
|
72
|
-
<iscomment>
|
|
73
|
-
Template: [Template Name]
|
|
74
|
-
Purpose: [Template functionality]
|
|
75
|
-
|
|
76
|
-
Implementation based on:
|
|
77
|
-
- mcp_sfcc-dev_get_best_practice_guide with guideName: "isml_templates"
|
|
78
|
-
- mcp_sfcc-dev_search_best_practices with query: "security"
|
|
79
|
-
- mcp_sfcc-dev_search_best_practices with query: "performance"
|
|
80
|
-
</iscomment>
|
|
81
|
-
|
|
82
|
-
<isset name="templateData" value="${pdict.templateData}" scope="page" />
|
|
83
|
-
|
|
84
|
-
<isif condition="${templateData}">
|
|
85
|
-
<div class="template-container">
|
|
86
|
-
<isloop items="${templateData.items}" var="item" status="loopStatus">
|
|
87
|
-
<isif condition="${item && item.isValid}">
|
|
88
|
-
<div class="item-container" data-item-id="${item.ID}">
|
|
89
|
-
<iscomment>Security: Always encode output per MCP security guidelines</iscomment>
|
|
90
|
-
<h3>${item.displayName}</h3>
|
|
91
|
-
|
|
92
|
-
<iscomment>Performance: Use efficient conditionals per MCP performance guide</iscomment>
|
|
93
|
-
<isif condition="${item.description}">
|
|
94
|
-
<p class="description">${item.description}</p>
|
|
95
|
-
</isif>
|
|
96
|
-
|
|
97
|
-
<iscomment>Security: Validate and encode custom attributes</iscomment>
|
|
98
|
-
<isif condition="${item.custom && item.custom.customAttribute}">
|
|
99
|
-
<span class="custom-data">${item.custom.customAttribute}</span>
|
|
100
|
-
</isif>
|
|
101
|
-
</div>
|
|
102
|
-
</isif>
|
|
103
|
-
</isloop>
|
|
104
|
-
</div>
|
|
105
|
-
<iselse>
|
|
106
|
-
<div class="no-data">
|
|
107
|
-
<iscomment>Always provide fallback content per MCP best practices</iscomment>
|
|
108
|
-
<p>No data available</p>
|
|
109
|
-
</div>
|
|
110
|
-
</isif>
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## ISML Security Checklist (MCP-Verified)
|
|
114
|
-
|
|
115
|
-
Security patterns from MCP security best practices:
|
|
116
|
-
- [ ] All output encoded using `${variable}` syntax (auto-encoding)
|
|
117
|
-
- [ ] Custom attributes validated before rendering
|
|
118
|
-
- [ ] User input sanitized in controller before passing to template
|
|
119
|
-
- [ ] No direct JavaScript injection in templates
|
|
120
|
-
- [ ] Form tokens included for CSRF protection
|
|
121
|
-
- [ ] No sensitive data exposed in client-side code
|
|
122
|
-
- [ ] Error messages don't reveal system information
|
|
123
|
-
|
|
124
|
-
## ISML Performance Checklist (MCP-Verified)
|
|
125
|
-
|
|
126
|
-
Performance patterns from MCP performance guide:
|
|
127
|
-
- [ ] Appropriate caching directives (`<iscache>`)
|
|
128
|
-
- [ ] Efficient loop structures with status variables
|
|
129
|
-
- [ ] Minimal nested conditions
|
|
130
|
-
- [ ] Proper use of `<isset>` for variable assignment
|
|
131
|
-
- [ ] Lazy loading for heavy content
|
|
132
|
-
- [ ] Optimized template includes and inheritance
|
|
133
|
-
- [ ] Minimal inline styles and scripts
|
|
134
|
-
|
|
135
|
-
## MCP-Enhanced Template Security Patterns
|
|
136
|
-
|
|
137
|
-
```html
|
|
138
|
-
<iscomment>Security validation pattern from MCP security guide</iscomment>
|
|
139
|
-
<isif condition="${pdict.userInput}">
|
|
140
|
-
<iscomment>Always validate and encode user input</iscomment>
|
|
141
|
-
<isset name="safeInput" value="${pdict.userInput}" scope="page" />
|
|
142
|
-
<isif condition="${safeInput && safeInput.length <= 100}">
|
|
143
|
-
<p>User input: ${safeInput}</p>
|
|
144
|
-
<iselse>
|
|
145
|
-
<p>Invalid input provided</p>
|
|
146
|
-
</isif>
|
|
147
|
-
</isif>
|
|
148
|
-
|
|
149
|
-
<iscomment>Form security pattern from MCP security guide</iscomment>
|
|
150
|
-
<form action="${URLUtils.url('Controller-Action')}" method="post">
|
|
151
|
-
<input type="hidden" name="${pdict.csrf.tokenName}" value="${pdict.csrf.token}"/>
|
|
152
|
-
<iscomment>CSRF protection required for all forms</iscomment>
|
|
153
|
-
<!-- form fields -->
|
|
154
|
-
</form>
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## MCP-Enhanced Template Performance Patterns
|
|
158
|
-
|
|
159
|
-
```html
|
|
160
|
-
<iscomment>Performance optimization patterns from MCP performance guide</iscomment>
|
|
161
|
-
|
|
162
|
-
<iscomment>Efficient caching strategy</iscomment>
|
|
163
|
-
<iscache type="relative" hour="24" varyby="price_promotion"/>
|
|
164
|
-
|
|
165
|
-
<iscomment>Optimized loop with early exit conditions</iscomment>
|
|
166
|
-
<isloop items="${pdict.products}" var="product" status="loopStatus">
|
|
167
|
-
<isif condition="${loopStatus.count > 20}">
|
|
168
|
-
<isbreak/>
|
|
169
|
-
</isif>
|
|
170
|
-
<isif condition="${product.online}">
|
|
171
|
-
<div class="product-tile">
|
|
172
|
-
${product.name}
|
|
173
|
-
</div>
|
|
174
|
-
</isif>
|
|
175
|
-
</isloop>
|
|
176
|
-
|
|
177
|
-
<iscomment>Lazy loading for heavy content</iscomment>
|
|
178
|
-
<isif condition="${pdict.showAdvancedFeatures}">
|
|
179
|
-
<isinclude template="components/advanced-features"/>
|
|
180
|
-
</isif>
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## Template Organization from MCP Best Practices
|
|
184
|
-
|
|
185
|
-
Based on MCP ISML template guide:
|
|
186
|
-
|
|
187
|
-
### Template Structure:
|
|
188
|
-
```
|
|
189
|
-
templates/
|
|
190
|
-
├── default/
|
|
191
|
-
│ ├── components/ # Reusable components
|
|
192
|
-
│ ├── pages/ # Full page templates
|
|
193
|
-
│ ├── common/ # Common includes (header, footer)
|
|
194
|
-
│ └── emails/ # Email templates
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### Template Naming Conventions:
|
|
198
|
-
- Use descriptive, hierarchical names
|
|
199
|
-
- Follow cartridge naming patterns
|
|
200
|
-
- Include template purpose in filename
|
|
201
|
-
- Use consistent casing (lowercase with hyphens)
|
|
202
|
-
|
|
203
|
-
## NEVER Create Templates Without MCP
|
|
204
|
-
|
|
205
|
-
- ❌ Don't implement without security patterns - use `mcp_sfcc-dev_search_best_practices`
|
|
206
|
-
- ❌ Don't guess template objects - use `mcp_sfcc-dev_search_sfcc_classes`
|
|
207
|
-
- ❌ Don't skip performance optimization - use MCP performance guide
|
|
208
|
-
- ❌ Don't ignore caching strategies - follow MCP caching patterns
|
|
209
|
-
- ❌ Don't implement forms without CSRF - use MCP security guide
|
|
@@ -1,379 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: SFCC Job Framework patterns and best practices
|
|
3
|
-
alwaysApply: false
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# SFCC Job Framework Development
|
|
7
|
-
|
|
8
|
-
Use this rule when creating custom jobs in the SFCC Job Framework.
|
|
9
|
-
|
|
10
|
-
## Mandatory MCP Tools Sequence
|
|
11
|
-
|
|
12
|
-
**BEFORE writing ANY job code:**
|
|
13
|
-
1. `mcp_sfcc-dev_get_best_practice_guide` with guideName: "job_framework"
|
|
14
|
-
2. `mcp_sfcc-dev_search_best_practices` with query: "performance"
|
|
15
|
-
3. `mcp_sfcc-dev_search_best_practices` with query: "security"
|
|
16
|
-
4. `mcp_sfcc-dev_search_sfcc_classes` with query: relevant business domain
|
|
17
|
-
|
|
18
|
-
## MCP-Guided Job Development Process
|
|
19
|
-
|
|
20
|
-
### Step 1: Get Job Framework Best Practices
|
|
21
|
-
```
|
|
22
|
-
Use: mcp_sfcc-dev_get_best_practice_guide with guideName: "job_framework"
|
|
23
|
-
Purpose: Get comprehensive job development patterns, chunking strategies, and performance guidelines
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Step 2: Performance Optimization Patterns
|
|
27
|
-
```
|
|
28
|
-
Use: mcp_sfcc-dev_search_best_practices with query: "performance"
|
|
29
|
-
Purpose: Get memory management, transaction handling, and resource optimization patterns
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Step 3: Security Implementation
|
|
33
|
-
```
|
|
34
|
-
Use: mcp_sfcc-dev_search_best_practices with query: "security"
|
|
35
|
-
Purpose: Get secure job execution and data handling patterns
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Step 4: SFCC API Research
|
|
39
|
-
```
|
|
40
|
-
Use: mcp_sfcc-dev_search_sfcc_classes with query: [relevant domain]
|
|
41
|
-
Use: mcp_sfcc-dev_get_sfcc_class_info with className: [job-related classes]
|
|
42
|
-
Purpose: Understand available job framework APIs and data access patterns
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Core Concepts from MCP Job Framework Guide
|
|
46
|
-
|
|
47
|
-
### Job Development Paradigms
|
|
48
|
-
|
|
49
|
-
SFCC offers two distinct development models for custom jobs:
|
|
50
|
-
|
|
51
|
-
| Aspect | Task-Oriented ("Normal") | Chunk-Oriented |
|
|
52
|
-
|--------|-------------------------|----------------|
|
|
53
|
-
| **Best For** | Simple, monolithic tasks; quick operations | Large-scale data processing |
|
|
54
|
-
| **Data Volume** | Low (prone to timeouts with large datasets) | High (designed for massive datasets) |
|
|
55
|
-
| **Progress Monitoring** | Limited (running or finished) | Granular (updated per chunk) |
|
|
56
|
-
| **Transaction Control** | Typically one transaction | Fine-grained per chunk |
|
|
57
|
-
| **Code Complexity** | Low (single main function) | Moderate (callback functions) |
|
|
58
|
-
| **Resumability** | Difficult (requires full restart) | Easier (failures isolated to chunks) |
|
|
59
|
-
|
|
60
|
-
## MCP-Enhanced Task-Oriented Job Pattern
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
63
|
-
'use strict';
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Task-Oriented Job: [Job Name]
|
|
67
|
-
* Purpose: [Job functionality]
|
|
68
|
-
*
|
|
69
|
-
* Implementation based on:
|
|
70
|
-
* - mcp_sfcc-dev_get_best_practice_guide with guideName: "job_framework"
|
|
71
|
-
* - mcp_sfcc-dev_search_best_practices with query: "performance"
|
|
72
|
-
* - mcp_sfcc-dev_search_best_practices with query: "security"
|
|
73
|
-
*/
|
|
74
|
-
|
|
75
|
-
var Status = require('dw/system/Status');
|
|
76
|
-
var Logger = require('dw/system/Logger').getLogger('jobs', 'JobName');
|
|
77
|
-
var Transaction = require('dw/system/Transaction');
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Main job execution function
|
|
81
|
-
* Pattern from MCP job framework guide
|
|
82
|
-
*/
|
|
83
|
-
function execute(parameters) {
|
|
84
|
-
try {
|
|
85
|
-
Logger.info('Starting job execution with parameters: {0}', JSON.stringify(parameters));
|
|
86
|
-
|
|
87
|
-
// Input validation (patterns from MCP security guide)
|
|
88
|
-
var validationResult = validateJobParameters(parameters);
|
|
89
|
-
if (!validationResult.valid) {
|
|
90
|
-
Logger.error('Job parameter validation failed: {0}', validationResult.error);
|
|
91
|
-
return new Status(Status.ERROR, 'INVALID_PARAMETERS', validationResult.error);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Main job logic here (use SFCC classes discovered via MCP)
|
|
95
|
-
var result = performJobOperation(parameters);
|
|
96
|
-
|
|
97
|
-
if (result.success) {
|
|
98
|
-
Logger.info('Job completed successfully. Processed: {0} items', result.processedCount);
|
|
99
|
-
return new Status(Status.OK, 'SUCCESS', 'Job completed successfully');
|
|
100
|
-
} else {
|
|
101
|
-
Logger.error('Job failed: {0}', result.error);
|
|
102
|
-
return new Status(Status.ERROR, 'JOB_FAILED', result.error);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
} catch (e) {
|
|
106
|
-
Logger.error('Unexpected error in job execution: {0}', e.message);
|
|
107
|
-
Logger.debug('Job error stack trace: {0}', e.stack);
|
|
108
|
-
return new Status(Status.ERROR, 'UNEXPECTED_ERROR', 'Job execution failed');
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Validate job parameters based on MCP security patterns
|
|
114
|
-
*/
|
|
115
|
-
function validateJobParameters(parameters) {
|
|
116
|
-
// Implement validation patterns from:
|
|
117
|
-
// mcp_sfcc-dev_search_best_practices with query: "security"
|
|
118
|
-
|
|
119
|
-
try {
|
|
120
|
-
if (!parameters) {
|
|
121
|
-
return { valid: false, error: 'Parameters object is required' };
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// Add specific parameter validations based on job requirements
|
|
125
|
-
|
|
126
|
-
return { valid: true };
|
|
127
|
-
} catch (e) {
|
|
128
|
-
return { valid: false, error: 'Parameter validation error: ' + e.message };
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Main job operation implementation
|
|
134
|
-
* Follow performance patterns from MCP performance guide
|
|
135
|
-
*/
|
|
136
|
-
function performJobOperation(parameters) {
|
|
137
|
-
try {
|
|
138
|
-
var processedCount = 0;
|
|
139
|
-
|
|
140
|
-
// Use Transaction for data modifications (MCP performance patterns)
|
|
141
|
-
Transaction.wrap(function () {
|
|
142
|
-
// Job logic here
|
|
143
|
-
processedCount = performDataOperation();
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
return { success: true, processedCount: processedCount };
|
|
147
|
-
} catch (e) {
|
|
148
|
-
Logger.error('Error in job operation: {0}', e.message);
|
|
149
|
-
return { success: false, error: e.message };
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
module.exports.execute = execute;
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## MCP-Enhanced Chunk-Oriented Job Pattern
|
|
157
|
-
|
|
158
|
-
```javascript
|
|
159
|
-
'use strict';
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Chunk-Oriented Job: [Job Name]
|
|
163
|
-
* Purpose: [Large-scale data processing]
|
|
164
|
-
*
|
|
165
|
-
* Implementation based on:
|
|
166
|
-
* - mcp_sfcc-dev_get_best_practice_guide with guideName: "job_framework"
|
|
167
|
-
* - MCP performance and security patterns
|
|
168
|
-
*/
|
|
169
|
-
|
|
170
|
-
var Status = require('dw/system/Status');
|
|
171
|
-
var Logger = require('dw/system/Logger').getLogger('jobs', 'ChunkJob');
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Get total count for progress tracking
|
|
175
|
-
* Pattern from MCP job framework guide
|
|
176
|
-
*/
|
|
177
|
-
function getTotalCount(parameters, stepExecution) {
|
|
178
|
-
try {
|
|
179
|
-
// Get total count for chunking (use SFCC classes from MCP research)
|
|
180
|
-
var totalCount = calculateTotalItems(parameters);
|
|
181
|
-
|
|
182
|
-
Logger.info('Total items to process: {0}', totalCount);
|
|
183
|
-
return totalCount;
|
|
184
|
-
|
|
185
|
-
} catch (e) {
|
|
186
|
-
Logger.error('Error getting total count: {0}', e.message);
|
|
187
|
-
return 0;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Read chunk of data
|
|
193
|
-
* Performance patterns from MCP performance guide
|
|
194
|
-
*/
|
|
195
|
-
function read(parameters, stepExecution) {
|
|
196
|
-
try {
|
|
197
|
-
var chunkSize = parameters.ChunkSize || 100;
|
|
198
|
-
var currentOffset = stepExecution.readCount;
|
|
199
|
-
|
|
200
|
-
// Use efficient data access patterns (MCP performance guide)
|
|
201
|
-
var dataChunk = getDataChunk(currentOffset, chunkSize, parameters);
|
|
202
|
-
|
|
203
|
-
if (dataChunk && dataChunk.length > 0) {
|
|
204
|
-
Logger.debug('Read chunk: offset={0}, size={1}', currentOffset, dataChunk.length);
|
|
205
|
-
return dataChunk;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
return null; // End of data
|
|
209
|
-
|
|
210
|
-
} catch (e) {
|
|
211
|
-
Logger.error('Error reading data chunk: {0}', e.message);
|
|
212
|
-
return null;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Process single item in chunk
|
|
218
|
-
* Security and performance patterns from MCP guides
|
|
219
|
-
*/
|
|
220
|
-
function process(item, parameters, stepExecution) {
|
|
221
|
-
try {
|
|
222
|
-
// Validate item (security patterns from MCP)
|
|
223
|
-
if (!item || !validateItem(item)) {
|
|
224
|
-
Logger.warn('Invalid item skipped: {0}', item);
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Process item with error handling
|
|
229
|
-
var result = processItem(item, parameters);
|
|
230
|
-
|
|
231
|
-
if (result.success) {
|
|
232
|
-
Logger.debug('Processed item: {0}', item.ID || item.id);
|
|
233
|
-
return result.data;
|
|
234
|
-
} else {
|
|
235
|
-
Logger.warn('Failed to process item {0}: {1}', item.ID || item.id, result.error);
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
} catch (e) {
|
|
240
|
-
Logger.error('Error processing item {0}: {1}', item.ID || item.id, e.message);
|
|
241
|
-
return null;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Write processed data
|
|
247
|
-
* Transaction patterns from MCP performance guide
|
|
248
|
-
*/
|
|
249
|
-
function write(items, parameters, stepExecution) {
|
|
250
|
-
try {
|
|
251
|
-
if (!items || items.length === 0) {
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
var Transaction = require('dw/system/Transaction');
|
|
256
|
-
|
|
257
|
-
// Use transaction per chunk (MCP performance pattern)
|
|
258
|
-
Transaction.wrap(function () {
|
|
259
|
-
items.forEach(function (item) {
|
|
260
|
-
if (item) {
|
|
261
|
-
writeItem(item, parameters);
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
|
|
266
|
-
Logger.info('Wrote chunk: {0} items', items.length);
|
|
267
|
-
|
|
268
|
-
} catch (e) {
|
|
269
|
-
Logger.error('Error writing chunk: {0}', e.message);
|
|
270
|
-
throw e; // Re-throw to trigger chunk retry
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
module.exports.getTotalCount = getTotalCount;
|
|
275
|
-
module.exports.read = read;
|
|
276
|
-
module.exports.process = process;
|
|
277
|
-
module.exports.write = write;
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
## Job Development Checklist (MCP-Verified)
|
|
281
|
-
|
|
282
|
-
Before implementing jobs, verify with MCP:
|
|
283
|
-
- [ ] `mcp_sfcc-dev_get_best_practice_guide` with guideName: "job_framework" - Get implementation patterns
|
|
284
|
-
- [ ] `mcp_sfcc-dev_search_best_practices` with query: "performance" - Performance guidelines
|
|
285
|
-
- [ ] `mcp_sfcc-dev_search_best_practices` with query: "security" - Security requirements
|
|
286
|
-
- [ ] Choose appropriate job model (task vs. chunk-oriented) based on MCP guidance
|
|
287
|
-
|
|
288
|
-
Implementation verification:
|
|
289
|
-
- [ ] Proper error handling and logging
|
|
290
|
-
- [ ] Input parameter validation
|
|
291
|
-
- [ ] Appropriate transaction management
|
|
292
|
-
- [ ] Memory-efficient data processing
|
|
293
|
-
- [ ] Progress tracking for chunk-oriented jobs
|
|
294
|
-
- [ ] Resource cleanup (close iterators, etc.)
|
|
295
|
-
|
|
296
|
-
## Quick Reference from MCP Job Guide
|
|
297
|
-
|
|
298
|
-
### Choosing the Right Job Model
|
|
299
|
-
|
|
300
|
-
**Use Task-Oriented When:**
|
|
301
|
-
- Processing single files or making single API calls
|
|
302
|
-
- Quick database updates affecting known small datasets
|
|
303
|
-
- Simple configuration or setup tasks
|
|
304
|
-
- Progress tracking is not important
|
|
305
|
-
|
|
306
|
-
**Use Chunk-Oriented When:**
|
|
307
|
-
- Processing large datasets (>1000 items)
|
|
308
|
-
- Iterating over products, orders, customers, or file rows
|
|
309
|
-
- Progress monitoring is required
|
|
310
|
-
- Failure resilience is critical
|
|
311
|
-
- Transaction control is important
|
|
312
|
-
|
|
313
|
-
## NEVER Implement Jobs Without MCP
|
|
314
|
-
|
|
315
|
-
- ❌ Don't choose job model without consulting `mcp_sfcc-dev_get_best_practice_guide`
|
|
316
|
-
- ❌ Don't implement without performance patterns - use MCP performance guide
|
|
317
|
-
- ❌ Don't skip parameter validation - use MCP security patterns
|
|
318
|
-
- ❌ Don't assume job framework APIs - use `mcp_sfcc-dev_search_sfcc_classes`
|
|
319
|
-
|
|
320
|
-
## 🚀 Job Deployment Troubleshooting
|
|
321
|
-
|
|
322
|
-
**If custom jobs don't appear in Business Manager after deployment:**
|
|
323
|
-
|
|
324
|
-
1. **Check Current Code Version:**
|
|
325
|
-
```
|
|
326
|
-
Use: mcp_sfcc-dev_get_code_versions
|
|
327
|
-
Purpose: Verify which code version is currently active
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
2. **Perform Code-Switch Fix:**
|
|
331
|
-
```
|
|
332
|
-
Use: mcp_sfcc-dev_activate_code_version with versionId: [target_version]
|
|
333
|
-
Purpose: Switch to activate job registrations in Business Manager
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
**Common Job Deployment Issues:**
|
|
337
|
-
- Jobs missing from Administration > Operations > Jobs → Use code-switch fix
|
|
338
|
-
- Job steps not executing → Check job registration in active code version
|
|
339
|
-
- Intermittent job visibility → Multiple code versions active, use activation tool
|
|
340
|
-
|
|
341
|
-
## 🔧 Job Debugging and Log Analysis
|
|
342
|
-
|
|
343
|
-
**For Job Execution Issues:**
|
|
344
|
-
1. **Get Job Log Files:**
|
|
345
|
-
```
|
|
346
|
-
Use: mcp_sfcc-dev_get_latest_job_log_files
|
|
347
|
-
Purpose: Find recent job executions and available log files
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
2. **Search Job Logs by Name:**
|
|
351
|
-
```
|
|
352
|
-
Use: mcp_sfcc-dev_search_job_logs_by_name with jobName: "YourJobName"
|
|
353
|
-
Purpose: Find specific job logs for targeted debugging
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
3. **Get Job Execution Summary:**
|
|
357
|
-
```
|
|
358
|
-
Use: mcp_sfcc-dev_get_job_execution_summary with jobName: "YourJobName"
|
|
359
|
-
Purpose: Get comprehensive execution details, timing, and status
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
4. **Analyze Job Log Entries:**
|
|
363
|
-
```
|
|
364
|
-
Use: mcp_sfcc-dev_get_job_log_entries with level: "error" (or "warn", "info", "debug", "all")
|
|
365
|
-
Purpose: Review job log entries by severity level
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
5. **Search Job Logs for Patterns:**
|
|
369
|
-
```
|
|
370
|
-
Use: mcp_sfcc-dev_search_job_logs with pattern: "OutOfMemoryError" (or other error patterns)
|
|
371
|
-
Purpose: Find specific error patterns or custom logging messages in job logs
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
**Job Debugging Best Practices:**
|
|
375
|
-
- Job logs contain all log levels (error, warn, info, debug) in single files
|
|
376
|
-
- Use execution summaries to understand job performance and bottlenecks
|
|
377
|
-
- Search for custom Logger statements added in job steps
|
|
378
|
-
- Monitor job timing and memory usage through log analysis
|
|
379
|
-
- Use pattern searches to track specific data processing flows
|