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
package/AGENTS.md
CHANGED
|
@@ -45,11 +45,11 @@ Operate as a senior TypeScript / Node.js engineer with deep MCP + SFCC (OCAPI, S
|
|
|
45
45
|
- Keep architectural diagrams & tool categories consistent with `src/core/tool-definitions.ts`
|
|
46
46
|
|
|
47
47
|
### Testing Strategy
|
|
48
|
-
- Always discover
|
|
49
|
-
- Unit tests: core utilities, parsing, validation, token & client logic
|
|
50
|
-
- YAML tests: broad tool surface, schema
|
|
51
|
-
- Programmatic tests: multi-step flows,
|
|
52
|
-
- Performance assertions: CI‑tolerant (<500ms typical
|
|
48
|
+
- Always discover response shapes with `npx aegis query` before writing tests (see `.github/skills/mcp-yaml-testing/` for detailed workflow)
|
|
49
|
+
- Unit tests (Jest): core utilities, parsing, validation, token & client logic
|
|
50
|
+
- YAML tests (Aegis): broad tool surface, schema validation (see `.github/skills/mcp-yaml-testing/`)
|
|
51
|
+
- Programmatic tests (Node): multi-step flows, stateful sequences (see `.github/skills/mcp-programmatic-testing/`)
|
|
52
|
+
- Performance assertions: CI‑tolerant (<500ms typical) – correctness first
|
|
53
53
|
|
|
54
54
|
### Implementation Workflow
|
|
55
55
|
1. Define or adjust tool schema (if new) in `core/tool-definitions.ts`
|
|
@@ -61,28 +61,6 @@ Operate as a senior TypeScript / Node.js engineer with deep MCP + SFCC (OCAPI, S
|
|
|
61
61
|
7. Run lint + tests; address failures before further edits
|
|
62
62
|
8. Commit with concise, scope-focused message
|
|
63
63
|
|
|
64
|
-
### YAML Test Development (Critical Process)
|
|
65
|
-
**MANDATORY for all YAML test modifications**: Before writing or modifying ANY YAML test:
|
|
66
|
-
|
|
67
|
-
1. **Discovery First**: Use `npx aegis query [tool_name] '[params]' --config "[config.json]"` to discover actual response formats
|
|
68
|
-
2. **Test Success & Failure**: Query both successful and failure scenarios to understand all response variations
|
|
69
|
-
3. **Document Findings**: Add comments to YAML tests showing discovery commands and expected formats
|
|
70
|
-
4. **Choose Correct Patterns**: Use patterns that match the actual response structure, not assumptions
|
|
71
|
-
|
|
72
|
-
**Common Mistakes to Avoid**:
|
|
73
|
-
- Using `arrayLength` on JSON strings instead of actual arrays
|
|
74
|
-
- Complex regex patterns instead of simpler `contains` or `regex` patterns
|
|
75
|
-
- Assuming response structure without verification
|
|
76
|
-
- Writing tests before understanding what the tool actually returns
|
|
77
|
-
|
|
78
|
-
**Example Discovery Process**:
|
|
79
|
-
```bash
|
|
80
|
-
# Discover actual response
|
|
81
|
-
npx aegis query get_available_best_practice_guides '{}' --config "./aegis.config.docs-only.json"
|
|
82
|
-
# Response: {"content": [{"type": "text", "text": "[{\"name\":\"guide1\",...}]"}], "isError": false}
|
|
83
|
-
# Pattern: text: "match:contains:guide1" (not arrayLength since it's a JSON string)
|
|
84
|
-
```
|
|
85
|
-
|
|
86
64
|
### Performance & Stability
|
|
87
65
|
- Optimize only after measuring; instrument where ambiguity exists
|
|
88
66
|
- Use caching deliberately; document invalidation triggers
|
|
@@ -116,15 +94,30 @@ sfcc-dev-mcp/
|
|
|
116
94
|
│ ├── index.ts # Package exports and compatibility
|
|
117
95
|
│ ├── core/ # Core MCP server functionality
|
|
118
96
|
│ │ ├── server.ts # Main MCP server implementation
|
|
119
|
-
│ │ ├── tool-definitions.ts #
|
|
97
|
+
│ │ ├── tool-definitions.ts # Re-exports tool schemas from modular files
|
|
98
|
+
│ │ ├── tool-schemas/ # Modular tool schema definitions
|
|
99
|
+
│ │ │ ├── index.ts # Aggregates and re-exports all tool schemas
|
|
100
|
+
│ │ │ ├── shared-schemas.ts # Reusable schema components (query, pagination, etc.)
|
|
101
|
+
│ │ │ ├── documentation-tools.ts # SFCC documentation tools (5 tools)
|
|
102
|
+
│ │ │ ├── best-practices-tools.ts # Best practices tools (4 tools)
|
|
103
|
+
│ │ │ ├── sfra-tools.ts # SFRA documentation tools (5 tools)
|
|
104
|
+
│ │ │ ├── isml-tools.ts # ISML documentation tools (5 tools)
|
|
105
|
+
│ │ │ ├── log-tools.ts # Log + Job log tools (8 + 5 tools)
|
|
106
|
+
│ │ │ ├── system-object-tools.ts # System object tools (6 tools)
|
|
107
|
+
│ │ │ ├── cartridge-tools.ts # Cartridge generation tools (1 tool)
|
|
108
|
+
│ │ │ └── code-version-tools.ts # Code version tools (2 tools)
|
|
120
109
|
│ │ └── handlers/ # Modular tool handlers
|
|
121
110
|
│ │ ├── base-handler.ts # Abstract base handler with common functionality
|
|
111
|
+
│ │ ├── abstract-client-handler.ts # Abstract handler for client-based tools
|
|
112
|
+
│ │ ├── simple-client-handler.ts # Simple handler for single-client tools
|
|
122
113
|
│ │ ├── client-factory.ts # Centralized client creation with dependency injection
|
|
123
114
|
│ │ ├── validation-helpers.ts # Common validation utilities for handlers
|
|
124
115
|
│ │ ├── docs-handler.ts # SFCC documentation tool handler
|
|
125
116
|
│ │ ├── best-practices-handler.ts # Best practices tool handler
|
|
126
117
|
│ │ ├── sfra-handler.ts # SFRA documentation tool handler
|
|
118
|
+
│ │ ├── isml-handler.ts # ISML documentation tool handler
|
|
127
119
|
│ │ ├── log-handler.ts # Log analysis tool handler
|
|
120
|
+
│ │ ├── job-log-handler.ts # Job log analysis tool handler
|
|
128
121
|
│ │ ├── system-object-handler.ts # System object tool handler
|
|
129
122
|
│ │ ├── code-version-handler.ts # Code version tool handler
|
|
130
123
|
│ │ └── cartridge-handler.ts # Cartridge generation tool handler
|
|
@@ -153,10 +146,15 @@ sfcc-dev-mcp/
|
|
|
153
146
|
│ │ │ ├── class-name-resolver.ts # Class name normalization and resolution
|
|
154
147
|
│ │ │ ├── referenced-types-extractor.ts # Type extraction from documentation content
|
|
155
148
|
│ │ │ └── index.ts # Module exports
|
|
156
|
-
│ │ ├── cartridge
|
|
149
|
+
│ │ ├── cartridge/ # Cartridge generation system
|
|
150
|
+
│ │ │ ├── cartridge-generation-client.ts # Main cartridge structure generator
|
|
151
|
+
│ │ │ ├── cartridge-structure.ts # Directory structure definitions
|
|
152
|
+
│ │ │ ├── cartridge-templates.ts # File content templates
|
|
153
|
+
│ │ │ └── index.ts # Module exports
|
|
157
154
|
│ │ ├── log-client.ts # Log client compatibility wrapper
|
|
158
155
|
│ │ ├── docs-client.ts # SFCC documentation client orchestrator
|
|
159
156
|
│ │ ├── sfra-client.ts # SFRA documentation client
|
|
157
|
+
│ │ ├── isml-client.ts # ISML element documentation client
|
|
160
158
|
│ │ ├── ocapi-client.ts # Main OCAPI client coordinator
|
|
161
159
|
│ │ └── best-practices-client.ts # Best practices guide client
|
|
162
160
|
│ ├── services/ # Service layer with clean abstractions
|
|
@@ -166,6 +164,9 @@ sfcc-dev-mcp/
|
|
|
166
164
|
│ ├── config/ # Configuration management
|
|
167
165
|
│ │ ├── configuration-factory.ts # Config factory for different modes
|
|
168
166
|
│ │ └── dw-json-loader.ts # dw.json configuration loader
|
|
167
|
+
│ ├── constants/ # Application constants
|
|
168
|
+
│ │ ├── index.ts # Constants exports
|
|
169
|
+
│ │ └── best-practices-guides.ts # Best practices guide definitions
|
|
169
170
|
│ ├── tool-configs/ # Tool configuration definitions
|
|
170
171
|
│ │ ├── best-practices-tool-config.ts # Best practices tools configuration
|
|
171
172
|
│ │ ├── cartridge-tool-config.ts # Cartridge generation tools configuration
|
|
@@ -278,6 +279,19 @@ sfcc-dev-mcp/
|
|
|
278
279
|
│ │ └── explain-product-pricing-methods-no-mcp.png # Demo screenshot without MCP
|
|
279
280
|
│ ├── dist/ # Built website output (Vite build)
|
|
280
281
|
│ └── node_modules/ # Node.js dependencies
|
|
282
|
+
├── docs-site-v2/ # VitePress documentation website
|
|
283
|
+
│ ├── .vitepress/ # VitePress config and theme
|
|
284
|
+
│ ├── guide/ # Getting started and configuration
|
|
285
|
+
│ ├── features/ # Feature overview
|
|
286
|
+
│ ├── tools/ # Tools catalog
|
|
287
|
+
│ ├── examples/ # Prompt examples
|
|
288
|
+
│ ├── script-debugger/ # Script debugger guide
|
|
289
|
+
│ ├── skills/ # Agent skills guide
|
|
290
|
+
│ ├── security/ # Security and privacy notes
|
|
291
|
+
│ ├── development/ # Development guide
|
|
292
|
+
│ ├── troubleshooting/ # Troubleshooting guide
|
|
293
|
+
│ ├── public/ # Static assets
|
|
294
|
+
│ └── package.json # VitePress scripts and dependencies
|
|
281
295
|
├── ai-instructions/ # AI instruction files for different platforms
|
|
282
296
|
│ ├── claude-desktop/ # Claude Desktop specific instructions
|
|
283
297
|
│ │ └── claude_custom_instructions.md
|
|
@@ -307,18 +321,24 @@ sfcc-dev-mcp/
|
|
|
307
321
|
- Manages configuration modes (documentation-only vs. full)
|
|
308
322
|
- Provides error handling and response formatting
|
|
309
323
|
- Orchestrates modular tool handlers for different functionality areas
|
|
324
|
+
- Issues a one-time advisory when AGENTS.md/skills are missing, pointing clients to the installer tool
|
|
310
325
|
|
|
311
326
|
#### **Tool Handler Architecture** (`core/handlers/`)
|
|
312
327
|
- **BaseToolHandler** (`base-handler.ts`): Abstract base class providing common handler functionality, standardized response formatting, execution timing, and error handling patterns
|
|
328
|
+
- **AbstractClientHandler** (`abstract-client-handler.ts`): Abstract handler for tools that require client instantiation
|
|
329
|
+
- **SimpleClientHandler** (`simple-client-handler.ts`): Simplified handler for single-client tools with less boilerplate
|
|
313
330
|
- **ClientFactory** (`client-factory.ts`): Centralized client creation with dependency injection support for testing and clean architecture
|
|
314
331
|
- **ValidationHelpers** (`validation-helpers.ts`): Common validation utilities shared across all handlers
|
|
315
332
|
- **DocsToolHandler** (`docs-handler.ts`): Handles SFCC documentation tools including class information, method search, and API discovery
|
|
316
333
|
- **BestPracticesToolHandler** (`best-practices-handler.ts`): Manages best practice guides, security recommendations, and hook reference tables
|
|
317
334
|
- **SFRAToolHandler** (`sfra-handler.ts`): Processes SFRA documentation requests with dynamic discovery and smart categorization
|
|
335
|
+
- **ISMLToolHandler** (`isml-handler.ts`): Handles ISML element documentation, search, and category browsing
|
|
318
336
|
- **LogToolHandler** (`log-handler.ts`): Handles real-time log analysis, error monitoring, and system health summarization
|
|
337
|
+
- **JobLogToolHandler** (`job-log-handler.ts`): Handles job log analysis, debugging, and execution summaries
|
|
319
338
|
- **SystemObjectToolHandler** (`system-object-handler.ts`): Manages system object definitions, custom attributes, and site preferences
|
|
320
339
|
- **CodeVersionToolHandler** (`code-version-handler.ts`): Handles code version listing, activation, and deployment management
|
|
321
340
|
- **CartridgeToolHandler** (`cartridge-handler.ts`): Processes cartridge generation requests with complete project setup using dependency injection
|
|
341
|
+
- **AgentInstructionsToolHandler** (`agent-instructions-handler.ts`): Installs or merges bundled AGENTS.md and skills into workspaces, user home, or temp directories
|
|
322
342
|
|
|
323
343
|
#### **Client Architecture**
|
|
324
344
|
|
|
@@ -352,9 +372,15 @@ sfcc-dev-mcp/
|
|
|
352
372
|
- **DocsClient** (`docs-client.ts`): Main orchestrator for SFCC documentation processing that coordinates specialized modules for documentation scanning, content parsing, class name resolution, and type extraction across all namespaces
|
|
353
373
|
- **LogClient** (`log-client.ts`): Backward compatibility wrapper that re-exports the modular log system
|
|
354
374
|
- **SFRAClient** (`sfra-client.ts`): Provides comprehensive SFRA (Storefront Reference Architecture) documentation access including Server, Request, Response, QueryString, and render module documentation with method and property details
|
|
375
|
+
- **ISMLClient** (`isml-client.ts`): Provides ISML element documentation, category-based browsing, and search functionality for template development
|
|
355
376
|
- **OCAPIClient** (`ocapi-client.ts`): Main OCAPI coordinator that orchestrates specialized clients and provides unified interface
|
|
356
377
|
- **BestPracticesClient** (`best-practices-client.ts`): Serves curated development guides including cartridge creation, ISML templates with security and performance guidelines, job framework development, LocalServiceRegistry service integrations with OAuth patterns and reusable module design, OCAPI/SCAPI hooks, SFRA controllers, SFRA models with JSON object layer design and architecture patterns, SFRA client-side JavaScript architecture (AJAX flows, validation, accessibility), custom endpoints, security recommendations, and performance optimization strategies with hook reference tables
|
|
378
|
+
- **AgentInstructionsClient** (`agent-instructions-client.ts`): Plans and installs bundled AI assets (AGENTS.md + skills) into workspaces, user home, or temp directories with merge strategies and missing-only copy support
|
|
379
|
+
|
|
380
|
+
##### **Cartridge Generation** (`clients/cartridge/`)
|
|
357
381
|
- **CartridgeGenerationClient** (`cartridge-generation-client.ts`): Generates complete cartridge structures with clean dependency injection for file system and path operations
|
|
382
|
+
- **CartridgeStructure** (`cartridge-structure.ts`): Defines standard SFCC cartridge directory structure
|
|
383
|
+
- **CartridgeTemplates** (`cartridge-templates.ts`): Contains file templates for controllers, models, scripts, and configurations
|
|
358
384
|
|
|
359
385
|
#### **Configuration Management** (`config/`)
|
|
360
386
|
- **Configuration Factory** (`configuration-factory.ts`): Creates configurations for different modes
|
|
@@ -392,33 +418,53 @@ sfcc-dev-mcp/
|
|
|
392
418
|
- **Category Filtering**: Explore documents by functional areas for efficient discovery
|
|
393
419
|
- **Complete Coverage**: Core SFRA classes (Server, Request, Response, QueryString, render) plus comprehensive model documentation (account, cart, products, pricing, billing, shipping, store, customer management, totals, categories, content, locale, addresses, and more)
|
|
394
420
|
|
|
395
|
-
4. **
|
|
421
|
+
4. **ISML Documentation Tools** (5 tools)
|
|
422
|
+
- Complete ISML element reference and documentation
|
|
423
|
+
- Control flow elements (isif, isloop, isnext, etc.)
|
|
424
|
+
- Output formatting (isprint) and includes (isinclude, iscomponent, isslot)
|
|
425
|
+
- Scripting elements (isscript, isset) and caching (iscache)
|
|
426
|
+
- Category-based browsing and advanced search capabilities
|
|
427
|
+
|
|
428
|
+
5. **Cartridge Generation Tools** (1 tool)
|
|
396
429
|
- Automated cartridge structure creation with direct file generation
|
|
397
430
|
- Complete project setup with all necessary configuration files
|
|
398
431
|
- Proper directory organization and file structure
|
|
399
432
|
|
|
400
|
-
|
|
433
|
+
6. **Log Analysis Tools** (8 tools)
|
|
401
434
|
- Real-time error monitoring
|
|
402
435
|
- Log search and pattern matching
|
|
403
436
|
- System health summarization
|
|
404
437
|
|
|
405
|
-
|
|
438
|
+
7. **Job Log Tools** (5 tools)
|
|
406
439
|
- Job log analysis and debugging
|
|
407
440
|
- Job execution summaries
|
|
408
441
|
- Custom job step monitoring
|
|
409
442
|
|
|
410
|
-
|
|
443
|
+
8. **System Object Tools** (6 tools)
|
|
411
444
|
- Custom attribute discovery
|
|
412
445
|
- Site preference management
|
|
413
446
|
- System object schema exploration
|
|
414
447
|
- Custom object attribute definitions search
|
|
415
448
|
|
|
416
|
-
|
|
449
|
+
9. **Code Version Tools** (2 tools)
|
|
417
450
|
- Code version listing and management
|
|
418
451
|
- Code version activation for deployment fixes
|
|
419
452
|
|
|
453
|
+
10. **Agent Instruction Tools** (1 tool)
|
|
454
|
+
- Copy or merge AGENTS.md and bundled skills into the current workspace, user home, or a temp directory
|
|
455
|
+
- Supports dry-run planning, append/replace/skip strategies, and missing-only installs
|
|
456
|
+
|
|
420
457
|
### 🚀 Operating Modes
|
|
421
458
|
|
|
459
|
+
#### **Configuration Discovery Priority**
|
|
460
|
+
The server discovers SFCC credentials in this order (highest to lowest priority):
|
|
461
|
+
|
|
462
|
+
1. **CLI parameter** (`--dw-json /path/to/dw.json`) - Explicit, highest priority
|
|
463
|
+
2. **Environment variables** (`SFCC_HOSTNAME`, `SFCC_USERNAME`, `SFCC_PASSWORD`, `SFCC_CLIENT_ID`, `SFCC_CLIENT_SECRET`)
|
|
464
|
+
3. **MCP workspace roots discovery** - Automatically finds `dw.json` in VS Code workspace folders after client connection
|
|
465
|
+
|
|
466
|
+
> **Note**: CWD-based auto-discovery is intentionally disabled because MCP servers often start with `cwd` set to the user's home directory, not the project directory. The MCP workspace roots mechanism provides reliable project context.
|
|
467
|
+
|
|
422
468
|
#### **Documentation-Only Mode**
|
|
423
469
|
- No SFCC credentials required
|
|
424
470
|
- Access to all documentation and best practices
|
|
@@ -429,12 +475,12 @@ sfcc-dev-mcp/
|
|
|
429
475
|
- Complete access to logs, job logs, and system objects
|
|
430
476
|
- Real-time debugging and monitoring capabilities
|
|
431
477
|
|
|
432
|
-
### 🎯 Development Guidelines
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
478
|
+
### 🎯 Development Guidelines
|
|
479
|
+
See Unified Engineering Principles section above for the authoritative guidelines covering:
|
|
480
|
+
- Configuration options and operating modes
|
|
481
|
+
- Development workflows and best practices
|
|
482
|
+
- Tool categories and counts
|
|
483
|
+
- Installation and setup procedures
|
|
438
484
|
|
|
439
485
|
### 📝 Documentation Maintenance Requirements
|
|
440
486
|
|
|
@@ -445,17 +491,18 @@ Legacy duplication removed. See Unified Engineering Principles section for the a
|
|
|
445
491
|
Before updating any documentation with tool counts or quantitative information, **ALWAYS** verify the actual numbers using command line tools:
|
|
446
492
|
|
|
447
493
|
```bash
|
|
448
|
-
# Total tool count verification
|
|
449
|
-
grep -c "name: '" src/core/tool-
|
|
450
|
-
|
|
451
|
-
# Individual
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
494
|
+
# Total tool count verification (38 tools across all categories)
|
|
495
|
+
grep -c "name: '" src/core/tool-schemas/*.ts | grep -v ":0" | awk -F: '{sum+=$2} END {print "Total tools:", sum}'
|
|
496
|
+
|
|
497
|
+
# Individual category counts (from modular schema files)
|
|
498
|
+
echo "Documentation tools:" && grep -c "name: '" src/core/tool-schemas/documentation-tools.ts
|
|
499
|
+
echo "Best practices tools:" && grep -c "name: '" src/core/tool-schemas/best-practices-tools.ts
|
|
500
|
+
echo "SFRA tools:" && grep -c "name: '" src/core/tool-schemas/sfra-tools.ts
|
|
501
|
+
echo "ISML tools:" && grep -c "name: '" src/core/tool-schemas/isml-tools.ts
|
|
502
|
+
echo "Log + Job log tools:" && grep -c "name: '" src/core/tool-schemas/log-tools.ts
|
|
503
|
+
echo "System object tools:" && grep -c "name: '" src/core/tool-schemas/system-object-tools.ts
|
|
504
|
+
echo "Cartridge tools:" && grep -c "name: '" src/core/tool-schemas/cartridge-tools.ts
|
|
505
|
+
echo "Code version tools:" && grep -c "name: '" src/core/tool-schemas/code-version-tools.ts
|
|
459
506
|
|
|
460
507
|
# Verify file structure changes
|
|
461
508
|
find src -name "*.ts" -type f | wc -l # Count TypeScript files
|
|
@@ -515,252 +562,59 @@ find docs -name "*.md" -type f | wc -l # Count documentation files
|
|
|
515
562
|
|
|
516
563
|
**Remember**: These documentation files serve as the primary source of truth for understanding the project. `AGENTS.md` guides development practices and architecture, while `README.md` serves users and contributors. Keeping both current ensures consistent understanding across all stakeholders and maintains professional project standards.
|
|
517
564
|
|
|
518
|
-
### 🔧 Common Development Tasks
|
|
519
|
-
|
|
520
|
-
- **Adding New Tools**: Define schema in `core/tool-definitions.ts`, implement handler in appropriate handler class in `core/handlers/`, or create new handler extending `BaseToolHandler`
|
|
521
|
-
- **Creating New Handlers**: Extend `BaseToolHandler` class, implement `canHandle()` and `handle()` methods, register in `server.ts`
|
|
522
|
-
- **Using ClientFactory**: Create clients using `ClientFactory` for centralized creation and dependency injection support
|
|
523
|
-
- **Implementing Services**: Create service interfaces in `services/index.ts`, implement production versions, and provide mock implementations for testing
|
|
524
|
-
- **Dependency Injection**: Use constructor injection for services, leverage `ClientFactory` for client creation with optional service injection
|
|
525
|
-
- **Updating Documentation**: Modify files in `docs/` and run conversion scripts
|
|
526
|
-
- **Enhancing Authentication**: Update `clients/base/oauth-token.ts` and client authentication logic
|
|
527
|
-
- **Improving Caching**: Enhance `utils/cache.ts` for better performance and data freshness
|
|
528
|
-
- **Adding Configuration Options**: Update `config/` modules for new configuration capabilities
|
|
529
|
-
- **Adding Tests**: Create comprehensive test coverage in the `tests/` directory with proper service mocking
|
|
530
|
-
- **MCP Test Execution**: Use `node --test` for individual MCP programmatic tests, NOT `npm test -- file.js` (which runs Jest)
|
|
531
|
-
- **Test Types**: Jest for unit tests (`src/` directory), Node.js test runner for MCP programmatic tests (`tests/mcp/node/`), Aegis for YAML tests (`tests/mcp/yaml/`)
|
|
532
|
-
- **Adding Utilities**: Extend `utils/` modules for shared functionality
|
|
533
|
-
- **Handler Development**: Follow the modular handler pattern - each handler is responsible for a specific tool category with clear separation of concerns
|
|
534
|
-
- **Cartridge Generation**: Use `generate_cartridge_structure` tool for automated cartridge creation with direct file generation
|
|
535
|
-
- **Job Log Analysis**: Use job log tools for debugging custom job steps - `get_latest_job_log_files`, `get_job_log_entries`, `search_job_logs`, `search_job_logs_by_name`, `get_job_execution_summary`
|
|
536
|
-
- **Modular Log Development**: Work with individual log modules in `clients/logs/` for specific functionality - modify `log-analyzer.ts` for analysis improvements, `log-formatter.ts` for output changes, or `log-file-reader.ts` for reading optimizations
|
|
537
|
-
- **Modular Documentation Development**: Work with individual documentation modules in `clients/docs/` for specific functionality - modify `documentation-scanner.ts` for file discovery improvements, `class-content-parser.ts` for parsing enhancements, `class-name-resolver.ts` for name resolution logic, or `referenced-types-extractor.ts` for type extraction algorithms
|
|
538
|
-
- **Documentation Verification**: Use verification commands (see Maintenance) before changing numeric counts or structure claims
|
|
539
|
-
- **CI-Friendly Performance Testing**: When writing performance tests, use lenient timeouts (500ms+) and variation ratios (50x+) to account for GitHub Actions CI environment variability. Prioritize functional validation over strict timing requirements to prevent flaky failures due to infrastructure differences.
|
|
540
|
-
|
|
541
|
-
### 🔍 Testing & Validation (Consolidated Summary)
|
|
542
|
-
Detailed testing guidance lives in:
|
|
543
|
-
- `tests/mcp/AGENTS.md` (umbrella & decision matrix)
|
|
544
|
-
- `tests/mcp/yaml/AGENTS.md` (YAML discovery-first workflow & pattern catalog)
|
|
545
|
-
- `tests/mcp/node/AGENTS.md` (programmatic multi-step, stderr management, performance tolerances)
|
|
546
|
-
|
|
547
|
-
Essentials:
|
|
548
|
-
- Always discover success + empty/no-result + error responses with `npx aegis query` before writing tests.
|
|
549
|
-
- Prefer YAML for broad coverage; use programmatic tests for stateful or multi-step logic.
|
|
550
|
-
- Keep performance assertions lenient (<500ms typical; <50× variance) unless you have empirical baselines.
|
|
551
|
-
|
|
552
|
-
Cheat Sheet:
|
|
553
|
-
```bash
|
|
554
|
-
# List tools
|
|
555
|
-
npx aegis query --config ./aegis.config.docs-only.json
|
|
556
|
-
|
|
557
|
-
# Discovery examples
|
|
558
|
-
npx aegis query search_sfcc_classes 'query:catalog' --config ./aegis.config.docs-only.json
|
|
559
|
-
npx aegis query get_sfra_document 'documentName:server' --config ./aegis.config.docs-only.json
|
|
560
|
-
npx aegis query get_system_object_definitions '' --config ./aegis.config.with-dw.json
|
|
561
|
-
|
|
562
|
-
# Complex dotted parameters
|
|
563
|
-
npx aegis query search_system_object_attribute_definitions 'objectType:Product|searchRequest.query.match_all_query:{}' --config ./aegis.config.with-dw.json
|
|
564
|
-
|
|
565
|
-
# Test suites
|
|
566
|
-
npm run test:mcp:yaml # YAML (docs-only)
|
|
567
|
-
npm run test:mcp:yaml:full # YAML (full mode)
|
|
568
|
-
npm run test:mcp:node # Programmatic
|
|
569
|
-
jest # Unit tests
|
|
570
|
-
npm test # Full suite
|
|
571
|
-
|
|
572
|
-
# Single programmatic test
|
|
573
|
-
node --test tests/mcp/node/get-latest-debug.full-mode.programmatic.test.js
|
|
574
|
-
```
|
|
575
|
-
|
|
576
|
-
Troubleshooting Quick Tips:
|
|
577
|
-
- Mismatch schema: re-run discovery; update both test + docs.
|
|
578
|
-
- Flaky stderr assertions: ensure `client.clearStderr()` in programmatic tests (see node guide).
|
|
579
|
-
- Empty arrays vs objects: record actual shape before choosing regex pattern.
|
|
580
|
-
|
|
581
|
-
#### **Debugging Tool Responses**
|
|
582
|
-
|
|
583
|
-
When developing or debugging tools, use aegis to inspect actual response formats:
|
|
584
|
-
|
|
585
|
-
```bash
|
|
586
|
-
# Capture full response structure for test validation (pipe format)
|
|
587
|
-
npx aegis query search_sfcc_classes 'query:catalog' --config ./aegis.config.docs-only.json | head -50
|
|
588
|
-
|
|
589
|
-
# Traditional method format (still supported)
|
|
590
|
-
npx aegis query --config ./aegis.config.docs-only.json --method "tools/call" --params '{"name": "[tool-name]", "arguments": [args]}' | head -50
|
|
591
|
-
|
|
592
|
-
# Test error handling (pipe format)
|
|
593
|
-
npx aegis query search_sfcc_classes 'query:' --config ./aegis.config.docs-only.json
|
|
594
|
-
|
|
595
|
-
# Verify JSON response structure (pipe format)
|
|
596
|
-
npx aegis query get_sfcc_class_info 'className:dw.catalog.Product' --config ./aegis.config.docs-only.json | jq '.'
|
|
597
|
-
```
|
|
598
|
-
|
|
599
|
-
#### **Development Workflow Integration**
|
|
600
|
-
|
|
601
|
-
1. **Tool Development**: After implementing a new tool, immediately test with aegis before writing unit tests
|
|
602
|
-
2. **Response Validation**: Use aegis to capture actual response structures when writing test assertions
|
|
603
|
-
3. **Error Testing**: Verify error handling behavior with invalid parameters through aegis
|
|
604
|
-
4. **Configuration Testing**: Test both docs-only and full modes to ensure proper tool availability
|
|
605
|
-
5. **Integration Testing**: Validate tool interactions and data flow using aegis before automated tests
|
|
606
|
-
|
|
607
|
-
#### **Critical: Response Format Discovery Before Writing Tests**
|
|
608
|
-
|
|
609
|
-
**ALWAYS use aegis query to understand actual response formats before writing YAML tests.** This prevents test failures due to incorrect assumptions about response structure.
|
|
610
|
-
|
|
611
|
-
##### **Essential Pre-Test Discovery Process:**
|
|
565
|
+
### 🔧 Common Development Tasks
|
|
612
566
|
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
567
|
+
**Code Development:**
|
|
568
|
+
- **Adding New Tools**: Define schema in `core/tool-schemas/[category]-tools.ts`, add to `index.ts`, implement in `core/handlers/`
|
|
569
|
+
- **Creating New Handlers**: Extend `BaseToolHandler`, implement `canHandle()` and `handle()`, register in `server.ts`
|
|
570
|
+
- **Using ClientFactory**: Create clients with `ClientFactory` for centralized creation and DI support
|
|
571
|
+
- **Implementing Services**: Create interfaces in `services/index.ts`, implement production + mock versions
|
|
617
572
|
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
```
|
|
573
|
+
**Testing** (see `.github/skills/` for detailed guides):
|
|
574
|
+
- **YAML Tests**: Use `mcp-yaml-testing` skill for declarative test creation
|
|
575
|
+
- **Programmatic Tests**: Use `mcp-programmatic-testing` skill for complex workflows
|
|
576
|
+
- **Unit Tests**: Jest for `tests/` directory; MCP tests use `node --test`
|
|
623
577
|
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
- Does it return `[]` for no results or `{classes: [], totalCount: 0}`?
|
|
578
|
+
**SFCC-Specific Tasks** (see `.github/skills/` for detailed guides):
|
|
579
|
+
- **Cartridge Generation**: Use `sfcc-cartridge-generation` skill for scaffolding
|
|
580
|
+
- **Log Debugging**: Use `sfcc-log-debugging` skill for error investigation
|
|
628
581
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
# For empty array responses
|
|
635
|
-
text: "match:regex:^\\[\\s*\\]$"
|
|
636
|
-
|
|
637
|
-
# For JSON object responses
|
|
638
|
-
text: "match:regex:\\{[\\s\\S]*\\}"
|
|
639
|
-
|
|
640
|
-
# For specific content validation
|
|
641
|
-
text: "match:contains:dw.catalog.Product"
|
|
642
|
-
```
|
|
582
|
+
**Modular Development:**
|
|
583
|
+
- **Log Modules**: Modify `clients/logs/` files for log functionality changes
|
|
584
|
+
- **Doc Modules**: Modify `clients/docs/` files for documentation parsing changes
|
|
585
|
+
- **Documentation**: Use verification commands before updating counts
|
|
643
586
|
|
|
644
|
-
|
|
587
|
+
### 🔍 Testing & Validation
|
|
645
588
|
|
|
646
|
-
|
|
647
|
-
-
|
|
648
|
-
-
|
|
649
|
-
- **Incorrect pattern syntax**: Using `contains:classes` instead of `match:contains:classes`
|
|
589
|
+
**Skills Available**: For detailed testing workflows, use these Agent Skills (in `.github/skills/`):
|
|
590
|
+
- `mcp-yaml-testing` - YAML test creation, patterns, discovery workflow
|
|
591
|
+
- `mcp-programmatic-testing` - JavaScript tests, buffer management, multi-step workflows
|
|
650
592
|
|
|
651
|
-
|
|
593
|
+
**Test Type Decision Matrix**:
|
|
594
|
+
| Scenario | Recommended | Reason |
|
|
595
|
+
|----------|-------------|--------|
|
|
596
|
+
| Basic tool validation | YAML | Simple, declarative, CI-friendly |
|
|
597
|
+
| Schema/shape testing | YAML | Pattern matching built-in |
|
|
598
|
+
| Multi-step workflows | Programmatic | State management needed |
|
|
599
|
+
| Complex business logic | Programmatic | Code execution required |
|
|
652
600
|
|
|
601
|
+
**Essential Commands**:
|
|
653
602
|
```bash
|
|
654
|
-
#
|
|
655
|
-
npx aegis query
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
# Discover error response format (pipe format)
|
|
663
|
-
npx aegis query search_sfcc_classes 'query:' --config ./aegis.config.docs-only.json
|
|
664
|
-
# Result: {"content": [{"type": "text", "text": "Error: ..."}], "isError": true}
|
|
665
|
-
```
|
|
666
|
-
|
|
667
|
-
**Remember**: The time spent discovering actual response formats with aegis saves hours of debugging failed tests later. Always query first, then write tests based on reality, not assumptions.
|
|
668
|
-
|
|
669
|
-
#### **Troubleshooting with Aegis**
|
|
670
|
-
|
|
671
|
-
- **Tool Not Found**: Check configuration mode (docs-only vs full) and ensure tool is properly registered
|
|
672
|
-
- **Invalid Arguments**: Use aegis to test parameter validation and see exact error messages
|
|
673
|
-
- **Response Issues**: Compare aegis output with programmatic test expectations to identify format mismatches
|
|
674
|
-
- **Performance Issues**: Use aegis timing information to identify slow tools
|
|
675
|
-
- **Authentication Problems**: Test full-mode tools with aegis to validate OCAPI/WebDAV connections
|
|
676
|
-
|
|
677
|
-
#### **Best Practices**
|
|
678
|
-
|
|
679
|
-
- **CRITICAL: Always discover response formats first** - Use aegis query to understand actual response structure before writing any tests
|
|
680
|
-
- **Always test new tools** with aegis before writing automated tests
|
|
681
|
-
- **Use aegis output** to write accurate test assertions rather than guessing response formats
|
|
682
|
-
- **Test both success and error cases** with aegis during development
|
|
683
|
-
- **Verify tool availability** in different configuration modes using aegis
|
|
684
|
-
- **Debug programmatic test failures** by comparing with aegis CLI results
|
|
685
|
-
- **Test parameter validation** using aegis with various input combinations
|
|
686
|
-
- **Document actual response formats** in test file comments for future reference
|
|
687
|
-
- **Test edge cases comprehensively** - empty results, invalid inputs, missing parameters
|
|
688
|
-
- **Use correct YAML pattern syntax** - always prefix with `match:` for validation patterns
|
|
689
|
-
|
|
690
|
-
#### **CI-Friendly Performance Testing Guidelines**
|
|
691
|
-
|
|
692
|
-
When writing performance-related tests, especially for GitHub Actions CI environments, follow these critical guidelines:
|
|
693
|
-
|
|
694
|
-
- **Use Lenient Timeouts**: Set timeout thresholds of **500ms or higher** instead of strict values (50ms-250ms). CI environments are slower and less predictable than local development machines.
|
|
695
|
-
- **Account for Environment Variability**: CI runners experience resource contention, cold starts, network latency, and I/O scheduling delays that can significantly impact timing.
|
|
696
|
-
- **Performance Variation Ratios**: For tests comparing min/max performance, use ratios of **50x or higher** instead of strict ratios (15x). CI environments can have extreme variations due to:
|
|
697
|
-
- Resource sharing with other processes
|
|
698
|
-
- JIT compilation and garbage collection delays
|
|
699
|
-
- Network and file system variability
|
|
700
|
-
- Container initialization overhead
|
|
701
|
-
- **Scaling Calculations**: When calculating expected performance based on result count, use generous base times (100ms+) and scaling factors (2ms+ per item) rather than tight calculations.
|
|
702
|
-
- **Focus on Functional Validation**: Prioritize correctness over strict performance requirements. Performance tests should catch major regressions, not minor timing variations.
|
|
703
|
-
- **Example CI-Friendly Assertions**:
|
|
704
|
-
```javascript
|
|
705
|
-
// ❌ Too strict for CI
|
|
706
|
-
assert.ok(duration < 50, `Response time should be under 50ms`);
|
|
707
|
-
assert.ok(variationRatio < 15, `Performance variation should be under 15x`);
|
|
708
|
-
|
|
709
|
-
// ✅ CI-friendly
|
|
710
|
-
assert.ok(duration < 500, `Response time should be under 500ms`);
|
|
711
|
-
assert.ok(variationRatio < 50, `Performance variation should be under 50x`);
|
|
712
|
-
```
|
|
713
|
-
|
|
714
|
-
**Remember**: The goal is reliable CI builds that catch real issues without flaky failures due to infrastructure timing differences.
|
|
715
|
-
|
|
716
|
-
#### **Comprehensive Testing Documentation**
|
|
717
|
-
|
|
718
|
-
For comprehensive MCP testing guidance, refer to the specialized AGENTS.md files in the testing directories:
|
|
719
|
-
|
|
720
|
-
##### **YAML-Based Declarative Testing**
|
|
721
|
-
The primary testing approach using human-readable YAML files with advanced pattern matching:
|
|
722
|
-
|
|
723
|
-
- **30+ Advanced Pattern Matching**: String patterns, numeric comparisons, date validation, array operations, field extraction, cross-field validation, and pattern negation
|
|
724
|
-
- **Declarative YAML Testing**: Human-readable test files with sophisticated validation patterns
|
|
725
|
-
- **Interactive Tool Testing**: Quick commands for testing tools interactively with the aegis CLI
|
|
726
|
-
- **Debugging Workflows**: Step-by-step approaches for troubleshooting test failures and server issues
|
|
727
|
-
- **Real-World Examples**: Complete test suites for filesystem servers, multi-tool servers, and API testing scenarios
|
|
728
|
-
- **Performance Testing**: Patterns for validating response times and system performance
|
|
729
|
-
- **Error Handling Validation**: Comprehensive approaches to testing error scenarios and edge cases
|
|
730
|
-
|
|
731
|
-
##### **Programmatic JavaScript/TypeScript Testing**
|
|
732
|
-
For complex testing scenarios requiring programmatic logic and integration with existing test suites:
|
|
733
|
-
|
|
734
|
-
- **JavaScript/TypeScript API**: Full programmatic access to MCP server testing capabilities
|
|
735
|
-
- **Advanced Workflows**: Multi-step testing, state management, and dynamic validation logic
|
|
736
|
-
- **Framework Integration**: Jest, Mocha, and Node.js test runner integration patterns
|
|
737
|
-
- **Performance Monitoring**: Built-in metrics collection and performance analysis
|
|
738
|
-
- **Buffer Management**: Critical guidance on preventing test interference with proper `clearStderr()` usage
|
|
739
|
-
- **Error Recovery Testing**: Comprehensive error handling and resilience validation
|
|
740
|
-
- **TypeScript Support**: Full type safety for enterprise testing environments
|
|
741
|
-
|
|
742
|
-
**Quick Interactive Testing Commands:**
|
|
743
|
-
```bash
|
|
744
|
-
# List all available tools
|
|
745
|
-
aegis query --config ./aegis.config.docs-only.json
|
|
746
|
-
|
|
747
|
-
# Test specific tool with arguments - Multiple formats supported:
|
|
748
|
-
|
|
749
|
-
# Pipe format (recommended for CLI)
|
|
750
|
-
aegis query read_file 'path:test.txt' --config ./aegis.config.docs-only.json
|
|
751
|
-
aegis query calculator 'operation:add|a:5|b:3' --config ./aegis.config.docs-only.json
|
|
752
|
-
|
|
753
|
-
# JSON format (complex structures)
|
|
754
|
-
aegis query complex_tool '{"config": {"host": "localhost"}, "data": [1,2,3]}' --config ./aegis.config.docs-only.json
|
|
755
|
-
|
|
756
|
-
# Method syntax with pipe format
|
|
757
|
-
aegis query --method tools/call --params 'name:read_file|arguments.path:test.txt' --config ./aegis.config.docs-only.json
|
|
758
|
-
|
|
759
|
-
# Debug with verbose output
|
|
760
|
-
aegis query read_file 'path:test.txt' --config ./aegis.config.docs-only.json --verbose
|
|
603
|
+
# Discovery (ALWAYS run before writing tests)
|
|
604
|
+
npx aegis query [tool_name] '[params]' --config ./aegis.config.docs-only.json
|
|
605
|
+
|
|
606
|
+
# Test execution
|
|
607
|
+
npm run test:mcp:yaml # YAML tests (docs-only)
|
|
608
|
+
npm run test:mcp:yaml:full # YAML tests (full mode)
|
|
609
|
+
npm run test:mcp:node # Programmatic tests
|
|
610
|
+
npm test # Full suite (Jest + MCP)
|
|
761
611
|
```
|
|
762
612
|
|
|
763
|
-
**
|
|
613
|
+
**Critical Rules**:
|
|
614
|
+
1. Always discover response formats with `aegis query` before writing tests
|
|
615
|
+
2. Use `client.clearAllBuffers()` in programmatic test `beforeEach()` hooks
|
|
616
|
+
3. Never use `Promise.all()` with MCP requests (causes buffer conflicts)
|
|
617
|
+
4. Use CI-friendly timeouts (500ms+) for performance assertions
|
|
764
618
|
|
|
765
619
|
### 🧱 Architecture Advantages (Consolidated)
|
|
766
620
|
Unified benefits of the directory structure, handler model, dependency injection, modular log system, and modular documentation system:
|