sfcc-dev-mcp 1.0.15 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +3 -1
- package/.github/ISSUE_TEMPLATE/documentation.yml +2 -2
- package/.github/ISSUE_TEMPLATE/question.yml +1 -1
- package/.github/PULL_REQUEST_TEMPLATE/documentation.md +1 -1
- package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +1 -1
- package/.github/agents/official-docs-researcher.agent.md +56 -0
- package/.github/instructions/mcp-node-tests.instructions.md +12 -916
- package/.github/instructions/mcp-yml-tests.instructions.md +14 -742
- package/.github/pull_request_template.md +1 -1
- package/.github/skills/agent-authoring/SKILL.md +66 -0
- package/.github/skills/mcp-log-debugging/SKILL.md +69 -0
- package/.github/skills/mcp-programmatic-testing/SKILL.md +142 -0
- package/.github/skills/mcp-yaml-testing/SKILL.md +136 -0
- package/.github/skills/salesforce-developer-site-scraper/SKILL.md +102 -0
- package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +205 -0
- package/.github/skills/salesforce-help-site-scraper/SKILL.md +84 -0
- package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +212 -0
- package/.github/skills/skill-authoring/SKILL.md +228 -0
- package/.github/skills/skill-authoring/references/PATTERNS.md +384 -0
- package/.github/workflows/ci.yml +3 -3
- package/.github/workflows/deploy-pages.yml +9 -19
- package/.github/workflows/publish.yml +5 -2
- package/.github/workflows/update-docs.yml +1 -1
- package/AGENTS.md +140 -286
- package/CONTRIBUTING.md +10 -22
- package/README.md +48 -16
- package/ai-instructions/{github-copilot/copilot-instructions.md → AGENTS.md} +99 -127
- package/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
- package/{dist/docs/best-practices/cartridge_creation.md → ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
- package/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
- package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
- package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
- package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
- package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
- package/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
- package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
- package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
- package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
- package/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
- package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
- package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
- package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
- package/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
- package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
- package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
- package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
- package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
- package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
- package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
- package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
- package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
- package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
- package/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
- package/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
- package/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
- package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
- package/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
- package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
- package/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
- package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
- package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
- package/{dist/docs/best-practices/performance.md → ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
- package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
- package/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
- package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
- package/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
- package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
- package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
- package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
- package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
- package/{dist/docs/best-practices/sfra_controllers.md → ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
- package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
- package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
- package/{dist/docs/best-practices/sfra_scss.md → ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
- package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
- package/dist/ai-instructions/AGENTS.md +628 -0
- package/dist/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
- package/{docs/best-practices/cartridge_creation.md → dist/ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
- package/dist/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
- package/dist/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
- package/dist/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
- package/dist/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
- package/dist/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
- package/dist/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
- package/dist/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
- package/dist/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
- package/dist/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
- package/dist/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
- package/dist/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
- package/dist/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
- package/dist/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
- package/dist/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
- package/dist/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
- package/dist/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
- package/dist/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
- package/dist/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
- package/dist/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
- package/dist/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
- package/{docs/best-practices/performance.md → dist/ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
- package/dist/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
- package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
- package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
- package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
- package/dist/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
- package/dist/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
- package/dist/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
- package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
- package/dist/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
- package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
- package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
- package/{docs/best-practices/sfra_controllers.md → dist/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
- package/dist/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
- package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
- package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
- package/dist/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
- package/{docs/best-practices/sfra_scss.md → dist/ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
- package/dist/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
- package/dist/clients/agent-instructions-client.d.ts +66 -0
- package/dist/clients/agent-instructions-client.d.ts.map +1 -0
- package/dist/clients/agent-instructions-client.js +277 -0
- package/dist/clients/agent-instructions-client.js.map +1 -0
- package/dist/clients/base/abstract-documentation-client.d.ts +146 -0
- package/dist/clients/base/abstract-documentation-client.d.ts.map +1 -0
- package/dist/clients/base/abstract-documentation-client.js +265 -0
- package/dist/clients/base/abstract-documentation-client.js.map +1 -0
- package/dist/clients/base/oauth-token.d.ts +18 -0
- package/dist/clients/base/oauth-token.d.ts.map +1 -1
- package/dist/clients/base/oauth-token.js +45 -2
- package/dist/clients/base/oauth-token.js.map +1 -1
- package/dist/clients/cartridge/cartridge-generation-client.d.ts +59 -0
- package/dist/clients/cartridge/cartridge-generation-client.d.ts.map +1 -0
- package/dist/clients/cartridge/cartridge-generation-client.js +224 -0
- package/dist/clients/cartridge/cartridge-generation-client.js.map +1 -0
- package/dist/clients/cartridge/cartridge-structure.d.ts +17 -0
- package/dist/clients/cartridge/cartridge-structure.d.ts.map +1 -0
- package/dist/clients/cartridge/cartridge-structure.js +33 -0
- package/dist/clients/cartridge/cartridge-structure.js.map +1 -0
- package/dist/clients/cartridge/cartridge-templates.d.ts +22 -0
- package/dist/clients/cartridge/cartridge-templates.d.ts.map +1 -0
- package/dist/clients/cartridge/cartridge-templates.js +225 -0
- package/dist/clients/cartridge/cartridge-templates.js.map +1 -0
- package/dist/clients/cartridge/index.d.ts +7 -0
- package/dist/clients/cartridge/index.d.ts.map +1 -0
- package/dist/clients/cartridge/index.js +7 -0
- package/dist/clients/cartridge/index.js.map +1 -0
- package/dist/clients/docs/documentation-scanner.d.ts +5 -2
- package/dist/clients/docs/documentation-scanner.d.ts.map +1 -1
- package/dist/clients/docs/documentation-scanner.js +38 -23
- package/dist/clients/docs/documentation-scanner.js.map +1 -1
- package/dist/clients/docs-client.d.ts +13 -4
- package/dist/clients/docs-client.d.ts.map +1 -1
- package/dist/clients/docs-client.js +44 -11
- package/dist/clients/docs-client.js.map +1 -1
- package/dist/clients/isml-client.d.ts +71 -0
- package/dist/clients/isml-client.d.ts.map +1 -0
- package/dist/clients/isml-client.js +252 -0
- package/dist/clients/isml-client.js.map +1 -0
- package/dist/clients/ocapi/code-versions-client.d.ts.map +1 -1
- package/dist/clients/ocapi/code-versions-client.js +6 -1
- package/dist/clients/ocapi/code-versions-client.js.map +1 -1
- package/dist/clients/ocapi-client.d.ts +9 -101
- package/dist/clients/ocapi-client.d.ts.map +1 -1
- package/dist/clients/ocapi-client.js +11 -93
- package/dist/clients/ocapi-client.js.map +1 -1
- package/dist/clients/script-debugger/index.d.ts +5 -0
- package/dist/clients/script-debugger/index.d.ts.map +1 -0
- package/dist/clients/script-debugger/index.js +5 -0
- package/dist/clients/script-debugger/index.js.map +1 -0
- package/dist/clients/script-debugger/script-debugger-client.d.ts +147 -0
- package/dist/clients/script-debugger/script-debugger-client.d.ts.map +1 -0
- package/dist/clients/script-debugger/script-debugger-client.js +591 -0
- package/dist/clients/script-debugger/script-debugger-client.js.map +1 -0
- package/dist/clients/sfra-client.d.ts +13 -62
- package/dist/clients/sfra-client.d.ts.map +1 -1
- package/dist/clients/sfra-client.js +105 -326
- package/dist/clients/sfra-client.js.map +1 -1
- package/dist/config/configuration-factory.d.ts +1 -1
- package/dist/config/configuration-factory.d.ts.map +1 -1
- package/dist/config/configuration-factory.js +5 -1
- package/dist/config/configuration-factory.js.map +1 -1
- package/dist/config/dw-json-loader.d.ts +7 -0
- package/dist/config/dw-json-loader.d.ts.map +1 -1
- package/dist/config/dw-json-loader.js +92 -15
- package/dist/config/dw-json-loader.js.map +1 -1
- package/dist/config/workspace-roots.d.ts +143 -0
- package/dist/config/workspace-roots.d.ts.map +1 -0
- package/dist/config/workspace-roots.js +448 -0
- package/dist/config/workspace-roots.js.map +1 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +3 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/core/handlers/abstract-client-handler.d.ts +52 -0
- package/dist/core/handlers/abstract-client-handler.d.ts.map +1 -0
- package/dist/core/handlers/abstract-client-handler.js +51 -0
- package/dist/core/handlers/abstract-client-handler.js.map +1 -0
- package/dist/core/handlers/agent-instructions-handler.d.ts +17 -0
- package/dist/core/handlers/agent-instructions-handler.d.ts.map +1 -0
- package/dist/core/handlers/agent-instructions-handler.js +38 -0
- package/dist/core/handlers/agent-instructions-handler.js.map +1 -0
- package/dist/core/handlers/base-handler.d.ts +3 -68
- package/dist/core/handlers/base-handler.d.ts.map +1 -1
- package/dist/core/handlers/base-handler.js +11 -84
- package/dist/core/handlers/base-handler.js.map +1 -1
- package/dist/core/handlers/cartridge-handler.d.ts +10 -11
- package/dist/core/handlers/cartridge-handler.d.ts.map +1 -1
- package/dist/core/handlers/cartridge-handler.js +10 -28
- package/dist/core/handlers/cartridge-handler.js.map +1 -1
- package/dist/core/handlers/client-factory.d.ts +12 -2
- package/dist/core/handlers/client-factory.d.ts.map +1 -1
- package/dist/core/handlers/client-factory.js +28 -1
- package/dist/core/handlers/client-factory.js.map +1 -1
- package/dist/core/handlers/code-version-handler.d.ts +11 -11
- package/dist/core/handlers/code-version-handler.d.ts.map +1 -1
- package/dist/core/handlers/code-version-handler.js +13 -27
- package/dist/core/handlers/code-version-handler.js.map +1 -1
- package/dist/core/handlers/docs-handler.d.ts +6 -12
- package/dist/core/handlers/docs-handler.d.ts.map +1 -1
- package/dist/core/handlers/docs-handler.js +11 -36
- package/dist/core/handlers/docs-handler.js.map +1 -1
- package/dist/core/handlers/isml-handler.d.ts +11 -0
- package/dist/core/handlers/isml-handler.d.ts.map +1 -0
- package/dist/core/handlers/isml-handler.js +18 -0
- package/dist/core/handlers/isml-handler.js.map +1 -0
- package/dist/core/handlers/job-log-handler.d.ts +8 -7
- package/dist/core/handlers/job-log-handler.d.ts.map +1 -1
- package/dist/core/handlers/job-log-handler.js +14 -5
- package/dist/core/handlers/job-log-handler.js.map +1 -1
- package/dist/core/handlers/log-handler.d.ts +8 -7
- package/dist/core/handlers/log-handler.d.ts.map +1 -1
- package/dist/core/handlers/log-handler.js +14 -5
- package/dist/core/handlers/log-handler.js.map +1 -1
- package/dist/core/handlers/script-debugger-handler.d.ts +18 -0
- package/dist/core/handlers/script-debugger-handler.d.ts.map +1 -0
- package/dist/core/handlers/script-debugger-handler.js +31 -0
- package/dist/core/handlers/script-debugger-handler.js.map +1 -0
- package/dist/core/handlers/sfra-handler.d.ts +6 -12
- package/dist/core/handlers/sfra-handler.d.ts.map +1 -1
- package/dist/core/handlers/sfra-handler.js +11 -36
- package/dist/core/handlers/sfra-handler.js.map +1 -1
- package/dist/core/handlers/simple-client-handler.d.ts +41 -0
- package/dist/core/handlers/simple-client-handler.d.ts.map +1 -0
- package/dist/core/handlers/simple-client-handler.js +49 -0
- package/dist/core/handlers/simple-client-handler.js.map +1 -0
- package/dist/core/handlers/system-object-handler.d.ts +11 -11
- package/dist/core/handlers/system-object-handler.d.ts.map +1 -1
- package/dist/core/handlers/system-object-handler.js +13 -27
- package/dist/core/handlers/system-object-handler.js.map +1 -1
- package/dist/core/handlers/validation-helpers.d.ts +22 -24
- package/dist/core/handlers/validation-helpers.d.ts.map +1 -1
- package/dist/core/handlers/validation-helpers.js +89 -39
- package/dist/core/handlers/validation-helpers.js.map +1 -1
- package/dist/core/instruction-advisor.d.ts +28 -0
- package/dist/core/instruction-advisor.d.ts.map +1 -0
- package/dist/core/instruction-advisor.js +114 -0
- package/dist/core/instruction-advisor.js.map +1 -0
- package/dist/core/server.d.ts +25 -0
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +151 -11
- package/dist/core/server.js.map +1 -1
- package/dist/core/tool-definitions.d.ts +6 -854
- package/dist/core/tool-definitions.d.ts.map +1 -1
- package/dist/core/tool-definitions.js +8 -1064
- package/dist/core/tool-definitions.js.map +1 -1
- package/dist/core/tool-schemas/agent-instruction-tools.d.ts +77 -0
- package/dist/core/tool-schemas/agent-instruction-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/agent-instruction-tools.js +72 -0
- package/dist/core/tool-schemas/agent-instruction-tools.js.map +1 -0
- package/dist/core/tool-schemas/cartridge-tools.d.ts +27 -0
- package/dist/core/tool-schemas/cartridge-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/cartridge-tools.js +29 -0
- package/dist/core/tool-schemas/cartridge-tools.js.map +1 -0
- package/dist/core/tool-schemas/code-version-tools.d.ts +28 -0
- package/dist/core/tool-schemas/code-version-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/code-version-tools.js +28 -0
- package/dist/core/tool-schemas/code-version-tools.js.map +1 -0
- package/dist/core/tool-schemas/documentation-tools.d.ts +139 -0
- package/dist/core/tool-schemas/documentation-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/documentation-tools.js +104 -0
- package/dist/core/tool-schemas/documentation-tools.js.map +1 -0
- package/dist/core/tool-schemas/index.d.ts +17 -0
- package/dist/core/tool-schemas/index.d.ts.map +1 -0
- package/dist/core/tool-schemas/index.js +19 -0
- package/dist/core/tool-schemas/index.js.map +1 -0
- package/dist/core/tool-schemas/isml-tools.d.ts +98 -0
- package/dist/core/tool-schemas/isml-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/isml-tools.js +89 -0
- package/dist/core/tool-schemas/isml-tools.js.map +1 -0
- package/dist/core/tool-schemas/log-tools.d.ts +221 -0
- package/dist/core/tool-schemas/log-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/log-tools.js +180 -0
- package/dist/core/tool-schemas/log-tools.js.map +1 -0
- package/dist/core/tool-schemas/script-debugger-tools.d.ts +44 -0
- package/dist/core/tool-schemas/script-debugger-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/script-debugger-tools.js +83 -0
- package/dist/core/tool-schemas/script-debugger-tools.js.map +1 -0
- package/dist/core/tool-schemas/sfra-tools.d.ts +63 -0
- package/dist/core/tool-schemas/sfra-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/sfra-tools.js +65 -0
- package/dist/core/tool-schemas/sfra-tools.js.map +1 -0
- package/dist/core/tool-schemas/shared-schemas.d.ts +350 -0
- package/dist/core/tool-schemas/shared-schemas.d.ts.map +1 -0
- package/dist/core/tool-schemas/shared-schemas.js +153 -0
- package/dist/core/tool-schemas/shared-schemas.js.map +1 -0
- package/dist/core/tool-schemas/system-object-tools.d.ts +511 -0
- package/dist/core/tool-schemas/system-object-tools.d.ts.map +1 -0
- package/dist/core/tool-schemas/system-object-tools.js +126 -0
- package/dist/core/tool-schemas/system-object-tools.js.map +1 -0
- package/dist/docs/dw_net/HTTPClient.md +46 -2
- package/dist/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
- package/dist/docs/dw_order/Basket.md +7 -7
- package/dist/docs/dw_order/BasketMgr.md +22 -6
- package/dist/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
- package/dist/docs/dw_svc/ServiceCallback.md +2 -2
- package/dist/docs/isml/isactivedatacontext.md +382 -0
- package/dist/docs/isml/isactivedatahead.md +566 -0
- package/dist/docs/isml/isanalyticsoff.md +537 -0
- package/dist/docs/isml/isapplepay.md +667 -0
- package/dist/docs/isml/isbreak.md +687 -0
- package/dist/docs/isml/isbuynow.md +682 -0
- package/dist/docs/isml/iscache.md +802 -0
- package/dist/docs/isml/iscomment.md +794 -0
- package/dist/docs/isml/iscomponent.md +797 -0
- package/dist/docs/isml/iscontent.md +594 -0
- package/dist/docs/isml/iscontinue.md +563 -0
- package/dist/docs/isml/iscookie.md +798 -0
- package/dist/docs/isml/isdecorate.md +818 -0
- package/dist/docs/isml/isif.md +737 -0
- package/dist/docs/isml/isinclude.md +874 -0
- package/dist/docs/isml/isloop.md +377 -0
- package/dist/docs/isml/ismodule.md +844 -0
- package/dist/docs/isml/isnext.md +672 -0
- package/dist/docs/isml/isobject.md +760 -0
- package/dist/docs/isml/ispayment.md +577 -0
- package/dist/docs/isml/ispaymentmessages.md +664 -0
- package/dist/docs/isml/isprint.md +875 -0
- package/dist/docs/isml/isredirect.md +716 -0
- package/dist/docs/isml/isremove.md +725 -0
- package/dist/docs/isml/isreplace.md +783 -0
- package/dist/docs/isml/isscript.md +859 -0
- package/dist/docs/isml/isselect.md +908 -0
- package/dist/docs/isml/isset.md +585 -0
- package/dist/docs/isml/isslot.md +824 -0
- package/dist/docs/isml/isstatus.md +711 -0
- package/dist/main.d.ts +16 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +60 -28
- package/dist/main.js.map +1 -1
- package/dist/services/index.d.ts +4 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/tool-configs/agent-instructions-tool-config.d.ts +6 -0
- package/dist/tool-configs/agent-instructions-tool-config.d.ts.map +1 -0
- package/dist/tool-configs/agent-instructions-tool-config.js +74 -0
- package/dist/tool-configs/agent-instructions-tool-config.js.map +1 -0
- package/dist/tool-configs/code-version-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/code-version-tool-config.js +0 -5
- package/dist/tool-configs/code-version-tool-config.js.map +1 -1
- package/dist/tool-configs/docs-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/docs-tool-config.js +0 -7
- package/dist/tool-configs/docs-tool-config.js.map +1 -1
- package/dist/tool-configs/isml-tool-config.d.ts +11 -0
- package/dist/tool-configs/isml-tool-config.d.ts.map +1 -0
- package/dist/tool-configs/isml-tool-config.js +77 -0
- package/dist/tool-configs/isml-tool-config.js.map +1 -0
- package/dist/tool-configs/job-log-tool-config.d.ts +1 -2
- package/dist/tool-configs/job-log-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/job-log-tool-config.js +11 -15
- package/dist/tool-configs/job-log-tool-config.js.map +1 -1
- package/dist/tool-configs/log-tool-config.d.ts +1 -2
- package/dist/tool-configs/log-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/log-tool-config.js +35 -51
- package/dist/tool-configs/log-tool-config.js.map +1 -1
- package/dist/tool-configs/script-debugger-tool-config.d.ts +11 -0
- package/dist/tool-configs/script-debugger-tool-config.d.ts.map +1 -0
- package/dist/tool-configs/script-debugger-tool-config.js +35 -0
- package/dist/tool-configs/script-debugger-tool-config.js.map +1 -0
- package/dist/tool-configs/sfra-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/sfra-tool-config.js +0 -11
- package/dist/tool-configs/sfra-tool-config.js.map +1 -1
- package/dist/tool-configs/system-object-tool-config.d.ts.map +1 -1
- package/dist/tool-configs/system-object-tool-config.js +0 -5
- package/dist/tool-configs/system-object-tool-config.js.map +1 -1
- package/dist/types/types.d.ts +2 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/cache.d.ts +12 -10
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +47 -47
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/category-utils.d.ts +31 -0
- package/dist/utils/category-utils.d.ts.map +1 -0
- package/dist/utils/category-utils.js +45 -0
- package/dist/utils/category-utils.js.map +1 -0
- package/dist/utils/log-tool-constants.d.ts +16 -13
- package/dist/utils/log-tool-constants.d.ts.map +1 -1
- package/dist/utils/log-tool-constants.js +10 -11
- package/dist/utils/log-tool-constants.js.map +1 -1
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +35 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/markdown-utils.d.ts +60 -0
- package/dist/utils/markdown-utils.d.ts.map +1 -0
- package/dist/utils/markdown-utils.js +206 -0
- package/dist/utils/markdown-utils.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +12 -4
- package/dist/utils/path-resolver.d.ts.map +1 -1
- package/dist/utils/path-resolver.js +22 -8
- package/dist/utils/path-resolver.js.map +1 -1
- package/dist/utils/path-validation.d.ts +40 -0
- package/dist/utils/path-validation.d.ts.map +1 -0
- package/dist/utils/path-validation.js +84 -0
- package/dist/utils/path-validation.js.map +1 -0
- package/docs/dw_net/HTTPClient.md +46 -2
- package/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
- package/docs/dw_order/Basket.md +7 -7
- package/docs/dw_order/BasketMgr.md +22 -6
- package/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
- package/docs/dw_svc/ServiceCallback.md +2 -2
- package/docs/isml/isactivedatacontext.md +382 -0
- package/docs/isml/isactivedatahead.md +566 -0
- package/docs/isml/isanalyticsoff.md +537 -0
- package/docs/isml/isapplepay.md +667 -0
- package/docs/isml/isbreak.md +687 -0
- package/docs/isml/isbuynow.md +682 -0
- package/docs/isml/iscache.md +802 -0
- package/docs/isml/iscomment.md +794 -0
- package/docs/isml/iscomponent.md +797 -0
- package/docs/isml/iscontent.md +594 -0
- package/docs/isml/iscontinue.md +563 -0
- package/docs/isml/iscookie.md +798 -0
- package/docs/isml/isdecorate.md +818 -0
- package/docs/isml/isif.md +737 -0
- package/docs/isml/isinclude.md +874 -0
- package/docs/isml/isloop.md +377 -0
- package/docs/isml/ismodule.md +844 -0
- package/docs/isml/isnext.md +672 -0
- package/docs/isml/isobject.md +760 -0
- package/docs/isml/ispayment.md +577 -0
- package/docs/isml/ispaymentmessages.md +664 -0
- package/docs/isml/isprint.md +875 -0
- package/docs/isml/isredirect.md +716 -0
- package/docs/isml/isremove.md +725 -0
- package/docs/isml/isreplace.md +783 -0
- package/docs/isml/isscript.md +859 -0
- package/docs/isml/isselect.md +908 -0
- package/docs/isml/isset.md +585 -0
- package/docs/isml/isslot.md +824 -0
- package/docs/isml/isstatus.md +711 -0
- package/docs-site-v2/.vitepress/config.mts +190 -0
- package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +96 -0
- package/docs-site-v2/.vitepress/theme/components/Callout.vue +10 -0
- package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +14 -0
- package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +82 -0
- package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +552 -0
- package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +87 -0
- package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +70 -0
- package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +14 -0
- package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +20 -0
- package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +20 -0
- package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +48 -0
- package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +85 -0
- package/docs-site-v2/.vitepress/theme/custom.css +1373 -0
- package/docs-site-v2/.vitepress/theme/index.ts +39 -0
- package/docs-site-v2/data/skills.ts +147 -0
- package/docs-site-v2/data/tools.ts +490 -0
- package/docs-site-v2/development/index.md +151 -0
- package/docs-site-v2/examples/index.md +333 -0
- package/docs-site-v2/features/index.md +144 -0
- package/docs-site-v2/guide/ai-interfaces.md +58 -0
- package/docs-site-v2/guide/configuration.md +208 -0
- package/docs-site-v2/guide/index.md +50 -0
- package/docs-site-v2/index.md +32 -0
- package/docs-site-v2/package-lock.json +2511 -0
- package/docs-site-v2/package.json +15 -0
- package/docs-site-v2/public/android-chrome-192x192.png +0 -0
- package/docs-site-v2/public/android-chrome-512x512.png +0 -0
- package/docs-site-v2/public/apple-touch-icon.png +0 -0
- package/docs-site-v2/public/favicon-16x16.png +0 -0
- package/docs-site-v2/public/favicon-32x32.png +0 -0
- package/docs-site-v2/public/favicon.ico +0 -0
- package/docs-site-v2/public/index.css +4174 -0
- package/docs-site-v2/public/llms.txt +44 -0
- package/docs-site-v2/public/logo-dark.svg +8 -0
- package/docs-site-v2/public/logo.svg +8 -0
- package/{docs-site → docs-site-v2}/public/robots.txt +1 -6
- package/{docs-site → docs-site-v2}/public/site.webmanifest +1 -1
- package/{docs-site → docs-site-v2}/public/sitemap.xml +33 -12
- package/docs-site-v2/script-debugger/index.md +105 -0
- package/docs-site-v2/scripts/generate-llms.js +71 -0
- package/docs-site-v2/scripts/generate-sitemap.js +97 -0
- package/docs-site-v2/security/index.md +115 -0
- package/docs-site-v2/skills/index.md +40 -0
- package/docs-site-v2/tools/index.md +36 -0
- package/docs-site-v2/troubleshooting/index.md +204 -0
- package/eslint.config.js +3 -1
- package/memories/repo/docs-site-v2-build.json +11 -0
- package/package.json +18 -14
- package/scripts/validate-server-json.js +68 -0
- package/server.json +4 -6
- package/src/clients/agent-instructions-client.ts +370 -0
- package/src/clients/base/abstract-documentation-client.ts +405 -0
- package/src/clients/base/oauth-token.ts +52 -2
- package/src/clients/cartridge/cartridge-generation-client.ts +302 -0
- package/src/clients/cartridge/cartridge-structure.ts +37 -0
- package/src/clients/cartridge/cartridge-templates.ts +246 -0
- package/src/clients/cartridge/index.ts +6 -0
- package/src/clients/docs/documentation-scanner.ts +44 -28
- package/src/clients/docs-client.ts +54 -14
- package/src/clients/isml-client.ts +353 -0
- package/src/clients/ocapi/code-versions-client.ts +7 -1
- package/src/clients/ocapi-client.ts +11 -166
- package/src/clients/script-debugger/index.ts +5 -0
- package/src/clients/script-debugger/script-debugger-client.ts +754 -0
- package/src/clients/sfra-client.ts +134 -397
- package/src/config/configuration-factory.ts +6 -1
- package/src/config/dw-json-loader.ts +96 -15
- package/src/config/workspace-roots.ts +540 -0
- package/src/constants/index.ts +1 -0
- package/src/core/handlers/abstract-client-handler.ts +85 -0
- package/src/core/handlers/agent-instructions-handler.ts +48 -0
- package/src/core/handlers/base-handler.ts +17 -127
- package/src/core/handlers/cartridge-handler.ts +13 -33
- package/src/core/handlers/client-factory.ts +32 -2
- package/src/core/handlers/code-version-handler.ts +17 -32
- package/src/core/handlers/docs-handler.ts +12 -44
- package/src/core/handlers/isml-handler.ts +19 -0
- package/src/core/handlers/job-log-handler.ts +19 -8
- package/src/core/handlers/log-handler.ts +19 -8
- package/src/core/handlers/script-debugger-handler.ts +46 -0
- package/src/core/handlers/sfra-handler.ts +12 -44
- package/src/core/handlers/simple-client-handler.ts +78 -0
- package/src/core/handlers/system-object-handler.ts +17 -32
- package/src/core/handlers/validation-helpers.ts +87 -47
- package/src/core/instruction-advisor.ts +122 -0
- package/src/core/server.ts +178 -13
- package/src/core/tool-definitions.ts +25 -1071
- package/src/core/tool-schemas/agent-instruction-tools.ts +72 -0
- package/src/core/tool-schemas/cartridge-tools.ts +29 -0
- package/src/core/tool-schemas/code-version-tools.ts +28 -0
- package/src/core/tool-schemas/documentation-tools.ts +104 -0
- package/src/core/tool-schemas/index.ts +27 -0
- package/src/core/tool-schemas/isml-tools.ts +89 -0
- package/src/core/tool-schemas/log-tools.ts +196 -0
- package/src/core/tool-schemas/script-debugger-tools.ts +83 -0
- package/src/core/tool-schemas/sfra-tools.ts +65 -0
- package/src/core/tool-schemas/shared-schemas.ts +158 -0
- package/src/core/tool-schemas/system-object-tools.ts +127 -0
- package/src/main.ts +63 -30
- package/src/services/index.ts +4 -10
- package/src/tool-configs/agent-instructions-tool-config.ts +83 -0
- package/src/tool-configs/cartridge-tool-config.ts +1 -1
- package/src/tool-configs/code-version-tool-config.ts +0 -5
- package/src/tool-configs/docs-tool-config.ts +0 -7
- package/src/tool-configs/isml-tool-config.ts +87 -0
- package/src/tool-configs/job-log-tool-config.ts +18 -17
- package/src/tool-configs/log-tool-config.ts +49 -64
- package/src/tool-configs/script-debugger-tool-config.ts +69 -0
- package/src/tool-configs/sfra-tool-config.ts +0 -11
- package/src/tool-configs/system-object-tool-config.ts +0 -5
- package/src/types/types.ts +2 -0
- package/src/utils/cache.ts +49 -54
- package/src/utils/category-utils.ts +70 -0
- package/src/utils/log-tool-constants.ts +25 -17
- package/src/utils/logger.ts +38 -1
- package/src/utils/markdown-utils.ts +280 -0
- package/src/utils/path-resolver.ts +25 -9
- package/src/utils/path-validation.ts +113 -0
- package/tests/base-handler.test.ts +1 -1
- package/tests/cache.test.ts +2 -2
- package/tests/cartridge-handler.test.ts +4 -4
- package/tests/client-factory.test.ts +1 -1
- package/tests/code-version-handler.test.ts +3 -3
- package/tests/docs-handler.test.ts +2 -2
- package/tests/documentation-scanner.test.ts +4 -4
- package/tests/isml-client.test.ts +463 -0
- package/tests/isml-handler.test.ts +375 -0
- package/tests/job-log-handler.test.ts +1 -1
- package/tests/log-handler.test.ts +8 -8
- package/tests/log-validation.test.ts +149 -0
- package/tests/mcp/README.md +22 -18
- package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +30 -12
- package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +387 -0
- package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +14 -8
- package/tests/mcp/node/get-isml-categories.programmatic.test.js +278 -0
- package/tests/mcp/node/get-isml-element.programmatic.test.js +278 -0
- package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +363 -0
- package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +24 -24
- package/tests/mcp/node/get-sfra-document.programmatic.test.js +4 -2
- package/tests/mcp/node/list-isml-elements.programmatic.test.js +311 -0
- package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +2 -33
- package/tests/mcp/node/search-isml-elements.programmatic.test.js +325 -0
- package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +5 -9
- package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +7 -9
- package/tests/mcp/node/tools.docs-only.programmatic.test.js +42 -65
- package/tests/mcp/node/tools.full-mode.programmatic.test.js +7 -8
- package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +2 -2
- package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +281 -0
- package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +330 -0
- package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +294 -0
- package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +334 -0
- package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +2 -2
- package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +13 -13
- package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +13 -13
- package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +1 -16
- package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +212 -0
- package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +312 -0
- package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +1 -1
- package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +1 -1
- package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +1 -1
- package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +3 -57
- package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +3 -3
- package/tests/oauth-token.test.ts +107 -12
- package/tests/ocapi-client.test.ts +53 -106
- package/tests/script-debugger-client.test.ts +430 -0
- package/tests/servers/sfcc-mock-server/src/app.js +15 -0
- package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +258 -0
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +396 -0
- package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +5 -0
- package/tests/servers/sfcc-mock-server/src/routes/storefront.js +86 -0
- package/tests/servers/sfcc-mock-server/src/routes/webdav.js +6 -4
- package/tests/validation-helpers.test.ts +0 -31
- package/tests/workspace-roots.test.ts +227 -0
- package/ai-instructions/claude-desktop/claude_custom_instructions.md +0 -321
- package/ai-instructions/cursor/.cursor/rules/debugging-workflows.mdc +0 -171
- package/ai-instructions/cursor/.cursor/rules/hooks-development.mdc +0 -168
- package/ai-instructions/cursor/.cursor/rules/isml-templates.mdc +0 -209
- package/ai-instructions/cursor/.cursor/rules/job-framework.mdc +0 -379
- package/ai-instructions/cursor/.cursor/rules/performance-optimization.mdc +0 -215
- package/ai-instructions/cursor/.cursor/rules/scapi-endpoints.mdc +0 -98
- package/ai-instructions/cursor/.cursor/rules/security-patterns.mdc +0 -375
- package/ai-instructions/cursor/.cursor/rules/sfcc-development.mdc +0 -144
- package/ai-instructions/cursor/.cursor/rules/sfra-controllers.mdc +0 -376
- package/ai-instructions/cursor/.cursor/rules/sfra-models.mdc +0 -412
- package/ai-instructions/cursor/.cursor/rules/system-objects.mdc +0 -383
- package/ai-instructions/cursor/.cursor/rules/testing-patterns.mdc +0 -418
- package/dist/clients/best-practices-client.d.ts +0 -57
- package/dist/clients/best-practices-client.d.ts.map +0 -1
- package/dist/clients/best-practices-client.js +0 -288
- package/dist/clients/best-practices-client.js.map +0 -1
- package/dist/clients/cartridge-generation-client.d.ts +0 -57
- package/dist/clients/cartridge-generation-client.d.ts.map +0 -1
- package/dist/clients/cartridge-generation-client.js +0 -384
- package/dist/clients/cartridge-generation-client.js.map +0 -1
- package/dist/clients/logs/index.d.ts +0 -13
- package/dist/clients/logs/index.d.ts.map +0 -1
- package/dist/clients/logs/index.js +0 -15
- package/dist/clients/logs/index.js.map +0 -1
- package/dist/clients/logs/log-analyzer.d.ts +0 -55
- package/dist/clients/logs/log-analyzer.d.ts.map +0 -1
- package/dist/clients/logs/log-analyzer.js +0 -228
- package/dist/clients/logs/log-analyzer.js.map +0 -1
- package/dist/clients/logs/log-client.d.ts +0 -87
- package/dist/clients/logs/log-client.d.ts.map +0 -1
- package/dist/clients/logs/log-client.js +0 -418
- package/dist/clients/logs/log-client.js.map +0 -1
- package/dist/clients/logs/log-constants.d.ts +0 -37
- package/dist/clients/logs/log-constants.d.ts.map +0 -1
- package/dist/clients/logs/log-constants.js +0 -37
- package/dist/clients/logs/log-constants.js.map +0 -1
- package/dist/clients/logs/log-file-discovery.d.ts +0 -62
- package/dist/clients/logs/log-file-discovery.d.ts.map +0 -1
- package/dist/clients/logs/log-file-discovery.js +0 -238
- package/dist/clients/logs/log-file-discovery.js.map +0 -1
- package/dist/clients/logs/log-file-reader.d.ts +0 -53
- package/dist/clients/logs/log-file-reader.d.ts.map +0 -1
- package/dist/clients/logs/log-file-reader.js +0 -194
- package/dist/clients/logs/log-file-reader.js.map +0 -1
- package/dist/clients/logs/log-formatter.d.ts +0 -90
- package/dist/clients/logs/log-formatter.d.ts.map +0 -1
- package/dist/clients/logs/log-formatter.js +0 -189
- package/dist/clients/logs/log-formatter.js.map +0 -1
- package/dist/clients/logs/log-processor.d.ts +0 -91
- package/dist/clients/logs/log-processor.d.ts.map +0 -1
- package/dist/clients/logs/log-processor.js +0 -328
- package/dist/clients/logs/log-processor.js.map +0 -1
- package/dist/clients/logs/log-types.d.ts +0 -69
- package/dist/clients/logs/log-types.d.ts.map +0 -1
- package/dist/clients/logs/log-types.js +0 -5
- package/dist/clients/logs/log-types.js.map +0 -1
- package/dist/clients/logs/webdav-client-manager.d.ts +0 -28
- package/dist/clients/logs/webdav-client-manager.d.ts.map +0 -1
- package/dist/clients/logs/webdav-client-manager.js +0 -77
- package/dist/clients/logs/webdav-client-manager.js.map +0 -1
- package/dist/core/handlers/abstract-log-tool-handler.d.ts +0 -35
- package/dist/core/handlers/abstract-log-tool-handler.d.ts.map +0 -1
- package/dist/core/handlers/abstract-log-tool-handler.js +0 -46
- package/dist/core/handlers/abstract-log-tool-handler.js.map +0 -1
- package/dist/core/handlers/best-practices-handler.d.ts +0 -17
- package/dist/core/handlers/best-practices-handler.d.ts.map +0 -1
- package/dist/core/handlers/best-practices-handler.js +0 -43
- package/dist/core/handlers/best-practices-handler.js.map +0 -1
- package/dist/core/handlers/job-log-tool-config.d.ts +0 -8
- package/dist/core/handlers/job-log-tool-config.d.ts.map +0 -1
- package/dist/core/handlers/job-log-tool-config.js +0 -76
- package/dist/core/handlers/job-log-tool-config.js.map +0 -1
- package/dist/core/handlers/log-tool-config.d.ts +0 -8
- package/dist/core/handlers/log-tool-config.d.ts.map +0 -1
- package/dist/core/handlers/log-tool-config.js +0 -73
- package/dist/core/handlers/log-tool-config.js.map +0 -1
- package/dist/docs/best-practices/isml_templates.md +0 -1933
- package/dist/docs/best-practices/job_framework.md +0 -1173
- package/dist/docs/best-practices/scapi_custom_endpoint.md +0 -963
- package/dist/docs/best-practices/sfra_client_side_js.md +0 -736
- package/dist/docs/best-practices/sfra_models.md +0 -1142
- package/dist/tool-configs/best-practices-tool-config.d.ts +0 -11
- package/dist/tool-configs/best-practices-tool-config.d.ts.map +0 -1
- package/dist/tool-configs/best-practices-tool-config.js +0 -59
- package/dist/tool-configs/best-practices-tool-config.js.map +0 -1
- package/dist/utils/job-log-tool-config.d.ts +0 -8
- package/dist/utils/job-log-tool-config.d.ts.map +0 -1
- package/dist/utils/job-log-tool-config.js +0 -76
- package/dist/utils/job-log-tool-config.js.map +0 -1
- package/dist/utils/job-log-utils.d.ts +0 -34
- package/dist/utils/job-log-utils.d.ts.map +0 -1
- package/dist/utils/job-log-utils.js +0 -60
- package/dist/utils/job-log-utils.js.map +0 -1
- package/dist/utils/log-cache.d.ts +0 -53
- package/dist/utils/log-cache.d.ts.map +0 -1
- package/dist/utils/log-cache.js +0 -114
- package/dist/utils/log-cache.js.map +0 -1
- package/dist/utils/log-tool-config.d.ts +0 -8
- package/dist/utils/log-tool-config.d.ts.map +0 -1
- package/dist/utils/log-tool-config.js +0 -73
- package/dist/utils/log-tool-config.js.map +0 -1
- package/dist/utils/log-tool-utils.d.ts +0 -39
- package/dist/utils/log-tool-utils.d.ts.map +0 -1
- package/dist/utils/log-tool-utils.js +0 -94
- package/dist/utils/log-tool-utils.js.map +0 -1
- package/docs/best-practices/isml_templates.md +0 -1933
- package/docs/best-practices/job_framework.md +0 -1173
- package/docs/best-practices/scapi_custom_endpoint.md +0 -963
- package/docs/best-practices/sfra_client_side_js.md +0 -736
- package/docs/best-practices/sfra_models.md +0 -1142
- package/docs-site/App.tsx +0 -103
- package/docs-site/README.md +0 -113
- package/docs-site/components/Badge.tsx +0 -38
- package/docs-site/components/BreadcrumbSchema.tsx +0 -34
- package/docs-site/components/CodeBlock.tsx +0 -132
- package/docs-site/components/Collapsible.tsx +0 -40
- package/docs-site/components/ConfigBuilder.tsx +0 -118
- package/docs-site/components/ConfigHero.tsx +0 -19
- package/docs-site/components/ConfigModeTabs.tsx +0 -42
- package/docs-site/components/Layout.tsx +0 -174
- package/docs-site/components/LightCodeContainer.tsx +0 -44
- package/docs-site/components/NewcomerCTA.tsx +0 -57
- package/docs-site/components/NextStepsStrip.tsx +0 -23
- package/docs-site/components/OnThisPage.tsx +0 -91
- package/docs-site/components/SEO.tsx +0 -79
- package/docs-site/components/Search.tsx +0 -207
- package/docs-site/components/Sidebar.tsx +0 -96
- package/docs-site/components/StructuredData.tsx +0 -72
- package/docs-site/components/ToolCard.tsx +0 -84
- package/docs-site/components/ToolFilters.tsx +0 -39
- package/docs-site/components/Typography.tsx +0 -30
- package/docs-site/components/VersionBadge.tsx +0 -18
- package/docs-site/components/icons.tsx +0 -37
- package/docs-site/constants.tsx +0 -34
- package/docs-site/index.html +0 -62
- package/docs-site/main.tsx +0 -16
- package/docs-site/metadata.json +0 -5
- package/docs-site/package-lock.json +0 -3966
- package/docs-site/package.json +0 -35
- package/docs-site/pages/AIInterfacesPage.tsx +0 -610
- package/docs-site/pages/ConfigurationPage.tsx +0 -315
- package/docs-site/pages/DevelopmentPage.tsx +0 -607
- package/docs-site/pages/ExamplesPage.tsx +0 -558
- package/docs-site/pages/FeaturesPage.tsx +0 -353
- package/docs-site/pages/HomePage.tsx +0 -1046
- package/docs-site/pages/SecurityPage.tsx +0 -372
- package/docs-site/pages/ToolsPage.tsx +0 -205
- package/docs-site/pages/TroubleshootingPage.tsx +0 -590
- package/docs-site/postcss.config.js +0 -6
- package/docs-site/public/.well-known/security.txt +0 -6
- package/docs-site/public/android-chrome-192x192.png +0 -0
- package/docs-site/public/android-chrome-512x512.png +0 -0
- package/docs-site/public/apple-touch-icon.png +0 -0
- package/docs-site/public/favicon-16x16.png +0 -0
- package/docs-site/public/favicon-32x32.png +0 -0
- package/docs-site/public/favicon.ico +0 -0
- package/docs-site/public/llms.txt +0 -47
- package/docs-site/scripts/generate-search-index.js +0 -323
- package/docs-site/scripts/generate-sitemap.js +0 -156
- package/docs-site/scripts/search-dev.js +0 -112
- package/docs-site/src/styles/input.css +0 -248
- package/docs-site/src/styles/prism-theme.css +0 -124
- package/docs-site/tailwind.config.js +0 -70
- package/docs-site/tsconfig.json +0 -29
- package/docs-site/types.ts +0 -16
- package/docs-site/utils/search.ts +0 -132
- package/docs-site/utils/toolsData.ts +0 -116
- package/docs-site/vite.config.ts +0 -63
- package/src/clients/best-practices-client.ts +0 -332
- package/src/clients/cartridge-generation-client.ts +0 -507
- package/src/clients/logs/index.ts +0 -18
- package/src/clients/logs/log-analyzer.ts +0 -289
- package/src/clients/logs/log-client.ts +0 -540
- package/src/clients/logs/log-constants.ts +0 -53
- package/src/clients/logs/log-file-discovery.ts +0 -299
- package/src/clients/logs/log-file-reader.ts +0 -227
- package/src/clients/logs/log-formatter.ts +0 -258
- package/src/clients/logs/log-processor.ts +0 -402
- package/src/clients/logs/log-types.ts +0 -80
- package/src/clients/logs/webdav-client-manager.ts +0 -93
- package/src/core/handlers/abstract-log-tool-handler.ts +0 -64
- package/src/core/handlers/best-practices-handler.ts +0 -55
- package/src/core/handlers/job-log-tool-config.ts +0 -89
- package/src/core/handlers/log-tool-config.ts +0 -98
- package/src/tool-configs/best-practices-tool-config.ts +0 -68
- package/src/utils/job-log-tool-config.ts +0 -89
- package/src/utils/job-log-utils.ts +0 -78
- package/src/utils/log-cache.ts +0 -134
- package/src/utils/log-tool-config.ts +0 -98
- package/src/utils/log-tool-utils.ts +0 -122
- package/tests/best-practices-handler.test.ts +0 -236
- package/tests/job-log-utils.test.ts +0 -182
- package/tests/mcp/node/get-available-best-practice-guides.docs-only.programmatic.test.js +0 -516
- package/tests/mcp/node/get-best-practice-guide.docs-only.programmatic.test.js +0 -733
- package/tests/mcp/node/get-hook-reference.docs-only.programmatic.test.js +0 -185
- package/tests/mcp/node/search-best-practices.docs-only.programmatic.test.js +0 -836
- package/tests/mcp/yaml/get-available-best-practice-guides.docs-only.test.mcp.yml +0 -885
- package/tests/mcp/yaml/get-available-best-practice-guides.full-mode.test.mcp.yml +0 -885
- package/tests/mcp/yaml/get-best-practice-guide.docs-only.test.mcp.yml +0 -462
- package/tests/mcp/yaml/get-best-practice-guide.full-mode.test.mcp.yml +0 -462
- package/tests/mcp/yaml/get-hook-reference.docs-only.test.mcp.yml +0 -321
- package/tests/mcp/yaml/get-hook-reference.full-mode.test.mcp.yml +0 -321
- package/tests/mcp/yaml/search-best-practices.docs-only.test.mcp.yml +0 -655
- package/tests/mcp/yaml/search-best-practices.full-mode.test.mcp.yml +0 -655
- /package/{docs-site → docs-site-v2}/public/404.html +0 -0
- /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods-no-mcp.png +0 -0
- /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods.png +0 -0
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AbstractClientHandler } from './abstract-client-handler.js';
|
|
2
2
|
import { ClientFactory } from './client-factory.js';
|
|
3
3
|
import { SYSTEM_OBJECT_TOOL_CONFIG, SYSTEM_OBJECT_TOOL_NAMES_SET, } from '../../tool-configs/system-object-tool-config.js';
|
|
4
4
|
/**
|
|
5
|
-
* Handler for system object tools using config-driven dispatch
|
|
6
|
-
* Provides access to SFCC system object definitions, attributes, and site preferences
|
|
5
|
+
* Handler for system object tools using config-driven dispatch.
|
|
6
|
+
* Provides access to SFCC system object definitions, attributes, and site preferences.
|
|
7
7
|
*/
|
|
8
|
-
export class SystemObjectToolHandler extends
|
|
9
|
-
ocapiClient = null;
|
|
10
|
-
clientFactory;
|
|
8
|
+
export class SystemObjectToolHandler extends AbstractClientHandler {
|
|
11
9
|
constructor(context, subLoggerName) {
|
|
12
10
|
super(context, subLoggerName);
|
|
13
|
-
this.clientFactory = new ClientFactory(context, this.logger);
|
|
14
11
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (this.ocapiClient) {
|
|
18
|
-
this.logger.debug('OCAPI client initialized for system objects');
|
|
19
|
-
}
|
|
12
|
+
createClient() {
|
|
13
|
+
return this.clientFactory.createOCAPIClient();
|
|
20
14
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.logger.debug('OCAPI client disposed');
|
|
15
|
+
getClientContextKey() {
|
|
16
|
+
return 'ocapiClient';
|
|
24
17
|
}
|
|
25
|
-
|
|
26
|
-
return
|
|
18
|
+
getClientDisplayName() {
|
|
19
|
+
return 'OCAPI (System Objects)';
|
|
20
|
+
}
|
|
21
|
+
getClientRequiredError() {
|
|
22
|
+
return ClientFactory.getClientRequiredError('OCAPI');
|
|
27
23
|
}
|
|
28
24
|
getToolNameSet() {
|
|
29
25
|
return SYSTEM_OBJECT_TOOL_NAMES_SET;
|
|
@@ -31,15 +27,5 @@ export class SystemObjectToolHandler extends BaseToolHandler {
|
|
|
31
27
|
getToolConfig() {
|
|
32
28
|
return SYSTEM_OBJECT_TOOL_CONFIG;
|
|
33
29
|
}
|
|
34
|
-
async createExecutionContext() {
|
|
35
|
-
if (!this.ocapiClient) {
|
|
36
|
-
throw new Error(ClientFactory.getClientRequiredError('OCAPI'));
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
handlerContext: this.context,
|
|
40
|
-
logger: this.logger,
|
|
41
|
-
ocapiClient: this.ocapiClient,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
30
|
}
|
|
45
31
|
//# sourceMappingURL=system-object-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-object-handler.js","sourceRoot":"","sources":["../../../src/core/handlers/system-object-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-object-handler.js","sourceRoot":"","sources":["../../../src/core/handlers/system-object-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,yBAAyB,EAEzB,4BAA4B,GAC7B,MAAM,iDAAiD,CAAC;AAEzD;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,qBAAwD;IACnG,YAAY,OAAuB,EAAE,aAAqB;QACxD,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChC,CAAC;IAES,YAAY;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;IAChD,CAAC;IAES,mBAAmB;QAC3B,OAAO,aAAa,CAAC;IACvB,CAAC;IAES,oBAAoB;QAC5B,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAES,sBAAsB;QAC9B,OAAO,aAAa,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAES,cAAc;QACtB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAES,aAAa;QACrB,OAAO,yBAAyB,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -14,38 +14,36 @@ export declare class ValidationHelpers {
|
|
|
14
14
|
* Validate arguments against a set of rules
|
|
15
15
|
*/
|
|
16
16
|
static validateArguments(args: ToolArguments, rules: ValidationRule[], toolName: string): void;
|
|
17
|
-
/**
|
|
18
|
-
* Quick validation for required string fields
|
|
19
|
-
* @deprecated Use CommonValidations.requiredString() with validateArguments() instead
|
|
20
|
-
* @example
|
|
21
|
-
* // Old way
|
|
22
|
-
* ValidationHelpers.requireStrings(args, ['fieldName'], 'tool_name');
|
|
23
|
-
*
|
|
24
|
-
* // New way
|
|
25
|
-
* ValidationHelpers.validateArguments(args, CommonValidations.requiredString('fieldName'), 'tool_name');
|
|
26
|
-
*/
|
|
27
|
-
static requireStrings(args: ToolArguments, fields: string[], toolName: string): void;
|
|
28
|
-
/**
|
|
29
|
-
* Validate a single field with custom validator
|
|
30
|
-
*/
|
|
31
|
-
static validateField<T>(args: ToolArguments, field: string, validator: (value: T) => boolean, errorMessage: string, toolName: string): void;
|
|
32
17
|
private static validateType;
|
|
33
18
|
}
|
|
34
19
|
/**
|
|
35
20
|
* Common validation rules factory
|
|
36
21
|
*/
|
|
37
22
|
export declare const CommonValidations: {
|
|
38
|
-
/**
|
|
39
|
-
* Create a required string field validation
|
|
40
|
-
*/
|
|
23
|
+
/** Create a required string field validation */
|
|
41
24
|
requiredString: (field: string, customMessage?: string) => ValidationRule[];
|
|
42
|
-
/**
|
|
43
|
-
* Create a required field validation with custom validator
|
|
44
|
-
*/
|
|
25
|
+
/** Create a required field validation with custom validator */
|
|
45
26
|
requiredField: (field: string, type: ValidationRule["type"], validator: (value: any) => boolean, errorMessage: string) => ValidationRule[];
|
|
46
|
-
/**
|
|
47
|
-
* Create an optional field validation
|
|
48
|
-
*/
|
|
27
|
+
/** Create an optional field validation */
|
|
49
28
|
optionalField: (field: string, type: ValidationRule["type"], validator: (value: any) => boolean, errorMessage: string) => ValidationRule[];
|
|
50
29
|
};
|
|
30
|
+
/** Validate log level parameter */
|
|
31
|
+
export declare function validateLogLevel(level: string, toolName: string): void;
|
|
32
|
+
/** Validate limit parameter */
|
|
33
|
+
export declare function validateLimit(limit: number | undefined, toolName: string): void;
|
|
34
|
+
/** Validate maxBytes parameter */
|
|
35
|
+
export declare function validateMaxBytes(maxBytes: number | undefined, toolName: string): void;
|
|
36
|
+
/** Validate filename parameter */
|
|
37
|
+
export declare function validateFilename(filename: string, toolName: string): void;
|
|
38
|
+
/** Format log operation message */
|
|
39
|
+
export declare function formatLogMessage(operation: string, params?: {
|
|
40
|
+
level?: string;
|
|
41
|
+
limit?: number;
|
|
42
|
+
date?: string;
|
|
43
|
+
pattern?: string;
|
|
44
|
+
jobName?: string;
|
|
45
|
+
filename?: string;
|
|
46
|
+
maxBytes?: number;
|
|
47
|
+
tailOnly?: boolean;
|
|
48
|
+
}): string;
|
|
51
49
|
//# sourceMappingURL=validation-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/handlers/validation-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/handlers/validation-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGhE,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,MAAM,GACf,IAAI;IAyCP,OAAO,CAAC,MAAM,CAAC,YAAY;CAgB5B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,gDAAgD;4BACxB,MAAM,kBAAkB,MAAM,KAAG,cAAc,EAAE;IAQzE,+DAA+D;2BAEtD,MAAM,QACP,cAAc,CAAC,MAAM,CAAC,aACjB,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,gBACpB,MAAM,KACnB,cAAc,EAAE;IAQnB,0CAA0C;2BAEjC,MAAM,QACP,cAAc,CAAC,MAAM,CAAC,aACjB,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,gBACpB,MAAM,KACnB,cAAc,EAAE;CAOpB,CAAC;AAMF,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKtE;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQ/E;AAED,kCAAkC;AAClC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQrF;AAED,kCAAkC;AAClC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoBzE;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACf,GACL,MAAM,CAWR"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Validation helpers for handler arguments
|
|
3
3
|
*/
|
|
4
4
|
import { HandlerError } from './base-handler.js';
|
|
5
|
+
import { isValidLogLevel, LogLevelValues } from '../../utils/log-tool-constants.js';
|
|
5
6
|
export class ValidationHelpers {
|
|
6
7
|
/**
|
|
7
8
|
* Validate arguments against a set of rules
|
|
@@ -27,36 +28,6 @@ export class ValidationHelpers {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Quick validation for required string fields
|
|
32
|
-
* @deprecated Use CommonValidations.requiredString() with validateArguments() instead
|
|
33
|
-
* @example
|
|
34
|
-
* // Old way
|
|
35
|
-
* ValidationHelpers.requireStrings(args, ['fieldName'], 'tool_name');
|
|
36
|
-
*
|
|
37
|
-
* // New way
|
|
38
|
-
* ValidationHelpers.validateArguments(args, CommonValidations.requiredString('fieldName'), 'tool_name');
|
|
39
|
-
*/
|
|
40
|
-
static requireStrings(args, fields, toolName) {
|
|
41
|
-
const rules = fields.map(field => ({
|
|
42
|
-
field,
|
|
43
|
-
required: true,
|
|
44
|
-
type: 'string',
|
|
45
|
-
errorMessage: `${field} is required for ${toolName}`,
|
|
46
|
-
}));
|
|
47
|
-
this.validateArguments(args, rules, toolName);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Validate a single field with custom validator
|
|
51
|
-
*/
|
|
52
|
-
static validateField(args, field, validator, errorMessage, toolName) {
|
|
53
|
-
const rules = [{
|
|
54
|
-
field,
|
|
55
|
-
validator,
|
|
56
|
-
errorMessage,
|
|
57
|
-
}];
|
|
58
|
-
this.validateArguments(args, rules, toolName);
|
|
59
|
-
}
|
|
60
31
|
static validateType(value, type) {
|
|
61
32
|
switch (type) {
|
|
62
33
|
case 'string':
|
|
@@ -78,9 +49,7 @@ export class ValidationHelpers {
|
|
|
78
49
|
* Common validation rules factory
|
|
79
50
|
*/
|
|
80
51
|
export const CommonValidations = {
|
|
81
|
-
/**
|
|
82
|
-
* Create a required string field validation
|
|
83
|
-
*/
|
|
52
|
+
/** Create a required string field validation */
|
|
84
53
|
requiredString: (field, customMessage) => [{
|
|
85
54
|
field,
|
|
86
55
|
required: true,
|
|
@@ -88,9 +57,7 @@ export const CommonValidations = {
|
|
|
88
57
|
validator: (value) => value.trim().length > 0,
|
|
89
58
|
errorMessage: customMessage ?? `${field} must be a non-empty string`,
|
|
90
59
|
}],
|
|
91
|
-
/**
|
|
92
|
-
* Create a required field validation with custom validator
|
|
93
|
-
*/
|
|
60
|
+
/** Create a required field validation with custom validator */
|
|
94
61
|
requiredField: (field, type, validator, errorMessage) => [{
|
|
95
62
|
field,
|
|
96
63
|
required: true,
|
|
@@ -98,9 +65,7 @@ export const CommonValidations = {
|
|
|
98
65
|
validator,
|
|
99
66
|
errorMessage,
|
|
100
67
|
}],
|
|
101
|
-
/**
|
|
102
|
-
* Create an optional field validation
|
|
103
|
-
*/
|
|
68
|
+
/** Create an optional field validation */
|
|
104
69
|
optionalField: (field, type, validator, errorMessage) => [{
|
|
105
70
|
field,
|
|
106
71
|
required: false,
|
|
@@ -109,4 +74,89 @@ export const CommonValidations = {
|
|
|
109
74
|
errorMessage,
|
|
110
75
|
}],
|
|
111
76
|
};
|
|
77
|
+
// =============================================================================
|
|
78
|
+
// Log-specific validators (consolidated from log-validation.ts)
|
|
79
|
+
// =============================================================================
|
|
80
|
+
/** Validate log level parameter */
|
|
81
|
+
export function validateLogLevel(level, toolName) {
|
|
82
|
+
if (!isValidLogLevel(level)) {
|
|
83
|
+
const validLevels = Object.values(LogLevelValues).join(', ');
|
|
84
|
+
throw new Error(`Invalid log level '${level}' for ${toolName}. Valid levels: ${validLevels}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** Validate limit parameter */
|
|
88
|
+
export function validateLimit(limit, toolName) {
|
|
89
|
+
if (limit === undefined) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (typeof limit !== 'number' || isNaN(limit)) {
|
|
93
|
+
throw new Error(`Invalid limit '${limit}' for ${toolName}. Must be a valid number`);
|
|
94
|
+
}
|
|
95
|
+
if (limit <= 0 || limit > 1000) {
|
|
96
|
+
throw new Error(`Invalid limit '${limit}' for ${toolName}. Must be between 1 and 1000`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** Validate maxBytes parameter */
|
|
100
|
+
export function validateMaxBytes(maxBytes, toolName) {
|
|
101
|
+
if (maxBytes === undefined) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (typeof maxBytes !== 'number' || isNaN(maxBytes)) {
|
|
105
|
+
throw new Error(`Invalid maxBytes '${maxBytes}' for ${toolName}. Must be a valid number`);
|
|
106
|
+
}
|
|
107
|
+
if (maxBytes <= 0 || maxBytes > 10_000_000) {
|
|
108
|
+
throw new Error(`Invalid maxBytes '${maxBytes}' for ${toolName}. Must be between 1 and 10,000,000`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** Validate filename parameter */
|
|
112
|
+
export function validateFilename(filename, toolName) {
|
|
113
|
+
if (!filename || filename.trim().length === 0) {
|
|
114
|
+
throw new Error(`Filename is required for ${toolName}`);
|
|
115
|
+
}
|
|
116
|
+
// Check for path traversal attempts
|
|
117
|
+
if (filename.includes('..') || filename.includes('\\')) {
|
|
118
|
+
throw new Error(`Invalid filename '${filename}' for ${toolName}. Path traversal not allowed`);
|
|
119
|
+
}
|
|
120
|
+
// Check for null byte injection
|
|
121
|
+
if (filename.includes('\0') || filename.includes('\x00')) {
|
|
122
|
+
throw new Error(`Invalid filename for ${toolName}. Contains invalid characters`);
|
|
123
|
+
}
|
|
124
|
+
// Check for absolute path attempts
|
|
125
|
+
if (filename.startsWith('/') && !filename.startsWith('/Logs/') && !filename.startsWith('/jobs/')) {
|
|
126
|
+
throw new Error(`Invalid filename '${filename}' for ${toolName}. Absolute paths outside /Logs/ are not allowed`);
|
|
127
|
+
}
|
|
128
|
+
// Check filename length to prevent DoS
|
|
129
|
+
if (filename.length > 1024) {
|
|
130
|
+
throw new Error(`Invalid filename for ${toolName}. Filename too long`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** Format log operation message */
|
|
134
|
+
export function formatLogMessage(operation, params = {}) {
|
|
135
|
+
const parts = [operation];
|
|
136
|
+
if (params.jobName) {
|
|
137
|
+
parts.push(`jobName=${params.jobName}`);
|
|
138
|
+
}
|
|
139
|
+
if (params.level) {
|
|
140
|
+
parts.push(`level=${params.level}`);
|
|
141
|
+
}
|
|
142
|
+
if (params.limit !== undefined) {
|
|
143
|
+
parts.push(`limit=${params.limit}`);
|
|
144
|
+
}
|
|
145
|
+
if (params.date) {
|
|
146
|
+
parts.push(`date=${params.date}`);
|
|
147
|
+
}
|
|
148
|
+
if (params.pattern) {
|
|
149
|
+
parts.push(`pattern="${params.pattern}"`);
|
|
150
|
+
}
|
|
151
|
+
if (params.filename) {
|
|
152
|
+
parts.push(`filename=${params.filename}`);
|
|
153
|
+
}
|
|
154
|
+
if (params.maxBytes !== undefined) {
|
|
155
|
+
parts.push(`maxBytes=${params.maxBytes}`);
|
|
156
|
+
}
|
|
157
|
+
if (params.tailOnly !== undefined) {
|
|
158
|
+
parts.push(`tailOnly=${params.tailOnly}`);
|
|
159
|
+
}
|
|
160
|
+
return parts.join(' ');
|
|
161
|
+
}
|
|
112
162
|
//# sourceMappingURL=validation-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-helpers.js","sourceRoot":"","sources":["../../../src/core/handlers/validation-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAiB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-helpers.js","sourceRoot":"","sources":["../../../src/core/handlers/validation-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AgentInstructionsClient } from '../clients/agent-instructions-client.js';
|
|
2
|
+
import { Logger } from '../utils/logger.js';
|
|
3
|
+
export interface McpDevConfig {
|
|
4
|
+
disableAgentSync?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Provides gentle, one-time guidance when AGENTS.md or skills are missing.
|
|
8
|
+
* Respects mcp-dev.json configuration to permanently disable sync suggestions.
|
|
9
|
+
*/
|
|
10
|
+
export declare class InstructionAdvisor {
|
|
11
|
+
private readonly client;
|
|
12
|
+
private readonly logger;
|
|
13
|
+
constructor(client: AgentInstructionsClient, logger: Logger);
|
|
14
|
+
/**
|
|
15
|
+
* Check if agent sync is disabled via mcp-dev.json in the workspace root.
|
|
16
|
+
*/
|
|
17
|
+
isAgentSyncDisabled(workspaceRoot: string): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Create or update mcp-dev.json to disable agent sync suggestions.
|
|
20
|
+
*/
|
|
21
|
+
disableAgentSync(workspaceRoot: string): Promise<{
|
|
22
|
+
success: boolean;
|
|
23
|
+
message: string;
|
|
24
|
+
}>;
|
|
25
|
+
getNotice(): Promise<string | undefined>;
|
|
26
|
+
reset(): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=instruction-advisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instruction-advisor.d.ts","sourceRoot":"","sources":["../../src/core/instruction-advisor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM;IAK3D;;OAEG;IACG,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlE;;OAEG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BvF,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAiD9C,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
/**
|
|
4
|
+
* Provides gentle, one-time guidance when AGENTS.md or skills are missing.
|
|
5
|
+
* Respects mcp-dev.json configuration to permanently disable sync suggestions.
|
|
6
|
+
*/
|
|
7
|
+
export class InstructionAdvisor {
|
|
8
|
+
client;
|
|
9
|
+
logger;
|
|
10
|
+
constructor(client, logger) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
this.logger = logger;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Check if agent sync is disabled via mcp-dev.json in the workspace root.
|
|
16
|
+
*/
|
|
17
|
+
async isAgentSyncDisabled(workspaceRoot) {
|
|
18
|
+
try {
|
|
19
|
+
const configPath = path.join(workspaceRoot, 'mcp-dev.json');
|
|
20
|
+
const content = await fs.readFile(configPath, 'utf-8');
|
|
21
|
+
const config = JSON.parse(content);
|
|
22
|
+
return config.disableAgentSync === true;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// File doesn't exist or is invalid - sync is not disabled
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create or update mcp-dev.json to disable agent sync suggestions.
|
|
31
|
+
*/
|
|
32
|
+
async disableAgentSync(workspaceRoot) {
|
|
33
|
+
try {
|
|
34
|
+
const configPath = path.join(workspaceRoot, 'mcp-dev.json');
|
|
35
|
+
let config = {};
|
|
36
|
+
// Try to read existing config
|
|
37
|
+
try {
|
|
38
|
+
const content = await fs.readFile(configPath, 'utf-8');
|
|
39
|
+
config = JSON.parse(content);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// File doesn't exist, start with empty config
|
|
43
|
+
}
|
|
44
|
+
config.disableAgentSync = true;
|
|
45
|
+
await fs.writeFile(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf-8');
|
|
46
|
+
return {
|
|
47
|
+
success: true,
|
|
48
|
+
message: `Created/updated ${configPath} with disableAgentSync: true. Agent sync suggestions are now disabled for this workspace.`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
message: `Failed to create mcp-dev.json: ${errMsg}`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async getNotice() {
|
|
60
|
+
try {
|
|
61
|
+
const status = await this.client.getStatus();
|
|
62
|
+
this.logger.debug('[InstructionAdvisor] Status', {
|
|
63
|
+
workspaceRoot: status.workspaceRoot,
|
|
64
|
+
hasAgents: status.hasAgents,
|
|
65
|
+
hasSkills: status.hasSkills,
|
|
66
|
+
detectedSkillsDir: status.detectedSkillsDir,
|
|
67
|
+
missingSkills: status.missingSkills,
|
|
68
|
+
sourceSkills: status.sourceSkills,
|
|
69
|
+
});
|
|
70
|
+
// If we cannot determine a workspace root, skip the notice (can't reliably detect presence)
|
|
71
|
+
if (!status.workspaceRoot) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
// Check if agent sync is disabled via mcp-dev.json
|
|
75
|
+
const syncDisabled = await this.isAgentSyncDisabled(status.workspaceRoot);
|
|
76
|
+
if (syncDisabled) {
|
|
77
|
+
this.logger.debug('[InstructionAdvisor] Agent sync disabled via mcp-dev.json');
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
if (status.hasAgents && status.hasSkills) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
const missingParts = [];
|
|
84
|
+
if (!status.hasAgents) {
|
|
85
|
+
missingParts.push('AGENTS.md');
|
|
86
|
+
}
|
|
87
|
+
if (!status.hasSkills) {
|
|
88
|
+
missingParts.push('skills');
|
|
89
|
+
}
|
|
90
|
+
const missingSkills = status.missingSkills?.length
|
|
91
|
+
? `Missing skills: ${status.missingSkills.join(', ')}`
|
|
92
|
+
: 'All skills will be installed.';
|
|
93
|
+
this.logger.debug('[InstructionAdvisor] Issuing workspace-root notice');
|
|
94
|
+
return [
|
|
95
|
+
'📋 Agent instructions available for this SFCC project.',
|
|
96
|
+
`Missing: ${missingParts.join(' + ')}`,
|
|
97
|
+
missingSkills,
|
|
98
|
+
'',
|
|
99
|
+
'👉 ASK THE USER: "Would you like me to install AGENTS.md and SFCC development skills into your project?"',
|
|
100
|
+
'',
|
|
101
|
+
'If YES: Run sync_agent_instructions with dryRun=false',
|
|
102
|
+
'If NO: Create mcp-dev.json with {"disableAgentSync": true} to permanently disable this suggestion.',
|
|
103
|
+
].join('\n');
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
this.logger.debug('InstructionAdvisor failed to evaluate status', error);
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
reset() {
|
|
111
|
+
// no-op for now; retained for potential future stateful notice throttling
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=instruction-advisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instruction-advisor.js","sourceRoot":"","sources":["../../src/core/instruction-advisor.ts"],"names":[],"mappings":"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"}
|
package/dist/core/server.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export declare class SFCCDevServer {
|
|
|
18
18
|
private config;
|
|
19
19
|
private capabilities;
|
|
20
20
|
private handlers;
|
|
21
|
+
private workspaceRootsService;
|
|
22
|
+
private instructionAdvisor;
|
|
21
23
|
/**
|
|
22
24
|
* Initialize the SFCC Development MCP Server
|
|
23
25
|
*
|
|
@@ -27,6 +29,24 @@ export declare class SFCCDevServer {
|
|
|
27
29
|
private initializeServer;
|
|
28
30
|
private logMethodEntry;
|
|
29
31
|
private logMethodExit;
|
|
32
|
+
/**
|
|
33
|
+
* Discover workspace roots from the MCP client and search for dw.json
|
|
34
|
+
*
|
|
35
|
+
* This method is called after the client is initialized. It uses the
|
|
36
|
+
* MCP roots/list capability to get the client's workspace directories,
|
|
37
|
+
* then delegates to WorkspaceRootsService for discovery and validation.
|
|
38
|
+
*
|
|
39
|
+
* Priority: This is only called when no CLI parameter or environment
|
|
40
|
+
* variables provided credentials (those take precedence).
|
|
41
|
+
*/
|
|
42
|
+
private discoverWorkspaceRoots;
|
|
43
|
+
/**
|
|
44
|
+
* Reconfigure the server with newly discovered SFCC credentials
|
|
45
|
+
*
|
|
46
|
+
* This updates the config, capabilities, and handlers when we discover
|
|
47
|
+
* a dw.json file in the workspace roots after initialization.
|
|
48
|
+
*/
|
|
49
|
+
private reconfigureWithCredentials;
|
|
30
50
|
private registerHandlers;
|
|
31
51
|
/**
|
|
32
52
|
* Set up MCP tool handlers for SFCC operations
|
|
@@ -40,5 +60,10 @@ export declare class SFCCDevServer {
|
|
|
40
60
|
* Gracefully shutdown the server and dispose of resources
|
|
41
61
|
*/
|
|
42
62
|
private shutdown;
|
|
63
|
+
/**
|
|
64
|
+
* Inject a preflight error into JSON responses while preserving existing structure.
|
|
65
|
+
* Falls back to text concatenation if the payload is not valid JSON.
|
|
66
|
+
*/
|
|
67
|
+
private attachError;
|
|
43
68
|
}
|
|
44
69
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AA+B7D;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAA0D;IAC9E,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,kBAAkB,CAAqB;IAE/C;;;;OAIG;gBACS,MAAM,EAAE,UAAU;IAe9B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB;;;;;;;;;OASG;YACW,sBAAsB;IAiDpC;;;;;OAKG;YACW,0BAA0B;IAqCxC,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1B;;OAEG;YACW,QAAQ;IAUtB;;;OAGG;IACH,OAAO,CAAC,WAAW;CA+BpB"}
|